diff --git a/.github/workflows/check-pull-request.yml b/.github/workflows/check-pull-request.yml index 26f930620..8ca521504 100644 --- a/.github/workflows/check-pull-request.yml +++ b/.github/workflows/check-pull-request.yml @@ -1,19 +1,19 @@ name: Check Pull Request on: pull_request: - types: ['opened', 'edited', 'reopened', 'synchronize'] + types: ["opened", "edited", "reopened", "synchronize"] jobs: check-title: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v3.3.0 - - uses: pnpm/action-setup@v2.2.4 - - name: Use Node.js - uses: actions/setup-node@v3.6.0 - with: - node-version: 17 - check-latest: true - cache: 'pnpm' - - run: pnpm install - - run: echo '${{ github.event.pull_request.title }}' | pnpm commitlint + - uses: actions/checkout@v3.3.0 + - uses: pnpm/action-setup@v2.2.4 + - name: Use Node.js + uses: actions/setup-node@v3.6.0 + with: + node-version: 18 + check-latest: true + cache: "pnpm" + - run: pnpm install + - run: echo '${{ github.event.pull_request.title }}' | pnpm commitlint diff --git a/.github/workflows/deploy-doc.yml b/.github/workflows/deploy-doc.yml index 11ee68840..a6fce499a 100644 --- a/.github/workflows/deploy-doc.yml +++ b/.github/workflows/deploy-doc.yml @@ -4,7 +4,7 @@ on: # Runs on tags push: tags: - - '**' + - "**" # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -39,9 +39,9 @@ jobs: - name: Setup Node uses: actions/setup-node@v3.6.0 with: - node-version: 17 + node-version: 18 check-latest: true - cache: 'pnpm' + cache: "pnpm" - name: Setup Pages id: pages uses: actions/configure-pages@v2 diff --git a/.github/workflows/deploy-package.yml b/.github/workflows/deploy-package.yml index 2654ceb28..d0a121510 100644 --- a/.github/workflows/deploy-package.yml +++ b/.github/workflows/deploy-package.yml @@ -10,30 +10,30 @@ jobs: runs-on: ubuntu-20.04 if: github.ref == 'refs/heads/main' steps: - - uses: actions/checkout@v3.3.0 - with: - fetch-depth: "0" - persist-credentials: false - - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* - - name: Git Identity - run: | - git config --global user.name 'scaleway-bot' - git config --global user.email 'github@scaleway.com' - git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/$GITHUB_REPOSITORY - env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} - - uses: pnpm/action-setup@v2.2.4 - - name: Use Node.js - uses: actions/setup-node@v3.6.0 - with: - node-version: 17 - check-latest: true - - run: pnpm install - - run: pnpm run build - - run: echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > .npmrc - env: - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - - run: pnpm lerna publish -y --create-release github - env: - HUSKY: 0 - GH_TOKEN: ${{ secrets.GH_TOKEN }} + - uses: actions/checkout@v3.3.0 + with: + fetch-depth: "0" + persist-credentials: false + - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* + - name: Git Identity + run: | + git config --global user.name 'scaleway-bot' + git config --global user.email 'github@scaleway.com' + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/$GITHUB_REPOSITORY + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + - uses: pnpm/action-setup@v2.2.4 + - name: Use Node.js + uses: actions/setup-node@v3.6.0 + with: + node-version: 18 + check-latest: true + - run: pnpm install + - run: pnpm run build + - run: echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > .npmrc + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + - run: pnpm lerna publish -y --create-release github + env: + HUSKY: 0 + GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index f4735dc03..3e493c0d4 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -10,47 +10,51 @@ jobs: typecheck: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v3.3.0 - - uses: pnpm/action-setup@v2.2.4 - - name: Use Node.js - uses: actions/setup-node@v3.6.0 - with: - node-version: 17 - check-latest: true - cache: 'pnpm' - - run: pnpm install - - run: pnpm run build - - run: pnpm tsc --noEmit + - uses: actions/checkout@v3.3.0 + - uses: pnpm/action-setup@v2.2.4 + - name: Use Node.js + uses: actions/setup-node@v3.6.0 + with: + node-version: 17 + check-latest: true + cache: "pnpm" + - run: pnpm install + - run: pnpm run build + - run: pnpm tsc --noEmit lint: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v3.3.0 - - uses: pnpm/action-setup@v2.2.4 - - name: Use Node.js - uses: actions/setup-node@v3.6.0 - with: - node-version: 17 - check-latest: true - cache: 'pnpm' - - run: pnpm install - - run: pnpm run build - - run: pnpm run lint + - uses: actions/checkout@v3.3.0 + - uses: pnpm/action-setup@v2.2.4 + - name: Use Node.js + uses: actions/setup-node@v3.6.0 + with: + node-version: 18 + check-latest: true + cache: "pnpm" + - run: pnpm install + - run: pnpm run build + - run: pnpm run lint test: runs-on: ubuntu-20.04 strategy: matrix: - node: [ '14', '16', '17' ] + test-environment: + - node + - jsdom + node: + - "18" + - "19" steps: - - uses: actions/checkout@v3.3.0 - - uses: pnpm/action-setup@v2.2.4 - - name: Use Node.js - uses: actions/setup-node@v3.6.0 - with: - node-version: ${{ matrix.node }} - check-latest: true - cache: 'pnpm' - - run: pnpm install - - run: pnpm run build - - run: pnpm run test:coverage - - uses: codecov/codecov-action@v3.1.1 - \ No newline at end of file + - uses: actions/checkout@v3.3.0 + - uses: pnpm/action-setup@v2.2.4 + - name: Use Node.js + uses: actions/setup-node@v3.6.0 + with: + node-version: ${{ matrix.node }} + check-latest: true + cache: "pnpm" + - run: pnpm install + - run: pnpm run build + - run: pnpm run test:coverage --testEnvironment ${{ matrix.test-environment }} + - uses: codecov/codecov-action@v3.1.1 diff --git a/README.md b/README.md index 792dd460a..d6fcc0853 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ const client = createClient(profile) **For more advanced needs**, please check the examples. -## Pagination +### Pagination We included some pagination helpers for the methods supporting the feature. Let's take `listNamespaces()` (Registry product) as an example: @@ -67,7 +67,7 @@ for await (const page of api.listNamespaces()) { } ``` -## Types +### Types The project is coded with Typescript, so don't hesitate to take advantage of it. @@ -75,34 +75,13 @@ The project is coded with Typescript, so don't hesitate to take advantage of it. 2. We export **errors** in the namespace `Errors`, allowing you to differentiate the cases (e.g. `Errors.PermissionsDeniedError`). -## Dependencies +## Notes -This SDK is based on the [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) API and uses `Request`, `Response` & `Headers` interfaces. Those interfaces are native in modern browsers, node >=18 & [deno](https://deno.land/) environments. - -For `node` < 18 & `React Native` environments, the commonJS build requires [cross-fetch](https://www.npmjs.com/package/cross-fetch) package, it is listed in `dependencies` but not used in esm build. - -**Troubleshooting** - -In node environment, the commonJS module defined in `dist/index.cjs` entry file is used by default, thanks to the "main" `package.json` field. - -If you want to use the ES module from `dist/index.js` with node < 18 & `React Native` environments, we recommend you to explicitly import [cross-fetch](https://www.npmjs.com/package/cross-fetch) polyfill: - -```ts -import 'cross-fetch/polyfill' -import {...} from '@scaleway/sdk' -``` - -or - -```bash -node -r cross-fetch/polyfill ./script-using-sdk.mjs -``` - -## Development +### Contributing Guidelines This repository is at its early stage and is still in active development. If you are looking for a way to contribute please read [CONTRIBUTING.md](./CONTRIBUTING.md). -## Reach us +### Reach us We love feedback. Feel free to reach us on [Scaleway Slack community](https://slack.scaleway.com/), we are waiting for you on [#opensource](https://scaleway-community.slack.com/app_redirect?channel=opensource). diff --git a/setupTests.ts b/env-setup.ts similarity index 100% rename from setupTests.ts rename to env-setup.ts diff --git a/examples/nodejs-minimal/package.json b/examples/nodejs-minimal/package.json index eea7c5ecb..d0872d183 100644 --- a/examples/nodejs-minimal/package.json +++ b/examples/nodejs-minimal/package.json @@ -12,7 +12,7 @@ "@scaleway/sdk": "^0.1.0-beta" }, "devDependencies": { - "@types/node": "^17.0.45", + "@types/node": "^18.11.18", "typescript": "^4.9.4" } } diff --git a/package.json b/package.json index 6f5512396..c6b98bc7c 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "packages/*" ], "engines": { - "node": ">=14.13", + "node": ">=18.0", "pnpm": ">=7.25.1" }, "type": "module", @@ -37,6 +37,9 @@ ] }, "jest": { + "setupFiles": [ + "./env-setup.ts" + ], "collectCoverageFrom": [ "packages/*/src/**/*.{ts,tsx}" ], @@ -61,9 +64,6 @@ ], "transformIgnorePatterns": [ "node_modules/(?!(.*(@scaleway)))" - ], - "setupFiles": [ - "./setupTests.ts" ] }, "devDependencies": { @@ -76,7 +76,6 @@ "@jest/globals": "^29.3.1", "@rollup/plugin-babel": "^6.0.3", "@rollup/plugin-commonjs": "^24.0.1", - "@rollup/plugin-inject": "^5.0.3", "@rollup/plugin-node-resolve": "^15.0.1", "@scaleway/eslint-config-react": "^3.14.1", "@types/jest": "^29.2.6", @@ -88,6 +87,7 @@ "eslint-plugin-tsdoc": "^0.2.17", "husky": "^8.0.3", "jest": "^29.3.1", + "jest-environment-jsdom": "^29.4.0", "jest-junit": "^15.0.0", "lerna": "^6.4.1", "lint-staged": "^13.1.0", diff --git a/packages/clients/package.json b/packages/clients/package.json index 7d8d65663..06f3cbfeb 100644 --- a/packages/clients/package.json +++ b/packages/clients/package.json @@ -30,8 +30,7 @@ }, "type": "module", "dependencies": { - "@scaleway/random-name": "^4.0.1", - "cross-fetch": "^3.1.5" + "@scaleway/random-name": "^4.0.1" }, "bundledDependencies": [ "@scaleway/random-name" diff --git a/packages/clients/src/fetch.d.ts b/packages/clients/src/fetch.d.ts deleted file mode 100644 index 730396d46..000000000 --- a/packages/clients/src/fetch.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/// -// eslint-disable-next-line import/no-extraneous-dependencies -import type nodeFetch from 'cross-fetch' -import type { - Headers as NodeFetchHeaders, - Request as NodeFetchRequest, - Response as NodeFetchResponse, -} from 'cross-fetch' - -export declare const fetch: typeof nodeFetch -export declare const Headers: typeof NodeFetchHeaders -export declare const Request: typeof NodeFetchRequest -export declare const Response: typeof NodeFetchResponse diff --git a/packages/clients/src/helpers/__tests__/is-browser.ts b/packages/clients/src/helpers/__tests__/is-browser.ts index 1aeac413f..734197d3a 100644 --- a/packages/clients/src/helpers/__tests__/is-browser.ts +++ b/packages/clients/src/helpers/__tests__/is-browser.ts @@ -3,7 +3,7 @@ import { isBrowser } from '../is-browser' describe('isBrowser', () => { it('returns false by default', () => { - expect(isBrowser()).toBe(false) + expect(isBrowser()).toBe(!!global.window) }) it('returns true after defining a window', () => { diff --git a/packages/clients/src/scw/fetch/__tests__/build-fetcher.ts b/packages/clients/src/scw/fetch/__tests__/build-fetcher.ts index 0fb0aca8b..d72ad8bf3 100644 --- a/packages/clients/src/scw/fetch/__tests__/build-fetcher.ts +++ b/packages/clients/src/scw/fetch/__tests__/build-fetcher.ts @@ -1,4 +1,5 @@ import { afterAll, describe, expect, it, jest } from '@jest/globals' +import { isBrowser } from '../../../helpers/is-browser' import type { Settings } from '../../client-settings' import { buildFetcher, buildRequest } from '../build-fetcher' import type { ScwRequest } from '../types' @@ -30,10 +31,17 @@ describe(`buildRequest`, () => { expect(fReq.headers.get('accept')).toBe(`application/json`) }) - it(`has the default header "User-Agent: 'scaleway-sdk-js/v1.0.0'"`, () => { - const fReq = buildRequest(SCW_POST_REQUEST, DEFAULT_SETTINGS) - expect(fReq.headers.get('User-Agent')).toBe(DEFAULT_SETTINGS.userAgent) - }) + if (!isBrowser()) { + it(`has the default header "User-Agent: 'scaleway-sdk-js/v1.0.0'"`, () => { + const fReq = buildRequest(SCW_POST_REQUEST, DEFAULT_SETTINGS) + expect(fReq.headers.get('User-Agent')).toBe(DEFAULT_SETTINGS.userAgent) + }) + } else { + it(`has NOT the default header "User-Agent: 'scaleway-sdk-js/v1.0.0'"`, () => { + const fReq = buildRequest(SCW_POST_REQUEST, DEFAULT_SETTINGS) + expect(fReq.headers.get('User-Agent')).toBeNull() + }) + } it(`has NOT the header "User-Agent" when browser is detected`, () => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment diff --git a/packages/clients/src/scw/fetch/__tests__/http-dumper.ts b/packages/clients/src/scw/fetch/__tests__/http-dumper.ts index 9f2352e3f..c41e04498 100644 --- a/packages/clients/src/scw/fetch/__tests__/http-dumper.ts +++ b/packages/clients/src/scw/fetch/__tests__/http-dumper.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from '@jest/globals' +import { isBrowser } from '../../../helpers/is-browser' import type { Settings } from '../../client-settings' import { buildRequest } from '../build-fetcher' import { dumpRequest, dumpResponse } from '../http-dumper' @@ -14,8 +15,12 @@ const DEFAULT_SETTINGS: Settings = { } describe(`dumpRequest`, () => { - it(`returns a readable string`, () => - expect( + it(`returns a readable string`, () => { + const userAgentHeader = !isBrowser() + ? `User-Agent: scaleway-sdk-js/v1.0.0\r\n` + : '' + + return expect( dumpRequest( buildRequest( { @@ -27,16 +32,13 @@ describe(`dumpRequest`, () => { ), ), ).resolves.toBe( - `POST: https://api.scaleway.com/random/path\r\nAccept: application/json\r\nContent-Type: text/plain;charset=UTF-8\r\nUser-Agent: scaleway-sdk-js/v1.0.0\r\n{"myProp":"random-value"}`, - )) + `POST: https://api.scaleway.com/random/path\r\nAccept: application/json\r\nContent-Type: text/plain;charset=UTF-8\r\n${userAgentHeader}{"myProp":"random-value"}`, + ) + }) }) -const convertObjToBuffer = (obj: unknown): Buffer => { - const str = JSON.stringify(obj) - const bytes = new TextEncoder().encode(str) - - return Buffer.from(bytes) -} +const convertObjToBuffer = (obj: unknown): Buffer => + Buffer.from(JSON.stringify(obj)) const makeFetchResponse = ( value: unknown, diff --git a/packages/clients/src/scw/fetch/__tests__/response-parser.ts b/packages/clients/src/scw/fetch/__tests__/response-parser.ts index 8c0f7be3d..38043c6e2 100644 --- a/packages/clients/src/scw/fetch/__tests__/response-parser.ts +++ b/packages/clients/src/scw/fetch/__tests__/response-parser.ts @@ -6,12 +6,8 @@ import { fixLegacyTotalCount, responseParser } from '../response-parser' const SIMPLE_REQ_BODY = { 'what-is-life': 42 } -const convertObjToBuffer = (obj: unknown): Buffer => { - const str = JSON.stringify(obj) - const bytes = new TextEncoder().encode(str) - - return Buffer.from(bytes) -} +const convertObjToBuffer = (obj: unknown): Buffer => + Buffer.from(JSON.stringify(obj)) const unmarshalJSON = (obj: unknown) => { if (!isJSONObject(obj)) throw new Error(`couldn't unwrap response value`) diff --git a/packages/configuration-loader/package.json b/packages/configuration-loader/package.json index 8bd6aea65..e18ced93e 100644 --- a/packages/configuration-loader/package.json +++ b/packages/configuration-loader/package.json @@ -19,6 +19,6 @@ }, "type": "module", "devDependencies": { - "@types/node": "^18.11.10" + "@types/node": "^18.11.18" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e1cd104f..8cb222678 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,6 @@ importers: '@jest/globals': ^29.3.1 '@rollup/plugin-babel': ^6.0.3 '@rollup/plugin-commonjs': ^24.0.1 - '@rollup/plugin-inject': ^5.0.3 '@rollup/plugin-node-resolve': ^15.0.1 '@scaleway/eslint-config-react': ^3.14.1 '@types/jest': ^29.2.6 @@ -25,6 +24,7 @@ importers: eslint-plugin-tsdoc: ^0.2.17 husky: ^8.0.3 jest: ^29.3.1 + jest-environment-jsdom: ^29.4.0 jest-junit: ^15.0.0 lerna: ^6.4.1 lint-staged: ^13.1.0 @@ -45,7 +45,6 @@ importers: '@jest/globals': 29.3.1 '@rollup/plugin-babel': 6.0.3_j5gl3ppangg6ywsqfpneorhloy '@rollup/plugin-commonjs': 24.0.1_rollup@3.10.1 - '@rollup/plugin-inject': 5.0.3_rollup@3.10.1 '@rollup/plugin-node-resolve': 15.0.1_rollup@3.10.1 '@scaleway/eslint-config-react': 3.14.1_7uibuqfxkfaozanbtbziikiqje '@types/jest': 29.2.6 @@ -57,6 +56,7 @@ importers: eslint-plugin-tsdoc: 0.2.17 husky: 8.0.3 jest: 29.3.1 + jest-environment-jsdom: 29.4.0 jest-junit: 15.0.0 lerna: 6.4.1 lint-staged: 13.1.0 @@ -71,16 +71,14 @@ importers: packages/clients: specifiers: '@scaleway/random-name': ^4.0.1 - cross-fetch: ^3.1.5 dependencies: '@scaleway/random-name': 4.0.1 - cross-fetch: 3.1.5 packages/configuration-loader: specifiers: - '@types/node': ^18.11.10 + '@types/node': ^18.11.18 devDependencies: - '@types/node': 18.11.10 + '@types/node': 18.11.18 packages: @@ -1479,15 +1477,15 @@ packages: '@commitlint/execute-rule': 17.4.0 '@commitlint/resolve-extends': 17.4.0 '@commitlint/types': 17.4.0 - '@types/node': 18.11.10 + '@types/node': 18.11.18 chalk: 4.1.2 cosmiconfig: 8.0.0 - cosmiconfig-typescript-loader: 4.0.0_wsd4eoobbv6xsudeowz64yznaa + cosmiconfig-typescript-loader: 4.0.0_g4ebmy26jxezerxclx5pb3jqzi lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.8.2_pdhdgy3lb7m4vyjxkl5qaywlx4 + ts-node: 10.8.2_awa2wsr5thmg3i7jqycphctjfq typescript: 4.9.4 transitivePeerDependencies: - '@swc/core' @@ -1647,11 +1645,11 @@ packages: resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.3.1 - '@types/node': 18.11.10 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 chalk: 4.1.2 - jest-message-util: 29.3.1 - jest-util: 29.3.1 + jest-message-util: 29.4.0 + jest-util: 29.4.0 slash: 3.0.0 dev: true @@ -1668,28 +1666,28 @@ packages: '@jest/reporters': 29.3.1 '@jest/test-result': 29.3.1 '@jest/transform': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.10 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.3.2 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.2.0 - jest-config: 29.3.1_@types+node@18.11.10 + jest-config: 29.3.1_@types+node@18.11.18 jest-haste-map: 29.3.1 - jest-message-util: 29.3.1 + jest-message-util: 29.4.0 jest-regex-util: 29.2.0 jest-resolve: 29.3.1 jest-resolve-dependencies: 29.3.1 jest-runner: 29.3.1 jest-runtime: 29.3.1 jest-snapshot: 29.3.1 - jest-util: 29.3.1 + jest-util: 29.4.0 jest-validate: 29.3.1 jest-watcher: 29.3.1 micromatch: 4.0.5 - pretty-format: 29.3.1 + pretty-format: 29.4.0 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -1701,10 +1699,20 @@ packages: resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.10 - jest-mock: 29.3.1 + '@jest/fake-timers': 29.4.0 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 + jest-mock: 29.4.0 + dev: true + + /@jest/environment/29.4.0: + resolution: {integrity: sha512-ocl1VGDcZHfHnYLTqkBY7yXme1bF4x0BevJ9wb6y0sLOSyBCpp8L5fEASChB+wU53WMrIK6kBfGt+ZYoM2kcdw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.4.0 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 + jest-mock: 29.4.0 dev: true /@jest/expect-utils/29.3.1: @@ -1724,16 +1732,16 @@ packages: - supports-color dev: true - /@jest/fake-timers/29.3.1: - resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==} + /@jest/fake-timers/29.4.0: + resolution: {integrity: sha512-8sitzN2QrhDwEwH3kKcMMgrv/UIkmm9AUgHixmn4L++GQ0CqVTIztm3YmaIQooLmW3O4GhizNTTCyq3iLbWcMw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.3.1 - '@sinonjs/fake-timers': 9.1.2 - '@types/node': 18.11.10 - jest-message-util: 29.3.1 - jest-mock: 29.3.1 - jest-util: 29.3.1 + '@jest/types': 29.4.0 + '@sinonjs/fake-timers': 10.0.2 + '@types/node': 18.11.18 + jest-message-util: 29.4.0 + jest-mock: 29.4.0 + jest-util: 29.4.0 dev: true /@jest/globals/29.3.1: @@ -1761,9 +1769,9 @@ packages: '@jest/console': 29.3.1 '@jest/test-result': 29.3.1 '@jest/transform': 29.3.1 - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 '@jridgewell/trace-mapping': 0.3.17 - '@types/node': 18.11.10 + '@types/node': 18.11.18 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -1774,8 +1782,8 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.4 - jest-message-util: 29.3.1 - jest-util: 29.3.1 + jest-message-util: 29.4.0 + jest-util: 29.4.0 jest-worker: 29.3.1 slash: 3.0.0 string-length: 4.0.2 @@ -1785,11 +1793,11 @@ packages: - supports-color dev: true - /@jest/schemas/29.0.0: - resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==} + /@jest/schemas/29.4.0: + resolution: {integrity: sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@sinclair/typebox': 0.24.20 + '@sinclair/typebox': 0.25.21 dev: true /@jest/source-map/29.2.0: @@ -1806,7 +1814,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.3.1 - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true @@ -1826,7 +1834,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.20.12 - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 '@jridgewell/trace-mapping': 0.3.17 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -1835,7 +1843,7 @@ packages: graceful-fs: 4.2.10 jest-haste-map: 29.3.1 jest-regex-util: 29.2.0 - jest-util: 29.3.1 + jest-util: 29.4.0 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -1848,10 +1856,22 @@ packages: resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.0.0 + '@jest/schemas': 29.4.0 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.11.18 + '@types/yargs': 17.0.10 + chalk: 4.1.2 + dev: true + + /@jest/types/29.4.0: + resolution: {integrity: sha512-1S2Dt5uQp7R0bGY/L2BpuwCSji7v12kY3o8zqwlkbYBmOY956SKk+zOWqmfhHSINegiAVqOXydAYuWpzX6TYsQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.4.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.10 + '@types/node': 18.11.18 '@types/yargs': 17.0.10 chalk: 4.1.2 dev: true @@ -3018,21 +3038,6 @@ packages: rollup: 3.10.1 dev: true - /@rollup/plugin-inject/5.0.3_rollup@3.10.1: - resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.0.2_rollup@3.10.1 - estree-walker: 2.0.2 - magic-string: 0.27.0 - rollup: 3.10.1 - dev: true - /@rollup/plugin-node-resolve/15.0.1_rollup@3.10.1: resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} engines: {node: '>=14.0.0'} @@ -3096,20 +3101,20 @@ packages: engines: {node: '>=14.x'} dev: false - /@sinclair/typebox/0.24.20: - resolution: {integrity: sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==} + /@sinclair/typebox/0.25.21: + resolution: {integrity: sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==} dev: true - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} + /@sinonjs/commons/2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} dependencies: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/9.1.2: - resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + /@sinonjs/fake-timers/10.0.2: + resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} dependencies: - '@sinonjs/commons': 1.8.3 + '@sinonjs/commons': 2.0.0 dev: true /@tootallnate/once/2.0.0: @@ -3169,7 +3174,7 @@ packages: /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 18.11.10 + '@types/node': 18.11.18 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -3195,6 +3200,14 @@ packages: pretty-format: 29.3.1 dev: true + /@types/jsdom/20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + dependencies: + '@types/node': 18.11.18 + '@types/tough-cookie': 4.0.2 + parse5: 7.1.2 + dev: true + /@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true @@ -3211,8 +3224,8 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node/18.11.10: - resolution: {integrity: sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==} + /@types/node/18.11.18: + resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} dev: true /@types/normalize-package-data/2.4.1: @@ -3239,6 +3252,10 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true + /@types/tough-cookie/4.0.2: + resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} + dev: true + /@types/yargs-parser/21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true @@ -3480,16 +3497,27 @@ packages: through: 2.3.8 dev: true + /abab/2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + dev: true + /abbrev/1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true - /acorn-jsx/5.3.2_acorn@8.8.0: + /acorn-globals/7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + dependencies: + acorn: 8.8.2 + acorn-walk: 8.2.0 + dev: true + + /acorn-jsx/5.3.2_acorn@8.8.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.0 + acorn: 8.8.2 dev: true /acorn-walk/8.2.0: @@ -3497,8 +3525,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn/8.8.0: - resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} + /acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -4461,7 +4489,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig-typescript-loader/4.0.0_wsd4eoobbv6xsudeowz64yznaa: + /cosmiconfig-typescript-loader/4.0.0_g4ebmy26jxezerxclx5pb3jqzi: resolution: {integrity: sha512-cVpucSc2Tf+VPwCCR7SZzmQTQkPbkk4O01yXsYqXBIbjE1bhwqSyAgYQkRK1un4i0OPziTleqFhdkmOc4RQ/9g==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -4470,9 +4498,9 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 18.11.10 + '@types/node': 18.11.18 cosmiconfig: 8.0.0 - ts-node: 10.8.2_pdhdgy3lb7m4vyjxkl5qaywlx4 + ts-node: 10.8.2_awa2wsr5thmg3i7jqycphctjfq typescript: 4.9.4 dev: true @@ -4515,6 +4543,7 @@ packages: node-fetch: 2.6.7 transitivePeerDependencies: - encoding + dev: true /cross-spawn/7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -4525,6 +4554,21 @@ packages: which: 2.0.2 dev: true + /cssom/0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom/0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + + /cssstyle/2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + /cz-conventional-changelog/3.2.0: resolution: {integrity: sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==} engines: {node: '>= 10'} @@ -4568,6 +4612,15 @@ packages: engines: {node: '>=8'} dev: true + /data-urls/3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + /dateformat/3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true @@ -4612,6 +4665,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /decimal.js/10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + /dedent/0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true @@ -4747,6 +4804,13 @@ packages: esutils: 2.0.3 dev: true + /domexception/4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + /dot-prop/5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -4820,6 +4884,11 @@ packages: ansi-colors: 4.1.3 dev: true + /entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + dev: true + /env-paths/2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -4920,6 +4989,19 @@ packages: engines: {node: '>=10'} dev: true + /escodegen/2.0.0: + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + /eslint-config-airbnb-base/15.0.0_ps7hf4l2dvbuxvtusmrfhmzsba: resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5230,8 +5312,8 @@ packages: resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.0 - acorn-jsx: 5.3.2_acorn@8.8.0 + acorn: 8.8.2 + acorn-jsx: 5.3.2_acorn@8.8.2 eslint-visitor-keys: 3.3.0 dev: true @@ -5327,8 +5409,8 @@ packages: '@jest/expect-utils': 29.3.1 jest-get-type: 29.2.0 jest-matcher-utils: 29.3.1 - jest-message-util: 29.3.1 - jest-util: 29.3.1 + jest-message-util: 29.4.0 + jest-util: 29.4.0 dev: true /external-editor/3.1.0: @@ -5903,6 +5985,13 @@ packages: lru-cache: 7.12.0 dev: true + /html-encoding-sniffer/3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -5967,7 +6056,6 @@ packages: dependencies: safer-buffer: 2.1.2 dev: true - optional: true /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -6289,6 +6377,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-potential-custom-element-name/1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + /is-reference/1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: @@ -6489,23 +6581,23 @@ packages: resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.3.1 + '@jest/environment': 29.4.0 '@jest/expect': 29.3.1 '@jest/test-result': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.10 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 jest-each: 29.3.1 jest-matcher-utils: 29.3.1 - jest-message-util: 29.3.1 + jest-message-util: 29.4.0 jest-runtime: 29.3.1 jest-snapshot: 29.3.1 - jest-util: 29.3.1 + jest-util: 29.4.0 p-limit: 3.1.0 - pretty-format: 29.3.1 + pretty-format: 29.4.0 slash: 3.0.0 stack-utils: 2.0.5 transitivePeerDependencies: @@ -6524,13 +6616,13 @@ packages: dependencies: '@jest/core': 29.3.1 '@jest/test-result': 29.3.1 - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 jest-config: 29.3.1 - jest-util: 29.3.1 + jest-util: 29.4.0 jest-validate: 29.3.1 prompts: 2.4.2 yargs: 17.6.2 @@ -6554,7 +6646,7 @@ packages: dependencies: '@babel/core': 7.20.12 '@jest/test-sequencer': 29.3.1 - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 babel-jest: 29.3.1_@babel+core@7.20.12 chalk: 4.1.2 ci-info: 3.3.2 @@ -6567,18 +6659,18 @@ packages: jest-regex-util: 29.2.0 jest-resolve: 29.3.1 jest-runner: 29.3.1 - jest-util: 29.3.1 + jest-util: 29.4.0 jest-validate: 29.3.1 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.3.1 + pretty-format: 29.4.0 slash: 3.0.0 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color dev: true - /jest-config/29.3.1_@types+node@18.11.10: + /jest-config/29.3.1_@types+node@18.11.18: resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6592,8 +6684,8 @@ packages: dependencies: '@babel/core': 7.20.12 '@jest/test-sequencer': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.10 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 babel-jest: 29.3.1_@babel+core@7.20.12 chalk: 4.1.2 ci-info: 3.3.2 @@ -6606,11 +6698,11 @@ packages: jest-regex-util: 29.2.0 jest-resolve: 29.3.1 jest-runner: 29.3.1 - jest-util: 29.3.1 + jest-util: 29.4.0 jest-validate: 29.3.1 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.3.1 + pretty-format: 29.4.0 slash: 3.0.0 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -6624,7 +6716,7 @@ packages: chalk: 4.1.2 diff-sequences: 29.3.1 jest-get-type: 29.2.0 - pretty-format: 29.3.1 + pretty-format: 29.4.0 dev: true /jest-docblock/29.2.0: @@ -6638,23 +6730,46 @@ packages: resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 chalk: 4.1.2 jest-get-type: 29.2.0 - jest-util: 29.3.1 - pretty-format: 29.3.1 + jest-util: 29.4.0 + pretty-format: 29.4.0 + dev: true + + /jest-environment-jsdom/29.4.0: + resolution: {integrity: sha512-z1tB/qtReousDnU695K38ZzoR6B3dRXazwgyhTHzMviSC2T3KmVy0T722fZxR2q3x/Jvv85JxU/2xs8kwX394w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + '@jest/environment': 29.4.0 + '@jest/fake-timers': 29.4.0 + '@jest/types': 29.4.0 + '@types/jsdom': 20.0.1 + '@types/node': 18.11.18 + jest-mock: 29.4.0 + jest-util: 29.4.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate dev: true /jest-environment-node/29.3.1: resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.3.1 - '@jest/fake-timers': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.10 - jest-mock: 29.3.1 - jest-util: 29.3.1 + '@jest/environment': 29.4.0 + '@jest/fake-timers': 29.4.0 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 + jest-mock: 29.4.0 + jest-util: 29.4.0 dev: true /jest-get-type/29.2.0: @@ -6666,14 +6781,14 @@ packages: resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 '@types/graceful-fs': 4.1.5 - '@types/node': 18.11.10 + '@types/node': 18.11.18 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 jest-regex-util: 29.2.0 - jest-util: 29.3.1 + jest-util: 29.4.0 jest-worker: 29.3.1 micromatch: 4.0.5 walker: 1.0.8 @@ -6696,7 +6811,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 - pretty-format: 29.3.1 + pretty-format: 29.4.0 dev: true /jest-matcher-utils/29.3.1: @@ -6706,20 +6821,20 @@ packages: chalk: 4.1.2 jest-diff: 29.3.1 jest-get-type: 29.2.0 - pretty-format: 29.3.1 + pretty-format: 29.4.0 dev: true - /jest-message-util/29.3.1: - resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==} + /jest-message-util/29.4.0: + resolution: {integrity: sha512-0FvobqymmhE9pDEifvIcni9GeoKLol8eZspzH5u41g1wxYtLS60a9joT95dzzoCgrKRidNz64eaAXyzaULV8og==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.18.6 - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 - pretty-format: 29.3.1 + pretty-format: 29.4.0 slash: 3.0.0 stack-utils: 2.0.5 dev: true @@ -6728,9 +6843,18 @@ packages: resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.3.1 - '@types/node': 18.11.10 - jest-util: 29.3.1 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 + jest-util: 29.4.0 + dev: true + + /jest-mock/29.4.0: + resolution: {integrity: sha512-+ShT5i+hcu/OFQRV0f/V/YtwpdFcHg64JZ9A8b40JueP+X9HNrZAYGdkupGIzsUK8AucecxCt4wKauMchxubLQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.4.0 + '@types/node': 18.11.18 + jest-util: 29.4.0 dev: true /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1: @@ -6768,7 +6892,7 @@ packages: graceful-fs: 4.2.10 jest-haste-map: 29.3.1 jest-pnp-resolver: 1.2.2_jest-resolve@29.3.1 - jest-util: 29.3.1 + jest-util: 29.4.0 jest-validate: 29.3.1 resolve: 1.22.1 resolve.exports: 1.1.0 @@ -6780,11 +6904,11 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.3.1 - '@jest/environment': 29.3.1 + '@jest/environment': 29.4.0 '@jest/test-result': 29.3.1 '@jest/transform': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.10 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -6792,10 +6916,10 @@ packages: jest-environment-node: 29.3.1 jest-haste-map: 29.3.1 jest-leak-detector: 29.3.1 - jest-message-util: 29.3.1 + jest-message-util: 29.4.0 jest-resolve: 29.3.1 jest-runtime: 29.3.1 - jest-util: 29.3.1 + jest-util: 29.4.0 jest-watcher: 29.3.1 jest-worker: 29.3.1 p-limit: 3.1.0 @@ -6808,26 +6932,26 @@ packages: resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.3.1 - '@jest/fake-timers': 29.3.1 + '@jest/environment': 29.4.0 + '@jest/fake-timers': 29.4.0 '@jest/globals': 29.3.1 '@jest/source-map': 29.2.0 '@jest/test-result': 29.3.1 '@jest/transform': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.10 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 jest-haste-map: 29.3.1 - jest-message-util: 29.3.1 - jest-mock: 29.3.1 + jest-message-util: 29.4.0 + jest-mock: 29.4.0 jest-regex-util: 29.2.0 jest-resolve: 29.3.1 jest-snapshot: 29.3.1 - jest-util: 29.3.1 + jest-util: 29.4.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: @@ -6846,7 +6970,7 @@ packages: '@babel/types': 7.20.7 '@jest/expect-utils': 29.3.1 '@jest/transform': 29.3.1 - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 '@types/babel__traverse': 7.17.1 '@types/prettier': 2.6.3 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 @@ -6857,21 +6981,21 @@ packages: jest-get-type: 29.2.0 jest-haste-map: 29.3.1 jest-matcher-utils: 29.3.1 - jest-message-util: 29.3.1 - jest-util: 29.3.1 + jest-message-util: 29.4.0 + jest-util: 29.4.0 natural-compare: 1.4.0 - pretty-format: 29.3.1 + pretty-format: 29.4.0 semver: 7.3.8 transitivePeerDependencies: - supports-color dev: true - /jest-util/29.3.1: - resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==} + /jest-util/29.4.0: + resolution: {integrity: sha512-lCCwlze7UEV8TpR9ArS8w0cTbcMry5tlBkg7QSc5og5kNyV59dnY2aKHu5fY2k5aDJMQpCUGpvL2w6ZU44lveA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.3.1 - '@types/node': 18.11.10 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 chalk: 4.1.2 ci-info: 3.3.2 graceful-fs: 4.2.10 @@ -6882,12 +7006,12 @@ packages: resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.3.1 + '@jest/types': 29.4.0 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 29.2.0 leven: 3.1.0 - pretty-format: 29.3.1 + pretty-format: 29.4.0 dev: true /jest-watcher/29.3.1: @@ -6895,12 +7019,12 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.3.1 - '@jest/types': 29.3.1 - '@types/node': 18.11.10 + '@jest/types': 29.4.0 + '@types/node': 18.11.18 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.3.1 + jest-util: 29.4.0 string-length: 4.0.2 dev: true @@ -6908,8 +7032,8 @@ packages: resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.11.10 - jest-util: 29.3.1 + '@types/node': 18.11.18 + jest-util: 29.4.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -6961,6 +7085,47 @@ packages: argparse: 2.0.1 dev: true + /jsdom/20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.2 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.12.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsesc/0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -7116,6 +7281,14 @@ packages: engines: {node: '>=6'} dev: true + /levn/0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: true + /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -7670,6 +7843,7 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 + dev: true /node-gyp-build/4.5.0: resolution: {integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==} @@ -7843,6 +8017,10 @@ packages: set-blocking: 2.0.0 dev: true + /nwsapi/2.2.2: + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + dev: true + /nx/15.4.5: resolution: {integrity: sha512-1spZL6sgOV8JJJuN8W5CLtJYwTOnlyaV32jPXfidavU0QMS8MP+rW3+NUQ9Uzc1UYhOu8llZWtnen93neVGQRw==} hasBin: true @@ -7997,6 +8175,18 @@ packages: is-wsl: 2.2.0 dev: true + /optionator/0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.3 + dev: true + /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -8212,6 +8402,12 @@ packages: parse-path: 7.0.0 dev: true + /parse5/7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.4.0 + dev: true + /path-exists/3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -8300,6 +8496,11 @@ packages: find-up: 4.1.0 dev: true + /prelude-ls/1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + dev: true + /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -8315,7 +8516,16 @@ packages: resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.0.0 + '@jest/schemas': 29.4.0 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /pretty-format/29.4.0: + resolution: {integrity: sha512-J+EVUPXIBHCdWAbvGBwXs0mk3ljGppoh/076g1S8qYS8nVG4u/yrhMvyTFHYYYKWnDdgRLExx0vA7pzxVGdlNw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.4.0 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true @@ -8388,6 +8598,10 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true + /psl/1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} @@ -8398,6 +8612,10 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true + /querystringify/2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -8605,6 +8823,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /requires-port/1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + /resolve-cwd/3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -8787,6 +9009,13 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true + /saxes/6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -9186,6 +9415,10 @@ packages: engines: {node: '>= 0.4'} dev: true + /symbol-tree/3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + /tar-stream/2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -9279,8 +9512,26 @@ packages: is-number: 7.0.0 dev: true + /tough-cookie/4.1.2: + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.1.1 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + /tr46/0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /tr46/3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.1.1 + dev: true /treeverse/2.0.0: resolution: {integrity: sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A==} @@ -9292,7 +9543,7 @@ packages: engines: {node: '>=8'} dev: true - /ts-node/10.8.2_pdhdgy3lb7m4vyjxkl5qaywlx4: + /ts-node/10.8.2_awa2wsr5thmg3i7jqycphctjfq: resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==} hasBin: true peerDependencies: @@ -9311,8 +9562,8 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.11.10 - acorn: 8.8.0 + '@types/node': 18.11.18 + acorn: 8.8.2 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 @@ -9359,6 +9610,13 @@ packages: typescript: 4.9.4 dev: true + /type-check/0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + dev: true + /type-check/0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -9497,6 +9755,11 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /universalify/0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + /universalify/2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -9524,6 +9787,13 @@ packages: punycode: 2.1.1 dev: true + /url-parse/1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true @@ -9578,6 +9848,13 @@ packages: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: true + /w3c-xmlserializer/4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + /walk-up-path/1.0.0: resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} dev: true @@ -9596,12 +9873,39 @@ packages: /webidl-conversions/3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /webidl-conversions/7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /whatwg-encoding/2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-mimetype/3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url/11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true /whatwg-url/5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: true /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -9744,10 +10048,32 @@ packages: write-json-file: 3.2.0 dev: true + /ws/8.12.0: + resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xml-name-validator/4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + /xml/1.0.1: resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} dev: true + /xmlchars/2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} diff --git a/rollup.config.mjs b/rollup.config.mjs index 72f341a8a..d91a54472 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -1,6 +1,5 @@ import { babel } from '@rollup/plugin-babel' import commonjs from '@rollup/plugin-commonjs' -import inject from '@rollup/plugin-inject' import { nodeResolve } from '@rollup/plugin-node-resolve' import { dirname } from 'path' import { readPackage } from 'read-pkg' @@ -12,7 +11,7 @@ const PROFILE = !!process.env.PROFILE const pkg = await readPackage() const targets = node => node ? ` - node > 14 + node > 18 ` : ` > 1%, last 2 versions, @@ -48,12 +47,6 @@ const plugins = ({node}) => [ ['@babel/env', { loose: true, modules: false, targets: targets(node) }], ], }), - node && inject({ - fetch: 'cross-fetch', - Request: ['cross-fetch', 'Request'], - Response: ['cross-fetch', 'Response'], - Headers: ['cross-fetch', 'Headers'], - }), commonjs(), nodeResolve({ extensions: ['.mjs', '.js', '.json', '.ts', '.tsx'], @@ -80,7 +73,7 @@ export default [ }, plugins: plugins({ node: false }) }, - // specific build for node (inject cross-fetch & use cjs bundle) + // specific build for node (use cjs bundle) pkg.main !== pkg.module && { external, input: './src/index.ts', diff --git a/tsconfig.json b/tsconfig.json index ccae4d41c..f0e00956a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,10 @@ { "compilerOptions": { "noEmit": true, - "lib": ["es2021"], + "lib": ["ES2022", "DOM", "DOM.Iterable"], "module": "commonjs", "moduleResolution": "node", - "target": "es6", + "target": "ES2022", "strict": true, "alwaysStrict": true, "forceConsistentCasingInFileNames": true,