@voxgig/sdkgen 4.8.2 → 4.9.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.
Files changed (407) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/doctor.d.ts +1 -0
  3. package/dist/action/doctor.js +50 -2
  4. package/dist/action/doctor.js.map +1 -1
  5. package/dist/helpers/naming.js +4 -2
  6. package/dist/helpers/naming.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/model/sdkgen.aon +21 -0
  9. package/package.json +1 -1
  10. package/project/.sdk/model/feature/secrets.aon +120 -18
  11. package/project/.sdk/model/target/c.aon +10 -0
  12. package/project/.sdk/model/target/clojure.aon +13 -0
  13. package/project/.sdk/model/target/cpp.aon +10 -0
  14. package/project/.sdk/model/target/csharp.aon +9 -0
  15. package/project/.sdk/model/target/dart.aon +10 -0
  16. package/project/.sdk/model/target/elixir.aon +9 -0
  17. package/project/.sdk/model/target/go.aon +13 -0
  18. package/project/.sdk/model/target/java.aon +9 -0
  19. package/project/.sdk/model/target/js.aon +7 -0
  20. package/project/.sdk/model/target/kotlin.aon +9 -0
  21. package/project/.sdk/model/target/lean.aon +17 -0
  22. package/project/.sdk/model/target/lua.aon +8 -0
  23. package/project/.sdk/model/target/ocaml.aon +9 -0
  24. package/project/.sdk/model/target/perl.aon +8 -0
  25. package/project/.sdk/model/target/php.aon +8 -0
  26. package/project/.sdk/model/target/py.aon +13 -0
  27. package/project/.sdk/model/target/rb.aon +8 -0
  28. package/project/.sdk/model/target/rust.aon +10 -0
  29. package/project/.sdk/model/target/scala.aon +21 -2
  30. package/project/.sdk/model/target/swift.aon +18 -0
  31. package/project/.sdk/model/target/ts.aon +13 -0
  32. package/project/.sdk/model/target/zig.aon +9 -0
  33. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +9 -2
  34. package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +3 -0
  35. package/project/.sdk/src/cmp/dart/Test_dart.ts +2 -0
  36. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +4 -1
  37. package/project/.sdk/src/cmp/go/Config_go.ts +59 -2
  38. package/project/.sdk/src/cmp/go/Main_go.ts +8 -2
  39. package/project/.sdk/src/cmp/java/Test_java.ts +6 -5
  40. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +6 -5
  41. package/project/.sdk/src/cmp/lean/Package_lean.ts +23 -0
  42. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +1 -0
  43. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +1 -0
  44. package/project/.sdk/src/cmp/ocaml/Gitignore_ocaml.ts +1 -0
  45. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +7 -3
  46. package/project/.sdk/src/cmp/py/Config_py.ts +82 -1
  47. package/project/.sdk/src/cmp/py/Main_py.ts +44 -0
  48. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +2 -0
  49. package/project/.sdk/src/cmp/swift/Main_swift.ts +10 -0
  50. package/project/.sdk/src/cmp/swift/Package_swift.ts +13 -1
  51. package/project/.sdk/src/cmp/ts/Config_ts.ts +42 -17
  52. package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +13 -1
  53. package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +13 -1
  54. package/project/.sdk/src/cmp/zig/Package_zig.ts +15 -11
  55. package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +3 -3
  56. package/project/.sdk/src/cmp/zig/fragment/EntityListOp.fragment.zig +3 -3
  57. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +3 -3
  58. package/project/.sdk/src/cmp/zig/utility_zig.ts +50 -1
  59. package/project/.sdk/tm/c/Makefile +38 -3
  60. package/project/.sdk/tm/c/tests/omni_resolver.h +361 -0
  61. package/project/.sdk/tm/c/tests/omni_smoke_test.c +237 -0
  62. package/project/.sdk/tm/c/tests/primary_corpus_test.c +205 -284
  63. package/project/.sdk/tm/c/tests/struct_corpus_test.c +292 -212
  64. package/project/.sdk/tm/c/tests/vendor/omni/json.c +811 -0
  65. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +240 -0
  66. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +940 -0
  67. package/project/.sdk/tm/c/tests/vendor/omni/util.c +351 -0
  68. package/project/.sdk/tm/c/utility/struct/utility.c +7 -2
  69. package/project/.sdk/tm/clojure/test/sdk/test/omni.clj +401 -0
  70. package/project/.sdk/tm/clojure/test/sdk/test/omni_smoke.clj +81 -0
  71. package/project/.sdk/tm/clojure/test/sdk/test/primary.clj +92 -58
  72. package/project/.sdk/tm/clojure/test/sdk/test/struct_corpus.clj +122 -149
  73. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +8 -3
  74. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +145 -0
  75. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +445 -0
  76. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +145 -0
  77. package/project/.sdk/tm/cpp/Makefile +5 -1
  78. package/project/.sdk/tm/cpp/test/omni_resolver.hpp +473 -0
  79. package/project/.sdk/tm/cpp/test/omni_smoke_test.cpp +209 -0
  80. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +243 -184
  81. package/project/.sdk/tm/cpp/test/runner_support.hpp +68 -181
  82. package/project/.sdk/tm/cpp/test/struct_corpus_test.cpp +183 -56
  83. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +406 -0
  84. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +751 -0
  85. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +256 -0
  86. package/project/.sdk/tm/cpp/utility/pipeline.hpp +7 -1
  87. package/project/.sdk/tm/csharp/test/OmniResolver.cs +491 -0
  88. package/project/.sdk/tm/csharp/test/OmniSmokeTest.cs +106 -0
  89. package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +299 -316
  90. package/project/.sdk/tm/csharp/test/Runner.cs +104 -269
  91. package/project/.sdk/tm/csharp/test/StructUtilityTest.cs +535 -724
  92. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +864 -0
  93. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +347 -0
  94. package/project/.sdk/tm/csharp/utility/MakeSpec.cs +3 -1
  95. package/project/.sdk/tm/csharp/utility/PrepareMethod.cs +6 -1
  96. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +21 -5
  97. package/project/.sdk/tm/dart/test/omni.dart +520 -0
  98. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +143 -0
  99. package/project/.sdk/tm/dart/test/primary_test.dart +86 -28
  100. package/project/.sdk/tm/dart/test/struct_test.dart +438 -11
  101. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +7 -0
  102. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +653 -0
  103. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +232 -0
  104. package/project/.sdk/tm/elixir/Makefile +11 -3
  105. package/project/.sdk/tm/elixir/test/omni_smoke_test.exs +117 -0
  106. package/project/.sdk/tm/elixir/test/primary_utility_test.exs +341 -16
  107. package/project/.sdk/tm/elixir/test/struct_corpus_test.exs +554 -9
  108. package/project/.sdk/tm/elixir/test/support/omni.ex +377 -0
  109. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +122 -0
  110. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +623 -0
  111. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +187 -0
  112. package/project/.sdk/tm/go/core/context.go +32 -16
  113. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +261 -0
  114. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +78 -0
  115. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +652 -0
  116. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +250 -0
  117. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +194 -0
  118. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +80 -0
  119. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +238 -0
  120. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1575 -0
  121. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +248 -0
  122. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +184 -0
  123. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +123 -0
  124. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +79 -0
  125. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +296 -0
  126. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +87 -0
  127. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +161 -0
  128. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +292 -0
  129. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +201 -0
  130. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +187 -0
  131. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +184 -0
  132. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +114 -0
  133. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +156 -0
  134. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +208 -0
  135. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +241 -0
  136. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +150 -0
  137. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +152 -0
  138. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +143 -0
  139. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +120 -0
  140. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +442 -0
  141. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +714 -0
  142. package/project/.sdk/tm/go/feature/secrets_feature.go +675 -0
  143. package/project/.sdk/tm/go/src/feature/secrets/.gitkeep +0 -0
  144. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +799 -0
  145. package/project/.sdk/tm/go/test/omni/omni.go +902 -0
  146. package/project/.sdk/tm/go/test/omni/util.go +381 -0
  147. package/project/.sdk/tm/go/test/omniresolver_test.go +748 -0
  148. package/project/.sdk/tm/go/test/omnismoke_test.go +112 -0
  149. package/project/.sdk/tm/go/test/primary_utility_test.go +123 -191
  150. package/project/.sdk/tm/go/test/struct_utility_test.go +323 -16
  151. package/project/.sdk/tm/go/test/testsupport_test.go +294 -0
  152. package/project/.sdk/tm/go/utility/make_options.go +8 -1
  153. package/project/.sdk/tm/go/utility/prepare_method.go +5 -1
  154. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +2 -2
  155. package/project/.sdk/tm/java/test/OmniResolver.java +355 -0
  156. package/project/.sdk/tm/java/test/OmniSmokeTest.java +99 -0
  157. package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +254 -280
  158. package/project/.sdk/tm/java/test/RunnerSupport.java +9 -194
  159. package/project/.sdk/tm/java/test/StructCorpusTest.java +119 -42
  160. package/project/.sdk/tm/java/test/vendor/omni/Json.java +287 -0
  161. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +851 -0
  162. package/project/.sdk/tm/java/test/vendor/omni/Util.java +322 -0
  163. package/project/.sdk/tm/java/utility/MakeSpec.java +3 -1
  164. package/project/.sdk/tm/java/utility/PrepareMethod.java +5 -5
  165. package/project/.sdk/tm/java/utility/struct/Struct.java +17 -4
  166. package/project/.sdk/tm/js/src/utility/StructUtility.js +3 -3
  167. package/project/.sdk/tm/js/test/omni.js +251 -0
  168. package/project/.sdk/tm/js/test/omni.test.js +105 -0
  169. package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +6 -2
  170. package/project/.sdk/tm/js/test/utility/StructUtility.test.js +27 -2
  171. package/project/.sdk/tm/js/test/vendor/omni/index.js +77 -0
  172. package/project/.sdk/tm/js/test/vendor/omni/runner.js +628 -0
  173. package/project/.sdk/tm/js/test/vendor/omni/util.js +229 -0
  174. package/project/.sdk/tm/kotlin/core/Utility.kt +1 -1
  175. package/project/.sdk/tm/kotlin/test/OmniResolver.kt +343 -0
  176. package/project/.sdk/tm/kotlin/test/OmniSmokeTest.kt +100 -0
  177. package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +244 -262
  178. package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +9 -178
  179. package/project/.sdk/tm/kotlin/test/StructCorpusTest.kt +121 -32
  180. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +264 -0
  181. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +615 -0
  182. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +139 -0
  183. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -3
  184. package/project/.sdk/tm/kotlin/utility/Prepare.kt +6 -6
  185. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +18 -2
  186. package/project/.sdk/tm/lean/Makefile +12 -5
  187. package/project/.sdk/tm/lean/src/SdkUtility.lean +14 -1
  188. package/project/.sdk/tm/lean/test/OmniResolver.lean +358 -0
  189. package/project/.sdk/tm/lean/test/OmniSmoke.lean +174 -0
  190. package/project/.sdk/tm/lean/test/StructCorpus.lean +245 -574
  191. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +155 -291
  192. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +997 -0
  193. package/project/.sdk/tm/lua/test/omni.lua +456 -0
  194. package/project/.sdk/tm/lua/test/omni_smoke_test.lua +103 -0
  195. package/project/.sdk/tm/lua/test/primary_utility_test.lua +250 -509
  196. package/project/.sdk/tm/lua/test/struct_utility_test.lua +161 -70
  197. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +268 -0
  198. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +385 -0
  199. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +641 -0
  200. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +282 -0
  201. package/project/.sdk/tm/lua/utility/prepare_method.lua +5 -1
  202. package/project/.sdk/tm/lua/utility/struct/regex.lua +663 -0
  203. package/project/.sdk/tm/lua/utility/struct/struct.lua +660 -420
  204. package/project/.sdk/tm/ocaml/Makefile +37 -12
  205. package/project/.sdk/tm/ocaml/test/omni_resolver.ml +284 -0
  206. package/project/.sdk/tm/ocaml/test/omni_smoke_test.ml +169 -0
  207. package/project/.sdk/tm/ocaml/test/primary_utility_test.ml +84 -100
  208. package/project/.sdk/tm/ocaml/test/struct_corpus.ml +225 -201
  209. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +1157 -0
  210. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +88 -12
  211. package/project/.sdk/tm/perl/t/omni.pm +647 -0
  212. package/project/.sdk/tm/perl/t/omni_smoke.t +87 -0
  213. package/project/.sdk/tm/perl/t/primary_utility.t +189 -487
  214. package/project/.sdk/tm/perl/t/struct_utility.t +455 -389
  215. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +649 -0
  216. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +253 -0
  217. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +24 -0
  218. package/project/.sdk/tm/perl/utility/prepare_method.pm +7 -2
  219. package/project/.sdk/tm/php/test/Omni.php +691 -0
  220. package/project/.sdk/tm/php/test/OmniSmokeTest.php +93 -0
  221. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +210 -571
  222. package/project/.sdk/tm/php/test/StructUtilityTest.php +320 -342
  223. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +644 -0
  224. package/project/.sdk/tm/php/test/vendor/omni/Util.php +283 -0
  225. package/project/.sdk/tm/php/utility/MakeSpec.php +10 -3
  226. package/project/.sdk/tm/php/utility/PrepareBody.php +7 -1
  227. package/project/.sdk/tm/php/utility/PrepareMethod.php +6 -2
  228. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +36 -0
  229. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +141 -0
  230. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +50 -0
  231. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +333 -0
  232. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +198 -0
  233. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +147 -0
  234. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +52 -0
  235. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +139 -0
  236. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1053 -0
  237. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +171 -0
  238. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +95 -0
  239. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +116 -0
  240. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +59 -0
  241. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +87 -0
  242. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +112 -0
  243. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +76 -0
  244. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +116 -0
  245. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +192 -0
  246. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +120 -0
  247. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +140 -0
  248. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +62 -0
  249. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +101 -0
  250. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +151 -0
  251. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +115 -0
  252. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +90 -0
  253. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +101 -0
  254. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +119 -0
  255. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +125 -0
  256. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +211 -0
  257. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +475 -0
  258. package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +467 -0
  259. package/project/.sdk/tm/py/pkg/utility/prepare_method.py +5 -1
  260. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/__init__.py +0 -2
  261. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +780 -529
  262. package/project/.sdk/tm/py/src/feature/secrets/.gitkeep +0 -0
  263. package/project/.sdk/tm/py/test/feature/__init__.py +0 -0
  264. package/project/.sdk/tm/py/test/feature/secrets/__init__.py +0 -0
  265. package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +337 -0
  266. package/project/.sdk/tm/py/test/omni.py +415 -0
  267. package/project/.sdk/tm/py/test/test_omni_smoke.py +74 -0
  268. package/project/.sdk/tm/py/test/test_primary_utility.py +144 -668
  269. package/project/.sdk/tm/py/test/test_struct_utility.py +74 -27
  270. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +62 -0
  271. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +580 -0
  272. package/project/.sdk/tm/py/test/voxgig_omni/util.py +252 -0
  273. package/project/.sdk/tm/rb/test/omni.rb +505 -0
  274. package/project/.sdk/tm/rb/test/omni_smoke_test.rb +72 -0
  275. package/project/.sdk/tm/rb/test/primary_utility_test.rb +174 -560
  276. package/project/.sdk/tm/rb/test/struct_utility_test.rb +13 -7
  277. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +493 -0
  278. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +199 -0
  279. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +15 -0
  280. package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -1
  281. package/project/.sdk/tm/rust/tests/common/mod.rs +19 -242
  282. package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +888 -0
  283. package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +286 -0
  284. package/project/.sdk/tm/rust/tests/primary_utility_test.rs +318 -312
  285. package/project/.sdk/tm/rust/tests/struct_utility_test.rs +66 -28
  286. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +412 -0
  287. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +38 -0
  288. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +392 -0
  289. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +1001 -0
  290. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +161 -0
  291. package/project/.sdk/tm/rust/utility/prepare_method.rs +5 -1
  292. package/project/.sdk/tm/scala/Makefile +16 -6
  293. package/project/.sdk/tm/scala/sdktest/OmniResolver.scala +497 -0
  294. package/project/.sdk/tm/scala/sdktest/OmniSmoke.scala +192 -0
  295. package/project/.sdk/tm/scala/sdktest/PrimaryCorpus.scala +47 -19
  296. package/project/.sdk/tm/scala/sdktest/StructCorpus.scala +0 -0
  297. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +229 -0
  298. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +552 -0
  299. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +104 -0
  300. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Constants.swift +10 -0
  301. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Inject.swift +28 -5
  302. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Injection.swift +5 -1
  303. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Minor.swift +4 -1
  304. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Validate.swift +15 -5
  305. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +6 -1
  306. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniResolver.swift +474 -0
  307. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniSmokeTest.swift +107 -0
  308. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +141 -178
  309. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/Runner.swift +17 -113
  310. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/StructUtilityTest.swift +295 -446
  311. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +364 -0
  312. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +730 -0
  313. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +162 -0
  314. package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +7 -0
  315. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +148 -0
  316. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +55 -0
  317. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +344 -0
  318. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +205 -0
  319. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +138 -0
  320. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +46 -0
  321. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +349 -0
  322. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +181 -0
  323. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1132 -0
  324. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +177 -0
  325. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +119 -0
  326. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +102 -0
  327. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +61 -0
  328. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +112 -0
  329. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +100 -0
  330. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +37 -0
  331. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +163 -30
  332. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +27 -22
  333. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/aws.ts +26 -36
  334. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/azuresecrets.ts +19 -21
  335. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/boru.ts +36 -17
  336. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/doppler.ts +14 -21
  337. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/gcpsecrets.ts +27 -27
  338. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/hashicorp.ts +25 -39
  339. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +99 -0
  340. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/infisical.ts +14 -16
  341. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/onepassword.ts +15 -22
  342. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +98 -0
  343. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{Sigv4.ts → plugins/sigv4.ts} +7 -6
  344. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +97 -23
  345. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +37 -0
  346. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +4 -17
  347. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +4 -16
  348. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +11 -25
  349. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +6 -23
  350. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +106 -39
  351. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +3 -3
  352. package/project/.sdk/tm/ts/test/omni.ts +104 -32
  353. package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +27 -0
  354. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +32 -5
  355. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +2 -2
  356. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +2 -2
  357. package/project/.sdk/tm/zig/Makefile +15 -1
  358. package/project/.sdk/tm/zig/build.zig +23 -5
  359. package/project/.sdk/tm/zig/core/helpers.zig +52 -11
  360. package/project/.sdk/tm/zig/core/mem.zig +17 -1
  361. package/project/.sdk/tm/zig/core/utility.zig +23 -19
  362. package/project/.sdk/tm/zig/feature/audit.zig +2 -2
  363. package/project/.sdk/tm/zig/feature/cache.zig +2 -2
  364. package/project/.sdk/tm/zig/feature/debug.zig +5 -5
  365. package/project/.sdk/tm/zig/feature/netsim.zig +2 -2
  366. package/project/.sdk/tm/zig/feature/paging.zig +2 -2
  367. package/project/.sdk/tm/zig/feature/proxy.zig +15 -8
  368. package/project/.sdk/tm/zig/feature/streaming.zig +5 -5
  369. package/project/.sdk/tm/zig/feature/support.zig +3 -3
  370. package/project/.sdk/tm/zig/feature/telemetry.zig +5 -5
  371. package/project/.sdk/tm/zig/feature/test.zig +10 -5
  372. package/project/.sdk/tm/zig/test/fh.zig +10 -10
  373. package/project/.sdk/tm/zig/test/gotcha_test.zig +5 -5
  374. package/project/.sdk/tm/zig/test/omniresolver.zig +515 -0
  375. package/project/.sdk/tm/zig/test/omnismoke_test.zig +284 -0
  376. package/project/.sdk/tm/zig/test/pipeline_test.zig +8 -8
  377. package/project/.sdk/tm/zig/test/primary_utility_test.zig +145 -155
  378. package/project/.sdk/tm/zig/test/struct_corpus.zig +264 -187
  379. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +1314 -0
  380. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +446 -0
  381. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +7 -4
  382. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +356 -157
  383. package/project/sdkgen-package.json +1 -1
  384. package/src/action/doctor.ts +66 -2
  385. package/src/helpers/naming.ts +4 -2
  386. package/project/.sdk/tm/c/tests/runner.h +0 -274
  387. package/project/.sdk/tm/cpp/test/struct_runner.hpp +0 -314
  388. package/project/.sdk/tm/csharp/test/StructRunner.cs +0 -276
  389. package/project/.sdk/tm/dart/test/runner.dart +0 -406
  390. package/project/.sdk/tm/dart/test/struct_corpus.dart +0 -531
  391. package/project/.sdk/tm/elixir/test/support/struct_corpus.ex +0 -1088
  392. package/project/.sdk/tm/go/test/runner_test.go +0 -629
  393. package/project/.sdk/tm/go/test/struct_runner_test.go +0 -1094
  394. package/project/.sdk/tm/java/test/StructRunner.java +0 -281
  395. package/project/.sdk/tm/js/test/runner.js +0 -387
  396. package/project/.sdk/tm/kotlin/test/StructRunner.kt +0 -177
  397. package/project/.sdk/tm/lua/test/struct_runner.lua +0 -602
  398. package/project/.sdk/tm/ocaml/test/corpus_runner.ml +0 -185
  399. package/project/.sdk/tm/perl/t/struct_runner.pm +0 -275
  400. package/project/.sdk/tm/php/test/StructRunner.php +0 -275
  401. package/project/.sdk/tm/py/test/struct_runner.py +0 -411
  402. package/project/.sdk/tm/rb/test/struct_runner.rb +0 -309
  403. package/project/.sdk/tm/rust/tests/struct_runner/mod.rs +0 -424
  404. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/Registry.ts +0 -90
  405. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/http.ts +0 -66
  406. package/project/.sdk/tm/ts/test/vendor/omni/compat.ts +0 -188
  407. package/project/.sdk/tm/zig/test/struct_runner.zig +0 -464
@@ -0,0 +1,296 @@
1
+ // VENDORED: @voxgig/plugin 0.1.6 (go/plugin/types.go)
2
+ // Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
+ // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ /* Shared types. Deliberately small: the design's §19 budget says the
5
+ * library owns naming, configuration, lifecycle, ordering, binding and
6
+ * teardown, and nothing else.
7
+ *
8
+ * GO IS THE FIRST PORT AND IT CHANGES ONE THING ON PURPOSE (§18, P4):
9
+ * errors are RETURNED, not raised. The canonical raises, and every
10
+ * signature that could fail here returns `error` instead. That is the
11
+ * point of porting Go first — "static-only + typed extension points +
12
+ * explicit errors will find every TypeScript-shaped assumption in the
13
+ * model" — and the corpus compares by CODE, which survives the change
14
+ * intact. */
15
+
16
+ package plugin
17
+
18
+ import (
19
+ "bytes"
20
+ "encoding/json"
21
+ "fmt"
22
+ )
23
+
24
+ // Ref is the two halves of an identity (§4). Tag is "" when absent —
25
+ // never nil and never missing, because a port returning three shapes
26
+ // for two states makes every downstream comparison a special case.
27
+ type Ref struct {
28
+ Name string `json:"name"`
29
+ Tag string `json:"tag"`
30
+ }
31
+
32
+ // Status is one of §5.1's seven statuses, and no more. A port that adds
33
+ // an eighth is diverging. `loading` and `closing` are observable only
34
+ // from inside a callback or from another thread.
35
+ type Status string
36
+
37
+ const (
38
+ StatusDeclared Status = "declared"
39
+ StatusLoaded Status = "loaded"
40
+ StatusPending Status = "pending"
41
+ StatusLive Status = "live"
42
+ StatusFailed Status = "failed"
43
+ StatusLoading Status = "loading"
44
+ StatusClosing Status = "closing"
45
+ )
46
+
47
+ // OrderBlock is §4.4 of DOCS.md — `band` rather than a nested `order`,
48
+ // because `order.order` needs explaining every time it is read.
49
+ type OrderBlock struct {
50
+ Before OrderRef `json:"before,omitempty"`
51
+ After OrderRef `json:"after,omitempty"`
52
+ Band *int `json:"band,omitempty"`
53
+ }
54
+
55
+ // MarshalJSON omits an unstated constraint entirely.
56
+ //
57
+ // `omitempty` does not apply to a struct, so without this an absent
58
+ // `before` serialized as `"before": null` while canonical simply has no
59
+ // key - the same language-dependent shape divergence as emitting a list
60
+ // for an authored scalar, one level up.
61
+ func (block OrderBlock) MarshalJSON() ([]byte, error) {
62
+ out := map[string]any{}
63
+ if block.Before.Stated() {
64
+ out["before"] = block.Before
65
+ }
66
+ if block.After.Stated() {
67
+ out["after"] = block.After
68
+ }
69
+ if nil != block.Band {
70
+ out["band"] = *block.Band
71
+ }
72
+
73
+ // `marshal` for the same reason as OrderRef.MarshalJSON above.
74
+ return marshal(out)
75
+ }
76
+
77
+ // OrderRef is ONE spelling or a LIST of them.
78
+ //
79
+ // plugin used to type this as a bare string, so a list matched nothing and
80
+ // was SILENTLY DROPPED - the sort came out as if no constraint had been
81
+ // declared. Go could not even represent the input.
82
+ //
83
+ // `raw` is THE AUTHORED VALUE, kept so normalization can hand the block
84
+ // back exactly as written; `List` is the parsed form the sort consumes,
85
+ // and `set` says whether the key was stated at all. Canonical does not
86
+ // need any of this: it never decodes the block, it assigns it (`ent.order
87
+ // = ord`), so every spelling survives untouched. Go is the only port that
88
+ // decodes and rebuilds, and a rebuild silently loses whatever it does not
89
+ // model. That single cause produced four separate parity breaks - the
90
+ // list form, scalar-vs-one-element-list, an authored empty list, an
91
+ // authored null - and the corpus could see none of them until
92
+ // `config/normorder` was written to assert the block's own shape.
93
+ //
94
+ // `set` is deliberately not `0 < len(list)`: an authored `[]` states a
95
+ // constraint that names nothing, which is NOT the same document as an
96
+ // absent key.
97
+ //
98
+ // `raw` is the ONE source of truth and `list` is a derived cache, both
99
+ // unexported. An earlier round exported `List`, which made the value
100
+ // mutable from outside and gave it two sources that could disagree: a
101
+ // caller mutating the slice it passed in changed what marshalled while
102
+ // ResolveOrder kept the old constraint, and editing `List` directly did
103
+ // the reverse. A persisted-then-reloaded config could then order
104
+ // differently from the live one. NewOrderRef is now the only way to build
105
+ // one, it copies what it is given, and Refs() hands back a copy.
106
+ type OrderRef struct {
107
+ raw any
108
+ list []string
109
+ set bool
110
+ }
111
+
112
+ // Refs is the parsed spellings this ref names, as a copy. Callers get no
113
+ // handle on the ref's own state.
114
+ func (ref OrderRef) Refs() []string {
115
+ out := make([]string, len(ref.list))
116
+ copy(out, ref.list)
117
+
118
+ return out
119
+ }
120
+
121
+ // UnmarshalJSON decodes to `any` first and then goes through the SAME
122
+ // decoder the in-memory path uses.
123
+ //
124
+ // It used to try `string` and then `[]string` directly. That is wrong
125
+ // twice over: json.Unmarshal into a string is a documented NO-OP on JSON
126
+ // null and returns a nil error, so `{"after":null}` took the string
127
+ // branch and came back as `{"after":""}` - an empty-string constraint
128
+ // nobody wrote; and having two decoders for one rule let them drift, so
129
+ // this path hard-failed on values the in-memory path quietly accepted.
130
+ func (ref *OrderRef) UnmarshalJSON(data []byte) error {
131
+ var authored any
132
+
133
+ if err := json.Unmarshal(data, &authored); nil != err {
134
+ return err
135
+ }
136
+
137
+ *ref = asorderref(authored, true)
138
+
139
+ return nil
140
+ }
141
+
142
+ // Stated reports whether this ref says anything at all - because a
143
+ // document stated it, or because a Go caller built it by hand.
144
+ //
145
+ // It is NOT `0 < len(List)`: an authored `[]` states a constraint that
146
+ // names nothing, and an absent key states nothing, and those are
147
+ // different documents.
148
+ func (ref OrderRef) Stated() bool {
149
+ return ref.set
150
+ }
151
+
152
+ // MarshalJSON replays the AUTHORED value.
153
+ //
154
+ // A ref that was never stated marshals as `null`, and OrderBlock omits
155
+ // the key rather than emitting that. There is no `List` fallback and no
156
+ // way to build a ref outside NewOrderRef: an earlier round had both, and
157
+ // carrying two ways to construct one value is exactly what let them
158
+ // desync.
159
+ //
160
+ // `marshal`, not `json.Marshal`. The latter escapes `<`, `>` and `&` as
161
+ // \u00XX, which canonical's JSON.stringify does not, and an outer encoder
162
+ // cannot undo an escape its input already carries - so a spelling holding
163
+ // any of those three came back with different bytes from every other
164
+ // port. go/AGENTS.md states this rule outright and both marshallers here
165
+ // broke it.
166
+ func (ref OrderRef) MarshalJSON() ([]byte, error) {
167
+ if ref.set {
168
+ return marshal(ref.raw)
169
+ }
170
+
171
+ return []byte("null"), nil
172
+ }
173
+
174
+ // NewOrderRef builds an OrderRef from Go, for callers assembling a
175
+ // document programmatically rather than decoding one. It takes what a
176
+ // document may hold - a string, a []string, a []any of strings, or nil -
177
+ // and runs it through the SAME decoder the JSON and in-memory paths use,
178
+ // so a constructed ref and a decoded one cannot disagree.
179
+ func NewOrderRef(spelling any) OrderRef {
180
+ return asorderref(spelling, true)
181
+ }
182
+
183
+ // Instance is a normalized instance entry. Option data is NOT merged
184
+ // here — see OptionLayers.
185
+ type Instance struct {
186
+ Pos int `json:"pos"`
187
+ Active bool `json:"active"`
188
+ Start string `json:"start"`
189
+ Order *OrderBlock `json:"order,omitempty"`
190
+ // OptionLayers holds levels 3-6 that are present, IN LADDER ORDER
191
+ // (§9.3).
192
+ //
193
+ // Normalization does not merge these, and cannot: §9.4 makes merge
194
+ // behaviour a property of the definition's option shape, which
195
+ // normalization has never seen. Flattening them here would make
196
+ // `$MERGE: append` unimplementable at load time, because the layers
197
+ // it must concatenate would already be collapsed.
198
+ OptionLayers []any `json:"optionlayers"`
199
+ }
200
+
201
+ type Normalized struct {
202
+ Instance map[string]*Instance `json:"instance"`
203
+ Order []string `json:"order"`
204
+ Default map[string]any `json:"default"`
205
+ }
206
+
207
+ // DetailOrder is §12's detail fields, IN THIS FIXED ORDER.
208
+ //
209
+ // The order is part of the contract, not a formatting preference. An
210
+ // earlier draft named six fields while other sections promised
211
+ // diagnostics that had nowhere to go, which would have left each port
212
+ // inventing its own order and breaking message parity.
213
+ var DetailOrder = []string{
214
+ "host", "ref", "name", "tag", "point", "key", "capability",
215
+ "range", "version", "match", "candidates", "cycle", "holders",
216
+ "refs", "path", "cause",
217
+ }
218
+
219
+ // compactjson renders a value the way JSON.stringify does: compact, and
220
+ // WITHOUT Go's default HTML escaping, which would turn `<` into `<`
221
+ // and break message parity against every other port.
222
+ func compactjson(v any) string {
223
+ var buf bytes.Buffer
224
+ enc := json.NewEncoder(&buf)
225
+ enc.SetEscapeHTML(false)
226
+ if err := enc.Encode(v); nil != err {
227
+ return fmt.Sprintf("%v", v)
228
+ }
229
+ return string(bytes.TrimRight(buf.Bytes(), "\n"))
230
+ }
231
+
232
+ // FormatError renders `plugin/<code>: <text> [<key>=<value> …]`.
233
+ //
234
+ // Values render as COMPACT JSON, so a value containing a space or a
235
+ // bracket cannot break the parse, and a list renders as a JSON array.
236
+ // The bracket is absent entirely when no field applies.
237
+ func FormatError(code string, text string, details map[string]any) string {
238
+ parts := []string{}
239
+ for _, k := range DetailOrder {
240
+ v, ok := details[k]
241
+ if !ok {
242
+ continue
243
+ }
244
+ parts = append(parts, k+"="+compactjson(v))
245
+ }
246
+ tail := ""
247
+ if 0 < len(parts) {
248
+ tail = " ["
249
+ for i, p := range parts {
250
+ if 0 < i {
251
+ tail += " "
252
+ }
253
+ tail += p
254
+ }
255
+ tail += "]"
256
+ }
257
+ return "plugin/" + code + ": " + text + tail
258
+ }
259
+
260
+ // PluginError carries a §12 code. Ports compare by CODE and never by
261
+ // message: wording is a port's own business, and pinning the words would
262
+ // make every translation a corpus change. The FORMAT, however, is
263
+ // pinned — a parseable message is what makes a log searchable across
264
+ // twenty languages.
265
+ type PluginError struct {
266
+ Code string
267
+ Text string
268
+ Details map[string]any
269
+ message string
270
+ }
271
+
272
+ func (e *PluginError) Error() string { return e.message }
273
+
274
+ // Fail builds the error the canonical would have thrown. Go RETURNS it;
275
+ // every caller in this port propagates rather than unwinding.
276
+ func Fail(code string, text string, details map[string]any) *PluginError {
277
+ if nil == details {
278
+ details = map[string]any{}
279
+ }
280
+ return &PluginError{
281
+ Code: code,
282
+ Text: text,
283
+ Details: details,
284
+ message: FormatError(code, text, details),
285
+ }
286
+ }
287
+
288
+ // CodeOf reports the §12 code of an error, or "" for an error this
289
+ // library did not raise. The corpus compares by code, so the driver
290
+ // needs one place that knows how to read it.
291
+ func CodeOf(err error) string {
292
+ if pe, ok := err.(*PluginError); ok {
293
+ return pe.Code
294
+ }
295
+ return ""
296
+ }
@@ -0,0 +1,87 @@
1
+ // VENDORED: @voxgig/plugin 0.1.6 (go/plugin/util.go)
2
+ // Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
+ // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ /* The handful of helpers the port needs that the canonical gets from
5
+ * JavaScript for free: sorted map keys (Object.keys(x).sort()), a
6
+ * JSON.stringify-equivalent marshal, and deep clone.
7
+ *
8
+ * `each(...) in sorted-key order` is a house rule across voxgig
9
+ * because it makes output BYTE-STABLE. Go's map iteration is
10
+ * deliberately randomized, so every traversal here goes through
11
+ * sortedkeys — an unsorted `for k := range m` is a bug that passes its
12
+ * own tests most of the time. */
13
+
14
+ package plugin
15
+
16
+ import (
17
+ "bytes"
18
+ "encoding/json"
19
+ "sort"
20
+ )
21
+
22
+ func sortedkeys[V any](m map[string]V) []string {
23
+ out := make([]string, 0, len(m))
24
+ for k := range m {
25
+ out = append(out, k)
26
+ }
27
+ sort.Strings(out)
28
+ return out
29
+ }
30
+
31
+ // marshal is json.Marshal WITHOUT HTML escaping, so a `<` in a value
32
+ // renders as itself and message parity holds against ports whose JSON
33
+ // writer never had an opinion about HTML.
34
+ func marshal(v any) ([]byte, error) {
35
+ var buf bytes.Buffer
36
+ enc := json.NewEncoder(&buf)
37
+ enc.SetEscapeHTML(false)
38
+ if err := enc.Encode(v); nil != err {
39
+ return nil, err
40
+ }
41
+ return bytes.TrimRight(buf.Bytes(), "\n"), nil
42
+ }
43
+
44
+ // ismap is the canonical's `isMap`: a JSON object, and not a list.
45
+ func ismap(v any) bool {
46
+ _, ok := v.(map[string]any)
47
+ return ok
48
+ }
49
+
50
+ func aslist(v any) ([]any, bool) {
51
+ l, ok := v.([]any)
52
+ return l, ok
53
+ }
54
+
55
+ func clonevalue(v any) any {
56
+ switch t := v.(type) {
57
+ case map[string]any:
58
+ out := map[string]any{}
59
+ for k, e := range t {
60
+ out[k] = clonevalue(e)
61
+ }
62
+ return out
63
+ case []any:
64
+ out := make([]any, len(t))
65
+ for i, e := range t {
66
+ out[i] = clonevalue(e)
67
+ }
68
+ return out
69
+ default:
70
+ return v
71
+ }
72
+ }
73
+
74
+ // indexof is `Array.prototype.indexOf` for the string lists this port
75
+ // carries everywhere.
76
+ func indexof(l []string, s string) int {
77
+ for i, e := range l {
78
+ if e == s {
79
+ return i
80
+ }
81
+ }
82
+ return -1
83
+ }
84
+
85
+ func hasstring(l []string, s string) bool {
86
+ return -1 != indexof(l, s)
87
+ }
@@ -0,0 +1,161 @@
1
+ // VENDORED: @voxgig/plugin 0.1.6 (go/plugin/version.go)
2
+ // Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
+ // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ /* Versions and ranges (§11.2).
5
+ *
6
+ * TWO FIELDS AND ONE PREDICATE. A capability declares `version`, a
7
+ * concrete version. A requirement declares `range`. A requirement is
8
+ * satisfied when the names match, the `match` passes, and:
9
+ *
10
+ * the provider's `version` falls inside the requirement's `range`.
11
+ *
12
+ * That is the whole rule. There is no third field and no second
13
+ * comparison — an earlier draft added a provider-side `compat` range,
14
+ * which left three values and no statement of how they combine, and
15
+ * three defensible readings of one declaration is worse than the
16
+ * ambiguity it was introduced to fix. */
17
+
18
+ package plugin
19
+
20
+ import (
21
+ "regexp"
22
+ "strconv"
23
+ "strings"
24
+ )
25
+
26
+ type Range struct {
27
+ Lo []int `json:"lo"`
28
+ Hi []int `json:"hi"`
29
+ }
30
+
31
+ var versionRe = regexp.MustCompile(`^(\d+)(?:\.(\d+))?(?:\.(\d+))?$`)
32
+
33
+ // componentMax bounds a version component, like §4's 1024 bounds a ref.
34
+ //
35
+ // The grammar admits an unbounded digit sequence and every language then
36
+ // disagrees past its integer range: JavaScript silently loses precision,
37
+ // Go's Atoi errors (and this port was ignoring that, yielding 0), C
38
+ // overflows. `Satisfies("0", "9223372036854775808")` was false in the
39
+ // canonical and TRUE here, from the same corpus.
40
+ //
41
+ // 2^31-1, because every port has a signed 32-bit integer.
42
+ const componentMax = 2147483647
43
+
44
+ // ParseRange accepts two forms and no more (§11.2):
45
+ //
46
+ // '2.1' >= 2.1.0 and < 3.0.0
47
+ // '~2.1' >= 2.1.0 and < 2.2.0
48
+ func ParseRange(rng string) (Range, error) {
49
+ bad := func() (Range, error) {
50
+ return Range{}, Fail("plugin_bad_range", "invalid range: "+rng,
51
+ map[string]any{"range": rng})
52
+ }
53
+ if 0 == len(rng) {
54
+ return bad()
55
+ }
56
+
57
+ tilde := strings.HasPrefix(rng, "~")
58
+ body := rng
59
+ if tilde {
60
+ body = rng[1:]
61
+ }
62
+ m := versionRe.FindStringSubmatch(body)
63
+ if nil == m {
64
+ return bad()
65
+ }
66
+
67
+ major, ok := component(m[1])
68
+ if !ok {
69
+ return bad()
70
+ }
71
+ minor, ok := component(m[2])
72
+ if !ok {
73
+ return bad()
74
+ }
75
+ patch, ok := component(m[3])
76
+ if !ok {
77
+ return bad()
78
+ }
79
+
80
+ lo := []int{major, minor, patch}
81
+ hi := []int{major + 1, 0, 0}
82
+ if tilde {
83
+ hi = []int{major, minor + 1, 0}
84
+ }
85
+ return Range{Lo: lo, Hi: hi}, nil
86
+ }
87
+
88
+ func ParseVersion(version string) ([]int, error) {
89
+ m := versionRe.FindStringSubmatch(version)
90
+ if nil == m {
91
+ return nil, Fail("plugin_bad_range", "invalid version: "+version,
92
+ map[string]any{"version": version})
93
+ }
94
+ out := []int{}
95
+ for _, g := range []string{m[1], m[2], m[3]} {
96
+ n, ok := component(g)
97
+ if !ok {
98
+ return nil, Fail("plugin_bad_range",
99
+ "version component out of range in "+version+": "+g,
100
+ map[string]any{"version": version})
101
+ }
102
+ out = append(out, n)
103
+ }
104
+ return out, nil
105
+ }
106
+
107
+ // component parses one bounded component. An absent optional group is
108
+ // "", which is a missing minor or patch and therefore 0.
109
+ func component(s string) (int, bool) {
110
+ if "" == s {
111
+ return 0, true
112
+ }
113
+ n, err := strconv.Atoi(s)
114
+ if nil != err || componentMax < n {
115
+ return 0, false
116
+ }
117
+ return n, true
118
+ }
119
+
120
+ // Satisfies is the one satisfaction predicate: lo <= version < hi.
121
+ func Satisfies(version string, rng string) (bool, error) {
122
+ v, err := ParseVersion(version)
123
+ if nil != err {
124
+ return false, err
125
+ }
126
+ r, err := ParseRange(rng)
127
+ if nil != err {
128
+ return false, err
129
+ }
130
+ return 0 <= Cmp(v, r.Lo) && 0 > Cmp(v, r.Hi), nil
131
+ }
132
+
133
+ // satisfiesq is Satisfies for the internal callers that treat an
134
+ // unparseable version or range as "does not satisfy" — Capability and
135
+ // Graph, both of which run over data the corpus has already admitted.
136
+ func satisfiesq(version string, rng string) bool {
137
+ ok, err := Satisfies(version, rng)
138
+ return nil == err && ok
139
+ }
140
+
141
+ func Cmp(a []int, b []int) int {
142
+ for i := 0; i < 3; i++ {
143
+ x, y := at(a, i), at(b, i)
144
+ if x != y {
145
+ if x < y {
146
+ return -1
147
+ }
148
+ return 1
149
+ }
150
+ }
151
+ return 0
152
+ }
153
+
154
+ func at(l []int, i int) int {
155
+ if i < len(l) {
156
+ return l[i]
157
+ }
158
+ return 0
159
+ }
160
+
161
+