keq 2.8.14 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/esm/src/constant.d.ts +2 -0
- package/dist/esm/src/constant.js +2 -0
- package/dist/esm/src/core.d.ts +30 -0
- package/dist/esm/src/core.js +162 -53
- package/dist/esm/src/create-request.js +2 -0
- package/dist/esm/src/exception/abort.exception.d.ts +3 -0
- package/dist/esm/src/exception/abort.exception.js +6 -0
- package/dist/esm/src/index.d.ts +1 -0
- package/dist/esm/src/index.js +1 -0
- package/dist/esm/src/is/is-abort-signal.d.ts +1 -0
- package/dist/esm/src/is/is-abort-signal.js +8 -0
- package/dist/esm/src/middlewares/fetch-arguments-middleware.js +5 -1
- package/dist/esm/src/middlewares/mutex-flow-control-middleware.d.ts +2 -0
- package/dist/esm/src/middlewares/mutex-flow-control-middleware.js +22 -0
- package/dist/esm/src/middlewares/retry-middleware.js +20 -3
- package/dist/esm/src/middlewares/timeout-middleware.js +3 -1
- package/dist/esm/src/types/keq-context.d.ts +10 -1
- package/dist/esm/src/types/keq-context.js +1 -1
- package/dist/esm/src/types/keq-flow-control.d.ts +1 -1
- package/dist/esm/src/types/keq-global.d.ts +1 -0
- package/dist/umd/src/constant.d.ts +2 -0
- package/dist/umd/src/constant.js +3 -1
- package/dist/umd/src/core.d.ts +30 -0
- package/dist/umd/src/core.js +162 -53
- package/dist/umd/src/create-request.js +3 -1
- package/dist/umd/src/exception/abort.exception.d.ts +3 -0
- package/dist/umd/src/exception/abort.exception.js +20 -0
- package/dist/umd/src/index.d.ts +1 -0
- package/dist/umd/src/index.js +4 -2
- package/dist/umd/src/is/is-abort-signal.d.ts +1 -0
- package/dist/umd/src/is/is-abort-signal.js +22 -0
- package/dist/umd/src/middlewares/fetch-arguments-middleware.js +4 -0
- package/dist/umd/src/middlewares/mutex-flow-control-middleware.d.ts +2 -0
- package/dist/umd/src/middlewares/mutex-flow-control-middleware.js +36 -0
- package/dist/umd/src/middlewares/retry-middleware.js +21 -4
- package/dist/umd/src/middlewares/timeout-middleware.js +4 -2
- package/dist/umd/src/types/keq-context.d.ts +10 -1
- package/dist/umd/src/types/keq-flow-control.d.ts +1 -1
- package/dist/umd/src/types/keq-global.d.ts +1 -0
- package/package.json +10 -13
- package/packages/cache/.turbo/turbo-build.log +0 -14
- package/packages/cache/dist/cache-entry/cache-entry.d.ts +0 -17
- package/packages/cache/dist/cache-entry/cache-entry.d.ts.map +0 -1
- package/packages/cache/dist/cache-entry/index.d.ts +0 -4
- package/packages/cache/dist/cache-entry/index.d.ts.map +0 -1
- package/packages/cache/dist/cache-entry/types/cache-entry-build-options.d.ts +0 -8
- package/packages/cache/dist/cache-entry/types/cache-entry-build-options.d.ts.map +0 -1
- package/packages/cache/dist/cache-entry/types/cache-entry-options.d.ts +0 -7
- package/packages/cache/dist/cache-entry/types/cache-entry-options.d.ts.map +0 -1
- package/packages/cache/dist/cache.d.ts +0 -44
- package/packages/cache/dist/cache.d.ts.map +0 -1
- package/packages/cache/dist/constants/eviction.enum.d.ts +0 -7
- package/packages/cache/dist/constants/eviction.enum.d.ts.map +0 -1
- package/packages/cache/dist/constants/index.d.ts +0 -5
- package/packages/cache/dist/constants/index.d.ts.map +0 -1
- package/packages/cache/dist/constants/max-expired-at.d.ts +0 -2
- package/packages/cache/dist/constants/max-expired-at.d.ts.map +0 -1
- package/packages/cache/dist/constants/size.enum.d.ts +0 -7
- package/packages/cache/dist/constants/size.enum.d.ts.map +0 -1
- package/packages/cache/dist/constants/strategy.enum.d.ts +0 -7
- package/packages/cache/dist/constants/strategy.enum.d.ts.map +0 -1
- package/packages/cache/dist/exceptions/cache-exception.d.ts +0 -5
- package/packages/cache/dist/exceptions/cache-exception.d.ts.map +0 -1
- package/packages/cache/dist/exceptions/index.d.ts +0 -2
- package/packages/cache/dist/exceptions/index.d.ts.map +0 -1
- package/packages/cache/dist/index.d.ts +0 -6
- package/packages/cache/dist/index.d.ts.map +0 -1
- package/packages/cache/dist/index.js +0 -1336
- package/packages/cache/dist/index.js.map +0 -1
- package/packages/cache/dist/index.mjs +0 -1305
- package/packages/cache/dist/index.mjs.map +0 -1
- package/packages/cache/dist/request-cache-handler/index.d.ts +0 -2
- package/packages/cache/dist/request-cache-handler/index.d.ts.map +0 -1
- package/packages/cache/dist/request-cache-handler/request-cache-handler.d.ts +0 -23
- package/packages/cache/dist/request-cache-handler/request-cache-handler.d.ts.map +0 -1
- package/packages/cache/dist/storage/index.d.ts +0 -6
- package/packages/cache/dist/storage/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/base-indexed-db-storage.d.ts +0 -22
- package/packages/cache/dist/storage/indexed-db-storage/base-indexed-db-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/constants/default-table-name.d.ts +0 -2
- package/packages/cache/dist/storage/indexed-db-storage/constants/default-table-name.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/index.d.ts +0 -3
- package/packages/cache/dist/storage/indexed-db-storage/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/indexed-db-storage.d.ts +0 -12
- package/packages/cache/dist/storage/indexed-db-storage/indexed-db-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/lfu-indexed-db-storage.d.ts +0 -11
- package/packages/cache/dist/storage/indexed-db-storage/lfu-indexed-db-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/lru-indexed-db-storage.d.ts +0 -11
- package/packages/cache/dist/storage/indexed-db-storage/lru-indexed-db-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/random-indexed-db-storage.d.ts +0 -11
- package/packages/cache/dist/storage/indexed-db-storage/random-indexed-db-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/ttl-indexed-db-storage.d.ts +0 -11
- package/packages/cache/dist/storage/indexed-db-storage/ttl-indexed-db-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/types/index.d.ts +0 -7
- package/packages/cache/dist/storage/indexed-db-storage/types/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-entry-metadata.d.ts +0 -12
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-entry-metadata.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-entry-response.d.ts +0 -8
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-entry-response.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-entry-visits.d.ts +0 -14
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-entry-visits.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-schema.d.ts +0 -29
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-schema.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-storage-options.d.ts +0 -14
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-storage-options.d.ts.map +0 -1
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-storage-size.d.ts +0 -13
- package/packages/cache/dist/storage/indexed-db-storage/types/indexed-db-storage-size.d.ts.map +0 -1
- package/packages/cache/dist/storage/internal-storage/internal-storage.d.ts +0 -16
- package/packages/cache/dist/storage/internal-storage/internal-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/internal-storage/types/events.d.ts +0 -16
- package/packages/cache/dist/storage/internal-storage/types/events.d.ts.map +0 -1
- package/packages/cache/dist/storage/internal-storage/types/storage-options.d.ts +0 -20
- package/packages/cache/dist/storage/internal-storage/types/storage-options.d.ts.map +0 -1
- package/packages/cache/dist/storage/keq-cache-storage.d.ts +0 -20
- package/packages/cache/dist/storage/keq-cache-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/base-memory-storage.d.ts +0 -31
- package/packages/cache/dist/storage/memory-storage/base-memory-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/index.d.ts +0 -3
- package/packages/cache/dist/storage/memory-storage/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/lfu-memory-storage.d.ts +0 -11
- package/packages/cache/dist/storage/memory-storage/lfu-memory-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/lru-memory-storage.d.ts +0 -11
- package/packages/cache/dist/storage/memory-storage/lru-memory-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/memory-storage.d.ts +0 -13
- package/packages/cache/dist/storage/memory-storage/memory-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/random-memory-storage.d.ts +0 -11
- package/packages/cache/dist/storage/memory-storage/random-memory-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/ttl-memory-storage.d.ts +0 -11
- package/packages/cache/dist/storage/memory-storage/ttl-memory-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/types/index.d.ts +0 -3
- package/packages/cache/dist/storage/memory-storage/types/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/types/memory-storage-options.d.ts +0 -9
- package/packages/cache/dist/storage/memory-storage/types/memory-storage-options.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/types/memory-storage-size.d.ts +0 -13
- package/packages/cache/dist/storage/memory-storage/types/memory-storage-size.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/utils/humanize-size.d.ts +0 -6
- package/packages/cache/dist/storage/memory-storage/utils/humanize-size.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/utils/index.d.ts +0 -3
- package/packages/cache/dist/storage/memory-storage/utils/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/memory-storage/utils/serialize-response-body.d.ts +0 -6
- package/packages/cache/dist/storage/memory-storage/utils/serialize-response-body.d.ts.map +0 -1
- package/packages/cache/dist/storage/multi-tier-storage/index.d.ts +0 -3
- package/packages/cache/dist/storage/multi-tier-storage/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/multi-tier-storage/multi-tier-storage.d.ts +0 -36
- package/packages/cache/dist/storage/multi-tier-storage/multi-tier-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/multi-tier-storage/types/index.d.ts +0 -2
- package/packages/cache/dist/storage/multi-tier-storage/types/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/multi-tier-storage/types/multi-tier-storage-options.d.ts +0 -5
- package/packages/cache/dist/storage/multi-tier-storage/types/multi-tier-storage-options.d.ts.map +0 -1
- package/packages/cache/dist/storage/tier-storage/index.d.ts +0 -3
- package/packages/cache/dist/storage/tier-storage/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/tier-storage/tier-storage.d.ts +0 -15
- package/packages/cache/dist/storage/tier-storage/tier-storage.d.ts.map +0 -1
- package/packages/cache/dist/storage/tier-storage/types/index.d.ts +0 -2
- package/packages/cache/dist/storage/tier-storage/types/index.d.ts.map +0 -1
- package/packages/cache/dist/storage/tier-storage/types/tier-storage-options.d.ts +0 -21
- package/packages/cache/dist/storage/tier-storage/types/tier-storage-options.d.ts.map +0 -1
- package/packages/cache/dist/strategies/cache-first.d.ts +0 -3
- package/packages/cache/dist/strategies/cache-first.d.ts.map +0 -1
- package/packages/cache/dist/strategies/index.d.ts +0 -5
- package/packages/cache/dist/strategies/index.d.ts.map +0 -1
- package/packages/cache/dist/strategies/network-first.d.ts +0 -3
- package/packages/cache/dist/strategies/network-first.d.ts.map +0 -1
- package/packages/cache/dist/strategies/network-only.d.ts +0 -3
- package/packages/cache/dist/strategies/network-only.d.ts.map +0 -1
- package/packages/cache/dist/strategies/stale-while-revalidate.d.ts +0 -3
- package/packages/cache/dist/strategies/stale-while-revalidate.d.ts.map +0 -1
- package/packages/cache/dist/types/index.d.ts +0 -6
- package/packages/cache/dist/types/index.d.ts.map +0 -1
- package/packages/cache/dist/types/keq-cache-key.d.ts +0 -4
- package/packages/cache/dist/types/keq-cache-key.d.ts.map +0 -1
- package/packages/cache/dist/types/keq-cache-pattern.d.ts +0 -3
- package/packages/cache/dist/types/keq-cache-pattern.d.ts.map +0 -1
- package/packages/cache/dist/types/keq-cache-rule.d.ts +0 -6
- package/packages/cache/dist/types/keq-cache-rule.d.ts.map +0 -1
- package/packages/cache/dist/types/keq-cache-strategy.d.ts +0 -6
- package/packages/cache/dist/types/keq-cache-strategy.d.ts.map +0 -1
- package/packages/cache/dist/types/request-cache-options.d.ts +0 -45
- package/packages/cache/dist/types/request-cache-options.d.ts.map +0 -1
- package/packages/cache/dist/utils/get-response-bytes.d.ts +0 -2
- package/packages/cache/dist/utils/get-response-bytes.d.ts.map +0 -1
- package/packages/cache/dist/utils/index.d.ts +0 -4
- package/packages/cache/dist/utils/index.d.ts.map +0 -1
- package/packages/cache/dist/utils/logger.d.ts +0 -5
- package/packages/cache/dist/utils/logger.d.ts.map +0 -1
- package/packages/cache/dist/utils/random.d.ts +0 -2
- package/packages/cache/dist/utils/random.d.ts.map +0 -1
- package/packages/cli/.turbo/turbo-build.log +0 -11
- package/packages/cli/dist/cli.cjs +0 -2968
- package/packages/cli/dist/cli.cjs.map +0 -1
- package/packages/cli/dist/cli.d.ts +0 -3
- package/packages/cli/dist/cli.d.ts.map +0 -1
- package/packages/cli/dist/cli.js +0 -2945
- package/packages/cli/dist/cli.js.map +0 -1
- package/packages/cli/dist/compiler/compiler.d.ts +0 -17
- package/packages/cli/dist/compiler/compiler.d.ts.map +0 -1
- package/packages/cli/dist/compiler/index.d.ts +0 -4
- package/packages/cli/dist/compiler/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/intercepter/index.d.ts +0 -3
- package/packages/cli/dist/compiler/intercepter/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/intercepter/perfect-error-message.d.ts +0 -3
- package/packages/cli/dist/compiler/intercepter/perfect-error-message.d.ts.map +0 -1
- package/packages/cli/dist/compiler/intercepter/print-information.d.ts +0 -5
- package/packages/cli/dist/compiler/intercepter/print-information.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/compile/index.d.ts +0 -6
- package/packages/cli/dist/compiler/tasks/compile/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/download/index.d.ts +0 -10
- package/packages/cli/dist/compiler/tasks/download/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/index.d.ts +0 -6
- package/packages/cli/dist/compiler/tasks/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/persist/index.d.ts +0 -5
- package/packages/cli/dist/compiler/tasks/persist/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/setup/index.d.ts +0 -15
- package/packages/cli/dist/compiler/tasks/setup/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/setup/utils/find-nearest-package-json.d.ts +0 -6
- package/packages/cli/dist/compiler/tasks/setup/utils/find-nearest-package-json.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/setup/utils/get-project-module-system.d.ts +0 -5
- package/packages/cli/dist/compiler/tasks/setup/utils/get-project-module-system.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/setup/utils/index.d.ts +0 -3
- package/packages/cli/dist/compiler/tasks/setup/utils/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/setup/utils/parse-runtime-config.d.ts +0 -3
- package/packages/cli/dist/compiler/tasks/setup/utils/parse-runtime-config.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/types/base-task-options.d.ts +0 -6
- package/packages/cli/dist/compiler/tasks/types/base-task-options.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/types/index.d.ts +0 -3
- package/packages/cli/dist/compiler/tasks/types/index.d.ts.map +0 -1
- package/packages/cli/dist/compiler/tasks/types/task-wrapper.d.ts +0 -4
- package/packages/cli/dist/compiler/tasks/types/task-wrapper.d.ts.map +0 -1
- package/packages/cli/dist/compiler/types/compiler-context.d.ts +0 -11
- package/packages/cli/dist/compiler/types/compiler-context.d.ts.map +0 -1
- package/packages/cli/dist/compiler/types/compiler-hooks.d.ts +0 -19
- package/packages/cli/dist/compiler/types/compiler-hooks.d.ts.map +0 -1
- package/packages/cli/dist/compiler/types/index.d.ts +0 -3
- package/packages/cli/dist/compiler/types/index.d.ts.map +0 -1
- package/packages/cli/dist/constants/file-naming-style.d.ts +0 -14
- package/packages/cli/dist/constants/file-naming-style.d.ts.map +0 -1
- package/packages/cli/dist/constants/index.d.ts +0 -4
- package/packages/cli/dist/constants/index.d.ts.map +0 -1
- package/packages/cli/dist/constants/qs-array-format.d.ts +0 -9
- package/packages/cli/dist/constants/qs-array-format.d.ts.map +0 -1
- package/packages/cli/dist/constants/supported-methods.d.ts +0 -2
- package/packages/cli/dist/constants/supported-methods.d.ts.map +0 -1
- package/packages/cli/dist/define-config.d.ts +0 -3
- package/packages/cli/dist/define-config.d.ts.map +0 -1
- package/packages/cli/dist/exception.d.ts +0 -6
- package/packages/cli/dist/exception.d.ts.map +0 -1
- package/packages/cli/dist/generators/index.d.ts +0 -2
- package/packages/cli/dist/generators/index.d.ts.map +0 -1
- package/packages/cli/dist/index.cjs +0 -2899
- package/packages/cli/dist/index.cjs.map +0 -1
- package/packages/cli/dist/index.d.ts +0 -6
- package/packages/cli/dist/index.d.ts.map +0 -1
- package/packages/cli/dist/index.js +0 -2853
- package/packages/cli/dist/index.js.map +0 -1
- package/packages/cli/dist/models/anchor.d.ts +0 -20
- package/packages/cli/dist/models/anchor.d.ts.map +0 -1
- package/packages/cli/dist/models/api-document_v3_1.d.ts +0 -16
- package/packages/cli/dist/models/api-document_v3_1.d.ts.map +0 -1
- package/packages/cli/dist/models/artifact.d.ts +0 -17
- package/packages/cli/dist/models/artifact.d.ts.map +0 -1
- package/packages/cli/dist/models/asset.d.ts +0 -5
- package/packages/cli/dist/models/asset.d.ts.map +0 -1
- package/packages/cli/dist/models/index.d.ts +0 -8
- package/packages/cli/dist/models/index.d.ts.map +0 -1
- package/packages/cli/dist/models/module-definition.d.ts +0 -8
- package/packages/cli/dist/models/module-definition.d.ts.map +0 -1
- package/packages/cli/dist/models/operation-definition.d.ts +0 -23
- package/packages/cli/dist/models/operation-definition.d.ts.map +0 -1
- package/packages/cli/dist/models/schema-definition.d.ts +0 -20
- package/packages/cli/dist/models/schema-definition.d.ts.map +0 -1
- package/packages/cli/dist/models/utils/to-comment.d.ts +0 -2
- package/packages/cli/dist/models/utils/to-comment.d.ts.map +0 -1
- package/packages/cli/dist/plugins/body-fallback/index.d.ts +0 -6
- package/packages/cli/dist/plugins/body-fallback/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/chinese-to-pinyin/chinese-to-pinyin.plugin.d.ts +0 -5
- package/packages/cli/dist/plugins/chinese-to-pinyin/chinese-to-pinyin.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/chinese-to-pinyin/index.d.ts +0 -2
- package/packages/cli/dist/plugins/chinese-to-pinyin/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/download-http-file/download-http-file.plugin.d.ts +0 -8
- package/packages/cli/dist/plugins/download-http-file/download-http-file.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/download-http-file/index.d.ts +0 -2
- package/packages/cli/dist/plugins/download-http-file/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/download-local-file/download-local-file.plugin.d.ts +0 -6
- package/packages/cli/dist/plugins/download-local-file/download-local-file.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/download-local-file/index.d.ts +0 -2
- package/packages/cli/dist/plugins/download-local-file/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/eslint/index.d.ts +0 -15
- package/packages/cli/dist/plugins/eslint/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/constants/index.d.ts +0 -2
- package/packages/cli/dist/plugins/generate-declaration/constants/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/constants/metadata-storage.d.ts +0 -12
- package/packages/cli/dist/plugins/generate-declaration/constants/metadata-storage.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/generate-declaration.plugin.d.ts +0 -15
- package/packages/cli/dist/plugins/generate-declaration/generate-declaration.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/generators/index.d.ts +0 -3
- package/packages/cli/dist/plugins/generate-declaration/generators/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/generators/operation-declaration/index.d.ts +0 -2
- package/packages/cli/dist/plugins/generate-declaration/generators/operation-declaration/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/generators/operation-declaration/operation.generator.d.ts +0 -15
- package/packages/cli/dist/plugins/generate-declaration/generators/operation-declaration/operation.generator.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/generators/schema-declaration/index.d.ts +0 -2
- package/packages/cli/dist/plugins/generate-declaration/generators/schema-declaration/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/generators/schema-declaration/schema.generator.d.ts +0 -15
- package/packages/cli/dist/plugins/generate-declaration/generators/schema-declaration/schema.generator.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-declaration/index.d.ts +0 -3
- package/packages/cli/dist/plugins/generate-declaration/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/constants/index.d.ts +0 -2
- package/packages/cli/dist/plugins/generate-micro-function/constants/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/constants/metadata-storage.d.ts +0 -11
- package/packages/cli/dist/plugins/generate-micro-function/constants/metadata-storage.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/generate-micro-function.plugin.d.ts +0 -11
- package/packages/cli/dist/plugins/generate-micro-function/generate-micro-function.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/generators/index.d.ts +0 -3
- package/packages/cli/dist/plugins/generate-micro-function/generators/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/generators/micro_function/index.d.ts +0 -2
- package/packages/cli/dist/plugins/generate-micro-function/generators/micro_function/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/generators/micro_function/micro-function.generator.d.ts +0 -15
- package/packages/cli/dist/plugins/generate-micro-function/generators/micro_function/micro-function.generator.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/generators/request/index.d.ts +0 -2
- package/packages/cli/dist/plugins/generate-micro-function/generators/request/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/generators/request/request.generator.d.ts +0 -11
- package/packages/cli/dist/plugins/generate-micro-function/generators/request/request.generator.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-micro-function/index.d.ts +0 -3
- package/packages/cli/dist/plugins/generate-micro-function/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-nestjs-module/constants/index.d.ts +0 -2
- package/packages/cli/dist/plugins/generate-nestjs-module/constants/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-nestjs-module/constants/metadata-storage.d.ts +0 -10
- package/packages/cli/dist/plugins/generate-nestjs-module/constants/metadata-storage.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-nestjs-module/generate-nestjs-module.d.ts +0 -10
- package/packages/cli/dist/plugins/generate-nestjs-module/generate-nestjs-module.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-nestjs-module/generators/index.d.ts +0 -2
- package/packages/cli/dist/plugins/generate-nestjs-module/generators/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-nestjs-module/generators/nestjs-module.generator.d.ts +0 -14
- package/packages/cli/dist/plugins/generate-nestjs-module/generators/nestjs-module.generator.d.ts.map +0 -1
- package/packages/cli/dist/plugins/generate-nestjs-module/index.d.ts +0 -3
- package/packages/cli/dist/plugins/generate-nestjs-module/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/index.d.ts +0 -15
- package/packages/cli/dist/plugins/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/initialize/index.d.ts +0 -2
- package/packages/cli/dist/plugins/initialize/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/initialize/initialize.plugin.d.ts +0 -15
- package/packages/cli/dist/plugins/initialize/initialize.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/overwrite-operation-id/index.d.ts +0 -2
- package/packages/cli/dist/plugins/overwrite-operation-id/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/overwrite-operation-id/overwrite-operation-id.plugin.d.ts +0 -20
- package/packages/cli/dist/plugins/overwrite-operation-id/overwrite-operation-id.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/overwrite-query-options/index.d.ts +0 -2
- package/packages/cli/dist/plugins/overwrite-query-options/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/overwrite-query-options/overwrite-query-options.plugin.d.ts +0 -18
- package/packages/cli/dist/plugins/overwrite-query-options/overwrite-query-options.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/prettier/index.d.ts +0 -2
- package/packages/cli/dist/plugins/prettier/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/prettier/prettier.plugin.d.ts +0 -6
- package/packages/cli/dist/plugins/prettier/prettier.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/shaking/index.d.ts +0 -2
- package/packages/cli/dist/plugins/shaking/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/shaking/shaking.plugin.d.ts +0 -8
- package/packages/cli/dist/plugins/shaking/shaking.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/terminal-select/index.d.ts +0 -2
- package/packages/cli/dist/plugins/terminal-select/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/terminal-select/terminal-select.plugin.d.ts +0 -18
- package/packages/cli/dist/plugins/terminal-select/terminal-select.plugin.d.ts.map +0 -1
- package/packages/cli/dist/plugins/terminal-select/types/ignore-mode.d.ts +0 -2
- package/packages/cli/dist/plugins/terminal-select/types/ignore-mode.d.ts.map +0 -1
- package/packages/cli/dist/plugins/terminal-select/types/index.d.ts +0 -2
- package/packages/cli/dist/plugins/terminal-select/types/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/terminal-select/utils/index.d.ts +0 -2
- package/packages/cli/dist/plugins/terminal-select/utils/index.d.ts.map +0 -1
- package/packages/cli/dist/plugins/terminal-select/utils/select-operation-definitions.d.ts +0 -5
- package/packages/cli/dist/plugins/terminal-select/utils/select-operation-definitions.d.ts.map +0 -1
- package/packages/cli/dist/plugins.cjs +0 -2438
- package/packages/cli/dist/plugins.cjs.map +0 -1
- package/packages/cli/dist/plugins.js +0 -2378
- package/packages/cli/dist/plugins.js.map +0 -1
- package/packages/cli/dist/transformers/api-document/api-document.transformer.d.ts +0 -8
- package/packages/cli/dist/transformers/api-document/api-document.transformer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/api-document/index.d.ts +0 -2
- package/packages/cli/dist/transformers/api-document/index.d.ts.map +0 -1
- package/packages/cli/dist/transformers/api-document/nestjs-client.renderer.d.ts +0 -14
- package/packages/cli/dist/transformers/api-document/nestjs-client.renderer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/api-document/nestjs-module.renderer.d.ts +0 -12
- package/packages/cli/dist/transformers/api-document/nestjs-module.renderer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/entrypoint/entrypoint.transformer.d.ts +0 -10
- package/packages/cli/dist/transformers/entrypoint/entrypoint.transformer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/entrypoint/index.d.ts +0 -2
- package/packages/cli/dist/transformers/entrypoint/index.d.ts.map +0 -1
- package/packages/cli/dist/transformers/index.d.ts +0 -6
- package/packages/cli/dist/transformers/index.d.ts.map +0 -1
- package/packages/cli/dist/transformers/json-schema/comment.renderer.d.ts +0 -8
- package/packages/cli/dist/transformers/json-schema/comment.renderer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/json-schema/declaration.renderer.d.ts +0 -26
- package/packages/cli/dist/transformers/json-schema/declaration.renderer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/json-schema/index.d.ts +0 -4
- package/packages/cli/dist/transformers/json-schema/index.d.ts.map +0 -1
- package/packages/cli/dist/transformers/json-schema/json-schema.transformer.d.ts +0 -7
- package/packages/cli/dist/transformers/json-schema/json-schema.transformer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/json-schema/reference.transformer.d.ts +0 -5
- package/packages/cli/dist/transformers/json-schema/reference.transformer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/json-schema/types/any-other-attribute.d.ts +0 -5
- package/packages/cli/dist/transformers/json-schema/types/any-other-attribute.d.ts.map +0 -1
- package/packages/cli/dist/transformers/json-schema/types/index.d.ts +0 -3
- package/packages/cli/dist/transformers/json-schema/types/index.d.ts.map +0 -1
- package/packages/cli/dist/transformers/json-schema/types/mixed-schema-object.d.ts +0 -7
- package/packages/cli/dist/transformers/json-schema/types/mixed-schema-object.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/comment.renderer.d.ts +0 -8
- package/packages/cli/dist/transformers/operation-definition/comment.renderer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/declaration.renderer.d.ts +0 -20
- package/packages/cli/dist/transformers/operation-definition/declaration.renderer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/index.d.ts +0 -3
- package/packages/cli/dist/transformers/operation-definition/index.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/micro-function.renderer.d.ts +0 -19
- package/packages/cli/dist/transformers/operation-definition/micro-function.renderer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/nestjs-method.renderer.d.ts +0 -15
- package/packages/cli/dist/transformers/operation-definition/nestjs-method.renderer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/operation-definition.transformer.d.ts +0 -11
- package/packages/cli/dist/transformers/operation-definition/operation-definition.transformer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/typescript-snippet.d.ts +0 -22
- package/packages/cli/dist/transformers/operation-definition/typescript-snippet.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/utils/index.d.ts +0 -2
- package/packages/cli/dist/transformers/operation-definition/utils/index.d.ts.map +0 -1
- package/packages/cli/dist/transformers/operation-definition/utils/type-name-factory.d.ts +0 -4
- package/packages/cli/dist/transformers/operation-definition/utils/type-name-factory.d.ts.map +0 -1
- package/packages/cli/dist/transformers/schema-definition/index.d.ts +0 -2
- package/packages/cli/dist/transformers/schema-definition/index.d.ts.map +0 -1
- package/packages/cli/dist/transformers/schema-definition/schema-definition.transformer.d.ts +0 -10
- package/packages/cli/dist/transformers/schema-definition/schema-definition.transformer.d.ts.map +0 -1
- package/packages/cli/dist/transformers/types/renderer.d.ts +0 -4
- package/packages/cli/dist/transformers/types/renderer.d.ts.map +0 -1
- package/packages/cli/dist/types/address.d.ts +0 -8
- package/packages/cli/dist/types/address.d.ts.map +0 -1
- package/packages/cli/dist/types/build-cli-options.d.ts +0 -19
- package/packages/cli/dist/types/build-cli-options.d.ts.map +0 -1
- package/packages/cli/dist/types/generator.d.ts +0 -7
- package/packages/cli/dist/types/generator.d.ts.map +0 -1
- package/packages/cli/dist/types/index.d.ts +0 -7
- package/packages/cli/dist/types/index.d.ts.map +0 -1
- package/packages/cli/dist/types/plugin.d.ts +0 -5
- package/packages/cli/dist/types/plugin.d.ts.map +0 -1
- package/packages/cli/dist/types/runtime-config.d.ts +0 -41
- package/packages/cli/dist/types/runtime-config.d.ts.map +0 -1
- package/packages/cli/dist/types/to-code-options.d.ts +0 -4
- package/packages/cli/dist/types/to-code-options.d.ts.map +0 -1
- package/packages/cli/dist/utils/debugger.d.ts +0 -7
- package/packages/cli/dist/utils/debugger.d.ts.map +0 -1
- package/packages/cli/dist/utils/ignore-matcher.d.ts +0 -18
- package/packages/cli/dist/utils/ignore-matcher.d.ts.map +0 -1
- package/packages/cli/dist/utils/indent.d.ts +0 -2
- package/packages/cli/dist/utils/indent.d.ts.map +0 -1
- package/packages/cli/dist/utils/is-keywords.d.ts +0 -2
- package/packages/cli/dist/utils/is-keywords.d.ts.map +0 -1
- package/packages/cli/dist/utils/is-reserved-word.d.ts +0 -2
- package/packages/cli/dist/utils/is-reserved-word.d.ts.map +0 -1
- package/packages/cli/dist/utils/is-valid-url.d.ts +0 -16
- package/packages/cli/dist/utils/is-valid-url.d.ts.map +0 -1
- package/packages/cli/dist/utils/json-schema-utils/index.d.ts +0 -11
- package/packages/cli/dist/utils/json-schema-utils/index.d.ts.map +0 -1
- package/packages/cli/dist/utils/json-schema-utils/is-array.d.ts +0 -3
- package/packages/cli/dist/utils/json-schema-utils/is-array.d.ts.map +0 -1
- package/packages/cli/dist/utils/json-schema-utils/is-mixed.d.ts +0 -4
- package/packages/cli/dist/utils/json-schema-utils/is-mixed.d.ts.map +0 -1
- package/packages/cli/dist/utils/json-schema-utils/is-non-array.d.ts +0 -3
- package/packages/cli/dist/utils/json-schema-utils/is-non-array.d.ts.map +0 -1
- package/packages/cli/dist/utils/json-schema-utils/is-ref.d.ts +0 -3
- package/packages/cli/dist/utils/json-schema-utils/is-ref.d.ts.map +0 -1
- package/packages/cli/dist/utils/json-schema-utils/types/any-other-attribute.d.ts +0 -5
- package/packages/cli/dist/utils/json-schema-utils/types/any-other-attribute.d.ts.map +0 -1
- package/packages/cli/dist/utils/json-schema-utils/types/mixed-schema-object.d.ts +0 -7
- package/packages/cli/dist/utils/json-schema-utils/types/mixed-schema-object.d.ts.map +0 -1
- package/packages/cli/dist/utils/logger.d.ts +0 -6
- package/packages/cli/dist/utils/logger.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/dereference-deep.d.ts +0 -3
- package/packages/cli/dist/utils/openapi-utils/dereference-deep.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/dereference-operation.d.ts +0 -4
- package/packages/cli/dist/utils/openapi-utils/dereference-operation.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/dereference.d.ts +0 -3
- package/packages/cli/dist/utils/openapi-utils/dereference.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/index.d.ts +0 -19
- package/packages/cli/dist/utils/openapi-utils/index.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/is-ref-defined.d.ts +0 -3
- package/packages/cli/dist/utils/openapi-utils/is-ref-defined.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/map-operation.d.ts +0 -4
- package/packages/cli/dist/utils/openapi-utils/map-operation.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/map-parameter.d.ts +0 -4
- package/packages/cli/dist/utils/openapi-utils/map-parameter.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/remove-undefined-ref.d.ts +0 -3
- package/packages/cli/dist/utils/openapi-utils/remove-undefined-ref.d.ts.map +0 -1
- package/packages/cli/dist/utils/openapi-utils/to-3_1.d.ts +0 -3
- package/packages/cli/dist/utils/openapi-utils/to-3_1.d.ts.map +0 -1
- package/packages/cli/node_modules/.bin/eslint +0 -21
- package/packages/cli/node_modules/.bin/jiti +0 -21
- package/packages/cli/node_modules/.bin/js-yaml +0 -21
- package/packages/cli/node_modules/.bin/jsonpath +0 -21
- package/packages/cli/node_modules/.bin/jsonpath-plus +0 -21
- package/packages/cli/node_modules/.bin/semver +0 -21
- package/packages/cli/node_modules/.bin/tsc +0 -21
- package/packages/cli/node_modules/.bin/tsserver +0 -21
- package/packages/exception/.turbo/turbo-build.log +0 -34
- package/packages/exception/dist/catch-exception.d.ts +0 -4
- package/packages/exception/dist/catch-exception.d.ts.map +0 -1
- package/packages/exception/dist/index.d.ts +0 -4
- package/packages/exception/dist/index.d.ts.map +0 -1
- package/packages/exception/dist/index.js +0 -112
- package/packages/exception/dist/index.js.map +0 -1
- package/packages/exception/dist/index.mjs +0 -111
- package/packages/exception/dist/index.mjs.map +0 -1
- package/packages/exception/dist/plugins/index.d.mts +0 -12
- package/packages/exception/dist/plugins/index.d.ts +0 -12
- package/packages/exception/dist/plugins/index.js +0 -95
- package/packages/exception/dist/plugins/index.mjs +0 -68
- package/packages/exception/dist/throw-exception.d.ts +0 -5
- package/packages/exception/dist/throw-exception.d.ts.map +0 -1
- package/packages/exception/dist/validate-status-code.d.ts +0 -3
- package/packages/exception/dist/validate-status-code.d.ts.map +0 -1
- package/packages/exception/node_modules/.bin/keq +0 -21
- package/packages/headers/.turbo/turbo-build.log +0 -21
- package/packages/headers/dist/index.d.ts +0 -42
- package/packages/headers/dist/index.d.ts.map +0 -1
- package/packages/headers/dist/index.js +0 -77
- package/packages/headers/dist/index.js.map +0 -1
- package/packages/headers/dist/index.mjs +0 -56
- package/packages/headers/dist/index.mjs.map +0 -1
- package/packages/keq/.turbo/turbo-build.log +0 -19
- package/packages/keq/dist/context/execution-context.d.ts +0 -26
- package/packages/keq/dist/context/execution-context.d.ts.map +0 -1
- package/packages/keq/dist/context/index.d.ts +0 -5
- package/packages/keq/dist/context/index.d.ts.map +0 -1
- package/packages/keq/dist/context/middleware-context.d.ts +0 -11
- package/packages/keq/dist/context/middleware-context.d.ts.map +0 -1
- package/packages/keq/dist/context/orchestrator-context.d.ts +0 -18
- package/packages/keq/dist/context/orchestrator-context.d.ts.map +0 -1
- package/packages/keq/dist/context/shared-context.d.ts +0 -43
- package/packages/keq/dist/context/shared-context.d.ts.map +0 -1
- package/packages/keq/dist/context/types/index.d.ts +0 -6
- package/packages/keq/dist/context/types/index.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context-data.d.ts +0 -7
- package/packages/keq/dist/context/types/keq-context-data.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context-emitter.d.ts +0 -35
- package/packages/keq/dist/context/types/keq-context-emitter.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context-options/index.d.ts +0 -6
- package/packages/keq/dist/context/types/keq-context-options/index.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context-options/keq-context-options.d.ts +0 -5
- package/packages/keq/dist/context/types/keq-context-options/keq-context-options.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context-options/keq-middleware-options.d.ts +0 -33
- package/packages/keq/dist/context/types/keq-context-options/keq-middleware-options.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context-options/keq-module-options.d.ts +0 -5
- package/packages/keq/dist/context/types/keq-context-options/keq-module-options.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context-options/keq-resolve-with-mode.d.ts +0 -2
- package/packages/keq/dist/context/types/keq-context-options/keq-resolve-with-mode.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context-options/keq-retry-options.d.ts +0 -9
- package/packages/keq/dist/context/types/keq-context-options/keq-retry-options.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-context.d.ts +0 -17
- package/packages/keq/dist/context/types/keq-context.d.ts.map +0 -1
- package/packages/keq/dist/context/types/keq-global.d.ts +0 -12
- package/packages/keq/dist/context/types/keq-global.d.ts.map +0 -1
- package/packages/keq/dist/context/utils/assign-shared-context.d.ts +0 -3
- package/packages/keq/dist/context/utils/assign-shared-context.d.ts.map +0 -1
- package/packages/keq/dist/context/utils/clone-shared-context.d.ts +0 -3
- package/packages/keq/dist/context/utils/clone-shared-context.d.ts.map +0 -1
- package/packages/keq/dist/context/utils/create-proxy-response.d.ts +0 -2
- package/packages/keq/dist/context/utils/create-proxy-response.d.ts.map +0 -1
- package/packages/keq/dist/context/utils/fork.d.ts +0 -6
- package/packages/keq/dist/context/utils/fork.d.ts.map +0 -1
- package/packages/keq/dist/context/utils/index.d.ts +0 -5
- package/packages/keq/dist/context/utils/index.d.ts.map +0 -1
- package/packages/keq/dist/context/utils/watch-object.d.ts +0 -5
- package/packages/keq/dist/context/utils/watch-object.d.ts.map +0 -1
- package/packages/keq/dist/exception/abort.exception.d.ts +0 -4
- package/packages/keq/dist/exception/abort.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/exception.d.ts +0 -5
- package/packages/keq/dist/exception/exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/bad-gateway.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/bad-gateway.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/bad-request.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/bad-request.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/conflict.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/conflict.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/content-too-large.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/content-too-large.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/forbidden.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/forbidden.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/gateway-timeout.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/gateway-timeout.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/http-version-not-supported.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/http-version-not-supported.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/im-a-teapot.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/im-a-teapot.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/index.d.ts +0 -22
- package/packages/keq/dist/exception/http-exceptions/index.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/internal-server-error.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/internal-server-error.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/method-not-allowed.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/method-not-allowed.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/not-acceptable.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/not-acceptable.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/not-founded.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/not-founded.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/not-implemented.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/not-implemented.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/precondition-failed.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/precondition-failed.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/proxy-authentication-required.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/proxy-authentication-required.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/request-timeout.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/request-timeout.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/request.exception.d.ts +0 -12
- package/packages/keq/dist/exception/http-exceptions/request.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/service-unavailable.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/service-unavailable.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/too-many-requests.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/too-many-requests.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/unauthorized.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/unauthorized.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/unsupported-media-type.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/unsupported-media-type.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/http-exceptions/uri-too-long.exception.d.ts +0 -5
- package/packages/keq/dist/exception/http-exceptions/uri-too-long.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/index.d.ts +0 -6
- package/packages/keq/dist/exception/index.d.ts.map +0 -1
- package/packages/keq/dist/exception/timeout.exception.d.ts +0 -5
- package/packages/keq/dist/exception/timeout.exception.d.ts.map +0 -1
- package/packages/keq/dist/exception/type.exception.d.ts +0 -5
- package/packages/keq/dist/exception/type.exception.d.ts.map +0 -1
- package/packages/keq/dist/index.d.ts +0 -8
- package/packages/keq/dist/index.d.ts.map +0 -1
- package/packages/keq/dist/index.js +0 -1991
- package/packages/keq/dist/index.js.map +0 -1
- package/packages/keq/dist/index.mjs +0 -1960
- package/packages/keq/dist/index.mjs.map +0 -1
- package/packages/keq/dist/middleware/index.d.ts +0 -3
- package/packages/keq/dist/middleware/index.d.ts.map +0 -1
- package/packages/keq/dist/middleware/types/index.d.ts +0 -3
- package/packages/keq/dist/middleware/types/index.d.ts.map +0 -1
- package/packages/keq/dist/middleware/types/keq-middleware.d.ts +0 -8
- package/packages/keq/dist/middleware/types/keq-middleware.d.ts.map +0 -1
- package/packages/keq/dist/middleware/types/keq-next.d.ts +0 -2
- package/packages/keq/dist/middleware/types/keq-next.d.ts.map +0 -1
- package/packages/keq/dist/middleware/utils/compose-middleware.d.ts +0 -7
- package/packages/keq/dist/middleware/utils/compose-middleware.d.ts.map +0 -1
- package/packages/keq/dist/middleware/utils/get-middleware-name.d.ts +0 -3
- package/packages/keq/dist/middleware/utils/get-middleware-name.d.ts.map +0 -1
- package/packages/keq/dist/middleware/utils/index.d.ts +0 -3
- package/packages/keq/dist/middleware/utils/index.d.ts.map +0 -1
- package/packages/keq/dist/middlewares/fetch-middleware/index.d.ts +0 -6
- package/packages/keq/dist/middlewares/fetch-middleware/index.d.ts.map +0 -1
- package/packages/keq/dist/middlewares/flow-control-middleware/abort-flow-control-middleware.d.ts +0 -3
- package/packages/keq/dist/middlewares/flow-control-middleware/abort-flow-control-middleware.d.ts.map +0 -1
- package/packages/keq/dist/middlewares/flow-control-middleware/index.d.ts +0 -4
- package/packages/keq/dist/middlewares/flow-control-middleware/index.d.ts.map +0 -1
- package/packages/keq/dist/middlewares/flow-control-middleware/serial-flow-control-middleware.d.ts +0 -3
- package/packages/keq/dist/middlewares/flow-control-middleware/serial-flow-control-middleware.d.ts.map +0 -1
- package/packages/keq/dist/middlewares/flow-control-middleware/types/keq-flow-control.d.ts +0 -9
- package/packages/keq/dist/middlewares/flow-control-middleware/types/keq-flow-control.d.ts.map +0 -1
- package/packages/keq/dist/middlewares/index.d.ts +0 -4
- package/packages/keq/dist/middlewares/index.d.ts.map +0 -1
- package/packages/keq/dist/middlewares/timeout-middleware/index.d.ts +0 -6
- package/packages/keq/dist/middlewares/timeout-middleware/index.d.ts.map +0 -1
- package/packages/keq/dist/orchestrator/executor.d.ts +0 -13
- package/packages/keq/dist/orchestrator/executor.d.ts.map +0 -1
- package/packages/keq/dist/orchestrator/index.d.ts +0 -3
- package/packages/keq/dist/orchestrator/index.d.ts.map +0 -1
- package/packages/keq/dist/orchestrator/orchestrator.d.ts +0 -25
- package/packages/keq/dist/orchestrator/orchestrator.d.ts.map +0 -1
- package/packages/keq/dist/request/core.d.ts +0 -48
- package/packages/keq/dist/request/core.d.ts.map +0 -1
- package/packages/keq/dist/request/create-request.d.ts +0 -7
- package/packages/keq/dist/request/create-request.d.ts.map +0 -1
- package/packages/keq/dist/request/index.d.ts +0 -6
- package/packages/keq/dist/request/index.d.ts.map +0 -1
- package/packages/keq/dist/request/keq.d.ts +0 -120
- package/packages/keq/dist/request/keq.d.ts.map +0 -1
- package/packages/keq/dist/request/request.d.ts +0 -79
- package/packages/keq/dist/request/request.d.ts.map +0 -1
- package/packages/keq/dist/request/types/api-schema/api-schema-select.d.ts +0 -42
- package/packages/keq/dist/request/types/api-schema/api-schema-select.d.ts.map +0 -1
- package/packages/keq/dist/request/types/api-schema/api-schema.d.ts +0 -8
- package/packages/keq/dist/request/types/api-schema/api-schema.d.ts.map +0 -1
- package/packages/keq/dist/request/types/api-schema/default-operation.d.ts +0 -18
- package/packages/keq/dist/request/types/api-schema/default-operation.d.ts.map +0 -1
- package/packages/keq/dist/request/types/api-schema/extract-method-operations.d.ts +0 -31
- package/packages/keq/dist/request/types/api-schema/extract-method-operations.d.ts.map +0 -1
- package/packages/keq/dist/request/types/api-schema/index.d.ts +0 -6
- package/packages/keq/dist/request/types/api-schema/index.d.ts.map +0 -1
- package/packages/keq/dist/request/types/api-schema/operation.d.ts +0 -17
- package/packages/keq/dist/request/types/api-schema/operation.d.ts.map +0 -1
- package/packages/keq/dist/request/types/content-type.d.ts +0 -3
- package/packages/keq/dist/request/types/content-type.d.ts.map +0 -1
- package/packages/keq/dist/request/types/index.d.ts +0 -8
- package/packages/keq/dist/request/types/index.d.ts.map +0 -1
- package/packages/keq/dist/request/types/keq-attachable-file.d.ts +0 -2
- package/packages/keq/dist/request/types/keq-attachable-file.d.ts.map +0 -1
- package/packages/keq/dist/request/types/keq-param-value.d.ts +0 -3
- package/packages/keq/dist/request/types/keq-param-value.d.ts.map +0 -1
- package/packages/keq/dist/request/types/keq-query-options.d.ts +0 -7
- package/packages/keq/dist/request/types/keq-query-options.d.ts.map +0 -1
- package/packages/keq/dist/request/types/keq-query-value.d.ts +0 -8
- package/packages/keq/dist/request/types/keq-query-value.d.ts.map +0 -1
- package/packages/keq/dist/request/types/server-sent-event.d.ts +0 -3
- package/packages/keq/dist/request/types/server-sent-event.d.ts.map +0 -1
- package/packages/keq/dist/request/utils/fix-content-type.d.ts +0 -4
- package/packages/keq/dist/request/utils/fix-content-type.d.ts.map +0 -1
- package/packages/keq/dist/request/utils/get-location-id.d.ts +0 -2
- package/packages/keq/dist/request/utils/get-location-id.d.ts.map +0 -1
- package/packages/keq/dist/request/utils/index.d.ts +0 -7
- package/packages/keq/dist/request/utils/index.d.ts.map +0 -1
- package/packages/keq/dist/request/utils/intelligent-parse-response.d.ts +0 -2
- package/packages/keq/dist/request/utils/intelligent-parse-response.d.ts.map +0 -1
- package/packages/keq/dist/request/utils/merge-keq-request-body.d.ts +0 -3
- package/packages/keq/dist/request/utils/merge-keq-request-body.d.ts.map +0 -1
- package/packages/keq/dist/request/utils/query-stringify.d.ts +0 -3
- package/packages/keq/dist/request/utils/query-stringify.d.ts.map +0 -1
- package/packages/keq/dist/request/utils/resolve-with.d.ts +0 -3
- package/packages/keq/dist/request/utils/resolve-with.d.ts.map +0 -1
- package/packages/keq/dist/request-init/index.d.ts +0 -4
- package/packages/keq/dist/request-init/index.d.ts.map +0 -1
- package/packages/keq/dist/request-init/request-init.d.ts +0 -42
- package/packages/keq/dist/request-init/request-init.d.ts.map +0 -1
- package/packages/keq/dist/request-init/types/index.d.ts +0 -3
- package/packages/keq/dist/request-init/types/index.d.ts.map +0 -1
- package/packages/keq/dist/request-init/types/keq-body-init.d.ts +0 -2
- package/packages/keq/dist/request-init/types/keq-body-init.d.ts.map +0 -1
- package/packages/keq/dist/request-init/types/keq-request-method.d.ts +0 -2
- package/packages/keq/dist/request-init/types/keq-request-method.d.ts.map +0 -1
- package/packages/keq/dist/request-init/utils/assign-request-init.d.ts +0 -3
- package/packages/keq/dist/request-init/utils/assign-request-init.d.ts.map +0 -1
- package/packages/keq/dist/request-init/utils/clone-body.d.ts +0 -2
- package/packages/keq/dist/request-init/utils/clone-body.d.ts.map +0 -1
- package/packages/keq/dist/request-init/utils/clone-headers.d.ts +0 -2
- package/packages/keq/dist/request-init/utils/clone-headers.d.ts.map +0 -1
- package/packages/keq/dist/request-init/utils/clone-request-init.d.ts +0 -3
- package/packages/keq/dist/request-init/utils/clone-request-init.d.ts.map +0 -1
- package/packages/keq/dist/request-init/utils/compile-url.d.ts +0 -3
- package/packages/keq/dist/request-init/utils/compile-url.d.ts.map +0 -1
- package/packages/keq/dist/request-init/utils/index.d.ts +0 -7
- package/packages/keq/dist/request-init/utils/index.d.ts.map +0 -1
- package/packages/keq/dist/request-init/utils/to-form-data.d.ts +0 -2
- package/packages/keq/dist/request-init/utils/to-form-data.d.ts.map +0 -1
- package/packages/keq/dist/request-init/utils/to-url-search-params.d.ts +0 -2
- package/packages/keq/dist/request-init/utils/to-url-search-params.d.ts.map +0 -1
- package/packages/keq/dist/router/index.d.ts +0 -4
- package/packages/keq/dist/router/index.d.ts.map +0 -1
- package/packages/keq/dist/router/keq-host-route.d.ts +0 -3
- package/packages/keq/dist/router/keq-host-route.d.ts.map +0 -1
- package/packages/keq/dist/router/keq-location-route.d.ts +0 -3
- package/packages/keq/dist/router/keq-location-route.d.ts.map +0 -1
- package/packages/keq/dist/router/keq-method-route.d.ts +0 -3
- package/packages/keq/dist/router/keq-method-route.d.ts.map +0 -1
- package/packages/keq/dist/router/keq-module-route.d.ts +0 -3
- package/packages/keq/dist/router/keq-module-route.d.ts.map +0 -1
- package/packages/keq/dist/router/keq-pathname-route.d.ts +0 -3
- package/packages/keq/dist/router/keq-pathname-route.d.ts.map +0 -1
- package/packages/keq/dist/router/keq-router.d.ts +0 -32
- package/packages/keq/dist/router/keq-router.d.ts.map +0 -1
- package/packages/keq/dist/router/types/index.d.ts +0 -2
- package/packages/keq/dist/router/types/index.d.ts.map +0 -1
- package/packages/keq/dist/router/types/keq-route.d.ts +0 -7
- package/packages/keq/dist/router/types/keq-route.d.ts.map +0 -1
- package/packages/keq/dist/router/utils/compose-route.d.ts +0 -3
- package/packages/keq/dist/router/utils/compose-route.d.ts.map +0 -1
- package/packages/keq/dist/router/utils/index.d.ts +0 -2
- package/packages/keq/dist/router/utils/index.d.ts.map +0 -1
- package/packages/keq/dist/types/enabled-if-string-index.d.ts +0 -24
- package/packages/keq/dist/types/enabled-if-string-index.d.ts.map +0 -1
- package/packages/keq/dist/types/exclude-unknown-properties.d.ts +0 -19
- package/packages/keq/dist/types/exclude-unknown-properties.d.ts.map +0 -1
- package/packages/keq/dist/types/index-keys.d.ts +0 -18
- package/packages/keq/dist/types/index-keys.d.ts.map +0 -1
- package/packages/keq/dist/types/index.d.ts +0 -7
- package/packages/keq/dist/types/index.d.ts.map +0 -1
- package/packages/keq/dist/types/literal-keys.d.ts +0 -18
- package/packages/keq/dist/types/literal-keys.d.ts.map +0 -1
- package/packages/keq/dist/types/loose-nested-like.d.ts +0 -11
- package/packages/keq/dist/types/loose-nested-like.d.ts.map +0 -1
- package/packages/keq/dist/types/string-index-value-of.d.ts +0 -18
- package/packages/keq/dist/types/string-index-value-of.d.ts.map +0 -1
- package/packages/keq/dist/utils/base64.d.ts +0 -3
- package/packages/keq/dist/utils/base64.d.ts.map +0 -1
- package/packages/keq/dist/utils/index.d.ts +0 -4
- package/packages/keq/dist/utils/index.d.ts.map +0 -1
- package/packages/keq/dist/utils/shallow-clone.d.ts +0 -5
- package/packages/keq/dist/utils/shallow-clone.d.ts.map +0 -1
- package/packages/keq/dist/utils/sleep.d.ts +0 -2
- package/packages/keq/dist/utils/sleep.d.ts.map +0 -1
- package/packages/keq/dist/validator/index.d.ts +0 -2
- package/packages/keq/dist/validator/index.d.ts.map +0 -1
- package/packages/keq/dist/validator/validator.d.ts +0 -65
- package/packages/keq/dist/validator/validator.d.ts.map +0 -1
- package/packages/nestjs/.turbo/turbo-build.log +0 -14
- package/packages/nestjs/dist/index.d.ts +0 -3
- package/packages/nestjs/dist/index.d.ts.map +0 -1
- package/packages/nestjs/dist/index.js +0 -70
- package/packages/nestjs/dist/index.js.map +0 -1
- package/packages/nestjs/dist/index.mjs +0 -45
- package/packages/nestjs/dist/index.mjs.map +0 -1
- package/packages/nestjs/dist/keq.module-definition.d.ts +0 -3
- package/packages/nestjs/dist/keq.module-definition.d.ts.map +0 -1
- package/packages/nestjs/dist/keq.module.d.ts +0 -7
- package/packages/nestjs/dist/keq.module.d.ts.map +0 -1
- package/packages/nestjs/dist/types/index.d.ts +0 -2
- package/packages/nestjs/dist/types/index.d.ts.map +0 -1
- package/packages/nestjs/dist/types/keq-module-options.d.ts +0 -5
- package/packages/nestjs/dist/types/keq-module-options.d.ts.map +0 -1
- package/packages/test/.turbo/turbo-build.log +0 -6
- package/packages/url/.turbo/turbo-build.log +0 -21
- package/packages/url/dist/index.d.ts +0 -5
- package/packages/url/dist/index.d.ts.map +0 -1
- package/packages/url/dist/index.js +0 -67
- package/packages/url/dist/index.js.map +0 -1
- package/packages/url/dist/index.mjs +0 -46
- package/packages/url/dist/index.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/define-config.ts","../src/constants/file-naming-style.ts","../src/constants/qs-array-format.ts","../src/constants/supported-methods.ts","../src/compiler/compiler.ts","../src/compiler/tasks/setup/index.ts","../src/utils/ignore-matcher.ts","../src/compiler/tasks/setup/utils/find-nearest-package-json.ts","../src/compiler/tasks/setup/utils/get-project-module-system.ts","../src/compiler/tasks/setup/utils/parse-runtime-config.ts","../src/types/address.ts","../src/types/runtime-config.ts","../src/utils/is-valid-url.ts","../src/compiler/tasks/download/index.ts","../src/models/artifact.ts","../src/models/anchor.ts","../src/models/api-document_v3_1.ts","../src/models/module-definition.ts","../src/models/operation-definition.ts","../src/utils/is-keywords.ts","../src/utils/is-reserved-word.ts","../src/models/schema-definition.ts","../src/utils/logger.ts","../src/models/asset.ts","../src/exception.ts","../src/utils/openapi-utils/dereference.ts","../src/utils/openapi-utils/dereference-operation.ts","../src/utils/openapi-utils/remove-undefined-ref.ts","../src/utils/openapi-utils/is-ref-defined.ts","../src/utils/json-schema-utils/is-array.ts","../src/utils/json-schema-utils/is-mixed.ts","../src/utils/json-schema-utils/is-non-array.ts","../src/utils/json-schema-utils/is-ref.ts","../src/utils/json-schema-utils/index.ts","../src/utils/openapi-utils/dereference-deep.ts","../src/utils/openapi-utils/to-3_1.ts","../src/utils/openapi-utils/map-operation.ts","../src/utils/openapi-utils/map-parameter.ts","../src/utils/openapi-utils/index.ts","../src/compiler/tasks/persist/index.ts","../src/compiler/tasks/compile/index.ts","../src/compiler/intercepter/print-information.ts","../src/compiler/intercepter/perfect-error-message.ts","../src/plugins/eslint/index.ts","../src/plugins/prettier/prettier.plugin.ts","../src/plugins/body-fallback/index.ts","../src/plugins/generate-micro-function/generate-micro-function.plugin.ts","../src/plugins/generate-micro-function/constants/metadata-storage.ts","../src/plugins/generate-micro-function/generators/micro_function/micro-function.generator.ts","../src/plugins/generate-declaration/generate-declaration.plugin.ts","../src/plugins/generate-declaration/generators/operation-declaration/operation.generator.ts","../src/transformers/json-schema/comment.renderer.ts","../src/transformers/json-schema/declaration.renderer.ts","../src/utils/indent.ts","../src/transformers/json-schema/reference.transformer.ts","../src/transformers/json-schema/json-schema.transformer.ts","../src/transformers/schema-definition/schema-definition.transformer.ts","../src/transformers/operation-definition/comment.renderer.ts","../src/transformers/operation-definition/declaration.renderer.ts","../src/transformers/operation-definition/utils/type-name-factory.ts","../src/transformers/operation-definition/micro-function.renderer.ts","../src/transformers/operation-definition/typescript-snippet.ts","../src/transformers/operation-definition/nestjs-method.renderer.ts","../src/transformers/operation-definition/operation-definition.transformer.ts","../src/transformers/entrypoint/entrypoint.transformer.ts","../src/transformers/api-document/nestjs-client.renderer.ts","../src/transformers/api-document/nestjs-module.renderer.ts","../src/transformers/api-document/api-document.transformer.ts","../src/plugins/generate-declaration/generators/schema-declaration/schema.generator.ts","../src/plugins/generate-declaration/constants/metadata-storage.ts","../src/plugins/generate-micro-function/generators/request/request.generator.ts","../src/plugins/generate-nestjs-module/generate-nestjs-module.ts","../src/plugins/generate-nestjs-module/constants/metadata-storage.ts","../src/plugins/generate-nestjs-module/generators/nestjs-module.generator.ts","../src/plugins/chinese-to-pinyin/chinese-to-pinyin.plugin.ts","../src/plugins/download-http-file/download-http-file.plugin.ts","../src/plugins/download-local-file/download-local-file.plugin.ts","../src/plugins/shaking/shaking.plugin.ts","../src/plugins/terminal-select/utils/select-operation-definitions.ts","../src/plugins/terminal-select/terminal-select.plugin.ts","../src/plugins/initialize/initialize.plugin.ts","../src/plugins/overwrite-query-options/overwrite-query-options.plugin.ts"],"sourcesContent":["import { RawConfig } from './types/runtime-config.js'\n\n\nexport function defineConfig(config: RawConfig): RawConfig {\n return config\n}\n","\nexport enum FileNamingStyle {\n camelCase = 'camelCase',\n capitalCase = 'capitalCase',\n constantCase = 'constantCase',\n dotCase = 'dotCase',\n headerCase = 'headerCase',\n noCase = 'noCase',\n paramCase = 'paramCase',\n pascalCase = 'pascalCase',\n pathCase = 'pathCase',\n sentenceCase = 'sentenceCase',\n snakeCase = 'snakeCase',\n}\n","export enum QsArrayFormat {\n brackets = 'brackets',\n indices = 'indices',\n repeat = 'repeat',\n comma = 'comma',\n space = 'space',\n pipe = 'pipe',\n}\n","export const SupportedMethods = [\n 'get',\n 'post',\n 'put',\n 'delete',\n 'patch',\n 'head',\n 'options',\n]\n","\n\nimport { Listr } from 'listr2'\nimport { AsyncParallelHook, AsyncSeriesBailHook, AsyncSeriesHook, SyncHook } from 'tapable'\nimport { CompilerHooks, CompilerContext } from './types/index.js'\nimport {\n ModuleDefinition,\n} from '~/models/index.js'\nimport {\n createCompileTask,\n createDownloadTask,\n createPersistTask,\n createSetupTask,\n SetupTaskOptions,\n TaskWrapper,\n} from './tasks/index.js'\nimport {\n perfectErrorMessage,\n printInformation,\n} from './intercepter/index.js'\nimport {\n InitializePlugin,\n TerminalSelectPluginOptions,\n} from '~/plugins/index.js'\nimport { Address } from '~/types/index.js'\n\n\ninterface Options extends SetupTaskOptions {\n includes: string[]\n build: boolean\n interactive?: boolean | TerminalSelectPluginOptions\n}\n\n\nexport class Compiler {\n context: CompilerContext = {}\n\n hooks: CompilerHooks = {\n setup: new AsyncParallelHook<[TaskWrapper]>(['task']),\n afterSetup: new AsyncSeriesHook<[TaskWrapper]>(['task']),\n\n beforeDownload: new AsyncSeriesHook<[TaskWrapper]>(['task']),\n download: new AsyncSeriesBailHook<[Address, ModuleDefinition, TaskWrapper], string | undefined>(['address', 'moduleDefinition', 'task']),\n afterDownload: new AsyncSeriesHook<[TaskWrapper]>(['task']),\n\n beforeCompile: new AsyncSeriesHook<[TaskWrapper]>(['task']),\n compile: new AsyncParallelHook<[TaskWrapper]>(['task']),\n afterCompile: new AsyncSeriesHook<[TaskWrapper]>(['task']),\n\n beforePersist: new AsyncSeriesHook<[TaskWrapper]>(['task']),\n persist: new AsyncParallelHook<[TaskWrapper]>(['task']),\n afterPersist: new AsyncSeriesHook<[TaskWrapper]>(['task']),\n\n done: new SyncHook<[]>(),\n }\n\n constructor(\n public options: Options,\n ) {\n for (const hook of Object.values(this.hooks)) {\n hook.intercept(perfectErrorMessage())\n }\n\n this.hooks.afterSetup.intercept(printInformation(0))\n this.hooks.afterPersist.intercept(printInformation(0))\n\n new InitializePlugin({\n build: options.build,\n interactive: options.interactive,\n includes: options.includes,\n }).apply(this)\n }\n\n async run(): Promise<void> {\n const options = this.options\n\n const tasks = new Listr<CompilerContext>(\n [\n createSetupTask(this, options),\n createDownloadTask(this, { skipIgnoredModules: !options.interactive }),\n createCompileTask(this, { enabled: !!options.build }),\n createPersistTask(this),\n ],\n {\n concurrent: false,\n renderer: 'default',\n rendererOptions: {\n suffixSkips: true,\n collapseSubtasks: false,\n collapseErrors: false,\n },\n },\n )\n\n await tasks.run(this.context)\n\n await this.hooks.done.promise()\n }\n}\n","import fs from 'fs-extra'\nimport path from 'path'\nimport { CosmiconfigResult } from 'cosmiconfig'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { ListrTask } from 'listr2'\nimport { IgnoreMatcher, IgnoreMatcherRule } from '~/utils/ignore-matcher.js'\nimport { findNearestPackageJson, getProjectModuleSystem } from './utils/index.js'\nimport type { BaseTaskOptions } from '../types/base-task-options.js'\nimport type { Compiler } from '../../compiler.js'\nimport { CompilerContext } from '../../types/index.js'\nimport { parseRuntimeConfig } from './utils/parse-runtime-config.js'\n\n\nexport interface SetupTaskOptions {\n config?: string\n debug?: boolean\n tolerant?: boolean\n\n ignore?: false | {\n rules: IgnoreMatcherRule[]\n }\n}\n\nconst explore = cosmiconfig('keq')\n\n\nfunction main(compiler: Compiler, options: SetupTaskOptions): ListrTask<CompilerContext> {\n return {\n task: async (context, task) => {\n const result: CosmiconfigResult = options?.config\n ? await explore.load(options.config)\n : await explore.search()\n\n if (!result || ('isEmpty' in result && result.isEmpty)) {\n throw new Error('Cannot find config file.')\n }\n\n const rc = parseRuntimeConfig(result.config)\n\n if (options?.debug) {\n await fs.ensureDir('.keq')\n rc.debug = true\n }\n\n rc.tolerant = Boolean(rc.tolerant)\n\n const packageJsonInfo = findNearestPackageJson()\n if (packageJsonInfo) {\n const moduleSystem = getProjectModuleSystem(packageJsonInfo)\n rc.esm = moduleSystem === 'esm'\n }\n\n context.rc = rc\n\n\n // Setup IgnoreMatcher\n\n let matcher: IgnoreMatcher = new IgnoreMatcher([])\n if (result.filepath) {\n const ignoreFilepath = path.resolve(path.dirname(result.filepath), '.keqignore')\n if (await fs.exists(ignoreFilepath)) {\n matcher = await IgnoreMatcher.read(ignoreFilepath)\n }\n }\n\n const ignoreRules = options.ignore === false ? [] : options.ignore?.rules || []\n for (const rule of ignoreRules) {\n matcher.append({\n persist: !!rule.persist,\n ignore: rule.ignore,\n moduleName: rule.moduleName,\n operationMethod: rule.operationMethod,\n operationPathname: rule.operationPathname,\n })\n }\n\n context.matcher = matcher\n\n await compiler.hooks.setup.promise(task)\n },\n }\n}\n\nexport function createSetupTask(compiler: Compiler, options: SetupTaskOptions & BaseTaskOptions): ListrTask<CompilerContext> {\n return {\n title: 'Setup',\n enabled: options?.enabled,\n skip: options?.skip,\n task: (context, task) => task.newListr(\n [\n main(compiler, options),\n {\n task: (context, task) => compiler.hooks.afterSetup\n .promise(task),\n },\n ],\n {\n concurrent: false,\n },\n ),\n }\n}\n","import * as R from 'ramda'\nimport fs from 'fs-extra'\nimport { OperationDefinition, ModuleDefinition } from '~/models/index.js'\n\n\nexport interface IgnoreMatcherRule {\n persist: boolean\n ignore: boolean\n moduleName: string\n operationMethod: string\n operationPathname: string\n}\n\n\nexport class IgnoreMatcher {\n private rules: IgnoreMatcherRule[]\n\n constructor(rules: IgnoreMatcherRule[]) {\n this.rules = rules\n }\n\n static async read(filepath: string): Promise<IgnoreMatcher> {\n let content = await fs.readFile(filepath, 'utf-8')\n\n content = content\n .replace(/\\r\\n/g, '\\n')\n .replace(/\\r/g, '\\n')\n .replace(/#.*$/gm, '')\n .replace(/\\n+/g, '\\n')\n .trim()\n\n let rules = content\n .split('\\n')\n .map((line) => line.trim())\n .filter((line) => line.length > 0)\n .map((line): IgnoreMatcherRule => {\n const matched = line.match(/^(!)?\\s*([^\\s/]+)\\s+([^\\s/]+)\\s+([^\\s]+)$/)\n if (!matched) throw new Error(`Invalid ignore rule: \"${line}\"`)\n\n const [, flag, moduleName, operationMethod, operationPathname] = matched\n\n return {\n persist: true,\n ignore: !flag,\n moduleName,\n operationMethod: operationMethod.toLowerCase(),\n operationPathname,\n }\n })\n rules = R.sortBy(\n R.prop('ignore'),\n rules,\n )\n\n rules = R.uniqWith(\n (a, b) => a.moduleName === b.moduleName && a.operationMethod === b.operationMethod && a.operationPathname === b.operationPathname,\n rules,\n )\n\n return new IgnoreMatcher(rules)\n }\n\n async write(filepath: string): Promise<void> {\n const ruleGroups = R.compose(\n R.groupBy((rule: IgnoreMatcherRule) => rule.moduleName),\n R.reverse,\n R.uniqWith<IgnoreMatcherRule>(\n (a, b) => a.moduleName === b.moduleName && a.operationMethod === b.operationMethod && a.operationPathname === b.operationPathname,\n ),\n R.filter((rule: IgnoreMatcherRule) => rule.persist),\n )(this.rules)\n\n const content = Object.entries(ruleGroups)\n .sort((a, b) => {\n const aModuleName = a[0]\n const bModuleName = b[0]\n\n if (aModuleName === '*') return -1\n if (bModuleName === '*') return 1\n\n return aModuleName.localeCompare(bModuleName)\n })\n .map(([, rules]) => (rules || [])\n .sort((a, b) => {\n if (a.ignore !== b.ignore) return a.ignore ? -1 : 1\n\n if (a.operationMethod === '*') return -1\n if (b.operationMethod === '*') return 1\n if (a.operationPathname === '*') return -1\n if (b.operationPathname === '*') return 1\n\n if (a.operationMethod !== b.operationMethod) return a.operationMethod.localeCompare(b.operationMethod)\n if (a.operationPathname !== b.operationPathname) return a.operationPathname.localeCompare(b.operationPathname)\n\n return 0\n })\n .map((rule) => `${rule.ignore ? '' : '! '}${rule.moduleName} ${rule.operationMethod.toUpperCase()} ${rule.operationPathname}`)\n .join('\\n'))\n .join('\\n\\n')\n\n await fs.writeFile(filepath, content, 'utf-8')\n }\n\n append(rule: IgnoreMatcherRule): void {\n this.rules.unshift(rule)\n }\n\n // if operation is ignored, return true\n isOperationIgnored(operationDefinition: OperationDefinition): boolean {\n const moduleName = operationDefinition.module.name\n const operationMethod = operationDefinition.method.toLowerCase()\n const operationPathname = operationDefinition.pathname\n\n for (const rule of this.rules) {\n if (rule.moduleName !== '*' && rule.moduleName !== moduleName) continue\n if (rule.operationMethod !== '*' && rule.operationMethod !== operationMethod) continue\n if (rule.operationPathname !== '*' && rule.operationPathname !== operationPathname) continue\n\n return rule.ignore\n }\n\n return false\n }\n\n isModuleIgnored(moduleDefinition: ModuleDefinition): boolean {\n const moduleName = moduleDefinition.name\n\n for (const rule of this.rules) {\n if (!rule.ignore) {\n if (rule.moduleName === '*' || rule.moduleName === moduleName) return false\n continue\n }\n\n if (rule.operationMethod !== '*') continue\n if (rule.operationPathname !== '*') continue\n\n if (rule.moduleName === '*' || rule.moduleName === moduleName) return true\n }\n\n return false\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nexport interface PackageJsonInfo {\n json: any\n path: string\n}\n\n\nexport function findNearestPackageJson(startDir = process.cwd()): PackageJsonInfo | null {\n let dir = startDir\n // 向上遍历直到磁盘根目录\n while (true) {\n const pkgPath = path.join(dir, 'package.json')\n if (fs.existsSync(pkgPath)) {\n const json = JSON.parse(fs.readFileSync(pkgPath, 'utf8'))\n return { json, path: pkgPath }\n }\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n return null\n}\n","import { PackageJsonInfo } from './find-nearest-package-json.js'\n\ntype ModuleSystem = 'esm' | 'cjs'\n\nexport function getProjectModuleSystem(pkgInfo: PackageJsonInfo): ModuleSystem {\n if (!pkgInfo?.json) return 'cjs'\n const { json } = pkgInfo\n\n if (json.type === 'module') return 'esm'\n return 'cjs'\n}\n","import { Value } from '@sinclair/typebox/value'\nimport { RawConfig, RuntimeConfig, Plugin } from '~/types/index.js'\n\n\nexport function parseRuntimeConfig(data: unknown): RuntimeConfig {\n try {\n // Preserve the original plugins array to avoid losing Plugin instance properties\n const originalPlugins = typeof data === 'object' && data !== null && 'plugins' in data\n ? (data as Record<string, unknown>).plugins\n : undefined\n\n const parsed = Value.Parse(RawConfig, data)\n\n // Restore the original plugins if they existed\n if (originalPlugins !== undefined) {\n parsed.plugins = originalPlugins as Plugin[]\n }\n\n return parsed\n } catch (error) {\n if (error instanceof Error) {\n error.message = `Invalid Config: ${error.message}`\n }\n throw error\n }\n}\n","import { Static, Type } from '@sinclair/typebox'\n\n\nexport const Address = Type.Object({\n url: Type.String(),\n headers: Type.Optional(Type.Record(Type.String(), Type.String(), { default: {} })),\n encoding: Type.Optional(\n Type.Union([\n Type.Literal('utf8'),\n Type.Literal('ascii'),\n ], { default: 'utf8' }),\n ),\n})\n\nexport type Address = Static<typeof Address>\n","import * as R from 'ramda'\nimport { StaticDecode, StaticEncode, Type } from '@sinclair/typebox'\nimport { FileNamingStyle } from '../constants/file-naming-style.js'\nimport { Plugin } from './plugin.js'\nimport { Address } from './address.js'\nimport { isValidURL } from '../utils/is-valid-url.js'\n\n\nconst Modules = Type.Transform(\n Type.Record(\n Type.String(),\n Type.Union([Type.String(), Address]),\n ),\n)\n .Decode((value): Record<string, Address> => {\n const keys = Object.keys(value)\n\n for (const key of keys) {\n if (!/^[A-Za-z_][A-Za-z0-9_$]*$/.test(key)) {\n throw new Error(`Module name \"${key}\" is not valid. It must start with a letter or underscore, and can only contain letters, numbers, and underscores.`)\n }\n }\n\n const keysGroupByLowerCase = R.groupBy(R.toLower, keys)\n\n for (const groupKey in keysGroupByLowerCase) {\n const keys = keysGroupByLowerCase[groupKey] || []\n if (keys.length > 1) {\n throw new Error(`Module names ${keys.map((name) => `\"${name}\"`).join(', ')} are case-insensitively duplicated.`)\n }\n }\n\n for (const key in value) {\n const url = typeof value[key] === 'string' ? value[key] : value[key].url\n\n if (isValidURL(url)) continue\n\n throw new Error(`The ${JSON.stringify(url)} of module \"${key}\" is not a valid URL.`)\n }\n\n return R.map(\n (item: string | Address): Address => (typeof item !== 'string' ? item : { url: item, headers: {}, encoding: 'utf8' }),\n value,\n )\n })\n .Encode((value) => value)\n\n\nexport const RawConfig = Type.Object({\n mode: Type.Optional(\n Type.Union([\n Type.Literal('micro-function'),\n Type.Literal('nestjs-module'),\n Type.Literal('none'),\n ], { default: 'micro-function' }),\n ),\n\n /**\n * Whether to generate ES Module code\n *\n * If not specified, the module system will be inferred from the nearest package.json \"type\" field\n * or defaults to \"cjs\" if no package.json is found.\n */\n esm: Type.Optional(Type.Boolean({ default: false })),\n\n /**\n * Output directory for generated files\n */\n outdir: Type.String({ default: `${process.cwd()}/api` }),\n\n /**\n * File naming style for generated files\n */\n fileNamingStyle: Type.Enum(FileNamingStyle, { default: FileNamingStyle.snakeCase }),\n\n modules: Modules,\n\n debug: Type.Optional(Type.Boolean({ default: false })),\n\n /**\n * Whether to tolerate wrong openapi/swagger structure\n */\n tolerant: Type.Optional(Type.Boolean({ default: false })),\n\n plugins: Type.Optional(Type.Array(Type.Unsafe<Plugin>(Type.Any()), { default: [] })),\n})\n\nexport type RawConfig = StaticEncode<typeof RawConfig>\nexport type RuntimeConfig = StaticDecode<typeof RawConfig>\n","/**\n * 通用 URL 验证正则表达式,支持任意协议\n *\n * 格式: protocol://[user:password@][host][:port][/path][?query][#fragment]\n *\n * 支持的协议示例:\n * - http://, https://\n * - file:// (支持 file:///path 和 file://host/path 两种格式)\n * - ftp://, sftp://\n * - ws://, wss://\n * - 以及任何其他自定义协议\n */\nconst URL_REGEX = /^[a-zA-Z][a-zA-Z0-9+.-]*:\\/\\/(?:[^\\s@]+@)?[^\\s/:?#]*(?::\\d+)?(?:\\/[^\\s?#]*)?(?:\\?[^\\s#]*)?(?:#[^\\s]*)?$/\n\n/**\n * 验证是否为有效的 URL\n *\n * @param url - 待验证的 URL 字符串\n * @returns 如果是有效的 URL 返回 true,否则返回 false\n *\n * @example\n * ```typescript\n * isValidURL('http://example.com') // true\n * isValidURL('https://example.com:8080/path?query=1#fragment') // true\n * isValidURL('file:///path/to/file.json') // true\n * isValidURL('not a url') // false\n * ```\n */\nexport function isValidURL(url: string): boolean {\n return URL_REGEX.test(url)\n}\n","import { ListrTask, PRESET_TIMER } from 'listr2'\nimport { validate } from '@scalar/openapi-parser'\nimport { ModuleDefinition, ApiDocumentV3_1 } from '~/models/index.js'\nimport { BaseTaskOptions } from '../types/base-task-options.js'\nimport type { Compiler } from '~/compiler/compiler.js'\nimport { CompilerContext } from '~/compiler/index.js'\nimport { Exception } from '~/exception.js'\nimport { OpenapiUtils } from '~/utils/openapi-utils/index.js'\n\n\ninterface DownloadTaskOptions {\n skipIgnoredModules?: boolean\n}\n\nfunction main(compiler: Compiler, options?: DownloadTaskOptions): ListrTask<CompilerContext> {\n return {\n task: (context, task) => {\n if (!context.rc || !context.matcher) {\n throw new Error('Please run setup task first.')\n }\n\n const rc = context.rc\n const matcher = context.matcher\n\n context.documents = []\n\n return task.newListr(\n Object.entries(rc.modules)\n .map(([moduleName, address]) => new ModuleDefinition(moduleName, address))\n .map((moduleDefinition): ListrTask<CompilerContext> => ({\n title: moduleDefinition.name,\n task: async (ctx, task) => {\n if (options?.skipIgnoredModules && matcher.isModuleIgnored(moduleDefinition)) {\n task.skip(`(${moduleDefinition.name}) is ignored`)\n return\n }\n\n task.output = `Downloaded from ${moduleDefinition.address.url}`\n\n const content = await compiler.hooks.download.promise(moduleDefinition.address, moduleDefinition, task)\n\n if (!content) {\n throw new Exception(moduleDefinition, `Cannot download document from ${moduleDefinition.address.url}`)\n }\n\n const spec = JSON.parse(content)\n\n const { valid, errors } = await validate(spec)\n if (!valid) {\n const message = `${moduleDefinition.name} module openapi/swagger file does not conform to the openapi specifications or have grammatical errors, which may cause unexpected errors: \\n${errors?.map((e) => ` - ${e.message}`).join('\\n')}`\n task.output = message\n }\n\n OpenapiUtils.dereferenceOperation(spec)\n\n const document = new ApiDocumentV3_1(\n spec,\n moduleDefinition,\n )\n\n ctx.documents?.push(document)\n },\n })),\n {\n concurrent: true,\n exitOnError: false,\n collectErrors: 'minimal',\n rendererOptions: {\n collapseSubtasks: false,\n // collapseSkips: false,\n suffixSkips: true,\n timer: PRESET_TIMER,\n },\n },\n )\n },\n }\n}\n\nexport function createDownloadTask(compiler: Compiler, options?: DownloadTaskOptions & BaseTaskOptions): ListrTask<CompilerContext> {\n return {\n title: 'Download',\n enabled: options?.enabled,\n skip: options?.skip,\n task: (_, task) => task.newListr(\n [\n main(compiler, options),\n {\n task: (context, task) => compiler.hooks.afterDownload\n .promise(task),\n },\n ],\n {\n concurrent: false,\n },\n ),\n }\n}\n","import * as path from 'path'\nimport { Anchor } from './anchor.js'\n\n\nconst HeaderComment = [\n '// Code generated by keq-cli. DO NOT EDIT.',\n '// Code generated by keq-cli. DO NOT EDIT.',\n '// Code generated by keq-cli. DO NOT EDIT.',\n '',\n '',\n].join('\\n')\n\nexport class Artifact {\n id: string\n filepath: string\n content: string\n extensionName\n anchor = new Anchor(this)\n\n constructor(options: {\n id: string\n filepath: string\n content: string\n extensionName?: string\n }) {\n this.id = options.id\n this.filepath = options.filepath\n this.extensionName = options.extensionName || path.extname(options.filepath)\n this.content = options.content\n }\n\n get dirname(): string {\n return path.dirname(this.filepath)\n }\n\n renderer(): string {\n return `${HeaderComment}${this.content}`\n }\n}\n","import type { Artifact } from './artifact.js'\n\nclass AnchorBlock {\n constructor(\n private artifact: Artifact,\n ) {}\n\n /**\n * Append content to the end of the anchor block.\n */\n append(anchorName: string, content: string): void {\n const lines = this.artifact.content.split('\\n')\n\n const anchor = `@anchor:${anchorName}:end`\n const anchorIndex = lines.findIndex((line) => line.includes(`/* ${anchor} */`))\n\n if (anchorIndex === -1) {\n throw new Error(`\"${anchor}\" not found in artifact \"${this.artifact.filepath}\".`)\n }\n\n lines.splice(anchorIndex, 0, content)\n this.artifact.content = lines.join('\\n')\n }\n\n prepend(anchorName: string, content: string): void {\n const lines = this.artifact.content.split('\\n')\n\n const anchor = `@anchor:${anchorName}:start`\n const anchorIndex = lines.findIndex((line) => line.includes(`/* ${anchor} */`))\n\n if (anchorIndex === -1) {\n throw new Error(`\"${anchor}\" not found in artifact \"${this.artifact.filepath}\".`)\n }\n\n lines.splice(anchorIndex + 1, 0, content)\n this.artifact.content = lines.join('\\n')\n }\n\n replace(anchorName: string, content: string): void {\n const lines = this.artifact.content.split('\\n')\n const startIndex = lines.findIndex((line) => line.includes(`/* @anchor:${anchorName}:start */`))\n const endIndex = lines.findIndex((line) => line.includes(`/* @anchor:${anchorName}:end */`))\n\n if (startIndex === -1 || endIndex === -1 || endIndex <= startIndex) {\n throw new Error(`\"@anchor:${anchorName}:start\" or \"@anchor:${anchorName}:end\" not found in artifact \"${this.artifact.filepath}\".`)\n }\n\n lines.splice(startIndex + 1, endIndex - startIndex - 1, content)\n this.artifact.content = lines.join('\\n')\n }\n}\n\n\nexport class Anchor {\n block: AnchorBlock\n\n constructor(\n private artifact: Artifact,\n ) {\n this.block = new AnchorBlock(artifact)\n }\n\n append(anchorName: string, content: string): void {\n const lines = this.artifact.content.split('\\n')\n\n const anchor = `@anchor:${anchorName}`\n const anchorIndex = lines.findIndex((line) => line.includes(`/* ${anchor} */`))\n\n if (anchorIndex === -1) {\n throw new Error(`\"${anchor}\" not found in artifact \"${this.artifact.filepath}\".`)\n }\n\n lines.splice(anchorIndex + 1, 0, content)\n this.artifact.content = lines.join('\\n')\n }\n\n prepend(anchorName: string, content: string): void {\n const lines = this.artifact.content.split('\\n')\n\n const anchor = `@anchor:${anchorName}`\n const anchorIndex = lines.findIndex((line) => line.includes(`/* ${anchor} */`))\n\n if (anchorIndex === -1) {\n throw new Error(`\"${anchor}\" not found in artifact \"${this.artifact.filepath}\".`)\n }\n\n lines.splice(anchorIndex, 0, content)\n this.artifact.content = lines.join('\\n')\n }\n}\n","import * as R from 'ramda'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { ModuleDefinition } from './module-definition.js'\nimport { SupportedMethods } from '~/constants/supported-methods.js'\nimport { OperationDefinition } from './operation-definition.js'\nimport { SchemaDefinition } from './schema-definition.js'\nimport { logger } from '~/utils/logger.js'\n\n\nexport class ApiDocumentV3_1 {\n readonly module: ModuleDefinition\n readonly specification: OpenAPIV3_1.Document\n\n constructor(specification: OpenAPIV3_1.Document, module: ModuleDefinition) {\n this.module = module\n this.specification = specification\n }\n\n get schemas(): SchemaDefinition[] {\n const module = this.module\n\n return Object.entries(this.specification.components?.schemas || {})\n .map(([name, schema]) => new SchemaDefinition({\n name,\n schema,\n module,\n document: this,\n }))\n }\n\n get operations(): OperationDefinition[] {\n const module = this.module\n\n return Object.entries(this.specification.paths || {})\n .flatMap(([pathname, pathItem]) => Object.entries(pathItem || {})\n .filter(([method]) => SupportedMethods.includes(method.toLowerCase()))\n .map(([method, operation]) => new OperationDefinition({\n method,\n pathname,\n operation,\n module,\n document: this,\n })))\n }\n\n isEmpty(): boolean {\n return R.isEmpty(this.specification.paths)\n }\n\n dereference($ref: string): SchemaDefinition | undefined {\n if ($ref.startsWith('#/')) {\n return this.schemas.find((schema) => schema.id.endsWith($ref))\n }\n\n logger.warn(`The $ref(${$ref}) is not defined in ${this.module.name} openapi/swagger.`)\n }\n\n isRefDefined($ref: string): boolean {\n if ($ref.startsWith('#/')) {\n const path = $ref.replace('#/', '').split('/')\n return R.path(path, this.specification) !== undefined\n }\n\n return false\n }\n\n static unknown(): ApiDocumentV3_1 {\n return new ApiDocumentV3_1({}, ModuleDefinition.unknown())\n }\n}\n","import { Address } from '~/types/address.js'\n\n\nexport class ModuleDefinition {\n name: string\n address: Address\n\n constructor(name: string, address: string | Address) {\n this.name = name\n\n if (typeof address === 'string') {\n this.address = { url: address, headers: {}, encoding: 'utf8' }\n } else {\n this.address = address\n }\n }\n\n static unknown(): ModuleDefinition {\n return new ModuleDefinition('', { url: '', headers: {}, encoding: 'utf8' })\n }\n}\n","import * as R from 'ramda'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { ModuleDefinition } from './module-definition.js'\nimport { isKeywords } from '~/utils/is-keywords.js'\nimport { isReservedWord } from '~/utils/is-reserved-word.js'\nimport { ApiDocumentV3_1 } from './api-document_v3_1.js'\nimport { JSONPath } from 'jsonpath-plus'\nimport { SchemaDefinition } from './schema-definition.js'\n\n\nexport class OperationDefinition {\n readonly module: ModuleDefinition\n\n readonly operationId: string\n readonly method: string\n readonly pathname: string\n readonly operation: OpenAPIV3_1.OperationObject\n readonly document: ApiDocumentV3_1\n\n get id(): string {\n return `${this.module.address}#/paths/${this.pathname}/${this.method}`\n }\n\n constructor(args: {\n method: string\n pathname: string\n operation: OpenAPIV3_1.OperationObject\n module: ModuleDefinition\n document: ApiDocumentV3_1\n }) {\n this.module = args.module\n this.method = args.method.toLowerCase()\n this.pathname = args.pathname\n this.document = args.document\n this.operationId = this.formatOperationId(args.method, args.pathname, args.operation)\n\n this.operation = {\n ...args.operation,\n operationId: this.operationId,\n }\n }\n\n private formatOperationId(method: string, pathname: string, operation: OpenAPIV3_1.OperationObject): string {\n const operationId = operation.operationId\n\n if (\n operationId\n && operationId !== 'index'\n && !isKeywords(operationId)\n && !isReservedWord(operationId)\n ) {\n return operationId as string\n }\n\n return `${method}_${pathname}`\n .replace(/\\//g, '_')\n .replace(/-/g, '_')\n .replace(/:/g, '$$')\n .replace(/{(.+)}/, '$$$1')\n }\n\n getDependencies(): SchemaDefinition[] {\n const refs = R.uniq([\n ...JSONPath<string>({\n path: '$.requestBody.content..schema..$ref',\n json: this.operation,\n }),\n ...JSONPath<string>({\n path: '$.responses..content..schema..$ref',\n json: this.operation,\n }),\n ...JSONPath<string>({\n path: '$.parameters..schema..$ref',\n json: this.operation,\n }),\n ])\n\n const dependencies = refs\n .filter((ref) => typeof ref === 'string' && ref)\n .map((ref) => {\n const schemaDefinition = this.document.dereference(ref)\n if (schemaDefinition) return schemaDefinition\n\n return SchemaDefinition.unknown()\n })\n\n return dependencies\n }\n}\n","const keywords = [\n 'break',\n 'case',\n 'catch',\n 'continue',\n 'default',\n 'delete',\n 'do',\n 'else',\n 'finally',\n 'for',\n 'function',\n 'if',\n 'in',\n 'instanceof',\n 'new',\n 'return',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'while',\n 'with',\n]\n\nexport function isKeywords(str: string): boolean {\n return keywords.includes(str)\n}\n","\nconst reservedWords = [\n 'abstract',\n 'boolean',\n 'byte',\n 'char',\n 'class',\n 'const',\n 'debugger',\n 'double',\n 'enum',\n 'export',\n 'extends',\n 'final',\n 'float',\n 'goto',\n 'implements',\n 'import',\n 'int',\n 'interface',\n 'long',\n 'native',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'short',\n 'static',\n 'super',\n 'synchronized',\n 'throws',\n 'transient',\n 'volatile',\n]\n\nexport function isReservedWord(str: string): boolean {\n return reservedWords.includes(str)\n}\n","import * as R from 'ramda'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { ModuleDefinition } from './module-definition.js'\nimport { JSONPath } from 'jsonpath-plus'\nimport { ApiDocumentV3_1 } from './api-document_v3_1.js'\n\n\nexport class SchemaDefinition {\n readonly name: string\n readonly schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject\n readonly module: ModuleDefinition\n readonly document: ApiDocumentV3_1\n\n get id(): string {\n return `${this.module.address}#/components/schemas/${this.name}`\n }\n\n constructor(args: {\n name: string\n schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject\n module: ModuleDefinition\n document: ApiDocumentV3_1\n }) {\n this.module = args.module\n this.name = args.name\n this.schema = args.schema\n this.document = args.document\n }\n\n getDependencies(): SchemaDefinition[] {\n const refs: string[] = R.uniq(JSONPath({\n path: \"$..*['$ref']\",\n json: this.schema,\n }))\n\n return refs\n .filter((ref) => typeof ref === 'string' && !!ref.trim())\n .map((ref) => {\n const definition = this.document.dereference(ref)\n if (definition) return definition\n\n return SchemaDefinition.unknown()\n })\n }\n\n static unknown(): SchemaDefinition {\n return new SchemaDefinition({\n name: '',\n schema: {},\n module: ModuleDefinition.unknown(),\n document: ApiDocumentV3_1.unknown(),\n })\n }\n\n static isUnknown(definition: SchemaDefinition): boolean {\n return definition.name === ''\n }\n}\n","import chalk from 'chalk'\n\n\nexport const logger = {\n log: (str: string) => console.log(chalk.green(str)),\n warn: (str: string) => console.warn(chalk.yellow(str)),\n error: (str: string) => console.error(chalk.red(str)),\n}\n","export class Asset {\n path: string\n\n constructor(path: string) {\n this.path = path\n }\n}\n","import { CustomError } from 'ts-custom-error'\nimport wrap from 'word-wrap'\nimport { ModuleDefinition } from '~/models/index.js'\n\n\nexport class Exception extends CustomError {\n constructor(module: ModuleDefinition | string, message: string) {\n const moduleName = typeof module === 'string' ? module : module.name\n\n const msg = wrap(message, { width: 60, indent: ' ' })\n super(`${moduleName} module failed to compile:\\n${msg}`)\n\n Object.defineProperty(this, 'name', { value: 'KeqCLI_Exception' })\n }\n}\n","import type { OpenAPIV3_1 } from '@scalar/openapi-types'\n\n\nexport function dereference<T extends OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ResponseObject | OpenAPIV3_1.ParameterObject | OpenAPIV3_1.RequestBodyObject | OpenAPIV3_1.ReferenceObject>($ref: string, swagger: OpenAPIV3_1.Document): T {\n let value\n\n for (const key of $ref.split('/')) {\n if (key === '#') {\n value = swagger\n } else {\n value = value[key]\n }\n\n if (!value) break\n }\n\n return value as T\n}\n","import * as R from 'ramda'\nimport jsonpointer from 'jsonpointer'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { JSONPath } from 'jsonpath-plus'\nimport { removeUndefinedRef } from './remove-undefined-ref.js'\nimport { dereference } from './dereference.js'\n\n\nfunction dereferencePathObject(swagger: OpenAPIV3_1.Document): void {\n const matches = JSONPath({\n path: '$.paths.*.$ref^',\n json: swagger,\n resultType: 'all',\n })\n\n for (const match of matches) {\n const value = dereference(match.value.$ref, swagger)\n jsonpointer.set(swagger, match.pointer, value)\n }\n}\n\nfunction dereferenceRequestBody(swagger: OpenAPIV3_1.Document): void {\n const matches = JSONPath({\n path: '$.paths.*.*.requestBody.$ref^',\n json: swagger,\n resultType: 'all',\n })\n\n for (const match of matches) {\n const value = dereference(match.value.$ref, swagger)\n jsonpointer.set(swagger, match.pointer, value)\n }\n}\n\nexport function dereferenceResponses(swagger: OpenAPIV3_1.Document): void {\n const matches = [\n ...JSONPath({\n path: '$.paths.*.*.responses.*.$ref^',\n json: swagger,\n resultType: 'all',\n }),\n ...JSONPath({\n path: '$.paths.*.*.responses.*.headers.*.$ref^',\n json: swagger,\n resultType: 'all',\n }),\n ]\n\n for (const match of matches) {\n const value = dereference(match.value.$ref, swagger)\n jsonpointer.set(swagger, match.pointer, value)\n }\n}\n\nfunction dereferenceParameters(swagger: OpenAPIV3_1.Document): void {\n const matches = JSONPath({\n path: '$.paths.*.*.parameters.*.$ref^',\n json: swagger,\n resultType: 'all',\n })\n\n for (const match of matches) {\n const value = dereference(match.value.$ref, swagger)\n jsonpointer.set(swagger, match.pointer, value)\n }\n}\n\nexport function dereferenceOperation(swagger: OpenAPIV3_1.Document): OpenAPIV3_1.Document {\n const shadow = R.clone(swagger)\n\n dereferencePathObject(shadow)\n dereferenceRequestBody(shadow)\n dereferenceResponses(shadow)\n dereferenceParameters(shadow)\n\n return removeUndefinedRef(shadow)\n}\n","import * as R from 'ramda'\nimport jsonpointer from 'jsonpointer'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { JSONPath } from 'jsonpath-plus'\nimport { isRefDefined } from './is-ref-defined.js'\n\n\n// remove schema $ref if the reference is not founded\nexport function removeUndefinedRef(swagger: OpenAPIV3_1.Document): OpenAPIV3_1.Document {\n const shadow = R.clone(swagger)\n\n const matches = JSONPath({\n path: \"$..*['$ref']^\",\n json: swagger,\n resultType: 'all',\n })\n\n for (const match of matches) {\n if (match.value.$ref && !isRefDefined(match.value.$ref, swagger)) {\n jsonpointer.set(shadow, match.pointer, R.omit(['$ref'], match.value))\n }\n }\n\n return shadow\n}\n","import * as R from 'ramda'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\n\n\nexport function isRefDefined($ref: string, swagger: OpenAPIV3_1.Document): boolean {\n if ($ref.startsWith('#/')) {\n const path = $ref.replace('#/', '').split('/')\n return R.path(path, swagger) !== undefined\n }\n\n return false\n}\n\n","import type { OpenAPIV3_1 } from '@scalar/openapi-types'\n\nexport function isArray(schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject): schema is OpenAPIV3_1.ArraySchemaObject {\n return schema.type === 'array'\n}\n","\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { MixedSchemaObject } from './types/mixed-schema-object.js'\n\nexport function isMixed(schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject): schema is MixedSchemaObject {\n return Array.isArray(schema.type)\n}\n","import type { OpenAPIV3_1 } from '@scalar/openapi-types'\n\nexport function isNonArray(schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject): schema is OpenAPIV3_1.NonArraySchemaObject {\n return typeof schema.type === 'string' && schema.type !== 'array'\n}\n","import type { OpenAPIV3_1 } from '@scalar/openapi-types'\n\n\nexport function isRef(schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.ResponseObject | OpenAPIV3_1.ParameterObject): schema is OpenAPIV3_1.ReferenceObject {\n return '$ref' in schema\n}\n","import { isArray } from './is-array.js'\nimport { isMixed } from './is-mixed.js'\nimport { isNonArray } from './is-non-array.js'\nimport { isRef } from './is-ref.js'\n\n\nexport class JsonSchemaUtils {\n static isRef = isRef\n static isArray = isArray\n static isNonArray = isNonArray\n static isMixed = isMixed\n}\n","import type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { dereference } from './dereference.js'\nimport { JsonSchemaUtils } from '../json-schema-utils/index.js'\n\n\nexport function dereferenceDeep<T extends OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ResponseObject | OpenAPIV3_1.ParameterObject | OpenAPIV3_1.RequestBodyObject>($ref: string, swagger: OpenAPIV3_1.Document): T {\n const stack = [$ref]\n let value\n\n while (true) {\n const last = stack[stack.length - 1]\n value = dereference(last, swagger)\n\n if (JsonSchemaUtils.isRef(value)) {\n if (!stack.includes(value.$ref)) {\n stack.push(value.$ref)\n continue\n } else {\n // Circular reference detected\n throw new Error(`Circular reference detected: ${stack.join(' -> ')} -> ${value.$ref}`)\n }\n }\n\n break\n }\n\n return value as T\n}\n","import { upgrade } from '@scalar/openapi-parser'\nimport { OpenAPIV3_1 } from '@scalar/openapi-types'\n\nexport function To3_1(openapi: object): OpenAPIV3_1.Document {\n const { specification } = upgrade(openapi)\n return specification\n}\n","import * as R from 'ramda'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { SupportedMethods } from '~/constants/supported-methods.js'\n\n\nexport type OpenapiOperationMapper = (method: string, pathname: string, operation: OpenAPIV3_1.OperationObject) => OpenAPIV3_1.OperationObject\n\n\nexport function mapOperation(specification: OpenAPIV3_1.Document, mapper: OpenapiOperationMapper): OpenAPIV3_1.Document {\n const shadow = R.clone(specification)\n\n for (const [pathname, pathItem] of Object.entries(shadow.paths || {})) {\n for (const m in pathItem) {\n const method = m.toLowerCase()\n if (!SupportedMethods.includes(method)) continue\n if (typeof pathItem[m] !== 'object' || Array.isArray(pathItem[m]) || pathItem[m] === null) continue\n\n const operation: OpenAPIV3_1.OperationObject = pathItem[m]\n pathItem[m] = mapper(method, pathname, operation)\n }\n }\n\n return shadow\n}\n","import * as R from 'ramda'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { mapOperation } from './map-operation.js'\n\n\nexport type OpenapiParameterMapper = (method: string, pathname: string, operation: OpenAPIV3_1.OperationObject, parameter: OpenAPIV3_1.ParameterObject) => OpenAPIV3_1.ParameterObject\n\nexport function mapParameter(\n specification: OpenAPIV3_1.Document,\n mapper: OpenapiParameterMapper,\n): OpenAPIV3_1.Document {\n return mapOperation(specification, (method, pathname, operation) => {\n if (!operation.parameters) return operation\n\n operation.parameters = operation.parameters\n .map((parameter) => mapper(method, pathname, operation, parameter as OpenAPIV3_1.ParameterObject))\n\n return operation\n })\n}\n","import { dereference } from './dereference.js'\nimport { dereferenceOperation } from './dereference-operation.js'\nimport { isRefDefined } from './is-ref-defined.js'\nimport { removeUndefinedRef } from './remove-undefined-ref.js'\nimport { dereferenceDeep } from './dereference-deep.js'\nimport { To3_1 } from './to-3_1.js'\nimport { mapOperation } from './map-operation.js'\nimport { mapParameter } from './map-parameter.js'\n\n\nexport class OpenapiUtils {\n static isRefDefined = isRefDefined\n static dereference = dereference\n static dereferenceDeep = dereferenceDeep\n static removeUndefinedRef = removeUndefinedRef\n static dereferenceOperation = dereferenceOperation\n static mapOperation = mapOperation\n static mapParameter = mapParameter\n // static updateOperationId = updateOperationId\n static to3_1 = To3_1\n}\n","import * as path from 'path'\nimport fs from 'fs-extra'\nimport { ListrTask } from 'listr2'\nimport { BaseTaskOptions } from '../types/base-task-options.js'\nimport type { Compiler, CompilerContext } from '~/compiler/index.js'\nimport { Asset } from '~/models/index.js'\n\n\nfunction createPersistArtifactTask(): ListrTask<CompilerContext> {\n return {\n title: 'Write files',\n task: async (context, task) => {\n if (!context.rc) throw new Error('Please run setup task first.')\n if (!context.artifacts || context.artifacts.length === 0) {\n task.skip('No compiled artifacts to persist.')\n return\n }\n\n const rc = context.rc\n const artifacts = context.artifacts\n\n const total = artifacts.length\n let completed = 0\n\n const files = await Promise.all(artifacts.map(async (artifact): Promise<Asset> => {\n const realpath = `./${path.join(rc.outdir, artifact.filepath)}`\n await fs.ensureFile(realpath)\n await fs.writeFile(realpath, artifact.renderer())\n\n completed += 1\n task.output = `Persisted ${completed}/${total} files`\n\n return new Asset(path.resolve(realpath))\n }))\n\n context.assets = files\n },\n }\n}\n\nfunction createPersistIgnoreTask(): ListrTask<CompilerContext> {\n return {\n title: 'Update .keqignore',\n task: async (context, task) => {\n if (!context.matcher) throw new Error('Please run setup task first.')\n\n const matcher = context.matcher\n await matcher.write('.keqignore')\n },\n }\n}\n\n\nfunction main(): ListrTask<CompilerContext> {\n return {\n task: (context, task) => task.newListr(\n [\n createPersistArtifactTask(),\n createPersistIgnoreTask(),\n ],\n {\n concurrent: true,\n rendererOptions: {\n collapseSubtasks: true,\n },\n },\n ),\n }\n}\n\nexport function createPersistTask(compiler: Compiler, options?: BaseTaskOptions): ListrTask<CompilerContext> {\n return {\n title: 'Persist',\n enabled: options?.enabled,\n skip: options?.skip,\n task: (context, task) => task.newListr(\n [\n main(),\n {\n task: (context, task) => compiler.hooks.afterPersist\n .promise(task),\n },\n ],\n {\n concurrent: false,\n },\n ),\n }\n}\n","import { ListrTask } from 'listr2'\nimport { BaseTaskOptions } from '../types/base-task-options.js'\nimport type { Compiler } from '~/compiler/compiler.js'\nimport { CompilerContext } from '~/compiler/index.js'\n// import { RequestGenerator } from '~/generators/index.js'\n\n\nfunction main(compiler: Compiler): ListrTask<CompilerContext> {\n return {\n task: async (context, task) => {\n if (!context.rc) throw new Error('Please run setup task first.')\n if (!context.documents) throw new Error('Please run shaking task first.')\n\n context.artifacts = []\n\n await compiler.hooks.compile.promise(task)\n },\n }\n}\n\nexport function createCompileTask(compiler: Compiler, options?: BaseTaskOptions): ListrTask<CompilerContext> {\n return {\n title: 'Compile',\n enabled: options?.enabled,\n skip: options?.skip,\n task: (context, task) => task.newListr(\n [\n {\n task: (context, task) => compiler.hooks.beforeCompile\n .promise(task),\n },\n main(compiler),\n {\n task: (context, task) => compiler.hooks.afterCompile\n .promise(task),\n },\n ],\n {\n concurrent: false,\n },\n ),\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { FullTap, HookInterceptor } from 'tapable'\nimport { TaskWrapper } from '../tasks/index.js'\n\n\nexport function proxyTaskWrapper(pluginName: string, task: TaskWrapper): TaskWrapper {\n return new Proxy(task, {\n set(target, prop, value) {\n if (prop !== 'output') {\n return Reflect.set(target, prop, value)\n }\n\n target.output = `[Plugin: ${pluginName}] ${value}`\n return true\n },\n })\n}\n\n\nexport function printInformation(taskIndex: number): HookInterceptor<unknown, unknown> {\n return {\n register: <T extends FullTap>(tap: T): T => {\n const fn = tap.fn\n\n if (tap.type === 'promise') {\n tap.fn = (...args: any[]) => {\n const task = args[taskIndex] as TaskWrapper\n const proxyTask = proxyTaskWrapper(tap.name, task)\n args[taskIndex] = proxyTask\n proxyTask.output = 'Processing...'\n return fn(...args)\n }\n }\n\n if (tap.type === 'sync') {\n tap.fn = (...args: any[]) => {\n const task = args[taskIndex] as TaskWrapper\n const proxyTask = proxyTaskWrapper(tap.name, task)\n args[taskIndex] = proxyTask\n proxyTask.output = 'Processing...'\n return fn(...args)\n }\n }\n\n if (tap.type === 'async') {\n tap.fn = (...args: any[]) => {\n const task = args[taskIndex] as TaskWrapper\n const proxyTask = proxyTaskWrapper(tap.name, task)\n args[taskIndex] = proxyTask\n proxyTask.output = 'Processing...'\n return fn(...args)\n }\n }\n\n return tap\n },\n }\n}\n\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as R from 'ramda'\nimport { FullTap, HookInterceptor, InnerCallback } from 'tapable'\n\nexport function perfectErrorMessage(): HookInterceptor<unknown, unknown> {\n return {\n register: <T extends FullTap>(tap: T): T => {\n const fn = tap.fn\n\n function prefix(err: unknown): void {\n if (err instanceof Error) {\n err.message = `[Plugin: ${tap.name}] ${err.message}`\n }\n }\n\n if (tap.type === 'promise') {\n tap.fn = async (...args: any[]) => {\n try {\n return await fn(...args)\n } catch (err) {\n prefix(err)\n throw err\n }\n }\n }\n\n if (tap.type === 'sync') {\n tap.fn = (...args: any[]) => {\n try {\n return fn(...args)\n } catch (err) {\n prefix(err)\n throw err\n }\n }\n }\n\n if (tap.type === 'async') {\n tap.fn = (...args: any[]) => {\n const callback = R.last(args) as InnerCallback<Error, any>\n\n return fn(...R.init(args), (err: Error | null, result: any) => {\n prefix(err)\n return callback(err, result)\n })\n }\n }\n\n return tap\n },\n }\n}\n","import { Compiler } from '~/compiler/compiler.js'\nimport { Plugin } from '~/types/plugin.js'\nimport { ESLint } from 'eslint'\n\n\ninterface EslintPluginOptions {\n /**\n * List of ESLint rules to disable\n */\n disable?: string[]\n}\n\nexport class EslintPlugin implements Plugin {\n constructor(private options: EslintPluginOptions = {}) {}\n\n\n apply(compiler: Compiler): void {\n if (!compiler.options.build) return\n\n if (this.options.disable && this.options.disable.length > 0) {\n const $rules = [\n ...this.options.disable.map((rule) => `/* eslint-disable ${rule} */`),\n ].join('\\n')\n\n compiler.hooks.afterCompile.tap(EslintPlugin.name, () => {\n const artifacts = compiler.context.artifacts || []\n\n for (const artifact of artifacts) {\n artifact.anchor.append('file:start', $rules)\n }\n })\n }\n\n compiler.hooks.afterPersist.tapPromise(EslintPlugin.name, async (task) => {\n const files = compiler.context.assets || []\n if (files.length === 0) return\n\n const eslint = new ESLint({ fix: true })\n const results = await eslint.lintFiles(files.map((file) => file.path))\n await ESLint.outputFixes(results)\n })\n }\n}\n","import { Compiler } from '~/compiler/compiler.js'\nimport { Plugin } from '~/types/plugin.js'\nimport { exec } from 'child_process'\nimport { promisify } from 'util'\n\nconst execAsync = promisify(exec)\n\n\nexport class PrettierPlugin implements Plugin {\n apply(compiler: Compiler): void {\n if (!compiler.options.build) return\n\n compiler.hooks.afterPersist.tapPromise(PrettierPlugin.name, async () => {\n const files = compiler.context.assets || []\n if (files.length === 0) return\n\n const filePaths = files.map((file) => file.path).join(' ')\n await execAsync(`prettier --write ${filePaths}`)\n })\n }\n}\n","import * as R from 'ramda'\nimport { Compiler } from '~/compiler/compiler.js'\nimport { Artifact, OperationDefinition } from '~/models/index.js'\nimport { Plugin } from '~/types/plugin.js'\nimport { JsonSchemaUtils } from '~/utils/json-schema-utils/index.js'\nimport { OpenAPIV3_1 } from '@scalar/openapi-types'\n\nimport { GenerateMicroFunctionPlugin } from '../generate-micro-function/index.js'\n\n\nexport class BodyFallbackPlugin implements Plugin {\n apply(compiler: Compiler): void {\n compiler.hooks.setup.tap(BodyFallbackPlugin.name, () => {\n const generateMicroFunctionPluginMetadata = GenerateMicroFunctionPlugin.of(compiler)\n\n if (!generateMicroFunctionPluginMetadata) {\n throw new Error('BodyFallbackPlugin requires GenerateMicroFunctionPlugin to be applied first.')\n }\n\n generateMicroFunctionPluginMetadata.hooks.afterMicroFunctionArtifactGenerated\n .tap(BodyFallbackPlugin.name, (artifact: Artifact, operationDefinition: OperationDefinition) => {\n const operation = operationDefinition.operation\n\n const parameters = operation.parameters?.filter((p): p is OpenAPIV3_1.ParameterObject => !JsonSchemaUtils.isRef(p)) || []\n const keys = parameters.map((p) => p.name).filter(R.isNotNil)\n\n const $acc = !keys.length\n ? ' acc[key] = args[key]'\n : [\n ` if (![${keys.map((k) => JSON.stringify(k)).join(', ')}].includes(key)) {`,\n ' acc[key] = args[key]',\n ' }',\n ].join('\\n')\n\n artifact.anchor.block.replace('body', [\n // $mediaType ? `${$mediaType}\\n` : undefined,\n ' if (typeof args === \"object\" && args !== null && !Array.isArray(args)) {',\n ' const requestBody = Object.keys(args)',\n ' .reduce((acc, key) => {',\n $acc,\n ' return acc',\n ' }, {} as Record<string, unknown>)',\n '',\n ' if (Object.keys(requestBody).length > 0) {',\n ' req.send(requestBody)',\n ' }',\n ' }',\n ].filter(R.isNotNil).join('\\n'))\n\n return artifact\n })\n })\n }\n}\n","import { AsyncSeriesWaterfallHook } from 'tapable'\nimport { Plugin } from '~/types/index.js'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { Artifact, OperationDefinition } from '~/models/index.js'\nimport { GenerateMicroFunctionPluginMetadata, MetadataStorage } from './constants/index.js'\nimport { MicroFunctionGenerator, RequestGenerator } from './generators/index.js'\n\n\nexport class GenerateMicroFunctionPlugin implements Plugin {\n private readonly microFunctionGenerator = new MicroFunctionGenerator()\n private readonly requestGenerator = new RequestGenerator()\n\n apply(compiler: Compiler): void {\n GenerateMicroFunctionPlugin.register(compiler)\n\n compiler.hooks.compile.tapPromise(GenerateMicroFunctionPlugin.name, async (task: TaskWrapper) => {\n const artifacts = [\n ...(await this.requestGenerator.compile(compiler, task)),\n ...(await this.microFunctionGenerator.compile(compiler, task)),\n ]\n\n compiler.context.artifacts!.push(...artifacts)\n })\n }\n\n static register(compiler: Compiler): GenerateMicroFunctionPluginMetadata {\n if (!MetadataStorage.has(compiler)) {\n MetadataStorage.set(compiler, {\n hooks: {\n afterEntrypointArtifactGenerated: new AsyncSeriesWaterfallHook<[Artifact, TaskWrapper]>(['artifact', 'task']),\n afterMicroFunctionArtifactGenerated: new AsyncSeriesWaterfallHook<[Artifact, OperationDefinition, TaskWrapper]>(['artifact', 'operationDefinition', 'task']),\n },\n })\n }\n\n return MetadataStorage.get(compiler)!\n }\n\n\n static of(compiler: Compiler): GenerateMicroFunctionPluginMetadata | undefined {\n return this.register(compiler)\n }\n}\n","import { AsyncSeriesWaterfallHook } from 'tapable'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { Artifact, OperationDefinition } from '~/models/index.js'\n\nexport interface GenerateMicroFunctionPluginMetadata {\n hooks: {\n afterEntrypointArtifactGenerated: AsyncSeriesWaterfallHook<[Artifact, TaskWrapper]>\n afterMicroFunctionArtifactGenerated: AsyncSeriesWaterfallHook<[Artifact, OperationDefinition, TaskWrapper]>\n }\n}\n\nexport const MetadataStorage = new WeakMap<Compiler, GenerateMicroFunctionPluginMetadata>()\n","import * as R from 'ramda'\nimport * as path from 'path'\nimport * as changeCase from 'change-case'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { Generator, RuntimeConfig } from '~/types/index.js'\nimport { Artifact, ModuleDefinition, OperationDefinition } from '~/models/index.js'\nimport { OperationDeclarationGenerator } from '~/plugins/generate-declaration/index.js'\nimport { OperationDefinitionTransformer } from '~/transformers/index.js'\nimport { EntrypointTransformer } from '~/transformers/index.js'\nimport { FileNamingStyle } from '~/constants/index.js'\nimport { MetadataStorage } from '../../constants/metadata-storage.js'\nimport { RequestGenerator } from '../request/index.js'\n\n\nexport const MICRO_FUNCTION_GENERATOR = 'microFunctionGenerator'\n\nexport class MicroFunctionGenerator implements Generator {\n async compile(compiler: Compiler, task: TaskWrapper): Promise<Artifact[]> {\n const metadata = MetadataStorage.get(compiler)!\n const context = compiler.context\n const rc = context.rc!\n const documents = context.documents!\n\n const operationDefinitions = documents.flatMap((document) => document.operations)\n\n const artifactMap = new Map<OperationDefinition, Artifact>(\n await Promise.all(\n operationDefinitions.map(async (operationDefinition) => (<const>[\n operationDefinition,\n await metadata.hooks.afterMicroFunctionArtifactGenerated.promise(\n this.generateOperationDefinitionArtifact(operationDefinition, rc),\n operationDefinition,\n task,\n ),\n ])),\n ),\n )\n\n\n const entrypoints = await Promise.all(\n R.collectBy(\n (operationDefinition: OperationDefinition) => operationDefinition.module.name,\n operationDefinitions,\n )\n .map((operationDefinitions) => (<const>[\n operationDefinitions[0].module,\n operationDefinitions\n .map((operationDefinition) => artifactMap.get(operationDefinition))\n .filter((artifact): artifact is Artifact => Boolean(artifact)),\n ]))\n .map(async ([moduleDefinition, artifacts]) => await metadata.hooks.afterEntrypointArtifactGenerated.promise(\n this.generateEntrypointArtifact(\n moduleDefinition,\n artifacts,\n rc,\n ),\n task,\n )),\n )\n\n return [...entrypoints, ...artifactMap.values()]\n }\n\n\n private generateOperationDefinitionArtifact(operationDefinition: OperationDefinition, rc: RuntimeConfig): Artifact {\n const filepath = MicroFunctionGenerator.getOperationDefinitionArtifactFilepath(operationDefinition, rc.fileNamingStyle)\n const dirpath = path.dirname(filepath)\n\n const artifact = new Artifact({\n id: MicroFunctionGenerator.getOperationDefinitionArtifactId(operationDefinition),\n filepath,\n content: OperationDefinitionTransformer.toMicroFunction(operationDefinition, {\n esm: rc.esm,\n getOperationDefinitionDeclarationFilepath(operationDefinition: OperationDefinition): string {\n const relativePath = path.relative(\n dirpath,\n OperationDeclarationGenerator.getOperationDefinitionArtifactFilepath(operationDefinition, rc.fileNamingStyle),\n )\n\n return relativePath.startsWith('.') ? relativePath : `./${relativePath}`\n },\n getRequestFilepath(): string {\n const relativePath = path.relative(\n dirpath,\n RequestGenerator.getRequestArtifactFilepath(),\n )\n\n return relativePath.startsWith('.') ? relativePath : `./${relativePath}`\n },\n }),\n extensionName: '.type.ts',\n })\n\n return artifact\n }\n\n private generateEntrypointArtifact(moduleDefinition: ModuleDefinition, exports: Artifact[], rc: RuntimeConfig): Artifact {\n const filepath = MicroFunctionGenerator.getEntrypointArtifactFilepath(moduleDefinition, rc.fileNamingStyle)\n const dirpath = filepath.substring(0, filepath.lastIndexOf('/'))\n\n const artifact = new Artifact({\n id: MicroFunctionGenerator.getEntrypointArtifactId(moduleDefinition),\n filepath,\n content: EntrypointTransformer.toTypescript(exports, { dirpath }),\n })\n\n return artifact\n }\n\n\n static getOperationDefinitionArtifactFilepath(operationDefinition: OperationDefinition, fileNamingStyle: FileNamingStyle): string {\n const filename = `${changeCase[fileNamingStyle](operationDefinition.operationId)}.fn.ts`\n const filepath = [\n '.',\n changeCase[fileNamingStyle](operationDefinition.module.name),\n 'operations',\n filename,\n ].join('/')\n\n return filepath\n }\n\n static getOperationDefinitionArtifactId(operationDefinition: OperationDefinition): string {\n return `${operationDefinition.id}?generator=${MICRO_FUNCTION_GENERATOR}`\n }\n\n static getEntrypointArtifactFilepath(moduleDefinition: ModuleDefinition, fileNamingStyle: FileNamingStyle): string {\n return [\n '.',\n changeCase[fileNamingStyle](moduleDefinition.name),\n 'operations',\n 'index.ts',\n ].join('/')\n }\n\n static getEntrypointArtifactId(moduleDefinition: ModuleDefinition): string {\n return `${moduleDefinition.address}/paths/entrypoint?generator=${MICRO_FUNCTION_GENERATOR}`\n }\n}\n","import { AsyncSeriesWaterfallHook } from 'tapable'\nimport { Plugin } from '~/types/plugin.js'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { Artifact, OperationDefinition, SchemaDefinition } from '~/models/index.js'\nimport { OperationDeclarationGenerator, SchemaDeclarationGenerator } from './generators/index.js'\nimport { GenerateDeclarationPluginMetadata, MetadataStorage } from './constants/index.js'\n\n\nexport const DECLARATION_GENERATOR = 'declarationGenerator'\n\nexport class GenerateDeclarationPlugin implements Plugin {\n name = DECLARATION_GENERATOR\n\n operationGenerator = new OperationDeclarationGenerator()\n schemaGenerator = new SchemaDeclarationGenerator()\n\n constructor() {}\n\n apply(compiler: Compiler): void {\n GenerateDeclarationPlugin.register(compiler)\n\n compiler.hooks.compile.tapPromise(GenerateDeclarationPlugin.name, async (task: TaskWrapper) => {\n compiler.context.artifacts?.push(\n ...await this.schemaGenerator.compile(compiler, task),\n ...await this.operationGenerator.compile(compiler, task),\n )\n })\n }\n\n static register(compiler: Compiler): GenerateDeclarationPluginMetadata {\n if (!MetadataStorage.has(compiler)) {\n MetadataStorage.set(compiler, {\n hooks: {\n afterEntrypointArtifactGenerated: new AsyncSeriesWaterfallHook<[Artifact, TaskWrapper], Artifact>(['artifact', 'task']),\n afterSchemaDeclarationArtifactGenerated: new AsyncSeriesWaterfallHook<[Artifact, SchemaDefinition, TaskWrapper], Artifact>(['artifact', 'schemaDefinition', 'task']),\n afterOperationDeclarationArtifactGenerated: new AsyncSeriesWaterfallHook<[Artifact, OperationDefinition, TaskWrapper], Artifact>(['artifact', 'operationDefinition', 'task']),\n },\n })\n }\n return MetadataStorage.get(compiler)!\n }\n\n static of(compiler: Compiler): GenerateDeclarationPluginMetadata | undefined {\n return this.register(compiler)\n }\n}\n","import * as path from 'path'\nimport * as changeCase from 'change-case'\nimport { Artifact, ModuleDefinition, OperationDefinition } from '~/models/index.js'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { OperationDefinitionTransformer, EntrypointTransformer } from '~/transformers/index.js'\nimport { FileNamingStyle } from '~/constants/index.js'\nimport type { Generator, RuntimeConfig } from '~/types/index.js'\nimport { SchemaDeclarationGenerator } from '../schema-declaration/index.js'\nimport { MetadataStorage } from '../../constants/metadata-storage.js'\n\n\nexport const OPERATION_GENERATOR = 'operationDeclarationGenerator'\n\nexport class OperationDeclarationGenerator implements Generator {\n async compile(compiler: Compiler, task: TaskWrapper): Promise<Artifact[]> {\n const context = compiler.context\n const metadata = MetadataStorage.get(compiler)!\n\n const rc = context.rc!\n // const matcher = context.matcher!\n const documents = context.documents!\n // .filter((document) => !matcher.isModuleIgnored(document.module))\n\n const operationDefinitions = documents.flatMap((document) => document.operations)\n\n const artifactMap = new Map<OperationDefinition, Artifact>(\n await Promise.all(\n operationDefinitions.map(async (operationDefinition) => (<const>[\n operationDefinition,\n await metadata.hooks.afterOperationDeclarationArtifactGenerated.promise(\n this.generateOperationDefinitionArtifact(operationDefinition, rc),\n operationDefinition,\n task,\n ),\n ])),\n ),\n )\n\n return Array.from(artifactMap.values())\n }\n\n\n private generateOperationDefinitionArtifact(operationDefinition: OperationDefinition, rc: RuntimeConfig): Artifact {\n const filepath = OperationDeclarationGenerator.getOperationDefinitionArtifactFilepath(operationDefinition, rc.fileNamingStyle)\n const dirpath = path.dirname(filepath)\n\n const artifact = new Artifact({\n id: OperationDeclarationGenerator.getOperationDefinitionArtifactId(operationDefinition),\n filepath,\n content: OperationDefinitionTransformer.toDeclaration(\n operationDefinition,\n {\n esm: rc.esm,\n getDependentSchemaDefinitionFilepath(dependentSchemaDefinition) {\n const relativePath = path.relative(\n dirpath,\n SchemaDeclarationGenerator.getSchemaDefinitionArtifactFilepath(dependentSchemaDefinition, rc.fileNamingStyle),\n )\n return relativePath.startsWith('.') ? relativePath : `./${relativePath}`\n },\n },\n ),\n extensionName: '.type.ts',\n })\n\n return artifact\n }\n\n private generateEntrypointArtifact(moduleDefinition: ModuleDefinition, exports: Artifact[], rc: RuntimeConfig): Artifact {\n const filepath = OperationDeclarationGenerator.getEntrypointArtifactFilepath(moduleDefinition, rc.fileNamingStyle)\n const dirpath = path.dirname(filepath)\n\n const artifact = new Artifact({\n id: OperationDeclarationGenerator.getEntrypointArtifactId(moduleDefinition),\n filepath,\n content: EntrypointTransformer.toTypescript(exports, { dirpath }),\n })\n\n return artifact\n }\n\n\n static getOperationDefinitionArtifactFilepath(operationDefinition: OperationDefinition, fileNamingStyle: FileNamingStyle): string {\n const filename = `${changeCase[fileNamingStyle](operationDefinition.operationId)}.type.ts`\n const filepath = [\n '.',\n changeCase[fileNamingStyle](operationDefinition.module.name),\n 'types',\n 'operations',\n filename,\n ].join('/')\n\n return filepath\n }\n\n static getOperationDefinitionArtifactId(operationDefinition: OperationDefinition): string {\n return `${operationDefinition.id}?generator=${OPERATION_GENERATOR}`\n }\n\n static getEntrypointArtifactFilepath(moduleDefinition: ModuleDefinition, fileNamingStyle: FileNamingStyle): string {\n return [\n '.',\n changeCase[fileNamingStyle](moduleDefinition.name),\n 'types',\n 'operations',\n 'index.ts',\n ].join('/')\n }\n\n static getEntrypointArtifactId(moduleDefinition: ModuleDefinition): string {\n return `${moduleDefinition.address}/paths/entrypoint?generator=${OPERATION_GENERATOR}`\n }\n}\n","import { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { Renderer } from '../types/renderer.js'\n\n\nexport class CommentRenderer implements Renderer {\n constructor(\n private readonly schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject,\n ) {}\n\n render(): string {\n const schema = this.schema\n\n const lines = ['/**']\n\n if (schema.description) {\n const description = schema.description.replace('*/', '*\\\\/')\n lines.push(...description.split('\\n').map((line) => ` * ${line}`))\n }\n\n if (schema.deprecated) {\n lines.push(' * @deprecated')\n }\n\n if (schema.readOnly) {\n lines.push(' * @readonly')\n }\n\n if (schema.format) {\n lines.push(` * @format ${schema.format}`)\n }\n\n lines.push(' */')\n\n if (lines.length === 2) return ''\n return lines.join('\\n')\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport * as R from 'ramda'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { MixedSchemaObject } from './types/mixed-schema-object.js'\nimport { JsonSchemaUtils } from '~/utils/json-schema-utils/index.js'\nimport { indent } from '~/utils/indent.js'\nimport { CommentRenderer } from './comment.renderer.js'\nimport { ReferenceTransformer } from './reference.transformer.js'\nimport { Renderer } from '../types/renderer.js'\n\n\nexport interface JsonSchemaDeclarationRendererOptions {\n referenceTransformer?: (schema: OpenAPIV3_1.ReferenceObject) => string\n}\n\nexport class DeclarationRenderer implements Renderer {\n constructor(\n private readonly schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject,\n private readonly options: JsonSchemaDeclarationRendererOptions = {},\n ) {\n }\n\n render(): string {\n return this.renderSchema(this.schema)\n }\n\n private renderSchema(schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject): string {\n if (typeof schema === 'boolean') return 'unknown'\n\n if (JsonSchemaUtils.isRef(schema)) return this.renderReference(schema)\n if (JsonSchemaUtils.isMixed(schema)) return this.renderMixed(schema)\n if (JsonSchemaUtils.isArray(schema)) return this.renderArray(schema)\n\n if (schema.type === 'object') return this.renderObject(schema)\n if (schema.enum) return this.renderEnum(schema)\n if (schema.oneOf) return this.renderOneOf(schema)\n if (schema.anyOf) return this.renderAnyOf(schema)\n if (schema.allOf) return this.renderAllOf(schema)\n if (schema.type === 'string') return this.renderString(schema)\n if (schema.type === 'number') return this.renderNumber(schema)\n if (schema.type === 'boolean') return this.renderBoolean(schema)\n if (schema.type === 'null') return this.renderNull(schema)\n if (schema.type === 'integer') return this.renderInteger(schema)\n\n return 'unknown'\n }\n\n\n private renderMixed(schema: MixedSchemaObject): string {\n if (Array.isArray(schema.type)) {\n schema.type\n .map((type): (OpenAPIV3_1.ArraySchemaObject | OpenAPIV3_1.NonArraySchemaObject) => ({ ...schema, type }))\n .map((schema) => this.renderSchema(schema))\n .join(' | ')\n }\n\n return 'unknown'\n }\n\n private renderReference(schema: OpenAPIV3_1.ReferenceObject): string {\n if (!this.options.referenceTransformer) {\n return ReferenceTransformer.toDeclaration(schema)\n }\n\n return this.options.referenceTransformer(schema)\n }\n\n private renderArray(schema: OpenAPIV3_1.ArraySchemaObject): string {\n if (schema.items && Array.isArray(schema.items)) {\n const items = schema.items.map((s) => this.renderSchema(s)).join(', ')\n return `[${items}]`\n }\n\n if (schema.items && typeof schema.items === 'object') {\n return `${this.renderSchema(schema.items)}[]`\n }\n\n return 'any[]'\n }\n\n\n private renderObject(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n if (\n (!schema.properties || R.isEmpty(schema.properties))\n && (!schema.additionalProperties || R.isEmpty(schema.additionalProperties))\n ) {\n return 'object'\n }\n\n\n const $properties = Object.entries(schema.properties || {})\n .map(([propertyName, propertySchema]) => {\n let $comment = new CommentRenderer(propertySchema).render()\n if ($comment) $comment += '\\n'\n\n const $key = `\"${propertyName}\"${schema.required?.includes(propertyName) ? '' : '?'}`\n const $value = this.renderSchema(propertySchema)\n\n return indent(2, `${$comment}${$key}: ${$value}`)\n })\n\n if (schema.additionalProperties) {\n const $value = schema.additionalProperties === true\n ? 'any'\n : this.renderSchema(schema.additionalProperties)\n $properties.push(indent(2, `[key: string]: ${$value}`))\n }\n\n return [\n '{',\n ...$properties,\n '}',\n ].join('\\n')\n }\n\n private renderOneOf(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n if (!schema.oneOf) return 'unknown'\n\n return schema.oneOf.map((s) => this.renderSchema(s)).join(' | ')\n }\n\n private renderAnyOf(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n if (!schema.anyOf) return 'unknown'\n\n return schema.anyOf.map((s) => this.renderSchema(s)).join(' | ')\n }\n\n private renderAllOf(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n if (!schema.allOf) return 'unknown'\n\n return schema.allOf.map((s) => this.renderSchema(s)).join(' & ')\n }\n\n private renderEnum(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n if (!schema.enum) return 'unknown'\n return schema.enum.map((v) => JSON.stringify(v)).join(' | ')\n }\n\n private renderString(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n if (schema.contentMediaType === 'application/octet-stream') return 'Blob | Buffer'\n if (schema.format === 'binary') return 'Blob | Buffer'\n return 'string'\n }\n\n private renderNumber(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n return 'number'\n }\n\n private renderBoolean(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n return 'boolean'\n }\n\n private renderNull(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n return 'null'\n }\n\n private renderInteger(schema: OpenAPIV3_1.NonArraySchemaObject): string {\n return 'number'\n }\n}\n","export function indent(space: number, text: string): string {\n if (text === '') return ''\n\n const indentation = ' '.repeat(space)\n return text.split('\\n')\n .map((line) => (line ? `${indentation}${line}` : line))\n .join('\\n')\n}\n","import * as R from 'ramda'\nimport { OpenAPIV3_1 } from '@scalar/openapi-types'\n\n\nexport class ReferenceTransformer {\n static toDeclaration(schema: OpenAPIV3_1.ReferenceObject, alias: (name: string) => string = R.identity): string {\n if (!schema.$ref || !schema.$ref.startsWith('#')) return `unknown /* ${schema.$ref.replace('*/', '*\\\\/')} */`\n\n const parts: string[] = schema.$ref.split('/')\n // return parts[parts.length - 1] || 'unknown'\n\n return alias(parts[parts.length - 1]) || 'unknown'\n }\n}\n","import { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { CommentRenderer } from './comment.renderer.js'\nimport { DeclarationRenderer, JsonSchemaDeclarationRendererOptions } from './declaration.renderer.js'\n\n\nexport class JsonSchemaTransformer {\n static toComment(schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject): string {\n return new CommentRenderer(schema).render()\n }\n\n static toDeclaration(schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject, options?: JsonSchemaDeclarationRendererOptions): string {\n return new DeclarationRenderer(schema, options).render()\n }\n}\n","import * as R from 'ramda'\nimport { SchemaDefinition } from '~/models/index.js'\nimport { JsonSchemaUtils } from '~/utils/json-schema-utils/index.js'\nimport { JsonSchemaTransformer } from '../json-schema/index.js'\n\n\ninterface SchemaDefinitionDeclarationRendererOptions {\n esm?: boolean\n\n getDependentSchemaDefinitionFilepath: (schemaDefinition: SchemaDefinition) => string\n}\n\nexport class SchemaDefinitionTransformer {\n static toDeclaration(schemaDefinition: SchemaDefinition, options: SchemaDefinitionDeclarationRendererOptions): string {\n const dependencies = schemaDefinition.getDependencies()\n let $dependencies = dependencies\n .filter((dep) => !SchemaDefinition.isUnknown(dep))\n .map((dep) => {\n const filepath = options.getDependentSchemaDefinitionFilepath(dep)\n return `import type { ${dep.name} } from \"${filepath}\"`\n })\n .map((str) => str.replace(/ from \"(\\.\\.?\\/.+?)(\\.ts|\\.mts|\\.cts|\\.js|\\.cjs|\\.mjs)?\"/, options.esm ? ' from \"$1.js\"' : ' from \"$1\"'))\n .join('\\n')\n\n if ($dependencies) $dependencies += '\\n'\n\n let $comment = JsonSchemaTransformer.toComment(schemaDefinition.schema)\n if ($comment) $comment += '\\n'\n\n if (typeof schemaDefinition.schema === 'boolean') {\n return [\n '/* @anchor:file:start */',\n '',\n $dependencies,\n $comment || undefined,\n `type ${schemaDefinition.name} = unknown`,\n '',\n '/* @anchor:file:end */',\n ].filter(R.isNotNil).join('\\n')\n }\n\n if (JsonSchemaUtils.isNonArray(schemaDefinition.schema) && schemaDefinition.schema.type === 'object') {\n const $schema = JsonSchemaTransformer.toDeclaration(schemaDefinition.schema)\n\n const $declaration = $schema.startsWith('{')\n ? `export interface ${schemaDefinition.name} ${$schema}`\n : `export type ${schemaDefinition.name} = ${$schema}`\n\n return [\n '/* @anchor:file:start */',\n '',\n $dependencies,\n $comment || undefined,\n $declaration,\n '',\n '/* @anchor:file:end */',\n ].filter(R.isNotNil).join('\\n')\n }\n\n return [\n '/* @anchor:file:start */',\n '',\n $dependencies,\n $comment || undefined,\n `export type ${schemaDefinition.name} = ${JsonSchemaTransformer.toDeclaration(schemaDefinition.schema)}`,\n '',\n '/* @anchor:file:end */',\n ].filter(R.isNotNil).join('\\n')\n }\n}\n","import * as R from 'ramda'\nimport { OperationDefinition } from '~/models/index.js'\nimport { Renderer } from '../types/renderer.js'\n\n\nexport class CommentRenderer implements Renderer {\n constructor(\n private readonly operationDefinition: OperationDefinition,\n ) {}\n\n render(): string {\n const operation = this.operationDefinition.operation\n if (!operation.summary && !operation.description) return ''\n\n const lines = ['/**']\n\n if (operation.summary && typeof operation.summary === 'string') {\n lines.push(` * ${R.trim(operation.summary)}`)\n lines.push(' *')\n }\n\n if (operation.description && typeof operation.description === 'string') {\n lines.push(` * @description ${R.trim(operation.description)}`)\n }\n\n lines.push(' */')\n\n return lines.join('\\n')\n }\n}\n","import * as R from 'ramda'\nimport { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { OperationDefinition, SchemaDefinition } from '~/models/index.js'\nimport { typeNameFactory, TypeNameFn } from './utils/index.js'\nimport { JsonSchemaUtils } from '~/utils/json-schema-utils/index.js'\nimport { indent } from '~/utils/indent.js'\nimport { OpenapiUtils } from '~/utils/openapi-utils/index.js'\nimport { JsonSchemaTransformer, JsonSchemaDeclarationRendererOptions, ReferenceTransformer } from '../json-schema/index.js'\nimport { Renderer } from '../types/renderer.js'\n\n\nexport interface OperationDefinitionDeclarationRendererOptions {\n esm?: boolean\n\n getDependentSchemaDefinitionFilepath(dependentSchemaDefinition: SchemaDefinition): string\n}\n\nconst alias = (name: string): string => `${name}Schema`\n\nexport class DeclarationRenderer implements Renderer {\n private typeName: TypeNameFn\n\n constructor(\n private readonly operationDefinition: OperationDefinition,\n private readonly options: OperationDefinitionDeclarationRendererOptions,\n ) {\n this.typeName = typeNameFactory(operationDefinition)\n }\n\n private renderResponseBodies(operation: OpenAPIV3_1.OperationObject, options: JsonSchemaDeclarationRendererOptions): string {\n if (!operation.responses || R.isEmpty(operation.responses)) {\n return `export interface ${this.typeName('ResponseBodies')} {}`\n }\n\n const $responses = Object.entries(operation.responses)\n .map(([statusCode, response]) => {\n if (!JsonSchemaUtils.isRef(response)) {\n const $value = Object.entries(response.content || {})\n .map(([mediaType, mediaTypeObject]) => <const>[mediaType, mediaTypeObject.schema])\n .map(([mediaType, schema]) => {\n if (mediaType.includes('text/event-stream')) return 'ReadableStream<ServerSentEvent>'\n if (mediaType.includes('multipart/form-data')) return 'FormData'\n if (!schema) return 'unknown'\n\n return JsonSchemaTransformer.toDeclaration(schema, options)\n })\n .join(' | ')\n\n return indent(2, `${statusCode}: ${$value || 'void'}`)\n }\n })\n .join('\\n')\n\n return [\n `export interface ${this.typeName('ResponseBodies')} {`,\n $responses,\n '}',\n ].join('\\n')\n }\n\n private renderRequestBodies(operation: OpenAPIV3_1.OperationObject, options: JsonSchemaDeclarationRendererOptions): string {\n let $requestBodies = `export interface ${this.typeName('RequestBodies')} {}`\n\n if (operation.requestBody && !JsonSchemaUtils.isRef(operation.requestBody)) {\n const $mediaTypes = Object.entries(operation.requestBody.content || {})\n .map(([mediaType, mediaTypeObject]) => <const>[mediaType, mediaTypeObject.schema])\n .map(([mediaType, schema]) => {\n if (!schema) return `${JSON.stringify(mediaType)}: unknown`\n\n // if (mediaType === 'multipart/form-data') {\n // return `${JSON.stringify(mediaType)}: FormData | ${generateSchema(schema, alias)}`\n // } else if (mediaType === 'application/x-www-form-urlencoded') {\n // return `${JSON.stringify(mediaType)}: URLSearchParams | ${generateSchema(schema, alias)}`\n // }\n\n return `${JSON.stringify(mediaType)}: ${JsonSchemaTransformer.toDeclaration(schema, options)}`\n })\n .map((pair) => indent(2, pair))\n\n $requestBodies = [\n `export interface ${this.typeName('RequestBodies')} {`,\n ...$mediaTypes,\n '}',\n ].join('\\n')\n }\n\n return $requestBodies\n }\n\n private renderParameterBodies(operationDefinition: OperationDefinition, options: JsonSchemaDeclarationRendererOptions): string {\n const { operation } = operationDefinition\n let parameterBodies = ''\n // let parameterBodies = `interface ${typeName('ParameterBodies')} {}`\n\n if (operation.requestBody && !JsonSchemaUtils.isRef(operation.requestBody)) {\n const $mediaTypes = Object.entries(operation.requestBody.content || {})\n .map(([mediaType, mediaTypeObject]) => <const>[mediaType, mediaTypeObject.schema])\n // .filter((pair): pair is [string, OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject] => !!pair[1])\n .map(([mediaType, schemaOrRef]) => {\n if (!schemaOrRef) return `${JSON.stringify(mediaType)}: unknown`\n\n const schema = JsonSchemaUtils.isRef(schemaOrRef)\n ? OpenapiUtils.dereferenceDeep<OpenAPIV3_1.SchemaObject>(schemaOrRef.$ref, operationDefinition.document.specification)\n : schemaOrRef\n\n if (schema.type === 'object' || schema.properties) {\n return `${JSON.stringify(mediaType)}: ${JsonSchemaTransformer.toDeclaration(schemaOrRef, options)} & { [key: string]: any }`\n }\n\n return `${JSON.stringify(mediaType)}: { [key: string]: any }`\n })\n .map((pair) => indent(2, pair))\n\n // $requestBodies = `export type ${typeName('RequestBody')} = ${$value || 'unknown'}`\n parameterBodies = [\n `interface ${this.typeName('ParameterBodies')} {`,\n ...$mediaTypes,\n '}',\n '',\n ].join('\\n')\n }\n\n return parameterBodies\n }\n\n private renderRequestParameters(operation: OpenAPIV3_1.OperationObject, options: JsonSchemaDeclarationRendererOptions): string {\n const mediaTypes = operation.requestBody && !JsonSchemaUtils.isRef(operation.requestBody)\n ? Object.keys(operation.requestBody.content || {})\n : []\n\n const base = `${this.typeName('RequestQuery')} & ${this.typeName('RouteParameters')} & ${this.typeName('RequestHeaders')}`\n\n if (mediaTypes.length === 1) {\n return `export type ${this.typeName('RequestParameters')} = ${base} & ${this.typeName('RequestBodies')}[${JSON.stringify(mediaTypes[0])}]`\n }\n\n if (mediaTypes.length > 1) {\n const unions = mediaTypes\n .map((mediaType) => `(${base} & ${this.typeName('RequestBodies')}[${JSON.stringify(mediaType)}] & { \"content-type\": ${JSON.stringify(mediaType)} })`)\n .join('\\n| ')\n\n return `export type ${this.typeName('RequestParameters')} = ${unions}`\n }\n\n return `export type ${this.typeName('RequestParameters')} = ${base}`\n }\n\n private rendererParameters(name: string, parameters: OpenAPIV3_1.ParameterObject[], options: JsonSchemaDeclarationRendererOptions): string {\n if (parameters.length === 0) {\n return `export type ${name} = {}`\n }\n\n const $parameters = parameters.map((parameter) => {\n const parameterName = `\"${parameter.name}\"`\n const $key = parameter.required ? parameterName : `${parameterName}?`\n const $value = JsonSchemaTransformer.toDeclaration(parameter.schema || { type: 'any' }, options)\n\n return indent(2, `${$key}: ${$value}`)\n })\n .join('\\n')\n\n\n return [\n `export type ${name} = {`,\n $parameters,\n '}',\n ].filter(Boolean).join('\\n')\n }\n\n private renderDependencies(): string {\n const schemaDefinitions = this.operationDefinition.getDependencies()\n .filter((schemaDefinition) => !SchemaDefinition.isUnknown(schemaDefinition))\n\n const $schemaDefinitions = schemaDefinitions\n .map((schemaDefinition) => {\n const filepath = this.options.getDependentSchemaDefinitionFilepath(schemaDefinition)\n const schemaName = schemaDefinition.name\n\n return `import type { ${schemaName} as ${alias(schemaName)} } from \"${filepath}\"`\n })\n .map((str) => (str.replace(/ from \"(\\.\\.?\\/.+?)(\\.ts|\\.mts|\\.cts|\\.js|\\.cjs|\\.mjs)?\"/, this.options.esm ? ' from \"$1.js\"' : ' from \"$1\"')))\n\n return [\n 'import type { KeqOperation, KeqPathParameterInit, KeqQueryInit, ServerSentEvent } from \"keq\"',\n ...$schemaDefinitions,\n ].join('\\n')\n }\n\n render(): string {\n const { operation } = this.operationDefinition\n\n if (!operation.responses) return ''\n\n const jsonSchemaDeclarationRendererOptions: JsonSchemaDeclarationRendererOptions = {\n referenceTransformer: (schema: OpenAPIV3_1.ReferenceObject) => {\n return ReferenceTransformer.toDeclaration(schema, alias)\n },\n }\n\n const $dependencies = this.renderDependencies()\n\n const $responseBodies = this.renderResponseBodies(operation, jsonSchemaDeclarationRendererOptions)\n const $requestBodies = this.renderRequestBodies(operation, jsonSchemaDeclarationRendererOptions)\n const $parameterBodies = this.renderParameterBodies(this.operationDefinition, jsonSchemaDeclarationRendererOptions)\n const $requestParameters = this.renderRequestParameters(operation, jsonSchemaDeclarationRendererOptions)\n const $requestQuery = this.rendererParameters(\n `${this.typeName('RequestQuery')}`,\n operation.parameters?.filter((p) => !JsonSchemaUtils.isRef(p) && p.in === 'query') || [],\n jsonSchemaDeclarationRendererOptions,\n )\n const $routeParameters = this.rendererParameters(\n `${this.typeName('RouteParameters')}`,\n operation.parameters?.filter((p) => !JsonSchemaUtils.isRef(p) && p.in === 'path') || [],\n jsonSchemaDeclarationRendererOptions,\n )\n const $requestHeaders = this.rendererParameters(\n `${this.typeName('RequestHeaders')}`,\n operation.parameters?.filter((p) => !JsonSchemaUtils.isRef(p) && p.in === 'header') || [],\n jsonSchemaDeclarationRendererOptions,\n )\n\n return [\n '/* @anchor:file:start */',\n '',\n $dependencies,\n '',\n $responseBodies,\n '',\n $requestBodies,\n '',\n $requestQuery,\n '',\n $routeParameters,\n '',\n $requestHeaders,\n '',\n $parameterBodies || undefined,\n $requestParameters,\n '',\n `export interface ${this.typeName('Operation')}<STATUS extends keyof ${this.typeName('ResponseBodies')}, CONTENT_TYPE extends ${$parameterBodies ? `keyof ${this.typeName('ParameterBodies')}` : 'string'} > extends KeqOperation {`,\n ` requestParams: ${this.typeName('RouteParameters')} & { [key: string]: KeqPathParameterInit }`,\n ` requestQuery: ${this.typeName('RequestQuery')} & { [key: string]: KeqQueryInit }`,\n ` requestHeaders: ${this.typeName('RequestHeaders')} & { [key: string]: string | number }`,\n ` requestBody: ${$parameterBodies ? `${this.typeName('ParameterBodies')}[CONTENT_TYPE] | ` : 'object | '}BodyInit`,\n ` responseBody: ${this.typeName('ResponseBodies')}[STATUS]`,\n '}',\n '',\n '/* @anchor:file:end */',\n ].filter(R.isNotNil).join('\\n')\n }\n}\n","import * as changeCase from 'change-case'\nimport { OperationDefinition } from '~/models/index.js'\n\nexport type TypeNameFn = (name: string) => string\n\nexport function typeNameFactory(operationDefinition: OperationDefinition): TypeNameFn {\n const pascalCaseOperationId = changeCase.pascalCase(operationDefinition.operationId)\n return (name: string) => `${pascalCaseOperationId}${name}`\n}\n","import * as R from 'ramda'\nimport { OperationDefinition } from '~/models/index.js'\nimport { Renderer } from '../types/renderer.js'\nimport { typeNameFactory, TypeNameFn } from './utils/index.js'\nimport { indent } from '~/utils/indent.js'\nimport { Exception } from '~/exception.js'\nimport { CommentRenderer } from './comment.renderer.js'\nimport { OperationDefinitionSnippet, OperationDefinitionSnippetOptions } from './typescript-snippet.js'\n\n\nexport interface OperationDefinitionMicroFunctionRendererOptions extends OperationDefinitionSnippetOptions {\n getOperationDefinitionDeclarationFilepath(operationDefinition: OperationDefinition): string\n getRequestFilepath(): string\n}\n\nexport class OperationDefinitionMicroFunctionRenderer implements Renderer {\n helper: OperationDefinitionSnippet\n typeName: TypeNameFn\n\n constructor(\n private readonly operationDefinition: OperationDefinition,\n private readonly options: OperationDefinitionMicroFunctionRendererOptions,\n ) {\n this.typeName = typeNameFactory(operationDefinition)\n this.helper = new OperationDefinitionSnippet(operationDefinition, options)\n }\n\n render(): string {\n const { operation, operationId, method, pathname } = this.operationDefinition\n if (!operation.responses) return ''\n\n const $dependencies = this.renderDependencies()\n const $comment = new CommentRenderer(this.operationDefinition).render()\n\n const moduleName = this.operationDefinition.module.name\n\n const $method = method.toLowerCase()\n const $queryParameters = this.helper.renderRequestQuery()\n const $headerParameters = this.helper.renderRequestHeaders()\n const $pathParameters = this.helper.renderRequestPathParameters()\n\n const $mediaType = this.helper.renderMediaType()\n\n const $requestBody = this.helper.renderRequestBody()\n\n const $operationDeclaration = this.renderOperationDeclaration()\n\n return [\n '/* @anchor:file:start */',\n '',\n $dependencies,\n '',\n `const moduleName = \"${moduleName}\"`,\n `const method = \"${method}\"`,\n `const pathname = \"${pathname}\"`,\n '',\n $comment || undefined,\n `export ${$operationDeclaration} {`,\n ` const req = request.${$method}<${this.typeName('ResponseBodies')}[STATUS]>(\"${pathname}\")`,\n ' .option(\\'module\\', { name: moduleName, pathname, method })',\n '',\n $mediaType ? indent(2, $mediaType) : undefined,\n ' /* @anchor:query:start */',\n $queryParameters ? indent(2, $queryParameters) : undefined,\n ' /* @anchor:query:end */',\n '',\n ' /* @anchor:headers:start */',\n $headerParameters ? indent(2, $headerParameters) : undefined,\n ' /* @anchor:headers:end */',\n '',\n ' /* @anchor:path-parameters:start */',\n $pathParameters ? indent(2, $pathParameters) : undefined,\n ' /* @anchor:path-parameters:end */',\n '',\n ' /* @anchor:body:start */',\n $requestBody ? indent(2, $requestBody) : undefined,\n ' /* @anchor:body:end */',\n '',\n ' /* @anchor:operation-return */',\n ` return req as ReturnType<typeof ${operationId}<STATUS${$operationDeclaration.includes('CONTENT_TYPE') ? ', CONTENT_TYPE' : ''}>>`,\n '}',\n '',\n `${operationId}.pathname = pathname`,\n `${operationId}.method = method`,\n '/* @anchor:file:end */',\n ].filter(R.isNotNil).join('\\n')\n }\n\n private renderDependencies(): string {\n const declarationFilepath = this.options.getOperationDefinitionDeclarationFilepath(this.operationDefinition)\n const requestFilepath = this.options.getRequestFilepath()\n\n return [\n 'import { Keq } from \"keq\"',\n `import { request } from \"${requestFilepath}\"`,\n `import type { ${this.typeName('Operation')}, ${this.typeName('ResponseBodies')}, ${this.typeName('RequestParameters')} } from \"${declarationFilepath}\"`,\n `export type { ${this.typeName('RequestQuery')}, ${this.typeName('RequestHeaders')}, ${this.typeName('RequestBodies')} } from \"${declarationFilepath}\"`,\n ]\n .map((str) => (str.replace(/ from \"(\\.\\.?\\/.+?)(\\.ts|\\.mts|\\.cts|\\.js|\\.cjs|\\.mjs)?\"/, this.options.esm ? ' from \"$1.js\"' : ' from \"$1\"')))\n .join('\\n')\n }\n\n private renderOperationDeclaration(): string {\n const { operationId } = this.operationDefinition\n\n const mediaTypes = this.helper.getRequestMediaTypes()\n\n if (mediaTypes.length === 0) {\n return `function ${operationId}<STATUS extends keyof ${this.typeName('ResponseBodies')}, CONTENT_TYPE extends never = never>(args?: ${this.typeName('RequestParameters')}): Keq<${this.typeName('Operation')}<STATUS, CONTENT_TYPE>>`\n } else if (mediaTypes.length === 1) {\n return `function ${operationId}<STATUS extends keyof ${this.typeName('ResponseBodies')}, CONTENT_TYPE extends ${JSON.stringify(mediaTypes[0])} = ${JSON.stringify(mediaTypes[0])}>(args?: ${this.typeName('RequestParameters')}): Keq<${this.typeName('Operation')}<STATUS, CONTENT_TYPE>>`\n } else if (mediaTypes.length > 1) {\n return `function ${operationId}<STATUS extends keyof ${this.typeName('ResponseBodies')}, CONTENT_TYPE extends ${this.typeName('RequestParameters')}[\"content-type\"]>(args?: Extract<${this.typeName('RequestParameters')}, { \"content-type\": CONTENT_TYPE }>): Keq<${this.typeName('Operation')}<STATUS, CONTENT_TYPE>>`\n }\n\n throw new Exception(this.operationDefinition.module, '[operationDeclarationRenderer] Unreachable')\n }\n}\n","import * as R from 'ramda'\nimport { KeqQueryOptions } from 'keq'\nimport { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { OperationDefinition } from '~/models/index.js'\nimport { JsonSchemaUtils } from '~/utils/json-schema-utils/index.js'\nimport { OpenapiUtils } from '~/utils/openapi-utils/index.js'\nimport { QsArrayFormat } from '~/constants/index.js'\nimport { typeNameFactory, TypeNameFn } from './utils/index.js'\n\n\nexport interface OperationDefinitionSnippetOptions {\n esm?: boolean\n}\n\nexport class OperationDefinitionSnippet {\n typeName: TypeNameFn\n\n constructor(\n private readonly operationDefinition: OperationDefinition,\n private readonly options: OperationDefinitionSnippetOptions,\n ) {\n this.typeName = typeNameFactory(operationDefinition)\n }\n\n\n private getQsParameters(parameter: OpenAPIV3_1.ParameterObject): KeqQueryOptions | undefined {\n let arrayFormat: QsArrayFormat | undefined\n let allowDots: boolean | undefined\n let indices: boolean | undefined\n\n const style = parameter.style || 'form'\n const explode = parameter.explode ?? true\n\n if ('x-qs-array-format' in parameter) {\n arrayFormat = parameter['x-qs-array-format'] as QsArrayFormat\n } else {\n if (style === 'deepObject') {\n arrayFormat = QsArrayFormat.brackets\n } else if (explode) {\n arrayFormat = QsArrayFormat.repeat\n } else {\n if (style === 'form') {\n arrayFormat = QsArrayFormat.comma\n } else if (style === 'spaceDelimited') {\n arrayFormat = QsArrayFormat.space\n } else if (style === 'pipeDelimited') {\n arrayFormat = QsArrayFormat.pipe\n }\n }\n }\n\n if ('x-qs-allow-dots' in parameter) {\n allowDots = Boolean(parameter['x-qs-allow-dots'])\n }\n\n if ('x-qs-indices' in parameter) {\n indices = Boolean(parameter['x-qs-indices'])\n }\n\n\n if (arrayFormat || allowDots !== undefined || indices !== undefined) {\n return {\n ...(arrayFormat ? { arrayFormat } : {}),\n ...(allowDots !== undefined ? { allowDots } : {}),\n ...(indices !== undefined ? { indices } : {}),\n }\n }\n\n return undefined\n }\n\n\n // render: \"if (args && 'Authorization' in args) req.header('Authorization', args['Authorization'])\"\n renderRequestHeaders(): string {\n const { operation } = this.operationDefinition\n\n const $headers = (operation.parameters || [])\n .filter((p): p is OpenAPIV3_1.ParameterObject => !JsonSchemaUtils.isRef(p))\n .filter((p) => p.in === 'header')\n .map((p) => `if (args && ${JSON.stringify(p.name)} in args) req.header(${JSON.stringify(p.name)}, args[${JSON.stringify(p.name)}])`)\n .join('\\n')\n\n return $headers\n }\n\n // render: \"if (args && 'id' in args) req.query('id', args['id'], options)\"\n renderRequestQuery(): string {\n const { operation } = this.operationDefinition\n\n const $query = (operation.parameters || [])\n .filter((p): p is OpenAPIV3_1.ParameterObject => !JsonSchemaUtils.isRef(p))\n .filter((p) => p.in === 'query')\n .map((p) => {\n const option = this.getQsParameters(p)\n const $option = (!option || R.isEmpty(option)) ? '' : `, ${JSON.stringify(option)}`\n\n return `if (args && ${JSON.stringify(p.name)} in args) req.query(${JSON.stringify(p.name)}, args[${JSON.stringify(p.name)}]${$option})`\n })\n .join('\\n')\n\n return $query\n }\n\n // render: \"if (args && 'id' in args) req.params('id', args['id'])\"\n renderRequestPathParameters(): string {\n const { operation } = this.operationDefinition\n\n const $pathParameters = (operation.parameters || [])\n .filter((p): p is OpenAPIV3_1.ParameterObject => !JsonSchemaUtils.isRef(p))\n .filter((p) => p.in === 'path')\n .map((p) => `if (args && ${JSON.stringify(p.name)} in args) req.params(${JSON.stringify(p.name)}, args[${JSON.stringify(p.name)}])`)\n .join('\\n')\n\n return $pathParameters\n }\n\n getRequestMediaTypes(): string[] {\n const { operation } = this.operationDefinition\n const requestBodyContent = (operation.requestBody?.content || {}) as Record<string, OpenAPIV3_1.MediaTypeObject>\n return Object.keys(requestBodyContent)\n }\n\n // render \"req.type(\"application/json\")\"\n renderMediaType(): string {\n const mediaTypes = this.getRequestMediaTypes()\n\n if (mediaTypes.length === 1 && !mediaTypes[0].endsWith('/*')) {\n return `req.type(\"${mediaTypes[0]}\")\\n`\n } else if (mediaTypes.some((mediaType) => mediaType === '*/*')) {\n // no-op\n } else if (mediaTypes.some((mediaType) => mediaType.endsWith('/*'))) {\n return 'if(args?.[\"content-type\"]) req.type(args[\"content-type\"])\\n'\n } else if (mediaTypes.length > 1) {\n return 'if(args?.[\"content-type\"]) req.type(args[\"content-type\"])\\n'\n }\n\n return ''\n }\n\n\n // render body\n\n private requestBodyFormDataPropertyRenderer(\n propertyName: string,\n propertySchema: OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.SchemaObject,\n mediaType: string,\n ): string {\n try {\n const $propertyName = JSON.stringify(propertyName)\n\n const schema = JsonSchemaUtils.isRef(propertySchema)\n ? OpenapiUtils.dereferenceDeep<OpenAPIV3_1.SchemaObject>(propertySchema.$ref, this.operationDefinition.document.specification)\n : propertySchema\n\n if (\n (schema.type === 'string' && schema.format === 'binary')\n || schema.contentMediaType === 'application/octet-stream') {\n return `if (args && ${$propertyName} in args && args[${$propertyName}]) req.attach(${$propertyName}, args[${$propertyName}])`\n } else if (\n schema.type === 'string'\n || (schema.type === 'array' && schema.items && schema.items.type === 'string')\n ) {\n return `if (args && ${$propertyName} in args && args[${$propertyName}] !== undefined) req.field(${$propertyName}, args[${$propertyName}])`\n } else if (schema.type === 'number' || schema.type === 'integer') {\n return `if (args && ${$propertyName} in args && args[${$propertyName}] !== undefined) req.field(${$propertyName}, String(args[${$propertyName}]))`\n }\n\n return `if (args && ${$propertyName} in args && args[${$propertyName}] !== undefined) req.field(${$propertyName}, String(args[${$propertyName}]) /* type is non-string in schema; triggers type coercion here */)`\n } catch (err) {\n return this.renderErrorComment(err, mediaType)\n }\n }\n\n private requestBodyPropertyRenderer(\n propertyName: string,\n propertySchema: OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.SchemaObject,\n mediaType: string,\n ): string {\n if (mediaType === 'application/json') {\n const $propertyName = JSON.stringify(propertyName)\n return `if (args && ${$propertyName} in args) req.send({ ${$propertyName}: args[${$propertyName}] })`\n } else if (mediaType === 'multipart/form-data') {\n return this.requestBodyFormDataPropertyRenderer(propertyName, propertySchema, mediaType)\n } else {\n throw new Error(`Unsupported media type: ${mediaType}`)\n }\n }\n\n renderRequestBody(): string {\n const { operation } = this.operationDefinition\n const requestBodyContent = (operation.requestBody?.content || {}) as Record<string, OpenAPIV3_1.MediaTypeObject>\n\n const $requestBody = Object.entries(requestBodyContent)\n .map(([mediaType, mediaTypeObject]): string | undefined => {\n if (!mediaTypeObject.schema) return\n\n try {\n const schema = JsonSchemaUtils.isRef(mediaTypeObject.schema)\n ? OpenapiUtils.dereferenceDeep<OpenAPIV3_1.SchemaObject>(mediaTypeObject.schema.$ref, this.operationDefinition.document.specification)\n : mediaTypeObject.schema\n\n if (schema.type !== 'object') return\n\n const properties = (schema.properties || {}) as OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.SchemaObject\n\n return Object.entries(properties)\n .map(([propertyName, propertySchema]) => this.requestBodyPropertyRenderer(propertyName, propertySchema, mediaType))\n .join('\\n')\n } catch (err) {\n return this.renderErrorComment(err, mediaType)\n }\n })\n .filter(R.isNotNil)\n .join('\\n')\n\n return $requestBody\n }\n\n private renderErrorComment(err: unknown, mediaType: string): string {\n const $err = String(err)\n .split('\\n')\n .map(((line) => ` * ${line}`))\n .join('\\n')\n\n return [\n '/**',\n ` * Unable to dereference schema for media type ${mediaType}`,\n $err,\n ' */',\n ].join('\\n')\n }\n}\n","import * as R from 'ramda'\nimport { TypeNameFn, typeNameFactory } from './utils/index.js'\nimport { OperationDefinition } from '~/models/index.js'\nimport { OperationDefinitionSnippet, OperationDefinitionSnippetOptions } from './typescript-snippet.js'\nimport { CommentRenderer } from './comment.renderer.js'\nimport { indent } from '~/utils/indent.js'\nimport { Renderer } from '../types/renderer.js'\nimport { Exception } from '~/exception.js'\n\n\nexport type OperationDefinitionNestjsMethodRendererOptions = OperationDefinitionSnippetOptions\n\nexport class OperationDefinitionNestjsMethodRenderer implements Renderer {\n helper: OperationDefinitionSnippet\n typeName: TypeNameFn\n\n constructor(\n private readonly operationDefinition: OperationDefinition,\n private readonly options: OperationDefinitionNestjsMethodRendererOptions,\n ) {\n this.typeName = typeNameFactory(operationDefinition)\n this.helper = new OperationDefinitionSnippet(operationDefinition, options)\n }\n\n\n render(): string {\n // const operationId = changeCase.camelCase(this.operationDefinition.operationId)\n const pathname = this.operationDefinition.pathname\n\n const $comment = new CommentRenderer(this.operationDefinition).render()\n const $method = this.operationDefinition.method.toLowerCase()\n const $mediaType = this.helper.renderMediaType()\n const $operationDeclaration = this.renderOperationDeclaration(this.operationDefinition)\n const $queryParameters = this.helper.renderRequestQuery()\n const $headerParameters = this.helper.renderRequestHeaders()\n const $pathParameters = this.helper.renderRequestPathParameters()\n const $requestBody = this.helper.renderRequestBody()\n\n return [\n $comment,\n `${$operationDeclaration} {`,\n ` const req = this.request.${$method}<${this.typeName('ResponseBodies')}[STATUS]>(${JSON.stringify(pathname)})`,\n ' .option(',\n ' \"module\",',\n ' {',\n ` name: ${JSON.stringify(this.operationDefinition.module.name)},`,\n ` pathname: ${JSON.stringify(pathname)},`,\n ` method: ${JSON.stringify($method)},`,\n ' },',\n ' )',\n '',\n $mediaType ? indent(2, $mediaType) : undefined,\n '',\n ' /* @anchor:query:start */',\n $queryParameters ? indent(2, $queryParameters) : undefined,\n ' /* @anchor:query:end */',\n '',\n ' /* @anchor:headers:start */',\n $headerParameters ? indent(2, $headerParameters) : undefined,\n ' /* @anchor:headers:end */',\n '',\n ' /* @anchor:path-parameters:start */',\n $pathParameters ? indent(2, $pathParameters) : undefined,\n ' /* @anchor:path-parameters:end */',\n '',\n ' /* @anchor:body:start */',\n $requestBody ? indent(2, $requestBody) : undefined,\n ' /* @anchor:body:end */',\n '',\n ' return req',\n '}',\n ].filter(R.isNotNil).join('\\n')\n }\n\n private renderOperationDeclaration(operationDefinition: OperationDefinition): string {\n const { operationId } = operationDefinition\n const typeName = typeNameFactory(operationDefinition)\n\n const mediaTypes = this.helper.getRequestMediaTypes()\n\n if (mediaTypes.length === 0) {\n return `${operationId}<STATUS extends keyof ${typeName('ResponseBodies')}, CONTENT_TYPE extends never = never>(args?: ${typeName('RequestParameters')}): Keq<${typeName('Operation')}<STATUS, CONTENT_TYPE>>`\n } else if (mediaTypes.length === 1) {\n return `${operationId}<STATUS extends keyof ${typeName('ResponseBodies')}, CONTENT_TYPE extends ${JSON.stringify(mediaTypes[0])} = ${JSON.stringify(mediaTypes[0])}>(args?: ${typeName('RequestParameters')}): Keq<${typeName('Operation')}<STATUS, CONTENT_TYPE>>`\n } else if (mediaTypes.length > 1) {\n return `${operationId}<STATUS extends keyof ${typeName('ResponseBodies')}, CONTENT_TYPE extends ${typeName('RequestParameters')}[\"content-type\"]>(args?: Extract<${typeName('RequestParameters')}, { \"content-type\": CONTENT_TYPE }>): Keq<${typeName('Operation')}<STATUS, CONTENT_TYPE>>`\n }\n\n throw new Exception(operationDefinition.module, '[operationDeclarationRenderer] Unreachable')\n }\n}\n","import * as R from 'ramda'\nimport { OperationDefinition } from '~/models/index.js'\nimport { CommentRenderer } from './comment.renderer.js'\nimport { DeclarationRenderer, OperationDefinitionDeclarationRendererOptions } from './declaration.renderer.js'\nimport { OperationDefinitionMicroFunctionRendererOptions, OperationDefinitionMicroFunctionRenderer } from './micro-function.renderer.js'\nimport { OperationDefinitionNestjsMethodRenderer, OperationDefinitionNestjsMethodRendererOptions } from './nestjs-method.renderer.js'\n\n\nexport class OperationDefinitionTransformer {\n static toDeclaration(operationDefinition: OperationDefinition, options: OperationDefinitionDeclarationRendererOptions): string {\n return new DeclarationRenderer(operationDefinition, options).render()\n }\n\n static toMicroFunction(operationDefinition: OperationDefinition, options: OperationDefinitionMicroFunctionRendererOptions): string {\n return new OperationDefinitionMicroFunctionRenderer(operationDefinition, options).render()\n }\n\n static toNestjsMethod(operationDefinition: OperationDefinition, options: OperationDefinitionNestjsMethodRendererOptions): string {\n return new OperationDefinitionNestjsMethodRenderer(operationDefinition, options).render()\n }\n\n static toComment(operationDefinition: OperationDefinition): string {\n return new CommentRenderer(operationDefinition).render()\n }\n}\n","import * as path from 'path'\nimport { Artifact } from '~/models/index.js'\n\n\ninterface EntrypointTypescriptRendererOptions {\n esm?: boolean\n\n // The directory path of the entrypoint file being generated\n dirpath: string\n}\n\nexport class EntrypointTransformer {\n static toTypescript(exports: Artifact[], options: EntrypointTypescriptRendererOptions): string {\n const $exports = exports.map((exportArtifact) => {\n const relativePath = path.relative(\n options.dirpath,\n exportArtifact.filepath,\n )\n .replace(/(\\.ts|\\.mts|\\.cts|\\.js|\\.cjs|\\.mjs)?$/, options.esm ? '.js' : '')\n\n return relativePath.startsWith('.')\n ? `export * from '${relativePath}'`\n : `export * from './${relativePath}'`\n })\n\n return [\n '/* @anchor:file:start */',\n '',\n ...$exports,\n '',\n '/* @anchor:file:end */',\n ].join('\\n')\n }\n}\n","import * as R from 'ramda'\nimport * as changeCase from 'change-case'\nimport { ApiDocumentV3_1, OperationDefinition } from '~/models/index.js'\nimport { Renderer } from '../types/renderer.js'\nimport { OperationDefinitionTransformer, typeNameFactory } from '../operation-definition/index.js'\nimport { indent } from '~/utils/indent.js'\n\n\nexport interface ApiDocumentNestjsClientRendererOptions {\n esm?: boolean\n\n getOperationDefinitionDeclarationFilepath(this: void, operationDefinition: OperationDefinition): string\n}\n\n\nexport class NestjsClientRenderer implements Renderer {\n constructor(\n private readonly document: ApiDocumentV3_1,\n private readonly options: ApiDocumentNestjsClientRendererOptions,\n ) {\n\n }\n\n private renderDependencies(): string {\n const $operations = this.document.operations\n .map((operationDefinition) => {\n const filepath = this.options.getOperationDefinitionDeclarationFilepath(operationDefinition)\n const typeName = typeNameFactory(operationDefinition)\n\n return `import type { ${typeName('Operation')}, ${typeName('ResponseBodies')}, ${typeName('RequestParameters')} } from \"${filepath}\"`\n })\n .map((str) => (str.replace(/ from \"(\\.\\.?\\/.+?)(\\.ts|\\.mts|\\.cts|\\.js|\\.cjs|\\.mjs)?\"/, this.options.esm ? ' from \"$1.js\"' : ' from \"$1\"')))\n\n return [\n 'import { Injectable, Logger } from \"@nestjs/common\"',\n 'import { Keq, KeqRequest } from \"keq\"',\n ...$operations,\n ]\n .join('\\n')\n }\n\n render(): string {\n const moduleName = changeCase.pascalCase(this.document.module.name)\n\n const $dependencies = this.renderDependencies()\n const $operations = this.document.operations\n .map((operation) => OperationDefinitionTransformer.toNestjsMethod(operation, {\n esm: this.options.esm,\n }))\n .join('\\n\\n')\n\n return [\n '/* @anchor:file:start */',\n '',\n $dependencies,\n '',\n '@Injectable()',\n `export class ${moduleName}Client {`,\n ` private readonly logger = new Logger(${moduleName}Client.name)`,\n '',\n ' constructor(',\n ' // @anchor:client-constructor-parameters:start',\n ' private readonly request: KeqRequest,',\n ' // @anchor:client-constructor-parameters:end',\n ' ) {}',\n '',\n indent(2, $operations),\n '}',\n '',\n '/* @anchor:file:end */',\n ].filter(R.isNotNil).join('\\n')\n }\n}\n","import * as changeCase from 'change-case'\nimport { ApiDocumentV3_1 } from '~/models/api-document_v3_1.js'\n\nexport interface ApiDocumentNestjsModuleRendererOptions {\n esm?: boolean\n\n getNestjsClientFilepath(document: ApiDocumentV3_1): string\n}\n\nexport class NestjsModuleRenderer {\n constructor(\n private readonly document: ApiDocumentV3_1,\n private readonly options: ApiDocumentNestjsModuleRendererOptions,\n ) {\n }\n\n render(): string {\n const moduleName = changeCase.pascalCase(this.document.module.name)\n const clientFilepath = this.options.getNestjsClientFilepath(this.document)\n .replace(/(\\.ts|\\.mts|\\.cts|\\.js|\\.cjs|\\.mjs)?$/, this.options.esm ? '.js' : '')\n\n return [\n '/* @anchor:file:start */',\n 'import { Module, Inject, ConfigurableModuleBuilder, Global } from \"@nestjs/common\"',\n 'import { KeqRequest } from \"keq\"',\n 'import { KeqModuleOptions } from \"@keq-request/nestjs\"',\n `import { ${moduleName}Client } from \"${clientFilepath}\"`,\n '',\n '',\n 'const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, OPTIONS_TYPE, ASYNC_OPTIONS_TYPE } = new ConfigurableModuleBuilder<KeqModuleOptions>().build()',\n '',\n '@Global()',\n '@Module({',\n ' imports: [],',\n ' controllers: [],',\n ` providers: [${moduleName}Client],`,\n ` exports: [${moduleName}Client],`,\n '})',\n `export class ${moduleName}Module extends ConfigurableModuleClass {`,\n '',\n ' constructor(',\n ' @Inject(MODULE_OPTIONS_TOKEN) private readonly options: KeqModuleOptions,',\n ' private readonly request: KeqRequest,',\n ' ) {',\n ' super()',\n ' }',\n '',\n ' onModuleInit() {',\n ' if (this.options.middlewares) {',\n ' for (const middleware of this.options.middlewares) {',\n ' this.request.use(middleware)',\n ' }',\n ' }',\n ' }',\n '}',\n '',\n '/* @anchor:file:end */',\n ].join('\\n')\n }\n}\n","import { ApiDocumentV3_1 } from '~/models/index.js'\nimport { ApiDocumentNestjsClientRendererOptions, NestjsClientRenderer } from './nestjs-client.renderer.js'\nimport { ApiDocumentNestjsModuleRendererOptions, NestjsModuleRenderer } from './nestjs-module.renderer.js'\n\n\nexport class ApiDocumentTransformer {\n static toNestjsModule(document: ApiDocumentV3_1, options: ApiDocumentNestjsModuleRendererOptions): string {\n return new NestjsModuleRenderer(document, options).render()\n }\n\n static toNestjsClient(document: ApiDocumentV3_1, options: ApiDocumentNestjsClientRendererOptions): string {\n return new NestjsClientRenderer(document, options).render()\n }\n}\n","import * as R from 'ramda'\nimport * as path from 'path'\nimport { Artifact, ModuleDefinition, SchemaDefinition } from '~/models/index.js'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { SchemaDefinitionTransformer } from '~/transformers/index.js'\nimport { EntrypointTransformer } from '~/transformers/entrypoint/entrypoint.transformer.js'\nimport { FileNamingStyle } from '~/constants/file-naming-style.js'\nimport * as changeCase from 'change-case'\nimport type { Generator, RuntimeConfig } from '~/types/index.js'\nimport { MetadataStorage } from '../../constants/metadata-storage.js'\n\n\nexport const SCHEMA_GENERATOR = 'schemaGenerator'\n\nexport class SchemaDeclarationGenerator implements Generator {\n async compile(compiler: Compiler, task: TaskWrapper): Promise<Artifact[]> {\n const context = compiler.context\n const metadata = MetadataStorage.get(compiler)!\n\n const rc = context.rc!\n // const matcher = context.matcher!\n const documents = context.documents!\n // .filter((document) => !matcher.isModuleIgnored(document.module))\n\n const schemaDefinitions = documents.flatMap((document) => document.schemas)\n\n const artifactMap = new Map<SchemaDefinition, Artifact>(\n await Promise.all(\n schemaDefinitions.map(async (schemaDefinition) => (<const>[\n schemaDefinition,\n await metadata.hooks.afterSchemaDeclarationArtifactGenerated.promise(\n this.generateSchemaDefinitionsArtifact(schemaDefinition, rc),\n schemaDefinition,\n task,\n ),\n ])),\n ),\n )\n\n\n const entrypoints = R.collectBy(\n (schemaDefinition) => schemaDefinition.module.name,\n schemaDefinitions,\n )\n .map((schemaDefinitions) => <const>[\n schemaDefinitions[0].module,\n schemaDefinitions\n .map((schemaDefinition) => artifactMap.get(schemaDefinition))\n .filter((artifact): artifact is Artifact => Boolean(artifact)),\n ])\n\n .map(([moduleDefinition, artifacts]) => this.generateEntrypointArtifact(\n moduleDefinition,\n artifacts,\n rc,\n ))\n\n return [...artifactMap.values(), ...entrypoints]\n }\n\n private generateSchemaDefinitionsArtifact(schemaDefinition: SchemaDefinition, rc: RuntimeConfig): Artifact {\n const filepath = SchemaDeclarationGenerator.getSchemaDefinitionArtifactFilepath(schemaDefinition, rc.fileNamingStyle)\n const dirpath = path.dirname(filepath)\n\n const artifact = new Artifact({\n id: SchemaDeclarationGenerator.getSchemaDefinitionArtifactId(schemaDefinition),\n filepath,\n content: SchemaDefinitionTransformer.toDeclaration(\n schemaDefinition,\n {\n esm: rc.esm,\n getDependentSchemaDefinitionFilepath(dependentSchemaDefinition: SchemaDefinition): string {\n const relativePath = path.relative(\n dirpath,\n SchemaDeclarationGenerator.getSchemaDefinitionArtifactFilepath(dependentSchemaDefinition, rc.fileNamingStyle),\n )\n\n return relativePath.startsWith('.') ? relativePath : `./${relativePath}`\n },\n },\n ),\n extensionName: '.schema.ts',\n })\n\n return artifact\n }\n\n private generateEntrypointArtifact(moduleDefinition: ModuleDefinition, exports: Artifact[], rc: RuntimeConfig): Artifact {\n const filepath = SchemaDeclarationGenerator.getEntrypointArtifactFilepath(moduleDefinition, rc.fileNamingStyle)\n const dirpath = path.dirname(filepath)\n\n const artifact = new Artifact({\n id: SchemaDeclarationGenerator.getEntrypointArtifactId(moduleDefinition),\n filepath,\n content: EntrypointTransformer.toTypescript(exports, { dirpath }),\n })\n\n return artifact\n }\n\n static getEntrypointArtifactFilepath(moduleDefinition: ModuleDefinition, fileNamingStyle: FileNamingStyle): string {\n return [\n '.',\n changeCase[fileNamingStyle](moduleDefinition.name),\n 'types',\n 'components',\n 'schemas',\n 'index.ts',\n ].join('/')\n }\n\n static getEntrypointArtifactId(moduleDefinition: ModuleDefinition): string {\n return `${moduleDefinition.address}/components/schemas/entrypoint?generator=${SCHEMA_GENERATOR}`\n }\n\n static getSchemaDefinitionArtifactFilepath(schemaDefinition: SchemaDefinition, fileNamingStyle: FileNamingStyle): string {\n const filename = `${changeCase[fileNamingStyle](schemaDefinition.name)}.schema.ts`\n return [\n '.',\n changeCase[fileNamingStyle](schemaDefinition.module.name),\n 'types',\n 'components',\n 'schemas',\n filename,\n ].join('/')\n }\n\n static getSchemaDefinitionArtifactId(schemaDefinition: SchemaDefinition): string {\n return `${schemaDefinition.id}?generator=${SCHEMA_GENERATOR}`\n }\n}\n","import { AsyncSeriesWaterfallHook } from 'tapable'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { Artifact, OperationDefinition, SchemaDefinition } from '~/models/index.js'\n\n\nexport interface GenerateDeclarationPluginMetadata {\n hooks: {\n afterEntrypointArtifactGenerated: AsyncSeriesWaterfallHook<[Artifact, TaskWrapper]>\n afterSchemaDeclarationArtifactGenerated: AsyncSeriesWaterfallHook<[Artifact, SchemaDefinition, TaskWrapper]>\n afterOperationDeclarationArtifactGenerated: AsyncSeriesWaterfallHook<[Artifact, OperationDefinition, TaskWrapper]>\n }\n}\n\nexport const MetadataStorage = new WeakMap<Compiler, GenerateDeclarationPluginMetadata>()\n","import { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { Artifact } from '~/models/index.js'\nimport { Generator } from '~/types/index.js'\n\n\nexport const MICRO_FUNCTION_REQUEST_GENERATOR = 'microFunctionRequestGenerator'\n\nexport class RequestGenerator implements Generator {\n private generateRequestArtifact(): Artifact {\n const content = [\n '/* @anchor:file:start */',\n '',\n 'import { KeqRequest } from \"keq\"',\n '',\n '/* @anchor:request-declaration */',\n 'export const request = new KeqRequest()',\n '',\n '/* @anchor:file:end */',\n ].join('\\n')\n\n return new Artifact({\n id: RequestGenerator.getRequestArtifactId(),\n filepath: RequestGenerator.getRequestArtifactFilepath(),\n content,\n })\n }\n\n\n // eslint-disable-next-line @typescript-eslint/require-await\n async compile(compiler: Compiler, task: TaskWrapper): Promise<Artifact[]> {\n return [\n this.generateRequestArtifact(),\n ]\n }\n\n static getRequestArtifactFilepath(): string {\n return './request.ts'\n }\n\n static getRequestArtifactId(): string {\n return `request?generator=${MICRO_FUNCTION_REQUEST_GENERATOR}`\n }\n}\n","import { AsyncSeriesWaterfallHook } from 'tapable'\nimport { Plugin } from '~/types/index.js'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { ApiDocumentV3_1, Artifact } from '~/models/index.js'\nimport { GenerateNestjsModulePluginMetadata, MetadataStorage } from './constants/index.js'\nimport { NestjsModuleGenerator } from './generators/nestjs-module.generator.js'\n\n\nexport class GenerateNestjsModulePlugin implements Plugin {\n private readonly nestjsModuleGenerator = new NestjsModuleGenerator()\n\n apply(compiler: Compiler): void {\n GenerateNestjsModulePlugin.register(compiler)\n\n compiler.hooks.compile.tapPromise(GenerateNestjsModulePlugin.name, async (task) => {\n const artifacts = await this.nestjsModuleGenerator.compile(compiler, task)\n compiler.context.artifacts!.push(...artifacts)\n })\n }\n\n static register(compiler: Compiler): GenerateNestjsModulePluginMetadata {\n if (!MetadataStorage.has(compiler)) {\n MetadataStorage.set(compiler, {\n hooks: {\n afterNestjsModuleArtifactGenerated: new AsyncSeriesWaterfallHook<[Artifact, ApiDocumentV3_1, TaskWrapper]>(['artifact', 'document', 'task']),\n },\n })\n }\n\n return MetadataStorage.get(compiler)!\n }\n\n static of(compiler: Compiler): GenerateNestjsModulePluginMetadata | undefined {\n return MetadataStorage.get(compiler)\n }\n}\n","import { AsyncSeriesWaterfallHook } from 'tapable'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { ApiDocumentV3_1, Artifact } from '~/models/index.js'\n\nexport interface GenerateNestjsModulePluginMetadata {\n hooks: {\n afterNestjsModuleArtifactGenerated: AsyncSeriesWaterfallHook<[Artifact, ApiDocumentV3_1, TaskWrapper]>\n }\n}\n\nexport const MetadataStorage = new WeakMap<Compiler, GenerateNestjsModulePluginMetadata>()\n","import * as path from 'path'\nimport * as changeCase from 'change-case'\nimport { Compiler, TaskWrapper } from '~/compiler/index.js'\nimport { ApiDocumentV3_1, Artifact } from '~/models/index.js'\nimport { MetadataStorage } from '../constants/metadata-storage.js'\nimport { FileNamingStyle } from '~/constants/index.js'\nimport { Generator, RuntimeConfig } from '~/types/index.js'\nimport { ApiDocumentTransformer } from '~/transformers/index.js'\nimport { OperationDeclarationGenerator } from '~/plugins/generate-declaration/index.js'\n\n\nconst NESTJS_MODULE_GENERATOR = 'nestjs-module-generator'\n\nexport class NestjsModuleGenerator implements Generator {\n private generateNestjsModuleArtifact(document: ApiDocumentV3_1, rc: RuntimeConfig): Artifact {\n const filepath = NestjsModuleGenerator.getNestjsModuleArtifactFilepath(document, rc.fileNamingStyle)\n const dirname = path.dirname(filepath)\n\n const artifact = new Artifact({\n id: NestjsModuleGenerator.getNestjsModuleArtifactId(document),\n filepath,\n content: ApiDocumentTransformer.toNestjsModule(document, {\n esm: rc.esm,\n getNestjsClientFilepath(document) {\n const relativePath = path.relative(\n dirname,\n NestjsModuleGenerator.getNestjsClientArtifactFilepath(document, rc.fileNamingStyle),\n )\n\n return relativePath.startsWith('.') ? relativePath : `./${relativePath}`\n },\n }),\n })\n\n return artifact\n }\n\n private generateNestjsClientArtifact(document: ApiDocumentV3_1, rc: RuntimeConfig): Artifact {\n const filepath = NestjsModuleGenerator.getNestjsClientArtifactFilepath(document, rc.fileNamingStyle)\n const dirpath = path.dirname(filepath)\n\n const artifact = new Artifact({\n id: NestjsModuleGenerator.getNestjsClientArtifactId(document),\n filepath,\n content: ApiDocumentTransformer.toNestjsClient(document, {\n esm: rc.esm,\n getOperationDefinitionDeclarationFilepath(operationDefinition) {\n const relativePath = path.relative(\n dirpath,\n OperationDeclarationGenerator.getOperationDefinitionArtifactFilepath(operationDefinition, rc.fileNamingStyle),\n )\n\n return relativePath.startsWith('.') ? relativePath : `./${relativePath}`\n },\n }),\n })\n\n return artifact\n }\n\n async compile(compiler: Compiler, task: TaskWrapper): Promise<Artifact[]> {\n const metadata = MetadataStorage.get(compiler)!\n const rc = compiler.context.rc!\n const documents = compiler.context.documents!\n\n const nestjsModuleArtifacts = await Promise.all(\n documents.map((document) => metadata.hooks.afterNestjsModuleArtifactGenerated.promise(\n this.generateNestjsModuleArtifact(document, rc),\n document,\n task,\n )),\n )\n\n const nestjsClientArtifacts = await Promise.all(\n documents.map((document) => metadata.hooks.afterNestjsModuleArtifactGenerated.promise(\n this.generateNestjsClientArtifact(document, rc),\n document,\n task,\n )),\n )\n\n return [...nestjsModuleArtifacts, ...nestjsClientArtifacts]\n }\n\n static getNestjsModuleArtifactFilepath(document: ApiDocumentV3_1, fileNamingStyle: FileNamingStyle): string {\n const filename = `${changeCase[fileNamingStyle](document.module.name)}.module.ts`\n\n const filepath = [\n '.',\n changeCase[fileNamingStyle](document.module.name),\n filename,\n ]\n\n return filepath.join('/')\n }\n\n static getNestjsModuleArtifactId(document: ApiDocumentV3_1): string {\n return `${document.module.address}?generate=${NESTJS_MODULE_GENERATOR}`\n }\n\n static getNestjsClientArtifactFilepath(document: ApiDocumentV3_1, fileNamingStyle: FileNamingStyle): string {\n const filename = `${changeCase[fileNamingStyle](document.module.name)}.client.ts`\n\n const filepath = [\n '.',\n changeCase[fileNamingStyle](document.module.name),\n filename,\n ]\n\n return filepath.join('/')\n }\n\n static getNestjsClientArtifactId(document: ApiDocumentV3_1): string {\n return `${document.module.address}?generate=${NESTJS_MODULE_GENERATOR}-client`\n }\n}\n","\nimport { fixSwagger } from 'swagger-fix'\nimport { Compiler } from '~/compiler/index.js'\nimport { ApiDocumentV3_1 } from '~/models/index.js'\n\n\nexport class ChineseToPinyinPlugin {\n apply(compiler: Compiler): void {\n compiler.hooks.afterDownload.tap(ChineseToPinyinPlugin.name, (task) => {\n const documents = compiler.context.documents!\n\n compiler.context.documents = documents.map((doc) => {\n return new ApiDocumentV3_1(\n fixSwagger(doc.specification as any),\n doc.module,\n )\n })\n })\n }\n}\n","import { Compiler } from '~/compiler/index.js'\nimport { Plugin, Address } from '~/types/index.js'\nimport { OpenapiUtils } from '~/utils/openapi-utils/index.js'\n\n\nexport class DownloadHttpFilePlugin implements Plugin {\n apply(compiler: Compiler): void {\n compiler.hooks.download.tapPromise(DownloadHttpFilePlugin.name, async (address, task) => {\n const { url } = address\n\n if (!url.startsWith('http://') && !url.startsWith('https://')) return undefined\n\n const content = await this.download(address)\n const spec = this.deserialize(content)\n return JSON.stringify(spec)\n })\n }\n\n async download(address: Address): Promise<string> {\n const { url, headers } = address\n\n try {\n const res = await fetch(url, { headers })\n if (res.status >= 400) throw new Error(`failed with status code ${res.status}`)\n\n return await res.text()\n } catch (e) {\n if (e instanceof Error) {\n e.message = `Unable get the openapi/swagger file from ${url}: ${e.message}`\n }\n\n throw e\n }\n }\n\n deserialize(content: string): object {\n const json = JSON.parse(content)\n const spec = OpenapiUtils.to3_1(json)\n return spec\n }\n}\n","import * as path from 'path'\nimport * as fs from 'fs/promises'\nimport * as yaml from 'js-yaml'\nimport { Compiler } from '~/compiler/index.js'\nimport { Plugin } from '~/types/index.js'\nimport { OpenapiUtils } from '~/utils/openapi-utils/index.js'\nimport { fileURLToPath } from 'url'\n\n\nexport class DownloadLocalFilePlugin implements Plugin {\n apply(compiler: Compiler): void {\n compiler.hooks.download.tapPromise(DownloadLocalFilePlugin.name, async (address, task) => {\n const { url, encoding } = address\n if (!url.startsWith('file://')) return undefined\n const filepath = fileURLToPath(url)\n\n const fileExt = path.extname(filepath)\n const content = await fs.readFile(filepath, encoding)\n const str = typeof content === 'string' ? content : content.toString(encoding)\n\n if (['.yml', '.yaml'].includes(fileExt)) {\n const value = yaml.load(str)\n return JSON.stringify(OpenapiUtils.to3_1(value))\n } else if (fileExt === '.json') {\n return JSON.stringify(OpenapiUtils.to3_1(JSON.parse(str)))\n }\n })\n }\n}\n","import { Plugin } from '~/types/index.js'\nimport { Compiler } from '~/compiler/index.js'\nimport { ApiDocumentV3_1, ModuleDefinition, OperationDefinition } from '~/models/index.js'\nimport { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { SupportedMethods } from '~/constants/index.js'\nimport { openapiShakingSync } from '@opendoc/openapi-shaking'\n\nexport class ShakingPlugin implements Plugin {\n apply(compiler: Compiler): void {\n compiler.hooks.beforeCompile.tap(ShakingPlugin.name, (task) => {\n const matcher = compiler.context.matcher!\n const documents = compiler.context.documents!\n\n compiler.context.documents = documents\n .map((document) => this.shaking(compiler, document))\n .filter((document) => !document.isEmpty())\n .filter((document) => !matcher.isModuleIgnored(document.module))\n })\n }\n\n shaking(compiler: Compiler, document: ApiDocumentV3_1): ApiDocumentV3_1 {\n const rc = compiler.context.rc!\n const matcher = compiler.context.matcher!\n\n const isAccepted = (pathname: string, method: string, operation: OpenAPIV3_1.Document): boolean => {\n if (!SupportedMethods.includes(method)) return false\n\n return !matcher.isOperationIgnored(new OperationDefinition({\n method,\n pathname,\n operation,\n module: document.module,\n document: document,\n }))\n }\n\n\n const sharkedSwagger = openapiShakingSync(\n document.specification as any,\n isAccepted as any,\n { tolerant: rc.tolerant },\n ) as OpenAPIV3_1.Document\n\n return new ApiDocumentV3_1(\n sharkedSwagger,\n new ModuleDefinition(\n document.module.name,\n {\n url: `memory://${document.module.name}.v3_1.sharked.json`,\n headers: {},\n encoding: 'utf8',\n },\n ),\n )\n }\n}\n","import { ListrTaskWrapper } from 'listr2'\nimport { OperationDefinition } from '~/models/index.js'\nimport { select } from 'inquirer-select-pro'\nimport { ListrInquirerPromptAdapter } from '@listr2/prompt-adapter-inquirer'\nimport { CompilerContext } from '~/compiler/index.js'\n\nexport async function selectOperationDefinitions(\n task: ListrTaskWrapper<CompilerContext, any, any>,\n operationDefinitions: OperationDefinition[],\n): Promise<OperationDefinition[]> {\n const selectedOperationDefinitions = await task.prompt(ListrInquirerPromptAdapter).run(\n select<OperationDefinition>,\n {\n message: 'Select Pathname',\n defaultValue: [],\n options: (input) => {\n const items = operationDefinitions.map((op) => ({ name: `${op.module.name} ${op.method.toUpperCase()} ${op.pathname}`, value: op }))\n\n if (!input) return items\n const keys = input\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n\n return items.filter((i) => {\n const name = i.name.toLowerCase()\n return keys.every((q) => name.includes(q))\n })\n },\n },\n )\n\n return selectedOperationDefinitions\n}\n","import { Compiler } from '~/compiler/index.js'\nimport { Plugin } from '~/types/plugin.js'\nimport { selectOperationDefinitions } from './utils/select-operation-definitions.js'\nimport { IgnoreMode } from './types/index.js'\n\nexport interface TerminalSelectPluginOptions {\n mode: IgnoreMode\n\n persist?: boolean\n\n /**\n * Remove all previously matcher rules.\n * This means that all rules form `.keqignore` file will be removed.\n */\n clear?: boolean\n}\n\n\nexport class TerminalSelectPlugin implements Plugin {\n constructor(private options: TerminalSelectPluginOptions) {}\n\n apply(compiler: Compiler): void {\n compiler.hooks.afterDownload.tapPromise(TerminalSelectPlugin.name, async (task) => {\n const context = compiler.context\n\n const matcher = context.matcher!\n const documents = context.documents!\n const operationDefinitions = documents.flatMap((document) => document.operations)\n const selectedOperationDefinitions = await selectOperationDefinitions(task, operationDefinitions)\n\n if (this.options.clear) {\n matcher.append({\n persist: false,\n ignore: true,\n moduleName: '*',\n operationMethod: '*',\n operationPathname: '*',\n })\n }\n\n for (const op of selectedOperationDefinitions) {\n matcher.append({\n persist: !!this.options.persist,\n ignore: this.options.mode === 'add',\n moduleName: op.module.name,\n operationMethod: op.method,\n operationPathname: op.pathname,\n })\n }\n })\n }\n}\n","import * as R from 'ramda'\nimport { Compiler } from '~/compiler/index.js'\nimport { Plugin } from '~/types/plugin.js'\nimport { DownloadHttpFilePlugin } from '../download-http-file/index.js'\nimport { DownloadLocalFilePlugin } from '../download-local-file/index.js'\nimport { GenerateDeclarationPlugin } from '../generate-declaration/index.js'\nimport { ShakingPlugin } from '../shaking/index.js'\nimport { TerminalSelectPlugin, TerminalSelectPluginOptions } from '../terminal-select/index.js'\nimport { GenerateMicroFunctionPlugin } from '../generate-micro-function/index.js'\nimport { GenerateNestjsModulePlugin } from '../generate-nestjs-module/index.js'\n\n\ninterface InitializePluginOptions {\n build?: boolean\n interactive?: boolean | TerminalSelectPluginOptions\n\n includes?: string[]\n}\n\nexport class InitializePlugin implements Plugin {\n constructor(private options: InitializePluginOptions) {\n }\n\n apply(compiler: Compiler): void {\n compiler.hooks.setup.tap(InitializePlugin.name, (task) => {\n new DownloadHttpFilePlugin().apply(compiler)\n new DownloadLocalFilePlugin().apply(compiler)\n\n new GenerateDeclarationPlugin().apply(compiler)\n\n if (this.options.build) {\n new ShakingPlugin().apply(compiler)\n }\n\n if (this.options.interactive) {\n new TerminalSelectPlugin(\n typeof this.options.interactive === 'object'\n ? this.options.interactive\n : { mode: 'except' },\n ).apply(compiler)\n }\n\n const rc = compiler.context.rc!\n\n if (rc.mode === 'micro-function') {\n new GenerateMicroFunctionPlugin().apply(compiler)\n } else if (rc.mode === 'nestjs-module') {\n new GenerateNestjsModulePlugin().apply(compiler)\n }\n\n // Apply Custom Plugins\n if (rc.plugins && rc.plugins.length) {\n for (const plugin of rc.plugins) {\n plugin.apply(compiler)\n }\n }\n })\n\n if (this.options.includes && this.options.includes.length) {\n const modulesIncludes = this.options.includes\n\n compiler.hooks.afterSetup.tap(InitializePlugin.name, (task) => {\n const rc = compiler.context.rc!\n const matcher = compiler.context.matcher!\n\n const notExistModules = modulesIncludes.filter((moduleName) => !(moduleName in rc.modules))\n if (notExistModules.length) {\n throw new Error(`Cannot find module(s) ${notExistModules.join(', ')} in config file.`)\n }\n\n const ignoredModules = R.difference(R.keys(rc.modules), modulesIncludes)\n for (const moduleName of ignoredModules) {\n matcher.append({\n persist: false,\n ignore: true,\n moduleName,\n operationMethod: '*',\n operationPathname: '*',\n })\n }\n })\n }\n }\n}\n","import { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport { KeqQueryOptions } from 'keq'\nimport { Compiler } from '~/compiler/index.js'\nimport { QsArrayFormat } from '~/constants/qs-array-format.js'\nimport { Exception } from '~/exception.js'\nimport { ApiDocumentV3_1, ModuleDefinition } from '~/models/index.js'\nimport { Plugin } from '~/types/plugin.js'\nimport { OpenapiUtils } from '~/utils/openapi-utils/index.js'\n\n\nexport type OverwriteQueryOptionsFactory = (\n (options: {\n module: ModuleDefinition\n method: string\n pathname: string\n operation: OpenAPIV3_1.OperationObject\n parameter: OpenAPIV3_1.ParameterObject\n }) => KeqQueryOptions | undefined\n) | KeqQueryOptions\n\nconst QsArrayFormatUnion: string[] = Object.values(QsArrayFormat)\n\nexport class OverwriteQueryOptionsPlugin implements Plugin {\n constructor(private readonly factory: OverwriteQueryOptionsFactory) {}\n\n apply(compiler: Compiler): void {\n compiler.hooks.afterDownload.tap(OverwriteQueryOptionsPlugin.name, (task) => {\n const documents = compiler.context.documents!\n const factory = this.factory\n\n compiler.context.documents = documents.map((document) => {\n const specification = OpenapiUtils.mapParameter(\n document.specification,\n (method, pathname, operation, parameter) => {\n const qsOptions = typeof factory === 'function' ? factory({ parameter, operation, pathname, method, module: document.module }) : factory\n if (!qsOptions) return parameter\n\n if (qsOptions.arrayFormat) {\n if (!QsArrayFormatUnion.includes(qsOptions.arrayFormat)) {\n throw new Exception(document.module, `The 'arrayFormat' value '${qsOptions.arrayFormat}' for the query parameter '${parameter.name}' in [${method.toUpperCase()} ${pathname}] is invalid.`)\n }\n\n parameter['x-qs-array-format'] = qsOptions.arrayFormat\n }\n\n if (qsOptions.allowDots !== undefined) {\n if (typeof qsOptions.allowDots !== 'boolean') {\n throw new Exception(document.module, `The 'allowDots' value for the query parameter '${parameter.name}' in [${method.toUpperCase()} ${pathname}] must be a boolean.`)\n }\n\n parameter['x-qs-allow-dots'] = Boolean(qsOptions.allowDots)\n }\n\n if (qsOptions.indices !== undefined) {\n if (typeof qsOptions.indices !== 'boolean') {\n throw new Exception(document.module, `The 'indices' value for the query parameter '${parameter.name}' in [${method.toUpperCase()} ${pathname}] must be a boolean.`)\n }\n\n parameter['x-qs-indices'] = Boolean(qsOptions.indices)\n }\n\n return parameter\n },\n )\n\n return new ApiDocumentV3_1(\n specification,\n document.module,\n )\n })\n })\n }\n}\n"],"mappings":"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","names":["FileNamingStyle","QsArrayFormat","fs","path","fs","R","Type","Type","keys","fs","path","context","task","path","R","R","JSONPath","R","JSONPath","path","path","R","jsonpointer","JSONPath","R","JSONPath","R","path","JSONPath","JSONPath","jsonpointer","last","R","main","task","path","fs","fs","main","context","task","main","context","task","prop","R","R","AsyncSeriesWaterfallHook","R","path","changeCase","path","changeCase","R","R","alias","schema","R","R","CommentRenderer","R","DeclarationRenderer","R","R","CommentRenderer","R","CommentRenderer","DeclarationRenderer","CommentRenderer","path","R","changeCase","changeCase","R","path","changeCase","MetadataStorage","MetadataStorage","schemaDefinitions","changeCase","MetadataStorage","changeCase","MetadataStorage","operationDefinitions","operationDefinition","changeCase","AsyncSeriesWaterfallHook","AsyncSeriesWaterfallHook","MetadataStorage","path","changeCase","dirname","document","MetadataStorage","changeCase","MetadataStorage","AsyncSeriesWaterfallHook","path","fs","keys","R"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Artifact } from './artifact.js';
|
|
2
|
-
declare class AnchorBlock {
|
|
3
|
-
private artifact;
|
|
4
|
-
constructor(artifact: Artifact);
|
|
5
|
-
/**
|
|
6
|
-
* Append content to the end of the anchor block.
|
|
7
|
-
*/
|
|
8
|
-
append(anchorName: string, content: string): void;
|
|
9
|
-
prepend(anchorName: string, content: string): void;
|
|
10
|
-
replace(anchorName: string, content: string): void;
|
|
11
|
-
}
|
|
12
|
-
export declare class Anchor {
|
|
13
|
-
private artifact;
|
|
14
|
-
block: AnchorBlock;
|
|
15
|
-
constructor(artifact: Artifact);
|
|
16
|
-
append(anchorName: string, content: string): void;
|
|
17
|
-
prepend(anchorName: string, content: string): void;
|
|
18
|
-
}
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=anchor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/models/anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,cAAM,WAAW;IAEb,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAG5B;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAcjD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAclD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAYnD;AAGD,qBAAa,MAAM;IAIf,OAAO,CAAC,QAAQ;IAHlB,KAAK,EAAE,WAAW,CAAA;gBAGR,QAAQ,EAAE,QAAQ;IAK5B,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAcjD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAanD"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { OpenAPIV3_1 } from '@scalar/openapi-types';
|
|
2
|
-
import { ModuleDefinition } from './module-definition.js';
|
|
3
|
-
import { OperationDefinition } from './operation-definition.js';
|
|
4
|
-
import { SchemaDefinition } from './schema-definition.js';
|
|
5
|
-
export declare class ApiDocumentV3_1 {
|
|
6
|
-
readonly module: ModuleDefinition;
|
|
7
|
-
readonly specification: OpenAPIV3_1.Document;
|
|
8
|
-
constructor(specification: OpenAPIV3_1.Document, module: ModuleDefinition);
|
|
9
|
-
get schemas(): SchemaDefinition[];
|
|
10
|
-
get operations(): OperationDefinition[];
|
|
11
|
-
isEmpty(): boolean;
|
|
12
|
-
dereference($ref: string): SchemaDefinition | undefined;
|
|
13
|
-
isRefDefined($ref: string): boolean;
|
|
14
|
-
static unknown(): ApiDocumentV3_1;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=api-document_v3_1.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-document_v3_1.d.ts","sourceRoot":"","sources":["../../src/models/api-document_v3_1.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIzD,qBAAa,eAAe;IAC1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAA;gBAEhC,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB;IAKzE,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAUhC;IAED,IAAI,UAAU,IAAI,mBAAmB,EAAE,CAatC;IAED,OAAO,IAAI,OAAO;IAIlB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAQvD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASnC,MAAM,CAAC,OAAO,IAAI,eAAe;CAGlC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Anchor } from './anchor.js';
|
|
2
|
-
export declare class Artifact {
|
|
3
|
-
id: string;
|
|
4
|
-
filepath: string;
|
|
5
|
-
content: string;
|
|
6
|
-
extensionName: any;
|
|
7
|
-
anchor: Anchor;
|
|
8
|
-
constructor(options: {
|
|
9
|
-
id: string;
|
|
10
|
-
filepath: string;
|
|
11
|
-
content: string;
|
|
12
|
-
extensionName?: string;
|
|
13
|
-
});
|
|
14
|
-
get dirname(): string;
|
|
15
|
-
renderer(): string;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=artifact.d.ts.map
|