@nikovirtala/projen-constructs 0.2.0 → 0.2.2
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/.jsii +1406 -66
- package/docs/api/.nojekyll +1 -0
- package/docs/api/assets/hierarchy.js +1 -0
- package/docs/api/assets/highlight.css +99 -0
- package/docs/api/assets/icons.js +18 -0
- package/docs/api/assets/icons.svg +1 -0
- package/docs/api/assets/main.js +60 -0
- package/docs/api/assets/navigation.js +1 -0
- package/docs/api/assets/search.js +1 -0
- package/docs/api/assets/style.css +1633 -0
- package/docs/api/classes/AwsCdkConstructLibraryProject.html +308 -0
- package/docs/api/classes/AwsCdkTypeScriptAppProject.html +306 -0
- package/docs/api/classes/JsiiProject.html +294 -0
- package/docs/api/classes/ProjectGenerator.html +38 -0
- package/docs/api/classes/TypeDoc.html +37 -0
- package/docs/api/classes/TypeScriptProject.html +294 -0
- package/docs/api/classes/Vitest.html +38 -0
- package/docs/api/enums/CommentStyle.html +11 -0
- package/docs/api/enums/CoverageProvider.html +7 -0
- package/docs/api/enums/CoverageReporter.html +11 -0
- package/docs/api/enums/EntryPointStrategy.html +11 -0
- package/docs/api/enums/Environment.html +12 -0
- package/docs/api/enums/LogLevel.html +13 -0
- package/docs/api/enums/Pool.html +17 -0
- package/docs/api/enums/ProjectType.html +47 -0
- package/docs/api/enums/Visibility.html +9 -0
- package/docs/api/functions/applyDefaults.html +1 -0
- package/docs/api/functions/toJson_TypeDocConfiguration.html +2 -0
- package/docs/api/hierarchy.html +1 -0
- package/docs/api/index.html +86 -0
- package/docs/api/interfaces/AwsCdkConstructLibraryProjectOptions.html +1075 -0
- package/docs/api/interfaces/AwsCdkTypeScriptAppProjectOptions.html +1026 -0
- package/docs/api/interfaces/Component.html +13 -0
- package/docs/api/interfaces/ComponentOptions.html +8 -0
- package/docs/api/interfaces/JsiiProjectOptions.html +1003 -0
- package/docs/api/interfaces/ProjectGeneratorOptions.html +49 -0
- package/docs/api/interfaces/TypeDocConfiguration.html +141 -0
- package/docs/api/interfaces/TypeDocOptions.html +9 -0
- package/docs/api/interfaces/TypeScriptProjectOptions.html +899 -0
- package/docs/api/interfaces/ValidationOptions.html +9 -0
- package/docs/api/interfaces/VitestConfigOptions.html +111 -0
- package/docs/api/interfaces/VitestOptions.html +13 -0
- package/docs/api/modules.html +1 -0
- package/docs/api/variables/defaultOptions.html +1 -0
- package/docs/api/variables/defaults.html +1 -0
- package/docs/api/variables/projectDefaultOptions.html +1 -0
- package/lib/components/typedoc.js +5 -1
- package/lib/components/vitest.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/project-generator.js +1 -1
- package/lib/projects/awscdk-construct-library.generated.js +1 -1
- package/lib/projects/awscdk-typescript-app.generated.js +1 -1
- package/lib/projects/jsii-options.generated.d.ts +11 -1
- package/lib/projects/jsii-options.generated.js +1 -1
- package/lib/projects/jsii.generated.js +5 -4
- package/lib/projects/typescript.generated.js +1 -1
- package/node_modules/@jsii/spec/LICENSE +202 -0
- package/node_modules/@jsii/spec/NOTICE +2 -0
- package/node_modules/@jsii/spec/README.md +13 -0
- package/node_modules/@jsii/spec/jest.config.mjs +9 -0
- package/node_modules/@jsii/spec/lib/assembly-utils.d.ts +59 -0
- package/node_modules/@jsii/spec/lib/assembly-utils.js +158 -0
- package/node_modules/@jsii/spec/lib/assembly.d.ts +920 -0
- package/node_modules/@jsii/spec/lib/assembly.js +203 -0
- package/node_modules/@jsii/spec/lib/configuration.d.ts +147 -0
- package/node_modules/@jsii/spec/lib/configuration.js +3 -0
- package/node_modules/@jsii/spec/lib/index.d.ts +7 -0
- package/node_modules/@jsii/spec/lib/index.js +23 -0
- package/node_modules/@jsii/spec/lib/name-tree.d.ts +60 -0
- package/node_modules/@jsii/spec/lib/name-tree.js +84 -0
- package/node_modules/@jsii/spec/lib/redirect.d.ts +33 -0
- package/node_modules/@jsii/spec/lib/redirect.js +46 -0
- package/node_modules/@jsii/spec/lib/validate-assembly.d.ts +4 -0
- package/node_modules/@jsii/spec/lib/validate-assembly.js +29 -0
- package/node_modules/@jsii/spec/package.json +41 -0
- package/node_modules/@jsii/spec/schema/assembly-redirect.schema.json +29 -0
- package/node_modules/@jsii/spec/schema/jsii-spec.schema.json +1110 -0
- package/node_modules/@mrgrain/jsii-struct-builder/LICENSE +202 -0
- package/node_modules/@mrgrain/jsii-struct-builder/README.md +387 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/builder/index.d.ts +1 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/builder/index.js +18 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/builder/struct.d.ts +144 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/builder/struct.js +163 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/index.d.ts +3 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/index.js +20 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/private/assembly.d.ts +2 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/private/assembly.js +76 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/private/index.d.ts +2 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/private/index.js +19 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/private/utils.d.ts +2 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/private/utils.js +14 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/index.d.ts +2 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/index.js +19 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/projen-struct.d.ts +90 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/projen-struct.js +112 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/ts-interface.d.ts +15 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/projen/ts-interface.js +18 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/renderer/index.d.ts +1 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/renderer/index.js +18 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/renderer/typescript.d.ts +53 -0
- package/node_modules/@mrgrain/jsii-struct-builder/lib/renderer/typescript.js +194 -0
- package/node_modules/@mrgrain/jsii-struct-builder/package.json +116 -0
- package/node_modules/ajv/.runkit_example.js +23 -0
- package/node_modules/ajv/LICENSE +22 -0
- package/node_modules/ajv/README.md +207 -0
- package/node_modules/ajv/dist/2019.d.ts +19 -0
- package/node_modules/ajv/dist/2019.js +61 -0
- package/node_modules/ajv/dist/2019.js.map +1 -0
- package/node_modules/ajv/dist/2020.d.ts +19 -0
- package/node_modules/ajv/dist/2020.js +55 -0
- package/node_modules/ajv/dist/2020.js.map +1 -0
- package/node_modules/ajv/dist/ajv.d.ts +18 -0
- package/node_modules/ajv/dist/ajv.js +50 -0
- package/node_modules/ajv/dist/ajv.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/code.d.ts +40 -0
- package/node_modules/ajv/dist/compile/codegen/code.js +156 -0
- package/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
- package/node_modules/ajv/dist/compile/codegen/index.js +697 -0
- package/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
- package/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
- package/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
- package/node_modules/ajv/dist/compile/errors.d.ts +13 -0
- package/node_modules/ajv/dist/compile/errors.js +123 -0
- package/node_modules/ajv/dist/compile/errors.js.map +1 -0
- package/node_modules/ajv/dist/compile/index.d.ts +80 -0
- package/node_modules/ajv/dist/compile/index.js +242 -0
- package/node_modules/ajv/dist/compile/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
- package/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
- package/node_modules/ajv/dist/compile/jtd/parse.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.js +229 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
- package/node_modules/ajv/dist/compile/jtd/types.js +14 -0
- package/node_modules/ajv/dist/compile/jtd/types.js.map +1 -0
- package/node_modules/ajv/dist/compile/names.d.ts +20 -0
- package/node_modules/ajv/dist/compile/names.js +28 -0
- package/node_modules/ajv/dist/compile/names.js.map +1 -0
- package/node_modules/ajv/dist/compile/ref_error.d.ts +6 -0
- package/node_modules/ajv/dist/compile/ref_error.js +12 -0
- package/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
- package/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
- package/node_modules/ajv/dist/compile/resolve.js +155 -0
- package/node_modules/ajv/dist/compile/resolve.js.map +1 -0
- package/node_modules/ajv/dist/compile/rules.d.ts +28 -0
- package/node_modules/ajv/dist/compile/rules.js +26 -0
- package/node_modules/ajv/dist/compile/rules.js.map +1 -0
- package/node_modules/ajv/dist/compile/util.d.ts +40 -0
- package/node_modules/ajv/dist/compile/util.js +178 -0
- package/node_modules/ajv/dist/compile/util.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
- package/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
- package/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
- package/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
- package/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
- package/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
- package/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
- package/node_modules/ajv/dist/compile/validate/index.js +520 -0
- package/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
- package/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
- package/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
- package/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
- package/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
- package/node_modules/ajv/dist/core.d.ts +173 -0
- package/node_modules/ajv/dist/core.js +618 -0
- package/node_modules/ajv/dist/core.js.map +1 -0
- package/node_modules/ajv/dist/jtd.d.ts +47 -0
- package/node_modules/ajv/dist/jtd.js +72 -0
- package/node_modules/ajv/dist/jtd.js.map +1 -0
- package/node_modules/ajv/dist/refs/data.json +13 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +1 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +1 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
- package/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
- package/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
- package/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
- package/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
- package/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
- package/node_modules/ajv/dist/refs/jtd-schema.js.map +1 -0
- package/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/equal.js +7 -0
- package/node_modules/ajv/dist/runtime/equal.js.map +1 -0
- package/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
- package/node_modules/ajv/dist/runtime/parseJson.js +185 -0
- package/node_modules/ajv/dist/runtime/parseJson.js.map +1 -0
- package/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/quote.js +30 -0
- package/node_modules/ajv/dist/runtime/quote.js.map +1 -0
- package/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/re2.js +6 -0
- package/node_modules/ajv/dist/runtime/re2.js.map +1 -0
- package/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/timestamp.js +42 -0
- package/node_modules/ajv/dist/runtime/timestamp.js.map +1 -0
- package/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
- package/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
- package/node_modules/ajv/dist/runtime/uri.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/uri.js +6 -0
- package/node_modules/ajv/dist/runtime/uri.js.map +1 -0
- package/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
- package/node_modules/ajv/dist/runtime/validation_error.js +11 -0
- package/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
- package/node_modules/ajv/dist/standalone/index.d.ts +6 -0
- package/node_modules/ajv/dist/standalone/index.js +90 -0
- package/node_modules/ajv/dist/standalone/index.js.map +1 -0
- package/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
- package/node_modules/ajv/dist/standalone/instance.js +35 -0
- package/node_modules/ajv/dist/standalone/instance.js.map +1 -0
- package/node_modules/ajv/dist/types/index.d.ts +183 -0
- package/node_modules/ajv/dist/types/index.js +3 -0
- package/node_modules/ajv/dist/types/index.js.map +1 -0
- package/node_modules/ajv/dist/types/json-schema.d.ts +125 -0
- package/node_modules/ajv/dist/types/json-schema.js +3 -0
- package/node_modules/ajv/dist/types/json-schema.js.map +1 -0
- package/node_modules/ajv/dist/types/jtd-schema.d.ts +174 -0
- package/node_modules/ajv/dist/types/jtd-schema.js +3 -0
- package/node_modules/ajv/dist/types/jtd-schema.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
- package/node_modules/ajv/dist/vocabularies/code.js +131 -0
- package/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
- package/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
- package/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
- package/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/errors.js +3 -0
- package/node_modules/ajv/dist/vocabularies/errors.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
- package/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
- package/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.js +149 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.js +67 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.js +51 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
- package/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/next.js +8 -0
- package/node_modules/ajv/dist/vocabularies/next.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.js +24 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
- package/node_modules/ajv/lib/2019.ts +81 -0
- package/node_modules/ajv/lib/2020.ts +75 -0
- package/node_modules/ajv/lib/ajv.ts +70 -0
- package/node_modules/ajv/lib/compile/codegen/code.ts +169 -0
- package/node_modules/ajv/lib/compile/codegen/index.ts +852 -0
- package/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
- package/node_modules/ajv/lib/compile/errors.ts +184 -0
- package/node_modules/ajv/lib/compile/index.ts +324 -0
- package/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
- package/node_modules/ajv/lib/compile/jtd/serialize.ts +266 -0
- package/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
- package/node_modules/ajv/lib/compile/names.ts +27 -0
- package/node_modules/ajv/lib/compile/ref_error.ts +13 -0
- package/node_modules/ajv/lib/compile/resolve.ts +149 -0
- package/node_modules/ajv/lib/compile/rules.ts +50 -0
- package/node_modules/ajv/lib/compile/util.ts +213 -0
- package/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
- package/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
- package/node_modules/ajv/lib/compile/validate/dataType.ts +230 -0
- package/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
- package/node_modules/ajv/lib/compile/validate/index.ts +582 -0
- package/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
- package/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
- package/node_modules/ajv/lib/core.ts +891 -0
- package/node_modules/ajv/lib/jtd.ts +132 -0
- package/node_modules/ajv/lib/refs/data.json +13 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
- package/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
- package/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
- package/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
- package/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
- package/node_modules/ajv/lib/runtime/equal.ts +7 -0
- package/node_modules/ajv/lib/runtime/parseJson.ts +177 -0
- package/node_modules/ajv/lib/runtime/quote.ts +31 -0
- package/node_modules/ajv/lib/runtime/re2.ts +6 -0
- package/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
- package/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
- package/node_modules/ajv/lib/runtime/uri.ts +6 -0
- package/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
- package/node_modules/ajv/lib/standalone/index.ts +100 -0
- package/node_modules/ajv/lib/standalone/instance.ts +36 -0
- package/node_modules/ajv/lib/types/index.ts +244 -0
- package/node_modules/ajv/lib/types/json-schema.ts +187 -0
- package/node_modules/ajv/lib/types/jtd-schema.ts +273 -0
- package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
- package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
- package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
- package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
- package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
- package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
- package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
- package/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
- package/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
- package/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
- package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
- package/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
- package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
- package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
- package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
- package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
- package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
- package/node_modules/ajv/lib/vocabularies/code.ts +168 -0
- package/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
- package/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
- package/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
- package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +113 -0
- package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
- package/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
- package/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
- package/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
- package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
- package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
- package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
- package/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
- package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
- package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
- package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
- package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +184 -0
- package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +76 -0
- package/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
- package/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/jtd/values.ts +58 -0
- package/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
- package/node_modules/ajv/lib/vocabularies/next.ts +8 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
- package/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
- package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/validation/enum.ts +54 -0
- package/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
- package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
- package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +28 -0
- package/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
- package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
- package/node_modules/ajv/package.json +126 -0
- package/node_modules/fast-deep-equal/LICENSE +21 -0
- package/node_modules/fast-deep-equal/README.md +96 -0
- package/node_modules/fast-deep-equal/es6/index.d.ts +2 -0
- package/node_modules/fast-deep-equal/es6/index.js +72 -0
- package/node_modules/fast-deep-equal/es6/react.d.ts +2 -0
- package/node_modules/fast-deep-equal/es6/react.js +79 -0
- package/node_modules/fast-deep-equal/index.d.ts +4 -0
- package/node_modules/fast-deep-equal/index.js +46 -0
- package/node_modules/fast-deep-equal/package.json +61 -0
- package/node_modules/fast-deep-equal/react.d.ts +2 -0
- package/node_modules/fast-deep-equal/react.js +53 -0
- package/node_modules/fast-uri/.gitattributes +2 -0
- package/node_modules/fast-uri/.github/.stale.yml +21 -0
- package/node_modules/fast-uri/.github/dependabot.yml +13 -0
- package/node_modules/fast-uri/.github/tests_checker.yml +8 -0
- package/node_modules/fast-uri/.github/workflows/ci.yml +101 -0
- package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +24 -0
- package/node_modules/fast-uri/LICENSE +32 -0
- package/node_modules/fast-uri/README.md +143 -0
- package/node_modules/fast-uri/benchmark/benchmark.mjs +159 -0
- package/node_modules/fast-uri/benchmark/equal.mjs +51 -0
- package/node_modules/fast-uri/benchmark/non-simple-domain.mjs +22 -0
- package/node_modules/fast-uri/benchmark/package.json +17 -0
- package/node_modules/fast-uri/benchmark/string-array-to-hex-stripped.mjs +24 -0
- package/node_modules/fast-uri/benchmark/ws-is-secure.mjs +65 -0
- package/node_modules/fast-uri/eslint.config.js +6 -0
- package/node_modules/fast-uri/index.js +340 -0
- package/node_modules/fast-uri/lib/schemes.js +267 -0
- package/node_modules/fast-uri/lib/utils.js +336 -0
- package/node_modules/fast-uri/package.json +69 -0
- package/node_modules/fast-uri/test/ajv.test.js +43 -0
- package/node_modules/fast-uri/test/equal.test.js +108 -0
- package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +501 -0
- package/node_modules/fast-uri/test/fixtures/uri-js-serialize.json +120 -0
- package/node_modules/fast-uri/test/parse.test.js +318 -0
- package/node_modules/fast-uri/test/resolve.test.js +78 -0
- package/node_modules/fast-uri/test/rfc-3986.test.js +90 -0
- package/node_modules/fast-uri/test/serialize.test.js +151 -0
- package/node_modules/fast-uri/test/uri-js-compatibility.test.js +33 -0
- package/node_modules/fast-uri/test/uri-js.test.js +912 -0
- package/node_modules/fast-uri/test/util.test.js +38 -0
- package/node_modules/fast-uri/tsconfig.json +9 -0
- package/node_modules/fast-uri/types/index.d.ts +60 -0
- package/node_modules/fast-uri/types/index.test-d.ts +17 -0
- package/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
- package/node_modules/json-schema-traverse/.github/FUNDING.yml +2 -0
- package/node_modules/json-schema-traverse/.github/workflows/build.yml +28 -0
- package/node_modules/json-schema-traverse/.github/workflows/publish.yml +27 -0
- package/node_modules/json-schema-traverse/LICENSE +21 -0
- package/node_modules/json-schema-traverse/README.md +95 -0
- package/node_modules/json-schema-traverse/index.d.ts +40 -0
- package/node_modules/json-schema-traverse/index.js +93 -0
- package/node_modules/json-schema-traverse/package.json +43 -0
- package/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
- package/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
- package/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
- package/node_modules/require-from-string/index.js +34 -0
- package/node_modules/require-from-string/license +21 -0
- package/node_modules/require-from-string/package.json +28 -0
- package/node_modules/require-from-string/readme.md +56 -0
- package/package.json +5 -2
- package/typedoc.jsonc +10 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjenStruct = void 0;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const spec_1 = require("@jsii/spec");
|
|
6
|
+
const projen_1 = require("projen");
|
|
7
|
+
const ts_interface_1 = require("./ts-interface");
|
|
8
|
+
const builder_1 = require("../builder");
|
|
9
|
+
/**
|
|
10
|
+
* A component generating a jsii-compatible struct
|
|
11
|
+
*/
|
|
12
|
+
class ProjenStruct extends projen_1.Component {
|
|
13
|
+
constructor(tsProject, options) {
|
|
14
|
+
super(tsProject);
|
|
15
|
+
this.tsProject = tsProject;
|
|
16
|
+
this.options = options;
|
|
17
|
+
const fqn = options.fqn ?? `${tsProject.name}.${options.name}`;
|
|
18
|
+
this.builder = builder_1.Struct.fromSpec({
|
|
19
|
+
kind: spec_1.TypeKind.Interface,
|
|
20
|
+
assembly: fqn.split('.').at(0) ?? tsProject.name,
|
|
21
|
+
fqn,
|
|
22
|
+
name: options.name,
|
|
23
|
+
docs: options.docs ?? {
|
|
24
|
+
summary: options.description ?? options.name,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
preSynthesize() {
|
|
29
|
+
const baseDir = this.tsProject.srcdir ?? this.tsProject.outdir;
|
|
30
|
+
const outputFile = this.options.filePath ?? (0, path_1.join)(baseDir, fqnToPath(this.builder.spec.fqn));
|
|
31
|
+
new ts_interface_1.TypeScriptInterfaceFile(this.tsProject, outputFile, this.builder.spec, {
|
|
32
|
+
...this.options.outputFileOptions,
|
|
33
|
+
importLocations: {
|
|
34
|
+
[this.builder.spec.assembly]: relativeImport(outputFile, baseDir),
|
|
35
|
+
...this.options.importLocations,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
get spec() {
|
|
40
|
+
return this.builder.spec;
|
|
41
|
+
}
|
|
42
|
+
add(...props) {
|
|
43
|
+
this.builder.add(...props);
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
mixin(...sources) {
|
|
47
|
+
this.builder.mixin(...sources);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
replace(name, replacement) {
|
|
51
|
+
this.builder.replace(name, replacement);
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
map(callbackfn) {
|
|
55
|
+
this.builder.map(callbackfn);
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
update(name, update) {
|
|
59
|
+
this.builder.update(name, update);
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
updateEvery(callbackfn) {
|
|
63
|
+
this.builder.updateEvery(callbackfn);
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
updateAll(update) {
|
|
67
|
+
this.builder.updateAll(update);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
rename(from, to) {
|
|
71
|
+
this.builder.rename(from, to);
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
allOptional() {
|
|
75
|
+
this.builder.allOptional();
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
filter(predicate) {
|
|
79
|
+
this.builder.filter(predicate);
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
only(...keep) {
|
|
83
|
+
this.builder.only(...keep);
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
omit(...remove) {
|
|
87
|
+
this.builder.omit(...remove);
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
withoutDeprecated() {
|
|
91
|
+
this.builder.withoutDeprecated();
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
get properties() {
|
|
95
|
+
return this.builder.properties;
|
|
96
|
+
}
|
|
97
|
+
get fqn() {
|
|
98
|
+
return this.builder.fqn;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.ProjenStruct = ProjenStruct;
|
|
102
|
+
function relativeImport(from, target) {
|
|
103
|
+
const diff = path_1.posix.relative((0, path_1.dirname)(from), target);
|
|
104
|
+
if (!diff) {
|
|
105
|
+
return '.' + path_1.posix.sep;
|
|
106
|
+
}
|
|
107
|
+
return diff + path_1.posix.sep;
|
|
108
|
+
}
|
|
109
|
+
function fqnToPath(fqn) {
|
|
110
|
+
return (0, path_1.join)(...fqn.split('.').slice(1)) + '.ts';
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVuLXN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vcHJvamVuLXN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBNEM7QUFFNUMscUNBQXNDO0FBRXRDLG1DQUFtQztBQUVuQyxpREFBeUQ7QUFPekQsd0NBRW9CO0FBOERwQjs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLGtCQUFTO0lBR3pDLFlBQ1UsU0FBdUMsRUFDdkMsT0FBNEI7UUFFcEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSFQsY0FBUyxHQUFULFNBQVMsQ0FBOEI7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFJcEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQU0sQ0FBQyxRQUFRLENBQUM7WUFDN0IsSUFBSSxFQUFFLGVBQVEsQ0FBQyxTQUFTO1lBQ3hCLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSTtZQUNoRCxHQUFHO1lBQ0gsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJO2dCQUNwQixPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsSUFBSTthQUM3QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFR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QWlCLEVBQUUsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUEvRkQsb0NBK0ZDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBWSxFQUFFLE1BQWM7SUFDbEQsTUFBTSxJQUFJLEdBQUcsWUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFBLGNBQU8sRUFBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLEdBQUcsR0FBRyxZQUFLLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLElBQUksR0FBRyxZQUFLLENBQUMsR0FBRyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFXO0lBQzVCLE9BQU8sSUFBQSxXQUFJLEVBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlybmFtZSwgam9pbiwgcG9zaXggfSBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgRG9jcywgUHJvcGVydHkgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IFR5cGVLaW5kIH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgdHlwZSB7IHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB0eXBlIHsgVHlwZVNjcmlwdEludGVyZmFjZUZpbGVPcHRpb25zIH0gZnJvbSAnLi90cy1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdEludGVyZmFjZUZpbGUgfSBmcm9tICcuL3RzLWludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7XG4gIEhhc1Byb3BlcnRpZXMsXG4gIElTdHJ1Y3RCdWlsZGVyLFxuICBIYXNGdWxseVF1YWxpZmllZE5hbWUsXG4gIEhhc1N0cnVjdFNwZWMsXG59IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgU3RydWN0LFxufSBmcm9tICcuLi9idWlsZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZW5TdHJ1Y3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBuZXcgc3RydWN0XG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2Mgc3RyaW5nIGZvciB0aGUgc3RydWN0XG4gICAqXG4gICAqIEp1c3QgZG9lcyB0aGUgc3VtbWFyeVxuICAgKiBJZiB5b3Ugd2FudCB0byBhZGQgYSBmdWxsIGRlc2NyaXB0aW9uLCB1c2UgYGRvY3NgIGluc3RlYWQuXG4gICAqIFRoaXMgd2lsbCBub3QgYmUgdXNlZCBpZiBgZG9jc2AgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc3RydWN0IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRG9jcyBmb3IgdGhlIHN0cnVjdFxuICAgKlxuICAgKiBVc2UgdGhpcyB0byBhZGQgYSBmdWxsIGRlc2NyaXB0aW9uLlxuICAgKiBJZiB5b3Ugb25seSB3YW50IHRvIGFkZCBhIHN1bW1hcnksIHVzZSBgZGVzY3JpcHRpb25gIGluc3RlYWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSwgdXNlIGBkZXNjcmlwdGlvbmAgaWYgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvY3M/OiBEb2NzO1xuICAvKipcbiAgICogVGhlIGZxbiBvZiB0aGUgc3RydWN0XG4gICAqXG4gICAqIFVzZWQgdG8gYXV0by1hZGQgaW1wb3J0cy5cbiAgICogQWxsIHJlZmVyZW5jZWQgdHlwZXMgYXJlIGxvYWRlZCBiYXNlZCBvbiB0aGUgZnFuIGhpZXJhcmNoeS5cbiAgICpcbiAgICogU2VlIGBpbXBvcnRMb2NhdGlvbnNgIGZvciBjdXN0b21pemF0aW9uIG9wdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAke3Byb2plY3QubmFtZX0uJHtvcHRpb25zLm5hbWV9YFxuICAgKi9cbiAgcmVhZG9ubHkgZnFuPzogc3RyaW5nO1xuICAvKipcbiAgICogT3V0cHV0IGZpbGUgcGF0aFxuICAgKiBAZGVmYXVsdCAtIGluc2lkZSBgc3JjZGlyYCBvciBgb3V0ZGlyYCB3aXRoIHRoZSBmcW4gdHVybmVkIGludG8gYSBwYXRoXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgbG9jYXRpb25zIGFzc2VtYmxpZXMgc2hvdWxkIGJlIGltcG9ydGVkIGZyb21cbiAgICpcbiAgICogQWxsIHR5cGVzIGFyZSBpbXBvcnRlZCBmcm9tIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIG1vZHVsZS5cbiAgICogVGhpcyBtYXAgY2FuIGJlIHVzZWQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGltcG9ydCBsb2NhdGlvbnMuXG4gICAqXG4gICAqIEZvciBsb2NhbCBpbXBvcnRzLCB0aGUgaW1wb3J0IHRyYXZlcnNlIHVwIGEgbnVtYmVyIG9mIGxldmVscyBlcXVpdmFsZW50IHRvIHRoZSBudW1iZXIgb2YgZnFuIHBhcnRzIG9mIHRoZSByZW5kZXJlZCB0eXBlLlxuICAgKiBFLmcuIGlmIHRoZSB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLmludGVyZmFjZWAsIGl0IGlzIGFzc3VtZWQgdG8gYmUgYXQgdGhlIHRvcC1sZXZlbCBhbmQgaW1wb3J0cyBmcm9tIHRoZSBzYW1lIGFzc2VtYmx5IHdvdWxkIGJlIGZyb20gYC4vYC5cbiAgICogSWYgdGhlIHJlbmRlcmVkIHR5cGUgaXMgYHBrZy5uZXN0ZWQuc3ViLmludGVyZmFjZWAgYSBsb2NhbCBpbXBvcnQgd2lsbCBiZSBmcm9tIGAuLi8uLi9gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIGFzc2VtYmx5IG5hbWUgZm9yIGV4dGVybmFsIHBhY2thZ2VzXG4gICAqIGxvY2FsIGltcG9ydHMgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHNcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydExvY2F0aW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgY3JlYXRlZCBvdXRwdXQgYFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlYFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0RmlsZU9wdGlvbnM/OiBPbWl0PFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlT3B0aW9ucywgJ2ltcG9ydExvY2F0aW9ucyc+O1xufVxuXG4vKipcbiAqIEEgY29tcG9uZW50IGdlbmVyYXRpbmcgYSBqc2lpLWNvbXBhdGlibGUgc3RydWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9qZW5TdHJ1Y3QgZXh0ZW5kcyBDb21wb25lbnQgaW1wbGVtZW50cyBJU3RydWN0QnVpbGRlciwgSGFzUHJvcGVydGllcywgSGFzRnVsbHlRdWFsaWZpZWROYW1lLCBIYXNTdHJ1Y3RTcGVjIHtcbiAgcHJpdmF0ZSBidWlsZGVyOiBTdHJ1Y3Q7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHNQcm9qZWN0OiB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHByaXZhdGUgb3B0aW9uczogUHJvamVuU3RydWN0T3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIodHNQcm9qZWN0KTtcblxuICAgIGNvbnN0IGZxbiA9IG9wdGlvbnMuZnFuID8/IGAke3RzUHJvamVjdC5uYW1lfS4ke29wdGlvbnMubmFtZX1gO1xuICAgIHRoaXMuYnVpbGRlciA9IFN0cnVjdC5mcm9tU3BlYyh7XG4gICAgICBraW5kOiBUeXBlS2luZC5JbnRlcmZhY2UsXG4gICAgICBhc3NlbWJseTogZnFuLnNwbGl0KCcuJykuYXQoMCkgPz8gdHNQcm9qZWN0Lm5hbWUsXG4gICAgICBmcW4sXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBkb2NzOiBvcHRpb25zLmRvY3MgPz8ge1xuICAgICAgICBzdW1tYXJ5OiBvcHRpb25zLmRlc2NyaXB0aW9uID8/IG9wdGlvbnMubmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IGJhc2VEaXIgPSB0aGlzLnRzUHJvamVjdC5zcmNkaXIgPz8gdGhpcy50c1Byb2plY3Qub3V0ZGlyO1xuICAgIGNvbnN0IG91dHB1dEZpbGUgPVxuICAgICAgdGhpcy5vcHRpb25zLmZpbGVQYXRoID8/IGpvaW4oYmFzZURpciwgZnFuVG9QYXRoKHRoaXMuYnVpbGRlci5zcGVjLmZxbikpO1xuICAgIG5ldyBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZSh0aGlzLnRzUHJvamVjdCwgb3V0cHV0RmlsZSwgdGhpcy5idWlsZGVyLnNwZWMsIHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucy5vdXRwdXRGaWxlT3B0aW9ucyxcbiAgICAgIGltcG9ydExvY2F0aW9uczoge1xuICAgICAgICBbdGhpcy5idWlsZGVyLnNwZWMuYXNzZW1ibHldOiByZWxhdGl2ZUltcG9ydChvdXRwdXRGaWxlLCBiYXNlRGlyKSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmltcG9ydExvY2F0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRlci5zcGVjO1xuICB9XG4gIGFkZCguLi5wcm9wczogUHJvcGVydHlbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5hZGQoLi4ucHJvcHMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG1peGluKC4uLnNvdXJjZXM6IEhhc1Byb3BlcnRpZXNbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5taXhpbiguLi5zb3VyY2VzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZXBsYWNlKG5hbWU6IHN0cmluZywgcmVwbGFjZW1lbnQ6IFByb3BlcnR5KTogSVN0cnVjdEJ1aWxkZXIge1xuICAgIHRoaXMuYnVpbGRlci5yZXBsYWNlKG5hbWUsIHJlcGxhY2VtZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBtYXAoY2FsbGJhY2tmbjogKHByb3A6IFByb3BlcnR5KSA9PiBQcm9wZXJ0eSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5tYXAoY2FsbGJhY2tmbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdXBkYXRlKG5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPFByb3BlcnR5Pik6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci51cGRhdGUobmFtZSwgdXBkYXRlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB1cGRhdGVFdmVyeShjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLnVwZGF0ZUV2ZXJ5KGNhbGxiYWNrZm4pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHVwZGF0ZUFsbCh1cGRhdGU6IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLnVwZGF0ZUFsbCh1cGRhdGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHJlbmFtZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIucmVuYW1lKGZyb20sIHRvKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBhbGxPcHRpb25hbCgpOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIuYWxsT3B0aW9uYWwoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBmaWx0ZXIocHJlZGljYXRlOiAocHJvcDogUHJvcGVydHkpID0+IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIuZmlsdGVyKHByZWRpY2F0ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgb25seSguLi5rZWVwOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5vbmx5KC4uLmtlZXApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG9taXQoLi4ucmVtb3ZlOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5vbWl0KC4uLnJlbW92ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgd2l0aG91dERlcHJlY2F0ZWQoKTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLndpdGhvdXREZXByZWNhdGVkKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcHVibGljIGdldCBwcm9wZXJ0aWVzKCk6IFByb3BlcnR5W10ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkZXIucHJvcGVydGllcztcbiAgfVxuICBwdWJsaWMgZ2V0IGZxbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkZXIuZnFuO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbGF0aXZlSW1wb3J0KGZyb206IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkaWZmID0gcG9zaXgucmVsYXRpdmUoZGlybmFtZShmcm9tKSwgdGFyZ2V0KTtcbiAgaWYgKCFkaWZmKSB7XG4gICAgcmV0dXJuICcuJyArIHBvc2l4LnNlcDtcbiAgfVxuICByZXR1cm4gZGlmZiArIHBvc2l4LnNlcDtcbn1cblxuZnVuY3Rpb24gZnFuVG9QYXRoKGZxbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGpvaW4oLi4uZnFuLnNwbGl0KCcuJykuc2xpY2UoMSkpICsgJy50cyc7XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { InterfaceType } from '@jsii/spec';
|
|
2
|
+
import type { Project, SourceCodeOptions } from 'projen';
|
|
3
|
+
import { TextFile } from 'projen';
|
|
4
|
+
import type { TypeScriptRendererOptions } from '../renderer';
|
|
5
|
+
/**
|
|
6
|
+
* Options for `TypeScriptInterfaceFile`.
|
|
7
|
+
*/
|
|
8
|
+
export interface TypeScriptInterfaceFileOptions extends TypeScriptRendererOptions, SourceCodeOptions {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A TypeScript interface rendered from a jsii interface specification
|
|
12
|
+
*/
|
|
13
|
+
export declare class TypeScriptInterfaceFile extends TextFile {
|
|
14
|
+
constructor(project: Project, filePath: string, spec: InterfaceType, options?: TypeScriptInterfaceFileOptions);
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeScriptInterfaceFile = void 0;
|
|
4
|
+
const projen_1 = require("projen");
|
|
5
|
+
const renderer_1 = require("../renderer");
|
|
6
|
+
/**
|
|
7
|
+
* A TypeScript interface rendered from a jsii interface specification
|
|
8
|
+
*/
|
|
9
|
+
class TypeScriptInterfaceFile extends projen_1.TextFile {
|
|
10
|
+
constructor(project, filePath, spec, options = {}) {
|
|
11
|
+
super(project, filePath, options);
|
|
12
|
+
const renderer = new renderer_1.TypeScriptRenderer(options);
|
|
13
|
+
this.addLine(`// ${this.marker}`);
|
|
14
|
+
this.addLine(renderer.renderStructSpec(spec));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.TypeScriptInterfaceFile = TypeScriptInterfaceFile;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plbi90cy1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUNBQWtDO0FBRWxDLDBDQUFpRDtBQU9qRDs7R0FFRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsaUJBQVE7SUFDbkQsWUFDRSxPQUFnQixFQUNoQixRQUFnQixFQUNoQixJQUFtQixFQUNuQixVQUEwQyxFQUFFO1FBRTVDLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWxDLE1BQU0sUUFBUSxHQUFHLElBQUksNkJBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBYkQsMERBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEludGVyZmFjZVR5cGUgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB0eXBlIHsgUHJvamVjdCwgU291cmNlQ29kZU9wdGlvbnMgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zIH0gZnJvbSAnLi4vcmVuZGVyZXInO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFJlbmRlcmVyIH0gZnJvbSAnLi4vcmVuZGVyZXInO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVNjcmlwdEludGVyZmFjZUZpbGVPcHRpb25zIGV4dGVuZHMgVHlwZVNjcmlwdFJlbmRlcmVyT3B0aW9ucywgU291cmNlQ29kZU9wdGlvbnMge31cblxuLyoqXG4gKiBBIFR5cGVTY3JpcHQgaW50ZXJmYWNlIHJlbmRlcmVkIGZyb20gYSBqc2lpIGludGVyZmFjZSBzcGVjaWZpY2F0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IFByb2plY3QsXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgICBzcGVjOiBJbnRlcmZhY2VUeXBlLFxuICAgIG9wdGlvbnM6IFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlT3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCByZW5kZXJlciA9IG5ldyBUeXBlU2NyaXB0UmVuZGVyZXIob3B0aW9ucyk7XG4gICAgdGhpcy5hZGRMaW5lKGAvLyAke3RoaXMubWFya2VyfWApO1xuICAgIHRoaXMuYWRkTGluZShyZW5kZXJlci5yZW5kZXJTdHJ1Y3RTcGVjKHNwZWMpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './typescript';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./typescript"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVuZGVyZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXNjcmlwdCc7XG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { InterfaceType, Property } from '@jsii/spec';
|
|
2
|
+
import type { HasStructSpec } from '../builder';
|
|
3
|
+
/**
|
|
4
|
+
* Options for `TypeScriptRenderer`.
|
|
5
|
+
*/
|
|
6
|
+
export interface TypeScriptRendererOptions {
|
|
7
|
+
/**
|
|
8
|
+
* The module locations assemblies should be imported from
|
|
9
|
+
*
|
|
10
|
+
* All types are imported from the top-level of the module.
|
|
11
|
+
* This map can be used to overwrite the default import locations.
|
|
12
|
+
*
|
|
13
|
+
* For local imports, the import traverse up a number of levels equivalent to the number of fqn parts of the rendered type.
|
|
14
|
+
* E.g. if the the rendered type is `pkg.interface`, it is assumed to be at the top-level and imports from the same assembly would be from `./`.
|
|
15
|
+
* If the rendered type is `pkg.nested.sub.interface` a local import will be from `../../`.
|
|
16
|
+
*
|
|
17
|
+
* @default - uses the assembly name for external packages
|
|
18
|
+
* local imports traverse up a number of levels equivalent to the number of fqn parts
|
|
19
|
+
*/
|
|
20
|
+
readonly importLocations?: Record<string, string>;
|
|
21
|
+
/**
|
|
22
|
+
* Indentation size
|
|
23
|
+
*
|
|
24
|
+
* @default 2
|
|
25
|
+
*/
|
|
26
|
+
readonly indent?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Use explicit `type` imports when importing referenced modules.
|
|
29
|
+
*
|
|
30
|
+
* @see https://www.typescriptlang.org/docs/handbook/modules.html#importing-types
|
|
31
|
+
* @default true
|
|
32
|
+
*/
|
|
33
|
+
readonly useTypeImports?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Jsii to TypeScript renderer
|
|
37
|
+
*/
|
|
38
|
+
export declare class TypeScriptRenderer {
|
|
39
|
+
private buffer;
|
|
40
|
+
private options;
|
|
41
|
+
constructor(options?: TypeScriptRendererOptions);
|
|
42
|
+
/**
|
|
43
|
+
* Render something that has a struct spec
|
|
44
|
+
*/
|
|
45
|
+
renderStruct(struct: HasStructSpec): string;
|
|
46
|
+
/**
|
|
47
|
+
* Render a jsii InterfaceType spec
|
|
48
|
+
*/
|
|
49
|
+
renderStructSpec(spec: InterfaceType): string;
|
|
50
|
+
protected renderImports(modules: Map<string, Set<string>>): void;
|
|
51
|
+
protected renderProperty(p: Property, containingFqn: string): void;
|
|
52
|
+
protected renderDocBlock(lines: string[]): void;
|
|
53
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeScriptRenderer = void 0;
|
|
4
|
+
const spec_1 = require("@jsii/spec");
|
|
5
|
+
const private_1 = require("../private");
|
|
6
|
+
/**
|
|
7
|
+
* Jsii to TypeScript renderer
|
|
8
|
+
*/
|
|
9
|
+
class TypeScriptRenderer {
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
this.options = {
|
|
12
|
+
importLocations: options.importLocations ?? {},
|
|
13
|
+
indent: options.indent ?? 2,
|
|
14
|
+
useTypeImports: options.useTypeImports ?? true,
|
|
15
|
+
};
|
|
16
|
+
this.buffer = new CodeBuffer(' '.repeat(this.options.indent));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Render something that has a struct spec
|
|
20
|
+
*/
|
|
21
|
+
renderStruct(struct) {
|
|
22
|
+
return this.renderStructSpec(struct.spec);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Render a jsii InterfaceType spec
|
|
26
|
+
*/
|
|
27
|
+
renderStructSpec(spec) {
|
|
28
|
+
this.buffer.flush();
|
|
29
|
+
this.renderImports(extractImports(spec, this.options.importLocations));
|
|
30
|
+
this.buffer.line();
|
|
31
|
+
this.renderDocBlock(docsToLines(spec.docs));
|
|
32
|
+
this.buffer.open(`export interface ${spec.name} {`);
|
|
33
|
+
spec.properties?.forEach((p) => this.renderProperty(p, spec.fqn));
|
|
34
|
+
this.buffer.close('}');
|
|
35
|
+
this.buffer.line();
|
|
36
|
+
return this.buffer.flush().join('\n');
|
|
37
|
+
}
|
|
38
|
+
renderImports(modules) {
|
|
39
|
+
Array.from(modules.keys())
|
|
40
|
+
.sort(private_1.comparePath)
|
|
41
|
+
.forEach((mod) => {
|
|
42
|
+
const imports = Array.from(modules.get(mod)?.values() || []);
|
|
43
|
+
const importStmt = this.options.useTypeImports
|
|
44
|
+
? 'import type'
|
|
45
|
+
: 'import';
|
|
46
|
+
this.buffer.line(`${importStmt} { ${imports
|
|
47
|
+
.sort(private_1.compareLowerCase)
|
|
48
|
+
.join(', ')} } from '${mod}';`);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
renderProperty(p, containingFqn) {
|
|
52
|
+
const docs = structuredClone(p.docs);
|
|
53
|
+
if (docs) {
|
|
54
|
+
this.renderDocBlock(docsToLines(docs));
|
|
55
|
+
}
|
|
56
|
+
this.buffer.line(`readonly ${p.name}${p.optional ? '?' : ''}: ${typeRefToType(p.type, containingFqn)};`);
|
|
57
|
+
}
|
|
58
|
+
renderDocBlock(lines) {
|
|
59
|
+
if (!lines.length) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.buffer.line('/**');
|
|
63
|
+
lines.forEach((line) => this.buffer.line(` * ${line}`));
|
|
64
|
+
this.buffer.line(' */');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.TypeScriptRenderer = TypeScriptRenderer;
|
|
68
|
+
class CodeBuffer {
|
|
69
|
+
constructor(indent = ' ') {
|
|
70
|
+
this.indent = indent;
|
|
71
|
+
this.lines = new Array();
|
|
72
|
+
this.indentLevel = 0;
|
|
73
|
+
}
|
|
74
|
+
flush() {
|
|
75
|
+
const current = this.lines;
|
|
76
|
+
this.reset();
|
|
77
|
+
return current;
|
|
78
|
+
}
|
|
79
|
+
line(code) {
|
|
80
|
+
const prefix = this.indent.repeat(this.indentLevel);
|
|
81
|
+
this.lines.push((prefix + (code ?? '')).trimEnd());
|
|
82
|
+
}
|
|
83
|
+
open(code) {
|
|
84
|
+
if (code) {
|
|
85
|
+
this.line(code);
|
|
86
|
+
}
|
|
87
|
+
this.indentLevel++;
|
|
88
|
+
}
|
|
89
|
+
close(code) {
|
|
90
|
+
if (this.indentLevel === 0) {
|
|
91
|
+
throw new Error('Cannot decrease indent level below zero');
|
|
92
|
+
}
|
|
93
|
+
this.indentLevel--;
|
|
94
|
+
if (code) {
|
|
95
|
+
this.line(code);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
reset() {
|
|
99
|
+
this.lines = new Array();
|
|
100
|
+
this.indentLevel = 0;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function docsToLines(docs) {
|
|
104
|
+
if (!docs) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
const lines = new Array();
|
|
108
|
+
if (docs.summary) {
|
|
109
|
+
lines.push(docs.summary);
|
|
110
|
+
}
|
|
111
|
+
if (docs.remarks) {
|
|
112
|
+
lines.push(...docs.remarks.split('\n'));
|
|
113
|
+
}
|
|
114
|
+
if (docs.default) {
|
|
115
|
+
lines.push(`@default ${docs.default}`);
|
|
116
|
+
}
|
|
117
|
+
if (docs.deprecated) {
|
|
118
|
+
lines.push(`@deprecated ${docs.deprecated}`);
|
|
119
|
+
}
|
|
120
|
+
if (docs.stability) {
|
|
121
|
+
lines.push(`@stability ${docs.stability}`);
|
|
122
|
+
}
|
|
123
|
+
if (docs.custom) {
|
|
124
|
+
Object.entries(docs.custom).forEach((entry) => {
|
|
125
|
+
const [tag, value] = entry;
|
|
126
|
+
lines.push(`@${tag} ${value}`);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return lines;
|
|
130
|
+
}
|
|
131
|
+
function typeRefToType(t, containingFqn) {
|
|
132
|
+
if ((0, spec_1.isPrimitiveTypeReference)(t)) {
|
|
133
|
+
return t.primitive;
|
|
134
|
+
}
|
|
135
|
+
if ((0, spec_1.isNamedTypeReference)(t)) {
|
|
136
|
+
return t.fqn.split('.').slice(1).join('.');
|
|
137
|
+
}
|
|
138
|
+
if ((0, spec_1.isCollectionTypeReference)(t)) {
|
|
139
|
+
switch (t.collection.kind) {
|
|
140
|
+
case spec_1.CollectionKind.Array:
|
|
141
|
+
return `Array<${typeRefToType(t.collection.elementtype, containingFqn)}>`;
|
|
142
|
+
case spec_1.CollectionKind.Map:
|
|
143
|
+
return `Record<string, ${typeRefToType(t.collection.elementtype, containingFqn)}>`;
|
|
144
|
+
default:
|
|
145
|
+
return 'any';
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if ((0, spec_1.isUnionTypeReference)(t)) {
|
|
149
|
+
return t.union.types
|
|
150
|
+
.map((ut) => typeRefToType(ut, containingFqn))
|
|
151
|
+
.join(' | ');
|
|
152
|
+
}
|
|
153
|
+
return 'any';
|
|
154
|
+
}
|
|
155
|
+
function extractImports(spec, importLocations) {
|
|
156
|
+
const refs = spec.properties?.flatMap((p) => collectFQNs(p.type)) || [];
|
|
157
|
+
return refs.reduce((mods, ref) => {
|
|
158
|
+
const packageName = fqnToImportName(ref, spec.fqn, importLocations);
|
|
159
|
+
const imports = mods.get(packageName) || new Set();
|
|
160
|
+
const importName = ref.split('.').slice(1)[0] || ref;
|
|
161
|
+
return mods.set(packageName, imports.add(importName));
|
|
162
|
+
}, new Map());
|
|
163
|
+
}
|
|
164
|
+
function fqnToImportName(fqn, importingFqn, importLocations) {
|
|
165
|
+
const localAssembly = importingFqn.split('.', 1)[0];
|
|
166
|
+
const importAssembly = fqn.split('.', 1)[0];
|
|
167
|
+
// we have a custom import path
|
|
168
|
+
if (importLocations[importAssembly]) {
|
|
169
|
+
return importLocations[importAssembly];
|
|
170
|
+
}
|
|
171
|
+
// this is the same assembly, try to guess the path to the root
|
|
172
|
+
if (importAssembly === localAssembly) {
|
|
173
|
+
const fqnParts = importingFqn.split('.').length;
|
|
174
|
+
if (fqnParts <= 2) {
|
|
175
|
+
return './';
|
|
176
|
+
}
|
|
177
|
+
return '../'.repeat(fqnParts - 2);
|
|
178
|
+
}
|
|
179
|
+
// regular third party module
|
|
180
|
+
return importAssembly;
|
|
181
|
+
}
|
|
182
|
+
function collectFQNs(t) {
|
|
183
|
+
if ((0, spec_1.isNamedTypeReference)(t)) {
|
|
184
|
+
return [t.fqn];
|
|
185
|
+
}
|
|
186
|
+
if ((0, spec_1.isUnionTypeReference)(t)) {
|
|
187
|
+
return t.union.types.flatMap(collectFQNs);
|
|
188
|
+
}
|
|
189
|
+
if ((0, spec_1.isCollectionTypeReference)(t)) {
|
|
190
|
+
return collectFQNs(t.collection.elementtype);
|
|
191
|
+
}
|
|
192
|
+
return [];
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlci90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLHFDQU1vQjtBQUVwQix3Q0FBMkQ7QUFxQzNEOztHQUVHO0FBQ0gsTUFBYSxrQkFBa0I7SUFJN0IsWUFBbUIsVUFBcUMsRUFBRTtRQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlLElBQUksRUFBRTtZQUM5QyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQzNCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUk7U0FDL0MsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLE1BQXFCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxJQUFtQjtRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsYUFBYSxDQUFDLE9BQWlDO1FBQ3ZELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxxQkFBVyxDQUFDO2FBQ2pCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYztnQkFDNUMsQ0FBQyxDQUFDLGFBQWE7Z0JBQ2YsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLEdBQUcsVUFBVSxNQUFNLE9BQU87aUJBQ3ZCLElBQUksQ0FBQywwQkFBZ0IsQ0FBQztpQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUNqQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsY0FBYyxDQUFDLENBQVcsRUFBRSxhQUFxQjtRQUN6RCxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxZQUFZLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssYUFBYSxDQUMxRCxDQUFDLENBQUMsSUFBSSxFQUNOLGFBQWEsQ0FDZCxHQUFHLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBZTtRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBNUVELGdEQTRFQztBQUVELE1BQU0sVUFBVTtJQUlkLFlBQW9DLFNBQVMsR0FBRztRQUFaLFdBQU0sR0FBTixNQUFNLENBQU07UUFIeEMsVUFBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7SUFFMkIsQ0FBQztJQUU3QyxLQUFLO1FBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sSUFBSSxDQUFDLElBQWE7UUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQWE7UUFDdkIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sS0FBSyxDQUFDLElBQWE7UUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUFFRCxTQUFTLFdBQVcsQ0FBQyxJQUFXO0lBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFFbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM1QyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsQ0FBZ0IsRUFBRSxhQUFxQjtJQUM1RCxJQUFJLElBQUEsK0JBQXdCLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksSUFBQSwyQkFBb0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxJQUFBLGdDQUF5QixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLEtBQUsscUJBQWMsQ0FBQyxLQUFLO2dCQUN2QixPQUFPLFNBQVMsYUFBYSxDQUMzQixDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFDeEIsYUFBYSxDQUNkLEdBQUcsQ0FBQztZQUNQLEtBQUsscUJBQWMsQ0FBQyxHQUFHO2dCQUNyQixPQUFPLGtCQUFrQixhQUFhLENBQ3BDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUN4QixhQUFhLENBQ2QsR0FBRyxDQUFDO1lBQ1A7Z0JBQ0UsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLElBQUEsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSzthQUNqQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7YUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsSUFBbUIsRUFDbkIsZUFBdUM7SUFFdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQy9CLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDbkQsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBdUIsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FDdEIsR0FBVyxFQUNYLFlBQW9CLEVBQ3BCLGVBQXVDO0lBRXZDLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVDLCtCQUErQjtJQUMvQixJQUFJLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsSUFBSSxjQUFjLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDaEQsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxDQUFnQjtJQUNuQyxJQUFJLElBQUEsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLElBQUEsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxJQUFBLGdDQUF5QixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBEb2NzLFxuICBJbnRlcmZhY2VUeXBlLFxuICBQcm9wZXJ0eSxcbiAgVHlwZVJlZmVyZW5jZSxcbn0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQge1xuICBDb2xsZWN0aW9uS2luZCxcbiAgaXNDb2xsZWN0aW9uVHlwZVJlZmVyZW5jZSxcbiAgaXNOYW1lZFR5cGVSZWZlcmVuY2UsXG4gIGlzUHJpbWl0aXZlVHlwZVJlZmVyZW5jZSxcbiAgaXNVbmlvblR5cGVSZWZlcmVuY2UsXG59IGZyb20gJ0Bqc2lpL3NwZWMnO1xuaW1wb3J0IHR5cGUgeyBIYXNTdHJ1Y3RTcGVjIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBjb21wYXJlTG93ZXJDYXNlLCBjb21wYXJlUGF0aCB9IGZyb20gJy4uL3ByaXZhdGUnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBUeXBlU2NyaXB0UmVuZGVyZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVTY3JpcHRSZW5kZXJlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1vZHVsZSBsb2NhdGlvbnMgYXNzZW1ibGllcyBzaG91bGQgYmUgaW1wb3J0ZWQgZnJvbVxuICAgKlxuICAgKiBBbGwgdHlwZXMgYXJlIGltcG9ydGVkIGZyb20gdGhlIHRvcC1sZXZlbCBvZiB0aGUgbW9kdWxlLlxuICAgKiBUaGlzIG1hcCBjYW4gYmUgdXNlZCB0byBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgaW1wb3J0IGxvY2F0aW9ucy5cbiAgICpcbiAgICogRm9yIGxvY2FsIGltcG9ydHMsIHRoZSBpbXBvcnQgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHMgb2YgdGhlIHJlbmRlcmVkIHR5cGUuXG4gICAqIEUuZy4gaWYgdGhlIHRoZSByZW5kZXJlZCB0eXBlIGlzIGBwa2cuaW50ZXJmYWNlYCwgaXQgaXMgYXNzdW1lZCB0byBiZSBhdCB0aGUgdG9wLWxldmVsIGFuZCBpbXBvcnRzIGZyb20gdGhlIHNhbWUgYXNzZW1ibHkgd291bGQgYmUgZnJvbSBgLi9gLlxuICAgKiBJZiB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLm5lc3RlZC5zdWIuaW50ZXJmYWNlYCBhIGxvY2FsIGltcG9ydCB3aWxsIGJlIGZyb20gYC4uLy4uL2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgYXNzZW1ibHkgbmFtZSBmb3IgZXh0ZXJuYWwgcGFja2FnZXNcbiAgICogbG9jYWwgaW1wb3J0cyB0cmF2ZXJzZSB1cCBhIG51bWJlciBvZiBsZXZlbHMgZXF1aXZhbGVudCB0byB0aGUgbnVtYmVyIG9mIGZxbiBwYXJ0c1xuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0TG9jYXRpb25zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogSW5kZW50YXRpb24gc2l6ZVxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBpbmRlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFVzZSBleHBsaWNpdCBgdHlwZWAgaW1wb3J0cyB3aGVuIGltcG9ydGluZyByZWZlcmVuY2VkIG1vZHVsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svbW9kdWxlcy5odG1sI2ltcG9ydGluZy10eXBlc1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1c2VUeXBlSW1wb3J0cz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogSnNpaSB0byBUeXBlU2NyaXB0IHJlbmRlcmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0UmVuZGVyZXIge1xuICBwcml2YXRlIGJ1ZmZlcjogQ29kZUJ1ZmZlcjtcbiAgcHJpdmF0ZSBvcHRpb25zOiBSZXF1aXJlZDxUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogVHlwZVNjcmlwdFJlbmRlcmVyT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgaW1wb3J0TG9jYXRpb25zOiBvcHRpb25zLmltcG9ydExvY2F0aW9ucyA/PyB7fSxcbiAgICAgIGluZGVudDogb3B0aW9ucy5pbmRlbnQgPz8gMixcbiAgICAgIHVzZVR5cGVJbXBvcnRzOiBvcHRpb25zLnVzZVR5cGVJbXBvcnRzID8/IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLmJ1ZmZlciA9IG5ldyBDb2RlQnVmZmVyKCcgJy5yZXBlYXQodGhpcy5vcHRpb25zLmluZGVudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBzb21ldGhpbmcgdGhhdCBoYXMgYSBzdHJ1Y3Qgc3BlY1xuICAgKi9cbiAgcHVibGljIHJlbmRlclN0cnVjdChzdHJ1Y3Q6IEhhc1N0cnVjdFNwZWMpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclN0cnVjdFNwZWMoc3RydWN0LnNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhIGpzaWkgSW50ZXJmYWNlVHlwZSBzcGVjXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyU3RydWN0U3BlYyhzcGVjOiBJbnRlcmZhY2VUeXBlKTogc3RyaW5nIHtcbiAgICB0aGlzLmJ1ZmZlci5mbHVzaCgpO1xuXG4gICAgdGhpcy5yZW5kZXJJbXBvcnRzKGV4dHJhY3RJbXBvcnRzKHNwZWMsIHRoaXMub3B0aW9ucy5pbXBvcnRMb2NhdGlvbnMpKTtcbiAgICB0aGlzLmJ1ZmZlci5saW5lKCk7XG4gICAgdGhpcy5yZW5kZXJEb2NCbG9jayhkb2NzVG9MaW5lcyhzcGVjLmRvY3MpKTtcbiAgICB0aGlzLmJ1ZmZlci5vcGVuKGBleHBvcnQgaW50ZXJmYWNlICR7c3BlYy5uYW1lfSB7YCk7XG4gICAgc3BlYy5wcm9wZXJ0aWVzPy5mb3JFYWNoKChwKSA9PiB0aGlzLnJlbmRlclByb3BlcnR5KHAsIHNwZWMuZnFuKSk7XG4gICAgdGhpcy5idWZmZXIuY2xvc2UoJ30nKTtcbiAgICB0aGlzLmJ1ZmZlci5saW5lKCk7XG5cbiAgICByZXR1cm4gdGhpcy5idWZmZXIuZmx1c2goKS5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJbXBvcnRzKG1vZHVsZXM6IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+Pikge1xuICAgIEFycmF5LmZyb20obW9kdWxlcy5rZXlzKCkpXG4gICAgICAuc29ydChjb21wYXJlUGF0aClcbiAgICAgIC5mb3JFYWNoKChtb2QpID0+IHtcbiAgICAgICAgY29uc3QgaW1wb3J0cyA9IEFycmF5LmZyb20obW9kdWxlcy5nZXQobW9kKT8udmFsdWVzKCkgfHwgW10pO1xuICAgICAgICBjb25zdCBpbXBvcnRTdG10ID0gdGhpcy5vcHRpb25zLnVzZVR5cGVJbXBvcnRzXG4gICAgICAgICAgPyAnaW1wb3J0IHR5cGUnXG4gICAgICAgICAgOiAnaW1wb3J0JztcbiAgICAgICAgdGhpcy5idWZmZXIubGluZShcbiAgICAgICAgICBgJHtpbXBvcnRTdG10fSB7ICR7aW1wb3J0c1xuICAgICAgICAgICAgLnNvcnQoY29tcGFyZUxvd2VyQ2FzZSlcbiAgICAgICAgICAgIC5qb2luKCcsICcpfSB9IGZyb20gJyR7bW9kfSc7YCxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnR5KHA6IFByb3BlcnR5LCBjb250YWluaW5nRnFuOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkb2NzID0gc3RydWN0dXJlZENsb25lKHAuZG9jcyk7XG4gICAgaWYgKGRvY3MpIHtcbiAgICAgIHRoaXMucmVuZGVyRG9jQmxvY2soZG9jc1RvTGluZXMoZG9jcykpO1xuICAgIH1cblxuICAgIHRoaXMuYnVmZmVyLmxpbmUoXG4gICAgICBgcmVhZG9ubHkgJHtwLm5hbWV9JHtwLm9wdGlvbmFsID8gJz8nIDogJyd9OiAke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgIHAudHlwZSxcbiAgICAgICAgY29udGFpbmluZ0ZxbixcbiAgICAgICl9O2AsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJEb2NCbG9jayhsaW5lczogc3RyaW5nW10pIHtcbiAgICBpZiAoIWxpbmVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYnVmZmVyLmxpbmUoJy8qKicpO1xuICAgIGxpbmVzLmZvckVhY2goKGxpbmUpID0+IHRoaXMuYnVmZmVyLmxpbmUoYCAqICR7bGluZX1gKSk7XG4gICAgdGhpcy5idWZmZXIubGluZSgnICovJyk7XG4gIH1cbn1cblxuY2xhc3MgQ29kZUJ1ZmZlciB7XG4gIHByaXZhdGUgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBwcml2YXRlIGluZGVudExldmVsID0gMDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbmRlbnQgPSAnICcpIHt9XG5cbiAgcHVibGljIGZsdXNoKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5saW5lcztcbiAgICB0aGlzLnJlc2V0KCk7XG5cbiAgICByZXR1cm4gY3VycmVudDtcbiAgfVxuXG4gIHB1YmxpYyBsaW5lKGNvZGU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmluZGVudC5yZXBlYXQodGhpcy5pbmRlbnRMZXZlbCk7XG4gICAgdGhpcy5saW5lcy5wdXNoKChwcmVmaXggKyAoY29kZSA/PyAnJykpLnRyaW1FbmQoKSk7XG4gIH1cblxuICBwdWJsaWMgb3Blbihjb2RlPzogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHRoaXMubGluZShjb2RlKTtcbiAgICB9XG5cbiAgICB0aGlzLmluZGVudExldmVsKys7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoY29kZT86IHN0cmluZykge1xuICAgIGlmICh0aGlzLmluZGVudExldmVsID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWNyZWFzZSBpbmRlbnQgbGV2ZWwgYmVsb3cgemVybycpO1xuICAgIH1cbiAgICB0aGlzLmluZGVudExldmVsLS07XG5cbiAgICBpZiAoY29kZSkge1xuICAgICAgdGhpcy5saW5lKGNvZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5saW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgdGhpcy5pbmRlbnRMZXZlbCA9IDA7XG4gIH1cbn1cblxuZnVuY3Rpb24gZG9jc1RvTGluZXMoZG9jcz86IERvY3MpOiBzdHJpbmdbXSB7XG4gIGlmICghZG9jcykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBpZiAoZG9jcy5zdW1tYXJ5KSB7XG4gICAgbGluZXMucHVzaChkb2NzLnN1bW1hcnkpO1xuICB9XG4gIGlmIChkb2NzLnJlbWFya3MpIHtcbiAgICBsaW5lcy5wdXNoKC4uLmRvY3MucmVtYXJrcy5zcGxpdCgnXFxuJykpO1xuICB9XG4gIGlmIChkb2NzLmRlZmF1bHQpIHtcbiAgICBsaW5lcy5wdXNoKGBAZGVmYXVsdCAke2RvY3MuZGVmYXVsdH1gKTtcbiAgfVxuICBpZiAoZG9jcy5kZXByZWNhdGVkKSB7XG4gICAgbGluZXMucHVzaChgQGRlcHJlY2F0ZWQgJHtkb2NzLmRlcHJlY2F0ZWR9YCk7XG4gIH1cbiAgaWYgKGRvY3Muc3RhYmlsaXR5KSB7XG4gICAgbGluZXMucHVzaChgQHN0YWJpbGl0eSAke2RvY3Muc3RhYmlsaXR5fWApO1xuICB9XG4gIGlmIChkb2NzLmN1c3RvbSkge1xuICAgIE9iamVjdC5lbnRyaWVzKGRvY3MuY3VzdG9tKS5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgW3RhZywgdmFsdWVdID0gZW50cnk7XG4gICAgICBsaW5lcy5wdXNoKGBAJHt0YWd9ICR7dmFsdWV9YCk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHR5cGVSZWZUb1R5cGUodDogVHlwZVJlZmVyZW5jZSwgY29udGFpbmluZ0Zxbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGlzUHJpbWl0aXZlVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnByaW1pdGl2ZTtcbiAgfVxuXG4gIGlmIChpc05hbWVkVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LmZxbi5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKTtcbiAgfVxuXG4gIGlmIChpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlKHQpKSB7XG4gICAgc3dpdGNoICh0LmNvbGxlY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSBDb2xsZWN0aW9uS2luZC5BcnJheTpcbiAgICAgICAgcmV0dXJuIGBBcnJheTwke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgICAgdC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlLFxuICAgICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICAgICl9PmA7XG4gICAgICBjYXNlIENvbGxlY3Rpb25LaW5kLk1hcDpcbiAgICAgICAgcmV0dXJuIGBSZWNvcmQ8c3RyaW5nLCAke3R5cGVSZWZUb1R5cGUoXG4gICAgICAgICAgdC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlLFxuICAgICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICAgICl9PmA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgfVxuICB9XG4gIGlmIChpc1VuaW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnVuaW9uLnR5cGVzXG4gICAgICAubWFwKCh1dCkgPT4gdHlwZVJlZlRvVHlwZSh1dCwgY29udGFpbmluZ0ZxbikpXG4gICAgICAuam9pbignIHwgJyk7XG4gIH1cblxuICByZXR1cm4gJ2FueSc7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RJbXBvcnRzKFxuICBzcGVjOiBJbnRlcmZhY2VUeXBlLFxuICBpbXBvcnRMb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4ge1xuICBjb25zdCByZWZzID0gc3BlYy5wcm9wZXJ0aWVzPy5mbGF0TWFwKChwKSA9PiBjb2xsZWN0RlFOcyhwLnR5cGUpKSB8fCBbXTtcbiAgcmV0dXJuIHJlZnMucmVkdWNlKChtb2RzLCByZWYpID0+IHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGZxblRvSW1wb3J0TmFtZShyZWYsIHNwZWMuZnFuLCBpbXBvcnRMb2NhdGlvbnMpO1xuICAgIGNvbnN0IGltcG9ydHMgPSBtb2RzLmdldChwYWNrYWdlTmFtZSkgfHwgbmV3IFNldCgpO1xuICAgIGNvbnN0IGltcG9ydE5hbWUgPSByZWYuc3BsaXQoJy4nKS5zbGljZSgxKVswXSB8fCByZWY7XG4gICAgcmV0dXJuIG1vZHMuc2V0KHBhY2thZ2VOYW1lLCBpbXBvcnRzLmFkZChpbXBvcnROYW1lKSk7XG4gIH0sIG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKSk7XG59XG5cbmZ1bmN0aW9uIGZxblRvSW1wb3J0TmFtZShcbiAgZnFuOiBzdHJpbmcsXG4gIGltcG9ydGluZ0Zxbjogc3RyaW5nLFxuICBpbXBvcnRMb2NhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBzdHJpbmcge1xuICBjb25zdCBsb2NhbEFzc2VtYmx5ID0gaW1wb3J0aW5nRnFuLnNwbGl0KCcuJywgMSlbMF07XG4gIGNvbnN0IGltcG9ydEFzc2VtYmx5ID0gZnFuLnNwbGl0KCcuJywgMSlbMF07XG5cbiAgLy8gd2UgaGF2ZSBhIGN1c3RvbSBpbXBvcnQgcGF0aFxuICBpZiAoaW1wb3J0TG9jYXRpb25zW2ltcG9ydEFzc2VtYmx5XSkge1xuICAgIHJldHVybiBpbXBvcnRMb2NhdGlvbnNbaW1wb3J0QXNzZW1ibHldO1xuICB9XG5cbiAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhc3NlbWJseSwgdHJ5IHRvIGd1ZXNzIHRoZSBwYXRoIHRvIHRoZSByb290XG4gIGlmIChpbXBvcnRBc3NlbWJseSA9PT0gbG9jYWxBc3NlbWJseSkge1xuICAgIGNvbnN0IGZxblBhcnRzID0gaW1wb3J0aW5nRnFuLnNwbGl0KCcuJykubGVuZ3RoO1xuICAgIGlmIChmcW5QYXJ0cyA8PSAyKSB7XG4gICAgICByZXR1cm4gJy4vJztcbiAgICB9XG4gICAgcmV0dXJuICcuLi8nLnJlcGVhdChmcW5QYXJ0cyAtIDIpO1xuICB9XG5cbiAgLy8gcmVndWxhciB0aGlyZCBwYXJ0eSBtb2R1bGVcbiAgcmV0dXJuIGltcG9ydEFzc2VtYmx5O1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0RlFOcyh0OiBUeXBlUmVmZXJlbmNlKTogc3RyaW5nW10ge1xuICBpZiAoaXNOYW1lZFR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gW3QuZnFuXTtcbiAgfVxuXG4gIGlmIChpc1VuaW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHJldHVybiB0LnVuaW9uLnR5cGVzLmZsYXRNYXAoY29sbGVjdEZRTnMpO1xuICB9XG5cbiAgaWYgKGlzQ29sbGVjdGlvblR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gY29sbGVjdEZRTnModC5jb2xsZWN0aW9uLmVsZW1lbnR0eXBlKTtcbiAgfVxuXG4gIHJldHVybiBbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mrgrain/jsii-struct-builder",
|
|
3
|
+
"description": "Build jsii structs with ease",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git@github.com:mrgrain/jsii-struct-builder.git"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "npx projen build",
|
|
10
|
+
"bump": "npx projen bump",
|
|
11
|
+
"clobber": "npx projen clobber",
|
|
12
|
+
"compile": "npx projen compile",
|
|
13
|
+
"default": "npx projen default",
|
|
14
|
+
"eject": "npx projen eject",
|
|
15
|
+
"eslint": "npx projen eslint",
|
|
16
|
+
"logo": "npx projen logo",
|
|
17
|
+
"package": "npx projen package",
|
|
18
|
+
"post-compile": "npx projen post-compile",
|
|
19
|
+
"post-upgrade": "npx projen post-upgrade",
|
|
20
|
+
"pre-compile": "npx projen pre-compile",
|
|
21
|
+
"release": "npx projen release",
|
|
22
|
+
"test": "npx projen test",
|
|
23
|
+
"test:watch": "npx projen test:watch",
|
|
24
|
+
"unbump": "npx projen unbump",
|
|
25
|
+
"upgrade": "npx projen upgrade",
|
|
26
|
+
"watch": "npx projen watch",
|
|
27
|
+
"projen": "npx projen"
|
|
28
|
+
},
|
|
29
|
+
"author": {
|
|
30
|
+
"name": "Momo Kornher",
|
|
31
|
+
"url": "https://moritzkornher.de",
|
|
32
|
+
"organization": false
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@stylistic/eslint-plugin": "^2",
|
|
36
|
+
"@types/jest": "^29.5.14",
|
|
37
|
+
"@types/node": "ts5.8",
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "^8",
|
|
39
|
+
"@typescript-eslint/parser": "^8",
|
|
40
|
+
"commit-and-tag-version": "^12",
|
|
41
|
+
"constructs": "^10.0.0",
|
|
42
|
+
"eslint": "^9",
|
|
43
|
+
"eslint-import-resolver-typescript": "^3.10.1",
|
|
44
|
+
"eslint-plugin-import": "^2.32.0",
|
|
45
|
+
"jest": "^29.7.0",
|
|
46
|
+
"jest-junit": "^16",
|
|
47
|
+
"mrpj": "^0.2.5",
|
|
48
|
+
"projen": "^0.98.4",
|
|
49
|
+
"ts-jest": "^29.4.5",
|
|
50
|
+
"ts-node": "^10.9.2",
|
|
51
|
+
"typescript": "5.8.x"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"projen": "x.x.x"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@jsii/spec": "^1.117.0"
|
|
58
|
+
},
|
|
59
|
+
"engines": {
|
|
60
|
+
"node": ">=18"
|
|
61
|
+
},
|
|
62
|
+
"main": "lib/index.js",
|
|
63
|
+
"license": "Apache-2.0",
|
|
64
|
+
"homepage": "https://github.com/mrgrain/jsii-struct-builder",
|
|
65
|
+
"publishConfig": {
|
|
66
|
+
"access": "public"
|
|
67
|
+
},
|
|
68
|
+
"version": "0.7.64",
|
|
69
|
+
"jest": {
|
|
70
|
+
"coverageProvider": "v8",
|
|
71
|
+
"testMatch": [
|
|
72
|
+
"<rootDir>/@(src|test)/**/*(*.)@(spec|test).ts?(x)",
|
|
73
|
+
"<rootDir>/@(src|test)/**/__tests__/**/*.ts?(x)",
|
|
74
|
+
"<rootDir>/@(projenrc)/**/*(*.)@(spec|test).ts?(x)",
|
|
75
|
+
"<rootDir>/@(projenrc)/**/__tests__/**/*.ts?(x)"
|
|
76
|
+
],
|
|
77
|
+
"clearMocks": true,
|
|
78
|
+
"collectCoverage": true,
|
|
79
|
+
"coverageReporters": [
|
|
80
|
+
"json",
|
|
81
|
+
"lcov",
|
|
82
|
+
"clover",
|
|
83
|
+
"cobertura",
|
|
84
|
+
"text"
|
|
85
|
+
],
|
|
86
|
+
"coverageDirectory": "coverage",
|
|
87
|
+
"coveragePathIgnorePatterns": [
|
|
88
|
+
"/node_modules/"
|
|
89
|
+
],
|
|
90
|
+
"testPathIgnorePatterns": [
|
|
91
|
+
"/node_modules/"
|
|
92
|
+
],
|
|
93
|
+
"watchPathIgnorePatterns": [
|
|
94
|
+
"/node_modules/"
|
|
95
|
+
],
|
|
96
|
+
"reporters": [
|
|
97
|
+
"default",
|
|
98
|
+
[
|
|
99
|
+
"jest-junit",
|
|
100
|
+
{
|
|
101
|
+
"outputDirectory": "test-reports"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
],
|
|
105
|
+
"transform": {
|
|
106
|
+
"^.+\\.[t]sx?$": [
|
|
107
|
+
"ts-jest",
|
|
108
|
+
{
|
|
109
|
+
"tsconfig": "tsconfig.dev.json"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"types": "lib/index.d.ts",
|
|
115
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
116
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const Ajv = require("ajv")
|
|
2
|
+
const ajv = new Ajv({allErrors: true})
|
|
3
|
+
|
|
4
|
+
const schema = {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
foo: {type: "string"},
|
|
8
|
+
bar: {type: "number", maximum: 3},
|
|
9
|
+
},
|
|
10
|
+
required: ["foo", "bar"],
|
|
11
|
+
additionalProperties: false,
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const validate = ajv.compile(schema)
|
|
15
|
+
|
|
16
|
+
test({foo: "abc", bar: 2})
|
|
17
|
+
test({foo: 2, bar: 4})
|
|
18
|
+
|
|
19
|
+
function test(data) {
|
|
20
|
+
const valid = validate(data)
|
|
21
|
+
if (valid) console.log("Valid!")
|
|
22
|
+
else console.log("Invalid: " + ajv.errorsText(validate.errors))
|
|
23
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2015-2021 Evgeny Poberezkin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|