@voxgig/sdkgen 1.3.14 → 1.3.18

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 (549) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/action.js.map +1 -1
  3. package/dist/action/feature.js.map +1 -1
  4. package/dist/action/target.js.map +1 -1
  5. package/dist/cmp/AgentGuide.js.map +1 -1
  6. package/dist/cmp/AgentGuideContent.js.map +1 -1
  7. package/dist/cmp/AgentGuideFeature.js.map +1 -1
  8. package/dist/cmp/AgentGuideTop.js.map +1 -1
  9. package/dist/cmp/Changelog.js.map +1 -1
  10. package/dist/cmp/Deploy.js.map +1 -1
  11. package/dist/cmp/Entity.js +5 -1
  12. package/dist/cmp/Entity.js.map +1 -1
  13. package/dist/cmp/Feature.js +2 -1
  14. package/dist/cmp/Feature.js.map +1 -1
  15. package/dist/cmp/FeatureHook.js.map +1 -1
  16. package/dist/cmp/License.js.map +1 -1
  17. package/dist/cmp/Main.js.map +1 -1
  18. package/dist/cmp/Readme.js.map +1 -1
  19. package/dist/cmp/ReadmeEntity.js.map +1 -1
  20. package/dist/cmp/ReadmeErrors.js +1 -1
  21. package/dist/cmp/ReadmeErrors.js.map +1 -1
  22. package/dist/cmp/ReadmeExplanation.js +2 -2
  23. package/dist/cmp/ReadmeExplanation.js.map +1 -1
  24. package/dist/cmp/ReadmeHowto.js.map +1 -1
  25. package/dist/cmp/ReadmeInstall.js.map +1 -1
  26. package/dist/cmp/ReadmeIntro.js.map +1 -1
  27. package/dist/cmp/ReadmeModel.js.map +1 -1
  28. package/dist/cmp/ReadmeOptions.js.map +1 -1
  29. package/dist/cmp/ReadmeQuick.js.map +1 -1
  30. package/dist/cmp/ReadmeRef.js.map +1 -1
  31. package/dist/cmp/ReadmeTop.js +1 -1
  32. package/dist/cmp/ReadmeTop.js.map +1 -1
  33. package/dist/cmp/Security.js.map +1 -1
  34. package/dist/cmp/Test.js.map +1 -1
  35. package/dist/helpers/buildIdNames.js.map +1 -1
  36. package/dist/helpers/canonType.d.ts +3 -2
  37. package/dist/helpers/canonType.js +112 -24
  38. package/dist/helpers/canonType.js.map +1 -1
  39. package/dist/helpers/collectDeps.d.ts +1 -1
  40. package/dist/helpers/collectDeps.js +36 -13
  41. package/dist/helpers/collectDeps.js.map +1 -1
  42. package/dist/helpers/getMatchEntries.js.map +1 -1
  43. package/dist/helpers/naming.d.ts +7 -1
  44. package/dist/helpers/naming.js +90 -0
  45. package/dist/helpers/naming.js.map +1 -1
  46. package/dist/helpers/opExample.d.ts +1 -1
  47. package/dist/helpers/opExample.js +37 -20
  48. package/dist/helpers/opExample.js.map +1 -1
  49. package/dist/helpers/opShape.d.ts +5 -1
  50. package/dist/helpers/opShape.js +174 -7
  51. package/dist/helpers/opShape.js.map +1 -1
  52. package/dist/helpers/packageMeta.js.map +1 -1
  53. package/dist/sdkgen.d.ts +3 -3
  54. package/dist/sdkgen.js +12 -2
  55. package/dist/sdkgen.js.map +1 -1
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/dist/types.js.map +1 -1
  58. package/dist/utility.js.map +1 -1
  59. package/package.json +20 -14
  60. package/project/.sdk/model/target/cpp.aontu +4 -4
  61. package/project/.sdk/model/target/go-cli.aontu +17 -17
  62. package/project/.sdk/model/target/go-mcp.aontu +11 -11
  63. package/project/.sdk/model/target/go.aontu +1 -1
  64. package/project/.sdk/model/target/haskell.aontu +6 -3
  65. package/project/.sdk/model/target/java.aontu +4 -4
  66. package/project/.sdk/model/target/kotlin.aontu +4 -4
  67. package/project/.sdk/model/target/lean.aontu +51 -0
  68. package/project/.sdk/model/target/scala.aontu +4 -4
  69. package/project/.sdk/model/target/zig.aontu +12 -2
  70. package/project/.sdk/src/cmp/c/Config_c.ts +16 -4
  71. package/project/.sdk/src/cmp/c/EntityTypes_c.ts +167 -0
  72. package/project/.sdk/src/cmp/c/Entity_c.ts +3 -3
  73. package/project/.sdk/src/cmp/c/Main_c.ts +4 -0
  74. package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +192 -0
  75. package/project/.sdk/src/cmp/c/ReadmeExamplesTest_c.ts +169 -0
  76. package/project/.sdk/src/cmp/c/ReadmeExplanation_c.ts +55 -0
  77. package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +168 -0
  78. package/project/.sdk/src/cmp/c/ReadmeInstall_c.ts +52 -0
  79. package/project/.sdk/src/cmp/c/ReadmeIntro_c.ts +67 -0
  80. package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +151 -0
  81. package/project/.sdk/src/cmp/c/ReadmeOptions_c.ts +65 -0
  82. package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +225 -0
  83. package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +398 -0
  84. package/project/.sdk/src/cmp/c/ReadmeTopHowto_c.ts +24 -0
  85. package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +104 -0
  86. package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +86 -0
  87. package/project/.sdk/src/cmp/c/TestDirect_c.ts +3 -3
  88. package/project/.sdk/src/cmp/c/TestEntity_c.ts +10 -0
  89. package/project/.sdk/src/cmp/c/Test_c.ts +4 -0
  90. package/project/.sdk/src/cmp/c/utility_c.ts +8 -2
  91. package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +1 -1
  92. package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +182 -0
  93. package/project/.sdk/src/cmp/clojure/ReadmeExamplesTest_clojure.ts +65 -0
  94. package/project/.sdk/src/cmp/clojure/ReadmeExplanation_clojure.ts +44 -0
  95. package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +144 -0
  96. package/project/.sdk/src/cmp/clojure/ReadmeInstall_clojure.ts +51 -0
  97. package/project/.sdk/src/cmp/clojure/ReadmeIntro_clojure.ts +66 -0
  98. package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +156 -0
  99. package/project/.sdk/src/cmp/clojure/ReadmeOptions_clojure.ts +61 -0
  100. package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +210 -0
  101. package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +409 -0
  102. package/project/.sdk/src/cmp/clojure/ReadmeTopHowto_clojure.ts +24 -0
  103. package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +98 -0
  104. package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +78 -0
  105. package/project/.sdk/src/cmp/clojure/TestDirect_clojure.ts +58 -0
  106. package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +79 -0
  107. package/project/.sdk/src/cmp/clojure/Test_clojure.ts +21 -65
  108. package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +174 -0
  109. package/project/.sdk/src/cmp/cpp/Entity_cpp.ts +3 -3
  110. package/project/.sdk/src/cmp/cpp/MainEntity_cpp.ts +2 -2
  111. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +5 -0
  112. package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +170 -0
  113. package/project/.sdk/src/cmp/cpp/ReadmeExamplesTest_cpp.ts +136 -0
  114. package/project/.sdk/src/cmp/cpp/ReadmeExplanation_cpp.ts +45 -0
  115. package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +139 -0
  116. package/project/.sdk/src/cmp/cpp/ReadmeInstall_cpp.ts +42 -0
  117. package/project/.sdk/src/cmp/cpp/ReadmeIntro_cpp.ts +69 -0
  118. package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +155 -0
  119. package/project/.sdk/src/cmp/cpp/ReadmeOptions_cpp.ts +62 -0
  120. package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +234 -0
  121. package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +387 -0
  122. package/project/.sdk/src/cmp/cpp/ReadmeTopHowto_cpp.ts +24 -0
  123. package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +95 -0
  124. package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +70 -0
  125. package/project/.sdk/src/cmp/cpp/TestDirect_cpp.ts +3 -3
  126. package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +5 -1
  127. package/project/.sdk/src/cmp/cpp/Test_cpp.ts +4 -0
  128. package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +195 -0
  129. package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +3 -3
  130. package/project/.sdk/src/cmp/csharp/MainEntity_csharp.ts +2 -2
  131. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +6 -0
  132. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +1 -1
  133. package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +174 -0
  134. package/project/.sdk/src/cmp/csharp/ReadmeExamplesTest_csharp.ts +210 -0
  135. package/project/.sdk/src/cmp/csharp/ReadmeExplanation_csharp.ts +42 -0
  136. package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +168 -0
  137. package/project/.sdk/src/cmp/csharp/ReadmeInstall_csharp.ts +41 -0
  138. package/project/.sdk/src/cmp/csharp/ReadmeIntro_csharp.ts +65 -0
  139. package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +148 -0
  140. package/project/.sdk/src/cmp/csharp/ReadmeOptions_csharp.ts +60 -0
  141. package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +219 -0
  142. package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +390 -0
  143. package/project/.sdk/src/cmp/csharp/ReadmeTopHowto_csharp.ts +25 -0
  144. package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +92 -0
  145. package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +77 -0
  146. package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +3 -3
  147. package/project/.sdk/src/cmp/csharp/Test_csharp.ts +4 -0
  148. package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +43 -30
  149. package/project/.sdk/src/cmp/dart/Entity_dart.ts +11 -3
  150. package/project/.sdk/src/cmp/dart/MainEntity_dart.ts +2 -2
  151. package/project/.sdk/src/cmp/dart/Main_dart.ts +3 -3
  152. package/project/.sdk/src/cmp/dart/Package_dart.ts +1 -1
  153. package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +166 -0
  154. package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +238 -0
  155. package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +53 -0
  156. package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +151 -0
  157. package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +59 -0
  158. package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +65 -0
  159. package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +151 -0
  160. package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +63 -0
  161. package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +214 -0
  162. package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +381 -0
  163. package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +24 -0
  164. package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +95 -0
  165. package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +78 -0
  166. package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +4 -4
  167. package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +52 -0
  168. package/project/.sdk/src/cmp/dart/Test_dart.ts +6 -0
  169. package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +1 -3
  170. package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +1 -40
  171. package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +3 -3
  172. package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +164 -0
  173. package/project/.sdk/src/cmp/elixir/Entity_elixir.ts +1 -1
  174. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +4 -0
  175. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +3 -1
  176. package/project/.sdk/src/cmp/elixir/ReadmeEntity_elixir.ts +163 -0
  177. package/project/.sdk/src/cmp/elixir/ReadmeExamplesTest_elixir.ts +144 -0
  178. package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +55 -0
  179. package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +149 -0
  180. package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +67 -0
  181. package/project/.sdk/src/cmp/elixir/ReadmeIntro_elixir.ts +66 -0
  182. package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +150 -0
  183. package/project/.sdk/src/cmp/elixir/ReadmeOptions_elixir.ts +62 -0
  184. package/project/.sdk/src/cmp/elixir/ReadmeQuick_elixir.ts +198 -0
  185. package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +333 -0
  186. package/project/.sdk/src/cmp/elixir/ReadmeTopHowto_elixir.ts +26 -0
  187. package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +79 -0
  188. package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +68 -0
  189. package/project/.sdk/src/cmp/elixir/Test_elixir.ts +4 -0
  190. package/project/.sdk/src/cmp/elixir/fragment/EntityCreateOp.fragment.ex +4 -0
  191. package/project/.sdk/src/cmp/elixir/fragment/EntityListOp.fragment.ex +4 -0
  192. package/project/.sdk/src/cmp/elixir/fragment/EntityLoadOp.fragment.ex +4 -0
  193. package/project/.sdk/src/cmp/elixir/fragment/EntityRemoveOp.fragment.ex +4 -0
  194. package/project/.sdk/src/cmp/elixir/fragment/EntityUpdateOp.fragment.ex +4 -0
  195. package/project/.sdk/src/cmp/elixir/utility_elixir.ts +32 -0
  196. package/project/.sdk/src/cmp/go/Config_go.ts +4 -1
  197. package/project/.sdk/src/cmp/go/EntityTypes_go.ts +121 -20
  198. package/project/.sdk/src/cmp/go/Entity_go.ts +3 -3
  199. package/project/.sdk/src/cmp/go/Main_go.ts +7 -6
  200. package/project/.sdk/src/cmp/go/Package_go.ts +1 -1
  201. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +6 -1
  202. package/project/.sdk/src/cmp/go/TestDirect_go.ts +3 -3
  203. package/project/.sdk/src/cmp/go/TestEntity_go.ts +11 -4
  204. package/project/.sdk/src/cmp/go/utility_go.ts +28 -2
  205. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +249 -44
  206. package/project/.sdk/src/cmp/go-cli/fragment/main.fragment.go +27 -5
  207. package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +200 -31
  208. package/project/.sdk/src/cmp/haskell/ReadmeEntity_haskell.ts +181 -0
  209. package/project/.sdk/src/cmp/haskell/ReadmeExamplesTest_haskell.ts +135 -0
  210. package/project/.sdk/src/cmp/haskell/ReadmeExplanation_haskell.ts +48 -0
  211. package/project/.sdk/src/cmp/haskell/ReadmeHowto_haskell.ts +168 -0
  212. package/project/.sdk/src/cmp/haskell/ReadmeInstall_haskell.ts +51 -0
  213. package/project/.sdk/src/cmp/haskell/ReadmeIntro_haskell.ts +67 -0
  214. package/project/.sdk/src/cmp/haskell/ReadmeModel_haskell.ts +160 -0
  215. package/project/.sdk/src/cmp/haskell/ReadmeOptions_haskell.ts +74 -0
  216. package/project/.sdk/src/cmp/haskell/ReadmeQuick_haskell.ts +237 -0
  217. package/project/.sdk/src/cmp/haskell/ReadmeRef_haskell.ts +405 -0
  218. package/project/.sdk/src/cmp/haskell/ReadmeTopHowto_haskell.ts +31 -0
  219. package/project/.sdk/src/cmp/haskell/ReadmeTopQuick_haskell.ts +104 -0
  220. package/project/.sdk/src/cmp/haskell/ReadmeTopTest_haskell.ts +80 -0
  221. package/project/.sdk/src/cmp/haskell/Test_haskell.ts +27 -2
  222. package/project/.sdk/src/cmp/java/EntityTypes_java.ts +206 -0
  223. package/project/.sdk/src/cmp/java/Entity_java.ts +3 -3
  224. package/project/.sdk/src/cmp/java/MainEntity_java.ts +2 -2
  225. package/project/.sdk/src/cmp/java/Main_java.ts +6 -0
  226. package/project/.sdk/src/cmp/java/Package_java.ts +1 -1
  227. package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +175 -0
  228. package/project/.sdk/src/cmp/java/ReadmeExamplesTest_java.ts +208 -0
  229. package/project/.sdk/src/cmp/java/ReadmeExplanation_java.ts +46 -0
  230. package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +156 -0
  231. package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +52 -0
  232. package/project/.sdk/src/cmp/java/ReadmeIntro_java.ts +66 -0
  233. package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +150 -0
  234. package/project/.sdk/src/cmp/java/ReadmeOptions_java.ts +61 -0
  235. package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +230 -0
  236. package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +388 -0
  237. package/project/.sdk/src/cmp/java/ReadmeTopHowto_java.ts +23 -0
  238. package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +103 -0
  239. package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +77 -0
  240. package/project/.sdk/src/cmp/java/TestDirect_java.ts +3 -3
  241. package/project/.sdk/src/cmp/java/Test_java.ts +4 -0
  242. package/project/.sdk/src/cmp/js/EntityTypes_js.ts +25 -9
  243. package/project/.sdk/src/cmp/js/Entity_js.ts +3 -3
  244. package/project/.sdk/src/cmp/js/MainEntity_js.ts +6 -4
  245. package/project/.sdk/src/cmp/js/Main_js.ts +2 -2
  246. package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +4 -4
  247. package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +13 -4
  248. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +4 -4
  249. package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +5 -5
  250. package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +4 -4
  251. package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +4 -4
  252. package/project/.sdk/src/cmp/js/TestDirect_js.ts +10 -9
  253. package/project/.sdk/src/cmp/js/TestEntity_js.ts +7 -2
  254. package/project/.sdk/src/cmp/js/fragment/Entity.test.fragment.js +0 -31
  255. package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +200 -0
  256. package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +3 -3
  257. package/project/.sdk/src/cmp/kotlin/MainEntity_kotlin.ts +2 -2
  258. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +6 -0
  259. package/project/.sdk/src/cmp/kotlin/Package_kotlin.ts +1 -1
  260. package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +175 -0
  261. package/project/.sdk/src/cmp/kotlin/ReadmeExamplesTest_kotlin.ts +198 -0
  262. package/project/.sdk/src/cmp/kotlin/ReadmeExplanation_kotlin.ts +47 -0
  263. package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +154 -0
  264. package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +50 -0
  265. package/project/.sdk/src/cmp/kotlin/ReadmeIntro_kotlin.ts +66 -0
  266. package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +150 -0
  267. package/project/.sdk/src/cmp/kotlin/ReadmeOptions_kotlin.ts +61 -0
  268. package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +230 -0
  269. package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +387 -0
  270. package/project/.sdk/src/cmp/kotlin/ReadmeTopHowto_kotlin.ts +23 -0
  271. package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +104 -0
  272. package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +77 -0
  273. package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +3 -3
  274. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +4 -0
  275. package/project/.sdk/src/cmp/lean/Config_lean.ts +88 -0
  276. package/project/.sdk/src/cmp/lean/Entity_lean.ts +9 -0
  277. package/project/.sdk/src/cmp/lean/Gitignore_lean.ts +18 -0
  278. package/project/.sdk/src/cmp/lean/Main_lean.ts +120 -0
  279. package/project/.sdk/src/cmp/lean/Package_lean.ts +68 -0
  280. package/project/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +29 -0
  281. package/project/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +19 -0
  282. package/project/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +25 -0
  283. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +38 -0
  284. package/project/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +25 -0
  285. package/project/.sdk/src/cmp/lean/ReadmeModel_lean.ts +24 -0
  286. package/project/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +22 -0
  287. package/project/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +50 -0
  288. package/project/.sdk/src/cmp/lean/ReadmeRef_lean.ts +16 -0
  289. package/project/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +16 -0
  290. package/project/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +23 -0
  291. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +18 -0
  292. package/project/.sdk/src/cmp/lean/Test_lean.ts +207 -0
  293. package/project/.sdk/src/cmp/lean/utility_lean.ts +78 -0
  294. package/project/.sdk/src/cmp/lua/Config_lua.ts +1 -1
  295. package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +19 -6
  296. package/project/.sdk/src/cmp/lua/Entity_lua.ts +3 -3
  297. package/project/.sdk/src/cmp/lua/Main_lua.ts +14 -2
  298. package/project/.sdk/src/cmp/lua/Package_lua.ts +1 -1
  299. package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +2 -2
  300. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +6 -1
  301. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +3 -3
  302. package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +2 -2
  303. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +2 -2
  304. package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +3 -3
  305. package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +8 -3
  306. package/project/.sdk/src/cmp/lua/Test_lua.ts +1 -1
  307. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +2 -0
  308. package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +180 -0
  309. package/project/.sdk/src/cmp/ocaml/ReadmeExamplesTest_ocaml.ts +126 -0
  310. package/project/.sdk/src/cmp/ocaml/ReadmeExplanation_ocaml.ts +46 -0
  311. package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +147 -0
  312. package/project/.sdk/src/cmp/ocaml/ReadmeInstall_ocaml.ts +44 -0
  313. package/project/.sdk/src/cmp/ocaml/ReadmeIntro_ocaml.ts +68 -0
  314. package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +155 -0
  315. package/project/.sdk/src/cmp/ocaml/ReadmeOptions_ocaml.ts +59 -0
  316. package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +205 -0
  317. package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +402 -0
  318. package/project/.sdk/src/cmp/ocaml/ReadmeTopHowto_ocaml.ts +25 -0
  319. package/project/.sdk/src/cmp/ocaml/ReadmeTopQuick_ocaml.ts +86 -0
  320. package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +79 -0
  321. package/project/.sdk/src/cmp/ocaml/Test_ocaml.ts +4 -0
  322. package/project/.sdk/src/cmp/perl/Entity_perl.ts +3 -3
  323. package/project/.sdk/src/cmp/perl/MainEntity_perl.ts +2 -2
  324. package/project/.sdk/src/cmp/perl/Package_perl.ts +1 -1
  325. package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +181 -0
  326. package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +354 -0
  327. package/project/.sdk/src/cmp/perl/ReadmeExplanation_perl.ts +43 -0
  328. package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +149 -0
  329. package/project/.sdk/src/cmp/perl/ReadmeInstall_perl.ts +47 -0
  330. package/project/.sdk/src/cmp/perl/ReadmeIntro_perl.ts +66 -0
  331. package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +150 -0
  332. package/project/.sdk/src/cmp/perl/ReadmeOptions_perl.ts +59 -0
  333. package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +216 -0
  334. package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +399 -0
  335. package/project/.sdk/src/cmp/perl/ReadmeTopHowto_perl.ts +24 -0
  336. package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +91 -0
  337. package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +83 -0
  338. package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +3 -3
  339. package/project/.sdk/src/cmp/perl/Test_perl.ts +4 -0
  340. package/project/.sdk/src/cmp/php/EntityTypes_php.ts +23 -7
  341. package/project/.sdk/src/cmp/php/Entity_php.ts +3 -3
  342. package/project/.sdk/src/cmp/php/MainEntity_php.ts +2 -2
  343. package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
  344. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +6 -1
  345. package/project/.sdk/src/cmp/php/TestDirect_php.ts +3 -3
  346. package/project/.sdk/src/cmp/php/TestEntity_php.ts +8 -3
  347. package/project/.sdk/src/cmp/py/EntityTypes_py.ts +32 -8
  348. package/project/.sdk/src/cmp/py/Entity_py.ts +4 -12
  349. package/project/.sdk/src/cmp/py/MainEntity_py.ts +2 -2
  350. package/project/.sdk/src/cmp/py/Main_py.ts +2 -2
  351. package/project/.sdk/src/cmp/py/Package_py.ts +1 -1
  352. package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +2 -2
  353. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +8 -3
  354. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +3 -3
  355. package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +2 -2
  356. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +2 -2
  357. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +2 -2
  358. package/project/.sdk/src/cmp/py/TestDirect_py.ts +3 -3
  359. package/project/.sdk/src/cmp/py/TestEntity_py.ts +8 -3
  360. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +32 -8
  361. package/project/.sdk/src/cmp/rb/Entity_rb.ts +3 -3
  362. package/project/.sdk/src/cmp/rb/MainEntity_rb.ts +2 -2
  363. package/project/.sdk/src/cmp/rb/Package_rb.ts +2 -2
  364. package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +2 -2
  365. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +8 -3
  366. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +3 -3
  367. package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +2 -2
  368. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +2 -2
  369. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +2 -2
  370. package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +3 -3
  371. package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +8 -3
  372. package/project/.sdk/src/cmp/rust/EntityBase_rust.ts +6 -2
  373. package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +151 -0
  374. package/project/.sdk/src/cmp/rust/Entity_rust.ts +4 -4
  375. package/project/.sdk/src/cmp/rust/MainEntity_rust.ts +2 -2
  376. package/project/.sdk/src/cmp/rust/Main_rust.ts +5 -0
  377. package/project/.sdk/src/cmp/rust/Package_rust.ts +1 -1
  378. package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +163 -0
  379. package/project/.sdk/src/cmp/rust/ReadmeExamplesTest_rust.ts +144 -0
  380. package/project/.sdk/src/cmp/rust/ReadmeExplanation_rust.ts +44 -0
  381. package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +142 -0
  382. package/project/.sdk/src/cmp/rust/ReadmeInstall_rust.ts +49 -0
  383. package/project/.sdk/src/cmp/rust/ReadmeIntro_rust.ts +66 -0
  384. package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +153 -0
  385. package/project/.sdk/src/cmp/rust/ReadmeOptions_rust.ts +60 -0
  386. package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +212 -0
  387. package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +384 -0
  388. package/project/.sdk/src/cmp/rust/ReadmeTopHowto_rust.ts +24 -0
  389. package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +95 -0
  390. package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +81 -0
  391. package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +3 -3
  392. package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +10 -0
  393. package/project/.sdk/src/cmp/rust/Test_rust.ts +4 -0
  394. package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +201 -0
  395. package/project/.sdk/src/cmp/scala/Entity_scala.ts +3 -3
  396. package/project/.sdk/src/cmp/scala/MainEntity_scala.ts +2 -2
  397. package/project/.sdk/src/cmp/scala/Main_scala.ts +6 -0
  398. package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +175 -0
  399. package/project/.sdk/src/cmp/scala/ReadmeExamplesTest_scala.ts +182 -0
  400. package/project/.sdk/src/cmp/scala/ReadmeExplanation_scala.ts +49 -0
  401. package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +155 -0
  402. package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +58 -0
  403. package/project/.sdk/src/cmp/scala/ReadmeIntro_scala.ts +66 -0
  404. package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +150 -0
  405. package/project/.sdk/src/cmp/scala/ReadmeOptions_scala.ts +61 -0
  406. package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +230 -0
  407. package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +388 -0
  408. package/project/.sdk/src/cmp/scala/ReadmeTopHowto_scala.ts +23 -0
  409. package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +104 -0
  410. package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +77 -0
  411. package/project/.sdk/src/cmp/scala/TestDirect_scala.ts +3 -3
  412. package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +38 -10
  413. package/project/.sdk/src/cmp/scala/Test_scala.ts +9 -1
  414. package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +151 -0
  415. package/project/.sdk/src/cmp/swift/Entity_swift.ts +3 -3
  416. package/project/.sdk/src/cmp/swift/MainEntity_swift.ts +2 -2
  417. package/project/.sdk/src/cmp/swift/Main_swift.ts +5 -0
  418. package/project/.sdk/src/cmp/swift/Package_swift.ts +1 -1
  419. package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +176 -0
  420. package/project/.sdk/src/cmp/swift/ReadmeExamplesTest_swift.ts +187 -0
  421. package/project/.sdk/src/cmp/swift/ReadmeExplanation_swift.ts +49 -0
  422. package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +159 -0
  423. package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +58 -0
  424. package/project/.sdk/src/cmp/swift/ReadmeIntro_swift.ts +64 -0
  425. package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +149 -0
  426. package/project/.sdk/src/cmp/swift/ReadmeOptions_swift.ts +62 -0
  427. package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +232 -0
  428. package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +387 -0
  429. package/project/.sdk/src/cmp/swift/ReadmeTopHowto_swift.ts +24 -0
  430. package/project/.sdk/src/cmp/swift/ReadmeTopQuick_swift.ts +105 -0
  431. package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +77 -0
  432. package/project/.sdk/src/cmp/swift/TestDirect_swift.ts +1 -1
  433. package/project/.sdk/src/cmp/swift/Test_swift.ts +4 -0
  434. package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +19 -6
  435. package/project/.sdk/src/cmp/ts/Entity_ts.ts +3 -3
  436. package/project/.sdk/src/cmp/ts/MainEntity_ts.ts +6 -4
  437. package/project/.sdk/src/cmp/ts/Main_ts.ts +2 -2
  438. package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +4 -4
  439. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +14 -4
  440. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +29 -11
  441. package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +5 -5
  442. package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +4 -4
  443. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +4 -4
  444. package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +17 -15
  445. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +18 -2
  446. package/project/.sdk/src/cmp/zig/Config_zig.ts +22 -4
  447. package/project/.sdk/src/cmp/zig/Entity_zig.ts +4 -4
  448. package/project/.sdk/src/cmp/zig/MainEntity_zig.ts +2 -2
  449. package/project/.sdk/src/cmp/zig/Main_zig.ts +10 -4
  450. package/project/.sdk/src/cmp/zig/Package_zig.ts +61 -0
  451. package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +188 -0
  452. package/project/.sdk/src/cmp/zig/ReadmeExamplesTest_zig.ts +58 -0
  453. package/project/.sdk/src/cmp/zig/ReadmeExplanation_zig.ts +45 -0
  454. package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +143 -0
  455. package/project/.sdk/src/cmp/zig/ReadmeInstall_zig.ts +54 -0
  456. package/project/.sdk/src/cmp/zig/ReadmeIntro_zig.ts +66 -0
  457. package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +152 -0
  458. package/project/.sdk/src/cmp/zig/ReadmeOptions_zig.ts +60 -0
  459. package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +211 -0
  460. package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +400 -0
  461. package/project/.sdk/src/cmp/zig/ReadmeTopHowto_zig.ts +24 -0
  462. package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +96 -0
  463. package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +82 -0
  464. package/project/.sdk/src/cmp/zig/TestDirect_zig.ts +66 -0
  465. package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +79 -0
  466. package/project/.sdk/src/cmp/zig/Test_zig.ts +17 -61
  467. package/project/.sdk/tm/clojure/src/voxgig/struct.clj +1 -1
  468. package/project/.sdk/tm/cpp/test/feature_test.cpp +19 -0
  469. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +8 -16
  470. package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +10 -28
  471. package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +4 -1
  472. package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +7 -1
  473. package/project/.sdk/tm/dart/test/primary_test.dart +7 -0
  474. package/project/.sdk/tm/elixir/lib/utility/struct/voxgig_struct.ex +1 -1
  475. package/project/.sdk/tm/elixir/test/primary_utility_test.exs +7 -1
  476. package/project/.sdk/tm/go/feature/test_feature.go +33 -1
  477. package/project/.sdk/tm/go/test/primary_utility_test.go +41 -42
  478. package/project/.sdk/tm/go/test/runner_test.go +30 -1
  479. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +3 -1
  480. package/project/.sdk/tm/haskell/test/Harness.hs +8 -3
  481. package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +7 -24
  482. package/project/.sdk/tm/js/Makefile +1 -1
  483. package/project/.sdk/tm/js/jsconfig.json +12 -0
  484. package/project/.sdk/tm/js/src/feature/test/TestFeature.js +18 -1
  485. package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +8 -0
  486. package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +7 -20
  487. package/project/.sdk/tm/lean/LICENSE +21 -0
  488. package/project/.sdk/tm/lean/VERSION +1 -0
  489. package/project/.sdk/tm/lean/src/SdkFeature.lean +171 -0
  490. package/project/.sdk/tm/lean/src/SdkFeatures.lean +602 -0
  491. package/project/.sdk/tm/lean/src/SdkJson.lean +134 -0
  492. package/project/.sdk/tm/lean/src/SdkRuntime.lean +356 -0
  493. package/project/.sdk/tm/lean/src/SdkUtility.lean +617 -0
  494. package/project/.sdk/tm/lean/src/VoxgigStruct.lean +2880 -0
  495. package/project/.sdk/tm/lean/src/Vregex.lean +412 -0
  496. package/project/.sdk/tm/lean/src/feature/README.md +5 -0
  497. package/project/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
  498. package/project/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
  499. package/project/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
  500. package/project/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
  501. package/project/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
  502. package/project/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
  503. package/project/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
  504. package/project/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
  505. package/project/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
  506. package/project/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
  507. package/project/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
  508. package/project/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
  509. package/project/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
  510. package/project/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
  511. package/project/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
  512. package/project/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
  513. package/project/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
  514. package/project/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
  515. package/project/.sdk/tm/lean/test/StructCorpus.lean +697 -0
  516. package/project/.sdk/tm/lean/test/TFeature.lean +268 -0
  517. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +349 -0
  518. package/project/.sdk/tm/lua/test/primary_utility_test.lua +10 -8
  519. package/project/.sdk/tm/ocaml/Makefile +5 -1
  520. package/project/.sdk/tm/perl/t/primary_utility.t +8 -17
  521. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +9 -7
  522. package/project/.sdk/tm/php/utility/struct/Struct.php +1 -1
  523. package/project/.sdk/tm/py/feature/test_feature.py +28 -1
  524. package/project/.sdk/tm/py/test/test_primary_utility.py +13 -18
  525. package/project/.sdk/tm/py/utility/voxgig_struct/voxgig_struct.py +1 -1
  526. package/project/.sdk/tm/rb/feature/test_feature.rb +24 -1
  527. package/project/.sdk/tm/rb/test/primary_utility_test.rb +7 -8
  528. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +1 -1
  529. package/project/.sdk/tm/rust/tests/common/mod.rs +37 -1
  530. package/project/.sdk/tm/rust/tests/primary_utility_test.rs +12 -26
  531. package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +8 -59
  532. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +7 -8
  533. package/project/.sdk/tm/ts/Makefile +1 -1
  534. package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +18 -1
  535. package/project/.sdk/tm/ts/test/utility/PrimaryUtility.test.ts +65 -21
  536. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +1 -1
  537. package/src/cmp/Entity.ts +5 -1
  538. package/src/cmp/Feature.ts +2 -1
  539. package/src/cmp/ReadmeErrors.ts +2 -2
  540. package/src/cmp/ReadmeExplanation.ts +3 -3
  541. package/src/cmp/ReadmeTop.ts +2 -2
  542. package/src/helpers/canonType.ts +121 -25
  543. package/src/helpers/collectDeps.ts +39 -12
  544. package/src/helpers/naming.ts +106 -0
  545. package/src/helpers/opExample.ts +43 -20
  546. package/src/helpers/opShape.ts +197 -11
  547. package/src/sdkgen.ts +13 -3
  548. package/src/tsconfig.json +2 -0
  549. package/project/.sdk/tm/zig/build.zig.zon +0 -11
@@ -0,0 +1,268 @@
1
+ /- ProjectName SDK feature test.
2
+
3
+ Verifies the feature catalog's OBSERVABLE behaviour. Each feature records
4
+ into the client's `track` bucket under its own name, so a test activates a
5
+ feature, runs an operation against the offline (test-mode) transport, and
6
+ asserts the bucket. Features that wrap the transport are additionally
7
+ checked for the effect they have on the request or the result. -/
8
+
9
+ import VoxgigStruct
10
+ import SdkJson
11
+ import SdkUtility
12
+ import SdkFeature
13
+ import SdkFeatures
14
+ import SdkClient
15
+
16
+ open VoxgigStruct
17
+
18
+ initialize npass : IO.Ref Nat ← IO.mkRef 0
19
+ initialize nfail : IO.Ref Nat ← IO.mkRef 0
20
+
21
+ def pass (msg : String) : SIO Unit := do
22
+ npass.modify (· + 1)
23
+ IO.println s!"ok - {msg}"
24
+
25
+ def fail (msg : String) : SIO Unit := do
26
+ nfail.modify (· + 1)
27
+ IO.println s!"FAIL - {msg}"
28
+
29
+ def check (cond : Bool) (msg : String) : SIO Unit := do
30
+ if cond then pass msg else fail msg
31
+
32
+ def gp := SdkUtility.gp
33
+ def gpS := SdkUtility.gpS
34
+
35
+ def numAt (v : Value) (k : String) : SIO Float := do
36
+ match (← gp v k) with
37
+ | .num n => pure n
38
+ | _ => pure 0.0
39
+
40
+ /-- A test-mode client with the named features activated. -/
41
+ def clientWith (seed : Value) (feats : Array (String × Value)) : SIO Value := do
42
+ let fmap ← emptyMap
43
+ for (n, o) in feats do
44
+ SdkUtility.sp fmap n o
45
+ let opts ← emptyMap
46
+ SdkUtility.sp opts "feature" fmap
47
+ Sdk.testSdk seed opts
48
+
49
+ def onOpts (extra : Array (String × Value)) : SIO Value := do
50
+ let o ← newMap #[("active", .bool true)]
51
+ for (k, v) in extra do
52
+ SdkUtility.sp o k v
53
+ pure o
54
+
55
+ /-- The bucket a feature records into. -/
56
+ def bucketOf (client : Value) (name : String) : SIO Value := do
57
+ gp (← gp client "track") name
58
+
59
+ /-- The first entity that has a `list` op AND generated seed data: the feature
60
+ suite is entity-agnostic, so it discovers its subject from the config. -/
61
+ def findSubject : SIO (Option (String × Value)) := do
62
+ let config ← SdkJson.jsonRead SdkConfig.configJson
63
+ let ents ← gp config "entity"
64
+ for name in (← keysof ents) do
65
+ let e ← gp ents name
66
+ let hasList ← (match (← gp (← gp e "op") "list") with
67
+ | .map _ => pure true
68
+ | _ => pure false)
69
+ if hasList then
70
+ let Name := name.capitalize
71
+ let seedPath := "../.sdk/test/entity/" ++ name ++ "/" ++ Name ++ "TestData.json"
72
+ if ← System.FilePath.pathExists seedPath then
73
+ let seed ← SdkJson.jsonRead (← IO.FS.readFile seedPath)
74
+ return some (name, seed)
75
+ pure none
76
+
77
+ def main : IO UInt32 := do
78
+ let sctx ← mkCtx
79
+ let go : SIO Unit := do
80
+ match (← findSubject) with
81
+ | none => IO.println "skip - no entity with list op and seed data"
82
+ | some (ent, seed) => do
83
+ let mt ← emptyMap
84
+
85
+ -- log: counts requests
86
+ (do
87
+ let c ← clientWith seed #[("log", ← onOpts #[])]
88
+ let _ ← SdkRuntime.opList c ent mt mt
89
+ let b ← bucketOf c "log"
90
+ check ((← numAt b "calls") == 1.0) "log: counts one request")
91
+
92
+ -- metrics: totals and a per-op bucket
93
+ (do
94
+ let c ← clientWith seed #[("metrics", ← onOpts #[])]
95
+ let _ ← SdkRuntime.opList c ent mt mt
96
+ let _ ← SdkRuntime.opList c ent mt mt
97
+ let b ← bucketOf c "metrics"
98
+ let total ← gp b "total"
99
+ check ((← numAt total "count") == 2.0) "metrics: counts two operations"
100
+ check ((← numAt total "ok") == 2.0) "metrics: both recorded ok"
101
+ let ops ← gp b "ops"
102
+ check ((← keysof ops).size >= 1) "metrics: per-op bucket created")
103
+
104
+ -- telemetry: one span per operation, closed out
105
+ (do
106
+ let c ← clientWith seed #[("telemetry", ← onOpts #[])]
107
+ let _ ← SdkRuntime.opList c ent mt mt
108
+ let b ← bucketOf c "telemetry"
109
+ let spans ← gp b "spans"
110
+ let n ← (match spans with | .list i => do pure (← listItems i).size | _ => pure 0)
111
+ check (n == 1) "telemetry: records one span"
112
+ check ((← numAt b "active") == 0.0) "telemetry: span closed (active back to 0)")
113
+
114
+ -- audit: one record per operation
115
+ (do
116
+ let c ← clientWith seed #[("audit", ← onOpts #[])]
117
+ let _ ← SdkRuntime.opList c ent mt mt
118
+ let b ← bucketOf c "audit"
119
+ let recs ← gp b "records"
120
+ let n ← (match recs with | .list i => do pure (← listItems i).size | _ => pure 0)
121
+ check (n == 1) "audit: records one operation")
122
+
123
+ -- debug: an entry, with sensitive headers redacted
124
+ (do
125
+ let c ← clientWith seed #[("debug", ← onOpts #[])]
126
+ let _ ← SdkRuntime.opList c ent mt mt
127
+ let b ← bucketOf c "debug"
128
+ let entries ← gp b "entries"
129
+ match entries with
130
+ | .list i => do
131
+ let its ← listItems i
132
+ check (its.size == 1) "debug: records one entry"
133
+ if its.size > 0 then do
134
+ let e := its[0]!
135
+ check ((← gpS e "op") != "") "debug: entry names the operation"
136
+ | _ => fail "debug: no entries list")
137
+
138
+ -- idempotency: injects a key header on mutating ops only
139
+ (do
140
+ let c ← clientWith seed #[("idempotency", ← onOpts #[])]
141
+ let _ ← SdkRuntime.opList c ent mt mt
142
+ let b0 ← bucketOf c "idempotency"
143
+ check ((← numAt b0 "issued") == 0.0) "idempotency: no key for a read op"
144
+ let d ← newMap #[("name", .str "idem")]
145
+ let _ ← SdkRuntime.opCreate c ent d mt
146
+ let b ← bucketOf c "idempotency"
147
+ check ((← numAt b "issued") == 1.0) "idempotency: issues a key for create"
148
+ check ((← gpS b "last") != "") "idempotency: records the issued key")
149
+
150
+ -- clienttrack: request/session headers and a request count
151
+ (do
152
+ let c ← clientWith seed #[("clienttrack", ← onOpts #[])]
153
+ let _ ← SdkRuntime.opList c ent mt mt
154
+ let b ← bucketOf c "clienttrack"
155
+ check ((← numAt b "requests") == 1.0) "clienttrack: counts the request"
156
+ check ((← gpS b "session") != "") "clienttrack: assigns a session id"
157
+ check ((← gpS b "lastRequestId") != "") "clienttrack: assigns a request id")
158
+
159
+ -- rbac: denies when the required permission is absent, allows when granted
160
+ (do
161
+ let rules ← newMap #[("list", .str "read")]
162
+ let c ← clientWith seed #[("rbac", ← onOpts #[("rules", rules)])]
163
+ let denied ← (try
164
+ let _ ← SdkRuntime.opList c ent mt mt
165
+ pure false
166
+ catch _ => pure true)
167
+ check denied "rbac: denies an operation without the permission"
168
+ let b ← bucketOf c "rbac"
169
+ check ((← numAt b "denied") == 1.0) "rbac: records the denial")
170
+ (do
171
+ let rules ← newMap #[("list", .str "read")]
172
+ let perms ← newList #[.str "read"]
173
+ let c ← clientWith seed #[("rbac", ← onOpts #[("rules", rules), ("perms", perms)])]
174
+ let _ ← SdkRuntime.opList c ent mt mt
175
+ let b ← bucketOf c "rbac"
176
+ check ((← numAt b "allowed") == 1.0) "rbac: allows when the permission is granted")
177
+
178
+ -- cache: second identical read is served from the cache
179
+ (do
180
+ let c ← clientWith seed #[("cache", ← onOpts #[])]
181
+ let _ ← SdkRuntime.opList c ent mt mt
182
+ let _ ← SdkRuntime.opList c ent mt mt
183
+ let b ← bucketOf c "cache"
184
+ check ((← numAt b "miss") == 1.0) "cache: first read is a miss"
185
+ check ((← numAt b "hit") == 1.0) "cache: second read is a hit")
186
+
187
+ -- ratelimit: a tight burst throttles
188
+ (do
189
+ let c ← clientWith seed #[("ratelimit", ← onOpts #[("rate", .num 1.0), ("burst", .num 1.0)])]
190
+ let _ ← SdkRuntime.opList c ent mt mt
191
+ let _ ← SdkRuntime.opList c ent mt mt
192
+ let b ← bucketOf c "ratelimit"
193
+ check ((← numAt b "throttled") >= 1.0) "ratelimit: throttles the second call")
194
+
195
+ -- netsim: offline simulation fails the request
196
+ (do
197
+ let c ← clientWith seed #[("netsim", ← onOpts #[("offline", .bool true)])]
198
+ let failed ← (try
199
+ let _ ← SdkRuntime.opList c ent mt mt
200
+ pure false
201
+ catch _ => pure true)
202
+ check failed "netsim: offline simulation fails the request"
203
+ let b ← bucketOf c "netsim"
204
+ check ((← numAt b "calls") == 1.0) "netsim: records the simulated call")
205
+
206
+ -- netsim: failStatus is surfaced as the response status
207
+ (do
208
+ let c ← clientWith seed #[("netsim", ← onOpts #[("failStatus", .num 503.0)])]
209
+ let _ ← (try
210
+ let _ ← SdkRuntime.opList c ent mt mt
211
+ pure ()
212
+ catch _ => pure ())
213
+ let b ← bucketOf c "netsim"
214
+ check ((← numAt b "calls") == 1.0) "netsim: failStatus simulation runs")
215
+
216
+ -- proxy: annotates the transport and records the route
217
+ (do
218
+ let c ← clientWith seed #[("proxy", ← onOpts #[("url", .str "http://proxy.local:8080")])]
219
+ let _ ← SdkRuntime.opList c ent mt mt
220
+ let b ← bucketOf c "proxy"
221
+ check ((← numAt b "routed") == 1.0) "proxy: routes the request"
222
+ check ((← gpS b "url") == "http://proxy.local:8080") "proxy: records the proxy url")
223
+
224
+ -- timeout: a generous budget does not trip
225
+ (do
226
+ let c ← clientWith seed #[("timeout", ← onOpts #[("ms", .num 30000.0)])]
227
+ let _ ← SdkRuntime.opList c ent mt mt
228
+ pass "timeout: request within budget succeeds")
229
+
230
+ -- retry: a healthy transport is not retried
231
+ (do
232
+ let c ← clientWith seed #[("retry", ← onOpts #[])]
233
+ let _ ← SdkRuntime.opList c ent mt mt
234
+ let b ← bucketOf c "retry"
235
+ check ((← numAt b "attempts") == 0.0) "retry: no retry on a healthy response")
236
+
237
+ -- paging: annotates the query and counts items
238
+ (do
239
+ let c ← clientWith seed #[("paging", ← onOpts #[("size", .num 2.0)])]
240
+ let _ ← SdkRuntime.opList c ent mt mt
241
+ let b ← bucketOf c "paging"
242
+ check ((← numAt b "pages") == 1.0) "paging: counts the page"
243
+ check ((← numAt b "items") >= 1.0) "paging: counts the returned items")
244
+
245
+ -- streaming: reports the emitted items
246
+ (do
247
+ let c ← clientWith seed #[("streaming", ← onOpts #[])]
248
+ let _ ← SdkRuntime.opList c ent mt mt
249
+ let b ← bucketOf c "streaming"
250
+ check ((← numAt b "emitted") >= 1.0) "streaming: emits the list items"
251
+ check ((← numAt b "chunks") == 1.0) "streaming: reports one chunk")
252
+
253
+ -- an inactive feature records nothing
254
+ (do
255
+ let off ← newMap #[("active", .bool false)]
256
+ let c ← clientWith seed #[("log", off)]
257
+ let _ ← SdkRuntime.opList c ent mt mt
258
+ let b ← bucketOf c "log"
259
+ match b with
260
+ | .map _ => fail "inactive feature must not record"
261
+ | _ => pass "inactive feature records nothing")
262
+
263
+ go.run sctx
264
+ let p ← npass.get
265
+ let f ← nfail.get
266
+ IO.println ""
267
+ IO.println s!"feature: PASS {p} FAIL {f}"
268
+ if f > 0 then return 1 else return 0
@@ -0,0 +1,349 @@
1
+ /- ProjectName SDK primary utility test.
2
+
3
+ Drives the SHARED language-neutral corpus (.sdk/test/test.json, section
4
+ `primary`) — the same fixtures every other target executes — so this suite
5
+ cannot drift from the reference implementation. Each section is looked up
6
+ with `getSpec` and executed with `runset`, as the ts/js reference harness
7
+ does. -/
8
+
9
+ import VoxgigStruct
10
+ import Vregex
11
+ import SdkJson
12
+ import SdkUtility
13
+ import SdkConfig
14
+
15
+ open VoxgigStruct
16
+
17
+ initialize npass : IO.Ref Nat ← IO.mkRef 0
18
+ initialize nfail : IO.Ref Nat ← IO.mkRef 0
19
+ initialize failures : IO.Ref (Array String) ← IO.mkRef #[]
20
+
21
+ def pass : SIO Unit := do npass.modify (· + 1)
22
+
23
+ def fail (msg : String) : SIO Unit := do
24
+ nfail.modify (· + 1)
25
+ failures.modify (·.push msg)
26
+
27
+ -- ---------------------------------------------------------------------------
28
+ -- corpus navigation
29
+ -- ---------------------------------------------------------------------------
30
+
31
+ /-- Navigate into the nested corpus map by keys. -/
32
+ def getSpec (root : Value) (path : Array String) : SIO Value := do
33
+ let mut cur := root
34
+ for k in path do
35
+ cur ← SdkUtility.gp cur k
36
+ pure cur
37
+
38
+ def itemsOf (v : Value) : SIO (Array Value) := do
39
+ match v with
40
+ | .list i => listItems i
41
+ | _ => pure #[]
42
+
43
+ def argAt (args : Value) (i : Nat) : SIO Value := do
44
+ pure ((← itemsOf args)[i]?.getD .noval)
45
+
46
+ -- ---------------------------------------------------------------------------
47
+ -- comparison
48
+ -- ---------------------------------------------------------------------------
49
+
50
+ /-- Deep structural equality; an empty list and an empty map are equivalent. -/
51
+ partial def deepEq (a b : Value) : SIO Bool := do
52
+ match a, b with
53
+ | .map ia, .map ib => do
54
+ let ka ← keysof (.map ia)
55
+ let kb ← keysof (.map ib)
56
+ if ka.size != kb.size then pure false
57
+ else do
58
+ let mut ok := true
59
+ for k in ka do
60
+ let va ← SdkUtility.gp (.map ia) k
61
+ let vb ← SdkUtility.gp (.map ib) k
62
+ if !(← deepEq va vb) then ok := false
63
+ pure ok
64
+ | .list ia, .list ib => do
65
+ let la ← listItems ia
66
+ let lb ← listItems ib
67
+ if la.size != lb.size then pure false
68
+ else do
69
+ let mut ok := true
70
+ for i in [0:la.size] do
71
+ if !(← deepEq (la[i]!) (lb[i]!)) then ok := false
72
+ pure ok
73
+ | .map ia, .list ib => do
74
+ pure ((← keysof (.map ia)).isEmpty && (← listItems ib).isEmpty)
75
+ | .list ia, .map ib => do
76
+ pure ((← listItems ia).isEmpty && (← keysof (.map ib)).isEmpty)
77
+ | x, y => pure (x == y)
78
+
79
+ /-- A corpus string check: `/re/` is a regex, otherwise substring containment. -/
80
+ def strCheck (checkStr subject : String) : Bool :=
81
+ if checkStr.length > 1 && checkStr.startsWith "/" && checkStr.endsWith "/" then
82
+ let inner := String.ofList (checkStr.toList.drop 1).dropLast
83
+ Vregex.testStr inner subject
84
+ else if checkStr == subject then true
85
+ else (subject.splitOn checkStr).length > 1
86
+
87
+ /-- Partial deep match: every key present in `check` must hold in `base`. -/
88
+ partial def matchDeep (check base : Value) (path : String) (errs : IO.Ref (Array String)) :
89
+ SIO Unit := do
90
+ match check with
91
+ | .map ic =>
92
+ for k in (← keysof (.map ic)) do
93
+ let cv ← SdkUtility.gp (.map ic) k
94
+ let bv ← SdkUtility.gp base k
95
+ matchDeep cv bv (if path == "" then k else path ++ "." ++ k) errs
96
+ | .list ic => do
97
+ let items ← listItems ic
98
+ let bitems ← itemsOf base
99
+ for i in [0:items.size] do
100
+ let bv := bitems[i]?.getD .noval
101
+ matchDeep (items[i]!) bv (path ++ "[" ++ toString i ++ "]") errs
102
+ | .str s =>
103
+ if s == "__EXISTS__" then
104
+ (if SdkUtility.isNov base then errs.modify (·.push (path ++ ": expected to exist")) else pure ())
105
+ else if s == "__UNDEF__" then
106
+ (if SdkUtility.isNov base then pure () else errs.modify (·.push (path ++ ": expected undefined")))
107
+ else do
108
+ let bs := SdkUtility.vs base
109
+ if strCheck s bs then pure ()
110
+ else errs.modify (·.push (path ++ ": want " ++ s ++ ", got " ++ bs))
111
+ | _ => do
112
+ if (← deepEq check base) then pure ()
113
+ else do
114
+ let cs ← stringify check
115
+ let bs ← stringify base
116
+ errs.modify (·.push (path ++ ": want " ++ cs ++ ", got " ++ bs))
117
+
118
+ -- ---------------------------------------------------------------------------
119
+ -- the runner
120
+ -- ---------------------------------------------------------------------------
121
+
122
+ abbrev Subject := Value → SIO (Value × Option Value)
123
+
124
+ def runset (secname : String) (spec : Value) (subject : Subject) : SIO Unit := do
125
+ let entries ← itemsOf (← SdkUtility.gp spec "set")
126
+ for idx in [0:entries.size] do
127
+ let entry := entries[idx]!
128
+ let label := secname ++ "[" ++ toString idx ++ "]"
129
+ let errs ← IO.mkRef (#[] : Array String)
130
+ let (res, merr) ← subject entry
131
+ let expErr ← SdkUtility.gp entry "err"
132
+ let mspec ← SdkUtility.gp entry "match"
133
+ match merr with
134
+ | some e => do
135
+ let em ← SdkUtility.gpS e "message"
136
+ if SdkUtility.isNov expErr then fail (label ++ ": unexpected error: " ++ em)
137
+ else do
138
+ let ok := match expErr with
139
+ | .str s => strCheck s em
140
+ | .bool b => b
141
+ | _ => false
142
+ if !ok then fail (label ++ ": error mismatch: got " ++ em)
143
+ else do
144
+ if !(SdkUtility.isNov mspec) then do
145
+ let rm ← emptyMap
146
+ let emap ← newMap #[("message", .str em)]
147
+ SdkUtility.sp rm "err" emap
148
+ SdkUtility.sp rm "out" res
149
+ matchDeep mspec rm "" errs
150
+ let es ← errs.get
151
+ if es.isEmpty then pass else fail (label ++ ": " ++ String.intercalate "; " es.toList)
152
+ | none => do
153
+ if !(SdkUtility.isNov expErr) then fail (label ++ ": expected an error, got a result")
154
+ else do
155
+ if !(SdkUtility.isNov mspec) then do
156
+ let rm ← emptyMap
157
+ SdkUtility.sp rm "out" res
158
+ SdkUtility.sp rm "in" (← SdkUtility.gp entry "in")
159
+ SdkUtility.sp rm "ctx" (← SdkUtility.gp entry "ctx")
160
+ SdkUtility.sp rm "args" (← SdkUtility.gp entry "args")
161
+ matchDeep mspec rm "" errs
162
+ let expOut ← SdkUtility.gp entry "out"
163
+ if !(SdkUtility.isNov expOut) then
164
+ if !(← deepEq expOut res) then do
165
+ let rs ← stringify res
166
+ let os ← stringify expOut
167
+ errs.modify (·.push ("out: want " ++ os ++ ", got " ++ rs))
168
+ let es ← errs.get
169
+ if es.isEmpty then pass else fail (label ++ ": " ++ String.intercalate "; " es.toList)
170
+
171
+ -- ---------------------------------------------------------------------------
172
+ -- context construction
173
+ -- ---------------------------------------------------------------------------
174
+
175
+ /-- The entry's own `ctx` map (created and attached when absent), wired to the
176
+ client options/config so the utilities see them. -/
177
+ def entryCtx (entry options config : Value) : SIO Value := do
178
+ let ctx ← match (← SdkUtility.gp entry "ctx") with
179
+ | .map i => pure (Value.map i)
180
+ | _ => do
181
+ let m ← emptyMap
182
+ SdkUtility.sp entry "ctx" m
183
+ pure m
184
+ SdkUtility.sp ctx "options" options
185
+ SdkUtility.sp ctx "config" config
186
+ pure ctx
187
+
188
+ /-- A ctx from a bare map (args-style sections); published back onto the entry
189
+ as `ctx` so a `match: ctx:` assertion sees the mutated context. -/
190
+ def mapCtx (entry v options config : Value) : SIO Value := do
191
+ let ctx ← match v with
192
+ | .map i => pure (Value.map i)
193
+ | _ => emptyMap
194
+ SdkUtility.sp ctx "options" options
195
+ SdkUtility.sp ctx "config" config
196
+ SdkUtility.sp entry "ctx" ctx
197
+ pure ctx
198
+
199
+ -- ---------------------------------------------------------------------------
200
+ -- main
201
+ -- ---------------------------------------------------------------------------
202
+
203
+ def specPaths : Array String :=
204
+ #["../.sdk/test/test.json", ".sdk/test/test.json", "test/test.json"]
205
+
206
+ def readSpecFile : IO String := do
207
+ match (← IO.getEnv "SDK_TEST_SPEC") with
208
+ | some p => IO.FS.readFile p
209
+ | none => do
210
+ for p in specPaths do
211
+ if ← System.FilePath.pathExists p then
212
+ return (← IO.FS.readFile p)
213
+ throw (IO.userError "cannot find .sdk/test/test.json (set SDK_TEST_SPEC)")
214
+
215
+ def main : IO UInt32 := do
216
+ let raw ← readSpecFile
217
+ let sctx ← mkCtx
218
+ let go : SIO Unit := do
219
+ let root ← SdkJson.jsonRead raw
220
+ let primary ← SdkUtility.gp root "primary"
221
+ let config ← SdkJson.jsonRead SdkConfig.configJson
222
+ let opts ← SdkUtility.makeOptions config (← emptyMap)
223
+
224
+ runset "done" (← getSpec primary #["done", "basic"]) fun entry => do
225
+ SdkUtility.done (← entryCtx entry opts config)
226
+
227
+ runset "makeContext" (← getSpec primary #["makeContext", "basic"]) fun entry => do
228
+ let ctx ← mapCtx entry (← SdkUtility.gp entry "in") opts config
229
+ pure ((← SdkUtility.makeContext ctx), none)
230
+
231
+ runset "makeError" (← getSpec primary #["makeError", "basic"]) fun entry => do
232
+ let args ← SdkUtility.gp entry "args"
233
+ let ctx ← mapCtx entry (← argAt args 0) opts config
234
+ pure (.noval, some (← SdkUtility.makeError ctx (← argAt args 1)))
235
+
236
+ runset "makeOptions" (← getSpec primary #["makeOptions", "basic"]) fun entry => do
237
+ let inv ← SdkUtility.gp entry "in"
238
+ pure ((← SdkUtility.makeOptions (← SdkUtility.gp inv "config") (← SdkUtility.gp inv "options")), none)
239
+
240
+ runset "makeRequest" (← getSpec primary #["makeRequest", "basic"]) fun entry => do
241
+ SdkUtility.makeRequest (← entryCtx entry opts config)
242
+
243
+ runset "makeResponse" (← getSpec primary #["makeResponse", "basic"]) fun entry => do
244
+ SdkUtility.makeResponse (← entryCtx entry opts config)
245
+
246
+ let specOpts ← SdkUtility.makeOptions config (← getSpec primary #["makeSpec", "DEF", "setup", "a"])
247
+ runset "makeSpec" (← getSpec primary #["makeSpec", "basic"]) fun entry => do
248
+ SdkUtility.makeSpec (← entryCtx entry specOpts config)
249
+
250
+ runset "makeUrl" (← getSpec primary #["makeUrl", "basic"]) fun entry => do
251
+ SdkUtility.makeUrl (← entryCtx entry opts config)
252
+
253
+ runset "operator" (← getSpec primary #["operator", "basic"]) fun entry => do
254
+ pure ((← SdkUtility.operator (← SdkUtility.gp entry "in")), none)
255
+
256
+ runset "param" (← getSpec primary #["param", "basic"]) fun entry => do
257
+ let args ← SdkUtility.gp entry "args"
258
+ let ctx ← mapCtx entry (← argAt args 0) opts config
259
+ pure ((← SdkUtility.param ctx (← argAt args 1)), none)
260
+
261
+ let authOpts ← SdkUtility.makeOptions config (← getSpec primary #["prepareAuth", "DEF", "setup", "a"])
262
+ runset "prepareAuth" (← getSpec primary #["prepareAuth", "basic"]) fun entry => do
263
+ SdkUtility.prepareAuth (← entryCtx entry authOpts config)
264
+
265
+ runset "prepareBody" (← getSpec primary #["prepareBody", "basic"]) fun entry => do
266
+ pure ((← SdkUtility.prepareBody (← entryCtx entry opts config)), none)
267
+
268
+ runset "prepareHeaders" (← getSpec primary #["prepareHeaders", "basic"]) fun entry => do
269
+ pure ((← SdkUtility.prepareHeaders (← entryCtx entry opts config)), none)
270
+
271
+ runset "prepareMethod" (← getSpec primary #["prepareMethod", "basic"]) fun entry => do
272
+ let m ← SdkUtility.prepareMethod (← entryCtx entry opts config)
273
+ pure (.str m, none)
274
+
275
+ runset "prepareParams" (← getSpec primary #["prepareParams", "basic"]) fun entry => do
276
+ pure ((← SdkUtility.prepareParams (← entryCtx entry opts config)), none)
277
+
278
+ runset "preparePath" (← getSpec primary #["preparePath", "basic"]) fun entry => do
279
+ let p ← SdkUtility.preparePath (← entryCtx entry opts config)
280
+ pure (.str p, none)
281
+
282
+ runset "prepareQuery" (← getSpec primary #["prepareQuery", "basic"]) fun entry => do
283
+ pure ((← SdkUtility.prepareQuery (← entryCtx entry opts config)), none)
284
+
285
+ runset "resultBasic" (← getSpec primary #["resultBasic", "basic"]) fun entry => do
286
+ let ctx ← entryCtx entry opts config
287
+ SdkUtility.resultBasic ctx
288
+ pure ((← SdkUtility.gp ctx "result"), none)
289
+
290
+ runset "resultBody" (← getSpec primary #["resultBody", "basic"]) fun entry => do
291
+ let ctx ← entryCtx entry opts config
292
+ SdkUtility.resultBody ctx
293
+ pure ((← SdkUtility.gp ctx "result"), none)
294
+
295
+ runset "resultHeaders" (← getSpec primary #["resultHeaders", "basic"]) fun entry => do
296
+ let ctx ← entryCtx entry opts config
297
+ SdkUtility.resultHeaders ctx
298
+ pure ((← SdkUtility.gp ctx "result"), none)
299
+
300
+ runset "transformRequest" (← getSpec primary #["transformRequest", "basic"]) fun entry => do
301
+ pure ((← SdkUtility.transformRequest (← entryCtx entry opts config)), none)
302
+
303
+ runset "transformResponse" (← getSpec primary #["transformResponse", "basic"]) fun entry => do
304
+ pure ((← SdkUtility.transformResponse (← entryCtx entry opts config)), none)
305
+
306
+ -- The remaining corpus sections. They carry no cases in this project's
307
+ -- corpus, but are driven here so any future fixture runs against Lean too.
308
+
309
+ runset "clean" (← getSpec primary #["clean", "basic"]) fun entry => do
310
+ let ctx ← entryCtx entry opts config
311
+ pure ((← SdkUtility.clean ctx (← SdkUtility.gp entry "in")), none)
312
+
313
+ runset "makeResult" (← getSpec primary #["makeResult", "basic"]) fun entry => do
314
+ pure ((← SdkUtility.makeResult (← entryCtx entry opts config)), none)
315
+
316
+ runset "makePoint" (← getSpec primary #["makePoint", "basic"]) fun entry => do
317
+ pure ((← SdkUtility.makePoint (← entryCtx entry opts config)), none)
318
+
319
+ runset "makeFetchDef" (← getSpec primary #["makeFetchDef", "basic"]) fun entry => do
320
+ pure ((← SdkUtility.makeFetchDef (← entryCtx entry opts config)), none)
321
+
322
+ runset "fetcher" (← getSpec primary #["fetcher", "basic"]) fun entry => do
323
+ let ctx ← entryCtx entry opts config
324
+ let url ← SdkUtility.gpS entry "url"
325
+ pure ((← SdkUtility.fetcher ctx url (← SdkUtility.gp entry "fetchdef")), none)
326
+
327
+ runset "featureAdd" (← getSpec primary #["featureAdd", "basic"]) fun entry => do
328
+ let client ← emptyMap
329
+ SdkUtility.featureAdd client (← SdkUtility.gp entry "in")
330
+ pure ((← SdkUtility.gp client "features"), none)
331
+
332
+ runset "featureInit" (← getSpec primary #["featureInit", "basic"]) fun entry => do
333
+ let client ← emptyMap
334
+ SdkUtility.featureInit client (← entryCtx entry opts config)
335
+ pure ((← SdkUtility.gp client "features"), none)
336
+
337
+ runset "featureHook" (← getSpec primary #["featureHook", "basic"]) fun entry => do
338
+ let client ← emptyMap
339
+ SdkUtility.featureHook client (← SdkUtility.gpS entry "stage") (← entryCtx entry opts config)
340
+ pure ((← SdkUtility.gp client "features"), none)
341
+
342
+ go.run sctx
343
+ for f in (← failures.get) do
344
+ IO.println ("FAIL - " ++ f)
345
+ let p ← npass.get
346
+ let f ← nfail.get
347
+ IO.println ""
348
+ IO.println s!"primary-utility: PASS {p} FAIL {f}"
349
+ if f > 0 then return 1 else return 0
@@ -1052,14 +1052,16 @@ describe("PrimaryUtility", function()
1052
1052
 
1053
1053
 
1054
1054
  it("preparePath-basic", function()
1055
- local ctx = make_test_full_ctx(client, utility)
1056
- ctx.point = {
1057
- parts = { "api", "planet", "{id}" },
1058
- args = { params = {} },
1059
- }
1060
-
1061
- local path = utility.prepare_path(ctx)
1062
- assert.are.equal("api/planet/{id}", path)
1055
+ -- Was hand-written cases that had drifted out of the shared corpus
1056
+ -- (the preparePath fixture shipped as an empty `set: []`).
1057
+ runset(get_spec(primary, "preparePath", "basic"), function(entry)
1058
+ local ctxmap = entry["ctx"]
1059
+ if type(ctxmap) ~= "table" then
1060
+ ctxmap = {}
1061
+ end
1062
+ local ctx = make_ctx_from_map(ctxmap, client, utility)
1063
+ return utility.prepare_path(ctx), nil
1064
+ end)
1063
1065
  end)
1064
1066
 
1065
1067
 
@@ -23,11 +23,15 @@ SDK = $(RUNTIME) sdk_config.ml $(ENTITIES) sdk_client.ml sdk_error.ml
23
23
 
24
24
  ENTITY_TESTS = $(sort $(wildcard test/*_entity_test.ml) $(wildcard test/*_direct_test.ml))
25
25
 
26
+ # Doc-example structural gate (present only when the readme phase generated it).
27
+ # Wildcard so an absent file is simply skipped, never a missing-target error.
28
+ DOC_TESTS = $(sort $(wildcard test/readme_examples_test.ml))
29
+
26
30
  # Fixed test order: harness deps first, generated/behaviour tests, summary last.
27
31
  SDK_TEST = $(RUNTIME) sdk_config.ml $(ENTITIES) sdk_client.ml sdk_error.ml \
28
32
  test/testutil.ml test/harness.ml \
29
33
  test/t_pipeline.ml test/t_feature.ml test/custom_utility.ml \
30
- $(ENTITY_TESTS) test/t_main.ml
34
+ $(ENTITY_TESTS) $(DOC_TESTS) test/t_main.ml
31
35
 
32
36
  CORPUS_SRC = utility/vregex.ml utility/voxgig_struct.ml test/struct_corpus.ml
33
37