@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,446 @@
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (zig/src/regex.zig)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
+ // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ //! A small backtracking regex engine.
5
+ //!
6
+ //! Omni specs match error messages with `/pattern/` expectations, so every
7
+ //! port needs a regex. Zig has none in its standard library, and omni adds
8
+ //! no dependencies, so it carries this one - a direct port of the Rust
9
+ //! engine (rust/src/regex.zig's sibling, rust/src/regex.rs).
10
+ //!
11
+ //! Supported: literals, `.`, `^`, `$`, `|`, groups `(...)`, classes
12
+ //! `[a-z0-9_]` and `[^...]`, quantifiers `* + ? {m} {m,} {m,n}` (greedy,
13
+ //! and lazy with a trailing `?`), and the escapes `\d \D \w \W \s \S \n
14
+ //! \r \t` plus any escaped punctuation.
15
+
16
+ const std = @import("std");
17
+
18
+ const ItemKind = enum { char, range, digit, word, space };
19
+
20
+ const ClassItem = struct {
21
+ kind: ItemKind,
22
+ ch: u8 = 0,
23
+ from: u8 = 0,
24
+ to: u8 = 0,
25
+ invert: bool = false,
26
+ };
27
+
28
+ const NodeKind = enum { char, any, class, start, end, seq, alt, repeat };
29
+
30
+ const Node = struct {
31
+ kind: NodeKind,
32
+ ch: u8 = 0,
33
+ items: []ClassItem = &.{},
34
+ negated: bool = false,
35
+ kids: []*Node = &.{},
36
+ inner: ?*Node = null,
37
+ min: usize = 0,
38
+ max: ?usize = null,
39
+ greedy: bool = true,
40
+ };
41
+
42
+ const ParseError = error{ BadRegex, OutOfMemory };
43
+
44
+ const Parser = struct {
45
+ alloc: std.mem.Allocator,
46
+ pattern: []const u8,
47
+ pos: usize = 0,
48
+
49
+ fn node(self: *Parser, value: Node) ParseError!*Node {
50
+ const out = try self.alloc.create(Node);
51
+ out.* = value;
52
+ return out;
53
+ }
54
+
55
+ fn done(self: *Parser) bool {
56
+ return self.pos >= self.pattern.len;
57
+ }
58
+
59
+ fn peek(self: *Parser) u8 {
60
+ return if (self.done()) 0 else self.pattern[self.pos];
61
+ }
62
+
63
+ fn parseAlt(self: *Parser) ParseError!*Node {
64
+ var branches: std.ArrayList(*Node) = .empty;
65
+ try branches.append(self.alloc, try self.parseSeq());
66
+
67
+ while (!self.done() and '|' == self.peek()) {
68
+ self.pos += 1;
69
+ try branches.append(self.alloc, try self.parseSeq());
70
+ }
71
+
72
+ if (1 == branches.items.len) {
73
+ return branches.items[0];
74
+ }
75
+
76
+ return self.node(.{ .kind = .alt, .kids = branches.items });
77
+ }
78
+
79
+ fn parseSeq(self: *Parser) ParseError!*Node {
80
+ var nodes: std.ArrayList(*Node) = .empty;
81
+
82
+ while (!self.done() and '|' != self.peek() and ')' != self.peek()) {
83
+ const atom = try self.parseAtom();
84
+ try nodes.append(self.alloc, try self.parseRepeat(atom));
85
+ }
86
+
87
+ return self.node(.{ .kind = .seq, .kids = nodes.items });
88
+ }
89
+
90
+ fn parseRepeat(self: *Parser, atom: *Node) ParseError!*Node {
91
+ if (self.done()) {
92
+ return atom;
93
+ }
94
+
95
+ var min: usize = 0;
96
+ var max: ?usize = null;
97
+
98
+ switch (self.peek()) {
99
+ '*' => {
100
+ self.pos += 1;
101
+ min = 0;
102
+ max = null;
103
+ },
104
+ '+' => {
105
+ self.pos += 1;
106
+ min = 1;
107
+ max = null;
108
+ },
109
+ '?' => {
110
+ self.pos += 1;
111
+ min = 0;
112
+ max = 1;
113
+ },
114
+ '{' => {
115
+ const bounds = self.parseCount() orelse return atom;
116
+ min = bounds.min;
117
+ max = bounds.max;
118
+ },
119
+ else => return atom,
120
+ }
121
+
122
+ var greedy = true;
123
+ if (!self.done() and '?' == self.peek()) {
124
+ greedy = false;
125
+ self.pos += 1;
126
+ }
127
+
128
+ return self.node(.{ .kind = .repeat, .inner = atom, .min = min, .max = max, .greedy = greedy });
129
+ }
130
+
131
+ const Bounds = struct { min: usize, max: ?usize };
132
+
133
+ fn parseCount(self: *Parser) ?Bounds {
134
+ const start = self.pos;
135
+ var scan = self.pos + 1;
136
+ var min: usize = 0;
137
+ var digits: usize = 0;
138
+
139
+ while (scan < self.pattern.len and std.ascii.isDigit(self.pattern[scan])) {
140
+ // A count too large to represent is not a count: treat the
141
+ // whole `{...}` as literal text (as the Rust port's
142
+ // `.parse().ok()?` does) rather than overflowing.
143
+ min = adddigit(min, self.pattern[scan]) orelse {
144
+ self.pos = start;
145
+ return null;
146
+ };
147
+ digits += 1;
148
+ scan += 1;
149
+ }
150
+
151
+ if (0 == digits) {
152
+ self.pos = start;
153
+ return null;
154
+ }
155
+
156
+ if (scan < self.pattern.len and '}' == self.pattern[scan]) {
157
+ self.pos = scan + 1;
158
+ return .{ .min = min, .max = min };
159
+ }
160
+
161
+ if (scan >= self.pattern.len or ',' != self.pattern[scan]) {
162
+ self.pos = start;
163
+ return null;
164
+ }
165
+ scan += 1;
166
+
167
+ var max: usize = 0;
168
+ var maxdigits: usize = 0;
169
+ while (scan < self.pattern.len and std.ascii.isDigit(self.pattern[scan])) {
170
+ max = adddigit(max, self.pattern[scan]) orelse {
171
+ self.pos = start;
172
+ return null;
173
+ };
174
+ maxdigits += 1;
175
+ scan += 1;
176
+ }
177
+
178
+ if (scan >= self.pattern.len or '}' != self.pattern[scan]) {
179
+ self.pos = start;
180
+ return null;
181
+ }
182
+
183
+ self.pos = scan + 1;
184
+ return .{ .min = min, .max = if (0 == maxdigits) null else max };
185
+ }
186
+
187
+ // Append one decimal digit to a repeat count, or null on overflow.
188
+ fn adddigit(count: usize, ch: u8) ?usize {
189
+ const scaled = std.math.mul(usize, count, 10) catch return null;
190
+ return std.math.add(usize, scaled, @as(usize, ch - '0')) catch return null;
191
+ }
192
+
193
+ fn escapeNode(self: *Parser, escape: u8) ParseError!*Node {
194
+ const items = try self.alloc.alloc(ClassItem, 1);
195
+
196
+ switch (escape) {
197
+ 'd', 'D' => items[0] = .{ .kind = .digit },
198
+ 'w', 'W' => items[0] = .{ .kind = .word },
199
+ 's', 'S' => items[0] = .{ .kind = .space },
200
+ 'n' => return self.node(.{ .kind = .char, .ch = '\n' }),
201
+ 'r' => return self.node(.{ .kind = .char, .ch = '\r' }),
202
+ 't' => return self.node(.{ .kind = .char, .ch = '\t' }),
203
+ else => return self.node(.{ .kind = .char, .ch = escape }),
204
+ }
205
+
206
+ const negated = 'D' == escape or 'W' == escape or 'S' == escape;
207
+ return self.node(.{ .kind = .class, .items = items, .negated = negated });
208
+ }
209
+
210
+ fn parseClass(self: *Parser) ParseError!*Node {
211
+ self.pos += 1; // [
212
+
213
+ var negated = false;
214
+ if (!self.done() and '^' == self.peek()) {
215
+ negated = true;
216
+ self.pos += 1;
217
+ }
218
+
219
+ var items: std.ArrayList(ClassItem) = .empty;
220
+ var first = true;
221
+
222
+ while (!self.done()) {
223
+ const ch = self.peek();
224
+
225
+ if (']' == ch and !first) {
226
+ self.pos += 1;
227
+ return self.node(.{ .kind = .class, .items = items.items, .negated = negated });
228
+ }
229
+ first = false;
230
+
231
+ if ('\\' == ch and self.pos + 1 < self.pattern.len) {
232
+ const escape = self.pattern[self.pos + 1];
233
+ self.pos += 2;
234
+ try items.append(self.alloc, switch (escape) {
235
+ 'd' => ClassItem{ .kind = .digit },
236
+ 'w' => ClassItem{ .kind = .word },
237
+ 's' => ClassItem{ .kind = .space },
238
+ 'n' => ClassItem{ .kind = .char, .ch = '\n' },
239
+ 'r' => ClassItem{ .kind = .char, .ch = '\r' },
240
+ 't' => ClassItem{ .kind = .char, .ch = '\t' },
241
+ else => ClassItem{ .kind = .char, .ch = escape },
242
+ });
243
+ continue;
244
+ }
245
+
246
+ self.pos += 1;
247
+
248
+ if (self.pos + 1 < self.pattern.len and '-' == self.pattern[self.pos] and
249
+ ']' != self.pattern[self.pos + 1])
250
+ {
251
+ const upto = self.pattern[self.pos + 1];
252
+ self.pos += 2;
253
+ try items.append(self.alloc, .{ .kind = .range, .from = ch, .to = upto });
254
+ continue;
255
+ }
256
+
257
+ try items.append(self.alloc, .{ .kind = .char, .ch = ch });
258
+ }
259
+
260
+ return ParseError.BadRegex;
261
+ }
262
+
263
+ fn parseAtom(self: *Parser) ParseError!*Node {
264
+ const ch = self.peek();
265
+
266
+ if ('(' == ch) {
267
+ self.pos += 1;
268
+
269
+ // Non-capturing group syntax is accepted and ignored.
270
+ if (self.pos + 1 < self.pattern.len and '?' == self.pattern[self.pos] and
271
+ ':' == self.pattern[self.pos + 1])
272
+ {
273
+ self.pos += 2;
274
+ }
275
+
276
+ const inner = try self.parseAlt();
277
+
278
+ if (self.done() or ')' != self.peek()) {
279
+ return ParseError.BadRegex;
280
+ }
281
+ self.pos += 1;
282
+
283
+ return inner;
284
+ }
285
+
286
+ if ('[' == ch) {
287
+ return self.parseClass();
288
+ }
289
+
290
+ if ('.' == ch) {
291
+ self.pos += 1;
292
+ return self.node(.{ .kind = .any });
293
+ }
294
+
295
+ if ('^' == ch) {
296
+ self.pos += 1;
297
+ return self.node(.{ .kind = .start });
298
+ }
299
+
300
+ if ('$' == ch) {
301
+ self.pos += 1;
302
+ return self.node(.{ .kind = .end });
303
+ }
304
+
305
+ if ('\\' == ch) {
306
+ self.pos += 1;
307
+ if (self.done()) {
308
+ return ParseError.BadRegex;
309
+ }
310
+ const escape = self.peek();
311
+ self.pos += 1;
312
+ return self.escapeNode(escape);
313
+ }
314
+
315
+ self.pos += 1;
316
+ return self.node(.{ .kind = .char, .ch = ch });
317
+ }
318
+ };
319
+
320
+ // ---- matching --------------------------------------------------------
321
+
322
+ const FrameKind = enum { seq, repeat };
323
+
324
+ const Frame = struct {
325
+ kind: FrameKind,
326
+ nodes: []*Node = &.{},
327
+ index: usize = 0,
328
+ node: ?*const Node = null,
329
+ count: usize = 0,
330
+ prevpos: usize = 0,
331
+ next: ?*const Frame = null,
332
+ };
333
+
334
+ fn isWord(ch: u8) bool {
335
+ return std.ascii.isAlphanumeric(ch) or '_' == ch;
336
+ }
337
+
338
+ fn classMatch(items: []const ClassItem, negated: bool, ch: u8) bool {
339
+ var hit = false;
340
+
341
+ for (items) |item| {
342
+ const ok = switch (item.kind) {
343
+ .char => ch == item.ch,
344
+ .range => item.from <= ch and ch <= item.to,
345
+ .digit => std.ascii.isDigit(ch),
346
+ .word => isWord(ch),
347
+ .space => std.ascii.isWhitespace(ch),
348
+ };
349
+ if (ok) {
350
+ hit = true;
351
+ break;
352
+ }
353
+ }
354
+
355
+ return hit != negated;
356
+ }
357
+
358
+ fn runFrame(frame: ?*const Frame, text: []const u8, pos: usize) bool {
359
+ const active = frame orelse return true;
360
+
361
+ switch (active.kind) {
362
+ .seq => {
363
+ if (active.index >= active.nodes.len) {
364
+ return runFrame(active.next, text, pos);
365
+ }
366
+ const nextframe = Frame{
367
+ .kind = .seq,
368
+ .nodes = active.nodes,
369
+ .index = active.index + 1,
370
+ .next = active.next,
371
+ };
372
+ return matchNode(active.nodes[active.index], text, pos, &nextframe);
373
+ },
374
+ .repeat => {
375
+ const node = active.node.?;
376
+ // A zero-width repeat would loop forever.
377
+ if (pos == active.prevpos) {
378
+ return active.count >= node.min and runFrame(active.next, text, pos);
379
+ }
380
+ return repeatStep(node, active.count, text, pos, active.next);
381
+ },
382
+ }
383
+ }
384
+
385
+ fn repeatStep(node: *const Node, count: usize, text: []const u8, pos: usize, next: ?*const Frame) bool {
386
+ const canmore = if (node.max) |limit| count < limit else true;
387
+
388
+ const frame = Frame{
389
+ .kind = .repeat,
390
+ .node = node,
391
+ .count = count + 1,
392
+ .prevpos = pos,
393
+ .next = next,
394
+ };
395
+
396
+ const takemore = canmore and matchNode(node.inner.?, text, pos, &frame);
397
+ const stopnow = count >= node.min and runFrame(next, text, pos);
398
+
399
+ if (node.greedy) {
400
+ return takemore or stopnow;
401
+ }
402
+ return stopnow or takemore;
403
+ }
404
+
405
+ fn matchNode(node: *const Node, text: []const u8, pos: usize, cont: ?*const Frame) bool {
406
+ switch (node.kind) {
407
+ .char => return pos < text.len and text[pos] == node.ch and runFrame(cont, text, pos + 1),
408
+ .any => return pos < text.len and runFrame(cont, text, pos + 1),
409
+ .class => return pos < text.len and classMatch(node.items, node.negated, text[pos]) and
410
+ runFrame(cont, text, pos + 1),
411
+ .start => return 0 == pos and runFrame(cont, text, pos),
412
+ .end => return text.len == pos and runFrame(cont, text, pos),
413
+ .seq => {
414
+ const frame = Frame{ .kind = .seq, .nodes = node.kids, .index = 0, .next = cont };
415
+ return runFrame(&frame, text, pos);
416
+ },
417
+ .alt => {
418
+ for (node.kids) |branch| {
419
+ if (matchNode(branch, text, pos, cont)) {
420
+ return true;
421
+ }
422
+ }
423
+ return false;
424
+ },
425
+ .repeat => return repeatStep(node, 0, text, pos, cont),
426
+ }
427
+ }
428
+
429
+ /// Is the pattern found anywhere in the text?
430
+ pub fn find(alloc: std.mem.Allocator, pattern: []const u8, text: []const u8) bool {
431
+ var parser = Parser{ .alloc = alloc, .pattern = pattern };
432
+
433
+ const root = parser.parseAlt() catch return false;
434
+ if (!parser.done()) {
435
+ return false;
436
+ }
437
+
438
+ var start: usize = 0;
439
+ while (start <= text.len) : (start += 1) {
440
+ if (matchNode(root, text, start, null)) {
441
+ return true;
442
+ }
443
+ }
444
+
445
+ return false;
446
+ }
@@ -1,3 +1,6 @@
1
+ // VENDORED: @voxgig/struct sdk-20260907-0029-0 (zig/src/regex.zig)
2
+ // Source: https://github.com/voxgig/struct @ adda9521c828147573df5a8878408a3f2193ddf4 [tag: sdk-20260907-0029-0]
3
+ // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
1
4
  // Copyright (c) 2025-2026 Voxgig Ltd. MIT LICENSE.
2
5
  //
3
6
  // Voxgig Struct — RE2-subset regex engine, pure Zig, no third-party deps.
@@ -225,7 +228,7 @@ const Thread = struct {
225
228
 
226
229
  const ThreadList = struct {
227
230
  allocator: std.mem.Allocator,
228
- threads: std.ArrayList(Thread),
231
+ threads: std.array_list.Managed(Thread),
229
232
  visited: []u32,
230
233
  gen: u32 = 0,
231
234
 
@@ -234,7 +237,7 @@ const ThreadList = struct {
234
237
  @memset(v, 0);
235
238
  return .{
236
239
  .allocator = allocator,
237
- .threads = std.ArrayList(Thread).init(allocator),
240
+ .threads = std.array_list.Managed(Thread).init(allocator),
238
241
  .visited = v,
239
242
  .gen = 0,
240
243
  };
@@ -313,14 +316,14 @@ const Parser = struct {
313
316
  src: []const u8,
314
317
  pos: usize = 0,
315
318
  next_group: usize = 1,
316
- code: std.ArrayList(Insn),
319
+ code: std.array_list.Managed(Insn),
317
320
  err: ?[]const u8 = null,
318
321
 
319
322
  fn init(allocator: std.mem.Allocator, src: []const u8) Parser {
320
323
  return .{
321
324
  .allocator = allocator,
322
325
  .src = src,
323
- .code = std.ArrayList(Insn).init(allocator),
326
+ .code = std.array_list.Managed(Insn).init(allocator),
324
327
  };
325
328
  }
326
329