fix(medusa-test-utils): Run with modules without models (#9062)
* fix(medusa-test-utils): Run with modules without models * cleanup * rm dummy model * rm dummy model * improve models loading * find models * find models * find models * finalize * cleanup * fix deps * fix deps * fix deps * fix deps * fix deps
This commit is contained in:
1 parent
36f30b4833
commit
e56607c97c
6 files changed
+199
-76
No files matched your search
@@ -23,51 +23,30 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@medusajs/framework": "^0.0.1",
|
"@medusajs/framework": "^0.0.1",
|
||||||
|
"@medusajs/modules-sdk": "*",
|
||||||
"@medusajs/types": "^1.11.16",
|
"@medusajs/types": "^1.11.16",
|
||||||
|
"@mikro-orm/core": "5.9.7",
|
||||||
|
"@mikro-orm/migrations": "5.9.7",
|
||||||
|
"@mikro-orm/postgresql": "5.9.7",
|
||||||
"cross-env": "^5.2.1",
|
"cross-env": "^5.2.1",
|
||||||
|
"express": "^4.18.3",
|
||||||
|
"get-port": "^5.1.0",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
|
"pg-god": "^1.0.12",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"typescript": "^5.1.6"
|
"typescript": "^5.1.6"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@medusajs/medusa": "*",
|
"@medusajs/medusa": "*"
|
||||||
"@medusajs/modules-sdk": "*",
|
|
||||||
"@mikro-orm/core": "5.9.7",
|
|
||||||
"@mikro-orm/migrations": "5.9.7",
|
|
||||||
"@mikro-orm/postgresql": "5.9.7",
|
|
||||||
"axios": "^0.28.0",
|
|
||||||
"express": "^4.18.3",
|
|
||||||
"pg-god": "^1.0.12"
|
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"@medusajs/core": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"@medusajs/medusa": {
|
"@medusajs/medusa": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
|
||||||
"@medusajs/migrations": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"@medusajs/modules-sdk": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"@medusajs/postgresql": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"axios": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"express": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"pg-god": {
|
|
||||||
"optional": true
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@medusajs/utils": "^1.11.9",
|
"@medusajs/utils": "^1.11.9",
|
||||||
"get-port": "^5.1",
|
"axios": "^0.21.4",
|
||||||
"randomatic": "^3.1.1"
|
"randomatic": "^3.1.1"
|
||||||
},
|
},
|
||||||
"gitHead": "81a7ff73d012fda722f6e9ef0bd9ba0232d37808"
|
"gitHead": "81a7ff73d012fda722f6e9ef0bd9ba0232d37808"
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
import type { MedusaAppLoader } from "@medusajs/framework"
|
import type { MedusaAppLoader } from "@medusajs/framework"
|
||||||
import { ContainerRegistrationKeys } from "@medusajs/utils"
|
|
||||||
import { asValue } from "awilix"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initiates the database connection
|
* Initiates the database connection
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ import { configLoaderOverride } from "./medusa-test-runner-utils/config"
|
|||||||
import { applyEnvVarsToProcess } from "./medusa-test-runner-utils/utils"
|
import { applyEnvVarsToProcess } from "./medusa-test-runner-utils/utils"
|
||||||
import { clearInstances } from "./medusa-test-runner-utils/clear-instances"
|
import { clearInstances } from "./medusa-test-runner-utils/clear-instances"
|
||||||
|
|
||||||
const axios = require("axios").default
|
|
||||||
|
|
||||||
const DB_HOST = process.env.DB_HOST
|
const DB_HOST = process.env.DB_HOST
|
||||||
const DB_USERNAME = process.env.DB_USERNAME
|
const DB_USERNAME = process.env.DB_USERNAME
|
||||||
const DB_PASSWORD = process.env.DB_PASSWORD
|
const DB_PASSWORD = process.env.DB_PASSWORD
|
||||||
@@ -205,6 +203,8 @@ export function medusaIntegrationTestRunner({
|
|||||||
await syncLinks(appLoader)
|
await syncLinks(appLoader)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const axios = (await import("axios")).default.default
|
||||||
|
|
||||||
const cancelTokenSource = axios.CancelToken.source()
|
const cancelTokenSource = axios.CancelToken.source()
|
||||||
|
|
||||||
globalContainer = containerRes
|
globalContainer = containerRes
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
import {
|
import {
|
||||||
ContainerRegistrationKeys,
|
ContainerRegistrationKeys,
|
||||||
|
DmlEntity,
|
||||||
|
loadModels,
|
||||||
ModulesSdkUtils,
|
ModulesSdkUtils,
|
||||||
|
normalizeImportPathWithSource,
|
||||||
toMikroOrmEntities,
|
toMikroOrmEntities,
|
||||||
} from "@medusajs/utils"
|
} from "@medusajs/utils"
|
||||||
import { TestDatabase, getDatabaseURL, getMikroOrmWrapper } from "./database"
|
import { getDatabaseURL, getMikroOrmWrapper, TestDatabase } from "./database"
|
||||||
import { InitModulesOptions, initModules } from "./init-modules"
|
import { initModules, InitModulesOptions } from "./init-modules"
|
||||||
import { default as MockEventBusService } from "./mock-event-bus-service"
|
import { default as MockEventBusService } from "./mock-event-bus-service"
|
||||||
|
import * as fs from "fs"
|
||||||
|
|
||||||
export interface SuiteOptions<TService = unknown> {
|
export interface SuiteOptions<TService = unknown> {
|
||||||
MikroOrmWrapper: TestDatabase
|
MikroOrmWrapper: TestDatabase
|
||||||
@@ -17,6 +21,46 @@ export interface SuiteOptions<TService = unknown> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createMikroOrmWrapper(options: {
|
||||||
|
moduleModels?: (Function | DmlEntity<any, any>)[]
|
||||||
|
resolve?: string
|
||||||
|
dbConfig: any
|
||||||
|
}): {
|
||||||
|
MikroOrmWrapper: TestDatabase
|
||||||
|
models: (Function | DmlEntity<any, any>)[]
|
||||||
|
} {
|
||||||
|
let moduleModels: (Function | DmlEntity<any, any>)[] =
|
||||||
|
options.moduleModels ?? []
|
||||||
|
|
||||||
|
if (!options.moduleModels) {
|
||||||
|
const basePath = normalizeImportPathWithSource(
|
||||||
|
options.resolve ?? process.cwd()
|
||||||
|
)
|
||||||
|
|
||||||
|
const modelsPath = fs.existsSync(`${basePath}/dist/models`)
|
||||||
|
? "/dist/models"
|
||||||
|
: fs.existsSync(`${basePath}/models`)
|
||||||
|
? "/models"
|
||||||
|
: ""
|
||||||
|
|
||||||
|
if (modelsPath) {
|
||||||
|
moduleModels = loadModels(`${basePath}${modelsPath}`)
|
||||||
|
} else {
|
||||||
|
moduleModels = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
moduleModels = toMikroOrmEntities(moduleModels)
|
||||||
|
|
||||||
|
const MikroOrmWrapper = getMikroOrmWrapper({
|
||||||
|
mikroOrmEntities: moduleModels,
|
||||||
|
clientUrl: options.dbConfig.clientUrl,
|
||||||
|
schema: options.dbConfig.schema,
|
||||||
|
})
|
||||||
|
|
||||||
|
return { MikroOrmWrapper, models: moduleModels }
|
||||||
|
}
|
||||||
|
|
||||||
export function moduleIntegrationTestRunner<TService = any>({
|
export function moduleIntegrationTestRunner<TService = any>({
|
||||||
moduleName,
|
moduleName,
|
||||||
moduleModels,
|
moduleModels,
|
||||||
@@ -43,9 +87,6 @@ export function moduleIntegrationTestRunner<TService = any>({
|
|||||||
|
|
||||||
process.env.LOG_LEVEL = "error"
|
process.env.LOG_LEVEL = "error"
|
||||||
|
|
||||||
moduleModels ??= Object.values(require(`${process.cwd()}/src/models`))
|
|
||||||
moduleModels = toMikroOrmEntities(moduleModels)
|
|
||||||
|
|
||||||
const tempName = parseInt(process.env.JEST_WORKER_ID || "1")
|
const tempName = parseInt(process.env.JEST_WORKER_ID || "1")
|
||||||
const dbName = `medusa-${moduleName.toLowerCase()}-integration-${tempName}`
|
const dbName = `medusa-${moduleName.toLowerCase()}-integration-${tempName}`
|
||||||
|
|
||||||
@@ -58,12 +99,14 @@ export function moduleIntegrationTestRunner<TService = any>({
|
|||||||
// Use a unique connection for all the entire suite
|
// Use a unique connection for all the entire suite
|
||||||
const connection = ModulesSdkUtils.createPgConnection(dbConfig)
|
const connection = ModulesSdkUtils.createPgConnection(dbConfig)
|
||||||
|
|
||||||
const MikroOrmWrapper = getMikroOrmWrapper({
|
const { MikroOrmWrapper, models } = createMikroOrmWrapper({
|
||||||
mikroOrmEntities: moduleModels,
|
moduleModels,
|
||||||
clientUrl: dbConfig.clientUrl,
|
resolve,
|
||||||
schema: dbConfig.schema,
|
dbConfig,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
moduleModels = models
|
||||||
|
|
||||||
const modulesConfig_ = {
|
const modulesConfig_ = {
|
||||||
[moduleName]: {
|
[moduleName]: {
|
||||||
definition: moduleSdkImports.ModulesDefinition[moduleName],
|
definition: moduleSdkImports.ModulesDefinition[moduleName],
|
||||||
@@ -117,7 +160,9 @@ export function moduleIntegrationTestRunner<TService = any>({
|
|||||||
} as SuiteOptions<TService>
|
} as SuiteOptions<TService>
|
||||||
|
|
||||||
const beforeEach_ = async () => {
|
const beforeEach_ = async () => {
|
||||||
|
if (moduleModels.length) {
|
||||||
await MikroOrmWrapper.setupDatabase()
|
await MikroOrmWrapper.setupDatabase()
|
||||||
|
}
|
||||||
const output = await initModules(moduleOptions_)
|
const output = await initModules(moduleOptions_)
|
||||||
shutdown = output.shutdown
|
shutdown = output.shutdown
|
||||||
medusaApp = output.medusaApp
|
medusaApp = output.medusaApp
|
||||||
@@ -125,7 +170,9 @@ export function moduleIntegrationTestRunner<TService = any>({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const afterEach_ = async () => {
|
const afterEach_ = async () => {
|
||||||
|
if (moduleModels.length) {
|
||||||
await MikroOrmWrapper.clearDatabase()
|
await MikroOrmWrapper.clearDatabase()
|
||||||
|
}
|
||||||
await shutdown()
|
await shutdown()
|
||||||
moduleService = {}
|
moduleService = {}
|
||||||
medusaApp = {}
|
medusaApp = {}
|
||||||
|
|||||||
@@ -1,19 +1,11 @@
|
|||||||
import { resolve } from "path"
|
import { resolve } from "path"
|
||||||
import { moduleIntegrationTestRunner } from "medusa-test-utils"
|
import { moduleIntegrationTestRunner } from "medusa-test-utils"
|
||||||
import { Entity, PrimaryKey } from "@mikro-orm/core"
|
|
||||||
import { IFileModuleService } from "@medusajs/types"
|
import { IFileModuleService } from "@medusajs/types"
|
||||||
import { Module, Modules } from "@medusajs/utils"
|
import { Module, Modules } from "@medusajs/utils"
|
||||||
import { FileModuleService } from "@services"
|
import { FileModuleService } from "@services"
|
||||||
|
|
||||||
jest.setTimeout(100000)
|
jest.setTimeout(100000)
|
||||||
|
|
||||||
// The test runner throws if a model is not passed, so we create a dummy entity
|
|
||||||
@Entity({ tableName: "dummy_file_entity" })
|
|
||||||
export default class DummyEntity {
|
|
||||||
@PrimaryKey()
|
|
||||||
id: string
|
|
||||||
}
|
|
||||||
|
|
||||||
const moduleOptions = {
|
const moduleOptions = {
|
||||||
providers: [
|
providers: [
|
||||||
{
|
{
|
||||||
@@ -29,7 +21,6 @@ const moduleOptions = {
|
|||||||
moduleIntegrationTestRunner<IFileModuleService>({
|
moduleIntegrationTestRunner<IFileModuleService>({
|
||||||
moduleName: Modules.FILE,
|
moduleName: Modules.FILE,
|
||||||
moduleOptions: moduleOptions,
|
moduleOptions: moduleOptions,
|
||||||
moduleModels: [DummyEntity],
|
|
||||||
testSuite: ({ service }) => {
|
testSuite: ({ service }) => {
|
||||||
describe("File Module Service", () => {
|
describe("File Module Service", () => {
|
||||||
it(`should export the appropriate linkable configuration`, () => {
|
it(`should export the appropriate linkable configuration`, () => {
|
||||||
|
|||||||
@@ -6177,7 +6177,7 @@ __metadata:
|
|||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
||||||
"@medusajs/modules-sdk@^1.12.11, @medusajs/modules-sdk@workspace:^, @medusajs/modules-sdk@workspace:packages/core/modules-sdk":
|
"@medusajs/modules-sdk@*, @medusajs/modules-sdk@^1.12.11, @medusajs/modules-sdk@workspace:^, @medusajs/modules-sdk@workspace:packages/core/modules-sdk":
|
||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@medusajs/modules-sdk@workspace:packages/core/modules-sdk"
|
resolution: "@medusajs/modules-sdk@workspace:packages/core/modules-sdk"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -15434,6 +15434,26 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"body-parser@npm:1.20.3":
|
||||||
|
version: 1.20.3
|
||||||
|
resolution: "body-parser@npm:1.20.3"
|
||||||
|
dependencies:
|
||||||
|
bytes: 3.1.2
|
||||||
|
content-type: ~1.0.5
|
||||||
|
debug: 2.6.9
|
||||||
|
depd: 2.0.0
|
||||||
|
destroy: 1.2.0
|
||||||
|
http-errors: 2.0.0
|
||||||
|
iconv-lite: 0.4.24
|
||||||
|
on-finished: 2.4.1
|
||||||
|
qs: 6.13.0
|
||||||
|
raw-body: 2.5.2
|
||||||
|
type-is: ~1.6.18
|
||||||
|
unpipe: 1.0.0
|
||||||
|
checksum: 0a9a93b7518f222885498dcecaad528cf010dd109b071bf471c93def4bfe30958b83e03496eb9c1ad4896db543d999bb62be1a3087294162a88cfa1b42c16310
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"boolbase@npm:^1.0.0":
|
"boolbase@npm:^1.0.0":
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
resolution: "boolbase@npm:1.0.0"
|
resolution: "boolbase@npm:1.0.0"
|
||||||
@@ -18311,6 +18331,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"encodeurl@npm:~2.0.0":
|
||||||
|
version: 2.0.0
|
||||||
|
resolution: "encodeurl@npm:2.0.0"
|
||||||
|
checksum: 5d317306acb13e6590e28e27924c754163946a2480de11865c991a3a7eed4315cd3fba378b543ca145829569eefe9b899f3d84bb09870f675ae60bc924b01ceb
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"encoding-down@npm:^6.3.0":
|
"encoding-down@npm:^6.3.0":
|
||||||
version: 6.3.0
|
version: 6.3.0
|
||||||
resolution: "encoding-down@npm:6.3.0"
|
resolution: "encoding-down@npm:6.3.0"
|
||||||
@@ -19546,6 +19573,45 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"express@npm:^4.18.3":
|
||||||
|
version: 4.20.0
|
||||||
|
resolution: "express@npm:4.20.0"
|
||||||
|
dependencies:
|
||||||
|
accepts: ~1.3.8
|
||||||
|
array-flatten: 1.1.1
|
||||||
|
body-parser: 1.20.3
|
||||||
|
content-disposition: 0.5.4
|
||||||
|
content-type: ~1.0.4
|
||||||
|
cookie: 0.6.0
|
||||||
|
cookie-signature: 1.0.6
|
||||||
|
debug: 2.6.9
|
||||||
|
depd: 2.0.0
|
||||||
|
encodeurl: ~2.0.0
|
||||||
|
escape-html: ~1.0.3
|
||||||
|
etag: ~1.8.1
|
||||||
|
finalhandler: 1.2.0
|
||||||
|
fresh: 0.5.2
|
||||||
|
http-errors: 2.0.0
|
||||||
|
merge-descriptors: 1.0.3
|
||||||
|
methods: ~1.1.2
|
||||||
|
on-finished: 2.4.1
|
||||||
|
parseurl: ~1.3.3
|
||||||
|
path-to-regexp: 0.1.10
|
||||||
|
proxy-addr: ~2.0.7
|
||||||
|
qs: 6.11.0
|
||||||
|
range-parser: ~1.2.1
|
||||||
|
safe-buffer: 5.2.1
|
||||||
|
send: 0.19.0
|
||||||
|
serve-static: 1.16.0
|
||||||
|
setprototypeof: 1.2.0
|
||||||
|
statuses: 2.0.1
|
||||||
|
type-is: ~1.6.18
|
||||||
|
utils-merge: 1.0.1
|
||||||
|
vary: ~1.1.2
|
||||||
|
checksum: 626e440e9feffa3f82ebce5e7dc0ad7a74fa96079994f30048cce450f4855a258abbcabf021f691aeb72154867f0d28440a8498c62888805faf667a829fb65aa
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"extend@npm:^3.0.0, extend@npm:~3.0.2":
|
"extend@npm:^3.0.0, extend@npm:~3.0.2":
|
||||||
version: 3.0.2
|
version: 3.0.2
|
||||||
resolution: "extend@npm:3.0.2"
|
resolution: "extend@npm:3.0.2"
|
||||||
@@ -20389,7 +20455,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"get-port@npm:^5.1, get-port@npm:^5.1.1":
|
"get-port@npm:^5.1.0, get-port@npm:^5.1.1":
|
||||||
version: 5.1.1
|
version: 5.1.1
|
||||||
resolution: "get-port@npm:5.1.1"
|
resolution: "get-port@npm:5.1.1"
|
||||||
checksum: 2873877a469b24e6d5e0be490724a17edb39fafc795d1d662e7bea951ca649713b4a50117a473f9d162312cb0e946597bd0e049ed2f866e79e576e8e213d3d1c
|
checksum: 2873877a469b24e6d5e0be490724a17edb39fafc795d1d662e7bea951ca649713b4a50117a473f9d162312cb0e946597bd0e049ed2f866e79e576e8e213d3d1c
|
||||||
@@ -24471,40 +24537,26 @@ __metadata:
|
|||||||
resolution: "medusa-test-utils@workspace:packages/core/medusa-test-utils"
|
resolution: "medusa-test-utils@workspace:packages/core/medusa-test-utils"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@medusajs/framework": ^0.0.1
|
"@medusajs/framework": ^0.0.1
|
||||||
|
"@medusajs/modules-sdk": "*"
|
||||||
"@medusajs/types": ^1.11.16
|
"@medusajs/types": ^1.11.16
|
||||||
"@medusajs/utils": ^1.11.9
|
"@medusajs/utils": ^1.11.9
|
||||||
|
"@mikro-orm/core": 5.9.7
|
||||||
|
"@mikro-orm/migrations": 5.9.7
|
||||||
|
"@mikro-orm/postgresql": 5.9.7
|
||||||
|
axios: ^0.21.4
|
||||||
cross-env: ^5.2.1
|
cross-env: ^5.2.1
|
||||||
get-port: ^5.1
|
express: ^4.18.3
|
||||||
|
get-port: ^5.1.0
|
||||||
jest: ^29.7.0
|
jest: ^29.7.0
|
||||||
|
pg-god: ^1.0.12
|
||||||
randomatic: ^3.1.1
|
randomatic: ^3.1.1
|
||||||
rimraf: ^3.0.2
|
rimraf: ^3.0.2
|
||||||
typescript: ^5.1.6
|
typescript: ^5.1.6
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@medusajs/medusa": "*"
|
"@medusajs/medusa": "*"
|
||||||
"@medusajs/modules-sdk": "*"
|
|
||||||
"@mikro-orm/core": 5.9.7
|
|
||||||
"@mikro-orm/migrations": 5.9.7
|
|
||||||
"@mikro-orm/postgresql": 5.9.7
|
|
||||||
axios: ^0.28.0
|
|
||||||
express: ^4.18.3
|
|
||||||
pg-god: ^1.0.12
|
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
"@medusajs/core":
|
|
||||||
optional: true
|
|
||||||
"@medusajs/medusa":
|
"@medusajs/medusa":
|
||||||
optional: true
|
optional: true
|
||||||
"@medusajs/migrations":
|
|
||||||
optional: true
|
|
||||||
"@medusajs/modules-sdk":
|
|
||||||
optional: true
|
|
||||||
"@medusajs/postgresql":
|
|
||||||
optional: true
|
|
||||||
axios:
|
|
||||||
optional: true
|
|
||||||
express:
|
|
||||||
optional: true
|
|
||||||
pg-god:
|
|
||||||
optional: true
|
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
||||||
@@ -24543,6 +24595,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"merge-descriptors@npm:1.0.3":
|
||||||
|
version: 1.0.3
|
||||||
|
resolution: "merge-descriptors@npm:1.0.3"
|
||||||
|
checksum: 866b7094afd9293b5ea5dcd82d71f80e51514bed33b4c4e9f516795dc366612a4cbb4dc94356e943a8a6914889a914530badff27f397191b9b75cda20b6bae93
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"merge-stream@npm:^2.0.0":
|
"merge-stream@npm:^2.0.0":
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
resolution: "merge-stream@npm:2.0.0"
|
resolution: "merge-stream@npm:2.0.0"
|
||||||
@@ -26327,6 +26386,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"path-to-regexp@npm:0.1.10":
|
||||||
|
version: 0.1.10
|
||||||
|
resolution: "path-to-regexp@npm:0.1.10"
|
||||||
|
checksum: 34196775b9113ca6df88e94c8d83ba82c0e1a2063dd33bfe2803a980da8d49b91db8104f49d5191b44ea780d46b8670ce2b7f4a5e349b0c48c6779b653f1afe4
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"path-to-regexp@npm:0.1.7":
|
"path-to-regexp@npm:0.1.7":
|
||||||
version: 0.1.7
|
version: 0.1.7
|
||||||
resolution: "path-to-regexp@npm:0.1.7"
|
resolution: "path-to-regexp@npm:0.1.7"
|
||||||
@@ -27635,6 +27701,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"qs@npm:6.13.0":
|
||||||
|
version: 6.13.0
|
||||||
|
resolution: "qs@npm:6.13.0"
|
||||||
|
dependencies:
|
||||||
|
side-channel: ^1.0.6
|
||||||
|
checksum: 62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"qs@npm:6.7.0":
|
"qs@npm:6.7.0":
|
||||||
version: 6.7.0
|
version: 6.7.0
|
||||||
resolution: "qs@npm:6.7.0"
|
resolution: "qs@npm:6.7.0"
|
||||||
@@ -29512,6 +29587,27 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"send@npm:0.19.0":
|
||||||
|
version: 0.19.0
|
||||||
|
resolution: "send@npm:0.19.0"
|
||||||
|
dependencies:
|
||||||
|
debug: 2.6.9
|
||||||
|
depd: 2.0.0
|
||||||
|
destroy: 1.2.0
|
||||||
|
encodeurl: ~1.0.2
|
||||||
|
escape-html: ~1.0.3
|
||||||
|
etag: ~1.8.1
|
||||||
|
fresh: 0.5.2
|
||||||
|
http-errors: 2.0.0
|
||||||
|
mime: 1.6.0
|
||||||
|
ms: 2.1.3
|
||||||
|
on-finished: 2.4.1
|
||||||
|
range-parser: ~1.2.1
|
||||||
|
statuses: 2.0.1
|
||||||
|
checksum: ea3f8a67a8f0be3d6bf9080f0baed6d2c51d11d4f7b4470de96a5029c598a7011c497511ccc28968b70ef05508675cebff27da9151dd2ceadd60be4e6cf845e3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"sentence-case@npm:^3.0.4":
|
"sentence-case@npm:^3.0.4":
|
||||||
version: 3.0.4
|
version: 3.0.4
|
||||||
resolution: "sentence-case@npm:3.0.4"
|
resolution: "sentence-case@npm:3.0.4"
|
||||||
@@ -29556,6 +29652,18 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"serve-static@npm:1.16.0":
|
||||||
|
version: 1.16.0
|
||||||
|
resolution: "serve-static@npm:1.16.0"
|
||||||
|
dependencies:
|
||||||
|
encodeurl: ~1.0.2
|
||||||
|
escape-html: ~1.0.3
|
||||||
|
parseurl: ~1.3.3
|
||||||
|
send: 0.18.0
|
||||||
|
checksum: d7a5beca08cc55f92998d8b87c111dd842d642404231c90c11f504f9650935da4599c13256747b0a988442a59851343271fe8e1946e03e92cd79c447b5f3ae01
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"set-blocking@npm:^2.0.0":
|
"set-blocking@npm:^2.0.0":
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
resolution: "set-blocking@npm:2.0.0"
|
resolution: "set-blocking@npm:2.0.0"
|
||||||
|
|||||||
Reference in new issue
Block a user