0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-01-27 21:39:16 -05:00

refactor: use esm (batch 4)

This commit is contained in:
Gao Sun 2022-11-21 19:18:32 +08:00
parent 1a4101ca81
commit 8c93cbb650
No known key found for this signature in database
GPG key ID: 13EBE123E4773688
23 changed files with 161 additions and 64 deletions

View file

@ -5,6 +5,7 @@
"author": "Silverhand Inc. <contact@silverhand.io>",
"homepage": "https://github.com/logto-io/logto#readme",
"license": "MPL-2.0",
"type": "module",
"publishConfig": {
"access": "public"
},
@ -47,14 +48,14 @@
"decamelize": "^5.0.0",
"dotenv": "^16.0.0",
"fs-extra": "^10.1.0",
"got": "^11.8.5",
"hpagent": "^1.0.0",
"got": "^12.5.3",
"hpagent": "^1.2.0",
"inquirer": "^8.2.2",
"nanoid": "^3.3.4",
"ora": "^5.0.0",
"p-retry": "^4.6.1",
"roarr": "^7.11.0",
"semver": "^7.3.7",
"semver": "^7.3.8",
"slonik": "^30.0.0",
"slonik-interceptor-preset": "^1.2.10",
"slonik-sql-tag-raw": "^1.1.4",

View file

@ -6,7 +6,7 @@ import { promisify } from 'util';
import { assert, conditionalString } from '@silverhand/essentials';
import chalk from 'chalk';
import { ensureDir, remove } from 'fs-extra';
import fsExtra from 'fs-extra';
import inquirer from 'inquirer';
import pRetry from 'p-retry';
import tar from 'tar';
@ -136,8 +136,8 @@ export const addConnectors = async (instancePath: string, packageNames: string[]
const tarPath = path.join(cwd, escapedFilename);
const packageDirectory = path.join(cwd, name.replace(/\//g, '-'));
await remove(packageDirectory);
await ensureDir(packageDirectory);
await fsExtra.remove(packageDirectory);
await fsExtra.ensureDir(packageDirectory);
await tar.extract({ cwd: packageDirectory, file: tarPath, strip: 1 });
await unlink(tarPath);

View file

@ -1,10 +1,11 @@
import path from 'path';
import { fileURLToPath } from 'url';
import type { AlterationScript } from '@logto/schemas/lib/types/alteration';
import type { AlterationScript } from '@logto/schemas/lib/types/alteration.js';
import { findPackage } from '@logto/shared';
import { conditionalString } from '@silverhand/essentials';
import chalk from 'chalk';
import { copy, existsSync, remove, readdir } from 'fs-extra';
import fsExtra from 'fs-extra';
import type { DatabasePool } from 'slonik';
import type { CommandModule } from 'yargs';
@ -17,6 +18,8 @@ import { getPathInModule, log } from '../../../utilities.js';
import type { AlterationFile } from './type.js';
import { chooseAlterationsByVersion } from './version.js';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const { copy, existsSync, remove, readdir } = fsExtra;
const alterationFilenameRegex = /-(\d+)-?.*\.js$/;
const getTimestampFromFilename = (filename: string) => {
@ -45,15 +48,9 @@ export const getAlterationFiles = async (): Promise<AlterationFile[]> => {
* since they need a proper context that includes required dependencies (such as slonik) in `node_modules/`.
* While the original `@logto/schemas` may remove them in production.
*/
const packageDirectory = await findPackage(
// Until we migrate to ESM
// eslint-disable-next-line unicorn/prefer-module
__dirname
);
const packageDirectory = await findPackage(__dirname);
const localAlterationDirectory = path.resolve(
// Until we migrate to ESM
// eslint-disable-next-line unicorn/prefer-module
packageDirectory ?? __dirname,
'alteration-scripts'
);

View file

@ -6,7 +6,7 @@ import path from 'path';
import { assert } from '@silverhand/essentials';
import chalk from 'chalk';
import { remove, writeFile } from 'fs-extra';
import fsExtra from 'fs-extra';
import inquirer from 'inquirer';
import * as semver from 'semver';
import tar from 'tar';
@ -140,7 +140,7 @@ export const seedDatabase = async (instancePath: string) => {
} catch (error: unknown) {
console.error(error);
await oraPromise(remove(instancePath), {
await oraPromise(fsExtra.remove(instancePath), {
text: 'Clean up',
prefixText: chalk.blue('[info]'),
});
@ -156,7 +156,7 @@ export const seedDatabase = async (instancePath: string) => {
export const createEnv = async (instancePath: string, databaseUrl: string) => {
const dotEnvPath = path.resolve(instancePath, '.env');
await writeFile(dotEnvPath, `DB_URL=${databaseUrl}`, {
await fsExtra.writeFile(dotEnvPath, `DB_URL=${databaseUrl}`, {
encoding: 'utf8',
});
log.info(`Saved database URL to ${chalk.blue(dotEnvPath)}`);

View file

@ -1,7 +1,7 @@
// Copied from core
import type { QueryResult, QueryResultRow } from 'slonik';
import type { PrimitiveValueExpression } from 'slonik/dist/src/types.d';
import type { PrimitiveValueExpression } from 'slonik/dist/src/types.js';
export type QueryType = (
sql: string,

View file

@ -1,13 +1,14 @@
import { execSync } from 'child_process';
import { createWriteStream, existsSync } from 'fs';
import { readdir, readFile } from 'fs/promises';
import { createRequire } from 'module';
import path from 'path';
import type { Optional } from '@silverhand/essentials';
import { conditionalString } from '@silverhand/essentials';
import chalk from 'chalk';
import type { Progress } from 'got';
import got from 'got';
import { got } from 'got';
import { HttpsProxyAgent } from 'hpagent';
import inquirer from 'inquirer';
import ora from 'ora';
@ -83,9 +84,7 @@ export const downloadFile = async (url: string, destination: string) => {
export const getPathInModule = (moduleName: string, relativePath = '/') =>
// https://stackoverflow.com/a/49455609/12514940
path.join(
// Until we migrate to ESM
// eslint-disable-next-line unicorn/prefer-module
path.dirname(require.resolve(`${moduleName}/package.json`)),
path.dirname(createRequire(import.meta.url).resolve(`${moduleName}/package.json`)),
relativePath
);

View file

@ -3,7 +3,8 @@
"compilerOptions": {
"outDir": "lib",
"declaration": true,
"module": "node16",
"moduleResolution": "nodenext",
"module": "es2022",
"target": "es2022",
"types": ["node", "jest"]
},

View file

@ -7,6 +7,9 @@
"license": "MPL-2.0",
"type": "module",
"private": true,
"imports": {
"#src/*": "./build/*"
},
"scripts": {
"precommit": "lint-staged",
"copyfiles": "copyfiles -u 1 src/**/*.md build",
@ -54,7 +57,6 @@
"koa-router": "^12.0.0",
"koa-send": "^5.0.1",
"lodash.pick": "^4.4.0",
"module-alias": "^2.2.2",
"nanoid": "^3.1.23",
"oidc-provider": "^7.13.0",
"p-retry": "^4.6.1",
@ -103,9 +105,6 @@
"engines": {
"node": "^16.13.0 || ^18.12.0"
},
"_moduleAliases": {
"@": "./build"
},
"eslintConfig": {
"extends": "@silverhand"
},

View file

@ -1,4 +1,5 @@
import { existsSync } from 'fs';
import { fileURLToPath } from 'node:url';
import path from 'path';
import { connectorDirectory } from '@logto/cli/lib/constants.js';
@ -15,6 +16,7 @@ import { defaultConnectorMethods } from './consts.js';
import type { VirtualConnector, LogtoConnector } from './types.js';
import { getConnectorConfig, readUrl, validateConnectorModule } from './utilities/index.js';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
// eslint-disable-next-line @silverhand/fp/no-let
let cachedVirtualConnectors: VirtualConnector[] | undefined;
@ -23,8 +25,6 @@ export const loadVirtualConnectors = async () => {
return cachedVirtualConnectors;
}
// Until we migrate to ESM
// eslint-disable-next-line unicorn/prefer-module
const coreDirectory = await findPackage(__dirname);
const directory = coreDirectory && path.join(coreDirectory, connectorDirectory);
@ -37,9 +37,14 @@ export const loadVirtualConnectors = async () => {
const connectors = await Promise.all(
connectorPackages.map(async ({ path: packagePath, name }) => {
try {
// eslint-disable-next-line no-restricted-syntax
const { default: createConnector } = (await import(packagePath)) as {
default: CreateConnector<AllConnector>;
// TODO: fix type and remove `/lib/index.js` suffix once we upgrade all connectors to ESM
const {
default: { default: createConnector },
// eslint-disable-next-line no-restricted-syntax
} = (await import(packagePath + '/lib/index.js')) as {
default: {
default: CreateConnector<AllConnector>;
};
};
const rawConnector = await createConnector({ getConfig: getConnectorConfig });
validateConnectorModule(rawConnector);

View file

@ -5,7 +5,7 @@ import {
adminConsoleApplicationId,
adminConsoleSignInExperience,
demoAppApplicationId,
} from '@logto/schemas/lib/seeds';
} from '@logto/schemas/lib/seeds/index.js';
import i18next from 'i18next';
import { getLogtoConnectors } from '#src/connectors/index.js';

View file

@ -1,7 +1,7 @@
import type { IncomingHttpHeaders } from 'http';
import { UserRole } from '@logto/schemas';
import { managementResource } from '@logto/schemas/lib/seeds';
import { managementResource } from '@logto/schemas/lib/seeds/index.js';
import type { Optional } from '@silverhand/essentials';
import { conditional } from '@silverhand/essentials';
import { jwtVerify } from 'jose';

View file

@ -1,4 +1,4 @@
import { demoAppApplicationId } from '@logto/schemas/lib/seeds';
import { demoAppApplicationId } from '@logto/schemas/lib/seeds/index.js';
import type { MiddlewareType } from 'koa';
import { findApplicationById } from '#src/queries/application.js';

View file

@ -1,6 +1,6 @@
import type { CreateApplication, OidcClientMetadata } from '@logto/schemas';
import { ApplicationType } from '@logto/schemas';
import { adminConsoleApplicationId, demoAppApplicationId } from '@logto/schemas/lib/seeds';
import { adminConsoleApplicationId, demoAppApplicationId } from '@logto/schemas/lib/seeds/index.js';
import { tryThat } from '@logto/shared';
import { addSeconds } from 'date-fns';
import type { AdapterFactory, AllClientMetadata } from 'oidc-provider';

View file

@ -1,6 +1,9 @@
import zhCN from '@logto/phrases-ui/lib/locales/zh-cn.js';
import type { SignInExperience } from '@logto/schemas';
import { adminConsoleApplicationId, adminConsoleSignInExperience } from '@logto/schemas/lib/seeds';
import {
adminConsoleApplicationId,
adminConsoleSignInExperience,
} from '@logto/schemas/lib/seeds/index.js';
import { Provider } from 'oidc-provider';
import { zhCnTag } from '#src/__mocks__/custom-phrase.js';

View file

@ -1,5 +1,8 @@
import { isBuiltInLanguageTag } from '@logto/phrases-ui';
import { adminConsoleApplicationId, adminConsoleSignInExperience } from '@logto/schemas/lib/seeds';
import {
adminConsoleApplicationId,
adminConsoleSignInExperience,
} from '@logto/schemas/lib/seeds/index.js';
import type { Provider } from 'oidc-provider';
import detectLanguage from '#src/i18n/detect-language.js';

View file

@ -1,5 +1,5 @@
import type { User } from '@logto/schemas';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds/index.js';
import { Provider } from 'oidc-provider';
import { mockUser } from '#src/__mocks__/index.js';

View file

@ -2,7 +2,7 @@ import path from 'path';
import type { LogtoErrorCode } from '@logto/phrases';
import { UserRole } from '@logto/schemas';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds/index.js';
import { conditional } from '@silverhand/essentials';
import type { Provider } from 'oidc-provider';
import { object, string } from 'zod';

View file

@ -1,5 +1,5 @@
import { SignInMode } from '@logto/schemas';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds/index.js';
import type { MiddlewareType } from 'koa';
import type { Provider } from 'oidc-provider';
import { errors } from 'oidc-provider';

View file

@ -1,6 +1,6 @@
import type { User } from '@logto/schemas';
import { UserRole, SignUpIdentifier } from '@logto/schemas';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds/index.js';
import { Provider } from 'oidc-provider';
import { mockSignInExperience, mockUser } from '#src/__mocks__/index.js';

View file

@ -1,6 +1,6 @@
import { passwordRegEx, usernameRegEx } from '@logto/core-kit';
import { SignInIdentifier, SignUpIdentifier, UserRole } from '@logto/schemas';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds/index.js';
import type { Provider } from 'oidc-provider';
import { object, string } from 'zod';

View file

@ -1,5 +1,8 @@
import { SignInMode } from '@logto/schemas';
import { adminConsoleApplicationId, adminConsoleSignInExperience } from '@logto/schemas/lib/seeds';
import {
adminConsoleApplicationId,
adminConsoleSignInExperience,
} from '@logto/schemas/lib/seeds/index.js';
import { Provider } from 'oidc-provider';
import {

View file

@ -1,6 +1,6 @@
import type { ConnectorMetadata } from '@logto/connector-kit';
import { ConnectorType } from '@logto/connector-kit';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds';
import { adminConsoleApplicationId } from '@logto/schemas/lib/seeds/index.js';
import etag from 'etag';
import type { Provider } from 'oidc-provider';

122
pnpm-lock.yaml generated
View file

@ -41,8 +41,8 @@ importers:
dotenv: ^16.0.0
eslint: ^8.21.0
fs-extra: ^10.1.0
got: ^11.8.5
hpagent: ^1.0.0
got: ^12.5.3
hpagent: ^1.2.0
inquirer: ^8.2.2
jest: ^29.1.2
lint-staged: ^13.0.0
@ -52,7 +52,7 @@ importers:
prettier: ^2.7.1
rimraf: ^3.0.2
roarr: ^7.11.0
semver: ^7.3.7
semver: ^7.3.8
slonik: ^30.0.0
slonik-interceptor-preset: ^1.2.10
slonik-sql-tag-raw: ^1.1.4
@ -69,14 +69,14 @@ importers:
decamelize: 5.0.1
dotenv: 16.0.0
fs-extra: 10.1.0
got: 11.8.5
hpagent: 1.0.0
got: 12.5.3
hpagent: 1.2.0
inquirer: 8.2.2
nanoid: 3.3.4
ora: 5.4.1
p-retry: 4.6.1
roarr: 7.11.0
semver: 7.3.7
semver: 7.3.8
slonik: 30.1.2
slonik-interceptor-preset: 1.2.10
slonik-sql-tag-raw: 1.1.4_roarr@7.11.0+slonik@30.1.2
@ -309,7 +309,6 @@ importers:
koa-send: ^5.0.1
lint-staged: ^13.0.0
lodash.pick: ^4.4.0
module-alias: ^2.2.2
nanoid: ^3.1.23
nock: ^13.2.2
nodemon: ^2.0.19
@ -362,7 +361,6 @@ importers:
koa-router: 12.0.0
koa-send: 5.0.1
lodash.pick: 4.4.0
module-alias: 2.2.2
nanoid: 3.1.30
oidc-provider: 7.13.0
p-retry: 4.6.1
@ -3486,7 +3484,7 @@ packages:
'@jest/types': 29.1.2
deepmerge: 4.2.2
identity-obj-proxy: 3.0.0
jest: 29.1.2_@types+node@16.11.12
jest: 29.1.2_k5ytkvaprncdyzidqqws5bqksq
jest-matcher-specific-error: 1.0.0
jest-transform-stub: 2.0.0
ts-jest: 29.0.3_37jxomqt5oevoqzq6g3r6n3ili
@ -3524,6 +3522,11 @@ packages:
resolution: {integrity: sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==}
engines: {node: '>=10'}
/@sindresorhus/is/5.3.0:
resolution: {integrity: sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==}
engines: {node: '>=14.16'}
dev: false
/@sinonjs/commons/1.8.3:
resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==}
dependencies:
@ -3689,6 +3692,13 @@ packages:
dependencies:
defer-to-connect: 2.0.1
/@szmarczak/http-timer/5.0.1:
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
engines: {node: '>=14.16'}
dependencies:
defer-to-connect: 2.0.1
dev: false
/@testing-library/dom/8.11.1:
resolution: {integrity: sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==}
engines: {node: '>=12'}
@ -4947,6 +4957,24 @@ packages:
engines: {node: '>=10.6.0'}
dev: false
/cacheable-lookup/7.0.0:
resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
engines: {node: '>=14.16'}
dev: false
/cacheable-request/10.2.2:
resolution: {integrity: sha512-KxjQZM3UIo7/J6W4sLpwFvu1GB3Whv8NtZ8ZrUL284eiQjiXeeqWTdhixNrp/NLZ/JNuFBo6BD4ZaO8ZJ5BN8Q==}
engines: {node: '>=14.16'}
dependencies:
'@types/http-cache-semantics': 4.0.1
get-stream: 6.0.1
http-cache-semantics: 4.1.0
keyv: 4.5.2
mimic-response: 4.0.0
normalize-url: 7.2.0
responselike: 3.0.0
dev: false
/cacheable-request/7.0.2:
resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==}
engines: {node: '>=8'}
@ -6978,6 +7006,11 @@ packages:
for-in: 1.0.2
dev: true
/form-data-encoder/2.1.3:
resolution: {integrity: sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ==}
engines: {node: '>= 14.17'}
dev: false
/form-data/4.0.0:
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
engines: {node: '>= 6'}
@ -7137,7 +7170,6 @@ packages:
/get-stream/6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
dev: true
/get-symbol-description/1.0.0:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
@ -7317,6 +7349,23 @@ packages:
p-cancelable: 2.1.1
responselike: 2.0.0
/got/12.5.3:
resolution: {integrity: sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==}
engines: {node: '>=14.16'}
dependencies:
'@sindresorhus/is': 5.3.0
'@szmarczak/http-timer': 5.0.1
cacheable-lookup: 7.0.0
cacheable-request: 10.2.2
decompress-response: 6.0.0
form-data-encoder: 2.1.3
get-stream: 6.0.1
http2-wrapper: 2.2.0
lowercase-keys: 3.0.0
p-cancelable: 3.0.0
responselike: 3.0.0
dev: false
/graceful-fs/4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
@ -7478,8 +7527,8 @@ packages:
lru-cache: 6.0.0
dev: true
/hpagent/1.0.0:
resolution: {integrity: sha512-SCleE2Uc1bM752ymxg8QXYGW0TWtAV4ZW3TqH1aOnyi6T6YW2xadCcclm5qeVjvMvfQ2RKNtZxO7uVb9CTPt1A==}
/hpagent/1.2.0:
resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==}
engines: {node: '>=14'}
dev: false
@ -7668,6 +7717,14 @@ packages:
quick-lru: 5.1.1
resolve-alpn: 1.2.1
/http2-wrapper/2.2.0:
resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==}
engines: {node: '>=10.19.0'}
dependencies:
quick-lru: 5.1.1
resolve-alpn: 1.2.1
dev: false
/https-proxy-agent/5.0.1:
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
engines: {node: '>= 6'}
@ -9242,6 +9299,12 @@ packages:
dependencies:
json-buffer: 3.0.1
/keyv/4.5.2:
resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==}
dependencies:
json-buffer: 3.0.1
dev: false
/kind-of/2.0.1:
resolution: {integrity: sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==}
engines: {node: '>=0.10.0'}
@ -9630,6 +9693,11 @@ packages:
resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
engines: {node: '>=8'}
/lowercase-keys/3.0.0:
resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: false
/lowlight/1.20.0:
resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==}
dependencies:
@ -10217,6 +10285,11 @@ packages:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
/mimic-response/4.0.0:
resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: false
/min-indent/1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@ -10280,10 +10353,6 @@ packages:
engines: {node: '>=10'}
hasBin: true
/module-alias/2.2.2:
resolution: {integrity: sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==}
dev: false
/mri/1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@ -10548,6 +10617,11 @@ packages:
resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
engines: {node: '>=10'}
/normalize-url/7.2.0:
resolution: {integrity: sha512-uhXOdZry0L6M2UIo9BTt7FdpBDiAGN/7oItedQwPKh8jh31ZlvC8U9Xl/EJ3aijDHaywXTW3QbZ6LuCocur1YA==}
engines: {node: '>=12.20'}
dev: false
/npm-run-path/4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
@ -10784,6 +10858,11 @@ packages:
resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
engines: {node: '>=8'}
/p-cancelable/3.0.0:
resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
engines: {node: '>=12.20'}
dev: false
/p-defer/3.0.0:
resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==}
engines: {node: '>=8'}
@ -12289,6 +12368,13 @@ packages:
dependencies:
lowercase-keys: 2.0.0
/responselike/3.0.0:
resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
engines: {node: '>=14.16'}
dependencies:
lowercase-keys: 3.0.0
dev: false
/restore-cursor/3.1.0:
resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
engines: {node: '>=8'}
@ -12433,6 +12519,7 @@ packages:
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
/semver/7.3.8:
resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
@ -12440,7 +12527,6 @@ packages:
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
/serialize-error/7.0.1:
resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
@ -13497,7 +13583,7 @@ packages:
'@jest/types': 29.1.2
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
jest: 29.1.2_@types+node@16.11.12
jest: 29.1.2_k5ytkvaprncdyzidqqws5bqksq
jest-util: 29.2.1
json5: 2.2.1
lodash.memoize: 4.1.2