@voxgig/sdkgen 4.9.0 → 4.11.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 (1159) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/helpers/manifest.d.ts +2 -1
  3. package/dist/helpers/manifest.js +75 -1
  4. package/dist/helpers/manifest.js.map +1 -1
  5. package/dist/helpers/modelNames.d.ts +7 -0
  6. package/dist/helpers/modelNames.js +232 -0
  7. package/dist/helpers/modelNames.js.map +1 -0
  8. package/dist/helpers/naming.d.ts +2 -1
  9. package/dist/helpers/naming.js +45 -1
  10. package/dist/helpers/naming.js.map +1 -1
  11. package/dist/sdkgen.d.ts +3 -2
  12. package/dist/sdkgen.js +12 -3
  13. package/dist/sdkgen.js.map +1 -1
  14. package/dist/testkit.d.ts +2 -0
  15. package/dist/testkit.js +80 -24
  16. package/dist/testkit.js.map +1 -1
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/dist/utility.js +17 -7
  19. package/dist/utility.js.map +1 -1
  20. package/package.json +1 -1
  21. package/project/.sdk/model/feature/secrets.aon +1001 -0
  22. package/project/.sdk/model/target/c.aon +15 -2
  23. package/project/.sdk/model/target/clojure.aon +10 -0
  24. package/project/.sdk/model/target/cpp.aon +18 -0
  25. package/project/.sdk/model/target/csharp.aon +5 -0
  26. package/project/.sdk/model/target/elixir.aon +6 -0
  27. package/project/.sdk/model/target/java.aon +5 -0
  28. package/project/.sdk/model/target/js.aon +5 -0
  29. package/project/.sdk/model/target/kotlin.aon +7 -0
  30. package/project/.sdk/model/target/lua.aon +17 -0
  31. package/project/.sdk/model/target/ocaml.aon +48 -5
  32. package/project/.sdk/model/target/perl.aon +5 -0
  33. package/project/.sdk/model/target/php.aon +5 -0
  34. package/project/.sdk/model/target/rb.aon +5 -0
  35. package/project/.sdk/model/target/rust.aon +5 -0
  36. package/project/.sdk/model/target/scala.aon +38 -2
  37. package/project/.sdk/model/target/swift.aon +10 -0
  38. package/project/.sdk/model/target/zig.aon +30 -4
  39. package/project/.sdk/src/cmp/c/Config_c.ts +338 -1
  40. package/project/.sdk/src/cmp/c/Main_c.ts +57 -2
  41. package/project/.sdk/src/cmp/c/Package_c.ts +12 -2
  42. package/project/.sdk/src/cmp/clojure/Config_clojure.ts +51 -4
  43. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +43 -1
  44. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +17 -1
  45. package/project/.sdk/src/cmp/clojure/featureextra_clojure.ts +130 -0
  46. package/project/.sdk/src/cmp/cpp/Config_cpp.ts +324 -2
  47. package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +2 -0
  48. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +62 -4
  49. package/project/.sdk/src/cmp/cpp/Package_cpp.ts +10 -0
  50. package/project/.sdk/src/cmp/csharp/Config_csharp.ts +70 -0
  51. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +9 -1
  52. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +25 -1
  53. package/project/.sdk/src/cmp/elixir/Config_elixir.ts +68 -2
  54. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +16 -0
  55. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +14 -1
  56. package/project/.sdk/src/cmp/java/Config_java.ts +84 -2
  57. package/project/.sdk/src/cmp/java/Main_java.ts +10 -1
  58. package/project/.sdk/src/cmp/js/Config_js.ts +75 -8
  59. package/project/.sdk/src/cmp/js/Main_js.ts +66 -2
  60. package/project/.sdk/src/cmp/js/fragment/Config.data.fragment.js +18 -1
  61. package/project/.sdk/src/cmp/js/fragment/Config.fragment.js +18 -1
  62. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +7 -0
  63. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +63 -1
  64. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +32 -2
  65. package/project/.sdk/src/cmp/lua/Config_lua.ts +88 -0
  66. package/project/.sdk/src/cmp/lua/Gitignore_lua.ts +4 -0
  67. package/project/.sdk/src/cmp/lua/Main_lua.ts +93 -3
  68. package/project/.sdk/src/cmp/lua/Package_lua.ts +60 -0
  69. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +10 -0
  70. package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +183 -5
  71. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +160 -3
  72. package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +25 -1
  73. package/project/.sdk/src/cmp/perl/Config_perl.ts +129 -3
  74. package/project/.sdk/src/cmp/perl/Main_perl.ts +41 -1
  75. package/project/.sdk/src/cmp/perl/Package_perl.ts +13 -1
  76. package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +1 -0
  77. package/project/.sdk/src/cmp/php/Config_php.ts +105 -1
  78. package/project/.sdk/src/cmp/php/Gitignore_php.ts +4 -2
  79. package/project/.sdk/src/cmp/php/Main_php.ts +16 -1
  80. package/project/.sdk/src/cmp/rb/Config_rb.ts +92 -2
  81. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +11 -1
  82. package/project/.sdk/src/cmp/rb/Main_rb.ts +7 -1
  83. package/project/.sdk/src/cmp/rust/Main_rust.ts +99 -1
  84. package/project/.sdk/src/cmp/rust/Package_rust.ts +72 -6
  85. package/project/.sdk/src/cmp/scala/Config_scala.ts +44 -0
  86. package/project/.sdk/src/cmp/scala/Main_scala.ts +68 -1
  87. package/project/.sdk/src/cmp/swift/Config_swift.ts +62 -1
  88. package/project/.sdk/src/cmp/swift/Main_swift.ts +35 -1
  89. package/project/.sdk/src/cmp/swift/Package_swift.ts +81 -11
  90. package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +58 -44
  91. package/project/.sdk/src/cmp/swift/utility_swift.ts +22 -0
  92. package/project/.sdk/src/cmp/zig/Config_zig.ts +130 -9
  93. package/project/.sdk/src/cmp/zig/Main_zig.ts +208 -4
  94. package/project/.sdk/{tm/zig/build.zig → src/cmp/zig/fragment/Build.fragment.zig} +7 -0
  95. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +25 -0
  96. package/project/.sdk/{tm/zig/root.zig → src/cmp/zig/fragment/Root.fragment.zig} +9 -0
  97. package/project/.sdk/tm/c/Makefile +58 -9
  98. package/project/.sdk/tm/c/core/sdk.h +10 -0
  99. package/project/.sdk/tm/c/feature/secrets/plugin/capability.c +133 -0
  100. package/project/.sdk/tm/c/feature/secrets/plugin/capability.h +39 -0
  101. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.c +83 -0
  102. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.h +48 -0
  103. package/project/.sdk/tm/c/feature/secrets/plugin/config.c +413 -0
  104. package/project/.sdk/tm/c/feature/secrets/plugin/config.h +24 -0
  105. package/project/.sdk/tm/c/feature/secrets/plugin/depend.c +264 -0
  106. package/project/.sdk/tm/c/feature/secrets/plugin/depend.h +29 -0
  107. package/project/.sdk/tm/c/feature/secrets/plugin/env.c +220 -0
  108. package/project/.sdk/tm/c/feature/secrets/plugin/env.h +19 -0
  109. package/project/.sdk/tm/c/feature/secrets/plugin/export.c +97 -0
  110. package/project/.sdk/tm/c/feature/secrets/plugin/export.h +19 -0
  111. package/project/.sdk/tm/c/feature/secrets/plugin/graph.c +237 -0
  112. package/project/.sdk/tm/c/feature/secrets/plugin/graph.h +17 -0
  113. package/project/.sdk/tm/c/feature/secrets/plugin/host.c +1494 -0
  114. package/project/.sdk/tm/c/feature/secrets/plugin/host.h +135 -0
  115. package/project/.sdk/tm/c/feature/secrets/plugin/order.c +288 -0
  116. package/project/.sdk/tm/c/feature/secrets/plugin/order.h +18 -0
  117. package/project/.sdk/tm/c/feature/secrets/plugin/point.c +141 -0
  118. package/project/.sdk/tm/c/feature/secrets/plugin/point.h +80 -0
  119. package/project/.sdk/tm/c/feature/secrets/plugin/ref.c +170 -0
  120. package/project/.sdk/tm/c/feature/secrets/plugin/ref.h +52 -0
  121. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.c +98 -0
  122. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.h +18 -0
  123. package/project/.sdk/tm/c/feature/secrets/plugin/types.c +150 -0
  124. package/project/.sdk/tm/c/feature/secrets/plugin/types.h +104 -0
  125. package/project/.sdk/tm/c/feature/secrets/plugin/value.c +649 -0
  126. package/project/.sdk/tm/c/feature/secrets/plugin/value.h +135 -0
  127. package/project/.sdk/tm/c/feature/secrets/plugin/version.c +151 -0
  128. package/project/.sdk/tm/c/feature/secrets/plugin/version.h +34 -0
  129. package/project/.sdk/tm/c/feature/secrets/plugins/aws.c +281 -0
  130. package/project/.sdk/tm/c/feature/secrets/plugins/azuresecrets.c +207 -0
  131. package/project/.sdk/tm/c/feature/secrets/plugins/boru.c +164 -0
  132. package/project/.sdk/tm/c/feature/secrets/plugins/clock.c +75 -0
  133. package/project/.sdk/tm/c/feature/secrets/plugins/doppler.c +141 -0
  134. package/project/.sdk/tm/c/feature/secrets/plugins/encode.c +144 -0
  135. package/project/.sdk/tm/c/feature/secrets/plugins/gcpsecrets.c +177 -0
  136. package/project/.sdk/tm/c/feature/secrets/plugins/hashicorp.c +239 -0
  137. package/project/.sdk/tm/c/feature/secrets/plugins/httpjson.c +599 -0
  138. package/project/.sdk/tm/c/feature/secrets/plugins/infisical.c +165 -0
  139. package/project/.sdk/tm/c/feature/secrets/plugins/onepassword.c +194 -0
  140. package/project/.sdk/tm/c/feature/secrets/plugins/proc.c +233 -0
  141. package/project/.sdk/tm/c/feature/secrets/plugins/secretspec.c +125 -0
  142. package/project/.sdk/tm/c/feature/secrets/plugins/sekretoplugins.h +125 -0
  143. package/project/.sdk/tm/c/feature/secrets/plugins/sha256.c +270 -0
  144. package/project/.sdk/tm/c/feature/secrets/plugins/sigv4.c +382 -0
  145. package/project/.sdk/tm/c/feature/secrets/plugins/support.h +153 -0
  146. package/project/.sdk/tm/c/feature/secrets/plugins/tls.c +420 -0
  147. package/project/.sdk/tm/c/feature/secrets/sekreto/internal.h +86 -0
  148. package/project/.sdk/tm/c/feature/secrets/sekreto/json.c +721 -0
  149. package/project/.sdk/tm/c/feature/secrets/sekreto/providers.c +813 -0
  150. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.c +944 -0
  151. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.h +490 -0
  152. package/project/.sdk/tm/c/feature/secrets/sekreto/util.c +442 -0
  153. package/project/.sdk/tm/c/feature/secrets.c +797 -0
  154. package/project/.sdk/tm/c/feature/secrets.h +46 -0
  155. package/project/.sdk/tm/c/tests/feature/secrets/secrets_test.c +802 -0
  156. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  157. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  158. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  159. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  160. package/project/.sdk/tm/clojure/Makefile +3 -0
  161. package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +530 -0
  162. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +84 -0
  163. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +44 -0
  164. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +240 -0
  165. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +199 -0
  166. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +111 -0
  167. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +46 -0
  168. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +122 -0
  169. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +1018 -0
  170. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +106 -0
  171. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +157 -0
  172. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +77 -0
  173. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +92 -0
  174. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +46 -0
  175. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +177 -0
  176. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +90 -0
  177. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +40 -0
  178. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +111 -0
  179. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +297 -0
  180. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +192 -0
  181. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +261 -0
  182. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +165 -0
  183. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +111 -0
  184. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +107 -0
  185. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +61 -0
  186. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +88 -0
  187. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +115 -0
  188. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +214 -0
  189. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +80 -0
  190. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +93 -0
  191. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +63 -0
  192. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +99 -0
  193. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +142 -0
  194. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +25 -0
  195. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +196 -0
  196. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +113 -0
  197. package/project/.sdk/tm/clojure/src/sdk/core.clj +9 -0
  198. package/project/.sdk/tm/clojure/src/sdk/features.clj +13 -1
  199. package/project/.sdk/tm/clojure/test/sdk/test/feature/secrets.clj +581 -0
  200. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +103 -14
  201. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  202. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  203. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  204. package/project/.sdk/tm/cpp/Makefile +48 -4
  205. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.cpp +121 -0
  206. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.hpp +41 -0
  207. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.cpp +60 -0
  208. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.hpp +66 -0
  209. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.cpp +376 -0
  210. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.hpp +29 -0
  211. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.cpp +230 -0
  212. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.hpp +31 -0
  213. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.cpp +205 -0
  214. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.hpp +25 -0
  215. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.cpp +84 -0
  216. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.hpp +24 -0
  217. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.cpp +222 -0
  218. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.hpp +21 -0
  219. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.cpp +1200 -0
  220. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.hpp +250 -0
  221. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.cpp +250 -0
  222. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.hpp +22 -0
  223. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.cpp +110 -0
  224. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.hpp +79 -0
  225. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.cpp +136 -0
  226. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.hpp +60 -0
  227. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.cpp +82 -0
  228. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.hpp +25 -0
  229. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.cpp +90 -0
  230. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.hpp +65 -0
  231. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.cpp +491 -0
  232. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.hpp +120 -0
  233. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.cpp +143 -0
  234. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.hpp +36 -0
  235. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.cpp +248 -0
  236. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.hpp +30 -0
  237. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.cpp +149 -0
  238. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.hpp +23 -0
  239. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.cpp +117 -0
  240. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.hpp +27 -0
  241. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.cpp +180 -0
  242. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.hpp +52 -0
  243. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.cpp +87 -0
  244. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.hpp +23 -0
  245. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.cpp +121 -0
  246. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.hpp +23 -0
  247. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.cpp +153 -0
  248. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.hpp +23 -0
  249. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.cpp +666 -0
  250. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.hpp +160 -0
  251. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.cpp +123 -0
  252. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.hpp +23 -0
  253. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.cpp +125 -0
  254. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.hpp +23 -0
  255. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.cpp +223 -0
  256. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.hpp +47 -0
  257. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.cpp +104 -0
  258. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.hpp +27 -0
  259. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.cpp +242 -0
  260. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.hpp +58 -0
  261. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.cpp +260 -0
  262. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.hpp +47 -0
  263. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.cpp +476 -0
  264. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.hpp +89 -0
  265. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.cpp +312 -0
  266. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.hpp +263 -0
  267. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.cpp +354 -0
  268. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.hpp +111 -0
  269. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.cpp +613 -0
  270. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.hpp +227 -0
  271. package/project/.sdk/tm/cpp/feature/secrets.hpp +745 -0
  272. package/project/.sdk/tm/cpp/test/feature/secrets/secrets_test.cpp +808 -0
  273. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  274. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  275. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  276. package/project/.sdk/tm/csharp/feature/SecretsFeature.cs +915 -0
  277. package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +196 -0
  278. package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +70 -0
  279. package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +505 -0
  280. package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +52 -0
  281. package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +285 -0
  282. package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +55 -0
  283. package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +228 -0
  284. package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +102 -0
  285. package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +256 -0
  286. package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +1379 -0
  287. package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +177 -0
  288. package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +326 -0
  289. package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +295 -0
  290. package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +113 -0
  291. package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +177 -0
  292. package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +198 -0
  293. package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +95 -0
  294. package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +351 -0
  295. package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +196 -0
  296. package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +325 -0
  297. package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +195 -0
  298. package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +192 -0
  299. package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +75 -0
  300. package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +112 -0
  301. package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +167 -0
  302. package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +221 -0
  303. package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +213 -0
  304. package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +155 -0
  305. package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +169 -0
  306. package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +172 -0
  307. package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +240 -0
  308. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +192 -0
  309. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +503 -0
  310. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +775 -0
  311. package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +1787 -0
  312. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  313. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  314. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +10 -0
  315. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
  316. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +118 -0
  317. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +56 -0
  318. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +320 -0
  319. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +205 -0
  320. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +166 -0
  321. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +13 -0
  322. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +73 -0
  323. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +185 -0
  324. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +1182 -0
  325. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +139 -0
  326. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +132 -0
  327. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +179 -0
  328. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +99 -0
  329. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +129 -0
  330. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +59 -0
  331. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +190 -0
  332. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +136 -0
  333. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +42 -0
  334. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +368 -0
  335. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +257 -0
  336. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +160 -0
  337. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +127 -0
  338. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +96 -0
  339. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +124 -0
  340. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +162 -0
  341. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +627 -0
  342. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +134 -0
  343. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +125 -0
  344. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +152 -0
  345. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +80 -0
  346. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +101 -0
  347. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +176 -0
  348. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +67 -0
  349. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +536 -0
  350. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +662 -0
  351. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets.ex +839 -0
  352. package/project/.sdk/tm/elixir/test/feature/secrets/secrets_test.exs +1113 -0
  353. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  354. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  355. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  356. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  357. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  358. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  359. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  360. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  361. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
  362. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  363. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
  364. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  365. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  366. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  367. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  368. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  369. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  370. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  371. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +2 -2
  372. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  373. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  374. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  375. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  376. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  377. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +2 -2
  378. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +2 -2
  379. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +2 -2
  380. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  381. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  382. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  383. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +2 -2
  384. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +2 -2
  385. package/project/.sdk/tm/go/feature/secrets_feature.go +48 -10
  386. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +239 -0
  387. package/project/.sdk/tm/go/test/omni/omni.go +2 -2
  388. package/project/.sdk/tm/go/test/omni/util.go +2 -2
  389. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
  390. package/project/.sdk/tm/java/feature/SecretsFeature.java +791 -0
  391. package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +181 -0
  392. package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +64 -0
  393. package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +433 -0
  394. package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +54 -0
  395. package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +292 -0
  396. package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +49 -0
  397. package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +204 -0
  398. package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +93 -0
  399. package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +244 -0
  400. package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +1196 -0
  401. package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +173 -0
  402. package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +339 -0
  403. package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +274 -0
  404. package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +94 -0
  405. package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +37 -0
  406. package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +172 -0
  407. package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +171 -0
  408. package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +89 -0
  409. package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +232 -0
  410. package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +198 -0
  411. package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +142 -0
  412. package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +229 -0
  413. package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +302 -0
  414. package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +21 -0
  415. package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +698 -0
  416. package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +100 -0
  417. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +294 -0
  418. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +164 -0
  419. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +161 -0
  420. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +103 -0
  421. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +143 -0
  422. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +186 -0
  423. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +192 -0
  424. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +139 -0
  425. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +143 -0
  426. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +80 -0
  427. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +138 -0
  428. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +243 -0
  429. package/project/.sdk/tm/java/test/feature/secrets/SecretsFeatureTest.java +1050 -0
  430. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  431. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  432. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  433. package/project/.sdk/tm/java/utility/MakeOptions.java +7 -0
  434. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  435. package/project/.sdk/tm/js/src/feature/secrets/SecretsFeature.js +454 -0
  436. package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +119 -0
  437. package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +42 -0
  438. package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +323 -0
  439. package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +196 -0
  440. package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +120 -0
  441. package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +48 -0
  442. package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +150 -0
  443. package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +949 -0
  444. package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +35 -0
  445. package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +165 -0
  446. package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +94 -0
  447. package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +106 -0
  448. package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +59 -0
  449. package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +79 -0
  450. package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +100 -0
  451. package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +574 -0
  452. package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +56 -0
  453. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +188 -0
  454. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +135 -0
  455. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +128 -0
  456. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +67 -0
  457. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +115 -0
  458. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +139 -0
  459. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +93 -0
  460. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +99 -0
  461. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +111 -0
  462. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +105 -0
  463. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +157 -0
  464. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +119 -0
  465. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +39 -0
  466. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +40 -0
  467. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +21 -0
  468. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +42 -0
  469. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +18 -0
  470. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +151 -0
  471. package/project/.sdk/tm/js/src/utility/StructUtility.js +1 -1
  472. package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +1019 -0
  473. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  474. package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
  475. package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
  476. package/project/.sdk/tm/kotlin/feature/SecretsFeature.kt +684 -0
  477. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +117 -0
  478. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +40 -0
  479. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +322 -0
  480. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +227 -0
  481. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +163 -0
  482. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +57 -0
  483. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +179 -0
  484. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +1131 -0
  485. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +241 -0
  486. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +180 -0
  487. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +64 -0
  488. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +124 -0
  489. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +125 -0
  490. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +66 -0
  491. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +171 -0
  492. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +132 -0
  493. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +359 -0
  494. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +21 -0
  495. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +308 -0
  496. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +525 -0
  497. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +126 -0
  498. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +205 -0
  499. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +251 -0
  500. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +145 -0
  501. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +130 -0
  502. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +77 -0
  503. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +119 -0
  504. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +156 -0
  505. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +219 -0
  506. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +114 -0
  507. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +114 -0
  508. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +118 -0
  509. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +220 -0
  510. package/project/.sdk/tm/kotlin/test/feature/secrets/SecretsTest.kt +1217 -0
  511. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  512. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  513. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  514. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  515. package/project/.sdk/tm/lua/Makefile +15 -4
  516. package/project/.sdk/tm/lua/feature/secrets/native/sekretonet.c +806 -0
  517. package/project/.sdk/tm/lua/feature/secrets/plugin/capability.lua +135 -0
  518. package/project/.sdk/tm/lua/feature/secrets/plugin/catalog.lua +63 -0
  519. package/project/.sdk/tm/lua/feature/secrets/plugin/config.lua +361 -0
  520. package/project/.sdk/tm/lua/feature/secrets/plugin/depend.lua +232 -0
  521. package/project/.sdk/tm/lua/feature/secrets/plugin/env.lua +168 -0
  522. package/project/.sdk/tm/lua/feature/secrets/plugin/export.lua +66 -0
  523. package/project/.sdk/tm/lua/feature/secrets/plugin/graph.lua +194 -0
  524. package/project/.sdk/tm/lua/feature/secrets/plugin/host.lua +1190 -0
  525. package/project/.sdk/tm/lua/feature/secrets/plugin/json.lua +169 -0
  526. package/project/.sdk/tm/lua/feature/secrets/plugin/order.lua +207 -0
  527. package/project/.sdk/tm/lua/feature/secrets/plugin/point.lua +106 -0
  528. package/project/.sdk/tm/lua/feature/secrets/plugin/ref.lua +115 -0
  529. package/project/.sdk/tm/lua/feature/secrets/plugin/resolve.lua +78 -0
  530. package/project/.sdk/tm/lua/feature/secrets/plugin/types.lua +275 -0
  531. package/project/.sdk/tm/lua/feature/secrets/plugin/version.lua +131 -0
  532. package/project/.sdk/tm/lua/feature/secrets/plugin.lua +76 -0
  533. package/project/.sdk/tm/lua/feature/secrets/sekreto/addr.lua +124 -0
  534. package/project/.sdk/tm/lua/feature/secrets/sekreto/err.lua +47 -0
  535. package/project/.sdk/tm/lua/feature/secrets/sekreto/name.lua +315 -0
  536. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/aws.lua +228 -0
  537. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/azuresecrets.lua +137 -0
  538. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/boru.lua +124 -0
  539. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/crypto.lua +212 -0
  540. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/doppler.lua +89 -0
  541. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/gcpsecrets.lua +129 -0
  542. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/hashicorp.lua +154 -0
  543. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/httpjson.lua +248 -0
  544. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/infisical.lua +113 -0
  545. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/json.lua +449 -0
  546. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/net.lua +198 -0
  547. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/onepassword.lua +126 -0
  548. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/secretspec.lua +93 -0
  549. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/sigv4.lua +269 -0
  550. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/support.lua +146 -0
  551. package/project/.sdk/tm/lua/feature/secrets/sekreto/providers.lua +346 -0
  552. package/project/.sdk/tm/lua/feature/secrets/sekreto.lua +479 -0
  553. package/project/.sdk/tm/lua/feature/secrets_feature.lua +690 -0
  554. package/project/.sdk/tm/lua/test/extend_test.lua +105 -0
  555. package/project/.sdk/tm/lua/test/feature/secrets/secrets_feature_test.lua +862 -0
  556. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  557. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  558. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  559. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  560. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  561. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  562. package/project/.sdk/tm/ocaml/Makefile +52 -8
  563. package/project/.sdk/tm/ocaml/feature/secrets/plugin/capability.ml +106 -0
  564. package/project/.sdk/tm/ocaml/feature/secrets/plugin/catalog.ml +43 -0
  565. package/project/.sdk/tm/ocaml/feature/secrets/plugin/config.ml +349 -0
  566. package/project/.sdk/tm/ocaml/feature/secrets/plugin/defs.ml +143 -0
  567. package/project/.sdk/tm/ocaml/feature/secrets/plugin/depend.ml +217 -0
  568. package/project/.sdk/tm/ocaml/feature/secrets/plugin/env.ml +197 -0
  569. package/project/.sdk/tm/ocaml/feature/secrets/plugin/export.ml +89 -0
  570. package/project/.sdk/tm/ocaml/feature/secrets/plugin/graph.ml +227 -0
  571. package/project/.sdk/tm/ocaml/feature/secrets/plugin/host.ml +1112 -0
  572. package/project/.sdk/tm/ocaml/feature/secrets/plugin/order.ml +202 -0
  573. package/project/.sdk/tm/ocaml/feature/secrets/plugin/point.ml +138 -0
  574. package/project/.sdk/tm/ocaml/feature/secrets/plugin/ref.ml +126 -0
  575. package/project/.sdk/tm/ocaml/feature/secrets/plugin/resolve.ml +62 -0
  576. package/project/.sdk/tm/ocaml/feature/secrets/plugin/types.ml +97 -0
  577. package/project/.sdk/tm/ocaml/feature/secrets/plugin/value.ml +387 -0
  578. package/project/.sdk/tm/ocaml/feature/secrets/plugin/version.ml +139 -0
  579. package/project/.sdk/tm/ocaml/feature/secrets/plugins/aws.ml +171 -0
  580. package/project/.sdk/tm/ocaml/feature/secrets/plugins/azuresecrets.ml +116 -0
  581. package/project/.sdk/tm/ocaml/feature/secrets/plugins/boru.ml +95 -0
  582. package/project/.sdk/tm/ocaml/feature/secrets/plugins/crypto.ml +149 -0
  583. package/project/.sdk/tm/ocaml/feature/secrets/plugins/doppler.ml +61 -0
  584. package/project/.sdk/tm/ocaml/feature/secrets/plugins/gcpsecrets.ml +93 -0
  585. package/project/.sdk/tm/ocaml/feature/secrets/plugins/hashicorp.ml +120 -0
  586. package/project/.sdk/tm/ocaml/feature/secrets/plugins/http.ml +421 -0
  587. package/project/.sdk/tm/ocaml/feature/secrets/plugins/httpjson.ml +66 -0
  588. package/project/.sdk/tm/ocaml/feature/secrets/plugins/infisical.ml +85 -0
  589. package/project/.sdk/tm/ocaml/feature/secrets/plugins/onepassword.ml +112 -0
  590. package/project/.sdk/tm/ocaml/feature/secrets/plugins/runcmd.ml +97 -0
  591. package/project/.sdk/tm/ocaml/feature/secrets/plugins/secretspec.ml +68 -0
  592. package/project/.sdk/tm/ocaml/feature/secrets/plugins/sigv4.ml +259 -0
  593. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls.ml +44 -0
  594. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls_stubs.c +358 -0
  595. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/json.ml +376 -0
  596. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/provider.ml +647 -0
  597. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/secret.ml +299 -0
  598. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/sekreto.ml +347 -0
  599. package/project/.sdk/tm/ocaml/feature/secrets_feature.ml +453 -0
  600. package/project/.sdk/tm/ocaml/test/feature/secrets/t_secrets.ml +670 -0
  601. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  602. package/project/.sdk/tm/perl/Makefile +6 -1
  603. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +141 -0
  604. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +65 -0
  605. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +346 -0
  606. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +216 -0
  607. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +176 -0
  608. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +59 -0
  609. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +157 -0
  610. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +1139 -0
  611. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +187 -0
  612. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +100 -0
  613. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +119 -0
  614. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +71 -0
  615. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +251 -0
  616. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +122 -0
  617. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +70 -0
  618. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +263 -0
  619. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +159 -0
  620. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +180 -0
  621. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +92 -0
  622. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +138 -0
  623. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +213 -0
  624. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +173 -0
  625. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +132 -0
  626. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +132 -0
  627. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +102 -0
  628. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +132 -0
  629. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +190 -0
  630. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +124 -0
  631. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +301 -0
  632. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +605 -0
  633. package/project/.sdk/tm/perl/feature/secrets_feature.pm +696 -0
  634. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  635. package/project/.sdk/tm/perl/t/feature/secrets/secrets.t +1004 -0
  636. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  637. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  638. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  639. package/project/.sdk/tm/php/feature/SecretsFeature.php +694 -0
  640. package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +226 -0
  641. package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +75 -0
  642. package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +444 -0
  643. package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +262 -0
  644. package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +202 -0
  645. package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +74 -0
  646. package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +195 -0
  647. package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +1514 -0
  648. package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +260 -0
  649. package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +129 -0
  650. package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +169 -0
  651. package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +79 -0
  652. package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +348 -0
  653. package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +163 -0
  654. package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +40 -0
  655. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +274 -0
  656. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +170 -0
  657. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +163 -0
  658. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +106 -0
  659. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +144 -0
  660. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +194 -0
  661. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +113 -0
  662. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +131 -0
  663. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +150 -0
  664. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +101 -0
  665. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +146 -0
  666. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +161 -0
  667. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +129 -0
  668. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +322 -0
  669. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +724 -0
  670. package/project/.sdk/tm/php/test/feature/secrets/SecretsTest.php +1165 -0
  671. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  672. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  673. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  674. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  675. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  676. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  677. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  678. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  679. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
  680. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  681. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
  682. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  683. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  684. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  685. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  686. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  687. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  688. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +2 -2
  689. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  690. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
  691. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  692. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  693. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  694. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  695. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
  696. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  697. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
  698. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  699. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  700. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  701. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
  702. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
  703. package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +28 -6
  704. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  705. package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +114 -0
  706. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  707. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
  708. package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
  709. package/project/.sdk/tm/rb/Makefile +7 -1
  710. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +118 -0
  711. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +55 -0
  712. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +315 -0
  713. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +197 -0
  714. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +143 -0
  715. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +52 -0
  716. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +147 -0
  717. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +1079 -0
  718. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +169 -0
  719. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +93 -0
  720. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +112 -0
  721. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +56 -0
  722. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +99 -0
  723. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +106 -0
  724. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +24 -0
  725. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +111 -0
  726. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +200 -0
  727. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +130 -0
  728. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +121 -0
  729. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +66 -0
  730. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +107 -0
  731. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +137 -0
  732. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +136 -0
  733. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +97 -0
  734. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +104 -0
  735. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +113 -0
  736. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +127 -0
  737. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +210 -0
  738. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +465 -0
  739. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +30 -0
  740. package/project/.sdk/tm/rb/feature/secrets_feature.rb +583 -0
  741. package/project/.sdk/tm/rb/test/feature/secrets/secrets_feature_test.rb +935 -0
  742. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  743. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  744. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  745. package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +130 -0
  746. package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +114 -0
  747. package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +416 -0
  748. package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +245 -0
  749. package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +200 -0
  750. package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +90 -0
  751. package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +231 -0
  752. package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +1565 -0
  753. package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +18 -0
  754. package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +226 -0
  755. package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +137 -0
  756. package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +148 -0
  757. package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +83 -0
  758. package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +132 -0
  759. package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +433 -0
  760. package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +174 -0
  761. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +146 -0
  762. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +230 -0
  763. package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +328 -0
  764. package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +184 -0
  765. package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +172 -0
  766. package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +102 -0
  767. package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +153 -0
  768. package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +228 -0
  769. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +537 -0
  770. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +300 -0
  771. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +137 -0
  772. package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +148 -0
  773. package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +165 -0
  774. package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +150 -0
  775. package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +144 -0
  776. package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +51 -0
  777. package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +637 -0
  778. package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +677 -0
  779. package/project/.sdk/tm/rust/feature/secrets.rs +984 -0
  780. package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +1605 -0
  781. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  782. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  783. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  784. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  785. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  786. package/project/.sdk/tm/scala/Makefile +8 -3
  787. package/project/.sdk/tm/scala/feature/SecretsFeature.scala +578 -0
  788. package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +96 -0
  789. package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +270 -0
  790. package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +216 -0
  791. package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +144 -0
  792. package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +59 -0
  793. package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +149 -0
  794. package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +1089 -0
  795. package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +156 -0
  796. package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +169 -0
  797. package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +47 -0
  798. package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +107 -0
  799. package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +131 -0
  800. package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +53 -0
  801. package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +110 -0
  802. package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +157 -0
  803. package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +136 -0
  804. package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +302 -0
  805. package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +20 -0
  806. package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +281 -0
  807. package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +473 -0
  808. package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +123 -0
  809. package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +216 -0
  810. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +225 -0
  811. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +124 -0
  812. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +104 -0
  813. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +68 -0
  814. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +97 -0
  815. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +131 -0
  816. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +209 -0
  817. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +98 -0
  818. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +90 -0
  819. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +95 -0
  820. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +214 -0
  821. package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +1042 -0
  822. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  823. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  824. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  825. package/project/.sdk/tm/scala/utility/Make.scala +7 -0
  826. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/SecretsFeature.swift +669 -0
  827. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +98 -0
  828. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +87 -0
  829. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +298 -0
  830. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +209 -0
  831. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +191 -0
  832. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +63 -0
  833. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +158 -0
  834. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +1141 -0
  835. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +192 -0
  836. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +183 -0
  837. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +130 -0
  838. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +141 -0
  839. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +59 -0
  840. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +125 -0
  841. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +198 -0
  842. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +139 -0
  843. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +271 -0
  844. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +173 -0
  845. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +139 -0
  846. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +198 -0
  847. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +86 -0
  848. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +129 -0
  849. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +175 -0
  850. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +310 -0
  851. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +140 -0
  852. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +118 -0
  853. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +105 -0
  854. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +111 -0
  855. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +297 -0
  856. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +120 -0
  857. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +452 -0
  858. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +25 -0
  859. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +689 -0
  860. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +755 -0
  861. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +9 -0
  862. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +30 -0
  863. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/feature/secrets/SecretsFeatureTest.swift +1030 -0
  864. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  865. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  866. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  867. package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +35 -12
  868. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  869. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  870. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  871. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  872. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  873. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
  874. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  875. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  876. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
  877. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  878. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  879. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  880. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  881. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  882. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  883. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  884. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  885. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  886. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  887. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  888. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  889. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  890. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  891. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  892. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  893. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  894. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  895. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  896. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  897. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  898. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
  899. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  900. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  901. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  902. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  903. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
  904. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1 -1
  905. package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +73 -0
  906. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  907. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  908. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  909. package/project/.sdk/tm/zig/feature/secrets/plugin/capability.zig +137 -0
  910. package/project/.sdk/tm/zig/feature/secrets/plugin/catalog.zig +90 -0
  911. package/project/.sdk/tm/zig/feature/secrets/plugin/config.zig +346 -0
  912. package/project/.sdk/tm/zig/feature/secrets/plugin/depend.zig +244 -0
  913. package/project/.sdk/tm/zig/feature/secrets/plugin/env.zig +201 -0
  914. package/project/.sdk/tm/zig/feature/secrets/plugin/export.zig +83 -0
  915. package/project/.sdk/tm/zig/feature/secrets/plugin/graph.zig +212 -0
  916. package/project/.sdk/tm/zig/feature/secrets/plugin/host.zig +1224 -0
  917. package/project/.sdk/tm/zig/feature/secrets/plugin/inst.zig +126 -0
  918. package/project/.sdk/tm/zig/feature/secrets/plugin/order.zig +228 -0
  919. package/project/.sdk/tm/zig/feature/secrets/plugin/plugin.zig +34 -0
  920. package/project/.sdk/tm/zig/feature/secrets/plugin/point.zig +166 -0
  921. package/project/.sdk/tm/zig/feature/secrets/plugin/ref.zig +147 -0
  922. package/project/.sdk/tm/zig/feature/secrets/plugin/resolve.zig +74 -0
  923. package/project/.sdk/tm/zig/feature/secrets/plugin/types.zig +140 -0
  924. package/project/.sdk/tm/zig/feature/secrets/plugin/value.zig +662 -0
  925. package/project/.sdk/tm/zig/feature/secrets/plugin/version.zig +139 -0
  926. package/project/.sdk/tm/zig/feature/secrets/plugins/aws.zig +294 -0
  927. package/project/.sdk/tm/zig/feature/secrets/plugins/azuresecrets.zig +222 -0
  928. package/project/.sdk/tm/zig/feature/secrets/plugins/boru.zig +188 -0
  929. package/project/.sdk/tm/zig/feature/secrets/plugins/doppler.zig +135 -0
  930. package/project/.sdk/tm/zig/feature/secrets/plugins/gcpsecrets.zig +170 -0
  931. package/project/.sdk/tm/zig/feature/secrets/plugins/hashicorp.zig +242 -0
  932. package/project/.sdk/tm/zig/feature/secrets/plugins/httpjson.zig +535 -0
  933. package/project/.sdk/tm/zig/feature/secrets/plugins/infisical.zig +167 -0
  934. package/project/.sdk/tm/zig/feature/secrets/plugins/onepassword.zig +202 -0
  935. package/project/.sdk/tm/zig/feature/secrets/plugins/secretspec.zig +160 -0
  936. package/project/.sdk/tm/zig/feature/secrets/plugins/sigv4.zig +336 -0
  937. package/project/.sdk/tm/zig/feature/secrets/sekreto/addr.zig +148 -0
  938. package/project/.sdk/tm/zig/feature/secrets/sekreto/builtins.zig +259 -0
  939. package/project/.sdk/tm/zig/feature/secrets/sekreto/provider.zig +440 -0
  940. package/project/.sdk/tm/zig/feature/secrets/sekreto/sekreto.zig +944 -0
  941. package/project/.sdk/tm/zig/feature/secrets.zig +854 -0
  942. package/project/.sdk/tm/zig/test/feature/secrets/secrets_test.zig +891 -0
  943. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +2 -2
  944. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +2 -2
  945. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +2 -2
  946. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +2 -2
  947. package/project/sdkgen-package.json +1 -4
  948. package/src/helpers/manifest.ts +81 -1
  949. package/src/helpers/modelNames.ts +284 -0
  950. package/src/helpers/naming.ts +45 -1
  951. package/src/sdkgen.ts +11 -1
  952. package/src/testkit.ts +115 -26
  953. package/src/utility.ts +17 -7
  954. package/project/.sdk/model/target/dart.aon +0 -58
  955. package/project/.sdk/model/target/lean.aon +0 -91
  956. package/project/.sdk/model/target/seneca-provider.aon +0 -120
  957. package/project/.sdk/src/cmp/dart/Config_dart.ts +0 -176
  958. package/project/.sdk/src/cmp/dart/EntityBase_dart.ts +0 -34
  959. package/project/.sdk/src/cmp/dart/EntityOperation_dart.ts +0 -43
  960. package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +0 -207
  961. package/project/.sdk/src/cmp/dart/Entity_dart.ts +0 -87
  962. package/project/.sdk/src/cmp/dart/Gitignore_dart.ts +0 -34
  963. package/project/.sdk/src/cmp/dart/MainEntity_dart.ts +0 -33
  964. package/project/.sdk/src/cmp/dart/Main_dart.ts +0 -106
  965. package/project/.sdk/src/cmp/dart/Package_dart.ts +0 -82
  966. package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +0 -177
  967. package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +0 -238
  968. package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +0 -53
  969. package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +0 -152
  970. package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +0 -59
  971. package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +0 -65
  972. package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +0 -151
  973. package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +0 -63
  974. package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +0 -225
  975. package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +0 -397
  976. package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +0 -24
  977. package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +0 -106
  978. package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +0 -78
  979. package/project/.sdk/src/cmp/dart/SdkError_dart.ts +0 -42
  980. package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +0 -516
  981. package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +0 -628
  982. package/project/.sdk/src/cmp/dart/Test_dart.ts +0 -116
  983. package/project/.sdk/src/cmp/dart/fragment/Config.data.fragment.dart +0 -79
  984. package/project/.sdk/src/cmp/dart/fragment/Config.fragment.dart +0 -51
  985. package/project/.sdk/src/cmp/dart/fragment/Direct.test.fragment.dart +0 -25
  986. package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +0 -29
  987. package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +0 -28
  988. package/project/.sdk/src/cmp/dart/fragment/EntityBase.fragment.dart +0 -302
  989. package/project/.sdk/src/cmp/dart/fragment/EntityCreateOp.fragment.dart +0 -98
  990. package/project/.sdk/src/cmp/dart/fragment/EntityListOp.fragment.dart +0 -90
  991. package/project/.sdk/src/cmp/dart/fragment/EntityLoadOp.fragment.dart +0 -102
  992. package/project/.sdk/src/cmp/dart/fragment/EntityRemoveOp.fragment.dart +0 -108
  993. package/project/.sdk/src/cmp/dart/fragment/EntityUpdateOp.fragment.dart +0 -102
  994. package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +0 -338
  995. package/project/.sdk/src/cmp/dart/fragment/SdkError.fragment.dart +0 -26
  996. package/project/.sdk/src/cmp/dart/tsconfig.json +0 -15
  997. package/project/.sdk/src/cmp/dart/utility_dart.ts +0 -155
  998. package/project/.sdk/src/cmp/lean/Config_lean.ts +0 -93
  999. package/project/.sdk/src/cmp/lean/Entity_lean.ts +0 -9
  1000. package/project/.sdk/src/cmp/lean/Gitignore_lean.ts +0 -18
  1001. package/project/.sdk/src/cmp/lean/Main_lean.ts +0 -120
  1002. package/project/.sdk/src/cmp/lean/Package_lean.ts +0 -93
  1003. package/project/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +0 -29
  1004. package/project/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +0 -19
  1005. package/project/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +0 -25
  1006. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +0 -39
  1007. package/project/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +0 -25
  1008. package/project/.sdk/src/cmp/lean/ReadmeModel_lean.ts +0 -24
  1009. package/project/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +0 -22
  1010. package/project/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +0 -50
  1011. package/project/.sdk/src/cmp/lean/ReadmeRef_lean.ts +0 -40
  1012. package/project/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +0 -16
  1013. package/project/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +0 -23
  1014. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +0 -19
  1015. package/project/.sdk/src/cmp/lean/Test_lean.ts +0 -261
  1016. package/project/.sdk/src/cmp/lean/utility_lean.ts +0 -129
  1017. package/project/.sdk/src/cmp/seneca-provider/Extras_seneca-provider.ts +0 -4080
  1018. package/project/.sdk/src/cmp/seneca-provider/Gitignore_seneca-provider.ts +0 -161
  1019. package/project/.sdk/src/cmp/seneca-provider/Main_seneca-provider.ts +0 -1011
  1020. package/project/.sdk/tm/dart/LICENSE +0 -22
  1021. package/project/.sdk/tm/dart/Makefile +0 -50
  1022. package/project/.sdk/tm/dart/lib/Context.dart +0 -150
  1023. package/project/.sdk/tm/dart/lib/Control.dart +0 -15
  1024. package/project/.sdk/tm/dart/lib/Operation.dart +0 -31
  1025. package/project/.sdk/tm/dart/lib/Point.dart +0 -51
  1026. package/project/.sdk/tm/dart/lib/Response.dart +0 -32
  1027. package/project/.sdk/tm/dart/lib/Result.dart +0 -39
  1028. package/project/.sdk/tm/dart/lib/Spec.dart +0 -49
  1029. package/project/.sdk/tm/dart/lib/feature/audit/AuditFeature.dart +0 -103
  1030. package/project/.sdk/tm/dart/lib/feature/base/BaseFeature.dart +0 -76
  1031. package/project/.sdk/tm/dart/lib/feature/cache/CacheFeature.dart +0 -152
  1032. package/project/.sdk/tm/dart/lib/feature/clienttrack/ClienttrackFeature.dart +0 -104
  1033. package/project/.sdk/tm/dart/lib/feature/cost/CostFeature.dart +0 -446
  1034. package/project/.sdk/tm/dart/lib/feature/debug/DebugFeature.dart +0 -153
  1035. package/project/.sdk/tm/dart/lib/feature/idempotency/IdempotencyFeature.dart +0 -92
  1036. package/project/.sdk/tm/dart/lib/feature/log/LogFeature.dart +0 -85
  1037. package/project/.sdk/tm/dart/lib/feature/metrics/MetricsFeature.dart +0 -103
  1038. package/project/.sdk/tm/dart/lib/feature/netsim/NetsimFeature.dart +0 -186
  1039. package/project/.sdk/tm/dart/lib/feature/paging/PagingFeature.dart +0 -240
  1040. package/project/.sdk/tm/dart/lib/feature/proxy/ProxyFeature.dart +0 -118
  1041. package/project/.sdk/tm/dart/lib/feature/ratelimit/RatelimitFeature.dart +0 -103
  1042. package/project/.sdk/tm/dart/lib/feature/rbac/RbacFeature.dart +0 -121
  1043. package/project/.sdk/tm/dart/lib/feature/retry/RetryFeature.dart +0 -155
  1044. package/project/.sdk/tm/dart/lib/feature/streaming/StreamingFeature.dart +0 -97
  1045. package/project/.sdk/tm/dart/lib/feature/telemetry/TelemetryFeature.dart +0 -136
  1046. package/project/.sdk/tm/dart/lib/feature/test/TestFeature.dart +0 -328
  1047. package/project/.sdk/tm/dart/lib/feature/timeout/TimeoutFeature.dart +0 -104
  1048. package/project/.sdk/tm/dart/lib/utility/CleanUtility.dart +0 -12
  1049. package/project/.sdk/tm/dart/lib/utility/DoneUtility.dart +0 -18
  1050. package/project/.sdk/tm/dart/lib/utility/ErrUtility.dart +0 -46
  1051. package/project/.sdk/tm/dart/lib/utility/FeatureAddUtility.dart +0 -35
  1052. package/project/.sdk/tm/dart/lib/utility/FeatureHookUtility.dart +0 -20
  1053. package/project/.sdk/tm/dart/lib/utility/FeatureInitUtility.dart +0 -9
  1054. package/project/.sdk/tm/dart/lib/utility/FetcherUtility.dart +0 -104
  1055. package/project/.sdk/tm/dart/lib/utility/GraphqlUtility.dart +0 -162
  1056. package/project/.sdk/tm/dart/lib/utility/MakeContextUtility.dart +0 -6
  1057. package/project/.sdk/tm/dart/lib/utility/MakeErrorUtility.dart +0 -71
  1058. package/project/.sdk/tm/dart/lib/utility/MakeFetchDefUtility.dart +0 -42
  1059. package/project/.sdk/tm/dart/lib/utility/MakeOptionsUtility.dart +0 -233
  1060. package/project/.sdk/tm/dart/lib/utility/MakePointUtility.dart +0 -130
  1061. package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +0 -66
  1062. package/project/.sdk/tm/dart/lib/utility/MakeResponseUtility.dart +0 -59
  1063. package/project/.sdk/tm/dart/lib/utility/MakeResultUtility.dart +0 -49
  1064. package/project/.sdk/tm/dart/lib/utility/MakeSpecUtility.dart +0 -77
  1065. package/project/.sdk/tm/dart/lib/utility/MakeUrlUtility.dart +0 -51
  1066. package/project/.sdk/tm/dart/lib/utility/ParamUtility.dart +0 -56
  1067. package/project/.sdk/tm/dart/lib/utility/PrepareAuthUtility.dart +0 -46
  1068. package/project/.sdk/tm/dart/lib/utility/PrepareBodyUtility.dart +0 -19
  1069. package/project/.sdk/tm/dart/lib/utility/PrepareHeadersUtility.dart +0 -11
  1070. package/project/.sdk/tm/dart/lib/utility/PrepareMethodUtility.dart +0 -30
  1071. package/project/.sdk/tm/dart/lib/utility/PrepareParamsUtility.dart +0 -23
  1072. package/project/.sdk/tm/dart/lib/utility/PreparePathUtility.dart +0 -9
  1073. package/project/.sdk/tm/dart/lib/utility/PrepareQueryUtility.dart +0 -18
  1074. package/project/.sdk/tm/dart/lib/utility/ResultBasicUtility.dart +0 -29
  1075. package/project/.sdk/tm/dart/lib/utility/ResultBodyUtility.dart +0 -15
  1076. package/project/.sdk/tm/dart/lib/utility/ResultHeadersUtility.dart +0 -18
  1077. package/project/.sdk/tm/dart/lib/utility/StructUtility.dart +0 -127
  1078. package/project/.sdk/tm/dart/lib/utility/TransformRequestUtility.dart +0 -28
  1079. package/project/.sdk/tm/dart/lib/utility/TransformResponseUtility.dart +0 -44
  1080. package/project/.sdk/tm/dart/lib/utility/Utility.dart +0 -239
  1081. package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +0 -2462
  1082. package/project/.sdk/tm/dart/src/feature/README.md +0 -3
  1083. package/project/.sdk/tm/dart/src/feature/telemetry/.gitkeep +0 -0
  1084. package/project/.sdk/tm/dart/src/feature/test/.gitkeep +0 -0
  1085. package/project/.sdk/tm/dart/src/feature/timeout/.gitkeep +0 -0
  1086. package/project/.sdk/tm/dart/test/custom_test.dart +0 -65
  1087. package/project/.sdk/tm/dart/test/exists_test.dart +0 -12
  1088. package/project/.sdk/tm/dart/test/feature/harness.dart +0 -329
  1089. package/project/.sdk/tm/dart/test/feature_test.dart +0 -1193
  1090. package/project/.sdk/tm/dart/test/harness.dart +0 -153
  1091. package/project/.sdk/tm/dart/test/netsim_test.dart +0 -48
  1092. package/project/.sdk/tm/dart/test/omni.dart +0 -520
  1093. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +0 -143
  1094. package/project/.sdk/tm/dart/test/pipeline_test.dart +0 -608
  1095. package/project/.sdk/tm/dart/test/primary_test.dart +0 -476
  1096. package/project/.sdk/tm/dart/test/sdk-test-control.json +0 -19
  1097. package/project/.sdk/tm/dart/test/struct_test.dart +0 -468
  1098. package/project/.sdk/tm/dart/test/utility.dart +0 -198
  1099. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +0 -7
  1100. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +0 -653
  1101. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +0 -232
  1102. package/project/.sdk/tm/lean/LICENSE +0 -21
  1103. package/project/.sdk/tm/lean/Makefile +0 -32
  1104. package/project/.sdk/tm/lean/VERSION +0 -1
  1105. package/project/.sdk/tm/lean/src/SdkFeature.lean +0 -171
  1106. package/project/.sdk/tm/lean/src/SdkFeatures.lean +0 -787
  1107. package/project/.sdk/tm/lean/src/SdkJson.lean +0 -134
  1108. package/project/.sdk/tm/lean/src/SdkRuntime.lean +0 -374
  1109. package/project/.sdk/tm/lean/src/SdkUtility.lean +0 -809
  1110. package/project/.sdk/tm/lean/src/VoxgigStruct.lean +0 -2880
  1111. package/project/.sdk/tm/lean/src/Vregex.lean +0 -412
  1112. package/project/.sdk/tm/lean/src/feature/README.md +0 -5
  1113. package/project/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
  1114. package/project/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
  1115. package/project/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
  1116. package/project/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
  1117. package/project/.sdk/tm/lean/src/feature/cost/.gitkeep +0 -0
  1118. package/project/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
  1119. package/project/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
  1120. package/project/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
  1121. package/project/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
  1122. package/project/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
  1123. package/project/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
  1124. package/project/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
  1125. package/project/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
  1126. package/project/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
  1127. package/project/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
  1128. package/project/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
  1129. package/project/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
  1130. package/project/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
  1131. package/project/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
  1132. package/project/.sdk/tm/lean/test/OmniResolver.lean +0 -358
  1133. package/project/.sdk/tm/lean/test/OmniSmoke.lean +0 -174
  1134. package/project/.sdk/tm/lean/test/StructCorpus.lean +0 -368
  1135. package/project/.sdk/tm/lean/test/TFeature.lean +0 -281
  1136. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +0 -227
  1137. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +0 -997
  1138. package/project/.sdk/tm/seneca-provider/CODE_OF_CONDUCT.md +0 -132
  1139. package/project/.sdk/tm/seneca-provider/LICENSE +0 -21
  1140. package/project/.sdk/tm/seneca-provider/Makefile +0 -15
  1141. package/project/.sdk/tm/seneca-provider/src/tsconfig.json +0 -18
  1142. package/project/.sdk/tm/seneca-provider/test/tsconfig.json +0 -16
  1143. package/project/.sdk/tm/seneca-provider/tsfmt.json +0 -3
  1144. /package/project/.sdk/tm/{dart/src/feature/audit → c/src/feature/secrets}/.gitkeep +0 -0
  1145. /package/project/.sdk/tm/{dart/src/feature/base → clojure/src/feature/secrets}/.gitkeep +0 -0
  1146. /package/project/.sdk/tm/{dart/src/feature/cache → cpp/src/feature/secrets}/.gitkeep +0 -0
  1147. /package/project/.sdk/tm/{dart/src/feature/clienttrack → csharp/src/feature/secrets}/.gitkeep +0 -0
  1148. /package/project/.sdk/tm/{dart/src/feature/cost → elixir/src/feature/secrets}/.gitkeep +0 -0
  1149. /package/project/.sdk/tm/{dart/src/feature/debug → java/src/feature/secrets}/.gitkeep +0 -0
  1150. /package/project/.sdk/tm/{dart/src/feature/idempotency → kotlin/src/feature/secrets}/.gitkeep +0 -0
  1151. /package/project/.sdk/tm/{dart/src/feature/log → lua/src/feature/secrets}/.gitkeep +0 -0
  1152. /package/project/.sdk/tm/{dart/src/feature/metrics → ocaml/src/feature/secrets}/.gitkeep +0 -0
  1153. /package/project/.sdk/tm/{dart/src/feature/netsim → perl/src/feature/secrets}/.gitkeep +0 -0
  1154. /package/project/.sdk/tm/{dart/src/feature/paging → php/src/feature/secrets}/.gitkeep +0 -0
  1155. /package/project/.sdk/tm/{dart/src/feature/proxy → rb/src/feature/secrets}/.gitkeep +0 -0
  1156. /package/project/.sdk/tm/{dart/src/feature/ratelimit → rust/src/feature/secrets}/.gitkeep +0 -0
  1157. /package/project/.sdk/tm/{dart/src/feature/rbac → scala/src/feature/secrets}/.gitkeep +0 -0
  1158. /package/project/.sdk/tm/{dart/src/feature/retry → swift/src/feature/secrets}/.gitkeep +0 -0
  1159. /package/project/.sdk/tm/{dart/src/feature/streaming → zig/src/feature/secrets}/.gitkeep +0 -0
@@ -1,2462 +0,0 @@
1
- // Copyright (c) 2025-2026 Voxgig Ltd. MIT LICENSE.
2
- //
3
- // Voxgig Struct — Dart port.
4
- //
5
- // A faithful port of the canonical TypeScript implementation
6
- // (typescript/src/StructUtility.ts), following the same "by-example" design.
7
- // Like the Python, Clojure and Lua ports, Dart has a single `null`, so the
8
- // canonical `undefined` and JSON `null` are both represented by `null`; the
9
- // Group A/B rules (design/UNDEF_SPEC.md) recover the distinction where it
10
- // matters, and a private NOARG sentinel distinguishes "no argument supplied".
11
- //
12
- // Nodes are native Dart collections — `Map<String, dynamic>` (a LinkedHashMap,
13
- // insertion-ordered) and growable `List<dynamic>` — which are mutable and
14
- // reference-stable, exactly as the algorithm requires. The only regex used is
15
- // the Dart core `RegExp`. There are no third-party runtime dependencies.
16
-
17
- // ---------------------------------------------------------------------------
18
- // Sentinels / constants
19
- // ---------------------------------------------------------------------------
20
-
21
- class _NoArg {
22
- const _NoArg();
23
- }
24
-
25
- const _noarg = _NoArg();
26
-
27
- /// Public alias for the "no argument supplied" sentinel, used by callers (e.g.
28
- /// the test runner) to drive `pathify` with an *absent* value (not `null`).
29
- const pathifyNoArg = _noarg;
30
-
31
- class _Sentinel {
32
- final String tag;
33
- _Sentinel(this.tag);
34
- }
35
-
36
- final SKIP = _Sentinel('skip');
37
- final DELETE = _Sentinel('delete');
38
-
39
- const S_MKEYPRE = 'key:pre';
40
- const S_MKEYPOST = 'key:post';
41
- const S_MVAL = 'val';
42
-
43
- const M_KEYPRE = 1;
44
- const M_KEYPOST = 2;
45
- const M_VAL = 4;
46
-
47
- final Map<String, int> _MODE_TO_NUM = {
48
- S_MKEYPRE: M_KEYPRE,
49
- S_MKEYPOST: M_KEYPOST,
50
- S_MVAL: M_VAL,
51
- };
52
-
53
- const MODENAME = {M_VAL: 'val', M_KEYPRE: 'key:pre', M_KEYPOST: 'key:post'};
54
-
55
- const S_DKEY = '\$KEY';
56
- const S_BANNO = '`\$ANNO`';
57
- const S_DTOP = '\$TOP';
58
- const S_DERRS = '\$ERRS';
59
- const S_DSPEC = '\$SPEC';
60
- const S_BEXACT = '`\$EXACT`';
61
- const S_BVAL = '`\$VAL`';
62
- const S_BKEY = '`\$KEY`';
63
- const S_BOPEN = '`\$OPEN`';
64
-
65
- const S_MT = '';
66
- const S_BT = '`';
67
- const S_DS = '\$';
68
- const S_DT = '.';
69
- const S_CN = ':';
70
- const S_KEY = 'KEY';
71
- const S_VIZ = ': ';
72
-
73
- const S_string = 'string';
74
- const S_object = 'object';
75
- const S_list = 'list';
76
- const S_map = 'map';
77
- const S_nil = 'nil';
78
- const S_null = 'null';
79
-
80
- const T_any = (1 << 31) - 1;
81
- const T_noval = 1 << 30;
82
- const T_boolean = 1 << 29;
83
- const T_decimal = 1 << 28;
84
- const T_integer = 1 << 27;
85
- const T_number = 1 << 26;
86
- const T_string = 1 << 25;
87
- const T_function = 1 << 24;
88
- const T_null = 1 << 22;
89
- const T_list = 1 << 14;
90
- const T_map = 1 << 13;
91
- const T_instance = 1 << 12;
92
- const T_scalar = 1 << 7;
93
- const T_node = 1 << 6;
94
-
95
- const _TYPENAME = [
96
- 'any',
97
- 'nil',
98
- 'boolean',
99
- 'decimal',
100
- 'integer',
101
- 'number',
102
- 'string',
103
- 'function',
104
- 'symbol',
105
- 'null',
106
- '',
107
- '',
108
- '',
109
- '',
110
- '',
111
- '',
112
- '',
113
- 'list',
114
- 'map',
115
- 'instance',
116
- '',
117
- '',
118
- '',
119
- '',
120
- 'scalar',
121
- 'node'
122
- ];
123
-
124
- const MAXDEPTH = 32;
125
-
126
- final _R_INJECT_FULL = RegExp(r'^`(\$[A-Z]+|[^`]*)[0-9]*`$');
127
- final _R_INJECT_PART = RegExp(r'`([^`]*)`');
128
- final _R_META_PATH = RegExp(r'^([^$]+)\$([=~])(.+)$');
129
- final _R_TRANSFORM_NAME = RegExp(r'`\$([A-Z]+)`');
130
-
131
- // ---------------------------------------------------------------------------
132
- // Low-level helpers
133
- // ---------------------------------------------------------------------------
134
-
135
- bool isSkip(dynamic v) => identical(v, SKIP);
136
- bool isDelete(dynamic v) => identical(v, DELETE);
137
-
138
- bool _isInteger(num n) =>
139
- n is int || (n is double && n.isFinite && n == n.truncateToDouble());
140
-
141
- String numToString(num n) {
142
- if (n is double) {
143
- if (n.isNaN) return 'NaN';
144
- if (n.isInfinite) return n > 0 ? 'Infinity' : '-Infinity';
145
- if (n == n.truncateToDouble() && n.abs() < 1e16)
146
- return n.toInt().toString();
147
- return n.toString();
148
- }
149
- return n.toString();
150
- }
151
-
152
- String jsString(dynamic v) {
153
- if (v == null) return 'null';
154
- if (v is bool) return v ? 'true' : 'false';
155
- if (v is num) return numToString(v);
156
- if (v is String) return v;
157
- if (v is List) return v.map((x) => (x == null) ? '' : jsString(x)).join(',');
158
- if (v is Map) return '[object Object]';
159
- if (v is Function) return 'function';
160
- return v.toString();
161
- }
162
-
163
- String _mapKey(dynamic k) =>
164
- k is String ? k : (k is num ? numToString(k) : jsString(k));
165
-
166
- int? _toInt(dynamic k) {
167
- if (k is bool) return null;
168
- if (k is int) return k;
169
- if (k is double) return k.floor();
170
- if (k is String) return int.tryParse(k.trim());
171
- return null;
172
- }
173
-
174
- int _clz32(int n0) {
175
- var n = n0 & 0xFFFFFFFF;
176
- if (n == 0) return 32;
177
- var r = 0;
178
- while ((n & 0x80000000) == 0) {
179
- r++;
180
- n = (n << 1) & 0xFFFFFFFF;
181
- }
182
- return r;
183
- }
184
-
185
- // ---------------------------------------------------------------------------
186
- // Minor utilities
187
- // ---------------------------------------------------------------------------
188
-
189
- bool isnode(dynamic v) => v is Map || v is List;
190
- bool ismap(dynamic v) => v is Map;
191
- bool islist(dynamic v) => v is List;
192
- bool isfunc(dynamic v) => v is Function;
193
-
194
- bool iskey(dynamic k) {
195
- if (k is String) return k.isNotEmpty;
196
- if (k is bool) return false;
197
- if (k is num) return true;
198
- return false;
199
- }
200
-
201
- bool isempty([dynamic v]) {
202
- if (v == null) return true;
203
- if (v == '') return true;
204
- if (v is List) return v.isEmpty;
205
- if (v is Map) return v.isEmpty;
206
- return false;
207
- }
208
-
209
- dynamic getdef(dynamic v, dynamic alt) => v == null ? alt : v;
210
-
211
- int typify([dynamic value = _noarg]) {
212
- if (identical(value, _noarg)) return T_noval;
213
- if (value == null) return T_scalar | T_null;
214
- if (value is bool) return T_scalar | T_boolean;
215
- if (value is int) return T_scalar | T_number | T_integer;
216
- if (value is double) {
217
- if (value.isNaN) return T_noval;
218
- if (value == value.truncateToDouble())
219
- return T_scalar | T_number | T_integer;
220
- return T_scalar | T_number | T_decimal;
221
- }
222
- if (value is num) return T_scalar | T_number | T_integer;
223
- if (value is String) return T_scalar | T_string;
224
- if (value is Function) return T_scalar | T_function;
225
- if (value is List) return T_node | T_list;
226
- if (value is Map) return T_node | T_map;
227
- return T_node | T_instance;
228
- }
229
-
230
- String typename([int t = 0]) {
231
- var i = _clz32(t);
232
- return (i >= 0 && i < _TYPENAME.length) ? _TYPENAME[i] : _TYPENAME[0];
233
- }
234
-
235
- int size([dynamic v]) {
236
- if (v is List) return v.length;
237
- if (v is Map) return v.length;
238
- if (v is String) return v.length;
239
- if (v is bool) return v ? 1 : 0;
240
- if (v is num) return v.floor();
241
- return 0;
242
- }
243
-
244
- String strkey([dynamic key]) {
245
- if (key == null) return S_MT;
246
- if (key is String) return key;
247
- if (key is bool) return S_MT;
248
- if (key is num)
249
- return _isInteger(key)
250
- ? numToString(key)
251
- : numToString(key.floorToDouble());
252
- return S_MT;
253
- }
254
-
255
- List<String> keysof([dynamic v]) {
256
- if (v is Map) {
257
- var ks = v.keys.map((k) => k.toString()).toList();
258
- ks.sort();
259
- return ks;
260
- }
261
- if (v is List) return List.generate(v.length, (i) => i.toString());
262
- return [];
263
- }
264
-
265
- dynamic getprop(dynamic val, dynamic key, [dynamic alt]) {
266
- if (val == null || key == null) return alt;
267
- dynamic out = alt;
268
- if (val is Map) {
269
- var sk = _mapKey(key);
270
- if (val.containsKey(sk)) out = val[sk];
271
- } else if (val is List) {
272
- var ki = _toInt(key);
273
- if (ki != null && ki >= 0 && ki < val.length) out = val[ki];
274
- }
275
- if (out == null) return alt;
276
- return out;
277
- }
278
-
279
- dynamic _lookup(dynamic val, dynamic key) {
280
- if (val == null || key == null) return null;
281
- if (val is Map) {
282
- var sk = _mapKey(key);
283
- return val.containsKey(sk) ? val[sk] : null;
284
- }
285
- if (val is List) {
286
- var ki = _toInt(key);
287
- return (ki != null && ki >= 0 && ki < val.length) ? val[ki] : null;
288
- }
289
- return null;
290
- }
291
-
292
- bool haskey([dynamic val, dynamic key]) => getprop(val, key) != null;
293
-
294
- final _R_INTKEY = RegExp(r'^-?[0-9]+$');
295
-
296
- dynamic getelem(dynamic val, dynamic key, [dynamic alt]) {
297
- if (val == null || key == null) return alt;
298
- dynamic out;
299
- if (val is List) {
300
- var ks = key is String ? key : (key is num ? numToString(key) : '');
301
- if (_R_INTKEY.hasMatch(ks)) {
302
- var len = val.length;
303
- var nk0 = int.parse(ks);
304
- var nk = nk0 < 0 ? len + nk0 : nk0;
305
- if (nk >= 0 && nk < len) out = val[nk];
306
- }
307
- }
308
- if (out == null) {
309
- return isfunc(alt) ? alt() : alt;
310
- }
311
- return out;
312
- }
313
-
314
- dynamic _getpropRaw(dynamic v, String k) {
315
- if (v is Map) return v.containsKey(k) ? v[k] : null;
316
- if (v is List) {
317
- var i = int.tryParse(k);
318
- return (i != null && i >= 0 && i < v.length) ? v[i] : null;
319
- }
320
- return null;
321
- }
322
-
323
- List<List<dynamic>> itemsPairs(dynamic v) {
324
- if (!isnode(v)) return [];
325
- return keysof(v).map((k) => [k, _getpropRaw(v, k)]).toList();
326
- }
327
-
328
- dynamic items([dynamic v]) =>
329
- itemsPairs(v).map((p) => <dynamic>[p[0], p[1]]).toList();
330
-
331
- dynamic itemsV(dynamic v, dynamic Function(List<dynamic>) f) =>
332
- itemsPairs(v).map(f).toList();
333
-
334
- dynamic flatten(dynamic l, [int depth = 1]) {
335
- if (l is! List) return l;
336
- var out = <dynamic>[];
337
- for (var item in l) {
338
- if (item is List && depth > 0) {
339
- for (var x in (flatten(item, depth - 1) as List)) {
340
- out.add(x);
341
- }
342
- } else {
343
- out.add(item);
344
- }
345
- }
346
- return out;
347
- }
348
-
349
- dynamic filter(dynamic val, bool Function(List<dynamic>) check) {
350
- var out = <dynamic>[];
351
- for (var p in itemsPairs(val)) {
352
- if (check(p)) out.add(p[1]);
353
- }
354
- return out;
355
- }
356
-
357
- dynamic setprop(dynamic parent, dynamic key, dynamic val) {
358
- if (!iskey(key)) return parent;
359
- if (parent is Map) {
360
- parent[_mapKey(key)] = val;
361
- } else if (parent is List) {
362
- var ki = _toInt(key is num ? key.floor() : key);
363
- if (ki == null) return parent;
364
- var len = parent.length;
365
- if (ki >= 0) {
366
- if (ki > len) ki = len;
367
- if (ki >= len) {
368
- parent.add(val);
369
- } else {
370
- parent[ki] = val;
371
- }
372
- } else {
373
- parent.insert(0, val);
374
- }
375
- }
376
- return parent;
377
- }
378
-
379
- dynamic delprop(dynamic parent, dynamic key) {
380
- if (!iskey(key)) return parent;
381
- if (parent is Map) {
382
- parent.remove(_mapKey(key));
383
- } else if (parent is List) {
384
- var ki = _toInt(key);
385
- if (ki != null && ki >= 0 && ki < parent.length) parent.removeAt(ki);
386
- }
387
- return parent;
388
- }
389
-
390
- dynamic clone([dynamic v]) {
391
- if (v is Map) {
392
- var o = <String, dynamic>{};
393
- v.forEach((k, x) => o[k.toString()] = clone(x));
394
- return o;
395
- }
396
- if (v is List) {
397
- return v.map((x) => clone(x)).toList();
398
- }
399
- return v;
400
- }
401
-
402
- dynamic slice(dynamic val, [dynamic start, dynamic end, bool mutate = false]) {
403
- if (val is num) {
404
- num? lo = start is num ? start : null;
405
- num? hi = end is num ? (end - 1) : null;
406
- if (hi != null && val > hi) return hi;
407
- if (lo != null && val < lo) return lo;
408
- return val;
409
- }
410
- if (val is List || val is String) {
411
- var vlen = size(val);
412
- if (start == null && end != null) start = 0;
413
- if (start == null) return val;
414
- var s = (start as num).toInt();
415
- var e = 0;
416
- if (s < 0) {
417
- e = vlen + s;
418
- if (e < 0) e = 0;
419
- s = 0;
420
- } else if (end != null) {
421
- e = (end as num).toInt();
422
- if (e < 0) {
423
- e = vlen + e;
424
- if (e < 0) e = 0;
425
- } else if (vlen < e) {
426
- e = vlen;
427
- }
428
- } else {
429
- e = vlen;
430
- }
431
- if (vlen < s) s = vlen;
432
- if (s > -1 && s <= e && e <= vlen) {
433
- if (val is List) {
434
- if (mutate) {
435
- var sub = val.sublist(s, e);
436
- val
437
- ..clear()
438
- ..addAll(sub);
439
- return val;
440
- }
441
- return val.sublist(s, e);
442
- }
443
- return (val as String).substring(s, e);
444
- } else {
445
- if (val is List) {
446
- if (mutate) {
447
- val.clear();
448
- return val;
449
- }
450
- return <dynamic>[];
451
- }
452
- return S_MT;
453
- }
454
- }
455
- return val;
456
- }
457
-
458
- // ---------------------------------------------------------------------------
459
- // Regex helpers (uniform re_* API over RegExp)
460
- // ---------------------------------------------------------------------------
461
-
462
- RegExp _rx(dynamic p) =>
463
- p is RegExp ? p : RegExp(p is String ? p : jsString(p));
464
-
465
- dynamic re_compile(dynamic p, [dynamic flags]) => _rx(p);
466
- dynamic re_test(dynamic p, dynamic input) =>
467
- _rx(p).hasMatch(input is String ? input : jsString(input));
468
- dynamic re_find(dynamic p, dynamic input) {
469
- var m = _rx(p).firstMatch(input is String ? input : jsString(input));
470
- if (m == null) return null;
471
- return [for (var i = 0; i <= m.groupCount; i++) m.group(i) ?? ''];
472
- }
473
-
474
- dynamic re_find_all(dynamic p, dynamic input) {
475
- var out = <dynamic>[];
476
- for (var m in _rx(p).allMatches(input is String ? input : jsString(input))) {
477
- out.add([for (var i = 0; i <= m.groupCount; i++) m.group(i) ?? '']);
478
- }
479
- return out;
480
- }
481
-
482
- dynamic re_replace(dynamic p, dynamic input, dynamic repl) {
483
- var s = input is String ? input : jsString(input);
484
- if (repl is Function) {
485
- return s.replaceAllMapped(_rx(p), (m) {
486
- var groups = [for (var i = 0; i <= m.groupCount; i++) m.group(i) ?? ''];
487
- return (repl(groups)).toString();
488
- });
489
- }
490
- return s;
491
- }
492
-
493
- dynamic re_escape(dynamic s) => escre(s);
494
-
495
- dynamic escre([dynamic s]) {
496
- var str = s is String ? s : (s == null ? S_MT : jsString(s));
497
- var b = StringBuffer();
498
- for (var i = 0; i < str.length; i++) {
499
- var c = str[i];
500
- if ('.*+?^\$\{\}()|[]\\'.contains(c)) b.write('\\');
501
- b.write(c);
502
- }
503
- return b.toString();
504
- }
505
-
506
- const _urlUnreserved =
507
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~*\'()';
508
-
509
- dynamic escurl([dynamic s]) {
510
- var str = s is String ? s : (s == null ? S_MT : jsString(s));
511
- var b = StringBuffer();
512
- for (var byte in _utf8(str)) {
513
- var c = String.fromCharCode(byte);
514
- if (_urlUnreserved.contains(c)) {
515
- b.write(c);
516
- } else {
517
- b.write('%${byte.toRadixString(16).toUpperCase().padLeft(2, '0')}');
518
- }
519
- }
520
- return b.toString();
521
- }
522
-
523
- List<int> _utf8(String s) {
524
- // Minimal UTF-8 encoder (avoids importing dart:convert in the library).
525
- var out = <int>[];
526
- for (var rune in s.runes) {
527
- if (rune < 0x80) {
528
- out.add(rune);
529
- } else if (rune < 0x800) {
530
- out.add(0xC0 | (rune >> 6));
531
- out.add(0x80 | (rune & 0x3F));
532
- } else if (rune < 0x10000) {
533
- out.add(0xE0 | (rune >> 12));
534
- out.add(0x80 | ((rune >> 6) & 0x3F));
535
- out.add(0x80 | (rune & 0x3F));
536
- } else {
537
- out.add(0xF0 | (rune >> 18));
538
- out.add(0x80 | ((rune >> 12) & 0x3F));
539
- out.add(0x80 | ((rune >> 6) & 0x3F));
540
- out.add(0x80 | (rune & 0x3F));
541
- }
542
- }
543
- return out;
544
- }
545
-
546
- // ---------------------------------------------------------------------------
547
- // JSON-ish serialization / stringify / jsonify
548
- // ---------------------------------------------------------------------------
549
-
550
- void _escJson(String s, StringBuffer b) {
551
- b.write('"');
552
- for (var i = 0; i < s.length; i++) {
553
- var c = s[i];
554
- var code = s.codeUnitAt(i);
555
- if (c == '"') {
556
- b.write('\\"');
557
- } else if (c == '\\') {
558
- b.write('\\\\');
559
- } else if (c == '\n') {
560
- b.write('\\n');
561
- } else if (c == '\r') {
562
- b.write('\\r');
563
- } else if (c == '\t') {
564
- b.write('\\t');
565
- } else if (code < 32) {
566
- b.write('\\u${code.toRadixString(16).padLeft(4, '0')}');
567
- } else {
568
- b.write(c);
569
- }
570
- }
571
- b.write('"');
572
- }
573
-
574
- String jsonEncode(dynamic v, {bool sort = false, int? indent}) {
575
- var b = StringBuffer();
576
- void enc(dynamic v, int level) {
577
- if (v == null) {
578
- b.write('null');
579
- } else if (v is bool) {
580
- b.write(v ? 'true' : 'false');
581
- } else if (v is num) {
582
- b.write(numToString(v));
583
- } else if (v is String) {
584
- _escJson(v, b);
585
- } else if (v is Function || v is _Sentinel) {
586
- b.write('null');
587
- } else if (v is List) {
588
- if (v.isEmpty) {
589
- b.write('[]');
590
- } else if (indent != null) {
591
- var pad = ' ' * (indent * (level + 1));
592
- var cpad = ' ' * (indent * level);
593
- b.write('[\n');
594
- for (var i = 0; i < v.length; i++) {
595
- if (i > 0) b.write(',\n');
596
- b.write(pad);
597
- enc(v[i], level + 1);
598
- }
599
- b.write('\n');
600
- b.write(cpad);
601
- b.write(']');
602
- } else {
603
- b.write('[');
604
- for (var i = 0; i < v.length; i++) {
605
- if (i > 0) b.write(',');
606
- enc(v[i], level + 1);
607
- }
608
- b.write(']');
609
- }
610
- } else if (v is Map) {
611
- var ks = v.keys.map((k) => k.toString()).toList();
612
- if (sort) ks.sort();
613
- if (ks.isEmpty) {
614
- b.write('{}');
615
- } else if (indent != null) {
616
- var pad = ' ' * (indent * (level + 1));
617
- var cpad = ' ' * (indent * level);
618
- b.write('{\n');
619
- for (var i = 0; i < ks.length; i++) {
620
- if (i > 0) b.write(',\n');
621
- b.write(pad);
622
- _escJson(ks[i], b);
623
- b.write(': ');
624
- enc(v[ks[i]], level + 1);
625
- }
626
- b.write('\n');
627
- b.write(cpad);
628
- b.write('}');
629
- } else {
630
- b.write('{');
631
- for (var i = 0; i < ks.length; i++) {
632
- if (i > 0) b.write(',');
633
- _escJson(ks[i], b);
634
- b.write(':');
635
- enc(v[ks[i]], level + 1);
636
- }
637
- b.write('}');
638
- }
639
- } else {
640
- _escJson(v.toString(), b);
641
- }
642
- }
643
-
644
- enc(v, 0);
645
- return b.toString();
646
- }
647
-
648
- bool _hasCycle(dynamic v) {
649
- var seen = <dynamic>[];
650
- bool go(dynamic v) {
651
- if (v is List) {
652
- if (seen.any((s) => identical(s, v))) return true;
653
- seen.add(v);
654
- return v.any(go);
655
- }
656
- if (v is Map) {
657
- if (seen.any((s) => identical(s, v))) return true;
658
- seen.add(v);
659
- return v.values.any(go);
660
- }
661
- return false;
662
- }
663
-
664
- return go(v);
665
- }
666
-
667
- String stringify([dynamic v = _noarg, dynamic maxlen, dynamic pretty]) {
668
- var pr = pretty == true;
669
- if (identical(v, _noarg)) return pr ? '<>' : S_MT;
670
- String valstr;
671
- if (v is String) {
672
- valstr = v;
673
- } else if (_hasCycle(v)) {
674
- valstr = '__STRINGIFY_FAILED__';
675
- } else {
676
- try {
677
- valstr = jsonEncode(v, sort: true).replaceAll('"', '');
678
- } catch (_) {
679
- valstr = '__STRINGIFY_FAILED__';
680
- }
681
- }
682
- if (maxlen is num && maxlen > -1) {
683
- var m = maxlen.toInt();
684
- if (m < valstr.length) {
685
- valstr = valstr.substring(0, m - 3 < 0 ? 0 : m - 3) + '...';
686
- }
687
- }
688
- if (pr) {
689
- var colors = [
690
- 81,
691
- 118,
692
- 213,
693
- 39,
694
- 208,
695
- 201,
696
- 45,
697
- 190,
698
- 129,
699
- 51,
700
- 160,
701
- 121,
702
- 226,
703
- 33,
704
- 207,
705
- 69
706
- ];
707
- var c = colors.map((n) => '\x1b[38;5;${n}m').toList();
708
- var r = '\x1b[0m';
709
- var d = 0;
710
- var o = c[0];
711
- var t = StringBuffer(c[0]);
712
- for (var i = 0; i < valstr.length; i++) {
713
- var ch = valstr[i];
714
- if (ch == '{' || ch == '[') {
715
- d++;
716
- o = c[d % c.length];
717
- t.write(o);
718
- t.write(ch);
719
- } else if (ch == '}' || ch == ']') {
720
- t.write(o);
721
- t.write(ch);
722
- d--;
723
- o = c[((d % c.length) + c.length) % c.length];
724
- } else {
725
- t.write(o);
726
- t.write(ch);
727
- }
728
- }
729
- t.write(r);
730
- return t.toString();
731
- }
732
- return valstr;
733
- }
734
-
735
- String jsonify([dynamic v, dynamic flags]) {
736
- if (v == null) return S_null;
737
- var indent = getprop(flags, 'indent', 2);
738
- var ind = indent is num ? indent.toInt() : 2;
739
- try {
740
- var str = ind > 0 ? jsonEncode(v, indent: ind) : jsonEncode(v);
741
- var offset = getprop(flags, 'offset', 0);
742
- var off = offset is num ? offset.toInt() : 0;
743
- if (off > 0) {
744
- var lines = str.split('\n');
745
- if (lines.isNotEmpty) {
746
- return '{\n' + lines.sublist(1).map((l) => (' ' * off) + l).join('\n');
747
- }
748
- }
749
- return str;
750
- } catch (_) {
751
- return S_null;
752
- }
753
- }
754
-
755
- String pad([dynamic s, dynamic padding, dynamic padchar]) {
756
- var str = s is String ? s : (s == null ? 'null' : stringify(s));
757
- var p = padding is num ? padding.toInt() : 44;
758
- var pc = padchar is String ? (padchar + ' ').substring(0, 1) : ' ';
759
- if (p > -1) {
760
- var n = p - str.length;
761
- return n > 0 ? str + (pc * n) : str;
762
- } else {
763
- var n = (-p) - str.length;
764
- return n > 0 ? (pc * n) + str : str;
765
- }
766
- }
767
-
768
- // ---------------------------------------------------------------------------
769
- // join / pathify / replace
770
- // ---------------------------------------------------------------------------
771
-
772
- String join(dynamic arr, [dynamic sep, dynamic url]) {
773
- if (arr is! List) return S_MT;
774
- var sepdef = (sep == null) ? ',' : (sep is String ? sep : jsString(sep));
775
- var single = sepdef.length == 1;
776
- var sc = single ? sepdef[0] : ' ';
777
- var isUrl = url == true;
778
- var sarr = arr.length;
779
- String stripTrailing(String s) {
780
- var i = s.length;
781
- while (i > 0 && s[i - 1] == sc) i--;
782
- return s.substring(0, i);
783
- }
784
-
785
- String stripLeading(String s) {
786
- var i = 0;
787
- while (i < s.length && s[i] == sc) i++;
788
- return s.substring(i);
789
- }
790
-
791
- String collapse(String s) {
792
- var b = StringBuffer();
793
- var i = 0;
794
- var n = s.length;
795
- while (i < n) {
796
- if (s[i] != sc) {
797
- b.write(s[i]);
798
- i++;
799
- } else {
800
- var j = i;
801
- while (j < n && s[j] == sc) j++;
802
- var beforeNon = i > 0 && s[i - 1] != sc;
803
- var afterNon = j < n;
804
- if (beforeNon && afterNon) {
805
- b.write(sc);
806
- } else {
807
- b.write(s.substring(i, j));
808
- }
809
- i = j;
810
- }
811
- }
812
- return b.toString();
813
- }
814
-
815
- var out = <String>[];
816
- for (var idx = 0; idx < arr.length; idx++) {
817
- var s0 = arr[idx];
818
- if (s0 is String && s0 != S_MT) {
819
- String s;
820
- if (single) {
821
- if (isUrl && idx == 0) {
822
- s = stripTrailing(s0);
823
- } else {
824
- var x = idx > 0 ? stripLeading(s0) : s0;
825
- x = (idx < sarr - 1 || !isUrl) ? stripTrailing(x) : x;
826
- s = collapse(x);
827
- }
828
- } else {
829
- s = s0;
830
- }
831
- if (s != S_MT) out.add(s);
832
- }
833
- }
834
- return out.join(sepdef);
835
- }
836
-
837
- String joinurl(dynamic arr) => join(arr, '/', true);
838
-
839
- String replace(dynamic s, dynamic from, dynamic to) {
840
- var ts = typify(s);
841
- String rs;
842
- if ((T_string & ts) == 0) {
843
- rs = stringify(s);
844
- } else if (((T_noval | T_null) & ts) > 0) {
845
- rs = S_MT;
846
- } else {
847
- rs = stringify(s);
848
- }
849
- var toS = to is String ? to : jsString(to);
850
- if (from is String && from.isNotEmpty) return rs.replaceAll(from, toS);
851
- if (from is RegExp) return rs.replaceAll(from, toS);
852
- return rs;
853
- }
854
-
855
- String pathify([dynamic v = _noarg, dynamic startin, dynamic endin]) {
856
- var absent = identical(v, _noarg);
857
- var val = absent ? null : v;
858
- List<dynamic>? path;
859
- if (val is List) {
860
- path = val;
861
- } else if (iskey(val)) {
862
- path = [val];
863
- } else {
864
- path = null;
865
- }
866
- var start = startin is num ? (startin > -1 ? startin.toInt() : 0) : 0;
867
- var endn = endin is num ? (endin > -1 ? endin.toInt() : 0) : 0;
868
- String? pathstr;
869
- if (path != null && start >= 0) {
870
- var len = path.length;
871
- var e = len - endn;
872
- if (e < 0) e = 0;
873
- var s = start > len ? len : start;
874
- var sub = s <= e ? path.sublist(s, e) : <dynamic>[];
875
- if (sub.isEmpty) {
876
- pathstr = '<root>';
877
- } else {
878
- var mapped = sub.where(iskey).map((p) {
879
- if (p is num) return numToString(p.floorToDouble());
880
- return jsString(p).replaceAll('.', S_MT);
881
- });
882
- pathstr = mapped.join('.');
883
- }
884
- }
885
- if (pathstr == null) {
886
- pathstr =
887
- '<unknown-path' + (absent ? S_MT : S_CN + stringify(val, 47)) + '>';
888
- }
889
- return pathstr;
890
- }
891
-
892
- // ---------------------------------------------------------------------------
893
- // walk / merge
894
- // ---------------------------------------------------------------------------
895
-
896
- dynamic walk(dynamic val,
897
- {Function? before,
898
- Function? after,
899
- dynamic maxdepth,
900
- dynamic key,
901
- dynamic parent,
902
- dynamic path}) {
903
- path ??= <dynamic>[];
904
- var depth = size(path);
905
- var out = before == null ? val : before(key, val, parent, path);
906
- var md = (maxdepth is num && maxdepth >= 0) ? maxdepth.toInt() : MAXDEPTH;
907
- if (md == 0 || (md > 0 && md <= depth)) return out;
908
- if (isnode(out)) {
909
- var prefix = List<dynamic>.from(path as List);
910
- for (var pair in itemsPairs(out)) {
911
- var ckey = pair[0] as String;
912
- var child = pair[1];
913
- var childpath = [...prefix, ckey];
914
- var result = walk(child,
915
- before: before,
916
- after: after,
917
- maxdepth: md,
918
- key: ckey,
919
- parent: out,
920
- path: childpath);
921
- if (out is Map) {
922
- out[ckey] = result;
923
- } else if (out is List) {
924
- out[int.parse(ckey)] = result;
925
- }
926
- }
927
- }
928
- return after == null ? out : after(key, out, parent, path);
929
- }
930
-
931
- dynamic merge(dynamic objs, [dynamic maxdepth]) {
932
- var md = maxdepth is num ? (maxdepth < 0 ? 0 : maxdepth.toInt()) : MAXDEPTH;
933
- if (objs is! List) return objs;
934
- var lenlist = objs.length;
935
- if (lenlist == 0) return null;
936
- if (lenlist == 1) return objs[0];
937
- dynamic out = getprop(objs, 0, <String, dynamic>{});
938
- for (var oi = 1; oi < lenlist; oi++) {
939
- var obj = objs[oi];
940
- if (!isnode(obj)) {
941
- out = obj;
942
- } else {
943
- var cur = <dynamic>[out];
944
- var dst = <dynamic>[out];
945
- void grow(List<dynamic> a, int n) {
946
- while (a.length <= n) a.add(null);
947
- }
948
-
949
- dynamic before(dynamic key, dynamic val, dynamic parent, dynamic path) {
950
- var pi = size(path);
951
- if (md <= pi) {
952
- grow(cur, pi);
953
- cur[pi] = val;
954
- if (pi > 0) setprop(cur[pi - 1], key, val);
955
- return null;
956
- } else if (!isnode(val)) {
957
- grow(cur, pi);
958
- cur[pi] = val;
959
- return val;
960
- } else {
961
- grow(dst, pi);
962
- grow(cur, pi);
963
- dst[pi] = pi > 0 ? getprop(dst[pi - 1], key) : dst[pi];
964
- var tval = dst[pi];
965
- if (tval == null) {
966
- cur[pi] = islist(val) ? <dynamic>[] : <String, dynamic>{};
967
- return val;
968
- } else if ((islist(val) && islist(tval)) ||
969
- (ismap(val) && ismap(tval))) {
970
- cur[pi] = tval;
971
- return val;
972
- } else {
973
- cur[pi] = val;
974
- return null;
975
- }
976
- }
977
- }
978
-
979
- dynamic after(dynamic key, dynamic val, dynamic parent, dynamic path) {
980
- var ci = size(path);
981
- if (ci < 1) return cur.isNotEmpty ? cur[0] : val;
982
- var target = ci - 1 < cur.length ? cur[ci - 1] : null;
983
- var value = ci < cur.length ? cur[ci] : null;
984
- setprop(target, key, value);
985
- return value;
986
- }
987
-
988
- out = walk(obj, before: before, after: after);
989
- }
990
- }
991
- if (md == 0) {
992
- var o = getprop(objs, lenlist - 1);
993
- out = islist(o) ? <dynamic>[] : (ismap(o) ? <String, dynamic>{} : o);
994
- }
995
- return out;
996
- }
997
-
998
- // ---------------------------------------------------------------------------
999
- // getpath / setpath
1000
- // ---------------------------------------------------------------------------
1001
-
1002
- dynamic _idef(dynamic injdef, String field) {
1003
- if (injdef is Inj) {
1004
- switch (field) {
1005
- case 'base':
1006
- return injdef.base;
1007
- case 'dparent':
1008
- return injdef.dparent;
1009
- case 'meta':
1010
- return injdef.meta;
1011
- case 'key':
1012
- return injdef.key;
1013
- case 'dpath':
1014
- return injdef.dpath;
1015
- case 'handler':
1016
- return injdef.handler;
1017
- }
1018
- return null;
1019
- }
1020
- return getprop(injdef, field);
1021
- }
1022
-
1023
- dynamic getpath(dynamic store, dynamic path, [dynamic injdef]) {
1024
- List<dynamic>? parts;
1025
- if (path is List) {
1026
- parts = List<dynamic>.from(path);
1027
- } else if (path is String) {
1028
- parts = path.split(S_DT);
1029
- } else if (path is num && path is! bool) {
1030
- parts = [strkey(path)];
1031
- } else {
1032
- return null;
1033
- }
1034
-
1035
- var hasInj = injdef != null;
1036
- var base = _idef(injdef, 'base');
1037
- var dparent = _idef(injdef, 'dparent');
1038
- var injMeta = _idef(injdef, 'meta');
1039
- var injKey = _idef(injdef, 'key');
1040
- var dpath = _idef(injdef, 'dpath');
1041
- var src = iskey(base) ? getprop(store, base, store) : store;
1042
- var numparts = parts.length;
1043
- dynamic val = store;
1044
-
1045
- if (path == null ||
1046
- store == null ||
1047
- (numparts == 1 && parts[0] == S_MT) ||
1048
- numparts == 0) {
1049
- val = src;
1050
- } else {
1051
- if (numparts == 1) val = getprop(store, parts[0]);
1052
- if (!isfunc(val)) {
1053
- val = src;
1054
- if (parts[0] is String) {
1055
- var m = _R_META_PATH.firstMatch(parts[0]);
1056
- if (m != null && injMeta != null && hasInj) {
1057
- val = getprop(injMeta, m.group(1));
1058
- parts[0] = m.group(3);
1059
- }
1060
- }
1061
- var pi = 0;
1062
- var cont = true;
1063
- while (cont && val != null && pi < numparts) {
1064
- var raw = parts[pi];
1065
- dynamic part;
1066
- if (hasInj && raw == S_DKEY) {
1067
- part = injKey != null ? injKey : raw;
1068
- } else if (raw is String && raw.startsWith('\$GET:')) {
1069
- part = stringify(getpath(src, slice(raw, 5, -1)));
1070
- } else if (raw is String && raw.startsWith('\$REF:')) {
1071
- part = stringify(getpath(getprop(store, S_DSPEC), slice(raw, 5, -1)));
1072
- } else if (hasInj && raw is String && raw.startsWith('\$META:')) {
1073
- part = stringify(getpath(injMeta, slice(raw, 6, -1)));
1074
- } else {
1075
- part = raw;
1076
- }
1077
- part = part is String ? part.replaceAll('\$\$', '\$') : strkey(part);
1078
- if (part == S_MT) {
1079
- var ascends = 0;
1080
- while (pi + 1 < parts.length && parts[pi + 1] == S_MT) {
1081
- ascends++;
1082
- pi++;
1083
- }
1084
- if (hasInj && ascends > 0) {
1085
- if (pi == numparts - 1) ascends--;
1086
- if (ascends == 0) {
1087
- val = dparent;
1088
- } else {
1089
- var tail = parts.sublist(pi + 1);
1090
- var fullpath = flatten([slice(dpath, -ascends), tail]);
1091
- val = ascends <= size(dpath) ? getpath(store, fullpath) : null;
1092
- cont = false;
1093
- }
1094
- } else {
1095
- val = dparent;
1096
- }
1097
- } else {
1098
- val = getprop(val, part);
1099
- }
1100
- if (cont) pi++;
1101
- }
1102
- }
1103
- }
1104
-
1105
- var handler = _idef(injdef, 'handler');
1106
- if (hasInj && isfunc(handler)) {
1107
- var ref = pathify(path);
1108
- if (injdef is Inj) {
1109
- val = handler(injdef, val, ref, store);
1110
- } else {
1111
- val = handler(_dummyInj(), val, ref, store);
1112
- }
1113
- }
1114
- return val;
1115
- }
1116
-
1117
- dynamic setpath(dynamic store, dynamic path, dynamic val, [dynamic injdef]) {
1118
- var ptype = typify(path);
1119
- dynamic parts;
1120
- if ((T_list & ptype) > 0) {
1121
- parts = List<dynamic>.from(path as List);
1122
- } else if ((T_string & ptype) > 0) {
1123
- parts = (path as String).split(S_DT);
1124
- } else if ((T_number & ptype) > 0) {
1125
- parts = [path];
1126
- } else {
1127
- return null;
1128
- }
1129
- var base = injdef != null ? _idef(injdef, 'base') : null;
1130
- var numparts = size(parts);
1131
- var parent = iskey(base) ? getprop(store, base, store) : store;
1132
- for (var pi = 0; pi < numparts - 1; pi++) {
1133
- var pkey = getelem(parts, pi);
1134
- var np = getprop(parent, pkey);
1135
- if (!isnode(np)) {
1136
- var nextpart = getelem(parts, pi + 1);
1137
- np =
1138
- (T_number & typify(nextpart)) > 0 ? <dynamic>[] : <String, dynamic>{};
1139
- setprop(parent, pkey, np);
1140
- }
1141
- parent = np;
1142
- }
1143
- if (isDelete(val)) {
1144
- delprop(parent, getelem(parts, -1));
1145
- } else {
1146
- setprop(parent, getelem(parts, -1), val);
1147
- }
1148
- return parent;
1149
- }
1150
-
1151
- // ---------------------------------------------------------------------------
1152
- // Injection state
1153
- // ---------------------------------------------------------------------------
1154
-
1155
- class Inj {
1156
- String mode = S_MVAL;
1157
- bool full = false;
1158
- int keyi = 0;
1159
- dynamic keys;
1160
- dynamic key;
1161
- dynamic ival;
1162
- dynamic parent;
1163
- dynamic path;
1164
- dynamic nodes;
1165
- Function handler = injectHandler;
1166
- dynamic errs;
1167
- dynamic meta;
1168
- dynamic dparent;
1169
- dynamic dpath;
1170
- dynamic base;
1171
- Function? modify;
1172
- Inj? prior;
1173
- dynamic extra;
1174
- dynamic root;
1175
- }
1176
-
1177
- Inj? _dummy;
1178
- Inj _dummyInj() {
1179
- _dummy ??= _newInj(null, <String, dynamic>{S_DTOP: null});
1180
- return _dummy!;
1181
- }
1182
-
1183
- Inj _newInj(dynamic val, dynamic parent) {
1184
- var i = Inj();
1185
- i.mode = S_MVAL;
1186
- i.full = false;
1187
- i.keyi = 0;
1188
- i.keys = [S_DTOP];
1189
- i.key = S_DTOP;
1190
- i.ival = val;
1191
- i.parent = parent;
1192
- i.path = [S_DTOP];
1193
- i.nodes = [parent];
1194
- i.handler = injectHandler;
1195
- i.errs = <dynamic>[];
1196
- i.meta = <String, dynamic>{};
1197
- i.dparent = null;
1198
- i.dpath = [S_DTOP];
1199
- i.base = S_DTOP;
1200
- i.modify = null;
1201
- i.prior = null;
1202
- i.extra = null;
1203
- i.root = null;
1204
- return i;
1205
- }
1206
-
1207
- dynamic _injDescend(Inj inj) {
1208
- if (inj.meta is Map) {
1209
- var d = (inj.meta['__d'] is num) ? inj.meta['__d'] as num : 0;
1210
- inj.meta['__d'] = d + 1;
1211
- }
1212
- var parentkey = getelem(inj.path, -2);
1213
- if (inj.dparent == null) {
1214
- if (size(inj.dpath) > 1) {
1215
- inj.dpath = [...(inj.dpath as List), parentkey];
1216
- }
1217
- } else if (parentkey != null) {
1218
- inj.dparent = getprop(inj.dparent, parentkey);
1219
- var lastpart = getelem(inj.dpath, -1);
1220
- if (lastpart == '\$:' + jsString(parentkey)) {
1221
- inj.dpath = slice(inj.dpath, -1);
1222
- } else {
1223
- inj.dpath = [...(inj.dpath as List), parentkey];
1224
- }
1225
- }
1226
- return inj.dparent;
1227
- }
1228
-
1229
- Inj _injChild(Inj inj, int keyi, dynamic keys) {
1230
- var key = strkey(getelem(keys, keyi));
1231
- var val = inj.ival;
1232
- var c = Inj();
1233
- c.mode = inj.mode;
1234
- c.full = inj.full;
1235
- c.keyi = keyi;
1236
- c.keys = keys;
1237
- c.key = key;
1238
- c.ival = getprop(val, key);
1239
- c.parent = val;
1240
- c.path = [...(inj.path as List), key];
1241
- c.nodes = [...(inj.nodes as List), val];
1242
- c.handler = inj.handler;
1243
- c.errs = inj.errs;
1244
- c.meta = inj.meta;
1245
- c.base = inj.base;
1246
- c.modify = inj.modify;
1247
- c.prior = inj;
1248
- c.dpath = [...(inj.dpath as List)];
1249
- c.dparent = inj.dparent;
1250
- c.extra = inj.extra;
1251
- c.root = inj.root;
1252
- return c;
1253
- }
1254
-
1255
- dynamic _injSetval(Inj inj, dynamic val, [int ancestor = 1]) {
1256
- dynamic target;
1257
- dynamic key;
1258
- if (ancestor < 2) {
1259
- target = inj.parent;
1260
- key = inj.key;
1261
- } else {
1262
- target = getelem(inj.nodes, -ancestor);
1263
- key = getelem(inj.path, -ancestor);
1264
- }
1265
- if (val == null) return delprop(target, key);
1266
- return setprop(target, key, val);
1267
- }
1268
-
1269
- // ---------------------------------------------------------------------------
1270
- // inject
1271
- // ---------------------------------------------------------------------------
1272
-
1273
- dynamic inject(dynamic val, dynamic store, [dynamic injdef]) {
1274
- Inj inj;
1275
- if (injdef is Inj) {
1276
- inj = injdef;
1277
- } else {
1278
- var parent = <String, dynamic>{S_DTOP: val};
1279
- inj = _newInj(val, parent);
1280
- inj.dparent = store;
1281
- inj.errs = getprop(store, S_DERRS, <dynamic>[]);
1282
- if (inj.meta is Map) inj.meta['__d'] = 0;
1283
- inj.root = parent;
1284
- if (injdef != null) {
1285
- if (getprop(injdef, 'modify') != null)
1286
- inj.modify = getprop(injdef, 'modify');
1287
- if (getprop(injdef, 'extra') != null)
1288
- inj.extra = getprop(injdef, 'extra');
1289
- if (getprop(injdef, 'meta') != null) inj.meta = getprop(injdef, 'meta');
1290
- if (getprop(injdef, 'handler') != null)
1291
- inj.handler = getprop(injdef, 'handler');
1292
- }
1293
- }
1294
-
1295
- _injDescend(inj);
1296
-
1297
- dynamic rv;
1298
- if (isnode(val)) {
1299
- List<dynamic> nodekeys;
1300
- if (val is Map) {
1301
- var ks = val.keys.map((k) => k.toString()).toList();
1302
- var normal = ks.where((k) => !k.contains(S_DS)).toList()..sort();
1303
- var trans = ks.where((k) => k.contains(S_DS)).toList()..sort();
1304
- nodekeys = [...normal, ...trans];
1305
- } else {
1306
- nodekeys = List.generate((val as List).length, (i) => i.toString());
1307
- }
1308
-
1309
- var nki = 0;
1310
- while (nki < nodekeys.length) {
1311
- var childinj = _injChild(inj, nki, List<dynamic>.from(nodekeys));
1312
- var nodekey = childinj.key;
1313
- childinj.mode = S_MKEYPRE;
1314
- var prekey = _injectstr(jsString(nodekey), store, childinj);
1315
- nodekeys = (childinj.keys as List).map((e) => jsString(e)).toList();
1316
- if (prekey != null) {
1317
- childinj.ival = getprop(val, prekey);
1318
- childinj.mode = S_MVAL;
1319
- inject(childinj.ival, store, childinj);
1320
- nodekeys = (childinj.keys as List).map((e) => jsString(e)).toList();
1321
- childinj.mode = S_MKEYPOST;
1322
- _injectstr(jsString(nodekey), store, childinj);
1323
- nodekeys = (childinj.keys as List).map((e) => jsString(e)).toList();
1324
- }
1325
- nki = childinj.keyi + 1;
1326
- }
1327
- rv = val;
1328
- } else if (val is String) {
1329
- inj.mode = S_MVAL;
1330
- var nv = _injectstr(val, store, inj);
1331
- if (!isSkip(nv)) _injSetval(inj, nv);
1332
- rv = nv;
1333
- } else {
1334
- rv = val;
1335
- }
1336
-
1337
- if (inj.modify != null && !isSkip(rv)) {
1338
- var mkey = inj.key;
1339
- var mparent = inj.parent;
1340
- var mval = getprop(mparent, mkey);
1341
- inj.modify!(mval, mkey, mparent, inj);
1342
- }
1343
-
1344
- inj.ival = rv;
1345
-
1346
- if (inj.prior == null && inj.root != null && haskey(inj.root, S_DTOP)) {
1347
- return getprop(inj.root, S_DTOP);
1348
- }
1349
- if (inj.key == S_DTOP && inj.parent != null && haskey(inj.parent, S_DTOP)) {
1350
- return getprop(inj.parent, S_DTOP);
1351
- }
1352
- return rv;
1353
- }
1354
-
1355
- dynamic injectHandler(dynamic inj, dynamic val, dynamic ref, dynamic store) {
1356
- var iscmd =
1357
- isfunc(val) && (ref == null || (ref is String && ref.startsWith(S_DS)));
1358
- if (iscmd) {
1359
- return val(inj, val, ref, store);
1360
- } else if ((inj as Inj).mode == S_MVAL && inj.full) {
1361
- _injSetval(inj, val);
1362
- return val;
1363
- }
1364
- return val;
1365
- }
1366
-
1367
- dynamic _injectstr(String val, dynamic store, [Inj? inj]) {
1368
- if (val == S_MT) return S_MT;
1369
- var m = _R_INJECT_FULL.firstMatch(val);
1370
- if (m != null) {
1371
- if (inj != null) inj.full = true;
1372
- var pathref0 = m.group(1)!;
1373
- var pathref = pathref0.length > 3
1374
- ? pathref0.replaceAll('\$BT', S_BT).replaceAll('\$DS', S_DS)
1375
- : pathref0;
1376
- return getpath(store, pathref, inj);
1377
- }
1378
- var out = val.replaceAllMapped(_R_INJECT_PART, (mm) {
1379
- var ref0 = mm.group(1)!;
1380
- var ref = ref0.length > 3
1381
- ? ref0.replaceAll('\$BT', S_BT).replaceAll('\$DS', S_DS)
1382
- : ref0;
1383
- if (inj != null) inj.full = false;
1384
- var found = getpath(store, ref, inj);
1385
- if (found == null) return S_MT;
1386
- if (found is String) return found == '__NULL__' ? 'null' : found;
1387
- if (isfunc(found)) return S_MT;
1388
- try {
1389
- return jsonEncode(found);
1390
- } catch (_) {
1391
- return stringify(found);
1392
- }
1393
- });
1394
- if (inj != null && isfunc(inj.handler)) {
1395
- inj.full = true;
1396
- return inj.handler(inj, out, val, store);
1397
- }
1398
- return out;
1399
- }
1400
-
1401
- // ---------------------------------------------------------------------------
1402
- // transform commands
1403
- // ---------------------------------------------------------------------------
1404
-
1405
- dynamic _transformDelete(dynamic inj, dynamic val, dynamic ref, dynamic store) {
1406
- delprop((inj as Inj).parent, inj.key);
1407
- return null;
1408
- }
1409
-
1410
- dynamic _transformCopy(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1411
- var inj = inj0 as Inj;
1412
- if (inj.mode == S_MKEYPRE || inj.mode == S_MKEYPOST) return inj.key;
1413
- var out = _lookup(inj.dparent, inj.key);
1414
- _injSetval(inj, out);
1415
- return out;
1416
- }
1417
-
1418
- dynamic _transformKey(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1419
- var inj = inj0 as Inj;
1420
- if (inj.mode != S_MVAL) return null;
1421
- var keyspec = _lookup(inj.parent, S_BKEY);
1422
- if (keyspec != null) {
1423
- delprop(inj.parent, S_BKEY);
1424
- return getprop(inj.dparent, keyspec);
1425
- }
1426
- var anno = _lookup(inj.parent, S_BANNO);
1427
- var fromanno = _lookup(anno, S_KEY);
1428
- if (fromanno != null) return fromanno;
1429
- return getelem(inj.path, -2);
1430
- }
1431
-
1432
- dynamic _transformAnno(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1433
- delprop((inj0 as Inj).parent, S_BANNO);
1434
- return null;
1435
- }
1436
-
1437
- dynamic _transformMerge(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1438
- var inj = inj0 as Inj;
1439
- if (inj.mode == S_MKEYPRE) return inj.key;
1440
- if (inj.mode == S_MKEYPOST) {
1441
- var args0 = getprop(inj.parent, inj.key);
1442
- var args = islist(args0) ? args0 : [args0];
1443
- _injSetval(inj, null);
1444
- var mergelist = flatten([
1445
- [inj.parent],
1446
- args,
1447
- [clone(inj.parent)]
1448
- ]);
1449
- merge(mergelist);
1450
- return inj.key;
1451
- }
1452
- return null;
1453
- }
1454
-
1455
- dynamic _transformEach(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1456
- var inj = inj0 as Inj;
1457
- if (islist(inj.keys)) slice(inj.keys, 0, 1, true);
1458
- if (inj.mode != S_MVAL) return null;
1459
- var parent = inj.parent;
1460
- var srcpath = size(parent) > 1 ? getelem(parent, 1) : null;
1461
- var childTm = size(parent) > 2 ? clone(getelem(parent, 2)) : null;
1462
- var srcstore = getprop(store, inj.base, store);
1463
- var src = getpath(srcstore, srcpath, inj);
1464
- var tkey = getelem(inj.path, -2);
1465
- var nodes = inj.nodes;
1466
- var target = () {
1467
- var t = getelem(nodes, -2);
1468
- return t == null ? getelem(nodes, -1) : t;
1469
- }();
1470
- var tval = <dynamic>[];
1471
- dynamic rval = <dynamic>[];
1472
- if (isnode(src)) {
1473
- if (src is List) {
1474
- for (var _ in src) {
1475
- tval.add(clone(childTm));
1476
- }
1477
- } else if (src is Map) {
1478
- src.forEach((k, _) {
1479
- var cc = clone(childTm);
1480
- if (ismap(cc)) setprop(cc, S_BANNO, <String, dynamic>{S_KEY: k});
1481
- tval.add(cc);
1482
- });
1483
- }
1484
- var tcurrent = src is Map
1485
- ? src.values.toList()
1486
- : (src is List ? List<dynamic>.from(src) : src);
1487
- if (tval.isNotEmpty) {
1488
- var path = inj.path;
1489
- var ckey = getelem(path, -2);
1490
- var plist = path is List ? List<dynamic>.from(path) : <dynamic>[];
1491
- var tpath =
1492
- plist.isEmpty ? <dynamic>[] : plist.sublist(0, plist.length - 1);
1493
- var dpath = <dynamic>[S_DTOP];
1494
- if (srcpath is String && srcpath != S_MT) {
1495
- for (var p in srcpath.split(S_DT)) {
1496
- if (p != S_MT) dpath.add(p);
1497
- }
1498
- }
1499
- if (ckey != null) dpath.add('\$:' + jsString(ckey));
1500
- dynamic tcur = <String, dynamic>{jsString(ckey): tcurrent};
1501
- if (size(tpath) > 1) {
1502
- var pkey = getelem(path, -3, S_DTOP);
1503
- dpath.add('\$:' + jsString(pkey));
1504
- tcur = <String, dynamic>{jsString(pkey): tcur};
1505
- }
1506
- var tinj = _injChild(inj, 0, ckey != null ? [ckey] : <dynamic>[]);
1507
- tinj.path = tpath;
1508
- var nlist = nodes is List ? List<dynamic>.from(nodes) : <dynamic>[];
1509
- tinj.nodes =
1510
- nlist.isEmpty ? <dynamic>[] : nlist.sublist(0, nlist.length - 1);
1511
- tinj.parent = size(tinj.nodes) > 0 ? getelem(tinj.nodes, -1) : null;
1512
- if (ckey != null && tinj.parent != null) setprop(tinj.parent, ckey, tval);
1513
- tinj.ival = tval;
1514
- tinj.dpath = dpath;
1515
- tinj.dparent = tcur;
1516
- inject(tval, store, tinj);
1517
- rval = tinj.ival;
1518
- }
1519
- }
1520
- setprop(target, tkey, rval);
1521
- return (islist(rval) && size(rval) > 0) ? getelem(rval, 0) : null;
1522
- }
1523
-
1524
- dynamic _transformPack(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1525
- var inj = inj0 as Inj;
1526
- if (inj.mode != S_MKEYPRE || inj.key is! String) return null;
1527
- var parent = inj.parent;
1528
- var path = inj.path;
1529
- var nodes = inj.nodes;
1530
- var argsVal = getprop(parent, inj.key);
1531
- if (!islist(argsVal) || size(argsVal) < 2) return null;
1532
- var srcpath = getelem(argsVal, 0);
1533
- var origchildspec = getelem(argsVal, 1);
1534
- var tkey = getelem(path, -2);
1535
- var pathsize = size(path);
1536
- var target = () {
1537
- var t = getelem(nodes, pathsize - 2);
1538
- return t == null ? getelem(nodes, pathsize - 1) : t;
1539
- }();
1540
- var srcstore = getprop(store, inj.base, store);
1541
- var src0 = getpath(srcstore, srcpath, inj);
1542
- dynamic src;
1543
- if (!islist(src0)) {
1544
- if (ismap(src0)) {
1545
- var ns = <dynamic>[];
1546
- for (var p in itemsPairs(src0)) {
1547
- setprop(p[1], S_BANNO, <String, dynamic>{S_KEY: p[0]});
1548
- ns.add(p[1]);
1549
- }
1550
- src = ns;
1551
- } else {
1552
- src = null;
1553
- }
1554
- } else {
1555
- src = src0;
1556
- }
1557
- if (src == null) return null;
1558
- var keypath = getprop(origchildspec, S_BKEY);
1559
- var childspec = delprop(origchildspec, S_BKEY);
1560
- var child = getprop(childspec, S_BVAL, childspec);
1561
- var tval = <String, dynamic>{};
1562
- for (var p in itemsPairs(src)) {
1563
- var srckey = p[0];
1564
- var srcnode = p[1];
1565
- dynamic k;
1566
- if (keypath == null) {
1567
- k = srckey;
1568
- } else if (keypath is String && keypath.startsWith(S_BT)) {
1569
- k = inject(
1570
- keypath,
1571
- merge([
1572
- <String, dynamic>{},
1573
- store,
1574
- <String, dynamic>{S_DTOP: srcnode}
1575
- ], 1));
1576
- } else {
1577
- k = getpath(srcnode, keypath, inj);
1578
- }
1579
- var tchild = clone(child);
1580
- setprop(tval, k, tchild);
1581
- var anno = getprop(srcnode, S_BANNO);
1582
- if (anno == null) {
1583
- delprop(tchild, S_BANNO);
1584
- } else {
1585
- setprop(tchild, S_BANNO, anno);
1586
- }
1587
- }
1588
- dynamic rval = <String, dynamic>{};
1589
- if (!isempty(tval)) {
1590
- var tsrc = <String, dynamic>{};
1591
- var srcList = src is List ? src : <dynamic>[];
1592
- for (var i = 0; i < srcList.length; i++) {
1593
- var node = srcList[i];
1594
- dynamic kn;
1595
- if (keypath == null) {
1596
- kn = i;
1597
- } else if (keypath is String && keypath.startsWith(S_BT)) {
1598
- kn = inject(
1599
- keypath,
1600
- merge([
1601
- <String, dynamic>{},
1602
- store,
1603
- <String, dynamic>{S_DTOP: node}
1604
- ], 1));
1605
- } else {
1606
- kn = getpath(node, keypath, inj);
1607
- }
1608
- setprop(tsrc, kn, node);
1609
- }
1610
- var tpath = slice(inj.path, -1);
1611
- var ckey = getelem(inj.path, -2);
1612
- var dpath = flatten(
1613
- [S_DTOP, (srcpath as String).split(S_DT), '\$:' + jsString(ckey)]);
1614
- dynamic tcur = <String, dynamic>{jsString(ckey): tsrc};
1615
- if (size(tpath) > 1) {
1616
- var pkey = getelem(inj.path, -3, S_DTOP);
1617
- (dpath as List).add('\$:' + jsString(pkey));
1618
- tcur = <String, dynamic>{jsString(pkey): tcur};
1619
- }
1620
- var tinj = _injChild(inj, 0, [ckey]);
1621
- tinj.path = tpath;
1622
- tinj.nodes = slice(inj.nodes, -1);
1623
- tinj.parent = getelem(tinj.nodes, -1);
1624
- tinj.ival = tval;
1625
- tinj.dpath = dpath;
1626
- tinj.dparent = tcur;
1627
- inject(tval, store, tinj);
1628
- rval = tinj.ival;
1629
- }
1630
- setprop(target, tkey, rval);
1631
- return null;
1632
- }
1633
-
1634
- dynamic _transformRef(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1635
- var inj = inj0 as Inj;
1636
- if (inj.mode != S_MVAL) return null;
1637
- var nodes = inj.nodes;
1638
- var refpath = _lookup(inj.parent, 1);
1639
- inj.keyi = size(inj.keys);
1640
- var specFunc = getprop(store, S_DSPEC);
1641
- if (!isfunc(specFunc)) return null;
1642
- var spec = specFunc();
1643
- var refv = getpath(spec, refpath);
1644
- var hasSub = false;
1645
- if (isnode(refv)) {
1646
- walk(refv, after: (k, v, p, pp) {
1647
- if (v == '`\$REF`') hasSub = true;
1648
- return v;
1649
- });
1650
- }
1651
- var tref = clone(refv);
1652
- var cpath = slice(inj.path, 0, size(inj.path) - 3);
1653
- var tpath = slice(inj.path, 0, size(inj.path) - 1);
1654
- var tcur = getpath(store, cpath);
1655
- var tval = getpath(store, tpath);
1656
- dynamic rval;
1657
- if (refv != null && (!hasSub || tval != null)) {
1658
- var cs = _injChild(inj, 0, [getelem(tpath, -1)]);
1659
- cs.path = tpath;
1660
- cs.nodes = slice(inj.nodes, 0, size(inj.nodes) - 1);
1661
- cs.parent = getelem(nodes, -2);
1662
- cs.ival = tref;
1663
- cs.dparent = tcur;
1664
- inject(tref, store, cs);
1665
- rval = cs.ival;
1666
- }
1667
- _injSetval(inj, rval, 2);
1668
- if (islist(inj.parent) && inj.prior != null) {
1669
- inj.prior!.keyi = inj.prior!.keyi - 1;
1670
- }
1671
- return val;
1672
- }
1673
-
1674
- String _jsstr(dynamic v) {
1675
- if (v == null) return 'null';
1676
- if (v is bool) return v ? 'true' : 'false';
1677
- return jsString(v);
1678
- }
1679
-
1680
- final Map<String, dynamic Function(dynamic, dynamic)> _FORMATTER = {
1681
- 'identity': (k, v) => v,
1682
- 'upper': (k, v) => isnode(v) ? v : _jsstr(v).toUpperCase(),
1683
- 'lower': (k, v) => isnode(v) ? v : _jsstr(v).toLowerCase(),
1684
- 'string': (k, v) => isnode(v) ? v : _jsstr(v),
1685
- 'number': (k, v) {
1686
- if (isnode(v)) return v;
1687
- var n = num.tryParse(_jsstr(v)) ?? 0;
1688
- if (n is double && n.isNaN) n = 0;
1689
- return (n == n.truncateToDouble()) ? n.toInt() : n;
1690
- },
1691
- 'integer': (k, v) {
1692
- if (isnode(v)) return v;
1693
- var n = num.tryParse(_jsstr(v)) ?? 0;
1694
- if (n is double && n.isNaN) n = 0;
1695
- return n.toInt();
1696
- },
1697
- 'concat': (k, v) {
1698
- if (k == null && islist(v)) {
1699
- return join(itemsV(v, (n) => isnode(n[1]) ? S_MT : _jsstr(n[1])), S_MT);
1700
- }
1701
- return v;
1702
- },
1703
- };
1704
-
1705
- bool checkPlacement(int modes, String ijname, int parentTypes, Inj inj) {
1706
- var modenum = _MODE_TO_NUM[inj.mode] ?? 0;
1707
- if ((modes & modenum) == 0) {
1708
- var allowed = [M_KEYPRE, M_KEYPOST, M_VAL].where((m) => (modes & m) != 0);
1709
- var placements = allowed.map((m) => m == M_VAL ? 'value' : 'key').join(',');
1710
- var cur = modenum == M_VAL ? 'value' : 'key';
1711
- setprop(inj.errs, size(inj.errs),
1712
- '\$$ijname: invalid placement as $cur, expected: $placements.');
1713
- return false;
1714
- }
1715
- if (!isempty(parentTypes)) {
1716
- var ptype = typify(inj.parent);
1717
- if ((parentTypes & ptype) == 0) {
1718
- setprop(inj.errs, size(inj.errs),
1719
- '\$$ijname: invalid placement in parent ${typename(ptype)}, expected: ${typename(parentTypes)}.');
1720
- return false;
1721
- }
1722
- }
1723
- return true;
1724
- }
1725
-
1726
- dynamic injectorArgs(List<int> argTypes, dynamic args) {
1727
- var numargs = argTypes.length;
1728
- var found = List<dynamic>.filled(1 + numargs, null, growable: true);
1729
- for (var argi = 0; argi < numargs; argi++) {
1730
- var arg = getelem(args, argi);
1731
- var argType = typify(arg);
1732
- if ((argTypes[argi] & argType) == 0) {
1733
- found[0] =
1734
- 'invalid argument: ${stringify(arg, 22)} (${typename(argType)} at position ${1 + argi}) is not of type: ${typename(argTypes[argi])}.';
1735
- return found;
1736
- }
1737
- found[1 + argi] = arg;
1738
- }
1739
- return found;
1740
- }
1741
-
1742
- Inj injectChild(dynamic child, dynamic store, Inj inj) {
1743
- var cinj = inj;
1744
- if (inj.prior != null) {
1745
- if (inj.prior!.prior != null) {
1746
- var c = _injChild(inj.prior!.prior!, inj.prior!.keyi, inj.prior!.keys);
1747
- c.ival = child;
1748
- setprop(c.parent, inj.prior!.key, child);
1749
- cinj = c;
1750
- } else {
1751
- var c = _injChild(inj.prior!, inj.keyi, inj.keys);
1752
- c.ival = child;
1753
- setprop(c.parent, inj.key, child);
1754
- cinj = c;
1755
- }
1756
- }
1757
- inject(child, store, cinj);
1758
- return cinj;
1759
- }
1760
-
1761
- dynamic _transformFormat(
1762
- dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1763
- var inj = inj0 as Inj;
1764
- slice(inj.keys, 0, 1, true);
1765
- if (inj.mode != S_MVAL) return null;
1766
- var name = _lookup(inj.parent, 1);
1767
- var child = _lookup(inj.parent, 2);
1768
- var tkey = getelem(inj.path, -2);
1769
- var target = () {
1770
- var t = getelem(inj.nodes, -2);
1771
- return t == null ? getelem(inj.nodes, -1) : t;
1772
- }();
1773
- var cinj = injectChild(child, store, inj);
1774
- var resolved = cinj.ival;
1775
- dynamic Function(dynamic, dynamic)? formatter;
1776
- if ((T_function & typify(name)) > 0) {
1777
- formatter = (k, v) => name(_dummyInj(), v, jsString(k), null);
1778
- } else {
1779
- formatter = _FORMATTER[jsString(name)];
1780
- }
1781
- if (formatter == null) {
1782
- setprop(inj.errs, size(inj.errs),
1783
- '\$FORMAT: unknown format: ${jsString(name)}.');
1784
- return null;
1785
- }
1786
- var out = walk(resolved, after: (k, v, p, pp) => formatter!(k, v));
1787
- setprop(target, tkey, out);
1788
- return out;
1789
- }
1790
-
1791
- dynamic _transformApply(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1792
- var inj = inj0 as Inj;
1793
- if (!checkPlacement(M_VAL, 'APPLY', T_list, inj)) return null;
1794
- var res = injectorArgs([T_function, T_any], slice(inj.parent, 1));
1795
- var err = getelem(res, 0);
1796
- var applyFn = getelem(res, 1);
1797
- var child = size(res) > 2 ? getelem(res, 2) : null;
1798
- if (err != null) {
1799
- setprop(inj.errs, size(inj.errs), '\$APPLY: ' + jsString(err));
1800
- return null;
1801
- }
1802
- var tkey = getelem(inj.path, -2);
1803
- var target = () {
1804
- var t = getelem(inj.nodes, -2);
1805
- return t == null ? getelem(inj.nodes, -1) : t;
1806
- }();
1807
- var cinj = injectChild(child, store, inj);
1808
- var resolved = cinj.ival;
1809
- var out = applyFn(resolved, store, cinj);
1810
- setprop(target, tkey, out);
1811
- return out;
1812
- }
1813
-
1814
- dynamic transform(dynamic data, dynamic spec0, [dynamic injdef]) {
1815
- var origspec = spec0;
1816
- var spec = clone(spec0);
1817
- var extra = injdef != null ? getprop(injdef, 'extra') : null;
1818
- var collect = injdef != null && getprop(injdef, 'errs') != null;
1819
- var errs = collect ? getprop(injdef, 'errs') : <dynamic>[];
1820
- var extraTransforms = <String, dynamic>{};
1821
- var extraData = <String, dynamic>{};
1822
- if (extra != null) {
1823
- for (var p in itemsPairs(extra)) {
1824
- if ((p[0] as String).startsWith(S_DS)) {
1825
- extraTransforms[p[0]] = p[1];
1826
- } else {
1827
- extraData[p[0]] = p[1];
1828
- }
1829
- }
1830
- }
1831
- var dataClone =
1832
- merge([isempty(extraData) ? null : clone(extraData), clone(data)]);
1833
- var store = <String, dynamic>{};
1834
- store[S_DTOP] = dataClone;
1835
- store[S_DSPEC] = ([a, b, c, d]) => origspec;
1836
- store['\$BT'] = ([a, b, c, d]) => S_BT;
1837
- store['\$DS'] = ([a, b, c, d]) => S_DS;
1838
- store['\$WHEN'] = ([a, b, c, d]) => '1970-01-01T00:00:00.000Z';
1839
- store['\$DELETE'] = _transformDelete;
1840
- store['\$COPY'] = _transformCopy;
1841
- store['\$KEY'] = _transformKey;
1842
- store['\$ANNO'] = _transformAnno;
1843
- store['\$MERGE'] = _transformMerge;
1844
- store['\$EACH'] = _transformEach;
1845
- store['\$PACK'] = _transformPack;
1846
- store['\$REF'] = _transformRef;
1847
- store['\$FORMAT'] = _transformFormat;
1848
- store['\$APPLY'] = _transformApply;
1849
- for (var p in itemsPairs(extraTransforms)) {
1850
- store[p[0]] = p[1];
1851
- }
1852
- store[S_DERRS] = errs;
1853
-
1854
- var idef = <String, dynamic>{};
1855
- if (injdef is Map) {
1856
- injdef.forEach((k, v) => idef[k.toString()] = v);
1857
- }
1858
- idef['errs'] = errs;
1859
- var out = inject(spec, store, idef);
1860
- if (size(errs) > 0 && !collect) {
1861
- throw StructError(join(errs, ' | '));
1862
- }
1863
- return out;
1864
- }
1865
-
1866
- class StructError implements Exception {
1867
- final String message;
1868
- StructError(this.message);
1869
- @override
1870
- String toString() => message;
1871
- }
1872
-
1873
- // ---------------------------------------------------------------------------
1874
- // validate
1875
- // ---------------------------------------------------------------------------
1876
-
1877
- String _invalidTypeMsg(
1878
- dynamic path, String needtype, int vt, dynamic v, String whence) {
1879
- var vs = v == null ? 'no value' : stringify(v);
1880
- return 'Expected ' +
1881
- (size(path) > 1 ? 'field ' + pathify(path, 1) + ' to be ' : '') +
1882
- needtype +
1883
- ', but found ' +
1884
- (v != null ? typename(vt) + S_VIZ : '') +
1885
- vs +
1886
- '.';
1887
- }
1888
-
1889
- void _pushErr(Inj inj, String msg) => setprop(inj.errs, size(inj.errs), msg);
1890
-
1891
- dynamic _validateString(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1892
- var inj = inj0 as Inj;
1893
- var out = _lookup(inj.dparent, inj.key);
1894
- var t = typify(out);
1895
- if ((T_string & t) == 0) {
1896
- _pushErr(inj, _invalidTypeMsg(inj.path, S_string, t, out, 'V1010'));
1897
- return null;
1898
- }
1899
- if (out == S_MT) {
1900
- _pushErr(inj, 'Empty string at ' + pathify(inj.path, 1));
1901
- return null;
1902
- }
1903
- return out;
1904
- }
1905
-
1906
- dynamic _validateType(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1907
- var inj = inj0 as Inj;
1908
- var tname = (ref is String && ref.length > 1)
1909
- ? ref.substring(1).toLowerCase()
1910
- : 'any';
1911
- var idx = _TYPENAME.indexOf(tname);
1912
- var typev0 = idx >= 0 ? (1 << (31 - idx)) : 0;
1913
- var typev = tname == S_nil ? (typev0 | T_null) : typev0;
1914
- var out = _lookup(inj.dparent, inj.key);
1915
- var t = typify(out);
1916
- if ((t & typev) == 0) {
1917
- _pushErr(inj, _invalidTypeMsg(inj.path, tname, t, out, 'V1001'));
1918
- return null;
1919
- }
1920
- return out;
1921
- }
1922
-
1923
- dynamic _validateAny(dynamic inj0, dynamic val, dynamic ref, dynamic store) =>
1924
- _lookup((inj0 as Inj).dparent, inj0.key);
1925
-
1926
- dynamic _validateChild(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1927
- var inj = inj0 as Inj;
1928
- var parent = inj.parent;
1929
- var key = inj.key;
1930
- var path = inj.path;
1931
- var keys = inj.keys;
1932
- if (inj.mode == S_MKEYPRE) {
1933
- var childtm = getprop(parent, key);
1934
- var pkey = getelem(path, -2);
1935
- var tval = getprop(inj.dparent, pkey);
1936
- if (tval == null) {
1937
- for (var ckey in keysof(<String, dynamic>{})) {
1938
- setprop(parent, ckey, clone(childtm));
1939
- setprop(keys, size(keys), ckey);
1940
- }
1941
- delprop(parent, key);
1942
- return null;
1943
- } else if (!ismap(tval)) {
1944
- _pushErr(
1945
- inj,
1946
- _invalidTypeMsg(slice(path, 0, size(path) - 1), S_object,
1947
- typify(tval), tval, 'V0220'));
1948
- return null;
1949
- } else {
1950
- for (var ckey in keysof(tval)) {
1951
- setprop(parent, ckey, clone(childtm));
1952
- setprop(keys, size(keys), ckey);
1953
- }
1954
- delprop(parent, key);
1955
- return null;
1956
- }
1957
- } else if (inj.mode == S_MVAL) {
1958
- var childtm = getprop(parent, 1);
1959
- if (!islist(parent)) {
1960
- _pushErr(inj, 'Invalid \$CHILD as value');
1961
- return null;
1962
- } else if (inj.dparent == null) {
1963
- (parent as List).clear();
1964
- return null;
1965
- } else if (!islist(inj.dparent)) {
1966
- _pushErr(
1967
- inj,
1968
- _invalidTypeMsg(slice(path, 0, size(path) - 1), S_list,
1969
- typify(inj.dparent), inj.dparent, 'V0230'));
1970
- inj.keyi = size(parent);
1971
- return inj.dparent;
1972
- } else {
1973
- for (var p in itemsPairs(inj.dparent)) {
1974
- setprop(parent, p[0], clone(childtm));
1975
- }
1976
- var n = size(inj.dparent);
1977
- var pl = parent as List;
1978
- while (pl.length > n) {
1979
- pl.removeLast();
1980
- }
1981
- inj.keyi = 0;
1982
- return getprop(inj.dparent, 0);
1983
- }
1984
- }
1985
- return null;
1986
- }
1987
-
1988
- dynamic _validateOne(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
1989
- var inj = inj0 as Inj;
1990
- if (inj.mode != S_MVAL) return null;
1991
- var parent = inj.parent;
1992
- if (!islist(parent) || inj.keyi != 0) {
1993
- _pushErr(
1994
- inj,
1995
- 'The \$ONE validator at field ' +
1996
- pathify(inj.path, 1, 1) +
1997
- ' must be the first element of an array.');
1998
- return null;
1999
- }
2000
- inj.keyi = size(inj.keys);
2001
- _injSetval(inj, inj.dparent, 2);
2002
- inj.path = slice(inj.path, 0, size(inj.path) - 1);
2003
- inj.key = getelem(inj.path, -1);
2004
- var tvals = slice(parent, 1);
2005
- if (size(tvals) == 0) {
2006
- _pushErr(
2007
- inj,
2008
- 'The \$ONE validator at field ' +
2009
- pathify(inj.path, 1, 1) +
2010
- ' must have at least one argument.');
2011
- return null;
2012
- }
2013
- var matched = false;
2014
- for (var tv in (tvals as List)) {
2015
- if (matched) break;
2016
- var terrs = <dynamic>[];
2017
- var vstore = merge([<String, dynamic>{}, store], 1);
2018
- setprop(vstore, S_DTOP, inj.dparent);
2019
- var vcurrent = validate(
2020
- inj.dparent, tv, {'extra': vstore, 'errs': terrs, 'meta': inj.meta});
2021
- _injSetval(inj, vcurrent, -2);
2022
- if (size(terrs) == 0) matched = true;
2023
- }
2024
- if (!matched) {
2025
- var valdesc = tvals.map((x) => stringify(x)).join(', ');
2026
- valdesc = valdesc.replaceAllMapped(
2027
- _R_TRANSFORM_NAME, (m) => m.group(1)!.toLowerCase());
2028
- _pushErr(
2029
- inj,
2030
- _invalidTypeMsg(inj.path, (size(tvals) > 1 ? 'one of ' : '') + valdesc,
2031
- typify(inj.dparent), inj.dparent, 'V0210'));
2032
- }
2033
- return null;
2034
- }
2035
-
2036
- dynamic _validateExact(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
2037
- var inj = inj0 as Inj;
2038
- if (inj.mode != S_MVAL) {
2039
- delprop(inj.parent, inj.key);
2040
- return null;
2041
- }
2042
- var parent = inj.parent;
2043
- if (!islist(parent) || inj.keyi != 0) {
2044
- _pushErr(
2045
- inj,
2046
- 'The \$EXACT validator at field ' +
2047
- pathify(inj.path, 1, 1) +
2048
- ' must be the first element of an array.');
2049
- return null;
2050
- }
2051
- inj.keyi = size(inj.keys);
2052
- _injSetval(inj, inj.dparent, 2);
2053
- inj.path = slice(inj.path, 0, size(inj.path) - 1);
2054
- inj.key = getelem(inj.path, -1);
2055
- var tvals = slice(parent, 1);
2056
- if (size(tvals) == 0) {
2057
- _pushErr(
2058
- inj,
2059
- 'The \$EXACT validator at field ' +
2060
- pathify(inj.path, 1, 1) +
2061
- ' must have at least one argument.');
2062
- return null;
2063
- }
2064
- var matched = false;
2065
- for (var tv in (tvals as List)) {
2066
- if (!matched && veq(tv, inj.dparent)) matched = true;
2067
- }
2068
- if (!matched) {
2069
- var valdesc = tvals.map((x) => stringify(x)).join(', ');
2070
- valdesc = valdesc.replaceAllMapped(
2071
- _R_TRANSFORM_NAME, (m) => m.group(1)!.toLowerCase());
2072
- _pushErr(
2073
- inj,
2074
- _invalidTypeMsg(
2075
- inj.path,
2076
- (size(inj.path) > 1 ? '' : 'value ') +
2077
- 'exactly equal to ' +
2078
- (size(tvals) == 1 ? '' : 'one of ') +
2079
- valdesc,
2080
- typify(inj.dparent),
2081
- inj.dparent,
2082
- 'V0110'));
2083
- }
2084
- return null;
2085
- }
2086
-
2087
- bool veq(dynamic a, dynamic b) {
2088
- if (a == null && b == null) return true;
2089
- if (a is bool || b is bool) return a == b;
2090
- if (a is num && b is num) return a == b;
2091
- if (a is String && b is String) return a == b;
2092
- if (a is List && b is List) {
2093
- if (a.length != b.length) return false;
2094
- for (var i = 0; i < a.length; i++) {
2095
- if (!veq(a[i], b[i])) return false;
2096
- }
2097
- return true;
2098
- }
2099
- if (a is Map && b is Map) {
2100
- if (a.length != b.length) return false;
2101
- for (var k in a.keys) {
2102
- if (!b.containsKey(k) || !veq(a[k], b[k])) return false;
2103
- }
2104
- return true;
2105
- }
2106
- return identical(a, b);
2107
- }
2108
-
2109
- void _validation(dynamic pval, dynamic key, dynamic parent, dynamic inj0) {
2110
- var inj = inj0 as Inj;
2111
- if (isSkip(pval)) return;
2112
- var exact = getprop(inj.meta, S_BEXACT, false);
2113
- var cval = getprop(inj.dparent, key);
2114
- var exactB = exact == true;
2115
- if (!exactB && cval == null) return;
2116
- var ptype = typify(pval);
2117
- if ((T_string & ptype) > 0 && jsString(pval).contains(S_DS)) return;
2118
- var ctype = typify(cval);
2119
- if (ptype != ctype && pval != null) {
2120
- _pushErr(
2121
- inj, _invalidTypeMsg(inj.path, typename(ptype), ctype, cval, 'V0010'));
2122
- } else if (ismap(cval)) {
2123
- if (!ismap(pval)) {
2124
- _pushErr(inj,
2125
- _invalidTypeMsg(inj.path, typename(ptype), ctype, cval, 'V0020'));
2126
- } else {
2127
- var ckeys = keysof(cval);
2128
- var pkeys = keysof(pval);
2129
- if (pkeys.isNotEmpty && getprop(pval, S_BOPEN) != true) {
2130
- // A child key is "unexpected" only when the shape does not CONTAIN it.
2131
- // Test presence, not `_lookup(...) == null`: a key that is present in
2132
- // the shape but maps to a null value (e.g. a record whose optional
2133
- // `serial_number` is null, merged into the shape by a `$AND` select)
2134
- // must NOT be rejected as unexpected.
2135
- var badkeys = ckeys.where((ck) =>
2136
- !(pval is Map && pval.containsKey(_mapKey(ck)))).toList();
2137
- if (badkeys.isNotEmpty) {
2138
- _pushErr(
2139
- inj,
2140
- 'Unexpected keys at field ' +
2141
- pathify(inj.path, 1) +
2142
- S_VIZ +
2143
- badkeys.join(', '));
2144
- }
2145
- } else {
2146
- merge([pval, cval]);
2147
- if (isnode(pval)) delprop(pval, S_BOPEN);
2148
- }
2149
- }
2150
- } else if (islist(cval)) {
2151
- if (!islist(pval)) {
2152
- _pushErr(inj,
2153
- _invalidTypeMsg(inj.path, typename(ptype), ctype, cval, 'V0030'));
2154
- }
2155
- } else if (exactB) {
2156
- if (!veq(cval, pval)) {
2157
- var pathmsg =
2158
- size(inj.path) > 1 ? 'at field ' + pathify(inj.path, 1) + ': ' : '';
2159
- _pushErr(
2160
- inj,
2161
- 'Value ' +
2162
- pathmsg +
2163
- jsString(cval) +
2164
- ' should equal ' +
2165
- jsString(pval) +
2166
- '.');
2167
- }
2168
- } else {
2169
- setprop(parent, key, cval);
2170
- }
2171
- }
2172
-
2173
- dynamic _validateHandler(
2174
- dynamic inj0, dynamic val, dynamic ref, dynamic store) {
2175
- var inj = inj0 as Inj;
2176
- var m = (ref is String) ? _R_META_PATH.firstMatch(ref) : null;
2177
- if (m != null) {
2178
- if (m.group(2) == '=') {
2179
- _injSetval(inj, [S_BEXACT, val]);
2180
- } else {
2181
- _injSetval(inj, val);
2182
- }
2183
- inj.keyi = -1;
2184
- return SKIP;
2185
- }
2186
- return injectHandler(inj, val, ref, store);
2187
- }
2188
-
2189
- dynamic validate(dynamic data, dynamic spec, [dynamic injdef]) {
2190
- var extra = getprop(injdef, 'extra');
2191
- var collect = injdef != null && getprop(injdef, 'errs') != null;
2192
- var errs = collect ? getprop(injdef, 'errs') : <dynamic>[];
2193
- var base = <String, dynamic>{};
2194
- for (var k in [
2195
- '\$DELETE',
2196
- '\$COPY',
2197
- '\$KEY',
2198
- '\$META',
2199
- '\$MERGE',
2200
- '\$EACH',
2201
- '\$PACK'
2202
- ]) {
2203
- base[k] = null;
2204
- }
2205
- base['\$STRING'] = _validateString;
2206
- for (var k in [
2207
- '\$NUMBER',
2208
- '\$INTEGER',
2209
- '\$DECIMAL',
2210
- '\$BOOLEAN',
2211
- '\$NULL',
2212
- '\$NIL',
2213
- '\$MAP',
2214
- '\$LIST',
2215
- '\$FUNCTION',
2216
- '\$INSTANCE'
2217
- ]) {
2218
- base[k] = _validateType;
2219
- }
2220
- base['\$ANY'] = _validateAny;
2221
- base['\$CHILD'] = _validateChild;
2222
- base['\$ONE'] = _validateOne;
2223
- base['\$EXACT'] = _validateExact;
2224
- var store = merge([
2225
- base,
2226
- extra == null ? <String, dynamic>{} : extra,
2227
- <String, dynamic>{S_DERRS: errs}
2228
- ], 1);
2229
- var meta = getprop(injdef, 'meta', <String, dynamic>{});
2230
- setprop(meta, S_BEXACT, getprop(meta, S_BEXACT, false));
2231
- var out = transform(data, spec, {
2232
- 'meta': meta,
2233
- 'extra': store,
2234
- 'modify': _validation,
2235
- 'handler': _validateHandler,
2236
- 'errs': errs,
2237
- });
2238
- if (size(errs) > 0 && !collect) {
2239
- throw StructError(join(errs, ' | '));
2240
- }
2241
- return out;
2242
- }
2243
-
2244
- // ---------------------------------------------------------------------------
2245
- // select
2246
- // ---------------------------------------------------------------------------
2247
-
2248
- dynamic _selectAnd(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
2249
- var inj = inj0 as Inj;
2250
- if (inj.mode == S_MKEYPRE) {
2251
- var terms = getprop(inj.parent, inj.key);
2252
- var ppath = slice(inj.path, -1);
2253
- var point = getpath(store, ppath);
2254
- var vstore = merge([<String, dynamic>{}, store], 1);
2255
- setprop(vstore, S_DTOP, point);
2256
- for (var p in itemsPairs(terms)) {
2257
- var terrs = <dynamic>[];
2258
- validate(point, p[1], {'extra': vstore, 'errs': terrs, 'meta': inj.meta});
2259
- if (size(terrs) != 0) {
2260
- _pushErr(
2261
- inj,
2262
- 'AND:' +
2263
- pathify(ppath) +
2264
- '⨯' +
2265
- stringify(point) +
2266
- ' fail:' +
2267
- stringify(terms));
2268
- }
2269
- }
2270
- var gkey = getelem(inj.path, -2);
2271
- var gp = getelem(inj.nodes, -2);
2272
- setprop(gp, gkey, point);
2273
- }
2274
- return null;
2275
- }
2276
-
2277
- dynamic _selectOr(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
2278
- var inj = inj0 as Inj;
2279
- if (inj.mode == S_MKEYPRE) {
2280
- var terms = getprop(inj.parent, inj.key);
2281
- var ppath = slice(inj.path, -1);
2282
- var point = getpath(store, ppath);
2283
- var vstore = merge([<String, dynamic>{}, store], 1);
2284
- setprop(vstore, S_DTOP, point);
2285
- var done = false;
2286
- for (var p in itemsPairs(terms)) {
2287
- if (done) break;
2288
- var terrs = <dynamic>[];
2289
- validate(point, p[1], {'extra': vstore, 'errs': terrs, 'meta': inj.meta});
2290
- if (size(terrs) == 0) {
2291
- var gkey = getelem(inj.path, -2);
2292
- var gp = getelem(inj.nodes, -2);
2293
- setprop(gp, gkey, point);
2294
- done = true;
2295
- }
2296
- }
2297
- if (!done) {
2298
- _pushErr(
2299
- inj,
2300
- 'OR:' +
2301
- pathify(ppath) +
2302
- '⨯' +
2303
- stringify(point) +
2304
- ' fail:' +
2305
- stringify(terms));
2306
- }
2307
- }
2308
- return null;
2309
- }
2310
-
2311
- dynamic _selectNot(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
2312
- var inj = inj0 as Inj;
2313
- if (inj.mode == S_MKEYPRE) {
2314
- var term = getprop(inj.parent, inj.key);
2315
- var ppath = slice(inj.path, -1);
2316
- var point = getpath(store, ppath);
2317
- var vstore = merge([<String, dynamic>{}, store], 1);
2318
- setprop(vstore, S_DTOP, point);
2319
- var terrs = <dynamic>[];
2320
- validate(point, term, {'extra': vstore, 'errs': terrs, 'meta': inj.meta});
2321
- if (size(terrs) == 0) {
2322
- _pushErr(
2323
- inj,
2324
- 'NOT:' +
2325
- pathify(ppath) +
2326
- '⨯' +
2327
- stringify(point) +
2328
- ' fail:' +
2329
- stringify(term));
2330
- }
2331
- var gkey = getelem(inj.path, -2);
2332
- var gp = getelem(inj.nodes, -2);
2333
- setprop(gp, gkey, point);
2334
- }
2335
- return null;
2336
- }
2337
-
2338
- bool _numCmp(dynamic a, dynamic b, String op) {
2339
- if (a is num && b is num) {
2340
- switch (op) {
2341
- case 'gt':
2342
- return a > b;
2343
- case 'lt':
2344
- return a < b;
2345
- case 'gte':
2346
- return a >= b;
2347
- case 'lte':
2348
- return a <= b;
2349
- }
2350
- }
2351
- return false;
2352
- }
2353
-
2354
- dynamic _selectCmp(dynamic inj0, dynamic val, dynamic ref, dynamic store) {
2355
- var inj = inj0 as Inj;
2356
- if (inj.mode == S_MKEYPRE) {
2357
- var term = getprop(inj.parent, inj.key);
2358
- var gkey = getelem(inj.path, -2);
2359
- var ppath = slice(inj.path, -1);
2360
- var point = getpath(store, ppath);
2361
- bool pass;
2362
- if (ref == '\$GT') {
2363
- pass = _numCmp(point, term, 'gt');
2364
- } else if (ref == '\$LT') {
2365
- pass = _numCmp(point, term, 'lt');
2366
- } else if (ref == '\$GTE') {
2367
- pass = _numCmp(point, term, 'gte');
2368
- } else if (ref == '\$LTE') {
2369
- pass = _numCmp(point, term, 'lte');
2370
- } else if (ref == '\$LIKE') {
2371
- pass = term is String ? RegExp(term).hasMatch(stringify(point)) : false;
2372
- } else {
2373
- pass = false;
2374
- }
2375
- if (pass) {
2376
- var gp = getelem(inj.nodes, -2);
2377
- setprop(gp, gkey, point);
2378
- } else {
2379
- _pushErr(
2380
- inj,
2381
- 'CMP: ' +
2382
- pathify(ppath) +
2383
- '⨯' +
2384
- stringify(point) +
2385
- ' fail:' +
2386
- jsString(ref) +
2387
- ' ' +
2388
- stringify(term));
2389
- }
2390
- }
2391
- return null;
2392
- }
2393
-
2394
- dynamic select(dynamic children0, dynamic query) {
2395
- if (!isnode(children0)) return <dynamic>[];
2396
- dynamic children;
2397
- if (ismap(children0)) {
2398
- children = itemsPairs(children0).map((p) {
2399
- setprop(p[1], S_DKEY, p[0]);
2400
- return p[1];
2401
- }).toList();
2402
- } else {
2403
- var src = children0 as List;
2404
- var out = <dynamic>[];
2405
- for (var i = 0; i < src.length; i++) {
2406
- var n = src[i];
2407
- if (ismap(n)) {
2408
- setprop(n, S_DKEY, i);
2409
- out.add(n);
2410
- } else {
2411
- out.add(n);
2412
- }
2413
- }
2414
- children = out;
2415
- }
2416
- var results = <dynamic>[];
2417
- var extra = <String, dynamic>{
2418
- '\$AND': _selectAnd,
2419
- '\$OR': _selectOr,
2420
- '\$NOT': _selectNot,
2421
- '\$GT': _selectCmp,
2422
- '\$LT': _selectCmp,
2423
- '\$GTE': _selectCmp,
2424
- '\$LTE': _selectCmp,
2425
- '\$LIKE': _selectCmp,
2426
- };
2427
- var q = clone(query);
2428
- walk(q, after: (k, v, p, pp) {
2429
- if (ismap(v)) setprop(v, S_BOPEN, getprop(v, S_BOPEN, true));
2430
- return v;
2431
- });
2432
- for (var child in (children as List)) {
2433
- var errs = <dynamic>[];
2434
- var injdef = {
2435
- 'errs': errs,
2436
- 'meta': <String, dynamic>{S_BEXACT: true},
2437
- 'extra': extra,
2438
- };
2439
- validate(child, clone(q), injdef);
2440
- if (size(errs) == 0) results.add(child);
2441
- }
2442
- return results;
2443
- }
2444
-
2445
- // ---------------------------------------------------------------------------
2446
- // builders
2447
- // ---------------------------------------------------------------------------
2448
-
2449
- dynamic jm(List<dynamic> kv) {
2450
- var m = <String, dynamic>{};
2451
- var n = kv.length;
2452
- for (var i = 0; i < n; i += 2) {
2453
- var k0 = kv[i];
2454
- var k = k0 == null ? 'null' : (k0 is String ? k0 : stringify(k0));
2455
- m[k] = (i + 1 < n) ? kv[i + 1] : null;
2456
- }
2457
- return m;
2458
- }
2459
-
2460
- dynamic jt(List<dynamic> v) => List<dynamic>.from(v);
2461
-
2462
- String tn(int t) => typename(t);