@voxgig/sdkgen 4.21.0 → 4.22.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/bin/voxgig-sdkgen +1 -1
- package/dist/action/action.js +0 -65
- package/dist/action/action.js.map +1 -1
- package/dist/action/check.js +0 -88
- package/dist/action/check.js.map +1 -1
- package/dist/action/dispatch.js +0 -27
- package/dist/action/dispatch.js.map +1 -1
- package/dist/action/doctor.d.ts +1 -0
- package/dist/action/doctor.js +55 -321
- package/dist/action/doctor.js.map +1 -1
- package/dist/action/edition.js +1 -87
- package/dist/action/edition.js.map +1 -1
- package/dist/action/feature.js +0 -48
- package/dist/action/feature.js.map +1 -1
- package/dist/action/kind.js +0 -132
- package/dist/action/kind.js.map +1 -1
- package/dist/action/package.js +0 -221
- package/dist/action/package.js.map +1 -1
- package/dist/action/resolve.js +0 -145
- package/dist/action/resolve.js.map +1 -1
- package/dist/action/target.js +0 -177
- package/dist/action/target.js.map +1 -1
- package/dist/cmp/AgentGuide.js +0 -7
- package/dist/cmp/AgentGuide.js.map +1 -1
- package/dist/cmp/AgentGuideContent.js +0 -24
- package/dist/cmp/AgentGuideContent.js.map +1 -1
- package/dist/cmp/AgentGuideTop.js +0 -7
- package/dist/cmp/AgentGuideTop.js.map +1 -1
- package/dist/cmp/Changelog.js +0 -14
- package/dist/cmp/Changelog.js.map +1 -1
- package/dist/cmp/Deploy.js +1 -31
- package/dist/cmp/Deploy.js.map +1 -1
- package/dist/cmp/Entity.js +0 -4
- package/dist/cmp/Entity.js.map +1 -1
- package/dist/cmp/ExternalTarget.js +0 -36
- package/dist/cmp/ExternalTarget.js.map +1 -1
- package/dist/cmp/Feature.js +0 -14
- package/dist/cmp/Feature.js.map +1 -1
- package/dist/cmp/FeatureDocs.js +0 -25
- package/dist/cmp/FeatureDocs.js.map +1 -1
- package/dist/cmp/PublishWorkflow.js +0 -60
- package/dist/cmp/PublishWorkflow.js.map +1 -1
- package/dist/cmp/ReadmeErrors.js +0 -2
- package/dist/cmp/ReadmeErrors.js.map +1 -1
- package/dist/cmp/ReadmeExplanation.js +0 -5
- package/dist/cmp/ReadmeExplanation.js.map +1 -1
- package/dist/cmp/ReadmeFeatures.js +0 -10
- package/dist/cmp/ReadmeFeatures.js.map +1 -1
- package/dist/cmp/ReadmeRefFeatures.js +0 -19
- package/dist/cmp/ReadmeRefFeatures.js.map +1 -1
- package/dist/cmp/ReadmeStation.js +0 -19
- package/dist/cmp/ReadmeStation.js.map +1 -1
- package/dist/cmp/ReadmeTop.js +0 -80
- package/dist/cmp/ReadmeTop.js.map +1 -1
- package/dist/cmp/ReadmeUnions.js +0 -15
- package/dist/cmp/ReadmeUnions.js.map +1 -1
- package/dist/cmp/Registered.js +0 -30
- package/dist/cmp/Registered.js.map +1 -1
- package/dist/cmp/Security.js +0 -2
- package/dist/cmp/Security.js.map +1 -1
- package/dist/cmp/Test.js +2 -1
- package/dist/cmp/Test.js.map +1 -1
- package/dist/cmp/TestControl.js +0 -25
- package/dist/cmp/TestControl.js.map +1 -1
- package/dist/helpers/applicability.js +0 -60
- package/dist/helpers/applicability.js.map +1 -1
- package/dist/helpers/buildIdNames.js +0 -12
- package/dist/helpers/buildIdNames.js.map +1 -1
- package/dist/helpers/canonSpec.js +0 -114
- package/dist/helpers/canonSpec.js.map +1 -1
- package/dist/helpers/canonType.js +0 -87
- package/dist/helpers/canonType.js.map +1 -1
- package/dist/helpers/collectDeps.js +0 -27
- package/dist/helpers/collectDeps.js.map +1 -1
- package/dist/helpers/definition.js +0 -29
- package/dist/helpers/definition.js.map +1 -1
- package/dist/helpers/dryrun.js +0 -8
- package/dist/helpers/dryrun.js.map +1 -1
- package/dist/helpers/featureSource.js +0 -145
- package/dist/helpers/featureSource.js.map +1 -1
- package/dist/helpers/getMatchEntries.js +0 -4
- package/dist/helpers/getMatchEntries.js.map +1 -1
- package/dist/helpers/junk.js +9 -85
- package/dist/helpers/junk.js.map +1 -1
- package/dist/helpers/manifest.js +0 -138
- package/dist/helpers/manifest.js.map +1 -1
- package/dist/helpers/modelNames.js +0 -78
- package/dist/helpers/modelNames.js.map +1 -1
- package/dist/helpers/modelcheck.js +0 -106
- package/dist/helpers/modelcheck.js.map +1 -1
- package/dist/helpers/naming.d.ts +0 -1
- package/dist/helpers/naming.js +0 -303
- package/dist/helpers/naming.js.map +1 -1
- package/dist/helpers/opExample.js +0 -51
- package/dist/helpers/opExample.js.map +1 -1
- package/dist/helpers/opShape.js +0 -198
- package/dist/helpers/opShape.js.map +1 -1
- package/dist/helpers/optspec.js +0 -77
- package/dist/helpers/optspec.js.map +1 -1
- package/dist/helpers/packageMeta.js +1 -200
- package/dist/helpers/packageMeta.js.map +1 -1
- package/dist/helpers/pointPath.js +0 -55
- package/dist/helpers/pointPath.js.map +1 -1
- package/dist/helpers/resolved.d.ts +6 -0
- package/dist/helpers/resolved.js +49 -0
- package/dist/helpers/resolved.js.map +1 -0
- package/dist/helpers/semver.js +0 -61
- package/dist/helpers/semver.js.map +1 -1
- package/dist/helpers/serverVars.js +0 -44
- package/dist/helpers/serverVars.js.map +1 -1
- package/dist/helpers/shipped.js +0 -14
- package/dist/helpers/shipped.js.map +1 -1
- package/dist/helpers/station.js +0 -32
- package/dist/helpers/station.js.map +1 -1
- package/dist/helpers/stdrep.js +0 -26
- package/dist/helpers/stdrep.js.map +1 -1
- package/dist/helpers/testPolicy.js +0 -4
- package/dist/helpers/testPolicy.js.map +1 -1
- package/dist/sdkgen.d.ts +2 -1
- package/dist/sdkgen.js +13 -242
- package/dist/sdkgen.js.map +1 -1
- package/dist/testkit.js +6 -266
- package/dist/testkit.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utility.js +0 -243
- package/dist/utility.js.map +1 -1
- package/model/sdkgen.aon +12 -489
- package/package.json +4 -4
- package/project/.sdk/model/feature/audit.aon +0 -7
- package/project/.sdk/model/feature/cache.aon +0 -7
- package/project/.sdk/model/feature/clienttrack.aon +0 -7
- package/project/.sdk/model/feature/cost.aon +0 -13
- package/project/.sdk/model/feature/debug.aon +0 -7
- package/project/.sdk/model/feature/idempotency.aon +0 -7
- package/project/.sdk/model/feature/log.aon +0 -7
- package/project/.sdk/model/feature/metrics.aon +0 -7
- package/project/.sdk/model/feature/netsim.aon +0 -10
- package/project/.sdk/model/feature/paging.aon +0 -7
- package/project/.sdk/model/feature/proxy.aon +0 -7
- package/project/.sdk/model/feature/ratelimit.aon +0 -7
- package/project/.sdk/model/feature/retry.aon +0 -7
- package/project/.sdk/model/feature/secrets.aon +0 -482
- package/project/.sdk/model/feature/streaming.aon +0 -7
- package/project/.sdk/model/feature/telemetry.aon +0 -7
- package/project/.sdk/model/feature/test.aon +1 -8
- package/project/.sdk/model/feature/timeout.aon +0 -7
- package/project/.sdk/model/feature/validate.aon +0 -32
- package/project/.sdk/model/target/c.aon +0 -41
- package/project/.sdk/model/target/clojure.aon +0 -36
- package/project/.sdk/model/target/cpp.aon +0 -42
- package/project/.sdk/model/target/csharp.aon +0 -26
- package/project/.sdk/model/target/elixir.aon +0 -22
- package/project/.sdk/model/target/go-cli.aon +0 -30
- package/project/.sdk/model/target/go-mcp.aon +0 -21
- package/project/.sdk/model/target/go.aon +0 -9
- package/project/.sdk/model/target/java.aon +0 -29
- package/project/.sdk/model/target/js.aon +2 -21
- package/project/.sdk/model/target/kotlin.aon +0 -31
- package/project/.sdk/model/target/lua.aon +0 -32
- package/project/.sdk/model/target/ocaml.aon +0 -64
- package/project/.sdk/model/target/perl.aon +0 -20
- package/project/.sdk/model/target/php.aon +0 -17
- package/project/.sdk/model/target/py-data.aon +0 -33
- package/project/.sdk/model/target/py.aon +0 -17
- package/project/.sdk/model/target/rb.aon +0 -17
- package/project/.sdk/model/target/rust.aon +0 -25
- package/project/.sdk/model/target/scala.aon +0 -74
- package/project/.sdk/model/target/swift.aon +0 -41
- package/project/.sdk/model/target/ts.aon +3 -25
- package/project/.sdk/model/target/zig.aon +0 -50
- package/project/.sdk/src/cmp/c/Config_c.ts +0 -100
- package/project/.sdk/src/cmp/c/EntityTypes_c.ts +0 -36
- package/project/.sdk/src/cmp/c/Main_c.ts +0 -44
- package/project/.sdk/src/cmp/c/Package_c.ts +0 -14
- package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +0 -85
- package/project/.sdk/src/cmp/c/ReadmeExamplesTest_c.ts +0 -20
- package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +2 -5
- package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +0 -2
- package/project/.sdk/src/cmp/c/Schema_c.ts +0 -19
- package/project/.sdk/src/cmp/c/utility_c.ts +0 -47
- package/project/.sdk/src/cmp/clojure/Config_clojure.ts +0 -63
- package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +0 -1
- package/project/.sdk/src/cmp/clojure/Main_clojure.ts +0 -41
- package/project/.sdk/src/cmp/clojure/Package_clojure.ts +0 -20
- package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +0 -130
- package/project/.sdk/src/cmp/clojure/ReadmeExamplesTest_clojure.ts +0 -16
- package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +2 -5
- package/project/.sdk/src/cmp/clojure/Schema_clojure.ts +0 -20
- package/project/.sdk/src/cmp/clojure/TestDirect_clojure.ts +0 -6
- package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +0 -10
- package/project/.sdk/src/cmp/clojure/Test_clojure.ts +0 -8
- package/project/.sdk/src/cmp/clojure/featureextra_clojure.ts +0 -34
- package/project/.sdk/src/cmp/clojure/utility_clojure.ts +0 -47
- package/project/.sdk/src/cmp/cpp/Config_cpp.ts +0 -109
- package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +0 -36
- package/project/.sdk/src/cmp/cpp/Main_cpp.ts +0 -47
- package/project/.sdk/src/cmp/cpp/Package_cpp.ts +0 -14
- package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +0 -125
- package/project/.sdk/src/cmp/cpp/ReadmeExamplesTest_cpp.ts +0 -19
- package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +0 -7
- package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +2 -5
- package/project/.sdk/src/cmp/cpp/Schema_cpp.ts +0 -21
- package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +0 -3
- package/project/.sdk/src/cmp/cpp/Test_cpp.ts +0 -3
- package/project/.sdk/src/cmp/cpp/utility_cpp.ts +0 -28
- package/project/.sdk/src/cmp/csharp/Config_csharp.ts +0 -79
- package/project/.sdk/src/cmp/csharp/EntityOperation_csharp.ts +0 -3
- package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +0 -50
- package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +0 -1
- package/project/.sdk/src/cmp/csharp/Main_csharp.ts +0 -24
- package/project/.sdk/src/cmp/csharp/Package_csharp.ts +0 -20
- package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +0 -81
- package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +0 -1
- package/project/.sdk/src/cmp/csharp/ReadmeExamplesTest_csharp.ts +0 -23
- package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +2 -5
- package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +0 -2
- package/project/.sdk/src/cmp/csharp/Schema_csharp.ts +0 -18
- package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +0 -4
- package/project/.sdk/src/cmp/csharp/utility_csharp.ts +0 -72
- package/project/.sdk/src/cmp/elixir/Config_elixir.ts +0 -78
- package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +0 -38
- package/project/.sdk/src/cmp/elixir/Main_elixir.ts +0 -40
- package/project/.sdk/src/cmp/elixir/Package_elixir.ts +0 -13
- package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +0 -123
- package/project/.sdk/src/cmp/elixir/ReadmeExamplesTest_elixir.ts +0 -19
- package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +2 -5
- package/project/.sdk/src/cmp/elixir/Schema_elixir.ts +0 -24
- package/project/.sdk/src/cmp/elixir/utility_elixir.ts +0 -34
- package/project/.sdk/src/cmp/go/Config_go.ts +0 -41
- package/project/.sdk/src/cmp/go/EntityTypes_go.ts +0 -71
- package/project/.sdk/src/cmp/go/Entity_go.ts +0 -5
- package/project/.sdk/src/cmp/go/Main_go.ts +0 -28
- package/project/.sdk/src/cmp/go/Package_go.ts +0 -7
- package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +0 -64
- package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +0 -5
- package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +0 -30
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +0 -3
- package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +0 -7
- package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +0 -11
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +0 -21
- package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +2 -14
- package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +0 -9
- package/project/.sdk/src/cmp/go/Schema_go.ts +0 -21
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +0 -23
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +0 -8
- package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +0 -21
- package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +0 -12
- package/project/.sdk/src/cmp/go/utility_go.ts +0 -70
- package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +0 -49
- package/project/.sdk/src/cmp/go-cli/fragment/words.fragment.go +0 -12
- package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +0 -36
- package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +0 -20
- package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +0 -3
- package/project/.sdk/src/cmp/java/Config_java.ts +0 -63
- package/project/.sdk/src/cmp/java/EntityTypes_java.ts +0 -50
- package/project/.sdk/src/cmp/java/Entity_java.ts +0 -6
- package/project/.sdk/src/cmp/java/Main_java.ts +0 -24
- package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +0 -55
- package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +0 -1
- package/project/.sdk/src/cmp/java/ReadmeExamplesTest_java.ts +0 -20
- package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +0 -4
- package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +2 -5
- package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +0 -7
- package/project/.sdk/src/cmp/java/Schema_java.ts +0 -19
- package/project/.sdk/src/cmp/java/TestDirect_java.ts +0 -7
- package/project/.sdk/src/cmp/java/TestEntity_java.ts +0 -4
- package/project/.sdk/src/cmp/java/Test_java.ts +0 -6
- package/project/.sdk/src/cmp/java/utility_java.ts +0 -33
- package/project/.sdk/src/cmp/js/Config_js.ts +0 -46
- package/project/.sdk/src/cmp/js/EntityTypes_js.ts +0 -33
- package/project/.sdk/src/cmp/js/Main_js.ts +0 -33
- package/project/.sdk/src/cmp/js/Package_js.ts +2 -7
- package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +0 -57
- package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +0 -9
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +0 -2
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +0 -15
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +2 -7
- package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +0 -7
- package/project/.sdk/src/cmp/js/Schema_js.ts +0 -21
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +2 -16
- package/project/.sdk/src/cmp/js/TestEntity_js.ts +3 -13
- package/project/.sdk/src/cmp/js/TestLive_js.ts +10 -3
- package/project/.sdk/src/cmp/js/utility_js.ts +0 -58
- package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +0 -46
- package/project/.sdk/src/cmp/kotlin/EntityOperation_kotlin.ts +0 -2
- package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +0 -53
- package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +0 -4
- package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +0 -46
- package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +0 -113
- package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +0 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeExamplesTest_kotlin.ts +0 -20
- package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +2 -5
- package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +0 -5
- package/project/.sdk/src/cmp/kotlin/Schema_kotlin.ts +0 -19
- package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +0 -4
- package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +0 -6
- package/project/.sdk/src/cmp/kotlin/utility_kotlin.ts +0 -33
- package/project/.sdk/src/cmp/lua/Config_lua.ts +0 -56
- package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +0 -30
- package/project/.sdk/src/cmp/lua/Entity_lua.ts +0 -7
- package/project/.sdk/src/cmp/lua/Main_lua.ts +0 -58
- package/project/.sdk/src/cmp/lua/Package_lua.ts +0 -20
- package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +0 -61
- package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +0 -8
- package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +0 -24
- package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +0 -10
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +0 -21
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +2 -12
- package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +0 -3
- package/project/.sdk/src/cmp/lua/Schema_lua.ts +0 -16
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +0 -2
- package/project/.sdk/src/cmp/lua/utility_lua.ts +0 -30
- package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +0 -98
- package/project/.sdk/src/cmp/ocaml/EntityOperation_ocaml.ts +0 -6
- package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +0 -78
- package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +0 -13
- package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +0 -145
- package/project/.sdk/src/cmp/ocaml/ReadmeExamplesTest_ocaml.ts +0 -17
- package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +2 -5
- package/project/.sdk/src/cmp/ocaml/Schema_ocaml.ts +0 -23
- package/project/.sdk/src/cmp/ocaml/SdkError_ocaml.ts +0 -4
- package/project/.sdk/src/cmp/ocaml/TestEntity_ocaml.ts +0 -5
- package/project/.sdk/src/cmp/ocaml/utility_ocaml.ts +0 -27
- package/project/.sdk/src/cmp/perl/Config_perl.ts +0 -52
- package/project/.sdk/src/cmp/perl/Entity_perl.ts +0 -3
- package/project/.sdk/src/cmp/perl/Main_perl.ts +0 -33
- package/project/.sdk/src/cmp/perl/Package_perl.ts +0 -8
- package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +0 -84
- package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +0 -3
- package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +0 -27
- package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +2 -5
- package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +0 -2
- package/project/.sdk/src/cmp/perl/Schema_perl.ts +0 -18
- package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +0 -2
- package/project/.sdk/src/cmp/perl/utility_perl.ts +0 -26
- package/project/.sdk/src/cmp/php/Config_php.ts +0 -76
- package/project/.sdk/src/cmp/php/EntityTypes_php.ts +0 -51
- package/project/.sdk/src/cmp/php/MainEntity_php.ts +0 -6
- package/project/.sdk/src/cmp/php/Main_php.ts +0 -15
- package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +0 -73
- package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +0 -4
- package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +0 -33
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +0 -1
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +0 -19
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +2 -7
- package/project/.sdk/src/cmp/php/Schema_php.ts +0 -15
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +0 -9
- package/project/.sdk/src/cmp/php/utility_php.ts +0 -22
- package/project/.sdk/src/cmp/py/Config_py.ts +0 -53
- package/project/.sdk/src/cmp/py/EntityTypes_py.ts +0 -55
- package/project/.sdk/src/cmp/py/Entity_py.ts +0 -16
- package/project/.sdk/src/cmp/py/Main_py.ts +1 -61
- package/project/.sdk/src/cmp/py/Package_py.ts +0 -3
- package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +0 -69
- package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +0 -13
- package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +0 -31
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +0 -3
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +0 -28
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +2 -16
- package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +0 -14
- package/project/.sdk/src/cmp/py/Schema_py.ts +0 -19
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +0 -2
- package/project/.sdk/src/cmp/py/utility_py.ts +0 -22
- package/project/.sdk/src/cmp/py-data/Main_py-data.ts +9 -43
- package/project/.sdk/src/cmp/rb/Config_rb.ts +0 -56
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +0 -58
- package/project/.sdk/src/cmp/rb/Entity_rb.ts +0 -3
- package/project/.sdk/src/cmp/rb/Main_rb.ts +0 -10
- package/project/.sdk/src/cmp/rb/Package_rb.ts +0 -5
- package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +0 -81
- package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +0 -7
- package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +0 -32
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +0 -9
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +0 -23
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +2 -10
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +0 -5
- package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +0 -3
- package/project/.sdk/src/cmp/rb/Schema_rb.ts +0 -15
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +0 -2
- package/project/.sdk/src/cmp/rb/utility_rb.ts +0 -22
- package/project/.sdk/src/cmp/rust/Config_rust.ts +0 -35
- package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +0 -34
- package/project/.sdk/src/cmp/rust/Entity_rust.ts +0 -9
- package/project/.sdk/src/cmp/rust/Main_rust.ts +0 -58
- package/project/.sdk/src/cmp/rust/Package_rust.ts +0 -30
- package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +0 -84
- package/project/.sdk/src/cmp/rust/ReadmeExamplesTest_rust.ts +0 -16
- package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +2 -5
- package/project/.sdk/src/cmp/rust/Schema_rust.ts +0 -18
- package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +0 -7
- package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +0 -9
- package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +0 -14
- package/project/.sdk/src/cmp/rust/fragment/EntityRemoveOp.fragment.rs +0 -4
- package/project/.sdk/src/cmp/rust/fragment/Main.fragment.rs +0 -20
- package/project/.sdk/src/cmp/rust/fragment/SdkError.fragment.rs +0 -6
- package/project/.sdk/src/cmp/rust/utility_rust.ts +0 -47
- package/project/.sdk/src/cmp/scala/Config_scala.ts +0 -31
- package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +0 -51
- package/project/.sdk/src/cmp/scala/Main_scala.ts +0 -78
- package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +0 -102
- package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +0 -1
- package/project/.sdk/src/cmp/scala/ReadmeExamplesTest_scala.ts +0 -23
- package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +2 -5
- package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +0 -5
- package/project/.sdk/src/cmp/scala/Schema_scala.ts +0 -19
- package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +0 -8
- package/project/.sdk/src/cmp/scala/Test_scala.ts +0 -3
- package/project/.sdk/src/cmp/scala/utility_scala.ts +0 -31
- package/project/.sdk/src/cmp/swift/Config_swift.ts +0 -62
- package/project/.sdk/src/cmp/swift/EntityOperation_swift.ts +0 -3
- package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +0 -39
- package/project/.sdk/src/cmp/swift/Main_swift.ts +0 -42
- package/project/.sdk/src/cmp/swift/Package_swift.ts +0 -69
- package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +0 -134
- package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +0 -2
- package/project/.sdk/src/cmp/swift/ReadmeExamplesTest_swift.ts +0 -22
- package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +2 -5
- package/project/.sdk/src/cmp/swift/Schema_swift.ts +0 -18
- package/project/.sdk/src/cmp/swift/TestEntity_swift.ts +0 -4
- package/project/.sdk/src/cmp/swift/utility_swift.ts +0 -51
- package/project/.sdk/src/cmp/ts/Config_ts.ts +0 -46
- package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +0 -34
- package/project/.sdk/src/cmp/ts/Entity_ts.ts +0 -6
- package/project/.sdk/src/cmp/ts/Main_ts.ts +0 -28
- package/project/.sdk/src/cmp/ts/Package_ts.ts +2 -26
- package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +0 -55
- package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +0 -9
- package/project/.sdk/src/cmp/ts/ReadmeExampleTest_ts.ts +0 -6
- package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +0 -25
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +4 -9
- package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +0 -7
- package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +0 -3
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +0 -43
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +2 -20
- package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +0 -11
- package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +6 -9
- package/project/.sdk/src/cmp/ts/Schema_ts.ts +0 -21
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +2 -53
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +3 -31
- package/project/.sdk/src/cmp/ts/TestLive_ts.ts +10 -4
- package/project/.sdk/src/cmp/ts/Test_ts.ts +0 -4
- package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +0 -27
- package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +0 -7
- package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +0 -7
- package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +0 -1
- package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +0 -4
- package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +0 -20
- package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +0 -6
- package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +0 -6
- package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +0 -15
- package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +0 -6
- package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +0 -15
- package/project/.sdk/src/cmp/ts/fragment/MainStation.fragment.ts +0 -12
- package/project/.sdk/src/cmp/ts/fragment/SdkError.fragment.ts +0 -9
- package/project/.sdk/src/cmp/ts/utility_ts.ts +0 -59
- package/project/.sdk/src/cmp/zig/Config_zig.ts +0 -70
- package/project/.sdk/src/cmp/zig/Entity_zig.ts +0 -3
- package/project/.sdk/src/cmp/zig/Main_zig.ts +0 -83
- package/project/.sdk/src/cmp/zig/Package_zig.ts +0 -22
- package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +0 -136
- package/project/.sdk/src/cmp/zig/ReadmeExamplesTest_zig.ts +0 -18
- package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +0 -3
- package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +2 -5
- package/project/.sdk/src/cmp/zig/Schema_zig.ts +0 -23
- package/project/.sdk/src/cmp/zig/TestDirect_zig.ts +0 -11
- package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +0 -8
- package/project/.sdk/src/cmp/zig/Test_zig.ts +0 -11
- package/project/.sdk/src/cmp/zig/utility_zig.ts +0 -47
- package/project/.sdk/tm/csharp/feature/FeatureOptions.cs +18 -5
- package/project/.sdk/tm/go/core/context.go +0 -9
- package/project/.sdk/tm/go/core/types.go +0 -3
- package/project/.sdk/tm/go/feature/audit_feature.go +0 -9
- package/project/.sdk/tm/go/feature/cache_feature.go +0 -8
- package/project/.sdk/tm/go/feature/clienttrack_feature.go +0 -7
- package/project/.sdk/tm/go/feature/cost_feature.go +0 -51
- package/project/.sdk/tm/go/feature/debug_feature.go +0 -6
- package/project/.sdk/tm/go/feature/feature_options.go +108 -21
- package/project/.sdk/tm/go/feature/idempotency_feature.go +0 -6
- package/project/.sdk/tm/go/feature/metrics_feature.go +0 -6
- package/project/.sdk/tm/go/feature/netsim_feature.go +0 -8
- package/project/.sdk/tm/go/feature/paging_feature.go +0 -9
- package/project/.sdk/tm/go/feature/proxy_feature.go +0 -7
- package/project/.sdk/tm/go/feature/ratelimit_feature.go +0 -6
- package/project/.sdk/tm/go/feature/rbac_feature.go +0 -10
- package/project/.sdk/tm/go/feature/retry_feature.go +0 -6
- package/project/.sdk/tm/go/feature/secrets_feature.go +0 -173
- package/project/.sdk/tm/go/feature/streaming_feature.go +0 -7
- package/project/.sdk/tm/go/feature/telemetry_feature.go +0 -8
- package/project/.sdk/tm/go/feature/test_feature.go +0 -23
- package/project/.sdk/tm/go/feature/validate_feature.go +0 -66
- package/project/.sdk/tm/go/test/custom_utility_test.go +0 -29
- package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +0 -100
- package/project/.sdk/tm/go/test/feature_corpus_test.go +1 -60
- package/project/.sdk/tm/go/test/feature_harness_test.go +0 -10
- package/project/.sdk/tm/go/test/feature_test.go +107 -9
- package/project/.sdk/tm/go/test/omniresolver_test.go +0 -74
- package/project/.sdk/tm/go/test/omnismoke_test.go +0 -4
- package/project/.sdk/tm/go/test/pipeline_test.go +0 -10
- package/project/.sdk/tm/go/test/primary_utility_test.go +0 -32
- package/project/.sdk/tm/go/test/struct_utility_test.go +0 -38
- package/project/.sdk/tm/go/test/testsupport_test.go +0 -25
- package/project/.sdk/tm/go/utility/feature_add.go +0 -6
- package/project/.sdk/tm/go/utility/fetcher.go +0 -6
- package/project/.sdk/tm/go/utility/graphql.go +1 -31
- package/project/.sdk/tm/go/utility/make_options.go +38 -49
- package/project/.sdk/tm/go/utility/make_point.go +0 -11
- package/project/.sdk/tm/go/utility/make_spec.go +0 -15
- package/project/.sdk/tm/go/utility/register.go +0 -28
- package/project/.sdk/tm/go/utility/transform_request.go +0 -20
- package/project/.sdk/tm/go/utility/transform_response.go +0 -8
- package/project/.sdk/tm/js/src/feature/test/TestFeature.js +12 -4
- package/project/.sdk/tm/rust/core/context.rs +0 -5
- package/project/.sdk/tm/rust/core/control.rs +0 -1
- package/project/.sdk/tm/rust/core/helpers.rs +0 -15
- package/project/.sdk/tm/rust/core/operation.rs +0 -1
- package/project/.sdk/tm/rust/core/point.rs +0 -3
- package/project/.sdk/tm/rust/core/response.rs +0 -2
- package/project/.sdk/tm/rust/core/result.rs +0 -1
- package/project/.sdk/tm/rust/core/spec.rs +0 -1
- package/project/.sdk/tm/rust/core/types.rs +0 -20
- package/project/.sdk/tm/rust/core/utility_type.rs +0 -5
- package/project/.sdk/tm/rust/feature/audit.rs +0 -9
- package/project/.sdk/tm/rust/feature/base.rs +0 -3
- package/project/.sdk/tm/rust/feature/cache.rs +0 -9
- package/project/.sdk/tm/rust/feature/clienttrack.rs +0 -7
- package/project/.sdk/tm/rust/feature/cost.rs +0 -48
- package/project/.sdk/tm/rust/feature/debug.rs +0 -7
- package/project/.sdk/tm/rust/feature/idempotency.rs +0 -7
- package/project/.sdk/tm/rust/feature/log.rs +0 -3
- package/project/.sdk/tm/rust/feature/metrics.rs +0 -7
- package/project/.sdk/tm/rust/feature/netsim.rs +0 -9
- package/project/.sdk/tm/rust/feature/paging.rs +0 -10
- package/project/.sdk/tm/rust/feature/proxy.rs +0 -8
- package/project/.sdk/tm/rust/feature/ratelimit.rs +0 -6
- package/project/.sdk/tm/rust/feature/rbac.rs +0 -10
- package/project/.sdk/tm/rust/feature/retry.rs +0 -6
- package/project/.sdk/tm/rust/feature/secrets.rs +1 -187
- package/project/.sdk/tm/rust/feature/streaming.rs +0 -7
- package/project/.sdk/tm/rust/feature/support.rs +0 -6
- package/project/.sdk/tm/rust/feature/telemetry.rs +0 -9
- package/project/.sdk/tm/rust/feature/test.rs +0 -19
- package/project/.sdk/tm/rust/feature/timeout.rs +0 -7
- package/project/.sdk/tm/rust/feature/validate.rs +0 -81
- package/project/.sdk/tm/rust/tests/common/mod.rs +0 -35
- package/project/.sdk/tm/rust/tests/custom_utility_test.rs +0 -2
- package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +0 -95
- package/project/.sdk/tm/rust/tests/feature_test.rs +0 -16
- package/project/.sdk/tm/rust/tests/netsim_test.rs +0 -6
- package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +0 -135
- package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +0 -15
- package/project/.sdk/tm/rust/tests/pipeline_test.rs +0 -6
- package/project/.sdk/tm/rust/tests/primary_utility_test.rs +0 -22
- package/project/.sdk/tm/rust/tests/struct_utility_test.rs +0 -25
- package/project/.sdk/tm/rust/utility/fetcher.rs +0 -5
- package/project/.sdk/tm/rust/utility/graphql.rs +1 -30
- package/project/.sdk/tm/rust/utility/make_error.rs +0 -2
- package/project/.sdk/tm/rust/utility/make_options.rs +0 -46
- package/project/.sdk/tm/rust/utility/make_point.rs +0 -12
- package/project/.sdk/tm/rust/utility/make_spec.rs +0 -4
- package/project/.sdk/tm/rust/utility/voxgigstruct/consts.rs +14 -20
- package/project/.sdk/tm/rust/utility/voxgigstruct/major.rs +0 -13
- package/project/.sdk/tm/rust/utility/voxgigstruct/mini.rs +0 -14
- package/project/.sdk/tm/rust/utility/voxgigstruct/mod.rs +0 -2
- package/project/.sdk/tm/rust/utility/voxgigstruct/ordered_map.rs +0 -18
- package/project/.sdk/tm/rust/utility/voxgigstruct/re.rs +0 -11
- package/project/.sdk/tm/rust/utility/voxgigstruct/value.rs +0 -3
- package/project/.sdk/tm/ts/src/Context.ts +0 -5
- package/project/.sdk/tm/ts/src/feature/audit/AuditFeature.ts +0 -7
- package/project/.sdk/tm/ts/src/feature/cache/CacheFeature.ts +0 -8
- package/project/.sdk/tm/ts/src/feature/clienttrack/ClienttrackFeature.ts +0 -7
- package/project/.sdk/tm/ts/src/feature/cost/CostFeature.ts +0 -52
- package/project/.sdk/tm/ts/src/feature/debug/DebugFeature.ts +0 -6
- package/project/.sdk/tm/ts/src/feature/metrics/MetricsFeature.ts +0 -6
- package/project/.sdk/tm/ts/src/feature/netsim/NetsimFeature.ts +0 -8
- package/project/.sdk/tm/ts/src/feature/paging/PagingFeature.ts +0 -13
- package/project/.sdk/tm/ts/src/feature/proxy/ProxyFeature.ts +0 -8
- package/project/.sdk/tm/ts/src/feature/ratelimit/RatelimitFeature.ts +0 -6
- package/project/.sdk/tm/ts/src/feature/rbac/RbacFeature.ts +0 -9
- package/project/.sdk/tm/ts/src/feature/retry/RetryFeature.ts +0 -6
- package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +0 -136
- package/project/.sdk/tm/ts/src/feature/streaming/StreamingFeature.ts +0 -7
- package/project/.sdk/tm/ts/src/feature/telemetry/TelemetryFeature.ts +0 -7
- package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +13 -88
- package/project/.sdk/tm/ts/src/feature/validate/ValidateFeature.ts +0 -87
- package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +0 -12
- package/project/.sdk/tm/ts/src/utility/FeatureAddUtility.ts +0 -1
- package/project/.sdk/tm/ts/src/utility/GraphqlUtility.ts +2 -30
- package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +0 -4
- package/project/.sdk/tm/ts/src/utility/MakeOptionsUtility.ts +0 -46
- package/project/.sdk/tm/ts/src/utility/MakePointUtility.ts +0 -34
- package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +0 -1
- package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +0 -5
- package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +0 -1
- package/project/.sdk/tm/ts/src/utility/ParamUtility.ts +0 -8
- package/project/.sdk/tm/ts/src/utility/PrepareBodyUtility.ts +0 -3
- package/project/.sdk/tm/ts/src/utility/PrepareParamsUtility.ts +0 -6
- package/project/.sdk/tm/ts/src/utility/ResultBasicUtility.ts +0 -1
- package/project/.sdk/tm/ts/src/utility/TransformRequestUtility.ts +0 -20
- package/project/.sdk/tm/ts/src/utility/TransformResponseUtility.ts +0 -4
- package/project/.sdk/tm/ts/test/exists.test.ts +0 -10
- package/project/.sdk/tm/ts/test/feature/Corpus.test.ts +0 -56
- package/project/.sdk/tm/ts/test/feature/harness.ts +0 -9
- package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +0 -106
- package/project/.sdk/tm/ts/test/live-contract.ts +0 -2
- package/project/.sdk/tm/ts/test/omni.ts +0 -32
- package/project/.sdk/tm/ts/test/pipeline.test.ts +45 -28
- package/project/.sdk/tm/ts/test/utility/Corpus.test.ts +0 -13
- package/project/.sdk/tm/ts/test/utility/PrimaryUtility.test.ts +56 -29
- package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +0 -7
- package/project/.sdk/tm/ts/test/utility.ts +0 -55
- package/project/sdkgen-package.json +1 -1
- package/src/action/action.ts +0 -65
- package/src/action/check.ts +0 -88
- package/src/action/dispatch.ts +0 -27
- package/src/action/doctor.ts +69 -329
- package/src/action/edition.ts +1 -87
- package/src/action/feature.ts +1 -49
- package/src/action/kind.ts +0 -149
- package/src/action/package.ts +0 -228
- package/src/action/resolve.ts +0 -148
- package/src/action/target.ts +0 -177
- package/src/cmp/AgentGuide.ts +0 -7
- package/src/cmp/AgentGuideContent.ts +0 -24
- package/src/cmp/AgentGuideTop.ts +0 -7
- package/src/cmp/Changelog.ts +0 -14
- package/src/cmp/Deploy.ts +1 -31
- package/src/cmp/Entity.ts +0 -4
- package/src/cmp/ExternalTarget.ts +0 -36
- package/src/cmp/Feature.ts +0 -14
- package/src/cmp/FeatureDocs.ts +0 -37
- package/src/cmp/PublishWorkflow.ts +0 -60
- package/src/cmp/ReadmeErrors.ts +0 -17
- package/src/cmp/ReadmeExplanation.ts +2 -11
- package/src/cmp/ReadmeFeatures.ts +0 -10
- package/src/cmp/ReadmeRefFeatures.ts +0 -19
- package/src/cmp/ReadmeStation.ts +0 -19
- package/src/cmp/ReadmeTop.ts +0 -80
- package/src/cmp/ReadmeUnions.ts +0 -15
- package/src/cmp/Registered.ts +0 -30
- package/src/cmp/Security.ts +0 -2
- package/src/cmp/Test.ts +3 -1
- package/src/cmp/TestControl.ts +0 -25
- package/src/helpers/applicability.ts +0 -60
- package/src/helpers/buildIdNames.ts +0 -12
- package/src/helpers/canonSpec.ts +0 -114
- package/src/helpers/canonType.ts +0 -87
- package/src/helpers/collectDeps.ts +0 -27
- package/src/helpers/definition.ts +0 -29
- package/src/helpers/dryrun.ts +0 -8
- package/src/helpers/featureSource.ts +0 -152
- package/src/helpers/getMatchEntries.ts +0 -4
- package/src/helpers/junk.ts +13 -89
- package/src/helpers/manifest.ts +0 -169
- package/src/helpers/modelNames.ts +0 -81
- package/src/helpers/modelcheck.ts +0 -106
- package/src/helpers/naming.ts +0 -303
- package/src/helpers/opExample.ts +0 -56
- package/src/helpers/opShape.ts +0 -200
- package/src/helpers/optspec.ts +0 -77
- package/src/helpers/packageMeta.ts +1 -200
- package/src/helpers/pointPath.ts +0 -55
- package/src/helpers/resolved.ts +50 -0
- package/src/helpers/semver.ts +0 -61
- package/src/helpers/serverVars.ts +0 -44
- package/src/helpers/shipped.ts +0 -14
- package/src/helpers/station.ts +0 -32
- package/src/helpers/stdrep.ts +0 -52
- package/src/helpers/testPolicy.ts +0 -4
- package/src/sdkgen.ts +15 -263
- package/src/testkit.ts +6 -312
- package/src/types.ts +1 -30
- package/src/utility.ts +0 -243
package/src/action/package.ts
CHANGED
|
@@ -1,30 +1,4 @@
|
|
|
1
1
|
import { kindCollection } from '../helpers/kindCollection'
|
|
2
|
-
// `package add` / `package list` — the whole-package verbs.
|
|
3
|
-
//
|
|
4
|
-
// See docs/design/sdkgen-packages.md §9.
|
|
5
|
-
//
|
|
6
|
-
// WHAT `package add` IS
|
|
7
|
-
//
|
|
8
|
-
// Not a new copy pipeline. It resolves a package ROOT, validates its manifest,
|
|
9
|
-
// and then runs the SAME per-kind add that `target add` / `feature add` run,
|
|
10
|
-
// once per provided item. Index handling, provenance stamping, feature
|
|
11
|
-
// fan-out, dry run and logging all come along unchanged, because they are not
|
|
12
|
-
// reimplemented. The value it adds over typing the individual adds is:
|
|
13
|
-
//
|
|
14
|
-
// - the manifest is REQUIRED and validated first, so a package that lies
|
|
15
|
-
// about what it provides fails before anything is written rather than
|
|
16
|
-
// halfway through;
|
|
17
|
-
// - the engine range is checked once, for the package, rather than never;
|
|
18
|
-
// - ordering: targets before features, because `feature add` fans a
|
|
19
|
-
// feature's source out across the targets already in the model, so a
|
|
20
|
-
// feature installed first would find none of the package's own targets.
|
|
21
|
-
//
|
|
22
|
-
// WHY VALIDATION COMES FIRST, ALL OF IT
|
|
23
|
-
//
|
|
24
|
-
// The items are installed in a loop. If the fourth one turns out not to be in
|
|
25
|
-
// the package, the first three are already written and the project is left
|
|
26
|
-
// half-installed with a partial index. Validating the whole claim up front is
|
|
27
|
-
// what makes the loop safe to run at all.
|
|
28
2
|
|
|
29
3
|
import Path from 'node:path'
|
|
30
4
|
|
|
@@ -67,18 +41,6 @@ const CMD_MAP: any = Object.assign(Object.create(null), {
|
|
|
67
41
|
})
|
|
68
42
|
|
|
69
43
|
|
|
70
|
-
// The kinds `package add` installs, IN ORDER.
|
|
71
|
-
//
|
|
72
|
-
// Targets first. `feature add` copies a feature's per-target source into every
|
|
73
|
-
// target already in the model, so a feature installed before the package's own
|
|
74
|
-
// targets would silently ship no source for them — the `feature-source-missing`
|
|
75
|
-
// warning, once per target, and a feature that does nothing.
|
|
76
|
-
//
|
|
77
|
-
// Docs LAST, for the mirror-image reason: a docs item is ABOUT the targets and
|
|
78
|
-
// features a project has (a page per SDK, a page per feature), and while it
|
|
79
|
-
// reads them at generate time rather than at add time, installing it last
|
|
80
|
-
// keeps the add log in the order a reader would expect and leaves the model
|
|
81
|
-
// complete before anything reads it.
|
|
82
44
|
const ADD_ORDER = ['target', 'feature', 'edition']
|
|
83
45
|
|
|
84
46
|
|
|
@@ -98,13 +60,6 @@ async function action_package(
|
|
|
98
60
|
}
|
|
99
61
|
|
|
100
62
|
|
|
101
|
-
// Where a package ROOT is, given a ref.
|
|
102
|
-
//
|
|
103
|
-
// The same probe chain `resolveSource` uses for an item, one level up: an
|
|
104
|
-
// installed npm package first, then a path relative to the project, then an
|
|
105
|
-
// absolute path. A package root is the folder HOLDING `.sdk`, which is what
|
|
106
|
-
// makes `<root>/<item>` the item ref — so the two resolvers agree by
|
|
107
|
-
// construction about what a package is.
|
|
108
63
|
type PackageSource = {
|
|
109
64
|
ref: string
|
|
110
65
|
root: string
|
|
@@ -124,10 +79,6 @@ function resolvePackage(ref: string, actx: ActionContext): PackageSource {
|
|
|
124
79
|
|
|
125
80
|
const { root, sdk, read } = found
|
|
126
81
|
|
|
127
|
-
// A `.sdk` folder with no manifest is a legal source for a DIRECT ref and
|
|
128
|
-
// is what every pre-manifest fixture is — but `package add` is the verb
|
|
129
|
-
// that acts on a manifest, so here its absence is the error, and it says
|
|
130
|
-
// which of the two commands the user wants.
|
|
131
82
|
if (null == read.manifest) {
|
|
132
83
|
throw new SdkGenError(
|
|
133
84
|
'No package manifest: ' + read.file +
|
|
@@ -166,12 +117,6 @@ function refuse(src: PackageSource, found: Finding[], log: any) {
|
|
|
166
117
|
}
|
|
167
118
|
|
|
168
119
|
|
|
169
|
-
// Is this generator new enough for the package?
|
|
170
|
-
//
|
|
171
|
-
// `undefined` from `satisfies` means the range is outside the subset it
|
|
172
|
-
// understands — see helpers/semver. That is reported and ALLOWED: refusing on
|
|
173
|
-
// a range nobody could parse would block a package that works, which is worse
|
|
174
|
-
// than the incompatibility being guarded against.
|
|
175
120
|
function checkEngine(src: PackageSource, actx: ActionContext) {
|
|
176
121
|
const range = src.manifest.engines?.sdkgen
|
|
177
122
|
|
|
@@ -213,24 +158,11 @@ const SDKGEN_VERSION: string = (() => {
|
|
|
213
158
|
})()
|
|
214
159
|
|
|
215
160
|
|
|
216
|
-
// The items to install, as `<kind>` -> names, after `--only` is applied.
|
|
217
|
-
//
|
|
218
|
-
// `--only target:iot-go,feature:circuitbreaker` — a subset of what the
|
|
219
|
-
// manifest provides, named the same way the manifest keys them. A name that
|
|
220
|
-
// the package does not provide is an ERROR listing what it does, rather than
|
|
221
|
-
// a silent no-op: a typo'd `--only` that installed nothing and reported
|
|
222
|
-
// success is the failure this whole verb exists to remove.
|
|
223
161
|
function selectItems(
|
|
224
162
|
src: PackageSource, only: string | undefined, log: any,
|
|
225
163
|
): Record<string, string[]> {
|
|
226
164
|
const provides = src.manifest.provides ?? {}
|
|
227
165
|
|
|
228
|
-
// ABSENT means "everything"; EXPLICITLY EMPTY does not.
|
|
229
|
-
//
|
|
230
|
-
// `--only=` and `{ only: '' }` are what a script gets when it builds the
|
|
231
|
-
// flag from an empty variable, and treating that as absent installs the
|
|
232
|
-
// whole package — the opposite of what the operator asked for, at the one
|
|
233
|
-
// moment nobody is watching.
|
|
234
166
|
if (null == only) {
|
|
235
167
|
return provides
|
|
236
168
|
}
|
|
@@ -288,10 +220,6 @@ function describeProvides(provides: Record<string, string[]>): string {
|
|
|
288
220
|
}
|
|
289
221
|
|
|
290
222
|
|
|
291
|
-
// `--alias iot-go=acme-go,other=thing` — the install-time renames, by ORIGIN
|
|
292
|
-
// name. Only kinds that permit aliasing may appear; a feature alias is
|
|
293
|
-
// refused here with the same explanation `feature add` gives, so the two
|
|
294
|
-
// entry points cannot disagree about what is allowed.
|
|
295
223
|
function parseAliases(
|
|
296
224
|
alias: string | undefined, wanted: Record<string, string[]>,
|
|
297
225
|
): Record<string, string> {
|
|
@@ -318,13 +246,6 @@ function parseAliases(
|
|
|
318
246
|
const from = spec.slice(0, eq)
|
|
319
247
|
const to = spec.slice(eq + 1)
|
|
320
248
|
|
|
321
|
-
// Checked HERE as well as in the resolver, because the two catch
|
|
322
|
-
// different things. The resolver sees whatever survives ref parsing, so
|
|
323
|
-
// it catches `iotgo=..`; but `iotgo=../../elsewhere` is concatenated into
|
|
324
|
-
// `<root>/iotgo~../../elsewhere`, whose last segment is `elsewhere` and
|
|
325
|
-
// which therefore stops looking like an alias at all — it resolves as a
|
|
326
|
-
// ref to a different item and fails confusingly instead. Same grammar in
|
|
327
|
-
// both places, so they cannot disagree about what a name is.
|
|
328
249
|
if (!ITEM_NAME_RE.test(to)) {
|
|
329
250
|
throw new SdkGenError(
|
|
330
251
|
'Invalid alias in --alias ' + JSON.stringify(spec) + ': ' +
|
|
@@ -388,14 +309,6 @@ async function package_add(
|
|
|
388
309
|
' were given: ' + refs.join(', '))
|
|
389
310
|
}
|
|
390
311
|
|
|
391
|
-
// PREFLIGHT EVERY PACKAGE BEFORE INSTALLING ANY OF THEM.
|
|
392
|
-
//
|
|
393
|
-
// The same argument that makes this verb validate a manifest in full before
|
|
394
|
-
// writing anything applies across refs: `package add good,bad` that
|
|
395
|
-
// installed `good` and then failed would leave exactly the half-completed
|
|
396
|
-
// command the guarantee is about. Resolution, the engine gate, manifest
|
|
397
|
-
// validation, `--only` selection and the name-collision check all happen
|
|
398
|
-
// here, for all of them, before the first file is written.
|
|
399
312
|
const plan = refs.map((ref: string) => plan_one(ref, flags, actx))
|
|
400
313
|
|
|
401
314
|
checkCollisions(plan, actx)
|
|
@@ -485,16 +398,6 @@ function plan_one(
|
|
|
485
398
|
}
|
|
486
399
|
|
|
487
400
|
|
|
488
|
-
// Would any of this REPLACE something the project got from elsewhere?
|
|
489
|
-
//
|
|
490
|
-
// `add` is overwrite, deliberately — that is how a resync works. But
|
|
491
|
-
// overwriting one package's `go` with a different package's `go` is not a
|
|
492
|
-
// resync: it silently replaces a working target's model, components and
|
|
493
|
-
// templates. The project asked for a package, not for that.
|
|
494
|
-
//
|
|
495
|
-
// Checked across the WHOLE plan, so two packages in one command claiming the
|
|
496
|
-
// same name are caught too — the second would otherwise conflict with nothing,
|
|
497
|
-
// because the first is not installed yet either.
|
|
498
401
|
function checkCollisions(plan: Planned[], actx: ActionContext) {
|
|
499
402
|
const claimed = new Map<string, string>()
|
|
500
403
|
const clashes: string[] = []
|
|
@@ -570,22 +473,6 @@ function registerAdder(
|
|
|
570
473
|
}
|
|
571
474
|
|
|
572
475
|
|
|
573
|
-
// The adder for a kind, LOADING THE REGISTRATIONS IF NOBODY HAS YET.
|
|
574
|
-
//
|
|
575
|
-
// `dispatch` is what calls `registerAdder`, and until this, whether it had
|
|
576
|
-
// been loaded depended on the importer: `sdkgen.ts` pulls it in, so the CLI
|
|
577
|
-
// worked, but anything importing this module directly got an empty table —
|
|
578
|
-
// and `package add` / `package update` then skipped every item with a
|
|
579
|
-
// `package-kind-unsupported` warning and reported success. It silently did
|
|
580
|
-
// nothing.
|
|
581
|
-
//
|
|
582
|
-
// Found the hard way: a throwaway script written to reproduce a review
|
|
583
|
-
// finding imported this module alone, and the "update" it performed was a
|
|
584
|
-
// no-op that looked like a passing result. A capability that depends on some
|
|
585
|
-
// other module having been imported first is not a capability.
|
|
586
|
-
//
|
|
587
|
-
// Required lazily rather than at the top, because `dispatch` imports THIS
|
|
588
|
-
// module; by call time the cycle has resolved.
|
|
589
476
|
function adderFor(
|
|
590
477
|
kind: string,
|
|
591
478
|
): ((refs: string[], actx: ActionContext) => Promise<any>) | undefined {
|
|
@@ -597,34 +484,6 @@ function adderFor(
|
|
|
597
484
|
}
|
|
598
485
|
|
|
599
486
|
|
|
600
|
-
// `package update <pkg>` — refresh everything a package supplied.
|
|
601
|
-
//
|
|
602
|
-
// See docs/design/sdkgen-packages.md §13.
|
|
603
|
-
//
|
|
604
|
-
// THE ORDER IS THE SAFETY PROPERTY, which is why this command owns the fetch
|
|
605
|
-
// instead of telling the operator to run `npm update` first:
|
|
606
|
-
//
|
|
607
|
-
// 1. CHECK the project's copies against the source AS CURRENTLY INSTALLED
|
|
608
|
-
// 2. FETCH the new version
|
|
609
|
-
// 3. RE-ADD each item
|
|
610
|
-
//
|
|
611
|
-
// Measured at step 1, a copy that differs from its source means the project
|
|
612
|
-
// changed it. Run the other way round — fetch first, then check — every item
|
|
613
|
-
// legitimately differs from the new source, the gate fires on all of them,
|
|
614
|
-
// and the operator learns to pass `--force` every time. That ordering bug
|
|
615
|
-
// would make the gate worse than useless, because the same signal (copy
|
|
616
|
-
// differs from source) carries both meanings and only sequence separates
|
|
617
|
-
// them.
|
|
618
|
-
//
|
|
619
|
-
// WHAT THE GATE CANNOT DO, and says so
|
|
620
|
-
//
|
|
621
|
-
// It cannot prove which meaning applies. If the operator already ran
|
|
622
|
-
// `npm update` in another shell, step 1 is measuring against the NEW source
|
|
623
|
-
// and a difference means "stale", not "forked" — and nothing recorded in the
|
|
624
|
-
// project distinguishes the two. So the refusal states both readings and
|
|
625
|
-
// gives a runnable out for each, rather than asserting a fork it cannot
|
|
626
|
-
// diagnose. (A per-file digest recorded at add time would make it exact;
|
|
627
|
-
// deferred, design §17.9.)
|
|
628
487
|
async function cmd_package_update(
|
|
629
488
|
args: string[], actx: ActionContext,
|
|
630
489
|
): Promise<ActionResult> {
|
|
@@ -652,13 +511,6 @@ type Installed = {
|
|
|
652
511
|
}
|
|
653
512
|
|
|
654
513
|
|
|
655
|
-
// Everything the model says came from `pkgname`.
|
|
656
|
-
//
|
|
657
|
-
// By RECORDED PROVENANCE, not by asking the package what it provides: what
|
|
658
|
-
// this refreshes is what the project actually installed, which may be a
|
|
659
|
-
// subset (`--only`) or carry aliases the package never mentions. Asking the
|
|
660
|
-
// package would refresh things the project does not have and miss the ones it
|
|
661
|
-
// renamed.
|
|
662
514
|
function installedFrom(pkgname: string, actx: ActionContext): Installed[] {
|
|
663
515
|
const kit: any = (actx.model as any)?.main?.[KIT] ?? {}
|
|
664
516
|
const found: Installed[] = []
|
|
@@ -749,21 +601,6 @@ async function package_update(
|
|
|
749
601
|
}
|
|
750
602
|
|
|
751
603
|
|
|
752
|
-
// EVERYTHING THE RE-ADD WILL WRITE, not just the package's own items.
|
|
753
|
-
//
|
|
754
|
-
// The gate is only worth having if it covers what step 3 actually touches,
|
|
755
|
-
// and step 3 touches more than it is asked to: `target_add` re-runs
|
|
756
|
-
// `feature_add` for EVERY active feature in the model, whoever supplied it.
|
|
757
|
-
// So updating a target package rewrites the model file of a feature that came
|
|
758
|
-
// from somewhere else — and a scope of "this package's items" never looked at
|
|
759
|
-
// it, so a local edit there was overwritten without `--force`, by the command
|
|
760
|
-
// whose whole promise is that it asks first.
|
|
761
|
-
//
|
|
762
|
-
// The features are added to the scope, not the fan-out narrowed: what the
|
|
763
|
-
// re-add does is `target add`'s long-standing behaviour, and changing it here
|
|
764
|
-
// would make `package update` write something different from what a
|
|
765
|
-
// hand-typed add writes — the equivalence every other part of this verb is
|
|
766
|
-
// built on.
|
|
767
604
|
function blastRadius(
|
|
768
605
|
installed: Installed[], actx: ActionContext,
|
|
769
606
|
): Set<string> {
|
|
@@ -802,10 +639,6 @@ async function preCheck(
|
|
|
802
639
|
|
|
803
640
|
const report = res.report
|
|
804
641
|
|
|
805
|
-
// `forked` and `edited` only. `missing` means the project is short of what
|
|
806
|
-
// add would write, which an update FIXES; `resyncPending` is provenance
|
|
807
|
-
// catching up, which an update also fixes; `aliasedDiff` is the project's
|
|
808
|
-
// own differentiation of an alias, which step 3 does not touch anyway.
|
|
809
642
|
const changed = [...report.forked, ...report.edited]
|
|
810
643
|
|
|
811
644
|
if (0 === changed.length) {
|
|
@@ -837,13 +670,6 @@ async function preCheck(
|
|
|
837
670
|
}
|
|
838
671
|
|
|
839
672
|
|
|
840
|
-
// STEP 2: fetch. Injectable, so tests do not shell out and a caller with its
|
|
841
|
-
// own dependency management can supply one.
|
|
842
|
-
//
|
|
843
|
-
// `--no-fetch` covers the operator who has already fetched deliberately and
|
|
844
|
-
// accepts that step 1 measured against the new source. It is not the default
|
|
845
|
-
// because then this command would only ever re-apply the source it already
|
|
846
|
-
// has, which is `package add`.
|
|
847
673
|
async function fetchPackage(
|
|
848
674
|
pkgname: string, installed: Installed[], actx: ActionContext,
|
|
849
675
|
) {
|
|
@@ -857,13 +683,6 @@ async function fetchPackage(
|
|
|
857
683
|
return
|
|
858
684
|
}
|
|
859
685
|
|
|
860
|
-
// A DRY RUN MUST NOT FETCH. The adders honour `actx.opts.dryrun` and write
|
|
861
|
-
// nothing, but an unconditional `npm install --save-dev` rewrites
|
|
862
|
-
// package.json, the lockfile and node_modules — mutating dependency state
|
|
863
|
-
// in the one mode whose entire promise is that nothing changes. This
|
|
864
|
-
// workstream has already fixed one dry-run defect (pruneStaleTemplates
|
|
865
|
-
// deleting files during a dry run); the fetch is the same failure in a
|
|
866
|
-
// louder place, because it reaches outside the project.
|
|
867
686
|
if (true === actx.opts?.dryrun) {
|
|
868
687
|
actx.log.info({
|
|
869
688
|
point: 'package-update-dryrun-fetch', package: pkgname,
|
|
@@ -875,12 +694,6 @@ async function fetchPackage(
|
|
|
875
694
|
|
|
876
695
|
const fetch = actx.fetchPackage ?? npmFetch
|
|
877
696
|
|
|
878
|
-
// npm CAN ONLY UPDATE WHAT NPM INSTALLED. A package added by a local path
|
|
879
|
-
// or an absolute checkout records that base, and the re-add reads from it —
|
|
880
|
-
// so an `npm install` would write a fresh copy into `node_modules`, leave
|
|
881
|
-
// the recorded source untouched, and the command would then recopy the OLD
|
|
882
|
-
// content while reporting success and having changed the project's
|
|
883
|
-
// dependencies. Refused rather than half-done, naming the way to do it.
|
|
884
697
|
if (null == actx.fetchPackage) {
|
|
885
698
|
const local = installed.find((i: Installed) =>
|
|
886
699
|
'' !== i.base && !isNodeModules(i.base))
|
|
@@ -909,12 +722,6 @@ function isNodeModules(base: string): boolean {
|
|
|
909
722
|
}
|
|
910
723
|
|
|
911
724
|
|
|
912
|
-
// The default fetch: hand it to npm, in the project's own directory.
|
|
913
|
-
//
|
|
914
|
-
// SHELLING OUT IS DELIBERATE and is the one place this generator runs another
|
|
915
|
-
// tool. The alternative — telling the operator to fetch first — is what makes
|
|
916
|
-
// the pre-check unable to distinguish a fork from a stale copy, which is the
|
|
917
|
-
// entire point of the ordering above.
|
|
918
725
|
async function npmFetch(pkgname: string, actx: ActionContext) {
|
|
919
726
|
const { execFile } = require('node:child_process')
|
|
920
727
|
const { promisify } = require('node:util')
|
|
@@ -928,18 +735,6 @@ async function npmFetch(pkgname: string, actx: ActionContext) {
|
|
|
928
735
|
})
|
|
929
736
|
|
|
930
737
|
try {
|
|
931
|
-
// `npm.cmd` ON WINDOWS. `execFile` does no PATHEXT resolution, so plain
|
|
932
|
-
// `npm` — which is a `.cmd` shim there — fails with ENOENT. Not caught by
|
|
933
|
-
// CI, because every test injects its own fetcher and this function never
|
|
934
|
-
// runs; found by reading it rather than by it breaking.
|
|
935
|
-
//
|
|
936
|
-
// Arguments as an ARRAY and no `shell: true`, so a package name is never
|
|
937
|
-
// interpreted by a shell.
|
|
938
|
-
//
|
|
939
|
-
// maxBuffer raised well past execFile's 1MB default: `npm install` output
|
|
940
|
-
// for a large tree exceeds it, and the resulting ENOBUFS would be caught
|
|
941
|
-
// below and reported as a failed fetch — after npm had in fact SUCCEEDED,
|
|
942
|
-
// leaving the project's dependencies updated and its `.sdk` not.
|
|
943
738
|
const out = await run(
|
|
944
739
|
'win32' === process.platform ? 'npm.cmd' : 'npm',
|
|
945
740
|
['install', '--save-dev', pkgname + '@latest'],
|
|
@@ -960,17 +755,6 @@ async function npmFetch(pkgname: string, actx: ActionContext) {
|
|
|
960
755
|
}
|
|
961
756
|
|
|
962
757
|
|
|
963
|
-
// STEP 2b: the fetched package is a DIFFERENT package from the one checked.
|
|
964
|
-
//
|
|
965
|
-
// Resolved from a recorded base rather than by name, because that is where
|
|
966
|
-
// the re-add will read from — validating some other copy of the package would
|
|
967
|
-
// be validating the wrong thing.
|
|
968
|
-
//
|
|
969
|
-
// A source with no manifest is not an error here, unlike in `package add`:
|
|
970
|
-
// the project demonstrably installed from it once, and refusing to refresh it
|
|
971
|
-
// now would strand a project whose package predates the manifest. Nothing is
|
|
972
|
-
// validated in that case, which is the same amount as before this command
|
|
973
|
-
// existed.
|
|
974
758
|
function validateFetched(
|
|
975
759
|
pkgname: string, installed: Installed[], actx: ActionContext,
|
|
976
760
|
) {
|
|
@@ -1004,14 +788,6 @@ function validateFetched(
|
|
|
1004
788
|
}
|
|
1005
789
|
|
|
1006
790
|
|
|
1007
|
-
// STEP 3: re-add each item from its recorded base.
|
|
1008
|
-
//
|
|
1009
|
-
// An ALIASED item's model file is left alone, and that is not special-cased
|
|
1010
|
-
// here: `kindModel` already creates it `exclude: true` for a kind whose
|
|
1011
|
-
// aliased definition is project-owned, so a re-add refreshes `src/cmp` and
|
|
1012
|
-
// `tm` from the new origin and leaves the file the project is MEANT to edit
|
|
1013
|
-
// untouched. Reported, so the author knows to port upstream model changes by
|
|
1014
|
-
// hand rather than discovering later that they were never applied.
|
|
1015
791
|
async function reAdd(
|
|
1016
792
|
pkgname: string, installed: Installed[], actx: ActionContext,
|
|
1017
793
|
): Promise<any[]> {
|
|
@@ -1065,9 +841,6 @@ async function reAdd(
|
|
|
1065
841
|
}
|
|
1066
842
|
|
|
1067
843
|
|
|
1068
|
-
// `package list` — what this project has installed, and where each item came
|
|
1069
|
-
// from. Read entirely from the MODEL's recorded provenance (§4), which is why
|
|
1070
|
-
// there is no lockfile to consult and nothing that can disagree with it.
|
|
1071
844
|
async function cmd_package_list(
|
|
1072
845
|
_args: string[], actx: ActionContext,
|
|
1073
846
|
): Promise<ActionResult> {
|
|
@@ -1075,7 +848,6 @@ async function cmd_package_list(
|
|
|
1075
848
|
const fs = actx.fs()
|
|
1076
849
|
const kit: any = (actx.model as any)?.main?.[KIT] ?? {}
|
|
1077
850
|
|
|
1078
|
-
// package name -> kind -> [{name, base, origname}]
|
|
1079
851
|
const groups: Record<string, any[]> = Object.create(null)
|
|
1080
852
|
|
|
1081
853
|
for (const kind of Object.keys(KINDS).sort()) {
|
package/src/action/resolve.ts
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
import { kindCollection } from '../helpers/kindCollection'
|
|
2
|
-
// Where a `<kind> add <ref>` gets its definition from.
|
|
3
|
-
//
|
|
4
|
-
// One resolver for every KIND of thing an add can install — targets today,
|
|
5
|
-
// features as of this change, more later — because the ref grammar is the
|
|
6
|
-
// same whatever is being added, and it had drifted: `target add` accepted a
|
|
7
|
-
// path ref and an alias, while `feature add` accepted only a bare name and
|
|
8
|
-
// read from a hardcoded `node_modules/@voxgig/sdkgen`. A feature defined
|
|
9
|
-
// anywhere else could not be added at all.
|
|
10
|
-
//
|
|
11
|
-
// It lives in its own module rather than in `target.ts` because `target.ts`
|
|
12
|
-
// imports `feature_add`, so a resolver there would put `feature.ts` and
|
|
13
|
-
// `target.ts` in a require cycle.
|
|
14
2
|
|
|
15
3
|
import Path from 'node:path'
|
|
16
4
|
|
|
@@ -22,25 +10,21 @@ import { definitionPath } from '../helpers/definition'
|
|
|
22
10
|
import { readManifest, checkShape, ITEM_NAME_RE } from '../helpers/manifest'
|
|
23
11
|
|
|
24
12
|
|
|
25
|
-
// The bundled scaffold: what a bare name resolves to.
|
|
26
13
|
const BUNDLED = 'node_modules/@voxgig/sdkgen/project/.sdk'
|
|
27
14
|
|
|
28
15
|
|
|
29
16
|
type Source = {
|
|
30
|
-
// The name it is INSTALLED as (the alias, when one was given).
|
|
31
17
|
name: string
|
|
32
18
|
|
|
33
19
|
// The name it has in the SOURCE. Differs from `name` only for an alias.
|
|
34
20
|
origname: string
|
|
35
21
|
|
|
36
|
-
// The resolved `.sdk` folder, as a path to read from.
|
|
37
22
|
folder: string
|
|
38
23
|
|
|
39
24
|
// The same folder relative to the project, '/'-normalised — the value
|
|
40
25
|
// recorded as provenance. See helpers/stdrep.
|
|
41
26
|
base: string
|
|
42
27
|
|
|
43
|
-
// The definition file inside that folder, for this kind.
|
|
44
28
|
model: string
|
|
45
29
|
|
|
46
30
|
// The sdkgen package that provided it, when the source has a manifest.
|
|
@@ -49,11 +33,6 @@ type Source = {
|
|
|
49
33
|
}
|
|
50
34
|
|
|
51
35
|
|
|
52
|
-
// Last path segment of a ref. A ref may be a bare name ('go'), a
|
|
53
|
-
// package-relative path ('@acme/kit/go'), or an ABSOLUTE path — and on Windows
|
|
54
|
-
// an absolute path is separated by `\`, so splitting on '/' alone hands back
|
|
55
|
-
// the whole path as the name and every lookup below then misses. On POSIX
|
|
56
|
-
// Path.sep IS '/', so this is the same split it always was.
|
|
57
36
|
function lastSegment(ref: string): string {
|
|
58
37
|
return getelem(ref.split('/').flatMap((p: string) => p.split(Path.sep)), -1)
|
|
59
38
|
}
|
|
@@ -69,15 +48,6 @@ function resolveSource(ref: string, kind: string, ctx$: any): Source {
|
|
|
69
48
|
let folder = Path.normalize(Path.join(root, BUNDLED))
|
|
70
49
|
let name = lastSegment(ref)
|
|
71
50
|
|
|
72
|
-
// `<ref>~<alias>` installs the ref's definition under a different name.
|
|
73
|
-
//
|
|
74
|
-
// The `~` is only an alias separator in the LAST SEGMENT, which is where a
|
|
75
|
-
// name can appear. Splitting the whole ref on it broke any ref whose PATH
|
|
76
|
-
// contains a tilde — and on Windows that is routine: an 8.3 short name like
|
|
77
|
-
// `C:\Users\RUNNER~1\AppData\Local\Temp\pkg\circuitbreaker` was read as
|
|
78
|
-
// "install `C:\Users\RUNNER` under the alias `1\AppData\...`", which then
|
|
79
|
-
// looked for `C:\Users\.sdk`. Legal on POSIX too — a directory may simply
|
|
80
|
-
// be called `foo~bar`.
|
|
81
51
|
const sep = Math.max(ref.lastIndexOf('/'), ref.lastIndexOf(Path.sep))
|
|
82
52
|
const dir = sep < 0 ? '' : ref.slice(0, sep + 1)
|
|
83
53
|
const last = sep < 0 ? ref : ref.slice(sep + 1)
|
|
@@ -90,12 +60,6 @@ function resolveSource(ref: string, kind: string, ctx$: any): Source {
|
|
|
90
60
|
if (1 < aliasing.length) {
|
|
91
61
|
name = aliasing.slice(1).join('~')
|
|
92
62
|
|
|
93
|
-
// The alias becomes a DESTINATION: `model/<kind>/<name>.aon`,
|
|
94
|
-
// `src/cmp/<name>/`, `tm/<name>/` — all written, and `target add`
|
|
95
|
-
// overwrites what it writes. `go~..` therefore redirects the copy out of
|
|
96
|
-
// the target-specific directory and over unrelated scaffold. Checked
|
|
97
|
-
// against the same grammar the manifest applies to a name, because it is
|
|
98
|
-
// the same thing: what the item is called once installed.
|
|
99
63
|
if (!ITEM_NAME_RE.test(name)) {
|
|
100
64
|
throw new Error(
|
|
101
65
|
'Invalid ' + kind + ' alias: ' + JSON.stringify(name) +
|
|
@@ -113,7 +77,6 @@ function resolveSource(ref: string, kind: string, ctx$: any): Source {
|
|
|
113
77
|
// recognises it. Path.isAbsolute and Path.sep are platform-correct and
|
|
114
78
|
// reduce to the same answers on POSIX.
|
|
115
79
|
if (aliasref.includes('/') || aliasref.includes(Path.sep)) {
|
|
116
|
-
// NOTE: the last path element of the ref is the name, not a folder.
|
|
117
80
|
const aliasbase = Path.dirname(aliasref)
|
|
118
81
|
|
|
119
82
|
if (!Path.isAbsolute(aliasref)) {
|
|
@@ -154,13 +117,6 @@ function resolveSource(ref: string, kind: string, ctx$: any): Source {
|
|
|
154
117
|
name,
|
|
155
118
|
origname,
|
|
156
119
|
folder,
|
|
157
|
-
// '/'-normalised, unlike `folder`. `base` is the one value here that gets
|
|
158
|
-
// WRITTEN INTO A COMMITTED FILE (the provenance stamp), so it must not
|
|
159
|
-
// depend on the OS that ran the add: on Windows Path.join yields
|
|
160
|
-
// `node_modules\@voxgig\sdkgen\project\.sdk`, so the same project resynced
|
|
161
|
-
// on Linux and on Windows produced two different model files and each
|
|
162
|
-
// churned the other's. Forward slashes are accepted by every Node path API
|
|
163
|
-
// on Windows, so the readers are unaffected.
|
|
164
120
|
base: (folder.startsWith(rootslash)
|
|
165
121
|
? folder.slice(rootslash.length)
|
|
166
122
|
: folder).split(Path.sep).join('/'),
|
|
@@ -169,37 +125,11 @@ function resolveSource(ref: string, kind: string, ctx$: any): Source {
|
|
|
169
125
|
// separator path that some readers handle and others do not.
|
|
170
126
|
model: definitionPath(folder, kind, origname),
|
|
171
127
|
|
|
172
|
-
// The package that provided it, when the source declares a manifest.
|
|
173
|
-
// Read here rather than by the callers so a DIRECT ref
|
|
174
|
-
// (`target add ../pkg/iot-go`) records the same provenance
|
|
175
|
-
// `package add @acme/sdkgen-iot` would — the two spellings install the
|
|
176
|
-
// same thing, so they must record the same thing.
|
|
177
|
-
//
|
|
178
|
-
// A manifest is OPTIONAL for a direct ref and its absence is not a
|
|
179
|
-
// finding here: a bare `.sdk`-shaped folder is still a valid source, and
|
|
180
|
-
// every consumer's existing fixtures are exactly that. It is `package
|
|
181
|
-
// add` that requires one.
|
|
182
128
|
package: sourcePackage(fs, folder, kind, origname, ctx$),
|
|
183
129
|
}
|
|
184
130
|
}
|
|
185
131
|
|
|
186
132
|
|
|
187
|
-
// The manifest's package name, or undefined.
|
|
188
|
-
//
|
|
189
|
-
// TOLERANT BY DESIGN, on this path. A malformed manifest must not break
|
|
190
|
-
// `target add` — the definition, the components and the templates are all
|
|
191
|
-
// present and correct, and refusing to install them because a JSON file
|
|
192
|
-
// beside them has a trailing comma would be a worse outcome than installing
|
|
193
|
-
// them with one provenance line missing. `package add` validates properly and
|
|
194
|
-
// refuses; this only reads a name.
|
|
195
|
-
//
|
|
196
|
-
// Tolerant is not the same as credulous. The SHAPE is checked before the name
|
|
197
|
-
// is believed, because `package:` provenance is what `package update` later
|
|
198
|
-
// acts on: recording a project as belonging to `@acme/sdkgen-iot` on the
|
|
199
|
-
// strength of a file that declares no schema version and no `provides` would
|
|
200
|
-
// point a future update at a package that cannot be added at all. A manifest
|
|
201
|
-
// that would fail validation is treated exactly like one that would not
|
|
202
|
-
// parse — warn, and record nothing.
|
|
203
133
|
function sourcePackage(
|
|
204
134
|
fs: any, folder: string, kind: string, origname: string, ctx$: any,
|
|
205
135
|
): string | undefined {
|
|
@@ -222,13 +152,6 @@ function sourcePackage(
|
|
|
222
152
|
return undefined
|
|
223
153
|
}
|
|
224
154
|
|
|
225
|
-
// The manifest must actually CLAIM this item. A package may carry a
|
|
226
|
-
// definition it deliberately does not list — that is what the
|
|
227
|
-
// `manifest-item-unclaimed` warning is about, "nothing will install it" —
|
|
228
|
-
// and stamping the package name onto one anyway would record that
|
|
229
|
-
// `@acme/sdkgen-iot` supplied something `package add @acme/sdkgen-iot`
|
|
230
|
-
// would never install, which is exactly the equivalence the comment at the
|
|
231
|
-
// call site rests on. `package update` would then act on it.
|
|
232
155
|
const claimed = read.manifest.provides?.[kind]
|
|
233
156
|
|
|
234
157
|
if (!Array.isArray(claimed) || !claimed.includes(origname)) {
|
|
@@ -254,24 +177,6 @@ function warnManifest(ctx$: any, file: string, err: string) {
|
|
|
254
177
|
}
|
|
255
178
|
|
|
256
179
|
|
|
257
|
-
// Teach the IN-MEMORY model about items that have just been installed.
|
|
258
|
-
//
|
|
259
|
-
// An action reads `actx.model`, compiled from `model/sdk.aontu` before the
|
|
260
|
-
// run. Writing `model/target/iotgo.aon` does not change it and nothing
|
|
261
|
-
// recompiles mid-process, so anything later in the SAME command behaves as if
|
|
262
|
-
// the item is not installed.
|
|
263
|
-
//
|
|
264
|
-
// That is not cosmetic. `feature add` copies a feature's source into every
|
|
265
|
-
// target IN THE MODEL, using the two-tree lookup that reaches a feature
|
|
266
|
-
// package's overlay — so a target missing from the model gets source only
|
|
267
|
-
// from its own tree. For a target and an active feature that come from
|
|
268
|
-
// DIFFERENT packages, that means no source at all: the overlay is never
|
|
269
|
-
// consulted for it, and the target's own tree does not have it. Silent, bar
|
|
270
|
-
// one `feature-source-missing` warning.
|
|
271
|
-
//
|
|
272
|
-
// ONE definition, called by `target_add` before its own fan-out and by
|
|
273
|
-
// `package add` after each kind, because two places computing what to record
|
|
274
|
-
// is how the recorded values drift from the stamped ones.
|
|
275
180
|
function registerInstalled(kind: string, refs: string[], ctx$: any) {
|
|
276
181
|
const kit: any = ctx$.model?.main?.[KIT]
|
|
277
182
|
|
|
@@ -309,15 +214,6 @@ function registerInstalled(kind: string, refs: string[], ctx$: any) {
|
|
|
309
214
|
}
|
|
310
215
|
|
|
311
216
|
|
|
312
|
-
// Is this name already installed FROM SOMEWHERE ELSE?
|
|
313
|
-
//
|
|
314
|
-
// `add` is overwrite, deliberately — that is how a resync works. But
|
|
315
|
-
// overwriting one package's target with a different package's target of the
|
|
316
|
-
// same name is not a resync, it is a collision, and doing it silently
|
|
317
|
-
// replaces a working target's model, components and templates with another's.
|
|
318
|
-
//
|
|
319
|
-
// Returns the conflicting record, or undefined when the name is free or is
|
|
320
|
-
// the SAME source (which is a resync and must keep working).
|
|
321
217
|
function nameConflict(
|
|
322
218
|
kind: string, source: Source, ctx$: any,
|
|
323
219
|
): { package?: string, base?: string } | undefined {
|
|
@@ -343,27 +239,10 @@ function nameConflict(
|
|
|
343
239
|
return undefined
|
|
344
240
|
}
|
|
345
241
|
|
|
346
|
-
// The record names a DIFFERENT source. That is a collision only if that
|
|
347
|
-
// source still provides this name — otherwise the record is STALE and
|
|
348
|
-
// adopting the new one is a migration, not a silent clobber.
|
|
349
|
-
//
|
|
350
|
-
// A package can stop providing something it used to: `seneca-provider` left
|
|
351
|
-
// @voxgig/sdkgen for @voxgig/sdkgen-infrapack, `dart`/`haskell`/`lean` left
|
|
352
|
-
// for @voxgig/sdkgen-langpack. Every project carrying the pre-split copy
|
|
353
|
-
// still records the old package, so a check that reads only the record
|
|
354
|
-
// refuses the very add that repairs it, and names as the incumbent a
|
|
355
|
-
// package that no longer ships the thing at all. The only way through was
|
|
356
|
-
// `<kind> add <package>/<name>`, which nobody guesses from the message.
|
|
357
242
|
return providesStill(kind, declared, source, ctx$) ? declared : undefined
|
|
358
243
|
}
|
|
359
244
|
|
|
360
245
|
|
|
361
|
-
// Does the RECORDED source still provide this name?
|
|
362
|
-
//
|
|
363
|
-
// Answered from what is on disk now, not from the record. Conservative in
|
|
364
|
-
// both directions: an unreadable or absent source cannot be shown to provide
|
|
365
|
-
// it, so the add proceeds; anything still providing it is a real collision
|
|
366
|
-
// and still refuses.
|
|
367
246
|
function providesStill(
|
|
368
247
|
kind: string, declared: any, source: Source, ctx$: any,
|
|
369
248
|
): boolean {
|
|
@@ -372,7 +251,6 @@ function providesStill(
|
|
|
372
251
|
fs = ctx$.fs()
|
|
373
252
|
}
|
|
374
253
|
catch (err: any) {
|
|
375
|
-
// No filesystem to check with — keep the pre-existing behaviour.
|
|
376
254
|
return true
|
|
377
255
|
}
|
|
378
256
|
|
|
@@ -386,33 +264,8 @@ function providesStill(
|
|
|
386
264
|
return false
|
|
387
265
|
}
|
|
388
266
|
|
|
389
|
-
// The name to look for is the one the SOURCE knows it by, which differs
|
|
390
|
-
// from the installed name only for an alias.
|
|
391
|
-
//
|
|
392
|
-
// `||`, NOT `??`. `origname` is `*'' | string` in the schema, and the model
|
|
393
|
-
// records the empty string for every unaliased item -- the convention is a
|
|
394
|
-
// falsy default, not an absent key. Nullish coalescing does not fall back
|
|
395
|
-
// for '', so a reloaded project would have every ordinary item looked up as
|
|
396
|
-
// '', found in no manifest, and declared stale: the guard would then wave
|
|
397
|
-
// through exactly the silent overwrite it exists to stop. The in-process
|
|
398
|
-
// tests could not see it, because `registerInstalled` leaves `origname`
|
|
399
|
-
// non-empty in the same context that wrote it.
|
|
400
267
|
const seek = declared.origname || source.name
|
|
401
268
|
|
|
402
|
-
// A WELL-FORMED manifest is authoritative about what its package provides:
|
|
403
|
-
// a definition file can linger in a stale node_modules tree after the
|
|
404
|
-
// package dropped it, and `provides` is the claim `package add` is itself
|
|
405
|
-
// checked against.
|
|
406
|
-
//
|
|
407
|
-
// A manifest that would fail validation is not authoritative about
|
|
408
|
-
// anything. `resolveSource` deliberately tolerates a malformed manifest on
|
|
409
|
-
// the direct-add path -- the definition, components and templates are all
|
|
410
|
-
// present, so it installs them and records `base` -- which is precisely how
|
|
411
|
-
// an installed item comes to have one. Reading `provides` out of it anyway
|
|
412
|
-
// would let a shape error (`provides: { target: 'iotgo' }`, a string where
|
|
413
|
-
// a list belongs) read as "provides nothing" and clear the way to overwrite
|
|
414
|
-
// a live target. Fall through to the definition file instead, which is what
|
|
415
|
-
// a source with no manifest at all is judged on.
|
|
416
269
|
const read = readManifest(fs, folder)
|
|
417
270
|
const manifest = read.manifest
|
|
418
271
|
if (null != manifest && 0 === checkShape(manifest, read.file).length) {
|
|
@@ -439,7 +292,6 @@ function recordedRef(declared: any, name: string): string | undefined {
|
|
|
439
292
|
}
|
|
440
293
|
|
|
441
294
|
|
|
442
|
-
// A bare NAME, as opposed to a ref that locates a source.
|
|
443
295
|
function isBare(ref: string): boolean {
|
|
444
296
|
return !ref.includes('/') && !ref.includes(Path.sep)
|
|
445
297
|
}
|