@veecode-platform/backstage-plugin-kong-service-manager-backend-dynamic 1.0.1
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.
- package/README.md +179 -0
- package/dist/.config-schema.json +1 -0
- package/dist/configSchema.json +1 -0
- package/dist/index.cjs.js +13 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/plugin.cjs.js +36 -0
- package/dist/plugin.cjs.js.map +1 -0
- package/dist/router.cjs.js +313 -0
- package/dist/router.cjs.js.map +1 -0
- package/dist/services/KongServiceManagerService.cjs.js +241 -0
- package/dist/services/KongServiceManagerService.cjs.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/README.md +61 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/annotations.cjs.js +13 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/annotations.cjs.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/annotations.esm.js +9 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/annotations.esm.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/index.cjs.js +26 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/index.cjs.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/index.d.ts +228 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/index.esm.js +4 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/index.esm.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/permissions.cjs.js +81 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/permissions.cjs.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/permissions.esm.js +67 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/permissions.esm.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/types.cjs.js +16 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/types.cjs.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/types.esm.js +14 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/dist/types.esm.js.map +1 -0
- package/node_modules/@veecode-platform/backstage-plugin-kong-service-manager-common/package.json +48 -0
- package/node_modules/accepts/HISTORY.md +243 -0
- package/node_modules/accepts/LICENSE +23 -0
- package/node_modules/accepts/README.md +140 -0
- package/node_modules/accepts/index.js +238 -0
- package/node_modules/accepts/package.json +47 -0
- package/node_modules/array-flatten/LICENSE +21 -0
- package/node_modules/array-flatten/README.md +43 -0
- package/node_modules/array-flatten/array-flatten.js +64 -0
- package/node_modules/array-flatten/package.json +39 -0
- package/node_modules/async-function/.eslintrc +16 -0
- package/node_modules/async-function/.github/FUNDING.yml +12 -0
- package/node_modules/async-function/.nycrc +9 -0
- package/node_modules/async-function/CHANGELOG.md +16 -0
- package/node_modules/async-function/LICENSE +21 -0
- package/node_modules/async-function/README.md +51 -0
- package/node_modules/async-function/index.d.mts +3 -0
- package/node_modules/async-function/index.d.ts +13 -0
- package/node_modules/async-function/index.js +8 -0
- package/node_modules/async-function/index.mjs +4 -0
- package/node_modules/async-function/legacy.js +18 -0
- package/node_modules/async-function/package.json +86 -0
- package/node_modules/async-function/require.mjs +5 -0
- package/node_modules/async-function/test/index.js +40 -0
- package/node_modules/async-function/tsconfig.json +9 -0
- package/node_modules/async-generator-function/.eslintrc +26 -0
- package/node_modules/async-generator-function/.github/FUNDING.yml +12 -0
- package/node_modules/async-generator-function/.nycrc +9 -0
- package/node_modules/async-generator-function/CHANGELOG.md +15 -0
- package/node_modules/async-generator-function/LICENSE +21 -0
- package/node_modules/async-generator-function/README.md +52 -0
- package/node_modules/async-generator-function/index.d.mts +3 -0
- package/node_modules/async-generator-function/index.d.ts +22 -0
- package/node_modules/async-generator-function/index.js +8 -0
- package/node_modules/async-generator-function/index.mjs +4 -0
- package/node_modules/async-generator-function/legacy.js +18 -0
- package/node_modules/async-generator-function/package.json +87 -0
- package/node_modules/async-generator-function/require.mjs +5 -0
- package/node_modules/async-generator-function/test/index.js +40 -0
- package/node_modules/async-generator-function/tsconfig.json +9 -0
- package/node_modules/body-parser/HISTORY.md +672 -0
- package/node_modules/body-parser/LICENSE +23 -0
- package/node_modules/body-parser/README.md +476 -0
- package/node_modules/body-parser/SECURITY.md +25 -0
- package/node_modules/body-parser/index.js +156 -0
- package/node_modules/body-parser/lib/read.js +205 -0
- package/node_modules/body-parser/lib/types/json.js +247 -0
- package/node_modules/body-parser/lib/types/raw.js +101 -0
- package/node_modules/body-parser/lib/types/text.js +121 -0
- package/node_modules/body-parser/lib/types/urlencoded.js +307 -0
- package/node_modules/body-parser/package.json +56 -0
- package/node_modules/bytes/History.md +97 -0
- package/node_modules/bytes/LICENSE +23 -0
- package/node_modules/bytes/Readme.md +152 -0
- package/node_modules/bytes/index.js +170 -0
- package/node_modules/bytes/package.json +42 -0
- package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
- package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
- package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- package/node_modules/call-bind-apply-helpers/LICENSE +21 -0
- package/node_modules/call-bind-apply-helpers/README.md +62 -0
- package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
- package/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
- package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- package/node_modules/call-bound/.eslintrc +13 -0
- package/node_modules/call-bound/.github/FUNDING.yml +12 -0
- package/node_modules/call-bound/.nycrc +9 -0
- package/node_modules/call-bound/CHANGELOG.md +42 -0
- package/node_modules/call-bound/LICENSE +21 -0
- package/node_modules/call-bound/README.md +53 -0
- package/node_modules/call-bound/index.d.ts +94 -0
- package/node_modules/call-bound/index.js +19 -0
- package/node_modules/call-bound/package.json +99 -0
- package/node_modules/call-bound/test/index.js +61 -0
- package/node_modules/call-bound/tsconfig.json +10 -0
- package/node_modules/content-disposition/HISTORY.md +60 -0
- package/node_modules/content-disposition/LICENSE +22 -0
- package/node_modules/content-disposition/README.md +142 -0
- package/node_modules/content-disposition/index.js +458 -0
- package/node_modules/content-disposition/package.json +44 -0
- package/node_modules/content-type/HISTORY.md +29 -0
- package/node_modules/content-type/LICENSE +22 -0
- package/node_modules/content-type/README.md +94 -0
- package/node_modules/content-type/index.js +225 -0
- package/node_modules/content-type/package.json +42 -0
- package/node_modules/cookie/LICENSE +24 -0
- package/node_modules/cookie/README.md +317 -0
- package/node_modules/cookie/SECURITY.md +25 -0
- package/node_modules/cookie/index.js +334 -0
- package/node_modules/cookie/package.json +44 -0
- package/node_modules/cookie-signature/.npmignore +4 -0
- package/node_modules/cookie-signature/History.md +38 -0
- package/node_modules/cookie-signature/Readme.md +42 -0
- package/node_modules/cookie-signature/index.js +51 -0
- package/node_modules/cookie-signature/package.json +18 -0
- package/node_modules/debug/.coveralls.yml +1 -0
- package/node_modules/debug/.eslintrc +11 -0
- package/node_modules/debug/.npmignore +9 -0
- package/node_modules/debug/.travis.yml +14 -0
- package/node_modules/debug/CHANGELOG.md +362 -0
- package/node_modules/debug/LICENSE +19 -0
- package/node_modules/debug/Makefile +50 -0
- package/node_modules/debug/README.md +312 -0
- package/node_modules/debug/component.json +19 -0
- package/node_modules/debug/karma.conf.js +70 -0
- package/node_modules/debug/node.js +1 -0
- package/node_modules/debug/package.json +49 -0
- package/node_modules/debug/src/browser.js +185 -0
- package/node_modules/debug/src/debug.js +202 -0
- package/node_modules/debug/src/index.js +10 -0
- package/node_modules/debug/src/inspector-log.js +15 -0
- package/node_modules/debug/src/node.js +248 -0
- package/node_modules/depd/History.md +103 -0
- package/node_modules/depd/LICENSE +22 -0
- package/node_modules/depd/Readme.md +280 -0
- package/node_modules/depd/index.js +538 -0
- package/node_modules/depd/lib/browser/index.js +77 -0
- package/node_modules/depd/package.json +45 -0
- package/node_modules/destroy/LICENSE +23 -0
- package/node_modules/destroy/README.md +63 -0
- package/node_modules/destroy/index.js +209 -0
- package/node_modules/destroy/package.json +48 -0
- package/node_modules/dunder-proto/.eslintrc +5 -0
- package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
- package/node_modules/dunder-proto/.nycrc +13 -0
- package/node_modules/dunder-proto/CHANGELOG.md +24 -0
- package/node_modules/dunder-proto/LICENSE +21 -0
- package/node_modules/dunder-proto/README.md +54 -0
- package/node_modules/dunder-proto/get.d.ts +5 -0
- package/node_modules/dunder-proto/get.js +30 -0
- package/node_modules/dunder-proto/package.json +76 -0
- package/node_modules/dunder-proto/set.d.ts +5 -0
- package/node_modules/dunder-proto/set.js +35 -0
- package/node_modules/dunder-proto/test/get.js +34 -0
- package/node_modules/dunder-proto/test/index.js +4 -0
- package/node_modules/dunder-proto/test/set.js +50 -0
- package/node_modules/dunder-proto/tsconfig.json +9 -0
- package/node_modules/ee-first/LICENSE +22 -0
- package/node_modules/ee-first/README.md +80 -0
- package/node_modules/ee-first/index.js +95 -0
- package/node_modules/ee-first/package.json +29 -0
- package/node_modules/encodeurl/LICENSE +22 -0
- package/node_modules/encodeurl/README.md +109 -0
- package/node_modules/encodeurl/index.js +60 -0
- package/node_modules/encodeurl/package.json +40 -0
- package/node_modules/es-define-property/.eslintrc +13 -0
- package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
- package/node_modules/es-define-property/.nycrc +9 -0
- package/node_modules/es-define-property/CHANGELOG.md +29 -0
- package/node_modules/es-define-property/LICENSE +21 -0
- package/node_modules/es-define-property/README.md +49 -0
- package/node_modules/es-define-property/index.d.ts +3 -0
- package/node_modules/es-define-property/index.js +14 -0
- package/node_modules/es-define-property/package.json +81 -0
- package/node_modules/es-define-property/test/index.js +56 -0
- package/node_modules/es-define-property/tsconfig.json +10 -0
- package/node_modules/es-errors/.eslintrc +5 -0
- package/node_modules/es-errors/.github/FUNDING.yml +12 -0
- package/node_modules/es-errors/CHANGELOG.md +40 -0
- package/node_modules/es-errors/LICENSE +21 -0
- package/node_modules/es-errors/README.md +55 -0
- package/node_modules/es-errors/eval.d.ts +3 -0
- package/node_modules/es-errors/eval.js +4 -0
- package/node_modules/es-errors/index.d.ts +3 -0
- package/node_modules/es-errors/index.js +4 -0
- package/node_modules/es-errors/package.json +80 -0
- package/node_modules/es-errors/range.d.ts +3 -0
- package/node_modules/es-errors/range.js +4 -0
- package/node_modules/es-errors/ref.d.ts +3 -0
- package/node_modules/es-errors/ref.js +4 -0
- package/node_modules/es-errors/syntax.d.ts +3 -0
- package/node_modules/es-errors/syntax.js +4 -0
- package/node_modules/es-errors/test/index.js +19 -0
- package/node_modules/es-errors/tsconfig.json +49 -0
- package/node_modules/es-errors/type.d.ts +3 -0
- package/node_modules/es-errors/type.js +4 -0
- package/node_modules/es-errors/uri.d.ts +3 -0
- package/node_modules/es-errors/uri.js +4 -0
- package/node_modules/es-object-atoms/.eslintrc +16 -0
- package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
- package/node_modules/es-object-atoms/CHANGELOG.md +37 -0
- package/node_modules/es-object-atoms/LICENSE +21 -0
- package/node_modules/es-object-atoms/README.md +63 -0
- package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
- package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
- package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
- package/node_modules/es-object-atoms/ToObject.js +10 -0
- package/node_modules/es-object-atoms/index.d.ts +3 -0
- package/node_modules/es-object-atoms/index.js +4 -0
- package/node_modules/es-object-atoms/isObject.d.ts +3 -0
- package/node_modules/es-object-atoms/isObject.js +6 -0
- package/node_modules/es-object-atoms/package.json +80 -0
- package/node_modules/es-object-atoms/test/index.js +38 -0
- package/node_modules/es-object-atoms/tsconfig.json +6 -0
- package/node_modules/escape-html/LICENSE +24 -0
- package/node_modules/escape-html/Readme.md +43 -0
- package/node_modules/escape-html/index.js +78 -0
- package/node_modules/escape-html/package.json +24 -0
- package/node_modules/etag/HISTORY.md +83 -0
- package/node_modules/etag/LICENSE +22 -0
- package/node_modules/etag/README.md +159 -0
- package/node_modules/etag/index.js +131 -0
- package/node_modules/etag/package.json +47 -0
- package/node_modules/express/History.md +3656 -0
- package/node_modules/express/LICENSE +24 -0
- package/node_modules/express/Readme.md +260 -0
- package/node_modules/express/index.js +11 -0
- package/node_modules/express/lib/application.js +661 -0
- package/node_modules/express/lib/express.js +116 -0
- package/node_modules/express/lib/middleware/init.js +43 -0
- package/node_modules/express/lib/middleware/query.js +47 -0
- package/node_modules/express/lib/request.js +525 -0
- package/node_modules/express/lib/response.js +1179 -0
- package/node_modules/express/lib/router/index.js +673 -0
- package/node_modules/express/lib/router/layer.js +181 -0
- package/node_modules/express/lib/router/route.js +230 -0
- package/node_modules/express/lib/utils.js +303 -0
- package/node_modules/express/lib/view.js +182 -0
- package/node_modules/express/package.json +102 -0
- package/node_modules/express-promise-router/.changeset/README.md +8 -0
- package/node_modules/express-promise-router/.changeset/config.json +9 -0
- package/node_modules/express-promise-router/.eslintrc.json +13 -0
- package/node_modules/express-promise-router/.github/renovate.json5 +14 -0
- package/node_modules/express-promise-router/.github/workflows/test.yml +24 -0
- package/node_modules/express-promise-router/.prettierrc.yaml +2 -0
- package/node_modules/express-promise-router/CHANGELOG.md +82 -0
- package/node_modules/express-promise-router/LICENSE +21 -0
- package/node_modules/express-promise-router/README.md +182 -0
- package/node_modules/express-promise-router/index.d.ts +7 -0
- package/node_modules/express-promise-router/lib/express-promise-router.js +131 -0
- package/node_modules/express-promise-router/package.json +86 -0
- package/node_modules/express-promise-router/test/.eslintrc +8 -0
- package/node_modules/express-promise-router/test/babel.test.js +35 -0
- package/node_modules/express-promise-router/test/commonjs.test.js +35 -0
- package/node_modules/express-promise-router/test/express-promise-router.nested-route.test.js +18 -0
- package/node_modules/express-promise-router/test/express-promise-router.route.test.js +353 -0
- package/node_modules/express-promise-router/test/express-promise-router.test.js +401 -0
- package/node_modules/express-promise-router/test/test-resources/.eslintrc +6 -0
- package/node_modules/express-promise-router/test/test-resources/babel-base-case.js +12 -0
- package/node_modules/express-promise-router/test/test-resources/commonjs-base-case.js +12 -0
- package/node_modules/express-promise-router/test/test-resources/typescript-base-case.ts +13 -0
- package/node_modules/express-promise-router/test/tracing.test.js +36 -0
- package/node_modules/express-promise-router/test/typescript.test.js +53 -0
- package/node_modules/express-promise-router/test/util/http-utils.js +14 -0
- package/node_modules/express-promise-router/test/util/launch-utils.js +40 -0
- package/node_modules/finalhandler/HISTORY.md +210 -0
- package/node_modules/finalhandler/LICENSE +22 -0
- package/node_modules/finalhandler/README.md +147 -0
- package/node_modules/finalhandler/SECURITY.md +25 -0
- package/node_modules/finalhandler/index.js +341 -0
- package/node_modules/finalhandler/package.json +47 -0
- package/node_modules/forwarded/HISTORY.md +21 -0
- package/node_modules/forwarded/LICENSE +22 -0
- package/node_modules/forwarded/README.md +57 -0
- package/node_modules/forwarded/index.js +90 -0
- package/node_modules/forwarded/package.json +45 -0
- package/node_modules/fresh/HISTORY.md +70 -0
- package/node_modules/fresh/LICENSE +23 -0
- package/node_modules/fresh/README.md +119 -0
- package/node_modules/fresh/index.js +137 -0
- package/node_modules/fresh/package.json +46 -0
- package/node_modules/function-bind/.eslintrc +21 -0
- package/node_modules/function-bind/.github/FUNDING.yml +12 -0
- package/node_modules/function-bind/.github/SECURITY.md +3 -0
- package/node_modules/function-bind/.nycrc +13 -0
- package/node_modules/function-bind/CHANGELOG.md +136 -0
- package/node_modules/function-bind/LICENSE +20 -0
- package/node_modules/function-bind/README.md +46 -0
- package/node_modules/function-bind/implementation.js +84 -0
- package/node_modules/function-bind/index.js +5 -0
- package/node_modules/function-bind/package.json +87 -0
- package/node_modules/function-bind/test/.eslintrc +9 -0
- package/node_modules/function-bind/test/index.js +252 -0
- package/node_modules/generator-function/.eslintrc +16 -0
- package/node_modules/generator-function/.github/FUNDING.yml +12 -0
- package/node_modules/generator-function/.nycrc +9 -0
- package/node_modules/generator-function/CHANGELOG.md +27 -0
- package/node_modules/generator-function/LICENSE.md +7 -0
- package/node_modules/generator-function/README.md +51 -0
- package/node_modules/generator-function/index.d.mts +3 -0
- package/node_modules/generator-function/index.d.ts +3 -0
- package/node_modules/generator-function/index.js +8 -0
- package/node_modules/generator-function/index.mjs +4 -0
- package/node_modules/generator-function/legacy.js +18 -0
- package/node_modules/generator-function/package.json +88 -0
- package/node_modules/generator-function/require.mjs +5 -0
- package/node_modules/generator-function/test/index.js +42 -0
- package/node_modules/generator-function/tsconfig.json +9 -0
- package/node_modules/get-intrinsic/.eslintrc +42 -0
- package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
- package/node_modules/get-intrinsic/.nycrc +9 -0
- package/node_modules/get-intrinsic/CHANGELOG.md +193 -0
- package/node_modules/get-intrinsic/LICENSE +21 -0
- package/node_modules/get-intrinsic/README.md +71 -0
- package/node_modules/get-intrinsic/index.js +373 -0
- package/node_modules/get-intrinsic/package.json +100 -0
- package/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
- package/node_modules/get-proto/.eslintrc +10 -0
- package/node_modules/get-proto/.github/FUNDING.yml +12 -0
- package/node_modules/get-proto/.nycrc +9 -0
- package/node_modules/get-proto/CHANGELOG.md +21 -0
- package/node_modules/get-proto/LICENSE +21 -0
- package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
- package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/node_modules/get-proto/README.md +50 -0
- package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
- package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/node_modules/get-proto/index.d.ts +5 -0
- package/node_modules/get-proto/index.js +27 -0
- package/node_modules/get-proto/package.json +81 -0
- package/node_modules/get-proto/test/index.js +68 -0
- package/node_modules/get-proto/tsconfig.json +9 -0
- package/node_modules/gopd/.eslintrc +16 -0
- package/node_modules/gopd/.github/FUNDING.yml +12 -0
- package/node_modules/gopd/CHANGELOG.md +45 -0
- package/node_modules/gopd/LICENSE +21 -0
- package/node_modules/gopd/README.md +40 -0
- package/node_modules/gopd/gOPD.d.ts +1 -0
- package/node_modules/gopd/gOPD.js +4 -0
- package/node_modules/gopd/index.d.ts +5 -0
- package/node_modules/gopd/index.js +15 -0
- package/node_modules/gopd/package.json +77 -0
- package/node_modules/gopd/test/index.js +36 -0
- package/node_modules/gopd/tsconfig.json +9 -0
- package/node_modules/has-symbols/.eslintrc +11 -0
- package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
- package/node_modules/has-symbols/.nycrc +9 -0
- package/node_modules/has-symbols/CHANGELOG.md +91 -0
- package/node_modules/has-symbols/LICENSE +21 -0
- package/node_modules/has-symbols/README.md +46 -0
- package/node_modules/has-symbols/index.d.ts +3 -0
- package/node_modules/has-symbols/index.js +14 -0
- package/node_modules/has-symbols/package.json +111 -0
- package/node_modules/has-symbols/shams.d.ts +3 -0
- package/node_modules/has-symbols/shams.js +45 -0
- package/node_modules/has-symbols/test/index.js +22 -0
- package/node_modules/has-symbols/test/shams/core-js.js +29 -0
- package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
- package/node_modules/has-symbols/test/tests.js +58 -0
- package/node_modules/has-symbols/tsconfig.json +10 -0
- package/node_modules/hasown/.eslintrc +5 -0
- package/node_modules/hasown/.github/FUNDING.yml +12 -0
- package/node_modules/hasown/.nycrc +13 -0
- package/node_modules/hasown/CHANGELOG.md +40 -0
- package/node_modules/hasown/LICENSE +21 -0
- package/node_modules/hasown/README.md +40 -0
- package/node_modules/hasown/index.d.ts +3 -0
- package/node_modules/hasown/index.js +8 -0
- package/node_modules/hasown/package.json +92 -0
- package/node_modules/hasown/tsconfig.json +6 -0
- package/node_modules/http-errors/HISTORY.md +180 -0
- package/node_modules/http-errors/LICENSE +23 -0
- package/node_modules/http-errors/README.md +169 -0
- package/node_modules/http-errors/index.js +289 -0
- package/node_modules/http-errors/package.json +50 -0
- package/node_modules/iconv-lite/Changelog.md +162 -0
- package/node_modules/iconv-lite/LICENSE +21 -0
- package/node_modules/iconv-lite/README.md +156 -0
- package/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
- package/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
- package/node_modules/iconv-lite/encodings/index.js +22 -0
- package/node_modules/iconv-lite/encodings/internal.js +188 -0
- package/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
- package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
- package/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
- package/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
- package/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
- package/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
- package/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
- package/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
- package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
- package/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
- package/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
- package/node_modules/iconv-lite/encodings/utf16.js +177 -0
- package/node_modules/iconv-lite/encodings/utf7.js +290 -0
- package/node_modules/iconv-lite/lib/bom-handling.js +52 -0
- package/node_modules/iconv-lite/lib/extend-node.js +217 -0
- package/node_modules/iconv-lite/lib/index.d.ts +24 -0
- package/node_modules/iconv-lite/lib/index.js +153 -0
- package/node_modules/iconv-lite/lib/streams.js +121 -0
- package/node_modules/iconv-lite/package.json +46 -0
- package/node_modules/inherits/LICENSE +16 -0
- package/node_modules/inherits/README.md +42 -0
- package/node_modules/inherits/inherits.js +9 -0
- package/node_modules/inherits/inherits_browser.js +27 -0
- package/node_modules/inherits/package.json +29 -0
- package/node_modules/ipaddr.js/LICENSE +19 -0
- package/node_modules/ipaddr.js/README.md +233 -0
- package/node_modules/ipaddr.js/ipaddr.min.js +1 -0
- package/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
- package/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
- package/node_modules/ipaddr.js/package.json +35 -0
- package/node_modules/is-promise/LICENSE +19 -0
- package/node_modules/is-promise/index.d.ts +2 -0
- package/node_modules/is-promise/index.js +6 -0
- package/node_modules/is-promise/index.mjs +3 -0
- package/node_modules/is-promise/package.json +30 -0
- package/node_modules/is-promise/readme.md +33 -0
- package/node_modules/lodash.flattendeep/LICENSE +47 -0
- package/node_modules/lodash.flattendeep/README.md +18 -0
- package/node_modules/lodash.flattendeep/index.js +350 -0
- package/node_modules/lodash.flattendeep/package.json +17 -0
- package/node_modules/math-intrinsics/.eslintrc +16 -0
- package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
- package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- package/node_modules/math-intrinsics/LICENSE +21 -0
- package/node_modules/math-intrinsics/README.md +50 -0
- package/node_modules/math-intrinsics/abs.d.ts +1 -0
- package/node_modules/math-intrinsics/abs.js +4 -0
- package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
- package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
- package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
- package/node_modules/math-intrinsics/floor.d.ts +1 -0
- package/node_modules/math-intrinsics/floor.js +4 -0
- package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
- package/node_modules/math-intrinsics/isFinite.js +12 -0
- package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
- package/node_modules/math-intrinsics/isInteger.js +16 -0
- package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
- package/node_modules/math-intrinsics/isNaN.js +6 -0
- package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
- package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
- package/node_modules/math-intrinsics/max.d.ts +1 -0
- package/node_modules/math-intrinsics/max.js +4 -0
- package/node_modules/math-intrinsics/min.d.ts +1 -0
- package/node_modules/math-intrinsics/min.js +4 -0
- package/node_modules/math-intrinsics/mod.d.ts +3 -0
- package/node_modules/math-intrinsics/mod.js +9 -0
- package/node_modules/math-intrinsics/package.json +86 -0
- package/node_modules/math-intrinsics/pow.d.ts +1 -0
- package/node_modules/math-intrinsics/pow.js +4 -0
- package/node_modules/math-intrinsics/round.d.ts +1 -0
- package/node_modules/math-intrinsics/round.js +4 -0
- package/node_modules/math-intrinsics/sign.d.ts +3 -0
- package/node_modules/math-intrinsics/sign.js +11 -0
- package/node_modules/math-intrinsics/test/index.js +192 -0
- package/node_modules/math-intrinsics/tsconfig.json +3 -0
- package/node_modules/media-typer/HISTORY.md +22 -0
- package/node_modules/media-typer/LICENSE +22 -0
- package/node_modules/media-typer/README.md +81 -0
- package/node_modules/media-typer/index.js +270 -0
- package/node_modules/media-typer/package.json +26 -0
- package/node_modules/merge-descriptors/HISTORY.md +21 -0
- package/node_modules/merge-descriptors/LICENSE +23 -0
- package/node_modules/merge-descriptors/README.md +49 -0
- package/node_modules/merge-descriptors/index.js +60 -0
- package/node_modules/merge-descriptors/package.json +39 -0
- package/node_modules/methods/HISTORY.md +29 -0
- package/node_modules/methods/LICENSE +24 -0
- package/node_modules/methods/README.md +51 -0
- package/node_modules/methods/index.js +69 -0
- package/node_modules/methods/package.json +36 -0
- package/node_modules/mime/.npmignore +0 -0
- package/node_modules/mime/CHANGELOG.md +164 -0
- package/node_modules/mime/LICENSE +21 -0
- package/node_modules/mime/README.md +90 -0
- package/node_modules/mime/cli.js +8 -0
- package/node_modules/mime/mime.js +108 -0
- package/node_modules/mime/package.json +44 -0
- package/node_modules/mime/src/build.js +53 -0
- package/node_modules/mime/src/test.js +60 -0
- package/node_modules/mime/types.json +1 -0
- package/node_modules/mime-db/HISTORY.md +507 -0
- package/node_modules/mime-db/LICENSE +23 -0
- package/node_modules/mime-db/README.md +100 -0
- package/node_modules/mime-db/db.json +8519 -0
- package/node_modules/mime-db/index.js +12 -0
- package/node_modules/mime-db/package.json +60 -0
- package/node_modules/mime-types/HISTORY.md +397 -0
- package/node_modules/mime-types/LICENSE +23 -0
- package/node_modules/mime-types/README.md +113 -0
- package/node_modules/mime-types/index.js +188 -0
- package/node_modules/mime-types/package.json +44 -0
- package/node_modules/ms/index.js +152 -0
- package/node_modules/ms/license.md +21 -0
- package/node_modules/ms/package.json +37 -0
- package/node_modules/ms/readme.md +51 -0
- package/node_modules/negotiator/HISTORY.md +108 -0
- package/node_modules/negotiator/LICENSE +24 -0
- package/node_modules/negotiator/README.md +203 -0
- package/node_modules/negotiator/index.js +82 -0
- package/node_modules/negotiator/lib/charset.js +169 -0
- package/node_modules/negotiator/lib/encoding.js +184 -0
- package/node_modules/negotiator/lib/language.js +179 -0
- package/node_modules/negotiator/lib/mediaType.js +294 -0
- package/node_modules/negotiator/package.json +42 -0
- package/node_modules/object-inspect/.eslintrc +53 -0
- package/node_modules/object-inspect/.github/FUNDING.yml +12 -0
- package/node_modules/object-inspect/.nycrc +13 -0
- package/node_modules/object-inspect/CHANGELOG.md +424 -0
- package/node_modules/object-inspect/LICENSE +21 -0
- package/node_modules/object-inspect/example/all.js +23 -0
- package/node_modules/object-inspect/example/circular.js +6 -0
- package/node_modules/object-inspect/example/fn.js +5 -0
- package/node_modules/object-inspect/example/inspect.js +10 -0
- package/node_modules/object-inspect/index.js +544 -0
- package/node_modules/object-inspect/package-support.json +20 -0
- package/node_modules/object-inspect/package.json +105 -0
- package/node_modules/object-inspect/readme.markdown +84 -0
- package/node_modules/object-inspect/test/bigint.js +58 -0
- package/node_modules/object-inspect/test/browser/dom.js +15 -0
- package/node_modules/object-inspect/test/circular.js +16 -0
- package/node_modules/object-inspect/test/deep.js +12 -0
- package/node_modules/object-inspect/test/element.js +53 -0
- package/node_modules/object-inspect/test/err.js +48 -0
- package/node_modules/object-inspect/test/fakes.js +29 -0
- package/node_modules/object-inspect/test/fn.js +76 -0
- package/node_modules/object-inspect/test/global.js +17 -0
- package/node_modules/object-inspect/test/has.js +15 -0
- package/node_modules/object-inspect/test/holes.js +15 -0
- package/node_modules/object-inspect/test/indent-option.js +271 -0
- package/node_modules/object-inspect/test/inspect.js +139 -0
- package/node_modules/object-inspect/test/lowbyte.js +12 -0
- package/node_modules/object-inspect/test/number.js +58 -0
- package/node_modules/object-inspect/test/quoteStyle.js +26 -0
- package/node_modules/object-inspect/test/toStringTag.js +40 -0
- package/node_modules/object-inspect/test/undef.js +12 -0
- package/node_modules/object-inspect/test/values.js +261 -0
- package/node_modules/object-inspect/test-core-js.js +26 -0
- package/node_modules/object-inspect/util.inspect.js +1 -0
- package/node_modules/on-finished/HISTORY.md +98 -0
- package/node_modules/on-finished/LICENSE +23 -0
- package/node_modules/on-finished/README.md +162 -0
- package/node_modules/on-finished/index.js +234 -0
- package/node_modules/on-finished/package.json +39 -0
- package/node_modules/parseurl/HISTORY.md +58 -0
- package/node_modules/parseurl/LICENSE +24 -0
- package/node_modules/parseurl/README.md +133 -0
- package/node_modules/parseurl/index.js +158 -0
- package/node_modules/parseurl/package.json +40 -0
- package/node_modules/path-to-regexp/LICENSE +21 -0
- package/node_modules/path-to-regexp/Readme.md +35 -0
- package/node_modules/path-to-regexp/index.js +156 -0
- package/node_modules/path-to-regexp/package.json +30 -0
- package/node_modules/proxy-addr/HISTORY.md +161 -0
- package/node_modules/proxy-addr/LICENSE +22 -0
- package/node_modules/proxy-addr/README.md +139 -0
- package/node_modules/proxy-addr/index.js +327 -0
- package/node_modules/proxy-addr/package.json +47 -0
- package/node_modules/qs/.editorconfig +46 -0
- package/node_modules/qs/.eslintrc +38 -0
- package/node_modules/qs/.github/FUNDING.yml +12 -0
- package/node_modules/qs/.nycrc +13 -0
- package/node_modules/qs/CHANGELOG.md +600 -0
- package/node_modules/qs/LICENSE.md +29 -0
- package/node_modules/qs/README.md +709 -0
- package/node_modules/qs/dist/qs.js +90 -0
- package/node_modules/qs/lib/formats.js +23 -0
- package/node_modules/qs/lib/index.js +11 -0
- package/node_modules/qs/lib/parse.js +296 -0
- package/node_modules/qs/lib/stringify.js +351 -0
- package/node_modules/qs/lib/utils.js +265 -0
- package/node_modules/qs/package.json +91 -0
- package/node_modules/qs/test/empty-keys-cases.js +267 -0
- package/node_modules/qs/test/parse.js +1170 -0
- package/node_modules/qs/test/stringify.js +1298 -0
- package/node_modules/qs/test/utils.js +136 -0
- package/node_modules/range-parser/HISTORY.md +56 -0
- package/node_modules/range-parser/LICENSE +23 -0
- package/node_modules/range-parser/README.md +84 -0
- package/node_modules/range-parser/index.js +162 -0
- package/node_modules/range-parser/package.json +44 -0
- package/node_modules/raw-body/HISTORY.md +308 -0
- package/node_modules/raw-body/LICENSE +22 -0
- package/node_modules/raw-body/README.md +223 -0
- package/node_modules/raw-body/SECURITY.md +24 -0
- package/node_modules/raw-body/index.d.ts +87 -0
- package/node_modules/raw-body/index.js +336 -0
- package/node_modules/raw-body/package.json +49 -0
- package/node_modules/safe-buffer/LICENSE +21 -0
- package/node_modules/safe-buffer/README.md +584 -0
- package/node_modules/safe-buffer/index.d.ts +187 -0
- package/node_modules/safe-buffer/index.js +65 -0
- package/node_modules/safe-buffer/package.json +51 -0
- package/node_modules/safer-buffer/LICENSE +21 -0
- package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/node_modules/safer-buffer/Readme.md +156 -0
- package/node_modules/safer-buffer/dangerous.js +58 -0
- package/node_modules/safer-buffer/package.json +34 -0
- package/node_modules/safer-buffer/safer.js +77 -0
- package/node_modules/safer-buffer/tests.js +406 -0
- package/node_modules/send/HISTORY.md +526 -0
- package/node_modules/send/LICENSE +23 -0
- package/node_modules/send/README.md +327 -0
- package/node_modules/send/SECURITY.md +24 -0
- package/node_modules/send/index.js +1142 -0
- package/node_modules/send/node_modules/encodeurl/HISTORY.md +14 -0
- package/node_modules/send/node_modules/encodeurl/LICENSE +22 -0
- package/node_modules/send/node_modules/encodeurl/README.md +128 -0
- package/node_modules/send/node_modules/encodeurl/index.js +60 -0
- package/node_modules/send/node_modules/encodeurl/package.json +40 -0
- package/node_modules/send/node_modules/ms/index.js +162 -0
- package/node_modules/send/node_modules/ms/license.md +21 -0
- package/node_modules/send/node_modules/ms/package.json +38 -0
- package/node_modules/send/node_modules/ms/readme.md +59 -0
- package/node_modules/send/package.json +62 -0
- package/node_modules/serve-static/HISTORY.md +487 -0
- package/node_modules/serve-static/LICENSE +25 -0
- package/node_modules/serve-static/README.md +257 -0
- package/node_modules/serve-static/index.js +209 -0
- package/node_modules/serve-static/package.json +42 -0
- package/node_modules/setprototypeof/LICENSE +13 -0
- package/node_modules/setprototypeof/README.md +31 -0
- package/node_modules/setprototypeof/index.d.ts +2 -0
- package/node_modules/setprototypeof/index.js +17 -0
- package/node_modules/setprototypeof/package.json +38 -0
- package/node_modules/setprototypeof/test/index.js +24 -0
- package/node_modules/side-channel/.editorconfig +9 -0
- package/node_modules/side-channel/.eslintrc +12 -0
- package/node_modules/side-channel/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel/.nycrc +13 -0
- package/node_modules/side-channel/CHANGELOG.md +110 -0
- package/node_modules/side-channel/LICENSE +21 -0
- package/node_modules/side-channel/README.md +61 -0
- package/node_modules/side-channel/index.d.ts +14 -0
- package/node_modules/side-channel/index.js +43 -0
- package/node_modules/side-channel/package.json +85 -0
- package/node_modules/side-channel/test/index.js +104 -0
- package/node_modules/side-channel/tsconfig.json +9 -0
- package/node_modules/side-channel-list/.editorconfig +9 -0
- package/node_modules/side-channel-list/.eslintrc +11 -0
- package/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-list/.nycrc +13 -0
- package/node_modules/side-channel-list/CHANGELOG.md +15 -0
- package/node_modules/side-channel-list/LICENSE +21 -0
- package/node_modules/side-channel-list/README.md +62 -0
- package/node_modules/side-channel-list/index.d.ts +13 -0
- package/node_modules/side-channel-list/index.js +113 -0
- package/node_modules/side-channel-list/list.d.ts +14 -0
- package/node_modules/side-channel-list/package.json +77 -0
- package/node_modules/side-channel-list/test/index.js +104 -0
- package/node_modules/side-channel-list/tsconfig.json +9 -0
- package/node_modules/side-channel-map/.editorconfig +9 -0
- package/node_modules/side-channel-map/.eslintrc +11 -0
- package/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-map/.nycrc +13 -0
- package/node_modules/side-channel-map/CHANGELOG.md +22 -0
- package/node_modules/side-channel-map/LICENSE +21 -0
- package/node_modules/side-channel-map/README.md +62 -0
- package/node_modules/side-channel-map/index.d.ts +15 -0
- package/node_modules/side-channel-map/index.js +68 -0
- package/node_modules/side-channel-map/package.json +80 -0
- package/node_modules/side-channel-map/test/index.js +114 -0
- package/node_modules/side-channel-map/tsconfig.json +9 -0
- package/node_modules/side-channel-weakmap/.editorconfig +9 -0
- package/node_modules/side-channel-weakmap/.eslintrc +12 -0
- package/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-weakmap/.nycrc +13 -0
- package/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
- package/node_modules/side-channel-weakmap/LICENSE +21 -0
- package/node_modules/side-channel-weakmap/README.md +62 -0
- package/node_modules/side-channel-weakmap/index.d.ts +15 -0
- package/node_modules/side-channel-weakmap/index.js +84 -0
- package/node_modules/side-channel-weakmap/package.json +87 -0
- package/node_modules/side-channel-weakmap/test/index.js +114 -0
- package/node_modules/side-channel-weakmap/tsconfig.json +9 -0
- package/node_modules/statuses/HISTORY.md +82 -0
- package/node_modules/statuses/LICENSE +23 -0
- package/node_modules/statuses/README.md +136 -0
- package/node_modules/statuses/codes.json +65 -0
- package/node_modules/statuses/index.js +146 -0
- package/node_modules/statuses/package.json +49 -0
- package/node_modules/toidentifier/HISTORY.md +9 -0
- package/node_modules/toidentifier/LICENSE +21 -0
- package/node_modules/toidentifier/README.md +61 -0
- package/node_modules/toidentifier/index.js +32 -0
- package/node_modules/toidentifier/package.json +38 -0
- package/node_modules/type-is/HISTORY.md +259 -0
- package/node_modules/type-is/LICENSE +23 -0
- package/node_modules/type-is/README.md +170 -0
- package/node_modules/type-is/index.js +266 -0
- package/node_modules/type-is/package.json +45 -0
- package/node_modules/unpipe/HISTORY.md +4 -0
- package/node_modules/unpipe/LICENSE +22 -0
- package/node_modules/unpipe/README.md +43 -0
- package/node_modules/unpipe/index.js +69 -0
- package/node_modules/unpipe/package.json +27 -0
- package/node_modules/utils-merge/.npmignore +9 -0
- package/node_modules/utils-merge/LICENSE +20 -0
- package/node_modules/utils-merge/README.md +34 -0
- package/node_modules/utils-merge/index.js +23 -0
- package/node_modules/utils-merge/package.json +40 -0
- package/node_modules/vary/HISTORY.md +39 -0
- package/node_modules/vary/LICENSE +22 -0
- package/node_modules/vary/README.md +101 -0
- package/node_modules/vary/index.js +149 -0
- package/node_modules/vary/package.json +43 -0
- package/node_modules/zod/LICENSE +21 -0
- package/node_modules/zod/README.md +208 -0
- package/node_modules/zod/index.cjs +33 -0
- package/node_modules/zod/index.d.cts +4 -0
- package/node_modules/zod/index.d.ts +4 -0
- package/node_modules/zod/index.js +4 -0
- package/node_modules/zod/package.json +118 -0
- package/node_modules/zod/src/index.ts +4 -0
- package/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/node_modules/zod/src/v3/errors.ts +13 -0
- package/node_modules/zod/src/v3/external.ts +6 -0
- package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/node_modules/zod/src/v3/index.ts +4 -0
- package/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/complex.test.ts +56 -0
- package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/node_modules/zod/src/v3/tests/function.test.ts +257 -0
- package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/node_modules/zod/src/v3/tests/nan.test.ts +21 -0
- package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/node_modules/zod/src/v3/types.ts +5136 -0
- package/node_modules/zod/src/v4/classic/checks.ts +30 -0
- package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/node_modules/zod/src/v4/classic/compat.ts +66 -0
- package/node_modules/zod/src/v4/classic/errors.ts +75 -0
- package/node_modules/zod/src/v4/classic/external.ts +50 -0
- package/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/node_modules/zod/src/v4/classic/parse.ts +33 -0
- package/node_modules/zod/src/v4/classic/schemas.ts +2054 -0
- package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
- package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/node_modules/zod/src/v4/classic/tests/brand.test.ts +63 -0
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +252 -0
- package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +352 -0
- package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +296 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +313 -0
- package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +527 -0
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/node_modules/zod/src/v4/classic/tests/file.test.ts +91 -0
- package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +175 -0
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +268 -0
- package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +829 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +34 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +171 -0
- package/node_modules/zod/src/v4/classic/tests/json.test.ts +108 -0
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +92 -0
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +196 -0
- package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +86 -0
- package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +247 -0
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +563 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +123 -0
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +147 -0
- package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +127 -0
- package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +37 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +298 -0
- package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +342 -0
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +356 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +532 -0
- package/node_modules/zod/src/v4/classic/tests/registries.test.ts +204 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +179 -0
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +57 -0
- package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +109 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +881 -0
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +66 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +758 -0
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
- package/node_modules/zod/src/v4/classic/tests/transform.test.ts +250 -0
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +163 -0
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +94 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/node_modules/zod/src/v4/core/api.ts +1594 -0
- package/node_modules/zod/src/v4/core/checks.ts +1283 -0
- package/node_modules/zod/src/v4/core/config.ts +15 -0
- package/node_modules/zod/src/v4/core/core.ts +134 -0
- package/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/node_modules/zod/src/v4/core/errors.ts +424 -0
- package/node_modules/zod/src/v4/core/function.ts +176 -0
- package/node_modules/zod/src/v4/core/index.ts +15 -0
- package/node_modules/zod/src/v4/core/json-schema.ts +143 -0
- package/node_modules/zod/src/v4/core/parse.ts +94 -0
- package/node_modules/zod/src/v4/core/regexes.ts +135 -0
- package/node_modules/zod/src/v4/core/registries.ts +96 -0
- package/node_modules/zod/src/v4/core/schemas.ts +3842 -0
- package/node_modules/zod/src/v4/core/standard-schema.ts +64 -0
- package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +977 -0
- package/node_modules/zod/src/v4/core/util.ts +775 -0
- package/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/node_modules/zod/src/v4/index.ts +4 -0
- package/node_modules/zod/src/v4/locales/ar.ts +125 -0
- package/node_modules/zod/src/v4/locales/az.ts +121 -0
- package/node_modules/zod/src/v4/locales/be.ts +184 -0
- package/node_modules/zod/src/v4/locales/ca.ts +127 -0
- package/node_modules/zod/src/v4/locales/cs.ts +142 -0
- package/node_modules/zod/src/v4/locales/de.ts +124 -0
- package/node_modules/zod/src/v4/locales/en.ts +127 -0
- package/node_modules/zod/src/v4/locales/eo.ts +125 -0
- package/node_modules/zod/src/v4/locales/es.ts +125 -0
- package/node_modules/zod/src/v4/locales/fa.ts +134 -0
- package/node_modules/zod/src/v4/locales/fi.ts +131 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +126 -0
- package/node_modules/zod/src/v4/locales/fr.ts +124 -0
- package/node_modules/zod/src/v4/locales/he.ts +125 -0
- package/node_modules/zod/src/v4/locales/hu.ts +126 -0
- package/node_modules/zod/src/v4/locales/id.ts +125 -0
- package/node_modules/zod/src/v4/locales/index.ts +39 -0
- package/node_modules/zod/src/v4/locales/it.ts +125 -0
- package/node_modules/zod/src/v4/locales/ja.ts +122 -0
- package/node_modules/zod/src/v4/locales/kh.ts +126 -0
- package/node_modules/zod/src/v4/locales/ko.ts +131 -0
- package/node_modules/zod/src/v4/locales/mk.ts +127 -0
- package/node_modules/zod/src/v4/locales/ms.ts +124 -0
- package/node_modules/zod/src/v4/locales/nl.ts +126 -0
- package/node_modules/zod/src/v4/locales/no.ts +124 -0
- package/node_modules/zod/src/v4/locales/ota.ts +125 -0
- package/node_modules/zod/src/v4/locales/pl.ts +126 -0
- package/node_modules/zod/src/v4/locales/ps.ts +133 -0
- package/node_modules/zod/src/v4/locales/pt.ts +123 -0
- package/node_modules/zod/src/v4/locales/ru.ts +184 -0
- package/node_modules/zod/src/v4/locales/sl.ts +126 -0
- package/node_modules/zod/src/v4/locales/sv.ts +127 -0
- package/node_modules/zod/src/v4/locales/ta.ts +125 -0
- package/node_modules/zod/src/v4/locales/th.ts +126 -0
- package/node_modules/zod/src/v4/locales/tr.ts +121 -0
- package/node_modules/zod/src/v4/locales/ua.ts +126 -0
- package/node_modules/zod/src/v4/locales/ur.ts +126 -0
- package/node_modules/zod/src/v4/locales/vi.ts +125 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +123 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +125 -0
- package/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/node_modules/zod/src/v4/mini/coerce.ts +22 -0
- package/node_modules/zod/src/v4/mini/external.ts +40 -0
- package/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/node_modules/zod/src/v4/mini/iso.ts +62 -0
- package/node_modules/zod/src/v4/mini/parse.ts +1 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +1579 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/node_modules/zod/src/v4/mini/tests/brand.test.ts +51 -0
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +43 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +871 -0
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +185 -0
- package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +299 -0
- package/node_modules/zod/src/v4-mini/index.ts +1 -0
- package/node_modules/zod/v3/ZodError.cjs +138 -0
- package/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/node_modules/zod/v3/ZodError.js +133 -0
- package/node_modules/zod/v3/errors.cjs +17 -0
- package/node_modules/zod/v3/errors.d.cts +5 -0
- package/node_modules/zod/v3/errors.d.ts +5 -0
- package/node_modules/zod/v3/errors.js +9 -0
- package/node_modules/zod/v3/external.cjs +22 -0
- package/node_modules/zod/v3/external.d.cts +6 -0
- package/node_modules/zod/v3/external.d.ts +6 -0
- package/node_modules/zod/v3/external.js +6 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/node_modules/zod/v3/helpers/util.js +133 -0
- package/node_modules/zod/v3/index.cjs +33 -0
- package/node_modules/zod/v3/index.d.cts +4 -0
- package/node_modules/zod/v3/index.d.ts +4 -0
- package/node_modules/zod/v3/index.js +4 -0
- package/node_modules/zod/v3/locales/en.cjs +111 -0
- package/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/node_modules/zod/v3/locales/en.js +109 -0
- package/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/node_modules/zod/v3/standard-schema.js +1 -0
- package/node_modules/zod/v3/types.cjs +3775 -0
- package/node_modules/zod/v3/types.d.cts +1031 -0
- package/node_modules/zod/v3/types.d.ts +1031 -0
- package/node_modules/zod/v3/types.js +3693 -0
- package/node_modules/zod/v4/classic/checks.cjs +32 -0
- package/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/node_modules/zod/v4/classic/checks.js +1 -0
- package/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/node_modules/zod/v4/classic/coerce.js +17 -0
- package/node_modules/zod/v4/classic/compat.cjs +57 -0
- package/node_modules/zod/v4/classic/compat.d.cts +46 -0
- package/node_modules/zod/v4/classic/compat.d.ts +46 -0
- package/node_modules/zod/v4/classic/compat.js +27 -0
- package/node_modules/zod/v4/classic/errors.cjs +67 -0
- package/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/node_modules/zod/v4/classic/errors.js +41 -0
- package/node_modules/zod/v4/classic/external.cjs +70 -0
- package/node_modules/zod/v4/classic/external.d.cts +13 -0
- package/node_modules/zod/v4/classic/external.d.ts +13 -0
- package/node_modules/zod/v4/classic/external.js +18 -0
- package/node_modules/zod/v4/classic/index.cjs +33 -0
- package/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/node_modules/zod/v4/classic/index.js +4 -0
- package/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/node_modules/zod/v4/classic/iso.js +30 -0
- package/node_modules/zod/v4/classic/parse.cjs +32 -0
- package/node_modules/zod/v4/classic/parse.d.cts +23 -0
- package/node_modules/zod/v4/classic/parse.d.ts +23 -0
- package/node_modules/zod/v4/classic/parse.js +6 -0
- package/node_modules/zod/v4/classic/schemas.cjs +1109 -0
- package/node_modules/zod/v4/classic/schemas.d.cts +630 -0
- package/node_modules/zod/v4/classic/schemas.d.ts +630 -0
- package/node_modules/zod/v4/classic/schemas.js +1006 -0
- package/node_modules/zod/v4/core/api.cjs +1039 -0
- package/node_modules/zod/v4/core/api.d.cts +284 -0
- package/node_modules/zod/v4/core/api.d.ts +284 -0
- package/node_modules/zod/v4/core/api.js +906 -0
- package/node_modules/zod/v4/core/checks.cjs +591 -0
- package/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/node_modules/zod/v4/core/checks.js +565 -0
- package/node_modules/zod/v4/core/core.cjs +67 -0
- package/node_modules/zod/v4/core/core.d.cts +49 -0
- package/node_modules/zod/v4/core/core.d.ts +49 -0
- package/node_modules/zod/v4/core/core.js +61 -0
- package/node_modules/zod/v4/core/doc.cjs +39 -0
- package/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/node_modules/zod/v4/core/doc.js +35 -0
- package/node_modules/zod/v4/core/errors.cjs +226 -0
- package/node_modules/zod/v4/core/errors.d.cts +208 -0
- package/node_modules/zod/v4/core/errors.d.ts +208 -0
- package/node_modules/zod/v4/core/errors.js +195 -0
- package/node_modules/zod/v4/core/function.cjs +102 -0
- package/node_modules/zod/v4/core/function.d.cts +52 -0
- package/node_modules/zod/v4/core/function.d.ts +52 -0
- package/node_modules/zod/v4/core/function.js +75 -0
- package/node_modules/zod/v4/core/index.cjs +44 -0
- package/node_modules/zod/v4/core/index.d.cts +15 -0
- package/node_modules/zod/v4/core/index.d.ts +15 -0
- package/node_modules/zod/v4/core/index.js +15 -0
- package/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/node_modules/zod/v4/core/json-schema.d.cts +87 -0
- package/node_modules/zod/v4/core/json-schema.d.ts +87 -0
- package/node_modules/zod/v4/core/json-schema.js +1 -0
- package/node_modules/zod/v4/core/parse.cjs +87 -0
- package/node_modules/zod/v4/core/parse.d.cts +25 -0
- package/node_modules/zod/v4/core/parse.d.ts +25 -0
- package/node_modules/zod/v4/core/parse.js +57 -0
- package/node_modules/zod/v4/core/regexes.cjs +103 -0
- package/node_modules/zod/v4/core/regexes.d.cts +62 -0
- package/node_modules/zod/v4/core/regexes.d.ts +62 -0
- package/node_modules/zod/v4/core/regexes.js +95 -0
- package/node_modules/zod/v4/core/registries.cjs +56 -0
- package/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/node_modules/zod/v4/core/registries.js +51 -0
- package/node_modules/zod/v4/core/schemas.cjs +1748 -0
- package/node_modules/zod/v4/core/schemas.d.cts +1041 -0
- package/node_modules/zod/v4/core/schemas.d.ts +1041 -0
- package/node_modules/zod/v4/core/schemas.js +1717 -0
- package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/node_modules/zod/v4/core/standard-schema.d.cts +55 -0
- package/node_modules/zod/v4/core/standard-schema.d.ts +55 -0
- package/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +854 -0
- package/node_modules/zod/v4/core/to-json-schema.d.cts +88 -0
- package/node_modules/zod/v4/core/to-json-schema.d.ts +88 -0
- package/node_modules/zod/v4/core/to-json-schema.js +849 -0
- package/node_modules/zod/v4/core/util.cjs +539 -0
- package/node_modules/zod/v4/core/util.d.cts +183 -0
- package/node_modules/zod/v4/core/util.d.ts +183 -0
- package/node_modules/zod/v4/core/util.js +493 -0
- package/node_modules/zod/v4/core/versions.cjs +8 -0
- package/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/node_modules/zod/v4/core/versions.js +5 -0
- package/node_modules/zod/v4/index.cjs +22 -0
- package/node_modules/zod/v4/index.d.cts +3 -0
- package/node_modules/zod/v4/index.d.ts +3 -0
- package/node_modules/zod/v4/index.js +3 -0
- package/node_modules/zod/v4/locales/ar.cjs +142 -0
- package/node_modules/zod/v4/locales/ar.d.cts +4 -0
- package/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/node_modules/zod/v4/locales/ar.js +116 -0
- package/node_modules/zod/v4/locales/az.cjs +141 -0
- package/node_modules/zod/v4/locales/az.d.cts +4 -0
- package/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/node_modules/zod/v4/locales/az.js +115 -0
- package/node_modules/zod/v4/locales/be.cjs +190 -0
- package/node_modules/zod/v4/locales/be.d.cts +4 -0
- package/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/node_modules/zod/v4/locales/be.js +164 -0
- package/node_modules/zod/v4/locales/ca.cjs +144 -0
- package/node_modules/zod/v4/locales/ca.d.cts +4 -0
- package/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/node_modules/zod/v4/locales/ca.js +118 -0
- package/node_modules/zod/v4/locales/cs.cjs +161 -0
- package/node_modules/zod/v4/locales/cs.d.cts +4 -0
- package/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/node_modules/zod/v4/locales/cs.js +135 -0
- package/node_modules/zod/v4/locales/de.cjs +142 -0
- package/node_modules/zod/v4/locales/de.d.cts +4 -0
- package/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/node_modules/zod/v4/locales/de.js +116 -0
- package/node_modules/zod/v4/locales/en.cjs +145 -0
- package/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/node_modules/zod/v4/locales/en.d.ts +5 -0
- package/node_modules/zod/v4/locales/en.js +117 -0
- package/node_modules/zod/v4/locales/eo.cjs +144 -0
- package/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/node_modules/zod/v4/locales/eo.d.ts +5 -0
- package/node_modules/zod/v4/locales/eo.js +116 -0
- package/node_modules/zod/v4/locales/es.cjs +143 -0
- package/node_modules/zod/v4/locales/es.d.cts +4 -0
- package/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/node_modules/zod/v4/locales/es.js +117 -0
- package/node_modules/zod/v4/locales/fa.cjs +148 -0
- package/node_modules/zod/v4/locales/fa.d.cts +4 -0
- package/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/node_modules/zod/v4/locales/fa.js +122 -0
- package/node_modules/zod/v4/locales/fi.cjs +148 -0
- package/node_modules/zod/v4/locales/fi.d.cts +4 -0
- package/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/node_modules/zod/v4/locales/fi.js +122 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +143 -0
- package/node_modules/zod/v4/locales/fr-CA.d.cts +4 -0
- package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr-CA.js +117 -0
- package/node_modules/zod/v4/locales/fr.cjs +142 -0
- package/node_modules/zod/v4/locales/fr.d.cts +4 -0
- package/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr.js +116 -0
- package/node_modules/zod/v4/locales/he.cjs +143 -0
- package/node_modules/zod/v4/locales/he.d.cts +4 -0
- package/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/node_modules/zod/v4/locales/he.js +117 -0
- package/node_modules/zod/v4/locales/hu.cjs +143 -0
- package/node_modules/zod/v4/locales/hu.d.cts +4 -0
- package/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/node_modules/zod/v4/locales/hu.js +117 -0
- package/node_modules/zod/v4/locales/id.cjs +142 -0
- package/node_modules/zod/v4/locales/id.d.cts +4 -0
- package/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/node_modules/zod/v4/locales/id.js +116 -0
- package/node_modules/zod/v4/locales/index.cjs +84 -0
- package/node_modules/zod/v4/locales/index.d.cts +39 -0
- package/node_modules/zod/v4/locales/index.d.ts +39 -0
- package/node_modules/zod/v4/locales/index.js +39 -0
- package/node_modules/zod/v4/locales/it.cjs +143 -0
- package/node_modules/zod/v4/locales/it.d.cts +4 -0
- package/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/node_modules/zod/v4/locales/it.js +117 -0
- package/node_modules/zod/v4/locales/ja.cjs +141 -0
- package/node_modules/zod/v4/locales/ja.d.cts +4 -0
- package/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/node_modules/zod/v4/locales/ja.js +115 -0
- package/node_modules/zod/v4/locales/kh.cjs +143 -0
- package/node_modules/zod/v4/locales/kh.d.cts +4 -0
- package/node_modules/zod/v4/locales/kh.d.ts +4 -0
- package/node_modules/zod/v4/locales/kh.js +117 -0
- package/node_modules/zod/v4/locales/ko.cjs +147 -0
- package/node_modules/zod/v4/locales/ko.d.cts +4 -0
- package/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/node_modules/zod/v4/locales/ko.js +121 -0
- package/node_modules/zod/v4/locales/mk.cjs +144 -0
- package/node_modules/zod/v4/locales/mk.d.cts +4 -0
- package/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/node_modules/zod/v4/locales/mk.js +118 -0
- package/node_modules/zod/v4/locales/ms.cjs +142 -0
- package/node_modules/zod/v4/locales/ms.d.cts +4 -0
- package/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/node_modules/zod/v4/locales/ms.js +116 -0
- package/node_modules/zod/v4/locales/nl.cjs +143 -0
- package/node_modules/zod/v4/locales/nl.d.cts +4 -0
- package/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/node_modules/zod/v4/locales/nl.js +117 -0
- package/node_modules/zod/v4/locales/no.cjs +142 -0
- package/node_modules/zod/v4/locales/no.d.cts +4 -0
- package/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/node_modules/zod/v4/locales/no.js +116 -0
- package/node_modules/zod/v4/locales/ota.cjs +143 -0
- package/node_modules/zod/v4/locales/ota.d.cts +4 -0
- package/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/node_modules/zod/v4/locales/ota.js +117 -0
- package/node_modules/zod/v4/locales/pl.cjs +143 -0
- package/node_modules/zod/v4/locales/pl.d.cts +4 -0
- package/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/node_modules/zod/v4/locales/pl.js +117 -0
- package/node_modules/zod/v4/locales/ps.cjs +148 -0
- package/node_modules/zod/v4/locales/ps.d.cts +4 -0
- package/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/node_modules/zod/v4/locales/ps.js +122 -0
- package/node_modules/zod/v4/locales/pt.cjs +142 -0
- package/node_modules/zod/v4/locales/pt.d.cts +4 -0
- package/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt.js +116 -0
- package/node_modules/zod/v4/locales/ru.cjs +190 -0
- package/node_modules/zod/v4/locales/ru.d.cts +4 -0
- package/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/node_modules/zod/v4/locales/ru.js +164 -0
- package/node_modules/zod/v4/locales/sl.cjs +143 -0
- package/node_modules/zod/v4/locales/sl.d.cts +4 -0
- package/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/node_modules/zod/v4/locales/sl.js +117 -0
- package/node_modules/zod/v4/locales/sv.cjs +144 -0
- package/node_modules/zod/v4/locales/sv.d.cts +4 -0
- package/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/node_modules/zod/v4/locales/sv.js +118 -0
- package/node_modules/zod/v4/locales/ta.cjs +143 -0
- package/node_modules/zod/v4/locales/ta.d.cts +4 -0
- package/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/node_modules/zod/v4/locales/ta.js +117 -0
- package/node_modules/zod/v4/locales/th.cjs +143 -0
- package/node_modules/zod/v4/locales/th.d.cts +4 -0
- package/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/node_modules/zod/v4/locales/th.js +117 -0
- package/node_modules/zod/v4/locales/tr.cjs +143 -0
- package/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/node_modules/zod/v4/locales/tr.d.ts +5 -0
- package/node_modules/zod/v4/locales/tr.js +115 -0
- package/node_modules/zod/v4/locales/ua.cjs +143 -0
- package/node_modules/zod/v4/locales/ua.d.cts +4 -0
- package/node_modules/zod/v4/locales/ua.d.ts +4 -0
- package/node_modules/zod/v4/locales/ua.js +117 -0
- package/node_modules/zod/v4/locales/ur.cjs +143 -0
- package/node_modules/zod/v4/locales/ur.d.cts +4 -0
- package/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/node_modules/zod/v4/locales/ur.js +117 -0
- package/node_modules/zod/v4/locales/vi.cjs +142 -0
- package/node_modules/zod/v4/locales/vi.d.cts +4 -0
- package/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/node_modules/zod/v4/locales/vi.js +116 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +142 -0
- package/node_modules/zod/v4/locales/zh-CN.d.cts +4 -0
- package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-CN.js +116 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +143 -0
- package/node_modules/zod/v4/locales/zh-TW.d.cts +4 -0
- package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-TW.js +117 -0
- package/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/node_modules/zod/v4/mini/checks.js +1 -0
- package/node_modules/zod/v4/mini/coerce.cjs +47 -0
- package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/node_modules/zod/v4/mini/coerce.js +17 -0
- package/node_modules/zod/v4/mini/external.cjs +62 -0
- package/node_modules/zod/v4/mini/external.d.cts +11 -0
- package/node_modules/zod/v4/mini/external.d.ts +11 -0
- package/node_modules/zod/v4/mini/external.js +13 -0
- package/node_modules/zod/v4/mini/index.cjs +32 -0
- package/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/node_modules/zod/v4/mini/index.js +3 -0
- package/node_modules/zod/v4/mini/iso.cjs +60 -0
- package/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/node_modules/zod/v4/mini/iso.js +30 -0
- package/node_modules/zod/v4/mini/parse.cjs +8 -0
- package/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/node_modules/zod/v4/mini/parse.js +1 -0
- package/node_modules/zod/v4/mini/schemas.cjs +839 -0
- package/node_modules/zod/v4/mini/schemas.d.cts +356 -0
- package/node_modules/zod/v4/mini/schemas.d.ts +356 -0
- package/node_modules/zod/v4/mini/schemas.js +732 -0
- package/node_modules/zod/v4-mini/index.cjs +17 -0
- package/node_modules/zod/v4-mini/index.d.cts +1 -0
- package/node_modules/zod/v4-mini/index.d.ts +1 -0
- package/node_modules/zod/v4-mini/index.js +1 -0
- package/package.json +48 -0
package/README.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Kong Service Manager Backend
|
|
2
|
+
|
|
3
|
+
Backstage backend plugin that proxies requests to the
|
|
4
|
+
[Kong Admin API](https://docs.konghq.com/gateway/latest/admin-api/),
|
|
5
|
+
letting catalog entities manage their Kong services, routes, and plugins
|
|
6
|
+
from the Backstage UI.
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- Query Kong service information linked to catalog entities
|
|
11
|
+
- Full CRUD for routes on a Kong service
|
|
12
|
+
- Add, update, and remove plugins on services and routes
|
|
13
|
+
- Retrieve available plugins and their configuration schemas
|
|
14
|
+
- Support for multiple Kong instances with different auth methods
|
|
15
|
+
- Kong workspace support
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# From your Backstage root directory
|
|
21
|
+
yarn --cwd packages/backend add @veecode-platform/backstage-plugin-kong-service-manager-backend
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Configuration
|
|
25
|
+
|
|
26
|
+
### Register the plugin
|
|
27
|
+
|
|
28
|
+
The plugin uses the new Backstage backend system. Add it to
|
|
29
|
+
`packages/backend/src/index.ts`:
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
const backend = createBackend();
|
|
33
|
+
// ...existing plugins...
|
|
34
|
+
backend.add(import('@veecode-platform/backstage-plugin-kong-service-manager-backend'));
|
|
35
|
+
backend.start();
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### `app-config.yaml`
|
|
39
|
+
|
|
40
|
+
Add one or more Kong instances under the `kong` key:
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
kong:
|
|
44
|
+
instances:
|
|
45
|
+
- id: default
|
|
46
|
+
apiBaseUrl: ${KONG_ADMIN_URL} # e.g. http://localhost:8001
|
|
47
|
+
# workspace: default # optional Kong workspace
|
|
48
|
+
auth:
|
|
49
|
+
kongAdmin: ${KONG_ADMIN_TOKEN}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### Configuration reference
|
|
53
|
+
|
|
54
|
+
| Field | Type | Required | Description |
|
|
55
|
+
|---|---|---|---|
|
|
56
|
+
| `kong.instances[].id` | `string` | Yes | Unique identifier for this Kong instance. |
|
|
57
|
+
| `kong.instances[].apiBaseUrl` | `string` | Yes | Kong Admin API base URL. |
|
|
58
|
+
| `kong.instances[].workspace` | `string` | No | Kong workspace name. |
|
|
59
|
+
| `kong.instances[].auth.kongAdmin` | `string` | Conditional | Token sent as the `Kong-Admin-Token` header. Use this **or** `custom`. |
|
|
60
|
+
| `kong.instances[].auth.custom.header` | `string` | Conditional | Custom auth header name. |
|
|
61
|
+
| `kong.instances[].auth.custom.value` | `string` | Conditional | Custom auth header value. |
|
|
62
|
+
|
|
63
|
+
#### Multiple instances
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
kong:
|
|
67
|
+
instances:
|
|
68
|
+
- id: development
|
|
69
|
+
apiBaseUrl: http://kong-dev:8001
|
|
70
|
+
auth:
|
|
71
|
+
kongAdmin: ${KONG_DEV_TOKEN}
|
|
72
|
+
- id: production
|
|
73
|
+
apiBaseUrl: https://kong-prod.example.com:8001
|
|
74
|
+
workspace: prod
|
|
75
|
+
auth:
|
|
76
|
+
custom:
|
|
77
|
+
header: Authorization
|
|
78
|
+
value: Bearer ${KONG_PROD_TOKEN}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Annotate your catalog entities
|
|
82
|
+
|
|
83
|
+
Add the `kong-manager/service-name` annotation to any Component that should
|
|
84
|
+
display Kong data:
|
|
85
|
+
|
|
86
|
+
```yaml
|
|
87
|
+
apiVersion: backstage.io/v1alpha1
|
|
88
|
+
kind: Component
|
|
89
|
+
metadata:
|
|
90
|
+
name: my-service
|
|
91
|
+
annotations:
|
|
92
|
+
kong-manager/service-name: my-kong-service
|
|
93
|
+
spec:
|
|
94
|
+
type: service
|
|
95
|
+
owner: team-a
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## API endpoints
|
|
99
|
+
|
|
100
|
+
All endpoints are served under `/api/kong-service-manager-backend`.
|
|
101
|
+
|
|
102
|
+
### Health
|
|
103
|
+
|
|
104
|
+
| Method | Path | Description |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| `GET` | `/health` | Health check (unauthenticated). |
|
|
107
|
+
|
|
108
|
+
### Services
|
|
109
|
+
|
|
110
|
+
| Method | Path | Description |
|
|
111
|
+
|---|---|---|
|
|
112
|
+
| `GET` | `/:instance/services/:serviceName` | Get service info. |
|
|
113
|
+
| `GET` | `/:instance/services/:serviceName/plugins/associated` | List plugins on a service. |
|
|
114
|
+
|
|
115
|
+
### Routes
|
|
116
|
+
|
|
117
|
+
| Method | Path | Description |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| `GET` | `/:instance/services/:serviceName/routes` | List routes for a service. |
|
|
120
|
+
| `GET` | `/:instance/services/:serviceName/routes/:routeId` | Get a single route. |
|
|
121
|
+
| `POST` | `/:instance/services/:serviceName/routes` | Create a route. |
|
|
122
|
+
| `PATCH` | `/:instance/services/:serviceName/routes/:routeId` | Update a route. |
|
|
123
|
+
| `DELETE` | `/:instance/services/:serviceName/routes/:routeId` | Delete a route. |
|
|
124
|
+
|
|
125
|
+
### Service plugins
|
|
126
|
+
|
|
127
|
+
| Method | Path | Description |
|
|
128
|
+
|---|---|---|
|
|
129
|
+
| `GET` | `/:instance/plugins` | List available plugins. |
|
|
130
|
+
| `GET` | `/:instance/services/plugins/:pluginName/fields` | Get plugin schema. |
|
|
131
|
+
| `POST` | `/:instance/services/:serviceName/plugins` | Add plugin to service. |
|
|
132
|
+
| `PATCH` | `/:instance/services/:serviceName/plugins/:pluginId` | Update service plugin. |
|
|
133
|
+
| `DELETE` | `/:instance/services/:serviceName/plugins/:pluginId` | Remove service plugin. |
|
|
134
|
+
|
|
135
|
+
### Route plugins
|
|
136
|
+
|
|
137
|
+
| Method | Path | Description |
|
|
138
|
+
|---|---|---|
|
|
139
|
+
| `GET` | `/:instance/routes/:routeId/plugins/associated` | List plugins on a route. |
|
|
140
|
+
| `POST` | `/:instance/routes/:routeId/plugins` | Add plugin to route. |
|
|
141
|
+
| `PATCH` | `/:instance/routes/:routeId/plugins/:pluginId` | Update route plugin. |
|
|
142
|
+
| `DELETE` | `/:instance/routes/:routeId/plugins/:pluginId` | Remove route plugin. |
|
|
143
|
+
|
|
144
|
+
## RBAC note
|
|
145
|
+
|
|
146
|
+
Role-Based Access Control (RBAC) and workspaces are **Kong Enterprise** features.
|
|
147
|
+
They are available on Kong Gateway (Enterprise) and Kong Konnect, but **not** on Kong OSS.
|
|
148
|
+
If your Kong Admin API is protected by RBAC, the token supplied in `auth.kongAdmin` (or
|
|
149
|
+
the custom header) must carry the appropriate permissions for the endpoints this
|
|
150
|
+
plugin calls.
|
|
151
|
+
|
|
152
|
+
See the [Kong RBAC documentation](https://developer.konghq.com/gateway/entities/rbac/)
|
|
153
|
+
for details on configuring roles and permissions.
|
|
154
|
+
|
|
155
|
+
You can leave them both empty if your Kong Admin API does not require authentication (as in Kong OSS).
|
|
156
|
+
|
|
157
|
+
**Note:** it is custom practice to create Kong service and routes for the Admin API itself,
|
|
158
|
+
so that you can control access to it via "homemade" RBAC using the bundled OSS plugins. This strategy can be refined to the point of partially exposing the Admin API, but we will not cover this in this documentation.
|
|
159
|
+
|
|
160
|
+
## Development
|
|
161
|
+
|
|
162
|
+
Start the plugin in standalone mode for local development:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
cd workspace/kong-tools
|
|
166
|
+
yarn start --filter=kong-service-manager-backend
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
The standalone server reads configuration from `app-config.yaml` and starts
|
|
170
|
+
on port **7007**. You can test with:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
curl http://localhost:7007/api/kong-service-manager-backend/health
|
|
174
|
+
curl http://localhost:7007/api/kong-service-manager-backend/default/services/my-service
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## License
|
|
178
|
+
|
|
179
|
+
Apache-2.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var plugin = require('./plugin.cjs.js');
|
|
6
|
+
var KongServiceManagerService = require('./services/KongServiceManagerService.cjs.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.default = plugin.kongServiceManagerBackendPlugin;
|
|
11
|
+
exports.KongServiceManagerService = KongServiceManagerService.KongServiceManagerService;
|
|
12
|
+
exports.kongServiceManagerServiceRef = KongServiceManagerService.kongServiceManagerServiceRef;
|
|
13
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
|
|
2
|
+
import { LoggerService } from '@backstage/backend-plugin-api';
|
|
3
|
+
import { Config } from '@backstage/config';
|
|
4
|
+
import { ServiceInfoResponse, RoutesResponse, RouteResponse, CreateRoute, AssociatedPluginsResponse, AvailablePluginsResponse, PluginFieldsResponse, CreatePlugin } from '@veecode-platform/backstage-plugin-kong-service-manager-common';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Kong Service Manager backend plugin
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
declare const kongServiceManagerBackendPlugin: _backstage_backend_plugin_api.BackendFeature;
|
|
12
|
+
|
|
13
|
+
declare class KongServiceManagerService {
|
|
14
|
+
#private;
|
|
15
|
+
static create(options: {
|
|
16
|
+
logger: LoggerService;
|
|
17
|
+
config: Config;
|
|
18
|
+
}): KongServiceManagerService;
|
|
19
|
+
private constructor();
|
|
20
|
+
private readInstances;
|
|
21
|
+
private getInstance;
|
|
22
|
+
private buildUrl;
|
|
23
|
+
private buildHeaders;
|
|
24
|
+
private kongFetch;
|
|
25
|
+
getServiceInfo(instanceName: string, serviceName: string): Promise<ServiceInfoResponse>;
|
|
26
|
+
getRoutes(instanceName: string, serviceName: string): Promise<RoutesResponse>;
|
|
27
|
+
getRouteById(instanceName: string, serviceName: string, routeId: string): Promise<RouteResponse>;
|
|
28
|
+
createRoute(instanceName: string, serviceName: string, route: CreateRoute): Promise<RouteResponse>;
|
|
29
|
+
editRoute(instanceName: string, serviceName: string, routeId: string, route: Partial<CreateRoute>): Promise<RouteResponse>;
|
|
30
|
+
removeRoute(instanceName: string, serviceName: string, routeId: string): Promise<void>;
|
|
31
|
+
getServiceAssociatedPlugins(instanceName: string, serviceName: string): Promise<AssociatedPluginsResponse[]>;
|
|
32
|
+
getAvailablePlugins(instanceName: string): Promise<AvailablePluginsResponse>;
|
|
33
|
+
getPluginFields(instanceName: string, pluginName: string): Promise<PluginFieldsResponse>;
|
|
34
|
+
addPluginToService(instanceName: string, serviceName: string, plugin: CreatePlugin): Promise<AssociatedPluginsResponse>;
|
|
35
|
+
editServicePlugin(instanceName: string, serviceName: string, pluginId: string, plugin: Partial<CreatePlugin>): Promise<AssociatedPluginsResponse>;
|
|
36
|
+
removeServicePlugin(instanceName: string, serviceName: string, pluginId: string): Promise<void>;
|
|
37
|
+
getRouteAssociatedPlugins(instanceName: string, routeId: string): Promise<AssociatedPluginsResponse[]>;
|
|
38
|
+
addPluginToRoute(instanceName: string, routeId: string, plugin: CreatePlugin): Promise<AssociatedPluginsResponse>;
|
|
39
|
+
editRoutePlugin(instanceName: string, routeId: string, pluginId: string, plugin: Partial<CreatePlugin>): Promise<AssociatedPluginsResponse>;
|
|
40
|
+
removeRoutePlugin(instanceName: string, routeId: string, pluginId: string): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
declare const kongServiceManagerServiceRef: _backstage_backend_plugin_api.ServiceRef<KongServiceManagerService, "plugin", "singleton">;
|
|
43
|
+
|
|
44
|
+
export { KongServiceManagerService, kongServiceManagerBackendPlugin as default, kongServiceManagerServiceRef };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var backendPluginApi = require('@backstage/backend-plugin-api');
|
|
4
|
+
var router = require('./router.cjs.js');
|
|
5
|
+
var KongServiceManagerService = require('./services/KongServiceManagerService.cjs.js');
|
|
6
|
+
|
|
7
|
+
const kongServiceManagerBackendPlugin = backendPluginApi.createBackendPlugin({
|
|
8
|
+
pluginId: "kong-service-manager-backend",
|
|
9
|
+
register(env) {
|
|
10
|
+
env.registerInit({
|
|
11
|
+
deps: {
|
|
12
|
+
httpAuth: backendPluginApi.coreServices.httpAuth,
|
|
13
|
+
httpRouter: backendPluginApi.coreServices.httpRouter,
|
|
14
|
+
config: backendPluginApi.coreServices.rootConfig,
|
|
15
|
+
logger: backendPluginApi.coreServices.logger,
|
|
16
|
+
permissions: backendPluginApi.coreServices.permissions
|
|
17
|
+
},
|
|
18
|
+
async init({ httpAuth, httpRouter, config, logger, permissions }) {
|
|
19
|
+
logger.info("Initializing Kong Service Manager backend plugin...");
|
|
20
|
+
const kongService = KongServiceManagerService.KongServiceManagerService.create({ logger, config });
|
|
21
|
+
const router$1 = await router.createRouter({ httpAuth, permissions, kongService });
|
|
22
|
+
httpRouter.use(router$1);
|
|
23
|
+
httpRouter.addAuthPolicy({
|
|
24
|
+
path: "/health",
|
|
25
|
+
allow: "unauthenticated"
|
|
26
|
+
});
|
|
27
|
+
logger.info(
|
|
28
|
+
"Kong Service Manager backend plugin initialized successfully"
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
exports.kongServiceManagerBackendPlugin = kongServiceManagerBackendPlugin;
|
|
36
|
+
//# sourceMappingURL=plugin.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["../src/plugin.ts"],"sourcesContent":["import {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport { createRouter } from './router';\nimport { KongServiceManagerService } from './services/KongServiceManagerService';\n\n/**\n * Kong Service Manager backend plugin\n *\n * @public\n */\nexport const kongServiceManagerBackendPlugin = createBackendPlugin({\n pluginId: 'kong-service-manager-backend',\n register(env) {\n env.registerInit({\n deps: {\n httpAuth: coreServices.httpAuth,\n httpRouter: coreServices.httpRouter,\n config: coreServices.rootConfig,\n logger: coreServices.logger,\n permissions: coreServices.permissions,\n },\n async init({ httpAuth, httpRouter, config, logger, permissions }) {\n logger.info('Initializing Kong Service Manager backend plugin...');\n\n const kongService = KongServiceManagerService.create({ logger, config });\n\n const router = await createRouter({ httpAuth, permissions, kongService });\n\n httpRouter.use(router);\n httpRouter.addAuthPolicy({\n path: '/health',\n allow: 'unauthenticated',\n });\n\n logger.info(\n 'Kong Service Manager backend plugin initialized successfully',\n );\n },\n });\n },\n});\n"],"names":["createBackendPlugin","coreServices","KongServiceManagerService","router","createRouter"],"mappings":";;;;;;AAYO,MAAM,kCAAkCA,oCAAA,CAAoB;AAAA,EACjE,QAAA,EAAU,8BAAA;AAAA,EACV,SAAS,GAAA,EAAK;AACZ,IAAA,GAAA,CAAI,YAAA,CAAa;AAAA,MACf,IAAA,EAAM;AAAA,QACJ,UAAUC,6BAAA,CAAa,QAAA;AAAA,QACvB,YAAYA,6BAAA,CAAa,UAAA;AAAA,QACzB,QAAQA,6BAAA,CAAa,UAAA;AAAA,QACrB,QAAQA,6BAAA,CAAa,MAAA;AAAA,QACrB,aAAaA,6BAAA,CAAa;AAAA,OAC5B;AAAA,MACA,MAAM,KAAK,EAAE,QAAA,EAAU,YAAY,MAAA,EAAQ,MAAA,EAAQ,aAAY,EAAG;AAChE,QAAA,MAAA,CAAO,KAAK,qDAAqD,CAAA;AAEjE,QAAA,MAAM,cAAcC,mDAAA,CAA0B,MAAA,CAAO,EAAE,MAAA,EAAQ,QAAQ,CAAA;AAEvE,QAAA,MAAMC,WAAS,MAAMC,mBAAA,CAAa,EAAE,QAAA,EAAU,WAAA,EAAa,aAAa,CAAA;AAExE,QAAA,UAAA,CAAW,IAAID,QAAM,CAAA;AACrB,QAAA,UAAA,CAAW,aAAA,CAAc;AAAA,UACvB,IAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACR,CAAA;AAED,QAAA,MAAA,CAAO,IAAA;AAAA,UACL;AAAA,SACF;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH;AACF,CAAC;;;;"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var errors = require('@backstage/errors');
|
|
4
|
+
var pluginPermissionCommon = require('@backstage/plugin-permission-common');
|
|
5
|
+
var zod = require('zod');
|
|
6
|
+
var express = require('express');
|
|
7
|
+
var Router = require('express-promise-router');
|
|
8
|
+
var backstagePluginKongServiceManagerCommon = require('@veecode-platform/backstage-plugin-kong-service-manager-common');
|
|
9
|
+
|
|
10
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var express__default = /*#__PURE__*/_interopDefaultCompat(express);
|
|
13
|
+
var Router__default = /*#__PURE__*/_interopDefaultCompat(Router);
|
|
14
|
+
|
|
15
|
+
async function createRouter({
|
|
16
|
+
httpAuth,
|
|
17
|
+
permissions,
|
|
18
|
+
kongService
|
|
19
|
+
}) {
|
|
20
|
+
const router = Router__default.default();
|
|
21
|
+
router.use(express__default.default.json());
|
|
22
|
+
async function authorize(req, permission) {
|
|
23
|
+
const credentials = await httpAuth.credentials(req);
|
|
24
|
+
const decision = await permissions.authorize(
|
|
25
|
+
[{ permission }],
|
|
26
|
+
{ credentials }
|
|
27
|
+
);
|
|
28
|
+
if (decision[0].result !== pluginPermissionCommon.AuthorizeResult.ALLOW) {
|
|
29
|
+
throw new errors.NotAllowedError("Permission denied");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const instanceServiceParams = zod.z.object({
|
|
33
|
+
instance: zod.z.string(),
|
|
34
|
+
serviceName: zod.z.string()
|
|
35
|
+
});
|
|
36
|
+
const instanceServiceRouteParams = zod.z.object({
|
|
37
|
+
instance: zod.z.string(),
|
|
38
|
+
serviceName: zod.z.string(),
|
|
39
|
+
routeId: zod.z.string()
|
|
40
|
+
});
|
|
41
|
+
const instanceServicePluginParams = zod.z.object({
|
|
42
|
+
instance: zod.z.string(),
|
|
43
|
+
serviceName: zod.z.string(),
|
|
44
|
+
pluginId: zod.z.string()
|
|
45
|
+
});
|
|
46
|
+
const instanceRouteParams = zod.z.object({
|
|
47
|
+
instance: zod.z.string(),
|
|
48
|
+
routeId: zod.z.string()
|
|
49
|
+
});
|
|
50
|
+
const instanceRoutePluginParams = zod.z.object({
|
|
51
|
+
instance: zod.z.string(),
|
|
52
|
+
routeId: zod.z.string(),
|
|
53
|
+
pluginId: zod.z.string()
|
|
54
|
+
});
|
|
55
|
+
const createRouteBody = zod.z.object({
|
|
56
|
+
name: zod.z.string().optional(),
|
|
57
|
+
protocols: zod.z.array(zod.z.string()).optional(),
|
|
58
|
+
methods: zod.z.array(zod.z.string()).optional(),
|
|
59
|
+
hosts: zod.z.array(zod.z.string()).optional(),
|
|
60
|
+
paths: zod.z.array(zod.z.string()).optional(),
|
|
61
|
+
headers: zod.z.record(zod.z.array(zod.z.string())).optional(),
|
|
62
|
+
https_redirect_status_code: zod.z.number().optional(),
|
|
63
|
+
regex_priority: zod.z.number().optional(),
|
|
64
|
+
strip_path: zod.z.boolean().optional(),
|
|
65
|
+
path_handling: zod.z.string().optional(),
|
|
66
|
+
preserve_host: zod.z.boolean().optional(),
|
|
67
|
+
request_buffering: zod.z.boolean().optional(),
|
|
68
|
+
response_buffering: zod.z.boolean().optional(),
|
|
69
|
+
tags: zod.z.array(zod.z.string()).optional()
|
|
70
|
+
});
|
|
71
|
+
const createPluginBody = zod.z.object({
|
|
72
|
+
name: zod.z.string(),
|
|
73
|
+
config: zod.z.record(zod.z.unknown()).optional(),
|
|
74
|
+
enabled: zod.z.boolean().optional(),
|
|
75
|
+
protocols: zod.z.array(zod.z.string()).optional(),
|
|
76
|
+
tags: zod.z.array(zod.z.string()).optional()
|
|
77
|
+
});
|
|
78
|
+
const editPluginBody = zod.z.object({
|
|
79
|
+
name: zod.z.string().optional(),
|
|
80
|
+
config: zod.z.record(zod.z.unknown()).optional(),
|
|
81
|
+
enabled: zod.z.boolean().optional(),
|
|
82
|
+
protocols: zod.z.array(zod.z.string()).optional(),
|
|
83
|
+
tags: zod.z.array(zod.z.string()).optional()
|
|
84
|
+
});
|
|
85
|
+
router.get("/health", async (_req, res) => {
|
|
86
|
+
res.json({ status: "ok" });
|
|
87
|
+
});
|
|
88
|
+
router.get("/:instance/services/:serviceName", async (req, res) => {
|
|
89
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongServiceReadPermission);
|
|
90
|
+
const parsed = instanceServiceParams.safeParse(req.params);
|
|
91
|
+
if (!parsed.success) throw new errors.InputError(parsed.error.toString());
|
|
92
|
+
const result = await kongService.getServiceInfo(
|
|
93
|
+
parsed.data.instance,
|
|
94
|
+
parsed.data.serviceName
|
|
95
|
+
);
|
|
96
|
+
res.json(result);
|
|
97
|
+
});
|
|
98
|
+
router.get(
|
|
99
|
+
"/:instance/services/:serviceName/plugins/associated",
|
|
100
|
+
async (req, res) => {
|
|
101
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongPluginsReadPermission);
|
|
102
|
+
const parsed = instanceServiceParams.safeParse(req.params);
|
|
103
|
+
if (!parsed.success) throw new errors.InputError(parsed.error.toString());
|
|
104
|
+
const result = await kongService.getServiceAssociatedPlugins(
|
|
105
|
+
parsed.data.instance,
|
|
106
|
+
parsed.data.serviceName
|
|
107
|
+
);
|
|
108
|
+
res.json(result);
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
router.get("/:instance/plugins", async (req, res) => {
|
|
112
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongPluginsReadPermission);
|
|
113
|
+
const instance = zod.z.string().safeParse(req.params.instance);
|
|
114
|
+
if (!instance.success) throw new errors.InputError(instance.error.toString());
|
|
115
|
+
const result = await kongService.getAvailablePlugins(instance.data);
|
|
116
|
+
res.json(result);
|
|
117
|
+
});
|
|
118
|
+
router.get(
|
|
119
|
+
"/:instance/services/plugins/:pluginName/fields",
|
|
120
|
+
async (req, res) => {
|
|
121
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongPluginsReadPermission);
|
|
122
|
+
const parsed = zod.z.object({ instance: zod.z.string(), pluginName: zod.z.string() }).safeParse(req.params);
|
|
123
|
+
if (!parsed.success) throw new errors.InputError(parsed.error.toString());
|
|
124
|
+
const result = await kongService.getPluginFields(
|
|
125
|
+
parsed.data.instance,
|
|
126
|
+
parsed.data.pluginName
|
|
127
|
+
);
|
|
128
|
+
res.json(result);
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
router.post(
|
|
132
|
+
"/:instance/services/:serviceName/plugins",
|
|
133
|
+
async (req, res) => {
|
|
134
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongApplyPluginServicePermission);
|
|
135
|
+
const params = instanceServiceParams.safeParse(req.params);
|
|
136
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
137
|
+
const body = createPluginBody.safeParse(req.body);
|
|
138
|
+
if (!body.success) throw new errors.InputError(body.error.toString());
|
|
139
|
+
const result = await kongService.addPluginToService(
|
|
140
|
+
params.data.instance,
|
|
141
|
+
params.data.serviceName,
|
|
142
|
+
body.data
|
|
143
|
+
);
|
|
144
|
+
res.status(201).json(result);
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
router.patch(
|
|
148
|
+
"/:instance/services/:serviceName/plugins/:pluginId",
|
|
149
|
+
async (req, res) => {
|
|
150
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongUpdateServicePluginPermission);
|
|
151
|
+
const params = instanceServicePluginParams.safeParse(req.params);
|
|
152
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
153
|
+
const body = editPluginBody.safeParse(req.body);
|
|
154
|
+
if (!body.success) throw new errors.InputError(body.error.toString());
|
|
155
|
+
const result = await kongService.editServicePlugin(
|
|
156
|
+
params.data.instance,
|
|
157
|
+
params.data.serviceName,
|
|
158
|
+
params.data.pluginId,
|
|
159
|
+
body.data
|
|
160
|
+
);
|
|
161
|
+
res.json(result);
|
|
162
|
+
}
|
|
163
|
+
);
|
|
164
|
+
router.delete(
|
|
165
|
+
"/:instance/services/:serviceName/plugins/:pluginId",
|
|
166
|
+
async (req, res) => {
|
|
167
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongDisableServicePluginPermission);
|
|
168
|
+
const params = instanceServicePluginParams.safeParse(req.params);
|
|
169
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
170
|
+
await kongService.removeServicePlugin(
|
|
171
|
+
params.data.instance,
|
|
172
|
+
params.data.serviceName,
|
|
173
|
+
params.data.pluginId
|
|
174
|
+
);
|
|
175
|
+
res.status(204).end();
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
router.get(
|
|
179
|
+
"/:instance/services/:serviceName/routes",
|
|
180
|
+
async (req, res) => {
|
|
181
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongRoutesReadPermission);
|
|
182
|
+
const parsed = instanceServiceParams.safeParse(req.params);
|
|
183
|
+
if (!parsed.success) throw new errors.InputError(parsed.error.toString());
|
|
184
|
+
const result = await kongService.getRoutes(
|
|
185
|
+
parsed.data.instance,
|
|
186
|
+
parsed.data.serviceName
|
|
187
|
+
);
|
|
188
|
+
res.json(result);
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
router.get(
|
|
192
|
+
"/:instance/services/:serviceName/routes/:routeId",
|
|
193
|
+
async (req, res) => {
|
|
194
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongRoutesReadPermission);
|
|
195
|
+
const parsed = instanceServiceRouteParams.safeParse(req.params);
|
|
196
|
+
if (!parsed.success) throw new errors.InputError(parsed.error.toString());
|
|
197
|
+
const result = await kongService.getRouteById(
|
|
198
|
+
parsed.data.instance,
|
|
199
|
+
parsed.data.serviceName,
|
|
200
|
+
parsed.data.routeId
|
|
201
|
+
);
|
|
202
|
+
res.json(result);
|
|
203
|
+
}
|
|
204
|
+
);
|
|
205
|
+
router.post(
|
|
206
|
+
"/:instance/services/:serviceName/routes",
|
|
207
|
+
async (req, res) => {
|
|
208
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongRouteCreatePermission);
|
|
209
|
+
const params = instanceServiceParams.safeParse(req.params);
|
|
210
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
211
|
+
const body = createRouteBody.safeParse(req.body);
|
|
212
|
+
if (!body.success) throw new errors.InputError(body.error.toString());
|
|
213
|
+
const result = await kongService.createRoute(
|
|
214
|
+
params.data.instance,
|
|
215
|
+
params.data.serviceName,
|
|
216
|
+
body.data
|
|
217
|
+
);
|
|
218
|
+
res.status(201).json(result);
|
|
219
|
+
}
|
|
220
|
+
);
|
|
221
|
+
router.patch(
|
|
222
|
+
"/:instance/services/:serviceName/routes/:routeId",
|
|
223
|
+
async (req, res) => {
|
|
224
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongRouteUpdatePermission);
|
|
225
|
+
const params = instanceServiceRouteParams.safeParse(req.params);
|
|
226
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
227
|
+
const body = createRouteBody.partial().safeParse(req.body);
|
|
228
|
+
if (!body.success) throw new errors.InputError(body.error.toString());
|
|
229
|
+
const result = await kongService.editRoute(
|
|
230
|
+
params.data.instance,
|
|
231
|
+
params.data.serviceName,
|
|
232
|
+
params.data.routeId,
|
|
233
|
+
body.data
|
|
234
|
+
);
|
|
235
|
+
res.json(result);
|
|
236
|
+
}
|
|
237
|
+
);
|
|
238
|
+
router.delete(
|
|
239
|
+
"/:instance/services/:serviceName/routes/:routeId",
|
|
240
|
+
async (req, res) => {
|
|
241
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongRouteDeletePermission);
|
|
242
|
+
const params = instanceServiceRouteParams.safeParse(req.params);
|
|
243
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
244
|
+
await kongService.removeRoute(
|
|
245
|
+
params.data.instance,
|
|
246
|
+
params.data.serviceName,
|
|
247
|
+
params.data.routeId
|
|
248
|
+
);
|
|
249
|
+
res.status(204).end();
|
|
250
|
+
}
|
|
251
|
+
);
|
|
252
|
+
router.get(
|
|
253
|
+
"/:instance/routes/:routeId/plugins/associated",
|
|
254
|
+
async (req, res) => {
|
|
255
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongPluginsReadPermission);
|
|
256
|
+
const parsed = instanceRouteParams.safeParse(req.params);
|
|
257
|
+
if (!parsed.success) throw new errors.InputError(parsed.error.toString());
|
|
258
|
+
const result = await kongService.getRouteAssociatedPlugins(
|
|
259
|
+
parsed.data.instance,
|
|
260
|
+
parsed.data.routeId
|
|
261
|
+
);
|
|
262
|
+
res.json(result);
|
|
263
|
+
}
|
|
264
|
+
);
|
|
265
|
+
router.post("/:instance/routes/:routeId/plugins", async (req, res) => {
|
|
266
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongApplyPluginRoutePermission);
|
|
267
|
+
const params = instanceRouteParams.safeParse(req.params);
|
|
268
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
269
|
+
const body = createPluginBody.safeParse(req.body);
|
|
270
|
+
if (!body.success) throw new errors.InputError(body.error.toString());
|
|
271
|
+
const result = await kongService.addPluginToRoute(
|
|
272
|
+
params.data.instance,
|
|
273
|
+
params.data.routeId,
|
|
274
|
+
body.data
|
|
275
|
+
);
|
|
276
|
+
res.status(201).json(result);
|
|
277
|
+
});
|
|
278
|
+
router.patch(
|
|
279
|
+
"/:instance/routes/:routeId/plugins/:pluginId",
|
|
280
|
+
async (req, res) => {
|
|
281
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongUpdateRoutePluginPermission);
|
|
282
|
+
const params = instanceRoutePluginParams.safeParse(req.params);
|
|
283
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
284
|
+
const body = editPluginBody.safeParse(req.body);
|
|
285
|
+
if (!body.success) throw new errors.InputError(body.error.toString());
|
|
286
|
+
const result = await kongService.editRoutePlugin(
|
|
287
|
+
params.data.instance,
|
|
288
|
+
params.data.routeId,
|
|
289
|
+
params.data.pluginId,
|
|
290
|
+
body.data
|
|
291
|
+
);
|
|
292
|
+
res.json(result);
|
|
293
|
+
}
|
|
294
|
+
);
|
|
295
|
+
router.delete(
|
|
296
|
+
"/:instance/routes/:routeId/plugins/:pluginId",
|
|
297
|
+
async (req, res) => {
|
|
298
|
+
await authorize(req, backstagePluginKongServiceManagerCommon.kongDisableRoutePluginPermission);
|
|
299
|
+
const params = instanceRoutePluginParams.safeParse(req.params);
|
|
300
|
+
if (!params.success) throw new errors.InputError(params.error.toString());
|
|
301
|
+
await kongService.removeRoutePlugin(
|
|
302
|
+
params.data.instance,
|
|
303
|
+
params.data.routeId,
|
|
304
|
+
params.data.pluginId
|
|
305
|
+
);
|
|
306
|
+
res.status(204).end();
|
|
307
|
+
}
|
|
308
|
+
);
|
|
309
|
+
return router;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
exports.createRouter = createRouter;
|
|
313
|
+
//# sourceMappingURL=router.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.cjs.js","sources":["../src/router.ts"],"sourcesContent":["import { HttpAuthService, PermissionsService } from '@backstage/backend-plugin-api';\nimport { InputError, NotAllowedError } from '@backstage/errors';\nimport { AuthorizeResult, type BasicPermission } from '@backstage/plugin-permission-common';\nimport { z } from 'zod';\nimport express from 'express';\nimport Router from 'express-promise-router';\nimport type { CreateRoute } from '@veecode-platform/backstage-plugin-kong-service-manager-common';\nimport {\n kongServiceReadPermission,\n kongPluginsReadPermission,\n kongRoutesReadPermission,\n kongApplyPluginServicePermission,\n kongUpdateServicePluginPermission,\n kongDisableServicePluginPermission,\n kongRouteCreatePermission,\n kongRouteUpdatePermission,\n kongRouteDeletePermission,\n kongApplyPluginRoutePermission,\n kongUpdateRoutePluginPermission,\n kongDisableRoutePluginPermission,\n} from '@veecode-platform/backstage-plugin-kong-service-manager-common';\nimport { KongServiceManagerService } from './services/KongServiceManagerService';\n\nexport async function createRouter({\n httpAuth,\n permissions,\n kongService,\n}: {\n httpAuth: HttpAuthService;\n permissions: PermissionsService;\n kongService: KongServiceManagerService;\n}): Promise<express.Router> {\n const router = Router();\n router.use(express.json());\n\n async function authorize(req: express.Request, permission: BasicPermission) {\n const credentials = await httpAuth.credentials(req);\n const decision = await permissions.authorize(\n [{ permission }],\n { credentials },\n );\n if (decision[0].result !== AuthorizeResult.ALLOW) {\n throw new NotAllowedError('Permission denied');\n }\n }\n\n // --- Validation schemas ---\n\n const instanceServiceParams = z.object({\n instance: z.string(),\n serviceName: z.string(),\n });\n\n const instanceServiceRouteParams = z.object({\n instance: z.string(),\n serviceName: z.string(),\n routeId: z.string(),\n });\n\n const instanceServicePluginParams = z.object({\n instance: z.string(),\n serviceName: z.string(),\n pluginId: z.string(),\n });\n\n const instanceRouteParams = z.object({\n instance: z.string(),\n routeId: z.string(),\n });\n\n const instanceRoutePluginParams = z.object({\n instance: z.string(),\n routeId: z.string(),\n pluginId: z.string(),\n });\n\n const createRouteBody = z.object({\n name: z.string().optional(),\n protocols: z.array(z.string()).optional(),\n methods: z.array(z.string()).optional(),\n hosts: z.array(z.string()).optional(),\n paths: z.array(z.string()).optional(),\n headers: z.record(z.array(z.string())).optional(),\n https_redirect_status_code: z.number().optional(),\n regex_priority: z.number().optional(),\n strip_path: z.boolean().optional(),\n path_handling: z.string().optional(),\n preserve_host: z.boolean().optional(),\n request_buffering: z.boolean().optional(),\n response_buffering: z.boolean().optional(),\n tags: z.array(z.string()).optional(),\n });\n\n const createPluginBody = z.object({\n name: z.string(),\n config: z.record(z.unknown()).optional(),\n enabled: z.boolean().optional(),\n protocols: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n });\n\n const editPluginBody = z.object({\n name: z.string().optional(),\n config: z.record(z.unknown()).optional(),\n enabled: z.boolean().optional(),\n protocols: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n });\n\n // --- Health check ---\n\n router.get('/health', async (_req, res) => {\n res.json({ status: 'ok' });\n });\n\n // --- Service routes (Phase 1) ---\n\n // GET /:instance/services/:serviceName\n router.get('/:instance/services/:serviceName', async (req, res) => {\n await authorize(req, kongServiceReadPermission);\n\n const parsed = instanceServiceParams.safeParse(req.params);\n if (!parsed.success) throw new InputError(parsed.error.toString());\n\n const result = await kongService.getServiceInfo(\n parsed.data.instance,\n parsed.data.serviceName,\n );\n res.json(result);\n });\n\n // GET /:instance/services/:serviceName/plugins/associated\n router.get(\n '/:instance/services/:serviceName/plugins/associated',\n async (req, res) => {\n await authorize(req, kongPluginsReadPermission);\n\n const parsed = instanceServiceParams.safeParse(req.params);\n if (!parsed.success) throw new InputError(parsed.error.toString());\n\n const result = await kongService.getServiceAssociatedPlugins(\n parsed.data.instance,\n parsed.data.serviceName,\n );\n res.json(result);\n },\n );\n\n // GET /:instance/plugins\n router.get('/:instance/plugins', async (req, res) => {\n await authorize(req, kongPluginsReadPermission);\n\n const instance = z.string().safeParse(req.params.instance);\n if (!instance.success) throw new InputError(instance.error.toString());\n\n const result = await kongService.getAvailablePlugins(instance.data);\n res.json(result);\n });\n\n // --- Plugin schema introspection (Phase 2) ---\n\n // GET /:instance/services/plugins/:pluginName/fields\n router.get(\n '/:instance/services/plugins/:pluginName/fields',\n async (req, res) => {\n await authorize(req, kongPluginsReadPermission);\n\n const parsed = z\n .object({ instance: z.string(), pluginName: z.string() })\n .safeParse(req.params);\n if (!parsed.success) throw new InputError(parsed.error.toString());\n\n const result = await kongService.getPluginFields(\n parsed.data.instance,\n parsed.data.pluginName,\n );\n res.json(result);\n },\n );\n\n // --- Service plugin CRUD (Phase 2) ---\n\n // POST /:instance/services/:serviceName/plugins\n router.post(\n '/:instance/services/:serviceName/plugins',\n async (req, res) => {\n await authorize(req, kongApplyPluginServicePermission);\n\n const params = instanceServiceParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n const body = createPluginBody.safeParse(req.body);\n if (!body.success) throw new InputError(body.error.toString());\n\n const result = await kongService.addPluginToService(\n params.data.instance,\n params.data.serviceName,\n body.data,\n );\n res.status(201).json(result);\n },\n );\n\n // PATCH /:instance/services/:serviceName/plugins/:pluginId\n router.patch(\n '/:instance/services/:serviceName/plugins/:pluginId',\n async (req, res) => {\n await authorize(req, kongUpdateServicePluginPermission);\n\n const params = instanceServicePluginParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n const body = editPluginBody.safeParse(req.body);\n if (!body.success) throw new InputError(body.error.toString());\n\n const result = await kongService.editServicePlugin(\n params.data.instance,\n params.data.serviceName,\n params.data.pluginId,\n body.data,\n );\n res.json(result);\n },\n );\n\n // DELETE /:instance/services/:serviceName/plugins/:pluginId\n router.delete(\n '/:instance/services/:serviceName/plugins/:pluginId',\n async (req, res) => {\n await authorize(req, kongDisableServicePluginPermission);\n\n const params = instanceServicePluginParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n await kongService.removeServicePlugin(\n params.data.instance,\n params.data.serviceName,\n params.data.pluginId,\n );\n res.status(204).end();\n },\n );\n\n // --- Route CRUD (Phase 3) ---\n\n // GET /:instance/services/:serviceName/routes\n router.get(\n '/:instance/services/:serviceName/routes',\n async (req, res) => {\n await authorize(req, kongRoutesReadPermission);\n\n const parsed = instanceServiceParams.safeParse(req.params);\n if (!parsed.success) throw new InputError(parsed.error.toString());\n\n const result = await kongService.getRoutes(\n parsed.data.instance,\n parsed.data.serviceName,\n );\n res.json(result);\n },\n );\n\n // GET /:instance/services/:serviceName/routes/:routeId\n router.get(\n '/:instance/services/:serviceName/routes/:routeId',\n async (req, res) => {\n await authorize(req, kongRoutesReadPermission);\n\n const parsed = instanceServiceRouteParams.safeParse(req.params);\n if (!parsed.success) throw new InputError(parsed.error.toString());\n\n const result = await kongService.getRouteById(\n parsed.data.instance,\n parsed.data.serviceName,\n parsed.data.routeId,\n );\n res.json(result);\n },\n );\n\n // POST /:instance/services/:serviceName/routes\n router.post(\n '/:instance/services/:serviceName/routes',\n async (req, res) => {\n await authorize(req, kongRouteCreatePermission);\n\n const params = instanceServiceParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n const body = createRouteBody.safeParse(req.body);\n if (!body.success) throw new InputError(body.error.toString());\n\n const result = await kongService.createRoute(\n params.data.instance,\n params.data.serviceName,\n body.data as CreateRoute,\n );\n res.status(201).json(result);\n },\n );\n\n // PATCH /:instance/services/:serviceName/routes/:routeId\n router.patch(\n '/:instance/services/:serviceName/routes/:routeId',\n async (req, res) => {\n await authorize(req, kongRouteUpdatePermission);\n\n const params = instanceServiceRouteParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n const body = createRouteBody.partial().safeParse(req.body);\n if (!body.success) throw new InputError(body.error.toString());\n\n const result = await kongService.editRoute(\n params.data.instance,\n params.data.serviceName,\n params.data.routeId,\n body.data as Partial<CreateRoute>,\n );\n res.json(result);\n },\n );\n\n // DELETE /:instance/services/:serviceName/routes/:routeId\n router.delete(\n '/:instance/services/:serviceName/routes/:routeId',\n async (req, res) => {\n await authorize(req, kongRouteDeletePermission);\n\n const params = instanceServiceRouteParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n await kongService.removeRoute(\n params.data.instance,\n params.data.serviceName,\n params.data.routeId,\n );\n res.status(204).end();\n },\n );\n\n // --- Route plugin CRUD (Phase 4) ---\n\n // GET /:instance/routes/:routeId/plugins/associated\n router.get(\n '/:instance/routes/:routeId/plugins/associated',\n async (req, res) => {\n await authorize(req, kongPluginsReadPermission);\n\n const parsed = instanceRouteParams.safeParse(req.params);\n if (!parsed.success) throw new InputError(parsed.error.toString());\n\n const result = await kongService.getRouteAssociatedPlugins(\n parsed.data.instance,\n parsed.data.routeId,\n );\n res.json(result);\n },\n );\n\n // POST /:instance/routes/:routeId/plugins\n router.post('/:instance/routes/:routeId/plugins', async (req, res) => {\n await authorize(req, kongApplyPluginRoutePermission);\n\n const params = instanceRouteParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n const body = createPluginBody.safeParse(req.body);\n if (!body.success) throw new InputError(body.error.toString());\n\n const result = await kongService.addPluginToRoute(\n params.data.instance,\n params.data.routeId,\n body.data,\n );\n res.status(201).json(result);\n });\n\n // PATCH /:instance/routes/:routeId/plugins/:pluginId\n router.patch(\n '/:instance/routes/:routeId/plugins/:pluginId',\n async (req, res) => {\n await authorize(req, kongUpdateRoutePluginPermission);\n\n const params = instanceRoutePluginParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n const body = editPluginBody.safeParse(req.body);\n if (!body.success) throw new InputError(body.error.toString());\n\n const result = await kongService.editRoutePlugin(\n params.data.instance,\n params.data.routeId,\n params.data.pluginId,\n body.data,\n );\n res.json(result);\n },\n );\n\n // DELETE /:instance/routes/:routeId/plugins/:pluginId\n router.delete(\n '/:instance/routes/:routeId/plugins/:pluginId',\n async (req, res) => {\n await authorize(req, kongDisableRoutePluginPermission);\n\n const params = instanceRoutePluginParams.safeParse(req.params);\n if (!params.success) throw new InputError(params.error.toString());\n\n await kongService.removeRoutePlugin(\n params.data.instance,\n params.data.routeId,\n params.data.pluginId,\n );\n res.status(204).end();\n },\n );\n\n return router;\n}\n"],"names":["Router","express","AuthorizeResult","NotAllowedError","z","kongServiceReadPermission","InputError","kongPluginsReadPermission","kongApplyPluginServicePermission","kongUpdateServicePluginPermission","kongDisableServicePluginPermission","kongRoutesReadPermission","kongRouteCreatePermission","kongRouteUpdatePermission","kongRouteDeletePermission","kongApplyPluginRoutePermission","kongUpdateRoutePluginPermission","kongDisableRoutePluginPermission"],"mappings":"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"}
|