openapi-typesafe 0.0.0 → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +71 -1
- package/bin/cli.js +4 -0
- package/dist/adapters/node-file-system/node-file-system.cjs +46 -0
- package/dist/adapters/node-file-system/node-file-system.cjs.map +1 -0
- package/dist/adapters/node-file-system/node-file-system.mjs +40 -0
- package/dist/adapters/node-file-system/node-file-system.mjs.map +1 -0
- package/dist/adapters/redocly-loader/alias-limit.cjs +16 -0
- package/dist/adapters/redocly-loader/alias-limit.cjs.map +1 -0
- package/dist/adapters/redocly-loader/alias-limit.mjs +14 -0
- package/dist/adapters/redocly-loader/alias-limit.mjs.map +1 -0
- package/dist/adapters/redocly-loader/allowed-hosts.cjs +42 -0
- package/dist/adapters/redocly-loader/allowed-hosts.cjs.map +1 -0
- package/dist/adapters/redocly-loader/allowed-hosts.mjs +40 -0
- package/dist/adapters/redocly-loader/allowed-hosts.mjs.map +1 -0
- package/dist/adapters/redocly-loader/bundled-ref-repair.cjs +53 -0
- package/dist/adapters/redocly-loader/bundled-ref-repair.cjs.map +1 -0
- package/dist/adapters/redocly-loader/bundled-ref-repair.mjs +51 -0
- package/dist/adapters/redocly-loader/bundled-ref-repair.mjs.map +1 -0
- package/dist/adapters/redocly-loader/malformed-refs.cjs +41 -0
- package/dist/adapters/redocly-loader/malformed-refs.cjs.map +1 -0
- package/dist/adapters/redocly-loader/malformed-refs.mjs +38 -0
- package/dist/adapters/redocly-loader/malformed-refs.mjs.map +1 -0
- package/dist/adapters/redocly-loader/redocly-config-source.cjs +61 -0
- package/dist/adapters/redocly-loader/redocly-config-source.cjs.map +1 -0
- package/dist/adapters/redocly-loader/redocly-config-source.mjs +54 -0
- package/dist/adapters/redocly-loader/redocly-config-source.mjs.map +1 -0
- package/dist/adapters/redocly-loader/redocly-schema-loader.cjs +179 -0
- package/dist/adapters/redocly-loader/redocly-schema-loader.cjs.map +1 -0
- package/dist/adapters/redocly-loader/redocly-schema-loader.mjs +177 -0
- package/dist/adapters/redocly-loader/redocly-schema-loader.mjs.map +1 -0
- package/dist/adapters/redocly-loader/ref-access.cjs +107 -0
- package/dist/adapters/redocly-loader/ref-access.cjs.map +1 -0
- package/dist/adapters/redocly-loader/ref-access.mjs +99 -0
- package/dist/adapters/redocly-loader/ref-access.mjs.map +1 -0
- package/dist/adapters/redocly-loader/ref-holders.cjs +31 -0
- package/dist/adapters/redocly-loader/ref-holders.cjs.map +1 -0
- package/dist/adapters/redocly-loader/ref-holders.mjs +29 -0
- package/dist/adapters/redocly-loader/ref-holders.mjs.map +1 -0
- package/dist/adapters/redocly-loader/remote-fetch.cjs +60 -0
- package/dist/adapters/redocly-loader/remote-fetch.cjs.map +1 -0
- package/dist/adapters/redocly-loader/remote-fetch.mjs +56 -0
- package/dist/adapters/redocly-loader/remote-fetch.mjs.map +1 -0
- package/dist/adapters/redocly-loader/schema-load-errors.cjs +87 -0
- package/dist/adapters/redocly-loader/schema-load-errors.cjs.map +1 -0
- package/dist/adapters/redocly-loader/schema-load-errors.mjs +77 -0
- package/dist/adapters/redocly-loader/schema-load-errors.mjs.map +1 -0
- package/dist/adapters/redocly-loader/schema-source.cjs +104 -0
- package/dist/adapters/redocly-loader/schema-source.cjs.map +1 -0
- package/dist/adapters/redocly-loader/schema-source.mjs +98 -0
- package/dist/adapters/redocly-loader/schema-source.mjs.map +1 -0
- package/dist/adapters/redocly-loader/unsupported-keys.cjs +62 -0
- package/dist/adapters/redocly-loader/unsupported-keys.cjs.map +1 -0
- package/dist/adapters/redocly-loader/unsupported-keys.mjs +58 -0
- package/dist/adapters/redocly-loader/unsupported-keys.mjs.map +1 -0
- package/dist/adapters/terminal-logger/terminal-logger.cjs +67 -0
- package/dist/adapters/terminal-logger/terminal-logger.cjs.map +1 -0
- package/dist/adapters/terminal-logger/terminal-logger.mjs +59 -0
- package/dist/adapters/terminal-logger/terminal-logger.mjs.map +1 -0
- package/dist/adapters/type-ast-bridge/footer-nodes.cjs +21 -0
- package/dist/adapters/type-ast-bridge/footer-nodes.cjs.map +1 -0
- package/dist/adapters/type-ast-bridge/footer-nodes.mjs +17 -0
- package/dist/adapters/type-ast-bridge/footer-nodes.mjs.map +1 -0
- package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.cjs +75 -0
- package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.cjs.map +1 -0
- package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.mjs +71 -0
- package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.mjs.map +1 -0
- package/dist/adapters/type-ast-bridge/ir-to-typescript.cjs +148 -0
- package/dist/adapters/type-ast-bridge/ir-to-typescript.cjs.map +1 -0
- package/dist/adapters/type-ast-bridge/ir-to-typescript.mjs +142 -0
- package/dist/adapters/type-ast-bridge/ir-to-typescript.mjs.map +1 -0
- package/dist/adapters/type-ast-bridge/lazy-node.cjs +23 -0
- package/dist/adapters/type-ast-bridge/lazy-node.cjs.map +1 -0
- package/dist/adapters/type-ast-bridge/lazy-node.mjs +21 -0
- package/dist/adapters/type-ast-bridge/lazy-node.mjs.map +1 -0
- package/dist/adapters/type-ast-bridge/load-typescript.cjs +57 -0
- package/dist/adapters/type-ast-bridge/load-typescript.cjs.map +1 -0
- package/dist/adapters/type-ast-bridge/load-typescript.mjs +51 -0
- package/dist/adapters/type-ast-bridge/load-typescript.mjs.map +1 -0
- package/dist/adapters/type-ast-bridge/print-typescript.cjs +21 -0
- package/dist/adapters/type-ast-bridge/print-typescript.cjs.map +1 -0
- package/dist/adapters/type-ast-bridge/print-typescript.mjs +19 -0
- package/dist/adapters/type-ast-bridge/print-typescript.mjs.map +1 -0
- package/dist/adapters/type-ast-bridge/typescript-raw-text.cjs +33 -0
- package/dist/adapters/type-ast-bridge/typescript-raw-text.cjs.map +1 -0
- package/dist/adapters/type-ast-bridge/typescript-raw-text.mjs +29 -0
- package/dist/adapters/type-ast-bridge/typescript-raw-text.mjs.map +1 -0
- package/dist/adapters/type-ast-bridge/typescript-to-ir.cjs +210 -0
- package/dist/adapters/type-ast-bridge/typescript-to-ir.cjs.map +1 -0
- package/dist/adapters/type-ast-bridge/typescript-to-ir.mjs +207 -0
- package/dist/adapters/type-ast-bridge/typescript-to-ir.mjs.map +1 -0
- package/dist/api/ast-to-string.cjs +39 -0
- package/dist/api/ast-to-string.cjs.map +1 -0
- package/dist/api/ast-to-string.mjs +37 -0
- package/dist/api/ast-to-string.mjs.map +1 -0
- package/dist/api/comment-header.cjs +11 -0
- package/dist/api/comment-header.cjs.map +1 -0
- package/dist/api/comment-header.mjs +9 -0
- package/dist/api/comment-header.mjs.map +1 -0
- package/dist/api/default-ports.cjs +38 -0
- package/dist/api/default-ports.cjs.map +1 -0
- package/dist/api/default-ports.mjs +28 -0
- package/dist/api/default-ports.mjs.map +1 -0
- package/dist/api/discriminator-conflict-warnings.cjs +25 -0
- package/dist/api/discriminator-conflict-warnings.cjs.map +1 -0
- package/dist/api/discriminator-conflict-warnings.mjs +23 -0
- package/dist/api/discriminator-conflict-warnings.mjs.map +1 -0
- package/dist/api/discriminator-enum-names.cjs +19 -0
- package/dist/api/discriminator-enum-names.cjs.map +1 -0
- package/dist/api/discriminator-enum-names.mjs +17 -0
- package/dist/api/discriminator-enum-names.mjs.map +1 -0
- package/dist/api/discriminator-enum-parent.cjs +59 -0
- package/dist/api/discriminator-enum-parent.cjs.map +1 -0
- package/dist/api/discriminator-enum-parent.mjs +57 -0
- package/dist/api/discriminator-enum-parent.mjs.map +1 -0
- package/dist/api/discriminator-enum.cjs +69 -0
- package/dist/api/discriminator-enum.cjs.map +1 -0
- package/dist/api/discriminator-enum.mjs +66 -0
- package/dist/api/discriminator-enum.mjs.map +1 -0
- package/dist/api/discriminator-other-owners.cjs +67 -0
- package/dist/api/discriminator-other-owners.cjs.map +1 -0
- package/dist/api/discriminator-other-owners.mjs +64 -0
- package/dist/api/discriminator-other-owners.mjs.map +1 -0
- package/dist/api/discriminator-patch.cjs +88 -0
- package/dist/api/discriminator-patch.cjs.map +1 -0
- package/dist/api/discriminator-patch.mjs +82 -0
- package/dist/api/discriminator-patch.mjs.map +1 -0
- package/dist/api/discriminator-scan.cjs +153 -0
- package/dist/api/discriminator-scan.cjs.map +1 -0
- package/dist/api/discriminator-scan.mjs +150 -0
- package/dist/api/discriminator-scan.mjs.map +1 -0
- package/dist/api/document-declarations.cjs +28 -0
- package/dist/api/document-declarations.cjs.map +1 -0
- package/dist/api/document-declarations.mjs +26 -0
- package/dist/api/document-declarations.mjs.map +1 -0
- package/dist/api/document-refs.cjs +53 -0
- package/dist/api/document-refs.cjs.map +1 -0
- package/dist/api/document-refs.mjs +50 -0
- package/dist/api/document-refs.mjs.map +1 -0
- package/dist/api/document-run.cjs +122 -0
- package/dist/api/document-run.cjs.map +1 -0
- package/dist/api/document-run.mjs +116 -0
- package/dist/api/document-run.mjs.map +1 -0
- package/dist/api/enum-values-warnings.cjs +16 -0
- package/dist/api/enum-values-warnings.cjs.map +1 -0
- package/dist/api/enum-values-warnings.mjs +14 -0
- package/dist/api/enum-values-warnings.mjs.map +1 -0
- package/dist/api/footer-entry.cjs +18 -0
- package/dist/api/footer-entry.cjs.map +1 -0
- package/dist/api/footer-entry.mjs +15 -0
- package/dist/api/footer-entry.mjs.map +1 -0
- package/dist/api/footer-sink.cjs +53 -0
- package/dist/api/footer-sink.cjs.map +1 -0
- package/dist/api/footer-sink.mjs +51 -0
- package/dist/api/footer-sink.mjs.map +1 -0
- package/dist/api/legacy-callback-warning.cjs +25 -0
- package/dist/api/legacy-callback-warning.cjs.map +1 -0
- package/dist/api/legacy-callback-warning.mjs +22 -0
- package/dist/api/legacy-callback-warning.mjs.map +1 -0
- package/dist/api/legacy-ts-helpers.cjs +203 -0
- package/dist/api/legacy-ts-helpers.cjs.map +1 -0
- package/dist/api/legacy-ts-helpers.mjs +187 -0
- package/dist/api/legacy-ts-helpers.mjs.map +1 -0
- package/dist/api/legacy-utils.cjs +65 -0
- package/dist/api/legacy-utils.cjs.map +1 -0
- package/dist/api/legacy-utils.mjs +50 -0
- package/dist/api/legacy-utils.mjs.map +1 -0
- package/dist/api/openapi-ts.cjs +40 -0
- package/dist/api/openapi-ts.cjs.map +1 -0
- package/dist/api/openapi-ts.mjs +34 -0
- package/dist/api/openapi-ts.mjs.map +1 -0
- package/dist/api/path-template-warnings.cjs +21 -0
- package/dist/api/path-template-warnings.cjs.map +1 -0
- package/dist/api/path-template-warnings.mjs +19 -0
- package/dist/api/path-template-warnings.mjs.map +1 -0
- package/dist/api/schema-callbacks.cjs +140 -0
- package/dist/api/schema-callbacks.cjs.map +1 -0
- package/dist/api/schema-callbacks.mjs +136 -0
- package/dist/api/schema-callbacks.mjs.map +1 -0
- package/dist/api/string-to-ast.cjs +21 -0
- package/dist/api/string-to-ast.cjs.map +1 -0
- package/dist/api/string-to-ast.mjs +18 -0
- package/dist/api/string-to-ast.mjs.map +1 -0
- package/dist/api/transform-context.cjs +84 -0
- package/dist/api/transform-context.cjs.map +1 -0
- package/dist/api/transform-context.mjs +67 -0
- package/dist/api/transform-context.mjs.map +1 -0
- package/dist/api/transform-schema.cjs +80 -0
- package/dist/api/transform-schema.cjs.map +1 -0
- package/dist/api/transform-schema.mjs +75 -0
- package/dist/api/transform-schema.mjs.map +1 -0
- package/dist/api/type-helpers.cjs +85 -0
- package/dist/api/type-helpers.cjs.map +1 -0
- package/dist/api/type-helpers.mjs +66 -0
- package/dist/api/type-helpers.mjs.map +1 -0
- package/dist/api/unsupported-feature-warnings.cjs +22 -0
- package/dist/api/unsupported-feature-warnings.cjs.map +1 -0
- package/dist/api/unsupported-feature-warnings.mjs +20 -0
- package/dist/api/unsupported-feature-warnings.mjs.map +1 -0
- package/dist/application/print/comment-writer.cjs +95 -0
- package/dist/application/print/comment-writer.cjs.map +1 -0
- package/dist/application/print/comment-writer.mjs +93 -0
- package/dist/application/print/comment-writer.mjs.map +1 -0
- package/dist/application/print/declaration-printer.cjs +83 -0
- package/dist/application/print/declaration-printer.cjs.map +1 -0
- package/dist/application/print/declaration-printer.mjs +81 -0
- package/dist/application/print/declaration-printer.mjs.map +1 -0
- package/dist/application/print/literal-text.cjs +52 -0
- package/dist/application/print/literal-text.cjs.map +1 -0
- package/dist/application/print/literal-text.mjs +48 -0
- package/dist/application/print/literal-text.mjs.map +1 -0
- package/dist/application/print/print-nodes.cjs +38 -0
- package/dist/application/print/print-nodes.cjs.map +1 -0
- package/dist/application/print/print-nodes.mjs +36 -0
- package/dist/application/print/print-nodes.mjs.map +1 -0
- package/dist/application/print/print-options.cjs +6 -0
- package/dist/application/print/print-options.cjs.map +1 -0
- package/dist/application/print/print-options.mjs +4 -0
- package/dist/application/print/print-options.mjs.map +1 -0
- package/dist/application/print/text-writer.cjs +63 -0
- package/dist/application/print/text-writer.cjs.map +1 -0
- package/dist/application/print/text-writer.mjs +60 -0
- package/dist/application/print/text-writer.mjs.map +1 -0
- package/dist/application/print/type-printer.cjs +219 -0
- package/dist/application/print/type-printer.cjs.map +1 -0
- package/dist/application/print/type-printer.mjs +215 -0
- package/dist/application/print/type-printer.mjs.map +1 -0
- package/dist/application/stack-overflow.cjs +36 -0
- package/dist/application/stack-overflow.cjs.map +1 -0
- package/dist/application/stack-overflow.mjs +31 -0
- package/dist/application/stack-overflow.mjs.map +1 -0
- package/dist/application/transform/document/assignability.cjs +144 -0
- package/dist/application/transform/document/assignability.cjs.map +1 -0
- package/dist/application/transform/document/assignability.mjs +138 -0
- package/dist/application/transform/document/assignability.mjs.map +1 -0
- package/dist/application/transform/document/components.cjs +104 -0
- package/dist/application/transform/document/components.cjs.map +1 -0
- package/dist/application/transform/document/components.mjs +102 -0
- package/dist/application/transform/document/components.mjs.map +1 -0
- package/dist/application/transform/document/declared-types.cjs +66 -0
- package/dist/application/transform/document/declared-types.cjs.map +1 -0
- package/dist/application/transform/document/declared-types.mjs +63 -0
- package/dist/application/transform/document/declared-types.mjs.map +1 -0
- package/dist/application/transform/document/defs-root.cjs +18 -0
- package/dist/application/transform/document/defs-root.cjs.map +1 -0
- package/dist/application/transform/document/defs-root.mjs +16 -0
- package/dist/application/transform/document/defs-root.mjs.map +1 -0
- package/dist/application/transform/document/document-member.cjs +13 -0
- package/dist/application/transform/document/document-member.cjs.map +1 -0
- package/dist/application/transform/document/document-member.mjs +11 -0
- package/dist/application/transform/document/document-member.mjs.map +1 -0
- package/dist/application/transform/document/document.cjs +109 -0
- package/dist/application/transform/document/document.cjs.map +1 -0
- package/dist/application/transform/document/document.mjs +106 -0
- package/dist/application/transform/document/document.mjs.map +1 -0
- package/dist/application/transform/document/exploded-query.cjs +46 -0
- package/dist/application/transform/document/exploded-query.cjs.map +1 -0
- package/dist/application/transform/document/exploded-query.mjs +43 -0
- package/dist/application/transform/document/exploded-query.mjs.map +1 -0
- package/dist/application/transform/document/global-type-references.cjs +63 -0
- package/dist/application/transform/document/global-type-references.cjs.map +1 -0
- package/dist/application/transform/document/global-type-references.mjs +61 -0
- package/dist/application/transform/document/global-type-references.mjs.map +1 -0
- package/dist/application/transform/document/header.cjs +27 -0
- package/dist/application/transform/document/header.cjs.map +1 -0
- package/dist/application/transform/document/header.mjs +25 -0
- package/dist/application/transform/document/header.mjs.map +1 -0
- package/dist/application/transform/document/kept-deprecated.cjs +96 -0
- package/dist/application/transform/document/kept-deprecated.cjs.map +1 -0
- package/dist/application/transform/document/kept-deprecated.mjs +94 -0
- package/dist/application/transform/document/kept-deprecated.mjs.map +1 -0
- package/dist/application/transform/document/list-assignability.cjs +54 -0
- package/dist/application/transform/document/list-assignability.cjs.map +1 -0
- package/dist/application/transform/document/list-assignability.mjs +52 -0
- package/dist/application/transform/document/list-assignability.mjs.map +1 -0
- package/dist/application/transform/document/media-type.cjs +42 -0
- package/dist/application/transform/document/media-type.cjs.map +1 -0
- package/dist/application/transform/document/media-type.mjs +38 -0
- package/dist/application/transform/document/media-type.mjs.map +1 -0
- package/dist/application/transform/document/operation.cjs +45 -0
- package/dist/application/transform/document/operation.cjs.map +1 -0
- package/dist/application/transform/document/operation.mjs +43 -0
- package/dist/application/transform/document/operation.mjs.map +1 -0
- package/dist/application/transform/document/parameter.cjs +25 -0
- package/dist/application/transform/document/parameter.cjs.map +1 -0
- package/dist/application/transform/document/parameter.mjs +23 -0
- package/dist/application/transform/document/parameter.mjs.map +1 -0
- package/dist/application/transform/document/parameters.cjs +146 -0
- package/dist/application/transform/document/parameters.cjs.map +1 -0
- package/dist/application/transform/document/parameters.mjs +144 -0
- package/dist/application/transform/document/parameters.mjs.map +1 -0
- package/dist/application/transform/document/path-item.cjs +82 -0
- package/dist/application/transform/document/path-item.cjs.map +1 -0
- package/dist/application/transform/document/path-item.mjs +80 -0
- package/dist/application/transform/document/path-item.mjs.map +1 -0
- package/dist/application/transform/document/path-key-overlaps.cjs +107 -0
- package/dist/application/transform/document/path-key-overlaps.cjs.map +1 -0
- package/dist/application/transform/document/path-key-overlaps.mjs +105 -0
- package/dist/application/transform/document/path-key-overlaps.mjs.map +1 -0
- package/dist/application/transform/document/path-template-replace.cjs +48 -0
- package/dist/application/transform/document/path-template-replace.cjs.map +1 -0
- package/dist/application/transform/document/path-template-replace.mjs +45 -0
- package/dist/application/transform/document/path-template-replace.mjs.map +1 -0
- package/dist/application/transform/document/paths-enum.cjs +75 -0
- package/dist/application/transform/document/paths-enum.cjs.map +1 -0
- package/dist/application/transform/document/paths-enum.mjs +72 -0
- package/dist/application/transform/document/paths-enum.mjs.map +1 -0
- package/dist/application/transform/document/paths.cjs +153 -0
- package/dist/application/transform/document/paths.cjs.map +1 -0
- package/dist/application/transform/document/paths.mjs +149 -0
- package/dist/application/transform/document/paths.mjs.map +1 -0
- package/dist/application/transform/document/request-body.cjs +36 -0
- package/dist/application/transform/document/request-body.cjs.map +1 -0
- package/dist/application/transform/document/request-body.mjs +34 -0
- package/dist/application/transform/document/request-body.mjs.map +1 -0
- package/dist/application/transform/document/response.cjs +59 -0
- package/dist/application/transform/document/response.cjs.map +1 -0
- package/dist/application/transform/document/response.mjs +57 -0
- package/dist/application/transform/document/response.mjs.map +1 -0
- package/dist/application/transform/document/responses.cjs +23 -0
- package/dist/application/transform/document/responses.cjs.map +1 -0
- package/dist/application/transform/document/responses.mjs +21 -0
- package/dist/application/transform/document/responses.mjs.map +1 -0
- package/dist/application/transform/document/root-type-aliases.cjs +70 -0
- package/dist/application/transform/document/root-type-aliases.cjs.map +1 -0
- package/dist/application/transform/document/root-type-aliases.mjs +67 -0
- package/dist/application/transform/document/root-type-aliases.mjs.map +1 -0
- package/dist/application/transform/document/template-key-match.cjs +128 -0
- package/dist/application/transform/document/template-key-match.cjs.map +1 -0
- package/dist/application/transform/document/template-key-match.mjs +125 -0
- package/dist/application/transform/document/template-key-match.mjs.map +1 -0
- package/dist/application/transform/document/type-assignability.cjs +192 -0
- package/dist/application/transform/document/type-assignability.cjs.map +1 -0
- package/dist/application/transform/document/type-assignability.mjs +190 -0
- package/dist/application/transform/document/type-assignability.mjs.map +1 -0
- package/dist/application/transform/document/type-key.cjs +70 -0
- package/dist/application/transform/document/type-key.cjs.map +1 -0
- package/dist/application/transform/document/type-key.mjs +68 -0
- package/dist/application/transform/document/type-key.mjs.map +1 -0
- package/dist/application/transform/document/type-resolution.cjs +131 -0
- package/dist/application/transform/document/type-resolution.cjs.map +1 -0
- package/dist/application/transform/document/type-resolution.mjs +125 -0
- package/dist/application/transform/document/type-resolution.mjs.map +1 -0
- package/dist/application/transform/document/webhooks.cjs +19 -0
- package/dist/application/transform/document/webhooks.cjs.map +1 -0
- package/dist/application/transform/document/webhooks.mjs +17 -0
- package/dist/application/transform/document/webhooks.mjs.map +1 -0
- package/dist/application/transform/document-entries.cjs +17 -0
- package/dist/application/transform/document-entries.cjs.map +1 -0
- package/dist/application/transform/document-entries.mjs +14 -0
- package/dist/application/transform/document-entries.mjs.map +1 -0
- package/dist/application/transform/footer/document-footer.cjs +150 -0
- package/dist/application/transform/footer/document-footer.cjs.map +1 -0
- package/dist/application/transform/footer/document-footer.mjs +148 -0
- package/dist/application/transform/footer/document-footer.mjs.map +1 -0
- package/dist/application/transform/footer/enum-naming.cjs +138 -0
- package/dist/application/transform/footer/enum-naming.cjs.map +1 -0
- package/dist/application/transform/footer/enum-naming.mjs +131 -0
- package/dist/application/transform/footer/enum-naming.mjs.map +1 -0
- package/dist/application/transform/footer/enum-values-check.cjs +129 -0
- package/dist/application/transform/footer/enum-values-check.cjs.map +1 -0
- package/dist/application/transform/footer/enum-values-check.mjs +127 -0
- package/dist/application/transform/footer/enum-values-check.mjs.map +1 -0
- package/dist/application/transform/footer/evaluation.cjs +33 -0
- package/dist/application/transform/footer/evaluation.cjs.map +1 -0
- package/dist/application/transform/footer/evaluation.mjs +26 -0
- package/dist/application/transform/footer/evaluation.mjs.map +1 -0
- package/dist/application/transform/footer/shared-enum-names.cjs +60 -0
- package/dist/application/transform/footer/shared-enum-names.cjs.map +1 -0
- package/dist/application/transform/footer/shared-enum-names.mjs +57 -0
- package/dist/application/transform/footer/shared-enum-names.mjs.map +1 -0
- package/dist/application/transform/footer/type-evaluation.cjs +246 -0
- package/dist/application/transform/footer/type-evaluation.cjs.map +1 -0
- package/dist/application/transform/footer/type-evaluation.mjs +244 -0
- package/dist/application/transform/footer/type-evaluation.mjs.map +1 -0
- package/dist/application/transform/footer/type-rules.cjs +172 -0
- package/dist/application/transform/footer/type-rules.cjs.map +1 -0
- package/dist/application/transform/footer/type-rules.mjs +166 -0
- package/dist/application/transform/footer/type-rules.mjs.map +1 -0
- package/dist/application/transform/helper-types.cjs +68 -0
- package/dist/application/transform/helper-types.cjs.map +1 -0
- package/dist/application/transform/helper-types.mjs +65 -0
- package/dist/application/transform/helper-types.mjs.map +1 -0
- package/dist/application/transform/literal-type.cjs +36 -0
- package/dist/application/transform/literal-type.cjs.map +1 -0
- package/dist/application/transform/literal-type.mjs +34 -0
- package/dist/application/transform/literal-type.mjs.map +1 -0
- package/dist/application/transform/numbered-names.cjs +18 -0
- package/dist/application/transform/numbered-names.cjs.map +1 -0
- package/dist/application/transform/numbered-names.mjs +16 -0
- package/dist/application/transform/numbered-names.mjs.map +1 -0
- package/dist/application/transform/ref-pointer/generated-location.cjs +138 -0
- package/dist/application/transform/ref-pointer/generated-location.cjs.map +1 -0
- package/dist/application/transform/ref-pointer/generated-location.mjs +136 -0
- package/dist/application/transform/ref-pointer/generated-location.mjs.map +1 -0
- package/dist/application/transform/ref-pointer/generated-shape.cjs +171 -0
- package/dist/application/transform/ref-pointer/generated-shape.cjs.map +1 -0
- package/dist/application/transform/ref-pointer/generated-shape.mjs +162 -0
- package/dist/application/transform/ref-pointer/generated-shape.mjs.map +1 -0
- package/dist/application/transform/ref-pointer/inline-cycles.cjs +44 -0
- package/dist/application/transform/ref-pointer/inline-cycles.cjs.map +1 -0
- package/dist/application/transform/ref-pointer/inline-cycles.mjs +42 -0
- package/dist/application/transform/ref-pointer/inline-cycles.mjs.map +1 -0
- package/dist/application/transform/ref-pointer/original-index.cjs +62 -0
- package/dist/application/transform/ref-pointer/original-index.cjs.map +1 -0
- package/dist/application/transform/ref-pointer/original-index.mjs +60 -0
- package/dist/application/transform/ref-pointer/original-index.mjs.map +1 -0
- package/dist/application/transform/ref-pointer/pointer-type.cjs +60 -0
- package/dist/application/transform/ref-pointer/pointer-type.cjs.map +1 -0
- package/dist/application/transform/ref-pointer/pointer-type.mjs +57 -0
- package/dist/application/transform/ref-pointer/pointer-type.mjs.map +1 -0
- package/dist/application/transform/ref-pointer/pointer-walk.cjs +66 -0
- package/dist/application/transform/ref-pointer/pointer-walk.cjs.map +1 -0
- package/dist/application/transform/ref-pointer/pointer-walk.mjs +56 -0
- package/dist/application/transform/ref-pointer/pointer-walk.mjs.map +1 -0
- package/dist/application/transform/ref-pointer/typed-walk.cjs +124 -0
- package/dist/application/transform/ref-pointer/typed-walk.cjs.map +1 -0
- package/dist/application/transform/ref-pointer/typed-walk.mjs +122 -0
- package/dist/application/transform/ref-pointer/typed-walk.mjs.map +1 -0
- package/dist/application/transform/ref-type.cjs +62 -0
- package/dist/application/transform/ref-type.cjs.map +1 -0
- package/dist/application/transform/ref-type.mjs +55 -0
- package/dist/application/transform/ref-type.mjs.map +1 -0
- package/dist/application/transform/schema/access-flags.cjs +38 -0
- package/dist/application/transform/schema/access-flags.cjs.map +1 -0
- package/dist/application/transform/schema/access-flags.mjs +36 -0
- package/dist/application/transform/schema/access-flags.mjs.map +1 -0
- package/dist/application/transform/schema/array-type.cjs +136 -0
- package/dist/application/transform/schema/array-type.cjs.map +1 -0
- package/dist/application/transform/schema/array-type.mjs +134 -0
- package/dist/application/transform/schema/array-type.mjs.map +1 -0
- package/dist/application/transform/schema/composition-type.cjs +142 -0
- package/dist/application/transform/schema/composition-type.cjs.map +1 -0
- package/dist/application/transform/schema/composition-type.mjs +140 -0
- package/dist/application/transform/schema/composition-type.mjs.map +1 -0
- package/dist/application/transform/schema/core-type.cjs +86 -0
- package/dist/application/transform/schema/core-type.cjs.map +1 -0
- package/dist/application/transform/schema/core-type.mjs +84 -0
- package/dist/application/transform/schema/core-type.mjs.map +1 -0
- package/dist/application/transform/schema/discriminated-union.cjs +30 -0
- package/dist/application/transform/schema/discriminated-union.cjs.map +1 -0
- package/dist/application/transform/schema/discriminated-union.mjs +27 -0
- package/dist/application/transform/schema/discriminated-union.mjs.map +1 -0
- package/dist/application/transform/schema/discriminator-property.cjs +22 -0
- package/dist/application/transform/schema/discriminator-property.cjs.map +1 -0
- package/dist/application/transform/schema/discriminator-property.mjs +20 -0
- package/dist/application/transform/schema/discriminator-property.mjs.map +1 -0
- package/dist/application/transform/schema/enum-rule.cjs +163 -0
- package/dist/application/transform/schema/enum-rule.cjs.map +1 -0
- package/dist/application/transform/schema/enum-rule.mjs +160 -0
- package/dist/application/transform/schema/enum-rule.mjs.map +1 -0
- package/dist/application/transform/schema/inherited-discriminator.cjs +29 -0
- package/dist/application/transform/schema/inherited-discriminator.cjs.map +1 -0
- package/dist/application/transform/schema/inherited-discriminator.mjs +26 -0
- package/dist/application/transform/schema/inherited-discriminator.mjs.map +1 -0
- package/dist/application/transform/schema/object-type.cjs +186 -0
- package/dist/application/transform/schema/object-type.cjs.map +1 -0
- package/dist/application/transform/schema/object-type.mjs +182 -0
- package/dist/application/transform/schema/object-type.mjs.map +1 -0
- package/dist/application/transform/schema/presence-members.cjs +59 -0
- package/dist/application/transform/schema/presence-members.cjs.map +1 -0
- package/dist/application/transform/schema/presence-members.mjs +57 -0
- package/dist/application/transform/schema/presence-members.mjs.map +1 -0
- package/dist/application/transform/schema/required-variants.cjs +45 -0
- package/dist/application/transform/schema/required-variants.cjs.map +1 -0
- package/dist/application/transform/schema/required-variants.mjs +42 -0
- package/dist/application/transform/schema/required-variants.mjs.map +1 -0
- package/dist/application/transform/schema/schema-transform.cjs +72 -0
- package/dist/application/transform/schema/schema-transform.cjs.map +1 -0
- package/dist/application/transform/schema/schema-transform.mjs +68 -0
- package/dist/application/transform/schema/schema-transform.mjs.map +1 -0
- package/dist/application/transform/schema/unevaluated-properties.cjs +61 -0
- package/dist/application/transform/schema/unevaluated-properties.cjs.map +1 -0
- package/dist/application/transform/schema/unevaluated-properties.mjs +59 -0
- package/dist/application/transform/schema/unevaluated-properties.mjs.map +1 -0
- package/dist/application/transform/schema-comment.cjs +130 -0
- package/dist/application/transform/schema-comment.cjs.map +1 -0
- package/dist/application/transform/schema-comment.mjs +125 -0
- package/dist/application/transform/schema-comment.mjs.map +1 -0
- package/dist/application/transform/shared-types.cjs +8 -0
- package/dist/application/transform/shared-types.cjs.map +1 -0
- package/dist/application/transform/shared-types.mjs +6 -0
- package/dist/application/transform/shared-types.mjs.map +1 -0
- package/dist/application/transform/type-combinators.cjs +49 -0
- package/dist/application/transform/type-combinators.cjs.map +1 -0
- package/dist/application/transform/type-combinators.mjs +42 -0
- package/dist/application/transform/type-combinators.mjs.map +1 -0
- package/dist/cli/cli-arguments.cjs +145 -0
- package/dist/cli/cli-arguments.cjs.map +1 -0
- package/dist/cli/cli-arguments.mjs +137 -0
- package/dist/cli/cli-arguments.mjs.map +1 -0
- package/dist/cli/cli-errors.cjs +81 -0
- package/dist/cli/cli-errors.cjs.map +1 -0
- package/dist/cli/cli-errors.mjs +77 -0
- package/dist/cli/cli-errors.mjs.map +1 -0
- package/dist/cli/cli-output.cjs +42 -0
- package/dist/cli/cli-output.cjs.map +1 -0
- package/dist/cli/cli-output.mjs +35 -0
- package/dist/cli/cli-output.mjs.map +1 -0
- package/dist/cli/docs-links.cjs +6 -0
- package/dist/cli/docs-links.cjs.map +1 -0
- package/dist/cli/docs-links.mjs +4 -0
- package/dist/cli/docs-links.mjs.map +1 -0
- package/dist/cli/fix-option.cjs +19 -0
- package/dist/cli/fix-option.cjs.map +1 -0
- package/dist/cli/fix-option.mjs +16 -0
- package/dist/cli/fix-option.mjs.map +1 -0
- package/dist/cli/help-text.cjs +44 -0
- package/dist/cli/help-text.cjs.map +1 -0
- package/dist/cli/help-text.mjs +42 -0
- package/dist/cli/help-text.mjs.map +1 -0
- package/dist/cli/main.cjs +67 -0
- package/dist/cli/main.cjs.map +1 -0
- package/dist/cli/main.d.cts +2 -0
- package/dist/cli/main.d.mts +2 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.mjs +59 -0
- package/dist/cli/main.mjs.map +1 -0
- package/dist/cli/redocly-apis.cjs +69 -0
- package/dist/cli/redocly-apis.cjs.map +1 -0
- package/dist/cli/redocly-apis.mjs +66 -0
- package/dist/cli/redocly-apis.mjs.map +1 -0
- package/dist/cli/ref-limits.cjs +14 -0
- package/dist/cli/ref-limits.cjs.map +1 -0
- package/dist/cli/ref-limits.mjs +12 -0
- package/dist/cli/ref-limits.mjs.map +1 -0
- package/dist/cli/run-cli.cjs +113 -0
- package/dist/cli/run-cli.cjs.map +1 -0
- package/dist/cli/run-cli.mjs +111 -0
- package/dist/cli/run-cli.mjs.map +1 -0
- package/dist/domain/assert-never.cjs +8 -0
- package/dist/domain/assert-never.cjs.map +1 -0
- package/dist/domain/assert-never.mjs +6 -0
- package/dist/domain/assert-never.mjs.map +1 -0
- package/dist/domain/errors.cjs +52 -0
- package/dist/domain/errors.cjs.map +1 -0
- package/dist/domain/errors.mjs +48 -0
- package/dist/domain/errors.mjs.map +1 -0
- package/dist/domain/ir/constructors.cjs +93 -0
- package/dist/domain/ir/constructors.cjs.map +1 -0
- package/dist/domain/ir/constructors.mjs +74 -0
- package/dist/domain/ir/constructors.mjs.map +1 -0
- package/dist/domain/ir/identifier-text.cjs +29 -0
- package/dist/domain/ir/identifier-text.cjs.map +1 -0
- package/dist/domain/ir/identifier-text.mjs +25 -0
- package/dist/domain/ir/identifier-text.mjs.map +1 -0
- package/dist/domain/ir/newer-identifier-ranges.cjs +109 -0
- package/dist/domain/ir/newer-identifier-ranges.cjs.map +1 -0
- package/dist/domain/ir/newer-identifier-ranges.mjs +106 -0
- package/dist/domain/ir/newer-identifier-ranges.mjs.map +1 -0
- package/dist/domain/ir/normalize.cjs +32 -0
- package/dist/domain/ir/normalize.cjs.map +1 -0
- package/dist/domain/ir/normalize.mjs +29 -0
- package/dist/domain/ir/normalize.mjs.map +1 -0
- package/dist/domain/ir/property-name.cjs +19 -0
- package/dist/domain/ir/property-name.cjs.map +1 -0
- package/dist/domain/ir/property-name.mjs +16 -0
- package/dist/domain/ir/property-name.mjs.map +1 -0
- package/dist/domain/ir/raw-text-escapes.cjs +25 -0
- package/dist/domain/ir/raw-text-escapes.cjs.map +1 -0
- package/dist/domain/ir/raw-text-escapes.mjs +22 -0
- package/dist/domain/ir/raw-text-escapes.mjs.map +1 -0
- package/dist/domain/openapi/admitted-values.cjs +75 -0
- package/dist/domain/openapi/admitted-values.cjs.map +1 -0
- package/dist/domain/openapi/admitted-values.mjs +72 -0
- package/dist/domain/openapi/admitted-values.mjs.map +1 -0
- package/dist/domain/openapi/alias-expansion.cjs +50 -0
- package/dist/domain/openapi/alias-expansion.cjs.map +1 -0
- package/dist/domain/openapi/alias-expansion.mjs +45 -0
- package/dist/domain/openapi/alias-expansion.mjs.map +1 -0
- package/dist/domain/openapi/binary-content.cjs +48 -0
- package/dist/domain/openapi/binary-content.cjs.map +1 -0
- package/dist/domain/openapi/binary-content.mjs +45 -0
- package/dist/domain/openapi/binary-content.mjs.map +1 -0
- package/dist/domain/openapi/components-object.cjs +29 -0
- package/dist/domain/openapi/components-object.cjs.map +1 -0
- package/dist/domain/openapi/components-object.mjs +24 -0
- package/dist/domain/openapi/components-object.mjs.map +1 -0
- package/dist/domain/openapi/discriminated-union.cjs +68 -0
- package/dist/domain/openapi/discriminated-union.cjs.map +1 -0
- package/dist/domain/openapi/discriminated-union.mjs +62 -0
- package/dist/domain/openapi/discriminated-union.mjs.map +1 -0
- package/dist/domain/openapi/discriminator-conflicts.cjs +143 -0
- package/dist/domain/openapi/discriminator-conflicts.cjs.map +1 -0
- package/dist/domain/openapi/discriminator-conflicts.mjs +141 -0
- package/dist/domain/openapi/discriminator-conflicts.mjs.map +1 -0
- package/dist/domain/openapi/json-pointer.cjs +31 -0
- package/dist/domain/openapi/json-pointer.cjs.map +1 -0
- package/dist/domain/openapi/json-pointer.mjs +27 -0
- package/dist/domain/openapi/json-pointer.mjs.map +1 -0
- package/dist/domain/openapi/media-type-object.cjs +14 -0
- package/dist/domain/openapi/media-type-object.cjs.map +1 -0
- package/dist/domain/openapi/media-type-object.mjs +11 -0
- package/dist/domain/openapi/media-type-object.mjs.map +1 -0
- package/dist/domain/openapi/parameter-object.cjs +13 -0
- package/dist/domain/openapi/parameter-object.cjs.map +1 -0
- package/dist/domain/openapi/parameter-object.mjs +10 -0
- package/dist/domain/openapi/parameter-object.mjs.map +1 -0
- package/dist/domain/openapi/path-item-object.cjs +35 -0
- package/dist/domain/openapi/path-item-object.cjs.map +1 -0
- package/dist/domain/openapi/path-item-object.mjs +30 -0
- package/dist/domain/openapi/path-item-object.mjs.map +1 -0
- package/dist/domain/openapi/path-templates.cjs +23 -0
- package/dist/domain/openapi/path-templates.cjs.map +1 -0
- package/dist/domain/openapi/path-templates.mjs +21 -0
- package/dist/domain/openapi/path-templates.mjs.map +1 -0
- package/dist/domain/openapi/unsupported-features.cjs +87 -0
- package/dist/domain/openapi/unsupported-features.cjs.map +1 -0
- package/dist/domain/openapi/unsupported-features.mjs +84 -0
- package/dist/domain/openapi/unsupported-features.mjs.map +1 -0
- package/dist/domain/output-fixes.cjs +101 -0
- package/dist/domain/output-fixes.cjs.map +1 -0
- package/dist/domain/output-fixes.mjs +94 -0
- package/dist/domain/output-fixes.mjs.map +1 -0
- package/dist/domain/warnings.cjs +15 -0
- package/dist/domain/warnings.cjs.map +1 -0
- package/dist/domain/warnings.mjs +12 -0
- package/dist/domain/warnings.mjs.map +1 -0
- package/dist/index.cjs +98 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +841 -0
- package/dist/index.d.mts +841 -0
- package/dist/index.d.ts +841 -0
- package/dist/index.mjs +27 -0
- package/dist/index.mjs.map +1 -0
- package/dist/transform/components-object.cjs +15 -0
- package/dist/transform/components-object.cjs.map +1 -0
- package/dist/transform/components-object.mjs +11 -0
- package/dist/transform/components-object.mjs.map +1 -0
- package/dist/transform/header-object.cjs +12 -0
- package/dist/transform/header-object.cjs.map +1 -0
- package/dist/transform/header-object.mjs +10 -0
- package/dist/transform/header-object.mjs.map +1 -0
- package/dist/transform/media-type-object.cjs +12 -0
- package/dist/transform/media-type-object.cjs.map +1 -0
- package/dist/transform/media-type-object.mjs +10 -0
- package/dist/transform/media-type-object.mjs.map +1 -0
- package/dist/transform/operation-object.cjs +26 -0
- package/dist/transform/operation-object.cjs.map +1 -0
- package/dist/transform/operation-object.mjs +21 -0
- package/dist/transform/operation-object.mjs.map +1 -0
- package/dist/transform/parameter-object.cjs +12 -0
- package/dist/transform/parameter-object.cjs.map +1 -0
- package/dist/transform/parameter-object.mjs +10 -0
- package/dist/transform/parameter-object.mjs.map +1 -0
- package/dist/transform/path-item-object.cjs +12 -0
- package/dist/transform/path-item-object.cjs.map +1 -0
- package/dist/transform/path-item-object.mjs +10 -0
- package/dist/transform/path-item-object.mjs.map +1 -0
- package/dist/transform/paths-object.cjs +11 -0
- package/dist/transform/paths-object.cjs.map +1 -0
- package/dist/transform/paths-object.mjs +9 -0
- package/dist/transform/paths-object.mjs.map +1 -0
- package/dist/transform/request-body-object.cjs +12 -0
- package/dist/transform/request-body-object.cjs.map +1 -0
- package/dist/transform/request-body-object.mjs +10 -0
- package/dist/transform/request-body-object.mjs.map +1 -0
- package/dist/transform/response-object.cjs +12 -0
- package/dist/transform/response-object.cjs.map +1 -0
- package/dist/transform/response-object.mjs +10 -0
- package/dist/transform/response-object.mjs.map +1 -0
- package/dist/transform/responses-object.cjs +12 -0
- package/dist/transform/responses-object.cjs.map +1 -0
- package/dist/transform/responses-object.mjs +10 -0
- package/dist/transform/responses-object.mjs.map +1 -0
- package/dist/transform/schema-object.cjs +21 -0
- package/dist/transform/schema-object.cjs.map +1 -0
- package/dist/transform/schema-object.mjs +16 -0
- package/dist/transform/schema-object.mjs.map +1 -0
- package/package.json +115 -4
- package/src/adapters/node-file-system/node-file-system.ts +44 -0
- package/src/adapters/redocly-loader/alias-limit.ts +20 -0
- package/src/adapters/redocly-loader/allowed-hosts.ts +62 -0
- package/src/adapters/redocly-loader/bundled-ref-repair.ts +65 -0
- package/src/adapters/redocly-loader/malformed-refs.ts +61 -0
- package/src/adapters/redocly-loader/redocly-config-source.ts +78 -0
- package/src/adapters/redocly-loader/redocly-schema-loader.ts +262 -0
- package/src/adapters/redocly-loader/ref-access.ts +146 -0
- package/src/adapters/redocly-loader/ref-holders.ts +43 -0
- package/src/adapters/redocly-loader/remote-fetch.ts +104 -0
- package/src/adapters/redocly-loader/schema-load-errors.ts +124 -0
- package/src/adapters/redocly-loader/schema-source.ts +151 -0
- package/src/adapters/redocly-loader/unsupported-keys.ts +102 -0
- package/src/adapters/terminal-logger/terminal-logger.ts +98 -0
- package/src/adapters/type-ast-bridge/footer-nodes.ts +38 -0
- package/src/adapters/type-ast-bridge/ir-declarations-to-typescript.ts +100 -0
- package/src/adapters/type-ast-bridge/ir-to-typescript.ts +223 -0
- package/src/adapters/type-ast-bridge/lazy-node.ts +24 -0
- package/src/adapters/type-ast-bridge/load-typescript.ts +84 -0
- package/src/adapters/type-ast-bridge/print-typescript.ts +33 -0
- package/src/adapters/type-ast-bridge/typescript-raw-text.ts +49 -0
- package/src/adapters/type-ast-bridge/typescript-to-ir.ts +294 -0
- package/src/adapters/type-ast-bridge/typescript-types.ts +8 -0
- package/src/api/ast-to-string.ts +59 -0
- package/src/api/comment-header.ts +7 -0
- package/src/api/default-ports.ts +44 -0
- package/src/api/discriminator-conflict-warnings.ts +43 -0
- package/src/api/discriminator-enum-names.ts +26 -0
- package/src/api/discriminator-enum-parent.ts +129 -0
- package/src/api/discriminator-enum.ts +115 -0
- package/src/api/discriminator-other-owners.ts +97 -0
- package/src/api/discriminator-patch.ts +147 -0
- package/src/api/discriminator-scan.ts +260 -0
- package/src/api/document-declarations.ts +41 -0
- package/src/api/document-refs.ts +71 -0
- package/src/api/document-run.ts +177 -0
- package/src/api/enum-values-warnings.ts +21 -0
- package/src/api/footer-entry.ts +23 -0
- package/src/api/footer-sink.ts +67 -0
- package/src/api/legacy-callback-warning.ts +29 -0
- package/src/api/legacy-ts-helpers.ts +311 -0
- package/src/api/legacy-utils.ts +118 -0
- package/src/api/openapi-ts.ts +62 -0
- package/src/api/path-template-warnings.ts +27 -0
- package/src/api/schema-callbacks.ts +211 -0
- package/src/api/string-to-ast.ts +27 -0
- package/src/api/transform-context.ts +93 -0
- package/src/api/transform-schema.ts +123 -0
- package/src/api/type-helpers.ts +130 -0
- package/src/api/unsupported-feature-warnings.ts +33 -0
- package/src/application/ports/file-system.ts +12 -0
- package/src/application/ports/logger.ts +16 -0
- package/src/application/ports/redocly-config-source.ts +20 -0
- package/src/application/ports/schema-loader.ts +32 -0
- package/src/application/print/comment-writer.ts +91 -0
- package/src/application/print/declaration-printer.ts +100 -0
- package/src/application/print/literal-text.ts +62 -0
- package/src/application/print/print-nodes.ts +62 -0
- package/src/application/print/print-options.ts +11 -0
- package/src/application/print/text-writer.ts +83 -0
- package/src/application/print/type-printer.ts +287 -0
- package/src/application/stack-overflow.ts +54 -0
- package/src/application/transform/document/assignability.ts +203 -0
- package/src/application/transform/document/components.ts +189 -0
- package/src/application/transform/document/declared-types.ts +93 -0
- package/src/application/transform/document/defs-root.ts +25 -0
- package/src/application/transform/document/document-member.ts +20 -0
- package/src/application/transform/document/document.ts +215 -0
- package/src/application/transform/document/exploded-query.ts +91 -0
- package/src/application/transform/document/global-type-references.ts +78 -0
- package/src/application/transform/document/header.ts +34 -0
- package/src/application/transform/document/kept-deprecated.ts +135 -0
- package/src/application/transform/document/list-assignability.ts +87 -0
- package/src/application/transform/document/media-type.ts +78 -0
- package/src/application/transform/document/operation.ts +64 -0
- package/src/application/transform/document/parameter.ts +45 -0
- package/src/application/transform/document/parameters.ts +265 -0
- package/src/application/transform/document/path-item.ts +168 -0
- package/src/application/transform/document/path-key-overlaps.ts +201 -0
- package/src/application/transform/document/path-template-replace.ts +90 -0
- package/src/application/transform/document/paths-enum.ts +127 -0
- package/src/application/transform/document/paths.ts +273 -0
- package/src/application/transform/document/request-body.ts +50 -0
- package/src/application/transform/document/response.ts +109 -0
- package/src/application/transform/document/responses.ts +29 -0
- package/src/application/transform/document/root-type-aliases.ts +107 -0
- package/src/application/transform/document/template-key-match.ts +183 -0
- package/src/application/transform/document/type-assignability.ts +268 -0
- package/src/application/transform/document/type-key.ts +80 -0
- package/src/application/transform/document/type-resolution.ts +163 -0
- package/src/application/transform/document/webhooks.ts +22 -0
- package/src/application/transform/document-entries.ts +28 -0
- package/src/application/transform/footer/document-footer.ts +212 -0
- package/src/application/transform/footer/enum-naming.ts +210 -0
- package/src/application/transform/footer/enum-values-check.ts +171 -0
- package/src/application/transform/footer/evaluation.ts +47 -0
- package/src/application/transform/footer/shared-enum-names.ts +86 -0
- package/src/application/transform/footer/type-evaluation.ts +294 -0
- package/src/application/transform/footer/type-rules.ts +269 -0
- package/src/application/transform/helper-types.ts +92 -0
- package/src/application/transform/literal-type.ts +54 -0
- package/src/application/transform/numbered-names.ts +20 -0
- package/src/application/transform/ref-pointer/generated-location.ts +211 -0
- package/src/application/transform/ref-pointer/generated-shape.ts +275 -0
- package/src/application/transform/ref-pointer/inline-cycles.ts +56 -0
- package/src/application/transform/ref-pointer/original-index.ts +95 -0
- package/src/application/transform/ref-pointer/pointer-type.ts +92 -0
- package/src/application/transform/ref-pointer/pointer-walk.ts +96 -0
- package/src/application/transform/ref-pointer/typed-walk.ts +192 -0
- package/src/application/transform/ref-type.ts +102 -0
- package/src/application/transform/schema/access-flags.ts +63 -0
- package/src/application/transform/schema/array-type.ts +213 -0
- package/src/application/transform/schema/composition-type.ts +255 -0
- package/src/application/transform/schema/core-type.ts +119 -0
- package/src/application/transform/schema/discriminated-union.ts +58 -0
- package/src/application/transform/schema/discriminator-property.ts +33 -0
- package/src/application/transform/schema/enum-rule.ts +280 -0
- package/src/application/transform/schema/inherited-discriminator.ts +54 -0
- package/src/application/transform/schema/object-type.ts +289 -0
- package/src/application/transform/schema/presence-members.ts +96 -0
- package/src/application/transform/schema/required-variants.ts +88 -0
- package/src/application/transform/schema/schema-context.ts +136 -0
- package/src/application/transform/schema/schema-rule.ts +29 -0
- package/src/application/transform/schema/schema-transform.ts +99 -0
- package/src/application/transform/schema/unevaluated-properties.ts +105 -0
- package/src/application/transform/schema-comment.ts +196 -0
- package/src/application/transform/shared-types.ts +9 -0
- package/src/application/transform/transform-context.ts +51 -0
- package/src/application/transform/type-combinators.ts +57 -0
- package/src/cli/cli-arguments.ts +208 -0
- package/src/cli/cli-dependencies.ts +47 -0
- package/src/cli/cli-errors.ts +127 -0
- package/src/cli/cli-output.ts +67 -0
- package/src/cli/docs-links.ts +6 -0
- package/src/cli/fix-option.ts +29 -0
- package/src/cli/help-text.ts +52 -0
- package/src/cli/main.ts +73 -0
- package/src/cli/redocly-apis.ts +95 -0
- package/src/cli/ref-limits.ts +16 -0
- package/src/cli/run-cli.ts +131 -0
- package/src/domain/assert-never.ts +8 -0
- package/src/domain/errors.ts +76 -0
- package/src/domain/ir/constructors.ts +142 -0
- package/src/domain/ir/identifier-text.ts +49 -0
- package/src/domain/ir/newer-identifier-ranges.ts +109 -0
- package/src/domain/ir/nodes.ts +225 -0
- package/src/domain/ir/normalize.ts +51 -0
- package/src/domain/ir/property-name.ts +28 -0
- package/src/domain/ir/raw-text-escapes.ts +37 -0
- package/src/domain/openapi/admitted-values.ts +113 -0
- package/src/domain/openapi/alias-expansion.ts +72 -0
- package/src/domain/openapi/binary-content.ts +74 -0
- package/src/domain/openapi/components-object.ts +52 -0
- package/src/domain/openapi/discriminated-union.ts +109 -0
- package/src/domain/openapi/discriminator-conflicts.ts +251 -0
- package/src/domain/openapi/document-object.ts +12 -0
- package/src/domain/openapi/header-object.ts +9 -0
- package/src/domain/openapi/json-pointer.ts +46 -0
- package/src/domain/openapi/media-type-object.ts +26 -0
- package/src/domain/openapi/operation-object.ts +13 -0
- package/src/domain/openapi/parameter-object.ts +34 -0
- package/src/domain/openapi/path-item-object.ts +70 -0
- package/src/domain/openapi/path-templates.ts +31 -0
- package/src/domain/openapi/request-body-object.ts +7 -0
- package/src/domain/openapi/response-object.ts +14 -0
- package/src/domain/openapi/schema-object.ts +61 -0
- package/src/domain/openapi/unsupported-features.ts +139 -0
- package/src/domain/output-fixes.ts +136 -0
- package/src/domain/warnings.ts +20 -0
- package/src/index.ts +67 -0
- package/src/transform/components-object.ts +27 -0
- package/src/transform/header-object.ts +19 -0
- package/src/transform/media-type-object.ts +19 -0
- package/src/transform/operation-object.ts +36 -0
- package/src/transform/parameter-object.ts +19 -0
- package/src/transform/parameters-array.ts +19 -0
- package/src/transform/path-item-object.ts +22 -0
- package/src/transform/paths-enum.ts +8 -0
- package/src/transform/paths-object.ts +15 -0
- package/src/transform/request-body-object.ts +19 -0
- package/src/transform/response-object.ts +19 -0
- package/src/transform/responses-object.ts +19 -0
- package/src/transform/schema-object.ts +36 -0
- package/src/transform/webhooks-object.ts +15 -0
- package/src/types/generator-options.ts +278 -0
- package/src/types/openapi-common.ts +100 -0
- package/src/types/openapi-document.ts +196 -0
- package/src/types/openapi-path-item.ts +130 -0
- package/src/types/openapi-request.ts +209 -0
- package/src/types/openapi-response.ts +81 -0
- package/src/types/openapi-schema.ts +169 -0
- package/src/types/openapi-security.ts +116 -0
- package/src/types.ts +12 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { irRaw } from '../../domain/ir/constructors.mjs';
|
|
2
|
+
import { isIrNode, needsPrintedText, asRaw } from './typescript-raw-text.mjs';
|
|
3
|
+
|
|
4
|
+
function keywordOf(ts, kind) {
|
|
5
|
+
const keywords = /* @__PURE__ */ new Map([
|
|
6
|
+
[ts.SyntaxKind.StringKeyword, "string"],
|
|
7
|
+
[ts.SyntaxKind.NumberKeyword, "number"],
|
|
8
|
+
[ts.SyntaxKind.BooleanKeyword, "boolean"],
|
|
9
|
+
[ts.SyntaxKind.UndefinedKeyword, "undefined"],
|
|
10
|
+
[ts.SyntaxKind.UnknownKeyword, "unknown"],
|
|
11
|
+
[ts.SyntaxKind.NeverKeyword, "never"]
|
|
12
|
+
]);
|
|
13
|
+
return keywords.get(kind);
|
|
14
|
+
}
|
|
15
|
+
function isCanonicalNumber(text) {
|
|
16
|
+
return String(Number(text)) === text;
|
|
17
|
+
}
|
|
18
|
+
function fromNumber(ts, literal) {
|
|
19
|
+
if (ts.isNumericLiteral(literal)) {
|
|
20
|
+
return isCanonicalNumber(literal.text) ? { kind: "numberLiteral", value: Number(literal.text) } : null;
|
|
21
|
+
}
|
|
22
|
+
const isNegative = ts.isPrefixUnaryExpression(literal) && literal.operator === ts.SyntaxKind.MinusToken && ts.isNumericLiteral(literal.operand) && isCanonicalNumber(literal.operand.text) && Number(literal.operand.text) !== 0;
|
|
23
|
+
return isNegative ? { kind: "numberLiteral", value: -Number(literal.operand.text) } : null;
|
|
24
|
+
}
|
|
25
|
+
function fromLiteral(ts, node) {
|
|
26
|
+
const { literal } = node;
|
|
27
|
+
if (ts.isStringLiteral(literal)) {
|
|
28
|
+
const isSingleQuoted = literal.singleQuote === true;
|
|
29
|
+
return isSingleQuoted ? null : { kind: "stringLiteral", value: literal.text, encoding: "escaped" };
|
|
30
|
+
}
|
|
31
|
+
if (literal.kind === ts.SyntaxKind.NullKeyword) {
|
|
32
|
+
return { kind: "keyword", keyword: "null" };
|
|
33
|
+
}
|
|
34
|
+
if (literal.kind === ts.SyntaxKind.TrueKeyword || literal.kind === ts.SyntaxKind.FalseKeyword) {
|
|
35
|
+
return { kind: "booleanLiteral", value: literal.kind === ts.SyntaxKind.TrueKeyword };
|
|
36
|
+
}
|
|
37
|
+
return fromNumber(ts, literal);
|
|
38
|
+
}
|
|
39
|
+
function childrenOf(ts, parent) {
|
|
40
|
+
return (child) => fromTypeNode(ts, child, parent);
|
|
41
|
+
}
|
|
42
|
+
function fromReference(ts, node) {
|
|
43
|
+
if (!ts.isIdentifier(node.typeName)) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const typeArguments = (node.typeArguments ?? []).map(childrenOf(ts, node));
|
|
47
|
+
return { kind: "reference", name: ts.idText(node.typeName), typeArguments };
|
|
48
|
+
}
|
|
49
|
+
function fromTupleElement(ts, element, convert) {
|
|
50
|
+
if (ts.isRestTypeNode(element)) {
|
|
51
|
+
return { type: convert(element.type), isRest: true, isOptional: false };
|
|
52
|
+
}
|
|
53
|
+
if (ts.isOptionalTypeNode(element)) {
|
|
54
|
+
return { type: fromTypeNode(ts, element.type, element), isRest: false, isOptional: true };
|
|
55
|
+
}
|
|
56
|
+
return { type: convert(element), isRest: false, isOptional: false };
|
|
57
|
+
}
|
|
58
|
+
function fromTuple(ts, node) {
|
|
59
|
+
if (node.elements.some((element) => ts.isNamedTupleMember(element))) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const convert = childrenOf(ts, node);
|
|
63
|
+
return {
|
|
64
|
+
kind: "tuple",
|
|
65
|
+
elements: node.elements.map((element) => fromTupleElement(ts, element, convert))
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function fromComments(ts, node) {
|
|
69
|
+
const comments = ts.getSyntheticLeadingComments(node) ?? [];
|
|
70
|
+
const hasTrailing = (ts.getSyntheticTrailingComments(node)?.length ?? 0) > 0;
|
|
71
|
+
if (hasTrailing || comments.some((comment) => !comment.hasTrailingNewLine)) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
return comments.map((comment) => ({
|
|
75
|
+
kind: comment.kind === ts.SyntaxKind.MultiLineCommentTrivia ? "block" : "line",
|
|
76
|
+
text: comment.text
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
function fromPropertyName(ts, name) {
|
|
80
|
+
if (ts.isIdentifier(name)) {
|
|
81
|
+
return { kind: "identifier", text: ts.idText(name) };
|
|
82
|
+
}
|
|
83
|
+
if (ts.isStringLiteral(name) && name.singleQuote !== true) {
|
|
84
|
+
return { kind: "string", value: name.text };
|
|
85
|
+
}
|
|
86
|
+
return ts.isNumericLiteral(name) ? { kind: "number", text: name.text } : null;
|
|
87
|
+
}
|
|
88
|
+
function readonlyFlag(ts, node) {
|
|
89
|
+
const modifiers = ts.canHaveModifiers(node) ? ts.getModifiers(node) ?? [] : [];
|
|
90
|
+
const isOnlyReadonly = modifiers.every(
|
|
91
|
+
(modifier) => modifier.kind === ts.SyntaxKind.ReadonlyKeyword
|
|
92
|
+
);
|
|
93
|
+
return isOnlyReadonly ? modifiers.length > 0 : null;
|
|
94
|
+
}
|
|
95
|
+
function fromPropertySignature(ts, node) {
|
|
96
|
+
const name = fromPropertyName(ts, node.name);
|
|
97
|
+
const comments = fromComments(ts, node);
|
|
98
|
+
const isReadonly = readonlyFlag(ts, node);
|
|
99
|
+
if (name === null || comments === null || isReadonly === null || node.type === void 0) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
kind: "property",
|
|
104
|
+
name,
|
|
105
|
+
type: fromTypeNode(ts, node.type, node),
|
|
106
|
+
isOptional: node.questionToken !== void 0,
|
|
107
|
+
isReadonly,
|
|
108
|
+
comments
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function fromIndexSignature(ts, node) {
|
|
112
|
+
const [parameter, ...others] = node.parameters;
|
|
113
|
+
const comments = fromComments(ts, node);
|
|
114
|
+
const isReadonly = readonlyFlag(ts, node);
|
|
115
|
+
const isPlain = parameter?.type !== void 0 && ts.isIdentifier(parameter.name) && others.length === 0;
|
|
116
|
+
if (!isPlain || comments === null || isReadonly === null) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
kind: "indexSignature",
|
|
121
|
+
parameterName: ts.idText(parameter.name),
|
|
122
|
+
parameterType: fromTypeNode(ts, parameter.type, node),
|
|
123
|
+
type: fromTypeNode(ts, node.type, node),
|
|
124
|
+
isReadonly,
|
|
125
|
+
comments
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function fromMember(ts, member) {
|
|
129
|
+
if (member.pos >= 0) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
if (ts.isPropertySignature(member)) {
|
|
133
|
+
return fromPropertySignature(ts, member);
|
|
134
|
+
}
|
|
135
|
+
return ts.isIndexSignatureDeclaration(member) ? fromIndexSignature(ts, member) : null;
|
|
136
|
+
}
|
|
137
|
+
function fromTypeLiteral(ts, node) {
|
|
138
|
+
const members = node.members.map((member) => fromMember(ts, member));
|
|
139
|
+
const isReadable = members.every((member) => member !== null);
|
|
140
|
+
return isReadable ? { kind: "object", members } : null;
|
|
141
|
+
}
|
|
142
|
+
function fromComposite(ts, node) {
|
|
143
|
+
const convert = childrenOf(ts, node);
|
|
144
|
+
if (ts.isArrayTypeNode(node)) {
|
|
145
|
+
return { kind: "array", element: convert(node.elementType) };
|
|
146
|
+
}
|
|
147
|
+
if (ts.isUnionTypeNode(node)) {
|
|
148
|
+
return { kind: "union", types: node.types.map(convert) };
|
|
149
|
+
}
|
|
150
|
+
if (ts.isIntersectionTypeNode(node)) {
|
|
151
|
+
return { kind: "intersection", types: node.types.map(convert) };
|
|
152
|
+
}
|
|
153
|
+
if (ts.isIndexedAccessTypeNode(node)) {
|
|
154
|
+
return {
|
|
155
|
+
kind: "indexedAccess",
|
|
156
|
+
object: convert(node.objectType),
|
|
157
|
+
index: convert(node.indexType)
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
if (ts.isTypeOperatorNode(node) && node.operator === ts.SyntaxKind.ReadonlyKeyword) {
|
|
161
|
+
return { kind: "readonly", type: convert(node.type) };
|
|
162
|
+
}
|
|
163
|
+
return ts.isTypeLiteralNode(node) ? fromTypeLiteral(ts, node) : null;
|
|
164
|
+
}
|
|
165
|
+
function fromStructure(ts, node) {
|
|
166
|
+
const keyword = keywordOf(ts, node.kind);
|
|
167
|
+
if (keyword !== void 0) {
|
|
168
|
+
return { kind: "keyword", keyword };
|
|
169
|
+
}
|
|
170
|
+
if (ts.isIdentifier(node)) {
|
|
171
|
+
return irRaw(ts.idText(node));
|
|
172
|
+
}
|
|
173
|
+
if (ts.isLiteralTypeNode(node)) {
|
|
174
|
+
return fromLiteral(ts, node);
|
|
175
|
+
}
|
|
176
|
+
if (ts.isTypeReferenceNode(node)) {
|
|
177
|
+
return fromReference(ts, node);
|
|
178
|
+
}
|
|
179
|
+
return ts.isTupleTypeNode(node) ? fromTuple(ts, node) : fromComposite(ts, node);
|
|
180
|
+
}
|
|
181
|
+
function isFactoryParenthesis(ts, inner, parent) {
|
|
182
|
+
if (parent === void 0) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
const isComposite = ts.isUnionTypeNode(inner) || ts.isIntersectionTypeNode(inner);
|
|
186
|
+
const isPostfixOrReadonlyParent = ts.isArrayTypeNode(parent) || ts.isIndexedAccessTypeNode(parent) || ts.isOptionalTypeNode(parent) || ts.isTypeOperatorNode(parent);
|
|
187
|
+
if (isPostfixOrReadonlyParent) {
|
|
188
|
+
return isComposite || ts.isTypeOperatorNode(inner);
|
|
189
|
+
}
|
|
190
|
+
const isCompositeParent = ts.isUnionTypeNode(parent) || ts.isIntersectionTypeNode(parent);
|
|
191
|
+
return isCompositeParent && isComposite;
|
|
192
|
+
}
|
|
193
|
+
function fromTypeNode(ts, node, parent) {
|
|
194
|
+
if (isIrNode(node)) {
|
|
195
|
+
return node;
|
|
196
|
+
}
|
|
197
|
+
if (needsPrintedText(ts, node)) {
|
|
198
|
+
return asRaw(ts, node);
|
|
199
|
+
}
|
|
200
|
+
if (ts.isParenthesizedTypeNode(node)) {
|
|
201
|
+
return isFactoryParenthesis(ts, node.type, parent) ? fromTypeNode(ts, node.type, parent) : asRaw(ts, node);
|
|
202
|
+
}
|
|
203
|
+
return fromStructure(ts, node) ?? asRaw(ts, node);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
export { fromPropertySignature, fromTypeNode };
|
|
207
|
+
//# sourceMappingURL=typescript-to-ir.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-to-ir.mjs","sources":["../../../src/adapters/type-ast-bridge/typescript-to-ir.ts"],"sourcesContent":["import type ts from \"typescript\";\nimport { irRaw } from \"../../domain/ir/constructors.js\";\nimport type {\n IrComment,\n IrKeyword,\n IrMember,\n IrPropertyName,\n IrPropertySignature,\n IrTupleElement,\n IrType,\n} from \"../../domain/ir/nodes.js\";\nimport type { TypeScriptModule } from \"./load-typescript.js\";\nimport { asRaw, isIrNode, needsPrintedText } from \"./typescript-raw-text.js\";\n\n/**\n * Read TypeScript type nodes from user callbacks into IR (ADR-004, decision 3). Synthesized nodes\n * are mapped by structure. Anything the IR cannot express exactly is printed with the TypeScript\n * printer, the way the original output it, and kept as a `raw` node: parsed nodes, nodes with\n * comments, explicit parentheses, single-quoted strings, numbers not in canonical form, and syntax\n * the IR does not model. Every function takes the user's TypeScript module (ADR-004, decision 4):\n * `SyntaxKind` numbers differ between versions, so a node is read with the module that made it.\n */\n\nfunction keywordOf(ts: TypeScriptModule, kind: ts.SyntaxKind): IrKeyword | undefined {\n const keywords: ReadonlyMap<ts.SyntaxKind, IrKeyword> = new Map([\n [ts.SyntaxKind.StringKeyword, \"string\"],\n [ts.SyntaxKind.NumberKeyword, \"number\"],\n [ts.SyntaxKind.BooleanKeyword, \"boolean\"],\n [ts.SyntaxKind.UndefinedKeyword, \"undefined\"],\n [ts.SyntaxKind.UnknownKeyword, \"unknown\"],\n [ts.SyntaxKind.NeverKeyword, \"never\"],\n ]);\n return keywords.get(kind);\n}\n\nfunction isCanonicalNumber(text: string): boolean {\n return String(Number(text)) === text;\n}\n\nfunction fromNumber(ts: TypeScriptModule, literal: ts.Expression): IrType | null {\n if (ts.isNumericLiteral(literal)) {\n return isCanonicalNumber(literal.text)\n ? { kind: \"numberLiteral\", value: Number(literal.text) }\n : null;\n }\n const isNegative =\n ts.isPrefixUnaryExpression(literal) &&\n literal.operator === ts.SyntaxKind.MinusToken &&\n ts.isNumericLiteral(literal.operand) &&\n isCanonicalNumber(literal.operand.text) &&\n Number(literal.operand.text) !== 0;\n return isNegative\n ? { kind: \"numberLiteral\", value: -Number((literal.operand as ts.NumericLiteral).text) }\n : null;\n}\n\nfunction fromLiteral(ts: TypeScriptModule, node: ts.LiteralTypeNode): IrType | null {\n const { literal } = node;\n if (ts.isStringLiteral(literal)) {\n const isSingleQuoted = (literal as { singleQuote?: boolean }).singleQuote === true;\n return isSingleQuoted\n ? null\n : { kind: \"stringLiteral\", value: literal.text, encoding: \"escaped\" };\n }\n if (literal.kind === ts.SyntaxKind.NullKeyword) {\n return { kind: \"keyword\", keyword: \"null\" };\n }\n if (literal.kind === ts.SyntaxKind.TrueKeyword || literal.kind === ts.SyntaxKind.FalseKeyword) {\n return { kind: \"booleanLiteral\", value: literal.kind === ts.SyntaxKind.TrueKeyword };\n }\n return fromNumber(ts, literal);\n}\n\n/** Converts the children of one node, which becomes their parent. */\nfunction childrenOf(ts: TypeScriptModule, parent: ts.Node): (child: ts.TypeNode) => IrType {\n return (child) => fromTypeNode(ts, child, parent);\n}\n\nfunction fromReference(ts: TypeScriptModule, node: ts.TypeReferenceNode): IrType | null {\n if (!ts.isIdentifier(node.typeName)) {\n return null;\n }\n const typeArguments = (node.typeArguments ?? []).map(childrenOf(ts, node));\n return { kind: \"reference\", name: ts.idText(node.typeName), typeArguments };\n}\n\nfunction fromTupleElement(\n ts: TypeScriptModule,\n element: ts.TypeNode,\n convert: (node: ts.TypeNode) => IrType,\n): IrTupleElement {\n if (ts.isRestTypeNode(element)) {\n return { type: convert(element.type), isRest: true, isOptional: false };\n }\n if (ts.isOptionalTypeNode(element)) {\n // The `?` is the parent of the type: it decides which parentheses the factory put in.\n return { type: fromTypeNode(ts, element.type, element), isRest: false, isOptional: true };\n }\n return { type: convert(element), isRest: false, isOptional: false };\n}\n\n/** A tuple of plain, rest and optional elements; one with named members stays text. */\nfunction fromTuple(ts: TypeScriptModule, node: ts.TupleTypeNode): IrType | null {\n if (node.elements.some((element) => ts.isNamedTupleMember(element))) {\n return null;\n }\n const convert = childrenOf(ts, node);\n return {\n kind: \"tuple\",\n elements: node.elements.map((element) => fromTupleElement(ts, element, convert)),\n };\n}\n\n/**\n * Leading comments in order, or null when the IR cannot hold them: trailing comments, or a\n * comment without a line break after it (the IR always writes one).\n */\nfunction fromComments(ts: TypeScriptModule, node: ts.Node): IrComment[] | null {\n const comments = ts.getSyntheticLeadingComments(node) ?? [];\n const hasTrailing = (ts.getSyntheticTrailingComments(node)?.length ?? 0) > 0;\n if (hasTrailing || comments.some((comment) => !comment.hasTrailingNewLine)) {\n return null;\n }\n return comments.map((comment) => ({\n kind: comment.kind === ts.SyntaxKind.MultiLineCommentTrivia ? \"block\" : \"line\",\n text: comment.text,\n }));\n}\n\nfunction fromPropertyName(ts: TypeScriptModule, name: ts.PropertyName): IrPropertyName | null {\n if (ts.isIdentifier(name)) {\n return { kind: \"identifier\", text: ts.idText(name) };\n }\n if (ts.isStringLiteral(name) && (name as { singleQuote?: boolean }).singleQuote !== true) {\n return { kind: \"string\", value: name.text };\n }\n return ts.isNumericLiteral(name) ? { kind: \"number\", text: name.text } : null;\n}\n\n/** Only `readonly` is modeled; any other modifier makes the member unreadable as IR. */\nfunction readonlyFlag(ts: TypeScriptModule, node: ts.TypeElement): boolean | null {\n const modifiers = ts.canHaveModifiers(node) ? (ts.getModifiers(node) ?? []) : [];\n const isOnlyReadonly = modifiers.every(\n (modifier) => modifier.kind === ts.SyntaxKind.ReadonlyKeyword,\n );\n return isOnlyReadonly ? modifiers.length > 0 : null;\n}\n\n/** A property signature as IR, or null when it uses syntax the IR does not model. */\nexport function fromPropertySignature(\n ts: TypeScriptModule,\n node: ts.PropertySignature,\n): IrPropertySignature | null {\n const name = fromPropertyName(ts, node.name);\n const comments = fromComments(ts, node);\n const isReadonly = readonlyFlag(ts, node);\n if (name === null || comments === null || isReadonly === null || node.type === undefined) {\n return null;\n }\n return {\n kind: \"property\",\n name,\n type: fromTypeNode(ts, node.type, node),\n isOptional: node.questionToken !== undefined,\n isReadonly,\n comments,\n };\n}\n\nfunction fromIndexSignature(\n ts: TypeScriptModule,\n node: ts.IndexSignatureDeclaration,\n): IrMember | null {\n const [parameter, ...others] = node.parameters;\n const comments = fromComments(ts, node);\n const isReadonly = readonlyFlag(ts, node);\n const isPlain =\n parameter?.type !== undefined && ts.isIdentifier(parameter.name) && others.length === 0;\n if (!isPlain || comments === null || isReadonly === null) {\n return null;\n }\n return {\n kind: \"indexSignature\",\n parameterName: ts.idText(parameter.name as ts.Identifier),\n parameterType: fromTypeNode(ts, parameter.type as ts.TypeNode, node),\n type: fromTypeNode(ts, node.type, node),\n isReadonly,\n comments,\n };\n}\n\nfunction fromMember(ts: TypeScriptModule, member: ts.TypeElement): IrMember | null {\n if (member.pos >= 0) {\n return null;\n }\n if (ts.isPropertySignature(member)) {\n return fromPropertySignature(ts, member);\n }\n return ts.isIndexSignatureDeclaration(member) ? fromIndexSignature(ts, member) : null;\n}\n\nfunction fromTypeLiteral(ts: TypeScriptModule, node: ts.TypeLiteralNode): IrType | null {\n const members = node.members.map((member) => fromMember(ts, member));\n const isReadable = members.every((member) => member !== null);\n return isReadable ? { kind: \"object\", members: members as IrMember[] } : null;\n}\n\nfunction fromComposite(ts: TypeScriptModule, node: ts.TypeNode): IrType | null {\n const convert = childrenOf(ts, node);\n if (ts.isArrayTypeNode(node)) {\n return { kind: \"array\", element: convert(node.elementType) };\n }\n if (ts.isUnionTypeNode(node)) {\n return { kind: \"union\", types: node.types.map(convert) };\n }\n if (ts.isIntersectionTypeNode(node)) {\n return { kind: \"intersection\", types: node.types.map(convert) };\n }\n if (ts.isIndexedAccessTypeNode(node)) {\n return {\n kind: \"indexedAccess\",\n object: convert(node.objectType),\n index: convert(node.indexType),\n };\n }\n if (ts.isTypeOperatorNode(node) && node.operator === ts.SyntaxKind.ReadonlyKeyword) {\n return { kind: \"readonly\", type: convert(node.type) };\n }\n return ts.isTypeLiteralNode(node) ? fromTypeLiteral(ts, node) : null;\n}\n\nfunction fromStructure(ts: TypeScriptModule, node: ts.TypeNode): IrType | null {\n const keyword = keywordOf(ts, node.kind);\n if (keyword !== undefined) {\n return { kind: \"keyword\", keyword };\n }\n if (ts.isIdentifier(node)) {\n // The original writes JSON string literals and some references as bare identifiers.\n return irRaw(ts.idText(node));\n }\n if (ts.isLiteralTypeNode(node)) {\n return fromLiteral(ts, node);\n }\n if (ts.isTypeReferenceNode(node)) {\n return fromReference(ts, node);\n }\n return ts.isTupleTypeNode(node) ? fromTuple(ts, node) : fromComposite(ts, node);\n}\n\n/**\n * Whether the factory's parenthesizer put these parentheses in (same rules as the IR printer):\n * unions, intersections and `readonly` types as array elements, indexed objects, optional tuple\n * elements and `readonly` operands; unions and intersections as members of other unions or\n * intersections.\n */\nfunction isFactoryParenthesis(\n ts: TypeScriptModule,\n inner: ts.TypeNode,\n parent: ts.Node | undefined,\n): boolean {\n if (parent === undefined) {\n return false;\n }\n const isComposite = ts.isUnionTypeNode(inner) || ts.isIntersectionTypeNode(inner);\n const isPostfixOrReadonlyParent =\n ts.isArrayTypeNode(parent) ||\n ts.isIndexedAccessTypeNode(parent) ||\n ts.isOptionalTypeNode(parent) ||\n ts.isTypeOperatorNode(parent);\n if (isPostfixOrReadonlyParent) {\n return isComposite || ts.isTypeOperatorNode(inner);\n }\n const isCompositeParent = ts.isUnionTypeNode(parent) || ts.isIntersectionTypeNode(parent);\n return isCompositeParent && isComposite;\n}\n\n/**\n * Convert a type node. `parent` is the node that contains it: synthesized nodes have no `parent`\n * link, and it is needed to tell parentheses the factory inserted from ones the user wrote.\n */\nexport function fromTypeNode(ts: TypeScriptModule, node: ts.TypeNode, parent?: ts.Node): IrType {\n if (isIrNode(node)) {\n return node;\n }\n if (needsPrintedText(ts, node)) {\n return asRaw(ts, node);\n }\n if (ts.isParenthesizedTypeNode(node)) {\n return isFactoryParenthesis(ts, node.type, parent)\n ? fromTypeNode(ts, node.type, parent)\n : asRaw(ts, node);\n }\n return fromStructure(ts, node) ?? asRaw(ts, node);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const irDeclarationsToTypescript = require('../adapters/type-ast-bridge/ir-declarations-to-typescript.cjs');
|
|
4
|
+
const irToTypescript = require('../adapters/type-ast-bridge/ir-to-typescript.cjs');
|
|
5
|
+
const loadTypescript = require('../adapters/type-ast-bridge/load-typescript.cjs');
|
|
6
|
+
const printTypescript = require('../adapters/type-ast-bridge/print-typescript.cjs');
|
|
7
|
+
const printNodes$1 = require('../application/print/print-nodes.cjs');
|
|
8
|
+
const stackOverflow = require('../application/stack-overflow.cjs');
|
|
9
|
+
|
|
10
|
+
function isIrNode(node) {
|
|
11
|
+
return typeof node.kind === "string";
|
|
12
|
+
}
|
|
13
|
+
function toTypeScriptNodes(ts, node) {
|
|
14
|
+
if (isIrDeclarationKind(node)) {
|
|
15
|
+
return irDeclarationsToTypescript.toStatements(ts, node);
|
|
16
|
+
}
|
|
17
|
+
const isMember = node.kind === "property" || node.kind === "indexSignature";
|
|
18
|
+
return [isMember ? irToTypescript.toTypeElement(ts, node) : irToTypescript.toTypeNode(ts, node)];
|
|
19
|
+
}
|
|
20
|
+
function isIrDeclarationKind(node) {
|
|
21
|
+
return ["interface", "typeAlias", "enum", "constArray", "rawDeclaration"].includes(node.kind);
|
|
22
|
+
}
|
|
23
|
+
function astToString(ast, options) {
|
|
24
|
+
return stackOverflow.withStackOverflowReported("print", () => printNodes(ast, options));
|
|
25
|
+
}
|
|
26
|
+
function printNodes(ast, options) {
|
|
27
|
+
const nodes = Array.isArray(ast) ? ast : [ast];
|
|
28
|
+
if (nodes.every(isIrNode) && !options) {
|
|
29
|
+
return printNodes$1.printFragments(nodes);
|
|
30
|
+
}
|
|
31
|
+
const ts = loadTypescript.loadTypeScript();
|
|
32
|
+
const statements = nodes.flatMap(
|
|
33
|
+
(node) => isIrNode(node) ? toTypeScriptNodes(ts, node) : [node]
|
|
34
|
+
);
|
|
35
|
+
return printTypescript.printWithTypeScript(ts, statements, options);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.astToString = astToString;
|
|
39
|
+
//# sourceMappingURL=ast-to-string.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-to-string.cjs","sources":["../../src/api/ast-to-string.ts"],"sourcesContent":["import { toStatements } from \"../adapters/type-ast-bridge/ir-declarations-to-typescript.js\";\nimport { toTypeElement, toTypeNode } from \"../adapters/type-ast-bridge/ir-to-typescript.js\";\nimport {\n loadTypeScript,\n type TypeScriptModule,\n} from \"../adapters/type-ast-bridge/load-typescript.js\";\nimport {\n type AstToStringOptions,\n printWithTypeScript,\n} from \"../adapters/type-ast-bridge/print-typescript.js\";\nimport type { ts } from \"../adapters/type-ast-bridge/typescript-types.js\";\nimport { type IrPrintable, printFragments } from \"../application/print/print-nodes.js\";\nimport { withStackOverflowReported } from \"../application/stack-overflow.js\";\nimport type { IrDeclaration } from \"../domain/ir/nodes.js\";\n\nexport type { AstToStringOptions } from \"../adapters/type-ast-bridge/print-typescript.js\";\n\n/** What `astToString` prints: IR (from `openapiTS` and the transformers) or TypeScript nodes. */\nexport type AstToStringInput = IrPrintable | ts.Node | readonly (IrPrintable | ts.Node)[];\n\nfunction isIrNode(node: IrPrintable | ts.Node): node is IrPrintable {\n return typeof node.kind === \"string\";\n}\n\n/** An IR node in TypeScript form, for printing it together with TypeScript nodes. */\nfunction toTypeScriptNodes(ts: TypeScriptModule, node: IrPrintable): ts.Node[] {\n if (isIrDeclarationKind(node)) {\n return toStatements(ts, node);\n }\n const isMember = node.kind === \"property\" || node.kind === \"indexSignature\";\n return [isMember ? toTypeElement(ts, node) : toTypeNode(ts, node)];\n}\n\nfunction isIrDeclarationKind(node: IrPrintable): node is IrDeclaration {\n return [\"interface\", \"typeAlias\", \"enum\", \"constArray\", \"rawDeclaration\"].includes(node.kind);\n}\n\n/**\n * Print declarations, members or types as a TypeScript file body. IR is printed by our printer;\n * with TypeScript nodes in the input, or with TypeScript printer options, everything goes\n * through the TypeScript printer as before (ADR-004, decision 1).\n */\nexport function astToString(ast: AstToStringInput, options?: AstToStringOptions): string {\n return withStackOverflowReported(\"print\", () => printNodes(ast, options));\n}\n\nfunction printNodes(ast: AstToStringInput, options: AstToStringOptions | undefined): string {\n const nodes: readonly (IrPrintable | ts.Node)[] = Array.isArray(ast)\n ? ast\n : [ast as IrPrintable | ts.Node];\n if (nodes.every(isIrNode) && !options) {\n return printFragments(nodes);\n }\n const ts = loadTypeScript();\n const statements = nodes.flatMap((node) =>\n isIrNode(node) ? toTypeScriptNodes(ts, node) : [node],\n );\n return printWithTypeScript(ts, statements, options);\n}\n"],"names":["toStatements","toTypeElement","toTypeNode","withStackOverflowReported","printFragments","loadTypeScript","printWithTypeScript"],"mappings":";;;;;;;;;AAoBA,SAAS,SAAS,IAAA,EAAkD;AAClE,EAAA,OAAO,OAAO,KAAK,IAAA,KAAS,QAAA;AAC9B;AAGA,SAAS,iBAAA,CAAkB,IAAsB,IAAA,EAA8B;AAC7E,EAAA,IAAI,mBAAA,CAAoB,IAAI,CAAA,EAAG;AAC7B,IAAA,OAAOA,uCAAA,CAAa,IAAI,IAAI,CAAA;AAAA,EAC9B;AACA,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,IAAA,KAAS,UAAA,IAAc,KAAK,IAAA,KAAS,gBAAA;AAC3D,EAAA,OAAO,CAAC,WAAWC,4BAAA,CAAc,EAAA,EAAI,IAAI,CAAA,GAAIC,yBAAA,CAAW,EAAA,EAAI,IAAI,CAAC,CAAA;AACnE;AAEA,SAAS,oBAAoB,IAAA,EAA0C;AACrE,EAAA,OAAO,CAAC,aAAa,WAAA,EAAa,MAAA,EAAQ,cAAc,gBAAgB,CAAA,CAAE,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAC9F;AAOO,SAAS,WAAA,CAAY,KAAuB,OAAA,EAAsC;AACvF,EAAA,OAAOC,wCAA0B,OAAA,EAAS,MAAM,UAAA,CAAW,GAAA,EAAK,OAAO,CAAC,CAAA;AAC1E;AAEA,SAAS,UAAA,CAAW,KAAuB,OAAA,EAAiD;AAC1F,EAAA,MAAM,QAA4C,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,GAC/D,GAAA,GACA,CAAC,GAA4B,CAAA;AACjC,EAAA,IAAI,KAAA,CAAM,KAAA,CAAM,QAAQ,CAAA,IAAK,CAAC,OAAA,EAAS;AACrC,IAAA,OAAOC,4BAAe,KAAK,CAAA;AAAA,EAC7B;AACA,EAAA,MAAM,KAAKC,6BAAA,EAAe;AAC1B,EAAA,MAAM,aAAa,KAAA,CAAM,OAAA;AAAA,IAAQ,CAAC,IAAA,KAChC,QAAA,CAAS,IAAI,CAAA,GAAI,kBAAkB,EAAA,EAAI,IAAI,CAAA,GAAI,CAAC,IAAI;AAAA,GACtD;AACA,EAAA,OAAOC,mCAAA,CAAoB,EAAA,EAAI,UAAA,EAAY,OAAO,CAAA;AACpD;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { toStatements } from '../adapters/type-ast-bridge/ir-declarations-to-typescript.mjs';
|
|
2
|
+
import { toTypeElement, toTypeNode } from '../adapters/type-ast-bridge/ir-to-typescript.mjs';
|
|
3
|
+
import { loadTypeScript } from '../adapters/type-ast-bridge/load-typescript.mjs';
|
|
4
|
+
import { printWithTypeScript } from '../adapters/type-ast-bridge/print-typescript.mjs';
|
|
5
|
+
import { printFragments } from '../application/print/print-nodes.mjs';
|
|
6
|
+
import { withStackOverflowReported } from '../application/stack-overflow.mjs';
|
|
7
|
+
|
|
8
|
+
function isIrNode(node) {
|
|
9
|
+
return typeof node.kind === "string";
|
|
10
|
+
}
|
|
11
|
+
function toTypeScriptNodes(ts, node) {
|
|
12
|
+
if (isIrDeclarationKind(node)) {
|
|
13
|
+
return toStatements(ts, node);
|
|
14
|
+
}
|
|
15
|
+
const isMember = node.kind === "property" || node.kind === "indexSignature";
|
|
16
|
+
return [isMember ? toTypeElement(ts, node) : toTypeNode(ts, node)];
|
|
17
|
+
}
|
|
18
|
+
function isIrDeclarationKind(node) {
|
|
19
|
+
return ["interface", "typeAlias", "enum", "constArray", "rawDeclaration"].includes(node.kind);
|
|
20
|
+
}
|
|
21
|
+
function astToString(ast, options) {
|
|
22
|
+
return withStackOverflowReported("print", () => printNodes(ast, options));
|
|
23
|
+
}
|
|
24
|
+
function printNodes(ast, options) {
|
|
25
|
+
const nodes = Array.isArray(ast) ? ast : [ast];
|
|
26
|
+
if (nodes.every(isIrNode) && !options) {
|
|
27
|
+
return printFragments(nodes);
|
|
28
|
+
}
|
|
29
|
+
const ts = loadTypeScript();
|
|
30
|
+
const statements = nodes.flatMap(
|
|
31
|
+
(node) => isIrNode(node) ? toTypeScriptNodes(ts, node) : [node]
|
|
32
|
+
);
|
|
33
|
+
return printWithTypeScript(ts, statements, options);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { astToString };
|
|
37
|
+
//# sourceMappingURL=ast-to-string.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-to-string.mjs","sources":["../../src/api/ast-to-string.ts"],"sourcesContent":["import { toStatements } from \"../adapters/type-ast-bridge/ir-declarations-to-typescript.js\";\nimport { toTypeElement, toTypeNode } from \"../adapters/type-ast-bridge/ir-to-typescript.js\";\nimport {\n loadTypeScript,\n type TypeScriptModule,\n} from \"../adapters/type-ast-bridge/load-typescript.js\";\nimport {\n type AstToStringOptions,\n printWithTypeScript,\n} from \"../adapters/type-ast-bridge/print-typescript.js\";\nimport type { ts } from \"../adapters/type-ast-bridge/typescript-types.js\";\nimport { type IrPrintable, printFragments } from \"../application/print/print-nodes.js\";\nimport { withStackOverflowReported } from \"../application/stack-overflow.js\";\nimport type { IrDeclaration } from \"../domain/ir/nodes.js\";\n\nexport type { AstToStringOptions } from \"../adapters/type-ast-bridge/print-typescript.js\";\n\n/** What `astToString` prints: IR (from `openapiTS` and the transformers) or TypeScript nodes. */\nexport type AstToStringInput = IrPrintable | ts.Node | readonly (IrPrintable | ts.Node)[];\n\nfunction isIrNode(node: IrPrintable | ts.Node): node is IrPrintable {\n return typeof node.kind === \"string\";\n}\n\n/** An IR node in TypeScript form, for printing it together with TypeScript nodes. */\nfunction toTypeScriptNodes(ts: TypeScriptModule, node: IrPrintable): ts.Node[] {\n if (isIrDeclarationKind(node)) {\n return toStatements(ts, node);\n }\n const isMember = node.kind === \"property\" || node.kind === \"indexSignature\";\n return [isMember ? toTypeElement(ts, node) : toTypeNode(ts, node)];\n}\n\nfunction isIrDeclarationKind(node: IrPrintable): node is IrDeclaration {\n return [\"interface\", \"typeAlias\", \"enum\", \"constArray\", \"rawDeclaration\"].includes(node.kind);\n}\n\n/**\n * Print declarations, members or types as a TypeScript file body. IR is printed by our printer;\n * with TypeScript nodes in the input, or with TypeScript printer options, everything goes\n * through the TypeScript printer as before (ADR-004, decision 1).\n */\nexport function astToString(ast: AstToStringInput, options?: AstToStringOptions): string {\n return withStackOverflowReported(\"print\", () => printNodes(ast, options));\n}\n\nfunction printNodes(ast: AstToStringInput, options: AstToStringOptions | undefined): string {\n const nodes: readonly (IrPrintable | ts.Node)[] = Array.isArray(ast)\n ? ast\n : [ast as IrPrintable | ts.Node];\n if (nodes.every(isIrNode) && !options) {\n return printFragments(nodes);\n }\n const ts = loadTypeScript();\n const statements = nodes.flatMap((node) =>\n isIrNode(node) ? toTypeScriptNodes(ts, node) : [node],\n );\n return printWithTypeScript(ts, statements, options);\n}\n"],"names":[],"mappings":";;;;;;;AAoBA,SAAS,SAAS,IAAA,EAAkD;AAClE,EAAA,OAAO,OAAO,KAAK,IAAA,KAAS,QAAA;AAC9B;AAGA,SAAS,iBAAA,CAAkB,IAAsB,IAAA,EAA8B;AAC7E,EAAA,IAAI,mBAAA,CAAoB,IAAI,CAAA,EAAG;AAC7B,IAAA,OAAO,YAAA,CAAa,IAAI,IAAI,CAAA;AAAA,EAC9B;AACA,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,IAAA,KAAS,UAAA,IAAc,KAAK,IAAA,KAAS,gBAAA;AAC3D,EAAA,OAAO,CAAC,WAAW,aAAA,CAAc,EAAA,EAAI,IAAI,CAAA,GAAI,UAAA,CAAW,EAAA,EAAI,IAAI,CAAC,CAAA;AACnE;AAEA,SAAS,oBAAoB,IAAA,EAA0C;AACrE,EAAA,OAAO,CAAC,aAAa,WAAA,EAAa,MAAA,EAAQ,cAAc,gBAAgB,CAAA,CAAE,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAC9F;AAOO,SAAS,WAAA,CAAY,KAAuB,OAAA,EAAsC;AACvF,EAAA,OAAO,0BAA0B,OAAA,EAAS,MAAM,UAAA,CAAW,GAAA,EAAK,OAAO,CAAC,CAAA;AAC1E;AAEA,SAAS,UAAA,CAAW,KAAuB,OAAA,EAAiD;AAC1F,EAAA,MAAM,QAA4C,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,GAC/D,GAAA,GACA,CAAC,GAA4B,CAAA;AACjC,EAAA,IAAI,KAAA,CAAM,KAAA,CAAM,QAAQ,CAAA,IAAK,CAAC,OAAA,EAAS;AACrC,IAAA,OAAO,eAAe,KAAK,CAAA;AAAA,EAC7B;AACA,EAAA,MAAM,KAAK,cAAA,EAAe;AAC1B,EAAA,MAAM,aAAa,KAAA,CAAM,OAAA;AAAA,IAAQ,CAAC,IAAA,KAChC,QAAA,CAAS,IAAI,CAAA,GAAI,kBAAkB,EAAA,EAAI,IAAI,CAAA,GAAI,CAAC,IAAI;AAAA,GACtD;AACA,EAAA,OAAO,mBAAA,CAAoB,EAAA,EAAI,UAAA,EAAY,OAAO,CAAA;AACpD;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment-header.cjs","sources":["../../src/api/comment-header.ts"],"sourcesContent":["/** The header of every generated file; the CLI writes it before the declarations. */\nexport const COMMENT_HEADER = `/**\n * This file was auto-generated by openapi-typesafe.\n * Do not make direct changes to the file.\n */\n\n`;\n"],"names":[],"mappings":";;AACO,MAAM,cAAA,GAAiB,CAAA;AAAA;AAAA;AAAA;;AAAA;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment-header.mjs","sources":["../../src/api/comment-header.ts"],"sourcesContent":["/** The header of every generated file; the CLI writes it before the declarations. */\nexport const COMMENT_HEADER = `/**\n * This file was auto-generated by openapi-typesafe.\n * Do not make direct changes to the file.\n */\n\n`;\n"],"names":[],"mappings":"AACO,MAAM,cAAA,GAAiB,CAAA;AAAA;AAAA;AAAA;;AAAA;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const node_perf_hooks = require('node:perf_hooks');
|
|
4
|
+
const openapiCore = require('@redocly/openapi-core');
|
|
5
|
+
const supportsColor = require('supports-color');
|
|
6
|
+
const terminalLogger = require('../adapters/terminal-logger/terminal-logger.cjs');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
9
|
+
|
|
10
|
+
const supportsColor__default = /*#__PURE__*/_interopDefaultCompat(supportsColor);
|
|
11
|
+
|
|
12
|
+
function terminalSupportsColor() {
|
|
13
|
+
const stdout = supportsColor__default.stdout;
|
|
14
|
+
return Boolean(stdout) && stdout !== false && stdout.hasBasic !== false;
|
|
15
|
+
}
|
|
16
|
+
function defaultLogger(silent) {
|
|
17
|
+
return terminalLogger.createTerminalLogger({
|
|
18
|
+
silent,
|
|
19
|
+
debugFilter: process.env.DEBUG,
|
|
20
|
+
useColors: terminalSupportsColor(),
|
|
21
|
+
sink: console
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
const REMOTE_REF_TIMEOUT_MS = 6e4;
|
|
25
|
+
function monotonicNow() {
|
|
26
|
+
return node_perf_hooks.performance.now();
|
|
27
|
+
}
|
|
28
|
+
function defaultRedoclyConfig() {
|
|
29
|
+
const rules = { "operation-operationId-unique": { severity: "error" } };
|
|
30
|
+
return openapiCore.createConfig({ rules }, { extends: ["minimal"] });
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
exports.REMOTE_REF_TIMEOUT_MS = REMOTE_REF_TIMEOUT_MS;
|
|
34
|
+
exports.defaultLogger = defaultLogger;
|
|
35
|
+
exports.defaultRedoclyConfig = defaultRedoclyConfig;
|
|
36
|
+
exports.monotonicNow = monotonicNow;
|
|
37
|
+
exports.terminalSupportsColor = terminalSupportsColor;
|
|
38
|
+
//# sourceMappingURL=default-ports.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-ports.cjs","sources":["../../src/api/default-ports.ts"],"sourcesContent":["import { performance } from \"node:perf_hooks\";\nimport { createConfig, type Config as RedoclyConfig } from \"@redocly/openapi-core\";\nimport supportsColor from \"supports-color\";\nimport { createTerminalLogger } from \"../adapters/terminal-logger/terminal-logger.js\";\nimport type { Logger } from \"../application/ports/logger.js\";\n\n/**\n * The default adapters of the Node API (ENGINEERING_PLAN 4.5): this module and the CLI's\n * composition root are where the process environment is read.\n */\n\n/** Colors when the terminal supports them, as the original decided. */\nexport function terminalSupportsColor(): boolean {\n const stdout = supportsColor.stdout;\n return Boolean(stdout) && stdout !== false && stdout.hasBasic !== false;\n}\n\n/** The terminal logger with `DEBUG` from the environment, writing to the console. */\nexport function defaultLogger(silent: boolean): Logger {\n return createTerminalLogger({\n silent,\n debugFilter: process.env.DEBUG,\n useColors: terminalSupportsColor(),\n sink: console,\n });\n}\n\n/**\n * How long one remote `$ref` (or a remote source) may take to load. Large documents (the 27 MB\n * Cloudflare spec) download in seconds; a minute covers slow hosts, while Node's own fetch would\n * wait five minutes for a server that never answers (ENGINEERING_PLAN 8.5).\n */\nexport const REMOTE_REF_TIMEOUT_MS = 60_000;\n\n/** A monotonic clock in milliseconds, for debug durations. */\nexport function monotonicNow(): number {\n return performance.now();\n}\n\n/** The default Redocly config: minimal rules, and duplicate operation IDs are an error. */\nexport function defaultRedoclyConfig(): Promise<RedoclyConfig> {\n const rules = { \"operation-operationId-unique\": { severity: \"error\" as const } };\n return createConfig({ rules }, { extends: [\"minimal\"] });\n}\n"],"names":["supportsColor","createTerminalLogger","performance","createConfig"],"mappings":";;;;;;;;;;;AAYO,SAAS,qBAAA,GAAiC;AAC/C,EAAA,MAAM,SAASA,sBAAA,CAAc,MAAA;AAC7B,EAAA,OAAO,QAAQ,MAAM,CAAA,IAAK,MAAA,KAAW,KAAA,IAAS,OAAO,QAAA,KAAa,KAAA;AACpE;AAGO,SAAS,cAAc,MAAA,EAAyB;AACrD,EAAA,OAAOC,mCAAA,CAAqB;AAAA,IAC1B,MAAA;AAAA,IACA,WAAA,EAAa,QAAQ,GAAA,CAAI,KAAA;AAAA,IACzB,WAAW,qBAAA,EAAsB;AAAA,IACjC,IAAA,EAAM;AAAA,GACP,CAAA;AACH;AAOO,MAAM,qBAAA,GAAwB;AAG9B,SAAS,YAAA,GAAuB;AACrC,EAAA,OAAOC,4BAAY,GAAA,EAAI;AACzB;AAGO,SAAS,oBAAA,GAA+C;AAC7D,EAAA,MAAM,QAAQ,EAAE,8BAAA,EAAgC,EAAE,QAAA,EAAU,SAAiB,EAAE;AAC/E,EAAA,OAAOC,wBAAA,CAAa,EAAE,KAAA,EAAM,EAAG,EAAE,OAAA,EAAS,CAAC,SAAS,CAAA,EAAG,CAAA;AACzD;;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { performance } from 'node:perf_hooks';
|
|
2
|
+
import { createConfig } from '@redocly/openapi-core';
|
|
3
|
+
import supportsColor from 'supports-color';
|
|
4
|
+
import { createTerminalLogger } from '../adapters/terminal-logger/terminal-logger.mjs';
|
|
5
|
+
|
|
6
|
+
function terminalSupportsColor() {
|
|
7
|
+
const stdout = supportsColor.stdout;
|
|
8
|
+
return Boolean(stdout) && stdout !== false && stdout.hasBasic !== false;
|
|
9
|
+
}
|
|
10
|
+
function defaultLogger(silent) {
|
|
11
|
+
return createTerminalLogger({
|
|
12
|
+
silent,
|
|
13
|
+
debugFilter: process.env.DEBUG,
|
|
14
|
+
useColors: terminalSupportsColor(),
|
|
15
|
+
sink: console
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const REMOTE_REF_TIMEOUT_MS = 6e4;
|
|
19
|
+
function monotonicNow() {
|
|
20
|
+
return performance.now();
|
|
21
|
+
}
|
|
22
|
+
function defaultRedoclyConfig() {
|
|
23
|
+
const rules = { "operation-operationId-unique": { severity: "error" } };
|
|
24
|
+
return createConfig({ rules }, { extends: ["minimal"] });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { REMOTE_REF_TIMEOUT_MS, defaultLogger, defaultRedoclyConfig, monotonicNow, terminalSupportsColor };
|
|
28
|
+
//# sourceMappingURL=default-ports.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-ports.mjs","sources":["../../src/api/default-ports.ts"],"sourcesContent":["import { performance } from \"node:perf_hooks\";\nimport { createConfig, type Config as RedoclyConfig } from \"@redocly/openapi-core\";\nimport supportsColor from \"supports-color\";\nimport { createTerminalLogger } from \"../adapters/terminal-logger/terminal-logger.js\";\nimport type { Logger } from \"../application/ports/logger.js\";\n\n/**\n * The default adapters of the Node API (ENGINEERING_PLAN 4.5): this module and the CLI's\n * composition root are where the process environment is read.\n */\n\n/** Colors when the terminal supports them, as the original decided. */\nexport function terminalSupportsColor(): boolean {\n const stdout = supportsColor.stdout;\n return Boolean(stdout) && stdout !== false && stdout.hasBasic !== false;\n}\n\n/** The terminal logger with `DEBUG` from the environment, writing to the console. */\nexport function defaultLogger(silent: boolean): Logger {\n return createTerminalLogger({\n silent,\n debugFilter: process.env.DEBUG,\n useColors: terminalSupportsColor(),\n sink: console,\n });\n}\n\n/**\n * How long one remote `$ref` (or a remote source) may take to load. Large documents (the 27 MB\n * Cloudflare spec) download in seconds; a minute covers slow hosts, while Node's own fetch would\n * wait five minutes for a server that never answers (ENGINEERING_PLAN 8.5).\n */\nexport const REMOTE_REF_TIMEOUT_MS = 60_000;\n\n/** A monotonic clock in milliseconds, for debug durations. */\nexport function monotonicNow(): number {\n return performance.now();\n}\n\n/** The default Redocly config: minimal rules, and duplicate operation IDs are an error. */\nexport function defaultRedoclyConfig(): Promise<RedoclyConfig> {\n const rules = { \"operation-operationId-unique\": { severity: \"error\" as const } };\n return createConfig({ rules }, { extends: [\"minimal\"] });\n}\n"],"names":[],"mappings":";;;;;AAYO,SAAS,qBAAA,GAAiC;AAC/C,EAAA,MAAM,SAAS,aAAA,CAAc,MAAA;AAC7B,EAAA,OAAO,QAAQ,MAAM,CAAA,IAAK,MAAA,KAAW,KAAA,IAAS,OAAO,QAAA,KAAa,KAAA;AACpE;AAGO,SAAS,cAAc,MAAA,EAAyB;AACrD,EAAA,OAAO,oBAAA,CAAqB;AAAA,IAC1B,MAAA;AAAA,IACA,WAAA,EAAa,QAAQ,GAAA,CAAI,KAAA;AAAA,IACzB,WAAW,qBAAA,EAAsB;AAAA,IACjC,IAAA,EAAM;AAAA,GACP,CAAA;AACH;AAOO,MAAM,qBAAA,GAAwB;AAG9B,SAAS,YAAA,GAAuB;AACrC,EAAA,OAAO,YAAY,GAAA,EAAI;AACzB;AAGO,SAAS,oBAAA,GAA+C;AAC7D,EAAA,MAAM,QAAQ,EAAE,8BAAA,EAAgC,EAAE,QAAA,EAAU,SAAiB,EAAE;AAC/E,EAAA,OAAO,YAAA,CAAa,EAAE,KAAA,EAAM,EAAG,EAAE,OAAA,EAAS,CAAC,SAAS,CAAA,EAAG,CAAA;AACzD;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const discriminatorConflicts = require('../domain/openapi/discriminator-conflicts.cjs');
|
|
4
|
+
const outputFixes = require('../domain/output-fixes.cjs');
|
|
5
|
+
const warnings = require('../domain/warnings.cjs');
|
|
6
|
+
|
|
7
|
+
const DOCS_BASE_URL = "https://github.com/openapi-typesafe/openapi-typesafe/blob/main/docs";
|
|
8
|
+
const DOCS_URL = `${DOCS_BASE_URL}/advanced.md#discriminator-values`;
|
|
9
|
+
function listed(values) {
|
|
10
|
+
return values.map((value) => JSON.stringify(value)).join(", ");
|
|
11
|
+
}
|
|
12
|
+
function warningOf(conflict) {
|
|
13
|
+
const { member, owner, propertyName, values, allowed, isImplicit } = conflict;
|
|
14
|
+
const rule = isImplicit ? `A Discriminator Object without a mapping entry for a schema gives it its schema name as the value; add a mapping entry such as ${JSON.stringify(allowed[0])}: "${member}".` : "The Discriminator Object maps these values to the schema; map the values it allows.";
|
|
15
|
+
return `${member}: the discriminator "${propertyName}" of ${owner} gives this schema the value ${listed(values)}, which its "${propertyName}" property does not allow (${listed(allowed)}), so no value of the schema matches the discriminator. ${rule} See ${DOCS_URL}`;
|
|
16
|
+
}
|
|
17
|
+
function warnDiscriminatorValueConflicts(document, fixes, logger) {
|
|
18
|
+
const isUnionReused = fixes.includes(outputFixes.OutputFix.ALLOF_DISCRIMINATED_UNION);
|
|
19
|
+
for (const conflict of discriminatorConflicts.findDiscriminatorValueConflicts(document, { isUnionReused })) {
|
|
20
|
+
logger.warn(warnings.warningText(warningOf(conflict), warnings.WARNING_CODES.DISCRIMINATOR_VALUE_NOT_ALLOWED));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
exports.warnDiscriminatorValueConflicts = warnDiscriminatorValueConflicts;
|
|
25
|
+
//# sourceMappingURL=discriminator-conflict-warnings.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminator-conflict-warnings.cjs","sources":["../../src/api/discriminator-conflict-warnings.ts"],"sourcesContent":["import type { Logger } from \"../application/ports/logger.js\";\nimport {\n type DiscriminatorValueConflict,\n findDiscriminatorValueConflicts,\n} from \"../domain/openapi/discriminator-conflicts.js\";\nimport { OutputFix } from \"../domain/output-fixes.js\";\nimport { WARNING_CODES, warningText } from \"../domain/warnings.js\";\n\nconst DOCS_BASE_URL = \"https://github.com/openapi-typesafe/openapi-typesafe/blob/main/docs\";\nconst DOCS_URL = `${DOCS_BASE_URL}/advanced.md#discriminator-values`;\n\nfunction listed(values: readonly unknown[]): string {\n return values.map((value) => JSON.stringify(value)).join(\", \");\n}\n\nfunction warningOf(conflict: DiscriminatorValueConflict): string {\n const { member, owner, propertyName, values, allowed, isImplicit } = conflict;\n const rule = isImplicit\n ? \"A Discriminator Object without a mapping entry for a schema gives it its schema name as \" +\n `the value; add a mapping entry such as ${JSON.stringify(allowed[0])}: \"${member}\".`\n : \"The Discriminator Object maps these values to the schema; map the values it allows.\";\n return (\n `${member}: the discriminator \"${propertyName}\" of ${owner} gives this schema the value ` +\n `${listed(values)}, which its \"${propertyName}\" property does not allow ` +\n `(${listed(allowed)}), so no value of the schema matches the discriminator. ${rule} ` +\n `See ${DOCS_URL}`\n );\n}\n\n/**\n * Warn once per discriminator member whose value its own property does not allow. The members\n * depend on the run's fixes (`allof-discriminated-union`).\n */\nexport function warnDiscriminatorValueConflicts(\n document: unknown,\n fixes: readonly OutputFix[],\n logger: Logger,\n): void {\n const isUnionReused = fixes.includes(OutputFix.ALLOF_DISCRIMINATED_UNION);\n for (const conflict of findDiscriminatorValueConflicts(document, { isUnionReused })) {\n logger.warn(warningText(warningOf(conflict), WARNING_CODES.DISCRIMINATOR_VALUE_NOT_ALLOWED));\n }\n}\n"],"names":["OutputFix","findDiscriminatorValueConflicts","warningText","WARNING_CODES"],"mappings":";;;;;;AAQA,MAAM,aAAA,GAAgB,qEAAA;AACtB,MAAM,QAAA,GAAW,GAAG,aAAa,CAAA,iCAAA,CAAA;AAEjC,SAAS,OAAO,MAAA,EAAoC;AAClD,EAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,IAAA,CAAK,UAAU,KAAK,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AAC/D;AAEA,SAAS,UAAU,QAAA,EAA8C;AAC/D,EAAA,MAAM,EAAE,MAAA,EAAQ,KAAA,EAAO,cAAc,MAAA,EAAQ,OAAA,EAAS,YAAW,GAAI,QAAA;AACrE,EAAA,MAAM,IAAA,GAAO,UAAA,GACT,CAAA,+HAAA,EAC0C,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAC,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,EAAA,CAAA,GAChF,qFAAA;AACJ,EAAA,OACE,GAAG,MAAM,CAAA,qBAAA,EAAwB,YAAY,CAAA,KAAA,EAAQ,KAAK,gCACvD,MAAA,CAAO,MAAM,CAAC,CAAA,aAAA,EAAgB,YAAY,8BACzC,MAAA,CAAO,OAAO,CAAC,CAAA,wDAAA,EAA2D,IAAI,QAC3E,QAAQ,CAAA,CAAA;AAEnB;AAMO,SAAS,+BAAA,CACd,QAAA,EACA,KAAA,EACA,MAAA,EACM;AACN,EAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,QAAA,CAASA,qBAAA,CAAU,yBAAyB,CAAA;AACxE,EAAA,KAAA,MAAW,YAAYC,sDAAA,CAAgC,QAAA,EAAU,EAAE,aAAA,EAAe,CAAA,EAAG;AACnF,IAAA,MAAA,CAAO,KAAKC,oBAAA,CAAY,SAAA,CAAU,QAAQ,CAAA,EAAGC,sBAAA,CAAc,+BAA+B,CAAC,CAAA;AAAA,EAC7F;AACF;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { findDiscriminatorValueConflicts } from '../domain/openapi/discriminator-conflicts.mjs';
|
|
2
|
+
import { OutputFix } from '../domain/output-fixes.mjs';
|
|
3
|
+
import { warningText, WARNING_CODES } from '../domain/warnings.mjs';
|
|
4
|
+
|
|
5
|
+
const DOCS_BASE_URL = "https://github.com/openapi-typesafe/openapi-typesafe/blob/main/docs";
|
|
6
|
+
const DOCS_URL = `${DOCS_BASE_URL}/advanced.md#discriminator-values`;
|
|
7
|
+
function listed(values) {
|
|
8
|
+
return values.map((value) => JSON.stringify(value)).join(", ");
|
|
9
|
+
}
|
|
10
|
+
function warningOf(conflict) {
|
|
11
|
+
const { member, owner, propertyName, values, allowed, isImplicit } = conflict;
|
|
12
|
+
const rule = isImplicit ? `A Discriminator Object without a mapping entry for a schema gives it its schema name as the value; add a mapping entry such as ${JSON.stringify(allowed[0])}: "${member}".` : "The Discriminator Object maps these values to the schema; map the values it allows.";
|
|
13
|
+
return `${member}: the discriminator "${propertyName}" of ${owner} gives this schema the value ${listed(values)}, which its "${propertyName}" property does not allow (${listed(allowed)}), so no value of the schema matches the discriminator. ${rule} See ${DOCS_URL}`;
|
|
14
|
+
}
|
|
15
|
+
function warnDiscriminatorValueConflicts(document, fixes, logger) {
|
|
16
|
+
const isUnionReused = fixes.includes(OutputFix.ALLOF_DISCRIMINATED_UNION);
|
|
17
|
+
for (const conflict of findDiscriminatorValueConflicts(document, { isUnionReused })) {
|
|
18
|
+
logger.warn(warningText(warningOf(conflict), WARNING_CODES.DISCRIMINATOR_VALUE_NOT_ALLOWED));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { warnDiscriminatorValueConflicts };
|
|
23
|
+
//# sourceMappingURL=discriminator-conflict-warnings.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminator-conflict-warnings.mjs","sources":["../../src/api/discriminator-conflict-warnings.ts"],"sourcesContent":["import type { Logger } from \"../application/ports/logger.js\";\nimport {\n type DiscriminatorValueConflict,\n findDiscriminatorValueConflicts,\n} from \"../domain/openapi/discriminator-conflicts.js\";\nimport { OutputFix } from \"../domain/output-fixes.js\";\nimport { WARNING_CODES, warningText } from \"../domain/warnings.js\";\n\nconst DOCS_BASE_URL = \"https://github.com/openapi-typesafe/openapi-typesafe/blob/main/docs\";\nconst DOCS_URL = `${DOCS_BASE_URL}/advanced.md#discriminator-values`;\n\nfunction listed(values: readonly unknown[]): string {\n return values.map((value) => JSON.stringify(value)).join(\", \");\n}\n\nfunction warningOf(conflict: DiscriminatorValueConflict): string {\n const { member, owner, propertyName, values, allowed, isImplicit } = conflict;\n const rule = isImplicit\n ? \"A Discriminator Object without a mapping entry for a schema gives it its schema name as \" +\n `the value; add a mapping entry such as ${JSON.stringify(allowed[0])}: \"${member}\".`\n : \"The Discriminator Object maps these values to the schema; map the values it allows.\";\n return (\n `${member}: the discriminator \"${propertyName}\" of ${owner} gives this schema the value ` +\n `${listed(values)}, which its \"${propertyName}\" property does not allow ` +\n `(${listed(allowed)}), so no value of the schema matches the discriminator. ${rule} ` +\n `See ${DOCS_URL}`\n );\n}\n\n/**\n * Warn once per discriminator member whose value its own property does not allow. The members\n * depend on the run's fixes (`allof-discriminated-union`).\n */\nexport function warnDiscriminatorValueConflicts(\n document: unknown,\n fixes: readonly OutputFix[],\n logger: Logger,\n): void {\n const isUnionReused = fixes.includes(OutputFix.ALLOF_DISCRIMINATED_UNION);\n for (const conflict of findDiscriminatorValueConflicts(document, { isUnionReused })) {\n logger.warn(warningText(warningOf(conflict), WARNING_CODES.DISCRIMINATOR_VALUE_NOT_ALLOWED));\n }\n}\n"],"names":[],"mappings":";;;;AAQA,MAAM,aAAA,GAAgB,qEAAA;AACtB,MAAM,QAAA,GAAW,GAAG,aAAa,CAAA,iCAAA,CAAA;AAEjC,SAAS,OAAO,MAAA,EAAoC;AAClD,EAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,IAAA,CAAK,UAAU,KAAK,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AAC/D;AAEA,SAAS,UAAU,QAAA,EAA8C;AAC/D,EAAA,MAAM,EAAE,MAAA,EAAQ,KAAA,EAAO,cAAc,MAAA,EAAQ,OAAA,EAAS,YAAW,GAAI,QAAA;AACrE,EAAA,MAAM,IAAA,GAAO,UAAA,GACT,CAAA,+HAAA,EAC0C,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAC,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,EAAA,CAAA,GAChF,qFAAA;AACJ,EAAA,OACE,GAAG,MAAM,CAAA,qBAAA,EAAwB,YAAY,CAAA,KAAA,EAAQ,KAAK,gCACvD,MAAA,CAAO,MAAM,CAAC,CAAA,aAAA,EAAgB,YAAY,8BACzC,MAAA,CAAO,OAAO,CAAC,CAAA,wDAAA,EAA2D,IAAI,QAC3E,QAAQ,CAAA,CAAA;AAEnB;AAMO,SAAS,+BAAA,CACd,QAAA,EACA,KAAA,EACA,MAAA,EACM;AACN,EAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,QAAA,CAAS,SAAA,CAAU,yBAAyB,CAAA;AACxE,EAAA,KAAA,MAAW,YAAY,+BAAA,CAAgC,QAAA,EAAU,EAAE,aAAA,EAAe,CAAA,EAAG;AACnF,IAAA,MAAA,CAAO,KAAK,WAAA,CAAY,SAAA,CAAU,QAAQ,CAAA,EAAG,aAAA,CAAc,+BAA+B,CAAC,CAAA;AAAA,EAC7F;AACF;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
class FirstSchemaNameRecorder {
|
|
4
|
+
names = /* @__PURE__ */ new Map();
|
|
5
|
+
nameOf(key, name, request) {
|
|
6
|
+
if (!request.isOwnerReference && !this.names.has(key)) {
|
|
7
|
+
this.names.set(key, name);
|
|
8
|
+
}
|
|
9
|
+
return name;
|
|
10
|
+
}
|
|
11
|
+
/** The recorded name of each shared enum, for the second pass. */
|
|
12
|
+
chosenNames() {
|
|
13
|
+
const chosen = new Map(this.names);
|
|
14
|
+
return { nameOf: (key, name) => chosen.get(key) ?? name };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.FirstSchemaNameRecorder = FirstSchemaNameRecorder;
|
|
19
|
+
//# sourceMappingURL=discriminator-enum-names.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminator-enum-names.cjs","sources":["../../src/api/discriminator-enum-names.ts"],"sourcesContent":["import type { SharedEnumNames } from \"../application/transform/footer/shared-enum-names.js\";\nimport type { EnumDeclarationRequest } from \"../application/transform/schema/schema-context.js\";\n\n/**\n * `--dedupe-enums` names a shared enum after the first schema that declares it. With\n * `discriminator-values` and `--enum`, a member's value refers to the owner's enum, which is then\n * declared when the member is typed, maybe before that first schema; the shared enum would take\n * the owner's name. A first pass records the names of the declaring schemas only, so the second\n * pass names each shared enum as the document order does (`OtherKind`, not `PetPetType`).\n */\nexport class FirstSchemaNameRecorder implements SharedEnumNames {\n private readonly names = new Map<string, string>();\n\n nameOf(key: string, name: string, request: EnumDeclarationRequest): string {\n if (!request.isOwnerReference && !this.names.has(key)) {\n this.names.set(key, name);\n }\n return name;\n }\n\n /** The recorded name of each shared enum, for the second pass. */\n chosenNames(): SharedEnumNames {\n const chosen = new Map(this.names);\n return { nameOf: (key, name) => chosen.get(key) ?? name };\n }\n}\n"],"names":[],"mappings":";;AAUO,MAAM,uBAAA,CAAmD;AAAA,EAC7C,KAAA,uBAAY,GAAA,EAAoB;AAAA,EAEjD,MAAA,CAAO,GAAA,EAAa,IAAA,EAAc,OAAA,EAAyC;AACzE,IAAA,IAAI,CAAC,QAAQ,gBAAA,IAAoB,CAAC,KAAK,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA,EAAG;AACrD,MAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,IAAI,CAAA;AAAA,IAC1B;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA,EAGA,WAAA,GAA+B;AAC7B,IAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,IAAA,CAAK,KAAK,CAAA;AACjC,IAAA,OAAO,EAAE,QAAQ,CAAC,GAAA,EAAK,SAAS,MAAA,CAAO,GAAA,CAAI,GAAG,CAAA,IAAK,IAAA,EAAK;AAAA,EAC1D;AACF;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
class FirstSchemaNameRecorder {
|
|
2
|
+
names = /* @__PURE__ */ new Map();
|
|
3
|
+
nameOf(key, name, request) {
|
|
4
|
+
if (!request.isOwnerReference && !this.names.has(key)) {
|
|
5
|
+
this.names.set(key, name);
|
|
6
|
+
}
|
|
7
|
+
return name;
|
|
8
|
+
}
|
|
9
|
+
/** The recorded name of each shared enum, for the second pass. */
|
|
10
|
+
chosenNames() {
|
|
11
|
+
const chosen = new Map(this.names);
|
|
12
|
+
return { nameOf: (key, name) => chosen.get(key) ?? name };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { FirstSchemaNameRecorder };
|
|
17
|
+
//# sourceMappingURL=discriminator-enum-names.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminator-enum-names.mjs","sources":["../../src/api/discriminator-enum-names.ts"],"sourcesContent":["import type { SharedEnumNames } from \"../application/transform/footer/shared-enum-names.js\";\nimport type { EnumDeclarationRequest } from \"../application/transform/schema/schema-context.js\";\n\n/**\n * `--dedupe-enums` names a shared enum after the first schema that declares it. With\n * `discriminator-values` and `--enum`, a member's value refers to the owner's enum, which is then\n * declared when the member is typed, maybe before that first schema; the shared enum would take\n * the owner's name. A first pass records the names of the declaring schemas only, so the second\n * pass names each shared enum as the document order does (`OtherKind`, not `PetPetType`).\n */\nexport class FirstSchemaNameRecorder implements SharedEnumNames {\n private readonly names = new Map<string, string>();\n\n nameOf(key: string, name: string, request: EnumDeclarationRequest): string {\n if (!request.isOwnerReference && !this.names.has(key)) {\n this.names.set(key, name);\n }\n return name;\n }\n\n /** The recorded name of each shared enum, for the second pass. */\n chosenNames(): SharedEnumNames {\n const chosen = new Map(this.names);\n return { nameOf: (key, name) => chosen.get(key) ?? name };\n }\n}\n"],"names":[],"mappings":"AAUO,MAAM,uBAAA,CAAmD;AAAA,EAC7C,KAAA,uBAAY,GAAA,EAAoB;AAAA,EAEjD,MAAA,CAAO,GAAA,EAAa,IAAA,EAAc,OAAA,EAAyC;AACzE,IAAA,IAAI,CAAC,QAAQ,gBAAA,IAAoB,CAAC,KAAK,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA,EAAG;AACrD,MAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,IAAI,CAAA;AAAA,IAC1B;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA,EAGA,WAAA,GAA+B;AAC7B,IAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,IAAA,CAAK,KAAK,CAAA;AACjC,IAAA,OAAO,EAAE,QAAQ,CAAC,GAAA,EAAK,SAAS,MAAA,CAAO,GAAA,CAAI,GAAG,CAAA,IAAK,IAAA,EAAK;AAAA,EAC1D;AACF;;"}
|