@redocly/client-generator 0.3.7 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -54
- package/eject-assets/AGENTS.md +137 -0
- package/eject-assets/generators/cli/docs.ts +224 -0
- package/eject-assets/generators/cli/engine-source.ts +21 -0
- package/eject-assets/generators/cli/index.ts +90 -0
- package/eject-assets/generators/cli/render.ts +348 -0
- package/eject-assets/generators/go/client.ts +57 -0
- package/eject-assets/generators/go/descriptor.ts +41 -0
- package/eject-assets/generators/go/index.ts +336 -0
- package/eject-assets/generators/go/models.ts +179 -0
- package/eject-assets/generators/go/naming.ts +49 -0
- package/eject-assets/generators/go/operations.ts +296 -0
- package/eject-assets/generators/go/pagination.ts +194 -0
- package/eject-assets/generators/go/types.ts +60 -0
- package/eject-assets/generators/mock/faker.ts +214 -0
- package/eject-assets/generators/mock/index.ts +35 -0
- package/eject-assets/generators/mock/render.ts +282 -0
- package/eject-assets/generators/mock/sample.ts +316 -0
- package/eject-assets/generators/mock/values.ts +63 -0
- package/eject-assets/generators/php/client.ts +63 -0
- package/eject-assets/generators/php/descriptor.ts +58 -0
- package/eject-assets/generators/php/index.ts +237 -0
- package/eject-assets/generators/php/models.ts +275 -0
- package/eject-assets/generators/php/naming.ts +51 -0
- package/eject-assets/generators/php/operations.ts +232 -0
- package/eject-assets/generators/php/pagination.ts +133 -0
- package/eject-assets/generators/php/types.ts +148 -0
- package/eject-assets/generators/python/client.ts +123 -0
- package/eject-assets/generators/python/descriptor.ts +52 -0
- package/eject-assets/generators/python/index.ts +251 -0
- package/eject-assets/generators/python/models.ts +242 -0
- package/eject-assets/generators/python/naming.ts +46 -0
- package/eject-assets/generators/python/operations.ts +147 -0
- package/eject-assets/generators/python/pagination.ts +128 -0
- package/eject-assets/generators/python/types.ts +54 -0
- package/eject-assets/generators/swr/index.ts +37 -0
- package/eject-assets/generators/swr/render.ts +78 -0
- package/eject-assets/generators/tanstack-query/index.ts +48 -0
- package/eject-assets/generators/tanstack-query/render.ts +346 -0
- package/eject-assets/generators/transformers/index.ts +46 -0
- package/eject-assets/generators/transformers/render.ts +506 -0
- package/eject-assets/generators/typescript/banner.ts +35 -0
- package/eject-assets/generators/typescript/client.ts +254 -0
- package/eject-assets/generators/typescript/descriptor.ts +137 -0
- package/eject-assets/generators/typescript/index.ts +101 -0
- package/eject-assets/generators/typescript/inline-runtime.ts +135 -0
- package/eject-assets/generators/typescript/operation-signature.ts +62 -0
- package/eject-assets/generators/typescript/operation-types.ts +17 -0
- package/eject-assets/generators/typescript/operations.ts +524 -0
- package/eject-assets/generators/typescript/response-headers.ts +74 -0
- package/eject-assets/generators/typescript/type-guards.ts +159 -0
- package/eject-assets/generators/typescript/types.ts +172 -0
- package/eject-assets/generators/zod/index.ts +32 -0
- package/eject-assets/generators/zod/schemas.ts +456 -0
- package/eject-assets/skills/cli-generator/SKILL.md +121 -0
- package/eject-assets/skills/client-generators/SKILL.md +142 -0
- package/eject-assets/skills/go-generator/SKILL.md +96 -0
- package/eject-assets/skills/mock-generator/SKILL.md +50 -0
- package/eject-assets/skills/php-generator/SKILL.md +112 -0
- package/eject-assets/skills/python-generator/SKILL.md +110 -0
- package/eject-assets/skills/swr-generator/SKILL.md +50 -0
- package/eject-assets/skills/tanstack-query-generator/SKILL.md +55 -0
- package/eject-assets/skills/transformers-generator/SKILL.md +47 -0
- package/eject-assets/skills/typescript-generator/SKILL.md +95 -0
- package/eject-assets/skills/zod-generator/SKILL.md +54 -0
- package/lib/authoring/index.d.ts +11 -0
- package/lib/authoring/index.d.ts.map +1 -0
- package/lib/authoring/index.js +42 -0
- package/lib/authoring/index.js.map +1 -0
- package/lib/authoring/naming.d.ts +34 -0
- package/lib/authoring/naming.d.ts.map +1 -0
- package/lib/authoring/naming.js +104 -0
- package/lib/authoring/naming.js.map +1 -0
- package/lib/authoring/operation.d.ts +47 -0
- package/lib/authoring/operation.d.ts.map +1 -0
- package/lib/authoring/operation.js +86 -0
- package/lib/authoring/operation.js.map +1 -0
- package/lib/authoring/options.d.ts +9 -0
- package/lib/authoring/options.d.ts.map +1 -0
- package/lib/authoring/options.js +5 -0
- package/lib/authoring/options.js.map +1 -0
- package/lib/authoring/pagination.d.ts +19 -0
- package/lib/authoring/pagination.d.ts.map +1 -0
- package/lib/authoring/pagination.js +45 -0
- package/lib/authoring/pagination.js.map +1 -0
- package/lib/authoring/printer.d.ts +16 -0
- package/lib/authoring/printer.d.ts.map +1 -0
- package/lib/authoring/printer.js +36 -0
- package/lib/authoring/printer.js.map +1 -0
- package/lib/authoring/reference-page.d.ts +31 -0
- package/lib/authoring/reference-page.d.ts.map +1 -0
- package/lib/authoring/reference-page.js +160 -0
- package/lib/authoring/reference-page.js.map +1 -0
- package/lib/authoring/schema.d.ts +51 -0
- package/lib/authoring/schema.d.ts.map +1 -0
- package/lib/authoring/schema.js +190 -0
- package/lib/authoring/schema.js.map +1 -0
- package/lib/cli-contract.d.ts +126 -0
- package/lib/cli-contract.d.ts.map +1 -0
- package/lib/cli-contract.js +25 -0
- package/lib/cli-contract.js.map +1 -0
- package/lib/{emitters/wrapper-support.d.ts → contracts/typescript.d.ts} +13 -24
- package/lib/contracts/typescript.d.ts.map +1 -0
- package/lib/contracts/typescript.js +87 -0
- package/lib/contracts/typescript.js.map +1 -0
- package/lib/generate.d.ts +10 -10
- package/lib/generate.d.ts.map +1 -1
- package/lib/generate.js +25 -106
- package/lib/generate.js.map +1 -1
- package/lib/generators/cli/docs.d.ts +19 -0
- package/lib/generators/cli/docs.d.ts.map +1 -0
- package/lib/generators/cli/docs.js +187 -0
- package/lib/generators/cli/docs.js.map +1 -0
- package/lib/generators/cli/engine-source.d.ts +5 -0
- package/lib/generators/cli/engine-source.d.ts.map +1 -0
- package/lib/generators/cli/engine-source.js +12 -0
- package/lib/generators/cli/engine-source.js.map +1 -0
- package/lib/generators/cli/index.d.ts +18 -0
- package/lib/generators/cli/index.d.ts.map +1 -0
- package/lib/generators/cli/index.js +67 -0
- package/lib/generators/cli/index.js.map +1 -0
- package/lib/generators/cli/render.d.ts +39 -0
- package/lib/generators/cli/render.d.ts.map +1 -0
- package/lib/generators/cli/render.js +281 -0
- package/lib/generators/cli/render.js.map +1 -0
- package/lib/generators/cli/runtime/cli.d.ts +42 -0
- package/lib/generators/cli/runtime/cli.d.ts.map +1 -0
- package/lib/generators/cli/runtime/cli.js +582 -0
- package/lib/generators/cli/runtime/cli.js.map +1 -0
- package/lib/generators/compatibility.d.ts +10 -0
- package/lib/generators/compatibility.d.ts.map +1 -0
- package/lib/generators/compatibility.js +45 -0
- package/lib/generators/compatibility.js.map +1 -0
- package/lib/generators/go/client.d.ts +5 -0
- package/lib/generators/go/client.d.ts.map +1 -0
- package/lib/generators/go/client.js +34 -0
- package/lib/generators/go/client.js.map +1 -0
- package/lib/generators/go/descriptor.d.ts +6 -0
- package/lib/generators/go/descriptor.d.ts.map +1 -0
- package/lib/generators/go/descriptor.js +26 -0
- package/lib/generators/go/descriptor.js.map +1 -0
- package/lib/generators/go/index.d.ts +14 -0
- package/lib/generators/go/index.d.ts.map +1 -0
- package/lib/generators/go/index.js +240 -0
- package/lib/generators/go/index.js.map +1 -0
- package/lib/generators/go/models.d.ts +4 -0
- package/lib/generators/go/models.d.ts.map +1 -0
- package/lib/generators/go/models.js +125 -0
- package/lib/generators/go/models.js.map +1 -0
- package/lib/generators/go/naming.d.ts +15 -0
- package/lib/generators/go/naming.d.ts.map +1 -0
- package/lib/generators/go/naming.js +36 -0
- package/lib/generators/go/naming.js.map +1 -0
- package/lib/generators/go/operations.d.ts +16 -0
- package/lib/generators/go/operations.d.ts.map +1 -0
- package/lib/generators/go/operations.js +200 -0
- package/lib/generators/go/operations.js.map +1 -0
- package/lib/generators/go/pagination.d.ts +5 -0
- package/lib/generators/go/pagination.d.ts.map +1 -0
- package/lib/generators/go/pagination.js +93 -0
- package/lib/generators/go/pagination.js.map +1 -0
- package/lib/generators/go/types.d.ts +4 -0
- package/lib/generators/go/types.d.ts.map +1 -0
- package/lib/generators/go/types.js +48 -0
- package/lib/generators/go/types.js.map +1 -0
- package/lib/generators/index.d.ts +2 -3
- package/lib/generators/index.d.ts.map +1 -1
- package/lib/generators/index.js +31 -53
- package/lib/generators/index.js.map +1 -1
- package/lib/generators/meta.d.ts +13 -0
- package/lib/generators/meta.d.ts.map +1 -0
- package/lib/generators/meta.js +157 -0
- package/lib/generators/meta.js.map +1 -0
- package/lib/{emitters → generators/mock}/faker.d.ts +4 -5
- package/lib/generators/mock/faker.d.ts.map +1 -0
- package/lib/generators/mock/faker.js +180 -0
- package/lib/generators/mock/faker.js.map +1 -0
- package/lib/generators/{mock.d.ts → mock/index.d.ts} +2 -2
- package/lib/generators/mock/index.d.ts.map +1 -0
- package/lib/generators/{mock.js → mock/index.js} +8 -8
- package/lib/generators/mock/index.js.map +1 -0
- package/lib/{emitters/mock.d.ts → generators/mock/render.d.ts} +2 -3
- package/lib/generators/mock/render.d.ts.map +1 -0
- package/lib/generators/mock/render.js +228 -0
- package/lib/generators/mock/render.js.map +1 -0
- package/lib/{emitters → generators/mock}/sample.d.ts +1 -2
- package/lib/generators/mock/sample.d.ts.map +1 -0
- package/lib/generators/mock/sample.js.map +1 -0
- package/lib/generators/mock/values.d.ts +33 -0
- package/lib/generators/mock/values.d.ts.map +1 -0
- package/lib/generators/mock/values.js +46 -0
- package/lib/generators/mock/values.js.map +1 -0
- package/lib/generators/options.d.ts +7 -0
- package/lib/generators/options.d.ts.map +1 -0
- package/lib/generators/options.js +74 -0
- package/lib/generators/options.js.map +1 -0
- package/lib/generators/php/client.d.ts +5 -0
- package/lib/generators/php/client.d.ts.map +1 -0
- package/lib/generators/php/client.js +38 -0
- package/lib/generators/php/client.js.map +1 -0
- package/lib/generators/php/descriptor.d.ts +7 -0
- package/lib/generators/php/descriptor.d.ts.map +1 -0
- package/lib/generators/php/descriptor.js +42 -0
- package/lib/generators/php/descriptor.js.map +1 -0
- package/lib/generators/php/index.d.ts +14 -0
- package/lib/generators/php/index.d.ts.map +1 -0
- package/lib/generators/php/index.js +166 -0
- package/lib/generators/php/index.js.map +1 -0
- package/lib/generators/php/models.d.ts +8 -0
- package/lib/generators/php/models.d.ts.map +1 -0
- package/lib/generators/php/models.js +200 -0
- package/lib/generators/php/models.js.map +1 -0
- package/lib/generators/php/naming.d.ts +16 -0
- package/lib/generators/php/naming.d.ts.map +1 -0
- package/lib/generators/php/naming.js +31 -0
- package/lib/generators/php/naming.js.map +1 -0
- package/lib/generators/php/operations.d.ts +21 -0
- package/lib/generators/php/operations.d.ts.map +1 -0
- package/lib/generators/php/operations.js +156 -0
- package/lib/generators/php/operations.js.map +1 -0
- package/lib/generators/php/pagination.d.ts +5 -0
- package/lib/generators/php/pagination.d.ts.map +1 -0
- package/lib/generators/php/pagination.js +68 -0
- package/lib/generators/php/pagination.js.map +1 -0
- package/lib/generators/php/types.d.ts +27 -0
- package/lib/generators/php/types.d.ts.map +1 -0
- package/lib/generators/php/types.js +128 -0
- package/lib/generators/php/types.js.map +1 -0
- package/lib/generators/python/client.d.ts +6 -0
- package/lib/generators/python/client.d.ts.map +1 -0
- package/lib/generators/python/client.js +80 -0
- package/lib/generators/python/client.js.map +1 -0
- package/lib/generators/python/descriptor.d.ts +9 -0
- package/lib/generators/python/descriptor.d.ts.map +1 -0
- package/lib/generators/python/descriptor.js +38 -0
- package/lib/generators/python/descriptor.js.map +1 -0
- package/lib/generators/python/index.d.ts +15 -0
- package/lib/generators/python/index.d.ts.map +1 -0
- package/lib/generators/python/index.js +197 -0
- package/lib/generators/python/index.js.map +1 -0
- package/lib/generators/python/models.d.ts +31 -0
- package/lib/generators/python/models.d.ts.map +1 -0
- package/lib/generators/python/models.js +203 -0
- package/lib/generators/python/models.js.map +1 -0
- package/lib/generators/python/naming.d.ts +22 -0
- package/lib/generators/python/naming.d.ts.map +1 -0
- package/lib/generators/python/naming.js +28 -0
- package/lib/generators/python/naming.js.map +1 -0
- package/lib/generators/python/operations.d.ts +4 -0
- package/lib/generators/python/operations.d.ts.map +1 -0
- package/lib/generators/python/operations.js +108 -0
- package/lib/generators/python/operations.js.map +1 -0
- package/lib/generators/python/pagination.d.ts +5 -0
- package/lib/generators/python/pagination.d.ts.map +1 -0
- package/lib/generators/python/pagination.js +95 -0
- package/lib/generators/python/pagination.js.map +1 -0
- package/lib/generators/python/types.d.ts +4 -0
- package/lib/generators/python/types.d.ts.map +1 -0
- package/lib/generators/python/types.js +45 -0
- package/lib/generators/python/types.js.map +1 -0
- package/lib/generators/resolve.d.ts.map +1 -1
- package/lib/generators/resolve.js +92 -13
- package/lib/generators/resolve.js.map +1 -1
- package/lib/generators/{swr.d.ts → swr/index.d.ts} +3 -3
- package/lib/generators/swr/index.d.ts.map +1 -0
- package/lib/generators/{swr.js → swr/index.js} +7 -10
- package/lib/generators/swr/index.js.map +1 -0
- package/lib/{emitters/swr.d.ts → generators/swr/render.d.ts} +2 -4
- package/lib/generators/swr/render.d.ts.map +1 -0
- package/lib/generators/swr/render.js +57 -0
- package/lib/generators/swr/render.js.map +1 -0
- package/lib/generators/{tanstack-query.d.ts → tanstack-query/index.d.ts} +3 -3
- package/lib/generators/tanstack-query/index.d.ts.map +1 -0
- package/lib/generators/{tanstack-query.js → tanstack-query/index.js} +11 -10
- package/lib/generators/tanstack-query/index.js.map +1 -0
- package/lib/{emitters/tanstack-query.d.ts → generators/tanstack-query/render.d.ts} +6 -5
- package/lib/generators/tanstack-query/render.d.ts.map +1 -0
- package/lib/{emitters/tanstack-query.js → generators/tanstack-query/render.js} +33 -21
- package/lib/generators/tanstack-query/render.js.map +1 -0
- package/lib/generators/{transformers.d.ts → transformers/index.d.ts} +2 -2
- package/lib/generators/transformers/index.d.ts.map +1 -0
- package/lib/generators/{transformers.js → transformers/index.js} +11 -8
- package/lib/generators/transformers/index.js.map +1 -0
- package/lib/{emitters/transformers.d.ts → generators/transformers/render.d.ts} +2 -2
- package/lib/generators/transformers/render.d.ts.map +1 -0
- package/lib/{emitters/transformers.js → generators/transformers/render.js} +125 -165
- package/lib/generators/transformers/render.js.map +1 -0
- package/lib/generators/types.d.ts +190 -12
- package/lib/generators/types.d.ts.map +1 -1
- package/lib/generators/typescript/banner.d.ts +12 -0
- package/lib/generators/typescript/banner.d.ts.map +1 -0
- package/lib/{emitters/emit-options.js → generators/typescript/banner.js} +2 -3
- package/lib/generators/typescript/banner.js.map +1 -0
- package/lib/generators/typescript/client.d.ts +25 -0
- package/lib/generators/typescript/client.d.ts.map +1 -0
- package/lib/generators/typescript/client.js +207 -0
- package/lib/generators/typescript/client.js.map +1 -0
- package/lib/generators/typescript/descriptor.d.ts +11 -0
- package/lib/generators/typescript/descriptor.d.ts.map +1 -0
- package/lib/generators/typescript/descriptor.js +97 -0
- package/lib/generators/typescript/descriptor.js.map +1 -0
- package/lib/generators/typescript/index.d.ts +20 -0
- package/lib/generators/typescript/index.d.ts.map +1 -0
- package/lib/generators/typescript/index.js +80 -0
- package/lib/generators/typescript/index.js.map +1 -0
- package/lib/generators/typescript/inline-runtime.d.ts +21 -0
- package/lib/generators/typescript/inline-runtime.d.ts.map +1 -0
- package/lib/generators/typescript/inline-runtime.js +114 -0
- package/lib/generators/typescript/inline-runtime.js.map +1 -0
- package/lib/generators/typescript/operation-signature.d.ts +23 -0
- package/lib/generators/typescript/operation-signature.d.ts.map +1 -0
- package/lib/generators/typescript/operation-signature.js +41 -0
- package/lib/generators/typescript/operation-signature.js.map +1 -0
- package/lib/generators/typescript/operation-types.d.ts +9 -0
- package/lib/generators/typescript/operation-types.d.ts.map +1 -0
- package/lib/generators/typescript/operation-types.js +11 -0
- package/lib/generators/typescript/operation-types.js.map +1 -0
- package/lib/generators/typescript/operations.d.ts +60 -0
- package/lib/generators/typescript/operations.d.ts.map +1 -0
- package/lib/generators/typescript/operations.js +386 -0
- package/lib/generators/typescript/operations.js.map +1 -0
- package/lib/generators/typescript/response-headers.d.ts +12 -0
- package/lib/generators/typescript/response-headers.d.ts.map +1 -0
- package/lib/generators/typescript/response-headers.js +40 -0
- package/lib/generators/typescript/response-headers.js.map +1 -0
- package/lib/generators/typescript/runtime/auth.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/auth.js.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/create-client.d.ts +7 -2
- package/lib/generators/typescript/runtime/create-client.d.ts.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/create-client.js +84 -30
- package/lib/generators/typescript/runtime/create-client.js.map +1 -0
- package/lib/generators/typescript/runtime/errors.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/errors.js.map +1 -0
- package/lib/generators/typescript/runtime/index.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/index.js.map +1 -0
- package/lib/generators/typescript/runtime/multipart.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/multipart.js.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/paginate.d.ts +2 -2
- package/lib/generators/typescript/runtime/paginate.d.ts.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/paginate.js +12 -12
- package/lib/generators/typescript/runtime/paginate.js.map +1 -0
- package/lib/generators/typescript/runtime/parse.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/parse.js.map +1 -0
- package/lib/generators/typescript/runtime/retry.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/retry.js.map +1 -0
- package/lib/generators/typescript/runtime/send.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/send.js.map +1 -0
- package/lib/generators/typescript/runtime/setup.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/setup.js.map +1 -0
- package/lib/generators/typescript/runtime/sse.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/sse.js.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/types.d.ts +17 -95
- package/lib/generators/typescript/runtime/types.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/types.js.map +1 -0
- package/lib/generators/typescript/runtime/url.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/url.js.map +1 -0
- package/lib/generators/typescript/type-guards.d.ts +4 -0
- package/lib/generators/typescript/type-guards.d.ts.map +1 -0
- package/lib/{emitters → generators/typescript}/type-guards.js +18 -52
- package/lib/generators/typescript/type-guards.js.map +1 -0
- package/lib/generators/typescript/types.d.ts +8 -0
- package/lib/generators/typescript/types.d.ts.map +1 -0
- package/lib/generators/typescript/types.js +132 -0
- package/lib/generators/typescript/types.js.map +1 -0
- package/lib/generators/{zod.d.ts → zod/index.d.ts} +2 -2
- package/lib/generators/zod/index.d.ts.map +1 -0
- package/lib/generators/{zod.js → zod/index.js} +5 -7
- package/lib/generators/zod/index.js.map +1 -0
- package/lib/{emitters/zod.d.ts → generators/zod/schemas.d.ts} +4 -5
- package/lib/generators/zod/schemas.d.ts.map +1 -0
- package/lib/{emitters/zod.js → generators/zod/schemas.js} +118 -154
- package/lib/generators/zod/schemas.js.map +1 -0
- package/lib/index.d.ts +8 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +18 -11
- package/lib/index.js.map +1 -1
- package/lib/intermediate-representation/build.d.ts +8 -1
- package/lib/intermediate-representation/build.d.ts.map +1 -1
- package/lib/intermediate-representation/build.js +59 -4
- package/lib/intermediate-representation/build.js.map +1 -1
- package/lib/intermediate-representation/model.d.ts +26 -1
- package/lib/intermediate-representation/model.d.ts.map +1 -1
- package/lib/intermediate-representation/model.js.map +1 -1
- package/lib/intermediate-representation/sanitize-identifiers.d.ts +1 -10
- package/lib/intermediate-representation/sanitize-identifiers.d.ts.map +1 -1
- package/lib/intermediate-representation/sanitize-identifiers.js +37 -38
- package/lib/intermediate-representation/sanitize-identifiers.js.map +1 -1
- package/lib/{emitters/pagination.d.ts → pagination.d.ts} +39 -15
- package/lib/pagination.d.ts.map +1 -0
- package/lib/{emitters/pagination.js → pagination.js} +13 -52
- package/lib/pagination.js.map +1 -0
- package/lib/pipeline.d.ts +17 -0
- package/lib/pipeline.d.ts.map +1 -0
- package/lib/pipeline.js +244 -0
- package/lib/pipeline.js.map +1 -0
- package/lib/plugin.d.ts +4 -4
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +12 -9
- package/lib/plugin.js.map +1 -1
- package/lib/printers/go.d.ts +33 -0
- package/lib/printers/go.d.ts.map +1 -0
- package/lib/printers/go.js +209 -0
- package/lib/printers/go.js.map +1 -0
- package/lib/printers/index.d.ts +5 -0
- package/lib/printers/index.d.ts.map +1 -0
- package/lib/printers/index.js +9 -0
- package/lib/printers/index.js.map +1 -0
- package/lib/printers/php.d.ts +21 -0
- package/lib/printers/php.d.ts.map +1 -0
- package/lib/printers/php.js +68 -0
- package/lib/printers/php.js.map +1 -0
- package/lib/printers/python.d.ts +31 -0
- package/lib/printers/python.d.ts.map +1 -0
- package/lib/printers/python.js +101 -0
- package/lib/printers/python.js.map +1 -0
- package/lib/printers/typescript.d.ts +82 -0
- package/lib/printers/typescript.d.ts.map +1 -0
- package/lib/printers/typescript.js +268 -0
- package/lib/printers/typescript.js.map +1 -0
- package/lib/reserved-names.d.ts +8 -0
- package/lib/reserved-names.d.ts.map +1 -0
- package/lib/{emitters/reserved-names.js → reserved-names.js} +16 -27
- package/lib/reserved-names.js.map +1 -0
- package/lib/runtime-contract.d.ts +62 -2
- package/lib/runtime-contract.d.ts.map +1 -1
- package/lib/runtime-contract.js +3 -3
- package/lib/runtime-contract.js.map +1 -1
- package/lib/runtime-sources/go.d.ts +2 -0
- package/lib/runtime-sources/go.d.ts.map +1 -0
- package/lib/runtime-sources/go.js +3 -0
- package/lib/runtime-sources/go.js.map +1 -0
- package/lib/runtime-sources/php.d.ts +2 -0
- package/lib/runtime-sources/php.d.ts.map +1 -0
- package/lib/runtime-sources/php.js +3 -0
- package/lib/runtime-sources/php.js.map +1 -0
- package/lib/runtime-sources/python.d.ts +12 -0
- package/lib/runtime-sources/python.d.ts.map +1 -0
- package/lib/runtime-sources/python.js +12 -0
- package/lib/runtime-sources/python.js.map +1 -0
- package/lib/runtime-sources/typescript.d.ts +36 -0
- package/lib/runtime-sources/typescript.d.ts.map +1 -0
- package/lib/runtime-sources/typescript.js +152 -0
- package/lib/runtime-sources/typescript.js.map +1 -0
- package/lib/runtime-sources.d.ts +5 -0
- package/lib/runtime-sources.d.ts.map +1 -0
- package/lib/runtime-sources.js +10 -0
- package/lib/runtime-sources.js.map +1 -0
- package/lib/setup-bake.d.ts.map +1 -0
- package/lib/{emitters/setup-bake.js → setup-bake.js} +11 -2
- package/lib/setup-bake.js.map +1 -0
- package/lib/types.d.ts +38 -8
- package/lib/types.d.ts.map +1 -1
- package/package.json +40 -4
- package/lib/emitters/auth.d.ts +0 -14
- package/lib/emitters/auth.d.ts.map +0 -1
- package/lib/emitters/auth.js +0 -30
- package/lib/emitters/auth.js.map +0 -1
- package/lib/emitters/client-assembly.d.ts +0 -15
- package/lib/emitters/client-assembly.d.ts.map +0 -1
- package/lib/emitters/client-assembly.js +0 -358
- package/lib/emitters/client-assembly.js.map +0 -1
- package/lib/emitters/descriptor.d.ts +0 -22
- package/lib/emitters/descriptor.d.ts.map +0 -1
- package/lib/emitters/descriptor.js +0 -199
- package/lib/emitters/descriptor.js.map +0 -1
- package/lib/emitters/emit-options.d.ts +0 -67
- package/lib/emitters/emit-options.d.ts.map +0 -1
- package/lib/emitters/emit-options.js.map +0 -1
- package/lib/emitters/faker.d.ts.map +0 -1
- package/lib/emitters/faker.js +0 -221
- package/lib/emitters/faker.js.map +0 -1
- package/lib/emitters/identifier.d.ts +0 -34
- package/lib/emitters/identifier.d.ts.map +0 -1
- package/lib/emitters/identifier.js +0 -104
- package/lib/emitters/identifier.js.map +0 -1
- package/lib/emitters/inline-runtime.d.ts +0 -11
- package/lib/emitters/inline-runtime.d.ts.map +0 -1
- package/lib/emitters/inline-runtime.js +0 -99
- package/lib/emitters/inline-runtime.js.map +0 -1
- package/lib/emitters/jsdoc.d.ts +0 -9
- package/lib/emitters/jsdoc.d.ts.map +0 -1
- package/lib/emitters/jsdoc.js +0 -83
- package/lib/emitters/jsdoc.js.map +0 -1
- package/lib/emitters/mock.d.ts.map +0 -1
- package/lib/emitters/mock.js +0 -265
- package/lib/emitters/mock.js.map +0 -1
- package/lib/emitters/operation-aliases.d.ts +0 -27
- package/lib/emitters/operation-aliases.d.ts.map +0 -1
- package/lib/emitters/operation-aliases.js +0 -150
- package/lib/emitters/operation-aliases.js.map +0 -1
- package/lib/emitters/operation-signature.d.ts +0 -24
- package/lib/emitters/operation-signature.d.ts.map +0 -1
- package/lib/emitters/operation-signature.js +0 -42
- package/lib/emitters/operation-signature.js.map +0 -1
- package/lib/emitters/operation-types.d.ts +0 -32
- package/lib/emitters/operation-types.d.ts.map +0 -1
- package/lib/emitters/operation-types.js +0 -117
- package/lib/emitters/operation-types.js.map +0 -1
- package/lib/emitters/operations.d.ts +0 -41
- package/lib/emitters/operations.d.ts.map +0 -1
- package/lib/emitters/operations.js +0 -35
- package/lib/emitters/operations.js.map +0 -1
- package/lib/emitters/pagination.d.ts.map +0 -1
- package/lib/emitters/pagination.js.map +0 -1
- package/lib/emitters/reserved-names.d.ts +0 -5
- package/lib/emitters/reserved-names.d.ts.map +0 -1
- package/lib/emitters/reserved-names.js.map +0 -1
- package/lib/emitters/response-headers.d.ts +0 -14
- package/lib/emitters/response-headers.d.ts.map +0 -1
- package/lib/emitters/response-headers.js +0 -91
- package/lib/emitters/response-headers.js.map +0 -1
- package/lib/emitters/runtime-sources.d.ts +0 -16
- package/lib/emitters/runtime-sources.d.ts.map +0 -1
- package/lib/emitters/runtime-sources.js +0 -16
- package/lib/emitters/runtime-sources.js.map +0 -1
- package/lib/emitters/sample.d.ts.map +0 -1
- package/lib/emitters/sample.js.map +0 -1
- package/lib/emitters/setup-bake.d.ts.map +0 -1
- package/lib/emitters/setup-bake.js.map +0 -1
- package/lib/emitters/sse.d.ts +0 -10
- package/lib/emitters/sse.d.ts.map +0 -1
- package/lib/emitters/sse.js +0 -46
- package/lib/emitters/sse.js.map +0 -1
- package/lib/emitters/support.d.ts +0 -18
- package/lib/emitters/support.d.ts.map +0 -1
- package/lib/emitters/support.js +0 -37
- package/lib/emitters/support.js.map +0 -1
- package/lib/emitters/swr.d.ts.map +0 -1
- package/lib/emitters/swr.js +0 -88
- package/lib/emitters/swr.js.map +0 -1
- package/lib/emitters/tanstack-query.d.ts.map +0 -1
- package/lib/emitters/tanstack-query.js.map +0 -1
- package/lib/emitters/transformers.d.ts.map +0 -1
- package/lib/emitters/transformers.js.map +0 -1
- package/lib/emitters/ts.d.ts +0 -42
- package/lib/emitters/ts.d.ts.map +0 -1
- package/lib/emitters/ts.js +0 -116
- package/lib/emitters/ts.js.map +0 -1
- package/lib/emitters/type-guards.d.ts +0 -21
- package/lib/emitters/type-guards.d.ts.map +0 -1
- package/lib/emitters/type-guards.js.map +0 -1
- package/lib/emitters/types.d.ts +0 -15
- package/lib/emitters/types.d.ts.map +0 -1
- package/lib/emitters/types.js +0 -125
- package/lib/emitters/types.js.map +0 -1
- package/lib/emitters/wrapper-support.d.ts.map +0 -1
- package/lib/emitters/wrapper-support.js +0 -127
- package/lib/emitters/wrapper-support.js.map +0 -1
- package/lib/emitters/zod.d.ts.map +0 -1
- package/lib/emitters/zod.js.map +0 -1
- package/lib/generators/anchor.d.ts +0 -9
- package/lib/generators/anchor.d.ts.map +0 -1
- package/lib/generators/anchor.js +0 -10
- package/lib/generators/anchor.js.map +0 -1
- package/lib/generators/mock.d.ts.map +0 -1
- package/lib/generators/mock.js.map +0 -1
- package/lib/generators/sdk.d.ts +0 -12
- package/lib/generators/sdk.d.ts.map +0 -1
- package/lib/generators/sdk.js +0 -26
- package/lib/generators/sdk.js.map +0 -1
- package/lib/generators/swr.d.ts.map +0 -1
- package/lib/generators/swr.js.map +0 -1
- package/lib/generators/tanstack-query.d.ts.map +0 -1
- package/lib/generators/tanstack-query.js.map +0 -1
- package/lib/generators/transformers.d.ts.map +0 -1
- package/lib/generators/transformers.js.map +0 -1
- package/lib/generators/zod.d.ts.map +0 -1
- package/lib/generators/zod.js.map +0 -1
- package/lib/runtime/auth.d.ts.map +0 -1
- package/lib/runtime/auth.js.map +0 -1
- package/lib/runtime/create-client.d.ts.map +0 -1
- package/lib/runtime/create-client.js.map +0 -1
- package/lib/runtime/errors.d.ts.map +0 -1
- package/lib/runtime/errors.js.map +0 -1
- package/lib/runtime/index.d.ts.map +0 -1
- package/lib/runtime/index.js.map +0 -1
- package/lib/runtime/multipart.d.ts.map +0 -1
- package/lib/runtime/multipart.js.map +0 -1
- package/lib/runtime/paginate.d.ts.map +0 -1
- package/lib/runtime/paginate.js.map +0 -1
- package/lib/runtime/parse.d.ts.map +0 -1
- package/lib/runtime/parse.js.map +0 -1
- package/lib/runtime/retry.d.ts.map +0 -1
- package/lib/runtime/retry.js.map +0 -1
- package/lib/runtime/send.d.ts.map +0 -1
- package/lib/runtime/send.js.map +0 -1
- package/lib/runtime/setup.d.ts.map +0 -1
- package/lib/runtime/setup.js.map +0 -1
- package/lib/runtime/sse.d.ts.map +0 -1
- package/lib/runtime/sse.js.map +0 -1
- package/lib/runtime/types.d.ts.map +0 -1
- package/lib/runtime/types.js.map +0 -1
- package/lib/runtime/url.d.ts.map +0 -1
- package/lib/runtime/url.js.map +0 -1
- /package/lib/{emitters → generators/mock}/sample.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/auth.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/auth.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/errors.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/errors.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/index.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/index.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/multipart.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/multipart.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/parse.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/parse.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/retry.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/retry.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/send.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/send.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/setup.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/setup.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/sse.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/sse.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/types.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/url.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/url.js +0 -0
- /package/lib/{emitters/setup-bake.d.ts → setup-bake.d.ts} +0 -0
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { ApiModel } from '../intermediate-representation/model.js';
|
|
2
|
-
import type { ArgsStyle } from './operations.js';
|
|
3
|
-
import type { PaginationConfig } from './pagination.js';
|
|
4
|
-
import type { DateType } from './types.js';
|
|
5
|
-
export type { ArgsStyle } from './operations.js';
|
|
6
|
-
/** The generated-by banner prepended to every emitted module. */
|
|
7
|
-
export declare const HEADER = "// Generated by @redocly/client-generator \u2014 do not edit by hand.\n// Source: OpenAPI description. Re-run `redocly generate-client` to update.";
|
|
8
|
-
export type EmitOptions = {
|
|
9
|
-
/**
|
|
10
|
-
* Override the server URL baked into the generated client config. When omitted,
|
|
11
|
-
* the value is derived from `servers[0].url` in the source OpenAPI description.
|
|
12
|
-
*/
|
|
13
|
-
serverUrl?: string;
|
|
14
|
-
/**
|
|
15
|
-
* How operation inputs are passed to each call. Defaults to `'flat'`;
|
|
16
|
-
* `'grouped'` bundles inputs into a single `args` object.
|
|
17
|
-
*/
|
|
18
|
-
argsStyle?: ArgsStyle;
|
|
19
|
-
/** Error-handling shape of the generated client. Defaults to `'throw'`. */
|
|
20
|
-
errorMode?: 'throw' | 'result';
|
|
21
|
-
/**
|
|
22
|
-
* How `format: date-time`/`date` string fields are typed. `'string'` (default)
|
|
23
|
-
* keeps the ISO wire shape; `'Date'` emits a `Date` reference. Opt-in — pair with
|
|
24
|
-
* the `transformers` generator so the runtime value matches the type.
|
|
25
|
-
*/
|
|
26
|
-
dateType?: DateType;
|
|
27
|
-
/**
|
|
28
|
-
* How the `mock` generator produces data. `'static'` (default) inlines deterministic
|
|
29
|
-
* literals (zero-dep, contract-faithful); `'faker'` emits `@faker-js/faker` calls for
|
|
30
|
-
* realistic data — reproducible when `mockSeed` is set. Only the mock module is affected.
|
|
31
|
-
*/
|
|
32
|
-
mockData?: 'static' | 'faker';
|
|
33
|
-
/** Seed for faker-mode mocks: emits a top-level `faker.seed(<n>)` so runs reproduce. */
|
|
34
|
-
mockSeed?: number;
|
|
35
|
-
/** Leading element for every tanstack-query key — namespaces the cache when several
|
|
36
|
-
* generated APIs share one QueryClient (operationIds may collide across APIs). */
|
|
37
|
-
queryKeyPrefix?: string;
|
|
38
|
-
/**
|
|
39
|
-
* A pre-baked publisher setup block (from `bakeSetup`) merged into the client's config
|
|
40
|
-
* via `mergeSetup`. Absent when no `--setup` is given.
|
|
41
|
-
*/
|
|
42
|
-
setup?: string;
|
|
43
|
-
/** Runtime distribution: 'inline' (default, self-contained) | 'package' (imports @redocly/client-generator). */
|
|
44
|
-
runtime?: 'inline' | 'package';
|
|
45
|
-
/**
|
|
46
|
-
* Extension used in generated relative import specifiers (the split entry's schemas
|
|
47
|
-
* re-export and each satellite's sdk import). `'js'` (default) is the tsc/bundler
|
|
48
|
-
* convention; `'ts'` targets runtimes that resolve specifiers literally, like Node's
|
|
49
|
-
* built-in type stripping (`node client.ts`).
|
|
50
|
-
*/
|
|
51
|
-
importExt?: 'js' | 'ts';
|
|
52
|
-
/**
|
|
53
|
-
* Auto-pagination rules (a convention rule + per-operation overrides + `exclude`),
|
|
54
|
-
* resolved together with each operation's `x-redocly-pagination` extension. Verified
|
|
55
|
-
* statically: an explicit rule that doesn't fit its operation fails generation.
|
|
56
|
-
*/
|
|
57
|
-
pagination?: PaginationConfig;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Assemble file content from a header banner and a printed body: the leading
|
|
61
|
-
* `// Generated by …` comment and the `/** title */` block are structural
|
|
62
|
-
* banners (not part of the printed AST), prepended with blank-line separation.
|
|
63
|
-
* Trailing newline mirrors a hand-authored file.
|
|
64
|
-
*/
|
|
65
|
-
export declare function banner(sections: string[]): string;
|
|
66
|
-
export declare function renderTitleComment(model: ApiModel): string;
|
|
67
|
-
//# sourceMappingURL=emit-options.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"emit-options.d.ts","sourceRoot":"","sources":["../../src/emitters/emit-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,iEAAiE;AACjE,eAAO,MAAM,MAAM,uJAC2D,CAAC;AAE/E,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;sFACkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gHAAgH;IAChH,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAa1D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"emit-options.js","sourceRoot":"","sources":["../../src/emitters/emit-options.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOtC,iEAAiE;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG;8EACwD,CAAC;AAsD/E;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,QAAkB;IACvC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAe;IAChD,8EAA8E;IAC9E,gFAAgF;IAChF,8EAA8E;IAC9E,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,WAAW,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;IACjF,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YAC9D,kFAAkF;YAClF,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"faker.d.ts","sourceRoot":"","sources":["../../src/emitters/faker.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,gBAAgB,EAGhB,WAAW,EACZ,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAiC,EAAE,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C;;;kFAGkF;AAClF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAO,GACjC,EAAE,CAAC,UAAU,CAMf"}
|
package/lib/emitters/faker.js
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
// Builds the body expression for a faker-mode mock factory: a tree of
|
|
2
|
-
// `@faker-js/faker` call expressions that produce realistic — and, with a seed,
|
|
3
|
-
// reproducible — data. Structurally mirrors `emitters/sample.ts`'s `walk` (same
|
|
4
|
-
// recursion + same visited-set cycle guard), but returns a `ts.Expression` of
|
|
5
|
-
// faker calls instead of a static value. Nested refs are INLINED under the same
|
|
6
|
-
// cycle guard (never `create<Ref>()` calls), so a cyclic schema terminates with
|
|
7
|
-
// `null` at the cycle instead of recursing forever at runtime — exactly like the
|
|
8
|
-
// static path. The factory signatures are identical to the static mode's, so a
|
|
9
|
-
// consumer can flip `mockData` without touching call sites; `@faker-js/faker`
|
|
10
|
-
// becomes their dev-dep while the real client stays dependency-free.
|
|
11
|
-
import { safeIdent } from './identifier.js';
|
|
12
|
-
import { splitIntersection } from './sample.js';
|
|
13
|
-
import { constArray, literalExpression, ts } from './ts.js';
|
|
14
|
-
const { factory } = ts;
|
|
15
|
-
/** The faker-call expression for an IR schema. Refs resolve against `schemas`;
|
|
16
|
-
* recursion is cut with a visited-set (`null` at the cycle). `dateType` mirrors
|
|
17
|
-
* the sdk's `--date-type`: under `'Date'`, date fields stay `faker.date.recent()`
|
|
18
|
-
* (a `Date`); otherwise they are stringified to match the `string`-typed sdk. */
|
|
19
|
-
export function fakerExpression(schema, schemas, opts = {}) {
|
|
20
|
-
const byName = new Map(schemas.map((s) => [s.name, s.schema]));
|
|
21
|
-
const expr = walk(schema, byName, new Set(), opts.dateType ?? 'string');
|
|
22
|
-
// A `CYCLE` that reaches the root has no container to absorb it (e.g. a
|
|
23
|
-
// self-referential union); fall back to null.
|
|
24
|
-
return expr === CYCLE ? factory.createNull() : expr;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Sentinel returned by `walk` when a `$ref` re-enters a name already on the stack.
|
|
28
|
-
* Containers turn it into the type-correct empty value for their position — an array
|
|
29
|
-
* to `[]`, a record to `{}`, an optional property to omission — mirroring `emitters/sample.ts`
|
|
30
|
-
* so a recursive schema yields a faker tree that still satisfies its non-nullable type.
|
|
31
|
-
* Only a required, non-container self-reference (an uninhabitable schema) degrades to null.
|
|
32
|
-
*/
|
|
33
|
-
const CYCLE = Symbol('cycle');
|
|
34
|
-
function walk(schema, byName, visiting, dateType) {
|
|
35
|
-
switch (schema.kind) {
|
|
36
|
-
case 'scalar':
|
|
37
|
-
return scalarExpr(schema.scalar, schema.metadata, dateType);
|
|
38
|
-
case 'array': {
|
|
39
|
-
// A cyclic item type collapses the array to `[]` — itself a valid `T[]`.
|
|
40
|
-
const item = walk(schema.items, byName, visiting, dateType);
|
|
41
|
-
return item === CYCLE ? factory.createArrayLiteralExpression([], false) : multiple(item);
|
|
42
|
-
}
|
|
43
|
-
case 'object':
|
|
44
|
-
return objectExpr(schema.properties.flatMap((p) => {
|
|
45
|
-
const value = walk(p.schema, byName, visiting, dateType);
|
|
46
|
-
// A cyclic optional property is omitted; a cyclic required property is
|
|
47
|
-
// uninhabitable, so null is the only stand-in.
|
|
48
|
-
if (value === CYCLE)
|
|
49
|
-
return p.required ? [[p.name, factory.createNull()]] : [];
|
|
50
|
-
return [[p.name, value]];
|
|
51
|
-
}));
|
|
52
|
-
case 'record': {
|
|
53
|
-
const value = walk(schema.value, byName, visiting, dateType);
|
|
54
|
-
return value === CYCLE
|
|
55
|
-
? factory.createObjectLiteralExpression([], false)
|
|
56
|
-
: objectExpr([['key', value]]);
|
|
57
|
-
}
|
|
58
|
-
case 'enum':
|
|
59
|
-
return call('faker.helpers.arrayElement', [constArray(schema.values.map(literalExpression))]);
|
|
60
|
-
case 'literal':
|
|
61
|
-
return literalExpression(schema.value);
|
|
62
|
-
case 'union': {
|
|
63
|
-
// First non-cyclic member; if every member cycles, propagate `CYCLE`.
|
|
64
|
-
for (const member of schema.members) {
|
|
65
|
-
const value = walk(member, byName, visiting, dateType);
|
|
66
|
-
if (value !== CYCLE)
|
|
67
|
-
return value;
|
|
68
|
-
}
|
|
69
|
-
return schema.members.length > 0 ? CYCLE : factory.createNull();
|
|
70
|
-
}
|
|
71
|
-
case 'intersection': {
|
|
72
|
-
// Mirror the static sampler: object members merge into one synthetic object whose
|
|
73
|
-
// property conflicts resolve by SPECIFICITY (see `splitIntersection`); `unknown`
|
|
74
|
-
// members are constraint-only and dropped; with no object member, the first
|
|
75
|
-
// member's expression IS the value (a scalar-narrowing intersection).
|
|
76
|
-
const { merged, rest } = splitIntersection(schema.members, byName);
|
|
77
|
-
const parts = rest
|
|
78
|
-
.map((member) => walk(member, byName, visiting, dateType))
|
|
79
|
-
.filter((part) => part !== CYCLE);
|
|
80
|
-
if (merged) {
|
|
81
|
-
const value = walk(merged, byName, visiting, dateType);
|
|
82
|
-
const own = value !== CYCLE && ts.isObjectLiteralExpression(value) ? assignments(value) : [];
|
|
83
|
-
const folded = parts.filter(ts.isObjectLiteralExpression).flatMap(assignments);
|
|
84
|
-
return factory.createObjectLiteralExpression([...own, ...folded], true);
|
|
85
|
-
}
|
|
86
|
-
const objects = parts.filter(ts.isObjectLiteralExpression);
|
|
87
|
-
if (objects.length > 0) {
|
|
88
|
-
return factory.createObjectLiteralExpression(objects.flatMap(assignments), true);
|
|
89
|
-
}
|
|
90
|
-
return parts[0] ?? factory.createObjectLiteralExpression([], true);
|
|
91
|
-
}
|
|
92
|
-
case 'omit':
|
|
93
|
-
return omitExpr(schema.base, schema.keys, byName, visiting, dateType);
|
|
94
|
-
case 'ref': {
|
|
95
|
-
if (visiting.has(schema.name))
|
|
96
|
-
return CYCLE;
|
|
97
|
-
const target = byName.get(schema.name);
|
|
98
|
-
if (!target)
|
|
99
|
-
return factory.createNull();
|
|
100
|
-
visiting.add(schema.name);
|
|
101
|
-
const result = walk(target, byName, visiting, dateType);
|
|
102
|
-
visiting.delete(schema.name);
|
|
103
|
-
return result;
|
|
104
|
-
}
|
|
105
|
-
case 'null':
|
|
106
|
-
case 'unknown':
|
|
107
|
-
return factory.createNull();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/** The faker call for a scalar, keyed by kind then `format`. A binary field has no
|
|
111
|
-
* faker generator (its type is `Blob`), so it emits `new Blob([])` — the same
|
|
112
|
-
* type-demanded expression the static path uses, taking precedence over any example. */
|
|
113
|
-
function scalarExpr(scalar, meta, dateType) {
|
|
114
|
-
if (meta?.format === 'binary')
|
|
115
|
-
return newBlob();
|
|
116
|
-
if (scalar === 'boolean')
|
|
117
|
-
return call('faker.datatype.boolean', []);
|
|
118
|
-
if (scalar === 'integer')
|
|
119
|
-
return call('faker.number.int', boundsArg(meta));
|
|
120
|
-
if (scalar === 'number')
|
|
121
|
-
return call('faker.number.float', boundsArg(meta));
|
|
122
|
-
switch (meta?.format) {
|
|
123
|
-
case 'email':
|
|
124
|
-
return call('faker.internet.email', []);
|
|
125
|
-
case 'uuid':
|
|
126
|
-
return call('faker.string.uuid', []);
|
|
127
|
-
case 'uri':
|
|
128
|
-
case 'url':
|
|
129
|
-
return call('faker.internet.url', []);
|
|
130
|
-
case 'hostname':
|
|
131
|
-
return call('faker.internet.domainName', []);
|
|
132
|
-
case 'ipv4':
|
|
133
|
-
return call('faker.internet.ipv4', []);
|
|
134
|
-
case 'date-time':
|
|
135
|
-
return dateExpr(dateType, false);
|
|
136
|
-
case 'date':
|
|
137
|
-
return dateExpr(dateType, true);
|
|
138
|
-
default:
|
|
139
|
-
return call('faker.lorem.word', []);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/** `faker.date.recent()` (under `dateType: 'Date'`); else its ISO string, sliced to
|
|
143
|
-
* `YYYY-MM-DD` for a `date` so the wire shape matches the `string`-typed field. */
|
|
144
|
-
function dateExpr(dateType, dateOnly) {
|
|
145
|
-
const recent = call('faker.date.recent', []);
|
|
146
|
-
if (dateType === 'Date')
|
|
147
|
-
return recent;
|
|
148
|
-
const iso = call(member(recent, 'toISOString'), []);
|
|
149
|
-
if (!dateOnly)
|
|
150
|
-
return iso;
|
|
151
|
-
return call(member(iso, 'slice'), [
|
|
152
|
-
factory.createNumericLiteral(0),
|
|
153
|
-
factory.createNumericLiteral(10),
|
|
154
|
-
]);
|
|
155
|
-
}
|
|
156
|
-
/** `{ min, max }` arg list for a bounded numeric, or no args when neither bound is set. */
|
|
157
|
-
function boundsArg(meta) {
|
|
158
|
-
const props = [];
|
|
159
|
-
if (meta?.minimum !== undefined) {
|
|
160
|
-
props.push(factory.createPropertyAssignment('min', literalExpression(meta.minimum)));
|
|
161
|
-
}
|
|
162
|
-
if (meta?.maximum !== undefined) {
|
|
163
|
-
props.push(factory.createPropertyAssignment('max', literalExpression(meta.maximum)));
|
|
164
|
-
}
|
|
165
|
-
return props.length > 0 ? [factory.createObjectLiteralExpression(props, false)] : [];
|
|
166
|
-
}
|
|
167
|
-
/** `faker.helpers.multiple(() => <item>, { count: 1 })` — one element keeps output small. */
|
|
168
|
-
function multiple(item) {
|
|
169
|
-
const fn = factory.createArrowFunction(undefined, undefined, [], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), item);
|
|
170
|
-
const count = factory.createObjectLiteralExpression([factory.createPropertyAssignment('count', factory.createNumericLiteral(1))], false);
|
|
171
|
-
return call('faker.helpers.multiple', [fn, count]);
|
|
172
|
-
}
|
|
173
|
-
/** An `omit`: the base named schema's faker expr minus the dropped keys. Resolves the
|
|
174
|
-
* base via the schema set (cycle-guarded); a non-object base passes through unchanged. */
|
|
175
|
-
function omitExpr(base, keys, byName, visiting, dateType) {
|
|
176
|
-
const target = byName.get(base);
|
|
177
|
-
if (!target)
|
|
178
|
-
return factory.createNull();
|
|
179
|
-
const expr = walk(target, byName, visiting, dateType);
|
|
180
|
-
// A cyclic or non-object base passes through unchanged (a container/root absorbs `CYCLE`).
|
|
181
|
-
if (expr === CYCLE || !ts.isObjectLiteralExpression(expr))
|
|
182
|
-
return expr;
|
|
183
|
-
const drop = new Set(keys.map(safeIdent));
|
|
184
|
-
return factory.createObjectLiteralExpression(assignments(expr).filter((a) => !drop.has(propKey(a))), true);
|
|
185
|
-
}
|
|
186
|
-
/** An object literal from `[key, expr]` entries; keys are quoted when not bare identifiers. */
|
|
187
|
-
function objectExpr(entries) {
|
|
188
|
-
return factory.createObjectLiteralExpression(entries.map(([key, value]) => {
|
|
189
|
-
const safe = safeIdent(key);
|
|
190
|
-
const name = safe === key ? factory.createIdentifier(key) : factory.createStringLiteral(key);
|
|
191
|
-
return factory.createPropertyAssignment(name, value);
|
|
192
|
-
}), true);
|
|
193
|
-
}
|
|
194
|
-
/** The property assignments of an object literal (the spread/intersection merge unit). */
|
|
195
|
-
function assignments(object) {
|
|
196
|
-
return object.properties.filter((p) => ts.isPropertyAssignment(p));
|
|
197
|
-
}
|
|
198
|
-
/** The printed key text of a property assignment (matching `safeIdent`'s quoting). */
|
|
199
|
-
function propKey(a) {
|
|
200
|
-
return ts.isStringLiteral(a.name) ? safeIdent(a.name.text) : a.name.text;
|
|
201
|
-
}
|
|
202
|
-
/** `new Blob([])` — the type-correct stand-in for a `format: binary` field. */
|
|
203
|
-
function newBlob() {
|
|
204
|
-
return factory.createNewExpression(factory.createIdentifier('Blob'), undefined, [
|
|
205
|
-
factory.createArrayLiteralExpression([], false),
|
|
206
|
-
]);
|
|
207
|
-
}
|
|
208
|
-
/** A call expression from a dotted callee name (`faker.number.int`) or a built node. */
|
|
209
|
-
function call(callee, args) {
|
|
210
|
-
const target = typeof callee === 'string' ? dotted(callee) : callee;
|
|
211
|
-
return factory.createCallExpression(target, undefined, args);
|
|
212
|
-
}
|
|
213
|
-
/** Turn `a.b.c` into nested property access on an identifier. */
|
|
214
|
-
function dotted(path) {
|
|
215
|
-
const [head, ...rest] = path.split('.');
|
|
216
|
-
return rest.reduce((acc, name) => member(acc, name), factory.createIdentifier(head));
|
|
217
|
-
}
|
|
218
|
-
function member(target, name) {
|
|
219
|
-
return factory.createPropertyAccessExpression(target, name);
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=faker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"faker.js","sourceRoot":"","sources":["../../src/emitters/faker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/** True when `name` matches the JS identifier grammar (reserved words still pass). */
|
|
2
|
-
export declare function isIdentifier(name: string): boolean;
|
|
3
|
-
/** True when `name` is a valid JS identifier AND not a reserved word — safe as a binding name. */
|
|
4
|
-
export declare function isSafeIdentifier(name: string): boolean;
|
|
5
|
-
/**
|
|
6
|
-
* Coerce an arbitrary spec-supplied name into a valid, non-reserved JS identifier
|
|
7
|
-
* (no uniqueness guarantee — see `uniqueIdent`). Non-identifier characters become
|
|
8
|
-
* `_`; an empty result, a leading digit, or a reserved word is prefixed with `_`.
|
|
9
|
-
* This is the security boundary for any name that lands in a declaration slot —
|
|
10
|
-
* `ts.factory.createIdentifier` prints its text verbatim, so an unsanitized name
|
|
11
|
-
* like `foo(){};evil()` would emit as executable code.
|
|
12
|
-
*/
|
|
13
|
-
export declare function sanitizeIdentifier(name: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* A double-quoted TS string literal for generated code. `JSON.stringify` alone leaves
|
|
16
|
-
* U+2028/U+2029 raw (legal JSON, line terminators in code contexts) — escape them so a
|
|
17
|
-
* hostile spec value can never alter the shape of the emitted statement.
|
|
18
|
-
*/
|
|
19
|
-
export declare function codeString(value: string): string;
|
|
20
|
-
/**
|
|
21
|
-
* Render `name` as an object key or property name: bare when it is a valid,
|
|
22
|
-
* non-reserved identifier, quoted otherwise. Safe only where quoting is legal
|
|
23
|
-
* (object keys, property signatures) — not for binding names; use `uniqueIdent`
|
|
24
|
-
* there.
|
|
25
|
-
*/
|
|
26
|
-
export declare function safeIdent(name: string): string;
|
|
27
|
-
/**
|
|
28
|
-
* `sanitizeIdentifier(name)` made unique within `used` (which it mutates):
|
|
29
|
-
* collisions get a `_2`, `_3`, … suffix. Used wherever a name lands in a binding
|
|
30
|
-
* slot that — unlike an object key — cannot be quoted (function/type/parameter
|
|
31
|
-
* names), so `safeIdent`'s quote-on-failure fallback would not compile.
|
|
32
|
-
*/
|
|
33
|
-
export declare function uniqueIdent(name: string, used: Set<string>): string;
|
|
34
|
-
//# sourceMappingURL=identifier.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identifier.d.ts","sourceRoot":"","sources":["../../src/emitters/identifier.ts"],"names":[],"mappings":"AA+CA,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAOnE"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
// Identifier sanitization — mapping OpenAPI names (which may contain `-`, `.`,
|
|
2
|
-
// spaces, or be reserved words) onto valid TypeScript identifiers. Pure string
|
|
3
|
-
// logic with no dependency on the IR or other emitters.
|
|
4
|
-
/** Matches a string that is already a valid JS identifier (ignoring reserved words). */
|
|
5
|
-
const IDENT_RE = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
6
|
-
const TS_RESERVED = new Set([
|
|
7
|
-
'break',
|
|
8
|
-
'case',
|
|
9
|
-
'catch',
|
|
10
|
-
'class',
|
|
11
|
-
'const',
|
|
12
|
-
'continue',
|
|
13
|
-
'debugger',
|
|
14
|
-
'default',
|
|
15
|
-
'delete',
|
|
16
|
-
'do',
|
|
17
|
-
'else',
|
|
18
|
-
'enum',
|
|
19
|
-
'export',
|
|
20
|
-
'extends',
|
|
21
|
-
'false',
|
|
22
|
-
'finally',
|
|
23
|
-
'for',
|
|
24
|
-
'function',
|
|
25
|
-
'if',
|
|
26
|
-
'import',
|
|
27
|
-
'in',
|
|
28
|
-
'instanceof',
|
|
29
|
-
'new',
|
|
30
|
-
'null',
|
|
31
|
-
'return',
|
|
32
|
-
'super',
|
|
33
|
-
'switch',
|
|
34
|
-
'this',
|
|
35
|
-
'throw',
|
|
36
|
-
'true',
|
|
37
|
-
'try',
|
|
38
|
-
'typeof',
|
|
39
|
-
'var',
|
|
40
|
-
'void',
|
|
41
|
-
'while',
|
|
42
|
-
'with',
|
|
43
|
-
'yield',
|
|
44
|
-
]);
|
|
45
|
-
/** True when `name` matches the JS identifier grammar (reserved words still pass). */
|
|
46
|
-
export function isIdentifier(name) {
|
|
47
|
-
return IDENT_RE.test(name);
|
|
48
|
-
}
|
|
49
|
-
/** True when `name` is a valid JS identifier AND not a reserved word — safe as a binding name. */
|
|
50
|
-
export function isSafeIdentifier(name) {
|
|
51
|
-
return IDENT_RE.test(name) && !TS_RESERVED.has(name);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Coerce an arbitrary spec-supplied name into a valid, non-reserved JS identifier
|
|
55
|
-
* (no uniqueness guarantee — see `uniqueIdent`). Non-identifier characters become
|
|
56
|
-
* `_`; an empty result, a leading digit, or a reserved word is prefixed with `_`.
|
|
57
|
-
* This is the security boundary for any name that lands in a declaration slot —
|
|
58
|
-
* `ts.factory.createIdentifier` prints its text verbatim, so an unsanitized name
|
|
59
|
-
* like `foo(){};evil()` would emit as executable code.
|
|
60
|
-
*/
|
|
61
|
-
export function sanitizeIdentifier(name) {
|
|
62
|
-
let base = name.replace(/[^A-Za-z0-9_$]/g, '_');
|
|
63
|
-
if (base === '' || /^[0-9]/.test(base) || TS_RESERVED.has(base))
|
|
64
|
-
base = `_${base}`;
|
|
65
|
-
return base;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* A double-quoted TS string literal for generated code. `JSON.stringify` alone leaves
|
|
69
|
-
* U+2028/U+2029 raw (legal JSON, line terminators in code contexts) — escape them so a
|
|
70
|
-
* hostile spec value can never alter the shape of the emitted statement.
|
|
71
|
-
*/
|
|
72
|
-
export function codeString(value) {
|
|
73
|
-
return JSON.stringify(value)
|
|
74
|
-
.replace(/\u2028/g, '\\u2028')
|
|
75
|
-
.replace(/\u2029/g, '\\u2029');
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Render `name` as an object key or property name: bare when it is a valid,
|
|
79
|
-
* non-reserved identifier, quoted otherwise. Safe only where quoting is legal
|
|
80
|
-
* (object keys, property signatures) — not for binding names; use `uniqueIdent`
|
|
81
|
-
* there.
|
|
82
|
-
*/
|
|
83
|
-
export function safeIdent(name) {
|
|
84
|
-
if (IDENT_RE.test(name) && !TS_RESERVED.has(name)) {
|
|
85
|
-
return name;
|
|
86
|
-
}
|
|
87
|
-
return codeString(name);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* `sanitizeIdentifier(name)` made unique within `used` (which it mutates):
|
|
91
|
-
* collisions get a `_2`, `_3`, … suffix. Used wherever a name lands in a binding
|
|
92
|
-
* slot that — unlike an object key — cannot be quoted (function/type/parameter
|
|
93
|
-
* names), so `safeIdent`'s quote-on-failure fallback would not compile.
|
|
94
|
-
*/
|
|
95
|
-
export function uniqueIdent(name, used) {
|
|
96
|
-
const base = sanitizeIdentifier(name);
|
|
97
|
-
let ident = base;
|
|
98
|
-
let n = 2;
|
|
99
|
-
while (used.has(ident))
|
|
100
|
-
ident = `${base}_${n++}`;
|
|
101
|
-
used.add(ident);
|
|
102
|
-
return ident;
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=identifier.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../src/emitters/identifier.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+EAA+E;AAC/E,wDAAwD;AAExD,wFAAwF;AACxF,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAE9C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,KAAK;IACL,UAAU;IACV,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;CACR,CAAC,CAAC;AAEH,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SACzB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAiB;IACzD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;IACjD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/** Which optional runtime capabilities the generated client must embed. */
|
|
2
|
-
export type InlineRuntimeNeeds = {
|
|
3
|
-
multipart: boolean;
|
|
4
|
-
auth: boolean;
|
|
5
|
-
sse: boolean;
|
|
6
|
-
setup: boolean;
|
|
7
|
-
paginate: boolean;
|
|
8
|
-
};
|
|
9
|
-
/** The embedded runtime source block: stripped modules in dependency order + the factory. */
|
|
10
|
-
export declare function assembleInlineRuntime(needs: InlineRuntimeNeeds): string;
|
|
11
|
-
//# sourceMappingURL=inline-runtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inline-runtime.d.ts","sourceRoot":"","sources":["../../src/emitters/inline-runtime.ts"],"names":[],"mappings":"AASA,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAkBF,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAcvE"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
// Assembles the embedded runtime block for inline-mode clients: the real
|
|
2
|
-
// `src/runtime/` sources (snapshotted into `RUNTIME_SOURCES`) in import-graph
|
|
3
|
-
// order, stripped of module syntax, followed by a local `createClient` factory
|
|
4
|
-
// wiring only the capabilities this API needs — the embedded equivalent of the
|
|
5
|
-
// package barrel (`runtime/index.ts`), which is never embedded itself.
|
|
6
|
-
import { RUNTIME_SOURCES } from './runtime-sources.js';
|
|
7
|
-
import { parseStatements, ts } from './ts.js';
|
|
8
|
-
const HEADER = "// ─── Embedded runtime (@redocly/client-generator, assembled per this API's needs) ───";
|
|
9
|
-
// The embedded block keeps `export` only on the surface the generated wiring and its
|
|
10
|
-
// type re-exports reference; everything else becomes module-local. `types.ts` is the
|
|
11
|
-
// public type surface (it replaces package-mode type imports — and TS `noUnusedLocals`
|
|
12
|
-
// never flags exported declarations, so unused types in a given output are fine).
|
|
13
|
-
const KEEP_EXPORTS = {
|
|
14
|
-
'types.ts': () => true,
|
|
15
|
-
'errors.ts': ts.isClassDeclaration, // ApiError/TimeoutError stay public; abortError goes local
|
|
16
|
-
// defaultRetryOn stays public so custom `retryOn` predicates can compose with it.
|
|
17
|
-
'retry.ts': (statement) => ts.isFunctionDeclaration(statement) && statement.name?.text === 'defaultRetryOn',
|
|
18
|
-
'setup.ts': () => true, // mergeSetup — the baked-setup wiring calls it
|
|
19
|
-
};
|
|
20
|
-
/** The embedded runtime source block: stripped modules in dependency order + the factory. */
|
|
21
|
-
export function assembleInlineRuntime(needs) {
|
|
22
|
-
// Import-graph topological order; the optional capability modules slot in where the
|
|
23
|
-
// package barrel would import them (core never imports them statically).
|
|
24
|
-
const modules = ['types.ts', 'errors.ts', 'url.ts', 'parse.ts', 'retry.ts'];
|
|
25
|
-
if (needs.multipart)
|
|
26
|
-
modules.push('multipart.ts');
|
|
27
|
-
if (needs.auth)
|
|
28
|
-
modules.push('auth.ts');
|
|
29
|
-
if (needs.setup)
|
|
30
|
-
modules.push('setup.ts');
|
|
31
|
-
// paginate.ts has only type imports (types.ts + create-client.ts's OperationArgs),
|
|
32
|
-
// so it can sit anywhere; keep it with the other capability modules, before send.ts.
|
|
33
|
-
if (needs.paginate)
|
|
34
|
-
modules.push('paginate.ts');
|
|
35
|
-
modules.push('send.ts');
|
|
36
|
-
if (needs.sse)
|
|
37
|
-
modules.push('sse.ts');
|
|
38
|
-
modules.push('create-client.ts');
|
|
39
|
-
return [HEADER, ...modules.map(embedModule), clientFactory(needs)].join('\n\n');
|
|
40
|
-
}
|
|
41
|
-
// Strip module syntax from one runtime source: drop every import declaration (all are
|
|
42
|
-
// relative `./x.js` imports within the runtime) and remove the `export` modifier from
|
|
43
|
-
// declarations outside the kept surface. Slices are driven by AST positions from
|
|
44
|
-
// `parseStatements` (no regexes), so comments and formatting survive byte-for-byte.
|
|
45
|
-
function embedModule(name) {
|
|
46
|
-
const source = RUNTIME_SOURCES[name];
|
|
47
|
-
const keeps = KEEP_EXPORTS[name];
|
|
48
|
-
const parts = [];
|
|
49
|
-
for (const statement of parseStatements(source)) {
|
|
50
|
-
if (ts.isImportDeclaration(statement))
|
|
51
|
-
continue;
|
|
52
|
-
// Full text includes leading trivia (JSDoc, blank lines), so spacing is preserved.
|
|
53
|
-
const text = source.slice(statement.getFullStart(), statement.end);
|
|
54
|
-
// Every top-level runtime statement is a declaration (`getModifiers` is total —
|
|
55
|
-
// it returns undefined when the node carries no modifiers).
|
|
56
|
-
const exportModifier = ts
|
|
57
|
-
.getModifiers(statement)
|
|
58
|
-
?.find((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword);
|
|
59
|
-
if (exportModifier && !keeps?.(statement)) {
|
|
60
|
-
const at = exportModifier.getStart() - statement.getFullStart();
|
|
61
|
-
parts.push(text.slice(0, at) + text.slice(at + 'export '.length));
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
parts.push(text);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return parts.join('').trim();
|
|
68
|
-
}
|
|
69
|
-
// The embedded equivalent of the package barrel's `createClient`: `createClientCore`
|
|
70
|
-
// with only the included capabilities wired. EXPORTED — the design spec promises the
|
|
71
|
-
// generated module re-exports `createClient`/`OPERATIONS`/`Ops` so apps can build
|
|
72
|
-
// additional per-tenant instances over the same descriptors.
|
|
73
|
-
function clientFactory(needs) {
|
|
74
|
-
const caps = [
|
|
75
|
-
...(needs.multipart ? ['serializeMultipart: toFormData'] : []),
|
|
76
|
-
...(needs.auth ? ['resolveAuth'] : []),
|
|
77
|
-
...(needs.sse ? ['sse'] : []),
|
|
78
|
-
...(needs.paginate ? ['paginate: { pages, items, pagesByLink, itemsByLink }'] : []),
|
|
79
|
-
];
|
|
80
|
-
const wired = caps.length > 0 ? `{ ${caps.join(', ')} }` : '{}';
|
|
81
|
-
return `/**
|
|
82
|
-
* The client factory: \`createClientCore\` wired with the capabilities this API needs.
|
|
83
|
-
* Exported so apps can build additional instances (per-tenant, per-environment) over
|
|
84
|
-
* the same \`OPERATIONS\`/\`Ops\`. The trailing string params carry the wiring's literal
|
|
85
|
-
* unions (\`OperationId\`/\`OperationPath\`/\`OperationTag\`) into \`ctx.operation\`.
|
|
86
|
-
*/
|
|
87
|
-
export function createClient<
|
|
88
|
-
Ops extends OpsShape,
|
|
89
|
-
Id extends string = string,
|
|
90
|
-
Path extends string = string,
|
|
91
|
-
Tag extends string = string,
|
|
92
|
-
>(
|
|
93
|
-
operations: Record<string, OperationDescriptor>,
|
|
94
|
-
config?: ClientConfig<OperationContext<Id, Path, Tag>>
|
|
95
|
-
): Client<Ops, OperationContext<Id, Path, Tag>> {
|
|
96
|
-
return createClientCore<Ops, Id, Path, Tag>(operations, config, ${wired});
|
|
97
|
-
}`;
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=inline-runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inline-runtime.js","sourceRoot":"","sources":["../../src/emitters/inline-runtime.ts"],"names":[],"mappings":"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"}
|
package/lib/emitters/jsdoc.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { SchemaMetadata } from '../intermediate-representation/model.js';
|
|
2
|
-
/**
|
|
3
|
-
* The JSDoc body for a description + metadata as a single `\n`-joined string,
|
|
4
|
-
* or `undefined` when there's nothing to document. The AST emitters feed this
|
|
5
|
-
* to `ts.ts`'s `jsdoc` helper (which owns the `*`-prefixing and indentation),
|
|
6
|
-
* so this returns only the raw body — no comment delimiters, no padding.
|
|
7
|
-
*/
|
|
8
|
-
export declare function jsdocText(text: string | undefined, metadata?: SchemaMetadata): string | undefined;
|
|
9
|
-
//# sourceMappingURL=jsdoc.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsdoc.d.ts","sourceRoot":"","sources":["../../src/emitters/jsdoc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAI9E;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAGjG"}
|