@typespec/compiler 0.67.0-dev.8 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated-defs/TypeSpec.Prototypes.d.ts +1 -1
- package/dist/generated-defs/TypeSpec.Prototypes.d.ts.map +1 -1
- package/dist/generated-defs/TypeSpec.d.ts +29 -2
- package/dist/generated-defs/TypeSpec.d.ts.map +1 -1
- package/dist/manifest.js +2 -2
- package/dist/src/ast/index.d.ts +14 -0
- package/dist/src/ast/index.d.ts.map +1 -0
- package/dist/src/ast/index.js +13 -0
- package/dist/src/ast/index.js.map +1 -0
- package/dist/src/config/config-loader.d.ts.map +1 -1
- package/dist/src/config/config-loader.js +2 -1
- package/dist/src/config/config-loader.js.map +1 -1
- package/dist/src/config/config-to-options.d.ts.map +1 -1
- package/dist/src/config/config-to-options.js +4 -2
- package/dist/src/config/config-to-options.js.map +1 -1
- package/dist/src/config/types.d.ts +1 -1
- package/dist/src/core/binder.d.ts.map +1 -1
- package/dist/src/core/binder.js +18 -137
- package/dist/src/core/binder.js.map +1 -1
- package/dist/src/core/checker.d.ts +7 -23
- package/dist/src/core/checker.d.ts.map +1 -1
- package/dist/src/core/checker.js +59 -780
- package/dist/src/core/checker.js.map +1 -1
- package/dist/src/core/cli/actions/compile/args.d.ts +1 -0
- package/dist/src/core/cli/actions/compile/args.d.ts.map +1 -1
- package/dist/src/core/cli/actions/compile/args.js +3 -0
- package/dist/src/core/cli/actions/compile/args.js.map +1 -1
- package/dist/src/core/cli/actions/compile/compile.js +1 -1
- package/dist/src/core/cli/actions/compile/compile.js.map +1 -1
- package/dist/src/core/cli/cli.js +14 -4
- package/dist/src/core/cli/cli.js.map +1 -1
- package/dist/src/core/cli/utils.d.ts.map +1 -1
- package/dist/src/core/cli/utils.js +5 -1
- package/dist/src/core/cli/utils.js.map +1 -1
- package/dist/src/core/decorator-utils.d.ts.map +1 -1
- package/dist/src/core/decorator-utils.js +1 -3
- package/dist/src/core/decorator-utils.js.map +1 -1
- package/dist/src/core/diagnostic-error.d.ts +7 -0
- package/dist/src/core/diagnostic-error.d.ts.map +1 -0
- package/dist/src/core/diagnostic-error.js +9 -0
- package/dist/src/core/diagnostic-error.js.map +1 -0
- package/dist/src/core/diagnostics.d.ts +6 -6
- package/dist/src/core/diagnostics.d.ts.map +1 -1
- package/dist/src/core/diagnostics.js +10 -11
- package/dist/src/core/diagnostics.js.map +1 -1
- package/dist/src/core/emitter-utils.js +2 -2
- package/dist/src/core/emitter-utils.js.map +1 -1
- package/dist/src/core/entrypoint-resolution.d.ts.map +1 -1
- package/dist/src/core/entrypoint-resolution.js +2 -1
- package/dist/src/core/entrypoint-resolution.js.map +1 -1
- package/dist/src/core/helpers/discriminator-utils.d.ts +1 -6
- package/dist/src/core/helpers/discriminator-utils.d.ts.map +1 -1
- package/dist/src/core/helpers/discriminator-utils.js +1 -57
- package/dist/src/core/helpers/discriminator-utils.js.map +1 -1
- package/dist/src/core/helpers/index.d.ts +5 -6
- package/dist/src/core/helpers/index.d.ts.map +1 -1
- package/dist/src/core/helpers/index.js +5 -6
- package/dist/src/core/helpers/index.js.map +1 -1
- package/dist/src/core/helpers/syntax-utils.d.ts +2 -1
- package/dist/src/core/helpers/syntax-utils.d.ts.map +1 -1
- package/dist/src/core/helpers/syntax-utils.js +8 -4
- package/dist/src/core/helpers/syntax-utils.js.map +1 -1
- package/dist/src/core/index.d.ts +1 -26
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +1 -26
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/inspector/symbol.d.ts.map +1 -1
- package/dist/src/core/inspector/symbol.js +9 -11
- package/dist/src/core/inspector/symbol.js.map +1 -1
- package/dist/src/core/intrinsic-type-state.d.ts +1 -1
- package/dist/src/core/intrinsic-type-state.d.ts.map +1 -1
- package/dist/src/core/js-marshaller.d.ts +0 -9
- package/dist/src/core/js-marshaller.d.ts.map +1 -1
- package/dist/src/core/js-marshaller.js +0 -26
- package/dist/src/core/js-marshaller.js.map +1 -1
- package/dist/src/core/logger/console-sink.browser.d.ts.map +1 -1
- package/dist/src/core/logger/console-sink.browser.js +0 -16
- package/dist/src/core/logger/console-sink.browser.js.map +1 -1
- package/dist/src/core/logger/console-sink.d.ts +2 -3
- package/dist/src/core/logger/console-sink.d.ts.map +1 -1
- package/dist/src/core/logger/console-sink.js +16 -43
- package/dist/src/core/logger/console-sink.js.map +1 -1
- package/dist/src/core/logger/dynamic-task.d.ts +16 -0
- package/dist/src/core/logger/dynamic-task.d.ts.map +1 -0
- package/dist/src/core/logger/dynamic-task.js +93 -0
- package/dist/src/core/logger/dynamic-task.js.map +1 -0
- package/dist/src/core/logger/logger.d.ts.map +1 -1
- package/dist/src/core/logger/logger.js +11 -1
- package/dist/src/core/logger/logger.js.map +1 -1
- package/dist/src/core/messages.d.ts +35 -45
- package/dist/src/core/messages.d.ts.map +1 -1
- package/dist/src/core/messages.js +9 -11
- package/dist/src/core/messages.js.map +1 -1
- package/dist/src/core/name-resolver.d.ts.map +1 -1
- package/dist/src/core/name-resolver.js +12 -23
- package/dist/src/core/name-resolver.js.map +1 -1
- package/dist/src/core/node-host.d.ts +0 -3
- package/dist/src/core/node-host.d.ts.map +1 -1
- package/dist/src/core/node-host.js +5 -51
- package/dist/src/core/node-host.js.map +1 -1
- package/dist/src/core/node-system-host.d.ts +9 -0
- package/dist/src/core/node-system-host.d.ts.map +1 -0
- package/dist/src/core/node-system-host.js +57 -0
- package/dist/src/core/node-system-host.js.map +1 -0
- package/dist/src/core/options.d.ts +9 -0
- package/dist/src/core/options.d.ts.map +1 -1
- package/dist/src/core/parser.d.ts.map +1 -1
- package/dist/src/core/parser.js +50 -654
- package/dist/src/core/parser.js.map +1 -1
- package/dist/src/core/program.d.ts +6 -16
- package/dist/src/core/program.d.ts.map +1 -1
- package/dist/src/core/program.js +48 -24
- package/dist/src/core/program.js.map +1 -1
- package/dist/src/core/scanner.d.ts +37 -1
- package/dist/src/core/scanner.d.ts.map +1 -1
- package/dist/src/core/scanner.js +150 -3
- package/dist/src/core/scanner.js.map +1 -1
- package/dist/src/core/semantic-walker.d.ts.map +1 -1
- package/dist/src/core/semantic-walker.js +0 -9
- package/dist/src/core/semantic-walker.js.map +1 -1
- package/dist/src/core/source-loader.d.ts.map +1 -1
- package/dist/src/core/source-loader.js +2 -1
- package/dist/src/core/source-loader.js.map +1 -1
- package/dist/src/core/state-accessors.d.ts +53 -12
- package/dist/src/core/state-accessors.d.ts.map +1 -1
- package/dist/src/core/state-accessors.js +75 -48
- package/dist/src/core/state-accessors.js.map +1 -1
- package/dist/src/core/type-relation-checker.d.ts.map +1 -1
- package/dist/src/core/type-relation-checker.js +4 -22
- package/dist/src/core/type-relation-checker.js.map +1 -1
- package/dist/src/core/type-utils.js +2 -2
- package/dist/src/core/type-utils.js.map +1 -1
- package/dist/src/core/types.d.ts +58 -324
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/types.js +24 -55
- package/dist/src/core/types.js.map +1 -1
- package/dist/src/core/visibility/lifecycle.d.ts.map +1 -1
- package/dist/src/core/visibility/lifecycle.js +2 -11
- package/dist/src/core/visibility/lifecycle.js.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.d.ts +2 -1
- package/dist/src/emitter-framework/asset-emitter.d.ts.map +1 -1
- package/dist/src/emitter-framework/asset-emitter.js +2 -2
- package/dist/src/emitter-framework/asset-emitter.js.map +1 -1
- package/dist/src/emitter-framework/builders/array-builder.js +1 -1
- package/dist/src/emitter-framework/builders/array-builder.js.map +1 -1
- package/dist/src/emitter-framework/builders/object-builder.js +1 -1
- package/dist/src/emitter-framework/builders/object-builder.js.map +1 -1
- package/dist/src/emitter-framework/index.d.ts +74 -8
- package/dist/src/emitter-framework/index.d.ts.map +1 -1
- package/dist/src/emitter-framework/index.js +32 -8
- package/dist/src/emitter-framework/index.js.map +1 -1
- package/dist/src/emitter-framework/reference-cycle.d.ts +1 -1
- package/dist/src/emitter-framework/types.d.ts +2 -1
- package/dist/src/emitter-framework/types.d.ts.map +1 -1
- package/dist/src/experimental/freeze-graph.d.ts +1 -1
- package/dist/src/experimental/freeze-graph.d.ts.map +1 -1
- package/dist/src/experimental/freeze-graph.js +1 -4
- package/dist/src/experimental/freeze-graph.js.map +1 -1
- package/dist/src/experimental/mutators.d.ts +2 -2
- package/dist/src/experimental/mutators.d.ts.map +1 -1
- package/dist/src/experimental/mutators.js +3 -8
- package/dist/src/experimental/mutators.js.map +1 -1
- package/dist/src/experimental/typekit/index.d.ts +1 -1
- package/dist/src/experimental/typekit/index.d.ts.map +1 -1
- package/dist/src/experimental/typekit/index.js +1 -1
- package/dist/src/experimental/typekit/index.js.map +1 -1
- package/dist/src/experimental/typekit/kits/model.d.ts +6 -0
- package/dist/src/experimental/typekit/kits/model.d.ts.map +1 -1
- package/dist/src/experimental/typekit/kits/model.js +10 -0
- package/dist/src/experimental/typekit/kits/model.js.map +1 -1
- package/dist/src/experimental/typekit/kits/type.d.ts +0 -6
- package/dist/src/experimental/typekit/kits/type.d.ts.map +1 -1
- package/dist/src/experimental/typekit/kits/type.js +16 -10
- package/dist/src/experimental/typekit/kits/type.js.map +1 -1
- package/dist/src/experimental/typekit/kits/union.d.ts +6 -0
- package/dist/src/experimental/typekit/kits/union.d.ts.map +1 -1
- package/dist/src/experimental/typekit/kits/union.js +4 -0
- package/dist/src/experimental/typekit/kits/union.js.map +1 -1
- package/dist/src/formatter/print/comment-handler.js +1 -0
- package/dist/src/formatter/print/comment-handler.js.map +1 -1
- package/dist/src/formatter/print/needs-parens.d.ts.map +1 -1
- package/dist/src/formatter/print/needs-parens.js +0 -4
- package/dist/src/formatter/print/needs-parens.js.map +1 -1
- package/dist/src/formatter/print/printer.d.ts +4 -12
- package/dist/src/formatter/print/printer.d.ts.map +1 -1
- package/dist/src/formatter/print/printer.js +14 -196
- package/dist/src/formatter/print/printer.js.map +1 -1
- package/dist/src/index.d.ts +27 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +32 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/core-templates.d.ts +2 -2
- package/dist/src/init/core-templates.d.ts.map +1 -1
- package/dist/src/init/core-templates.js.map +1 -1
- package/dist/src/init/init.d.ts +0 -2
- package/dist/src/init/init.d.ts.map +1 -1
- package/dist/src/init/init.js +17 -51
- package/dist/src/init/init.js.map +1 -1
- package/dist/src/init/scaffold.d.ts +4 -3
- package/dist/src/init/scaffold.d.ts.map +1 -1
- package/dist/src/init/scaffold.js +3 -4
- package/dist/src/init/scaffold.js.map +1 -1
- package/dist/src/install/config.d.ts +9 -0
- package/dist/src/install/config.d.ts.map +1 -0
- package/dist/src/install/config.js +16 -0
- package/dist/src/install/config.js.map +1 -0
- package/dist/src/install/install.d.ts +14 -0
- package/dist/src/install/install.d.ts.map +1 -0
- package/dist/src/install/install.js +191 -0
- package/dist/src/install/install.js.map +1 -0
- package/dist/src/install/spec.d.ts +39 -0
- package/dist/src/install/spec.d.ts.map +1 -0
- package/dist/src/install/spec.js +152 -0
- package/dist/src/install/spec.js.map +1 -0
- package/dist/src/internals/index.d.ts +8 -0
- package/dist/src/internals/index.d.ts.map +1 -0
- package/dist/src/internals/index.js +11 -0
- package/dist/src/internals/index.js.map +1 -0
- package/dist/src/lib/decorators.d.ts +16 -4
- package/dist/src/lib/decorators.d.ts.map +1 -1
- package/dist/src/lib/decorators.js +89 -46
- package/dist/src/lib/decorators.js.map +1 -1
- package/dist/src/lib/examples.js +1 -5
- package/dist/src/lib/examples.js.map +1 -1
- package/dist/src/lib/key.d.ts +1 -1
- package/dist/src/lib/key.d.ts.map +1 -1
- package/dist/src/lib/paging.d.ts +1 -1
- package/dist/src/lib/paging.d.ts.map +1 -1
- package/dist/src/lib/paging.js +3 -1
- package/dist/src/lib/paging.js.map +1 -1
- package/dist/src/lib/service.d.ts.map +1 -1
- package/dist/src/lib/service.js +0 -4
- package/dist/src/lib/service.js.map +1 -1
- package/dist/src/lib/tsp-index.d.ts.map +1 -1
- package/dist/src/lib/tsp-index.js +2 -2
- package/dist/src/lib/tsp-index.js.map +1 -1
- package/dist/src/lib/visibility.js +1 -1
- package/dist/src/lib/visibility.js.map +1 -1
- package/dist/src/module-resolver/module-resolver.d.ts.map +1 -1
- package/dist/src/module-resolver/module-resolver.js +20 -13
- package/dist/src/module-resolver/module-resolver.js.map +1 -1
- package/dist/src/package-manger/npm-registry-utils.d.ts +83 -0
- package/dist/src/package-manger/npm-registry-utils.d.ts.map +1 -0
- package/dist/src/package-manger/npm-registry-utils.js +42 -0
- package/dist/src/package-manger/npm-registry-utils.js.map +1 -0
- package/dist/src/server/classify.d.ts +1 -1
- package/dist/src/server/classify.d.ts.map +1 -1
- package/dist/src/server/classify.js +4 -27
- package/dist/src/server/classify.js.map +1 -1
- package/dist/src/server/compile-service.d.ts +1 -1
- package/dist/src/server/compile-service.d.ts.map +1 -1
- package/dist/src/server/compile-service.js +5 -2
- package/dist/src/server/compile-service.js.map +1 -1
- package/dist/src/server/completion.d.ts +2 -1
- package/dist/src/server/completion.d.ts.map +1 -1
- package/dist/src/server/completion.js +24 -10
- package/dist/src/server/completion.js.map +1 -1
- package/dist/src/server/constants.d.ts +1 -1
- package/dist/src/server/constants.d.ts.map +1 -1
- package/dist/src/server/constants.js +1 -1
- package/dist/src/server/index.d.ts +2 -2
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/server/index.js +1 -2
- package/dist/src/server/index.js.map +1 -1
- package/dist/src/server/server.js +1 -1
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/server/serverlib.d.ts.map +1 -1
- package/dist/src/server/serverlib.js +3 -2
- package/dist/src/server/serverlib.js.map +1 -1
- package/dist/src/server/symbol-structure.d.ts +1 -1
- package/dist/src/server/symbol-structure.d.ts.map +1 -1
- package/dist/src/server/tmlanguage.d.ts.map +1 -1
- package/dist/src/server/tmlanguage.js +0 -125
- package/dist/src/server/tmlanguage.js.map +1 -1
- package/dist/src/server/type-details.js +4 -1
- package/dist/src/server/type-details.js.map +1 -1
- package/dist/src/server/type-signature.js +4 -15
- package/dist/src/server/type-signature.js.map +1 -1
- package/dist/src/server/types.d.ts +4 -2
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/server/types.js.map +1 -1
- package/dist/src/server/yaml-resolver.d.ts +1 -1
- package/dist/src/server/yaml-resolver.d.ts.map +1 -1
- package/dist/src/testing/code-fix-testing.d.ts +1 -1
- package/dist/src/testing/code-fix-testing.d.ts.map +1 -1
- package/dist/src/testing/code-fix-testing.js +3 -2
- package/dist/src/testing/code-fix-testing.js.map +1 -1
- package/dist/src/testing/expect.d.ts +1 -7
- package/dist/src/testing/expect.d.ts.map +1 -1
- package/dist/src/testing/expect.js +2 -13
- package/dist/src/testing/expect.js.map +1 -1
- package/dist/src/testing/index.d.ts +6 -6
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js +5 -6
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/testing/rule-tester.d.ts +1 -1
- package/dist/src/testing/rule-tester.d.ts.map +1 -1
- package/dist/src/testing/rule-tester.js +2 -1
- package/dist/src/testing/rule-tester.js.map +1 -1
- package/dist/src/testing/source-utils.d.ts +20 -0
- package/dist/src/testing/source-utils.d.ts.map +1 -0
- package/dist/src/testing/source-utils.js +23 -0
- package/dist/src/testing/source-utils.js.map +1 -0
- package/dist/src/testing/test-host.d.ts.map +1 -1
- package/dist/src/testing/test-host.js +0 -4
- package/dist/src/testing/test-host.js.map +1 -1
- package/dist/src/testing/test-server-host.d.ts +0 -19
- package/dist/src/testing/test-server-host.d.ts.map +1 -1
- package/dist/src/testing/test-server-host.js +0 -22
- package/dist/src/testing/test-server-host.js.map +1 -1
- package/dist/src/testing/test-utils.d.ts +1 -1
- package/dist/src/testing/test-utils.d.ts.map +1 -1
- package/dist/src/testing/test-utils.js +4 -2
- package/dist/src/testing/test-utils.js.map +1 -1
- package/dist/src/testing/types.d.ts +3 -2
- package/dist/src/testing/types.d.ts.map +1 -1
- package/dist/src/testing/types.js.map +1 -1
- package/dist/src/types/package-json.d.ts +14 -0
- package/dist/src/types/package-json.d.ts.map +1 -1
- package/dist/src/utils/custom-key-map.d.ts.map +1 -0
- package/dist/src/utils/custom-key-map.js.map +1 -0
- package/dist/src/utils/fs-utils.d.ts +3 -0
- package/dist/src/utils/fs-utils.d.ts.map +1 -0
- package/dist/src/utils/fs-utils.js +19 -0
- package/dist/src/utils/fs-utils.js.map +1 -0
- package/dist/src/utils/io.d.ts +16 -0
- package/dist/src/utils/io.d.ts.map +1 -0
- package/dist/src/utils/io.js +77 -0
- package/dist/src/utils/io.js.map +1 -0
- package/dist/src/utils/misc.d.ts +4 -18
- package/dist/src/utils/misc.d.ts.map +1 -1
- package/dist/src/utils/misc.js +1 -77
- package/dist/src/utils/misc.js.map +1 -1
- package/dist/typespec.tmLanguage +0 -342
- package/lib/std/decorators.tsp +37 -2
- package/package.json +14 -7
- package/templates/__snapshots__/emitter-ts/src/emitter.ts +4 -6
- package/templates/emitter-ts/src/emitter.ts +4 -6
- package/templates/scaffolding.json +4 -4
- package/dist/src/core/helpers/projected-names-utils.d.ts +0 -20
- package/dist/src/core/helpers/projected-names-utils.d.ts.map +0 -1
- package/dist/src/core/helpers/projected-names-utils.js +0 -42
- package/dist/src/core/helpers/projected-names-utils.js.map +0 -1
- package/dist/src/core/install.d.ts +0 -3
- package/dist/src/core/install.d.ts.map +0 -1
- package/dist/src/core/install.js +0 -60
- package/dist/src/core/install.js.map +0 -1
- package/dist/src/core/projected-program.d.ts +0 -3
- package/dist/src/core/projected-program.d.ts.map +0 -1
- package/dist/src/core/projected-program.js +0 -4
- package/dist/src/core/projected-program.js.map +0 -1
- package/dist/src/core/projection-members.d.ts +0 -8
- package/dist/src/core/projection-members.d.ts.map +0 -1
- package/dist/src/core/projection-members.js +0 -382
- package/dist/src/core/projection-members.js.map +0 -1
- package/dist/src/core/projector.d.ts +0 -26
- package/dist/src/core/projector.d.ts.map +0 -1
- package/dist/src/core/projector.js +0 -572
- package/dist/src/core/projector.js.map +0 -1
- package/dist/src/emitter-framework/custom-key-map.d.ts.map +0 -1
- package/dist/src/emitter-framework/custom-key-map.js.map +0 -1
- /package/dist/src/{emitter-framework → utils}/custom-key-map.d.ts +0 -0
- /package/dist/src/{emitter-framework → utils}/custom-key-map.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/init/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/init/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface PackageManagerConfig {
|
|
2
|
+
commands: {
|
|
3
|
+
install: string[];
|
|
4
|
+
};
|
|
5
|
+
}
|
|
6
|
+
export type SupportedPackageManager = "npm";
|
|
7
|
+
export declare function isSupportedPackageManager(value: string): value is SupportedPackageManager;
|
|
8
|
+
export declare function getPackageManagerConfig(name: SupportedPackageManager): PackageManagerConfig;
|
|
9
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/install/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAY5C,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,uBAAuB,CAEzF;AACD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,uBAAuB,GAAG,oBAAoB,CAE3F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const SupportedPackageManagersConfig = {
|
|
2
|
+
npm: {
|
|
3
|
+
commands: {
|
|
4
|
+
install: ["install"],
|
|
5
|
+
},
|
|
6
|
+
},
|
|
7
|
+
// pnpm: {},
|
|
8
|
+
// yarn: {},
|
|
9
|
+
};
|
|
10
|
+
export function isSupportedPackageManager(value) {
|
|
11
|
+
return value in SupportedPackageManagersConfig;
|
|
12
|
+
}
|
|
13
|
+
export function getPackageManagerConfig(name) {
|
|
14
|
+
return SupportedPackageManagersConfig[name];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/install/config.ts"],"names":[],"mappings":"AAQA,MAAM,8BAA8B,GAA0D;IAC5F,GAAG,EAAE;QACH,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB;KACF;IACD,YAAY;IACZ,YAAY;CACJ,CAAC;AAEX,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,OAAO,KAAK,IAAI,8BAA8B,CAAC;AACjD,CAAC;AACD,MAAM,UAAU,uBAAuB,CAAC,IAA6B;IACnE,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CliCompilerHost } from "../core/cli/types.js";
|
|
2
|
+
import { DiagnosticError } from "../core/diagnostic-error.js";
|
|
3
|
+
import { type Diagnostic } from "../core/types.js";
|
|
4
|
+
export declare class InstallDependenciesError extends DiagnosticError {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
export interface InstallTypeSpecDependenciesOptions {
|
|
8
|
+
readonly directory: string;
|
|
9
|
+
readonly stdio?: "inherit" | "pipe";
|
|
10
|
+
/** When set to true update the packageManager field with the package manger version and hash */
|
|
11
|
+
readonly savePackageManager?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function installTypeSpecDependencies(host: CliCompilerHost, options: InstallTypeSpecDependenciesOptions): Promise<readonly Diagnostic[]>;
|
|
14
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/install/install.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAI9D,OAAO,EAAY,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AA8B1E,qBAAa,wBAAyB,SAAQ,eAAe;gBAC/C,OAAO,EAAE,MAAM;CAQ5B;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACpC,gGAAgG;IAChG,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AA2GD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAkDhC"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { fork } from "child_process";
|
|
2
|
+
import envPaths from "env-paths";
|
|
3
|
+
import { mkdir, rename, rm } from "fs/promises";
|
|
4
|
+
import { DiagnosticError } from "../core/diagnostic-error.js";
|
|
5
|
+
import { createDiagnosticCollector } from "../core/diagnostics.js";
|
|
6
|
+
import { createTracer } from "../core/logger/tracer.js";
|
|
7
|
+
import { getDirectoryPath, joinPaths } from "../core/path-utils.js";
|
|
8
|
+
import { NoTarget } from "../core/types.js";
|
|
9
|
+
import { downloadAndExtractPackage, fetchPackageManifest, } from "../package-manger/npm-registry-utils.js";
|
|
10
|
+
import { mkTempDir } from "../utils/fs-utils.js";
|
|
11
|
+
import { getPackageManagerConfig, } from "./config.js";
|
|
12
|
+
import { resolvePackageManagerSpec, updatePackageManagerInPackageJson, } from "./spec.js";
|
|
13
|
+
const paths = envPaths("typespec", { suffix: "" });
|
|
14
|
+
const pmDir = joinPaths(paths.cache, "pm");
|
|
15
|
+
export class InstallDependenciesError extends DiagnosticError {
|
|
16
|
+
constructor(message) {
|
|
17
|
+
super({
|
|
18
|
+
code: "install-package-manager-error",
|
|
19
|
+
message,
|
|
20
|
+
severity: "error",
|
|
21
|
+
target: NoTarget,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async function resolvePackageManagerSpecOrFail(host, tracer, options) {
|
|
26
|
+
const result = await resolvePackageManagerSpec(host, tracer, options.directory);
|
|
27
|
+
switch (result.kind) {
|
|
28
|
+
case "no-package":
|
|
29
|
+
throw new InstallDependenciesError("No package.json found, cannot install dependencies.");
|
|
30
|
+
case "no-spec":
|
|
31
|
+
return [
|
|
32
|
+
{
|
|
33
|
+
kind: "resolved",
|
|
34
|
+
spec: {
|
|
35
|
+
name: "npm",
|
|
36
|
+
range: "latest",
|
|
37
|
+
},
|
|
38
|
+
path: result.path,
|
|
39
|
+
},
|
|
40
|
+
options.savePackageManager
|
|
41
|
+
? [
|
|
42
|
+
{
|
|
43
|
+
code: "no-package-manager-spec",
|
|
44
|
+
severity: "warning",
|
|
45
|
+
message: "No package manager spec found, defaulted to npm latest version. Please set devEngines.packageManager or packageManager in your package.json.",
|
|
46
|
+
target: NoTarget,
|
|
47
|
+
},
|
|
48
|
+
]
|
|
49
|
+
: [],
|
|
50
|
+
];
|
|
51
|
+
case "resolved":
|
|
52
|
+
return [result, []];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function installPackageManager(host, tracer, packageManager, spec, installDir, manifest) {
|
|
56
|
+
await rm(installDir, { recursive: true, force: true });
|
|
57
|
+
const tempDir = await mkTempDir(host, pmDir, `tsp-pm-${packageManager}-${manifest.version}`);
|
|
58
|
+
tracer.trace("downloading-extracting", `Downloading and extracting ${packageManager} at version ${manifest.version} in ${tempDir}`);
|
|
59
|
+
const extractResult = await downloadAndExtractPackage(manifest, tempDir, spec.hash?.algorithm);
|
|
60
|
+
if (spec.hash) {
|
|
61
|
+
if (spec.hash.value !== extractResult.hash.value) {
|
|
62
|
+
throw new InstallDependenciesError(`Mismatch hash for package manager. (${spec.hash.algorithm})\n Expected: ${spec.hash.value}\n Actual: ${extractResult.hash}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
await mkdir(getDirectoryPath(installDir), { recursive: true });
|
|
66
|
+
tracer.trace("move-temp-to-install", `Move temporary directory ${tempDir} to install directory ${installDir}`);
|
|
67
|
+
await renameSafe(tempDir, installDir);
|
|
68
|
+
tracer.trace("downloaded", `Downloaded and extracted at ${installDir}`);
|
|
69
|
+
return extractResult;
|
|
70
|
+
}
|
|
71
|
+
async function renameSafe(oldPath, newPath) {
|
|
72
|
+
if (process.platform === `win32`) {
|
|
73
|
+
await renameSafeWindows(oldPath, newPath);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
await rename(oldPath, newPath);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// https://github.com/nodejs/corepack/blob/19e3c6861a8affdfd94d97edf495c21e591fe4e0/sources/corepackUtils.ts#L353-L375
|
|
80
|
+
async function renameSafeWindows(oldPath, newPath) {
|
|
81
|
+
// Windows malicious file analysis blocks files currently under analysis
|
|
82
|
+
const retries = 5;
|
|
83
|
+
for (let i = 0; i < retries; i++) {
|
|
84
|
+
try {
|
|
85
|
+
await rename(oldPath, newPath);
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if ((error.code === `ENOENT` || error.code === `EPERM`) &&
|
|
90
|
+
i < retries - 1) {
|
|
91
|
+
await delay(100 * 2 ** i);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function delay(ms) {
|
|
101
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
102
|
+
}
|
|
103
|
+
export async function installTypeSpecDependencies(host, options) {
|
|
104
|
+
const { directory, stdio = "inherit", savePackageManager } = options;
|
|
105
|
+
const diagnostics = createDiagnosticCollector();
|
|
106
|
+
const tracer = createTracer(host.logger).sub("install");
|
|
107
|
+
try {
|
|
108
|
+
const { spec, path: packageJsonPath } = diagnostics.pipe(await resolvePackageManagerSpecOrFail(host, tracer, options));
|
|
109
|
+
const packageManager = spec.name;
|
|
110
|
+
const packageManagerConfig = getPackageManagerConfig(packageManager);
|
|
111
|
+
const manifest = await fetchPackageManifest(packageManager, spec.range);
|
|
112
|
+
tracer.trace("fetched-manifest", `Resolved manifest for ${packageManager} at version ${manifest.version}`);
|
|
113
|
+
const installDir = joinPaths(pmDir, packageManager, manifest.version);
|
|
114
|
+
if ((await isDirectory(host, installDir)) && !savePackageManager) {
|
|
115
|
+
tracer.trace("reusing", `Reusing cached package manager in ${installDir}`);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const extractResult = await installPackageManager(host, tracer, packageManager, spec, installDir, manifest);
|
|
119
|
+
if (savePackageManager) {
|
|
120
|
+
await updatePackageManagerInPackageJson(host, packageJsonPath, {
|
|
121
|
+
name: spec.name,
|
|
122
|
+
range: manifest.version,
|
|
123
|
+
hash: extractResult.hash,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const bin = manifest.bin[packageManager];
|
|
128
|
+
const binPath = joinPaths(installDir, bin);
|
|
129
|
+
tracer.trace("running-binary", `Running binary ${binPath}`);
|
|
130
|
+
await runPackageManager(host, packageManagerConfig, binPath, directory, stdio);
|
|
131
|
+
return diagnostics.diagnostics;
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
if (e instanceof DiagnosticError) {
|
|
135
|
+
return [...diagnostics.diagnostics, ...e.diagnostics];
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
throw e;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async function runPackageManager(host, packageManager, binPath, directory, stdio) {
|
|
143
|
+
const child = fork(binPath, packageManager.commands.install, {
|
|
144
|
+
stdio,
|
|
145
|
+
cwd: directory,
|
|
146
|
+
env: process.env,
|
|
147
|
+
});
|
|
148
|
+
const stdout = [];
|
|
149
|
+
if (child.stdout) {
|
|
150
|
+
child.stdout.on("data", (data) => {
|
|
151
|
+
stdout.push(data.toString());
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (child.stderr) {
|
|
155
|
+
child.stderr.on("data", (data) => {
|
|
156
|
+
stdout.push(data.toString());
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
await new Promise((resolve, reject) => {
|
|
160
|
+
child.on("error", (error) => {
|
|
161
|
+
if (error.code === "ENOENT") {
|
|
162
|
+
host.logger.error("Cannot find `npm` executable. Make sure to have npm installed in your path.");
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
host.logger.error(error.toString());
|
|
166
|
+
}
|
|
167
|
+
process.exit(error.errno);
|
|
168
|
+
});
|
|
169
|
+
child.on("exit", (exitCode) => {
|
|
170
|
+
if (exitCode !== 0) {
|
|
171
|
+
reject(new Error(`Npm installed failed with exit code ${exitCode}\n${stdout.join("\n")}`));
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
resolve();
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
async function isDirectory(host, path) {
|
|
180
|
+
try {
|
|
181
|
+
const stats = await host.stat(path);
|
|
182
|
+
return stats.isDirectory();
|
|
183
|
+
}
|
|
184
|
+
catch (e) {
|
|
185
|
+
if (e.code === "ENOENT" || e.code === "ENOTDIR") {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
throw e;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { DiagnosticError } from "../core/diagnostic-error.js";
|
|
2
|
+
import type { CompilerHost, SourceFile, Tracer } from "../core/types.js";
|
|
3
|
+
import { type SupportedPackageManager } from "./config.js";
|
|
4
|
+
export interface Descriptor {
|
|
5
|
+
/** Name of the package manager */
|
|
6
|
+
readonly name: SupportedPackageManager;
|
|
7
|
+
/** Supported version range */
|
|
8
|
+
readonly range: string;
|
|
9
|
+
readonly hash?: Hash;
|
|
10
|
+
}
|
|
11
|
+
export interface Hash {
|
|
12
|
+
readonly algorithm: string;
|
|
13
|
+
readonly value: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ResolvedSpecResult {
|
|
16
|
+
readonly kind: "resolved";
|
|
17
|
+
/** Path to the resolved package.json */
|
|
18
|
+
readonly path: string;
|
|
19
|
+
/** Resolved spec of the package manager */
|
|
20
|
+
readonly spec: Descriptor;
|
|
21
|
+
}
|
|
22
|
+
type PackageManagerSpecResult = {
|
|
23
|
+
readonly kind: "no-package";
|
|
24
|
+
readonly path: string;
|
|
25
|
+
} | {
|
|
26
|
+
readonly kind: "no-spec";
|
|
27
|
+
readonly path: string;
|
|
28
|
+
} | ResolvedSpecResult;
|
|
29
|
+
/**
|
|
30
|
+
* Resolve the package manager required for the current working directory.
|
|
31
|
+
* @throws {PackageManagerSpecError} if there is error resolving it(Invalid package.json, invalid packageManager field)
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolvePackageManagerSpec(host: CompilerHost, parentTracer: Tracer, cwd: string): Promise<PackageManagerSpecResult>;
|
|
34
|
+
export declare function updatePackageManagerInPackageJson(host: CompilerHost, path: string, spec: Descriptor): Promise<void>;
|
|
35
|
+
export declare class PackageManagerSpecError extends DiagnosticError {
|
|
36
|
+
constructor(message: string, source: SourceFile);
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/install/spec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtF,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAEvC,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,KAAK,wBAAwB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD,kBAAkB,CAAC;AAIvB;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,wBAAwB,CAAC,CAuCnC;AAMD,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,iBAKjB;AA6ID,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;CAQhD"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import semverParse from "semver/functions/parse.js";
|
|
2
|
+
import semverSatisfies from "semver/functions/satisfies.js";
|
|
3
|
+
import semverValid from "semver/functions/valid.js";
|
|
4
|
+
import semverValidRange from "semver/ranges/valid.js";
|
|
5
|
+
import { DiagnosticError } from "../core/diagnostic-error.js";
|
|
6
|
+
import { getDirectoryPath, joinPaths } from "../core/path-utils.js";
|
|
7
|
+
import { isSupportedPackageManager } from "./config.js";
|
|
8
|
+
const nodeModulesRegExp = /\/node_modules\//;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the package manager required for the current working directory.
|
|
11
|
+
* @throws {PackageManagerSpecError} if there is error resolving it(Invalid package.json, invalid packageManager field)
|
|
12
|
+
*/
|
|
13
|
+
export async function resolvePackageManagerSpec(host, parentTracer, cwd) {
|
|
14
|
+
const tracer = parentTracer.sub("pm-spec");
|
|
15
|
+
let nextCwd = cwd;
|
|
16
|
+
let currentCwd = "";
|
|
17
|
+
let resolved = null;
|
|
18
|
+
while (nextCwd !== currentCwd && !resolved) {
|
|
19
|
+
currentCwd = nextCwd;
|
|
20
|
+
nextCwd = getDirectoryPath(currentCwd);
|
|
21
|
+
if (nodeModulesRegExp.test(currentCwd))
|
|
22
|
+
continue;
|
|
23
|
+
const pkgJsonPath = joinPaths(currentCwd, "package.json");
|
|
24
|
+
const packageJson = await readPackage(host, pkgJsonPath);
|
|
25
|
+
if (packageJson) {
|
|
26
|
+
resolved = packageJson;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (resolved === null) {
|
|
30
|
+
return { kind: "no-package", path: cwd };
|
|
31
|
+
}
|
|
32
|
+
const [packageJson, source] = resolved;
|
|
33
|
+
const spec = extractSpecFromPackageJson(tracer, packageJson, source);
|
|
34
|
+
if (spec === undefined) {
|
|
35
|
+
return { kind: "no-spec", path: source.path };
|
|
36
|
+
}
|
|
37
|
+
tracer.trace("resolved", `${source.path} defines ${spec} as local package manager`);
|
|
38
|
+
return {
|
|
39
|
+
kind: "resolved",
|
|
40
|
+
path: source.path,
|
|
41
|
+
spec,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function serializeSpec(spec) {
|
|
45
|
+
return `${spec.name}@${spec.range}${spec.hash ? `+${spec.hash.algorithm}.${spec.hash.value}` : ""}`;
|
|
46
|
+
}
|
|
47
|
+
export async function updatePackageManagerInPackageJson(host, path, spec) {
|
|
48
|
+
const [pkg] = (await readPackage(host, path));
|
|
49
|
+
pkg.packageManager = serializeSpec(spec);
|
|
50
|
+
return host.writeFile(path, JSON.stringify(pkg, undefined, 2));
|
|
51
|
+
}
|
|
52
|
+
async function readPackage(host, path) {
|
|
53
|
+
let file;
|
|
54
|
+
try {
|
|
55
|
+
file = await host.readFile(path);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
if (err?.code === "ENOENT")
|
|
59
|
+
return undefined;
|
|
60
|
+
throw err;
|
|
61
|
+
}
|
|
62
|
+
let packageJson;
|
|
63
|
+
try {
|
|
64
|
+
packageJson = JSON.parse(file.text);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
if (typeof packageJson !== "object" || packageJson === null) {
|
|
70
|
+
throw new PackageManagerSpecError(`Invalid package.json ${path}}`, file);
|
|
71
|
+
}
|
|
72
|
+
return [packageJson, file];
|
|
73
|
+
}
|
|
74
|
+
function extractSpecFromPackageJson(tracer, packageJSONContent, source) {
|
|
75
|
+
const pm = packageJSONContent.packageManager
|
|
76
|
+
? parsePackageManagerField(packageJSONContent.packageManager, source)
|
|
77
|
+
: undefined;
|
|
78
|
+
const devEnginePm = packageJSONContent.devEngines?.packageManager;
|
|
79
|
+
if (devEnginePm != null) {
|
|
80
|
+
if (typeof devEnginePm !== "object") {
|
|
81
|
+
return pm;
|
|
82
|
+
}
|
|
83
|
+
if (Array.isArray(devEnginePm)) {
|
|
84
|
+
return pm;
|
|
85
|
+
}
|
|
86
|
+
const { name, version } = devEnginePm;
|
|
87
|
+
validatePackageManager(name, source);
|
|
88
|
+
if (typeof name !== "string" || name.includes("@")) {
|
|
89
|
+
throw new PackageManagerSpecError(`devEngines.packageManager.name ${JSON.stringify(name)} must be a package manager name without the version`, source);
|
|
90
|
+
}
|
|
91
|
+
if (version == null || typeof version !== "string" || !semverValidRange(version)) {
|
|
92
|
+
throw new PackageManagerSpecError(`devEngines.packageManager.version ${JSON.stringify(version)} is not a valid semver range`, source);
|
|
93
|
+
}
|
|
94
|
+
validateVersionNotUrl(version, source);
|
|
95
|
+
tracer.trace("devEngines", `devEngines.packageManager specify ${name}@${version}`);
|
|
96
|
+
if (pm) {
|
|
97
|
+
if (pm.name !== name)
|
|
98
|
+
throw new PackageManagerSpecError(`"packageManager" field "${pm}" does not match name of "devEngines.packageManager" set to "${name}"`, source);
|
|
99
|
+
else if (version != null && !semverSatisfies(pm.range, version))
|
|
100
|
+
throw new PackageManagerSpecError(`"packageManager" field is set to "${pm}" does not match the version defined in "devEngines.packageManager" "${name}" @ "${version}"`, source);
|
|
101
|
+
return pm;
|
|
102
|
+
}
|
|
103
|
+
return { name, range: version };
|
|
104
|
+
}
|
|
105
|
+
return pm;
|
|
106
|
+
}
|
|
107
|
+
function validatePackageManager(name, source) {
|
|
108
|
+
if (!isSupportedPackageManager(name)) {
|
|
109
|
+
throw new PackageManagerSpecError(`Unsupported packageManager specification: Package manager ${name} is not supported.`, source);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function validateVersionNotUrl(version, source) {
|
|
113
|
+
const isURL = URL.canParse(version);
|
|
114
|
+
if (isURL) {
|
|
115
|
+
throw new PackageManagerSpecError(`Urls are not supported for package manager specifications "${version}"`, source);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function parsePackageManagerField(raw, source) {
|
|
119
|
+
if (typeof raw !== "string") {
|
|
120
|
+
throw new PackageManagerSpecError(`Invalid packageManager field : expected a string`, source);
|
|
121
|
+
}
|
|
122
|
+
const atIndex = raw.indexOf("@");
|
|
123
|
+
if (atIndex === -1 || atIndex === raw.length - 1) {
|
|
124
|
+
throw new PackageManagerSpecError(`Invalid packageManager field "${raw}": a version to be specified for package manager.`, source);
|
|
125
|
+
}
|
|
126
|
+
const name = raw.slice(0, atIndex);
|
|
127
|
+
const version = raw.slice(atIndex + 1);
|
|
128
|
+
validatePackageManager(name, source);
|
|
129
|
+
validateVersionNotUrl(version, source);
|
|
130
|
+
if (!semverValid(version))
|
|
131
|
+
throw new PackageManagerSpecError(`Invalid packageManager field "${raw}": expected a semver version`, source);
|
|
132
|
+
const semver = semverParse(version);
|
|
133
|
+
const hash = semver.build[0] && semver.build[1]
|
|
134
|
+
? { algorithm: semver.build[0], value: semver.build[1] }
|
|
135
|
+
: undefined;
|
|
136
|
+
return {
|
|
137
|
+
name,
|
|
138
|
+
range: semver.version,
|
|
139
|
+
hash,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
export class PackageManagerSpecError extends DiagnosticError {
|
|
143
|
+
constructor(message, source) {
|
|
144
|
+
super({
|
|
145
|
+
code: "invalid-package-manager-spec",
|
|
146
|
+
message,
|
|
147
|
+
severity: "error",
|
|
148
|
+
target: { file: source, pos: 0, end: 0 },
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../src/install/spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is meant to export internal items from the TypeSpec compiler to some other tools that bundle them.
|
|
3
|
+
* DO NOT USE it, it might change at any time with no warning.
|
|
4
|
+
*/
|
|
5
|
+
export { NodeSystemHost } from "../core/node-system-host.js";
|
|
6
|
+
export { InitTemplateSchema } from "../init/init-template.js";
|
|
7
|
+
export { makeScaffoldingConfig, scaffoldNewProject } from "../init/scaffold.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internals/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is meant to export internal items from the TypeSpec compiler to some other tools that bundle them.
|
|
3
|
+
* DO NOT USE it, it might change at any time with no warning.
|
|
4
|
+
*/
|
|
5
|
+
if (!globalThis.enableCompilerInternalsExport) {
|
|
6
|
+
throw new Error("Importing @typespec/compiler/internals is reserved for internal use only.");
|
|
7
|
+
}
|
|
8
|
+
export { NodeSystemHost } from "../core/node-system-host.js";
|
|
9
|
+
export { InitTemplateSchema } from "../init/init-template.js";
|
|
10
|
+
export { makeScaffoldingConfig, scaffoldNewProject } from "../init/scaffold.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internals/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAI,CAAE,UAAkB,CAAC,6BAA6B,EAAE,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC/F,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { DiscriminatedDecorator, DiscriminatorDecorator, DocDecorator, EncodeDecorator, ErrorDecorator, ErrorsDocDecorator, ExampleDecorator, ExampleOptions, FormatDecorator, FriendlyNameDecorator, InspectTypeDecorator, InspectTypeNameDecorator, KeyDecorator, MaxItemsDecorator, MaxLengthDecorator, MaxValueDecorator, MaxValueExclusiveDecorator, MinItemsDecorator, MinLengthDecorator, MinValueDecorator, MinValueExclusiveDecorator, OpExampleDecorator, OverloadDecorator, PatternDecorator, ReturnsDocDecorator, SecretDecorator, SummaryDecorator, TagDecorator, WithOptionalPropertiesDecorator, WithPickedPropertiesDecorator, WithoutDefaultValuesDecorator, WithoutOmittedPropertiesDecorator } from "../../generated-defs/TypeSpec.js";
|
|
1
|
+
import type { DiscriminatedDecorator, DiscriminatorDecorator, DocDecorator, EncodeDecorator, ErrorDecorator, ErrorsDocDecorator, ExampleDecorator, ExampleOptions, FormatDecorator, FriendlyNameDecorator, InspectTypeDecorator, InspectTypeNameDecorator, KeyDecorator, MaxItemsDecorator, MaxLengthDecorator, MaxValueDecorator, MaxValueExclusiveDecorator, MediaTypeHintDecorator, MinItemsDecorator, MinLengthDecorator, MinValueDecorator, MinValueExclusiveDecorator, OpExampleDecorator, OverloadDecorator, PatternDecorator, ReturnsDocDecorator, SecretDecorator, SummaryDecorator, TagDecorator, WithOptionalPropertiesDecorator, WithPickedPropertiesDecorator, WithoutDefaultValuesDecorator, WithoutOmittedPropertiesDecorator } from "../../generated-defs/TypeSpec.js";
|
|
2
2
|
import { DocData } from "../core/intrinsic-type-state.js";
|
|
3
|
-
import { Program
|
|
3
|
+
import { Program } from "../core/program.js";
|
|
4
4
|
import { Enum, Interface, Model, ModelProperty, Namespace, Operation, Scalar, Type, Union, Value } from "../core/types.js";
|
|
5
5
|
export { $encodedName, resolveEncodedName } from "./encoded-names.js";
|
|
6
6
|
export { serializeValueAsJson } from "./examples.js";
|
|
@@ -69,8 +69,8 @@ export declare function getErrorsDocData(program: Program, target: Operation): D
|
|
|
69
69
|
export declare function getErrorsDoc(program: Program, target: Operation): string | undefined;
|
|
70
70
|
export declare const $inspectType: InspectTypeDecorator;
|
|
71
71
|
export declare const $inspectTypeName: InspectTypeNameDecorator;
|
|
72
|
-
export declare function isStringType(program: Program
|
|
73
|
-
export declare function isNumericType(program: Program
|
|
72
|
+
export declare function isStringType(program: Program, target: Type): target is Scalar;
|
|
73
|
+
export declare function isNumericType(program: Program, target: Type): target is Scalar;
|
|
74
74
|
/**
|
|
75
75
|
* `@error` decorator marks a model as an error type.
|
|
76
76
|
* Any derived models (using extends) will also be seen as error types.
|
|
@@ -80,6 +80,18 @@ export declare const $error: ErrorDecorator;
|
|
|
80
80
|
* Check if the type is an error model or a descendant of an error model.
|
|
81
81
|
*/
|
|
82
82
|
export declare function isErrorModel(program: Program, target: Type): boolean;
|
|
83
|
+
export declare const $mediaTypeHint: MediaTypeHintDecorator;
|
|
84
|
+
/**
|
|
85
|
+
* Get the default media type hint for the given target type.
|
|
86
|
+
*
|
|
87
|
+
* This value is a hint _ONLY_. Emitters are not required to use it, but may use it to get the default media type
|
|
88
|
+
* associated with a TypeSpec type.
|
|
89
|
+
*
|
|
90
|
+
* @param program - the Program containing the target
|
|
91
|
+
* @param target - the target to get the MIME type for
|
|
92
|
+
* @returns the default media type hint for the target, if any
|
|
93
|
+
*/
|
|
94
|
+
export declare function getMediaTypeHint(program: Program, target: Type): string | undefined;
|
|
83
95
|
declare const getFormat: (program: Program, type: Type) => string | undefined;
|
|
84
96
|
/**
|
|
85
97
|
* `@format` - specify the data format hint for a string type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/lib/decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/lib/decorators.ts"],"names":[],"mappings":"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"}
|