@voxgig/sdkgen 2.0.2 → 3.1.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 +22 -2
- package/dist/action/doctor.d.ts +14 -0
- package/dist/action/doctor.js +351 -0
- package/dist/action/doctor.js.map +1 -0
- package/dist/action/feature.js +48 -9
- package/dist/action/feature.js.map +1 -1
- package/dist/action/target.d.ts +6 -1
- package/dist/action/target.js +134 -22
- package/dist/action/target.js.map +1 -1
- package/dist/cmp/Entity.js +5 -0
- package/dist/cmp/Entity.js.map +1 -1
- package/dist/cmp/ExternalTarget.d.ts +2 -0
- package/dist/cmp/ExternalTarget.js +104 -0
- package/dist/cmp/ExternalTarget.js.map +1 -0
- package/dist/cmp/Feature.js +2 -1
- package/dist/cmp/Feature.js.map +1 -1
- package/dist/cmp/Main.js +5 -1
- package/dist/cmp/Main.js.map +1 -1
- package/dist/cmp/ReadmeExplanation.js +1 -1
- package/dist/cmp/ReadmeExplanation.js.map +1 -1
- package/dist/cmp/ReadmeTop.js +16 -6
- package/dist/cmp/ReadmeTop.js.map +1 -1
- package/dist/cmp/Registered.d.ts +7 -0
- package/dist/cmp/Registered.js +70 -0
- package/dist/cmp/Registered.js.map +1 -0
- package/dist/cmp/Test.js +3 -1
- package/dist/cmp/Test.js.map +1 -1
- package/dist/helpers/dryrun.d.ts +10 -0
- package/dist/helpers/dryrun.js +35 -0
- package/dist/helpers/dryrun.js.map +1 -0
- package/dist/helpers/featureSource.d.ts +13 -0
- package/dist/helpers/featureSource.js +156 -0
- package/dist/helpers/featureSource.js.map +1 -0
- package/dist/helpers/naming.d.ts +9 -1
- package/dist/helpers/naming.js +66 -2
- package/dist/helpers/naming.js.map +1 -1
- package/dist/helpers/opExample.js +23 -3
- package/dist/helpers/opExample.js.map +1 -1
- package/dist/helpers/opShape.d.ts +11 -1
- package/dist/helpers/opShape.js +51 -0
- package/dist/helpers/opShape.js.map +1 -1
- package/dist/helpers/packageMeta.d.ts +16 -1
- package/dist/helpers/packageMeta.js +181 -10
- package/dist/helpers/packageMeta.js.map +1 -1
- package/dist/helpers/stdrep.d.ts +3 -0
- package/dist/helpers/stdrep.js +47 -0
- package/dist/helpers/stdrep.js.map +1 -0
- package/dist/helpers/testPolicy.d.ts +2 -0
- package/dist/helpers/testPolicy.js +46 -0
- package/dist/helpers/testPolicy.js.map +1 -0
- package/dist/sdkgen.d.ts +15 -6
- package/dist/sdkgen.js +273 -5
- package/dist/sdkgen.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/utility.js +10 -1
- package/dist/utility.js.map +1 -1
- package/model/sdkgen.aontu +245 -0
- package/package.json +5 -3
- package/project/.sdk/model/target/c.aontu +28 -3
- package/project/.sdk/model/target/clojure.aontu +24 -3
- package/project/.sdk/model/target/cpp.aontu +25 -3
- package/project/.sdk/model/target/csharp.aontu +25 -3
- package/project/.sdk/model/target/dart.aontu +15 -3
- package/project/.sdk/model/target/elixir.aontu +15 -3
- package/project/.sdk/model/target/go-cli.aontu +16 -1
- package/project/.sdk/model/target/go-mcp.aontu +16 -1
- package/project/.sdk/model/target/go.aontu +14 -4
- package/project/.sdk/model/target/haskell.aontu +24 -3
- package/project/.sdk/model/target/java.aontu +25 -3
- package/project/.sdk/model/target/js.aontu +15 -3
- package/project/.sdk/model/target/kotlin.aontu +25 -3
- package/project/.sdk/model/target/lean.aontu +24 -3
- package/project/.sdk/model/target/lua.aontu +15 -3
- package/project/.sdk/model/target/ocaml.aontu +24 -3
- package/project/.sdk/model/target/perl.aontu +15 -3
- package/project/.sdk/model/target/php.aontu +15 -3
- package/project/.sdk/model/target/py-data.aontu +15 -3
- package/project/.sdk/model/target/py.aontu +15 -3
- package/project/.sdk/model/target/rb.aontu +15 -3
- package/project/.sdk/model/target/rust.aontu +25 -3
- package/project/.sdk/model/target/scala.aontu +24 -3
- package/project/.sdk/model/target/seneca-provider.aontu +118 -0
- package/project/.sdk/model/target/swift.aontu +25 -3
- package/project/.sdk/model/target/ts.aontu +15 -3
- package/project/.sdk/model/target/zig.aontu +25 -3
- package/project/.sdk/src/cmp/c/Config_c.ts +10 -11
- package/project/.sdk/src/cmp/c/Entity_c.ts +5 -1
- package/project/.sdk/src/cmp/c/fragment/Entity.fragment.c +23 -5
- package/project/.sdk/src/cmp/c/fragment/EntityCreateOp.fragment.c +9 -2
- package/project/.sdk/src/cmp/c/fragment/EntityListOp.fragment.c +19 -2
- package/project/.sdk/src/cmp/c/fragment/EntityLoadOp.fragment.c +9 -2
- package/project/.sdk/src/cmp/c/fragment/EntityRemoveOp.fragment.c +12 -2
- package/project/.sdk/src/cmp/c/fragment/EntityUpdateOp.fragment.c +9 -2
- package/project/.sdk/src/cmp/c/fragment/Main.fragment.c +1 -0
- package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +6 -3
- package/project/.sdk/src/cmp/clojure/fragment/Entity.fragment.clj +18 -1
- package/project/.sdk/src/cmp/clojure/fragment/EntityCreateOp.fragment.clj +2 -2
- package/project/.sdk/src/cmp/clojure/fragment/EntityLoadOp.fragment.clj +2 -2
- package/project/.sdk/src/cmp/clojure/fragment/EntityRemoveOp.fragment.clj +12 -8
- package/project/.sdk/src/cmp/clojure/fragment/EntityUpdateOp.fragment.clj +2 -2
- package/project/.sdk/src/cmp/cpp/Entity_cpp.ts +5 -1
- package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +12 -9
- package/project/.sdk/src/cmp/cpp/fragment/EntityCreateOp.fragment.cpp +8 -2
- package/project/.sdk/src/cmp/cpp/fragment/EntityListOp.fragment.cpp +18 -2
- package/project/.sdk/src/cmp/cpp/fragment/EntityLoadOp.fragment.cpp +8 -2
- package/project/.sdk/src/cmp/cpp/fragment/EntityRemoveOp.fragment.cpp +11 -2
- package/project/.sdk/src/cmp/cpp/fragment/EntityUpdateOp.fragment.cpp +8 -2
- package/project/.sdk/src/cmp/csharp/Package_csharp.ts +2 -1
- package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +6 -6
- package/project/.sdk/src/cmp/csharp/fragment/EntityBase.fragment.cs +38 -1
- package/project/.sdk/src/cmp/csharp/fragment/Main.fragment.cs +42 -33
- package/project/.sdk/src/cmp/dart/Package_dart.ts +2 -1
- package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +13 -2
- package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +2 -1
- package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +3 -3
- package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +1 -1
- package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +17 -6
- package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +13 -2
- package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +13 -2
- package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +3 -3
- package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +8 -8
- package/project/.sdk/src/cmp/dart/fragment/EntityBase.fragment.dart +18 -1
- package/project/.sdk/src/cmp/dart/fragment/EntityCreateOp.fragment.dart +9 -1
- package/project/.sdk/src/cmp/dart/fragment/EntityLoadOp.fragment.dart +9 -1
- package/project/.sdk/src/cmp/dart/fragment/EntityRemoveOp.fragment.dart +15 -1
- package/project/.sdk/src/cmp/dart/fragment/EntityUpdateOp.fragment.dart +9 -1
- package/project/.sdk/src/cmp/dart/fragment/SdkError.fragment.dart +8 -0
- package/project/.sdk/src/cmp/elixir/Package_elixir.ts +3 -1
- package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +2 -2
- package/project/.sdk/src/cmp/elixir/TestEntity_elixir.ts +11 -2
- package/project/.sdk/src/cmp/elixir/fragment/EntityCreateOp.fragment.ex +2 -1
- package/project/.sdk/src/cmp/elixir/fragment/EntityListOp.fragment.ex +1 -0
- package/project/.sdk/src/cmp/elixir/fragment/EntityLoadOp.fragment.ex +2 -1
- package/project/.sdk/src/cmp/elixir/fragment/EntityRemoveOp.fragment.ex +4 -1
- package/project/.sdk/src/cmp/elixir/fragment/EntityUpdateOp.fragment.ex +2 -1
- package/project/.sdk/src/cmp/go/EntityTypes_go.ts +38 -8
- package/project/.sdk/src/cmp/go/Entity_go.ts +2 -2
- package/project/.sdk/src/cmp/go/Main_go.ts +4 -5
- package/project/.sdk/src/cmp/go/Package_go.ts +8 -5
- package/project/.sdk/src/cmp/go/ReadmeExplanation_go.ts +2 -2
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +2 -2
- package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +4 -2
- package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +2 -2
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +2 -2
- package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +2 -2
- package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +2 -2
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +21 -15
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +9 -9
- package/project/.sdk/src/cmp/go/Test_go.ts +2 -2
- package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +42 -1
- package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +4 -4
- package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +4 -4
- package/project/.sdk/src/cmp/haskell/Package_haskell.ts +2 -1
- package/project/.sdk/src/cmp/haskell/ReadmeEntity_haskell.ts +10 -5
- package/project/.sdk/src/cmp/haskell/ReadmeModel_haskell.ts +10 -8
- package/project/.sdk/src/cmp/haskell/ReadmeQuick_haskell.ts +14 -10
- package/project/.sdk/src/cmp/haskell/ReadmeRef_haskell.ts +21 -18
- package/project/.sdk/src/cmp/haskell/ReadmeTopQuick_haskell.ts +4 -4
- package/project/.sdk/src/cmp/haskell/Test_haskell.ts +23 -11
- package/project/.sdk/src/cmp/java/Package_java.ts +2 -1
- package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +2 -1
- package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +2 -2
- package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +1 -1
- package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +3 -3
- package/project/.sdk/src/cmp/java/TestDirect_java.ts +3 -3
- package/project/.sdk/src/cmp/java/TestEntity_java.ts +6 -6
- package/project/.sdk/src/cmp/java/fragment/EntityBase.fragment.java +34 -1
- package/project/.sdk/src/cmp/java/fragment/SdkError.fragment.java +12 -0
- package/project/.sdk/src/cmp/js/Main_js.ts +4 -1
- package/project/.sdk/src/cmp/js/Package_js.ts +7 -1
- package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +13 -2
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +2 -1
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +13 -2
- package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +13 -2
- package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +2 -1
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +3 -3
- package/project/.sdk/src/cmp/js/TestEntity_js.ts +8 -8
- package/project/.sdk/src/cmp/js/fragment/EntityBase.fragment.js +22 -1
- package/project/.sdk/src/cmp/js/fragment/EntityCreateOp.fragment.js +9 -1
- package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +9 -1
- package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +15 -1
- package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +9 -1
- package/project/.sdk/src/cmp/js/fragment/SdkError.fragment.js +13 -0
- package/project/.sdk/src/cmp/kotlin/Package_kotlin.ts +2 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +2 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +2 -2
- package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +6 -6
- package/project/.sdk/src/cmp/kotlin/fragment/EntityBase.fragment.kt +32 -1
- package/project/.sdk/src/cmp/lean/Package_lean.ts +3 -1
- package/project/.sdk/src/cmp/lua/MainEntity_lua.ts +9 -4
- package/project/.sdk/src/cmp/lua/Package_lua.ts +4 -3
- package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +11 -3
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +3 -3
- package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +9 -9
- package/project/.sdk/src/cmp/lua/fragment/Entity.fragment.lua +37 -1
- package/project/.sdk/src/cmp/lua/fragment/SdkError.fragment.lua +12 -0
- package/project/.sdk/src/cmp/ocaml/EntityOperation_ocaml.ts +30 -3
- package/project/.sdk/src/cmp/ocaml/Entity_ocaml.ts +11 -5
- package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +3 -1
- package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +10 -5
- package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +6 -2
- package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +10 -8
- package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +14 -13
- package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +20 -18
- package/project/.sdk/src/cmp/ocaml/ReadmeTopQuick_ocaml.ts +4 -4
- package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +8 -2
- package/project/.sdk/src/cmp/ocaml/TestEntity_ocaml.ts +8 -5
- package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +2 -1
- package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +3 -3
- package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +3 -3
- package/project/.sdk/src/cmp/perl/TestEntity_perl.ts +6 -6
- package/project/.sdk/src/cmp/perl/fragment/Entity.fragment.pm +36 -1
- package/project/.sdk/src/cmp/php/MainEntity_php.ts +21 -16
- package/project/.sdk/src/cmp/php/Package_php.ts +2 -2
- package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +6 -6
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +4 -3
- package/project/.sdk/src/cmp/php/ReadmeIntro_php.ts +2 -2
- package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +1 -1
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +12 -12
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +6 -6
- package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +4 -4
- package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +2 -2
- package/project/.sdk/src/cmp/php/TestDirect_php.ts +3 -3
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +17 -15
- package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +20 -1
- package/project/.sdk/src/cmp/php/fragment/SdkError.fragment.php +11 -0
- package/project/.sdk/src/cmp/py/Package_py.ts +4 -3
- package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +13 -2
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +2 -1
- package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +1 -1
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +17 -6
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +14 -3
- package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +13 -2
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +3 -3
- package/project/.sdk/src/cmp/py/TestEntity_py.ts +9 -9
- package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +29 -1
- package/project/.sdk/src/cmp/py/fragment/SdkError.fragment.py +11 -0
- package/project/.sdk/src/cmp/py-data/Main_py-data.ts +2 -1
- package/project/.sdk/src/cmp/rb/Package_rb.ts +4 -3
- package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +2 -1
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +5 -5
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +9 -9
- package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +31 -1
- package/project/.sdk/src/cmp/rb/fragment/SdkError.fragment.rb +10 -1
- package/project/.sdk/src/cmp/rust/Entity_rust.ts +5 -1
- package/project/.sdk/src/cmp/rust/Main_rust.ts +21 -0
- package/project/.sdk/src/cmp/rust/Package_rust.ts +2 -1
- package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +3 -3
- package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +12 -12
- package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +18 -0
- package/project/.sdk/src/cmp/rust/fragment/EntityCreateOp.fragment.rs +8 -2
- package/project/.sdk/src/cmp/rust/fragment/EntityListOp.fragment.rs +20 -3
- package/project/.sdk/src/cmp/rust/fragment/EntityLoadOp.fragment.rs +8 -2
- package/project/.sdk/src/cmp/rust/fragment/EntityRemoveOp.fragment.rs +10 -2
- package/project/.sdk/src/cmp/rust/fragment/EntityUpdateOp.fragment.rs +8 -2
- package/project/.sdk/src/cmp/rust/fragment/SdkError.fragment.rs +10 -0
- package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +2 -1
- package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/fragment/EntityBase.fragment.scala +27 -1
- package/project/.sdk/src/cmp/seneca-provider/Extras_seneca-provider.ts +3915 -0
- package/project/.sdk/src/cmp/seneca-provider/Main_seneca-provider.ts +960 -0
- package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +2 -1
- package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/fragment/EntityBase.fragment.swift +34 -1
- package/project/.sdk/src/cmp/ts/EntityOperation_ts.ts +9 -1
- package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +18 -1
- package/project/.sdk/src/cmp/ts/Gitignore_ts.ts +5 -2
- package/project/.sdk/src/cmp/ts/Main_ts.ts +4 -1
- package/project/.sdk/src/cmp/ts/Package_ts.ts +10 -1
- package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +13 -2
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +2 -1
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +21 -6
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +52 -2
- package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +14 -3
- package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +34 -2
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +64 -43
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +8 -8
- package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +2 -2
- package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +2 -2
- package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +25 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +10 -2
- package/project/.sdk/src/cmp/ts/fragment/EntityListOp.fragment.ts +1 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +10 -2
- package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +27 -3
- package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +10 -2
- package/project/.sdk/src/cmp/ts/fragment/SdkError.fragment.ts +15 -0
- package/project/.sdk/src/cmp/zig/Entity_zig.ts +5 -1
- package/project/.sdk/src/cmp/zig/Package_zig.ts +3 -1
- package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +39 -0
- package/project/.sdk/src/cmp/zig/fragment/EntityCreateOp.fragment.zig +2 -2
- package/project/.sdk/src/cmp/zig/fragment/EntityListOp.fragment.zig +21 -2
- package/project/.sdk/src/cmp/zig/fragment/EntityLoadOp.fragment.zig +2 -2
- package/project/.sdk/src/cmp/zig/fragment/EntityRemoveOp.fragment.zig +5 -2
- package/project/.sdk/src/cmp/zig/fragment/EntityUpdateOp.fragment.zig +2 -2
- package/project/.sdk/tm/c/VERSION +1 -1
- package/project/.sdk/tm/c/core/helpers.c +1 -0
- package/project/.sdk/tm/c/core/sdk.h +22 -6
- package/project/.sdk/tm/c/tests/feature_harness.h +1 -0
- package/project/.sdk/tm/c/tests/primary_utility_test.c +4 -1
- package/project/.sdk/tm/c/utility/make_url.c +1 -0
- package/project/.sdk/tm/c/utility/param.c +1 -0
- package/project/.sdk/tm/clojure/VERSION +1 -1
- package/project/.sdk/tm/cpp/VERSION +1 -1
- package/project/.sdk/tm/cpp/core/types.hpp +33 -8
- package/project/.sdk/tm/cpp/test/pipeline_test.cpp +5 -0
- package/project/.sdk/tm/cpp/test/runner_support.hpp +4 -4
- package/project/.sdk/tm/csharp/VERSION +1 -1
- package/project/.sdk/tm/csharp/core/Types.cs +6 -0
- package/project/.sdk/tm/csharp/test/FeatureHarness.cs +396 -0
- package/project/.sdk/tm/csharp/test/FeatureTest.cs +7 -385
- package/project/.sdk/tm/csharp/test/Runner.cs +4 -4
- package/project/.sdk/tm/dart/lib/utility/MakeErrorUtility.dart +4 -0
- package/project/.sdk/tm/dart/test/utility.dart +4 -4
- package/project/.sdk/tm/elixir/VERSION +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/entity_base.ex +26 -0
- package/project/.sdk/tm/go/VERSION +1 -1
- package/project/.sdk/tm/go/core/types.go +6 -0
- package/project/.sdk/tm/go/test/feature_harness_test.go +361 -0
- package/project/.sdk/tm/go/test/feature_test.go +7 -350
- package/project/.sdk/tm/go/test/pipeline_test.go +6 -0
- package/project/.sdk/tm/go/test/runner_test.go +16 -4
- package/project/.sdk/tm/haskell/VERSION +1 -1
- package/project/.sdk/tm/haskell/src/SdkFeatures.hs +28 -5
- package/project/.sdk/tm/haskell/src/SdkTypes.hs +14 -5
- package/project/.sdk/tm/java/VERSION +1 -1
- package/project/.sdk/tm/java/test/RunnerSupport.java +4 -4
- package/project/.sdk/tm/java/utility/MakeError.java +4 -0
- package/project/.sdk/tm/js/src/utility/MakeErrorUtility.js +4 -0
- package/project/.sdk/tm/js/test/utility.js +3 -3
- package/project/.sdk/tm/kotlin/VERSION +1 -1
- package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +3 -3
- package/project/.sdk/tm/lean/VERSION +1 -1
- package/project/.sdk/tm/lean/test/TFeature.lean +27 -14
- package/project/.sdk/tm/lua/test/runner.lua +4 -4
- package/project/.sdk/tm/lua/utility/make_error.lua +4 -0
- package/project/.sdk/tm/ocaml/VERSION +1 -1
- package/project/.sdk/tm/ocaml/sdk_types.ml +14 -5
- package/project/.sdk/tm/ocaml/test/t_pipeline.ml +5 -2
- package/project/.sdk/tm/perl/t/runner.pm +4 -4
- package/project/.sdk/tm/php/VERSION +1 -1
- package/project/.sdk/tm/php/test/Runner.php +4 -4
- package/project/.sdk/tm/php/utility/MakeError.php +5 -0
- package/project/.sdk/tm/py/pkg/utility/make_error.py +4 -0
- package/project/.sdk/tm/py/test/runner.py +19 -4
- package/project/.sdk/tm/rb/test/runner.rb +4 -4
- package/project/.sdk/tm/rb/utility/make_error.rb +4 -0
- package/project/.sdk/tm/rust/VERSION +1 -1
- package/project/.sdk/tm/rust/core/types.rs +22 -6
- package/project/.sdk/tm/rust/tests/common/mod.rs +6 -6
- package/project/.sdk/tm/rust/tests/pipeline_test.rs +6 -0
- package/project/.sdk/tm/rust/utility/make_error.rs +4 -0
- package/project/.sdk/tm/scala/VERSION +1 -1
- package/project/.sdk/tm/seneca-provider/CODE_OF_CONDUCT.md +132 -0
- package/project/.sdk/tm/seneca-provider/LICENSE +21 -0
- package/project/.sdk/tm/seneca-provider/Makefile +15 -0
- package/project/.sdk/tm/seneca-provider/src/tsconfig.json +18 -0
- package/project/.sdk/tm/seneca-provider/test/tsconfig.json +16 -0
- package/project/.sdk/tm/seneca-provider/tsfmt.json +3 -0
- package/project/.sdk/tm/swift/VERSION +1 -1
- package/project/.sdk/tm/ts/src/tsconfig.json +1 -0
- package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +4 -0
- package/project/.sdk/tm/ts/test/tsconfig.json +1 -0
- package/project/.sdk/tm/ts/test/utility.ts +3 -3
- package/project/.sdk/tm/zig/VERSION +1 -1
- package/src/action/doctor.ts +475 -0
- package/src/action/feature.ts +54 -16
- package/src/action/target.ts +174 -25
- package/src/cmp/Entity.ts +7 -0
- package/src/cmp/ExternalTarget.ts +125 -0
- package/src/cmp/Feature.ts +3 -1
- package/src/cmp/Main.ts +7 -1
- package/src/cmp/ReadmeExplanation.ts +2 -2
- package/src/cmp/ReadmeTop.ts +22 -9
- package/src/cmp/Registered.ts +100 -0
- package/src/cmp/Test.ts +4 -1
- package/src/helpers/dryrun.ts +57 -0
- package/src/helpers/featureSource.ts +208 -0
- package/src/helpers/naming.ts +73 -2
- package/src/helpers/opExample.ts +19 -2
- package/src/helpers/opShape.ts +65 -0
- package/src/helpers/packageMeta.ts +211 -10
- package/src/helpers/stdrep.ts +56 -0
- package/src/helpers/testPolicy.ts +52 -0
- package/src/sdkgen.ts +350 -5
- package/src/types.ts +24 -1
- package/src/utility.ts +10 -1
- package/project/.sdk/tm/rust/feature/mod.rs +0 -24
package/model/sdkgen.aontu
CHANGED
|
@@ -13,6 +13,124 @@ main: def: {
|
|
|
13
13
|
# `<sdk>/.sdk/model/config.aontu`.
|
|
14
14
|
main: kit: config: docs_order: *['ts','py','php','go','rb','lua'] | [&: string]
|
|
15
15
|
|
|
16
|
+
# How the generated test suites behave.
|
|
17
|
+
main: kit: test: {
|
|
18
|
+
|
|
19
|
+
live: {
|
|
20
|
+
# Whether a live run ASSERTS or merely observes.
|
|
21
|
+
#
|
|
22
|
+
# false (the default, and the right answer for a fleet SDK generated
|
|
23
|
+
# against an arbitrary third-party API): a non-2xx in live mode is an
|
|
24
|
+
# early return, not a failure. Synthetic IDs 4xx constantly and list
|
|
25
|
+
# response shapes vary wildly, so asserting would mean permanent red.
|
|
26
|
+
#
|
|
27
|
+
# true: live assertions match the offline ones — a non-2xx FAILS, and a
|
|
28
|
+
# missing idmap entry fails rather than skipping. Set this when the
|
|
29
|
+
# project OWNS the server it tests against; otherwise a live suite passes
|
|
30
|
+
# with nothing listening on the port, which is what it did.
|
|
31
|
+
#
|
|
32
|
+
# Overridable per target:
|
|
33
|
+
# main: kit: target: go: test: live: strict: true
|
|
34
|
+
strict: *false | boolean
|
|
35
|
+
|
|
36
|
+
# The base URL a live run points at. '' derives it from the spec's first
|
|
37
|
+
# declared server, but ONLY when that is a loopback address.
|
|
38
|
+
#
|
|
39
|
+
# For an OpenAPI-derived model `servers[0].url` is the PRODUCTION host of
|
|
40
|
+
# a third-party API, and a generated live suite runs under `npm test` on
|
|
41
|
+
# every CI push. Inferring the base from the spec therefore pointed CI at
|
|
42
|
+
# a stranger's API — unauthenticated, on three operating systems, on every
|
|
43
|
+
# push — and pointed the generated write scripts there too. A live target
|
|
44
|
+
# is now taken only when it is unambiguously ours: declared here, or
|
|
45
|
+
# loopback, which nobody else can be behind.
|
|
46
|
+
base: *'' | string
|
|
47
|
+
|
|
48
|
+
# Whether the SDK's own repo ships a runnable companion server under
|
|
49
|
+
# `app/`. NOTHING in an API definition says so — it is a property of the
|
|
50
|
+
# sibling project — so it cannot be inferred, and inferring it put an
|
|
51
|
+
# unconditional `git clone && cd app && npm install && npm run build` into
|
|
52
|
+
# a generated provider's CI, which fails the job for any repo without one.
|
|
53
|
+
app: *false | boolean
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
# ---------------------------------------------------------------------------
|
|
59
|
+
# SDK IDENTITY
|
|
60
|
+
#
|
|
61
|
+
# The root `name` slug is FOUR different things wearing one name. Each is
|
|
62
|
+
# derived from the slug by default; each can differ, and in practice does:
|
|
63
|
+
#
|
|
64
|
+
# 1. IDENTIFIERS class names (AcmeSDK, AcmeError), entity classes, the Go
|
|
65
|
+
# root package identifier, the test env-var prefix.
|
|
66
|
+
# Source: `name`. No override — this IS what the slug is.
|
|
67
|
+
#
|
|
68
|
+
# 2. SOURCE where the code lives: the repo URL, and the base of the
|
|
69
|
+
# Go module path. -> main: kit: repo: path
|
|
70
|
+
#
|
|
71
|
+
# 3. PUBLISHED what a consumer installs: the npm/PyPI/... package name.
|
|
72
|
+
# -> main: kit: target: <t>: publish: registry: package
|
|
73
|
+
#
|
|
74
|
+
# 4. GO PACKAGE the `package x` identifier in the generated Go root file.
|
|
75
|
+
# -> main: kit: target: <t>: module: package
|
|
76
|
+
#
|
|
77
|
+
# Conflating them is not theoretical. A project whose repo was named
|
|
78
|
+
# `<org>-<product>-sdk` rather than `<slug>-sdk` had only one lever — rename
|
|
79
|
+
# the slug — and renaming it to fix (2) silently renamed (1), doubled the org
|
|
80
|
+
# prefix in (4) (`package voxgigvoxgigsolardemosdk`), and would have orphaned
|
|
81
|
+
# (3) had the package already been published. Each override below exists
|
|
82
|
+
# because a real project needed those four values to differ.
|
|
83
|
+
#
|
|
84
|
+
# Set `name` to what the SDK IS. Override the other three when the world
|
|
85
|
+
# disagrees with the derivation.
|
|
86
|
+
# ---------------------------------------------------------------------------
|
|
87
|
+
|
|
88
|
+
# Where this SDK's source repository lives.
|
|
89
|
+
#
|
|
90
|
+
# `<origin>/<name>-sdk` is only the DEFAULT. A project whose repo is named
|
|
91
|
+
# anything else had no way to say so, and got a go module path that 404s on
|
|
92
|
+
# `go get` plus homepage/repository/bugs URLs pointing at a repo that does
|
|
93
|
+
# not exist. The only escape was renaming `name`, which also renames the SDK
|
|
94
|
+
# classes — a public-API break, and no help to a project already published.
|
|
95
|
+
main: kit: repo: {
|
|
96
|
+
# '<org>/<repo>' under the host. '' -> '<origin>/<name>-sdk'.
|
|
97
|
+
path: *'' | string
|
|
98
|
+
|
|
99
|
+
host: *'github.com' | string
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
# WHO WROTE THIS PACKAGE — the manifest's `author` and `contributors`.
|
|
104
|
+
#
|
|
105
|
+
# Generated output is overwritten, so attribution hand-edited into a
|
|
106
|
+
# package.json is silently DELETED on the next regeneration. That is exactly
|
|
107
|
+
# what happened the first time the seneca-provider target regenerated a
|
|
108
|
+
# hand-written provider repo: the manifest's author and its two named
|
|
109
|
+
# contributors were dropped, and nothing failed to warn about it — credit is
|
|
110
|
+
# not something a build can miss.
|
|
111
|
+
#
|
|
112
|
+
# So it is declared here, like every other value a project owns about itself.
|
|
113
|
+
# Unset means the PUBLISHER (Voxgig), which is what a generated SDK carries
|
|
114
|
+
# and what a project that has never thought about it should get.
|
|
115
|
+
#
|
|
116
|
+
# main: kit: author: { name: 'Ada Lovelace', url: 'https://example.com' }
|
|
117
|
+
# main: kit: contributor: 'ada': { name: 'Ada Lovelace', url: '...' }
|
|
118
|
+
#
|
|
119
|
+
# `contributor` is a MAP, not a list, because aontu unifies maps by key: a
|
|
120
|
+
# project can add one contributor without restating the others, and a
|
|
121
|
+
# duplicate key is a conflict rather than a silent second entry. Emitters
|
|
122
|
+
# render it in sorted-key order, so the manifest is byte-stable.
|
|
123
|
+
main: kit: author: {
|
|
124
|
+
name: *'' | string
|
|
125
|
+
url: *'' | string
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
main: kit: contributor: &: {
|
|
129
|
+
name: string
|
|
130
|
+
url: *'' | string
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
|
|
16
134
|
main: kit: target: &: {
|
|
17
135
|
name: key()
|
|
18
136
|
active: *true | boolean
|
|
@@ -20,12 +138,53 @@ main: kit: target: &: {
|
|
|
20
138
|
comment: line: string
|
|
21
139
|
module: {
|
|
22
140
|
name: string
|
|
141
|
+
|
|
142
|
+
# Go family only. Full module path, overriding
|
|
143
|
+
# '<repo.host>/<repo.path>/<target>'. Set this when the module path
|
|
144
|
+
# cannot be derived — e.g. a repo whose name is not '<slug>-sdk'.
|
|
145
|
+
path: *'' | string
|
|
146
|
+
|
|
147
|
+
# Go family only. The root package IDENTIFIER — `package acmesdk` — not
|
|
148
|
+
# an import path. Go requires a plain identifier here, so it is
|
|
149
|
+
# concatenated from the slug rather than taken from the repo.
|
|
150
|
+
#
|
|
151
|
+
# '' derives '<origin><slug>sdk', dropping a leading origin prefix the
|
|
152
|
+
# slug already carries: slug 'voxgig-solardemo' under origin 'voxgig-sdk'
|
|
153
|
+
# gives 'voxgigsolardemosdk', not 'voxgigvoxgigsolardemosdk'.
|
|
154
|
+
package: *'' | string
|
|
155
|
+
|
|
156
|
+
# Go family only. The `go` directive written into go.mod. Defaults to
|
|
157
|
+
# 1.21 — the release that introduced `log/slog`, which sdkgen's own
|
|
158
|
+
# `log` feature template imports. go-cli and go-mcp carry higher
|
|
159
|
+
# floors imposed by their dependencies.
|
|
160
|
+
goversion: *'' | string
|
|
23
161
|
}
|
|
24
162
|
deps: &: {
|
|
25
163
|
active: *false | boolean
|
|
26
164
|
version: *'*' | string
|
|
27
165
|
}
|
|
28
166
|
|
|
167
|
+
# How `target add` trims this target's feature source down to the
|
|
168
|
+
# features the model actually selects. Where that source LIVES is
|
|
169
|
+
# discovered by walking the template tree (helpers/featureSource), so
|
|
170
|
+
# nothing here describes layout — this is only about what a target can
|
|
171
|
+
# survive having removed.
|
|
172
|
+
feature: {
|
|
173
|
+
# Whether the feature set may be trimmed at all. A target whose
|
|
174
|
+
# templates statically reference every shipped feature from a file
|
|
175
|
+
# that cannot simply be dropped (zig's `root.zig`, scala's
|
|
176
|
+
# `SdkTestMain.scala`) must say false until those files are driven
|
|
177
|
+
# from the model — otherwise a trimmed project will not compile.
|
|
178
|
+
trim: *true | boolean
|
|
179
|
+
|
|
180
|
+
# Templates that only compile with the COMPLETE feature set, as paths
|
|
181
|
+
# relative to the target template root. These are the cross-feature
|
|
182
|
+
# test suites: they construct every shipped feature type by name, so a
|
|
183
|
+
# trimmed project drops them along with the features they exercise.
|
|
184
|
+
# A project carrying the full set keeps them.
|
|
185
|
+
fullset: *[] | [&: string]
|
|
186
|
+
}
|
|
187
|
+
|
|
29
188
|
# Publication: how (and whether) this port is released. Credentials are
|
|
30
189
|
# always injected by the aql key vault (never on disk or argv).
|
|
31
190
|
#
|
|
@@ -38,7 +197,93 @@ main: kit: target: &: {
|
|
|
38
197
|
# Tag-only ports (the go family: the Go proxy resolves from GitHub
|
|
39
198
|
# tags) simply leave `registry` unset — they are implicitly pending
|
|
40
199
|
# until their `<target>/vX.Y.Z` tag exists.
|
|
200
|
+
# WHERE this target's files are written.
|
|
201
|
+
#
|
|
202
|
+
# Empty (the default) means the ordinary place: `<sdk-repo>/<target>/`,
|
|
203
|
+
# a folder inside the SDK repo, which is what every language target wants.
|
|
204
|
+
#
|
|
205
|
+
# A target that generates a SEPARATE, independently released package needs
|
|
206
|
+
# somewhere else. The Seneca provider is the case: it is its own npm
|
|
207
|
+
# package in its own repo (`@seneca/<name>-provider`), depends on the ts
|
|
208
|
+
# SDK as a normal published dependency, and carries a repo's worth of
|
|
209
|
+
# furniture — LICENSE, CI workflow, doc/ — that must not land inside the
|
|
210
|
+
# SDK repo.
|
|
211
|
+
#
|
|
212
|
+
# Relative paths resolve against the SDK repo root, so a sibling checkout
|
|
213
|
+
# is `'../<repo>'`. Absolute paths are taken as given.
|
|
214
|
+
#
|
|
215
|
+
# Files are written at the ROOT of that path, NOT under a `<target>/`
|
|
216
|
+
# subfolder: the destination IS the package.
|
|
217
|
+
#
|
|
218
|
+
# Generation into it is a SEPARATE pass, so the repo receives only what
|
|
219
|
+
# this target emits — none of the SDK repo's own root files (README,
|
|
220
|
+
# AGENTS.md, the build scaffold) follow it out.
|
|
221
|
+
output: {
|
|
222
|
+
path: *'' | string
|
|
223
|
+
|
|
224
|
+
# Write into a destination that already holds content this generator did
|
|
225
|
+
# not write.
|
|
226
|
+
#
|
|
227
|
+
# Generation OVERWRITES, jostraca creates missing parent directories, and
|
|
228
|
+
# the path is taken verbatim from the model — so a typo ('.', '..', a
|
|
229
|
+
# target name) fabricates a package tree somewhere arbitrary, or replaces
|
|
230
|
+
# an unrelated repo's package.json, README, LICENSE and CI workflow in
|
|
231
|
+
# place. Generation therefore refuses a destination that is neither
|
|
232
|
+
# absent, nor empty, nor carrying the `.jostraca` bookkeeping a previous
|
|
233
|
+
# generation left there.
|
|
234
|
+
#
|
|
235
|
+
# A repo seeded with its own README/LICENCE before the first generation
|
|
236
|
+
# is the legitimate case that trips the guard. Say so here, once: the
|
|
237
|
+
# point is that the destination is a DECISION, not a typo.
|
|
238
|
+
adopt: *false | boolean
|
|
239
|
+
|
|
240
|
+
# The path from the destination BACK to the SDK project — what the
|
|
241
|
+
# target's own docs, scripts and live tests name when they reach for
|
|
242
|
+
# something the SDK repo distributes only in source (the companion test
|
|
243
|
+
# server in `app/`).
|
|
244
|
+
#
|
|
245
|
+
# '' derives it by inverting the resolved `path`, which is exact only
|
|
246
|
+
# while the walk back crosses nothing this model names — true for
|
|
247
|
+
# '../<repo>', false for anything ascending further. A project declaring
|
|
248
|
+
# '../../seneca/solardemo-provider' derived
|
|
249
|
+
# '../../voxgig-sdk/voxgig-solardemo-sdk', where `voxgig-sdk` is the name
|
|
250
|
+
# of the WORKSPACE DIRECTORY holding the checkout on ONE machine — and
|
|
251
|
+
# that string is committed into the destination's README and test files,
|
|
252
|
+
# so the next developer's layout regenerates a spurious diff and an
|
|
253
|
+
# instruction path that is wrong for everyone else. Declare it here when
|
|
254
|
+
# the destination is more than one level away; generation warns until you
|
|
255
|
+
# do.
|
|
256
|
+
sdkrel: *'' | string
|
|
257
|
+
|
|
258
|
+
# '<org>/<repo>' for the repo the files land in, under `main: kit: repo:
|
|
259
|
+
# host`. A target generating out of tree is usually released from that
|
|
260
|
+
# repo too, so its manifest's homepage/repository/bugs must point there
|
|
261
|
+
# and NOT at the SDK's own repo, which is what they would otherwise
|
|
262
|
+
# derive from.
|
|
263
|
+
#
|
|
264
|
+
# '' lets the target decide: a target that knows its convention (the
|
|
265
|
+
# Seneca provider's is `senecajs/seneca-<name>-provider`) supplies its
|
|
266
|
+
# own default, and falls back to the SDK's repo when it has none.
|
|
267
|
+
repo: *'' | string
|
|
268
|
+
}
|
|
269
|
+
|
|
41
270
|
publish: {
|
|
271
|
+
# The SDK's OWN release version — what the generated manifest declares
|
|
272
|
+
# and what the port's Makefile tags (`<target>/v<version>`).
|
|
273
|
+
#
|
|
274
|
+
# Generated output is overwritten, so a version hand-edited into
|
|
275
|
+
# package.json / pyproject.toml / VERSION is lost on the next
|
|
276
|
+
# regeneration. It was, repeatedly: every manifest emitter hardcoded
|
|
277
|
+
# '0.0.1', so a project that had published 0.0.2 got its manifest reset
|
|
278
|
+
# and only the 3-way merge (which sdkgen turns off, see
|
|
279
|
+
# docs/explanation/regeneration-overwrite.md) was hiding it. Declare the
|
|
280
|
+
# version here and every port reads the same value.
|
|
281
|
+
#
|
|
282
|
+
# Per TARGET, not per SDK: ports publish to different registries on
|
|
283
|
+
# different clocks, and a Python release should not have to move the
|
|
284
|
+
# npm version.
|
|
285
|
+
version: *'0.0.1' | string
|
|
286
|
+
|
|
42
287
|
# Git release tag (all ports).
|
|
43
288
|
tag: {
|
|
44
289
|
active: *true | boolean
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/sdkgen",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"main": "dist/sdkgen.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"engines": {
|
|
@@ -55,17 +55,19 @@
|
|
|
55
55
|
"@types/node": "26.2.0",
|
|
56
56
|
"json-schema-to-ts": "3.1.1",
|
|
57
57
|
"memfs": "4.68.1",
|
|
58
|
+
"pino": "10.3.1",
|
|
59
|
+
"pino-pretty": "13.1.3",
|
|
58
60
|
"sucrase": "3.35.1",
|
|
59
61
|
"typescript": "7.0.2"
|
|
60
62
|
},
|
|
61
63
|
"peerDependencies": {
|
|
62
64
|
"@tabnas/jsonic": "0.6.0",
|
|
65
|
+
"@tabnas/parser": "0.8.0",
|
|
63
66
|
"@voxgig/apidef": ">=0",
|
|
64
67
|
"@voxgig/struct": ">=0",
|
|
65
68
|
"@voxgig/util": ">=0",
|
|
66
69
|
"aontu": ">=0",
|
|
67
70
|
"jostraca": ">=0",
|
|
68
|
-
"shape": ">=0"
|
|
69
|
-
"@tabnas/parser": "0.8.0"
|
|
71
|
+
"shape": ">=0"
|
|
70
72
|
}
|
|
71
73
|
}
|
|
@@ -25,13 +25,38 @@ main: kit: feature: &: target: c: deps: &: {
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# Publication: C has no central registry — publishing IS the git tag.
|
|
28
|
+
#
|
|
29
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
30
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
31
|
+
# name exactly that way. Set them in the project's own model
|
|
32
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
33
|
+
#
|
|
34
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
35
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
36
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
37
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
38
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
39
|
+
# repeating them here would only take that away.
|
|
40
|
+
#
|
|
41
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
42
|
+
# choice and stays concrete.
|
|
28
43
|
main: kit: target: c: publish: {
|
|
29
|
-
tag: { active: true }
|
|
30
44
|
registry: {
|
|
31
|
-
state: 'pending'
|
|
32
|
-
active: false
|
|
33
45
|
name: 'none'
|
|
34
46
|
url: ''
|
|
35
47
|
vault: { alias: 'none', env: 'NONE' }
|
|
36
48
|
}
|
|
37
49
|
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
# Feature source may be trimmed to the model's selection. Two templates need
|
|
53
|
+
# the COMPLETE set, so both are dropped alongside the features they exercise
|
|
54
|
+
# whenever the set is trimmed:
|
|
55
|
+
# tests/feature_test.c — calls every feature_*_new()
|
|
56
|
+
# tests/sdk_pipeline_test.c — drives the retry feature by NAME through the
|
|
57
|
+
# options map, so it fails at RUNTIME rather
|
|
58
|
+
# than at link time when retry is absent
|
|
59
|
+
main: kit: target: c: feature: {
|
|
60
|
+
trim: true
|
|
61
|
+
fullset: ['tests/feature_test.c', 'tests/sdk_pipeline_test.c']
|
|
62
|
+
}
|
|
@@ -24,13 +24,34 @@ main: kit: feature: &: target: clojure: deps: &: {
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
# Publication: Clojars registry (declared, publish pending — git-tag only).
|
|
27
|
+
#
|
|
28
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
29
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
30
|
+
# name exactly that way. Set them in the project's own model
|
|
31
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
32
|
+
#
|
|
33
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
34
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
35
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
36
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
37
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
38
|
+
# repeating them here would only take that away.
|
|
39
|
+
#
|
|
40
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
41
|
+
# choice and stays concrete.
|
|
27
42
|
main: kit: target: clojure: publish: {
|
|
28
|
-
tag: { active: true }
|
|
29
43
|
registry: {
|
|
30
|
-
state: 'pending'
|
|
31
|
-
active: false
|
|
32
44
|
name: 'clojars'
|
|
33
45
|
url: 'https://clojars.org'
|
|
34
46
|
vault: { alias: 'clojars' }
|
|
35
47
|
}
|
|
36
48
|
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# Feature source is NOT trimmed to the model's selection here: every
|
|
52
|
+
# feature lives inside a single generated module (src/sdk/features.clj),
|
|
53
|
+
# not in per-feature source files, so there is nothing per-feature to
|
|
54
|
+
# leave out. Trimming waits on that module becoming model-driven.
|
|
55
|
+
main: kit: target: clojure: feature: {
|
|
56
|
+
trim: false
|
|
57
|
+
}
|
|
@@ -24,12 +24,34 @@ main: kit: feature: &: target: cpp: deps: &: {
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
# Publication: header-only; publishing is the git tag cpp/vX.Y.Z (no registry).
|
|
27
|
+
#
|
|
28
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
29
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
30
|
+
# name exactly that way. Set them in the project's own model
|
|
31
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
32
|
+
#
|
|
33
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
34
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
35
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
36
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
37
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
38
|
+
# repeating them here would only take that away.
|
|
39
|
+
#
|
|
40
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
41
|
+
# choice and stays concrete.
|
|
27
42
|
main: kit: target: cpp: publish: {
|
|
28
|
-
tag: { active: true }
|
|
29
43
|
registry: {
|
|
30
|
-
state: 'pending'
|
|
31
|
-
active: false
|
|
32
44
|
name: 'none'
|
|
33
45
|
url: ''
|
|
34
46
|
}
|
|
35
47
|
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# Feature source may be trimmed to the model's selection. The one template
|
|
51
|
+
# needing the COMPLETE set is the cross-feature test suite, which includes
|
|
52
|
+
# every feature/<name>.hpp — so it is dropped alongside the features it
|
|
53
|
+
# exercises whenever the set is trimmed.
|
|
54
|
+
main: kit: target: cpp: feature: {
|
|
55
|
+
trim: true
|
|
56
|
+
fullset: ['test/feature_test.cpp']
|
|
57
|
+
}
|
|
@@ -23,13 +23,35 @@ main: kit: feature: &: target: csharp: deps: &: {
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
# Publication: NuGet registry (declared, publish pending — git-tag only).
|
|
26
|
+
#
|
|
27
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
28
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
29
|
+
# name exactly that way. Set them in the project's own model
|
|
30
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
31
|
+
#
|
|
32
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
33
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
34
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
35
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
36
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
37
|
+
# repeating them here would only take that away.
|
|
38
|
+
#
|
|
39
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
40
|
+
# choice and stays concrete.
|
|
26
41
|
main: kit: target: csharp: publish: {
|
|
27
|
-
tag: { active: true }
|
|
28
42
|
registry: {
|
|
29
|
-
state: 'pending'
|
|
30
|
-
active: false
|
|
31
43
|
name: 'nuget'
|
|
32
44
|
url: 'https://www.nuget.org'
|
|
33
45
|
vault: { alias: 'nuget', env: 'NUGET_API_KEY' }
|
|
34
46
|
}
|
|
35
47
|
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# Feature source may be trimmed to the model's selection. The one template
|
|
51
|
+
# needing the COMPLETE set is the cross-feature test suite, which
|
|
52
|
+
# constructs every *Feature class — so it is dropped alongside the
|
|
53
|
+
# features it exercises whenever the set is trimmed.
|
|
54
|
+
main: kit: target: csharp: feature: {
|
|
55
|
+
trim: true
|
|
56
|
+
fullset: ['test/FeatureTest.cs']
|
|
57
|
+
}
|
|
@@ -22,11 +22,23 @@ main: kit: feature: &: target: dart: deps: &: {
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
# Publication: pub.dev registry (declared, publish pending — git-tag only).
|
|
25
|
+
#
|
|
26
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
27
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
28
|
+
# name exactly that way. Set them in the project's own model
|
|
29
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
30
|
+
#
|
|
31
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
32
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
33
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
34
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
35
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
36
|
+
# repeating them here would only take that away.
|
|
37
|
+
#
|
|
38
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
39
|
+
# choice and stays concrete.
|
|
25
40
|
main: kit: target: dart: publish: {
|
|
26
|
-
tag: { active: true }
|
|
27
41
|
registry: {
|
|
28
|
-
state: 'pending'
|
|
29
|
-
active: false
|
|
30
42
|
name: 'pub.dev'
|
|
31
43
|
url: 'https://pub.dev'
|
|
32
44
|
vault: { alias: 'pubdev', env: 'PUB_CREDENTIALS' }
|
|
@@ -21,11 +21,23 @@ main: kit: feature: &: target: elixir: deps: &: {
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
# Publication: hex registry (declared, publish pending — git-tag only).
|
|
24
|
+
#
|
|
25
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
26
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
27
|
+
# name exactly that way. Set them in the project's own model
|
|
28
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
29
|
+
#
|
|
30
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
31
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
32
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
33
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
34
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
35
|
+
# repeating them here would only take that away.
|
|
36
|
+
#
|
|
37
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
38
|
+
# choice and stays concrete.
|
|
24
39
|
main: kit: target: elixir: publish: {
|
|
25
|
-
tag: { active: true }
|
|
26
40
|
registry: {
|
|
27
|
-
state: 'pending'
|
|
28
|
-
active: false
|
|
29
41
|
name: 'hex'
|
|
30
42
|
url: 'https://hex.pm'
|
|
31
43
|
vault: { recipe: 'hex', alias: 'hex' }
|
|
@@ -43,6 +43,21 @@ main: kit: feature: &: target: 'go-cli': deps: &: {
|
|
|
43
43
|
|
|
44
44
|
# Publication: tag-only — the Go module proxy resolves versions from the
|
|
45
45
|
# go-cli/vX.Y.Z GitHub tag; there is no package registry to upload to.
|
|
46
|
+
#
|
|
47
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
48
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
49
|
+
# name exactly that way. Set them in the project's own model
|
|
50
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
51
|
+
#
|
|
52
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
53
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
54
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
55
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
56
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
57
|
+
# repeating them here would only take that away.
|
|
58
|
+
#
|
|
59
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
60
|
+
# choice and stays concrete.
|
|
46
61
|
main: kit: target: 'go-cli': publish: {
|
|
47
|
-
tag: {
|
|
62
|
+
tag: { via: 'root' }
|
|
48
63
|
}
|
|
@@ -37,6 +37,21 @@ main: kit: feature: &: target: 'go-mcp': deps: &: {
|
|
|
37
37
|
|
|
38
38
|
# Publication: tag-only — the Go module proxy resolves versions from the
|
|
39
39
|
# go-mcp/vX.Y.Z GitHub tag; there is no package registry to upload to.
|
|
40
|
+
#
|
|
41
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
42
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
43
|
+
# name exactly that way. Set them in the project's own model
|
|
44
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
45
|
+
#
|
|
46
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
47
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
48
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
49
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
50
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
51
|
+
# repeating them here would only take that away.
|
|
52
|
+
#
|
|
53
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
54
|
+
# choice and stays concrete.
|
|
40
55
|
main: kit: target: 'go-mcp': publish: {
|
|
41
|
-
tag: {
|
|
56
|
+
tag: { via: 'root' }
|
|
42
57
|
}
|
|
@@ -21,8 +21,18 @@ main: kit: feature: &: target: go: deps: &: {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
# Publication: tag
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
# Publication: a go/vX.Y.Z GitHub tag only — the Go proxy resolves from tags,
|
|
25
|
+
# so there is no package registry to upload to. Nothing is set here: every
|
|
26
|
+
# value is defaulted by the schema, and a project that needs to change one
|
|
27
|
+
# sets it in its own model (`model/sdk.aontu`), which `target add <t>` does
|
|
28
|
+
# not overwrite.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Feature source may be trimmed to the model's selection. The one template
|
|
32
|
+
# needing the COMPLETE set is the cross-feature test suite, which
|
|
33
|
+
# constructs every feature.New*Feature — so it is dropped alongside the
|
|
34
|
+
# features it exercises whenever the set is trimmed.
|
|
35
|
+
main: kit: target: go: feature: {
|
|
36
|
+
trim: true
|
|
37
|
+
fullset: ['test/feature_test.go']
|
|
28
38
|
}
|
|
@@ -38,13 +38,34 @@ main: kit: feature: &: target: haskell: deps: &: {
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
# Publication: Hackage registry (declared, publish pending — git-tag only).
|
|
41
|
+
#
|
|
42
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
43
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
44
|
+
# name exactly that way. Set them in the project's own model
|
|
45
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
46
|
+
#
|
|
47
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
48
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
49
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
50
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
51
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
52
|
+
# repeating them here would only take that away.
|
|
53
|
+
#
|
|
54
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
55
|
+
# choice and stays concrete.
|
|
41
56
|
main: kit: target: haskell: publish: {
|
|
42
|
-
tag: { active: true }
|
|
43
57
|
registry: {
|
|
44
|
-
state: 'pending'
|
|
45
|
-
active: false
|
|
46
58
|
name: 'hackage'
|
|
47
59
|
url: 'https://hackage.haskell.org'
|
|
48
60
|
vault: { alias: 'hackage', env: 'HACKAGE_TOKEN' }
|
|
49
61
|
}
|
|
50
62
|
}
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
# Feature source is NOT trimmed to the model's selection here: every
|
|
66
|
+
# feature lives inside a single generated module (src/SdkFeatures.hs), not
|
|
67
|
+
# in per-feature source files, so there is nothing per-feature to leave
|
|
68
|
+
# out. Trimming waits on that module becoming model-driven.
|
|
69
|
+
main: kit: target: haskell: feature: {
|
|
70
|
+
trim: false
|
|
71
|
+
}
|
|
@@ -25,13 +25,35 @@ main: kit: feature: &: target: java: deps: &: {
|
|
|
25
25
|
|
|
26
26
|
# Publication: tag-only for now (tag java/vX.Y.Z) — Maven Central
|
|
27
27
|
# publication via the Sonatype Central Portal is declared but pending.
|
|
28
|
+
#
|
|
29
|
+
# `target add <t>` OVERWRITES this file, so a project must never set its
|
|
30
|
+
# publication values here — voxgig-solardemo-sdk lost its pinned npm package
|
|
31
|
+
# name exactly that way. Set them in the project's own model
|
|
32
|
+
# (`model/sdk.aontu`), where they survive a resync.
|
|
33
|
+
#
|
|
34
|
+
# For that to work this file must LEAVE THOSE KEYS UNSET: in aontu a concrete
|
|
35
|
+
# value does not yield to another concrete value, it CONFLICTS, and two
|
|
36
|
+
# defaults conflict too. The schema (@voxgig/sdkgen/model/sdkgen.aontu)
|
|
37
|
+
# already defaults `tag.active`, `registry.state`, `registry.active` and
|
|
38
|
+
# `registry.package`, so a project's concrete value wins over the default and
|
|
39
|
+
# repeating them here would only take that away.
|
|
40
|
+
#
|
|
41
|
+
# What remains below is per-target registry IDENTITY, which is not a project
|
|
42
|
+
# choice and stays concrete.
|
|
28
43
|
main: kit: target: java: publish: {
|
|
29
|
-
tag: { active: true }
|
|
30
44
|
registry: {
|
|
31
|
-
state: 'pending'
|
|
32
|
-
active: false
|
|
33
45
|
name: 'maven-central'
|
|
34
46
|
url: 'https://central.sonatype.com'
|
|
35
47
|
vault: { recipe: 'maven', alias: 'central' }
|
|
36
48
|
}
|
|
37
49
|
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
# Feature source may be trimmed to the model's selection. The one template
|
|
53
|
+
# needing the COMPLETE set is the cross-feature test suite, which
|
|
54
|
+
# constructs every *Feature class — so it is dropped alongside the
|
|
55
|
+
# features it exercises whenever the set is trimmed.
|
|
56
|
+
main: kit: target: java: feature: {
|
|
57
|
+
trim: true
|
|
58
|
+
fullset: ['test/FeatureTest.java']
|
|
59
|
+
}
|