@voxgig/sdkgen 1.2.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/voxgig-sdkgen +2 -2
- package/dist/action/action.d.ts +3 -1
- package/dist/action/action.js +26 -10
- package/dist/action/action.js.map +1 -1
- package/dist/action/feature.js +9 -8
- package/dist/action/feature.js.map +1 -1
- package/dist/action/target.d.ts +7 -1
- package/dist/action/target.js +22 -13
- package/dist/action/target.js.map +1 -1
- package/dist/cmp/Changelog.d.ts +2 -0
- package/dist/cmp/Changelog.js +30 -0
- package/dist/cmp/Changelog.js.map +1 -0
- package/dist/cmp/Deploy.d.ts +2 -0
- package/dist/cmp/Deploy.js +227 -0
- package/dist/cmp/Deploy.js.map +1 -0
- package/dist/cmp/FeatureHook.js +5 -6
- package/dist/cmp/FeatureHook.js.map +1 -1
- package/dist/cmp/License.d.ts +2 -0
- package/dist/cmp/License.js +44 -0
- package/dist/cmp/License.js.map +1 -0
- package/dist/cmp/Readme.js +2 -0
- package/dist/cmp/Readme.js.map +1 -1
- package/dist/cmp/ReadmeErrors.d.ts +2 -0
- package/dist/cmp/ReadmeErrors.js +210 -0
- package/dist/cmp/ReadmeErrors.js.map +1 -0
- package/dist/cmp/ReadmeExplanation.js +213 -223
- package/dist/cmp/ReadmeExplanation.js.map +1 -1
- package/dist/cmp/ReadmeModel.js +6 -1
- package/dist/cmp/ReadmeModel.js.map +1 -1
- package/dist/cmp/ReadmeTop.js +389 -82
- package/dist/cmp/ReadmeTop.js.map +1 -1
- package/dist/cmp/Security.d.ts +2 -0
- package/dist/cmp/Security.js +36 -0
- package/dist/cmp/Security.js.map +1 -0
- package/dist/helpers/canonType.d.ts +7 -0
- package/dist/helpers/canonType.js +74 -0
- package/dist/helpers/canonType.js.map +1 -0
- package/dist/helpers/collectDeps.d.ts +3 -2
- package/dist/helpers/collectDeps.js.map +1 -1
- package/dist/helpers/naming.d.ts +3 -0
- package/dist/helpers/naming.js +51 -0
- package/dist/helpers/naming.js.map +1 -0
- package/dist/helpers/opExample.d.ts +13 -0
- package/dist/helpers/opExample.js +149 -0
- package/dist/helpers/opExample.js.map +1 -0
- package/dist/helpers/opShape.d.ts +18 -0
- package/dist/helpers/opShape.js +225 -0
- package/dist/helpers/opShape.js.map +1 -0
- package/dist/helpers/packageMeta.d.ts +27 -0
- package/dist/helpers/packageMeta.js +224 -0
- package/dist/helpers/packageMeta.js.map +1 -0
- package/dist/sdkgen.d.ts +12 -2
- package/dist/sdkgen.js +60 -20
- package/dist/sdkgen.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +65 -2
- package/dist/types.js.map +1 -1
- package/dist/utility.d.ts +2 -1
- package/dist/utility.js +39 -11
- package/dist/utility.js.map +1 -1
- package/model/sdkgen.aontu +137 -0
- package/package.json +11 -5
- package/project/.sdk/model/feature/feature-index.aontu +5 -0
- package/project/.sdk/model/target/go-cli.aontu +47 -0
- package/project/.sdk/model/target/go-mcp.aontu +41 -0
- package/project/.sdk/model/target/go.aontu +28 -0
- package/project/.sdk/model/target/{js.jsonic → js.aontu} +13 -0
- package/project/.sdk/model/target/{lua.jsonic → lua.aontu} +13 -0
- package/project/.sdk/model/target/{php.jsonic → php.aontu} +13 -0
- package/project/.sdk/model/target/{py.jsonic → py.aontu} +13 -0
- package/project/.sdk/model/target/{rb.jsonic → rb.aontu} +13 -0
- package/project/.sdk/model/target/{ts.jsonic → ts.aontu} +13 -0
- package/project/.sdk/src/cmp/go/Config_go.ts +3 -2
- package/project/.sdk/src/cmp/go/EntityOperation_go.ts +1 -0
- package/project/.sdk/src/cmp/go/EntityTypes_go.ts +197 -0
- package/project/.sdk/src/cmp/go/Entity_go.ts +2 -1
- package/project/.sdk/src/cmp/go/MainEntity_go.ts +6 -0
- package/project/.sdk/src/cmp/go/Main_go.ts +23 -3
- package/project/.sdk/src/cmp/go/Package_go.ts +1 -1
- package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +48 -10
- package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +688 -0
- package/project/.sdk/src/cmp/go/ReadmeExplanation_go.ts +1 -1
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +52 -8
- package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +11 -6
- package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +40 -1
- package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +67 -17
- package/project/.sdk/src/cmp/go/ReadmeOptions_go.ts +4 -3
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +146 -116
- package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +87 -21
- package/project/.sdk/src/cmp/go/ReadmeTopHowto_go.ts +4 -0
- package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +75 -16
- package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +35 -5
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +1 -1
- package/project/.sdk/src/cmp/go/Test_go.ts +5 -1
- package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +21 -0
- package/project/.sdk/src/cmp/go/fragment/EntityCreateOp.fragment.go +11 -0
- package/project/.sdk/src/cmp/go/fragment/EntityListOp.fragment.go +11 -0
- package/project/.sdk/src/cmp/go/fragment/EntityLoadOp.fragment.go +11 -0
- package/project/.sdk/src/cmp/go/fragment/EntityRemoveOp.fragment.go +11 -0
- package/project/.sdk/src/cmp/go/fragment/EntityUpdateOp.fragment.go +11 -0
- package/project/.sdk/src/cmp/go/utility_go.ts +70 -0
- package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +195 -0
- package/project/.sdk/src/cmp/go-cli/fragment/main.fragment.go +106 -0
- package/project/.sdk/src/cmp/go-cli/fragment/words.fragment.go +132 -0
- package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +184 -0
- package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +68 -0
- package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +114 -0
- package/project/.sdk/src/cmp/js/Config_js.ts +3 -6
- package/project/.sdk/src/cmp/js/EntityTypes_js.ts +111 -0
- package/project/.sdk/src/cmp/js/MainEntity_js.ts +1 -0
- package/project/.sdk/src/cmp/js/Main_js.ts +3 -0
- package/project/.sdk/src/cmp/js/Package_js.ts +16 -7
- package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +33 -10
- package/project/.sdk/src/cmp/js/ReadmeExplanation_js.ts +2 -2
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +52 -11
- package/project/.sdk/src/cmp/js/ReadmeIntro_js.ts +39 -1
- package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +50 -18
- package/project/.sdk/src/cmp/js/ReadmeOptions_js.ts +4 -3
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +70 -20
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +50 -16
- package/project/.sdk/src/cmp/js/ReadmeTopHowto_js.ts +3 -0
- package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +45 -19
- package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +35 -3
- package/project/.sdk/src/cmp/js/fragment/EntityCreateOp.fragment.js +5 -0
- package/project/.sdk/src/cmp/js/fragment/EntityListOp.fragment.js +5 -0
- package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +5 -0
- package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +5 -0
- package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +5 -0
- package/project/.sdk/src/cmp/js/utility_js.ts +57 -0
- package/project/.sdk/src/cmp/lua/Config_lua.ts +3 -2
- package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +113 -0
- package/project/.sdk/src/cmp/lua/MainEntity_lua.ts +8 -0
- package/project/.sdk/src/cmp/lua/Main_lua.ts +4 -0
- package/project/.sdk/src/cmp/lua/Package_lua.ts +23 -4
- package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +50 -13
- package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +293 -0
- package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +46 -8
- package/project/.sdk/src/cmp/lua/ReadmeInstall_lua.ts +19 -3
- package/project/.sdk/src/cmp/lua/ReadmeIntro_lua.ts +38 -1
- package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +51 -16
- package/project/.sdk/src/cmp/lua/ReadmeOptions_lua.ts +4 -3
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +156 -21
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +71 -23
- package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +46 -9
- package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +43 -5
- package/project/.sdk/src/cmp/lua/Test_lua.ts +4 -0
- package/project/.sdk/src/cmp/lua/fragment/EntityCreateOp.fragment.lua +4 -0
- package/project/.sdk/src/cmp/lua/fragment/EntityListOp.fragment.lua +4 -0
- package/project/.sdk/src/cmp/lua/fragment/EntityLoadOp.fragment.lua +4 -0
- package/project/.sdk/src/cmp/lua/fragment/EntityRemoveOp.fragment.lua +4 -0
- package/project/.sdk/src/cmp/lua/fragment/EntityUpdateOp.fragment.lua +4 -0
- package/project/.sdk/src/cmp/php/Config_php.ts +3 -2
- package/project/.sdk/src/cmp/php/EntityTypes_php.ts +142 -0
- package/project/.sdk/src/cmp/php/MainEntity_php.ts +18 -1
- package/project/.sdk/src/cmp/php/Main_php.ts +4 -0
- package/project/.sdk/src/cmp/php/Package_php.ts +18 -7
- package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +46 -14
- package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +401 -0
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +56 -13
- package/project/.sdk/src/cmp/php/ReadmeInstall_php.ts +15 -3
- package/project/.sdk/src/cmp/php/ReadmeIntro_php.ts +40 -1
- package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +26 -8
- package/project/.sdk/src/cmp/php/ReadmeOptions_php.ts +4 -3
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +159 -25
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +90 -45
- package/project/.sdk/src/cmp/php/ReadmeTopHowto_php.ts +1 -1
- package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +43 -11
- package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +52 -11
- package/project/.sdk/src/cmp/php/TestDirect_php.ts +9 -9
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +6 -12
- package/project/.sdk/src/cmp/php/Test_php.ts +4 -0
- package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +13 -1
- package/project/.sdk/src/cmp/php/fragment/EntityCreateOp.fragment.php +10 -1
- package/project/.sdk/src/cmp/php/fragment/EntityListOp.fragment.php +10 -1
- package/project/.sdk/src/cmp/php/fragment/EntityLoadOp.fragment.php +10 -1
- package/project/.sdk/src/cmp/php/fragment/EntityRemoveOp.fragment.php +10 -1
- package/project/.sdk/src/cmp/php/fragment/EntityUpdateOp.fragment.php +10 -1
- package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +22 -14
- package/project/.sdk/src/cmp/py/Config_py.ts +3 -2
- package/project/.sdk/src/cmp/py/EntityTypes_py.ts +184 -0
- package/project/.sdk/src/cmp/py/Entity_py.ts +27 -0
- package/project/.sdk/src/cmp/py/MainEntity_py.ts +2 -1
- package/project/.sdk/src/cmp/py/Main_py.ts +35 -0
- package/project/.sdk/src/cmp/py/Package_py.ts +24 -3
- package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +48 -14
- package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +626 -0
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +53 -14
- package/project/.sdk/src/cmp/py/ReadmeInstall_py.ts +19 -3
- package/project/.sdk/src/cmp/py/ReadmeIntro_py.ts +48 -1
- package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +28 -10
- package/project/.sdk/src/cmp/py/ReadmeOptions_py.ts +4 -3
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +150 -27
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +86 -40
- package/project/.sdk/src/cmp/py/ReadmeTopHowto_py.ts +1 -1
- package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +45 -11
- package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +43 -5
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +7 -9
- package/project/.sdk/src/cmp/py/TestEntity_py.ts +6 -14
- package/project/.sdk/src/cmp/py/Test_py.ts +4 -0
- package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +5 -2
- package/project/.sdk/src/cmp/py/fragment/EntityCreateOp.fragment.py +1 -1
- package/project/.sdk/src/cmp/py/fragment/EntityListOp.fragment.py +5 -1
- package/project/.sdk/src/cmp/py/fragment/EntityLoadOp.fragment.py +6 -1
- package/project/.sdk/src/cmp/py/fragment/EntityRemoveOp.fragment.py +6 -1
- package/project/.sdk/src/cmp/py/fragment/EntityUpdateOp.fragment.py +1 -1
- package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +17 -10
- package/project/.sdk/src/cmp/rb/Config_rb.ts +3 -2
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +136 -0
- package/project/.sdk/src/cmp/rb/MainEntity_rb.ts +1 -0
- package/project/.sdk/src/cmp/rb/Main_rb.ts +4 -0
- package/project/.sdk/src/cmp/rb/Package_rb.ts +34 -7
- package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +47 -13
- package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +289 -0
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +72 -21
- package/project/.sdk/src/cmp/rb/ReadmeInstall_rb.ts +16 -4
- package/project/.sdk/src/cmp/rb/ReadmeIntro_rb.ts +40 -1
- package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +29 -12
- package/project/.sdk/src/cmp/rb/ReadmeOptions_rb.ts +4 -3
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +163 -25
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +85 -40
- package/project/.sdk/src/cmp/rb/ReadmeTopHowto_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +45 -11
- package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +54 -11
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +9 -9
- package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +6 -12
- package/project/.sdk/src/cmp/rb/Test_rb.ts +4 -0
- package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +2 -0
- package/project/.sdk/src/cmp/rb/fragment/EntityCreateOp.fragment.rb +5 -0
- package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +20 -2
- package/project/.sdk/src/cmp/rb/fragment/EntityLoadOp.fragment.rb +8 -1
- package/project/.sdk/src/cmp/rb/fragment/EntityRemoveOp.fragment.rb +6 -1
- package/project/.sdk/src/cmp/rb/fragment/EntityUpdateOp.fragment.rb +5 -0
- package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +24 -8
- package/project/.sdk/src/cmp/ts/Config_ts.ts +3 -6
- package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +105 -0
- package/project/.sdk/src/cmp/ts/Entity_ts.ts +17 -1
- package/project/.sdk/src/cmp/ts/MainEntity_ts.ts +1 -0
- package/project/.sdk/src/cmp/ts/Main_ts.ts +6 -0
- package/project/.sdk/src/cmp/ts/Package_ts.ts +14 -7
- package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +32 -10
- package/project/.sdk/src/cmp/ts/ReadmeExampleTest_ts.ts +81 -0
- package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +446 -0
- package/project/.sdk/src/cmp/ts/ReadmeExplanation_ts.ts +2 -2
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +57 -11
- package/project/.sdk/src/cmp/ts/ReadmeInstall_ts.ts +19 -6
- package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +39 -1
- package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +50 -18
- package/project/.sdk/src/cmp/ts/ReadmeOptions_ts.ts +4 -3
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +141 -48
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +50 -16
- package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +3 -0
- package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +58 -19
- package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +35 -3
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +2 -2
- package/project/.sdk/src/cmp/ts/Test_ts.ts +5 -0
- package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +3 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +10 -5
- package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +4 -2
- package/project/.sdk/src/cmp/ts/fragment/EntityListOp.fragment.ts +4 -2
- package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +4 -2
- package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +4 -2
- package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +4 -2
- package/project/.sdk/src/cmp/ts/utility_ts.ts +59 -0
- package/project/.sdk/tm/go/LICENSE +1 -1
- package/project/.sdk/tm/go/Makefile +36 -1
- package/project/.sdk/tm/go/VERSION +1 -0
- package/project/.sdk/tm/go/core/context.go +12 -7
- package/project/.sdk/tm/go-cli/src/feature/README.md +6 -0
- package/project/.sdk/tm/go-cli/src/feature/base/.gitkeep +0 -0
- package/project/.sdk/tm/go-cli/src/feature/log/.gitkeep +0 -0
- package/project/.sdk/tm/go-cli/src/feature/test/.gitkeep +0 -0
- package/project/.sdk/tm/go-mcp/src/feature/README.md +6 -0
- package/project/.sdk/tm/go-mcp/src/feature/base/.gitkeep +0 -0
- package/project/.sdk/tm/go-mcp/src/feature/log/.gitkeep +0 -0
- package/project/.sdk/tm/go-mcp/src/feature/test/.gitkeep +0 -0
- package/project/.sdk/tm/js/LICENSE +1 -1
- package/project/.sdk/tm/js/Makefile +41 -0
- package/project/.sdk/tm/lua/LICENSE +1 -1
- package/project/.sdk/tm/lua/Makefile +40 -1
- package/project/.sdk/tm/lua/core/context.lua +13 -8
- package/project/.sdk/tm/php/LICENSE +1 -1
- package/project/.sdk/tm/php/Makefile +31 -1
- package/project/.sdk/tm/php/VERSION +1 -0
- package/project/.sdk/tm/php/core/Context.php +12 -6
- package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +13 -4
- package/project/.sdk/tm/php/utility/Done.php +2 -2
- package/project/.sdk/tm/php/utility/MakeError.php +3 -3
- package/project/.sdk/tm/py/LICENSE +1 -1
- package/project/.sdk/tm/py/Makefile +34 -1
- package/project/.sdk/tm/py/core/context.py +12 -7
- package/project/.sdk/tm/py/test/test_primary_utility.py +15 -4
- package/project/.sdk/tm/py/test/test_struct_utility.py +1 -1
- package/project/.sdk/tm/py/utility/done.py +3 -1
- package/project/.sdk/tm/py/utility/make_error.py +2 -2
- package/project/.sdk/tm/rb/LICENSE +1 -1
- package/project/.sdk/tm/rb/Makefile +36 -2
- package/project/.sdk/tm/rb/core/context.rb +8 -3
- package/project/.sdk/tm/rb/test/primary_utility_test.rb +2 -2
- package/project/.sdk/tm/rb/utility/done.rb +3 -1
- package/project/.sdk/tm/rb/utility/make_error.rb +5 -2
- package/project/.sdk/tm/ts/LICENSE +1 -1
- package/project/.sdk/tm/ts/Makefile +42 -0
- package/project/.sdk/tm/ts/src/Context.ts +8 -3
- package/src/action/action.ts +30 -11
- package/src/action/feature.ts +12 -14
- package/src/action/target.ts +28 -17
- package/src/cmp/Changelog.ts +34 -0
- package/src/cmp/Deploy.ts +258 -0
- package/src/cmp/FeatureHook.ts +6 -8
- package/src/cmp/License.ts +49 -0
- package/src/cmp/Readme.ts +2 -0
- package/src/cmp/ReadmeErrors.ts +257 -0
- package/src/cmp/ReadmeExplanation.ts +250 -230
- package/src/cmp/ReadmeModel.ts +7 -2
- package/src/cmp/ReadmeTop.ts +411 -95
- package/src/cmp/Security.ts +41 -0
- package/src/helpers/canonType.ts +89 -0
- package/src/helpers/collectDeps.ts +5 -3
- package/src/helpers/naming.ts +59 -0
- package/src/helpers/opExample.ts +170 -0
- package/src/helpers/opShape.ts +274 -0
- package/src/helpers/packageMeta.ts +236 -0
- package/src/sdkgen.ts +91 -23
- package/src/tsconfig.json +1 -0
- package/src/types.ts +85 -2
- package/src/utility.ts +45 -11
- package/README.md +0 -2
- package/dist/action/lang.d.ts +0 -2
- package/dist/action/lang.js +0 -68
- package/dist/action/lang.js.map +0 -1
- package/dist/cmp/Hook.d.ts +0 -2
- package/dist/cmp/Hook.js +0 -10
- package/dist/cmp/Hook.js.map +0 -1
- package/dist/cmp/Top.d.ts +0 -2
- package/dist/cmp/Top.js +0 -23
- package/dist/cmp/Top.js.map +0 -1
- package/dist/prepare-openapi.d.ts +0 -2
- package/dist/prepare-openapi.js +0 -37
- package/dist/prepare-openapi.js.map +0 -1
- package/model/sdkgen.jsonic +0 -74
- package/project/.sdk/model/feature/feature-index.jsonic +0 -5
- package/project/.sdk/model/target/go.jsonic +0 -22
- package/project/.sdk/tm/go/utility/struct/go.mod +0 -3
- /package/project/.sdk/model/feature/{log.jsonic → log.aontu} +0 -0
- /package/project/.sdk/model/feature/{test.jsonic → test.aontu} +0 -0
|
@@ -9,6 +9,12 @@ import {
|
|
|
9
9
|
import { EntityOperation } from './EntityOperation_py'
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
// Op -> generated request-type suffix (keep in sync with EntityTypes_py.ts).
|
|
13
|
+
const OP_SUFFIX: Record<string, 'Match' | 'Data'> = {
|
|
14
|
+
load: 'Match', list: 'Match', remove: 'Match', create: 'Data', update: 'Data',
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
12
18
|
const Entity = cmp(function Entity(props: any) {
|
|
13
19
|
const { model, stdrep } = props.ctx$
|
|
14
20
|
const { target, entity } = props
|
|
@@ -19,6 +25,22 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
19
25
|
|
|
20
26
|
names(entrep, entity.Name, 'EntityName')
|
|
21
27
|
|
|
28
|
+
// Import exactly the typed models this entity references: its data type plus
|
|
29
|
+
// one request type per ACTIVE op (matches what EntityTypes_py.ts emits).
|
|
30
|
+
const typeNames = [entity.Name]
|
|
31
|
+
const opnamesAll = Object.keys(entity.op || {})
|
|
32
|
+
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
33
|
+
if (opnamesAll.includes(opname)) {
|
|
34
|
+
const suffix = OP_SUFFIX[opname] || 'Match'
|
|
35
|
+
const cap = opname.charAt(0).toUpperCase() + opname.slice(1)
|
|
36
|
+
typeNames.push(entity.Name + cap + suffix)
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
const typesModule = model.const.Name.toLowerCase() + '_types'
|
|
40
|
+
const typeImport =
|
|
41
|
+
'from ' + typesModule + ' import (\n ' +
|
|
42
|
+
typeNames.join(',\n ') + ',\n)'
|
|
43
|
+
|
|
22
44
|
const ff = Path.normalize(__dirname + '/../../../src/cmp/py/fragment/')
|
|
23
45
|
|
|
24
46
|
// Entity files go to entity/ folder
|
|
@@ -44,6 +66,11 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
44
66
|
EntityName: entity.Name,
|
|
45
67
|
entityname: entity.name,
|
|
46
68
|
|
|
69
|
+
// Literal-marker slot (jostraca's `#Name` tag pattern is hardcoded to
|
|
70
|
+
// `//` comments, so Python uses a `# #`-prefixed literal like the op
|
|
71
|
+
// frag slots) — fills in the typed-model import for this entity.
|
|
72
|
+
'# #TypeImports': typeImport,
|
|
73
|
+
|
|
47
74
|
'#Entity-Hook': ({ name, indent }: any) =>
|
|
48
75
|
Content({ indent }, `utility.feature_hook(ctx, "${name}")`),
|
|
49
76
|
|
|
@@ -8,7 +8,8 @@ const MainEntity = cmp(async function MainEntity(props: any) {
|
|
|
8
8
|
const { model } = props.ctx$
|
|
9
9
|
|
|
10
10
|
Content(`
|
|
11
|
-
def ${entity.Name}(self, data=None):
|
|
11
|
+
def ${entity.Name}(self, data=None) -> "${entity.Name}Entity":
|
|
12
|
+
"""Entity factory: client.${entity.Name}().list() / client.${entity.Name}().load({"id": ...})."""
|
|
12
13
|
from entity.${entity.name}_entity import ${entity.Name}Entity
|
|
13
14
|
return ${entity.Name}Entity(self, data)
|
|
14
15
|
|
|
@@ -22,6 +22,7 @@ import { Package } from './Package_py'
|
|
|
22
22
|
import { Config } from './Config_py'
|
|
23
23
|
import { Gitignore } from './Gitignore_py'
|
|
24
24
|
import { MainEntity } from './MainEntity_py'
|
|
25
|
+
import { EntityTypes } from './EntityTypes_py'
|
|
25
26
|
|
|
26
27
|
|
|
27
28
|
const Main = cmp(async function Main(props: any) {
|
|
@@ -77,6 +78,35 @@ self._utility.feature_hook(self._rootctx, "${name}")
|
|
|
77
78
|
MainEntity(entprops)
|
|
78
79
|
})
|
|
79
80
|
})
|
|
81
|
+
|
|
82
|
+
// Type-checker-only imports for the entity factory return annotations
|
|
83
|
+
// (def <Entity>(...) -> "<Entity>Entity"). Guarded by TYPE_CHECKING so
|
|
84
|
+
// there is no eager runtime import (the factories still import lazily in
|
|
85
|
+
// their bodies); this lets mypy resolve list()/load() return types on
|
|
86
|
+
// client.<Entity>() results — e.g. flagging `.data` on a list() result.
|
|
87
|
+
const entnames = each(entity)
|
|
88
|
+
if (entnames.length > 0) {
|
|
89
|
+
Content(`
|
|
90
|
+
|
|
91
|
+
from typing import TYPE_CHECKING
|
|
92
|
+
|
|
93
|
+
if TYPE_CHECKING:
|
|
94
|
+
`)
|
|
95
|
+
each(entity, (ent: any) => {
|
|
96
|
+
Content(` from entity.${ent.name}_entity import ${ent.Name}Entity
|
|
97
|
+
`)
|
|
98
|
+
})
|
|
99
|
+
}
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
// Generate the typed-model module (<sdk>_types.py) next to the main SDK file.
|
|
103
|
+
EntityTypes({ target })
|
|
104
|
+
|
|
105
|
+
// PEP 561 marker so the inline type hints ship to consumers. Emitted at the
|
|
106
|
+
// language root (documents intent for the top-level modules) and inside the
|
|
107
|
+
// entity package (the type-bearing package, included via package-data).
|
|
108
|
+
File({ name: 'py.typed' }, () => {
|
|
109
|
+
Content(``)
|
|
80
110
|
})
|
|
81
111
|
|
|
82
112
|
// Generate config module
|
|
@@ -137,6 +167,11 @@ def _make_feature(name):
|
|
|
137
167
|
File({ name: '__init__.' + target.ext }, () => {
|
|
138
168
|
Content(``)
|
|
139
169
|
})
|
|
170
|
+
// PEP 561 marker inside the type-bearing package so setuptools package-data
|
|
171
|
+
// ("*" = ["py.typed"]) bundles it into the wheel.
|
|
172
|
+
File({ name: 'py.typed' }, () => {
|
|
173
|
+
Content(``)
|
|
174
|
+
})
|
|
140
175
|
})
|
|
141
176
|
|
|
142
177
|
Folder({ name: 'feature' }, () => {
|
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
File,
|
|
5
5
|
cmp,
|
|
6
6
|
collectDeps,
|
|
7
|
+
pkgDescription,
|
|
8
|
+
keywords,
|
|
9
|
+
repoInfo,
|
|
7
10
|
} from '@voxgig/sdkgen'
|
|
8
11
|
|
|
9
12
|
|
|
@@ -24,6 +27,8 @@ const Package = cmp(async function Package(props: any) {
|
|
|
24
27
|
const ns = model.origin || 'voxgig-sdk'
|
|
25
28
|
const pkgBase = ns.endsWith('-sdk') ? model.name : `${model.name}-sdk`
|
|
26
29
|
const distName = `${ns}-${pkgBase}`
|
|
30
|
+
const { repoUrl, issuesUrl } = repoInfo(model)
|
|
31
|
+
const kw = keywords(model).map((k) => `"${k}"`).join(', ')
|
|
27
32
|
|
|
28
33
|
File({ name: 'pyproject.toml' }, () => {
|
|
29
34
|
Content(`[build-system]
|
|
@@ -33,14 +38,18 @@ build-backend = "setuptools.build_meta"
|
|
|
33
38
|
[project]
|
|
34
39
|
name = "${distName}"
|
|
35
40
|
version = "0.0.1"
|
|
36
|
-
description = "${model
|
|
41
|
+
description = "${pkgDescription(model, 'py')}"
|
|
42
|
+
readme = "README.md"
|
|
37
43
|
license = "MIT"
|
|
38
44
|
requires-python = ">=3.8"
|
|
45
|
+
keywords = [${kw}]
|
|
39
46
|
dependencies = [
|
|
40
|
-
"requests>=2.33",
|
|
41
47
|
`)
|
|
42
48
|
|
|
49
|
+
const seen = new Set<string>()
|
|
43
50
|
for (const d of collectDeps(model, target.name, target.deps)) {
|
|
51
|
+
if (seen.has(d.name)) continue
|
|
52
|
+
seen.add(d.name)
|
|
44
53
|
const v = d.source === 'target' ? (d.version || '0.0') : d.version
|
|
45
54
|
Content(` "${d.name}>=${v}",
|
|
46
55
|
`)
|
|
@@ -49,12 +58,24 @@ dependencies = [
|
|
|
49
58
|
Content(`]
|
|
50
59
|
|
|
51
60
|
[project.urls]
|
|
52
|
-
Homepage = "
|
|
61
|
+
Homepage = "${repoUrl}"
|
|
62
|
+
Repository = "${repoUrl}"
|
|
63
|
+
Issues = "${issuesUrl}"
|
|
64
|
+
|
|
65
|
+
# Ship the top-level single-file modules (setuptools find only discovers
|
|
66
|
+
# package dirs, never these) so the documented import actually installs.
|
|
67
|
+
# ${model.const.Name.toLowerCase()}_types holds the generated @dataclass models.
|
|
68
|
+
[tool.setuptools]
|
|
69
|
+
py-modules = ["${model.const.Name.toLowerCase()}_sdk", "${model.const.Name.toLowerCase()}_types", "config", "features"]
|
|
53
70
|
|
|
54
71
|
# Explicit package list — setuptools auto-discovery refuses to pick when
|
|
55
72
|
# multiple top-level dirs (core/entity/feature/utility) are present.
|
|
56
73
|
[tool.setuptools.packages.find]
|
|
57
74
|
include = ["core*", "entity*", "feature*", "utility*"]
|
|
75
|
+
|
|
76
|
+
# Ship the PEP 561 py.typed marker(s) so the inline type hints reach consumers.
|
|
77
|
+
[tool.setuptools.package-data]
|
|
78
|
+
"*" = ["py.typed"]
|
|
58
79
|
`)
|
|
59
80
|
})
|
|
60
81
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
KIT,
|
|
@@ -7,12 +7,27 @@ import {
|
|
|
7
7
|
} from '@voxgig/apidef'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
+
// A type-correct, JSON-serialisable Python literal for a field's canonical
|
|
11
|
+
// type. The create example is EXECUTED by the doc test (the body is
|
|
12
|
+
// JSON-serialised), so an Ellipsis (`...`) placeholder would raise
|
|
13
|
+
// "Object of type ellipsis is not JSON serializable" — use a real value.
|
|
14
|
+
// Strings render the quoted placeholder.
|
|
15
|
+
function pyLit(type: any, placeholder: string = 'example'): string {
|
|
16
|
+
const k = canonKey(type)
|
|
17
|
+
if ('INTEGER' === k || 'NUMBER' === k) return '1'
|
|
18
|
+
if ('BOOLEAN' === k) return 'True'
|
|
19
|
+
if ('ARRAY' === k) return '[]'
|
|
20
|
+
if ('OBJECT' === k) return '{}'
|
|
21
|
+
return `"${placeholder}"`
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
10
25
|
// Operation method spelling differs between Go and other languages — Go
|
|
11
26
|
// uses PascalCase methods with explicit ctrl arg, others use lowercase
|
|
12
27
|
// methods with optional ctrl. The op descriptions are language-agnostic.
|
|
13
28
|
const OP_DESC: Record<string, { method: string, desc: string }> = {
|
|
14
29
|
load: { method: 'load(match)', desc: 'Load a single entity by match criteria.' },
|
|
15
|
-
list: { method: 'list(
|
|
30
|
+
list: { method: 'list()', desc: 'List entities, optionally matching the given criteria.' },
|
|
16
31
|
create: { method: 'create(data)', desc: 'Create a new entity with the given data.' },
|
|
17
32
|
update: { method: 'update(data)', desc: 'Update an existing entity.' },
|
|
18
33
|
remove: { method: 'remove(match)', desc: 'Remove the matching entity.' },
|
|
@@ -41,6 +56,8 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
41
56
|
publishedEntities.map((entity: any) => {
|
|
42
57
|
const opnames = Object.keys(entity.op || {})
|
|
43
58
|
const fields = entity.fields || []
|
|
59
|
+
// Model-driven id key: null when this entity has no id-like field.
|
|
60
|
+
const idF = entityIdField(entity)
|
|
44
61
|
|
|
45
62
|
Content(`
|
|
46
63
|
### ${entity.Name}
|
|
@@ -53,7 +70,7 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
53
70
|
`)
|
|
54
71
|
}
|
|
55
72
|
|
|
56
|
-
Content(`Create an instance:
|
|
73
|
+
Content(`Create an instance: \`${entity.name} = client.${entity.Name}()\`
|
|
57
74
|
|
|
58
75
|
`)
|
|
59
76
|
|
|
@@ -84,7 +101,7 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
84
101
|
|
|
85
102
|
each(fields, (field: any) => {
|
|
86
103
|
const desc = field.short || ''
|
|
87
|
-
Content(`| \`${field.name}\` | \`${field.type
|
|
104
|
+
Content(`| \`${field.name}\` | \`${canonToType(field.type, target.name)}\` | ${desc} |
|
|
88
105
|
`)
|
|
89
106
|
})
|
|
90
107
|
|
|
@@ -93,10 +110,22 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
93
110
|
}
|
|
94
111
|
|
|
95
112
|
if (opnames.includes('load')) {
|
|
113
|
+
// The id key plus every REQUIRED match key (parent path params like
|
|
114
|
+
// page_id) — the same shape the runtime resolves path params from, so
|
|
115
|
+
// the example always works.
|
|
116
|
+
const loadItems = opRequestShape(entity, 'load').items
|
|
117
|
+
.filter((it: any) => !it.optional || it.name === idF)
|
|
118
|
+
.sort((a: any, b: any) =>
|
|
119
|
+
(a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
|
|
120
|
+
const loadArg = 0 < loadItems.length
|
|
121
|
+
? `{${loadItems.map((it: any) =>
|
|
122
|
+
`"${it.name}": ${pyLit(it.type,
|
|
123
|
+
it.name === idF ? entity.name + '_id' : it.name)}`).join(', ')}}`
|
|
124
|
+
: ''
|
|
96
125
|
Content(`#### Example: Load
|
|
97
126
|
|
|
98
|
-
\`\`\`
|
|
99
|
-
|
|
127
|
+
\`\`\`python
|
|
128
|
+
${entity.name} = client.${entity.Name}().load(${loadArg})
|
|
100
129
|
\`\`\`
|
|
101
130
|
|
|
102
131
|
`)
|
|
@@ -105,24 +134,29 @@ const ${entity.name} = await client.${entity.Name}().load({ id: '${entity.name}_
|
|
|
105
134
|
if (opnames.includes('list')) {
|
|
106
135
|
Content(`#### Example: List
|
|
107
136
|
|
|
108
|
-
\`\`\`
|
|
109
|
-
|
|
137
|
+
\`\`\`python
|
|
138
|
+
${entity.name}s = client.${entity.Name}().list()
|
|
110
139
|
\`\`\`
|
|
111
140
|
|
|
112
141
|
`)
|
|
113
142
|
}
|
|
114
143
|
|
|
115
144
|
if (opnames.includes('create')) {
|
|
145
|
+
// Members come from the SAME shape the runtime validates
|
|
146
|
+
// (opRequestShape): every required member must appear — including a
|
|
147
|
+
// required id and parent keys like page_id — with a real, executable
|
|
148
|
+
// literal (the doc test RUNS this block, so a comment placeholder
|
|
149
|
+
// would break it).
|
|
150
|
+
const createItems = opRequestShape(entity, 'create').items
|
|
151
|
+
.filter((it: any) => !it.optional)
|
|
116
152
|
Content(`#### Example: Create
|
|
117
153
|
|
|
118
|
-
\`\`\`
|
|
119
|
-
|
|
154
|
+
\`\`\`python
|
|
155
|
+
${entity.name} = client.${entity.Name}().create({
|
|
120
156
|
`)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
Content(` ${field.name}: /* ${field.type || 'value'} */,
|
|
157
|
+
createItems.map((it: any) => {
|
|
158
|
+
Content(` "${it.name}": ${pyLit(it.type, 'example_' + it.name)}, # ${canonToType(it.type, target.name)}
|
|
124
159
|
`)
|
|
125
|
-
}
|
|
126
160
|
})
|
|
127
161
|
Content(`})
|
|
128
162
|
\`\`\`
|