@voxgig/sdkgen 4.33.0 → 4.34.1

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 (1067) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/copies.d.ts +22 -0
  3. package/dist/action/copies.js +243 -0
  4. package/dist/action/copies.js.map +1 -0
  5. package/dist/action/doctor.d.ts +16 -2
  6. package/dist/action/doctor.js +173 -23
  7. package/dist/action/doctor.js.map +1 -1
  8. package/dist/action/edition.js +6 -2
  9. package/dist/action/edition.js.map +1 -1
  10. package/dist/action/feature.js +6 -2
  11. package/dist/action/feature.js.map +1 -1
  12. package/dist/action/package.d.ts +3 -1
  13. package/dist/action/package.js +36 -11
  14. package/dist/action/package.js.map +1 -1
  15. package/dist/action/remove.js +2 -0
  16. package/dist/action/remove.js.map +1 -1
  17. package/dist/action/resolve.d.ts +12 -2
  18. package/dist/action/resolve.js +37 -2
  19. package/dist/action/resolve.js.map +1 -1
  20. package/dist/action/target.js +6 -2
  21. package/dist/action/target.js.map +1 -1
  22. package/dist/admin/npm-trust.js +7 -7
  23. package/dist/admin/npm-trust.js.map +1 -1
  24. package/dist/cmp/AgentGuide.js +4 -3
  25. package/dist/cmp/AgentGuide.js.map +1 -1
  26. package/dist/cmp/AgentGuideFeature.js +3 -2
  27. package/dist/cmp/AgentGuideFeature.js.map +1 -1
  28. package/dist/cmp/AgentGuideTop.js +2 -1
  29. package/dist/cmp/AgentGuideTop.js.map +1 -1
  30. package/dist/cmp/Changelog.js +2 -1
  31. package/dist/cmp/Changelog.js.map +1 -1
  32. package/dist/cmp/Deploy.js +2 -1
  33. package/dist/cmp/Deploy.js.map +1 -1
  34. package/dist/cmp/Entity.js +2 -2
  35. package/dist/cmp/Entity.js.map +1 -1
  36. package/dist/cmp/ExternalTarget.js +2 -1
  37. package/dist/cmp/ExternalTarget.js.map +1 -1
  38. package/dist/cmp/Feature.js +2 -1
  39. package/dist/cmp/Feature.js.map +1 -1
  40. package/dist/cmp/FeatureHook.js +2 -1
  41. package/dist/cmp/FeatureHook.js.map +1 -1
  42. package/dist/cmp/License.js +6 -4
  43. package/dist/cmp/License.js.map +1 -1
  44. package/dist/cmp/Main.js +2 -2
  45. package/dist/cmp/Main.js.map +1 -1
  46. package/dist/cmp/PublishWorkflow.js +2 -1
  47. package/dist/cmp/PublishWorkflow.js.map +1 -1
  48. package/dist/cmp/Readme.js +2 -1
  49. package/dist/cmp/Readme.js.map +1 -1
  50. package/dist/cmp/ReadmeEntity.js +4 -4
  51. package/dist/cmp/ReadmeEntity.js.map +1 -1
  52. package/dist/cmp/ReadmeErrors.js +6 -4
  53. package/dist/cmp/ReadmeErrors.js.map +1 -1
  54. package/dist/cmp/ReadmeExplanation.js +4 -3
  55. package/dist/cmp/ReadmeExplanation.js.map +1 -1
  56. package/dist/cmp/ReadmeFeatures.js +4 -3
  57. package/dist/cmp/ReadmeFeatures.js.map +1 -1
  58. package/dist/cmp/ReadmeHowto.js +4 -3
  59. package/dist/cmp/ReadmeHowto.js.map +1 -1
  60. package/dist/cmp/ReadmeInstall.js +4 -3
  61. package/dist/cmp/ReadmeInstall.js.map +1 -1
  62. package/dist/cmp/ReadmeIntro.js +4 -4
  63. package/dist/cmp/ReadmeIntro.js.map +1 -1
  64. package/dist/cmp/ReadmeModel.js +6 -3
  65. package/dist/cmp/ReadmeModel.js.map +1 -1
  66. package/dist/cmp/ReadmeOptions.js +4 -4
  67. package/dist/cmp/ReadmeOptions.js.map +1 -1
  68. package/dist/cmp/ReadmeQuick.js +4 -3
  69. package/dist/cmp/ReadmeQuick.js.map +1 -1
  70. package/dist/cmp/ReadmeRef.js +4 -4
  71. package/dist/cmp/ReadmeRef.js.map +1 -1
  72. package/dist/cmp/ReadmeRefFeatures.js +2 -1
  73. package/dist/cmp/ReadmeRefFeatures.js.map +1 -1
  74. package/dist/cmp/ReadmeStation.js +2 -1
  75. package/dist/cmp/ReadmeStation.js.map +1 -1
  76. package/dist/cmp/ReadmeTop.js +104 -35
  77. package/dist/cmp/ReadmeTop.js.map +1 -1
  78. package/dist/cmp/ReadmeUnions.js +2 -1
  79. package/dist/cmp/ReadmeUnions.js.map +1 -1
  80. package/dist/cmp/Registered.js +4 -3
  81. package/dist/cmp/Registered.js.map +1 -1
  82. package/dist/cmp/Security.js +10 -6
  83. package/dist/cmp/Security.js.map +1 -1
  84. package/dist/cmp/Test.js +2 -1
  85. package/dist/cmp/Test.js.map +1 -1
  86. package/dist/cmp/TestControl.js +2 -1
  87. package/dist/cmp/TestControl.js.map +1 -1
  88. package/dist/helpers/component.d.ts +4 -0
  89. package/dist/helpers/component.js +54 -0
  90. package/dist/helpers/component.js.map +1 -0
  91. package/dist/helpers/definition.js +2 -2
  92. package/dist/helpers/definition.js.map +1 -1
  93. package/dist/helpers/definitionPlan.d.ts +16 -0
  94. package/dist/helpers/definitionPlan.js +116 -12
  95. package/dist/helpers/definitionPlan.js.map +1 -1
  96. package/dist/helpers/featureSource.d.ts +2 -1
  97. package/dist/helpers/featureSource.js +44 -2
  98. package/dist/helpers/featureSource.js.map +1 -1
  99. package/dist/helpers/flowGuard.d.ts +8 -0
  100. package/dist/helpers/flowGuard.js +84 -0
  101. package/dist/helpers/flowGuard.js.map +1 -0
  102. package/dist/helpers/generated.d.ts +26 -0
  103. package/dist/helpers/generated.js +363 -0
  104. package/dist/helpers/generated.js.map +1 -0
  105. package/dist/helpers/mcpTools.d.ts +11 -0
  106. package/dist/helpers/mcpTools.js +28 -0
  107. package/dist/helpers/mcpTools.js.map +1 -0
  108. package/dist/helpers/media.d.ts +9 -0
  109. package/dist/helpers/media.js +61 -0
  110. package/dist/helpers/media.js.map +1 -0
  111. package/dist/helpers/modelNames.js +147 -14
  112. package/dist/helpers/modelNames.js.map +1 -1
  113. package/dist/helpers/naming.d.ts +11 -1
  114. package/dist/helpers/naming.js +143 -0
  115. package/dist/helpers/naming.js.map +1 -1
  116. package/dist/helpers/npm.d.ts +13 -0
  117. package/dist/helpers/npm.js +41 -0
  118. package/dist/helpers/npm.js.map +1 -0
  119. package/dist/helpers/npmScripts.d.ts +4 -0
  120. package/dist/helpers/npmScripts.js +30 -0
  121. package/dist/helpers/npmScripts.js.map +1 -0
  122. package/dist/helpers/opExample.d.ts +5 -4
  123. package/dist/helpers/opExample.js +10 -7
  124. package/dist/helpers/opExample.js.map +1 -1
  125. package/dist/helpers/opShape.d.ts +20 -4
  126. package/dist/helpers/opShape.js +197 -30
  127. package/dist/helpers/opShape.js.map +1 -1
  128. package/dist/helpers/optional.d.ts +20 -0
  129. package/dist/helpers/optional.js +51 -0
  130. package/dist/helpers/optional.js.map +1 -0
  131. package/dist/helpers/packageMeta.d.ts +9 -1
  132. package/dist/helpers/packageMeta.js +70 -11
  133. package/dist/helpers/packageMeta.js.map +1 -1
  134. package/dist/helpers/stdrep.js +3 -0
  135. package/dist/helpers/stdrep.js.map +1 -1
  136. package/dist/helpers/testPolicy.d.ts +9 -1
  137. package/dist/helpers/testPolicy.js +48 -0
  138. package/dist/helpers/testPolicy.js.map +1 -1
  139. package/dist/helpers/text.d.ts +2 -0
  140. package/dist/helpers/text.js +27 -0
  141. package/dist/helpers/text.js.map +1 -0
  142. package/dist/sdkgen.d.ts +16 -8
  143. package/dist/sdkgen.js +115 -15
  144. package/dist/sdkgen.js.map +1 -1
  145. package/dist/testkit.js +2 -1
  146. package/dist/testkit.js.map +1 -1
  147. package/dist/tsconfig.tsbuildinfo +1 -1
  148. package/dist/utility.d.ts +2 -1
  149. package/dist/utility.js +33 -18
  150. package/dist/utility.js.map +1 -1
  151. package/model/sdkgen.aontu +24 -1
  152. package/package.json +8 -2
  153. package/project/.sdk/model/feature/timeout.aontu +2 -0
  154. package/project/.sdk/model/target/go-mcp.aontu +2 -0
  155. package/project/.sdk/src/cmp/c/Config_c.ts +5 -0
  156. package/project/.sdk/src/cmp/c/EntityTypes_c.ts +1 -1
  157. package/project/.sdk/src/cmp/c/Entity_c.ts +1 -1
  158. package/project/.sdk/src/cmp/c/Main_c.ts +4 -20
  159. package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +169 -51
  160. package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +22 -13
  161. package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +10 -5
  162. package/project/.sdk/src/cmp/c/ReadmeInstall_c.ts +2 -2
  163. package/project/.sdk/src/cmp/c/ReadmeIntro_c.ts +3 -3
  164. package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +11 -10
  165. package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +37 -20
  166. package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +39 -21
  167. package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +9 -7
  168. package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +15 -4
  169. package/project/.sdk/src/cmp/c/TestClean_c.ts +56 -22
  170. package/project/.sdk/src/cmp/c/TestDirect_c.ts +2 -2
  171. package/project/.sdk/src/cmp/c/TestEntity_c.ts +77 -4
  172. package/project/.sdk/src/cmp/c/fragment/Entity.fragment.c +33 -27
  173. package/project/.sdk/src/cmp/c/fragment/EntityPatchOp.fragment.c +36 -0
  174. package/project/.sdk/src/cmp/c/fragment/Main.fragment.c +40 -7
  175. package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +1 -1
  176. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +3 -1
  177. package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +44 -28
  178. package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +7 -4
  179. package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +1 -1
  180. package/project/.sdk/src/cmp/clojure/ReadmeInstall_clojure.ts +3 -3
  181. package/project/.sdk/src/cmp/clojure/ReadmeIntro_clojure.ts +3 -3
  182. package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +7 -5
  183. package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +12 -4
  184. package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +24 -7
  185. package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +2 -2
  186. package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +1 -1
  187. package/project/.sdk/src/cmp/clojure/TestClean_clojure.ts +53 -23
  188. package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +64 -5
  189. package/project/.sdk/src/cmp/clojure/fragment/Entity.fragment.clj +22 -11
  190. package/project/.sdk/src/cmp/clojure/fragment/EntityListOp.fragment.clj +7 -9
  191. package/project/.sdk/src/cmp/clojure/fragment/EntityPatchOp.fragment.clj +15 -0
  192. package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +1 -1
  193. package/project/.sdk/src/cmp/cpp/Entity_cpp.ts +2 -2
  194. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +3 -19
  195. package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +38 -39
  196. package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +19 -12
  197. package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +11 -6
  198. package/project/.sdk/src/cmp/cpp/ReadmeInstall_cpp.ts +2 -2
  199. package/project/.sdk/src/cmp/cpp/ReadmeIntro_cpp.ts +3 -3
  200. package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +10 -9
  201. package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +26 -18
  202. package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +42 -25
  203. package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +7 -7
  204. package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +11 -4
  205. package/project/.sdk/src/cmp/cpp/TestClean_cpp.ts +69 -21
  206. package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +135 -6
  207. package/project/.sdk/src/cmp/cpp/fragment/Entity.fragment.cpp +2 -0
  208. package/project/.sdk/src/cmp/cpp/fragment/EntityPatchOp.fragment.cpp +28 -0
  209. package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +1 -1
  210. package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +1 -1
  211. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +3 -1
  212. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +4 -1
  213. package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +69 -23
  214. package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +7 -4
  215. package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +3 -3
  216. package/project/.sdk/src/cmp/csharp/ReadmeInstall_csharp.ts +3 -3
  217. package/project/.sdk/src/cmp/csharp/ReadmeIntro_csharp.ts +3 -3
  218. package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +11 -9
  219. package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +17 -6
  220. package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +33 -16
  221. package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +1 -1
  222. package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +1 -1
  223. package/project/.sdk/src/cmp/csharp/TestClean_csharp.ts +67 -14
  224. package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +43 -31
  225. package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +187 -15
  226. package/project/.sdk/src/cmp/csharp/fragment/Entity.fragment.cs +2 -0
  227. package/project/.sdk/src/cmp/csharp/fragment/EntityBase.fragment.cs +11 -2
  228. package/project/.sdk/src/cmp/csharp/fragment/EntityPatchOp.fragment.cs +41 -0
  229. package/project/.sdk/src/cmp/csharp/fragment/Main.fragment.cs +28 -4
  230. package/project/.sdk/src/cmp/csharp/utility_csharp.ts +6 -0
  231. package/project/.sdk/src/cmp/elixir/EntityOperation_elixir.ts +5 -0
  232. package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +3 -3
  233. package/project/.sdk/src/cmp/elixir/Entity_elixir.ts +22 -1
  234. package/project/.sdk/src/cmp/elixir/MainEntity_elixir.ts +4 -2
  235. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +6 -2
  236. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +7 -0
  237. package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +40 -30
  238. package/project/.sdk/src/cmp/elixir/ReadmeEntity_elixir.ts +13 -9
  239. package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +6 -5
  240. package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +2 -2
  241. package/project/.sdk/src/cmp/elixir/ReadmeIntro_elixir.ts +4 -4
  242. package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +13 -11
  243. package/project/.sdk/src/cmp/elixir/ReadmeQuick_elixir.ts +25 -12
  244. package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +29 -13
  245. package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +5 -4
  246. package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +5 -4
  247. package/project/.sdk/src/cmp/elixir/TestClean_elixir.ts +41 -12
  248. package/project/.sdk/src/cmp/elixir/TestEntity_elixir.ts +152 -23
  249. package/project/.sdk/src/cmp/elixir/fragment/Entity.fragment.ex +4 -4
  250. package/project/.sdk/src/cmp/elixir/fragment/EntityPatchOp.fragment.ex +35 -0
  251. package/project/.sdk/src/cmp/elixir/fragment/Main.fragment.ex +29 -5
  252. package/project/.sdk/src/cmp/elixir/fragment/Pipeline.fragment.ex +23 -16
  253. package/project/.sdk/src/cmp/go/EntityTypes_go.ts +1 -1
  254. package/project/.sdk/src/cmp/go/Entity_go.ts +1 -1
  255. package/project/.sdk/src/cmp/go/Main_go.ts +5 -6
  256. package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +40 -26
  257. package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +1 -0
  258. package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +6 -1
  259. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +1 -1
  260. package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +3 -3
  261. package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +3 -3
  262. package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +3 -2
  263. package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +14 -0
  264. package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +29 -7
  265. package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +1 -1
  266. package/project/.sdk/src/cmp/go/TestClean_go.ts +81 -18
  267. package/project/.sdk/src/cmp/go/TestDirect_go.ts +47 -53
  268. package/project/.sdk/src/cmp/go/TestEntity_go.ts +204 -24
  269. package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +79 -60
  270. package/project/.sdk/src/cmp/go/fragment/EntityPatchOp.fragment.go +49 -0
  271. package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +26 -5
  272. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +8 -10
  273. package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +240 -121
  274. package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +1 -1
  275. package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +34 -27
  276. package/project/.sdk/src/cmp/java/EntityTypes_java.ts +1 -1
  277. package/project/.sdk/src/cmp/java/Entity_java.ts +1 -1
  278. package/project/.sdk/src/cmp/java/Main_java.ts +3 -1
  279. package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +58 -23
  280. package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +7 -4
  281. package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +1 -1
  282. package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +3 -3
  283. package/project/.sdk/src/cmp/java/ReadmeIntro_java.ts +3 -3
  284. package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +2 -1
  285. package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +10 -1
  286. package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +22 -5
  287. package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +1 -1
  288. package/project/.sdk/src/cmp/java/TestClean_java.ts +57 -12
  289. package/project/.sdk/src/cmp/java/TestDirect_java.ts +50 -36
  290. package/project/.sdk/src/cmp/java/TestEntity_java.ts +180 -13
  291. package/project/.sdk/src/cmp/java/fragment/Entity.fragment.java +2 -0
  292. package/project/.sdk/src/cmp/java/fragment/EntityBase.fragment.java +5 -3
  293. package/project/.sdk/src/cmp/java/fragment/EntityPatchOp.fragment.java +45 -0
  294. package/project/.sdk/src/cmp/js/EntityTypes_js.ts +1 -1
  295. package/project/.sdk/src/cmp/js/Entity_js.ts +1 -1
  296. package/project/.sdk/src/cmp/js/Main_js.ts +2 -0
  297. package/project/.sdk/src/cmp/js/Package_js.ts +11 -8
  298. package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +39 -27
  299. package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +7 -4
  300. package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +0 -3
  301. package/project/.sdk/src/cmp/js/ReadmeInstall_js.ts +3 -3
  302. package/project/.sdk/src/cmp/js/ReadmeIntro_js.ts +3 -3
  303. package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +4 -3
  304. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +17 -0
  305. package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +37 -8
  306. package/project/.sdk/src/cmp/js/ReadmeTopHowto_js.ts +2 -3
  307. package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +1 -1
  308. package/project/.sdk/src/cmp/js/TestClean_js.ts +52 -8
  309. package/project/.sdk/src/cmp/js/TestDirect_js.ts +81 -54
  310. package/project/.sdk/src/cmp/js/TestEntity_js.ts +95 -2
  311. package/project/.sdk/src/cmp/js/TestLive_js.ts +4 -3
  312. package/project/.sdk/src/cmp/js/fragment/Direct.test.fragment.js +4 -0
  313. package/project/.sdk/src/cmp/js/fragment/Entity.fragment.js +2 -0
  314. package/project/.sdk/src/cmp/js/fragment/Entity.test.fragment.js +2 -0
  315. package/project/.sdk/src/cmp/js/fragment/EntityBase.fragment.js +51 -25
  316. package/project/.sdk/src/cmp/js/fragment/EntityPatchOp.fragment.js +129 -0
  317. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +39 -15
  318. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +4 -0
  319. package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +1 -1
  320. package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +1 -1
  321. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +3 -1
  322. package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +56 -31
  323. package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +7 -4
  324. package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +1 -1
  325. package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +3 -3
  326. package/project/.sdk/src/cmp/kotlin/ReadmeIntro_kotlin.ts +3 -3
  327. package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +2 -1
  328. package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +10 -1
  329. package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +22 -5
  330. package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +1 -1
  331. package/project/.sdk/src/cmp/kotlin/TestClean_kotlin.ts +45 -10
  332. package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +49 -26
  333. package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +168 -10
  334. package/project/.sdk/src/cmp/kotlin/fragment/Entity.fragment.kt +2 -0
  335. package/project/.sdk/src/cmp/kotlin/fragment/EntityBase.fragment.kt +2 -1
  336. package/project/.sdk/src/cmp/kotlin/fragment/EntityPatchOp.fragment.kt +40 -0
  337. package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +1 -1
  338. package/project/.sdk/src/cmp/lua/Entity_lua.ts +1 -1
  339. package/project/.sdk/src/cmp/lua/Main_lua.ts +2 -1
  340. package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +42 -23
  341. package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +7 -4
  342. package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +8 -2
  343. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +1 -1
  344. package/project/.sdk/src/cmp/lua/ReadmeInstall_lua.ts +2 -2
  345. package/project/.sdk/src/cmp/lua/ReadmeIntro_lua.ts +3 -3
  346. package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +3 -2
  347. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +9 -1
  348. package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +22 -6
  349. package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +1 -1
  350. package/project/.sdk/src/cmp/lua/TestClean_lua.ts +46 -12
  351. package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +100 -124
  352. package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +173 -20
  353. package/project/.sdk/src/cmp/lua/fragment/Entity.fragment.lua +85 -48
  354. package/project/.sdk/src/cmp/lua/fragment/EntityPatchOp.fragment.lua +34 -0
  355. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +28 -6
  356. package/project/.sdk/src/cmp/ocaml/EntityOperation_ocaml.ts +8 -11
  357. package/project/.sdk/src/cmp/ocaml/Entity_ocaml.ts +8 -3
  358. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +2 -1
  359. package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +7 -5
  360. package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +39 -34
  361. package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +7 -4
  362. package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +3 -8
  363. package/project/.sdk/src/cmp/ocaml/ReadmeInstall_ocaml.ts +2 -2
  364. package/project/.sdk/src/cmp/ocaml/ReadmeIntro_ocaml.ts +3 -3
  365. package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +2 -1
  366. package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +9 -1
  367. package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +22 -6
  368. package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +3 -7
  369. package/project/.sdk/src/cmp/ocaml/TestClean_ocaml.ts +47 -14
  370. package/project/.sdk/src/cmp/ocaml/TestEntity_ocaml.ts +88 -3
  371. package/project/.sdk/src/cmp/ocaml/fragment/RunOp.fragment.ml +10 -11
  372. package/project/.sdk/src/cmp/ocaml/utility_ocaml.ts +7 -0
  373. package/project/.sdk/src/cmp/perl/Entity_perl.ts +1 -1
  374. package/project/.sdk/src/cmp/perl/Main_perl.ts +3 -1
  375. package/project/.sdk/src/cmp/perl/Package_perl.ts +5 -4
  376. package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +48 -33
  377. package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +9 -4
  378. package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +2 -2
  379. package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +1 -1
  380. package/project/.sdk/src/cmp/perl/ReadmeInstall_perl.ts +9 -3
  381. package/project/.sdk/src/cmp/perl/ReadmeIntro_perl.ts +3 -3
  382. package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +7 -5
  383. package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +12 -4
  384. package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +26 -9
  385. package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +2 -2
  386. package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +1 -1
  387. package/project/.sdk/src/cmp/perl/TestClean_perl.ts +42 -11
  388. package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +121 -149
  389. package/project/.sdk/src/cmp/perl/TestEntity_perl.ts +178 -17
  390. package/project/.sdk/src/cmp/perl/fragment/Entity.fragment.pm +16 -2
  391. package/project/.sdk/src/cmp/perl/fragment/EntityListOp.fragment.pm +2 -13
  392. package/project/.sdk/src/cmp/perl/fragment/EntityPatchOp.fragment.pm +32 -0
  393. package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +23 -5
  394. package/project/.sdk/src/cmp/perl/utility_perl.ts +16 -0
  395. package/project/.sdk/src/cmp/php/EntityTypes_php.ts +3 -3
  396. package/project/.sdk/src/cmp/php/Entity_php.ts +4 -3
  397. package/project/.sdk/src/cmp/php/MainEntity_php.ts +1 -1
  398. package/project/.sdk/src/cmp/php/Main_php.ts +3 -1
  399. package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
  400. package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +36 -28
  401. package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +7 -4
  402. package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +3 -3
  403. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +1 -1
  404. package/project/.sdk/src/cmp/php/ReadmeInstall_php.ts +2 -2
  405. package/project/.sdk/src/cmp/php/ReadmeIntro_php.ts +3 -3
  406. package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +2 -1
  407. package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +9 -1
  408. package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +23 -6
  409. package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +1 -1
  410. package/project/.sdk/src/cmp/php/TestClean_php.ts +73 -12
  411. package/project/.sdk/src/cmp/php/TestDirect_php.ts +95 -127
  412. package/project/.sdk/src/cmp/php/TestEntity_php.ts +219 -20
  413. package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +82 -45
  414. package/project/.sdk/src/cmp/php/fragment/EntityPatchOp.fragment.php +38 -0
  415. package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +26 -5
  416. package/project/.sdk/src/cmp/py/EntityTypes_py.ts +1 -1
  417. package/project/.sdk/src/cmp/py/Entity_py.ts +2 -2
  418. package/project/.sdk/src/cmp/py/Main_py.ts +6 -2
  419. package/project/.sdk/src/cmp/py/Package_py.ts +7 -0
  420. package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +52 -26
  421. package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +7 -4
  422. package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +12 -6
  423. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +1 -1
  424. package/project/.sdk/src/cmp/py/ReadmeInstall_py.ts +3 -3
  425. package/project/.sdk/src/cmp/py/ReadmeIntro_py.ts +3 -3
  426. package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +2 -1
  427. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +9 -1
  428. package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +23 -6
  429. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +1 -1
  430. package/project/.sdk/src/cmp/py/TestClean_py.ts +41 -10
  431. package/project/.sdk/src/cmp/py/TestDirect_py.ts +91 -121
  432. package/project/.sdk/src/cmp/py/TestEntity_py.ts +146 -20
  433. package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +62 -42
  434. package/project/.sdk/src/cmp/py/fragment/EntityPatchOp.fragment.py +27 -0
  435. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +23 -5
  436. package/project/.sdk/src/cmp/py-data/Main_py-data.ts +1 -1
  437. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +3 -3
  438. package/project/.sdk/src/cmp/rb/Entity_rb.ts +1 -1
  439. package/project/.sdk/src/cmp/rb/Main_rb.ts +5 -6
  440. package/project/.sdk/src/cmp/rb/Package_rb.ts +3 -1
  441. package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +30 -28
  442. package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +9 -5
  443. package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +16 -8
  444. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +1 -1
  445. package/project/.sdk/src/cmp/rb/ReadmeInstall_rb.ts +2 -2
  446. package/project/.sdk/src/cmp/rb/ReadmeIntro_rb.ts +3 -3
  447. package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +3 -2
  448. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +14 -5
  449. package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +26 -8
  450. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +2 -2
  451. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +1 -1
  452. package/project/.sdk/src/cmp/rb/TestClean_rb.ts +36 -10
  453. package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +95 -126
  454. package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +177 -21
  455. package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +49 -29
  456. package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +2 -11
  457. package/project/.sdk/src/cmp/rb/fragment/EntityPatchOp.fragment.rb +31 -0
  458. package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +19 -5
  459. package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +1 -1
  460. package/project/.sdk/src/cmp/rust/Entity_rust.ts +2 -2
  461. package/project/.sdk/src/cmp/rust/Main_rust.ts +7 -6
  462. package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +56 -29
  463. package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +16 -9
  464. package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +11 -4
  465. package/project/.sdk/src/cmp/rust/ReadmeInstall_rust.ts +3 -3
  466. package/project/.sdk/src/cmp/rust/ReadmeIntro_rust.ts +3 -3
  467. package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +12 -9
  468. package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +25 -17
  469. package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +35 -21
  470. package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +6 -8
  471. package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +13 -5
  472. package/project/.sdk/src/cmp/rust/TestClean_rust.ts +80 -21
  473. package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +124 -79
  474. package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +164 -17
  475. package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +44 -23
  476. package/project/.sdk/src/cmp/rust/fragment/EntityPatchOp.fragment.rs +41 -0
  477. package/project/.sdk/src/cmp/rust/fragment/Main.fragment.rs +39 -9
  478. package/project/.sdk/src/cmp/scala/Config_scala.ts +4 -0
  479. package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +1 -1
  480. package/project/.sdk/src/cmp/scala/Entity_scala.ts +1 -1
  481. package/project/.sdk/src/cmp/scala/Main_scala.ts +4 -20
  482. package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +56 -24
  483. package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +7 -4
  484. package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +1 -1
  485. package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +3 -3
  486. package/project/.sdk/src/cmp/scala/ReadmeIntro_scala.ts +3 -3
  487. package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +2 -1
  488. package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +10 -1
  489. package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +22 -5
  490. package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +1 -1
  491. package/project/.sdk/src/cmp/scala/TestClean_scala.ts +39 -10
  492. package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +113 -3
  493. package/project/.sdk/src/cmp/scala/fragment/Entity.fragment.scala +2 -0
  494. package/project/.sdk/src/cmp/scala/fragment/EntityBase.fragment.scala +4 -2
  495. package/project/.sdk/src/cmp/scala/fragment/EntityPatchOp.fragment.scala +33 -0
  496. package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +3 -3
  497. package/project/.sdk/src/cmp/swift/Entity_swift.ts +1 -1
  498. package/project/.sdk/src/cmp/swift/Main_swift.ts +6 -2
  499. package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +56 -29
  500. package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +7 -4
  501. package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +1 -1
  502. package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +3 -3
  503. package/project/.sdk/src/cmp/swift/ReadmeIntro_swift.ts +3 -3
  504. package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +2 -1
  505. package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +10 -1
  506. package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +21 -5
  507. package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +1 -1
  508. package/project/.sdk/src/cmp/swift/TestClean_swift.ts +44 -10
  509. package/project/.sdk/src/cmp/swift/TestEntity_swift.ts +90 -2
  510. package/project/.sdk/src/cmp/swift/fragment/Entity.fragment.swift +2 -0
  511. package/project/.sdk/src/cmp/swift/fragment/EntityBase.fragment.swift +9 -1
  512. package/project/.sdk/src/cmp/swift/fragment/EntityPatchOp.fragment.swift +24 -0
  513. package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +23 -3
  514. package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +9 -3
  515. package/project/.sdk/src/cmp/ts/Entity_ts.ts +5 -5
  516. package/project/.sdk/src/cmp/ts/Main_ts.ts +4 -3
  517. package/project/.sdk/src/cmp/ts/Package_ts.ts +18 -10
  518. package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +37 -28
  519. package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +7 -4
  520. package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +39 -21
  521. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +0 -3
  522. package/project/.sdk/src/cmp/ts/ReadmeInstall_ts.ts +3 -3
  523. package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +3 -3
  524. package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +4 -3
  525. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +10 -1
  526. package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +37 -8
  527. package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +2 -3
  528. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +1 -1
  529. package/project/.sdk/src/cmp/ts/TestClean_ts.ts +52 -8
  530. package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +50 -109
  531. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +92 -2
  532. package/project/.sdk/src/cmp/ts/TestLive_ts.ts +4 -3
  533. package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +3 -0
  534. package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +2 -0
  535. package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +3 -1
  536. package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +49 -24
  537. package/project/.sdk/src/cmp/ts/fragment/EntityPatchOp.fragment.ts +126 -0
  538. package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +50 -18
  539. package/project/.sdk/src/cmp/zig/Entity_zig.ts +2 -2
  540. package/project/.sdk/src/cmp/zig/Main_zig.ts +5 -22
  541. package/project/.sdk/src/cmp/zig/Package_zig.ts +11 -2
  542. package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +57 -31
  543. package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +17 -9
  544. package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +14 -4
  545. package/project/.sdk/src/cmp/zig/ReadmeInstall_zig.ts +2 -2
  546. package/project/.sdk/src/cmp/zig/ReadmeIntro_zig.ts +3 -3
  547. package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +12 -10
  548. package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +29 -12
  549. package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +45 -22
  550. package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +8 -4
  551. package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +10 -3
  552. package/project/.sdk/src/cmp/zig/TestClean_zig.ts +67 -28
  553. package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +54 -5
  554. package/project/.sdk/src/cmp/zig/Test_zig.ts +1 -0
  555. package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +44 -34
  556. package/project/.sdk/src/cmp/zig/fragment/EntityPatchOp.fragment.zig +26 -0
  557. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +30 -6
  558. package/project/.sdk/src/cmp/zig/fragment/Root.fragment.zig +1 -0
  559. package/project/.sdk/tm/c/LICENSE +1 -1
  560. package/project/.sdk/tm/c/core/context.c +2 -1
  561. package/project/.sdk/tm/c/core/helpers.c +21 -0
  562. package/project/.sdk/tm/c/core/response.c +103 -0
  563. package/project/.sdk/tm/c/core/sdk.h +26 -0
  564. package/project/.sdk/tm/c/core/spec.c +10 -0
  565. package/project/.sdk/tm/c/feature/test.c +46 -2
  566. package/project/.sdk/tm/c/feature/validate.c +2 -0
  567. package/project/.sdk/tm/c/tests/feature_harness.h +1 -1
  568. package/project/.sdk/tm/c/tests/primary_utility_test.c +9 -5
  569. package/project/.sdk/tm/c/tests/server_variable_test.c +80 -0
  570. package/project/.sdk/tm/c/utility/make_fetch_def.c +5 -1
  571. package/project/.sdk/tm/c/utility/make_options.c +84 -6
  572. package/project/.sdk/tm/c/utility/make_point.c +100 -8
  573. package/project/.sdk/tm/c/utility/make_spec.c +17 -1
  574. package/project/.sdk/tm/c/utility/make_url.c +38 -1
  575. package/project/.sdk/tm/c/utility/media.c +107 -0
  576. package/project/.sdk/tm/c/utility/param.c +52 -28
  577. package/project/.sdk/tm/c/utility/prepare_body.c +1 -0
  578. package/project/.sdk/tm/c/utility/prepare_headers.c +199 -29
  579. package/project/.sdk/tm/c/utility/prepare_query.c +24 -2
  580. package/project/.sdk/tm/c/utility/result_body.c +4 -0
  581. package/project/.sdk/tm/c/utility/transform_request.c +54 -17
  582. package/project/.sdk/tm/clojure/LICENSE +1 -1
  583. package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +0 -3
  584. package/project/.sdk/tm/clojure/src/sdk/client.clj +19 -5
  585. package/project/.sdk/tm/clojure/src/sdk/core.clj +415 -117
  586. package/project/.sdk/tm/clojure/src/sdk/features.clj +44 -20
  587. package/project/.sdk/tm/clojure/test/sdk/test/feature.clj +21 -1
  588. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +10 -2
  589. package/project/.sdk/tm/cpp/LICENSE +1 -1
  590. package/project/.sdk/tm/cpp/core/types.hpp +131 -7
  591. package/project/.sdk/tm/cpp/feature/test.hpp +32 -2
  592. package/project/.sdk/tm/cpp/feature/timeout.hpp +29 -9
  593. package/project/.sdk/tm/cpp/feature/validate.hpp +2 -0
  594. package/project/.sdk/tm/cpp/test/feature_test.cpp +37 -0
  595. package/project/.sdk/tm/cpp/test/harness.hpp +1 -1
  596. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +6 -2
  597. package/project/.sdk/tm/cpp/test/server_variable_test.cpp +57 -0
  598. package/project/.sdk/tm/cpp/utility/cookie.hpp +36 -0
  599. package/project/.sdk/tm/cpp/utility/pipeline.hpp +441 -82
  600. package/project/.sdk/tm/csharp/LICENSE +1 -1
  601. package/project/.sdk/tm/csharp/core/Context.cs +1 -1
  602. package/project/.sdk/tm/csharp/core/Helpers.cs +17 -0
  603. package/project/.sdk/tm/csharp/core/Response.cs +75 -0
  604. package/project/.sdk/tm/csharp/core/Spec.cs +3 -0
  605. package/project/.sdk/tm/csharp/feature/TestFeature.cs +41 -3
  606. package/project/.sdk/tm/csharp/feature/TimeoutFeature.cs +31 -3
  607. package/project/.sdk/tm/csharp/feature/ValidateFeature.cs +2 -0
  608. package/project/.sdk/tm/csharp/test/FeatureHarness.cs +1 -1
  609. package/project/.sdk/tm/csharp/test/FeatureTest.cs +35 -0
  610. package/project/.sdk/tm/csharp/test/PipelineTest.cs +28 -0
  611. package/project/.sdk/tm/csharp/test/Runner.cs +119 -0
  612. package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +8 -3
  613. package/project/.sdk/tm/csharp/utility/Fetcher.cs +25 -7
  614. package/project/.sdk/tm/csharp/utility/MakeFetchDef.cs +1 -5
  615. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +8 -6
  616. package/project/.sdk/tm/csharp/utility/MakePoint.cs +68 -17
  617. package/project/.sdk/tm/csharp/utility/MakeSpec.cs +24 -6
  618. package/project/.sdk/tm/csharp/utility/MakeUrl.cs +21 -1
  619. package/project/.sdk/tm/csharp/utility/Media.cs +124 -0
  620. package/project/.sdk/tm/csharp/utility/Param.cs +57 -20
  621. package/project/.sdk/tm/csharp/utility/PrepareBody.cs +4 -0
  622. package/project/.sdk/tm/csharp/utility/PrepareHeaders.cs +103 -24
  623. package/project/.sdk/tm/csharp/utility/PrepareQuery.cs +33 -3
  624. package/project/.sdk/tm/csharp/utility/ResultBody.cs +5 -0
  625. package/project/.sdk/tm/csharp/utility/TransformRequest.cs +21 -13
  626. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +3 -2
  627. package/project/.sdk/tm/elixir/LICENSE +1 -1
  628. package/project/.sdk/tm/elixir/lib/projectname/context.ex +1 -1
  629. package/project/.sdk/tm/elixir/lib/projectname/core.ex +7 -2
  630. package/project/.sdk/tm/elixir/lib/projectname/entity_base.ex +43 -12
  631. package/project/.sdk/tm/elixir/lib/projectname/feature/test.ex +47 -21
  632. package/project/.sdk/tm/elixir/lib/projectname/feature/validate.ex +2 -0
  633. package/project/.sdk/tm/elixir/lib/projectname/utility.ex +482 -129
  634. package/project/.sdk/tm/elixir/test/support/feature_harness.ex +1 -0
  635. package/project/.sdk/tm/go/LICENSE +1 -1
  636. package/project/.sdk/tm/go/core/context.go +1 -1
  637. package/project/.sdk/tm/go/core/helpers.go +19 -1
  638. package/project/.sdk/tm/go/core/response.go +72 -0
  639. package/project/.sdk/tm/go/core/spec.go +3 -0
  640. package/project/.sdk/tm/go/core/types.go +9 -1
  641. package/project/.sdk/tm/go/feature/test_feature.go +44 -3
  642. package/project/.sdk/tm/go/feature/timeout_feature.go +39 -22
  643. package/project/.sdk/tm/go/feature/validate_feature.go +2 -0
  644. package/project/.sdk/tm/go/test/feature_corpus_test.go +45 -1
  645. package/project/.sdk/tm/go/test/feature_harness_test.go +1 -1
  646. package/project/.sdk/tm/go/test/feature_test.go +86 -0
  647. package/project/.sdk/tm/go/test/primary_utility_test.go +37 -1
  648. package/project/.sdk/tm/go/test/testsupport_test.go +106 -0
  649. package/project/.sdk/tm/go/utility/fetcher.go +20 -6
  650. package/project/.sdk/tm/go/utility/make_fetch_def.go +1 -7
  651. package/project/.sdk/tm/go/utility/make_options.go +12 -6
  652. package/project/.sdk/tm/go/utility/make_point.go +52 -3
  653. package/project/.sdk/tm/go/utility/make_spec.go +23 -3
  654. package/project/.sdk/tm/go/utility/make_url.go +23 -1
  655. package/project/.sdk/tm/go/utility/media.go +111 -0
  656. package/project/.sdk/tm/go/utility/param.go +61 -20
  657. package/project/.sdk/tm/go/utility/prepare_body.go +3 -0
  658. package/project/.sdk/tm/go/utility/prepare_headers.go +108 -22
  659. package/project/.sdk/tm/go/utility/prepare_query.go +25 -2
  660. package/project/.sdk/tm/go/utility/result_body.go +8 -0
  661. package/project/.sdk/tm/go/utility/transform_request.go +20 -9
  662. package/project/.sdk/tm/java/LICENSE +1 -1
  663. package/project/.sdk/tm/java/core/Context.java +1 -1
  664. package/project/.sdk/tm/java/core/Helpers.java +13 -0
  665. package/project/.sdk/tm/java/core/Response.java +61 -0
  666. package/project/.sdk/tm/java/core/SdkClient.java +21 -3
  667. package/project/.sdk/tm/java/core/SdkEntity.java +2 -0
  668. package/project/.sdk/tm/java/core/Spec.java +4 -0
  669. package/project/.sdk/tm/java/feature/TestFeature.java +46 -3
  670. package/project/.sdk/tm/java/feature/TimeoutFeature.java +51 -18
  671. package/project/.sdk/tm/java/feature/ValidateFeature.java +2 -0
  672. package/project/.sdk/tm/java/test/FeatureCorpusTest.java +93 -35
  673. package/project/.sdk/tm/java/test/FeatureHarness.java +1 -0
  674. package/project/.sdk/tm/java/test/FeatureTest.java +33 -0
  675. package/project/.sdk/tm/java/test/PipelineTest.java +4 -1
  676. package/project/.sdk/tm/java/test/RunnerSupport.java +97 -0
  677. package/project/.sdk/tm/java/utility/Clean.java +17 -7
  678. package/project/.sdk/tm/java/utility/Fetcher.java +27 -3
  679. package/project/.sdk/tm/java/utility/MakeFetchDef.java +1 -7
  680. package/project/.sdk/tm/java/utility/MakePoint.java +62 -10
  681. package/project/.sdk/tm/java/utility/MakeSpec.java +26 -1
  682. package/project/.sdk/tm/java/utility/MakeUrl.java +23 -1
  683. package/project/.sdk/tm/java/utility/Media.java +117 -0
  684. package/project/.sdk/tm/java/utility/Param.java +59 -20
  685. package/project/.sdk/tm/java/utility/PrepareBody.java +3 -0
  686. package/project/.sdk/tm/java/utility/PrepareHeaders.java +76 -18
  687. package/project/.sdk/tm/java/utility/PrepareMethod.java +2 -1
  688. package/project/.sdk/tm/java/utility/PrepareQuery.java +26 -2
  689. package/project/.sdk/tm/java/utility/ResultBody.java +5 -0
  690. package/project/.sdk/tm/java/utility/TransformRequest.java +24 -11
  691. package/project/.sdk/tm/js/LICENSE +1 -1
  692. package/project/.sdk/tm/js/src/Context.js +1 -1
  693. package/project/.sdk/tm/js/src/Control.js +1 -0
  694. package/project/.sdk/tm/js/src/Response.js +10 -1
  695. package/project/.sdk/tm/js/src/Spec.js +3 -0
  696. package/project/.sdk/tm/js/src/feature/base/BaseFeature.js +28 -0
  697. package/project/.sdk/tm/js/src/feature/netsim/NetsimFeature.js +10 -8
  698. package/project/.sdk/tm/js/src/feature/ratelimit/RatelimitFeature.js +8 -6
  699. package/project/.sdk/tm/js/src/feature/retry/RetryFeature.js +17 -4
  700. package/project/.sdk/tm/js/src/feature/test/TestFeature.js +40 -12
  701. package/project/.sdk/tm/js/src/feature/timeout/TimeoutFeature.js +17 -3
  702. package/project/.sdk/tm/js/src/feature/validate/ValidateFeature.js +2 -0
  703. package/project/.sdk/tm/js/src/utility/CleanUtility.js +25 -1
  704. package/project/.sdk/tm/js/src/utility/FetcherUtility.js +23 -1
  705. package/project/.sdk/tm/js/src/utility/MakeErrorUtility.js +2 -2
  706. package/project/.sdk/tm/js/src/utility/MakeFetchDefUtility.js +14 -2
  707. package/project/.sdk/tm/js/src/utility/MakeOptionsUtility.js +6 -6
  708. package/project/.sdk/tm/js/src/utility/MakePointUtility.js +39 -2
  709. package/project/.sdk/tm/js/src/utility/MakeRequestUtility.js +27 -2
  710. package/project/.sdk/tm/js/src/utility/MakeResponseUtility.js +2 -1
  711. package/project/.sdk/tm/js/src/utility/MakeSpecUtility.js +14 -1
  712. package/project/.sdk/tm/js/src/utility/MakeUrlUtility.js +23 -0
  713. package/project/.sdk/tm/js/src/utility/MediaUtility.js +145 -0
  714. package/project/.sdk/tm/js/src/utility/ParamUtility.js +46 -18
  715. package/project/.sdk/tm/js/src/utility/PrepareBodyUtility.js +6 -0
  716. package/project/.sdk/tm/js/src/utility/PrepareHeadersUtility.js +55 -14
  717. package/project/.sdk/tm/js/src/utility/PrepareMethodUtility.js +9 -0
  718. package/project/.sdk/tm/js/src/utility/PrepareQueryUtility.js +23 -6
  719. package/project/.sdk/tm/js/src/utility/ResultBodyUtility.js +60 -3
  720. package/project/.sdk/tm/js/src/utility/TransformRequestUtility.js +16 -7
  721. package/project/.sdk/tm/js/test/definition-runner.js +103 -3
  722. package/project/.sdk/tm/js/test/feature/Corpus.test.js +47 -16
  723. package/project/.sdk/tm/js/test/feature/harness.js +4 -1
  724. package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +7 -7
  725. package/project/.sdk/tm/js/test/feature.test.js +134 -0
  726. package/project/.sdk/tm/js/test/live-contract.js +73 -3
  727. package/project/.sdk/tm/js/test/live-entity.js +34 -15
  728. package/project/.sdk/tm/js/test/live-runner.js +52 -7
  729. package/project/.sdk/tm/js/test/live-scenarios.js +4 -4
  730. package/project/.sdk/tm/js/test/pipeline.test.js +52 -1
  731. package/project/.sdk/tm/js/test/utility.js +30 -4
  732. package/project/.sdk/tm/kotlin/LICENSE +1 -1
  733. package/project/.sdk/tm/kotlin/core/Context.kt +1 -1
  734. package/project/.sdk/tm/kotlin/core/Helpers.kt +8 -0
  735. package/project/.sdk/tm/kotlin/core/Interfaces.kt +2 -0
  736. package/project/.sdk/tm/kotlin/core/Response.kt +65 -0
  737. package/project/.sdk/tm/kotlin/core/SdkClient.kt +20 -3
  738. package/project/.sdk/tm/kotlin/core/Spec.kt +3 -0
  739. package/project/.sdk/tm/kotlin/feature/TestFeature.kt +23 -3
  740. package/project/.sdk/tm/kotlin/feature/TimeoutFeature.kt +42 -15
  741. package/project/.sdk/tm/kotlin/feature/ValidateFeature.kt +2 -0
  742. package/project/.sdk/tm/kotlin/test/FeatureHarness.kt +1 -1
  743. package/project/.sdk/tm/kotlin/test/FeatureTest.kt +32 -0
  744. package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +90 -0
  745. package/project/.sdk/tm/kotlin/test/ServerVariableTest.kt +50 -0
  746. package/project/.sdk/tm/kotlin/utility/CoreUtil.kt +9 -7
  747. package/project/.sdk/tm/kotlin/utility/Fetcher.kt +24 -4
  748. package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +26 -0
  749. package/project/.sdk/tm/kotlin/utility/MakePoint.kt +57 -12
  750. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +26 -7
  751. package/project/.sdk/tm/kotlin/utility/Media.kt +83 -0
  752. package/project/.sdk/tm/kotlin/utility/Prepare.kt +127 -48
  753. package/project/.sdk/tm/kotlin/utility/ResultTransform.kt +18 -7
  754. package/project/.sdk/tm/lua/LICENSE +1 -1
  755. package/project/.sdk/tm/lua/core/context.lua +1 -1
  756. package/project/.sdk/tm/lua/core/helpers.lua +103 -0
  757. package/project/.sdk/tm/lua/core/response.lua +3 -0
  758. package/project/.sdk/tm/lua/core/spec.lua +3 -0
  759. package/project/.sdk/tm/lua/feature/test_feature.lua +36 -3
  760. package/project/.sdk/tm/lua/feature/validate_feature.lua +2 -0
  761. package/project/.sdk/tm/lua/test/feature_test.lua +1 -1
  762. package/project/.sdk/tm/lua/test/runner.lua +107 -0
  763. package/project/.sdk/tm/lua/utility/fetcher.lua +9 -2
  764. package/project/.sdk/tm/lua/utility/make_fetch_def.lua +2 -6
  765. package/project/.sdk/tm/lua/utility/make_options.lua +10 -7
  766. package/project/.sdk/tm/lua/utility/make_point.lua +65 -12
  767. package/project/.sdk/tm/lua/utility/make_spec.lua +19 -4
  768. package/project/.sdk/tm/lua/utility/make_url.lua +22 -1
  769. package/project/.sdk/tm/lua/utility/media.lua +106 -0
  770. package/project/.sdk/tm/lua/utility/param.lua +5 -45
  771. package/project/.sdk/tm/lua/utility/prepare_body.lua +5 -0
  772. package/project/.sdk/tm/lua/utility/prepare_headers.lua +71 -21
  773. package/project/.sdk/tm/lua/utility/prepare_query.lua +28 -6
  774. package/project/.sdk/tm/lua/utility/result_body.lua +7 -0
  775. package/project/.sdk/tm/lua/utility/transform_request.lua +23 -10
  776. package/project/.sdk/tm/lua/utility/unreadable_body.lua +70 -0
  777. package/project/.sdk/tm/ocaml/LICENSE +1 -1
  778. package/project/.sdk/tm/ocaml/sdk_features.ml +56 -10
  779. package/project/.sdk/tm/ocaml/sdk_helpers.ml +9 -0
  780. package/project/.sdk/tm/ocaml/sdk_runtime.ml +359 -85
  781. package/project/.sdk/tm/ocaml/sdk_types.ml +6 -0
  782. package/project/.sdk/tm/ocaml/test/harness.ml +1 -1
  783. package/project/.sdk/tm/ocaml/test/t_pipeline.ml +2 -1
  784. package/project/.sdk/tm/perl/LICENSE +1 -1
  785. package/project/.sdk/tm/perl/core/context.pm +1 -1
  786. package/project/.sdk/tm/perl/core/response.pm +2 -0
  787. package/project/.sdk/tm/perl/core/spec.pm +3 -0
  788. package/project/.sdk/tm/perl/feature/test_feature.pm +26 -3
  789. package/project/.sdk/tm/perl/feature/validate_feature.pm +2 -0
  790. package/project/.sdk/tm/perl/t/feature.t +1 -1
  791. package/project/.sdk/tm/perl/t/feature_corpus.t +72 -33
  792. package/project/.sdk/tm/perl/t/runner.pm +86 -0
  793. package/project/.sdk/tm/perl/t/server_variables.t +39 -0
  794. package/project/.sdk/tm/perl/utility/clean.pm +12 -7
  795. package/project/.sdk/tm/perl/utility/fetcher.pm +32 -19
  796. package/project/.sdk/tm/perl/utility/make_fetch_def.pm +4 -4
  797. package/project/.sdk/tm/perl/utility/make_options.pm +24 -0
  798. package/project/.sdk/tm/perl/utility/make_point.pm +55 -9
  799. package/project/.sdk/tm/perl/utility/make_spec.pm +27 -3
  800. package/project/.sdk/tm/perl/utility/make_url.pm +13 -1
  801. package/project/.sdk/tm/perl/utility/media.pm +109 -0
  802. package/project/.sdk/tm/perl/utility/param.pm +50 -24
  803. package/project/.sdk/tm/perl/utility/prepare_body.pm +11 -3
  804. package/project/.sdk/tm/perl/utility/prepare_headers.pm +63 -16
  805. package/project/.sdk/tm/perl/utility/prepare_method.pm +13 -0
  806. package/project/.sdk/tm/perl/utility/prepare_query.pm +18 -4
  807. package/project/.sdk/tm/perl/utility/result_body.pm +60 -0
  808. package/project/.sdk/tm/perl/utility/transform_request.pm +23 -8
  809. package/project/.sdk/tm/php/LICENSE +1 -1
  810. package/project/.sdk/tm/php/core/Context.php +1 -1
  811. package/project/.sdk/tm/php/core/Response.php +3 -0
  812. package/project/.sdk/tm/php/core/Spec.php +4 -0
  813. package/project/.sdk/tm/php/feature/CostFeature.php +2 -7
  814. package/project/.sdk/tm/php/feature/TestFeature.php +33 -3
  815. package/project/.sdk/tm/php/feature/ValidateFeature.php +14 -12
  816. package/project/.sdk/tm/php/test/FeatureCorpusTest.php +90 -35
  817. package/project/.sdk/tm/php/test/FeatureTest.php +4 -5
  818. package/project/.sdk/tm/php/test/PipelineTest.php +18 -1
  819. package/project/.sdk/tm/php/test/Runner.php +86 -0
  820. package/project/.sdk/tm/php/utility/Clean.php +10 -5
  821. package/project/.sdk/tm/php/utility/Fetcher.php +48 -6
  822. package/project/.sdk/tm/php/utility/MakeFetchDef.php +2 -1
  823. package/project/.sdk/tm/php/utility/MakePoint.php +55 -11
  824. package/project/.sdk/tm/php/utility/MakeSpec.php +21 -4
  825. package/project/.sdk/tm/php/utility/MakeUrl.php +16 -1
  826. package/project/.sdk/tm/php/utility/Media.php +111 -0
  827. package/project/.sdk/tm/php/utility/Param.php +66 -27
  828. package/project/.sdk/tm/php/utility/PrepareBody.php +5 -0
  829. package/project/.sdk/tm/php/utility/PrepareHeaders.php +83 -23
  830. package/project/.sdk/tm/php/utility/PrepareMethod.php +15 -0
  831. package/project/.sdk/tm/php/utility/PrepareQuery.php +22 -8
  832. package/project/.sdk/tm/php/utility/ResultBody.php +71 -0
  833. package/project/.sdk/tm/php/utility/TransformRequest.php +22 -11
  834. package/project/.sdk/tm/py/LICENSE +1 -1
  835. package/project/.sdk/tm/py/pkg/core/context.py +1 -1
  836. package/project/.sdk/tm/py/pkg/core/response.py +3 -0
  837. package/project/.sdk/tm/py/pkg/core/spec.py +3 -0
  838. package/project/.sdk/tm/py/pkg/feature/test_feature.py +27 -3
  839. package/project/.sdk/tm/py/pkg/feature/validate_feature.py +2 -0
  840. package/project/.sdk/tm/py/pkg/utility/fetcher.py +17 -7
  841. package/project/.sdk/tm/py/pkg/utility/make_fetch_def.py +2 -5
  842. package/project/.sdk/tm/py/pkg/utility/make_options.py +14 -8
  843. package/project/.sdk/tm/py/pkg/utility/make_point.py +40 -4
  844. package/project/.sdk/tm/py/pkg/utility/make_spec.py +12 -4
  845. package/project/.sdk/tm/py/pkg/utility/make_url.py +19 -1
  846. package/project/.sdk/tm/py/pkg/utility/media.py +88 -0
  847. package/project/.sdk/tm/py/pkg/utility/param.py +47 -18
  848. package/project/.sdk/tm/py/pkg/utility/prepare_body.py +4 -0
  849. package/project/.sdk/tm/py/pkg/utility/prepare_headers.py +56 -20
  850. package/project/.sdk/tm/py/pkg/utility/prepare_method.py +7 -0
  851. package/project/.sdk/tm/py/pkg/utility/prepare_query.py +17 -8
  852. package/project/.sdk/tm/py/pkg/utility/result_body.py +51 -0
  853. package/project/.sdk/tm/py/pkg/utility/transform_request.py +18 -9
  854. package/project/.sdk/tm/py/test/feature_harness.py +1 -1
  855. package/project/.sdk/tm/py/test/runner.py +77 -2
  856. package/project/.sdk/tm/py/test/test_feature_corpus.py +69 -32
  857. package/project/.sdk/tm/py-data/LICENSE +1 -1
  858. package/project/.sdk/tm/py-data/Makefile +2 -2
  859. package/project/.sdk/tm/rb/LICENSE +1 -1
  860. package/project/.sdk/tm/rb/core/context.rb +1 -1
  861. package/project/.sdk/tm/rb/core/response.rb +3 -1
  862. package/project/.sdk/tm/rb/core/spec.rb +4 -1
  863. package/project/.sdk/tm/rb/feature/test_feature.rb +27 -8
  864. package/project/.sdk/tm/rb/feature/validate_feature.rb +3 -1
  865. package/project/.sdk/tm/rb/test/feature_corpus_test.rb +74 -30
  866. package/project/.sdk/tm/rb/test/feature_test.rb +1 -1
  867. package/project/.sdk/tm/rb/test/runner.rb +54 -2
  868. package/project/.sdk/tm/rb/utility/clean.rb +14 -6
  869. package/project/.sdk/tm/rb/utility/fetcher.rb +22 -14
  870. package/project/.sdk/tm/rb/utility/make_fetch_def.rb +2 -4
  871. package/project/.sdk/tm/rb/utility/make_point.rb +44 -8
  872. package/project/.sdk/tm/rb/utility/make_spec.rb +14 -2
  873. package/project/.sdk/tm/rb/utility/make_url.rb +13 -1
  874. package/project/.sdk/tm/rb/utility/media.rb +75 -0
  875. package/project/.sdk/tm/rb/utility/param.rb +44 -25
  876. package/project/.sdk/tm/rb/utility/prepare_body.rb +4 -1
  877. package/project/.sdk/tm/rb/utility/prepare_headers.rb +50 -16
  878. package/project/.sdk/tm/rb/utility/prepare_method.rb +6 -0
  879. package/project/.sdk/tm/rb/utility/prepare_query.rb +12 -4
  880. package/project/.sdk/tm/rb/utility/result_body.rb +45 -0
  881. package/project/.sdk/tm/rb/utility/transform_request.rb +17 -7
  882. package/project/.sdk/tm/rust/LICENSE +1 -1
  883. package/project/.sdk/tm/rust/core/context.rs +1 -1
  884. package/project/.sdk/tm/rust/core/helpers.rs +10 -0
  885. package/project/.sdk/tm/rust/core/response.rs +80 -1
  886. package/project/.sdk/tm/rust/core/spec.rs +4 -0
  887. package/project/.sdk/tm/rust/core/types.rs +1 -0
  888. package/project/.sdk/tm/rust/feature/test.rs +29 -2
  889. package/project/.sdk/tm/rust/feature/validate.rs +2 -0
  890. package/project/.sdk/tm/rust/tests/common/mod.rs +108 -1
  891. package/project/.sdk/tm/rust/utility/clean.rs +0 -2
  892. package/project/.sdk/tm/rust/utility/fetcher.rs +19 -11
  893. package/project/.sdk/tm/rust/utility/make_fetch_def.rs +12 -1
  894. package/project/.sdk/tm/rust/utility/make_options.rs +6 -5
  895. package/project/.sdk/tm/rust/utility/make_point.rs +80 -16
  896. package/project/.sdk/tm/rust/utility/make_spec.rs +23 -4
  897. package/project/.sdk/tm/rust/utility/make_url.rs +39 -2
  898. package/project/.sdk/tm/rust/utility/media.rs +116 -0
  899. package/project/.sdk/tm/rust/utility/mod.rs +1 -0
  900. package/project/.sdk/tm/rust/utility/param.rs +66 -19
  901. package/project/.sdk/tm/rust/utility/prepare_body.rs +4 -0
  902. package/project/.sdk/tm/rust/utility/prepare_headers.rs +85 -28
  903. package/project/.sdk/tm/rust/utility/prepare_query.rs +27 -5
  904. package/project/.sdk/tm/rust/utility/result_body.rs +15 -2
  905. package/project/.sdk/tm/rust/utility/transform_request.rs +27 -14
  906. package/project/.sdk/tm/scala/LICENSE +1 -1
  907. package/project/.sdk/tm/scala/Makefile +3 -1
  908. package/project/.sdk/tm/scala/core/Context.scala +1 -1
  909. package/project/.sdk/tm/scala/core/Contracts.scala +1 -0
  910. package/project/.sdk/tm/scala/core/Helpers.scala +7 -0
  911. package/project/.sdk/tm/scala/core/Response.scala +55 -0
  912. package/project/.sdk/tm/scala/core/SdkClient.scala +18 -5
  913. package/project/.sdk/tm/scala/core/Spec.scala +3 -0
  914. package/project/.sdk/tm/scala/feature/TestFeature.scala +36 -3
  915. package/project/.sdk/tm/scala/feature/TimeoutFeature.scala +39 -13
  916. package/project/.sdk/tm/scala/feature/ValidateFeature.scala +2 -0
  917. package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +16 -1
  918. package/project/.sdk/tm/scala/sdktest/ServerVariableTest.scala +49 -0
  919. package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +1 -0
  920. package/project/.sdk/tm/scala/utility/Fetcher.scala +17 -2
  921. package/project/.sdk/tm/scala/utility/Make.scala +141 -43
  922. package/project/.sdk/tm/scala/utility/MakeSpec.scala +20 -2
  923. package/project/.sdk/tm/scala/utility/Media.scala +96 -0
  924. package/project/.sdk/tm/scala/utility/Misc.scala +56 -23
  925. package/project/.sdk/tm/scala/utility/Prepare.scala +84 -31
  926. package/project/.sdk/tm/scala/utility/Results.scala +5 -0
  927. package/project/.sdk/tm/scala/utility/Transform.scala +15 -19
  928. package/project/.sdk/tm/swift/LICENSE +1 -1
  929. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Context.swift +1 -1
  930. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Response.swift +57 -0
  931. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Spec.swift +3 -0
  932. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Support.swift +8 -0
  933. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TestFeature.swift +34 -3
  934. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TimeoutFeature.swift +19 -3
  935. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ValidateFeature.swift +2 -0
  936. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Fetcher.swift +21 -12
  937. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Make.swift +85 -18
  938. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +73 -7
  939. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Media.swift +76 -0
  940. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +118 -43
  941. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/ResultUtil.swift +18 -8
  942. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/FeatureTest.swift +31 -1
  943. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +6 -0
  944. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/ServerVariableTest.swift +42 -0
  945. package/project/.sdk/tm/ts/LICENSE +1 -1
  946. package/project/.sdk/tm/ts/src/Context.ts +1 -1
  947. package/project/.sdk/tm/ts/src/Control.ts +3 -0
  948. package/project/.sdk/tm/ts/src/Response.ts +10 -1
  949. package/project/.sdk/tm/ts/src/Spec.ts +4 -0
  950. package/project/.sdk/tm/ts/src/feature/base/BaseFeature.ts +28 -0
  951. package/project/.sdk/tm/ts/src/feature/netsim/NetsimFeature.ts +10 -8
  952. package/project/.sdk/tm/ts/src/feature/ratelimit/RatelimitFeature.ts +8 -6
  953. package/project/.sdk/tm/ts/src/feature/retry/RetryFeature.ts +17 -4
  954. package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +41 -13
  955. package/project/.sdk/tm/ts/src/feature/timeout/TimeoutFeature.ts +17 -3
  956. package/project/.sdk/tm/ts/src/feature/validate/ValidateFeature.ts +2 -0
  957. package/project/.sdk/tm/ts/src/tsconfig.json +2 -1
  958. package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +25 -1
  959. package/project/.sdk/tm/ts/src/utility/FetcherUtility.ts +24 -1
  960. package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +2 -2
  961. package/project/.sdk/tm/ts/src/utility/MakeFetchDefUtility.ts +15 -2
  962. package/project/.sdk/tm/ts/src/utility/MakeOptionsUtility.ts +6 -6
  963. package/project/.sdk/tm/ts/src/utility/MakePointUtility.ts +38 -2
  964. package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +29 -2
  965. package/project/.sdk/tm/ts/src/utility/MakeResponseUtility.ts +3 -1
  966. package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +16 -6
  967. package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +16 -2
  968. package/project/.sdk/tm/ts/src/utility/MediaUtility.ts +143 -0
  969. package/project/.sdk/tm/ts/src/utility/ParamUtility.ts +50 -18
  970. package/project/.sdk/tm/ts/src/utility/PrepareBodyUtility.ts +6 -0
  971. package/project/.sdk/tm/ts/src/utility/PrepareHeadersUtility.ts +53 -11
  972. package/project/.sdk/tm/ts/src/utility/PrepareMethodUtility.ts +9 -0
  973. package/project/.sdk/tm/ts/src/utility/PrepareQueryUtility.ts +22 -6
  974. package/project/.sdk/tm/ts/src/utility/ResultBodyUtility.ts +68 -3
  975. package/project/.sdk/tm/ts/src/utility/TransformRequestUtility.ts +16 -6
  976. package/project/.sdk/tm/ts/test/definition-runner.ts +109 -3
  977. package/project/.sdk/tm/ts/test/feature/Corpus.test.ts +47 -16
  978. package/project/.sdk/tm/ts/test/feature/harness.ts +4 -1
  979. package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +1 -1
  980. package/project/.sdk/tm/ts/test/feature.test.ts +134 -0
  981. package/project/.sdk/tm/ts/test/live-contract.ts +60 -2
  982. package/project/.sdk/tm/ts/test/live-entity.ts +36 -12
  983. package/project/.sdk/tm/ts/test/live-runner.ts +79 -12
  984. package/project/.sdk/tm/ts/test/live-scenarios.ts +5 -4
  985. package/project/.sdk/tm/ts/test/pipeline.test.ts +52 -1
  986. package/project/.sdk/tm/ts/test/tsconfig.json +2 -1
  987. package/project/.sdk/tm/ts/test/utility.ts +35 -7
  988. package/project/.sdk/tm/zig/LICENSE +1 -1
  989. package/project/.sdk/tm/zig/core/context.zig +2 -1
  990. package/project/.sdk/tm/zig/core/helpers.zig +33 -0
  991. package/project/.sdk/tm/zig/core/response.zig +3 -0
  992. package/project/.sdk/tm/zig/core/spec.zig +27 -0
  993. package/project/.sdk/tm/zig/core/types.zig +6 -0
  994. package/project/.sdk/tm/zig/core/utility.zig +456 -84
  995. package/project/.sdk/tm/zig/feature/test.zig +31 -2
  996. package/project/.sdk/tm/zig/feature/validate.zig +2 -0
  997. package/project/.sdk/tm/zig/test/fh.zig +1 -1
  998. package/project/sdkgen-package.json +1 -1
  999. package/src/action/copies.ts +352 -0
  1000. package/src/action/doctor.ts +257 -21
  1001. package/src/action/edition.ts +10 -2
  1002. package/src/action/feature.ts +11 -2
  1003. package/src/action/package.ts +43 -14
  1004. package/src/action/remove.ts +4 -0
  1005. package/src/action/resolve.ts +57 -3
  1006. package/src/action/target.ts +10 -2
  1007. package/src/admin/npm-trust.ts +9 -8
  1008. package/src/cmp/AgentGuide.ts +4 -3
  1009. package/src/cmp/AgentGuideFeature.ts +3 -2
  1010. package/src/cmp/AgentGuideTop.ts +2 -1
  1011. package/src/cmp/Changelog.ts +2 -1
  1012. package/src/cmp/Deploy.ts +2 -1
  1013. package/src/cmp/Entity.ts +1 -3
  1014. package/src/cmp/ExternalTarget.ts +2 -1
  1015. package/src/cmp/Feature.ts +2 -1
  1016. package/src/cmp/FeatureHook.ts +2 -1
  1017. package/src/cmp/License.ts +7 -5
  1018. package/src/cmp/Main.ts +2 -1
  1019. package/src/cmp/PublishWorkflow.ts +2 -1
  1020. package/src/cmp/Readme.ts +2 -1
  1021. package/src/cmp/ReadmeEntity.ts +3 -3
  1022. package/src/cmp/ReadmeErrors.ts +6 -4
  1023. package/src/cmp/ReadmeExplanation.ts +4 -3
  1024. package/src/cmp/ReadmeFeatures.ts +4 -3
  1025. package/src/cmp/ReadmeHowto.ts +4 -3
  1026. package/src/cmp/ReadmeInstall.ts +4 -3
  1027. package/src/cmp/ReadmeIntro.ts +3 -3
  1028. package/src/cmp/ReadmeModel.ts +6 -3
  1029. package/src/cmp/ReadmeOptions.ts +3 -3
  1030. package/src/cmp/ReadmeQuick.ts +4 -3
  1031. package/src/cmp/ReadmeRef.ts +3 -3
  1032. package/src/cmp/ReadmeRefFeatures.ts +2 -1
  1033. package/src/cmp/ReadmeStation.ts +2 -1
  1034. package/src/cmp/ReadmeTop.ts +121 -37
  1035. package/src/cmp/ReadmeUnions.ts +2 -1
  1036. package/src/cmp/Registered.ts +4 -4
  1037. package/src/cmp/Security.ts +14 -7
  1038. package/src/cmp/Test.ts +2 -1
  1039. package/src/cmp/TestControl.ts +1 -1
  1040. package/src/helpers/component.ts +25 -0
  1041. package/src/helpers/definition.ts +2 -2
  1042. package/src/helpers/definitionPlan.ts +135 -13
  1043. package/src/helpers/featureSource.ts +55 -2
  1044. package/src/helpers/flowGuard.ts +111 -0
  1045. package/src/helpers/generated.ts +488 -0
  1046. package/src/helpers/mcpTools.ts +47 -0
  1047. package/src/helpers/media.ts +79 -0
  1048. package/src/helpers/modelNames.ts +186 -16
  1049. package/src/helpers/naming.ts +188 -0
  1050. package/src/helpers/npm.ts +68 -0
  1051. package/src/helpers/npmScripts.ts +37 -0
  1052. package/src/helpers/opExample.ts +19 -11
  1053. package/src/helpers/opShape.ts +235 -29
  1054. package/src/helpers/optional.ts +76 -0
  1055. package/src/helpers/packageMeta.ts +83 -11
  1056. package/src/helpers/stdrep.ts +5 -1
  1057. package/src/helpers/testPolicy.ts +68 -1
  1058. package/src/helpers/text.ts +33 -0
  1059. package/src/sdkgen.ts +142 -19
  1060. package/src/testkit.ts +2 -1
  1061. package/src/utility.ts +41 -19
  1062. package/project/.sdk/src/cmp/go/fragment/SdkError.fragment.go +0 -22
  1063. package/project/.sdk/src/cmp/lua/fragment/SdkError.fragment.lua +0 -38
  1064. package/project/.sdk/src/cmp/perl/fragment/SdkError.fragment.pm +0 -27
  1065. package/project/.sdk/src/cmp/php/fragment/SdkError.fragment.php +0 -35
  1066. package/project/.sdk/src/cmp/py/fragment/SdkError.fragment.py +0 -27
  1067. package/project/.sdk/src/cmp/rb/fragment/SdkError.fragment.rb +0 -25
@@ -10,6 +10,7 @@ my $__dir;
10
10
  BEGIN { $__dir = File::Basename::dirname(Cwd::abs_path(__FILE__)) }
11
11
  require(Cwd::abs_path("$__dir/../lib/Voxgig/Struct.pm"));
12
12
  require(Cwd::abs_path("$__dir/../core/helpers.pm"));
13
+ require(Cwd::abs_path("$__dir/param.pm"));
13
14
 
14
15
  package ProjectNameUtilities;
15
16
 
@@ -27,13 +28,27 @@ my $omit = sub {
27
28
 
28
29
  my $strip_action = sub { $omit->($_[0], '$action') };
29
30
 
30
- # A header argument travels as a header, which prepare_headers sends, so the
31
- # body is built from the request data without it.
32
- my $header_arg_names = sub {
33
- my ($point) = @_;
34
- my $hl = $point ? ProjectNameHelpers::gpath($point, 'args.header') : undef;
35
- return () unless Voxgig::Struct::islist($hl);
36
- return grep { defined $_ && !ref $_ && '' ne $_ } map { ProjectNameHelpers::gp($_, 'name') } @$hl;
31
+ my $field_arg = sub {
32
+ my ($ctx, $name) = @_;
33
+ for my $kind (qw(header cookie query)) {
34
+ my $defs = $ctx->{point} ? ProjectNameHelpers::gpath($ctx->{point}, "args.$kind") : undef;
35
+ next unless Voxgig::Struct::islist($defs);
36
+ for my $ad (@$defs) {
37
+ my $n = ProjectNameHelpers::gp($ad, 'name');
38
+ return 1 if defined $n && !ref $n && $n eq $name &&
39
+ ProjectNameHelpers::rb_truthy(ProjectNameHelpers::gp($ad, 'field'));
40
+ }
41
+ }
42
+ return 0;
43
+ };
44
+
45
+ # A header, cookie or query argument travels where prepare_headers or
46
+ # prepare_query sends it, so the body is built from the request data without
47
+ # it, unless the entity declares it as a field too.
48
+ my $routed_arg_names = sub {
49
+ my ($ctx) = @_;
50
+ return grep { !$field_arg->($ctx, $_) } map { $_->[0] } ProjectNameUtilities::call_args($ctx, 'header'),
51
+ ProjectNameUtilities::call_args($ctx, 'cookie'), ProjectNameUtilities::call_args($ctx, 'query');
37
52
  };
38
53
 
39
54
  $REGISTRY{transform_request} = sub {
@@ -41,7 +56,7 @@ $REGISTRY{transform_request} = sub {
41
56
  my $spec = $ctx->{spec};
42
57
  my $point = $ctx->{point};
43
58
  $spec->{step} = 'reqform' if $spec;
44
- my $data = $omit->($ctx->{reqdata}, $header_arg_names->($point));
59
+ my $data = $omit->($ctx->{reqdata}, $routed_arg_names->($ctx));
45
60
  my $transform = ProjectNameHelpers::to_map(ProjectNameHelpers::gp($point, 'transform'));
46
61
  return $strip_action->($data) unless $transform;
47
62
  my $reqform = ProjectNameHelpers::gp($transform, 'req');
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) $$const.year$$ Voxgig
3
+ Copyright (c) $$const.year$$ PROJECTPUBLISHER
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -125,7 +125,7 @@ class ProjectNameContext implements \JsonSerializable
125
125
 
126
126
  $opcfg = \Voxgig\Struct\Struct::getpath($this->config, "entity.{$entname}.op.{$opname}");
127
127
 
128
- $input = ($opname === 'update' || $opname === 'create') ? 'data' : 'match';
128
+ $input = ($opname === 'update' || $opname === 'create' || $opname === 'patch') ? 'data' : 'match';
129
129
 
130
130
  $points = [];
131
131
  if (is_array($opcfg)) {
@@ -11,6 +11,8 @@ class ProjectNameResponse
11
11
  public mixed $json_func;
12
12
  public mixed $body;
13
13
  public mixed $err;
14
+ // Set by a transport that could not read a non-blank body as JSON.
15
+ public bool $unreadable;
14
16
 
15
17
  public function __construct(array $resmap = [])
16
18
  {
@@ -26,5 +28,6 @@ class ProjectNameResponse
26
28
  $this->body = ($b === '__UNDEFINED__') ? null : $b;
27
29
  $e = \Voxgig\Struct\Struct::getprop($resmap, 'err');
28
30
  $this->err = ($e === '__UNDEFINED__') ? null : $e;
31
+ $this->unreadable = true === \Voxgig\Struct\Struct::getprop($resmap, 'unreadable');
29
32
  }
30
33
  }
@@ -18,6 +18,9 @@ class ProjectNameSpec
18
18
  public mixed $body;
19
19
  public string $url;
20
20
  public string $path;
21
+ // The query parameters prepare_auth placed: the credential, which the
22
+ // request sends and the entity's match leaves out.
23
+ public array $authquery;
21
24
 
22
25
  public function __construct(array $specmap = [])
23
26
  {
@@ -34,5 +37,6 @@ class ProjectNameSpec
34
37
  $this->body = $specmap['body'] ?? null;
35
38
  $this->url = $specmap['url'] ?? '';
36
39
  $this->path = $specmap['path'] ?? '';
40
+ $this->authquery = $specmap['authquery'] ?? [];
37
41
  }
38
42
  }
@@ -134,12 +134,11 @@ class ProjectNameCostFeature extends ProjectNameBaseFeature
134
134
  // A rejecting transport still costs an attempt. Without this, a run of
135
135
  // connection-level failures under `retry` (which catches and tries
136
136
  // again) would be charged nothing at all, and an onBudget 'deny'
137
- // ceiling could never stop it.
138
- $threw = null;
137
+ // ceiling could never stop it. Its error is answered as the pair the
138
+ // fetcher contract names, so make_error reports it as it does any.
139
139
  try {
140
140
  [$res, $err] = $inner($ctx, $url, $fetchdef);
141
141
  } catch (\Throwable $ex) {
142
- $threw = $ex;
143
142
  $res = null;
144
143
  $err = $ex;
145
144
  }
@@ -184,10 +183,6 @@ class ProjectNameCostFeature extends ProjectNameBaseFeature
184
183
  }
185
184
  }
186
185
 
187
- if ($threw !== null) {
188
- throw $threw;
189
- }
190
-
191
186
  return [$res, $err];
192
187
  }
193
188
 
@@ -12,6 +12,32 @@ class ProjectNameTestFeature extends ProjectNameBaseFeature
12
12
  private ?array $options;
13
13
  private int $_netcalls;
14
14
 
15
+ // The record the mock keeps: the request data without `$body`, which only the
16
+ // wire carries.
17
+ private static function record(mixed $reqdata): array
18
+ {
19
+ if (!is_array($reqdata)) {
20
+ return [];
21
+ }
22
+ unset($reqdata['$body']);
23
+ return $reqdata;
24
+ }
25
+
26
+ // The key a list's response transform
27
+ // ["`$EACH`", "body", ["`$MERGE`" => "`.<key>`"]] reads each item's record under.
28
+ private static function itemEnvelopeKey(mixed $restf): ?string
29
+ {
30
+ if (!is_array($restf) || !array_is_list($restf) || 3 !== count($restf) ||
31
+ '`$EACH`' !== $restf[0] || 'body' !== $restf[1] || !is_array($restf[2])) {
32
+ return null;
33
+ }
34
+ $merge = $restf[2]['`$MERGE`'] ?? null;
35
+ if (!is_string($merge) || !preg_match('/^`\.([^.`$]+)`$/', $merge, $m)) {
36
+ return null;
37
+ }
38
+ return $m[1];
39
+ }
40
+
15
41
  public function __construct()
16
42
  {
17
43
  parent::__construct();
@@ -66,6 +92,10 @@ class ProjectNameTestFeature extends ProjectNameBaseFeature
66
92
  return $data;
67
93
  }
68
94
  $restf = $transform['res'] ?? null;
95
+ $key = self::itemEnvelopeKey($restf);
96
+ if ($key !== null && is_array($data) && array_is_list($data)) {
97
+ return array_map(fn($item) => [$key => $item], $data);
98
+ }
69
99
  if (!is_string($restf)) {
70
100
  return $data;
71
101
  }
@@ -210,7 +240,7 @@ class ProjectNameTestFeature extends ProjectNameBaseFeature
210
240
  $out = \Voxgig\Struct\Struct::clone($cleaned);
211
241
  return $respond(200, $out);
212
242
 
213
- } elseif ($op->name === 'update') {
243
+ } elseif ($op->name === 'update' || $op->name === 'patch') {
214
244
  // Match the existing entity by id only (or its alias). reqdata
215
245
  // also contains the new field values, which would otherwise
216
246
  // cause find_first to filter out the entity we want to update.
@@ -237,7 +267,7 @@ class ProjectNameTestFeature extends ProjectNameBaseFeature
237
267
  return $respond(404, null, ['statusText' => 'Not found']);
238
268
  }
239
269
  if (is_array($fctx->reqdata)) {
240
- $ent = \Voxgig\Struct\Struct::merge([$ent, $fctx->reqdata]);
270
+ $ent = \Voxgig\Struct\Struct::merge([$ent, self::record($fctx->reqdata)]);
241
271
  }
242
272
  $id = is_array($ent) ? ($ent['id'] ?? null) : null;
243
273
  if ($id !== null) {
@@ -267,7 +297,7 @@ class ProjectNameTestFeature extends ProjectNameBaseFeature
267
297
  random_int(0, 0xFFFF), random_int(0, 0xFFFF));
268
298
  }
269
299
 
270
- $ent = is_array($fctx->reqdata) ? $fctx->reqdata : [];
300
+ $ent = self::record($fctx->reqdata);
271
301
  $ent['id'] = $id;
272
302
  $entmap[$id] = $ent;
273
303
  $entity->data[$entname] = $entmap;
@@ -78,10 +78,10 @@ class ProjectNameValidateFeature extends ProjectNameBaseFeature
78
78
  // Outbound. make_spec short-circuits on a $ctx->out['spec'] that is
79
79
  // already set, so assigning the error here rejects the operation before
80
80
  // the request is built - the same seam rbac uses one stage earlier.
81
- public function PreSpec(ProjectNameContext $ctx): mixed
81
+ public function PreSpec(ProjectNameContext $ctx): void
82
82
  {
83
83
  if (!$this->active || !$this->request) {
84
- return null;
84
+ return;
85
85
  }
86
86
 
87
87
  $opname = $this->_opname($ctx);
@@ -90,19 +90,19 @@ class ProjectNameValidateFeature extends ProjectNameBaseFeature
90
90
  $opspec = is_array($ops) ? ($ops[$opname] ?? null) : null;
91
91
 
92
92
  if ($opspec === null) {
93
- return null;
93
+ return;
94
94
  }
95
95
 
96
96
  $errs = $this->_check($ctx, $this->_payload($ctx, $opname), $opspec, 'request');
97
97
  if (count($errs) === 0 || $this->mode === 'report') {
98
- return null;
98
+ return;
99
99
  }
100
100
 
101
101
  $entname = $this->_entname($ctx);
102
102
  $err = $ctx->make_error('validate_failed',
103
103
  "Invalid {$opname} request for entity \"{$entname}\": " . implode('; ', $errs));
104
104
  $ctx->out['spec'] = $err;
105
- return $err;
105
+ return;
106
106
  }
107
107
 
108
108
  // Inbound. PreDone rather than PreResult: the records are extracted from
@@ -115,25 +115,25 @@ class ProjectNameValidateFeature extends ProjectNameBaseFeature
115
115
  // debug, metrics and telemetry. Those observers therefore record the
116
116
  // operation as a success before this hook has looked at it. Activating
117
117
  // features as an ORDERED LIST fixes it.
118
- public function PreDone(ProjectNameContext $ctx): mixed
118
+ public function PreDone(ProjectNameContext $ctx): void
119
119
  {
120
120
  if (!$this->active || !$this->response) {
121
- return null;
121
+ return;
122
122
  }
123
123
 
124
124
  $espec = $this->_entity_spec($ctx);
125
125
  if (!is_array($espec)) {
126
- return null;
126
+ return;
127
127
  }
128
128
 
129
129
  $dataspec = $espec['data'] ?? null;
130
130
  if ($dataspec === null) {
131
- return null;
131
+ return;
132
132
  }
133
133
 
134
134
  $result = $ctx->result ?? null;
135
135
  if ($result === null || $result->resdata === null) {
136
- return null;
136
+ return;
137
137
  }
138
138
 
139
139
  // A list op returns many records and a load returns one; both are
@@ -159,7 +159,7 @@ class ProjectNameValidateFeature extends ProjectNameBaseFeature
159
159
  }
160
160
 
161
161
  if (count($errs) === 0 || $this->mode === 'report') {
162
- return null;
162
+ return;
163
163
  }
164
164
 
165
165
  $entname = $this->_entname($ctx);
@@ -180,7 +180,7 @@ class ProjectNameValidateFeature extends ProjectNameBaseFeature
180
180
  // feature had just declared invalid.
181
181
  $result->resdata = null;
182
182
 
183
- return $err;
183
+ return;
184
184
  }
185
185
 
186
186
  // The payload an operation is about to send.
@@ -214,6 +214,8 @@ class ProjectNameValidateFeature extends ProjectNameBaseFeature
214
214
  // custom-action call would be rejected for the one key that made it
215
215
  // reachable.
216
216
  unset($out['$action']);
217
+ // Nor is `$body`, the raw request body.
218
+ unset($out['$body']);
217
219
 
218
220
  return $out;
219
221
  }
@@ -29,7 +29,7 @@ class FeatureCorpusTest extends TestCase
29
29
  // SDK generated without a listed feature still skips, not fails.
30
30
 
31
31
  // The standard operation names, in the order the runner prefers them.
32
- private const FEATURE_CORPUS_OPS = ['load', 'list', 'create', 'update', 'remove'];
32
+ private const FEATURE_CORPUS_OPS = ['load', 'list', 'create', 'update', 'patch', 'remove'];
33
33
 
34
34
  private static function corpus(): array
35
35
  {
@@ -286,6 +286,39 @@ class FeatureCorpusTest extends TestCase
286
286
  return $client->$prop ?? null;
287
287
  }
288
288
 
289
+ // The first feature a case composes that this SDK does not generate,
290
+ // probed as a section's own feature is. Such a case is skipped rather
291
+ // than failed.
292
+ private static function missingFeature(array $kase, array &$have): ?string
293
+ {
294
+ $spec = $kase['feature'] ?? null;
295
+ $names = [];
296
+ if (is_array($spec) && array_is_list($spec)) {
297
+ foreach ($spec as $f) {
298
+ if (is_array($f) && is_string($f['name'] ?? null)) {
299
+ $names[] = $f['name'];
300
+ }
301
+ }
302
+ } elseif (is_array($spec)) {
303
+ $names = array_keys($spec);
304
+ sort($names);
305
+ }
306
+ foreach ($names as $name) {
307
+ if (!is_string($name)) {
308
+ continue;
309
+ }
310
+ if (!array_key_exists($name, $have)) {
311
+ $have[$name] = self::present(
312
+ self::buildClient(['feature' => [['name' => $name, 'active' => true]]]),
313
+ $name);
314
+ }
315
+ if (!$have[$name]) {
316
+ return $name;
317
+ }
318
+ }
319
+ return null;
320
+ }
321
+
289
322
  public function testCorpusCarriesAFeatureSection(): void
290
323
  {
291
324
  // A corpus with no `feature` section is a SKIP, not a failure. Each
@@ -323,6 +356,8 @@ class FeatureCorpusTest extends TestCase
323
356
  . 'the corpus (create-sdkgen .sdk/test/feature/) to run these cases');
324
357
  }
325
358
 
359
+ $failed = [];
360
+ $have = [];
326
361
  $names = array_keys(self::corpus()['feature'] ?? []);
327
362
  sort($names);
328
363
  foreach ($names as $name) {
@@ -356,6 +391,16 @@ class FeatureCorpusTest extends TestCase
356
391
  foreach ($cases as $raw) {
357
392
  $need = self::tokensUsed($raw);
358
393
  if ($need > count($ops)) {
394
+ fwrite(STDERR, sprintf("skip \"%s\": needs %d operations, this SDK offers %d\n",
395
+ $raw['name'] ?? '', $need, count($ops)));
396
+ continue;
397
+ }
398
+
399
+ $missing = self::missingFeature($raw, $have);
400
+ if (null !== $missing) {
401
+ fwrite(STDERR, sprintf(
402
+ "skip \"%s\": needs the %s feature, which this SDK does not generate\n",
403
+ $raw['name'] ?? '', $missing));
359
404
  continue;
360
405
  }
361
406
 
@@ -364,52 +409,62 @@ class FeatureCorpusTest extends TestCase
364
409
  $tokens['#OP' . ($i + 1)] = $ops[$i]['key'];
365
410
  }
366
411
  $kase = self::resolve($raw, $tokens);
412
+ $label = (string)($kase['name'] ?? '');
413
+ $ran++;
367
414
 
368
- $client = self::buildClient($kase);
369
- $label = $kase['name'] ?? '';
370
-
371
- foreach (($kase['op'] ?? []) as $step) {
372
- $op = $byKey[$step['op']] ?? null;
373
- $this->assertNotNull($op, "$label: no operation {$step['op']}");
374
- $ctrl = $step['ctrl'] ?? [];
375
- $wanterr = $step['err'] ?? null;
376
-
377
- try {
378
- self::invoke($client, $op, $ctrl);
379
- $this->assertNull($wanterr,
380
- "$label: {$step['op']} was expected to fail, and did not");
381
- } catch (\PHPUnit\Framework\AssertionFailedError $e) {
382
- throw $e;
383
- } catch (\Throwable $err) {
384
- $this->assertNotNull($wanterr,
385
- "$label: {$step['op']} failed unexpectedly: " . $err->getMessage());
386
- if (is_string($wanterr)) {
387
- // The CODE, not the message: make_error prefixes
388
- // and humanises the text, so matching it would
389
- // pass on any error that mentioned the word.
390
- //
391
- // `sdk_code`, not `code`: Exception::$code is a
392
- // protected int on every PHP throwable, so the
393
- // SDK carries its own string code beside it.
394
- $code = property_exists($err, 'sdk_code') ? $err->sdk_code : null;
395
- $this->assertSame($wanterr, $code,
396
- "$label: wrong error code (" . $err->getMessage() . ')');
415
+ // Every failing case is reported, not only the first.
416
+ try {
417
+ $client = self::buildClient($kase);
418
+
419
+ foreach (($kase['op'] ?? []) as $step) {
420
+ $op = $byKey[$step['op']] ?? null;
421
+ $this->assertNotNull($op, "$label: no operation {$step['op']}");
422
+ $ctrl = $step['ctrl'] ?? [];
423
+ $wanterr = $step['err'] ?? null;
424
+
425
+ try {
426
+ self::invoke($client, $op, $ctrl);
427
+ $this->assertNull($wanterr,
428
+ "$label: {$step['op']} was expected to fail, and did not");
429
+ } catch (\PHPUnit\Framework\AssertionFailedError $e) {
430
+ throw $e;
431
+ } catch (\Throwable $err) {
432
+ $this->assertNotNull($wanterr,
433
+ "$label: {$step['op']} failed unexpectedly: " . $err->getMessage());
434
+ if (is_string($wanterr)) {
435
+ // The CODE, not the message: make_error prefixes
436
+ // and humanises the text, so matching it would
437
+ // pass on any error that mentioned the word.
438
+ //
439
+ // `sdk_code`, not `code`: Exception::$code is a
440
+ // protected int on every PHP throwable, so the
441
+ // SDK carries its own string code beside it.
442
+ $code = property_exists($err, 'sdk_code') ? $err->sdk_code : null;
443
+ $this->assertSame($wanterr, $code,
444
+ "$label: wrong error code (" . $err->getMessage() . ')');
445
+ }
397
446
  }
398
447
  }
399
- }
400
448
 
401
- $this->subset(self::record($client, $name), $kase['out'] ?? [],
402
- "$label: _$name");
403
- $ran++;
449
+ $this->subset(self::record($client, $name), $kase['out'] ?? [],
450
+ "$label: _$name");
451
+ } catch (\Throwable $e) {
452
+ $msg = $e->getMessage();
453
+ $failed[] = str_starts_with($msg, $label) ? $msg : "$label: $msg";
454
+ }
404
455
  }
405
456
 
406
- $this->assertGreaterThan(0, $ran, "every feature.$name case was skipped");
407
457
  // Say how many ran. A partial run is legitimate (an SDK with one
408
458
  // operation skips the cases needing two) but it should be visible
409
459
  // rather than inferred from a green tick.
410
460
  fwrite(STDERR, sprintf(
411
461
  "feature.%s: ran %d of %d case(s) against %d operation(s)\n",
412
462
  $name, $ran, count($cases), count($ops)));
463
+ if (0 === $ran) {
464
+ $failed[] = "every feature.$name case was skipped";
465
+ }
413
466
  }
467
+
468
+ $this->assertSame([], $failed, count($failed) . ' feature corpus case(s) failed');
414
469
  }
415
470
  }
@@ -13,10 +13,9 @@ declare(strict_types=1);
13
13
  // with no live server and no API-specific fixtures. Mirrors
14
14
  // tm/ts/test/feature.test.ts + tm/ts/test/feature/harness.ts.
15
15
  //
16
- // Note: the generated PHP pipeline dispatches PrePoint..PreDone; the
17
- // PreUnexpected hook is dispatched here by the harness failure path (the
18
- // real pipeline raises via make_error before a PreUnexpected dispatch
19
- // point), which keeps the features' emit-once semantics covered.
16
+ // Note: the harness failure path dispatches PreUnexpected, as make_error
17
+ // and an operation's catch path do in the real pipeline, which keeps the
18
+ // features' emit-once semantics covered.
20
19
 
21
20
  require_once __DIR__ . '/../projectname_sdk.php';
22
21
 
@@ -232,7 +231,7 @@ class FtHarness
232
231
  if ($op === 'create') {
233
232
  return 'POST';
234
233
  }
235
- if ($op === 'update') {
234
+ if ($op === 'update' || $op === 'patch') {
236
235
  return 'PATCH';
237
236
  }
238
237
  if ($op === 'remove') {
@@ -117,6 +117,20 @@ class PipelineTest extends TestCase
117
117
  return ($err instanceof ProjectNameError) ? $err->sdk_code : '';
118
118
  }
119
119
 
120
+ // An object is a map to the struct port, so it is a map to a cookie
121
+ // argument: its properties go out as pairs, read through the port.
122
+ public function test_prepare_headers_cookie_object(): void
123
+ {
124
+ $utility = self::utility();
125
+ $ctx = self::ctx([
126
+ 'utility' => $utility,
127
+ 'point' => ['args' => ['cookie' => [['name' => 'prefs', 'orig' => 'prefs', 'kind' => 'cookie']]]],
128
+ 'reqmatch' => ['prefs' => (object) ['size' => 2, 'lang' => 'en gb']],
129
+ ]);
130
+ $headers = ($utility->prepare_headers)($ctx);
131
+ $this->assertSame('lang=en%20gb; size=2', $headers['cookie'] ?? null);
132
+ }
133
+
120
134
 
121
135
  // --- feature order (feature #2) -----------------------------------------
122
136
  // options['feature'] accepts an ordered LIST (developer add-order) or a map
@@ -750,7 +764,10 @@ class PipelineTest extends TestCase
750
764
  if ('' !== $cred['pair']) {
751
765
  // A cookie credential is a `<scheme>=<key>` pair, and the scheme
752
766
  // name leaves no room for the option's prefix.
753
- $this->assertMatchesRegularExpression(self::COOKIE_PAIR, $cred['value']);
767
+ // preg_match rather than assertMatchesRegularExpression, which
768
+ // PHPUnit 8 does not have.
769
+ $this->assertSame(1, preg_match(self::COOKIE_PAIR, (string) $cred['value']),
770
+ (string) $cred['value']);
754
771
  return;
755
772
  }
756
773
  // A header credential is prefix-joined; a query credential is the raw
@@ -184,6 +184,92 @@ class ProjectNameTestRunner
184
184
  }
185
185
  return 500;
186
186
  }
187
+
188
+ /**
189
+ * A live check that did not pass, as main.kit.test.live.strict decides:
190
+ * strict fails the test, lenient skips it with the same reason.
191
+ */
192
+ public static function live_miss(bool $strict, string $reason): void
193
+ {
194
+ if ($strict) {
195
+ \PHPUnit\Framework\Assert::fail($reason);
196
+ }
197
+ \PHPUnit\Framework\Assert::markTestSkipped($reason);
198
+ }
199
+
200
+ /** An account holding no record for the test to read skips either way. */
201
+ public static function live_empty(string $reason): void
202
+ {
203
+ \PHPUnit\Framework\Assert::markTestSkipped($reason);
204
+ }
205
+
206
+ /** A live list response's records: the body, or the first list an envelope holds. */
207
+ public static function live_list($data): ?array
208
+ {
209
+ if (is_array($data) && array_is_list($data)) {
210
+ return $data;
211
+ }
212
+ if (is_array($data)) {
213
+ foreach ($data as $value) {
214
+ if (is_array($value) && array_is_list($value)) {
215
+ return $value;
216
+ }
217
+ }
218
+ }
219
+ return null;
220
+ }
221
+
222
+ /** A live response for a message: the SDK's error, or its status and content type. */
223
+ public static function live_describe(array $result): string
224
+ {
225
+ $err = $result["err"] ?? null;
226
+ if ($err instanceof \Throwable) {
227
+ return $err->getMessage();
228
+ }
229
+ if (!empty($err)) {
230
+ return is_string($err) ? $err : json_encode($err);
231
+ }
232
+ $type = null;
233
+ foreach (($result["headers"] ?? []) as $k => $v) {
234
+ if (strtolower((string)$k) === "content-type") {
235
+ $type = trim(explode(";", (string)$v)[0]);
236
+ }
237
+ }
238
+ return "HTTP " . ($result["status"] ?? "none") . ($type ? " " . $type : "");
239
+ }
240
+
241
+ /**
242
+ * The record a create-less flow reads live: the first its list returns,
243
+ * put where the flow reads the fixture's existing records.
244
+ */
245
+ public static function live_existing(array &$setup, bool $strict, string $name, callable $list): void
246
+ {
247
+ $found = null;
248
+ try {
249
+ $found = $list();
250
+ } catch (\Throwable $e) {
251
+ self::live_miss($strict, "Live list discovery failed: " . $e->getMessage());
252
+ }
253
+ if (!is_array($found)) {
254
+ self::live_miss($strict, "Live list discovery returned no list");
255
+ }
256
+ if (0 === count($found)) {
257
+ self::live_empty("The account has no $name record to load");
258
+ }
259
+ $first = $found[0];
260
+ $setup["data"]["existing"][$name] = [
261
+ "live01" => (is_object($first) && method_exists($first, 'data_get')) ? $first->data_get() : $first,
262
+ ];
263
+ }
264
+
265
+ /** In a lenient live run a failing check skips, observing the live API. */
266
+ public static function live_observe(\Throwable $e, array $setup, bool $strict): void
267
+ {
268
+ if ($strict || empty($setup["live"]) || $e instanceof \PHPUnit\Framework\SkippedTest) {
269
+ throw $e;
270
+ }
271
+ \PHPUnit\Framework\Assert::markTestSkipped("live run, main.kit.test.live.strict is false: " . $e->getMessage());
272
+ }
187
273
  }
188
274
 
189
275
  // Aliases for test convenience.
@@ -99,26 +99,31 @@ class ProjectNameClean
99
99
 
100
100
  // A feature's name is not a field name: only the sensitive names inside
101
101
  // its settings count, so `secrets` does not make every setting a secret.
102
- // Entity blocks (per-entity settings, seeded records) hold no credential.
102
+ // Entity blocks (per-entity settings, seeded records) hold no credential,
103
+ // and nor do rbac's rules, keyed by entity and operation names.
103
104
  public static function add_options(?ProjectNameContext $ctx, array $opts): void
104
105
  {
105
106
  $feature = $opts['feature'] ?? null;
106
107
  unset($opts['feature'], $opts['entity']);
107
108
  if (array_key_exists('test', $opts)) {
108
- $opts['test'] = self::no_entity($opts['test']);
109
+ $opts['test'] = self::plain_settings($opts['test'], null);
109
110
  }
110
111
  self::add_sensitive($ctx, $opts);
111
112
  $feature = is_object($feature) ? get_object_vars($feature) : $feature;
112
- foreach (is_array($feature) ? $feature : [$feature] as $fopts) {
113
- self::add_sensitive($ctx, self::no_entity($fopts));
113
+ foreach (is_array($feature) ? $feature : [$feature] as $fname => $fopts) {
114
+ self::add_sensitive($ctx, self::plain_settings($fopts, is_string($fname) ? $fname : null));
114
115
  }
115
116
  }
116
117
 
117
- private static function no_entity(mixed $block): mixed
118
+ private static function plain_settings(mixed $block, ?string $name): mixed
118
119
  {
119
120
  $block = is_object($block) ? get_object_vars($block) : $block;
120
121
  if (is_array($block)) {
122
+ $name ??= is_string($block['name'] ?? null) ? $block['name'] : null;
121
123
  unset($block['entity']);
124
+ if ('rbac' === $name) {
125
+ unset($block['rules']);
126
+ }
122
127
  }
123
128
  return $block;
124
129
  }