@strapi/core 5.51.1 → 5.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +12 -6
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +12 -6
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/compile.js +1 -1
  7. package/dist/compile.js.map +1 -1
  8. package/dist/compile.mjs +1 -1
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/urls.js +2 -2
  11. package/dist/configuration/urls.js.map +1 -1
  12. package/dist/configuration/urls.mjs +2 -2
  13. package/dist/configuration/urls.mjs.map +1 -1
  14. package/dist/ee/index.js +2 -2
  15. package/dist/ee/index.js.map +1 -1
  16. package/dist/ee/index.mjs +2 -2
  17. package/dist/ee/index.mjs.map +1 -1
  18. package/dist/index.d.ts +0 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/loaders/apis.d.ts.map +1 -1
  23. package/dist/loaders/apis.js +3 -1
  24. package/dist/loaders/apis.js.map +1 -1
  25. package/dist/loaders/apis.mjs +3 -1
  26. package/dist/loaders/apis.mjs.map +1 -1
  27. package/dist/loaders/plugins/get-enabled-plugins.js +1 -1
  28. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  29. package/dist/loaders/plugins/get-enabled-plugins.mjs +1 -1
  30. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  31. package/dist/loaders/plugins/index.js +2 -2
  32. package/dist/loaders/plugins/index.js.map +1 -1
  33. package/dist/loaders/plugins/index.mjs +2 -2
  34. package/dist/loaders/plugins/index.mjs.map +1 -1
  35. package/dist/migrations/database/5.0.0-discard-drafts.js +9 -9
  36. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  37. package/dist/migrations/database/5.0.0-discard-drafts.mjs +9 -9
  38. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  39. package/dist/package.json.js +15 -15
  40. package/dist/package.json.mjs +15 -15
  41. package/dist/services/content-api/index.js +1 -1
  42. package/dist/services/content-api/index.js.map +1 -1
  43. package/dist/services/content-api/index.mjs +1 -1
  44. package/dist/services/content-api/index.mjs.map +1 -1
  45. package/dist/services/content-api/permissions/engine.d.ts +3 -3
  46. package/dist/services/content-api/permissions/engine.d.ts.map +1 -1
  47. package/dist/services/content-api/permissions/engine.js +1 -5
  48. package/dist/services/content-api/permissions/engine.js.map +1 -1
  49. package/dist/services/content-api/permissions/engine.mjs +2 -2
  50. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  51. package/dist/services/core-store.js +1 -1
  52. package/dist/services/core-store.js.map +1 -1
  53. package/dist/services/core-store.mjs +1 -1
  54. package/dist/services/core-store.mjs.map +1 -1
  55. package/dist/services/document-service/repository.js +2 -2
  56. package/dist/services/document-service/repository.js.map +1 -1
  57. package/dist/services/document-service/repository.mjs +2 -2
  58. package/dist/services/document-service/repository.mjs.map +1 -1
  59. package/dist/services/document-service/utils/clean-component-join-table.js +2 -2
  60. package/dist/services/document-service/utils/clean-component-join-table.js.map +1 -1
  61. package/dist/services/document-service/utils/clean-component-join-table.mjs +2 -2
  62. package/dist/services/document-service/utils/clean-component-join-table.mjs.map +1 -1
  63. package/dist/services/document-service/utils/clone-relations.js +1 -1
  64. package/dist/services/document-service/utils/clone-relations.js.map +1 -1
  65. package/dist/services/document-service/utils/clone-relations.mjs +1 -1
  66. package/dist/services/document-service/utils/clone-relations.mjs.map +1 -1
  67. package/dist/services/entity-validator/blocks-validator.js +1 -1
  68. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  69. package/dist/services/entity-validator/blocks-validator.mjs +1 -1
  70. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  71. package/dist/services/entity-validator/index.js +23 -5
  72. package/dist/services/entity-validator/index.js.map +1 -1
  73. package/dist/services/entity-validator/index.mjs +1 -1
  74. package/dist/services/entity-validator/index.mjs.map +1 -1
  75. package/dist/services/mcp/handlers/handlePost.d.ts.map +1 -1
  76. package/dist/services/mcp/handlers/handlePost.js +3 -0
  77. package/dist/services/mcp/handlers/handlePost.js.map +1 -1
  78. package/dist/services/mcp/handlers/handlePost.mjs +3 -0
  79. package/dist/services/mcp/handlers/handlePost.mjs.map +1 -1
  80. package/dist/services/metrics/sender.js +1 -1
  81. package/dist/services/metrics/sender.js.map +1 -1
  82. package/dist/services/metrics/sender.mjs +1 -1
  83. package/dist/services/metrics/sender.mjs.map +1 -1
  84. package/dist/services/server/index.d.ts.map +1 -1
  85. package/dist/services/server/index.js +2 -0
  86. package/dist/services/server/index.js.map +1 -1
  87. package/dist/services/server/index.mjs +2 -0
  88. package/dist/services/server/index.mjs.map +1 -1
  89. package/dist/services/server/koa-methods.d.ts +6 -0
  90. package/dist/services/server/koa-methods.d.ts.map +1 -1
  91. package/dist/services/server/koa-methods.js.map +1 -1
  92. package/dist/services/server/koa-methods.mjs.map +1 -1
  93. package/dist/services/server/koa.d.ts +3 -1
  94. package/dist/services/server/koa.d.ts.map +1 -1
  95. package/dist/services/server/koa.js +3 -1
  96. package/dist/services/server/koa.js.map +1 -1
  97. package/dist/services/server/koa.mjs +3 -1
  98. package/dist/services/server/koa.mjs.map +1 -1
  99. package/dist/services/server/middleware.js +1 -1
  100. package/dist/services/server/middleware.js.map +1 -1
  101. package/dist/services/server/middleware.mjs +1 -1
  102. package/dist/services/server/middleware.mjs.map +1 -1
  103. package/dist/services/server/register-middlewares.js +1 -1
  104. package/dist/services/server/register-middlewares.js.map +1 -1
  105. package/dist/services/server/register-middlewares.mjs +1 -1
  106. package/dist/services/server/register-middlewares.mjs.map +1 -1
  107. package/dist/services/server/routing.js +1 -1
  108. package/dist/services/server/routing.js.map +1 -1
  109. package/dist/services/server/routing.mjs +1 -1
  110. package/dist/services/server/routing.mjs.map +1 -1
  111. package/dist/services/session-manager.d.ts.map +1 -1
  112. package/dist/services/session-manager.js +5 -5
  113. package/dist/services/session-manager.js.map +1 -1
  114. package/dist/services/session-manager.mjs +5 -5
  115. package/dist/services/session-manager.mjs.map +1 -1
  116. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"sender.js","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\n// Lazy: only resolved when telemetry is enabled and a sender is constructed\nlet lazyTsUtils: typeof import('@strapi/typescript-utils') | undefined;\nconst tsUtils = (): typeof import('@strapi/typescript-utils') => {\n if (!lazyTsUtils) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTsUtils = require('@strapi/typescript-utils');\n }\n return lazyTsUtils as typeof import('@strapi/typescript-utils');\n};\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils().isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils().isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const eeGroupProps: Record<string, unknown> = {};\n if (strapi.ee?.subscriptionId !== undefined && strapi.ee?.subscriptionId !== null) {\n eeGroupProps.subscriptionId = strapi.ee.subscriptionId;\n }\n if (strapi.ee?.planPriceId !== undefined && strapi.ee?.planPriceId !== null) {\n eeGroupProps.planPriceId = strapi.ee.planPriceId;\n }\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...eeGroupProps,\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');\n const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["lazyTsUtils","tsUtils","require","defaultQueryOpts","timeout","headers","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","eeGroupProps","ee","subscriptionId","undefined","planPriceId","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","analyticsUrl","res","fetch","ok","err"],"mappings":"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"}
1
+ {"version":3,"file":"sender.js","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\n// Lazy: only resolved when telemetry is enabled and a sender is constructed\nlet lazyTsUtils: typeof import('@strapi/typescript-utils') | undefined;\nconst tsUtils = (): typeof import('@strapi/typescript-utils') => {\n if (!lazyTsUtils) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTsUtils = require('@strapi/typescript-utils');\n }\n return lazyTsUtils as typeof import('@strapi/typescript-utils');\n};\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils().isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils().isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const eeGroupProps: Record<string, unknown> = {};\n if (strapi.ee?.subscriptionId !== undefined && strapi.ee?.subscriptionId !== null) {\n eeGroupProps.subscriptionId = strapi.ee.subscriptionId;\n }\n if (strapi.ee?.planPriceId !== undefined && strapi.ee?.planPriceId !== null) {\n eeGroupProps.planPriceId = strapi.ee.planPriceId;\n }\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...eeGroupProps,\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');\n const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);\n return res.ok;\n } catch {\n return false;\n }\n };\n};\n"],"names":["lazyTsUtils","tsUtils","require","defaultQueryOpts","timeout","headers","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","eeGroupProps","ee","subscriptionId","undefined","planPriceId","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","analyticsUrl","res","fetch","ok"],"mappings":"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"}
@@ -89,7 +89,7 @@ const defaultQueryOpts = {
89
89
  const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');
90
90
  const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);
91
91
  return res.ok;
92
- } catch (err) {
92
+ } catch {
93
93
  return false;
94
94
  }
95
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sender.mjs","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\n// Lazy: only resolved when telemetry is enabled and a sender is constructed\nlet lazyTsUtils: typeof import('@strapi/typescript-utils') | undefined;\nconst tsUtils = (): typeof import('@strapi/typescript-utils') => {\n if (!lazyTsUtils) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTsUtils = require('@strapi/typescript-utils');\n }\n return lazyTsUtils as typeof import('@strapi/typescript-utils');\n};\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils().isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils().isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const eeGroupProps: Record<string, unknown> = {};\n if (strapi.ee?.subscriptionId !== undefined && strapi.ee?.subscriptionId !== null) {\n eeGroupProps.subscriptionId = strapi.ee.subscriptionId;\n }\n if (strapi.ee?.planPriceId !== undefined && strapi.ee?.planPriceId !== null) {\n eeGroupProps.planPriceId = strapi.ee.planPriceId;\n }\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...eeGroupProps,\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');\n const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["lazyTsUtils","tsUtils","require","defaultQueryOpts","timeout","headers","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","eeGroupProps","ee","subscriptionId","undefined","planPriceId","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","analyticsUrl","res","fetch","ok","err"],"mappings":"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"}
1
+ {"version":3,"file":"sender.mjs","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\n// Lazy: only resolved when telemetry is enabled and a sender is constructed\nlet lazyTsUtils: typeof import('@strapi/typescript-utils') | undefined;\nconst tsUtils = (): typeof import('@strapi/typescript-utils') => {\n if (!lazyTsUtils) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n lazyTsUtils = require('@strapi/typescript-utils');\n }\n return lazyTsUtils as typeof import('@strapi/typescript-utils');\n};\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils().isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils().isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const eeGroupProps: Record<string, unknown> = {};\n if (strapi.ee?.subscriptionId !== undefined && strapi.ee?.subscriptionId !== null) {\n eeGroupProps.subscriptionId = strapi.ee.subscriptionId;\n }\n if (strapi.ee?.planPriceId !== undefined && strapi.ee?.planPriceId !== null) {\n eeGroupProps.planPriceId = strapi.ee.planPriceId;\n }\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...eeGroupProps,\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');\n const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);\n return res.ok;\n } catch {\n return false;\n }\n };\n};\n"],"names":["lazyTsUtils","tsUtils","require","defaultQueryOpts","timeout","headers","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","eeGroupProps","ee","subscriptionId","undefined","planPriceId","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","analyticsUrl","res","fetch","ok"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/server/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAgBnD,QAAA,MAAM,YAAY,GAAI,QAAQ,IAAI,CAAC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MA4F1D,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/server/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAgBnD,QAAA,MAAM,YAAY,GAAI,QAAQ,IAAI,CAAC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MA8F1D,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -21,6 +21,8 @@ const healthCheck = async (ctx)=>{
21
21
  const createServer = (strapi)=>{
22
22
  const app = koa({
23
23
  proxy: strapi.config.get('server.proxy.koa'),
24
+ proxyIpHeader: strapi.config.get('server.proxy.ipHeader'),
25
+ maxIpsCount: strapi.config.get('server.proxy.maxIpsCount'),
24
26
  keys: strapi.config.get('server.app.keys')
25
27
  });
26
28
  app.use((ctx, next)=>requestContext.run(ctx, ()=>next()));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/services/server/index.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core, Modules } from '@strapi/types';\n\nimport { createHTTPServer } from './http-server';\nimport { createRouteManager } from './routing';\nimport { createAdminAPI } from './admin-api';\nimport { createContentAPI } from './content-api';\nimport registerAllRoutes from './register-routes';\nimport registerApplicationMiddlewares from './register-middlewares';\nimport createKoaApp from './koa';\nimport requestCtx from '../request-context';\n\nconst healthCheck: Core.MiddlewareHandler = async (ctx) => {\n ctx.set('strapi', 'You are so French!');\n ctx.status = 204;\n};\n\nconst createServer = (strapi: Core.Strapi): Modules.Server.Server => {\n const app = createKoaApp({\n proxy: strapi.config.get('server.proxy.koa'),\n keys: strapi.config.get('server.app.keys'),\n });\n\n app.use((ctx, next) => requestCtx.run(ctx, () => next()));\n\n const router = new Router();\n\n const routeManager = createRouteManager(strapi);\n\n const httpServer = createHTTPServer(strapi, app);\n\n const apis = {\n 'content-api': createContentAPI(strapi),\n admin: createAdminAPI(strapi),\n };\n\n // init health check\n router.all('/_health', healthCheck);\n\n const state = {\n mounted: false,\n };\n\n return {\n app,\n router,\n httpServer,\n\n api(name) {\n return apis[name];\n },\n\n use(...args) {\n app.use(...args);\n return this;\n },\n\n routes(routes: Core.Router | Omit<Core.Route, 'info'>[]) {\n if (!Array.isArray(routes) && routes.type) {\n const api = apis[routes.type];\n if (!api) {\n throw new Error(`API ${routes.type} not found. Possible APIs are ${Object.keys(apis)}`);\n }\n\n apis[routes.type].routes(routes);\n return this;\n }\n\n routeManager.addRoutes(routes, router);\n return this;\n },\n\n mount() {\n state.mounted = true;\n\n Object.values(apis).forEach((api) => api.mount(router));\n app.use(router.routes()).use(router.allowedMethods());\n\n return this;\n },\n\n initRouting() {\n registerAllRoutes(strapi);\n\n return this;\n },\n\n async initMiddlewares() {\n await registerApplicationMiddlewares(strapi);\n\n return this;\n },\n\n listRoutes() {\n return [...router.stack];\n },\n\n listen(...args: any[]) {\n if (!state.mounted) {\n this.mount();\n }\n\n return httpServer.listen(...args);\n },\n\n async destroy() {\n await httpServer.destroy();\n },\n };\n};\n\nexport { createServer };\n"],"names":["healthCheck","ctx","set","status","createServer","strapi","app","createKoaApp","proxy","config","get","keys","use","next","requestCtx","run","router","Router","routeManager","createRouteManager","httpServer","createHTTPServer","apis","createContentAPI","admin","createAdminAPI","all","state","mounted","api","name","args","routes","Array","isArray","type","Error","Object","addRoutes","mount","values","forEach","allowedMethods","initRouting","registerAllRoutes","initMiddlewares","registerApplicationMiddlewares","listRoutes","stack","listen","destroy"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/services/server/index.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core, Modules } from '@strapi/types';\n\nimport { createHTTPServer } from './http-server';\nimport { createRouteManager } from './routing';\nimport { createAdminAPI } from './admin-api';\nimport { createContentAPI } from './content-api';\nimport registerAllRoutes from './register-routes';\nimport registerApplicationMiddlewares from './register-middlewares';\nimport createKoaApp from './koa';\nimport requestCtx from '../request-context';\n\nconst healthCheck: Core.MiddlewareHandler = async (ctx) => {\n ctx.set('strapi', 'You are so French!');\n ctx.status = 204;\n};\n\nconst createServer = (strapi: Core.Strapi): Modules.Server.Server => {\n const app = createKoaApp({\n proxy: strapi.config.get('server.proxy.koa'),\n proxyIpHeader: strapi.config.get('server.proxy.ipHeader'),\n maxIpsCount: strapi.config.get('server.proxy.maxIpsCount'),\n keys: strapi.config.get('server.app.keys'),\n });\n\n app.use((ctx, next) => requestCtx.run(ctx, () => next()));\n\n const router = new Router();\n\n const routeManager = createRouteManager(strapi);\n\n const httpServer = createHTTPServer(strapi, app);\n\n const apis = {\n 'content-api': createContentAPI(strapi),\n admin: createAdminAPI(strapi),\n };\n\n // init health check\n router.all('/_health', healthCheck);\n\n const state = {\n mounted: false,\n };\n\n return {\n app,\n router,\n httpServer,\n\n api(name) {\n return apis[name];\n },\n\n use(...args) {\n app.use(...args);\n return this;\n },\n\n routes(routes: Core.Router | Omit<Core.Route, 'info'>[]) {\n if (!Array.isArray(routes) && routes.type) {\n const api = apis[routes.type];\n if (!api) {\n throw new Error(`API ${routes.type} not found. Possible APIs are ${Object.keys(apis)}`);\n }\n\n apis[routes.type].routes(routes);\n return this;\n }\n\n routeManager.addRoutes(routes, router);\n return this;\n },\n\n mount() {\n state.mounted = true;\n\n Object.values(apis).forEach((api) => api.mount(router));\n app.use(router.routes()).use(router.allowedMethods());\n\n return this;\n },\n\n initRouting() {\n registerAllRoutes(strapi);\n\n return this;\n },\n\n async initMiddlewares() {\n await registerApplicationMiddlewares(strapi);\n\n return this;\n },\n\n listRoutes() {\n return [...router.stack];\n },\n\n listen(...args: any[]) {\n if (!state.mounted) {\n this.mount();\n }\n\n return httpServer.listen(...args);\n },\n\n async destroy() {\n await httpServer.destroy();\n },\n };\n};\n\nexport { createServer };\n"],"names":["healthCheck","ctx","set","status","createServer","strapi","app","createKoaApp","proxy","config","get","proxyIpHeader","maxIpsCount","keys","use","next","requestCtx","run","router","Router","routeManager","createRouteManager","httpServer","createHTTPServer","apis","createContentAPI","admin","createAdminAPI","all","state","mounted","api","name","args","routes","Array","isArray","type","Error","Object","addRoutes","mount","values","forEach","allowedMethods","initRouting","registerAllRoutes","initMiddlewares","registerApplicationMiddlewares","listRoutes","stack","listen","destroy"],"mappings":"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"}
@@ -15,6 +15,8 @@ const healthCheck = async (ctx)=>{
15
15
  const createServer = (strapi)=>{
16
16
  const app = createKoaApp({
17
17
  proxy: strapi.config.get('server.proxy.koa'),
18
+ proxyIpHeader: strapi.config.get('server.proxy.ipHeader'),
19
+ maxIpsCount: strapi.config.get('server.proxy.maxIpsCount'),
18
20
  keys: strapi.config.get('server.app.keys')
19
21
  });
20
22
  app.use((ctx, next)=>requestCtx.run(ctx, ()=>next()));
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/services/server/index.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core, Modules } from '@strapi/types';\n\nimport { createHTTPServer } from './http-server';\nimport { createRouteManager } from './routing';\nimport { createAdminAPI } from './admin-api';\nimport { createContentAPI } from './content-api';\nimport registerAllRoutes from './register-routes';\nimport registerApplicationMiddlewares from './register-middlewares';\nimport createKoaApp from './koa';\nimport requestCtx from '../request-context';\n\nconst healthCheck: Core.MiddlewareHandler = async (ctx) => {\n ctx.set('strapi', 'You are so French!');\n ctx.status = 204;\n};\n\nconst createServer = (strapi: Core.Strapi): Modules.Server.Server => {\n const app = createKoaApp({\n proxy: strapi.config.get('server.proxy.koa'),\n keys: strapi.config.get('server.app.keys'),\n });\n\n app.use((ctx, next) => requestCtx.run(ctx, () => next()));\n\n const router = new Router();\n\n const routeManager = createRouteManager(strapi);\n\n const httpServer = createHTTPServer(strapi, app);\n\n const apis = {\n 'content-api': createContentAPI(strapi),\n admin: createAdminAPI(strapi),\n };\n\n // init health check\n router.all('/_health', healthCheck);\n\n const state = {\n mounted: false,\n };\n\n return {\n app,\n router,\n httpServer,\n\n api(name) {\n return apis[name];\n },\n\n use(...args) {\n app.use(...args);\n return this;\n },\n\n routes(routes: Core.Router | Omit<Core.Route, 'info'>[]) {\n if (!Array.isArray(routes) && routes.type) {\n const api = apis[routes.type];\n if (!api) {\n throw new Error(`API ${routes.type} not found. Possible APIs are ${Object.keys(apis)}`);\n }\n\n apis[routes.type].routes(routes);\n return this;\n }\n\n routeManager.addRoutes(routes, router);\n return this;\n },\n\n mount() {\n state.mounted = true;\n\n Object.values(apis).forEach((api) => api.mount(router));\n app.use(router.routes()).use(router.allowedMethods());\n\n return this;\n },\n\n initRouting() {\n registerAllRoutes(strapi);\n\n return this;\n },\n\n async initMiddlewares() {\n await registerApplicationMiddlewares(strapi);\n\n return this;\n },\n\n listRoutes() {\n return [...router.stack];\n },\n\n listen(...args: any[]) {\n if (!state.mounted) {\n this.mount();\n }\n\n return httpServer.listen(...args);\n },\n\n async destroy() {\n await httpServer.destroy();\n },\n };\n};\n\nexport { createServer };\n"],"names":["healthCheck","ctx","set","status","createServer","strapi","app","createKoaApp","proxy","config","get","keys","use","next","requestCtx","run","router","Router","routeManager","createRouteManager","httpServer","createHTTPServer","apis","createContentAPI","admin","createAdminAPI","all","state","mounted","api","name","args","routes","Array","isArray","type","Error","Object","addRoutes","mount","values","forEach","allowedMethods","initRouting","registerAllRoutes","initMiddlewares","registerApplicationMiddlewares","listRoutes","stack","listen","destroy"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/services/server/index.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core, Modules } from '@strapi/types';\n\nimport { createHTTPServer } from './http-server';\nimport { createRouteManager } from './routing';\nimport { createAdminAPI } from './admin-api';\nimport { createContentAPI } from './content-api';\nimport registerAllRoutes from './register-routes';\nimport registerApplicationMiddlewares from './register-middlewares';\nimport createKoaApp from './koa';\nimport requestCtx from '../request-context';\n\nconst healthCheck: Core.MiddlewareHandler = async (ctx) => {\n ctx.set('strapi', 'You are so French!');\n ctx.status = 204;\n};\n\nconst createServer = (strapi: Core.Strapi): Modules.Server.Server => {\n const app = createKoaApp({\n proxy: strapi.config.get('server.proxy.koa'),\n proxyIpHeader: strapi.config.get('server.proxy.ipHeader'),\n maxIpsCount: strapi.config.get('server.proxy.maxIpsCount'),\n keys: strapi.config.get('server.app.keys'),\n });\n\n app.use((ctx, next) => requestCtx.run(ctx, () => next()));\n\n const router = new Router();\n\n const routeManager = createRouteManager(strapi);\n\n const httpServer = createHTTPServer(strapi, app);\n\n const apis = {\n 'content-api': createContentAPI(strapi),\n admin: createAdminAPI(strapi),\n };\n\n // init health check\n router.all('/_health', healthCheck);\n\n const state = {\n mounted: false,\n };\n\n return {\n app,\n router,\n httpServer,\n\n api(name) {\n return apis[name];\n },\n\n use(...args) {\n app.use(...args);\n return this;\n },\n\n routes(routes: Core.Router | Omit<Core.Route, 'info'>[]) {\n if (!Array.isArray(routes) && routes.type) {\n const api = apis[routes.type];\n if (!api) {\n throw new Error(`API ${routes.type} not found. Possible APIs are ${Object.keys(apis)}`);\n }\n\n apis[routes.type].routes(routes);\n return this;\n }\n\n routeManager.addRoutes(routes, router);\n return this;\n },\n\n mount() {\n state.mounted = true;\n\n Object.values(apis).forEach((api) => api.mount(router));\n app.use(router.routes()).use(router.allowedMethods());\n\n return this;\n },\n\n initRouting() {\n registerAllRoutes(strapi);\n\n return this;\n },\n\n async initMiddlewares() {\n await registerApplicationMiddlewares(strapi);\n\n return this;\n },\n\n listRoutes() {\n return [...router.stack];\n },\n\n listen(...args: any[]) {\n if (!state.mounted) {\n this.mount();\n }\n\n return httpServer.listen(...args);\n },\n\n async destroy() {\n await httpServer.destroy();\n },\n };\n};\n\nexport { createServer };\n"],"names":["healthCheck","ctx","set","status","createServer","strapi","app","createKoaApp","proxy","config","get","proxyIpHeader","maxIpsCount","keys","use","next","requestCtx","run","router","Router","routeManager","createRouteManager","httpServer","createHTTPServer","apis","createContentAPI","admin","createAdminAPI","all","state","mounted","api","name","args","routes","Array","isArray","type","Error","Object","addRoutes","mount","values","forEach","allowedMethods","initRouting","registerAllRoutes","initMiddlewares","registerApplicationMiddlewares","listRoutes","stack","listen","destroy"],"mappings":"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"}
@@ -104,4 +104,10 @@ export interface ContextDelegatedResponseSuccessMethods {
104
104
  /** 204 | 200 */
105
105
  deleted(response?: unknown): void;
106
106
  }
107
+ declare module 'koa' {
108
+ interface DefaultContextDelegatedResponse extends ContextDelegatedResponseErrorMethods, ContextDelegatedResponseSuccessMethods {
109
+ }
110
+ interface BaseResponse extends ContextDelegatedResponseErrorMethods, ContextDelegatedResponseSuccessMethods {
111
+ }
112
+ }
107
113
  //# sourceMappingURL=koa-methods.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"koa-methods.d.ts","sourceRoot":"","sources":["../../../src/services/server/koa-methods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koa-methods.d.ts","sourceRoot":"","sources":["../../../src/services/server/koa-methods.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"koa-methods.js","sources":["../../../src/services/server/koa-methods.ts"],"sourcesContent":["import { camelCase } from 'lodash/fp';\nimport { STATUS_CODES } from 'node:http';\n\nexport interface ErrorMethodEntry {\n /** HTTP status code (400–599). */\n code: number;\n /** Reason phrase from `node:http` `STATUS_CODES`, e.g. \"Not Found\". */\n statusName: string;\n /** camelCased helper name registered on the context, e.g. \"notFound\". */\n methodName: keyof ContextDelegatedResponseErrorMethods;\n}\n\n/**\n * Single source of truth for the generated error helpers: yields one entry per\n * 4xx/5xx `node:http` status. Both the runtime registration (`koa.ts`) and the\n * type/runtime sync test iterate this, so they cannot drift.\n */\nexport function* errorMethodEntries(): Generator<ErrorMethodEntry> {\n for (const [codeStr, statusName] of Object.entries(STATUS_CODES)) {\n const code = Number(codeStr);\n\n if (statusName && code >= 400 && code < 600) {\n yield {\n code,\n statusName,\n methodName: camelCase(statusName) as keyof ContextDelegatedResponseErrorMethods,\n };\n }\n }\n}\n\nexport interface ContextDelegatedResponseErrorMethods {\n /** 400 Bad Request */\n badRequest(response?: string | object, details?: object): void;\n /** 401 Unauthorized */\n unauthorized(response?: string | object, details?: object): void;\n /** 402 Payment Required */\n paymentRequired(response?: string | object, details?: object): void;\n /** 403 Forbidden */\n forbidden(response?: string | object, details?: object): void;\n /** 404 Not Found */\n notFound(response?: string | object, details?: object): void;\n /** 405 Method Not Allowed */\n methodNotAllowed(response?: string | object, details?: object): void;\n /** 406 Not Acceptable */\n notAcceptable(response?: string | object, details?: object): void;\n /** 407 Proxy Authentication Required */\n proxyAuthenticationRequired(response?: string | object, details?: object): void;\n /** 408 Request Timeout */\n requestTimeout(response?: string | object, details?: object): void;\n /** 409 Conflict */\n conflict(response?: string | object, details?: object): void;\n /** 410 Gone */\n gone(response?: string | object, details?: object): void;\n /** 411 Length Required */\n lengthRequired(response?: string | object, details?: object): void;\n /** 412 Precondition Failed */\n preconditionFailed(response?: string | object, details?: object): void;\n /** 413 Payload Too Large */\n payloadTooLarge(response?: string | object, details?: object): void;\n /** 414 Uri Too Long */\n uriTooLong(response?: string | object, details?: object): void;\n /** 415 Unsupported Media Type */\n unsupportedMediaType(response?: string | object, details?: object): void;\n /** 416 Range Not Satisfiable */\n rangeNotSatisfiable(response?: string | object, details?: object): void;\n /** 417 Expectation Failed */\n expectationFailed(response?: string | object, details?: object): void;\n /** 418 Im A Teapot */\n imATeapot(response?: string | object, details?: object): void;\n /** 421 Misdirected Request */\n misdirectedRequest(response?: string | object, details?: object): void;\n /** 422 Unprocessable Entity */\n unprocessableEntity(response?: string | object, details?: object): void;\n /** 423 Locked */\n locked(response?: string | object, details?: object): void;\n /** 424 Failed Dependency */\n failedDependency(response?: string | object, details?: object): void;\n /** 425 Too Early */\n tooEarly(response?: string | object, details?: object): void;\n /** 426 Upgrade Required */\n upgradeRequired(response?: string | object, details?: object): void;\n /** 428 Precondition Required */\n preconditionRequired(response?: string | object, details?: object): void;\n /** 429 Too Many Requests */\n tooManyRequests(response?: string | object, details?: object): void;\n /** 431 Request Header Fields Too Large */\n requestHeaderFieldsTooLarge(response?: string | object, details?: object): void;\n /** 451 Unavailable For Legal Reasons */\n unavailableForLegalReasons(response?: string | object, details?: object): void;\n /** 500 Internal Server Error */\n internalServerError(response?: string | object, details?: object): void;\n /** 501 Not Implemented */\n notImplemented(response?: string | object, details?: object): void;\n /** 502 Bad Gateway */\n badGateway(response?: string | object, details?: object): void;\n /** 503 Service Unavailable */\n serviceUnavailable(response?: string | object, details?: object): void;\n /** 504 Gateway Timeout */\n gatewayTimeout(response?: string | object, details?: object): void;\n /** 505 Http Version Not Supported */\n httpVersionNotSupported(response?: string | object, details?: object): void;\n /** 506 Variant Also Negotiates */\n variantAlsoNegotiates(response?: string | object, details?: object): void;\n /** 507 Insufficient Storage */\n insufficientStorage(response?: string | object, details?: object): void;\n /** 508 Loop Detected */\n loopDetected(response?: string | object, details?: object): void;\n /** 509 Bandwidth Limit Exceeded */\n bandwidthLimitExceeded(response?: string | object, details?: object): void;\n /** 510 Not Extended */\n notExtended(response?: string | object, details?: object): void;\n /** 511 Network Authentication Required */\n networkAuthenticationRequired(response?: string | object, details?: object): void;\n}\n\nexport interface ContextDelegatedResponseSuccessMethods {\n /** 200 */\n send(response: unknown, status?: number): void;\n /** 201 */\n created(response?: unknown): void;\n /** 204 | 200 */\n deleted(response?: unknown): void;\n}\n"],"names":["errorMethodEntries","codeStr","statusName","Object","entries","STATUS_CODES","code","Number","methodName","camelCase"],"mappings":";;;;;AAYA;;;;AAIC,IACM,UAAUA,kBAAAA,GAAAA;IACf,KAAK,MAAM,CAACC,OAAAA,EAASC,UAAAA,CAAW,IAAIC,MAAAA,CAAOC,OAAO,CAACC,sBAAAA,CAAAA,CAAe;AAChE,QAAA,MAAMC,OAAOC,MAAAA,CAAON,OAAAA,CAAAA;AAEpB,QAAA,IAAIC,UAAAA,IAAcI,IAAAA,IAAQ,GAAA,IAAOA,IAAAA,GAAO,GAAA,EAAK;YAC3C,MAAM;AACJA,gBAAAA,IAAAA;AACAJ,gBAAAA,UAAAA;AACAM,gBAAAA,UAAAA,EAAYC,YAAAA,CAAUP,UAAAA;AACxB,aAAA;AACF,QAAA;AACF,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"koa-methods.js","sources":["../../../src/services/server/koa-methods.ts"],"sourcesContent":["import { camelCase } from 'lodash/fp';\nimport { STATUS_CODES } from 'node:http';\n\nexport interface ErrorMethodEntry {\n /** HTTP status code (400–599). */\n code: number;\n /** Reason phrase from `node:http` `STATUS_CODES`, e.g. \"Not Found\". */\n statusName: string;\n /** camelCased helper name registered on the context, e.g. \"notFound\". */\n methodName: keyof ContextDelegatedResponseErrorMethods;\n}\n\n/**\n * Single source of truth for the generated error helpers: yields one entry per\n * 4xx/5xx `node:http` status. Both the runtime registration (`koa.ts`) and the\n * type/runtime sync test iterate this, so they cannot drift.\n */\nexport function* errorMethodEntries(): Generator<ErrorMethodEntry> {\n for (const [codeStr, statusName] of Object.entries(STATUS_CODES)) {\n const code = Number(codeStr);\n\n if (statusName && code >= 400 && code < 600) {\n yield {\n code,\n statusName,\n methodName: camelCase(statusName) as keyof ContextDelegatedResponseErrorMethods,\n };\n }\n }\n}\n\nexport interface ContextDelegatedResponseErrorMethods {\n /** 400 Bad Request */\n badRequest(response?: string | object, details?: object): void;\n /** 401 Unauthorized */\n unauthorized(response?: string | object, details?: object): void;\n /** 402 Payment Required */\n paymentRequired(response?: string | object, details?: object): void;\n /** 403 Forbidden */\n forbidden(response?: string | object, details?: object): void;\n /** 404 Not Found */\n notFound(response?: string | object, details?: object): void;\n /** 405 Method Not Allowed */\n methodNotAllowed(response?: string | object, details?: object): void;\n /** 406 Not Acceptable */\n notAcceptable(response?: string | object, details?: object): void;\n /** 407 Proxy Authentication Required */\n proxyAuthenticationRequired(response?: string | object, details?: object): void;\n /** 408 Request Timeout */\n requestTimeout(response?: string | object, details?: object): void;\n /** 409 Conflict */\n conflict(response?: string | object, details?: object): void;\n /** 410 Gone */\n gone(response?: string | object, details?: object): void;\n /** 411 Length Required */\n lengthRequired(response?: string | object, details?: object): void;\n /** 412 Precondition Failed */\n preconditionFailed(response?: string | object, details?: object): void;\n /** 413 Payload Too Large */\n payloadTooLarge(response?: string | object, details?: object): void;\n /** 414 Uri Too Long */\n uriTooLong(response?: string | object, details?: object): void;\n /** 415 Unsupported Media Type */\n unsupportedMediaType(response?: string | object, details?: object): void;\n /** 416 Range Not Satisfiable */\n rangeNotSatisfiable(response?: string | object, details?: object): void;\n /** 417 Expectation Failed */\n expectationFailed(response?: string | object, details?: object): void;\n /** 418 Im A Teapot */\n imATeapot(response?: string | object, details?: object): void;\n /** 421 Misdirected Request */\n misdirectedRequest(response?: string | object, details?: object): void;\n /** 422 Unprocessable Entity */\n unprocessableEntity(response?: string | object, details?: object): void;\n /** 423 Locked */\n locked(response?: string | object, details?: object): void;\n /** 424 Failed Dependency */\n failedDependency(response?: string | object, details?: object): void;\n /** 425 Too Early */\n tooEarly(response?: string | object, details?: object): void;\n /** 426 Upgrade Required */\n upgradeRequired(response?: string | object, details?: object): void;\n /** 428 Precondition Required */\n preconditionRequired(response?: string | object, details?: object): void;\n /** 429 Too Many Requests */\n tooManyRequests(response?: string | object, details?: object): void;\n /** 431 Request Header Fields Too Large */\n requestHeaderFieldsTooLarge(response?: string | object, details?: object): void;\n /** 451 Unavailable For Legal Reasons */\n unavailableForLegalReasons(response?: string | object, details?: object): void;\n /** 500 Internal Server Error */\n internalServerError(response?: string | object, details?: object): void;\n /** 501 Not Implemented */\n notImplemented(response?: string | object, details?: object): void;\n /** 502 Bad Gateway */\n badGateway(response?: string | object, details?: object): void;\n /** 503 Service Unavailable */\n serviceUnavailable(response?: string | object, details?: object): void;\n /** 504 Gateway Timeout */\n gatewayTimeout(response?: string | object, details?: object): void;\n /** 505 Http Version Not Supported */\n httpVersionNotSupported(response?: string | object, details?: object): void;\n /** 506 Variant Also Negotiates */\n variantAlsoNegotiates(response?: string | object, details?: object): void;\n /** 507 Insufficient Storage */\n insufficientStorage(response?: string | object, details?: object): void;\n /** 508 Loop Detected */\n loopDetected(response?: string | object, details?: object): void;\n /** 509 Bandwidth Limit Exceeded */\n bandwidthLimitExceeded(response?: string | object, details?: object): void;\n /** 510 Not Extended */\n notExtended(response?: string | object, details?: object): void;\n /** 511 Network Authentication Required */\n networkAuthenticationRequired(response?: string | object, details?: object): void;\n}\n\nexport interface ContextDelegatedResponseSuccessMethods {\n /** 200 */\n send(response: unknown, status?: number): void;\n /** 201 */\n created(response?: unknown): void;\n /** 204 | 200 */\n deleted(response?: unknown): void;\n}\n\n// Keep Koa's context and response types in sync with the helpers registered at runtime in `koa.ts`.\ndeclare module 'koa' {\n interface DefaultContextDelegatedResponse\n extends ContextDelegatedResponseErrorMethods,\n ContextDelegatedResponseSuccessMethods {}\n\n interface BaseResponse\n extends ContextDelegatedResponseErrorMethods,\n ContextDelegatedResponseSuccessMethods {}\n}\n"],"names":["errorMethodEntries","codeStr","statusName","Object","entries","STATUS_CODES","code","Number","methodName","camelCase"],"mappings":";;;;;AAYA;;;;AAIC,IACM,UAAUA,kBAAAA,GAAAA;IACf,KAAK,MAAM,CAACC,OAAAA,EAASC,UAAAA,CAAW,IAAIC,MAAAA,CAAOC,OAAO,CAACC,sBAAAA,CAAAA,CAAe;AAChE,QAAA,MAAMC,OAAOC,MAAAA,CAAON,OAAAA,CAAAA;AAEpB,QAAA,IAAIC,UAAAA,IAAcI,IAAAA,IAAQ,GAAA,IAAOA,IAAAA,GAAO,GAAA,EAAK;YAC3C,MAAM;AACJA,gBAAAA,IAAAA;AACAJ,gBAAAA,UAAAA;AACAM,gBAAAA,UAAAA,EAAYC,YAAAA,CAAUP,UAAAA;AACxB,aAAA;AACF,QAAA;AACF,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"koa-methods.mjs","sources":["../../../src/services/server/koa-methods.ts"],"sourcesContent":["import { camelCase } from 'lodash/fp';\nimport { STATUS_CODES } from 'node:http';\n\nexport interface ErrorMethodEntry {\n /** HTTP status code (400–599). */\n code: number;\n /** Reason phrase from `node:http` `STATUS_CODES`, e.g. \"Not Found\". */\n statusName: string;\n /** camelCased helper name registered on the context, e.g. \"notFound\". */\n methodName: keyof ContextDelegatedResponseErrorMethods;\n}\n\n/**\n * Single source of truth for the generated error helpers: yields one entry per\n * 4xx/5xx `node:http` status. Both the runtime registration (`koa.ts`) and the\n * type/runtime sync test iterate this, so they cannot drift.\n */\nexport function* errorMethodEntries(): Generator<ErrorMethodEntry> {\n for (const [codeStr, statusName] of Object.entries(STATUS_CODES)) {\n const code = Number(codeStr);\n\n if (statusName && code >= 400 && code < 600) {\n yield {\n code,\n statusName,\n methodName: camelCase(statusName) as keyof ContextDelegatedResponseErrorMethods,\n };\n }\n }\n}\n\nexport interface ContextDelegatedResponseErrorMethods {\n /** 400 Bad Request */\n badRequest(response?: string | object, details?: object): void;\n /** 401 Unauthorized */\n unauthorized(response?: string | object, details?: object): void;\n /** 402 Payment Required */\n paymentRequired(response?: string | object, details?: object): void;\n /** 403 Forbidden */\n forbidden(response?: string | object, details?: object): void;\n /** 404 Not Found */\n notFound(response?: string | object, details?: object): void;\n /** 405 Method Not Allowed */\n methodNotAllowed(response?: string | object, details?: object): void;\n /** 406 Not Acceptable */\n notAcceptable(response?: string | object, details?: object): void;\n /** 407 Proxy Authentication Required */\n proxyAuthenticationRequired(response?: string | object, details?: object): void;\n /** 408 Request Timeout */\n requestTimeout(response?: string | object, details?: object): void;\n /** 409 Conflict */\n conflict(response?: string | object, details?: object): void;\n /** 410 Gone */\n gone(response?: string | object, details?: object): void;\n /** 411 Length Required */\n lengthRequired(response?: string | object, details?: object): void;\n /** 412 Precondition Failed */\n preconditionFailed(response?: string | object, details?: object): void;\n /** 413 Payload Too Large */\n payloadTooLarge(response?: string | object, details?: object): void;\n /** 414 Uri Too Long */\n uriTooLong(response?: string | object, details?: object): void;\n /** 415 Unsupported Media Type */\n unsupportedMediaType(response?: string | object, details?: object): void;\n /** 416 Range Not Satisfiable */\n rangeNotSatisfiable(response?: string | object, details?: object): void;\n /** 417 Expectation Failed */\n expectationFailed(response?: string | object, details?: object): void;\n /** 418 Im A Teapot */\n imATeapot(response?: string | object, details?: object): void;\n /** 421 Misdirected Request */\n misdirectedRequest(response?: string | object, details?: object): void;\n /** 422 Unprocessable Entity */\n unprocessableEntity(response?: string | object, details?: object): void;\n /** 423 Locked */\n locked(response?: string | object, details?: object): void;\n /** 424 Failed Dependency */\n failedDependency(response?: string | object, details?: object): void;\n /** 425 Too Early */\n tooEarly(response?: string | object, details?: object): void;\n /** 426 Upgrade Required */\n upgradeRequired(response?: string | object, details?: object): void;\n /** 428 Precondition Required */\n preconditionRequired(response?: string | object, details?: object): void;\n /** 429 Too Many Requests */\n tooManyRequests(response?: string | object, details?: object): void;\n /** 431 Request Header Fields Too Large */\n requestHeaderFieldsTooLarge(response?: string | object, details?: object): void;\n /** 451 Unavailable For Legal Reasons */\n unavailableForLegalReasons(response?: string | object, details?: object): void;\n /** 500 Internal Server Error */\n internalServerError(response?: string | object, details?: object): void;\n /** 501 Not Implemented */\n notImplemented(response?: string | object, details?: object): void;\n /** 502 Bad Gateway */\n badGateway(response?: string | object, details?: object): void;\n /** 503 Service Unavailable */\n serviceUnavailable(response?: string | object, details?: object): void;\n /** 504 Gateway Timeout */\n gatewayTimeout(response?: string | object, details?: object): void;\n /** 505 Http Version Not Supported */\n httpVersionNotSupported(response?: string | object, details?: object): void;\n /** 506 Variant Also Negotiates */\n variantAlsoNegotiates(response?: string | object, details?: object): void;\n /** 507 Insufficient Storage */\n insufficientStorage(response?: string | object, details?: object): void;\n /** 508 Loop Detected */\n loopDetected(response?: string | object, details?: object): void;\n /** 509 Bandwidth Limit Exceeded */\n bandwidthLimitExceeded(response?: string | object, details?: object): void;\n /** 510 Not Extended */\n notExtended(response?: string | object, details?: object): void;\n /** 511 Network Authentication Required */\n networkAuthenticationRequired(response?: string | object, details?: object): void;\n}\n\nexport interface ContextDelegatedResponseSuccessMethods {\n /** 200 */\n send(response: unknown, status?: number): void;\n /** 201 */\n created(response?: unknown): void;\n /** 204 | 200 */\n deleted(response?: unknown): void;\n}\n"],"names":["errorMethodEntries","codeStr","statusName","Object","entries","STATUS_CODES","code","Number","methodName","camelCase"],"mappings":";;;AAYA;;;;AAIC,IACM,UAAUA,kBAAAA,GAAAA;IACf,KAAK,MAAM,CAACC,OAAAA,EAASC,UAAAA,CAAW,IAAIC,MAAAA,CAAOC,OAAO,CAACC,YAAAA,CAAAA,CAAe;AAChE,QAAA,MAAMC,OAAOC,MAAAA,CAAON,OAAAA,CAAAA;AAEpB,QAAA,IAAIC,UAAAA,IAAcI,IAAAA,IAAQ,GAAA,IAAOA,IAAAA,GAAO,GAAA,EAAK;YAC3C,MAAM;AACJA,gBAAAA,IAAAA;AACAJ,gBAAAA,UAAAA;AACAM,gBAAAA,UAAAA,EAAYC,SAAAA,CAAUP,UAAAA;AACxB,aAAA;AACF,QAAA;AACF,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"koa-methods.mjs","sources":["../../../src/services/server/koa-methods.ts"],"sourcesContent":["import { camelCase } from 'lodash/fp';\nimport { STATUS_CODES } from 'node:http';\n\nexport interface ErrorMethodEntry {\n /** HTTP status code (400–599). */\n code: number;\n /** Reason phrase from `node:http` `STATUS_CODES`, e.g. \"Not Found\". */\n statusName: string;\n /** camelCased helper name registered on the context, e.g. \"notFound\". */\n methodName: keyof ContextDelegatedResponseErrorMethods;\n}\n\n/**\n * Single source of truth for the generated error helpers: yields one entry per\n * 4xx/5xx `node:http` status. Both the runtime registration (`koa.ts`) and the\n * type/runtime sync test iterate this, so they cannot drift.\n */\nexport function* errorMethodEntries(): Generator<ErrorMethodEntry> {\n for (const [codeStr, statusName] of Object.entries(STATUS_CODES)) {\n const code = Number(codeStr);\n\n if (statusName && code >= 400 && code < 600) {\n yield {\n code,\n statusName,\n methodName: camelCase(statusName) as keyof ContextDelegatedResponseErrorMethods,\n };\n }\n }\n}\n\nexport interface ContextDelegatedResponseErrorMethods {\n /** 400 Bad Request */\n badRequest(response?: string | object, details?: object): void;\n /** 401 Unauthorized */\n unauthorized(response?: string | object, details?: object): void;\n /** 402 Payment Required */\n paymentRequired(response?: string | object, details?: object): void;\n /** 403 Forbidden */\n forbidden(response?: string | object, details?: object): void;\n /** 404 Not Found */\n notFound(response?: string | object, details?: object): void;\n /** 405 Method Not Allowed */\n methodNotAllowed(response?: string | object, details?: object): void;\n /** 406 Not Acceptable */\n notAcceptable(response?: string | object, details?: object): void;\n /** 407 Proxy Authentication Required */\n proxyAuthenticationRequired(response?: string | object, details?: object): void;\n /** 408 Request Timeout */\n requestTimeout(response?: string | object, details?: object): void;\n /** 409 Conflict */\n conflict(response?: string | object, details?: object): void;\n /** 410 Gone */\n gone(response?: string | object, details?: object): void;\n /** 411 Length Required */\n lengthRequired(response?: string | object, details?: object): void;\n /** 412 Precondition Failed */\n preconditionFailed(response?: string | object, details?: object): void;\n /** 413 Payload Too Large */\n payloadTooLarge(response?: string | object, details?: object): void;\n /** 414 Uri Too Long */\n uriTooLong(response?: string | object, details?: object): void;\n /** 415 Unsupported Media Type */\n unsupportedMediaType(response?: string | object, details?: object): void;\n /** 416 Range Not Satisfiable */\n rangeNotSatisfiable(response?: string | object, details?: object): void;\n /** 417 Expectation Failed */\n expectationFailed(response?: string | object, details?: object): void;\n /** 418 Im A Teapot */\n imATeapot(response?: string | object, details?: object): void;\n /** 421 Misdirected Request */\n misdirectedRequest(response?: string | object, details?: object): void;\n /** 422 Unprocessable Entity */\n unprocessableEntity(response?: string | object, details?: object): void;\n /** 423 Locked */\n locked(response?: string | object, details?: object): void;\n /** 424 Failed Dependency */\n failedDependency(response?: string | object, details?: object): void;\n /** 425 Too Early */\n tooEarly(response?: string | object, details?: object): void;\n /** 426 Upgrade Required */\n upgradeRequired(response?: string | object, details?: object): void;\n /** 428 Precondition Required */\n preconditionRequired(response?: string | object, details?: object): void;\n /** 429 Too Many Requests */\n tooManyRequests(response?: string | object, details?: object): void;\n /** 431 Request Header Fields Too Large */\n requestHeaderFieldsTooLarge(response?: string | object, details?: object): void;\n /** 451 Unavailable For Legal Reasons */\n unavailableForLegalReasons(response?: string | object, details?: object): void;\n /** 500 Internal Server Error */\n internalServerError(response?: string | object, details?: object): void;\n /** 501 Not Implemented */\n notImplemented(response?: string | object, details?: object): void;\n /** 502 Bad Gateway */\n badGateway(response?: string | object, details?: object): void;\n /** 503 Service Unavailable */\n serviceUnavailable(response?: string | object, details?: object): void;\n /** 504 Gateway Timeout */\n gatewayTimeout(response?: string | object, details?: object): void;\n /** 505 Http Version Not Supported */\n httpVersionNotSupported(response?: string | object, details?: object): void;\n /** 506 Variant Also Negotiates */\n variantAlsoNegotiates(response?: string | object, details?: object): void;\n /** 507 Insufficient Storage */\n insufficientStorage(response?: string | object, details?: object): void;\n /** 508 Loop Detected */\n loopDetected(response?: string | object, details?: object): void;\n /** 509 Bandwidth Limit Exceeded */\n bandwidthLimitExceeded(response?: string | object, details?: object): void;\n /** 510 Not Extended */\n notExtended(response?: string | object, details?: object): void;\n /** 511 Network Authentication Required */\n networkAuthenticationRequired(response?: string | object, details?: object): void;\n}\n\nexport interface ContextDelegatedResponseSuccessMethods {\n /** 200 */\n send(response: unknown, status?: number): void;\n /** 201 */\n created(response?: unknown): void;\n /** 204 | 200 */\n deleted(response?: unknown): void;\n}\n\n// Keep Koa's context and response types in sync with the helpers registered at runtime in `koa.ts`.\ndeclare module 'koa' {\n interface DefaultContextDelegatedResponse\n extends ContextDelegatedResponseErrorMethods,\n ContextDelegatedResponseSuccessMethods {}\n\n interface BaseResponse\n extends ContextDelegatedResponseErrorMethods,\n ContextDelegatedResponseSuccessMethods {}\n}\n"],"names":["errorMethodEntries","codeStr","statusName","Object","entries","STATUS_CODES","code","Number","methodName","camelCase"],"mappings":";;;AAYA;;;;AAIC,IACM,UAAUA,kBAAAA,GAAAA;IACf,KAAK,MAAM,CAACC,OAAAA,EAASC,UAAAA,CAAW,IAAIC,MAAAA,CAAOC,OAAO,CAACC,YAAAA,CAAAA,CAAe;AAChE,QAAA,MAAMC,OAAOC,MAAAA,CAAON,OAAAA,CAAAA;AAEpB,QAAA,IAAIC,UAAAA,IAAcI,IAAAA,IAAQ,GAAA,IAAOA,IAAAA,GAAO,GAAA,EAAK;YAC3C,MAAM;AACJA,gBAAAA,IAAAA;AACAJ,gBAAAA,UAAAA;AACAM,gBAAAA,UAAAA,EAAYC,SAAAA,CAAUP,UAAAA;AACxB,aAAA;AACF,QAAA;AACF,IAAA;AACF;;;;"}
@@ -1,6 +1,8 @@
1
1
  import Koa from 'koa';
2
- declare const createKoaApp: ({ proxy, keys }: {
2
+ declare const createKoaApp: ({ proxy, proxyIpHeader, maxIpsCount, keys, }: {
3
3
  proxy: boolean;
4
+ proxyIpHeader: string;
5
+ maxIpsCount: number;
4
6
  keys: string[];
5
7
  }) => Koa<Koa.DefaultState, Koa.DefaultContext>;
6
8
  export default createKoaApp;
@@ -1 +1 @@
1
- {"version":3,"file":"koa.d.ts","sourceRoot":"","sources":["../../../src/services/server/koa.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAC;AA8CtB,QAAA,MAAM,YAAY,GAAI,iBAAiB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,8CAOxE,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"koa.d.ts","sourceRoot":"","sources":["../../../src/services/server/koa.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAC;AA8CtB,QAAA,MAAM,YAAY,GAAI,8CAKnB;IACD,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,8CASA,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -45,10 +45,12 @@ const addCustomMethods = (app)=>{
45
45
  delegator.method('send').method('created').method('deleted');
46
46
  return app;
47
47
  };
48
- const createKoaApp = ({ proxy, keys })=>{
48
+ const createKoaApp = ({ proxy, proxyIpHeader = 'X-Forwarded-For', maxIpsCount = 0, keys })=>{
49
49
  const app = new Koa__default.default({
50
50
  proxy
51
51
  });
52
+ app.proxyIpHeader = proxyIpHeader;
53
+ app.maxIpsCount = maxIpsCount;
52
54
  app.keys = keys;
53
55
  addCustomMethods(app);
54
56
  return app;
@@ -1 +1 @@
1
- {"version":3,"file":"koa.js","sources":["../../../src/services/server/koa.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport Koa from 'koa';\nimport createError from 'http-errors';\nimport delegate from 'delegates';\nimport { formatHttpError } from '../errors';\nimport { errorMethodEntries } from './koa-methods';\n\nconst addCustomMethods = (app: Koa) => {\n const delegator = delegate(app.context, 'response');\n\n /* errors */\n for (const { code, statusName, methodName } of errorMethodEntries()) {\n app.response[methodName] = function responseCode(response = statusName, details = {}) {\n const httpError = createError(code, response, { details });\n const { status, body } = formatHttpError(httpError);\n this.status = status;\n this.body = body;\n };\n\n delegator.method(methodName);\n }\n\n /* send, created, deleted */\n app.response.send = function send(data, status = 200) {\n this.status = status;\n this.body = data;\n };\n\n app.response.created = function created(data) {\n this.status = 201;\n this.body = data;\n };\n\n app.response.deleted = function deleted(data) {\n if (isNil(data)) {\n this.status = 204;\n } else {\n this.status = 200;\n this.body = data;\n }\n };\n\n delegator.method('send').method('created').method('deleted');\n\n return app;\n};\n\nconst createKoaApp = ({ proxy, keys }: { proxy: boolean; keys: string[] }) => {\n const app = new Koa({ proxy });\n app.keys = keys;\n\n addCustomMethods(app);\n\n return app;\n};\n\nexport default createKoaApp;\n"],"names":["addCustomMethods","app","delegator","delegate","context","code","statusName","methodName","errorMethodEntries","response","responseCode","details","httpError","createError","status","body","formatHttpError","method","send","data","created","deleted","isNil","createKoaApp","proxy","keys","Koa"],"mappings":";;;;;;;;;;;;;;;AAOA,MAAMA,mBAAmB,CAACC,GAAAA,GAAAA;AACxB,IAAA,MAAMC,SAAAA,GAAYC,yBAAAA,CAASF,GAAAA,CAAIG,OAAO,EAAE,UAAA,CAAA;iBAGxC,KAAK,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,UAAU,EAAE,IAAIC,6BAAAA,EAAAA,CAAsB;QACnEP,GAAAA,CAAIQ,QAAQ,CAACF,UAAAA,CAAW,GAAG,SAASG,YAAAA,CAAaD,QAAAA,GAAWH,UAAU,EAAEK,OAAAA,GAAU,EAAE,EAAA;YAClF,MAAMC,SAAAA,GAAYC,4BAAAA,CAAYR,IAAAA,EAAMI,QAAAA,EAAU;AAAEE,gBAAAA;AAAQ,aAAA,CAAA;AACxD,YAAA,MAAM,EAAEG,MAAM,EAAEC,IAAI,EAAE,GAAGC,sBAAAA,CAAgBJ,SAAAA,CAAAA;YACzC,IAAI,CAACE,MAAM,GAAGA,MAAAA;YACd,IAAI,CAACC,IAAI,GAAGA,IAAAA;AACd,QAAA,CAAA;AAEAb,QAAAA,SAAAA,CAAUe,MAAM,CAACV,UAAAA,CAAAA;AACnB,IAAA;iCAGAN,GAAAA,CAAIQ,QAAQ,CAACS,IAAI,GAAG,SAASA,IAAAA,CAAKC,IAAI,EAAEL,MAAAA,GAAS,GAAG,EAAA;QAClD,IAAI,CAACA,MAAM,GAAGA,MAAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACW,OAAO,GAAG,SAASA,QAAQD,IAAI,EAAA;QAC1C,IAAI,CAACL,MAAM,GAAG,GAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACY,OAAO,GAAG,SAASA,QAAQF,IAAI,EAAA;AAC1C,QAAA,IAAIG,SAAMH,IAAAA,CAAAA,EAAO;YACf,IAAI,CAACL,MAAM,GAAG,GAAA;QAChB,CAAA,MAAO;YACL,IAAI,CAACA,MAAM,GAAG,GAAA;YACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,QAAA;AACF,IAAA,CAAA;AAEAjB,IAAAA,SAAAA,CAAUe,MAAM,CAAC,MAAA,CAAA,CAAQA,MAAM,CAAC,SAAA,CAAA,CAAWA,MAAM,CAAC,SAAA,CAAA;IAElD,OAAOhB,GAAAA;AACT,CAAA;AAEA,MAAMsB,eAAe,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAsC,GAAA;IACvE,MAAMxB,GAAAA,GAAM,IAAIyB,oBAAAA,CAAI;AAAEF,QAAAA;AAAM,KAAA,CAAA;AAC5BvB,IAAAA,GAAAA,CAAIwB,IAAI,GAAGA,IAAAA;IAEXzB,gBAAAA,CAAiBC,GAAAA,CAAAA;IAEjB,OAAOA,GAAAA;AACT;;;;"}
1
+ {"version":3,"file":"koa.js","sources":["../../../src/services/server/koa.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport Koa from 'koa';\nimport createError from 'http-errors';\nimport delegate from 'delegates';\nimport { formatHttpError } from '../errors';\nimport { errorMethodEntries } from './koa-methods';\n\nconst addCustomMethods = (app: Koa) => {\n const delegator = delegate(app.context, 'response');\n\n /* errors */\n for (const { code, statusName, methodName } of errorMethodEntries()) {\n app.response[methodName] = function responseCode(response = statusName, details = {}) {\n const httpError = createError(code, response, { details });\n const { status, body } = formatHttpError(httpError);\n this.status = status;\n this.body = body;\n };\n\n delegator.method(methodName);\n }\n\n /* send, created, deleted */\n app.response.send = function send(data, status = 200) {\n this.status = status;\n this.body = data;\n };\n\n app.response.created = function created(data) {\n this.status = 201;\n this.body = data;\n };\n\n app.response.deleted = function deleted(data) {\n if (isNil(data)) {\n this.status = 204;\n } else {\n this.status = 200;\n this.body = data;\n }\n };\n\n delegator.method('send').method('created').method('deleted');\n\n return app;\n};\n\nconst createKoaApp = ({\n proxy,\n proxyIpHeader = 'X-Forwarded-For',\n maxIpsCount = 0,\n keys,\n}: {\n proxy: boolean;\n proxyIpHeader: string;\n maxIpsCount: number;\n keys: string[];\n}) => {\n const app = new Koa({ proxy });\n app.proxyIpHeader = proxyIpHeader;\n app.maxIpsCount = maxIpsCount;\n app.keys = keys;\n\n addCustomMethods(app);\n\n return app;\n};\n\nexport default createKoaApp;\n"],"names":["addCustomMethods","app","delegator","delegate","context","code","statusName","methodName","errorMethodEntries","response","responseCode","details","httpError","createError","status","body","formatHttpError","method","send","data","created","deleted","isNil","createKoaApp","proxy","proxyIpHeader","maxIpsCount","keys","Koa"],"mappings":";;;;;;;;;;;;;;;AAOA,MAAMA,mBAAmB,CAACC,GAAAA,GAAAA;AACxB,IAAA,MAAMC,SAAAA,GAAYC,yBAAAA,CAASF,GAAAA,CAAIG,OAAO,EAAE,UAAA,CAAA;iBAGxC,KAAK,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,UAAU,EAAE,IAAIC,6BAAAA,EAAAA,CAAsB;QACnEP,GAAAA,CAAIQ,QAAQ,CAACF,UAAAA,CAAW,GAAG,SAASG,YAAAA,CAAaD,QAAAA,GAAWH,UAAU,EAAEK,OAAAA,GAAU,EAAE,EAAA;YAClF,MAAMC,SAAAA,GAAYC,4BAAAA,CAAYR,IAAAA,EAAMI,QAAAA,EAAU;AAAEE,gBAAAA;AAAQ,aAAA,CAAA;AACxD,YAAA,MAAM,EAAEG,MAAM,EAAEC,IAAI,EAAE,GAAGC,sBAAAA,CAAgBJ,SAAAA,CAAAA;YACzC,IAAI,CAACE,MAAM,GAAGA,MAAAA;YACd,IAAI,CAACC,IAAI,GAAGA,IAAAA;AACd,QAAA,CAAA;AAEAb,QAAAA,SAAAA,CAAUe,MAAM,CAACV,UAAAA,CAAAA;AACnB,IAAA;iCAGAN,GAAAA,CAAIQ,QAAQ,CAACS,IAAI,GAAG,SAASA,IAAAA,CAAKC,IAAI,EAAEL,MAAAA,GAAS,GAAG,EAAA;QAClD,IAAI,CAACA,MAAM,GAAGA,MAAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACW,OAAO,GAAG,SAASA,QAAQD,IAAI,EAAA;QAC1C,IAAI,CAACL,MAAM,GAAG,GAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACY,OAAO,GAAG,SAASA,QAAQF,IAAI,EAAA;AAC1C,QAAA,IAAIG,SAAMH,IAAAA,CAAAA,EAAO;YACf,IAAI,CAACL,MAAM,GAAG,GAAA;QAChB,CAAA,MAAO;YACL,IAAI,CAACA,MAAM,GAAG,GAAA;YACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,QAAA;AACF,IAAA,CAAA;AAEAjB,IAAAA,SAAAA,CAAUe,MAAM,CAAC,MAAA,CAAA,CAAQA,MAAM,CAAC,SAAA,CAAA,CAAWA,MAAM,CAAC,SAAA,CAAA;IAElD,OAAOhB,GAAAA;AACT,CAAA;AAEA,MAAMsB,YAAAA,GAAe,CAAC,EACpBC,KAAK,EACLC,aAAAA,GAAgB,iBAAiB,EACjCC,WAAAA,GAAc,CAAC,EACfC,IAAI,EAML,GAAA;IACC,MAAM1B,GAAAA,GAAM,IAAI2B,oBAAAA,CAAI;AAAEJ,QAAAA;AAAM,KAAA,CAAA;AAC5BvB,IAAAA,GAAAA,CAAIwB,aAAa,GAAGA,aAAAA;AACpBxB,IAAAA,GAAAA,CAAIyB,WAAW,GAAGA,WAAAA;AAClBzB,IAAAA,GAAAA,CAAI0B,IAAI,GAAGA,IAAAA;IAEX3B,gBAAAA,CAAiBC,GAAAA,CAAAA;IAEjB,OAAOA,GAAAA;AACT;;;;"}
@@ -37,10 +37,12 @@ const addCustomMethods = (app)=>{
37
37
  delegator.method('send').method('created').method('deleted');
38
38
  return app;
39
39
  };
40
- const createKoaApp = ({ proxy, keys })=>{
40
+ const createKoaApp = ({ proxy, proxyIpHeader = 'X-Forwarded-For', maxIpsCount = 0, keys })=>{
41
41
  const app = new Koa({
42
42
  proxy
43
43
  });
44
+ app.proxyIpHeader = proxyIpHeader;
45
+ app.maxIpsCount = maxIpsCount;
44
46
  app.keys = keys;
45
47
  addCustomMethods(app);
46
48
  return app;
@@ -1 +1 @@
1
- {"version":3,"file":"koa.mjs","sources":["../../../src/services/server/koa.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport Koa from 'koa';\nimport createError from 'http-errors';\nimport delegate from 'delegates';\nimport { formatHttpError } from '../errors';\nimport { errorMethodEntries } from './koa-methods';\n\nconst addCustomMethods = (app: Koa) => {\n const delegator = delegate(app.context, 'response');\n\n /* errors */\n for (const { code, statusName, methodName } of errorMethodEntries()) {\n app.response[methodName] = function responseCode(response = statusName, details = {}) {\n const httpError = createError(code, response, { details });\n const { status, body } = formatHttpError(httpError);\n this.status = status;\n this.body = body;\n };\n\n delegator.method(methodName);\n }\n\n /* send, created, deleted */\n app.response.send = function send(data, status = 200) {\n this.status = status;\n this.body = data;\n };\n\n app.response.created = function created(data) {\n this.status = 201;\n this.body = data;\n };\n\n app.response.deleted = function deleted(data) {\n if (isNil(data)) {\n this.status = 204;\n } else {\n this.status = 200;\n this.body = data;\n }\n };\n\n delegator.method('send').method('created').method('deleted');\n\n return app;\n};\n\nconst createKoaApp = ({ proxy, keys }: { proxy: boolean; keys: string[] }) => {\n const app = new Koa({ proxy });\n app.keys = keys;\n\n addCustomMethods(app);\n\n return app;\n};\n\nexport default createKoaApp;\n"],"names":["addCustomMethods","app","delegator","delegate","context","code","statusName","methodName","errorMethodEntries","response","responseCode","details","httpError","createError","status","body","formatHttpError","method","send","data","created","deleted","isNil","createKoaApp","proxy","keys","Koa"],"mappings":";;;;;;;AAOA,MAAMA,mBAAmB,CAACC,GAAAA,GAAAA;AACxB,IAAA,MAAMC,SAAAA,GAAYC,QAAAA,CAASF,GAAAA,CAAIG,OAAO,EAAE,UAAA,CAAA;iBAGxC,KAAK,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,UAAU,EAAE,IAAIC,kBAAAA,EAAAA,CAAsB;QACnEP,GAAAA,CAAIQ,QAAQ,CAACF,UAAAA,CAAW,GAAG,SAASG,YAAAA,CAAaD,QAAAA,GAAWH,UAAU,EAAEK,OAAAA,GAAU,EAAE,EAAA;YAClF,MAAMC,SAAAA,GAAYC,WAAAA,CAAYR,IAAAA,EAAMI,QAAAA,EAAU;AAAEE,gBAAAA;AAAQ,aAAA,CAAA;AACxD,YAAA,MAAM,EAAEG,MAAM,EAAEC,IAAI,EAAE,GAAGC,eAAAA,CAAgBJ,SAAAA,CAAAA;YACzC,IAAI,CAACE,MAAM,GAAGA,MAAAA;YACd,IAAI,CAACC,IAAI,GAAGA,IAAAA;AACd,QAAA,CAAA;AAEAb,QAAAA,SAAAA,CAAUe,MAAM,CAACV,UAAAA,CAAAA;AACnB,IAAA;iCAGAN,GAAAA,CAAIQ,QAAQ,CAACS,IAAI,GAAG,SAASA,IAAAA,CAAKC,IAAI,EAAEL,MAAAA,GAAS,GAAG,EAAA;QAClD,IAAI,CAACA,MAAM,GAAGA,MAAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACW,OAAO,GAAG,SAASA,QAAQD,IAAI,EAAA;QAC1C,IAAI,CAACL,MAAM,GAAG,GAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACY,OAAO,GAAG,SAASA,QAAQF,IAAI,EAAA;AAC1C,QAAA,IAAIG,MAAMH,IAAAA,CAAAA,EAAO;YACf,IAAI,CAACL,MAAM,GAAG,GAAA;QAChB,CAAA,MAAO;YACL,IAAI,CAACA,MAAM,GAAG,GAAA;YACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,QAAA;AACF,IAAA,CAAA;AAEAjB,IAAAA,SAAAA,CAAUe,MAAM,CAAC,MAAA,CAAA,CAAQA,MAAM,CAAC,SAAA,CAAA,CAAWA,MAAM,CAAC,SAAA,CAAA;IAElD,OAAOhB,GAAAA;AACT,CAAA;AAEA,MAAMsB,eAAe,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAsC,GAAA;IACvE,MAAMxB,GAAAA,GAAM,IAAIyB,GAAAA,CAAI;AAAEF,QAAAA;AAAM,KAAA,CAAA;AAC5BvB,IAAAA,GAAAA,CAAIwB,IAAI,GAAGA,IAAAA;IAEXzB,gBAAAA,CAAiBC,GAAAA,CAAAA;IAEjB,OAAOA,GAAAA;AACT;;;;"}
1
+ {"version":3,"file":"koa.mjs","sources":["../../../src/services/server/koa.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport Koa from 'koa';\nimport createError from 'http-errors';\nimport delegate from 'delegates';\nimport { formatHttpError } from '../errors';\nimport { errorMethodEntries } from './koa-methods';\n\nconst addCustomMethods = (app: Koa) => {\n const delegator = delegate(app.context, 'response');\n\n /* errors */\n for (const { code, statusName, methodName } of errorMethodEntries()) {\n app.response[methodName] = function responseCode(response = statusName, details = {}) {\n const httpError = createError(code, response, { details });\n const { status, body } = formatHttpError(httpError);\n this.status = status;\n this.body = body;\n };\n\n delegator.method(methodName);\n }\n\n /* send, created, deleted */\n app.response.send = function send(data, status = 200) {\n this.status = status;\n this.body = data;\n };\n\n app.response.created = function created(data) {\n this.status = 201;\n this.body = data;\n };\n\n app.response.deleted = function deleted(data) {\n if (isNil(data)) {\n this.status = 204;\n } else {\n this.status = 200;\n this.body = data;\n }\n };\n\n delegator.method('send').method('created').method('deleted');\n\n return app;\n};\n\nconst createKoaApp = ({\n proxy,\n proxyIpHeader = 'X-Forwarded-For',\n maxIpsCount = 0,\n keys,\n}: {\n proxy: boolean;\n proxyIpHeader: string;\n maxIpsCount: number;\n keys: string[];\n}) => {\n const app = new Koa({ proxy });\n app.proxyIpHeader = proxyIpHeader;\n app.maxIpsCount = maxIpsCount;\n app.keys = keys;\n\n addCustomMethods(app);\n\n return app;\n};\n\nexport default createKoaApp;\n"],"names":["addCustomMethods","app","delegator","delegate","context","code","statusName","methodName","errorMethodEntries","response","responseCode","details","httpError","createError","status","body","formatHttpError","method","send","data","created","deleted","isNil","createKoaApp","proxy","proxyIpHeader","maxIpsCount","keys","Koa"],"mappings":";;;;;;;AAOA,MAAMA,mBAAmB,CAACC,GAAAA,GAAAA;AACxB,IAAA,MAAMC,SAAAA,GAAYC,QAAAA,CAASF,GAAAA,CAAIG,OAAO,EAAE,UAAA,CAAA;iBAGxC,KAAK,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,UAAU,EAAE,IAAIC,kBAAAA,EAAAA,CAAsB;QACnEP,GAAAA,CAAIQ,QAAQ,CAACF,UAAAA,CAAW,GAAG,SAASG,YAAAA,CAAaD,QAAAA,GAAWH,UAAU,EAAEK,OAAAA,GAAU,EAAE,EAAA;YAClF,MAAMC,SAAAA,GAAYC,WAAAA,CAAYR,IAAAA,EAAMI,QAAAA,EAAU;AAAEE,gBAAAA;AAAQ,aAAA,CAAA;AACxD,YAAA,MAAM,EAAEG,MAAM,EAAEC,IAAI,EAAE,GAAGC,eAAAA,CAAgBJ,SAAAA,CAAAA;YACzC,IAAI,CAACE,MAAM,GAAGA,MAAAA;YACd,IAAI,CAACC,IAAI,GAAGA,IAAAA;AACd,QAAA,CAAA;AAEAb,QAAAA,SAAAA,CAAUe,MAAM,CAACV,UAAAA,CAAAA;AACnB,IAAA;iCAGAN,GAAAA,CAAIQ,QAAQ,CAACS,IAAI,GAAG,SAASA,IAAAA,CAAKC,IAAI,EAAEL,MAAAA,GAAS,GAAG,EAAA;QAClD,IAAI,CAACA,MAAM,GAAGA,MAAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACW,OAAO,GAAG,SAASA,QAAQD,IAAI,EAAA;QAC1C,IAAI,CAACL,MAAM,GAAG,GAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACY,OAAO,GAAG,SAASA,QAAQF,IAAI,EAAA;AAC1C,QAAA,IAAIG,MAAMH,IAAAA,CAAAA,EAAO;YACf,IAAI,CAACL,MAAM,GAAG,GAAA;QAChB,CAAA,MAAO;YACL,IAAI,CAACA,MAAM,GAAG,GAAA;YACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,QAAA;AACF,IAAA,CAAA;AAEAjB,IAAAA,SAAAA,CAAUe,MAAM,CAAC,MAAA,CAAA,CAAQA,MAAM,CAAC,SAAA,CAAA,CAAWA,MAAM,CAAC,SAAA,CAAA;IAElD,OAAOhB,GAAAA;AACT,CAAA;AAEA,MAAMsB,YAAAA,GAAe,CAAC,EACpBC,KAAK,EACLC,aAAAA,GAAgB,iBAAiB,EACjCC,WAAAA,GAAc,CAAC,EACfC,IAAI,EAML,GAAA;IACC,MAAM1B,GAAAA,GAAM,IAAI2B,GAAAA,CAAI;AAAEJ,QAAAA;AAAM,KAAA,CAAA;AAC5BvB,IAAAA,GAAAA,CAAIwB,aAAa,GAAGA,aAAAA;AACpBxB,IAAAA,GAAAA,CAAIyB,WAAW,GAAGA,WAAAA;AAClBzB,IAAAA,GAAAA,CAAI0B,IAAI,GAAGA,IAAAA;IAEX3B,gBAAAA,CAAiBC,GAAAA,CAAAA;IAEjB,OAAOA,GAAAA;AACT;;;;"}
@@ -90,7 +90,7 @@ const dummyMiddleware = (_, next)=>next();
90
90
  }
91
91
  try {
92
92
  return strapiUtils.importDefault(modulePath);
93
- } catch (err) {
93
+ } catch {
94
94
  throw new Error(`Could not load middleware "${modulePath}".`);
95
95
  }
96
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sources":["../../../src/services/server/middleware.ts"],"sourcesContent":["import path from 'path';\nimport { isArray } from 'lodash/fp';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst instantiateMiddleware = (\n middlewareFactory: Core.MiddlewareFactory,\n name: string,\n config: unknown,\n strapi: Core.Strapi\n) => {\n try {\n return middlewareFactory(config, { strapi });\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Middleware \"${name}\": ${e.message}`);\n }\n }\n};\n\nconst resolveRouteMiddlewares = (route: Core.Route, strapi: Core.Strapi) => {\n const middlewaresConfig = route?.config?.middlewares ?? [];\n\n if (!isArray(middlewaresConfig)) {\n throw new Error('Route middlewares config must be an array');\n }\n\n const middlewares = resolveMiddlewares(middlewaresConfig, strapi);\n\n return middlewares.map(({ handler }) => handler);\n};\n\nconst dummyMiddleware: Core.MiddlewareHandler = (_, next) => next();\n\n/**\n * Initialize every configured middlewares\n */\nconst resolveMiddlewares = (\n config: Array<Core.MiddlewareName | Core.MiddlewareConfig | Core.MiddlewareHandler>,\n strapi: Core.Strapi\n) => {\n const middlewares: {\n name: string | null;\n handler: Core.MiddlewareHandler;\n }[] = [];\n\n for (const item of config) {\n if (typeof item === 'function') {\n middlewares.push({\n name: null,\n handler: item,\n });\n\n continue;\n }\n\n if (typeof item === 'string') {\n const middlewareFactory = strapi.middleware(item);\n\n if (!middlewareFactory) {\n throw new Error(`Middleware ${item} not found.`);\n }\n\n middlewares.push({\n name: item,\n handler: instantiateMiddleware(middlewareFactory, item, {}, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (typeof item === 'object' && item !== null) {\n const { name, resolve, config = {} } = item;\n\n if (name) {\n const middlewareFactory = strapi.middleware(name);\n middlewares.push({\n name,\n handler:\n instantiateMiddleware(middlewareFactory, name, config, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (resolve) {\n const resolvedMiddlewareFactory = resolveCustomMiddleware(resolve, strapi);\n middlewares.push({\n name: resolve,\n handler:\n instantiateMiddleware(resolvedMiddlewareFactory, resolve, config, strapi) ??\n dummyMiddleware,\n });\n\n continue;\n }\n\n throw new Error('Invalid middleware configuration. Missing name or resolve properties.');\n }\n\n throw new Error(\n 'Middleware config must either be a string or an object {name?: string, resolve?: string, config: any}.'\n );\n }\n\n return middlewares;\n};\n\n/**\n * Resolve middleware from package name or path\n */\nconst resolveCustomMiddleware = (resolve: string, strapi: Core.Strapi) => {\n let modulePath;\n\n try {\n modulePath = require.resolve(resolve);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'MODULE_NOT_FOUND') {\n modulePath = path.resolve(strapi.dirs.dist.root, resolve);\n } else {\n throw error;\n }\n }\n\n try {\n return importDefault(modulePath);\n } catch (err) {\n throw new Error(`Could not load middleware \"${modulePath}\".`);\n }\n};\n\nexport { resolveRouteMiddlewares, resolveMiddlewares };\n"],"names":["instantiateMiddleware","middlewareFactory","name","config","strapi","e","Error","message","resolveRouteMiddlewares","route","middlewaresConfig","middlewares","isArray","resolveMiddlewares","map","handler","dummyMiddleware","_","next","item","push","middleware","resolve","resolvedMiddlewareFactory","resolveCustomMiddleware","modulePath","require","error","code","path","dirs","dist","root","importDefault","err"],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sources":["../../../src/services/server/middleware.ts"],"sourcesContent":["import path from 'path';\nimport { isArray } from 'lodash/fp';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst instantiateMiddleware = (\n middlewareFactory: Core.MiddlewareFactory,\n name: string,\n config: unknown,\n strapi: Core.Strapi\n) => {\n try {\n return middlewareFactory(config, { strapi });\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Middleware \"${name}\": ${e.message}`);\n }\n }\n};\n\nconst resolveRouteMiddlewares = (route: Core.Route, strapi: Core.Strapi) => {\n const middlewaresConfig = route?.config?.middlewares ?? [];\n\n if (!isArray(middlewaresConfig)) {\n throw new Error('Route middlewares config must be an array');\n }\n\n const middlewares = resolveMiddlewares(middlewaresConfig, strapi);\n\n return middlewares.map(({ handler }) => handler);\n};\n\nconst dummyMiddleware: Core.MiddlewareHandler = (_, next) => next();\n\n/**\n * Initialize every configured middlewares\n */\nconst resolveMiddlewares = (\n config: Array<Core.MiddlewareName | Core.MiddlewareConfig | Core.MiddlewareHandler>,\n strapi: Core.Strapi\n) => {\n const middlewares: {\n name: string | null;\n handler: Core.MiddlewareHandler;\n }[] = [];\n\n for (const item of config) {\n if (typeof item === 'function') {\n middlewares.push({\n name: null,\n handler: item,\n });\n\n continue;\n }\n\n if (typeof item === 'string') {\n const middlewareFactory = strapi.middleware(item);\n\n if (!middlewareFactory) {\n throw new Error(`Middleware ${item} not found.`);\n }\n\n middlewares.push({\n name: item,\n handler: instantiateMiddleware(middlewareFactory, item, {}, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (typeof item === 'object' && item !== null) {\n const { name, resolve, config = {} } = item;\n\n if (name) {\n const middlewareFactory = strapi.middleware(name);\n middlewares.push({\n name,\n handler:\n instantiateMiddleware(middlewareFactory, name, config, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (resolve) {\n const resolvedMiddlewareFactory = resolveCustomMiddleware(resolve, strapi);\n middlewares.push({\n name: resolve,\n handler:\n instantiateMiddleware(resolvedMiddlewareFactory, resolve, config, strapi) ??\n dummyMiddleware,\n });\n\n continue;\n }\n\n throw new Error('Invalid middleware configuration. Missing name or resolve properties.');\n }\n\n throw new Error(\n 'Middleware config must either be a string or an object {name?: string, resolve?: string, config: any}.'\n );\n }\n\n return middlewares;\n};\n\n/**\n * Resolve middleware from package name or path\n */\nconst resolveCustomMiddleware = (resolve: string, strapi: Core.Strapi) => {\n let modulePath;\n\n try {\n modulePath = require.resolve(resolve);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'MODULE_NOT_FOUND') {\n modulePath = path.resolve(strapi.dirs.dist.root, resolve);\n } else {\n throw error;\n }\n }\n\n try {\n return importDefault(modulePath);\n } catch {\n throw new Error(`Could not load middleware \"${modulePath}\".`);\n }\n};\n\nexport { resolveRouteMiddlewares, resolveMiddlewares };\n"],"names":["instantiateMiddleware","middlewareFactory","name","config","strapi","e","Error","message","resolveRouteMiddlewares","route","middlewaresConfig","middlewares","isArray","resolveMiddlewares","map","handler","dummyMiddleware","_","next","item","push","middleware","resolve","resolvedMiddlewareFactory","resolveCustomMiddleware","modulePath","require","error","code","path","dirs","dist","root","importDefault"],"mappings":"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"}
@@ -84,7 +84,7 @@ const dummyMiddleware = (_, next)=>next();
84
84
  }
85
85
  try {
86
86
  return importDefault(modulePath);
87
- } catch (err) {
87
+ } catch {
88
88
  throw new Error(`Could not load middleware "${modulePath}".`);
89
89
  }
90
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.mjs","sources":["../../../src/services/server/middleware.ts"],"sourcesContent":["import path from 'path';\nimport { isArray } from 'lodash/fp';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst instantiateMiddleware = (\n middlewareFactory: Core.MiddlewareFactory,\n name: string,\n config: unknown,\n strapi: Core.Strapi\n) => {\n try {\n return middlewareFactory(config, { strapi });\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Middleware \"${name}\": ${e.message}`);\n }\n }\n};\n\nconst resolveRouteMiddlewares = (route: Core.Route, strapi: Core.Strapi) => {\n const middlewaresConfig = route?.config?.middlewares ?? [];\n\n if (!isArray(middlewaresConfig)) {\n throw new Error('Route middlewares config must be an array');\n }\n\n const middlewares = resolveMiddlewares(middlewaresConfig, strapi);\n\n return middlewares.map(({ handler }) => handler);\n};\n\nconst dummyMiddleware: Core.MiddlewareHandler = (_, next) => next();\n\n/**\n * Initialize every configured middlewares\n */\nconst resolveMiddlewares = (\n config: Array<Core.MiddlewareName | Core.MiddlewareConfig | Core.MiddlewareHandler>,\n strapi: Core.Strapi\n) => {\n const middlewares: {\n name: string | null;\n handler: Core.MiddlewareHandler;\n }[] = [];\n\n for (const item of config) {\n if (typeof item === 'function') {\n middlewares.push({\n name: null,\n handler: item,\n });\n\n continue;\n }\n\n if (typeof item === 'string') {\n const middlewareFactory = strapi.middleware(item);\n\n if (!middlewareFactory) {\n throw new Error(`Middleware ${item} not found.`);\n }\n\n middlewares.push({\n name: item,\n handler: instantiateMiddleware(middlewareFactory, item, {}, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (typeof item === 'object' && item !== null) {\n const { name, resolve, config = {} } = item;\n\n if (name) {\n const middlewareFactory = strapi.middleware(name);\n middlewares.push({\n name,\n handler:\n instantiateMiddleware(middlewareFactory, name, config, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (resolve) {\n const resolvedMiddlewareFactory = resolveCustomMiddleware(resolve, strapi);\n middlewares.push({\n name: resolve,\n handler:\n instantiateMiddleware(resolvedMiddlewareFactory, resolve, config, strapi) ??\n dummyMiddleware,\n });\n\n continue;\n }\n\n throw new Error('Invalid middleware configuration. Missing name or resolve properties.');\n }\n\n throw new Error(\n 'Middleware config must either be a string or an object {name?: string, resolve?: string, config: any}.'\n );\n }\n\n return middlewares;\n};\n\n/**\n * Resolve middleware from package name or path\n */\nconst resolveCustomMiddleware = (resolve: string, strapi: Core.Strapi) => {\n let modulePath;\n\n try {\n modulePath = require.resolve(resolve);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'MODULE_NOT_FOUND') {\n modulePath = path.resolve(strapi.dirs.dist.root, resolve);\n } else {\n throw error;\n }\n }\n\n try {\n return importDefault(modulePath);\n } catch (err) {\n throw new Error(`Could not load middleware \"${modulePath}\".`);\n }\n};\n\nexport { resolveRouteMiddlewares, resolveMiddlewares };\n"],"names":["instantiateMiddleware","middlewareFactory","name","config","strapi","e","Error","message","resolveRouteMiddlewares","route","middlewaresConfig","middlewares","isArray","resolveMiddlewares","map","handler","dummyMiddleware","_","next","item","push","middleware","resolve","resolvedMiddlewareFactory","resolveCustomMiddleware","modulePath","require","error","code","path","dirs","dist","root","importDefault","err"],"mappings":"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"}
1
+ {"version":3,"file":"middleware.mjs","sources":["../../../src/services/server/middleware.ts"],"sourcesContent":["import path from 'path';\nimport { isArray } from 'lodash/fp';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst instantiateMiddleware = (\n middlewareFactory: Core.MiddlewareFactory,\n name: string,\n config: unknown,\n strapi: Core.Strapi\n) => {\n try {\n return middlewareFactory(config, { strapi });\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Middleware \"${name}\": ${e.message}`);\n }\n }\n};\n\nconst resolveRouteMiddlewares = (route: Core.Route, strapi: Core.Strapi) => {\n const middlewaresConfig = route?.config?.middlewares ?? [];\n\n if (!isArray(middlewaresConfig)) {\n throw new Error('Route middlewares config must be an array');\n }\n\n const middlewares = resolveMiddlewares(middlewaresConfig, strapi);\n\n return middlewares.map(({ handler }) => handler);\n};\n\nconst dummyMiddleware: Core.MiddlewareHandler = (_, next) => next();\n\n/**\n * Initialize every configured middlewares\n */\nconst resolveMiddlewares = (\n config: Array<Core.MiddlewareName | Core.MiddlewareConfig | Core.MiddlewareHandler>,\n strapi: Core.Strapi\n) => {\n const middlewares: {\n name: string | null;\n handler: Core.MiddlewareHandler;\n }[] = [];\n\n for (const item of config) {\n if (typeof item === 'function') {\n middlewares.push({\n name: null,\n handler: item,\n });\n\n continue;\n }\n\n if (typeof item === 'string') {\n const middlewareFactory = strapi.middleware(item);\n\n if (!middlewareFactory) {\n throw new Error(`Middleware ${item} not found.`);\n }\n\n middlewares.push({\n name: item,\n handler: instantiateMiddleware(middlewareFactory, item, {}, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (typeof item === 'object' && item !== null) {\n const { name, resolve, config = {} } = item;\n\n if (name) {\n const middlewareFactory = strapi.middleware(name);\n middlewares.push({\n name,\n handler:\n instantiateMiddleware(middlewareFactory, name, config, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (resolve) {\n const resolvedMiddlewareFactory = resolveCustomMiddleware(resolve, strapi);\n middlewares.push({\n name: resolve,\n handler:\n instantiateMiddleware(resolvedMiddlewareFactory, resolve, config, strapi) ??\n dummyMiddleware,\n });\n\n continue;\n }\n\n throw new Error('Invalid middleware configuration. Missing name or resolve properties.');\n }\n\n throw new Error(\n 'Middleware config must either be a string or an object {name?: string, resolve?: string, config: any}.'\n );\n }\n\n return middlewares;\n};\n\n/**\n * Resolve middleware from package name or path\n */\nconst resolveCustomMiddleware = (resolve: string, strapi: Core.Strapi) => {\n let modulePath;\n\n try {\n modulePath = require.resolve(resolve);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'MODULE_NOT_FOUND') {\n modulePath = path.resolve(strapi.dirs.dist.root, resolve);\n } else {\n throw error;\n }\n }\n\n try {\n return importDefault(modulePath);\n } catch {\n throw new Error(`Could not load middleware \"${modulePath}\".`);\n }\n};\n\nexport { resolveRouteMiddlewares, resolveMiddlewares };\n"],"names":["instantiateMiddleware","middlewareFactory","name","config","strapi","e","Error","message","resolveRouteMiddlewares","route","middlewaresConfig","middlewares","isArray","resolveMiddlewares","map","handler","dummyMiddleware","_","next","item","push","middleware","resolve","resolvedMiddlewareFactory","resolveCustomMiddleware","modulePath","require","error","code","path","dirs","dist","root","importDefault"],"mappings":"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"}
@@ -59,7 +59,7 @@ const middlewareConfigSchema = strapiUtils.yup.array().of(strapiUtils.yup.lazy((
59
59
  strict: true,
60
60
  abortEarly: false
61
61
  });
62
- } catch (error) {
62
+ } catch {
63
63
  throw new Error('Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.');
64
64
  }
65
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"register-middlewares.js","sources":["../../../src/services/server/register-middlewares.ts"],"sourcesContent":["import { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { resolveMiddlewares } from './middleware';\n\ntype MiddlewareConfig = (string | { name?: string; resolve?: string; config?: unknown })[];\n\nconst defaultConfig = [\n 'strapi::logger',\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::poweredBy',\n 'strapi::session',\n 'strapi::query',\n 'strapi::body',\n 'strapi::favicon',\n 'strapi::public',\n];\n\nconst requiredMiddlewares = [\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::query',\n 'strapi::body',\n 'strapi::public',\n 'strapi::favicon',\n];\n\nconst middlewareConfigSchema = yup.array().of(\n yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'object') {\n return yup\n .object({\n name: yup.string(),\n resolve: yup.string(),\n config: yup.mixed(),\n })\n .required()\n .noUnknown();\n }\n\n return yup.mixed().test(() => false);\n }) as any // FIXME: yup v1\n);\n\n/**\n * Register middlewares in router\n */\nconst registerApplicationMiddlewares = async (strapi: Core.Strapi) => {\n const middlewareConfig: MiddlewareConfig = strapi.config.get('middlewares', defaultConfig);\n\n await validateMiddlewareConfig(middlewareConfig);\n\n const middlewares = await resolveMiddlewares(middlewareConfig, strapi);\n\n checkRequiredMiddlewares(middlewares);\n\n // NOTE: exclude middlewares that return nothing.\n // this is used for middlewares that only extend the app only need to be added in certain conditions\n for (const middleware of middlewares) {\n strapi.server.use(middleware.handler);\n }\n};\n\n/**\n *\n * @param {MiddlewaresConfig} config\n */\nconst validateMiddlewareConfig = async (config: MiddlewareConfig) => {\n try {\n await middlewareConfigSchema.validate(config, { strict: true, abortEarly: false });\n } catch (error) {\n throw new Error(\n 'Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.'\n );\n }\n};\n\n/**\n * Check if some required middlewares are missing in configure middlewares\n * @param {Middlewares} middlewares\n */\nconst checkRequiredMiddlewares = (middlewares: { name: string | null }[]) => {\n const missingMiddlewares = requiredMiddlewares.filter((name) => {\n return middlewares.findIndex((mdl) => mdl.name === name) === -1;\n });\n\n if (missingMiddlewares.length > 0) {\n throw new Error(\n `Missing required middlewares in configuration. Add the following middlewares: \"${missingMiddlewares.join(\n ', '\n )}\".`\n );\n }\n};\n\nexport default registerApplicationMiddlewares;\n"],"names":["defaultConfig","requiredMiddlewares","middlewareConfigSchema","yup","array","of","lazy","value","string","required","object","name","resolve","config","mixed","noUnknown","test","registerApplicationMiddlewares","strapi","middlewareConfig","get","validateMiddlewareConfig","middlewares","resolveMiddlewares","checkRequiredMiddlewares","middleware","server","use","handler","validate","strict","abortEarly","error","Error","missingMiddlewares","filter","findIndex","mdl","length","join"],"mappings":";;;;;AAMA,MAAMA,aAAAA,GAAgB;AACpB,IAAA,gBAAA;AACA,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,mBAAA;AACA,IAAA,iBAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,iBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,mBAAAA,GAAsB;AAC1B,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,gBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,sBAAAA,GAAyBC,gBAAIC,KAAK,EAAA,CAAGC,EAAE,CAC3CF,eAAAA,CAAIG,IAAI,CAAC,CAACC,KAAAA,GAAAA;IACR,IAAI,OAAOA,UAAU,QAAA,EAAU;QAC7B,OAAOJ,eAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC9B,IAAA;IAEA,IAAI,OAAOF,UAAU,QAAA,EAAU;QAC7B,OAAOJ,eAAAA,CACJO,MAAM,CAAC;AACNC,YAAAA,IAAAA,EAAMR,gBAAIK,MAAM,EAAA;AAChBI,YAAAA,OAAAA,EAAST,gBAAIK,MAAM,EAAA;AACnBK,YAAAA,MAAAA,EAAQV,gBAAIW,KAAK;SACnB,CAAA,CACCL,QAAQ,GACRM,SAAS,EAAA;AACd,IAAA;AAEA,IAAA,OAAOZ,eAAAA,CAAIW,KAAK,EAAA,CAAGE,IAAI,CAAC,IAAM,KAAA,CAAA;AAChC,CAAA,CAAA,CAAA;AAGF;;IAGA,MAAMC,iCAAiC,OAAOC,MAAAA,GAAAA;AAC5C,IAAA,MAAMC,mBAAqCD,MAAAA,CAAOL,MAAM,CAACO,GAAG,CAAC,aAAA,EAAepB,aAAAA,CAAAA;AAE5E,IAAA,MAAMqB,wBAAAA,CAAyBF,gBAAAA,CAAAA;IAE/B,MAAMG,WAAAA,GAAc,MAAMC,6BAAAA,CAAmBJ,gBAAAA,EAAkBD,MAAAA,CAAAA;IAE/DM,wBAAAA,CAAyBF,WAAAA,CAAAA;;;IAIzB,KAAK,MAAMG,cAAcH,WAAAA,CAAa;AACpCJ,QAAAA,MAAAA,CAAOQ,MAAM,CAACC,GAAG,CAACF,WAAWG,OAAO,CAAA;AACtC,IAAA;AACF;AAEA;;;IAIA,MAAMP,2BAA2B,OAAOR,MAAAA,GAAAA;IACtC,IAAI;QACF,MAAMX,sBAAAA,CAAuB2B,QAAQ,CAAChB,MAAAA,EAAQ;YAAEiB,MAAAA,EAAQ,IAAA;YAAMC,UAAAA,EAAY;AAAM,SAAA,CAAA;AAClF,IAAA,CAAA,CAAE,OAAOC,KAAAA,EAAO;AACd,QAAA,MAAM,IAAIC,KAAAA,CACR,yGAAA,CAAA;AAEJ,IAAA;AACF,CAAA;AAEA;;;IAIA,MAAMT,2BAA2B,CAACF,WAAAA,GAAAA;AAChC,IAAA,MAAMY,kBAAAA,GAAqBjC,mBAAAA,CAAoBkC,MAAM,CAAC,CAACxB,IAAAA,GAAAA;QACrD,OAAOW,WAAAA,CAAYc,SAAS,CAAC,CAACC,MAAQA,GAAAA,CAAI1B,IAAI,KAAKA,IAAAA,CAAAA,KAAU,EAAC;AAChE,IAAA,CAAA,CAAA;IAEA,IAAIuB,kBAAAA,CAAmBI,MAAM,GAAG,CAAA,EAAG;QACjC,MAAM,IAAIL,KAAAA,CACR,CAAC,+EAA+E,EAAEC,mBAAmBK,IAAI,CACvG,IAAA,CAAA,CACA,EAAE,CAAC,CAAA;AAET,IAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"register-middlewares.js","sources":["../../../src/services/server/register-middlewares.ts"],"sourcesContent":["import { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { resolveMiddlewares } from './middleware';\n\ntype MiddlewareConfig = (string | { name?: string; resolve?: string; config?: unknown })[];\n\nconst defaultConfig = [\n 'strapi::logger',\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::poweredBy',\n 'strapi::session',\n 'strapi::query',\n 'strapi::body',\n 'strapi::favicon',\n 'strapi::public',\n];\n\nconst requiredMiddlewares = [\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::query',\n 'strapi::body',\n 'strapi::public',\n 'strapi::favicon',\n];\n\nconst middlewareConfigSchema = yup.array().of(\n yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'object') {\n return yup\n .object({\n name: yup.string(),\n resolve: yup.string(),\n config: yup.mixed(),\n })\n .required()\n .noUnknown();\n }\n\n return yup.mixed().test(() => false);\n }) as any // FIXME: yup v1\n);\n\n/**\n * Register middlewares in router\n */\nconst registerApplicationMiddlewares = async (strapi: Core.Strapi) => {\n const middlewareConfig: MiddlewareConfig = strapi.config.get('middlewares', defaultConfig);\n\n await validateMiddlewareConfig(middlewareConfig);\n\n const middlewares = await resolveMiddlewares(middlewareConfig, strapi);\n\n checkRequiredMiddlewares(middlewares);\n\n // NOTE: exclude middlewares that return nothing.\n // this is used for middlewares that only extend the app only need to be added in certain conditions\n for (const middleware of middlewares) {\n strapi.server.use(middleware.handler);\n }\n};\n\n/**\n *\n * @param {MiddlewaresConfig} config\n */\nconst validateMiddlewareConfig = async (config: MiddlewareConfig) => {\n try {\n await middlewareConfigSchema.validate(config, { strict: true, abortEarly: false });\n } catch {\n throw new Error(\n 'Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.'\n );\n }\n};\n\n/**\n * Check if some required middlewares are missing in configure middlewares\n * @param {Middlewares} middlewares\n */\nconst checkRequiredMiddlewares = (middlewares: { name: string | null }[]) => {\n const missingMiddlewares = requiredMiddlewares.filter((name) => {\n return middlewares.findIndex((mdl) => mdl.name === name) === -1;\n });\n\n if (missingMiddlewares.length > 0) {\n throw new Error(\n `Missing required middlewares in configuration. Add the following middlewares: \"${missingMiddlewares.join(\n ', '\n )}\".`\n );\n }\n};\n\nexport default registerApplicationMiddlewares;\n"],"names":["defaultConfig","requiredMiddlewares","middlewareConfigSchema","yup","array","of","lazy","value","string","required","object","name","resolve","config","mixed","noUnknown","test","registerApplicationMiddlewares","strapi","middlewareConfig","get","validateMiddlewareConfig","middlewares","resolveMiddlewares","checkRequiredMiddlewares","middleware","server","use","handler","validate","strict","abortEarly","Error","missingMiddlewares","filter","findIndex","mdl","length","join"],"mappings":";;;;;AAMA,MAAMA,aAAAA,GAAgB;AACpB,IAAA,gBAAA;AACA,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,mBAAA;AACA,IAAA,iBAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,iBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,mBAAAA,GAAsB;AAC1B,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,gBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,sBAAAA,GAAyBC,gBAAIC,KAAK,EAAA,CAAGC,EAAE,CAC3CF,eAAAA,CAAIG,IAAI,CAAC,CAACC,KAAAA,GAAAA;IACR,IAAI,OAAOA,UAAU,QAAA,EAAU;QAC7B,OAAOJ,eAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC9B,IAAA;IAEA,IAAI,OAAOF,UAAU,QAAA,EAAU;QAC7B,OAAOJ,eAAAA,CACJO,MAAM,CAAC;AACNC,YAAAA,IAAAA,EAAMR,gBAAIK,MAAM,EAAA;AAChBI,YAAAA,OAAAA,EAAST,gBAAIK,MAAM,EAAA;AACnBK,YAAAA,MAAAA,EAAQV,gBAAIW,KAAK;SACnB,CAAA,CACCL,QAAQ,GACRM,SAAS,EAAA;AACd,IAAA;AAEA,IAAA,OAAOZ,eAAAA,CAAIW,KAAK,EAAA,CAAGE,IAAI,CAAC,IAAM,KAAA,CAAA;AAChC,CAAA,CAAA,CAAA;AAGF;;IAGA,MAAMC,iCAAiC,OAAOC,MAAAA,GAAAA;AAC5C,IAAA,MAAMC,mBAAqCD,MAAAA,CAAOL,MAAM,CAACO,GAAG,CAAC,aAAA,EAAepB,aAAAA,CAAAA;AAE5E,IAAA,MAAMqB,wBAAAA,CAAyBF,gBAAAA,CAAAA;IAE/B,MAAMG,WAAAA,GAAc,MAAMC,6BAAAA,CAAmBJ,gBAAAA,EAAkBD,MAAAA,CAAAA;IAE/DM,wBAAAA,CAAyBF,WAAAA,CAAAA;;;IAIzB,KAAK,MAAMG,cAAcH,WAAAA,CAAa;AACpCJ,QAAAA,MAAAA,CAAOQ,MAAM,CAACC,GAAG,CAACF,WAAWG,OAAO,CAAA;AACtC,IAAA;AACF;AAEA;;;IAIA,MAAMP,2BAA2B,OAAOR,MAAAA,GAAAA;IACtC,IAAI;QACF,MAAMX,sBAAAA,CAAuB2B,QAAQ,CAAChB,MAAAA,EAAQ;YAAEiB,MAAAA,EAAQ,IAAA;YAAMC,UAAAA,EAAY;AAAM,SAAA,CAAA;AAClF,IAAA,CAAA,CAAE,OAAM;AACN,QAAA,MAAM,IAAIC,KAAAA,CACR,yGAAA,CAAA;AAEJ,IAAA;AACF,CAAA;AAEA;;;IAIA,MAAMR,2BAA2B,CAACF,WAAAA,GAAAA;AAChC,IAAA,MAAMW,kBAAAA,GAAqBhC,mBAAAA,CAAoBiC,MAAM,CAAC,CAACvB,IAAAA,GAAAA;QACrD,OAAOW,WAAAA,CAAYa,SAAS,CAAC,CAACC,MAAQA,GAAAA,CAAIzB,IAAI,KAAKA,IAAAA,CAAAA,KAAU,EAAC;AAChE,IAAA,CAAA,CAAA;IAEA,IAAIsB,kBAAAA,CAAmBI,MAAM,GAAG,CAAA,EAAG;QACjC,MAAM,IAAIL,KAAAA,CACR,CAAC,+EAA+E,EAAEC,mBAAmBK,IAAI,CACvG,IAAA,CAAA,CACA,EAAE,CAAC,CAAA;AAET,IAAA;AACF,CAAA;;;;"}
@@ -57,7 +57,7 @@ const middlewareConfigSchema = yup.array().of(yup.lazy((value)=>{
57
57
  strict: true,
58
58
  abortEarly: false
59
59
  });
60
- } catch (error) {
60
+ } catch {
61
61
  throw new Error('Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.');
62
62
  }
63
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"register-middlewares.mjs","sources":["../../../src/services/server/register-middlewares.ts"],"sourcesContent":["import { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { resolveMiddlewares } from './middleware';\n\ntype MiddlewareConfig = (string | { name?: string; resolve?: string; config?: unknown })[];\n\nconst defaultConfig = [\n 'strapi::logger',\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::poweredBy',\n 'strapi::session',\n 'strapi::query',\n 'strapi::body',\n 'strapi::favicon',\n 'strapi::public',\n];\n\nconst requiredMiddlewares = [\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::query',\n 'strapi::body',\n 'strapi::public',\n 'strapi::favicon',\n];\n\nconst middlewareConfigSchema = yup.array().of(\n yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'object') {\n return yup\n .object({\n name: yup.string(),\n resolve: yup.string(),\n config: yup.mixed(),\n })\n .required()\n .noUnknown();\n }\n\n return yup.mixed().test(() => false);\n }) as any // FIXME: yup v1\n);\n\n/**\n * Register middlewares in router\n */\nconst registerApplicationMiddlewares = async (strapi: Core.Strapi) => {\n const middlewareConfig: MiddlewareConfig = strapi.config.get('middlewares', defaultConfig);\n\n await validateMiddlewareConfig(middlewareConfig);\n\n const middlewares = await resolveMiddlewares(middlewareConfig, strapi);\n\n checkRequiredMiddlewares(middlewares);\n\n // NOTE: exclude middlewares that return nothing.\n // this is used for middlewares that only extend the app only need to be added in certain conditions\n for (const middleware of middlewares) {\n strapi.server.use(middleware.handler);\n }\n};\n\n/**\n *\n * @param {MiddlewaresConfig} config\n */\nconst validateMiddlewareConfig = async (config: MiddlewareConfig) => {\n try {\n await middlewareConfigSchema.validate(config, { strict: true, abortEarly: false });\n } catch (error) {\n throw new Error(\n 'Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.'\n );\n }\n};\n\n/**\n * Check if some required middlewares are missing in configure middlewares\n * @param {Middlewares} middlewares\n */\nconst checkRequiredMiddlewares = (middlewares: { name: string | null }[]) => {\n const missingMiddlewares = requiredMiddlewares.filter((name) => {\n return middlewares.findIndex((mdl) => mdl.name === name) === -1;\n });\n\n if (missingMiddlewares.length > 0) {\n throw new Error(\n `Missing required middlewares in configuration. Add the following middlewares: \"${missingMiddlewares.join(\n ', '\n )}\".`\n );\n }\n};\n\nexport default registerApplicationMiddlewares;\n"],"names":["defaultConfig","requiredMiddlewares","middlewareConfigSchema","yup","array","of","lazy","value","string","required","object","name","resolve","config","mixed","noUnknown","test","registerApplicationMiddlewares","strapi","middlewareConfig","get","validateMiddlewareConfig","middlewares","resolveMiddlewares","checkRequiredMiddlewares","middleware","server","use","handler","validate","strict","abortEarly","error","Error","missingMiddlewares","filter","findIndex","mdl","length","join"],"mappings":";;;AAMA,MAAMA,aAAAA,GAAgB;AACpB,IAAA,gBAAA;AACA,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,mBAAA;AACA,IAAA,iBAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,iBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,mBAAAA,GAAsB;AAC1B,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,gBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,sBAAAA,GAAyBC,IAAIC,KAAK,EAAA,CAAGC,EAAE,CAC3CF,GAAAA,CAAIG,IAAI,CAAC,CAACC,KAAAA,GAAAA;IACR,IAAI,OAAOA,UAAU,QAAA,EAAU;QAC7B,OAAOJ,GAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC9B,IAAA;IAEA,IAAI,OAAOF,UAAU,QAAA,EAAU;QAC7B,OAAOJ,GAAAA,CACJO,MAAM,CAAC;AACNC,YAAAA,IAAAA,EAAMR,IAAIK,MAAM,EAAA;AAChBI,YAAAA,OAAAA,EAAST,IAAIK,MAAM,EAAA;AACnBK,YAAAA,MAAAA,EAAQV,IAAIW,KAAK;SACnB,CAAA,CACCL,QAAQ,GACRM,SAAS,EAAA;AACd,IAAA;AAEA,IAAA,OAAOZ,GAAAA,CAAIW,KAAK,EAAA,CAAGE,IAAI,CAAC,IAAM,KAAA,CAAA;AAChC,CAAA,CAAA,CAAA;AAGF;;IAGA,MAAMC,iCAAiC,OAAOC,MAAAA,GAAAA;AAC5C,IAAA,MAAMC,mBAAqCD,MAAAA,CAAOL,MAAM,CAACO,GAAG,CAAC,aAAA,EAAepB,aAAAA,CAAAA;AAE5E,IAAA,MAAMqB,wBAAAA,CAAyBF,gBAAAA,CAAAA;IAE/B,MAAMG,WAAAA,GAAc,MAAMC,kBAAAA,CAAmBJ,gBAAAA,EAAkBD,MAAAA,CAAAA;IAE/DM,wBAAAA,CAAyBF,WAAAA,CAAAA;;;IAIzB,KAAK,MAAMG,cAAcH,WAAAA,CAAa;AACpCJ,QAAAA,MAAAA,CAAOQ,MAAM,CAACC,GAAG,CAACF,WAAWG,OAAO,CAAA;AACtC,IAAA;AACF;AAEA;;;IAIA,MAAMP,2BAA2B,OAAOR,MAAAA,GAAAA;IACtC,IAAI;QACF,MAAMX,sBAAAA,CAAuB2B,QAAQ,CAAChB,MAAAA,EAAQ;YAAEiB,MAAAA,EAAQ,IAAA;YAAMC,UAAAA,EAAY;AAAM,SAAA,CAAA;AAClF,IAAA,CAAA,CAAE,OAAOC,KAAAA,EAAO;AACd,QAAA,MAAM,IAAIC,KAAAA,CACR,yGAAA,CAAA;AAEJ,IAAA;AACF,CAAA;AAEA;;;IAIA,MAAMT,2BAA2B,CAACF,WAAAA,GAAAA;AAChC,IAAA,MAAMY,kBAAAA,GAAqBjC,mBAAAA,CAAoBkC,MAAM,CAAC,CAACxB,IAAAA,GAAAA;QACrD,OAAOW,WAAAA,CAAYc,SAAS,CAAC,CAACC,MAAQA,GAAAA,CAAI1B,IAAI,KAAKA,IAAAA,CAAAA,KAAU,EAAC;AAChE,IAAA,CAAA,CAAA;IAEA,IAAIuB,kBAAAA,CAAmBI,MAAM,GAAG,CAAA,EAAG;QACjC,MAAM,IAAIL,KAAAA,CACR,CAAC,+EAA+E,EAAEC,mBAAmBK,IAAI,CACvG,IAAA,CAAA,CACA,EAAE,CAAC,CAAA;AAET,IAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"register-middlewares.mjs","sources":["../../../src/services/server/register-middlewares.ts"],"sourcesContent":["import { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { resolveMiddlewares } from './middleware';\n\ntype MiddlewareConfig = (string | { name?: string; resolve?: string; config?: unknown })[];\n\nconst defaultConfig = [\n 'strapi::logger',\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::poweredBy',\n 'strapi::session',\n 'strapi::query',\n 'strapi::body',\n 'strapi::favicon',\n 'strapi::public',\n];\n\nconst requiredMiddlewares = [\n 'strapi::errors',\n 'strapi::security',\n 'strapi::cors',\n 'strapi::query',\n 'strapi::body',\n 'strapi::public',\n 'strapi::favicon',\n];\n\nconst middlewareConfigSchema = yup.array().of(\n yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'object') {\n return yup\n .object({\n name: yup.string(),\n resolve: yup.string(),\n config: yup.mixed(),\n })\n .required()\n .noUnknown();\n }\n\n return yup.mixed().test(() => false);\n }) as any // FIXME: yup v1\n);\n\n/**\n * Register middlewares in router\n */\nconst registerApplicationMiddlewares = async (strapi: Core.Strapi) => {\n const middlewareConfig: MiddlewareConfig = strapi.config.get('middlewares', defaultConfig);\n\n await validateMiddlewareConfig(middlewareConfig);\n\n const middlewares = await resolveMiddlewares(middlewareConfig, strapi);\n\n checkRequiredMiddlewares(middlewares);\n\n // NOTE: exclude middlewares that return nothing.\n // this is used for middlewares that only extend the app only need to be added in certain conditions\n for (const middleware of middlewares) {\n strapi.server.use(middleware.handler);\n }\n};\n\n/**\n *\n * @param {MiddlewaresConfig} config\n */\nconst validateMiddlewareConfig = async (config: MiddlewareConfig) => {\n try {\n await middlewareConfigSchema.validate(config, { strict: true, abortEarly: false });\n } catch {\n throw new Error(\n 'Invalid middleware configuration. Expected Array<string|{name?: string, resolve?: string, config: any}.'\n );\n }\n};\n\n/**\n * Check if some required middlewares are missing in configure middlewares\n * @param {Middlewares} middlewares\n */\nconst checkRequiredMiddlewares = (middlewares: { name: string | null }[]) => {\n const missingMiddlewares = requiredMiddlewares.filter((name) => {\n return middlewares.findIndex((mdl) => mdl.name === name) === -1;\n });\n\n if (missingMiddlewares.length > 0) {\n throw new Error(\n `Missing required middlewares in configuration. Add the following middlewares: \"${missingMiddlewares.join(\n ', '\n )}\".`\n );\n }\n};\n\nexport default registerApplicationMiddlewares;\n"],"names":["defaultConfig","requiredMiddlewares","middlewareConfigSchema","yup","array","of","lazy","value","string","required","object","name","resolve","config","mixed","noUnknown","test","registerApplicationMiddlewares","strapi","middlewareConfig","get","validateMiddlewareConfig","middlewares","resolveMiddlewares","checkRequiredMiddlewares","middleware","server","use","handler","validate","strict","abortEarly","Error","missingMiddlewares","filter","findIndex","mdl","length","join"],"mappings":";;;AAMA,MAAMA,aAAAA,GAAgB;AACpB,IAAA,gBAAA;AACA,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,mBAAA;AACA,IAAA,iBAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,iBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,mBAAAA,GAAsB;AAC1B,IAAA,gBAAA;AACA,IAAA,kBAAA;AACA,IAAA,cAAA;AACA,IAAA,eAAA;AACA,IAAA,cAAA;AACA,IAAA,gBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,sBAAAA,GAAyBC,IAAIC,KAAK,EAAA,CAAGC,EAAE,CAC3CF,GAAAA,CAAIG,IAAI,CAAC,CAACC,KAAAA,GAAAA;IACR,IAAI,OAAOA,UAAU,QAAA,EAAU;QAC7B,OAAOJ,GAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC9B,IAAA;IAEA,IAAI,OAAOF,UAAU,QAAA,EAAU;QAC7B,OAAOJ,GAAAA,CACJO,MAAM,CAAC;AACNC,YAAAA,IAAAA,EAAMR,IAAIK,MAAM,EAAA;AAChBI,YAAAA,OAAAA,EAAST,IAAIK,MAAM,EAAA;AACnBK,YAAAA,MAAAA,EAAQV,IAAIW,KAAK;SACnB,CAAA,CACCL,QAAQ,GACRM,SAAS,EAAA;AACd,IAAA;AAEA,IAAA,OAAOZ,GAAAA,CAAIW,KAAK,EAAA,CAAGE,IAAI,CAAC,IAAM,KAAA,CAAA;AAChC,CAAA,CAAA,CAAA;AAGF;;IAGA,MAAMC,iCAAiC,OAAOC,MAAAA,GAAAA;AAC5C,IAAA,MAAMC,mBAAqCD,MAAAA,CAAOL,MAAM,CAACO,GAAG,CAAC,aAAA,EAAepB,aAAAA,CAAAA;AAE5E,IAAA,MAAMqB,wBAAAA,CAAyBF,gBAAAA,CAAAA;IAE/B,MAAMG,WAAAA,GAAc,MAAMC,kBAAAA,CAAmBJ,gBAAAA,EAAkBD,MAAAA,CAAAA;IAE/DM,wBAAAA,CAAyBF,WAAAA,CAAAA;;;IAIzB,KAAK,MAAMG,cAAcH,WAAAA,CAAa;AACpCJ,QAAAA,MAAAA,CAAOQ,MAAM,CAACC,GAAG,CAACF,WAAWG,OAAO,CAAA;AACtC,IAAA;AACF;AAEA;;;IAIA,MAAMP,2BAA2B,OAAOR,MAAAA,GAAAA;IACtC,IAAI;QACF,MAAMX,sBAAAA,CAAuB2B,QAAQ,CAAChB,MAAAA,EAAQ;YAAEiB,MAAAA,EAAQ,IAAA;YAAMC,UAAAA,EAAY;AAAM,SAAA,CAAA;AAClF,IAAA,CAAA,CAAE,OAAM;AACN,QAAA,MAAM,IAAIC,KAAAA,CACR,yGAAA,CAAA;AAEJ,IAAA;AACF,CAAA;AAEA;;;IAIA,MAAMR,2BAA2B,CAACF,WAAAA,GAAAA;AAChC,IAAA,MAAMW,kBAAAA,GAAqBhC,mBAAAA,CAAoBiC,MAAM,CAAC,CAACvB,IAAAA,GAAAA;QACrD,OAAOW,WAAAA,CAAYa,SAAS,CAAC,CAACC,MAAQA,GAAAA,CAAIzB,IAAI,KAAKA,IAAAA,CAAAA,KAAU,EAAC;AAChE,IAAA,CAAA,CAAA;IAEA,IAAIsB,kBAAAA,CAAmBI,MAAM,GAAG,CAAA,EAAG;QACjC,MAAM,IAAIL,KAAAA,CACR,CAAC,+EAA+E,EAAEC,mBAAmBK,IAAI,CACvG,IAAA,CAAA,CACA,EAAE,CAAC,CAAA;AAET,IAAA;AACF,CAAA;;;;"}