@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
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
// Locate the per-feature source inside a target's template tree.
|
|
2
|
-
//
|
|
3
|
-
// WHY THIS EXISTS
|
|
4
|
-
//
|
|
5
|
-
// `target add` is supposed to copy source for the features the model
|
|
6
|
-
// declares, and nothing else. It used to do that with a single hardcoded
|
|
7
|
-
// path assumption:
|
|
8
|
-
//
|
|
9
|
-
// Copy({ from: 'tm/<lang>', exclude: [/src\/feature/] })
|
|
10
|
-
// Folder({ name: 'src/feature' }, () => /* copy each model feature */)
|
|
11
|
-
//
|
|
12
|
-
// That assumption holds for exactly two targets. `ts` and `js` keep feature
|
|
13
|
-
// source at `src/feature/<name>/`; everyone else does something else —
|
|
14
|
-
// `tm/go/feature/retry_feature.go`, `tm/rust/feature/retry.rs`,
|
|
15
|
-
// `tm/py/pkg/feature/retry_feature.py`, `tm/dart/lib/feature/retry/...`,
|
|
16
|
-
// `tm/swift/Sources/ProjectNameSDK/feature/RetryFeature.swift`, and so on.
|
|
17
|
-
// None of those match `src/feature`, so the exclude never saw them and every
|
|
18
|
-
// shipped feature was copied into every project regardless of the model: 272
|
|
19
|
-
// stray source files across 17 targets for a project declaring no features
|
|
20
|
-
// at all. (For those targets `src/feature/<name>/` holds only a `.gitkeep`
|
|
21
|
-
// placeholder — the old gate was gating empty directories.)
|
|
22
|
-
//
|
|
23
|
-
// So instead of encoding one layout, DISCOVER it: walk the template tree,
|
|
24
|
-
// treat any directory named `feature` as a feature container, and map each
|
|
25
|
-
// entry inside it back to a feature name. That covers every layout above,
|
|
26
|
-
// and a target added later gets gated without anyone editing this file.
|
|
27
|
-
//
|
|
28
|
-
// The mapping is deliberately conservative. An entry only counts as feature
|
|
29
|
-
// source when its derived name is one the generator can actually supply
|
|
30
|
-
// (`availableFeatures`, read from `model/feature/*.aon`). Everything else
|
|
31
|
-
// inside a feature directory — `feature_options.go`, `FeatureOptions.cs`,
|
|
32
|
-
// `mod.rs`, `support.rs`, `options.hpp`, `__init__.py`, `README.md`, and the
|
|
33
|
-
// `harness.ts` under `test/feature/` — derives a name no feature has, so it
|
|
34
|
-
// is left alone.
|
|
35
1
|
|
|
36
2
|
import Path from 'node:path'
|
|
37
3
|
|
|
@@ -42,30 +8,20 @@ import { definitionNames } from './definition'
|
|
|
42
8
|
import { isJunk } from './junk'
|
|
43
9
|
|
|
44
10
|
|
|
45
|
-
// One feature's source within a target template tree.
|
|
46
11
|
type FeatureSource = {
|
|
47
|
-
// Feature name, lowercased ('retry').
|
|
48
12
|
name: string
|
|
49
13
|
|
|
50
|
-
// Path relative to the target template root ('feature/retry_feature.go',
|
|
51
|
-
// 'lib/feature/retry'), always with forward slashes.
|
|
52
14
|
path: string
|
|
53
15
|
|
|
54
|
-
// True when `path` is a directory holding the whole feature.
|
|
55
16
|
folder: boolean
|
|
56
17
|
}
|
|
57
18
|
|
|
58
19
|
|
|
59
|
-
// One entry inside a feature container, before the catalogue has had its say.
|
|
60
20
|
type FeatureEntry = FeatureSource & {
|
|
61
|
-
// Does it follow a per-feature NAMING convention? See `featureShaped`.
|
|
62
21
|
shaped: boolean
|
|
63
22
|
}
|
|
64
23
|
|
|
65
24
|
|
|
66
|
-
// Directory name that marks a feature container. Kept exact (not a substring
|
|
67
|
-
// match) so `utility/feature_add.go` and `test/feature_test.go` — which are
|
|
68
|
-
// shared machinery, not per-feature source — are never treated as features.
|
|
69
25
|
const FEATURE_DIR = 'feature'
|
|
70
26
|
|
|
71
27
|
|
|
@@ -75,17 +31,6 @@ const FEATURE_DIR = 'feature'
|
|
|
75
31
|
const BASE_FEATURE = 'base'
|
|
76
32
|
|
|
77
33
|
|
|
78
|
-
// Derive the feature name an entry inside a feature directory belongs to.
|
|
79
|
-
// Returns the lowercased name, which the caller then checks against the
|
|
80
|
-
// available set.
|
|
81
|
-
//
|
|
82
|
-
// retry_feature.go -> retry (go, py, rb, lua, perl)
|
|
83
|
-
// RetryFeature.cs -> retry (csharp, java, kotlin, scala, swift, php)
|
|
84
|
-
// retry.rs -> retry (rust, c, cpp, zig, elixir)
|
|
85
|
-
// retry/ -> retry (ts, js, dart)
|
|
86
|
-
// feature_options.go -> feature_options (not a feature; `_feature` is a
|
|
87
|
-
// prefix here, not a suffix)
|
|
88
|
-
// FeatureOptions.cs -> featureoptions (ditto)
|
|
89
34
|
function featureOf(entry: string, folder: boolean): string {
|
|
90
35
|
if (folder) {
|
|
91
36
|
return entry.toLowerCase()
|
|
@@ -102,14 +47,6 @@ function featureOf(entry: string, folder: boolean): string {
|
|
|
102
47
|
}
|
|
103
48
|
|
|
104
49
|
|
|
105
|
-
// Feature names this generator can supply, read from the scaffold's
|
|
106
|
-
// `model/feature/*.aon`. This is the authoritative catalogue: a name not in
|
|
107
|
-
// it is not a feature, so nothing outside it is ever excluded.
|
|
108
|
-
//
|
|
109
|
-
// LOWERCASED, unlike `definitionNames`, because these are matched against
|
|
110
|
-
// names DERIVED FROM FILENAMES (`RetryFeature.swift` -> `retry`), and the
|
|
111
|
-
// languages disagree about case. The manifest compares definition names as
|
|
112
|
-
// written, so the two callers cannot share the lowercasing.
|
|
113
50
|
function availableFeatures(fs: any, sdkfolder: string): string[] {
|
|
114
51
|
return definitionNames(fs, sdkfolder, 'feature')
|
|
115
52
|
.map((n: string) => n.toLowerCase())
|
|
@@ -117,15 +54,6 @@ function availableFeatures(fs: any, sdkfolder: string): string[] {
|
|
|
117
54
|
}
|
|
118
55
|
|
|
119
56
|
|
|
120
|
-
// Does the entry LOOK like per-feature source, whatever it is called?
|
|
121
|
-
//
|
|
122
|
-
// The naming conventions carry the intent: `<name>_feature.<ext>`,
|
|
123
|
-
// `<Name>Feature.<ext>`, and a directory named for the feature. A bare
|
|
124
|
-
// `<name>.<ext>` does NOT — `retry.rs` and `support.rs` are written the same
|
|
125
|
-
// way, so shape cannot separate rust's feature source from rust's shared
|
|
126
|
-
// machinery, and only the catalogue can. That is the deliberate blind spot of
|
|
127
|
-
// `package check`'s unrecognised-source finding: it reports what it can prove
|
|
128
|
-
// looks like a feature, and stays quiet where it would have to guess.
|
|
129
57
|
function featureShaped(entry: string, folder: boolean): boolean {
|
|
130
58
|
if (folder) {
|
|
131
59
|
return true
|
|
@@ -137,15 +65,6 @@ function featureShaped(entry: string, folder: boolean): boolean {
|
|
|
137
65
|
}
|
|
138
66
|
|
|
139
67
|
|
|
140
|
-
// Every entry inside a feature container of a target's template tree —
|
|
141
|
-
// whether or not its derived name is a feature this generator knows.
|
|
142
|
-
//
|
|
143
|
-
// `known` decides DESCENT, not membership: a directory that names a known
|
|
144
|
-
// feature is the whole feature, so the walk stops there, and one that does
|
|
145
|
-
// not is walked through (`src/feature/base/` holds `BaseFeature.ts`, and the
|
|
146
|
-
// container rule below then ignores it because its parent is not `feature`).
|
|
147
|
-
// The unknown entries are what `package check` reports and what
|
|
148
|
-
// `findFeatureSources` drops; both need the same walk, so there is one.
|
|
149
68
|
function findFeatureEntries(
|
|
150
69
|
fs: any, tmfolder: string, known: Set<string>,
|
|
151
70
|
): FeatureEntry[] {
|
|
@@ -155,7 +74,6 @@ function findFeatureEntries(
|
|
|
155
74
|
return found
|
|
156
75
|
}
|
|
157
76
|
|
|
158
|
-
// `rel` is relative to tmfolder, '' at the root.
|
|
159
77
|
const walk = (rel: string) => {
|
|
160
78
|
const abs = '' === rel ? tmfolder : Path.join(tmfolder, rel)
|
|
161
79
|
const entries = fs.readdirSync(abs).sort()
|
|
@@ -199,8 +117,6 @@ function findFeatureEntries(
|
|
|
199
117
|
}
|
|
200
118
|
|
|
201
119
|
|
|
202
|
-
// Walk a target's template tree and return every per-feature source entry.
|
|
203
|
-
// `tmfolder` is the target template root (`<sdk>/tm/<lang>`).
|
|
204
120
|
function findFeatureSources(fs: any, tmfolder: string, available: string[]): FeatureSource[] {
|
|
205
121
|
const known = new Set(available)
|
|
206
122
|
|
|
@@ -210,12 +126,6 @@ function findFeatureSources(fs: any, tmfolder: string, available: string[]): Fea
|
|
|
210
126
|
}
|
|
211
127
|
|
|
212
128
|
|
|
213
|
-
// Turn discovered sources into path patterns for a jostraca `Copy` exclude.
|
|
214
|
-
//
|
|
215
|
-
// jostraca tests each candidate against the path built up during its walk,
|
|
216
|
-
// which carries the enclosing node path as a prefix — so anchor on a
|
|
217
|
-
// segment boundary at both ends rather than on the whole string. A folder
|
|
218
|
-
// source matches everything beneath it; a file source matches only itself.
|
|
219
129
|
function featureExcludes(sources: FeatureSource[]): RegExp[] {
|
|
220
130
|
return sources.map((s) => new RegExp(
|
|
221
131
|
'(^|/)' + s.path.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + (s.folder ? '/' : '$')
|
|
@@ -223,12 +133,6 @@ function featureExcludes(sources: FeatureSource[]): RegExp[] {
|
|
|
223
133
|
}
|
|
224
134
|
|
|
225
135
|
|
|
226
|
-
// Path patterns for templates that only compile with the COMPLETE feature
|
|
227
|
-
// set — see `feature.fullset` in each target's model. These are the
|
|
228
|
-
// cross-feature test suites: one file per target that constructs every
|
|
229
|
-
// shipped feature type by name (`feature.NewRetryFeature`,
|
|
230
|
-
// `RUSTCRATE::feature::retry::RetryFeature`, ...). Trimming the feature set
|
|
231
|
-
// without dropping them leaves a project that will not compile.
|
|
232
136
|
function fullsetExcludes(paths: string[]): RegExp[] {
|
|
233
137
|
return (paths || []).map((p) => new RegExp(
|
|
234
138
|
'(^|/)' + String(p).replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '$'
|
|
@@ -236,16 +140,6 @@ function fullsetExcludes(paths: string[]): RegExp[] {
|
|
|
236
140
|
}
|
|
237
141
|
|
|
238
142
|
|
|
239
|
-
// Generate-time guard for the `src/feature/<name>/` layout (ts, js).
|
|
240
|
-
//
|
|
241
|
-
// Root renders one Feature component per ACTIVE feature, but Main then
|
|
242
|
-
// copies the whole `tm/<lang>` tree — which puts a deactivated feature's
|
|
243
|
-
// source straight back, silently undoing the filter. `target add` keeps
|
|
244
|
-
// deactivated features out of `tm` in the first place; this covers the case
|
|
245
|
-
// where a feature is switched off AFTER it was added.
|
|
246
|
-
//
|
|
247
|
-
// Only declared-but-inactive features are excluded. `base` and anything else
|
|
248
|
-
// the model never mentions is left alone.
|
|
249
143
|
function srcFeatureExcludes(model: any): RegExp[] {
|
|
250
144
|
const all = getModelPath(model, `main.${KIT}.feature`,
|
|
251
145
|
{ required: false, only_active: false }) || {}
|
|
@@ -260,45 +154,11 @@ function srcFeatureExcludes(model: any): RegExp[] {
|
|
|
260
154
|
}
|
|
261
155
|
|
|
262
156
|
|
|
263
|
-
// The same rule as srcFeatureExcludes, ONE LEVEL DEEPER: a feature's
|
|
264
|
-
// declared-but-inactive PLUGINS.
|
|
265
|
-
//
|
|
266
|
-
// A plugin is a feature's optional part — the `secrets` feature over
|
|
267
|
-
// sekreto has one per provider kind, and each carries its own platform
|
|
268
|
-
// cost (node:crypto for AWS request signing, fetch for seven HTTP vault
|
|
269
|
-
// clients). A project whose chain is `[dotenv, env]` should carry neither,
|
|
270
|
-
// and before the plugin trim it carried both, because every kind was
|
|
271
|
-
// reachable from a single import.
|
|
272
|
-
//
|
|
273
|
-
// Layout is `src/feature/<feature>/plugin/<plugin>/`, so a plugin's tree
|
|
274
|
-
// is excluded exactly as a feature's is. Only declared-but-inactive
|
|
275
|
-
// plugins are excluded: a directory the model never mentions is left
|
|
276
|
-
// alone, matching srcFeatureExcludes' treatment of `base`.
|
|
277
|
-
//
|
|
278
|
-
// Note this trims a plugin belonging to an ACTIVE feature. An inactive
|
|
279
|
-
// feature's whole tree — plugins included — is already gone via
|
|
280
|
-
// srcFeatureExcludes, so walking its plugins here would be redundant, and
|
|
281
|
-
// asking the model for them would fail on the `only_active` filter anyway.
|
|
282
|
-
// One feature's inactive-plugin patterns.
|
|
283
|
-
//
|
|
284
|
-
// Separate from pluginExcludes(model) because the two COPIES that need it
|
|
285
|
-
// see different things: Main copies the whole target tree and has the
|
|
286
|
-
// model, while the Feature component copies one feature's tree and has
|
|
287
|
-
// only that feature. Feature's copy is the one that actually matters —
|
|
288
|
-
// it runs for every ACTIVE feature, so without this an active feature's
|
|
289
|
-
// plugins were all copied regardless, and Main's exclude never saw them.
|
|
290
157
|
function pluginExcludesFor(model: any, fname: string): RegExp[] {
|
|
291
158
|
if (null == model || null == fname) {
|
|
292
159
|
return []
|
|
293
160
|
}
|
|
294
161
|
|
|
295
|
-
// `only_active: false`, and this is the whole subtlety. The feature
|
|
296
|
-
// object a component is handed has ALREADY been filtered, so its
|
|
297
|
-
// `plugin` map contains only the ACTIVE plugins — and a function looking
|
|
298
|
-
// there for something inactive finds nothing and excludes nothing. That
|
|
299
|
-
// is exactly the trap srcFeatureExcludes documents, hit again one level
|
|
300
|
-
// down: the first cut of this read the filtered feature and silently
|
|
301
|
-
// trimmed nothing while every test passed.
|
|
302
162
|
const plugins = getModelPath(model,
|
|
303
163
|
`main.${KIT}.feature.${fname}.plugin`,
|
|
304
164
|
{ required: false, only_active: false }) || {}
|
|
@@ -314,18 +174,6 @@ function pluginExcludesFor(model: any, fname: string): RegExp[] {
|
|
|
314
174
|
|
|
315
175
|
if (0 < declared.length) {
|
|
316
176
|
for (const one of declared) {
|
|
317
|
-
// FEATURE-RELATIVE, because jostraca tests a Copy's candidates
|
|
318
|
-
// against the path RELATIVE TO THAT COPY'S ROOT — `sekreto/
|
|
319
|
-
// provider/aws.ts`, not `src/feature/secrets/sekreto/provider/
|
|
320
|
-
// aws.ts`. The Feature component's Copy is rooted at
|
|
321
|
-
// `tm/<target>/src/feature/<feature>`, so a full declared path
|
|
322
|
-
// never matches and the trim silently does nothing.
|
|
323
|
-
//
|
|
324
|
-
// Worth stating because it is invisible: an exclude that matches
|
|
325
|
-
// nothing is indistinguishable from no exclude at all, and both
|
|
326
|
-
// the patterns and the model were correct while nothing was
|
|
327
|
-
// trimmed. Main's copy IS rooted at the target root, which is why
|
|
328
|
-
// pluginExcludes below keeps the full path.
|
|
329
177
|
const rel = String(one).replace(
|
|
330
178
|
new RegExp('^src/feature/' + esc(fname) + '/'), '')
|
|
331
179
|
const pat = esc(rel)
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
// Return the user-facing entries of a flow step's `match` object. Keys ending
|
|
2
|
-
// in `$` are jostraca/aontu metadata sentinels and are skipped.
|
|
3
|
-
//
|
|
4
|
-
// Identical helper was previously inlined in TestEntity_*.ts and TestDirect_*.ts.
|
|
5
1
|
|
|
6
2
|
function getMatchEntries(step: any): [string, any][] {
|
|
7
3
|
if (!step?.match) return []
|
package/src/helpers/junk.ts
CHANGED
|
@@ -1,59 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// external package's `.sdk`, a project's own copies of both — is a DIRECTORY ON
|
|
5
|
-
// A DEVELOPER'S MACHINE, and a developer's machine drops things in directories:
|
|
6
|
-
// `.DS_Store` from the Finder, `__pycache__` from running a python module,
|
|
7
|
-
// `node_modules` from an `npm install` in the wrong shell, a `~` backup from an
|
|
8
|
-
// editor. None of it is authored, none of it is tracked (it is all gitignored),
|
|
9
|
-
// and all of it is invisible in `git status` — so the first thing that notices
|
|
10
|
-
// is whatever compares two trees.
|
|
11
|
-
//
|
|
12
|
-
// It bit as: a stray `tm/py/utility/__pycache__/make_options.cpython-314.pyc`,
|
|
13
|
-
// created in August by running that module in place, copied verbatim by
|
|
14
|
-
// `target add py` into the add output, and reported by the golden-manifest test
|
|
15
|
-
// as toolchain drift. The copy is the real problem — the test only saw it. Left
|
|
16
|
-
// alone, that `.pyc` ships into every consumer's SDK repo, compiled against
|
|
17
|
-
// whatever python the maintainer happened to have.
|
|
18
|
-
//
|
|
19
|
-
// The rule is one list, in one place, applied by everything that walks a tree:
|
|
20
|
-
// the WRITER (jostraca's Copy, through `cmp.Copy.ignore`, plus the two walks
|
|
21
|
-
// target-add does itself) and every READER that compares against what the
|
|
22
|
-
// writer produced (doctor's drift walk, the feature-source scan, the definition
|
|
23
|
-
// listing). A writer and a reader that disagree about what counts report the
|
|
24
|
-
// whole tree as a fork — the same discipline `templateReplacements` and
|
|
25
|
-
// `aliasCmpName` are held to, and for the same reason.
|
|
26
|
-
//
|
|
27
|
-
// MEMBERSHIP IS A PROMISE that no template will ever legitimately carry that
|
|
28
|
-
// name, so this list holds only what a TOOL creates and a person does not: no
|
|
29
|
-
// `build`, `dist`, `bin` or `out` (a template may well ship one), and
|
|
30
|
-
// emphatically no `target` — sdkgen's own model directory is called that, and
|
|
31
|
-
// it is also where cargo and maven put their output. `test/junk.test.ts` checks
|
|
32
|
-
// the list against every name in the shipped scaffold, so an over-broad pattern
|
|
33
|
-
// fails there rather than by silently dropping a file from someone's SDK.
|
|
34
|
-
|
|
35
|
-
// All of these are matched against the BARE NAME of a directory entry, not its
|
|
36
|
-
// path — the same way jostraca's `cmp.Copy.ignore` is applied, so that naming a
|
|
37
|
-
// directory prunes its whole subtree without every caller having to spell out
|
|
38
|
-
// what is inside it.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
// Droppings that are not output of anything: an editor, the Finder, or a
|
|
42
|
-
// version control system left them, and they occupy no space in the meaning of
|
|
43
|
-
// the tree. Kept separate from BUILD because "would we copy this" and "is this
|
|
44
|
-
// directory empty" are different questions, and only this half answers both —
|
|
45
|
-
// a destination holding `node_modules` is not empty by any reading.
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
46
4
|
const NOISE: RegExp[] = [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
/\.sw[a-p]$/, // vim swap
|
|
54
|
-
/\.(bak|orig|rej)$/, // backups, and what a conflicted merge leaves behind
|
|
55
|
-
|
|
56
|
-
// Operating systems.
|
|
5
|
+
/~$/,
|
|
6
|
+
/^\.#/,
|
|
7
|
+
/^#.*#$/,
|
|
8
|
+
/\.sw[a-p]$/,
|
|
9
|
+
/\.(bak|orig|rej)$/,
|
|
10
|
+
|
|
57
11
|
/^\.DS_Store$/,
|
|
58
12
|
/^__MACOSX$/,
|
|
59
13
|
/^Thumbs\.db$/i,
|
|
@@ -64,13 +18,10 @@ const NOISE: RegExp[] = [
|
|
|
64
18
|
/^\.git$/,
|
|
65
19
|
/^\.svn$/,
|
|
66
20
|
/^\.hg$/,
|
|
67
|
-
/^\.idea$/,
|
|
21
|
+
/^\.idea$/,
|
|
68
22
|
]
|
|
69
23
|
|
|
70
24
|
|
|
71
|
-
// Toolchain output, per language. Each of these appears exactly when someone
|
|
72
|
-
// runs that language's tools inside a template tree, which is the normal way to
|
|
73
|
-
// check that a template actually works — and none of them is ever the payload.
|
|
74
25
|
const BUILD: RegExp[] = [
|
|
75
26
|
/^node_modules$/,
|
|
76
27
|
/^__pycache__$/,
|
|
@@ -83,11 +34,11 @@ const BUILD: RegExp[] = [
|
|
|
83
34
|
/^\.dart_tool$/,
|
|
84
35
|
/^\.?zig-cache$/,
|
|
85
36
|
/^zig-out$/,
|
|
86
|
-
/^_build$/,
|
|
37
|
+
/^_build$/,
|
|
87
38
|
/^\.elixir_ls$/,
|
|
88
|
-
/^\.cpcache$/,
|
|
39
|
+
/^\.cpcache$/,
|
|
89
40
|
/^\.stack-work$/,
|
|
90
|
-
/^dist-newstyle$/,
|
|
41
|
+
/^dist-newstyle$/,
|
|
91
42
|
/^\.cargo$/,
|
|
92
43
|
]
|
|
93
44
|
|
|
@@ -95,14 +46,11 @@ const BUILD: RegExp[] = [
|
|
|
95
46
|
const JUNK: RegExp[] = [...NOISE, ...BUILD]
|
|
96
47
|
|
|
97
48
|
|
|
98
|
-
// Is this directory entry something no tree operation should see?
|
|
99
49
|
function isJunk(name: string): boolean {
|
|
100
50
|
return matches(name, JUNK)
|
|
101
51
|
}
|
|
102
52
|
|
|
103
53
|
|
|
104
|
-
// Weaker: does this entry leave a directory as good as empty? Toolchain output
|
|
105
|
-
// does NOT — it is junk to copy and content to find.
|
|
106
54
|
function isNoise(name: string): boolean {
|
|
107
55
|
return matches(name, NOISE)
|
|
108
56
|
}
|
|
@@ -125,30 +73,6 @@ function matches(name: string, patterns: RegExp[]): boolean {
|
|
|
125
73
|
}
|
|
126
74
|
|
|
127
75
|
|
|
128
|
-
// The jostraca `cmp` option block, which is how the WRITER side of the rule is
|
|
129
|
-
// applied: jostraca tests `cmp.Copy.ignore` against the bare name of every
|
|
130
|
-
// entry it walks, directories included, and prunes what matches.
|
|
131
|
-
//
|
|
132
|
-
// Passed PER CALL by each action, not left to the Jostraca instance — the same
|
|
133
|
-
// discipline `control.dryrun` is held to, and for a related reason: the actions
|
|
134
|
-
// take whatever instance their caller hands them (`actx.jostraca`), and a
|
|
135
|
-
// consumer that builds its own would otherwise silently lose the filter. A
|
|
136
|
-
// per-call value is merged last and wins.
|
|
137
|
-
//
|
|
138
|
-
// `/~$/` is first, and must stay first while any supported jostraca is at or
|
|
139
|
-
// below 0.31.0. That merge takes this list over its own default of `[/~$/]`
|
|
140
|
-
// with `deep()`, which recursed INTO index 0 — two RegExps are both objects, so
|
|
141
|
-
// it iterated the incoming one's enumerable properties, of which a RegExp has
|
|
142
|
-
// none, and kept the default. Whatever sat at index 0 was silently discarded.
|
|
143
|
-
// Leading with the value already there makes that a no-op instead of a hole,
|
|
144
|
-
// and jostraca's built-in `IGNORED_RE` covers `~` anyway.
|
|
145
|
-
//
|
|
146
|
-
// FIXED UPSTREAM (jostraca `deep` now replaces a custom-constructor value
|
|
147
|
-
// rather than walking into it), so this is compatibility, not a live
|
|
148
|
-
// workaround: harmless on a fixed jostraca, load-bearing on an older one.
|
|
149
|
-
//
|
|
150
|
-
// A FRESH object each call: `deep` mutates its base, and jostraca's merge order
|
|
151
|
-
// leaves these values reachable from options it keeps.
|
|
152
76
|
function copyOpts(): { Copy: { ignore: RegExp[] } } {
|
|
153
77
|
return {
|
|
154
78
|
Copy: {
|
package/src/helpers/manifest.ts
CHANGED
|
@@ -1,39 +1,3 @@
|
|
|
1
|
-
// THE PACKAGE MANIFEST: `sdkgen-package.json`, beside the package's `.sdk`.
|
|
2
|
-
//
|
|
3
|
-
// See docs/design/sdkgen-packages.md §2.
|
|
4
|
-
//
|
|
5
|
-
// <package-root>/
|
|
6
|
-
// ├── sdkgen-package.json <- this
|
|
7
|
-
// └── .sdk/ <- shaped exactly like ts/project/.sdk
|
|
8
|
-
//
|
|
9
|
-
// WHY JSON RATHER THAN AONTU
|
|
10
|
-
//
|
|
11
|
-
// Consumer models compile under `@voxgig/model`'s strictly-configured parser,
|
|
12
|
-
// which accepts `#` comments only — a `//` line is a parse error, and seven
|
|
13
|
-
// shipped targets once broke on exactly that (ts/test/model-compile.test.ts
|
|
14
|
-
// exists because of it). The manifest is read by the CLI and never unified
|
|
15
|
-
// into the model, so JSON keeps it outside that trap entirely.
|
|
16
|
-
//
|
|
17
|
-
// WHAT IT IS FOR
|
|
18
|
-
//
|
|
19
|
-
// A package's CLAIM about what it provides, so that:
|
|
20
|
-
//
|
|
21
|
-
// - `package add <pkg>` knows what to install without guessing from
|
|
22
|
-
// directory listings;
|
|
23
|
-
// - a typo'd ref fails naming what the package actually provides, rather
|
|
24
|
-
// than resolving to a folder that exists and failing later on a missing
|
|
25
|
-
// file;
|
|
26
|
-
// - an item records WHICH PACKAGE supplied it (`package:` provenance), so a
|
|
27
|
-
// project can be resynced against a newer version of that package.
|
|
28
|
-
//
|
|
29
|
-
// A claim is worth nothing unless it is checked, so `validateManifest`
|
|
30
|
-
// compares it against the trees actually on disk, in both directions: a
|
|
31
|
-
// manifest that lies is an error, on-disk extras are a warning.
|
|
32
|
-
//
|
|
33
|
-
// THE MANIFEST IS OPTIONAL FOR A DIRECT REF. `target add ../pkg/iot-go`
|
|
34
|
-
// against a bare `.sdk`-shaped folder keeps working exactly as it does today
|
|
35
|
-
// — that is what every existing consumer fixture is — and simply records no
|
|
36
|
-
// `package` provenance. Requiring one is `package add`'s business.
|
|
37
1
|
|
|
38
2
|
import Path from 'node:path'
|
|
39
3
|
|
|
@@ -54,58 +18,26 @@ type Manifest = {
|
|
|
54
18
|
name: string
|
|
55
19
|
version?: string
|
|
56
20
|
|
|
57
|
-
// DECLARATIVE ONLY, so far. Nothing reads this range yet: the engine gate
|
|
58
|
-
// belongs with `package add` (design §9), which is the next phase, and
|
|
59
|
-
// there is no semver implementation here to compare with — this package has
|
|
60
|
-
// no runtime dependencies. Until then a package declaring an incompatible
|
|
61
|
-
// range installs anyway. Stated here rather than left to be discovered,
|
|
62
|
-
// because a field that looks enforced and is not is worse than an absent
|
|
63
|
-
// one.
|
|
64
21
|
engines?: { sdkgen?: string }
|
|
65
22
|
|
|
66
|
-
// Keyed BY KIND, so a new kind (docs, …) needs no schema change.
|
|
67
23
|
provides: Record<string, string[]>
|
|
68
24
|
|
|
69
25
|
// Optional: which targets a feature ships source for, so a missing overlay
|
|
70
26
|
// is reported as out-of-declared-coverage rather than broken.
|
|
71
27
|
targetsSupported?: Record<string, string[]>
|
|
72
28
|
|
|
73
|
-
// Optional: the author's declared parity tier per target, in
|
|
74
|
-
// ts/test/parity.test.ts's vocabulary plus CONSUMER — see PARITY below.
|
|
75
29
|
parity?: Record<string, string>
|
|
76
30
|
}
|
|
77
31
|
|
|
78
32
|
|
|
79
|
-
// THE CLOSED PARITY VOCABULARY.
|
|
80
|
-
//
|
|
81
|
-
// The first three are `ts/test/parity.test.ts`'s tiers, which grade a
|
|
82
|
-
// language target against the shared `.aontu` corpus. `CONSUMER` is the
|
|
83
|
-
// fourth and grades nothing: a consumer target wraps another target's SDK and
|
|
84
|
-
// has no primary-utility surface to measure, so `parity.test.ts` keeps the
|
|
85
|
-
// bundled ones in NON_SDK_TARGETS rather than in a tier. A package holding
|
|
86
|
-
// one needs a way to say the same thing, and saying nothing is not it — an
|
|
87
|
-
// absent field cannot be told apart from an author who did not know the field
|
|
88
|
-
// existed, which is the silently-absent shape every other guard in this repo
|
|
89
|
-
// exists to prevent.
|
|
90
|
-
//
|
|
91
|
-
// Closed, and checked, because a declaration nothing checks is the failure
|
|
92
|
-
// `engines.sdkgen` documents about itself two fields up: a typo would
|
|
93
|
-
// otherwise be indistinguishable from a considered choice.
|
|
94
33
|
const PARITY = ['FULL', 'MIRRORED', 'UNCOVERED', 'CONSUMER']
|
|
95
34
|
|
|
96
35
|
|
|
97
|
-
// What `readManifest` found. THREE outcomes, deliberately distinct: a
|
|
98
|
-
// manifest, no manifest, or a manifest that could not be read. Collapsing the
|
|
99
|
-
// last two into "no manifest" is what would let a typo in a package's own
|
|
100
|
-
// JSON silently downgrade `package add` into a no-op.
|
|
101
36
|
type ManifestRead = {
|
|
102
|
-
// Where it was looked for, always — the value an error message needs.
|
|
103
37
|
file: string
|
|
104
38
|
|
|
105
|
-
// Present only when one was found AND parsed.
|
|
106
39
|
manifest?: Manifest
|
|
107
40
|
|
|
108
|
-
// Present only when one was found and could NOT be parsed.
|
|
109
41
|
err?: string
|
|
110
42
|
}
|
|
111
43
|
|
|
@@ -226,12 +158,6 @@ function checkShape(manifest: Manifest, file: string): Finding[] {
|
|
|
226
158
|
continue
|
|
227
159
|
}
|
|
228
160
|
|
|
229
|
-
// A NAME, not a path. `missingPaths` joins these onto the package root,
|
|
230
|
-
// so `../../outside` would send every existence check out of the
|
|
231
|
-
// package entirely and let a manifest validate clean against unrelated
|
|
232
|
-
// files. `~` is excluded for a different reason: it is the alias
|
|
233
|
-
// separator, so a name containing one could never be resolved back to
|
|
234
|
-
// this item.
|
|
235
161
|
for (const name of names as string[]) {
|
|
236
162
|
if (!ITEM_NAME_RE.test(name)) {
|
|
237
163
|
found.push({
|
|
@@ -263,31 +189,9 @@ function checkShape(manifest: Manifest, file: string): Finding[] {
|
|
|
263
189
|
}
|
|
264
190
|
|
|
265
191
|
|
|
266
|
-
// What may name a target, feature, or any other item.
|
|
267
|
-
//
|
|
268
|
-
// Deliberately narrow: these become directory names, aontu model keys,
|
|
269
|
-
// generated config keys (`options.feature.<name>`) and component filename
|
|
270
|
-
// suffixes, so the intersection of what all of those accept is the real
|
|
271
|
-
// constraint. The shipped names — `go-cli`, `py-data`, `seneca-provider`,
|
|
272
|
-
// `clienttrack` — all fit.
|
|
273
192
|
const ITEM_NAME_RE = /^[A-Za-z0-9][A-Za-z0-9._-]*$/
|
|
274
193
|
|
|
275
194
|
|
|
276
|
-
// Does the package's disk match its claim?
|
|
277
|
-
//
|
|
278
|
-
// BOTH DIRECTIONS, because they fail differently and neither implies the
|
|
279
|
-
// other:
|
|
280
|
-
//
|
|
281
|
-
// claim without disk -> ERROR. `package add` would try to install it and
|
|
282
|
-
// break partway through, having already written the
|
|
283
|
-
// items listed before it.
|
|
284
|
-
// disk without claim -> WARN. Everything works; the author has shipped
|
|
285
|
-
// something nobody can discover, which is nearly
|
|
286
|
-
// always a forgotten manifest edit.
|
|
287
|
-
//
|
|
288
|
-
// `kindRequires` is supplied by the caller rather than imported, because the
|
|
289
|
-
// kind registry lives in `action/` and this is a helper — the dependency has
|
|
290
|
-
// to point that way, not this way.
|
|
291
195
|
function validateManifest(
|
|
292
196
|
fs: any,
|
|
293
197
|
sdkfolder: string,
|
|
@@ -319,16 +223,6 @@ function validateManifest(
|
|
|
319
223
|
continue
|
|
320
224
|
}
|
|
321
225
|
|
|
322
|
-
// ONE ORACLE FOR BOTH DIRECTIONS. The unclaimed-extras loop below reads
|
|
323
|
-
// the directory listing; if this loop asked the filesystem instead
|
|
324
|
-
// (`existsSync`/`statSync`), the two would disagree on a case-insensitive
|
|
325
|
-
// filesystem — APFS and NTFS by default, which is most package authors'
|
|
326
|
-
// machines. A manifest claiming `IoTGo` beside a `model/target/iotgo.aon`
|
|
327
|
-
// then validated CLEAN for the author and failed for every Linux consumer,
|
|
328
|
-
// which is precisely the "validated package that cannot install" this
|
|
329
|
-
// function exists to prevent. It also makes the duplicate check above
|
|
330
|
-
// meaningful: `['retry','Retry']` are two names to a Set and one file to
|
|
331
|
-
// the filesystem.
|
|
332
226
|
const defined = new Set(definitionNames(fs, sdkfolder, kind))
|
|
333
227
|
|
|
334
228
|
for (const name of names) {
|
|
@@ -351,30 +245,6 @@ function validateManifest(
|
|
|
351
245
|
const targets = new Set(provides.target ?? [])
|
|
352
246
|
const graded = new Set(Object.keys(manifest.parity ?? {}))
|
|
353
247
|
|
|
354
|
-
// A PROVIDED TARGET THE MANIFEST GRADES NOTHING FOR, when it grades OTHERS.
|
|
355
|
-
//
|
|
356
|
-
// Checking only the values leaves the weaker half undone: a typo'd tier is
|
|
357
|
-
// caught while an absent one passes, and absent is the failure mode the
|
|
358
|
-
// closed sets in this repo exist for — indistinguishable from an author who
|
|
359
|
-
// did not know the field was there.
|
|
360
|
-
//
|
|
361
|
-
// SCOPED TO A PARTIAL DECLARATION, and the scope is a real constraint
|
|
362
|
-
// rather than timidity. An ENTIRELY absent `parity` is the BUNDLED
|
|
363
|
-
// manifest's deliberate state: design §18.4a refused to duplicate
|
|
364
|
-
// parity.test.ts's tier map into ts/project/sdkgen-package.json, because
|
|
365
|
-
// the intended direction is the reverse — the manifest becomes the source
|
|
366
|
-
// and the suite reads it. Warning on a wholly absent field would fire on
|
|
367
|
-
// the shipped scaffold's 25 targets and demand that duplication now, which
|
|
368
|
-
// is the decision §18.4a made, not one to reverse from inside a validator.
|
|
369
|
-
//
|
|
370
|
-
// What IS unambiguous is inconsistency: a manifest that grades some of its
|
|
371
|
-
// targets and not others has no second reading. Nobody decides to grade two
|
|
372
|
-
// of three.
|
|
373
|
-
//
|
|
374
|
-
// WARNING, not error, and the level is the argument. The package works — a
|
|
375
|
-
// missing coverage declaration installs and generates correctly — so
|
|
376
|
-
// refusing it would be a worse outcome than saying so, the same call
|
|
377
|
-
// `manifest-item-unclaimed` makes for a tree nothing claims.
|
|
378
248
|
for (const name of (0 === graded.size ? [] : [...targets].sort())) {
|
|
379
249
|
if (!graded.has(name as string)) {
|
|
380
250
|
found.push({
|
|
@@ -404,10 +274,6 @@ function validateManifest(
|
|
|
404
274
|
}
|
|
405
275
|
}
|
|
406
276
|
|
|
407
|
-
// The other direction. Only for kinds the manifest MENTIONS plus the ones
|
|
408
|
-
// this generator knows — a directory named after a kind nobody registered
|
|
409
|
-
// is already reported above if claimed, and is not this check's business if
|
|
410
|
-
// not.
|
|
411
277
|
for (const kind of Object.keys(kinds)) {
|
|
412
278
|
const claimed = new Set(provides[kind] ?? [])
|
|
413
279
|
|
|
@@ -427,22 +293,6 @@ function validateManifest(
|
|
|
427
293
|
}
|
|
428
294
|
|
|
429
295
|
|
|
430
|
-
// Every path an item of this kind needs, that is not there AS THE RIGHT KIND
|
|
431
|
-
// OF THING.
|
|
432
|
-
//
|
|
433
|
-
// The definition file is implied for every kind; the kind's REQUIRED trees
|
|
434
|
-
// add whatever else it needs (a target's component and template trees, a docs
|
|
435
|
-
// item's components). An optional tree — a docs item's templates — is not
|
|
436
|
-
// checked here, because a package that legitimately ships none must validate.
|
|
437
|
-
//
|
|
438
|
-
// FILE vs DIRECTORY is checked, not merely existence. A regular file at
|
|
439
|
-
// `src/cmp/<t>` satisfies `existsSync` and satisfies nothing else: `target
|
|
440
|
-
// add` walks both of those paths as trees, so a package validated on
|
|
441
|
-
// existence alone could still be incapable of installing a usable target —
|
|
442
|
-
// which is the one thing validation is supposed to rule out.
|
|
443
|
-
//
|
|
444
|
-
// Returned as package-relative strings, because that is what an error message
|
|
445
|
-
// should say: the absolute path is this machine's business, not the author's.
|
|
446
296
|
function missingPaths(
|
|
447
297
|
fs: any,
|
|
448
298
|
sdkfolder: string,
|
|
@@ -453,8 +303,6 @@ function missingPaths(
|
|
|
453
303
|
): string[] {
|
|
454
304
|
const missing: string[] = []
|
|
455
305
|
|
|
456
|
-
// The definition, by EXACT NAME from the directory listing — see the note
|
|
457
|
-
// at the call site about the two directions needing one oracle.
|
|
458
306
|
if (!defined.has(name)) {
|
|
459
307
|
missing.push('model/' + kind + '/' + name + '.aon')
|
|
460
308
|
}
|
|
@@ -473,9 +321,6 @@ function missingPaths(
|
|
|
473
321
|
}
|
|
474
322
|
|
|
475
323
|
|
|
476
|
-
// What is at a path: a file, a directory, or nothing. `statSync` FOLLOWS
|
|
477
|
-
// symlinks, deliberately — a package may legitimately symlink a shared tree,
|
|
478
|
-
// and what matters is what `target add` will find when it walks it.
|
|
479
324
|
function entryKind(fs: any, path: string): 'file' | 'dir' | 'none' {
|
|
480
325
|
try {
|
|
481
326
|
const stat = fs.statSync(path)
|
|
@@ -487,20 +332,6 @@ function entryKind(fs: any, path: string): 'file' | 'dir' | 'none' {
|
|
|
487
332
|
}
|
|
488
333
|
|
|
489
334
|
|
|
490
|
-
// WHERE A PACKAGE ROOT IS, given a ref.
|
|
491
|
-
//
|
|
492
|
-
// The same probe chain `resolveSource` uses for an ITEM, one level up: an
|
|
493
|
-
// installed npm package first, then a path relative to the project, then an
|
|
494
|
-
// absolute path. A package root is the folder HOLDING `.sdk`, which is what
|
|
495
|
-
// makes `<root>/<item>` the item ref — so the two resolvers agree by
|
|
496
|
-
// construction about what a package is.
|
|
497
|
-
//
|
|
498
|
-
// It reports rather than throws, and it does not require a manifest, because
|
|
499
|
-
// its two callers want different things from the same probe: `package add`
|
|
500
|
-
// refuses a folder with no manifest (that is the verb's whole subject), while
|
|
501
|
-
// `package check` reports the absence as its first finding and carries on
|
|
502
|
-
// checking the `.sdk` — an author who has not written the manifest yet is
|
|
503
|
-
// exactly who needs the rest of the battery.
|
|
504
335
|
type PackageProbe = {
|
|
505
336
|
ref: string
|
|
506
337
|
root: string
|