From 9e24140a730d41c4eb27bdec5f1eea659bdab507 Mon Sep 17 00:00:00 2001 From: Matthieu Sieben Date: Tue, 6 Feb 2024 20:00:48 +0100 Subject: [PATCH] wip --- .eslintrc | 29 +- babel.config.js | 3 - jest.config.js | 4 - package.json | 20 +- packages/api/babel.config.js | 3 - packages/api/build.js | 15 - packages/api/jest.config.js | 7 +- packages/api/jest.d.ts | 20 + packages/api/jest.setup.ts | 79 + packages/api/package.json | 13 +- packages/api/tests/profile-moderation.test.ts | 2 + .../api/tests/util/moderation-behavior.ts | 82 +- packages/api/tsconfig.build.json | 8 +- packages/api/tsconfig.json | 13 +- packages/api/tsconfig.scripts.json | 8 + packages/api/tsconfig.test.json | 14 + packages/aws/build.js | 14 - packages/aws/package.json | 14 +- packages/aws/src/s3.ts | 13 +- packages/aws/tsconfig.build.json | 8 +- packages/aws/tsconfig.json | 8 +- packages/bsky/babel.config.js | 3 - ...igration-create.ts => migration-create.js} | 8 +- packages/bsky/build.js | 19 - packages/bsky/jest.config.js | 6 +- packages/bsky/jest.setup.ts | 3 + packages/bsky/package.json | 15 +- packages/bsky/tests/feed-generation.test.ts | 4 +- packages/bsky/tests/indexing.test.ts | 2 +- packages/bsky/tests/subscription/repo.test.ts | 4 +- packages/bsky/tests/subscription/util.test.ts | 3 +- packages/bsky/tests/views/blocks.test.ts | 8 +- packages/bsky/tests/views/thread.test.ts | 2 +- packages/bsky/tsconfig.build.json | 8 +- packages/bsky/tsconfig.json | 21 +- packages/bsky/tsconfig.scripts.json | 8 + packages/bsky/tsconfig.test.json | 7 + packages/common-web/babel.config.js | 1 - packages/common-web/build.js | 15 - packages/common-web/jest.config.js | 7 +- packages/common-web/package.json | 14 +- packages/common-web/src/util.ts | 4 +- packages/common-web/tsconfig.build.json | 8 +- packages/common-web/tsconfig.json | 13 +- packages/common-web/tsconfig.scripts.json | 7 + packages/common-web/tsconfig.test.json | 7 + packages/common/babel.config.js | 1 - packages/common/build.js | 14 - packages/common/jest.config.js | 7 +- packages/common/package.json | 18 +- packages/common/src/fs.ts | 11 +- packages/common/src/ipld.ts | 11 +- packages/common/src/streams.ts | 2 +- packages/common/tests/streams.test.ts | 2 +- packages/common/tsconfig.build.json | 8 +- packages/common/tsconfig.json | 14 +- packages/common/tsconfig.scripts.json | 7 + packages/common/tsconfig.test.json | 7 + packages/crypto/build.js | 14 - packages/crypto/jest.config.js | 7 +- packages/crypto/package.json | 14 +- packages/crypto/src/p256/operations.ts | 5 +- packages/crypto/tsconfig.build.json | 8 +- packages/crypto/tsconfig.json | 13 +- packages/crypto/tsconfig.scripts.json | 7 + packages/crypto/tsconfig.test.json | 7 + packages/dev-env/build.js | 27 - packages/dev-env/package.json | 16 +- packages/dev-env/src/feed-gen.ts | 4 +- packages/dev-env/src/mock/index.ts | 2 +- packages/dev-env/src/network-no-appview.ts | 2 +- packages/dev-env/src/pds.ts | 2 +- packages/dev-env/src/seed/client.ts | 1 + packages/dev-env/tsconfig.build.json | 15 +- packages/dev-env/tsconfig.json | 18 +- packages/identity/babel.config.js | 3 - packages/identity/build.js | 15 - packages/identity/jest.config.js | 7 +- packages/identity/jest.setup.ts | 3 + packages/identity/package.json | 17 +- packages/identity/tsconfig.build.json | 8 +- packages/identity/tsconfig.json | 13 +- packages/identity/tsconfig.scripts.json | 8 + packages/identity/tsconfig.test.json | 7 + packages/lex-cli/babel.config.js | 1 - packages/lex-cli/build.js | 14 - packages/lex-cli/package.json | 17 +- packages/lex-cli/tsconfig.build.json | 8 +- packages/lex-cli/tsconfig.json | 12 +- packages/lexicon/build.js | 14 - packages/lexicon/jest.config.js | 7 +- packages/lexicon/package.json | 14 +- packages/lexicon/tsconfig.build.json | 8 +- packages/lexicon/tsconfig.json | 14 +- packages/lexicon/tsconfig.scripts.json | 7 + packages/lexicon/tsconfig.test.json | 7 + packages/ozone/src/auth.ts | 13 +- packages/pds-templates/build.js | 18 + packages/pds-templates/package.json | 33 + packages/pds-templates/src/index.ts | 1 + .../src/mailer}/confirm-email.hbs | 0 .../src/mailer}/delete-account.hbs | 0 packages/pds-templates/src/mailer/index.ts | 11 + .../src/mailer}/reset-password.hbs | 0 .../src/mailer}/update-email.hbs | 0 packages/pds-templates/tsconfig.build.json | 10 + packages/pds-templates/tsconfig.json | 7 + packages/pds-templates/tsconfig.scripts.json | 8 + .../{pds/src => pds-templates}/types.d.ts | 0 packages/pds/babel.config.js | 3 - ...igration-create.ts => migration-create.js} | 8 +- packages/pds/build.js | 27 - packages/pds/jest.bench.config.js | 8 - packages/pds/jest.config.js | 7 +- packages/pds/jest.setup.ts | 3 + packages/pds/package.json | 18 +- packages/pds/src/mailer/index.ts | 13 +- packages/pds/src/mailer/templates.ts | 7 - packages/pds/tests/auth.test.ts | 4 +- packages/pds/tests/crud.test.ts | 8 +- packages/pds/tests/proxied/admin.test.ts | 4 +- packages/pds/tsconfig.build.json | 11 +- packages/pds/tsconfig.json | 23 +- packages/pds/tsconfig.scripts.json | 8 + packages/pds/tsconfig.test.json | 7 + packages/repo/babel.config.js | 1 - packages/repo/bench/mst.bench.ts | 9 +- packages/repo/bench/repo.bench.ts | 1 + packages/repo/build.js | 14 - packages/repo/jest.config.js | 7 +- packages/repo/mst-benchmarks | 44 + packages/repo/package.json | 14 +- packages/repo/tests/_util.ts | 5 +- packages/repo/tsconfig.build.json | 8 +- packages/repo/tsconfig.json | 15 +- packages/repo/tsconfig.scripts.json | 7 + packages/repo/tsconfig.test.json | 7 + packages/syntax/babel.config.js | 1 - packages/syntax/build.js | 22 - packages/syntax/jest.config.js | 7 +- packages/syntax/package.json | 15 +- packages/syntax/tsconfig.build.json | 8 +- packages/syntax/tsconfig.json | 14 +- packages/syntax/tsconfig.scripts.json | 7 + packages/syntax/tsconfig.test.json | 7 + packages/xrpc-server/babel.config.js | 1 - packages/xrpc-server/build.js | 14 - packages/xrpc-server/jest.config.js | 6 +- packages/xrpc-server/package.json | 14 +- packages/xrpc-server/src/server.ts | 4 +- packages/xrpc-server/tests/errors.test.ts | 2 +- packages/xrpc-server/tsconfig.build.json | 8 +- packages/xrpc-server/tsconfig.json | 15 +- packages/xrpc-server/tsconfig.scripts.json | 7 + packages/xrpc-server/tsconfig.test.json | 7 + packages/xrpc/babel.config.js | 1 - packages/xrpc/build.js | 14 - packages/xrpc/package.json | 15 +- packages/xrpc/tsconfig.build.json | 8 +- packages/xrpc/tsconfig.json | 13 +- pnpm-lock.yaml | 2561 +++++++---------- services/bsky/Dockerfile | 4 +- services/pds/Dockerfile | 5 +- test-setup.ts | 3 - tsconfig.build.json | 21 + tsconfig.json | 42 +- tsconfig.scripts.json | 4 + tsconfig/base.json | 35 + tsconfig/scripts.json | 10 + tsconfig/test.json | 7 + update-main-to-dist.js | 9 - 171 files changed, 1936 insertions(+), 2409 deletions(-) delete mode 100644 babel.config.js delete mode 100644 packages/api/babel.config.js delete mode 100644 packages/api/build.js create mode 100644 packages/api/jest.d.ts create mode 100644 packages/api/jest.setup.ts create mode 100644 packages/api/tsconfig.scripts.json create mode 100644 packages/api/tsconfig.test.json delete mode 100644 packages/aws/build.js delete mode 100644 packages/bsky/babel.config.js rename packages/bsky/bin/{migration-create.ts => migration-create.js} (88%) delete mode 100644 packages/bsky/build.js create mode 100644 packages/bsky/jest.setup.ts create mode 100644 packages/bsky/tsconfig.scripts.json create mode 100644 packages/bsky/tsconfig.test.json delete mode 100644 packages/common-web/babel.config.js delete mode 100644 packages/common-web/build.js create mode 100644 packages/common-web/tsconfig.scripts.json create mode 100644 packages/common-web/tsconfig.test.json delete mode 100644 packages/common/babel.config.js delete mode 100644 packages/common/build.js create mode 100644 packages/common/tsconfig.scripts.json create mode 100644 packages/common/tsconfig.test.json delete mode 100644 packages/crypto/build.js create mode 100644 packages/crypto/tsconfig.scripts.json create mode 100644 packages/crypto/tsconfig.test.json delete mode 100644 packages/dev-env/build.js delete mode 100644 packages/identity/babel.config.js delete mode 100644 packages/identity/build.js create mode 100644 packages/identity/jest.setup.ts create mode 100644 packages/identity/tsconfig.scripts.json create mode 100644 packages/identity/tsconfig.test.json delete mode 100644 packages/lex-cli/babel.config.js delete mode 100644 packages/lex-cli/build.js delete mode 100644 packages/lexicon/build.js create mode 100644 packages/lexicon/tsconfig.scripts.json create mode 100644 packages/lexicon/tsconfig.test.json create mode 100644 packages/pds-templates/build.js create mode 100644 packages/pds-templates/package.json create mode 100644 packages/pds-templates/src/index.ts rename packages/{pds/src/mailer/templates => pds-templates/src/mailer}/confirm-email.hbs (100%) rename packages/{pds/src/mailer/templates => pds-templates/src/mailer}/delete-account.hbs (100%) create mode 100644 packages/pds-templates/src/mailer/index.ts rename packages/{pds/src/mailer/templates => pds-templates/src/mailer}/reset-password.hbs (100%) rename packages/{pds/src/mailer/templates => pds-templates/src/mailer}/update-email.hbs (100%) create mode 100644 packages/pds-templates/tsconfig.build.json create mode 100644 packages/pds-templates/tsconfig.json create mode 100644 packages/pds-templates/tsconfig.scripts.json rename packages/{pds/src => pds-templates}/types.d.ts (100%) delete mode 100644 packages/pds/babel.config.js rename packages/pds/bin/{migration-create.ts => migration-create.js} (88%) delete mode 100644 packages/pds/build.js delete mode 100644 packages/pds/jest.bench.config.js create mode 100644 packages/pds/jest.setup.ts delete mode 100644 packages/pds/src/mailer/templates.ts create mode 100644 packages/pds/tsconfig.scripts.json create mode 100644 packages/pds/tsconfig.test.json delete mode 100644 packages/repo/babel.config.js delete mode 100644 packages/repo/build.js create mode 100644 packages/repo/mst-benchmarks create mode 100644 packages/repo/tsconfig.scripts.json create mode 100644 packages/repo/tsconfig.test.json delete mode 100644 packages/syntax/babel.config.js delete mode 100644 packages/syntax/build.js create mode 100644 packages/syntax/tsconfig.scripts.json create mode 100644 packages/syntax/tsconfig.test.json delete mode 100644 packages/xrpc-server/babel.config.js delete mode 100644 packages/xrpc-server/build.js create mode 100644 packages/xrpc-server/tsconfig.scripts.json create mode 100644 packages/xrpc-server/tsconfig.test.json delete mode 100644 packages/xrpc/babel.config.js delete mode 100644 packages/xrpc/build.js delete mode 100644 test-setup.ts create mode 100644 tsconfig.build.json create mode 100644 tsconfig.scripts.json create mode 100644 tsconfig/base.json create mode 100644 tsconfig/scripts.json create mode 100644 tsconfig/test.json delete mode 100644 update-main-to-dist.js diff --git a/.eslintrc b/.eslintrc index 11c6e76318a..e720f5364d9 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,20 +9,13 @@ "extends": [ "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended", - "prettier" - ], - "ignorePatterns": [ - "dist", - "node_modules", - "jest.config.base.js", - "jest.bench.config.js", - "jest.config.js", - "babel.config.js", - "build.js", - "update-pkg.js" + "plugin:@typescript-eslint/recommended" ], + "env": { + "node": true, + "browser": true + }, + "ignorePatterns": ["dist", "node_modules"], "rules": { "no-var": "error", "prefer-const": "warn", @@ -36,5 +29,13 @@ "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-explicit-any": "off" - } + }, + "overrides": [ + { + "files": ["*.js"], + "rules": { + "@typescript-eslint/no-var-requires": "off" + } + } + ] } diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index ee58f35df11..00000000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [['@babel/preset-env']], -} diff --git a/jest.config.js b/jest.config.js index 2366503d1d3..1acc73533d0 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,7 +1,3 @@ -// jest.config.js -const base = require('./jest.config.base.js') - module.exports = { - ...base, projects: ['/packages/*/jest.config.js'], } diff --git a/package.json b/package.json index 7fe531a530f..a58ee45ed27 100644 --- a/package.json +++ b/package.json @@ -10,23 +10,22 @@ }, "scripts": { "lint:fix": "pnpm lint --fix", - "lint": "eslint . --ext .ts,.tsx", - "verify": "prettier --check . && pnpm lint", + "lint": "eslint . --ext .ts,.js", + "verify": "prettier --check . && pnpm lint && pnpm verify:types", + "verify:types": "tsc --build tsconfig.json --verbose --force", "format": "prettier --write .", - "build": "pnpm -r --stream build", - "update-main-to-dist": "pnpm -r --stream update-main-to-dist", - "test": "LOG_ENABLED=false NODE_ENV=development ./packages/dev-infra/with-test-redis-and-db.sh pnpm --stream -r test", - "test:withFlags": "LOG_ENABLED=false NODE_ENV=development ./packages/dev-infra/with-test-redis-and-db.sh pnpm --stream -r test --", + "build": "npm-run-all build:tsc build:packages", + "build:tsc": "NODE_ENV=production tsc --build tsconfig.build.json --verbose --force", + "build:packages": "NODE_ENV=production pnpm run --recursive build", + "test": "LOG_ENABLED=false NODE_ENV=development ./packages/dev-infra/with-test-redis-and-db.sh jest", + "test:withFlags": "LOG_ENABLED=false NODE_ENV=development ./packages/dev-infra/with-test-redis-and-db.sh jest --", "changeset": "changeset", "release": "pnpm build && changeset publish", "version-packages": "changeset version && git add ." }, "devDependencies": { - "@babel/core": "^7.18.6", - "@babel/preset-env": "^7.18.6", "@changesets/changelog-github": "^0.4.8", "@changesets/cli": "^2.26.2", - "@npmcli/package-json": "^3.0.0", "@swc/core": "^1.3.42", "@swc/jest": "^0.2.24", "@types/jest": "^28.1.4", @@ -42,8 +41,9 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", "handlebars-jest": "^1.0.0", - "jest": "^28.1.2", + "jest": "^29.7.0", "node-gyp": "^9.3.1", + "npm-run-all": "^4.1.5", "pino-pretty": "^9.1.0", "prettier": "^2.7.1", "prettier-config-standard": "^5.0.0", diff --git a/packages/api/babel.config.js b/packages/api/babel.config.js deleted file mode 100644 index ee58f35df11..00000000000 --- a/packages/api/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [['@babel/preset-env']], -} diff --git a/packages/api/build.js b/packages/api/build.js deleted file mode 100644 index 30fbe7cea56..00000000000 --- a/packages/api/build.js +++ /dev/null @@ -1,15 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'browser', - format: 'cjs', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/api/jest.config.js b/packages/api/jest.config.js index d8abff65a6f..c95ba5dc426 100644 --- a/packages/api/jest.config.js +++ b/packages/api/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'API', + transform: { '^.+\\.(t|j)s?$': '@swc/jest' }, + transformIgnorePatterns: [`/node_modules/(?!get-port)`], + setupFiles: ['/jest.setup.ts'], } diff --git a/packages/api/jest.d.ts b/packages/api/jest.d.ts new file mode 100644 index 00000000000..2fb3b38b470 --- /dev/null +++ b/packages/api/jest.d.ts @@ -0,0 +1,20 @@ +declare namespace jest { + // eslint-disable-next-line + interface Matchers { + toBeModerationResult( + expected: ModerationBehaviorResult | undefined, + context: string, + stringifiedResult: string, + ignoreCause?: boolean, + ): R + } + + interface Expect { + toBeModerationResult( + expected: ModerationBehaviorResult | undefined, + context: string, + stringifiedResult: string, + ignoreCause?: boolean, + ): void + } +} diff --git a/packages/api/jest.setup.ts b/packages/api/jest.setup.ts new file mode 100644 index 00000000000..eb2647bbb6c --- /dev/null +++ b/packages/api/jest.setup.ts @@ -0,0 +1,79 @@ +import { ModerationBehaviorResult } from './definitions/moderation-behaviors' +import { ModerationUI } from './src' + +expect.extend({ + toBeModerationResult( + actual: ModerationUI, + expected: ModerationBehaviorResult | undefined, + context: string, + stringifiedResult: string, + ignoreCause = false, + ) { + const fail = (msg: string) => ({ + pass: false, + message: () => `${msg}. Full result: ${stringifiedResult}`, + }) + let cause = actual.cause?.type as string + if (actual.cause?.type === 'label') { + cause = `label:${actual.cause.labelDef.id}` + } else if (actual.cause?.type === 'muted') { + if (actual.cause.source.type === 'list') { + cause = 'muted-by-list' + } + } else if (actual.cause?.type === 'blocking') { + if (actual.cause.source.type === 'list') { + cause = 'blocking-by-list' + } + } + if (!expected) { + if (!ignoreCause && actual.cause) { + return fail(`${context} expected to be a no-op, got ${cause}`) + } + if (actual.alert) { + return fail(`${context} expected to be a no-op, got alert=true`) + } + if (actual.blur) { + return fail(`${context} expected to be a no-op, got blur=true`) + } + if (actual.filter) { + return fail(`${context} expected to be a no-op, got filter=true`) + } + if (actual.noOverride) { + return fail(`${context} expected to be a no-op, got noOverride=true`) + } + } else { + if (!ignoreCause && cause !== expected.cause) { + return fail(`${context} expected to be ${expected.cause}, got ${cause}`) + } + if (!!actual.alert !== !!expected.alert) { + return fail( + `${context} expected to be alert=${expected.alert || false}, got ${ + actual.alert || false + }`, + ) + } + if (!!actual.blur !== !!expected.blur) { + return fail( + `${context} expected to be blur=${expected.blur || false}, got ${ + actual.blur || false + }`, + ) + } + if (!!actual.filter !== !!expected.filter) { + return fail( + `${context} expected to be filter=${expected.filter || false}, got ${ + actual.filter || false + }`, + ) + } + if (!!actual.noOverride !== !!expected.noOverride) { + return fail( + `${context} expected to be noOverride=${ + expected.noOverride || false + }, got ${actual.noOverride || false}`, + ) + } + } + return { pass: true, message: () => '' } + }, +}) diff --git a/packages/api/package.json b/packages/api/package.json index e00c9438d2f..4af0fa60a8d 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -14,17 +14,12 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/api" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { "codegen": "pnpm docgen && node ./scripts/generate-code.mjs && lex gen-api ./src/client ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/*", "docgen": "node ./scripts/generate-docs.mjs", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/api", "test": "jest", "bench": "jest --config jest.bench.config.js", "bench:profile": "node --inspect-brk ../../node_modules/.bin/jest --config jest.bench.config.js" @@ -36,11 +31,11 @@ "@atproto/xrpc": "workspace:^", "multiformats": "^9.9.0", "tlds": "^1.234.0", + "tslib": "^2.6.2", "typed-emitter": "^2.1.0", "zod": "^3.21.4" }, "devDependencies": { - "@atproto/lex-cli": "workspace:^", "@atproto/dev-env": "workspace:^", "common-tags": "^1.8.2" } diff --git a/packages/api/tests/profile-moderation.test.ts b/packages/api/tests/profile-moderation.test.ts index bca63857c30..a6c2c1fbad4 100644 --- a/packages/api/tests/profile-moderation.test.ts +++ b/packages/api/tests/profile-moderation.test.ts @@ -26,11 +26,13 @@ describe('Post moderation behaviors', () => { suiteRunner.moderationOpts(scenario), ) expect(res.account).toBeModerationResult( + // @ts-expect-error TODO FIXME scenario.behaviors.account, 'account', JSON.stringify(res, null, 2), ) expect(res.profile).toBeModerationResult( + // @ts-expect-error TODO FIXME scenario.behaviors.profile, 'profile content', JSON.stringify(res, null, 2), diff --git a/packages/api/tests/util/moderation-behavior.ts b/packages/api/tests/util/moderation-behavior.ts index cc7a101e11f..ab6fe30686d 100644 --- a/packages/api/tests/util/moderation-behavior.ts +++ b/packages/api/tests/util/moderation-behavior.ts @@ -1,88 +1,10 @@ -import { ModerationUI, ModerationOpts, ComAtprotoLabelDefs } from '../../src' import type { - ModerationBehaviors, ModerationBehaviorScenario, - ModerationBehaviorResult, + ModerationBehaviors, } from '../../definitions/moderation-behaviors' +import { ComAtprotoLabelDefs, ModerationOpts } from '../../src' import { mock as m } from './index' -expect.extend({ - toBeModerationResult( - actual: ModerationUI, - expected: ModerationBehaviorResult | undefined, - context: string, - stringifiedResult: string, - ignoreCause = false, - ) { - const fail = (msg: string) => ({ - pass: false, - message: () => `${msg}. Full result: ${stringifiedResult}`, - }) - let cause = actual.cause?.type as string - if (actual.cause?.type === 'label') { - cause = `label:${actual.cause.labelDef.id}` - } else if (actual.cause?.type === 'muted') { - if (actual.cause.source.type === 'list') { - cause = 'muted-by-list' - } - } else if (actual.cause?.type === 'blocking') { - if (actual.cause.source.type === 'list') { - cause = 'blocking-by-list' - } - } - if (!expected) { - if (!ignoreCause && actual.cause) { - return fail(`${context} expected to be a no-op, got ${cause}`) - } - if (actual.alert) { - return fail(`${context} expected to be a no-op, got alert=true`) - } - if (actual.blur) { - return fail(`${context} expected to be a no-op, got blur=true`) - } - if (actual.filter) { - return fail(`${context} expected to be a no-op, got filter=true`) - } - if (actual.noOverride) { - return fail(`${context} expected to be a no-op, got noOverride=true`) - } - } else { - if (!ignoreCause && cause !== expected.cause) { - return fail(`${context} expected to be ${expected.cause}, got ${cause}`) - } - if (!!actual.alert !== !!expected.alert) { - return fail( - `${context} expected to be alert=${expected.alert || false}, got ${ - actual.alert || false - }`, - ) - } - if (!!actual.blur !== !!expected.blur) { - return fail( - `${context} expected to be blur=${expected.blur || false}, got ${ - actual.blur || false - }`, - ) - } - if (!!actual.filter !== !!expected.filter) { - return fail( - `${context} expected to be filter=${expected.filter || false}, got ${ - actual.filter || false - }`, - ) - } - if (!!actual.noOverride !== !!expected.noOverride) { - return fail( - `${context} expected to be noOverride=${ - expected.noOverride || false - }, got ${actual.noOverride || false}`, - ) - } - } - return { pass: true, message: () => '' } - }, -}) - export class ModerationBehaviorSuiteRunner { constructor(public suite: ModerationBehaviors) {} diff --git a/packages/api/tsconfig.build.json b/packages/api/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/api/tsconfig.build.json +++ b/packages/api/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json index 22ed93bd63f..3a6b5de37bd 100644 --- a/packages/api/tsconfig.json +++ b/packages/api/tsconfig.json @@ -1,13 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src"], + "include": [], "references": [ - { "path": "../xrpc/tsconfig.build.json" }, - { "path": "../lex-cli/tsconfig.build.json" } + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } ] } diff --git a/packages/api/tsconfig.scripts.json b/packages/api/tsconfig.scripts.json new file mode 100644 index 00000000000..e31ca937eee --- /dev/null +++ b/packages/api/tsconfig.scripts.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"], + "exclude": ["node_modules", "./jest.setup.ts"] +} diff --git a/packages/api/tsconfig.test.json b/packages/api/tsconfig.test.json new file mode 100644 index 00000000000..780d44d4247 --- /dev/null +++ b/packages/api/tsconfig.test.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": ".", + "types": ["node", "jest", "./jest.d.ts"] + }, + "include": ["./tests", "./jest.setup.ts"], + "exclude": [ + "node_modules", + "./tests/agent.test.ts", + "./tests/bsky-agent.test.ts", + "./tests/error.test.ts" + ] +} diff --git a/packages/aws/build.js b/packages/aws/build.js deleted file mode 100644 index e880ae9930b..00000000000 --- a/packages/aws/build.js +++ /dev/null @@ -1,14 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/aws/package.json b/packages/aws/package.json index 949cfaa845e..7f4f64936cd 100644 --- a/packages/aws/package.json +++ b/packages/aws/package.json @@ -13,16 +13,9 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/aws" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/src/index.d.ts" - }, - "scripts": { - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/aws" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "dependencies": { "@atproto/common": "workspace:^", "@atproto/crypto": "workspace:^", @@ -34,6 +27,7 @@ "@noble/curves": "^1.1.0", "key-encoder": "^2.0.3", "multiformats": "^9.9.0", + "tslib": "^2.6.2", "uint8arrays": "3.0.0" } } diff --git a/packages/aws/src/s3.ts b/packages/aws/src/s3.ts index fc27d7a71f5..110d9ed0e53 100644 --- a/packages/aws/src/s3.ts +++ b/packages/aws/src/s3.ts @@ -1,9 +1,9 @@ +import { Readable } from 'node:stream' import * as aws from '@aws-sdk/client-s3' import { Upload } from '@aws-sdk/lib-storage' import { BlobStore, BlobNotFoundError } from '@atproto/repo' import { randomStr } from '@atproto/crypto' import { CID } from 'multiformats/cid' -import stream from 'stream' export type S3Config = { bucket: string } & Omit< aws.S3ClientConfig, @@ -48,7 +48,7 @@ export class S3BlobStore implements BlobStore { return `quarantine/${this.did}/${cid.toString()}` } - async putTemp(bytes: Uint8Array | stream.Readable): Promise { + async putTemp(bytes: Uint8Array | Readable): Promise { const key = this.genKey() await new Upload({ client: this.client, @@ -74,10 +74,7 @@ export class S3BlobStore implements BlobStore { } } - async putPermanent( - cid: CID, - bytes: Uint8Array | stream.Readable, - ): Promise { + async putPermanent(cid: CID, bytes: Uint8Array | Readable): Promise { await new Upload({ client: this.client, params: { @@ -119,9 +116,9 @@ export class S3BlobStore implements BlobStore { return res.transformToByteArray() } - async getStream(cid: CID): Promise { + async getStream(cid: CID): Promise { const res = await this.getObject(cid) - return res as stream.Readable + return res as Readable } async delete(cid: CID): Promise { diff --git a/packages/aws/tsconfig.build.json b/packages/aws/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/aws/tsconfig.build.json +++ b/packages/aws/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/aws/tsconfig.json b/packages/aws/tsconfig.json index fee83b7f23b..e84b8178b47 100644 --- a/packages/aws/tsconfig.json +++ b/packages/aws/tsconfig.json @@ -1,8 +1,4 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"] + "include": [], + "references": [{ "path": "./tsconfig.build.json" }] } diff --git a/packages/bsky/babel.config.js b/packages/bsky/babel.config.js deleted file mode 100644 index ee58f35df11..00000000000 --- a/packages/bsky/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [['@babel/preset-env']], -} diff --git a/packages/bsky/bin/migration-create.ts b/packages/bsky/bin/migration-create.js similarity index 88% rename from packages/bsky/bin/migration-create.ts rename to packages/bsky/bin/migration-create.js index b51c536c4f2..5c92164de18 100644 --- a/packages/bsky/bin/migration-create.ts +++ b/packages/bsky/bin/migration-create.js @@ -1,9 +1,9 @@ -#!/usr/bin/env ts-node +#!/usr/bin/env node -import * as fs from 'fs/promises' -import * as path from 'path' +const fs = require('node:fs/promises') +const path = require('node:path') -export async function main() { +async function main() { const now = new Date() const prefix = now.toISOString().replace(/[^a-z0-9]/gi, '') // Order of migrations matches alphabetical order of their names const name = process.argv[2] diff --git a/packages/bsky/build.js b/packages/bsky/build.js deleted file mode 100644 index 3822d9bc98f..00000000000 --- a/packages/bsky/build.js +++ /dev/null @@ -1,19 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts', 'src/db/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - external: [ - // Referenced in pg driver, but optional and we don't use it - 'pg-native', - 'sharp', - ], - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/bsky/jest.config.js b/packages/bsky/jest.config.js index 14720ce82eb..4da628892eb 100644 --- a/packages/bsky/jest.config.js +++ b/packages/bsky/jest.config.js @@ -1,6 +1,6 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'Bsky App View', + transform: { '^.+\\.(t|j)s?$': '@swc/jest' }, + setupFiles: ['/jest.setup.ts'], } diff --git a/packages/bsky/jest.setup.ts b/packages/bsky/jest.setup.ts new file mode 100644 index 00000000000..bfddf8df50e --- /dev/null +++ b/packages/bsky/jest.setup.ts @@ -0,0 +1,3 @@ +import { config } from 'dotenv' + +config({ path: './test.env' }) diff --git a/packages/bsky/package.json b/packages/bsky/package.json index 7187e17f1bd..ce95ee48c68 100644 --- a/packages/bsky/package.json +++ b/packages/bsky/package.json @@ -13,17 +13,12 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/bsky" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "bin": "dist/bin.js", "scripts": { "codegen": "lex gen-server ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/*", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/bsky", "start": "node --enable-source-maps dist/bin.js", "test": "../dev-infra/with-test-redis-and-db.sh jest", "test:log": "tail -50 test.log | pino-pretty", @@ -62,6 +57,7 @@ "pino": "^8.15.0", "pino-http": "^8.2.1", "sharp": "^0.32.6", + "tslib": "^2.6.2", "typed-emitter": "^2.1.0", "uint8arrays": "3.0.0" }, @@ -80,6 +76,7 @@ "@types/express-serve-static-core": "^4.17.36", "@types/pg": "^8.6.6", "@types/qs": "^6.9.7", - "axios": "^0.27.2" + "axios": "^0.27.2", + "dotenv": "^16.0.3" } } diff --git a/packages/bsky/tests/feed-generation.test.ts b/packages/bsky/tests/feed-generation.test.ts index 5e63025ff7b..d09d01489d1 100644 --- a/packages/bsky/tests/feed-generation.test.ts +++ b/packages/bsky/tests/feed-generation.test.ts @@ -8,8 +8,8 @@ import { basicSeed, } from '@atproto/dev-env' import { Handler as SkeletonHandler } from '../src/lexicon/types/app/bsky/feed/getFeedSkeleton' -import { GeneratorView } from '@atproto/api/src/client/types/app/bsky/feed/defs' -import { UnknownFeedError } from '@atproto/api/src/client/types/app/bsky/feed/getFeed' +import { GeneratorView } from '@atproto/api/dist/client/types/app/bsky/feed/defs' +import { UnknownFeedError } from '@atproto/api/dist/client/types/app/bsky/feed/getFeed' import { ids } from '../src/lexicon/lexicons' import { FeedViewPost, diff --git a/packages/bsky/tests/indexing.test.ts b/packages/bsky/tests/indexing.test.ts index 3a5a12b7ac6..e6b7a4a6694 100644 --- a/packages/bsky/tests/indexing.test.ts +++ b/packages/bsky/tests/indexing.test.ts @@ -1,7 +1,7 @@ import { sql } from 'kysely' import { CID } from 'multiformats/cid' import { cidForCbor, TID } from '@atproto/common' -import * as pdsRepo from '@atproto/pds/src/repo/prepare' +import * as pdsRepo from '@atproto/pds/dist/repo/prepare' import { WriteOpAction } from '@atproto/repo' import { AtUri } from '@atproto/syntax' import AtpAgent, { diff --git a/packages/bsky/tests/subscription/repo.test.ts b/packages/bsky/tests/subscription/repo.test.ts index fe910c85603..6901da7c2eb 100644 --- a/packages/bsky/tests/subscription/repo.test.ts +++ b/packages/bsky/tests/subscription/repo.test.ts @@ -1,8 +1,8 @@ import AtpAgent from '@atproto/api' import { TestNetwork, SeedClient, basicSeed } from '@atproto/dev-env' import { CommitData } from '@atproto/repo' -import { PreparedWrite } from '@atproto/pds/src/repo' -import * as sequencer from '@atproto/pds/src/sequencer' +import { PreparedWrite } from '@atproto/pds/dist/repo' +import * as sequencer from '@atproto/pds/dist/sequencer' import { cborDecode, cborEncode } from '@atproto/common' import { DatabaseSchemaType } from '../../src/db/database-schema' import { ids } from '../../src/lexicon/lexicons' diff --git a/packages/bsky/tests/subscription/util.test.ts b/packages/bsky/tests/subscription/util.test.ts index 497532f643b..2f97b9da4ab 100644 --- a/packages/bsky/tests/subscription/util.test.ts +++ b/packages/bsky/tests/subscription/util.test.ts @@ -1,10 +1,11 @@ import { wait } from '@atproto/common' +import { randomStr } from '@atproto/crypto' + import { ConsecutiveList, LatestQueue, PartitionedQueue, } from '../../src/subscription/util' -import { randomStr } from '../../../crypto/src' describe('subscription utils', () => { describe('ConsecutiveList', () => { diff --git a/packages/bsky/tests/views/blocks.test.ts b/packages/bsky/tests/views/blocks.test.ts index 2f45477c664..a6755f654b7 100644 --- a/packages/bsky/tests/views/blocks.test.ts +++ b/packages/bsky/tests/views/blocks.test.ts @@ -1,13 +1,13 @@ import assert from 'assert' import { TestNetwork, RecordRef, SeedClient, basicSeed } from '@atproto/dev-env' import AtpAgent, { AtUri } from '@atproto/api' -import { BlockedActorError } from '@atproto/api/src/client/types/app/bsky/feed/getAuthorFeed' -import { BlockedByActorError } from '@atproto/api/src/client/types/app/bsky/feed/getAuthorFeed' -import { isThreadViewPost } from '@atproto/api/src/client/types/app/bsky/feed/defs' +import { BlockedActorError } from '@atproto/api/dist/client/types/app/bsky/feed/getAuthorFeed' +import { BlockedByActorError } from '@atproto/api/dist/client/types/app/bsky/feed/getAuthorFeed' +import { isThreadViewPost } from '@atproto/api/dist/client/types/app/bsky/feed/defs' import { isViewRecord as isEmbedViewRecord, isViewBlocked as isEmbedViewBlocked, -} from '@atproto/api/src/client/types/app/bsky/embed/record' +} from '@atproto/api/dist/client/types/app/bsky/embed/record' import { forSnapshot } from '../_util' describe('pds views with blocking', () => { diff --git a/packages/bsky/tests/views/thread.test.ts b/packages/bsky/tests/views/thread.test.ts index 88f7db4c573..fd823227e53 100644 --- a/packages/bsky/tests/views/thread.test.ts +++ b/packages/bsky/tests/views/thread.test.ts @@ -2,7 +2,7 @@ import AtpAgent, { AppBskyFeedGetPostThread } from '@atproto/api' import { TestNetwork, SeedClient, basicSeed } from '@atproto/dev-env' import { forSnapshot, stripViewerFromThread } from '../_util' import assert from 'assert' -import { isThreadViewPost } from '@atproto/api/src/client/types/app/bsky/feed/defs' +import { isThreadViewPost } from '@atproto/api/dist/client/types/app/bsky/feed/defs' describe('pds thread views', () => { let network: TestNetwork diff --git a/packages/bsky/tsconfig.build.json b/packages/bsky/tsconfig.build.json index 02a84823b65..4eeb86d26fc 100644 --- a/packages/bsky/tsconfig.build.json +++ b/packages/bsky/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"], } diff --git a/packages/bsky/tsconfig.json b/packages/bsky/tsconfig.json index 3f6ca1c27ec..3a6b5de37bd 100644 --- a/packages/bsky/tsconfig.json +++ b/packages/bsky/tsconfig.json @@ -1,21 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", - "emitDeclarationOnly": true - }, - "module": "nodenext", - "include": ["./src", "__tests__/**/**.ts"], + "include": [], "references": [ - { "path": "../api/tsconfig.build.json" }, - { "path": "../common/tsconfig.build.json" }, - { "path": "../crypto/tsconfig.build.json" }, - { "path": "../identifier/tsconfig.build.json" }, - { "path": "../lexicon/tsconfig.build.json" }, - { "path": "../lex-cli/tsconfig.build.json" }, - { "path": "../repo/tsconfig.build.json" }, - { "path": "../uri/tsconfig.build.json" }, - { "path": "../xrpc-server/tsconfig.build.json" } + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } ] } diff --git a/packages/bsky/tsconfig.scripts.json b/packages/bsky/tsconfig.scripts.json new file mode 100644 index 00000000000..e31ca937eee --- /dev/null +++ b/packages/bsky/tsconfig.scripts.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"], + "exclude": ["node_modules", "./jest.setup.ts"] +} diff --git a/packages/bsky/tsconfig.test.json b/packages/bsky/tsconfig.test.json new file mode 100644 index 00000000000..e5e3f40d926 --- /dev/null +++ b/packages/bsky/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests", "./jest.setup.ts"] +} diff --git a/packages/common-web/babel.config.js b/packages/common-web/babel.config.js deleted file mode 100644 index 0126e9dbaa6..00000000000 --- a/packages/common-web/babel.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../babel.config.js') diff --git a/packages/common-web/build.js b/packages/common-web/build.js deleted file mode 100644 index 30fbe7cea56..00000000000 --- a/packages/common-web/build.js +++ /dev/null @@ -1,15 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'browser', - format: 'cjs', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/common-web/jest.config.js b/packages/common-web/jest.config.js index 6beabf62b60..2f5806be20d 100644 --- a/packages/common-web/jest.config.js +++ b/packages/common-web/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'Common Web', + transform: { + '^.+\\.(t|j)s?$': '@swc/jest', + }, } diff --git a/packages/common-web/package.json b/packages/common-web/package.json index 1df7806ab51..0a3e70d5c0f 100644 --- a/packages/common-web/package.json +++ b/packages/common-web/package.json @@ -12,21 +12,17 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/common-web" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { - "test": "jest", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/common-web" + "test": "jest" }, "dependencies": { "graphemer": "^1.4.0", "multiformats": "^9.9.0", "uint8arrays": "3.0.0", + "tslib": "^2.6.2", "zod": "^3.21.4" } } diff --git a/packages/common-web/src/util.ts b/packages/common-web/src/util.ts index 928be1c5169..b9eab43f950 100644 --- a/packages/common-web/src/util.ts +++ b/packages/common-web/src/util.ts @@ -87,8 +87,8 @@ export const asyncFilter = async ( export const isErrnoException = ( err: unknown, -): err is NodeJS.ErrnoException => { - return !!err && err['code'] +): err is typeof err & { code: string } => { + return typeof err?.['code'] === 'string' } export const errHasMsg = (err: unknown, msg: string): boolean => { diff --git a/packages/common-web/tsconfig.build.json b/packages/common-web/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/common-web/tsconfig.build.json +++ b/packages/common-web/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/common-web/tsconfig.json b/packages/common-web/tsconfig.json index 5c5ec40ce03..3a6b5de37bd 100644 --- a/packages/common-web/tsconfig.json +++ b/packages/common-web/tsconfig.json @@ -1,9 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"] + "include": [], + "references": [ + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } + ] } diff --git a/packages/common-web/tsconfig.scripts.json b/packages/common-web/tsconfig.scripts.json new file mode 100644 index 00000000000..6605443a6be --- /dev/null +++ b/packages/common-web/tsconfig.scripts.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"] +} diff --git a/packages/common-web/tsconfig.test.json b/packages/common-web/tsconfig.test.json new file mode 100644 index 00000000000..19317ca8591 --- /dev/null +++ b/packages/common-web/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests"] +} diff --git a/packages/common/babel.config.js b/packages/common/babel.config.js deleted file mode 100644 index 0126e9dbaa6..00000000000 --- a/packages/common/babel.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../babel.config.js') diff --git a/packages/common/build.js b/packages/common/build.js deleted file mode 100644 index e880ae9930b..00000000000 --- a/packages/common/build.js +++ /dev/null @@ -1,14 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/common/jest.config.js b/packages/common/jest.config.js index 33f1da33d80..18120463a86 100644 --- a/packages/common/jest.config.js +++ b/packages/common/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'Common', + transform: { + '^.+\\.(t|j)s?$': '@swc/jest', + }, } diff --git a/packages/common/package.json b/packages/common/package.json index c9aaa9293e2..ea296c583ac 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -12,16 +12,11 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/common" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { - "test": "jest", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/common" + "test": "jest" }, "dependencies": { "@atproto/common-web": "workspace:^", @@ -30,6 +25,9 @@ "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "pino": "^8.15.0", - "zod": "3.21.4" + "tslib": "^2.6.2" + }, + "devDependencies": { + "uint8arrays": "3.0.0" } } diff --git a/packages/common/src/fs.ts b/packages/common/src/fs.ts index b8bcf7be310..01e84b66827 100644 --- a/packages/common/src/fs.ts +++ b/packages/common/src/fs.ts @@ -1,10 +1,11 @@ +import { constants } from 'node:fs' +import { access, readFile, rm } from 'node:fs/promises' + import { isErrnoException } from '@atproto/common-web' -import { constants } from 'fs' -import fs from 'fs/promises' export const fileExists = async (location: string): Promise => { try { - await fs.access(location, constants.F_OK) + await access(location, constants.F_OK) return true } catch (err) { if (isErrnoException(err) && err.code === 'ENOENT') { @@ -18,7 +19,7 @@ export const readIfExists = async ( filepath: string, ): Promise => { try { - return await fs.readFile(filepath) + return await readFile(filepath) } catch (err) { if (isErrnoException(err) && err.code === 'ENOENT') { return @@ -32,7 +33,7 @@ export const rmIfExists = async ( recursive = false, ): Promise => { try { - await fs.rm(filepath, { recursive }) + await rm(filepath, { recursive }) } catch (err) { if (isErrnoException(err) && err.code === 'ENOENT') { return diff --git a/packages/common/src/ipld.ts b/packages/common/src/ipld.ts index 6939afe1049..536732992c8 100644 --- a/packages/common/src/ipld.ts +++ b/packages/common/src/ipld.ts @@ -1,12 +1,13 @@ -import crypto from 'crypto' -import { Transform, TransformCallback } from 'stream' +import * as crypto from 'node:crypto' +import { Transform, TransformCallback } from 'node:stream' + import { check, schema } from '@atproto/common-web' -import { CID } from 'multiformats/cid' +import * as cborCodec from '@ipld/dag-cbor' +import * as mf from 'multiformats' import * as Block from 'multiformats/block' +import { CID } from 'multiformats/cid' import * as rawCodec from 'multiformats/codecs/raw' import { sha256 } from 'multiformats/hashes/sha2' -import * as mf from 'multiformats' -import * as cborCodec from '@ipld/dag-cbor' export const cborEncode = cborCodec.encode export const cborDecode = cborCodec.decode diff --git a/packages/common/src/streams.ts b/packages/common/src/streams.ts index 2d18c3e2400..20ff9e2ed85 100644 --- a/packages/common/src/streams.ts +++ b/packages/common/src/streams.ts @@ -4,7 +4,7 @@ import { PassThrough, Transform, TransformCallback, -} from 'stream' +} from 'node:stream' export const forwardStreamErrors = (...streams: Stream[]) => { for (let i = 0; i < streams.length; ++i) { diff --git a/packages/common/tests/streams.test.ts b/packages/common/tests/streams.test.ts index 735b19a8341..dea487060da 100644 --- a/packages/common/tests/streams.test.ts +++ b/packages/common/tests/streams.test.ts @@ -1,5 +1,5 @@ -import * as streams from '../src/streams' import { PassThrough, Readable } from 'node:stream' +import * as streams from '../src/streams' describe('streams', () => { describe('forwardStreamErrors', () => { diff --git a/packages/common/tsconfig.build.json b/packages/common/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/common/tsconfig.build.json +++ b/packages/common/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/common/tsconfig.json b/packages/common/tsconfig.json index 81714d5ec97..3a6b5de37bd 100644 --- a/packages/common/tsconfig.json +++ b/packages/common/tsconfig.json @@ -1,10 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"], - "references": [{ "path": "../common-web/tsconfig.build.json" }] + "include": [], + "references": [ + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } + ] } diff --git a/packages/common/tsconfig.scripts.json b/packages/common/tsconfig.scripts.json new file mode 100644 index 00000000000..6605443a6be --- /dev/null +++ b/packages/common/tsconfig.scripts.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"] +} diff --git a/packages/common/tsconfig.test.json b/packages/common/tsconfig.test.json new file mode 100644 index 00000000000..19317ca8591 --- /dev/null +++ b/packages/common/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests"] +} diff --git a/packages/crypto/build.js b/packages/crypto/build.js deleted file mode 100644 index e880ae9930b..00000000000 --- a/packages/crypto/build.js +++ /dev/null @@ -1,14 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/crypto/jest.config.js b/packages/crypto/jest.config.js index 365131c9293..b9b874b0bc7 100644 --- a/packages/crypto/jest.config.js +++ b/packages/crypto/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'Crypto', + transform: { + '^.+\\.(t|j)s?$': '@swc/jest', + }, } diff --git a/packages/crypto/package.json b/packages/crypto/package.json index bb359c5f36f..1822d64a49a 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -13,20 +13,16 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/crypto" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { - "test": "jest ", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/crypto" + "test": "jest " }, "dependencies": { "@noble/curves": "^1.1.0", "@noble/hashes": "^1.3.1", + "tslib": "^2.6.2", "uint8arrays": "3.0.0" }, "devDependencies": { diff --git a/packages/crypto/src/p256/operations.ts b/packages/crypto/src/p256/operations.ts index e41c494ae55..5ac477a2356 100644 --- a/packages/crypto/src/p256/operations.ts +++ b/packages/crypto/src/p256/operations.ts @@ -1,6 +1,7 @@ import { p256 } from '@noble/curves/p256' import { sha256 } from '@noble/hashes/sha256' -import * as ui8 from 'uint8arrays' +import { equals as ui8equals } from 'uint8arrays' + import { P256_JWT_ALG } from '../const' import { parseDidKey } from '../did' import { VerifyOptions } from '../types' @@ -39,7 +40,7 @@ export const verifySig = async ( export const isCompactFormat = (sig: Uint8Array) => { try { const parsed = p256.Signature.fromCompact(sig) - return ui8.equals(parsed.toCompactRawBytes(), sig) + return ui8equals(parsed.toCompactRawBytes(), sig) } catch { return false } diff --git a/packages/crypto/tsconfig.build.json b/packages/crypto/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/crypto/tsconfig.build.json +++ b/packages/crypto/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/crypto/tsconfig.json b/packages/crypto/tsconfig.json index 5c5ec40ce03..3a6b5de37bd 100644 --- a/packages/crypto/tsconfig.json +++ b/packages/crypto/tsconfig.json @@ -1,9 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"] + "include": [], + "references": [ + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } + ] } diff --git a/packages/crypto/tsconfig.scripts.json b/packages/crypto/tsconfig.scripts.json new file mode 100644 index 00000000000..6605443a6be --- /dev/null +++ b/packages/crypto/tsconfig.scripts.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"] +} diff --git a/packages/crypto/tsconfig.test.json b/packages/crypto/tsconfig.test.json new file mode 100644 index 00000000000..19317ca8591 --- /dev/null +++ b/packages/crypto/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests"] +} diff --git a/packages/dev-env/build.js b/packages/dev-env/build.js deleted file mode 100644 index 65ca7679909..00000000000 --- a/packages/dev-env/build.js +++ /dev/null @@ -1,27 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') -const hbsPlugin = require('esbuild-plugin-handlebars') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts', 'src/bin.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - external: [ - 'better-sqlite3', - // Referenced in pg driver, but optional and we don't use it - 'pg-native', - 'sharp', - ], - plugins: [].concat(buildShallow ? [nodeExternalsPlugin()] : []).concat([ - hbsPlugin({ - filter: /\.(hbs)$/, - additionalHelpers: {}, - precompileOptions: {}, - }), - ]), -}) diff --git a/packages/dev-env/package.json b/packages/dev-env/package.json index c291aaf61fc..b51f83b5e4f 100644 --- a/packages/dev-env/package.json +++ b/packages/dev-env/package.json @@ -12,22 +12,18 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/dev-env" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "bin": "dist/bin.js", "scripts": { - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/dev-env", "start": "../dev-infra/with-test-redis-and-db.sh node dist/bin.js" }, "dependencies": { "@atproto/api": "workspace:^", "@atproto/bsky": "workspace:^", "@atproto/bsync": "workspace:^", + "@atproto/common": "workspace:^", "@atproto/common-web": "workspace:^", "@atproto/crypto": "workspace:^", "@atproto/identity": "workspace:^", @@ -46,9 +42,7 @@ "get-port": "^6.1.2", "multiformats": "^9.9.0", "sharp": "^0.32.6", + "tslib": "^2.6.2", "uint8arrays": "3.0.0" - }, - "devDependencies": { - "ts-node": "^10.8.1" } } diff --git a/packages/dev-env/src/feed-gen.ts b/packages/dev-env/src/feed-gen.ts index e8e58d742ce..98842b1f3fe 100644 --- a/packages/dev-env/src/feed-gen.ts +++ b/packages/dev-env/src/feed-gen.ts @@ -4,8 +4,8 @@ import express from 'express' import getPort from 'get-port' import * as plc from '@did-plc/lib' import { Secp256k1Keypair } from '@atproto/crypto' -import { Handler as SkeletonHandler } from '@atproto/pds/src/lexicon/types/app/bsky/feed/getFeedSkeleton' -import { createServer } from '@atproto/pds/src/lexicon' +import { Handler as SkeletonHandler } from '@atproto/pds/dist/lexicon/types/app/bsky/feed/getFeedSkeleton' +import { createServer } from '@atproto/pds/dist/lexicon' import { InvalidRequestError } from '@atproto/xrpc-server' export class TestFeedGen { diff --git a/packages/dev-env/src/mock/index.ts b/packages/dev-env/src/mock/index.ts index ab818dfc24c..3757f6a4e91 100644 --- a/packages/dev-env/src/mock/index.ts +++ b/packages/dev-env/src/mock/index.ts @@ -3,7 +3,7 @@ import AtpAgent from '@atproto/api' import { REASONSPAM, REASONOTHER, -} from '@atproto/api/src/client/types/com/atproto/moderation/defs' +} from '@atproto/api/dist/client/types/com/atproto/moderation/defs' import { TestNetwork } from '../index' import { postTexts, replyTexts } from './data' import labeledImgB64 from './img/labeled-img-b64' diff --git a/packages/dev-env/src/network-no-appview.ts b/packages/dev-env/src/network-no-appview.ts index 44701ece35e..42a34e98a1e 100644 --- a/packages/dev-env/src/network-no-appview.ts +++ b/packages/dev-env/src/network-no-appview.ts @@ -1,4 +1,4 @@ -import { Handler as SkeletonHandler } from '@atproto/pds/src/lexicon/types/app/bsky/feed/getFeedSkeleton' +import { Handler as SkeletonHandler } from '@atproto/pds/dist/lexicon/types/app/bsky/feed/getFeedSkeleton' import { TestServerParams } from './types' import { TestPlc } from './plc' import { TestPds } from './pds' diff --git a/packages/dev-env/src/pds.ts b/packages/dev-env/src/pds.ts index 44b8a063fce..a99b39d7081 100644 --- a/packages/dev-env/src/pds.ts +++ b/packages/dev-env/src/pds.ts @@ -4,7 +4,7 @@ import fs from 'node:fs/promises' import getPort from 'get-port' import * as ui8 from 'uint8arrays' import * as pds from '@atproto/pds' -import { createSecretKeyObject } from '@atproto/pds/src/auth-verifier' +import { createSecretKeyObject } from '@atproto/pds/dist/auth-verifier' import { Secp256k1Keypair, randomStr } from '@atproto/crypto' import { AtpAgent } from '@atproto/api' import { PdsConfig } from './types' diff --git a/packages/dev-env/src/seed/client.ts b/packages/dev-env/src/seed/client.ts index 5b7a614228f..c50e5cc8133 100644 --- a/packages/dev-env/src/seed/client.ts +++ b/packages/dev-env/src/seed/client.ts @@ -1,5 +1,6 @@ import fs from 'fs/promises' import { CID } from 'multiformats/cid' + import AtpAgent from '@atproto/api' import { Main as Facet } from '@atproto/api/src/client/types/app/bsky/richtext/facet' import { InputSchema as TakeActionInput } from '@atproto/api/src/client/types/com/atproto/admin/emitModerationEvent' diff --git a/packages/dev-env/tsconfig.build.json b/packages/dev-env/tsconfig.build.json index 02a84823b65..cee8bc9153f 100644 --- a/packages/dev-env/tsconfig.build.json +++ b/packages/dev-env/tsconfig.build.json @@ -1,4 +1,15 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": true, + "declarationMap": false + }, + "include": ["./src"], + "references": [ + { "path": "../api/tsconfig.build.json" }, + { "path": "../bsky/tsconfig.build.json" }, + { "path": "../pds/tsconfig.build.json" } + ] } diff --git a/packages/dev-env/tsconfig.json b/packages/dev-env/tsconfig.json index 6e341637305..e84b8178b47 100644 --- a/packages/dev-env/tsconfig.json +++ b/packages/dev-env/tsconfig.json @@ -1,18 +1,4 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "module": "esnext", - "include": ["./src", "__tests__/**/**.ts"], - "references": [ - { "path": "../api/tsconfig.build.json" }, - { "path": "../bsky/tsconfig.build.json" }, - { "path": "../crypto/tsconfig.build.json" }, - { "path": "../identity/tsconfig.build.json" }, - { "path": "../pds/tsconfig.json" }, - { "path": "../uri/tsconfig.build.json" } - ] + "include": [], + "references": [{ "path": "./tsconfig.build.json" }] } diff --git a/packages/identity/babel.config.js b/packages/identity/babel.config.js deleted file mode 100644 index ee58f35df11..00000000000 --- a/packages/identity/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [['@babel/preset-env']], -} diff --git a/packages/identity/build.js b/packages/identity/build.js deleted file mode 100644 index 709647b64ff..00000000000 --- a/packages/identity/build.js +++ /dev/null @@ -1,15 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - sourcemap: true, - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/identity/jest.config.js b/packages/identity/jest.config.js index 4eb023d6fcc..baf91044784 100644 --- a/packages/identity/jest.config.js +++ b/packages/identity/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'Identity', + transform: { '^.+\\.(t|j)s?$': '@swc/jest' }, + setupFiles: ['/jest.setup.ts'], + transformIgnorePatterns: [`/node_modules/(?!get-port)`], } diff --git a/packages/identity/jest.setup.ts b/packages/identity/jest.setup.ts new file mode 100644 index 00000000000..bfddf8df50e --- /dev/null +++ b/packages/identity/jest.setup.ts @@ -0,0 +1,3 @@ +import { config } from 'dotenv' + +config({ path: './test.env' }) diff --git a/packages/identity/package.json b/packages/identity/package.json index 1259ad290a5..9e89036692f 100644 --- a/packages/identity/package.json +++ b/packages/identity/package.json @@ -14,27 +14,24 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/identity" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { "test": "jest", - "test:log": "cat test.log | pino-pretty", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/identity" + "test:log": "cat test.log | pino-pretty" }, "dependencies": { "@atproto/common-web": "workspace:^", "@atproto/crypto": "workspace:^", - "axios": "^0.27.2" + "axios": "^0.27.2", + "tslib": "^2.6.2" }, "devDependencies": { "@did-plc/lib": "^0.0.1", "@did-plc/server": "^0.0.1", "cors": "^2.8.5", + "dotenv": "^16.0.3", "express": "^4.18.2", "get-port": "^6.1.2" } diff --git a/packages/identity/tsconfig.build.json b/packages/identity/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/identity/tsconfig.build.json +++ b/packages/identity/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/identity/tsconfig.json b/packages/identity/tsconfig.json index 9d6fd378666..3a6b5de37bd 100644 --- a/packages/identity/tsconfig.json +++ b/packages/identity/tsconfig.json @@ -1,13 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"], + "include": [], "references": [ - { "path": "../common/tsconfig.build.json" }, - { "path": "../crypto/tsconfig.build.json" } + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } ] } diff --git a/packages/identity/tsconfig.scripts.json b/packages/identity/tsconfig.scripts.json new file mode 100644 index 00000000000..e31ca937eee --- /dev/null +++ b/packages/identity/tsconfig.scripts.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"], + "exclude": ["node_modules", "./jest.setup.ts"] +} diff --git a/packages/identity/tsconfig.test.json b/packages/identity/tsconfig.test.json new file mode 100644 index 00000000000..e5e3f40d926 --- /dev/null +++ b/packages/identity/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests", "./jest.setup.ts"] +} diff --git a/packages/lex-cli/babel.config.js b/packages/lex-cli/babel.config.js deleted file mode 100644 index 0126e9dbaa6..00000000000 --- a/packages/lex-cli/babel.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../babel.config.js') diff --git a/packages/lex-cli/build.js b/packages/lex-cli/build.js deleted file mode 100644 index e880ae9930b..00000000000 --- a/packages/lex-cli/build.js +++ /dev/null @@ -1,14 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/lex-cli/package.json b/packages/lex-cli/package.json index 8ad2aa3a5e5..750a9e4f30c 100644 --- a/packages/lex-cli/package.json +++ b/packages/lex-cli/package.json @@ -13,25 +13,22 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/lex-cli" }, + "type": "commonjs", "bin": { "lex": "dist/index.js" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/src/index.d.ts" - }, - "scripts": { - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/lex-cli" - }, "dependencies": { "@atproto/lexicon": "workspace:^", "@atproto/syntax": "workspace:^", + "@atproto/xrpc": "workspace:^", + "@atproto/xrpc-server": "workspace:^", "chalk": "^5.1.1", "commander": "^9.4.0", + "express": "^4.17.2", + "multiformats": "^9.9.0", + "prettier": "^2.7.1", "ts-morph": "^16.0.0", + "tslib": "^2.6.2", "yesno": "^0.4.0", "zod": "^3.21.4" } diff --git a/packages/lex-cli/tsconfig.build.json b/packages/lex-cli/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/lex-cli/tsconfig.build.json +++ b/packages/lex-cli/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/lex-cli/tsconfig.json b/packages/lex-cli/tsconfig.json index bdf4c2a099a..e84b8178b47 100644 --- a/packages/lex-cli/tsconfig.json +++ b/packages/lex-cli/tsconfig.json @@ -1,12 +1,4 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"], - "references": [ - { "path": "../nsid/tsconfig.build.json" }, - { "path": "../lexicon/tsconfig.build.json" } - ] + "include": [], + "references": [{ "path": "./tsconfig.build.json" }] } diff --git a/packages/lexicon/build.js b/packages/lexicon/build.js deleted file mode 100644 index e880ae9930b..00000000000 --- a/packages/lexicon/build.js +++ /dev/null @@ -1,14 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/lexicon/jest.config.js b/packages/lexicon/jest.config.js index ecdb2ae4b7c..9633892352c 100644 --- a/packages/lexicon/jest.config.js +++ b/packages/lexicon/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'Lexicon', + transform: { + '^.+\\.(t|j)s?$': '@swc/jest', + }, } diff --git a/packages/lexicon/package.json b/packages/lexicon/package.json index 4f0b05d20d8..e618987a1fb 100644 --- a/packages/lexicon/package.json +++ b/packages/lexicon/package.json @@ -13,22 +13,18 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/lexicon" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { - "test": "jest", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/lexicon" + "test": "jest" }, "dependencies": { "@atproto/common-web": "workspace:^", "@atproto/syntax": "workspace:^", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", + "tslib": "^2.6.2", "zod": "^3.21.4" } } diff --git a/packages/lexicon/tsconfig.build.json b/packages/lexicon/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/lexicon/tsconfig.build.json +++ b/packages/lexicon/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/lexicon/tsconfig.json b/packages/lexicon/tsconfig.json index 5e60cf9920e..3a6b5de37bd 100644 --- a/packages/lexicon/tsconfig.json +++ b/packages/lexicon/tsconfig.json @@ -1,14 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src"], + "include": [], "references": [ - { "path": "../common/tsconfig.build.json" }, - { "path": "../nsid/tsconfig.build.json" }, - { "path": "../uri/tsconfig.build.json" } + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } ] } diff --git a/packages/lexicon/tsconfig.scripts.json b/packages/lexicon/tsconfig.scripts.json new file mode 100644 index 00000000000..6605443a6be --- /dev/null +++ b/packages/lexicon/tsconfig.scripts.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"] +} diff --git a/packages/lexicon/tsconfig.test.json b/packages/lexicon/tsconfig.test.json new file mode 100644 index 00000000000..19317ca8591 --- /dev/null +++ b/packages/lexicon/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests"] +} diff --git a/packages/ozone/src/auth.ts b/packages/ozone/src/auth.ts index e996f068c49..0b500ac1c72 100644 --- a/packages/ozone/src/auth.ts +++ b/packages/ozone/src/auth.ts @@ -7,6 +7,11 @@ import { OzoneSecrets } from './config' const BASIC = 'Basic ' const BEARER = 'Bearer ' +export type RequestContext = { + req: express.Request + res: express.Response +} + export const authVerifier = ( idResolver: IdResolver, opts: { aud: string | null }, @@ -22,7 +27,7 @@ export const authVerifier = ( return atprotoData.signingKey } - return async (reqCtx: { req: express.Request; res: express.Response }) => { + return async (reqCtx: RequestContext) => { const jwtStr = getJwtStrFromReq(reqCtx.req) if (!jwtStr) { throw new AuthRequiredError('missing jwt', 'MissingJwt') @@ -37,7 +42,7 @@ export const authOptionalVerifier = ( opts: { aud: string | null }, ) => { const verifyAccess = authVerifier(idResolver, opts) - return async (reqCtx: { req: express.Request; res: express.Response }) => { + return async (reqCtx: RequestContext) => { if (!reqCtx.req.headers.authorization) { return { credentials: { did: null } } } @@ -52,7 +57,7 @@ export const authOptionalAccessOrRoleVerifier = ( ) => { const verifyAccess = authVerifier(idResolver, { aud: serverDid }) const verifyRole = roleVerifier(secrets) - return async (ctx: { req: express.Request; res: express.Response }) => { + return async (ctx: RequestContext) => { const defaultUnAuthorizedCredentials = { credentials: { did: null, type: 'unauthed' as const }, } @@ -84,7 +89,7 @@ export const authOptionalAccessOrRoleVerifier = ( export const roleVerifier = (secrets: OzoneSecrets) => - async (reqCtx: { req: express.Request; res: express.Response }) => { + async (reqCtx: RequestContext) => { const credentials = getRoleCredentials(secrets, reqCtx.req) if (!credentials.valid) { throw new AuthRequiredError() diff --git a/packages/pds-templates/build.js b/packages/pds-templates/build.js new file mode 100644 index 00000000000..55e1b3ccabc --- /dev/null +++ b/packages/pds-templates/build.js @@ -0,0 +1,18 @@ +const hbsPlugin = require('esbuild-plugin-handlebars') + +require('esbuild').build({ + logLevel: 'info', + entryPoints: ['src/index.ts'], + bundle: true, + sourcemap: true, + outdir: 'dist', + platform: 'node', + external: ['handlebars', 'tslib'], + plugins: [ + hbsPlugin({ + filter: /\.(hbs|handlebars)$/, + additionalHelpers: {}, + precompileOptions: {}, + }), + ], +}) diff --git a/packages/pds-templates/package.json b/packages/pds-templates/package.json new file mode 100644 index 00000000000..5928a23e069 --- /dev/null +++ b/packages/pds-templates/package.json @@ -0,0 +1,33 @@ +{ + "name": "@atproto/pds-templates", + "version": "0.0.1", + "license": "MIT", + "description": "Templates used by the atproto Personal Data Server (PDS)", + "keywords": [ + "atproto", + "pds", + "templates" + ], + "homepage": "https://atproto.com", + "repository": { + "type": "git", + "url": "https://github.com/bluesky-social/atproto", + "directory": "packages/pds-templates" + }, + "type": "commonjs", + "main": "dist/index.js", + "types": "src/index.ts", + "scripts": { + "build": "pnpm run build:js && pnpm run build:types", + "build:js": "node build.js", + "build:types": "tsc --build" + }, + "dependencies": { + "handlebars": "^4.7.7", + "tslib": "^2.6.2" + }, + "devDependencies": { + "esbuild": "^0.19.8", + "esbuild-plugin-handlebars": "^1.0.2" + } +} diff --git a/packages/pds-templates/src/index.ts b/packages/pds-templates/src/index.ts new file mode 100644 index 00000000000..9ed1c546dbc --- /dev/null +++ b/packages/pds-templates/src/index.ts @@ -0,0 +1 @@ +export { default as mailer } from './mailer/index.js' diff --git a/packages/pds/src/mailer/templates/confirm-email.hbs b/packages/pds-templates/src/mailer/confirm-email.hbs similarity index 100% rename from packages/pds/src/mailer/templates/confirm-email.hbs rename to packages/pds-templates/src/mailer/confirm-email.hbs diff --git a/packages/pds/src/mailer/templates/delete-account.hbs b/packages/pds-templates/src/mailer/delete-account.hbs similarity index 100% rename from packages/pds/src/mailer/templates/delete-account.hbs rename to packages/pds-templates/src/mailer/delete-account.hbs diff --git a/packages/pds-templates/src/mailer/index.ts b/packages/pds-templates/src/mailer/index.ts new file mode 100644 index 00000000000..c2c29dc195c --- /dev/null +++ b/packages/pds-templates/src/mailer/index.ts @@ -0,0 +1,11 @@ +import { default as confirmEmail } from './confirm-email.hbs' +import { default as deleteAccount } from './delete-account.hbs' +import { default as resetPassword } from './reset-password.hbs' +import { default as updateEmail } from './update-email.hbs' + +export default { + confirmEmail, + deleteAccount, + resetPassword, + updateEmail, +} diff --git a/packages/pds/src/mailer/templates/reset-password.hbs b/packages/pds-templates/src/mailer/reset-password.hbs similarity index 100% rename from packages/pds/src/mailer/templates/reset-password.hbs rename to packages/pds-templates/src/mailer/reset-password.hbs diff --git a/packages/pds/src/mailer/templates/update-email.hbs b/packages/pds-templates/src/mailer/update-email.hbs similarity index 100% rename from packages/pds/src/mailer/templates/update-email.hbs rename to packages/pds-templates/src/mailer/update-email.hbs diff --git a/packages/pds-templates/tsconfig.build.json b/packages/pds-templates/tsconfig.build.json new file mode 100644 index 00000000000..9e7eb0a58e1 --- /dev/null +++ b/packages/pds-templates/tsconfig.build.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "emitDeclarationOnly": true, + "types": ["node", "handlebars", "./types.d.ts"] + }, + "include": ["./src"] +} diff --git a/packages/pds-templates/tsconfig.json b/packages/pds-templates/tsconfig.json new file mode 100644 index 00000000000..15b44d07744 --- /dev/null +++ b/packages/pds-templates/tsconfig.json @@ -0,0 +1,7 @@ +{ + "include": [], + "references": [ + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" } + ] +} diff --git a/packages/pds-templates/tsconfig.scripts.json b/packages/pds-templates/tsconfig.scripts.json new file mode 100644 index 00000000000..67d8287b4dd --- /dev/null +++ b/packages/pds-templates/tsconfig.scripts.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/pds/src/types.d.ts b/packages/pds-templates/types.d.ts similarity index 100% rename from packages/pds/src/types.d.ts rename to packages/pds-templates/types.d.ts diff --git a/packages/pds/babel.config.js b/packages/pds/babel.config.js deleted file mode 100644 index ee58f35df11..00000000000 --- a/packages/pds/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [['@babel/preset-env']], -} diff --git a/packages/pds/bin/migration-create.ts b/packages/pds/bin/migration-create.js similarity index 88% rename from packages/pds/bin/migration-create.ts rename to packages/pds/bin/migration-create.js index b51c536c4f2..5c92164de18 100644 --- a/packages/pds/bin/migration-create.ts +++ b/packages/pds/bin/migration-create.js @@ -1,9 +1,9 @@ -#!/usr/bin/env ts-node +#!/usr/bin/env node -import * as fs from 'fs/promises' -import * as path from 'path' +const fs = require('node:fs/promises') +const path = require('node:path') -export async function main() { +async function main() { const now = new Date() const prefix = now.toISOString().replace(/[^a-z0-9]/gi, '') // Order of migrations matches alphabetical order of their names const name = process.argv[2] diff --git a/packages/pds/build.js b/packages/pds/build.js deleted file mode 100644 index f78cfc153c5..00000000000 --- a/packages/pds/build.js +++ /dev/null @@ -1,27 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') -const hbsPlugin = require('esbuild-plugin-handlebars') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts', 'src/db/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - external: [ - 'better-sqlite3', - // Referenced in pg driver, but optional and we don't use it - 'pg-native', - 'sharp', - ], - plugins: [].concat(buildShallow ? [nodeExternalsPlugin()] : []).concat([ - hbsPlugin({ - filter: /\.(hbs)$/, - additionalHelpers: {}, - precompileOptions: {}, - }), - ]), -}) diff --git a/packages/pds/jest.bench.config.js b/packages/pds/jest.bench.config.js deleted file mode 100644 index 3207cdd8b97..00000000000 --- a/packages/pds/jest.bench.config.js +++ /dev/null @@ -1,8 +0,0 @@ -const base = require('./jest.config') - -module.exports = { - ...base, - roots: ['/bench'], - testRegex: '(.*.bench)', - testTimeout: 3000000, -} diff --git a/packages/pds/jest.config.js b/packages/pds/jest.config.js index e98e672e050..5c9b6ff2b50 100644 --- a/packages/pds/jest.config.js +++ b/packages/pds/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'PDS', + transform: { '^.+\\.(t|j)s?$': '@swc/jest' }, + setupFiles: ['/jest.setup.ts'], + transformIgnorePatterns: [`/node_modules/(?!get-port)`], } diff --git a/packages/pds/jest.setup.ts b/packages/pds/jest.setup.ts new file mode 100644 index 00000000000..bfddf8df50e --- /dev/null +++ b/packages/pds/jest.setup.ts @@ -0,0 +1,3 @@ +import { config } from 'dotenv' + +config({ path: './test.env' }) diff --git a/packages/pds/package.json b/packages/pds/package.json index 77f26ed8ce7..21a92617a5c 100644 --- a/packages/pds/package.json +++ b/packages/pds/package.json @@ -13,24 +13,18 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/pds" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "bin": "dist/bin.js", "scripts": { "codegen": "lex gen-server ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/*", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", "test": "../dev-infra/with-test-redis-and-db.sh jest", "test:sqlite": "jest", "test:sqlite-only": "jest --testPathIgnorePatterns /tests/proxied/*", "test:log": "tail -50 test.log | pino-pretty", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/pds", - "bench": "../dev-infra/with-test-redis-and-db.sh jest --config jest.bench.config.js", "test:updateSnapshot": "jest --updateSnapshot", - "migration:create": "ts-node ./bin/migration-create.ts" + "migration:create": "node ./bin/migration-create.mjs" }, "dependencies": { "@atproto/api": "workspace:^", @@ -39,6 +33,7 @@ "@atproto/crypto": "workspace:^", "@atproto/identity": "workspace:^", "@atproto/lexicon": "workspace:^", + "@atproto/pds-templates": "workspace:^", "@atproto/repo": "workspace:^", "@atproto/syntax": "workspace:^", "@atproto/xrpc": "workspace:^", @@ -53,7 +48,6 @@ "express-async-errors": "^3.1.1", "file-type": "^16.5.4", "form-data": "^4.0.0", - "handlebars": "^4.7.7", "http-errors": "^2.0.0", "http-terminator": "^3.2.0", "ioredis": "^5.3.2", @@ -68,6 +62,7 @@ "pino": "^8.15.0", "pino-http": "^8.2.1", "sharp": "^0.32.6", + "tslib": "^2.6.2", "typed-emitter": "^2.1.0", "uint8arrays": "3.0.0", "zod": "^3.21.4" @@ -87,6 +82,7 @@ "@types/pg": "^8.6.6", "@types/qs": "^6.9.7", "axios": "^0.27.2", + "dotenv": "^16.0.3", "get-port": "^6.1.2", "ws": "^8.12.0" } diff --git a/packages/pds/src/mailer/index.ts b/packages/pds/src/mailer/index.ts index df539ac03b9..48ecda96f82 100644 --- a/packages/pds/src/mailer/index.ts +++ b/packages/pds/src/mailer/index.ts @@ -1,3 +1,4 @@ +import { mailer as templates } from '@atproto/pds-templates' import { Transporter } from 'nodemailer' import { htmlToText } from 'nodemailer-html-to-text' import Mail from 'nodemailer/lib/mailer' @@ -5,11 +6,7 @@ import SMTPTransport from 'nodemailer/lib/smtp-transport' import { ServerConfig } from '../config' import { mailerLogger } from '../logger' -import * as templates from './templates' - export class ServerMailer { - private readonly templates = templates - constructor( public readonly transporter: Transporter, private readonly config: ServerConfig, @@ -53,8 +50,12 @@ export class ServerMailer { }) } - private async sendTemplate(templateName, params, mailOpts: Mail.Options) { - const html = this.templates[templateName]({ + private async sendTemplate( + templateName: keyof typeof templates, + params, + mailOpts: Mail.Options, + ) { + const html = templates[templateName]({ ...params, config: ServerMailer.getEmailConfig(this.config), }) diff --git a/packages/pds/src/mailer/templates.ts b/packages/pds/src/mailer/templates.ts deleted file mode 100644 index 08c3f3883fb..00000000000 --- a/packages/pds/src/mailer/templates.ts +++ /dev/null @@ -1,7 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/triple-slash-reference -/// - -export { default as resetPassword } from './templates/reset-password.hbs' -export { default as deleteAccount } from './templates/delete-account.hbs' -export { default as confirmEmail } from './templates/confirm-email.hbs' -export { default as updateEmail } from './templates/update-email.hbs' diff --git a/packages/pds/tests/auth.test.ts b/packages/pds/tests/auth.test.ts index d8d29942ccd..5682c4dbdfe 100644 --- a/packages/pds/tests/auth.test.ts +++ b/packages/pds/tests/auth.test.ts @@ -1,8 +1,8 @@ import * as jose from 'jose' import AtpAgent from '@atproto/api' import { TestNetworkNoAppView, SeedClient } from '@atproto/dev-env' -import * as CreateSession from '@atproto/api/src/client/types/com/atproto/server/createSession' -import * as RefreshSession from '@atproto/api/src/client/types/com/atproto/server/refreshSession' +import * as CreateSession from '@atproto/api/dist/client/types/com/atproto/server/createSession' +import * as RefreshSession from '@atproto/api/dist/client/types/com/atproto/server/refreshSession' import { createRefreshToken } from '../src/account-manager/helpers/auth' describe('auth', () => { diff --git a/packages/pds/tests/crud.test.ts b/packages/pds/tests/crud.test.ts index e675119dca2..8bb553e4d2b 100644 --- a/packages/pds/tests/crud.test.ts +++ b/packages/pds/tests/crud.test.ts @@ -3,10 +3,10 @@ import { AtUri } from '@atproto/syntax' import AtpAgent from '@atproto/api' import { BlobRef } from '@atproto/lexicon' import { TestNetworkNoAppView } from '@atproto/dev-env' -import * as createRecord from '@atproto/api/src/client/types/com/atproto/repo/createRecord' -import * as putRecord from '@atproto/api/src/client/types/com/atproto/repo/putRecord' -import * as deleteRecord from '@atproto/api/src/client/types/com/atproto/repo/deleteRecord' -import * as applyWrites from '@atproto/api/src/client/types/com/atproto/repo/applyWrites' +import * as createRecord from '@atproto/api/dist/client/types/com/atproto/repo/createRecord' +import * as putRecord from '@atproto/api/dist/client/types/com/atproto/repo/putRecord' +import * as deleteRecord from '@atproto/api/dist/client/types/com/atproto/repo/deleteRecord' +import * as applyWrites from '@atproto/api/dist/client/types/com/atproto/repo/applyWrites' import { cidForCbor, TID, ui8ToArrayBuffer } from '@atproto/common' import { BlobNotFoundError } from '@atproto/repo' import { defaultFetchHandler } from '@atproto/xrpc' diff --git a/packages/pds/tests/proxied/admin.test.ts b/packages/pds/tests/proxied/admin.test.ts index 9906e4d129a..4ab340ac10f 100644 --- a/packages/pds/tests/proxied/admin.test.ts +++ b/packages/pds/tests/proxied/admin.test.ts @@ -4,9 +4,9 @@ import basicSeed from '../seeds/basic' import { REASONOTHER, REASONSPAM, -} from '@atproto/api/src/client/types/com/atproto/moderation/defs' +} from '@atproto/api/dist/client/types/com/atproto/moderation/defs' import { forSnapshot } from '../_util' -import { NotFoundError } from '@atproto/api/src/client/types/app/bsky/feed/getPostThread' +import { NotFoundError } from '@atproto/api/dist/client/types/app/bsky/feed/getPostThread' describe('proxies admin requests', () => { let network: TestNetwork diff --git a/packages/pds/tsconfig.build.json b/packages/pds/tsconfig.build.json index 02a84823b65..b3dd2fcc30a 100644 --- a/packages/pds/tsconfig.build.json +++ b/packages/pds/tsconfig.build.json @@ -1,4 +1,11 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"], + "references": [ + { "path": "../pds-templates/tsconfig.build.json" } + ] } diff --git a/packages/pds/tsconfig.json b/packages/pds/tsconfig.json index daf8ee1a04a..3a6b5de37bd 100644 --- a/packages/pds/tsconfig.json +++ b/packages/pds/tsconfig.json @@ -1,23 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "module": "nodenext", - "include": ["./src", "__tests__/**/**.ts"], + "include": [], "references": [ - { "path": "../api/tsconfig.build.json" }, - { "path": "../aws/tsconfig.build.json" }, - { "path": "../common/tsconfig.build.json" }, - { "path": "../crypto/tsconfig.build.json" }, - { "path": "../identity/tsconfig.build.json" }, - { "path": "../identifier/tsconfig.build.json" }, - { "path": "../lexicon/tsconfig.build.json" }, - { "path": "../lex-cli/tsconfig.build.json" }, - { "path": "../repo/tsconfig.build.json" }, - { "path": "../uri/tsconfig.build.json" }, - { "path": "../xrpc-server/tsconfig.build.json" } + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } ] } diff --git a/packages/pds/tsconfig.scripts.json b/packages/pds/tsconfig.scripts.json new file mode 100644 index 00000000000..b035165a1da --- /dev/null +++ b/packages/pds/tsconfig.scripts.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./bin", "./*.js", "./*.ts"], + "exclude": ["node_modules", "./jest.setup.ts"] +} diff --git a/packages/pds/tsconfig.test.json b/packages/pds/tsconfig.test.json new file mode 100644 index 00000000000..e5e3f40d926 --- /dev/null +++ b/packages/pds/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests", "./jest.setup.ts"] +} diff --git a/packages/repo/babel.config.js b/packages/repo/babel.config.js deleted file mode 100644 index 0126e9dbaa6..00000000000 --- a/packages/repo/babel.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../babel.config.js') diff --git a/packages/repo/bench/mst.bench.ts b/packages/repo/bench/mst.bench.ts index d0e4704eef3..5d8cbc38356 100644 --- a/packages/repo/bench/mst.bench.ts +++ b/packages/repo/bench/mst.bench.ts @@ -1,5 +1,5 @@ import { CID } from 'multiformats' -import { Fanout, MemoryBlockstore, MST, NodeEntry } from '../src' +import { MemoryBlockstore, MST, NodeEntry } from '../src' import * as util from '../tests/_util' import fs from 'fs' @@ -29,12 +29,13 @@ describe('MST Benchmarks', () => { }) // const fanouts: Fanout[] = [8, 16, 32] - const fanouts: Fanout[] = [16, 32] + const fanouts = [16, 32] it('benchmarks various fanouts', async () => { const benches: BenchmarkData[] = [] + // FIXME: fanout is not actually used here for (const fanout of fanouts) { const blockstore = new MemoryBlockstore() - let mst = await MST.create(blockstore, [], { fanout }) + let mst = await MST.create(blockstore, []) const start = Date.now() @@ -48,7 +49,7 @@ describe('MST Benchmarks', () => { const doneSaving = Date.now() - const reloaded = await MST.load(blockstore, root, { fanout }) + const reloaded = await MST.load(blockstore, root) const widthTracker = new NodeWidths() for await (const entry of reloaded.walk()) { await widthTracker.trackEntry(entry) diff --git a/packages/repo/bench/repo.bench.ts b/packages/repo/bench/repo.bench.ts index a149337b95d..8d216c84001 100644 --- a/packages/repo/bench/repo.bench.ts +++ b/packages/repo/bench/repo.bench.ts @@ -39,6 +39,7 @@ describe('Repo Benchmarks', () => { createdAt: new Date().toISOString(), }, }, + // @ts-ignore: this test is broken keypair, ) } diff --git a/packages/repo/build.js b/packages/repo/build.js deleted file mode 100644 index e880ae9930b..00000000000 --- a/packages/repo/build.js +++ /dev/null @@ -1,14 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/repo/jest.config.js b/packages/repo/jest.config.js index 57136979d86..f97a3ca3fe0 100644 --- a/packages/repo/jest.config.js +++ b/packages/repo/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'Repo', + transform: { + '^.+\\.(t|j)s?$': '@swc/jest', + }, } diff --git a/packages/repo/mst-benchmarks b/packages/repo/mst-benchmarks new file mode 100644 index 00000000000..d78fe2bc9e5 --- /dev/null +++ b/packages/repo/mst-benchmarks @@ -0,0 +1,44 @@ +Fanout: 16 +---------------------- +Time to add 5000 leaves: 0.155s +Time to save tree with 5000 leaves: 0.449s +Time to reconstruct & walk 5000 leaves: 0.245s +Tree depth: 5 +Max Node Width (only counting leaves): 25 +The total blockstore size is: 385289 bytes +Largest proof size: 4520 bytes +Average proof size: 2652 bytes +Nodes with >= 0 leaves: 1332 +Nodes with >= 16 leaves: 18 +Nodes with >= 32 leaves: 0 +Nodes with >= 48 leaves: 0 +Nodes with >= 64 leaves: 0 +Nodes with >= 96 leaves: 0 +Nodes with >= 128 leaves: 0 +Nodes with >= 160 leaves: 0 +Nodes with >= 192 leaves: 0 +Nodes with >= 224 leaves: 0 +Nodes with >= 256 leaves: 0 + +Fanout: 32 +---------------------- +Time to add 5000 leaves: 0.129s +Time to save tree with 5000 leaves: 0.405s +Time to reconstruct & walk 5000 leaves: 0.221s +Tree depth: 5 +Max Node Width (only counting leaves): 25 +The total blockstore size is: 385289 bytes +Largest proof size: 4520 bytes +Average proof size: 2652 bytes +Nodes with >= 0 leaves: 1332 +Nodes with >= 16 leaves: 18 +Nodes with >= 32 leaves: 0 +Nodes with >= 48 leaves: 0 +Nodes with >= 64 leaves: 0 +Nodes with >= 96 leaves: 0 +Nodes with >= 128 leaves: 0 +Nodes with >= 160 leaves: 0 +Nodes with >= 192 leaves: 0 +Nodes with >= 224 leaves: 0 +Nodes with >= 256 leaves: 0 + diff --git a/packages/repo/package.json b/packages/repo/package.json index b6a3b87607e..f6adbf43114 100644 --- a/packages/repo/package.json +++ b/packages/repo/package.json @@ -13,19 +13,14 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/repo" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { "test": "jest", "test:profile": "node --inspect ../../node_modules/.bin/jest", "bench": "jest --config jest.bench.config.js", - "bench:profile": "node --inspect-brk ../../node_modules/.bin/jest --config jest.bench.config.js", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/repo" + "bench:profile": "node --inspect-brk ../../node_modules/.bin/jest --config jest.bench.config.js" }, "dependencies": { "@atproto/common": "workspace:^", @@ -37,6 +32,7 @@ "@ipld/car": "^3.2.3", "@ipld/dag-cbor": "^7.0.0", "multiformats": "^9.9.0", + "tslib": "^2.6.2", "uint8arrays": "3.0.0", "zod": "^3.21.4" } diff --git a/packages/repo/tests/_util.ts b/packages/repo/tests/_util.ts index 9942cff7568..2e18d82aae7 100644 --- a/packages/repo/tests/_util.ts +++ b/packages/repo/tests/_util.ts @@ -24,7 +24,7 @@ type IdMapping = Record export const randomCid = async (storage?: RepoStorage): Promise => { const block = await dataToCborBlock({ test: randomStr(50) }) if (storage) { - await storage.putBlock(block.cid, block.bytes) + await storage.putBlock(block.cid, block.bytes, 'rev') } return block.cid } @@ -189,7 +189,7 @@ export const pathsForOps = (ops: RecordWriteOp[]): RecordPath[] => export const saveMst = async (storage: RepoStorage, mst: MST): Promise => { const diff = await mst.getUnstoredBlocks() - await storage.putMany(diff.blocks) + await storage.putMany(diff.blocks, 'rev') return diff.root } @@ -221,6 +221,7 @@ export const addBadCommit = async ( prev: repo.cid, newBlocks, removedCids: diff.removedCids, + since: '', }) return await Repo.load(repo.storage, commitCid) } diff --git a/packages/repo/tsconfig.build.json b/packages/repo/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/repo/tsconfig.build.json +++ b/packages/repo/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/repo/tsconfig.json b/packages/repo/tsconfig.json index 07c54d2c4d7..3a6b5de37bd 100644 --- a/packages/repo/tsconfig.json +++ b/packages/repo/tsconfig.json @@ -1,15 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"], + "include": [], "references": [ - { "path": "../common/tsconfig.build.json" }, - { "path": "../crypto/tsconfig.build.json" }, - { "path": "../identity/tsconfig.build.json" }, - { "path": "../nsid/tsconfig.build.json" } + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } ] } diff --git a/packages/repo/tsconfig.scripts.json b/packages/repo/tsconfig.scripts.json new file mode 100644 index 00000000000..6605443a6be --- /dev/null +++ b/packages/repo/tsconfig.scripts.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"] +} diff --git a/packages/repo/tsconfig.test.json b/packages/repo/tsconfig.test.json new file mode 100644 index 00000000000..0a1a421900a --- /dev/null +++ b/packages/repo/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./bench", "./tests"] +} diff --git a/packages/syntax/babel.config.js b/packages/syntax/babel.config.js deleted file mode 100644 index 0126e9dbaa6..00000000000 --- a/packages/syntax/babel.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../babel.config.js') diff --git a/packages/syntax/build.js b/packages/syntax/build.js deleted file mode 100644 index 5628aa4f4eb..00000000000 --- a/packages/syntax/build.js +++ /dev/null @@ -1,22 +0,0 @@ -const pkgJson = require('@npmcli/package-json') -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -if (process.argv.includes('--update-main-to-dist')) { - return pkgJson - .load(__dirname) - .then((pkg) => pkg.update({ main: 'dist/index.js' })) - .then((pkg) => pkg.save()) -} - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/syntax/jest.config.js b/packages/syntax/jest.config.js index 08a81143eda..bf0c3686bb1 100644 --- a/packages/syntax/jest.config.js +++ b/packages/syntax/jest.config.js @@ -1,6 +1,7 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'Syntax', + transform: { + '^.+\\.(t|j)s?$': '@swc/jest', + }, } diff --git a/packages/syntax/package.json b/packages/syntax/package.json index d6f0ea11fd6..507a8711a36 100644 --- a/packages/syntax/package.json +++ b/packages/syntax/package.json @@ -15,19 +15,14 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/syntax" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { - "test": "jest", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/syntax" + "test": "jest" }, "dependencies": { - "@atproto/common-web": "workspace:^" + "tslib": "^2.6.2" }, "browser": { "dns/promises": false diff --git a/packages/syntax/tsconfig.build.json b/packages/syntax/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/syntax/tsconfig.build.json +++ b/packages/syntax/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/syntax/tsconfig.json b/packages/syntax/tsconfig.json index db7a7c4ad35..3a6b5de37bd 100644 --- a/packages/syntax/tsconfig.json +++ b/packages/syntax/tsconfig.json @@ -1,10 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"], - "references": [{ "path": "../common/tsconfig.build.json" }] + "include": [], + "references": [ + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } + ] } diff --git a/packages/syntax/tsconfig.scripts.json b/packages/syntax/tsconfig.scripts.json new file mode 100644 index 00000000000..6605443a6be --- /dev/null +++ b/packages/syntax/tsconfig.scripts.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"] +} diff --git a/packages/syntax/tsconfig.test.json b/packages/syntax/tsconfig.test.json new file mode 100644 index 00000000000..19317ca8591 --- /dev/null +++ b/packages/syntax/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests"] +} diff --git a/packages/xrpc-server/babel.config.js b/packages/xrpc-server/babel.config.js deleted file mode 100644 index 0126e9dbaa6..00000000000 --- a/packages/xrpc-server/babel.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../babel.config.js') diff --git a/packages/xrpc-server/build.js b/packages/xrpc-server/build.js deleted file mode 100644 index e880ae9930b..00000000000 --- a/packages/xrpc-server/build.js +++ /dev/null @@ -1,14 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/xrpc-server/jest.config.js b/packages/xrpc-server/jest.config.js index 81ec7cce52f..70375dd9b60 100644 --- a/packages/xrpc-server/jest.config.js +++ b/packages/xrpc-server/jest.config.js @@ -1,6 +1,6 @@ -const base = require('../../jest.config.base.js') - +/** @type {import('jest').Config} */ module.exports = { - ...base, displayName: 'XRPC Server', + transform: { '^.+\\.(t|j)s?$': '@swc/jest' }, + transformIgnorePatterns: [`/node_modules/(?!get-port)`], } diff --git a/packages/xrpc-server/package.json b/packages/xrpc-server/package.json index b68ecb03ea4..d8c18368baf 100644 --- a/packages/xrpc-server/package.json +++ b/packages/xrpc-server/package.json @@ -13,16 +13,11 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/xrpc-server" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", "scripts": { - "test": "jest", - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/xrpc-server" + "test": "jest" }, "dependencies": { "@atproto/common": "workspace:^", @@ -33,6 +28,7 @@ "http-errors": "^2.0.0", "mime-types": "^2.1.35", "rate-limiter-flexible": "^2.4.1", + "tslib": "^2.6.2", "uint8arrays": "3.0.0", "ws": "^8.12.0", "zod": "^3.21.4" diff --git a/packages/xrpc-server/src/server.ts b/packages/xrpc-server/src/server.ts index 9a666488c1c..3d6cd04ac85 100644 --- a/packages/xrpc-server/src/server.ts +++ b/packages/xrpc-server/src/server.ts @@ -51,8 +51,8 @@ export function createServer(lexicons?: LexiconDoc[], options?: Options) { } export class Server { - router = express() - routes = express.Router() + router: express.Express = express() + routes: express.Router = express.Router() subscriptions = new Map() lex = new Lexicons() options: Options diff --git a/packages/xrpc-server/tests/errors.test.ts b/packages/xrpc-server/tests/errors.test.ts index c7781e71907..05da883a771 100644 --- a/packages/xrpc-server/tests/errors.test.ts +++ b/packages/xrpc-server/tests/errors.test.ts @@ -75,7 +75,7 @@ const LEXICONS: LexiconDoc[] = [ }, ] -const MISMATCHED_LEXICONS = [ +const MISMATCHED_LEXICONS: LexiconDoc[] = [ { lexicon: 1, id: 'io.example.query', diff --git a/packages/xrpc-server/tsconfig.build.json b/packages/xrpc-server/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/xrpc-server/tsconfig.build.json +++ b/packages/xrpc-server/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/xrpc-server/tsconfig.json b/packages/xrpc-server/tsconfig.json index 6a9622be37f..3a6b5de37bd 100644 --- a/packages/xrpc-server/tsconfig.json +++ b/packages/xrpc-server/tsconfig.json @@ -1,15 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"], + "include": [], "references": [ - { "path": "../common/tsconfig.build.json" }, - { "path": "../crypto/tsconfig.build.json" }, - { "path": "../lexicon/tsconfig.build.json" }, - { "path": "../xrpc/tsconfig.build.json" } + { "path": "./tsconfig.build.json" }, + { "path": "./tsconfig.scripts.json" }, + { "path": "./tsconfig.test.json" } ] } diff --git a/packages/xrpc-server/tsconfig.scripts.json b/packages/xrpc-server/tsconfig.scripts.json new file mode 100644 index 00000000000..6605443a6be --- /dev/null +++ b/packages/xrpc-server/tsconfig.scripts.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/scripts.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./*.js", "./*.ts"] +} diff --git a/packages/xrpc-server/tsconfig.test.json b/packages/xrpc-server/tsconfig.test.json new file mode 100644 index 00000000000..19317ca8591 --- /dev/null +++ b/packages/xrpc-server/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig/test.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["./tests"] +} diff --git a/packages/xrpc/babel.config.js b/packages/xrpc/babel.config.js deleted file mode 100644 index 0126e9dbaa6..00000000000 --- a/packages/xrpc/babel.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../babel.config.js') diff --git a/packages/xrpc/build.js b/packages/xrpc/build.js deleted file mode 100644 index e880ae9930b..00000000000 --- a/packages/xrpc/build.js +++ /dev/null @@ -1,14 +0,0 @@ -const { nodeExternalsPlugin } = require('esbuild-node-externals') - -const buildShallow = - process.argv.includes('--shallow') || process.env.ATP_BUILD_SHALLOW === 'true' - -require('esbuild').build({ - logLevel: 'info', - entryPoints: ['src/index.ts'], - bundle: true, - sourcemap: true, - outdir: 'dist', - platform: 'node', - plugins: buildShallow ? [nodeExternalsPlugin()] : [], -}) diff --git a/packages/xrpc/package.json b/packages/xrpc/package.json index e2accc2750d..9f47a4844d3 100644 --- a/packages/xrpc/package.json +++ b/packages/xrpc/package.json @@ -13,18 +13,13 @@ "url": "https://github.com/bluesky-social/atproto", "directory": "packages/xrpc" }, - "main": "src/index.ts", - "publishConfig": { - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, - "scripts": { - "build": "node ./build.js", - "postbuild": "tsc --build tsconfig.build.json", - "update-main-to-dist": "node ../../update-main-to-dist.js packages/xrpc" - }, + "type": "commonjs", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": {}, "dependencies": { "@atproto/lexicon": "workspace:^", + "tslib": "^2.6.2", "zod": "^3.21.4" } } diff --git a/packages/xrpc/tsconfig.build.json b/packages/xrpc/tsconfig.build.json index 02a84823b65..af67a0a5a81 100644 --- a/packages/xrpc/tsconfig.build.json +++ b/packages/xrpc/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", - "exclude": ["**/*.spec.ts", "**/*.test.ts"] + "extends": "../../tsconfig/base.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist" + }, + "include": ["./src"] } diff --git a/packages/xrpc/tsconfig.json b/packages/xrpc/tsconfig.json index 72f1ae0e0f3..e84b8178b47 100644 --- a/packages/xrpc/tsconfig.json +++ b/packages/xrpc/tsconfig.json @@ -1,13 +1,4 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", // Your outDir, - "emitDeclarationOnly": true - }, - "include": ["./src", "__tests__/**/**.ts"], - "references": [ - { "path": "../common/tsconfig.build.json" }, - { "path": "../lexicon/tsconfig.build.json" } - ] + "include": [], + "references": [{ "path": "./tsconfig.build.json" }] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8d6db85650..2942ce8a859 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,21 +8,12 @@ importers: .: devDependencies: - '@babel/core': - specifier: ^7.18.6 - version: 7.18.6 - '@babel/preset-env': - specifier: ^7.18.6 - version: 7.18.6(@babel/core@7.18.6) '@changesets/changelog-github': specifier: ^0.4.8 version: 0.4.8 '@changesets/cli': specifier: ^2.26.2 version: 2.26.2 - '@npmcli/package-json': - specifier: ^3.0.0 - version: 3.0.0 '@swc/core': specifier: ^1.3.42 version: 1.3.42 @@ -69,11 +60,14 @@ importers: specifier: ^1.0.0 version: 1.0.0 jest: - specifier: ^28.1.2 - version: 28.1.2(@types/node@18.0.0)(ts-node@10.8.2) + specifier: ^29.7.0 + version: 29.7.0(@types/node@18.0.0)(ts-node@10.8.2) node-gyp: specifier: ^9.3.1 version: 9.3.1 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 pino-pretty: specifier: ^9.1.0 version: 9.1.0 @@ -110,6 +104,9 @@ importers: tlds: specifier: ^1.234.0 version: 1.234.0 + tslib: + specifier: ^2.6.2 + version: 2.6.2 typed-emitter: specifier: ^2.1.0 version: 2.1.0 @@ -120,9 +117,6 @@ importers: '@atproto/dev-env': specifier: workspace:^ version: link:../dev-env - '@atproto/lex-cli': - specifier: workspace:^ - version: link:../lex-cli common-tags: specifier: ^1.8.2 version: 1.8.2 @@ -159,6 +153,9 @@ importers: multiformats: specifier: ^9.9.0 version: 9.9.0 + tslib: + specifier: ^2.6.2 + version: 2.6.2 uint8arrays: specifier: 3.0.0 version: 3.0.0 @@ -255,6 +252,9 @@ importers: sharp: specifier: ^0.32.6 version: 0.32.6 + tslib: + specifier: ^2.6.2 + version: 2.6.2 typed-emitter: specifier: ^2.1.0 version: 2.1.0 @@ -304,6 +304,9 @@ importers: axios: specifier: ^0.27.2 version: 0.27.2 + dotenv: + specifier: ^16.0.3 + version: 16.0.3 packages/bsync: dependencies: @@ -377,9 +380,13 @@ importers: pino: specifier: ^8.15.0 version: 8.15.0 - zod: - specifier: 3.21.4 - version: 3.21.4 + tslib: + specifier: ^2.6.2 + version: 2.6.2 + devDependencies: + uint8arrays: + specifier: 3.0.0 + version: 3.0.0 packages/common-web: dependencies: @@ -389,6 +396,9 @@ importers: multiformats: specifier: ^9.9.0 version: 9.9.0 + tslib: + specifier: ^2.6.2 + version: 2.6.2 uint8arrays: specifier: 3.0.0 version: 3.0.0 @@ -404,6 +414,9 @@ importers: '@noble/hashes': specifier: ^1.3.1 version: 1.3.1 + tslib: + specifier: ^2.6.2 + version: 2.6.2 uint8arrays: specifier: 3.0.0 version: 3.0.0 @@ -423,6 +436,9 @@ importers: '@atproto/bsync': specifier: workspace:^ version: link:../bsync + '@atproto/common': + specifier: workspace:^ + version: link:../common '@atproto/common-web': specifier: workspace:^ version: link:../common-web @@ -477,13 +493,12 @@ importers: sharp: specifier: ^0.32.6 version: 0.32.6 + tslib: + specifier: ^2.6.2 + version: 2.6.2 uint8arrays: specifier: 3.0.0 version: 3.0.0 - devDependencies: - ts-node: - specifier: ^10.8.1 - version: 10.8.2(@swc/core@1.3.42)(@types/node@18.17.8)(typescript@5.3.3) packages/identity: dependencies: @@ -496,6 +511,9 @@ importers: axios: specifier: ^0.27.2 version: 0.27.2 + tslib: + specifier: ^2.6.2 + version: 2.6.2 devDependencies: '@did-plc/lib': specifier: ^0.0.1 @@ -506,6 +524,9 @@ importers: cors: specifier: ^2.8.5 version: 2.8.5 + dotenv: + specifier: ^16.0.3 + version: 16.0.3 express: specifier: ^4.18.2 version: 4.18.2 @@ -521,15 +542,33 @@ importers: '@atproto/syntax': specifier: workspace:^ version: link:../syntax + '@atproto/xrpc': + specifier: workspace:^ + version: link:../xrpc + '@atproto/xrpc-server': + specifier: workspace:^ + version: link:../xrpc-server chalk: specifier: ^5.1.1 version: 5.1.1 commander: specifier: ^9.4.0 version: 9.4.0 + express: + specifier: ^4.17.2 + version: 4.18.2 + multiformats: + specifier: ^9.9.0 + version: 9.9.0 + prettier: + specifier: ^2.7.1 + version: 2.7.1 ts-morph: specifier: ^16.0.0 version: 16.0.0 + tslib: + specifier: ^2.6.2 + version: 2.6.2 yesno: specifier: ^0.4.0 version: 0.4.0 @@ -551,6 +590,9 @@ importers: multiformats: specifier: ^9.9.0 version: 9.9.0 + tslib: + specifier: ^2.6.2 + version: 2.6.2 zod: specifier: ^3.21.4 version: 3.21.4 @@ -675,6 +717,9 @@ importers: '@atproto/lexicon': specifier: workspace:^ version: link:../lexicon + '@atproto/pds-templates': + specifier: workspace:^ + version: link:../pds-templates '@atproto/repo': specifier: workspace:^ version: link:../repo @@ -717,9 +762,6 @@ importers: form-data: specifier: ^4.0.0 version: 4.0.0 - handlebars: - specifier: ^4.7.7 - version: 4.7.7 http-errors: specifier: ^2.0.0 version: 2.0.0 @@ -762,6 +804,9 @@ importers: sharp: specifier: ^0.32.6 version: 0.32.6 + tslib: + specifier: ^2.6.2 + version: 2.6.2 typed-emitter: specifier: ^2.1.0 version: 2.1.0 @@ -811,6 +856,9 @@ importers: axios: specifier: ^0.27.2 version: 0.27.2 + dotenv: + specifier: ^16.0.3 + version: 16.0.3 get-port: specifier: ^6.1.2 version: 6.1.2 @@ -818,6 +866,22 @@ importers: specifier: ^8.12.0 version: 8.12.0 + packages/pds-templates: + dependencies: + handlebars: + specifier: ^4.7.7 + version: 4.7.7 + tslib: + specifier: ^2.6.2 + version: 2.6.2 + devDependencies: + esbuild: + specifier: ^0.19.8 + version: 0.19.12 + esbuild-plugin-handlebars: + specifier: ^1.0.2 + version: 1.0.2 + packages/repo: dependencies: '@atproto/common': @@ -847,6 +911,9 @@ importers: multiformats: specifier: ^9.9.0 version: 9.9.0 + tslib: + specifier: ^2.6.2 + version: 2.6.2 uint8arrays: specifier: 3.0.0 version: 3.0.0 @@ -856,15 +923,18 @@ importers: packages/syntax: dependencies: - '@atproto/common-web': - specifier: workspace:^ - version: link:../common-web + tslib: + specifier: ^2.6.2 + version: 2.6.2 packages/xrpc: dependencies: '@atproto/lexicon': specifier: workspace:^ version: link:../lexicon + tslib: + specifier: ^2.6.2 + version: 2.6.2 zod: specifier: ^3.21.4 version: 3.21.4 @@ -895,6 +965,9 @@ importers: rate-limiter-flexible: specifier: ^2.4.1 version: 2.4.1 + tslib: + specifier: ^2.6.2 + version: 2.6.2 uint8arrays: specifier: 3.0.0 version: 3.0.0 @@ -3438,20 +3511,6 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.10: - resolution: {integrity: sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - /@babel/helper-compilation-targets@7.22.10: resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} engines: {node: '>=6.9.0'} @@ -3463,52 +3522,6 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.10(@babel/core@7.18.6): - resolution: {integrity: sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.18.6) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - dev: true - - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.18.6): - resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - dev: true - - /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.18.6): - resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} - peerDependencies: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-compilation-targets': 7.22.10 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.4 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-environment-visitor@7.22.5: resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} @@ -3529,13 +3542,6 @@ packages: '@babel/types': 7.22.10 dev: true - /@babel/helper-member-expression-to-functions@7.22.5: - resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} @@ -3557,42 +3563,11 @@ packages: '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.18.6): - resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-wrap-function': 7.22.10 - dev: true - - /@babel/helper-replace-supers@7.22.9(@babel/core@7.18.6): - resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: true - /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} @@ -3600,13 +3575,6 @@ packages: '@babel/types': 7.22.10 dev: true - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.10 - dev: true - /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} @@ -3629,15 +3597,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-wrap-function@7.22.10: - resolution: {integrity: sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.22.5 - '@babel/template': 7.22.5 - '@babel/types': 7.22.10 - dev: true - /@babel/helpers@7.22.10: resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==} engines: {node: '>=6.9.0'} @@ -3666,876 +3625,180 @@ packages: '@babel/types': 7.22.10 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.18.6): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - '@babel/core': ^7.13.0 + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.10(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.18.6): - resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.18.6): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 - '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.18.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.18.6): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.18.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.18.6): - resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.18.6): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: - '@babel/core': ^7.12.0 + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.18.6) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.18.6): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.18.6): - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.18.6): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.18.6): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.18.6): - resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.18.6): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.18.6): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.18.6): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.18.6): - resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.18.6): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.9 '@babel/core': 7.18.6 - '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.18.6) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.18.6): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.18.6): - resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.18.6): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.18.6) dev: true - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.18.6): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.18.6) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.18.6): - resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} + /@babel/runtime@7.22.10: + resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.18.6) + regenerator-runtime: 0.14.0 dev: true - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@babel/template@7.22.5: + resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/core': 7.18.6 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/code-frame': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.18.6): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@babel/traverse@7.22.10: + resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.18.6): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + /@babel/types@7.22.10: + resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.18.6): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.18.6): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.18.6): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.18.6): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.18.6): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.18.6): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.18.6): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.18.6): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.18.6): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.18.6): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.18.6): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.18.6): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.18.6): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.18.6): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.18.6) - dev: true - - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-block-scoping@7.22.10(@babel/core@7.18.6): - resolution: {integrity: sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-classes@7.22.6(@babel/core@7.18.6): - resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.10 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.18.6) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - dev: true - - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.5 - dev: true - - /@babel/plugin-transform-destructuring@7.22.10(@babel/core@7.18.6): - resolution: {integrity: sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.10 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-compilation-targets': 7.22.10 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.18.6) - dev: true - - /@babel/plugin-transform-optional-chaining@7.22.10(@babel/core@7.18.6): - resolution: {integrity: sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.18.6) - dev: true - - /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.18.6): - resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 - dev: true - - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.18.6): - resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.18.6): - resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.18.6) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/preset-env@7.18.6(@babel/core@7.18.6): - resolution: {integrity: sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.18.6 - '@babel/helper-compilation-targets': 7.22.10 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.18.6) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@7.18.6) - '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.18.6) - '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.18.6) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.18.6) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.18.6) - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.18.6) - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.18.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.18.6) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.18.6) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.18.6) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.18.6) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.18.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.18.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.18.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.18.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.18.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.18.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.18.6) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.18.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.18.6) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-block-scoping': 7.22.10(@babel/core@7.18.6) - '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.18.6) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-destructuring': 7.22.10(@babel/core@7.18.6) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.18.6) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.18.6) - '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.18.6) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.18.6) - '@babel/preset-modules': 0.1.6(@babel/core@7.18.6) - '@babel/types': 7.22.10 - babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.18.6) - babel-plugin-polyfill-corejs3: 0.5.3(@babel/core@7.18.6) - babel-plugin-polyfill-regenerator: 0.3.1(@babel/core@7.18.6) - core-js-compat: 3.32.1 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/preset-modules@0.1.6(@babel/core@7.18.6): - resolution: {integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.18.6) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.18.6) - '@babel/types': 7.22.10 - esutils: 2.0.3 - dev: true - - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: true - - /@babel/runtime@7.22.10: - resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.0 - dev: true - - /@babel/template@7.22.5: - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.10 - '@babel/parser': 7.22.10 - '@babel/types': 7.22.10 - dev: true - - /@babel/traverse@7.22.10: - resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.10 - '@babel/generator': 7.22.10 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.10 - '@babel/types': 7.22.10 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types@7.22.10: - resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 - to-fast-properties: 2.0.0 - dev: true - - /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true /@bufbuild/buf-darwin-arm64@1.28.1: @@ -4947,144 +4210,351 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@datadog/native-appsec@2.0.0: - resolution: {integrity: sha512-XHARZ6MVgbnfOUO6/F3ZoZ7poXHJCNYFlgcyS2Xetuk9ITA5bfcooX2B2F7tReVB+RLJ+j8bsm0t55SyF04KDw==} + /@datadog/native-appsec@2.0.0: + resolution: {integrity: sha512-XHARZ6MVgbnfOUO6/F3ZoZ7poXHJCNYFlgcyS2Xetuk9ITA5bfcooX2B2F7tReVB+RLJ+j8bsm0t55SyF04KDw==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + node-gyp-build: 3.9.0 + dev: false + + /@datadog/native-appsec@4.0.0: + resolution: {integrity: sha512-myTguXJ3VQHS2E1ylNsSF1avNpDmq5t+K4Q47wdzeakGc3sDIDDyEbvuFTujl9c9wBIkup94O1mZj5DR37ajzA==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + node-gyp-build: 3.9.0 + dev: false + + /@datadog/native-iast-rewriter@1.1.2: + resolution: {integrity: sha512-pigRfRtAjZjMjqIXyXb98S4aDnuHz/EmqpoxAajFZsNjBLM87YonwSY5zoBdCsOyA46ddKOJRoCQd5ZalpOFMQ==} + engines: {node: '>= 10'} + dependencies: + node-gyp-build: 4.6.1 + dev: false + + /@datadog/native-iast-rewriter@2.2.1: + resolution: {integrity: sha512-DyZlE8gNa5AoOFNKGRJU4RYF/Y/tJzv4bIAMuVBbEnMA0xhiIYqpYQG8T3OKkALl3VSEeBMjYwuOR2fCrJ6gzA==} + engines: {node: '>= 10'} + dependencies: + lru-cache: 7.18.3 + node-gyp-build: 4.6.1 + dev: false + + /@datadog/native-iast-taint-tracking@1.1.0: + resolution: {integrity: sha512-TOrngpt6Qh52zWFOz1CkFXw0g43rnuUziFBtIMUsOLGzSHr9wdnTnE6HAyuvKy3f3ecAoZESlMfilGRKP93hXQ==} + dependencies: + node-gyp-build: 3.9.0 + dev: false + + /@datadog/native-iast-taint-tracking@1.6.4: + resolution: {integrity: sha512-Owxk7hQ4Dxwv4zJAoMjRga0IvE6lhvxnNc8pJCHsemCWBXchjr/9bqg05Zy5JnMbKUWn4XuZeJD6RFZpRa8bfw==} + requiresBuild: true + dependencies: + node-gyp-build: 3.9.0 + dev: false + + /@datadog/native-metrics@1.6.0: + resolution: {integrity: sha512-+8jBzd0nlLV+ay3Vb87DLwz8JHAS817hRhSRQ6zxhud9TyvvcNTNN+VA2sb2fe5UK4aMDvj/sGVJjEtgr4RHew==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + node-gyp-build: 3.9.0 + dev: false + + /@datadog/native-metrics@2.0.0: + resolution: {integrity: sha512-YklGVwUtmKGYqFf1MNZuOHvTYdKuR4+Af1XkWcMD8BwOAjxmd9Z+97328rCOY8TFUJzlGUPaXzB8j2qgG/BMwA==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + node-addon-api: 6.1.0 + node-gyp-build: 3.9.0 + dev: false + + /@datadog/pprof@1.1.1: + resolution: {integrity: sha512-5lYXUpikQhrJwzODtJ7aFM0oKmPccISnTCecuWhjxIj4/7UJv0DamkLak634bgEW+kiChgkKFDapHSesuXRDXQ==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + delay: 5.0.0 + findit2: 2.2.3 + node-gyp-build: 3.9.0 + p-limit: 3.1.0 + pify: 5.0.0 + protobufjs: 7.2.5 + source-map: 0.7.4 + split: 1.0.1 + dev: false + + /@datadog/pprof@4.0.1: + resolution: {integrity: sha512-TavqyiyQZOaUM9eQB07r8+K/T1CqKyOdsUGxpN79+BF+eOQBpTj/Cte6KdlhcUSKL3h5hSjC+vlgA7uW2qtVhA==} + engines: {node: '>=14'} + requiresBuild: true + dependencies: + delay: 5.0.0 + node-gyp-build: 3.9.0 + p-limit: 3.1.0 + pprof-format: 2.0.7 + source-map: 0.7.4 + dev: false + + /@datadog/sketches-js@2.1.0: + resolution: {integrity: sha512-smLocSfrt3s53H/XSVP3/1kP42oqvrkjUPtyaFd1F79ux24oE31BKt+q0c6lsa6hOYrFzsIwyc5GXAI5JmfOew==} + dev: false + + /@did-plc/lib@0.0.1: + resolution: {integrity: sha512-RkY5w9DbYMco3SjeepqIiMveqz35exjlVDipCs2gz9AXF4/cp9hvmrp9zUWEw2vny+FjV8vGEN7QpaXWaO6nhg==} + dependencies: + '@atproto/common': 0.1.0 + '@atproto/crypto': 0.1.0 + '@ipld/dag-cbor': 7.0.3 + axios: 1.6.2 + multiformats: 9.9.0 + uint8arrays: 3.0.0 + zod: 3.21.4 + transitivePeerDependencies: + - debug + + /@did-plc/lib@0.0.4: + resolution: {integrity: sha512-Omeawq3b8G/c/5CtkTtzovSOnWuvIuCI4GTJNrt1AmCskwEQV7zbX5d6km1mjJNbE0gHuQPTVqZxLVqetNbfwA==} + dependencies: + '@atproto/common': 0.1.1 + '@atproto/crypto': 0.1.0 + '@ipld/dag-cbor': 7.0.3 + axios: 1.6.2 + multiformats: 9.9.0 + uint8arrays: 3.0.0 + zod: 3.21.4 + transitivePeerDependencies: + - debug + + /@did-plc/server@0.0.1: + resolution: {integrity: sha512-GtxxHcOrOQ6fNI1ufq3Zqjc2PtWqPZOdsuzlwtxiH9XibUGwDkb0GmaBHyU5GiOxOKZEW1GspZ8mreBA6XOlTQ==} + dependencies: + '@atproto/common': 0.1.0 + '@atproto/crypto': 0.1.0 + '@did-plc/lib': 0.0.4 + axios: 1.4.0 + cors: 2.8.5 + express: 4.18.2 + express-async-errors: 3.1.1(express@4.18.2) + http-terminator: 3.2.0 + kysely: 0.23.5 + multiformats: 9.9.0 + pg: 8.10.0 + pino: 8.15.0 + pino-http: 8.4.0 + transitivePeerDependencies: + - debug + - pg-native + - supports-color + + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} + cpu: [s390x] + os: [linux] requiresBuild: true - dependencies: - node-gyp-build: 3.9.0 - dev: false + dev: true + optional: true - /@datadog/native-appsec@4.0.0: - resolution: {integrity: sha512-myTguXJ3VQHS2E1ylNsSF1avNpDmq5t+K4Q47wdzeakGc3sDIDDyEbvuFTujl9c9wBIkup94O1mZj5DR37ajzA==} + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} + cpu: [x64] + os: [linux] requiresBuild: true - dependencies: - node-gyp-build: 3.9.0 - dev: false - - /@datadog/native-iast-rewriter@1.1.2: - resolution: {integrity: sha512-pigRfRtAjZjMjqIXyXb98S4aDnuHz/EmqpoxAajFZsNjBLM87YonwSY5zoBdCsOyA46ddKOJRoCQd5ZalpOFMQ==} - engines: {node: '>= 10'} - dependencies: - node-gyp-build: 4.6.1 - dev: false - - /@datadog/native-iast-rewriter@2.2.1: - resolution: {integrity: sha512-DyZlE8gNa5AoOFNKGRJU4RYF/Y/tJzv4bIAMuVBbEnMA0xhiIYqpYQG8T3OKkALl3VSEeBMjYwuOR2fCrJ6gzA==} - engines: {node: '>= 10'} - dependencies: - lru-cache: 7.18.3 - node-gyp-build: 4.6.1 - dev: false - - /@datadog/native-iast-taint-tracking@1.1.0: - resolution: {integrity: sha512-TOrngpt6Qh52zWFOz1CkFXw0g43rnuUziFBtIMUsOLGzSHr9wdnTnE6HAyuvKy3f3ecAoZESlMfilGRKP93hXQ==} - dependencies: - node-gyp-build: 3.9.0 - dev: false + dev: true + optional: true - /@datadog/native-iast-taint-tracking@1.6.4: - resolution: {integrity: sha512-Owxk7hQ4Dxwv4zJAoMjRga0IvE6lhvxnNc8pJCHsemCWBXchjr/9bqg05Zy5JnMbKUWn4XuZeJD6RFZpRa8bfw==} + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] requiresBuild: true - dependencies: - node-gyp-build: 3.9.0 - dev: false + dev: true + optional: true - /@datadog/native-metrics@1.6.0: - resolution: {integrity: sha512-+8jBzd0nlLV+ay3Vb87DLwz8JHAS817hRhSRQ6zxhud9TyvvcNTNN+VA2sb2fe5UK4aMDvj/sGVJjEtgr4RHew==} + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] requiresBuild: true - dependencies: - node-gyp-build: 3.9.0 - dev: false + dev: true + optional: true - /@datadog/native-metrics@2.0.0: - resolution: {integrity: sha512-YklGVwUtmKGYqFf1MNZuOHvTYdKuR4+Af1XkWcMD8BwOAjxmd9Z+97328rCOY8TFUJzlGUPaXzB8j2qgG/BMwA==} + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} + cpu: [x64] + os: [sunos] requiresBuild: true - dependencies: - node-addon-api: 6.1.0 - node-gyp-build: 3.9.0 - dev: false + dev: true + optional: true - /@datadog/pprof@1.1.1: - resolution: {integrity: sha512-5lYXUpikQhrJwzODtJ7aFM0oKmPccISnTCecuWhjxIj4/7UJv0DamkLak634bgEW+kiChgkKFDapHSesuXRDXQ==} + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} + cpu: [arm64] + os: [win32] requiresBuild: true - dependencies: - delay: 5.0.0 - findit2: 2.2.3 - node-gyp-build: 3.9.0 - p-limit: 3.1.0 - pify: 5.0.0 - protobufjs: 7.2.5 - source-map: 0.7.4 - split: 1.0.1 - dev: false + dev: true + optional: true - /@datadog/pprof@4.0.1: - resolution: {integrity: sha512-TavqyiyQZOaUM9eQB07r8+K/T1CqKyOdsUGxpN79+BF+eOQBpTj/Cte6KdlhcUSKL3h5hSjC+vlgA7uW2qtVhA==} - engines: {node: '>=14'} + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] requiresBuild: true - dependencies: - delay: 5.0.0 - node-gyp-build: 3.9.0 - p-limit: 3.1.0 - pprof-format: 2.0.7 - source-map: 0.7.4 - dev: false - - /@datadog/sketches-js@2.1.0: - resolution: {integrity: sha512-smLocSfrt3s53H/XSVP3/1kP42oqvrkjUPtyaFd1F79ux24oE31BKt+q0c6lsa6hOYrFzsIwyc5GXAI5JmfOew==} - dev: false - - /@did-plc/lib@0.0.1: - resolution: {integrity: sha512-RkY5w9DbYMco3SjeepqIiMveqz35exjlVDipCs2gz9AXF4/cp9hvmrp9zUWEw2vny+FjV8vGEN7QpaXWaO6nhg==} - dependencies: - '@atproto/common': 0.1.0 - '@atproto/crypto': 0.1.0 - '@ipld/dag-cbor': 7.0.3 - axios: 1.6.2 - multiformats: 9.9.0 - uint8arrays: 3.0.0 - zod: 3.21.4 - transitivePeerDependencies: - - debug - - /@did-plc/lib@0.0.4: - resolution: {integrity: sha512-Omeawq3b8G/c/5CtkTtzovSOnWuvIuCI4GTJNrt1AmCskwEQV7zbX5d6km1mjJNbE0gHuQPTVqZxLVqetNbfwA==} - dependencies: - '@atproto/common': 0.1.1 - '@atproto/crypto': 0.1.0 - '@ipld/dag-cbor': 7.0.3 - axios: 1.6.2 - multiformats: 9.9.0 - uint8arrays: 3.0.0 - zod: 3.21.4 - transitivePeerDependencies: - - debug + dev: true + optional: true - /@did-plc/server@0.0.1: - resolution: {integrity: sha512-GtxxHcOrOQ6fNI1ufq3Zqjc2PtWqPZOdsuzlwtxiH9XibUGwDkb0GmaBHyU5GiOxOKZEW1GspZ8mreBA6XOlTQ==} - dependencies: - '@atproto/common': 0.1.0 - '@atproto/crypto': 0.1.0 - '@did-plc/lib': 0.0.4 - axios: 1.4.0 - cors: 2.8.5 - express: 4.18.2 - express-async-errors: 3.1.1(express@4.18.2) - http-terminator: 3.2.0 - kysely: 0.23.5 - multiformats: 9.9.0 - pg: 8.10.0 - pino: 8.15.0 - pino-http: 8.4.0 - transitivePeerDependencies: - - debug - - pg-native - - supports-color + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true /@eslint-community/eslint-utils@4.4.0(eslint@8.24.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -5192,57 +4662,57 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console@28.1.3: - resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 '@types/node': 18.17.8 chalk: 4.1.2 - jest-message-util: 28.1.3 - jest-util: 28.1.3 + jest-message-util: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 dev: true - /@jest/core@28.1.3(ts-node@10.8.2): - resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/core@29.7.0(ts-node@10.8.2): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true dependencies: - '@jest/console': 28.1.3 - '@jest/reporters': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 18.17.8 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 - jest-changed-files: 28.1.3 - jest-config: 28.1.3(@types/node@18.17.8)(ts-node@10.8.2) - jest-haste-map: 28.1.3 - jest-message-util: 28.1.3 - jest-regex-util: 28.0.2 - jest-resolve: 28.1.3 - jest-resolve-dependencies: 28.1.3 - jest-runner: 28.1.3 - jest-runtime: 28.1.3 - jest-snapshot: 28.1.3 - jest-util: 28.1.3 - jest-validate: 28.1.3 - jest-watcher: 28.1.3 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@18.17.8)(ts-node@10.8.2) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 micromatch: 4.0.5 - pretty-format: 28.1.3 - rimraf: 3.0.2 + pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: + - babel-plugin-macros - supports-color - ts-node dev: true @@ -5254,59 +4724,60 @@ packages: '@jest/types': 27.5.1 dev: true - /@jest/environment@28.1.3: - resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 28.1.3 - '@jest/types': 28.1.3 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 18.17.8 - jest-mock: 28.1.3 + jest-mock: 29.7.0 dev: true - /@jest/expect-utils@28.1.3: - resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 28.0.2 + jest-get-type: 29.6.3 dev: true - /@jest/expect@28.1.3: - resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 28.1.3 - jest-snapshot: 28.1.3 + expect: 29.7.0 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@28.1.3: - resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 - '@sinonjs/fake-timers': 9.1.2 + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 '@types/node': 18.17.8 - jest-message-util: 28.1.3 - jest-mock: 28.1.3 - jest-util: 28.1.3 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 dev: true - /@jest/globals@28.1.3: - resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 28.1.3 - '@jest/expect': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters@28.1.3: - resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -5314,10 +4785,10 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.19 '@types/node': 18.17.8 chalk: 4.1.2 @@ -5326,17 +4797,16 @@ packages: glob: 7.2.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.1 + istanbul-lib-instrument: 6.0.1 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.6 - jest-message-util: 28.1.3 - jest-util: 28.1.3 - jest-worker: 28.1.3 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - terminal-link: 2.1.1 v8-to-istanbul: 9.1.0 transitivePeerDependencies: - supports-color @@ -5349,50 +4819,57 @@ packages: '@sinclair/typebox': 0.24.51 dev: true - /@jest/source-map@28.1.2: - resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jridgewell/trace-mapping': 0.3.19 callsites: 3.1.0 graceful-fs: 4.2.11 dev: true - /@jest/test-result@28.1.3: - resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.2 dev: true - /@jest/test-sequencer@28.1.3: - resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 28.1.3 + '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 - jest-haste-map: 28.1.3 + jest-haste-map: 29.7.0 slash: 3.0.0 dev: true - /@jest/transform@28.1.3: - resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.18.6 - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.19 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 - convert-source-map: 1.9.0 + convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 28.1.3 - jest-regex-util: 28.0.2 - jest-util: 28.1.3 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 micromatch: 4.0.5 pirates: 4.0.6 slash: 3.0.0 @@ -5412,11 +4889,11 @@ packages: chalk: 4.1.2 dev: true - /@jest/types@28.1.3: - resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 28.1.3 + '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 '@types/node': 18.17.8 @@ -5530,13 +5007,6 @@ packages: rimraf: 3.0.2 dev: true - /@npmcli/package-json@3.0.0: - resolution: {integrity: sha512-NnuPuM97xfiCpbTEJYtEuKz6CFbpUHtaT0+5via5pQeI25omvQDFbp1GcGJ/c4zvL/WX0qbde6YiLgfZbWFgvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - json-parse-even-better-errors: 3.0.0 - dev: true - /@opentelemetry/api@1.7.0: resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==} engines: {node: '>=8.0.0'} @@ -5636,16 +5106,20 @@ packages: resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} dev: true - /@sinonjs/commons@1.8.6: - resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} 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.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: - '@sinonjs/commons': 1.8.6 + '@sinonjs/commons': 3.0.1 dev: true /@smithy/abort-controller@1.1.0: @@ -5979,10 +5453,6 @@ packages: pg-types: 2.2.0 dev: true - /@types/prettier@2.7.3: - resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} - dev: true - /@types/qs@6.9.7: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} @@ -6450,17 +5920,17 @@ packages: - supports-color dev: true - /babel-jest@28.1.3(@babel/core@7.18.6): - resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /babel-jest@29.7.0(@babel/core@7.18.6): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.18.6 - '@jest/transform': 28.1.3 + '@jest/transform': 29.7.0 '@types/babel__core': 7.20.1 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 28.1.3(@babel/core@7.18.6) + babel-preset-jest: 29.6.3(@babel/core@7.18.6) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -6481,9 +5951,9 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist@28.1.3: - resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.5 '@babel/types': 7.22.10 @@ -6491,42 +5961,6 @@ packages: '@types/babel__traverse': 7.20.1 dev: true - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.18.6): - resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.18.6 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.18.6) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs3@0.5.3(@babel/core@7.18.6): - resolution: {integrity: sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.18.6) - core-js-compat: 3.32.1 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-regenerator@0.3.1(@babel/core@7.18.6): - resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.18.6 - '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.18.6) - transitivePeerDependencies: - - supports-color - dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.18.6): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: @@ -6547,14 +5981,14 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.18.6) dev: true - /babel-preset-jest@28.1.3(@babel/core@7.18.6): - resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /babel-preset-jest@29.6.3(@babel/core@7.18.6): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.18.6 - babel-plugin-jest-hoist: 28.1.3 + babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.18.6) dev: true @@ -6983,6 +6417,10 @@ packages: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} @@ -6990,12 +6428,6 @@ packages: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} - /core-js-compat@3.32.1: - resolution: {integrity: sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==} - dependencies: - browserslist: 4.21.10 - dev: true - /cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} @@ -7003,14 +6435,44 @@ packages: object-assign: 4.1.1 vary: 1.1.2 + /create-jest@29.7.0(@types/node@18.0.0)(ts-node@10.8.2): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@18.0.0)(ts-node@10.8.2) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true - /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} dependencies: - lru-cache: 4.1.5 + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 shebang-command: 1.2.0 which: 1.3.1 dev: true @@ -7177,8 +6639,13 @@ packages: dependencies: mimic-response: 3.1.0 - /dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true dev: true /deep-extend@0.6.0: @@ -7253,6 +6720,11 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: true + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -7325,8 +6797,8 @@ packages: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - /emittery@0.10.2: - resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} dev: true @@ -7670,6 +7142,37 @@ packages: esbuild-windows-arm64: 0.14.48 dev: true + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -7882,15 +7385,15 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - /expect@28.1.3: - resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 28.1.3 - jest-get-type: 28.0.2 - jest-matcher-utils: 28.1.3 - jest-message-util: 28.1.3 - jest-util: 28.1.3 + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 dev: true /express-async-errors@3.1.1(express@4.18.2): @@ -8830,6 +8333,19 @@ packages: - supports-color dev: true + /istanbul-lib-instrument@6.0.1: + resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.18.6 + '@babel/parser': 7.22.10 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} @@ -8858,44 +8374,47 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /jest-changed-files@28.1.3: - resolution: {integrity: sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 + jest-util: 29.7.0 p-limit: 3.1.0 dev: true - /jest-circus@28.1.3: - resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 28.1.3 - '@jest/expect': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 18.17.8 chalk: 4.1.2 co: 4.6.0 - dedent: 0.7.0 + dedent: 1.5.1 is-generator-fn: 2.1.0 - jest-each: 28.1.3 - jest-matcher-utils: 28.1.3 - jest-message-util: 28.1.3 - jest-runtime: 28.1.3 - jest-snapshot: 28.1.3 - jest-util: 28.1.3 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 p-limit: 3.1.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 + pure-rand: 6.0.4 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: + - babel-plugin-macros - supports-color dev: true - /jest-cli@28.1.3(@types/node@18.0.0)(ts-node@10.8.2): - resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-cli@29.7.0(@types/node@18.0.0)(ts-node@10.8.2): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -8903,27 +8422,27 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 28.1.3(ts-node@10.8.2) - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 + '@jest/core': 29.7.0(ts-node@10.8.2) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 chalk: 4.1.2 + create-jest: 29.7.0(@types/node@18.0.0)(ts-node@10.8.2) exit: 0.1.2 - graceful-fs: 4.2.11 import-local: 3.1.0 - jest-config: 28.1.3(@types/node@18.0.0)(ts-node@10.8.2) - jest-util: 28.1.3 - jest-validate: 28.1.3 - prompts: 2.4.2 + jest-config: 29.7.0(@types/node@18.0.0)(ts-node@10.8.2) + jest-util: 29.7.0 + jest-validate: 29.7.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' + - babel-plugin-macros - supports-color - ts-node dev: true - /jest-config@28.1.3(@types/node@18.0.0)(ts-node@10.8.2): - resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-config@29.7.0(@types/node@18.0.0)(ts-node@10.8.2): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' ts-node: '>=9.0.0' @@ -8934,36 +8453,37 @@ packages: optional: true dependencies: '@babel/core': 7.18.6 - '@jest/test-sequencer': 28.1.3 - '@jest/types': 28.1.3 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 18.0.0 - babel-jest: 28.1.3(@babel/core@7.18.6) + babel-jest: 29.7.0(@babel/core@7.18.6) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 - jest-circus: 28.1.3 - jest-environment-node: 28.1.3 - jest-get-type: 28.0.2 - jest-regex-util: 28.0.2 - jest-resolve: 28.1.3 - jest-runner: 28.1.3 - jest-util: 28.1.3 - jest-validate: 28.1.3 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 ts-node: 10.8.2(@swc/core@1.3.42)(@types/node@18.0.0)(typescript@5.3.3) transitivePeerDependencies: + - babel-plugin-macros - supports-color dev: true - /jest-config@28.1.3(@types/node@18.17.8)(ts-node@10.8.2): - resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-config@29.7.0(@types/node@18.17.8)(ts-node@10.8.2): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' ts-node: '>=9.0.0' @@ -8974,30 +8494,31 @@ packages: optional: true dependencies: '@babel/core': 7.18.6 - '@jest/test-sequencer': 28.1.3 - '@jest/types': 28.1.3 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 18.17.8 - babel-jest: 28.1.3(@babel/core@7.18.6) + babel-jest: 29.7.0(@babel/core@7.18.6) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 - jest-circus: 28.1.3 - jest-environment-node: 28.1.3 - jest-get-type: 28.0.2 - jest-regex-util: 28.0.2 - jest-resolve: 28.1.3 - jest-runner: 28.1.3 - jest-util: 28.1.3 - jest-validate: 28.1.3 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 ts-node: 10.8.2(@swc/core@1.3.42)(@types/node@18.0.0)(typescript@5.3.3) transitivePeerDependencies: + - babel-plugin-macros - supports-color dev: true @@ -9011,11 +8532,14 @@ packages: pretty-format: 28.1.3 dev: true - /jest-docblock@28.1.1: - resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - detect-newline: 3.1.0 + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 dev: true /jest-docblock@29.7.0: @@ -9023,29 +8547,28 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 - dev: false - /jest-each@28.1.3: - resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 chalk: 4.1.2 - jest-get-type: 28.0.2 - jest-util: 28.1.3 - pretty-format: 28.1.3 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 dev: true - /jest-environment-node@28.1.3: - resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 28.1.3 - '@jest/fake-timers': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 18.17.8 - jest-mock: 28.1.3 - jest-util: 28.1.3 + jest-mock: 29.7.0 + jest-util: 29.7.0 dev: true /jest-get-type@28.0.2: @@ -9053,31 +8576,36 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: true - /jest-haste-map@28.1.3: - resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 '@types/node': 18.17.8 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 - jest-regex-util: 28.0.2 - jest-util: 28.1.3 - jest-worker: 28.1.3 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 dev: true - /jest-leak-detector@28.1.3: - resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 28.0.2 - pretty-format: 28.1.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 dev: true /jest-matcher-utils@28.1.3: @@ -9090,30 +8618,41 @@ packages: pretty-format: 28.1.3 dev: true - /jest-message-util@28.1.3: - resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.22.10 - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.5 - pretty-format: 28.1.3 + pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 dev: true - /jest-mock@28.1.3: - resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 '@types/node': 18.17.8 + jest-util: 29.7.0 dev: true - /jest-pnp-resolver@1.2.3(jest-resolve@28.1.3): + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} peerDependencies: @@ -9122,134 +8661,131 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 28.1.3 + jest-resolve: 29.7.0 dev: true - /jest-regex-util@28.0.2: - resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies@28.1.3: - resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-regex-util: 28.0.2 - jest-snapshot: 28.1.3 + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /jest-resolve@28.1.3: - resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 28.1.3 - jest-pnp-resolver: 1.2.3(jest-resolve@28.1.3) - jest-util: 28.1.3 - jest-validate: 28.1.3 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 resolve: 1.22.4 - resolve.exports: 1.1.1 + resolve.exports: 2.0.2 slash: 3.0.0 dev: true - /jest-runner@28.1.3: - resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 28.1.3 - '@jest/environment': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 18.17.8 chalk: 4.1.2 - emittery: 0.10.2 + emittery: 0.13.1 graceful-fs: 4.2.11 - jest-docblock: 28.1.1 - jest-environment-node: 28.1.3 - jest-haste-map: 28.1.3 - jest-leak-detector: 28.1.3 - jest-message-util: 28.1.3 - jest-resolve: 28.1.3 - jest-runtime: 28.1.3 - jest-util: 28.1.3 - jest-watcher: 28.1.3 - jest-worker: 28.1.3 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime@28.1.3: - resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 28.1.3 - '@jest/fake-timers': 28.1.3 - '@jest/globals': 28.1.3 - '@jest/source-map': 28.1.2 - '@jest/test-result': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.17.8 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 - execa: 5.1.1 glob: 7.2.3 graceful-fs: 4.2.11 - jest-haste-map: 28.1.3 - jest-message-util: 28.1.3 - jest-mock: 28.1.3 - jest-regex-util: 28.0.2 - jest-resolve: 28.1.3 - jest-snapshot: 28.1.3 - jest-util: 28.1.3 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot@28.1.3: - resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.18.6 '@babel/generator': 7.22.10 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.18.6) '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.18.6) - '@babel/traverse': 7.22.10 '@babel/types': 7.22.10 - '@jest/expect-utils': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 - '@types/babel__traverse': 7.20.1 - '@types/prettier': 2.7.3 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.18.6) chalk: 4.1.2 - expect: 28.1.3 + expect: 29.7.0 graceful-fs: 4.2.11 - jest-diff: 28.1.3 - jest-get-type: 28.0.2 - jest-haste-map: 28.1.3 - jest-matcher-utils: 28.1.3 - jest-message-util: 28.1.3 - jest-util: 28.1.3 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 natural-compare: 1.4.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true - /jest-util@28.1.3: - resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 '@types/node': 18.17.8 chalk: 4.1.2 ci-info: 3.8.0 @@ -9257,44 +8793,45 @@ packages: picomatch: 2.3.1 dev: true - /jest-validate@28.1.3: - resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 28.0.2 + jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 dev: true - /jest-watcher@28.1.3: - resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 '@types/node': 18.17.8 ansi-escapes: 4.3.2 chalk: 4.1.2 - emittery: 0.10.2 - jest-util: 28.1.3 + emittery: 0.13.1 + jest-util: 29.7.0 string-length: 4.0.2 dev: true - /jest-worker@28.1.3: - resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.17.8 + jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@28.1.2(@types/node@18.0.0)(ts-node@10.8.2): - resolution: {integrity: sha512-Tuf05DwLeCh2cfWCQbcz9UxldoDyiR1E9Igaei5khjonKncYdc6LDfynKCEWozK0oLE3GD+xKAo2u8x/0s6GOg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest@29.7.0(@types/node@18.0.0)(ts-node@10.8.2): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -9302,12 +8839,13 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 28.1.3(ts-node@10.8.2) - '@jest/types': 28.1.3 + '@jest/core': 29.7.0(ts-node@10.8.2) + '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 28.1.3(@types/node@18.0.0)(ts-node@10.8.2) + jest-cli: 29.7.0(@types/node@18.0.0)(ts-node@10.8.2) transitivePeerDependencies: - '@types/node' + - babel-plugin-macros - supports-color - ts-node dev: true @@ -9348,24 +8886,18 @@ packages: argparse: 2.0.1 dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true - /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true dev: true - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true - /json-parse-even-better-errors@3.0.0: - resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true /json-schema-traverse@0.4.1: @@ -9452,6 +8984,16 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + /load-yaml-file@0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} @@ -9476,10 +9018,6 @@ packages: p-locate: 5.0.0 dev: true - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true - /lodash.defaults@4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} @@ -9593,6 +9131,11 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + dev: true + /meow@6.1.1: resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} engines: {node: '>=8'} @@ -9814,6 +9357,10 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + /node-abi@3.47.0: resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==} engines: {node: '>=10'} @@ -9928,6 +9475,22 @@ packages: engines: {node: '>=0.10.0'} dev: true + /npm-run-all@4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.5 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.8.1 + string.prototype.padend: 3.1.5 + dev: true + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -10118,6 +9681,14 @@ packages: callsites: 3.1.0 dev: true + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -10146,6 +9717,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -10157,6 +9733,13 @@ packages: /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -10223,6 +9806,17 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + /pidtree@0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + /pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -10382,7 +9976,6 @@ packages: resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} engines: {node: '>=10.13.0'} hasBin: true - dev: true /pretty-format@28.1.3: resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} @@ -10394,6 +9987,15 @@ packages: react-is: 18.2.0 dev: true + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /process-warning@2.2.0: resolution: {integrity: sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==} @@ -10473,6 +10075,10 @@ packages: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} + /pure-rand@6.0.4: + resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + dev: true + /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -10533,6 +10139,15 @@ packages: type-fest: 0.8.1 dev: true + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + /read-pkg@5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} @@ -10599,27 +10214,10 @@ packages: dependencies: redis-errors: 1.2.0 - /regenerate-unicode-properties@10.1.0: - resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: true - - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: true - /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} dev: true - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.22.10 - dev: true - /regexp.prototype.flags@1.5.0: resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} engines: {node: '>= 0.4'} @@ -10634,25 +10232,6 @@ packages: engines: {node: '>=8'} dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.0 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - dev: true - - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - dev: true - /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -10694,8 +10273,8 @@ packages: engines: {node: '>=8'} dev: true - /resolve.exports@1.1.1: - resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} dev: true @@ -10905,6 +10484,10 @@ packages: engines: {node: '>=8'} dev: true + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: true + /shimmer@1.2.1: resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} dev: false @@ -11103,6 +10686,15 @@ packages: strip-ansi: 6.0.1 dev: true + /string.prototype.padend@3.1.5: + resolution: {integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + dev: true + /string.prototype.trim@1.2.7: resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} engines: {node: '>= 0.4'} @@ -11203,14 +10795,6 @@ packages: has-flag: 4.0.0 dev: true - /supports-hyperlinks@2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -11266,14 +10850,6 @@ packages: engines: {node: '>=8'} dev: true - /terminal-link@2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.3.0 - dev: true - /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -11391,38 +10967,6 @@ packages: yn: 3.1.1 dev: true - /ts-node@10.8.2(@swc/core@1.3.42)(@types/node@18.17.8)(typescript@5.3.3): - resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@swc/core': 1.3.42 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 18.17.8 - acorn: 8.10.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.3.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false @@ -11585,29 +11129,6 @@ packages: '@fastify/busboy': 2.1.0 dev: false - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: true - - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: true - - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - dev: true - - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: true - /unique-filename@2.0.1: resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} diff --git a/services/bsky/Dockerfile b/services/bsky/Dockerfile index 9da764ecc3d..0ddd64125a5 100644 --- a/services/bsky/Dockerfile +++ b/services/bsky/Dockerfile @@ -23,9 +23,7 @@ COPY ./services/bsky ./services/bsky # install all deps RUN pnpm install --frozen-lockfile > /dev/null # build all packages with external node_modules -RUN ATP_BUILD_SHALLOW=true pnpm build > /dev/null -# update main with publishConfig -RUN pnpm update-main-to-dist > /dev/null +RUN pnpm build > /dev/null # clean up RUN rm -rf node_modules # install only prod deps, hoisted to root node_modules dir diff --git a/services/pds/Dockerfile b/services/pds/Dockerfile index 6d092bb5229..ab994d09487 100644 --- a/services/pds/Dockerfile +++ b/services/pds/Dockerfile @@ -8,6 +8,7 @@ RUN npm install -g pnpm WORKDIR /app COPY ./*.* ./ # NOTE pds's transitive dependencies go here: if that changes, this needs to be updated. +COPY ./packages/pds-templates ./packages/pds-templates COPY ./packages/pds ./packages/pds COPY ./packages/api ./packages/api COPY ./packages/aws ./packages/aws @@ -26,9 +27,7 @@ COPY ./services/pds ./services/pds # install all deps RUN pnpm install --frozen-lockfile > /dev/null # build all packages with external node_modules -RUN ATP_BUILD_SHALLOW=true pnpm build > /dev/null -# update main with publishConfig -RUN pnpm update-main-to-dist > /dev/null +RUN pnpm build > /dev/null # clean up RUN rm -rf node_modules # install only prod deps, hoisted to root node_modules dir diff --git a/test-setup.ts b/test-setup.ts deleted file mode 100644 index 7936c55bb27..00000000000 --- a/test-setup.ts +++ /dev/null @@ -1,3 +0,0 @@ -import dotenv from 'dotenv' - -dotenv.config({ path: './test.env' }) diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 00000000000..74c78087748 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,21 @@ +{ + "include": [], + "references": [ + { "path": "./packages/api/tsconfig.build.json" }, + { "path": "./packages/aws/tsconfig.build.json" }, + { "path": "./packages/bsky/tsconfig.build.json" }, + { "path": "./packages/common/tsconfig.build.json" }, + { "path": "./packages/common-web/tsconfig.build.json" }, + { "path": "./packages/crypto/tsconfig.build.json" }, + { "path": "./packages/dev-env/tsconfig.build.json" }, + { "path": "./packages/identity/tsconfig.build.json" }, + { "path": "./packages/lex-cli/tsconfig.build.json" }, + { "path": "./packages/lexicon/tsconfig.build.json" }, + { "path": "./packages/pds/tsconfig.build.json" }, + { "path": "./packages/pds-templates/tsconfig.build.json" }, + { "path": "./packages/repo/tsconfig.build.json" }, + { "path": "./packages/syntax/tsconfig.build.json" }, + { "path": "./packages/xrpc/tsconfig.build.json" }, + { "path": "./packages/xrpc-server/tsconfig.build.json" } + ] +} diff --git a/tsconfig.json b/tsconfig.json index 75a29d07106..4077650349a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,27 +1,5 @@ { - "compilerOptions": { - "declaration": true, - "noImplicitAny": false, - "removeComments": true, - "noLib": false, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "target": "es2020", - "sourceMap": true, - "module": "commonjs", - "jsx": "preserve", - "strict": true, - "strictPropertyInitialization": false, - "moduleResolution": "node", - "resolveJsonModule": true, - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "lib": ["dom", "dom.iterable", "esnext", "webworker"], - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "isolatedModules": true - }, - "exclude": ["node_modules", "**/*/dist"], + "include": [], "references": [ { "path": "./packages/pds/tsconfig.build.json" }, { "path": "./packages/bsky/tsconfig.build.json" }, @@ -33,14 +11,14 @@ { "path": "./packages/common-web/tsconfig.build.json" }, { "path": "./packages/crypto/tsconfig.build.json" }, { "path": "./packages/dev-env" }, - { "path": "./packages/identity/tsconfig.build.json" }, - { "path": "./packages/identifier/tsconfig.build.json" }, - { "path": "./packages/syntax/tsconfig.build.json" }, - { "path": "./packages/lexicon/tsconfig.build.json" }, - { "path": "./packages/lex-cli/tsconfig.build.json" }, - { "path": "./packages/nsid/tsconfig.build.json" }, - { "path": "./packages/uri/tsconfig.build.json" }, - { "path": "./packages/xrpc/tsconfig.build.json" }, - { "path": "./packages/xrpc-server/tsconfig.build.json" } + { "path": "./packages/identity" }, + { "path": "./packages/lex-cli" }, + { "path": "./packages/lexicon" }, + { "path": "./packages/pds" }, + { "path": "./packages/pds-templates" }, + { "path": "./packages/repo" }, + { "path": "./packages/syntax" }, + { "path": "./packages/xrpc" }, + { "path": "./packages/xrpc-server" } ] } diff --git a/tsconfig.scripts.json b/tsconfig.scripts.json new file mode 100644 index 00000000000..46eba3fb5e2 --- /dev/null +++ b/tsconfig.scripts.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig/scripts.json", + "include": ["./*.js", "./*.ts"] +} diff --git a/tsconfig/base.json b/tsconfig/base.json new file mode 100644 index 00000000000..034c6148b78 --- /dev/null +++ b/tsconfig/base.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "strict": true, + "strictPropertyInitialization": false, + "noImplicitAny": false, + "forceConsistentCasingInFileNames": true, + + "isolatedModules": true, + + "checkJs": true, + + "jsx": "preserve", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + + "resolveJsonModule": true, + "target": "ES2020", + "module": "CommonJS", + "moduleResolution": "Node", + + "composite": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": ["node"], + + "importHelpers": true, + "sourceMap": true, + "declarationMap": true + }, + "typeAcquisition": { + "enable": false + }, + "exclude": ["node_modules", "dist"] +} diff --git a/tsconfig/scripts.json b/tsconfig/scripts.json new file mode 100644 index 00000000000..d7d33e61d9a --- /dev/null +++ b/tsconfig/scripts.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": ["./base.json"], + "compilerOptions": { + "noEmit": true, + "composite": false, + "declaration": false, + "declarationMap": false + } +} diff --git a/tsconfig/test.json b/tsconfig/test.json new file mode 100644 index 00000000000..bbdf4675e71 --- /dev/null +++ b/tsconfig/test.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": ["./scripts.json"], + "compilerOptions": { + "types": ["node", "jest"] + } +} diff --git a/update-main-to-dist.js b/update-main-to-dist.js deleted file mode 100644 index fe625caa4d6..00000000000 --- a/update-main-to-dist.js +++ /dev/null @@ -1,9 +0,0 @@ -const path = require('path') -const pkgJson = require('@npmcli/package-json') - -const [dir] = process.argv.slice(2) - -pkgJson - .load(path.resolve(__dirname, dir)) - .then((pkg) => pkg.update({ main: pkg.content.publishConfig.main })) - .then((pkg) => pkg.save())