@voxgig/sdkgen 4.34.0 → 4.34.2

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 (1138) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/copies.d.ts +4 -3
  3. package/dist/action/copies.js +142 -45
  4. package/dist/action/copies.js.map +1 -1
  5. package/dist/action/doctor.d.ts +1 -0
  6. package/dist/action/doctor.js +6 -2
  7. package/dist/action/doctor.js.map +1 -1
  8. package/dist/action/package.d.ts +3 -1
  9. package/dist/action/package.js +12 -5
  10. package/dist/action/package.js.map +1 -1
  11. package/dist/action/resolve.d.ts +11 -2
  12. package/dist/action/resolve.js +27 -0
  13. package/dist/action/resolve.js.map +1 -1
  14. package/dist/admin/npm-trust.js +7 -7
  15. package/dist/admin/npm-trust.js.map +1 -1
  16. package/dist/cmp/AgentGuide.js +4 -3
  17. package/dist/cmp/AgentGuide.js.map +1 -1
  18. package/dist/cmp/AgentGuideFeature.js +3 -2
  19. package/dist/cmp/AgentGuideFeature.js.map +1 -1
  20. package/dist/cmp/AgentGuideTop.js +2 -1
  21. package/dist/cmp/AgentGuideTop.js.map +1 -1
  22. package/dist/cmp/Changelog.js +2 -1
  23. package/dist/cmp/Changelog.js.map +1 -1
  24. package/dist/cmp/Deploy.js +2 -1
  25. package/dist/cmp/Deploy.js.map +1 -1
  26. package/dist/cmp/Entity.js +2 -2
  27. package/dist/cmp/Entity.js.map +1 -1
  28. package/dist/cmp/ExternalTarget.js +2 -1
  29. package/dist/cmp/ExternalTarget.js.map +1 -1
  30. package/dist/cmp/Feature.js +2 -1
  31. package/dist/cmp/Feature.js.map +1 -1
  32. package/dist/cmp/FeatureHook.js +2 -1
  33. package/dist/cmp/FeatureHook.js.map +1 -1
  34. package/dist/cmp/License.js +6 -4
  35. package/dist/cmp/License.js.map +1 -1
  36. package/dist/cmp/Main.js +2 -2
  37. package/dist/cmp/Main.js.map +1 -1
  38. package/dist/cmp/PublishWorkflow.js +2 -1
  39. package/dist/cmp/PublishWorkflow.js.map +1 -1
  40. package/dist/cmp/Readme.js +2 -1
  41. package/dist/cmp/Readme.js.map +1 -1
  42. package/dist/cmp/ReadmeEntity.js +4 -4
  43. package/dist/cmp/ReadmeEntity.js.map +1 -1
  44. package/dist/cmp/ReadmeErrors.js +9 -7
  45. package/dist/cmp/ReadmeErrors.js.map +1 -1
  46. package/dist/cmp/ReadmeExplanation.js +7 -6
  47. package/dist/cmp/ReadmeExplanation.js.map +1 -1
  48. package/dist/cmp/ReadmeFeatures.js +4 -3
  49. package/dist/cmp/ReadmeFeatures.js.map +1 -1
  50. package/dist/cmp/ReadmeHowto.js +4 -3
  51. package/dist/cmp/ReadmeHowto.js.map +1 -1
  52. package/dist/cmp/ReadmeInstall.js +4 -3
  53. package/dist/cmp/ReadmeInstall.js.map +1 -1
  54. package/dist/cmp/ReadmeIntro.js +4 -4
  55. package/dist/cmp/ReadmeIntro.js.map +1 -1
  56. package/dist/cmp/ReadmeModel.js +6 -3
  57. package/dist/cmp/ReadmeModel.js.map +1 -1
  58. package/dist/cmp/ReadmeOptions.js +4 -4
  59. package/dist/cmp/ReadmeOptions.js.map +1 -1
  60. package/dist/cmp/ReadmeQuick.js +6 -3
  61. package/dist/cmp/ReadmeQuick.js.map +1 -1
  62. package/dist/cmp/ReadmeRef.js +4 -4
  63. package/dist/cmp/ReadmeRef.js.map +1 -1
  64. package/dist/cmp/ReadmeRefFeatures.js +2 -1
  65. package/dist/cmp/ReadmeRefFeatures.js.map +1 -1
  66. package/dist/cmp/ReadmeStation.js +2 -1
  67. package/dist/cmp/ReadmeStation.js.map +1 -1
  68. package/dist/cmp/ReadmeTop.js +108 -38
  69. package/dist/cmp/ReadmeTop.js.map +1 -1
  70. package/dist/cmp/ReadmeUnions.js +2 -1
  71. package/dist/cmp/ReadmeUnions.js.map +1 -1
  72. package/dist/cmp/Registered.js +4 -3
  73. package/dist/cmp/Registered.js.map +1 -1
  74. package/dist/cmp/Security.js +10 -6
  75. package/dist/cmp/Security.js.map +1 -1
  76. package/dist/cmp/Test.js +2 -1
  77. package/dist/cmp/Test.js.map +1 -1
  78. package/dist/cmp/TestControl.js +2 -1
  79. package/dist/cmp/TestControl.js.map +1 -1
  80. package/dist/helpers/component.d.ts +4 -0
  81. package/dist/helpers/component.js +54 -0
  82. package/dist/helpers/component.js.map +1 -0
  83. package/dist/helpers/definition.js +2 -2
  84. package/dist/helpers/definition.js.map +1 -1
  85. package/dist/helpers/definitionPlan.d.ts +16 -0
  86. package/dist/helpers/definitionPlan.js +120 -12
  87. package/dist/helpers/definitionPlan.js.map +1 -1
  88. package/dist/helpers/featureSource.d.ts +2 -1
  89. package/dist/helpers/featureSource.js +44 -2
  90. package/dist/helpers/featureSource.js.map +1 -1
  91. package/dist/helpers/flowGuard.d.ts +8 -0
  92. package/dist/helpers/flowGuard.js +84 -0
  93. package/dist/helpers/flowGuard.js.map +1 -0
  94. package/dist/helpers/generated.d.ts +26 -0
  95. package/dist/helpers/generated.js +363 -0
  96. package/dist/helpers/generated.js.map +1 -0
  97. package/dist/helpers/mcpTools.d.ts +11 -0
  98. package/dist/helpers/mcpTools.js +28 -0
  99. package/dist/helpers/mcpTools.js.map +1 -0
  100. package/dist/helpers/media.d.ts +9 -0
  101. package/dist/helpers/media.js +61 -0
  102. package/dist/helpers/media.js.map +1 -0
  103. package/dist/helpers/modelNames.js +147 -14
  104. package/dist/helpers/modelNames.js.map +1 -1
  105. package/dist/helpers/naming.d.ts +12 -1
  106. package/dist/helpers/naming.js +154 -4
  107. package/dist/helpers/naming.js.map +1 -1
  108. package/dist/helpers/npm.d.ts +13 -0
  109. package/dist/helpers/npm.js +41 -0
  110. package/dist/helpers/npm.js.map +1 -0
  111. package/dist/helpers/npmScripts.d.ts +4 -0
  112. package/dist/helpers/npmScripts.js +30 -0
  113. package/dist/helpers/npmScripts.js.map +1 -0
  114. package/dist/helpers/opExample.d.ts +20 -5
  115. package/dist/helpers/opExample.js +86 -24
  116. package/dist/helpers/opExample.js.map +1 -1
  117. package/dist/helpers/opShape.d.ts +22 -4
  118. package/dist/helpers/opShape.js +218 -38
  119. package/dist/helpers/opShape.js.map +1 -1
  120. package/dist/helpers/optional.d.ts +20 -0
  121. package/dist/helpers/optional.js +51 -0
  122. package/dist/helpers/optional.js.map +1 -0
  123. package/dist/helpers/packageMeta.d.ts +9 -1
  124. package/dist/helpers/packageMeta.js +70 -11
  125. package/dist/helpers/packageMeta.js.map +1 -1
  126. package/dist/helpers/stdrep.js +3 -0
  127. package/dist/helpers/stdrep.js.map +1 -1
  128. package/dist/helpers/testPolicy.d.ts +9 -1
  129. package/dist/helpers/testPolicy.js +48 -0
  130. package/dist/helpers/testPolicy.js.map +1 -1
  131. package/dist/helpers/text.d.ts +2 -0
  132. package/dist/helpers/text.js +27 -0
  133. package/dist/helpers/text.js.map +1 -0
  134. package/dist/sdkgen.d.ts +17 -10
  135. package/dist/sdkgen.js +87 -12
  136. package/dist/sdkgen.js.map +1 -1
  137. package/dist/testkit.js +2 -1
  138. package/dist/testkit.js.map +1 -1
  139. package/dist/tsconfig.tsbuildinfo +1 -1
  140. package/dist/utility.d.ts +3 -1
  141. package/dist/utility.js +59 -18
  142. package/dist/utility.js.map +1 -1
  143. package/model/sdkgen.aontu +24 -1
  144. package/package.json +8 -2
  145. package/project/.sdk/model/feature/timeout.aontu +2 -0
  146. package/project/.sdk/model/target/go-mcp.aontu +2 -0
  147. package/project/.sdk/src/cmp/c/Config_c.ts +5 -0
  148. package/project/.sdk/src/cmp/c/EntityTypes_c.ts +1 -1
  149. package/project/.sdk/src/cmp/c/Entity_c.ts +1 -1
  150. package/project/.sdk/src/cmp/c/Main_c.ts +4 -20
  151. package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +169 -51
  152. package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +24 -14
  153. package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +17 -8
  154. package/project/.sdk/src/cmp/c/ReadmeInstall_c.ts +2 -2
  155. package/project/.sdk/src/cmp/c/ReadmeIntro_c.ts +3 -3
  156. package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +11 -10
  157. package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +39 -21
  158. package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +41 -22
  159. package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +11 -8
  160. package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +23 -11
  161. package/project/.sdk/src/cmp/c/TestClean_c.ts +56 -22
  162. package/project/.sdk/src/cmp/c/TestDirect_c.ts +2 -2
  163. package/project/.sdk/src/cmp/c/TestEntity_c.ts +77 -4
  164. package/project/.sdk/src/cmp/c/fragment/Entity.fragment.c +33 -27
  165. package/project/.sdk/src/cmp/c/fragment/EntityPatchOp.fragment.c +36 -0
  166. package/project/.sdk/src/cmp/c/fragment/Main.fragment.c +40 -7
  167. package/project/.sdk/src/cmp/c/utility_c.ts +21 -2
  168. package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +1 -1
  169. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +3 -1
  170. package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +44 -28
  171. package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +11 -5
  172. package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +18 -7
  173. package/project/.sdk/src/cmp/clojure/ReadmeInstall_clojure.ts +3 -3
  174. package/project/.sdk/src/cmp/clojure/ReadmeIntro_clojure.ts +3 -3
  175. package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +11 -9
  176. package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +25 -12
  177. package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +42 -22
  178. package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +8 -5
  179. package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +17 -10
  180. package/project/.sdk/src/cmp/clojure/TestClean_clojure.ts +57 -27
  181. package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +64 -5
  182. package/project/.sdk/src/cmp/clojure/fragment/Entity.fragment.clj +24 -12
  183. package/project/.sdk/src/cmp/clojure/fragment/EntityListOp.fragment.clj +7 -9
  184. package/project/.sdk/src/cmp/clojure/fragment/EntityPatchOp.fragment.clj +15 -0
  185. package/project/.sdk/src/cmp/clojure/utility_clojure.ts +14 -0
  186. package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +1 -1
  187. package/project/.sdk/src/cmp/cpp/Entity_cpp.ts +2 -2
  188. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +3 -19
  189. package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +38 -39
  190. package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +21 -13
  191. package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +18 -9
  192. package/project/.sdk/src/cmp/cpp/ReadmeInstall_cpp.ts +2 -2
  193. package/project/.sdk/src/cmp/cpp/ReadmeIntro_cpp.ts +3 -3
  194. package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +10 -9
  195. package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +28 -19
  196. package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +44 -26
  197. package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +9 -8
  198. package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +19 -11
  199. package/project/.sdk/src/cmp/cpp/TestClean_cpp.ts +69 -21
  200. package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +135 -6
  201. package/project/.sdk/src/cmp/cpp/fragment/Entity.fragment.cpp +2 -0
  202. package/project/.sdk/src/cmp/cpp/fragment/EntityPatchOp.fragment.cpp +28 -0
  203. package/project/.sdk/src/cmp/cpp/utility_cpp.ts +13 -0
  204. package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +1 -1
  205. package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +1 -1
  206. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +3 -1
  207. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +4 -1
  208. package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +69 -23
  209. package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +10 -6
  210. package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +21 -9
  211. package/project/.sdk/src/cmp/csharp/ReadmeInstall_csharp.ts +3 -3
  212. package/project/.sdk/src/cmp/csharp/ReadmeIntro_csharp.ts +3 -3
  213. package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +11 -9
  214. package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +29 -13
  215. package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +41 -19
  216. package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +15 -8
  217. package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +19 -11
  218. package/project/.sdk/src/cmp/csharp/TestClean_csharp.ts +67 -14
  219. package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +43 -31
  220. package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +187 -15
  221. package/project/.sdk/src/cmp/csharp/fragment/Entity.fragment.cs +2 -0
  222. package/project/.sdk/src/cmp/csharp/fragment/EntityBase.fragment.cs +11 -2
  223. package/project/.sdk/src/cmp/csharp/fragment/EntityPatchOp.fragment.cs +41 -0
  224. package/project/.sdk/src/cmp/csharp/fragment/Main.fragment.cs +28 -4
  225. package/project/.sdk/src/cmp/csharp/utility_csharp.ts +19 -0
  226. package/project/.sdk/src/cmp/elixir/EntityOperation_elixir.ts +5 -0
  227. package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +3 -3
  228. package/project/.sdk/src/cmp/elixir/Entity_elixir.ts +22 -1
  229. package/project/.sdk/src/cmp/elixir/MainEntity_elixir.ts +4 -2
  230. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +6 -2
  231. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +7 -0
  232. package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +40 -30
  233. package/project/.sdk/src/cmp/elixir/ReadmeEntity_elixir.ts +17 -13
  234. package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +2 -1
  235. package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +18 -10
  236. package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +2 -2
  237. package/project/.sdk/src/cmp/elixir/ReadmeIntro_elixir.ts +4 -4
  238. package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +13 -11
  239. package/project/.sdk/src/cmp/elixir/ReadmeQuick_elixir.ts +36 -20
  240. package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +37 -21
  241. package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +13 -10
  242. package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +18 -13
  243. package/project/.sdk/src/cmp/elixir/TestClean_elixir.ts +41 -12
  244. package/project/.sdk/src/cmp/elixir/TestEntity_elixir.ts +152 -23
  245. package/project/.sdk/src/cmp/elixir/fragment/Entity.fragment.ex +4 -4
  246. package/project/.sdk/src/cmp/elixir/fragment/EntityCreateOp.fragment.ex +4 -3
  247. package/project/.sdk/src/cmp/elixir/fragment/EntityListOp.fragment.ex +4 -3
  248. package/project/.sdk/src/cmp/elixir/fragment/EntityLoadOp.fragment.ex +4 -3
  249. package/project/.sdk/src/cmp/elixir/fragment/EntityPatchOp.fragment.ex +36 -0
  250. package/project/.sdk/src/cmp/elixir/fragment/EntityRemoveOp.fragment.ex +4 -3
  251. package/project/.sdk/src/cmp/elixir/fragment/EntityUpdateOp.fragment.ex +4 -3
  252. package/project/.sdk/src/cmp/elixir/fragment/Main.fragment.ex +29 -5
  253. package/project/.sdk/src/cmp/elixir/fragment/Pipeline.fragment.ex +23 -16
  254. package/project/.sdk/src/cmp/elixir/utility_elixir.ts +12 -0
  255. package/project/.sdk/src/cmp/go/EntityTypes_go.ts +1 -1
  256. package/project/.sdk/src/cmp/go/Entity_go.ts +1 -1
  257. package/project/.sdk/src/cmp/go/Main_go.ts +5 -6
  258. package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +40 -26
  259. package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +9 -5
  260. package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +6 -1
  261. package/project/.sdk/src/cmp/go/ReadmeExplanation_go.ts +3 -1
  262. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +21 -9
  263. package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +3 -3
  264. package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +3 -3
  265. package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +18 -14
  266. package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +27 -12
  267. package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +40 -17
  268. package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +10 -8
  269. package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +7 -3
  270. package/project/.sdk/src/cmp/go/TestClean_go.ts +81 -18
  271. package/project/.sdk/src/cmp/go/TestDirect_go.ts +47 -53
  272. package/project/.sdk/src/cmp/go/TestEntity_go.ts +204 -24
  273. package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +79 -60
  274. package/project/.sdk/src/cmp/go/fragment/EntityPatchOp.fragment.go +49 -0
  275. package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +26 -5
  276. package/project/.sdk/src/cmp/go/utility_go.ts +1 -1
  277. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +8 -10
  278. package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +240 -121
  279. package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +1 -1
  280. package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +34 -27
  281. package/project/.sdk/src/cmp/java/EntityTypes_java.ts +1 -1
  282. package/project/.sdk/src/cmp/java/Entity_java.ts +1 -1
  283. package/project/.sdk/src/cmp/java/Main_java.ts +3 -1
  284. package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +58 -23
  285. package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +14 -22
  286. package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +20 -23
  287. package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +3 -3
  288. package/project/.sdk/src/cmp/java/ReadmeIntro_java.ts +3 -3
  289. package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +11 -9
  290. package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +33 -28
  291. package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +45 -36
  292. package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +22 -25
  293. package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +19 -25
  294. package/project/.sdk/src/cmp/java/TestClean_java.ts +57 -12
  295. package/project/.sdk/src/cmp/java/TestDirect_java.ts +50 -36
  296. package/project/.sdk/src/cmp/java/TestEntity_java.ts +180 -13
  297. package/project/.sdk/src/cmp/java/fragment/Entity.fragment.java +2 -0
  298. package/project/.sdk/src/cmp/java/fragment/EntityBase.fragment.java +5 -3
  299. package/project/.sdk/src/cmp/java/fragment/EntityPatchOp.fragment.java +45 -0
  300. package/project/.sdk/src/cmp/java/utility_java.ts +25 -0
  301. package/project/.sdk/src/cmp/js/EntityOperation_js.ts +3 -1
  302. package/project/.sdk/src/cmp/js/EntityTypes_js.ts +1 -1
  303. package/project/.sdk/src/cmp/js/Entity_js.ts +1 -1
  304. package/project/.sdk/src/cmp/js/Main_js.ts +2 -0
  305. package/project/.sdk/src/cmp/js/Package_js.ts +11 -8
  306. package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +39 -27
  307. package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +8 -11
  308. package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +11 -12
  309. package/project/.sdk/src/cmp/js/ReadmeInstall_js.ts +3 -3
  310. package/project/.sdk/src/cmp/js/ReadmeIntro_js.ts +3 -3
  311. package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +12 -11
  312. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +23 -12
  313. package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +47 -19
  314. package/project/.sdk/src/cmp/js/ReadmeTopHowto_js.ts +2 -3
  315. package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +16 -11
  316. package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +12 -8
  317. package/project/.sdk/src/cmp/js/TestClean_js.ts +52 -8
  318. package/project/.sdk/src/cmp/js/TestDirect_js.ts +81 -54
  319. package/project/.sdk/src/cmp/js/TestEntity_js.ts +95 -2
  320. package/project/.sdk/src/cmp/js/TestLive_js.ts +4 -3
  321. package/project/.sdk/src/cmp/js/fragment/Direct.test.fragment.js +4 -0
  322. package/project/.sdk/src/cmp/js/fragment/Entity.fragment.js +2 -0
  323. package/project/.sdk/src/cmp/js/fragment/Entity.test.fragment.js +2 -0
  324. package/project/.sdk/src/cmp/js/fragment/EntityBase.fragment.js +51 -25
  325. package/project/.sdk/src/cmp/js/fragment/EntityCreateOp.fragment.js +1 -1
  326. package/project/.sdk/src/cmp/js/fragment/EntityListOp.fragment.js +1 -1
  327. package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +1 -1
  328. package/project/.sdk/src/cmp/js/fragment/EntityPatchOp.fragment.js +129 -0
  329. package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +1 -1
  330. package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +1 -1
  331. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +39 -15
  332. package/project/.sdk/src/cmp/js/utility_js.ts +2 -1
  333. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +4 -0
  334. package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +1 -1
  335. package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +1 -1
  336. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +3 -1
  337. package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +56 -31
  338. package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +10 -6
  339. package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +20 -10
  340. package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +3 -3
  341. package/project/.sdk/src/cmp/kotlin/ReadmeIntro_kotlin.ts +3 -3
  342. package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +11 -9
  343. package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +24 -10
  344. package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +38 -18
  345. package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +14 -8
  346. package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +18 -11
  347. package/project/.sdk/src/cmp/kotlin/TestClean_kotlin.ts +45 -10
  348. package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +49 -26
  349. package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +168 -10
  350. package/project/.sdk/src/cmp/kotlin/fragment/Entity.fragment.kt +2 -0
  351. package/project/.sdk/src/cmp/kotlin/fragment/EntityBase.fragment.kt +2 -1
  352. package/project/.sdk/src/cmp/kotlin/fragment/EntityPatchOp.fragment.kt +40 -0
  353. package/project/.sdk/src/cmp/kotlin/utility_kotlin.ts +21 -1
  354. package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +1 -1
  355. package/project/.sdk/src/cmp/lua/Entity_lua.ts +1 -1
  356. package/project/.sdk/src/cmp/lua/Main_lua.ts +2 -1
  357. package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +42 -23
  358. package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +9 -5
  359. package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +15 -6
  360. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +10 -8
  361. package/project/.sdk/src/cmp/lua/ReadmeInstall_lua.ts +2 -2
  362. package/project/.sdk/src/cmp/lua/ReadmeIntro_lua.ts +3 -3
  363. package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +15 -14
  364. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +29 -10
  365. package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +29 -12
  366. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +15 -7
  367. package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +7 -6
  368. package/project/.sdk/src/cmp/lua/TestClean_lua.ts +46 -12
  369. package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +100 -124
  370. package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +173 -20
  371. package/project/.sdk/src/cmp/lua/fragment/Entity.fragment.lua +86 -48
  372. package/project/.sdk/src/cmp/lua/fragment/EntityCreateOp.fragment.lua +1 -1
  373. package/project/.sdk/src/cmp/lua/fragment/EntityListOp.fragment.lua +1 -1
  374. package/project/.sdk/src/cmp/lua/fragment/EntityLoadOp.fragment.lua +1 -1
  375. package/project/.sdk/src/cmp/lua/fragment/EntityPatchOp.fragment.lua +34 -0
  376. package/project/.sdk/src/cmp/lua/fragment/EntityRemoveOp.fragment.lua +1 -1
  377. package/project/.sdk/src/cmp/lua/fragment/EntityUpdateOp.fragment.lua +1 -1
  378. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +28 -6
  379. package/project/.sdk/src/cmp/ocaml/EntityOperation_ocaml.ts +8 -11
  380. package/project/.sdk/src/cmp/ocaml/Entity_ocaml.ts +8 -3
  381. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +2 -1
  382. package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +7 -5
  383. package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +39 -34
  384. package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +10 -6
  385. package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +5 -9
  386. package/project/.sdk/src/cmp/ocaml/ReadmeInstall_ocaml.ts +2 -2
  387. package/project/.sdk/src/cmp/ocaml/ReadmeIntro_ocaml.ts +3 -3
  388. package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +3 -1
  389. package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +14 -4
  390. package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +31 -13
  391. package/project/.sdk/src/cmp/ocaml/ReadmeTopQuick_ocaml.ts +4 -2
  392. package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +5 -8
  393. package/project/.sdk/src/cmp/ocaml/TestClean_ocaml.ts +47 -14
  394. package/project/.sdk/src/cmp/ocaml/TestEntity_ocaml.ts +88 -3
  395. package/project/.sdk/src/cmp/ocaml/fragment/RunOp.fragment.ml +10 -11
  396. package/project/.sdk/src/cmp/ocaml/utility_ocaml.ts +20 -1
  397. package/project/.sdk/src/cmp/perl/Entity_perl.ts +1 -1
  398. package/project/.sdk/src/cmp/perl/Main_perl.ts +3 -1
  399. package/project/.sdk/src/cmp/perl/Package_perl.ts +5 -4
  400. package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +48 -33
  401. package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +13 -5
  402. package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +2 -2
  403. package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +11 -6
  404. package/project/.sdk/src/cmp/perl/ReadmeInstall_perl.ts +9 -3
  405. package/project/.sdk/src/cmp/perl/ReadmeIntro_perl.ts +3 -3
  406. package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +11 -9
  407. package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +20 -9
  408. package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +43 -23
  409. package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +8 -5
  410. package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +12 -9
  411. package/project/.sdk/src/cmp/perl/TestClean_perl.ts +42 -11
  412. package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +121 -149
  413. package/project/.sdk/src/cmp/perl/TestEntity_perl.ts +178 -17
  414. package/project/.sdk/src/cmp/perl/fragment/Entity.fragment.pm +17 -3
  415. package/project/.sdk/src/cmp/perl/fragment/EntityCreateOp.fragment.pm +2 -2
  416. package/project/.sdk/src/cmp/perl/fragment/EntityListOp.fragment.pm +2 -13
  417. package/project/.sdk/src/cmp/perl/fragment/EntityLoadOp.fragment.pm +2 -2
  418. package/project/.sdk/src/cmp/perl/fragment/EntityPatchOp.fragment.pm +32 -0
  419. package/project/.sdk/src/cmp/perl/fragment/EntityRemoveOp.fragment.pm +1 -1
  420. package/project/.sdk/src/cmp/perl/fragment/EntityUpdateOp.fragment.pm +2 -2
  421. package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +23 -5
  422. package/project/.sdk/src/cmp/perl/utility_perl.ts +26 -0
  423. package/project/.sdk/src/cmp/php/EntityOperation_php.ts +3 -1
  424. package/project/.sdk/src/cmp/php/EntityTypes_php.ts +3 -3
  425. package/project/.sdk/src/cmp/php/Entity_php.ts +4 -3
  426. package/project/.sdk/src/cmp/php/MainEntity_php.ts +1 -1
  427. package/project/.sdk/src/cmp/php/Main_php.ts +3 -1
  428. package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
  429. package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +36 -28
  430. package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +10 -6
  431. package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +3 -3
  432. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +13 -7
  433. package/project/.sdk/src/cmp/php/ReadmeInstall_php.ts +2 -2
  434. package/project/.sdk/src/cmp/php/ReadmeIntro_php.ts +3 -3
  435. package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +10 -9
  436. package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +12 -3
  437. package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +35 -17
  438. package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +5 -4
  439. package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +14 -8
  440. package/project/.sdk/src/cmp/php/TestClean_php.ts +73 -12
  441. package/project/.sdk/src/cmp/php/TestDirect_php.ts +95 -127
  442. package/project/.sdk/src/cmp/php/TestEntity_php.ts +219 -20
  443. package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +82 -45
  444. package/project/.sdk/src/cmp/php/fragment/EntityCreateOp.fragment.php +2 -2
  445. package/project/.sdk/src/cmp/php/fragment/EntityListOp.fragment.php +2 -2
  446. package/project/.sdk/src/cmp/php/fragment/EntityLoadOp.fragment.php +2 -2
  447. package/project/.sdk/src/cmp/php/fragment/EntityPatchOp.fragment.php +38 -0
  448. package/project/.sdk/src/cmp/php/fragment/EntityRemoveOp.fragment.php +2 -2
  449. package/project/.sdk/src/cmp/php/fragment/EntityUpdateOp.fragment.php +2 -2
  450. package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +26 -5
  451. package/project/.sdk/src/cmp/py/EntityOperation_py.ts +3 -1
  452. package/project/.sdk/src/cmp/py/EntityTypes_py.ts +1 -1
  453. package/project/.sdk/src/cmp/py/Entity_py.ts +2 -2
  454. package/project/.sdk/src/cmp/py/Main_py.ts +6 -2
  455. package/project/.sdk/src/cmp/py/Package_py.ts +7 -0
  456. package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +52 -26
  457. package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +9 -11
  458. package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +12 -6
  459. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +10 -10
  460. package/project/.sdk/src/cmp/py/ReadmeInstall_py.ts +3 -3
  461. package/project/.sdk/src/cmp/py/ReadmeIntro_py.ts +3 -3
  462. package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +10 -9
  463. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +18 -15
  464. package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +42 -32
  465. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +7 -12
  466. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +9 -8
  467. package/project/.sdk/src/cmp/py/TestClean_py.ts +41 -10
  468. package/project/.sdk/src/cmp/py/TestDirect_py.ts +91 -121
  469. package/project/.sdk/src/cmp/py/TestEntity_py.ts +146 -20
  470. package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +62 -42
  471. package/project/.sdk/src/cmp/py/fragment/EntityCreateOp.fragment.py +1 -1
  472. package/project/.sdk/src/cmp/py/fragment/EntityListOp.fragment.py +1 -1
  473. package/project/.sdk/src/cmp/py/fragment/EntityLoadOp.fragment.py +1 -1
  474. package/project/.sdk/src/cmp/py/fragment/EntityPatchOp.fragment.py +27 -0
  475. package/project/.sdk/src/cmp/py/fragment/EntityRemoveOp.fragment.py +1 -1
  476. package/project/.sdk/src/cmp/py/fragment/EntityUpdateOp.fragment.py +1 -1
  477. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +23 -5
  478. package/project/.sdk/src/cmp/py-data/Main_py-data.ts +1 -1
  479. package/project/.sdk/src/cmp/rb/EntityOperation_rb.ts +3 -1
  480. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +5 -4
  481. package/project/.sdk/src/cmp/rb/Entity_rb.ts +1 -1
  482. package/project/.sdk/src/cmp/rb/Main_rb.ts +5 -6
  483. package/project/.sdk/src/cmp/rb/Package_rb.ts +3 -1
  484. package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +30 -28
  485. package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +13 -6
  486. package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +19 -10
  487. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +21 -11
  488. package/project/.sdk/src/cmp/rb/ReadmeInstall_rb.ts +2 -2
  489. package/project/.sdk/src/cmp/rb/ReadmeIntro_rb.ts +3 -3
  490. package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +11 -9
  491. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +20 -8
  492. package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +38 -17
  493. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +8 -5
  494. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +15 -11
  495. package/project/.sdk/src/cmp/rb/TestClean_rb.ts +36 -10
  496. package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +95 -126
  497. package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +177 -21
  498. package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +49 -29
  499. package/project/.sdk/src/cmp/rb/fragment/EntityCreateOp.fragment.rb +2 -1
  500. package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +2 -11
  501. package/project/.sdk/src/cmp/rb/fragment/EntityLoadOp.fragment.rb +2 -1
  502. package/project/.sdk/src/cmp/rb/fragment/EntityPatchOp.fragment.rb +32 -0
  503. package/project/.sdk/src/cmp/rb/fragment/EntityRemoveOp.fragment.rb +2 -1
  504. package/project/.sdk/src/cmp/rb/fragment/EntityUpdateOp.fragment.rb +2 -1
  505. package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +19 -5
  506. package/project/.sdk/src/cmp/rb/utility_rb.ts +10 -0
  507. package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +1 -1
  508. package/project/.sdk/src/cmp/rust/Entity_rust.ts +2 -2
  509. package/project/.sdk/src/cmp/rust/Main_rust.ts +7 -6
  510. package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +56 -29
  511. package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +19 -11
  512. package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +17 -6
  513. package/project/.sdk/src/cmp/rust/ReadmeInstall_rust.ts +3 -3
  514. package/project/.sdk/src/cmp/rust/ReadmeIntro_rust.ts +3 -3
  515. package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +12 -9
  516. package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +28 -19
  517. package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +38 -23
  518. package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +9 -10
  519. package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +20 -11
  520. package/project/.sdk/src/cmp/rust/TestClean_rust.ts +80 -21
  521. package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +124 -79
  522. package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +164 -17
  523. package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +44 -23
  524. package/project/.sdk/src/cmp/rust/fragment/EntityPatchOp.fragment.rs +41 -0
  525. package/project/.sdk/src/cmp/rust/fragment/Main.fragment.rs +39 -9
  526. package/project/.sdk/src/cmp/rust/utility_rust.ts +13 -1
  527. package/project/.sdk/src/cmp/scala/Config_scala.ts +4 -0
  528. package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +6 -3
  529. package/project/.sdk/src/cmp/scala/Entity_scala.ts +1 -1
  530. package/project/.sdk/src/cmp/scala/Main_scala.ts +4 -20
  531. package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +56 -24
  532. package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +14 -22
  533. package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +18 -23
  534. package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +3 -3
  535. package/project/.sdk/src/cmp/scala/ReadmeIntro_scala.ts +3 -3
  536. package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +11 -9
  537. package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +27 -28
  538. package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +43 -36
  539. package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +14 -25
  540. package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +17 -25
  541. package/project/.sdk/src/cmp/scala/TestClean_scala.ts +39 -10
  542. package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +113 -3
  543. package/project/.sdk/src/cmp/scala/fragment/Entity.fragment.scala +2 -0
  544. package/project/.sdk/src/cmp/scala/fragment/EntityBase.fragment.scala +4 -2
  545. package/project/.sdk/src/cmp/scala/fragment/EntityPatchOp.fragment.scala +33 -0
  546. package/project/.sdk/src/cmp/scala/utility_scala.ts +25 -0
  547. package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +4 -4
  548. package/project/.sdk/src/cmp/swift/Entity_swift.ts +1 -1
  549. package/project/.sdk/src/cmp/swift/Main_swift.ts +6 -2
  550. package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +56 -29
  551. package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +10 -6
  552. package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +23 -9
  553. package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +3 -3
  554. package/project/.sdk/src/cmp/swift/ReadmeIntro_swift.ts +3 -3
  555. package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +11 -9
  556. package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +26 -9
  557. package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +39 -18
  558. package/project/.sdk/src/cmp/swift/ReadmeTopQuick_swift.ts +12 -7
  559. package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +22 -11
  560. package/project/.sdk/src/cmp/swift/TestClean_swift.ts +44 -10
  561. package/project/.sdk/src/cmp/swift/TestEntity_swift.ts +90 -2
  562. package/project/.sdk/src/cmp/swift/fragment/Entity.fragment.swift +2 -0
  563. package/project/.sdk/src/cmp/swift/fragment/EntityBase.fragment.swift +9 -1
  564. package/project/.sdk/src/cmp/swift/fragment/EntityPatchOp.fragment.swift +24 -0
  565. package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +23 -3
  566. package/project/.sdk/src/cmp/swift/utility_swift.ts +14 -1
  567. package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +9 -3
  568. package/project/.sdk/src/cmp/ts/Entity_ts.ts +5 -5
  569. package/project/.sdk/src/cmp/ts/Main_ts.ts +4 -3
  570. package/project/.sdk/src/cmp/ts/Package_ts.ts +18 -10
  571. package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +37 -28
  572. package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +8 -11
  573. package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +39 -21
  574. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +11 -12
  575. package/project/.sdk/src/cmp/ts/ReadmeInstall_ts.ts +3 -3
  576. package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +3 -3
  577. package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +12 -11
  578. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +17 -14
  579. package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +47 -27
  580. package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +2 -3
  581. package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +8 -14
  582. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +30 -15
  583. package/project/.sdk/src/cmp/ts/TestClean_ts.ts +52 -8
  584. package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +50 -109
  585. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +92 -2
  586. package/project/.sdk/src/cmp/ts/TestLive_ts.ts +4 -3
  587. package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +3 -0
  588. package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +2 -0
  589. package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +3 -1
  590. package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +49 -24
  591. package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +1 -1
  592. package/project/.sdk/src/cmp/ts/fragment/EntityListOp.fragment.ts +1 -1
  593. package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +1 -1
  594. package/project/.sdk/src/cmp/ts/fragment/EntityPatchOp.fragment.ts +126 -0
  595. package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +1 -1
  596. package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +50 -18
  597. package/project/.sdk/src/cmp/ts/utility_ts.ts +2 -1
  598. package/project/.sdk/src/cmp/zig/Entity_zig.ts +2 -2
  599. package/project/.sdk/src/cmp/zig/Main_zig.ts +5 -22
  600. package/project/.sdk/src/cmp/zig/Package_zig.ts +11 -2
  601. package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +57 -31
  602. package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +20 -11
  603. package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +20 -6
  604. package/project/.sdk/src/cmp/zig/ReadmeInstall_zig.ts +2 -2
  605. package/project/.sdk/src/cmp/zig/ReadmeIntro_zig.ts +3 -3
  606. package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +12 -10
  607. package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +32 -14
  608. package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +48 -24
  609. package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +11 -6
  610. package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +17 -9
  611. package/project/.sdk/src/cmp/zig/TestClean_zig.ts +67 -28
  612. package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +54 -5
  613. package/project/.sdk/src/cmp/zig/Test_zig.ts +1 -0
  614. package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +44 -34
  615. package/project/.sdk/src/cmp/zig/fragment/EntityPatchOp.fragment.zig +26 -0
  616. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +30 -6
  617. package/project/.sdk/src/cmp/zig/fragment/Root.fragment.zig +1 -0
  618. package/project/.sdk/src/cmp/zig/utility_zig.ts +13 -0
  619. package/project/.sdk/tm/c/LICENSE +1 -1
  620. package/project/.sdk/tm/c/core/context.c +2 -1
  621. package/project/.sdk/tm/c/core/helpers.c +21 -0
  622. package/project/.sdk/tm/c/core/response.c +103 -0
  623. package/project/.sdk/tm/c/core/sdk.h +26 -0
  624. package/project/.sdk/tm/c/core/spec.c +10 -0
  625. package/project/.sdk/tm/c/feature/test.c +46 -2
  626. package/project/.sdk/tm/c/feature/validate.c +2 -0
  627. package/project/.sdk/tm/c/tests/feature_harness.h +1 -1
  628. package/project/.sdk/tm/c/tests/primary_utility_test.c +9 -5
  629. package/project/.sdk/tm/c/tests/server_variable_test.c +80 -0
  630. package/project/.sdk/tm/c/utility/make_fetch_def.c +5 -1
  631. package/project/.sdk/tm/c/utility/make_options.c +84 -6
  632. package/project/.sdk/tm/c/utility/make_point.c +100 -8
  633. package/project/.sdk/tm/c/utility/make_spec.c +17 -1
  634. package/project/.sdk/tm/c/utility/make_url.c +38 -1
  635. package/project/.sdk/tm/c/utility/media.c +107 -0
  636. package/project/.sdk/tm/c/utility/param.c +52 -28
  637. package/project/.sdk/tm/c/utility/prepare_body.c +1 -0
  638. package/project/.sdk/tm/c/utility/prepare_headers.c +199 -29
  639. package/project/.sdk/tm/c/utility/prepare_query.c +24 -2
  640. package/project/.sdk/tm/c/utility/result_body.c +4 -0
  641. package/project/.sdk/tm/c/utility/transform_request.c +54 -17
  642. package/project/.sdk/tm/clojure/LICENSE +1 -1
  643. package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +0 -3
  644. package/project/.sdk/tm/clojure/src/sdk/client.clj +19 -5
  645. package/project/.sdk/tm/clojure/src/sdk/core.clj +446 -142
  646. package/project/.sdk/tm/clojure/src/sdk/features.clj +44 -20
  647. package/project/.sdk/tm/clojure/test/sdk/test/concurrency.clj +136 -0
  648. package/project/.sdk/tm/clojure/test/sdk/test/feature.clj +21 -1
  649. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +13 -3
  650. package/project/.sdk/tm/cpp/LICENSE +1 -1
  651. package/project/.sdk/tm/cpp/core/types.hpp +167 -13
  652. package/project/.sdk/tm/cpp/feature/test.hpp +32 -2
  653. package/project/.sdk/tm/cpp/feature/timeout.hpp +29 -9
  654. package/project/.sdk/tm/cpp/feature/validate.hpp +2 -0
  655. package/project/.sdk/tm/cpp/test/concurrency_test.cpp +348 -0
  656. package/project/.sdk/tm/cpp/test/feature_test.cpp +37 -0
  657. package/project/.sdk/tm/cpp/test/harness.hpp +1 -1
  658. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +6 -2
  659. package/project/.sdk/tm/cpp/test/server_variable_test.cpp +57 -0
  660. package/project/.sdk/tm/cpp/utility/cookie.hpp +36 -0
  661. package/project/.sdk/tm/cpp/utility/pipeline.hpp +482 -106
  662. package/project/.sdk/tm/csharp/LICENSE +1 -1
  663. package/project/.sdk/tm/csharp/core/Context.cs +9 -6
  664. package/project/.sdk/tm/csharp/core/Helpers.cs +17 -0
  665. package/project/.sdk/tm/csharp/core/Response.cs +75 -0
  666. package/project/.sdk/tm/csharp/core/Spec.cs +3 -0
  667. package/project/.sdk/tm/csharp/feature/TestFeature.cs +41 -3
  668. package/project/.sdk/tm/csharp/feature/TimeoutFeature.cs +31 -3
  669. package/project/.sdk/tm/csharp/feature/ValidateFeature.cs +2 -0
  670. package/project/.sdk/tm/csharp/test/ConcurrencyTest.cs +238 -0
  671. package/project/.sdk/tm/csharp/test/FeatureHarness.cs +1 -1
  672. package/project/.sdk/tm/csharp/test/FeatureTest.cs +35 -0
  673. package/project/.sdk/tm/csharp/test/PipelineTest.cs +28 -0
  674. package/project/.sdk/tm/csharp/test/Runner.cs +119 -0
  675. package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +8 -3
  676. package/project/.sdk/tm/csharp/utility/Clean.cs +12 -10
  677. package/project/.sdk/tm/csharp/utility/Fetcher.cs +25 -7
  678. package/project/.sdk/tm/csharp/utility/MakeFetchDef.cs +1 -5
  679. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +8 -6
  680. package/project/.sdk/tm/csharp/utility/MakePoint.cs +68 -17
  681. package/project/.sdk/tm/csharp/utility/MakeSpec.cs +24 -6
  682. package/project/.sdk/tm/csharp/utility/MakeUrl.cs +21 -1
  683. package/project/.sdk/tm/csharp/utility/Media.cs +124 -0
  684. package/project/.sdk/tm/csharp/utility/Param.cs +57 -20
  685. package/project/.sdk/tm/csharp/utility/PrepareBody.cs +4 -0
  686. package/project/.sdk/tm/csharp/utility/PrepareHeaders.cs +103 -24
  687. package/project/.sdk/tm/csharp/utility/PrepareQuery.cs +33 -3
  688. package/project/.sdk/tm/csharp/utility/ResultBody.cs +5 -0
  689. package/project/.sdk/tm/csharp/utility/TransformRequest.cs +21 -13
  690. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +3 -2
  691. package/project/.sdk/tm/elixir/LICENSE +1 -1
  692. package/project/.sdk/tm/elixir/lib/projectname/context.ex +4 -1
  693. package/project/.sdk/tm/elixir/lib/projectname/core.ex +7 -2
  694. package/project/.sdk/tm/elixir/lib/projectname/entity_base.ex +45 -13
  695. package/project/.sdk/tm/elixir/lib/projectname/feature/test.ex +47 -21
  696. package/project/.sdk/tm/elixir/lib/projectname/feature/validate.ex +2 -0
  697. package/project/.sdk/tm/elixir/lib/projectname/utility.ex +512 -138
  698. package/project/.sdk/tm/elixir/test/concurrency_test.exs +176 -0
  699. package/project/.sdk/tm/elixir/test/support/feature_harness.ex +1 -0
  700. package/project/.sdk/tm/go/LICENSE +1 -1
  701. package/project/.sdk/tm/go/core/context.go +6 -2
  702. package/project/.sdk/tm/go/core/helpers.go +19 -1
  703. package/project/.sdk/tm/go/core/response.go +72 -0
  704. package/project/.sdk/tm/go/core/spec.go +3 -0
  705. package/project/.sdk/tm/go/core/types.go +9 -1
  706. package/project/.sdk/tm/go/feature/test_feature.go +44 -3
  707. package/project/.sdk/tm/go/feature/timeout_feature.go +39 -22
  708. package/project/.sdk/tm/go/feature/validate_feature.go +2 -0
  709. package/project/.sdk/tm/go/test/concurrency_test.go +214 -0
  710. package/project/.sdk/tm/go/test/feature_corpus_test.go +45 -1
  711. package/project/.sdk/tm/go/test/feature_harness_test.go +1 -1
  712. package/project/.sdk/tm/go/test/feature_test.go +86 -0
  713. package/project/.sdk/tm/go/test/primary_utility_test.go +37 -1
  714. package/project/.sdk/tm/go/test/testsupport_test.go +106 -0
  715. package/project/.sdk/tm/go/utility/fetcher.go +20 -6
  716. package/project/.sdk/tm/go/utility/make_fetch_def.go +1 -7
  717. package/project/.sdk/tm/go/utility/make_options.go +12 -6
  718. package/project/.sdk/tm/go/utility/make_point.go +52 -3
  719. package/project/.sdk/tm/go/utility/make_spec.go +23 -3
  720. package/project/.sdk/tm/go/utility/make_url.go +23 -1
  721. package/project/.sdk/tm/go/utility/media.go +111 -0
  722. package/project/.sdk/tm/go/utility/param.go +61 -20
  723. package/project/.sdk/tm/go/utility/prepare_body.go +3 -0
  724. package/project/.sdk/tm/go/utility/prepare_headers.go +108 -22
  725. package/project/.sdk/tm/go/utility/prepare_query.go +25 -2
  726. package/project/.sdk/tm/go/utility/result_body.go +8 -0
  727. package/project/.sdk/tm/go/utility/transform_request.go +20 -9
  728. package/project/.sdk/tm/java/LICENSE +1 -1
  729. package/project/.sdk/tm/java/core/Context.java +7 -4
  730. package/project/.sdk/tm/java/core/Helpers.java +13 -0
  731. package/project/.sdk/tm/java/core/Response.java +61 -0
  732. package/project/.sdk/tm/java/core/SdkClient.java +21 -3
  733. package/project/.sdk/tm/java/core/SdkEntity.java +2 -0
  734. package/project/.sdk/tm/java/core/Spec.java +4 -0
  735. package/project/.sdk/tm/java/feature/TestFeature.java +46 -3
  736. package/project/.sdk/tm/java/feature/TimeoutFeature.java +51 -18
  737. package/project/.sdk/tm/java/feature/ValidateFeature.java +2 -0
  738. package/project/.sdk/tm/java/test/ConcurrencyTest.java +221 -0
  739. package/project/.sdk/tm/java/test/FeatureCorpusTest.java +93 -35
  740. package/project/.sdk/tm/java/test/FeatureHarness.java +1 -0
  741. package/project/.sdk/tm/java/test/FeatureTest.java +33 -0
  742. package/project/.sdk/tm/java/test/PipelineTest.java +4 -1
  743. package/project/.sdk/tm/java/test/RunnerSupport.java +97 -0
  744. package/project/.sdk/tm/java/utility/Clean.java +39 -24
  745. package/project/.sdk/tm/java/utility/Fetcher.java +27 -3
  746. package/project/.sdk/tm/java/utility/MakeFetchDef.java +1 -7
  747. package/project/.sdk/tm/java/utility/MakePoint.java +62 -10
  748. package/project/.sdk/tm/java/utility/MakeSpec.java +26 -1
  749. package/project/.sdk/tm/java/utility/MakeUrl.java +23 -1
  750. package/project/.sdk/tm/java/utility/Media.java +117 -0
  751. package/project/.sdk/tm/java/utility/Param.java +59 -20
  752. package/project/.sdk/tm/java/utility/PrepareBody.java +3 -0
  753. package/project/.sdk/tm/java/utility/PrepareHeaders.java +76 -18
  754. package/project/.sdk/tm/java/utility/PrepareMethod.java +2 -1
  755. package/project/.sdk/tm/java/utility/PrepareQuery.java +26 -2
  756. package/project/.sdk/tm/java/utility/ResultBody.java +5 -0
  757. package/project/.sdk/tm/java/utility/TransformRequest.java +24 -11
  758. package/project/.sdk/tm/js/LICENSE +1 -1
  759. package/project/.sdk/tm/js/src/Context.js +1 -1
  760. package/project/.sdk/tm/js/src/Control.js +1 -0
  761. package/project/.sdk/tm/js/src/Response.js +10 -1
  762. package/project/.sdk/tm/js/src/Spec.js +3 -0
  763. package/project/.sdk/tm/js/src/feature/base/BaseFeature.js +28 -0
  764. package/project/.sdk/tm/js/src/feature/netsim/NetsimFeature.js +10 -8
  765. package/project/.sdk/tm/js/src/feature/ratelimit/RatelimitFeature.js +8 -6
  766. package/project/.sdk/tm/js/src/feature/retry/RetryFeature.js +17 -4
  767. package/project/.sdk/tm/js/src/feature/test/TestFeature.js +40 -12
  768. package/project/.sdk/tm/js/src/feature/timeout/TimeoutFeature.js +17 -3
  769. package/project/.sdk/tm/js/src/feature/validate/ValidateFeature.js +2 -0
  770. package/project/.sdk/tm/js/src/utility/CleanUtility.js +25 -1
  771. package/project/.sdk/tm/js/src/utility/FetcherUtility.js +23 -1
  772. package/project/.sdk/tm/js/src/utility/MakeErrorUtility.js +2 -2
  773. package/project/.sdk/tm/js/src/utility/MakeFetchDefUtility.js +14 -2
  774. package/project/.sdk/tm/js/src/utility/MakeOptionsUtility.js +6 -6
  775. package/project/.sdk/tm/js/src/utility/MakePointUtility.js +39 -2
  776. package/project/.sdk/tm/js/src/utility/MakeRequestUtility.js +27 -2
  777. package/project/.sdk/tm/js/src/utility/MakeResponseUtility.js +2 -1
  778. package/project/.sdk/tm/js/src/utility/MakeSpecUtility.js +14 -1
  779. package/project/.sdk/tm/js/src/utility/MakeUrlUtility.js +23 -0
  780. package/project/.sdk/tm/js/src/utility/MediaUtility.js +145 -0
  781. package/project/.sdk/tm/js/src/utility/ParamUtility.js +46 -18
  782. package/project/.sdk/tm/js/src/utility/PrepareBodyUtility.js +6 -0
  783. package/project/.sdk/tm/js/src/utility/PrepareHeadersUtility.js +55 -14
  784. package/project/.sdk/tm/js/src/utility/PrepareMethodUtility.js +9 -0
  785. package/project/.sdk/tm/js/src/utility/PrepareQueryUtility.js +23 -6
  786. package/project/.sdk/tm/js/src/utility/ResultBodyUtility.js +60 -3
  787. package/project/.sdk/tm/js/src/utility/TransformRequestUtility.js +16 -7
  788. package/project/.sdk/tm/js/test/definition-runner.js +103 -3
  789. package/project/.sdk/tm/js/test/feature/Corpus.test.js +47 -16
  790. package/project/.sdk/tm/js/test/feature/harness.js +4 -1
  791. package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +7 -7
  792. package/project/.sdk/tm/js/test/feature.test.js +134 -0
  793. package/project/.sdk/tm/js/test/live-contract.js +73 -3
  794. package/project/.sdk/tm/js/test/live-entity.js +34 -15
  795. package/project/.sdk/tm/js/test/live-runner.js +52 -7
  796. package/project/.sdk/tm/js/test/live-scenarios.js +4 -4
  797. package/project/.sdk/tm/js/test/pipeline.test.js +52 -1
  798. package/project/.sdk/tm/js/test/utility.js +30 -4
  799. package/project/.sdk/tm/kotlin/LICENSE +1 -1
  800. package/project/.sdk/tm/kotlin/core/Context.kt +6 -4
  801. package/project/.sdk/tm/kotlin/core/Helpers.kt +8 -0
  802. package/project/.sdk/tm/kotlin/core/Interfaces.kt +2 -0
  803. package/project/.sdk/tm/kotlin/core/Response.kt +65 -0
  804. package/project/.sdk/tm/kotlin/core/SdkClient.kt +20 -3
  805. package/project/.sdk/tm/kotlin/core/Spec.kt +3 -0
  806. package/project/.sdk/tm/kotlin/feature/TestFeature.kt +23 -3
  807. package/project/.sdk/tm/kotlin/feature/TimeoutFeature.kt +42 -15
  808. package/project/.sdk/tm/kotlin/feature/ValidateFeature.kt +2 -0
  809. package/project/.sdk/tm/kotlin/test/ConcurrencyTest.kt +193 -0
  810. package/project/.sdk/tm/kotlin/test/FeatureHarness.kt +1 -1
  811. package/project/.sdk/tm/kotlin/test/FeatureTest.kt +32 -0
  812. package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +90 -0
  813. package/project/.sdk/tm/kotlin/test/ServerVariableTest.kt +50 -0
  814. package/project/.sdk/tm/kotlin/utility/CoreUtil.kt +9 -7
  815. package/project/.sdk/tm/kotlin/utility/Fetcher.kt +24 -4
  816. package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +26 -0
  817. package/project/.sdk/tm/kotlin/utility/MakePoint.kt +57 -12
  818. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +26 -7
  819. package/project/.sdk/tm/kotlin/utility/Media.kt +83 -0
  820. package/project/.sdk/tm/kotlin/utility/Prepare.kt +127 -48
  821. package/project/.sdk/tm/kotlin/utility/ResultTransform.kt +18 -7
  822. package/project/.sdk/tm/lua/LICENSE +1 -1
  823. package/project/.sdk/tm/lua/core/context.lua +1 -1
  824. package/project/.sdk/tm/lua/core/helpers.lua +103 -0
  825. package/project/.sdk/tm/lua/core/response.lua +3 -0
  826. package/project/.sdk/tm/lua/core/spec.lua +3 -0
  827. package/project/.sdk/tm/lua/feature/test_feature.lua +36 -3
  828. package/project/.sdk/tm/lua/feature/validate_feature.lua +2 -0
  829. package/project/.sdk/tm/lua/test/feature_test.lua +1 -1
  830. package/project/.sdk/tm/lua/test/runner.lua +107 -0
  831. package/project/.sdk/tm/lua/utility/fetcher.lua +9 -2
  832. package/project/.sdk/tm/lua/utility/make_fetch_def.lua +2 -6
  833. package/project/.sdk/tm/lua/utility/make_options.lua +10 -7
  834. package/project/.sdk/tm/lua/utility/make_point.lua +65 -12
  835. package/project/.sdk/tm/lua/utility/make_spec.lua +19 -4
  836. package/project/.sdk/tm/lua/utility/make_url.lua +22 -1
  837. package/project/.sdk/tm/lua/utility/media.lua +106 -0
  838. package/project/.sdk/tm/lua/utility/param.lua +5 -45
  839. package/project/.sdk/tm/lua/utility/prepare_body.lua +5 -0
  840. package/project/.sdk/tm/lua/utility/prepare_headers.lua +71 -21
  841. package/project/.sdk/tm/lua/utility/prepare_query.lua +28 -6
  842. package/project/.sdk/tm/lua/utility/result_body.lua +7 -0
  843. package/project/.sdk/tm/lua/utility/transform_request.lua +23 -10
  844. package/project/.sdk/tm/lua/utility/unreadable_body.lua +70 -0
  845. package/project/.sdk/tm/ocaml/LICENSE +1 -1
  846. package/project/.sdk/tm/ocaml/Makefile +21 -8
  847. package/project/.sdk/tm/ocaml/sdk_features.ml +56 -10
  848. package/project/.sdk/tm/ocaml/sdk_helpers.ml +9 -0
  849. package/project/.sdk/tm/ocaml/sdk_runtime.ml +385 -96
  850. package/project/.sdk/tm/ocaml/sdk_types.ml +12 -2
  851. package/project/.sdk/tm/ocaml/test/concurrency_test.ml +148 -0
  852. package/project/.sdk/tm/ocaml/test/harness.ml +1 -1
  853. package/project/.sdk/tm/ocaml/test/t_pipeline.ml +2 -1
  854. package/project/.sdk/tm/perl/LICENSE +1 -1
  855. package/project/.sdk/tm/perl/core/context.pm +1 -1
  856. package/project/.sdk/tm/perl/core/response.pm +2 -0
  857. package/project/.sdk/tm/perl/core/spec.pm +3 -0
  858. package/project/.sdk/tm/perl/feature/test_feature.pm +26 -3
  859. package/project/.sdk/tm/perl/feature/validate_feature.pm +2 -0
  860. package/project/.sdk/tm/perl/t/feature.t +1 -1
  861. package/project/.sdk/tm/perl/t/feature_corpus.t +72 -33
  862. package/project/.sdk/tm/perl/t/runner.pm +86 -0
  863. package/project/.sdk/tm/perl/t/server_variables.t +39 -0
  864. package/project/.sdk/tm/perl/utility/clean.pm +12 -7
  865. package/project/.sdk/tm/perl/utility/fetcher.pm +32 -19
  866. package/project/.sdk/tm/perl/utility/make_fetch_def.pm +4 -4
  867. package/project/.sdk/tm/perl/utility/make_options.pm +24 -0
  868. package/project/.sdk/tm/perl/utility/make_point.pm +55 -9
  869. package/project/.sdk/tm/perl/utility/make_spec.pm +27 -3
  870. package/project/.sdk/tm/perl/utility/make_url.pm +13 -1
  871. package/project/.sdk/tm/perl/utility/media.pm +109 -0
  872. package/project/.sdk/tm/perl/utility/param.pm +50 -24
  873. package/project/.sdk/tm/perl/utility/prepare_body.pm +11 -3
  874. package/project/.sdk/tm/perl/utility/prepare_headers.pm +63 -16
  875. package/project/.sdk/tm/perl/utility/prepare_method.pm +13 -0
  876. package/project/.sdk/tm/perl/utility/prepare_query.pm +18 -4
  877. package/project/.sdk/tm/perl/utility/result_body.pm +60 -0
  878. package/project/.sdk/tm/perl/utility/transform_request.pm +23 -8
  879. package/project/.sdk/tm/php/LICENSE +1 -1
  880. package/project/.sdk/tm/php/core/Context.php +1 -1
  881. package/project/.sdk/tm/php/core/Response.php +3 -0
  882. package/project/.sdk/tm/php/core/Spec.php +4 -0
  883. package/project/.sdk/tm/php/feature/CostFeature.php +2 -7
  884. package/project/.sdk/tm/php/feature/TestFeature.php +42 -12
  885. package/project/.sdk/tm/php/feature/ValidateFeature.php +14 -12
  886. package/project/.sdk/tm/php/test/FeatureCorpusTest.php +90 -35
  887. package/project/.sdk/tm/php/test/FeatureTest.php +4 -5
  888. package/project/.sdk/tm/php/test/PipelineTest.php +18 -1
  889. package/project/.sdk/tm/php/test/Runner.php +86 -0
  890. package/project/.sdk/tm/php/utility/Clean.php +10 -5
  891. package/project/.sdk/tm/php/utility/Fetcher.php +48 -6
  892. package/project/.sdk/tm/php/utility/MakeFetchDef.php +2 -1
  893. package/project/.sdk/tm/php/utility/MakePoint.php +55 -11
  894. package/project/.sdk/tm/php/utility/MakeSpec.php +21 -4
  895. package/project/.sdk/tm/php/utility/MakeUrl.php +16 -1
  896. package/project/.sdk/tm/php/utility/Media.php +111 -0
  897. package/project/.sdk/tm/php/utility/Param.php +66 -27
  898. package/project/.sdk/tm/php/utility/PrepareBody.php +5 -0
  899. package/project/.sdk/tm/php/utility/PrepareHeaders.php +83 -23
  900. package/project/.sdk/tm/php/utility/PrepareMethod.php +15 -0
  901. package/project/.sdk/tm/php/utility/PrepareQuery.php +22 -8
  902. package/project/.sdk/tm/php/utility/ResultBody.php +71 -0
  903. package/project/.sdk/tm/php/utility/TransformRequest.php +22 -11
  904. package/project/.sdk/tm/py/LICENSE +1 -1
  905. package/project/.sdk/tm/py/pkg/core/context.py +3 -3
  906. package/project/.sdk/tm/py/pkg/core/response.py +3 -0
  907. package/project/.sdk/tm/py/pkg/core/spec.py +3 -0
  908. package/project/.sdk/tm/py/pkg/feature/test_feature.py +27 -3
  909. package/project/.sdk/tm/py/pkg/feature/validate_feature.py +2 -0
  910. package/project/.sdk/tm/py/pkg/utility/clean.py +12 -8
  911. package/project/.sdk/tm/py/pkg/utility/fetcher.py +17 -7
  912. package/project/.sdk/tm/py/pkg/utility/make_fetch_def.py +2 -5
  913. package/project/.sdk/tm/py/pkg/utility/make_options.py +14 -8
  914. package/project/.sdk/tm/py/pkg/utility/make_point.py +40 -4
  915. package/project/.sdk/tm/py/pkg/utility/make_spec.py +12 -4
  916. package/project/.sdk/tm/py/pkg/utility/make_url.py +19 -1
  917. package/project/.sdk/tm/py/pkg/utility/media.py +88 -0
  918. package/project/.sdk/tm/py/pkg/utility/param.py +47 -18
  919. package/project/.sdk/tm/py/pkg/utility/prepare_body.py +4 -0
  920. package/project/.sdk/tm/py/pkg/utility/prepare_headers.py +56 -20
  921. package/project/.sdk/tm/py/pkg/utility/prepare_method.py +7 -0
  922. package/project/.sdk/tm/py/pkg/utility/prepare_query.py +17 -8
  923. package/project/.sdk/tm/py/pkg/utility/result_body.py +51 -0
  924. package/project/.sdk/tm/py/pkg/utility/transform_request.py +18 -9
  925. package/project/.sdk/tm/py/test/feature_harness.py +1 -1
  926. package/project/.sdk/tm/py/test/runner.py +77 -2
  927. package/project/.sdk/tm/py/test/test_concurrency.py +177 -0
  928. package/project/.sdk/tm/py/test/test_feature_corpus.py +69 -32
  929. package/project/.sdk/tm/py-data/LICENSE +1 -1
  930. package/project/.sdk/tm/py-data/Makefile +2 -2
  931. package/project/.sdk/tm/rb/LICENSE +1 -1
  932. package/project/.sdk/tm/rb/core/context.rb +9 -4
  933. package/project/.sdk/tm/rb/core/response.rb +3 -1
  934. package/project/.sdk/tm/rb/core/spec.rb +4 -1
  935. package/project/.sdk/tm/rb/feature/test_feature.rb +27 -8
  936. package/project/.sdk/tm/rb/feature/validate_feature.rb +3 -1
  937. package/project/.sdk/tm/rb/test/concurrency_test.rb +160 -0
  938. package/project/.sdk/tm/rb/test/feature_corpus_test.rb +74 -30
  939. package/project/.sdk/tm/rb/test/feature_test.rb +1 -1
  940. package/project/.sdk/tm/rb/test/runner.rb +54 -2
  941. package/project/.sdk/tm/rb/utility/clean.rb +22 -13
  942. package/project/.sdk/tm/rb/utility/fetcher.rb +22 -14
  943. package/project/.sdk/tm/rb/utility/make_fetch_def.rb +2 -4
  944. package/project/.sdk/tm/rb/utility/make_point.rb +44 -8
  945. package/project/.sdk/tm/rb/utility/make_spec.rb +14 -2
  946. package/project/.sdk/tm/rb/utility/make_url.rb +13 -1
  947. package/project/.sdk/tm/rb/utility/media.rb +75 -0
  948. package/project/.sdk/tm/rb/utility/param.rb +44 -25
  949. package/project/.sdk/tm/rb/utility/prepare_body.rb +4 -1
  950. package/project/.sdk/tm/rb/utility/prepare_headers.rb +50 -16
  951. package/project/.sdk/tm/rb/utility/prepare_method.rb +6 -0
  952. package/project/.sdk/tm/rb/utility/prepare_query.rb +12 -4
  953. package/project/.sdk/tm/rb/utility/result_body.rb +45 -0
  954. package/project/.sdk/tm/rb/utility/transform_request.rb +17 -7
  955. package/project/.sdk/tm/rust/LICENSE +1 -1
  956. package/project/.sdk/tm/rust/core/context.rs +1 -1
  957. package/project/.sdk/tm/rust/core/helpers.rs +10 -0
  958. package/project/.sdk/tm/rust/core/response.rs +80 -1
  959. package/project/.sdk/tm/rust/core/spec.rs +4 -0
  960. package/project/.sdk/tm/rust/core/types.rs +1 -0
  961. package/project/.sdk/tm/rust/feature/test.rs +29 -2
  962. package/project/.sdk/tm/rust/feature/validate.rs +2 -0
  963. package/project/.sdk/tm/rust/tests/common/mod.rs +108 -1
  964. package/project/.sdk/tm/rust/utility/clean.rs +0 -2
  965. package/project/.sdk/tm/rust/utility/fetcher.rs +19 -11
  966. package/project/.sdk/tm/rust/utility/make_fetch_def.rs +12 -1
  967. package/project/.sdk/tm/rust/utility/make_options.rs +6 -5
  968. package/project/.sdk/tm/rust/utility/make_point.rs +80 -16
  969. package/project/.sdk/tm/rust/utility/make_spec.rs +23 -4
  970. package/project/.sdk/tm/rust/utility/make_url.rs +39 -2
  971. package/project/.sdk/tm/rust/utility/media.rs +116 -0
  972. package/project/.sdk/tm/rust/utility/mod.rs +1 -0
  973. package/project/.sdk/tm/rust/utility/param.rs +66 -19
  974. package/project/.sdk/tm/rust/utility/prepare_body.rs +4 -0
  975. package/project/.sdk/tm/rust/utility/prepare_headers.rs +85 -28
  976. package/project/.sdk/tm/rust/utility/prepare_query.rs +27 -5
  977. package/project/.sdk/tm/rust/utility/result_body.rs +15 -2
  978. package/project/.sdk/tm/rust/utility/transform_request.rs +27 -14
  979. package/project/.sdk/tm/scala/LICENSE +1 -1
  980. package/project/.sdk/tm/scala/Makefile +5 -1
  981. package/project/.sdk/tm/scala/core/Context.scala +7 -5
  982. package/project/.sdk/tm/scala/core/Contracts.scala +1 -0
  983. package/project/.sdk/tm/scala/core/Helpers.scala +7 -0
  984. package/project/.sdk/tm/scala/core/Response.scala +55 -0
  985. package/project/.sdk/tm/scala/core/SdkClient.scala +18 -5
  986. package/project/.sdk/tm/scala/core/Spec.scala +3 -0
  987. package/project/.sdk/tm/scala/feature/TestFeature.scala +36 -3
  988. package/project/.sdk/tm/scala/feature/TimeoutFeature.scala +39 -13
  989. package/project/.sdk/tm/scala/feature/ValidateFeature.scala +2 -0
  990. package/project/.sdk/tm/scala/sdktest/ConcurrencyTest.scala +186 -0
  991. package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +16 -1
  992. package/project/.sdk/tm/scala/sdktest/ServerVariableTest.scala +49 -0
  993. package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +1 -0
  994. package/project/.sdk/tm/scala/utility/Fetcher.scala +17 -2
  995. package/project/.sdk/tm/scala/utility/Make.scala +141 -43
  996. package/project/.sdk/tm/scala/utility/MakeSpec.scala +20 -2
  997. package/project/.sdk/tm/scala/utility/Media.scala +96 -0
  998. package/project/.sdk/tm/scala/utility/Misc.scala +56 -23
  999. package/project/.sdk/tm/scala/utility/Prepare.scala +84 -31
  1000. package/project/.sdk/tm/scala/utility/Results.scala +5 -0
  1001. package/project/.sdk/tm/scala/utility/Transform.scala +15 -19
  1002. package/project/.sdk/tm/swift/LICENSE +1 -1
  1003. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Context.swift +3 -1
  1004. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Response.swift +57 -0
  1005. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Spec.swift +3 -0
  1006. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Support.swift +8 -0
  1007. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TestFeature.swift +34 -3
  1008. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TimeoutFeature.swift +19 -3
  1009. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ValidateFeature.swift +2 -0
  1010. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Fetcher.swift +21 -12
  1011. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Make.swift +85 -18
  1012. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +73 -7
  1013. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Media.swift +76 -0
  1014. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +118 -43
  1015. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/ResultUtil.swift +52 -19
  1016. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/ConcurrencyTest.swift +214 -0
  1017. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/FeatureTest.swift +31 -1
  1018. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +6 -0
  1019. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/ServerVariableTest.swift +42 -0
  1020. package/project/.sdk/tm/ts/LICENSE +1 -1
  1021. package/project/.sdk/tm/ts/src/Context.ts +1 -1
  1022. package/project/.sdk/tm/ts/src/Control.ts +3 -0
  1023. package/project/.sdk/tm/ts/src/Response.ts +10 -1
  1024. package/project/.sdk/tm/ts/src/Spec.ts +4 -0
  1025. package/project/.sdk/tm/ts/src/feature/base/BaseFeature.ts +28 -0
  1026. package/project/.sdk/tm/ts/src/feature/netsim/NetsimFeature.ts +10 -8
  1027. package/project/.sdk/tm/ts/src/feature/ratelimit/RatelimitFeature.ts +8 -6
  1028. package/project/.sdk/tm/ts/src/feature/retry/RetryFeature.ts +17 -4
  1029. package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +41 -13
  1030. package/project/.sdk/tm/ts/src/feature/timeout/TimeoutFeature.ts +17 -3
  1031. package/project/.sdk/tm/ts/src/feature/validate/ValidateFeature.ts +2 -0
  1032. package/project/.sdk/tm/ts/src/tsconfig.json +2 -1
  1033. package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +25 -1
  1034. package/project/.sdk/tm/ts/src/utility/FetcherUtility.ts +24 -1
  1035. package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +2 -2
  1036. package/project/.sdk/tm/ts/src/utility/MakeFetchDefUtility.ts +15 -2
  1037. package/project/.sdk/tm/ts/src/utility/MakeOptionsUtility.ts +6 -6
  1038. package/project/.sdk/tm/ts/src/utility/MakePointUtility.ts +38 -2
  1039. package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +29 -2
  1040. package/project/.sdk/tm/ts/src/utility/MakeResponseUtility.ts +3 -1
  1041. package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +16 -6
  1042. package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +16 -2
  1043. package/project/.sdk/tm/ts/src/utility/MediaUtility.ts +143 -0
  1044. package/project/.sdk/tm/ts/src/utility/ParamUtility.ts +50 -18
  1045. package/project/.sdk/tm/ts/src/utility/PrepareBodyUtility.ts +6 -0
  1046. package/project/.sdk/tm/ts/src/utility/PrepareHeadersUtility.ts +53 -11
  1047. package/project/.sdk/tm/ts/src/utility/PrepareMethodUtility.ts +9 -0
  1048. package/project/.sdk/tm/ts/src/utility/PrepareQueryUtility.ts +22 -6
  1049. package/project/.sdk/tm/ts/src/utility/ResultBodyUtility.ts +68 -3
  1050. package/project/.sdk/tm/ts/src/utility/TransformRequestUtility.ts +16 -6
  1051. package/project/.sdk/tm/ts/test/definition-runner.ts +109 -3
  1052. package/project/.sdk/tm/ts/test/feature/Corpus.test.ts +47 -16
  1053. package/project/.sdk/tm/ts/test/feature/harness.ts +4 -1
  1054. package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +1 -1
  1055. package/project/.sdk/tm/ts/test/feature.test.ts +134 -0
  1056. package/project/.sdk/tm/ts/test/live-contract.ts +60 -2
  1057. package/project/.sdk/tm/ts/test/live-entity.ts +36 -12
  1058. package/project/.sdk/tm/ts/test/live-runner.ts +79 -12
  1059. package/project/.sdk/tm/ts/test/live-scenarios.ts +5 -4
  1060. package/project/.sdk/tm/ts/test/pipeline.test.ts +52 -1
  1061. package/project/.sdk/tm/ts/test/tsconfig.json +2 -1
  1062. package/project/.sdk/tm/ts/test/utility.ts +35 -7
  1063. package/project/.sdk/tm/zig/LICENSE +1 -1
  1064. package/project/.sdk/tm/zig/core/context.zig +2 -1
  1065. package/project/.sdk/tm/zig/core/helpers.zig +33 -0
  1066. package/project/.sdk/tm/zig/core/response.zig +3 -0
  1067. package/project/.sdk/tm/zig/core/spec.zig +27 -0
  1068. package/project/.sdk/tm/zig/core/types.zig +6 -0
  1069. package/project/.sdk/tm/zig/core/utility.zig +456 -84
  1070. package/project/.sdk/tm/zig/feature/test.zig +41 -10
  1071. package/project/.sdk/tm/zig/feature/validate.zig +2 -0
  1072. package/project/.sdk/tm/zig/test/fh.zig +1 -1
  1073. package/project/sdkgen-package.json +1 -1
  1074. package/src/action/copies.ts +179 -46
  1075. package/src/action/doctor.ts +13 -3
  1076. package/src/action/package.ts +17 -9
  1077. package/src/action/resolve.ts +41 -0
  1078. package/src/admin/npm-trust.ts +9 -8
  1079. package/src/cmp/AgentGuide.ts +4 -3
  1080. package/src/cmp/AgentGuideFeature.ts +3 -2
  1081. package/src/cmp/AgentGuideTop.ts +2 -1
  1082. package/src/cmp/Changelog.ts +2 -1
  1083. package/src/cmp/Deploy.ts +2 -1
  1084. package/src/cmp/Entity.ts +1 -3
  1085. package/src/cmp/ExternalTarget.ts +2 -1
  1086. package/src/cmp/Feature.ts +2 -1
  1087. package/src/cmp/FeatureHook.ts +2 -1
  1088. package/src/cmp/License.ts +7 -5
  1089. package/src/cmp/Main.ts +2 -1
  1090. package/src/cmp/PublishWorkflow.ts +2 -1
  1091. package/src/cmp/Readme.ts +2 -1
  1092. package/src/cmp/ReadmeEntity.ts +3 -3
  1093. package/src/cmp/ReadmeErrors.ts +11 -9
  1094. package/src/cmp/ReadmeExplanation.ts +8 -8
  1095. package/src/cmp/ReadmeFeatures.ts +4 -3
  1096. package/src/cmp/ReadmeHowto.ts +4 -3
  1097. package/src/cmp/ReadmeInstall.ts +4 -3
  1098. package/src/cmp/ReadmeIntro.ts +3 -3
  1099. package/src/cmp/ReadmeModel.ts +6 -3
  1100. package/src/cmp/ReadmeOptions.ts +3 -3
  1101. package/src/cmp/ReadmeQuick.ts +7 -4
  1102. package/src/cmp/ReadmeRef.ts +3 -3
  1103. package/src/cmp/ReadmeRefFeatures.ts +2 -1
  1104. package/src/cmp/ReadmeStation.ts +2 -1
  1105. package/src/cmp/ReadmeTop.ts +126 -44
  1106. package/src/cmp/ReadmeUnions.ts +2 -1
  1107. package/src/cmp/Registered.ts +4 -4
  1108. package/src/cmp/Security.ts +14 -7
  1109. package/src/cmp/Test.ts +2 -1
  1110. package/src/cmp/TestControl.ts +1 -1
  1111. package/src/helpers/component.ts +25 -0
  1112. package/src/helpers/definition.ts +2 -2
  1113. package/src/helpers/definitionPlan.ts +139 -13
  1114. package/src/helpers/featureSource.ts +55 -2
  1115. package/src/helpers/flowGuard.ts +111 -0
  1116. package/src/helpers/generated.ts +488 -0
  1117. package/src/helpers/mcpTools.ts +47 -0
  1118. package/src/helpers/media.ts +79 -0
  1119. package/src/helpers/modelNames.ts +186 -16
  1120. package/src/helpers/naming.ts +200 -4
  1121. package/src/helpers/npm.ts +68 -0
  1122. package/src/helpers/npmScripts.ts +37 -0
  1123. package/src/helpers/opExample.ts +111 -31
  1124. package/src/helpers/opShape.ts +259 -37
  1125. package/src/helpers/optional.ts +76 -0
  1126. package/src/helpers/packageMeta.ts +83 -11
  1127. package/src/helpers/stdrep.ts +5 -1
  1128. package/src/helpers/testPolicy.ts +68 -1
  1129. package/src/helpers/text.ts +33 -0
  1130. package/src/sdkgen.ts +110 -16
  1131. package/src/testkit.ts +2 -1
  1132. package/src/utility.ts +68 -19
  1133. package/project/.sdk/src/cmp/go/fragment/SdkError.fragment.go +0 -22
  1134. package/project/.sdk/src/cmp/lua/fragment/SdkError.fragment.lua +0 -38
  1135. package/project/.sdk/src/cmp/perl/fragment/SdkError.fragment.pm +0 -27
  1136. package/project/.sdk/src/cmp/php/fragment/SdkError.fragment.php +0 -35
  1137. package/project/.sdk/src/cmp/py/fragment/SdkError.fragment.py +0 -27
  1138. package/project/.sdk/src/cmp/rb/fragment/SdkError.fragment.rb +0 -25
@@ -15,7 +15,10 @@
15
15
  (ns sdk.core
16
16
  (:require [voxgig.struct :as vs]
17
17
  [sdk.schema :as schema]
18
- [clojure.string :as str]))
18
+ [clojure.string :as str])
19
+ (:import [java.net URI]
20
+ [java.net.http HttpClient HttpClient$Redirect HttpClient$Version
21
+ HttpRequest HttpRequest$BodyPublishers HttpResponse$BodyHandlers]))
19
22
 
20
23
  (def SDK-NAME "ProjectName")
21
24
 
@@ -35,22 +38,29 @@
35
38
  (let [c (peek-c)]
36
39
  (cond (= c \{) (parse-obj) (= c \[) (parse-arr) (= c \") (parse-str)
37
40
  (or (= c \t) (= c \f)) (parse-bool) (= c \n) (parse-null) :else (parse-num))))
41
+ (fail [] (throw (ex-info (str "json: unexpected input at " (aget pos 0)) {})))
42
+ (expect [^String word value]
43
+ (if (.startsWith s word (aget pos 0))
44
+ (do (aset pos 0 (+ (aget pos 0) (count word))) value)
45
+ (fail)))
38
46
  (parse-obj []
39
47
  (next-c)
40
48
  (let [m (java.util.LinkedHashMap.)]
41
49
  (skip-ws)
42
50
  (if (= (peek-c) \}) (do (next-c) m)
43
51
  (loop [] (skip-ws)
44
- (let [k (parse-str)] (skip-ws) (next-c)
52
+ (when-not (= (peek-c) \") (fail))
53
+ (let [k (parse-str)] (skip-ws)
54
+ (when-not (= (next-c) \:) (fail))
45
55
  (.put m k (parse-val)) (skip-ws)
46
- (if (= (next-c) \,) (recur) m))))))
56
+ (let [c (next-c)] (cond (= c \,) (recur) (= c \}) m :else (fail))))))))
47
57
  (parse-arr []
48
58
  (next-c)
49
59
  (let [a (java.util.ArrayList.)]
50
60
  (skip-ws)
51
61
  (if (= (peek-c) \]) (do (next-c) a)
52
62
  (loop [] (.add a (parse-val)) (skip-ws)
53
- (if (= (next-c) \,) (recur) a)))))
63
+ (let [c (next-c)] (cond (= c \,) (recur) (= c \]) a :else (fail)))))))
54
64
  (parse-str []
55
65
  (next-c)
56
66
  (let [sb (StringBuilder.)]
@@ -69,10 +79,8 @@
69
79
  (.append sb e))
70
80
  (recur))
71
81
  :else (do (.append sb c) (recur)))))))
72
- (parse-bool []
73
- (if (= (peek-c) \t) (do (aset pos 0 (+ (aget pos 0) 4)) true)
74
- (do (aset pos 0 (+ (aget pos 0) 5)) false)))
75
- (parse-null [] (aset pos 0 (+ (aget pos 0) 4)) nil)
82
+ (parse-bool [] (if (= (peek-c) \t) (expect "true" true) (expect "false" false)))
83
+ (parse-null [] (expect "null" nil))
76
84
  (parse-num []
77
85
  (let [start (aget pos 0)]
78
86
  (while (and (< (aget pos 0) n)
@@ -91,7 +99,10 @@
91
99
  (try (Long/parseLong tok)
92
100
  (catch NumberFormatException _
93
101
  (bigint (java.math.BigInteger. tok))))))))]
94
- (parse-val))))
102
+ (let [v (parse-val)]
103
+ (skip-ws)
104
+ (when (< (aget pos 0) n) (fail))
105
+ v))))
95
106
 
96
107
  ;; The option spec, parsed ONCE. sdk.schema holds the raw JSON and nothing
97
108
  ;; else — it cannot parse its own data without requiring this namespace,
@@ -171,6 +182,12 @@
171
182
  ;; ctx.make_error(code, msg)
172
183
  (defn ctx-error [ctx code msg] (make-error-obj code msg ctx))
173
184
 
185
+ ;; Whether a comma-separated allow option names the item: whole names, any case.
186
+ (defn allowed? [names item]
187
+ (and (string? names) (string? item) (not= "" item)
188
+ (boolean (some #(.equalsIgnoreCase ^String (str/trim %) ^String item)
189
+ (str/split names #"," -1)))))
190
+
174
191
  ;; ---------------------------------------------------------------------------
175
192
  ;; Client accessors. A client is a plain map holding atoms (so it is shared by
176
193
  ;; reference; the atoms carry the mutable slots).
@@ -253,7 +270,10 @@
253
270
  :method (g "method" "GET")
254
271
  :body (g "body" nil)
255
272
  :url (g "url" "")
256
- :path (g "path" "")})))
273
+ :path (g "path" "")
274
+ ;; The query parameters prepare-auth placed: the credential, which
275
+ ;; the request sends and the entity's match leaves out.
276
+ :authquery (g "authquery" [])})))
257
277
 
258
278
  ;; ---------------------------------------------------------------------------
259
279
  ;; Result (atom-map).
@@ -291,7 +311,9 @@
291
311
  :headers (g "headers")
292
312
  :json (when (vs/isfunc jf) jf)
293
313
  :body (g "body")
294
- :err (g "err")})))
314
+ :err (g "err")
315
+ ;; Set by a transport that could not read a non-blank body as JSON.
316
+ :unreadable (true? (g "unreadable"))})))
295
317
 
296
318
  ;; ---------------------------------------------------------------------------
297
319
  ;; Control (atom-map). Shared with the base context when not overridden.
@@ -369,12 +391,12 @@
369
391
  (or (nil? opname) (= "" opname)) (make-operation (vs/jm))
370
392
  :else
371
393
  (let [opcfg (vs/getpath config (str "entity." entname ".op." opname))
372
- input (if (or (= opname "update") (= opname "create")) "data" "match")
394
+ input (if (or (= opname "update") (= opname "create") (= opname "patch")) "data" "match")
373
395
  points (let [t (when (vs/ismap opcfg) (vs/getprop opcfg "points"))]
374
396
  (if (vs/islist t) t (vs/jt)))
375
397
  op (make-operation (vs/jm "entity" entname "name" opname "input" input "points" points))]
376
- (swap! opmap assoc cache-key op)
377
- op))))
398
+ ;; Every request racing to build this Operation gets the one stored first.
399
+ (get (swap! opmap #(if (contains? % cache-key) % (assoc % cache-key op))) cache-key)))))
378
400
 
379
401
  ;; ---------------------------------------------------------------------------
380
402
  ;; Feature dispatch.
@@ -466,19 +488,21 @@
466
488
  (let [n (try (long (Math/floor (Double/parseDouble (str v)))) (catch Exception _ nil))]
467
489
  (if (and n (<= 0 n)) n dflt)))
468
490
 
469
- ;; The derived clean block: a struct map so it lives in options.__derived__
470
- ;; and its `values` list stays MUTABLE after make-options - features register
471
- ;; what they resolve later.
491
+ ;; The derived clean block: a java.util.Map so it lives in options.__derived__
492
+ ;; and its `values` list can be replaced after make-options - features
493
+ ;; register what they resolve later. Concurrent, so a clean or a request
494
+ ;; copying the options reads it without the lock and sees the last put.
472
495
  (defn make-clean-config [cleanopts]
473
496
  (let [o (fn [k] (mget cleanopts k))
474
497
  keys (vs/jt)]
475
498
  (doseq [k (splitkeys (o "keys"))] (.add ^java.util.List keys k))
476
- (vs/jm "active" (not= false (o "active"))
477
- "keys" keys
478
- "values" (vs/jt)
479
- "mask" (let [m (o "mask")] (if (string? m) m "[redacted]"))
480
- "hint" (count-opt (o "hint") 0)
481
- "min" (max 1 (count-opt (o "min") 4)))))
499
+ (doto (java.util.concurrent.ConcurrentHashMap.)
500
+ (.put "active" (not= false (o "active")))
501
+ (.put "keys" keys)
502
+ (.put "values" (vs/jt))
503
+ (.put "mask" (let [m (o "mask")] (if (string? m) m "[redacted]")))
504
+ (.put "hint" (count-opt (o "hint") 0))
505
+ (.put "min" (max 1 (count-opt (o "min") 4))))))
482
506
 
483
507
  ;; A context without options (make-error accepts a bare one) still masks by
484
508
  ;; the schema defaults.
@@ -499,21 +523,25 @@
499
523
 
500
524
  (defn u-clean-add [ctx value]
501
525
  (let [cfg (clean-config ctx)
502
- minlen (long (or (mget cfg "min") 4))
503
- values (mget cfg "values")]
504
- (when (and (string? value) (>= (count value) minlen) (instance? java.util.List values))
505
- (let [changed (atom false)]
506
- (doseq [form (clean-forms value)]
507
- (when (and (>= (count form) minlen) (not (.contains ^java.util.List values form)))
508
- (.add ^java.util.List values form)
509
- (reset! changed true)))
510
- ;; Longest first, so a value is never masked by a substring of itself.
511
- (when @changed
512
- (let [sorted (sort-by (fn [^String s] (- (count s))) (vec values))]
513
- (.clear ^java.util.List values)
514
- (doseq [s sorted] (.add ^java.util.List values s))))))
526
+ minlen (long (or (mget cfg "min") 4))]
527
+ (when (and (string? value) (>= (count value) minlen)
528
+ (instance? java.util.List (mget cfg "values")))
529
+ (let [forms (filterv #(>= (count %) minlen) (clean-forms value))]
530
+ ;; Every request copies the options, the registry among them, so a
531
+ ;; registration publishes a new vector and never changes a published one.
532
+ (locking cfg
533
+ (let [values (vec (mget cfg "values"))
534
+ added (remove #(.contains ^java.util.List values %) forms)]
535
+ ;; Longest first, so a value is never masked by a substring of itself.
536
+ (when (seq added)
537
+ (.put ^java.util.Map cfg "values"
538
+ (vec (sort-by (fn [^String s] (- (count s))) (into values added)))))))))
515
539
  nil))
516
540
 
541
+ (defn- registered [cfg]
542
+ (let [values (mget cfg "values")]
543
+ (if (instance? java.util.List values) values [])))
544
+
517
545
  (defn- mask-value [cfg ^String value]
518
546
  (let [hint (long (or (mget cfg "hint") 0))
519
547
  mask (str (mget cfg "mask"))]
@@ -525,7 +553,7 @@
525
553
  (reduce (fn [^String out ^String value]
526
554
  (if (.contains out value) (str/replace out value (mask-value cfg value)) out))
527
555
  text
528
- (vec (or (mget cfg "values") []))))
556
+ (registered cfg)))
529
557
 
530
558
  (defn- sensitive-key? [cfg key]
531
559
  (if (or (nil? key) (number? key))
@@ -698,50 +726,169 @@
698
726
  ;; shared corpus caught all three.
699
727
  (get METHOD-MAP (op-name (oget ctx :op))))))
700
728
 
729
+ ;; The arguments a point declares in one location, query or header, each as
730
+ ;; [name wire val]: the name it travels under and the value this call passes
731
+ ;; in its match or else its data. Unlike a path parameter, the entity's stored
732
+ ;; match and data never supply one.
733
+ (defn- call-args [ctx kind]
734
+ (let [point (oget ctx :point)
735
+ args (when point (vs/getprop point "args"))
736
+ defs (when (vs/ismap args) (vs/getprop args kind))]
737
+ (if (vs/islist defs)
738
+ (vec (keep (fn [ad]
739
+ (let [name (when (vs/ismap ad) (vs/getprop ad "name"))]
740
+ (when (and (string? name) (seq name))
741
+ (let [orig (vs/getprop ad "orig")
742
+ wire (if (and (string? orig) (seq orig)) orig name)
743
+ v (vs/getprop (oget ctx :reqmatch) name)
744
+ v (if (nil? v) (vs/getprop (oget ctx :reqdata) name) v)]
745
+ [name wire v]))))
746
+ (vec defs)))
747
+ [])))
748
+
749
+ ;; ---- media -------------------------------------------------------------------
750
+ ;;
751
+ ;; The media types a point declares: `response` (the model's `rs`) for the
752
+ ;; Accept header, and `body` (the model's `rb`) for the request body.
753
+
754
+ ;; The data key holding a raw request body. Like `$action`, it can never be a
755
+ ;; declared argument name.
756
+ (def RAW-BODY "$body")
757
+
758
+ (defn json-media? [media]
759
+ (let [m (-> (if (string? media) media "") (str/split #";" 2) first (or "") str/trim str/lower-case)]
760
+ (or (= "application/json" m) (= "text/json" m) (str/ends-with? m "+json"))))
761
+
762
+ ;; The declared JSON type alone, else every declared type in the model's
763
+ ;; order; nil when no success response declares a body.
764
+ (defn accept-of [point]
765
+ (let [res (when point (vs/getprop point "response"))
766
+ media (when (vs/ismap res) (vs/getprop res "media"))]
767
+ (when (and (string? media) (seq media))
768
+ (if (= "json" (vs/getprop res "kind"))
769
+ media
770
+ (let [alts (vs/getprop res "alternatives")
771
+ others (when (vs/islist alts)
772
+ (keep (fn [alt]
773
+ (let [m (when (vs/ismap alt) (vs/getprop alt "media"))]
774
+ (when (and (string? m) (seq m)) m)))
775
+ (vec alts)))]
776
+ (str/join ", " (cons media others)))))))
777
+
778
+ (defn raw-request? [point]
779
+ (let [body (when point (vs/getprop point "body"))]
780
+ (and (vs/ismap body) (= "raw" (vs/getprop body "kind")))))
781
+
782
+ (defn json-request? [point]
783
+ (let [body (when point (vs/getprop point "body"))]
784
+ (and (vs/ismap body) (= "json" (vs/getprop body "kind")))))
785
+
786
+ ;; Bytes or a stream go as given. A map or a list is JSON, and so is a scalar
787
+ ;; on a point that declares a JSON body.
788
+ (defn request-body [point body]
789
+ (cond
790
+ (or (bytes? body) (instance? java.io.InputStream body)) body
791
+ (or (vs/isnode body) (json-request? point)) (vs/jsonify body)
792
+ :else body))
793
+
794
+ (defn- media-header? [^java.util.Map headers name]
795
+ (boolean (some (fn [k] (and (string? k) (= name (str/lower-case k)))) (vec (.keySet headers)))))
796
+
797
+ ;; A caller's accept wins. A declared request type replaces each JSON
798
+ ;; content-type, the SDK default, and leaves any other the caller set.
799
+ (defn media-headers [point ^java.util.Map headers]
800
+ (let [accept (accept-of point)]
801
+ (when (and accept (not (media-header? headers "accept")))
802
+ (.put headers "accept" accept)))
803
+ (let [body (when point (vs/getprop point "body"))
804
+ kind (when (vs/ismap body) (vs/getprop body "kind"))
805
+ media (when (vs/ismap body) (vs/getprop body "media"))]
806
+ (when (and (contains? #{"raw" "json"} kind) (string? media) (seq media))
807
+ (doseq [k (vec (.keySet headers))]
808
+ (when (and (string? k) (= "content-type" (str/lower-case k)) (json-media? (.get headers k)))
809
+ (.remove headers k)))
810
+ (when-not (media-header? headers "content-type")
811
+ (.put headers "content-type" media))))
812
+ headers)
813
+
814
+ ;; A byte array, an InputStream or a string, sent as it is. An InputStream is
815
+ ;; read here, once, before the first attempt, so that a retry sends the same
816
+ ;; bytes again.
817
+ (defn raw-body [reqdata]
818
+ (let [body (when (vs/ismap reqdata) (vs/getprop reqdata RAW-BODY))]
819
+ (if (instance? java.io.InputStream body) (.readAllBytes ^java.io.InputStream body) body)))
820
+
821
+ ;; The form style of a cookie parameter: a list repeats the name, a map sends
822
+ ;; its own keys, and every value is percent-encoded.
823
+ (defn- cookie-pair [wire v]
824
+ (let [esc (fn [x] (vs/escurl (vs/stringify x)))]
825
+ (str/join "; "
826
+ (cond
827
+ (vs/islist v) (map (fn [item] (str wire "=" (esc item))) v)
828
+ (vs/ismap v) (map (fn [k] (str (vs/escurl k) "=" (esc (vs/getprop v k)))) (vs/keysof v))
829
+ :else [(str wire "=" (esc v))]))))
830
+
831
+ ;; The caller's cookie pieces with the named cookies removed: a cookie is one
832
+ ;; ;-delimited piece, whatever its value holds.
833
+ (defn- cookie-keep [header names]
834
+ (vec (for [piece (str/split header #";")
835
+ :let [cookie (str/trim piece)
836
+ name (str/trim (first (str/split cookie #"=" 2)))]
837
+ :when (and (not= "" cookie) (not (contains? names name)))]
838
+ cookie)))
839
+
701
840
  (defn u-prepare-headers [ctx]
702
841
  (let [options (client-options-map (oget ctx :client))
703
842
  headers (vs/getprop options "headers")
704
- out (if (nil? headers) (vs/jm)
705
- (let [o (vs/clone headers)] (if (vs/ismap o) o (vs/jm))))
706
- point (oget ctx :point)
707
- args (when point (vs/getprop point "args"))
708
- aheader (let [h (when (vs/ismap args) (vs/getprop args "header"))]
709
- (if (vs/islist h) h (vs/jt)))]
710
- ;; A header parameter travels as a header, under the name the definition
711
- ;; gives it, and only from this call's own arguments. It replaces a default
712
- ;; of the same name, whatever its case.
713
- (doseq [hd (vec aheader)]
714
- (let [name (when (vs/ismap hd) (vs/getprop hd "name"))]
715
- (when (and (string? name) (seq name))
716
- (let [orig (vs/getprop hd "orig")
717
- wire (if (and (string? orig) (seq orig)) orig name)
718
- v (vs/getprop (oget ctx :reqmatch) name)
719
- v (if (nil? v) (vs/getprop (oget ctx :reqdata) name) v)]
720
- (when (some? v)
721
- (let [key (str/lower-case wire)]
722
- (doseq [k (vec (.keySet ^java.util.Map out))]
723
- (when (and (string? k) (= key (str/lower-case k)))
724
- (.remove ^java.util.Map out k)))
725
- (.put ^java.util.Map out key (vs/stringify v))))))))
843
+ out (media-headers (oget ctx :point)
844
+ (if (nil? headers) (vs/jm)
845
+ (let [o (vs/clone headers)] (if (vs/ismap o) o (vs/jm)))))]
846
+ ;; A header argument replaces a default of the same name, whatever its case.
847
+ (doseq [[_ wire v] (call-args ctx "header")]
848
+ (when (some? v)
849
+ (let [key (str/lower-case wire)]
850
+ (doseq [k (vec (.keySet ^java.util.Map out))]
851
+ (when (and (string? k) (= key (str/lower-case k)))
852
+ (.remove ^java.util.Map out k)))
853
+ (.put ^java.util.Map out key (vs/stringify v)))))
854
+ ;; A cookie argument travels in the cookie header, form serialized and
855
+ ;; percent-encoded, replacing a cookie of the same name among those the
856
+ ;; caller's headers already send.
857
+ (let [sent (vec (for [[_ wire v] (call-args ctx "cookie") :when (some? v)] [wire v]))]
858
+ (when (seq sent)
859
+ (let [names (set (mapcat (fn [[wire v]] (if (vs/ismap v) (map vs/escurl (vs/keysof v)) [wire])) sent))
860
+ given (vec (filter (fn [k] (and (string? k) (= "cookie" (str/lower-case k))))
861
+ (vec (.keySet ^java.util.Map out))))
862
+ kept (vec (for [k given
863
+ :let [v (.get ^java.util.Map out k)]
864
+ :when (string? v)
865
+ cookie (cookie-keep v names)]
866
+ cookie))
867
+ pairs (vec (for [[wire v] sent
868
+ :let [pair (cookie-pair wire v)]
869
+ :when (not= "" pair)]
870
+ pair))]
871
+ (doseq [k given] (.remove ^java.util.Map out k))
872
+ (when (seq (concat kept pairs))
873
+ (.put ^java.util.Map out "cookie" (str/join "; " (concat kept pairs)))))))
726
874
  out))
727
875
 
728
- (defn u-param [ctx paramdef]
729
- (let [point (oget ctx :point)
730
- spec (oget ctx :spec)
731
- match (oget ctx :match)
876
+ ;; The name a point gives a parameter in the call, if it renames it.
877
+ (defn- param-alias [point key]
878
+ (let [am (when point (to-map (vs/getprop point "alias")))
879
+ ak (when am (vs/getprop am key))]
880
+ (if (string? ak) ak "")))
881
+
882
+ ;; The value the call or its entity gives a point's parameter, under its name
883
+ ;; or the point's alias for it.
884
+ (defn param-value [ctx point key]
885
+ (let [akey (param-alias point key)
732
886
  reqmatch (oget ctx :reqmatch)
733
- data (oget ctx :data)
734
887
  reqdata (oget ctx :reqdata)
735
- pt (vs/typify paramdef)
736
- key (if (pos? (bit-and vs/T_string pt)) paramdef
737
- (let [k (vs/getprop paramdef "name")] (if (string? k) k "")))
738
- akey (let [am (when point (to-map (vs/getprop point "alias")))]
739
- (if am (let [ak (vs/getprop am key)] (if (string? ak) ak "")) ""))
888
+ data (oget ctx :data)
740
889
  v (atom (vs/getprop reqmatch key))]
741
- (when (nil? @v) (reset! v (vs/getprop match key)))
742
- (when (and (nil? @v) (seq akey))
743
- (when spec (.put ^java.util.Map (oget spec :alias) akey key))
744
- (reset! v (vs/getprop reqmatch akey)))
890
+ (when (nil? @v) (reset! v (vs/getprop (oget ctx :match) key)))
891
+ (when (and (nil? @v) (seq akey)) (reset! v (vs/getprop reqmatch akey)))
745
892
  (when (nil? @v) (reset! v (vs/getprop reqdata key)))
746
893
  (when (nil? @v) (reset! v (vs/getprop data key)))
747
894
  (when (and (nil? @v) (seq akey))
@@ -749,6 +896,19 @@
749
896
  (when (nil? @v) (reset! v (vs/getprop data akey))))
750
897
  @v))
751
898
 
899
+ (defn u-param [ctx paramdef]
900
+ (let [point (oget ctx :point)
901
+ spec (oget ctx :spec)
902
+ pt (vs/typify paramdef)
903
+ key (if (pos? (bit-and vs/T_string pt)) paramdef
904
+ (let [k (vs/getprop paramdef "name")] (if (string? k) k "")))
905
+ akey (param-alias point key)]
906
+ (when (and spec (seq akey)
907
+ (nil? (vs/getprop (oget ctx :reqmatch) key))
908
+ (nil? (vs/getprop (oget ctx :match) key)))
909
+ (.put ^java.util.Map (oget spec :alias) akey key))
910
+ (param-value ctx point key)))
911
+
752
912
  (defn u-prepare-params [ctx]
753
913
  (let [point (oget ctx :point)
754
914
  params (let [args (when point (vs/getprop point "args"))
@@ -782,9 +942,22 @@
782
942
  aheader (let [args (when point (vs/getprop point "args"))
783
943
  h (when (vs/ismap args) (vs/getprop args "header"))]
784
944
  (if (vs/islist h) h (vs/jt)))
785
- pset (into (into (into #{} (vec params))
786
- (keep (fn [pd] (when (vs/ismap pd) (vs/getprop pd "name"))) (vec aparams)))
787
- (keep (fn [hd] (when (vs/ismap hd) (vs/getprop hd "name"))) (vec aheader)))
945
+ ;; A cookie parameter travels in the cookie header, which u-prepare-headers fills.
946
+ acookie (let [args (when point (vs/getprop point "args"))
947
+ c (when (vs/ismap args) (vs/getprop args "cookie"))]
948
+ (if (vs/islist c) c (vs/jt)))
949
+ ;; A header or cookie name leaves the query unless a query parameter
950
+ ;; shares it: then both are sent.
951
+ declared (let [args (when point (vs/getprop point "args"))
952
+ q (when (vs/ismap args) (vs/getprop args "query"))]
953
+ (into #{} (keep (fn [qd] (when (vs/ismap qd) (vs/getprop qd "name")))
954
+ (vec (if (vs/islist q) q (vs/jt))))))
955
+ routed (fn [d] (when (vs/ismap d)
956
+ (let [n (vs/getprop d "name")] (when-not (contains? declared n) n))))
957
+ pset (into (into (into (into #{} (vec params))
958
+ (keep (fn [pd] (when (vs/ismap pd) (vs/getprop pd "name"))) (vec aparams)))
959
+ (keep routed (vec aheader)))
960
+ (keep routed (vec acookie)))
788
961
  ;; A query parameter travels under the name the definition gives it,
789
962
  ;; its orig, which the model may have renamed for the caller.
790
963
  aquery (let [args (when point (vs/getprop point "args"))
@@ -801,6 +974,10 @@
801
974
  (let [k (vs/getprop item 0) v (vs/getprop item 1)]
802
975
  (when (and (some? v) (string? k) (not= "$action" k) (not (contains? pset k)))
803
976
  (.put ^java.util.Map out (get wire k k) v))))
977
+ ;; A create or update passes its query arguments in its data.
978
+ (doseq [[name orig v] (call-args ctx "query")]
979
+ (when (and (some? v) (not (contains? pset name)))
980
+ (.put ^java.util.Map out orig v)))
804
981
  out))
805
982
 
806
983
  (defn- omit-keys [reqdata names]
@@ -816,19 +993,32 @@
816
993
  ;; so the body is a copy without it. The caller's map is left untouched.
817
994
  (defn- strip-action [reqdata] (omit-keys reqdata ["$action"]))
818
995
 
819
- ;; A header argument travels as a header, which u-prepare-headers sends, so the
820
- ;; body is built from the request data without it.
821
- (defn- header-arg-names [point]
822
- (let [args (when point (vs/getprop point "args"))
823
- h (when (vs/ismap args) (vs/getprop args "header"))]
824
- (if (vs/islist h)
825
- (filterv #(and (string? %) (seq %))
826
- (map #(when (vs/ismap %) (vs/getprop % "name")) (vec h)))
827
- [])))
996
+ (defn- field-arg? [ctx name]
997
+ (let [point (oget ctx :point)
998
+ args (when point (vs/getprop point "args"))]
999
+ (boolean
1000
+ (some (fn [kind]
1001
+ (let [defs (when (vs/ismap args) (vs/getprop args kind))]
1002
+ (when (vs/islist defs)
1003
+ (some (fn [ad]
1004
+ (and (vs/ismap ad)
1005
+ (= name (vs/getprop ad "name"))
1006
+ (true? (vs/getprop ad "field"))))
1007
+ (vec defs)))))
1008
+ ["header" "cookie" "query"]))))
1009
+
1010
+ ;; A header, cookie or query argument travels where u-prepare-headers or
1011
+ ;; u-prepare-query sends it, so the body is built from the request data
1012
+ ;; without it, unless the point marks it as a field the body keeps.
1013
+ (defn- routed-arg-names [ctx]
1014
+ (->> (concat (call-args ctx "header") (call-args ctx "cookie") (call-args ctx "query"))
1015
+ (map first)
1016
+ (remove (partial field-arg? ctx))
1017
+ vec))
828
1018
 
829
1019
  (defn u-transform-request [ctx]
830
1020
  (let [spec (oget ctx :spec) point (oget ctx :point)
831
- data (omit-keys (oget ctx :reqdata) (header-arg-names point))]
1021
+ data (omit-keys (oget ctx :reqdata) (routed-arg-names ctx))]
832
1022
  (when spec (oset! spec :step "reqform"))
833
1023
  (let [transform (to-map (vs/getprop point "transform"))]
834
1024
  (strip-action
@@ -838,7 +1028,10 @@
838
1028
  (vs/transform (vs/jm "reqdata" data) reqform))))))))
839
1029
 
840
1030
  (defn u-prepare-body [ctx]
841
- (if (= "data" (op-input (oget ctx :op))) (ucall ctx :transform-request) nil))
1031
+ (cond
1032
+ (not= "data" (op-input (oget ctx :op))) nil
1033
+ (raw-request? (oget ctx :point)) (raw-body (oget ctx :reqdata))
1034
+ :else (ucall ctx :transform-request)))
842
1035
 
843
1036
  ;; ---- graphql ---------------------------------------------------------------
844
1037
  ;;
@@ -964,6 +1157,17 @@
964
1157
  ;; feature/secrets) go on resolving exactly as before.
965
1158
  (load "prepare_auth")
966
1159
 
1160
+ ;; The path parameters of a point that neither the call nor the entity gives a
1161
+ ;; value for, looked up as u-param looks them up.
1162
+ (defn- unfilled-params [ctx point]
1163
+ (let [parts (vs/getprop point "parts")]
1164
+ (if (vs/islist parts)
1165
+ (vec (keep (fn [part]
1166
+ (when-let [[_ pname] (and (string? part) (re-matches #"\{([^{}/]+)\}" part))]
1167
+ (when (nil? (param-value ctx point pname)) pname)))
1168
+ (vec parts)))
1169
+ [])))
1170
+
967
1171
  (defn u-make-point [ctx]
968
1172
  (let [preset (out-get ctx "point")]
969
1173
  (if (some? preset)
@@ -972,11 +1176,12 @@
972
1176
  (do (oset! ctx :point preset) [(oget ctx :point) nil]))
973
1177
  (let [op (oget ctx :op)
974
1178
  options (oget ctx :options)
975
- allow-op (or (vs/getpath options "allow.op") "")]
1179
+ allow-op (vs/getpath options "allow.op")]
976
1180
  (cond
977
- (not (str/includes? allow-op (op-name op)))
1181
+ (not (allowed? allow-op (op-name op)))
978
1182
  [nil (ctx-error ctx "point_op_allow"
979
- (str "Operation \"" (op-name op) "\" not allowed by SDK option allow.op value: \"" allow-op "\""))]
1183
+ (str "Operation \"" (op-name op) "\" not allowed by SDK option allow.op value: \""
1184
+ (if (string? allow-op) allow-op "") "\""))]
980
1185
  (zero? (vs/size (op-points op)))
981
1186
  [nil (ctx-error ctx "point_no_points"
982
1187
  (str "Operation \"" (op-name op) "\" has no endpoint definitions."))]
@@ -1044,14 +1249,34 @@
1044
1249
  (str "Operation \"" (op-name op) "\" action \"" (vs/stringify req-action) "\" is not valid."))]
1045
1250
 
1046
1251
  :else
1047
- (let [chosen (or matched (own-point (vec (op-points op))))]
1048
- (if (and reqselector req-action chosen)
1252
+ (let [all (vec (op-points op))
1253
+ ;; A call without an action falls back to a point without
1254
+ ;; one, as generation does, and only to a route the call
1255
+ ;; can fill.
1256
+ plain (filterv #(nil? (vs/getprop (to-map (vs/getprop % "select")) "$action")) all)
1257
+ fillable (filterv #(empty? (unfilled-params ctx %)) plain)
1258
+ chosen (or matched (when (seq fillable) (own-point fillable)))]
1259
+ (cond
1260
+ (and (nil? matched) (empty? plain))
1261
+ [nil (ctx-error ctx "point_action_required"
1262
+ (str "Operation \"" (op-name op)
1263
+ "\" has only action endpoints; pass $action to choose one."))]
1264
+
1265
+ (nil? chosen)
1266
+ [nil (ctx-error ctx "point_no_match"
1267
+ (str "Operation \"" (op-name op)
1268
+ "\" has no endpoint whose path parameters are all given (missing: "
1269
+ (str/join ", " (unfilled-params ctx (own-point plain))) ")."))]
1270
+
1271
+ (and reqselector req-action)
1049
1272
  (let [point-select (to-map (vs/getprop chosen "select"))
1050
1273
  point-action (vs/getprop point-select "$action")]
1051
1274
  (if (not= req-action point-action)
1052
1275
  [nil (ctx-error ctx "point_action_invalid"
1053
1276
  (str "Operation \"" (op-name op) "\" action \"" (vs/stringify req-action) "\" is not valid."))]
1054
1277
  (do (oset! ctx :point chosen) [(oget ctx :point) nil])))
1278
+
1279
+ :else
1055
1280
  (do (oset! ctx :point chosen) [(oget ctx :point) nil]))))))))))
1056
1281
 
1057
1282
  (defn u-make-spec [ctx]
@@ -1071,10 +1296,11 @@
1071
1296
  spec (make-spec (vs/jm "base" base "prefix" prefix "parts" parts "suffix" suffix "step" "start"))]
1072
1297
  (oset! ctx :spec spec)
1073
1298
  (oset! spec :method (ucall ctx :prepare-method))
1074
- (let [allow-method (or (vs/getpath options "allow.method") "")]
1075
- (if (not (str/includes? allow-method (oget spec :method)))
1299
+ (let [allow-method (vs/getpath options "allow.method")]
1300
+ (if (not (allowed? allow-method (oget spec :method)))
1076
1301
  [nil (ctx-error ctx "spec_method_allow"
1077
- (str "Method \"" (oget spec :method) "\" not allowed by SDK option allow.method value: \"" allow-method "\""))]
1302
+ (str "Method \"" (oget spec :method) "\" not allowed by SDK option allow.method value: \""
1303
+ (if (string? allow-method) allow-method "") "\""))]
1078
1304
  (do
1079
1305
  (oset! spec :params (ucall ctx :prepare-params))
1080
1306
  (oset! spec :query (ucall ctx :prepare-query))
@@ -1097,8 +1323,17 @@
1097
1323
  (oset! spec :body (ucall ctx :prepare-body))
1098
1324
  (oset! spec :path (ucall ctx :prepare-path))))
1099
1325
  (when-let [ex (oget (oget ctx :ctrl) :explain)] (.put ^java.util.Map ex "spec" spec))
1100
- (let [[s err] (ucall ctx :prepare-auth)]
1101
- (if err [nil err] (do (oset! ctx :spec s) [s nil])))))))))
1326
+ ;; Whatever prepare-auth sets in the query, under whichever name,
1327
+ ;; is the credential; a key it leaves as it was is the caller's.
1328
+ (let [query (java.util.LinkedHashMap. ^java.util.Map (or (oget spec :query) (vs/jm)))
1329
+ [s err] (ucall ctx :prepare-auth)]
1330
+ (if err [nil err]
1331
+ (do
1332
+ (oset! s :authquery
1333
+ (vec (for [[k v] (or (oget s :query) (vs/jm))
1334
+ :when (or (not (.containsKey query k)) (not= (.get query k) v))]
1335
+ k)))
1336
+ (oset! ctx :spec s) [s nil])))))))))
1102
1337
 
1103
1338
  (defn u-make-url [ctx]
1104
1339
  (let [spec (oget ctx :spec) result (oget ctx :result)]
@@ -1108,6 +1343,8 @@
1108
1343
  :else
1109
1344
  (let [url (atom (vs/join (vs/jt (oget spec :base) (oget spec :prefix) (oget spec :path) (oget spec :suffix)) "/" true))
1110
1345
  resmatch (vs/jm)
1346
+ ;; Sent with the request, never recorded as the entity's match.
1347
+ authquery (set (oget spec :authquery []))
1111
1348
  point (oget ctx :point)
1112
1349
  orig (when point (vs/getprop point "orig"))]
1113
1350
  ;; A route the definition ends with a slash keeps it: a server such as a
@@ -1123,16 +1360,26 @@
1123
1360
  encoded (vs/escurl val-str)]
1124
1361
  (reset! url (str/replace @url placeholder encoded))
1125
1362
  (.put ^java.util.Map resmatch k v)))))
1126
- (let [qsep (atom "?")]
1127
- (doseq [item (or (vs/items (oget spec :query)) [])]
1128
- (let [k (vs/getprop item 0) v (vs/getprop item 1)]
1129
- (when (and (some? v) (string? k))
1130
- (let [val-str (if (string? v) v (vs/stringify v))]
1131
- (reset! url (str @url @qsep (vs/escurl k) "=" (vs/escurl val-str)))
1132
- (reset! qsep "&")
1133
- (.put ^java.util.Map resmatch k v))))))
1134
- (oset! result :resmatch resmatch)
1135
- [@url nil]))))
1363
+ ;; A placeholder left in the route would send the request to the wrong
1364
+ ;; route. The base's own placeholders are server variables, resolved
1365
+ ;; with the options.
1366
+ (if-let [unfilled (let [base (str/replace (str (or (oget spec :base) "")) #"/+$" "")]
1367
+ (seq (re-seq #"\{[^{}/]+\}"
1368
+ (if (str/starts-with? @url base) (subs @url (count base)) @url))))]
1369
+ ["" (ctx-error ctx "url_param_missing"
1370
+ (str "URL path has no value for " (str/join ", " unfilled) "."))]
1371
+ (do
1372
+ (let [qsep (atom "?")]
1373
+ (doseq [item (or (vs/items (oget spec :query)) [])]
1374
+ (let [k (vs/getprop item 0) v (vs/getprop item 1)]
1375
+ (when (and (some? v) (string? k))
1376
+ (let [val-str (if (string? v) v (vs/stringify v))]
1377
+ (reset! url (str @url @qsep (vs/escurl k) "=" (vs/escurl val-str)))
1378
+ (reset! qsep "&")
1379
+ (when-not (contains? authquery k)
1380
+ (.put ^java.util.Map resmatch k v)))))))
1381
+ (oset! result :resmatch resmatch)
1382
+ [@url nil]))))))
1136
1383
 
1137
1384
  (defn u-make-fetch-def [ctx]
1138
1385
  (let [spec (oget ctx :spec)]
@@ -1147,7 +1394,7 @@
1147
1394
  (let [fetchdef (vs/jm "url" url "method" (oget spec :method) "headers" (oget spec :headers))
1148
1395
  body (oget spec :body)]
1149
1396
  (when (some? body)
1150
- (.put ^java.util.Map fetchdef "body" (if (vs/ismap body) (vs/jsonify body) body)))
1397
+ (.put ^java.util.Map fetchdef "body" (request-body (oget ctx :point) body)))
1151
1398
  [fetchdef nil]))))))))
1152
1399
 
1153
1400
  (defn u-make-request [ctx]
@@ -1195,10 +1442,47 @@
1195
1442
  (oset! result :headers (if (and response (vs/ismap (oget response :headers))) (oget response :headers) (vs/jm))))
1196
1443
  result))
1197
1444
 
1445
+ (def ^:private preview-length 160)
1446
+
1447
+ (defn- header-value [headers name]
1448
+ (or (some (fn [item]
1449
+ (when (= name (str/lower-case (str (vs/getprop item 0)))) (str (vs/getprop item 1))))
1450
+ (or (when (vs/ismap headers) (vs/items headers)) []))
1451
+ ""))
1452
+
1453
+ ;; Cleaned whole: a secret the bound would split could leave its prefix.
1454
+ (defn- body-preview [ctx text]
1455
+ (let [^String flat (str (ucall ctx :clean (str/trim (str/replace (str text) #"\s+" " "))))]
1456
+ (if (> (.codePointCount flat 0 (count flat)) preview-length)
1457
+ (str (subs flat 0 (.offsetByCodePoints flat 0 (int preview-length))) "...")
1458
+ flat)))
1459
+
1460
+ ;; A body that is not JSON. An HTTP failure keeps its own error, with the
1461
+ ;; response described; otherwise the code tells a wrong content type from
1462
+ ;; malformed JSON.
1463
+ (defn unreadable-body [ctx status headers text sent failed]
1464
+ (let [ctype (header-value headers "content-type")
1465
+ ua (str (ucall ctx :clean (header-value sent "user-agent")))
1466
+ detail (str "HTTP " status ", content-type " (if (= "" ctype) "none" ctype)
1467
+ ", user-agent " (if (= "" ua) "transport default" ua)
1468
+ (if (nil? text) "" (str ", body: " (body-preview ctx text))))]
1469
+ (cond
1470
+ (sdk-error? failed) (assoc failed :msg (str (:msg failed) " (" detail ")"))
1471
+ (some? failed) (ctx-error ctx (or (err-code failed) "") (str (err-msg failed) " (" detail ")"))
1472
+ (or (= "" ctype) (str/includes? (str/lower-case ctype) "json"))
1473
+ (ctx-error ctx "response_json_invalid" (str "response: body is not valid JSON (" detail ")"))
1474
+ :else
1475
+ (ctx-error ctx "response_content_type" (str "response: expected JSON, got " ctype " (" detail ")")))))
1476
+
1198
1477
  (defn u-result-body [ctx]
1199
1478
  (let [response (oget ctx :response) result (oget ctx :result)]
1200
1479
  (when (and result response (oget response :json) (oget response :body))
1201
1480
  (oset! result :body ((oget response :json))))
1481
+ (when (and result response (oget response :unreadable))
1482
+ (let [spec (oget ctx :spec)]
1483
+ (oset! result :err (unreadable-body ctx (oget result :status) (oget result :headers)
1484
+ (oget response :body) (when spec (oget spec :headers))
1485
+ (oget result :err)))))
1202
1486
  result))
1203
1487
 
1204
1488
  (defn u-transform-response [ctx]
@@ -1329,16 +1613,20 @@
1329
1613
 
1330
1614
  ;; A feature's name is not a field name: only the sensitive names inside its
1331
1615
  ;; settings count, so `secrets` does not make every setting a secret. Entity
1332
- ;; blocks hold entity settings and seeded records, never a credential.
1616
+ ;; blocks hold entity settings and seeded records, never a credential, and
1617
+ ;; rbac's rules are keyed by entity and operation names.
1333
1618
  (defn- clean-add-options [ctx opts]
1334
- (let [noent #(omit-keys % ["entity"])
1619
+ (let [plain (fn [block fname]
1620
+ (omit-keys block (if (= "rbac" fname) ["entity" "rules"] ["entity"])))
1335
1621
  top (dissoc (into {} opts) "feature" "entity")
1336
1622
  feature (vs/getprop opts "feature")]
1337
- (u-clean-add-sensitive ctx (cond-> top (contains? top "test") (update "test" noent)))
1338
- (doseq [fopts (cond (vs/ismap feature) (map #(vs/getprop feature %) (vs/keysof feature))
1339
- (vs/islist feature) (vec feature)
1340
- :else [feature])]
1341
- (u-clean-add-sensitive ctx (noent fopts)))))
1623
+ (u-clean-add-sensitive ctx (cond-> top (contains? top "test") (update "test" plain nil)))
1624
+ (doseq [[fname fopts] (cond (vs/ismap feature)
1625
+ (map #(vector % (vs/getprop feature %)) (vs/keysof feature))
1626
+ (vs/islist feature)
1627
+ (map #(vector (when (vs/ismap %) (vs/getprop % "name")) %) feature)
1628
+ :else [[nil feature]])]
1629
+ (u-clean-add-sensitive ctx (plain fopts fname)))))
1342
1630
 
1343
1631
  (defn u-make-options [ctx]
1344
1632
  (let [options (or (oget ctx :options) (vs/jm))
@@ -1488,39 +1776,55 @@
1488
1776
  ;; Default transport + fetcher gate.
1489
1777
  ;; ---------------------------------------------------------------------------
1490
1778
 
1779
+ ;; java.net.http rather than HttpURLConnection, which refuses PATCH. HTTP/1.1,
1780
+ ;; as the vendored sekreto client: over cleartext, HTTP/2 opens with an h2c
1781
+ ;; upgrade that holds the body back, and some servers refuse that request.
1782
+ (def ^:private http-client
1783
+ (delay (-> (HttpClient/newBuilder)
1784
+ (.version HttpClient$Version/HTTP_1_1)
1785
+ (.followRedirects HttpClient$Redirect/NORMAL)
1786
+ (.build))))
1787
+
1788
+ (defn- body-publisher [body]
1789
+ (cond
1790
+ (string? body) (HttpRequest$BodyPublishers/ofString body)
1791
+ (bytes? body) (HttpRequest$BodyPublishers/ofByteArray body)
1792
+ (instance? java.io.InputStream body)
1793
+ (HttpRequest$BodyPublishers/ofByteArray (.readAllBytes ^java.io.InputStream body))
1794
+ :else (HttpRequest$BodyPublishers/noBody)))
1795
+
1491
1796
  (defn default-http-fetch [fullurl fetchdef]
1492
1797
  (let [method-str (or (vs/getprop fetchdef "method") "GET")
1493
- body-str (vs/getprop fetchdef "body")
1494
1798
  headers (or (vs/getprop fetchdef "headers") (vs/jm))]
1495
1799
  (try
1496
- (let [url (java.net.URL. fullurl)
1497
- conn (.openConnection url)]
1498
- (.setRequestMethod ^java.net.HttpURLConnection conn (str/upper-case method-str))
1499
- (let [has-ua (atom false)]
1500
- (doseq [item (or (vs/items headers) [])]
1501
- (let [k (vs/getprop item 0) v (vs/getprop item 1)]
1502
- (when (string? v)
1503
- (when (= (str/lower-case (str k)) "user-agent") (reset! has-ua true))
1504
- (.setRequestProperty ^java.net.HttpURLConnection conn (str k) v))))
1505
- (when-not @has-ua
1506
- (.setRequestProperty ^java.net.HttpURLConnection conn "User-Agent"
1507
- (str "Mozilla/5.0 (compatible; " SDK-NAME "SDK/1.0)"))))
1508
- (when (string? body-str)
1509
- (.setDoOutput ^java.net.HttpURLConnection conn true)
1510
- (with-open [os (.getOutputStream ^java.net.HttpURLConnection conn)]
1511
- (.write os (.getBytes ^String body-str "UTF-8"))))
1512
- (let [code (.getResponseCode ^java.net.HttpURLConnection conn)
1513
- is (try (.getInputStream ^java.net.HttpURLConnection conn) (catch Exception _ (.getErrorStream ^java.net.HttpURLConnection conn)))
1514
- body (when is (slurp is))
1800
+ (let [builder (HttpRequest/newBuilder (URI/create fullurl))
1801
+ has-ua (atom false)]
1802
+ (.method builder (str/upper-case method-str) (body-publisher (vs/getprop fetchdef "body")))
1803
+ (doseq [item (or (vs/items headers) [])]
1804
+ (let [k (vs/getprop item 0) v (vs/getprop item 1)]
1805
+ (when (string? v)
1806
+ (when (= (str/lower-case (str k)) "user-agent") (reset! has-ua true))
1807
+ (.setHeader builder (str k) v))))
1808
+ ;; The default User-Agent is recorded with the headers the request sent.
1809
+ (when-not @has-ua
1810
+ (let [ua (str "Mozilla/5.0 (compatible; " SDK-NAME "SDK/1.0)")]
1811
+ (.setHeader builder "User-Agent" ua)
1812
+ (vs/setprop headers "user-agent" ua)))
1813
+ (let [resp (.send ^HttpClient @http-client (.build builder) (HttpResponse$BodyHandlers/ofByteArray))
1814
+ body (String. ^bytes (.body resp) "UTF-8")
1515
1815
  resp-headers (vs/jm)]
1516
- (doseq [[k vlist] (.getHeaderFields ^java.net.HttpURLConnection conn)]
1517
- (when k (.put ^java.util.Map resp-headers (str/lower-case k) (str/join "," vlist))))
1518
- (let [json-body (try (when (and body (seq body)) (json-parse body)) (catch Exception _ nil))]
1519
- [(vs/jm "status" code "statusText" "" "headers" resp-headers
1520
- "json" (fn [] json-body) "body" body) nil])))
1816
+ (doseq [[k vlist] (.map (.headers resp))]
1817
+ (.put ^java.util.Map resp-headers (str/lower-case k) (str/join "," vlist)))
1818
+ (let [[json-body unreadable] (if (str/blank? body)
1819
+ [nil false]
1820
+ (try [(json-parse body) false] (catch Exception _ [nil true])))]
1821
+ [(vs/jm "status" (.statusCode resp) "statusText" "" "headers" resp-headers
1822
+ "json" (fn [] json-body) "body" body "unreadable" unreadable) nil])))
1823
+ ;; A request that got no answer fails the operation.
1521
1824
  (catch Throwable e
1522
- [(vs/jm "status" 0 "statusText" (str (.getName (class e)) ": " (.getMessage e))
1523
- "headers" (vs/jm) "json" (fn [] nil) "body" nil) nil]))))
1825
+ (when (instance? InterruptedException e) (.interrupt (Thread/currentThread)))
1826
+ [nil (make-error-obj "fetch_transport"
1827
+ (str (.getName (class e)) (when-let [m (.getMessage e)] (str ": " m))))]))))
1524
1828
 
1525
1829
  (defn u-fetcher [ctx fullurl fetchdef]
1526
1830
  (let [client (oget ctx :client)]