@voxgig/sdkgen 0.35.2 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/cmp/Main.js +0 -12
  3. package/dist/cmp/Main.js.map +1 -1
  4. package/dist/cmp/Readme.js +5 -5
  5. package/dist/cmp/Readme.js.map +1 -1
  6. package/dist/cmp/ReadmeEntity.js +74 -24
  7. package/dist/cmp/ReadmeEntity.js.map +1 -1
  8. package/dist/cmp/ReadmeExplanation.d.ts +2 -0
  9. package/dist/cmp/ReadmeExplanation.js +308 -0
  10. package/dist/cmp/ReadmeExplanation.js.map +1 -0
  11. package/dist/cmp/ReadmeHowto.d.ts +2 -0
  12. package/dist/cmp/ReadmeHowto.js +18 -0
  13. package/dist/cmp/ReadmeHowto.js.map +1 -0
  14. package/dist/cmp/ReadmeIntro.js +8 -23
  15. package/dist/cmp/ReadmeIntro.js.map +1 -1
  16. package/dist/cmp/ReadmeModel.js +55 -91
  17. package/dist/cmp/ReadmeModel.js.map +1 -1
  18. package/dist/cmp/ReadmeOptions.js +35 -11
  19. package/dist/cmp/ReadmeOptions.js.map +1 -1
  20. package/dist/cmp/ReadmeQuick.js +4 -1
  21. package/dist/cmp/ReadmeQuick.js.map +1 -1
  22. package/dist/cmp/ReadmeRef.js +1042 -40
  23. package/dist/cmp/ReadmeRef.js.map +1 -1
  24. package/dist/cmp/ReadmeTop.d.ts +2 -0
  25. package/dist/cmp/ReadmeTop.js +171 -0
  26. package/dist/cmp/ReadmeTop.js.map +1 -0
  27. package/dist/sdkgen.d.ts +7 -1
  28. package/dist/sdkgen.js +13 -1
  29. package/dist/sdkgen.js.map +1 -1
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +2 -2
  32. package/project/.sdk/model/feature/feature-index.jsonic +5 -0
  33. package/project/.sdk/model/feature/log.jsonic +5 -1
  34. package/project/.sdk/model/feature/test.jsonic +1 -1
  35. package/project/.sdk/model/target/lua.jsonic +23 -0
  36. package/project/.sdk/model/target/php.jsonic +22 -0
  37. package/project/.sdk/model/target/py.jsonic +23 -0
  38. package/project/.sdk/model/target/rb.jsonic +23 -0
  39. package/project/.sdk/src/cmp/go/Config_go.ts +6 -2
  40. package/project/.sdk/src/cmp/go/Main_go.ts +2 -6
  41. package/project/.sdk/src/cmp/go/ReadmeExplanation_go.ts +42 -0
  42. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +112 -0
  43. package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +29 -0
  44. package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +129 -0
  45. package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +163 -0
  46. package/project/.sdk/src/cmp/go/ReadmeTopHowto_go.ts +24 -0
  47. package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +67 -0
  48. package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +40 -0
  49. package/project/.sdk/src/cmp/go/TestDirect_go.ts +46 -2
  50. package/project/.sdk/src/cmp/go/TestEntity_go.ts +360 -160
  51. package/project/.sdk/src/cmp/go/Test_go.ts +24 -1
  52. package/project/.sdk/src/cmp/js/EntityBase_js.ts +34 -0
  53. package/project/.sdk/src/cmp/js/Main_js.ts +10 -0
  54. package/project/.sdk/src/cmp/js/ReadmeExplanation_js.ts +33 -0
  55. package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +123 -0
  56. package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +152 -0
  57. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +1 -1
  58. package/project/.sdk/src/cmp/js/ReadmeTopHowto_js.ts +25 -0
  59. package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +65 -0
  60. package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +36 -0
  61. package/project/.sdk/src/cmp/js/TestDirect_js.ts +53 -5
  62. package/project/.sdk/src/cmp/js/TestEntity_js.ts +114 -20
  63. package/project/.sdk/src/cmp/js/fragment/Entity.fragment.js +7 -139
  64. package/project/.sdk/src/cmp/js/fragment/EntityBase.fragment.js +149 -0
  65. package/project/.sdk/src/cmp/js/fragment/EntityCreateOp.fragment.js +6 -10
  66. package/project/.sdk/src/cmp/js/fragment/EntityListOp.fragment.js +6 -10
  67. package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +7 -11
  68. package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +7 -11
  69. package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +7 -11
  70. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +2 -0
  71. package/project/.sdk/src/cmp/js/fragment/SdkError.fragment.js +0 -2
  72. package/project/.sdk/src/cmp/lua/Config_lua.ts +116 -0
  73. package/project/.sdk/src/cmp/lua/EntityOperation_lua.ts +44 -0
  74. package/project/.sdk/src/cmp/lua/Entity_lua.ts +62 -0
  75. package/project/.sdk/src/cmp/lua/MainEntity_lua.ts +23 -0
  76. package/project/.sdk/src/cmp/lua/Main_lua.ts +133 -0
  77. package/project/.sdk/src/cmp/lua/Package_lua.ts +80 -0
  78. package/project/.sdk/src/cmp/lua/ReadmeExplanation_lua.ts +42 -0
  79. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +100 -0
  80. package/project/.sdk/src/cmp/lua/ReadmeInstall_lua.ts +26 -0
  81. package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +129 -0
  82. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +99 -0
  83. package/project/.sdk/src/cmp/lua/ReadmeTopHowto_lua.ts +24 -0
  84. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +55 -0
  85. package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +38 -0
  86. package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +261 -0
  87. package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +485 -0
  88. package/project/.sdk/src/cmp/lua/Test_lua.ts +49 -0
  89. package/project/.sdk/src/cmp/lua/fragment/Entity.fragment.lua +147 -0
  90. package/project/.sdk/src/cmp/lua/fragment/EntityCreateOp.fragment.lua +27 -0
  91. package/project/.sdk/src/cmp/lua/fragment/EntityListOp.fragment.lua +24 -0
  92. package/project/.sdk/src/cmp/lua/fragment/EntityLoadOp.fragment.lua +30 -0
  93. package/project/.sdk/src/cmp/lua/fragment/EntityRemoveOp.fragment.lua +30 -0
  94. package/project/.sdk/src/cmp/lua/fragment/EntityUpdateOp.fragment.lua +30 -0
  95. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +256 -0
  96. package/project/.sdk/src/cmp/lua/fragment/SdkError.fragment.lua +26 -0
  97. package/project/.sdk/src/cmp/lua/tsconfig.json +15 -0
  98. package/project/.sdk/src/cmp/lua/utility_lua.ts +84 -0
  99. package/project/.sdk/src/cmp/php/Config_php.ts +111 -0
  100. package/project/.sdk/src/cmp/php/EntityOperation_php.ts +44 -0
  101. package/project/.sdk/src/cmp/php/Entity_php.ts +62 -0
  102. package/project/.sdk/src/cmp/php/MainEntity_php.ts +24 -0
  103. package/project/.sdk/src/cmp/php/Main_php.ts +135 -0
  104. package/project/.sdk/src/cmp/php/Package_php.ts +87 -0
  105. package/project/.sdk/src/cmp/php/ReadmeExplanation_php.ts +42 -0
  106. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +101 -0
  107. package/project/.sdk/src/cmp/php/ReadmeInstall_php.ts +19 -0
  108. package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +129 -0
  109. package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +100 -0
  110. package/project/.sdk/src/cmp/php/ReadmeTopHowto_php.ts +24 -0
  111. package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +56 -0
  112. package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +38 -0
  113. package/project/.sdk/src/cmp/php/TestDirect_php.ts +270 -0
  114. package/project/.sdk/src/cmp/php/TestEntity_php.ts +479 -0
  115. package/project/.sdk/src/cmp/php/Test_php.ts +56 -0
  116. package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +146 -0
  117. package/project/.sdk/src/cmp/php/fragment/EntityCreateOp.fragment.php +26 -0
  118. package/project/.sdk/src/cmp/php/fragment/EntityListOp.fragment.php +23 -0
  119. package/project/.sdk/src/cmp/php/fragment/EntityLoadOp.fragment.php +29 -0
  120. package/project/.sdk/src/cmp/php/fragment/EntityRemoveOp.fragment.php +29 -0
  121. package/project/.sdk/src/cmp/php/fragment/EntityUpdateOp.fragment.php +29 -0
  122. package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +233 -0
  123. package/project/.sdk/src/cmp/php/fragment/SdkError.fragment.php +24 -0
  124. package/project/.sdk/src/cmp/php/tsconfig.json +15 -0
  125. package/project/.sdk/src/cmp/php/utility_php.ts +85 -0
  126. package/project/.sdk/src/cmp/py/Config_py.ts +97 -0
  127. package/project/.sdk/src/cmp/py/EntityOperation_py.ts +44 -0
  128. package/project/.sdk/src/cmp/py/Entity_py.ts +62 -0
  129. package/project/.sdk/src/cmp/py/MainEntity_py.ts +22 -0
  130. package/project/.sdk/src/cmp/py/Main_py.ts +156 -0
  131. package/project/.sdk/src/cmp/py/Package_py.ts +75 -0
  132. package/project/.sdk/src/cmp/py/ReadmeExplanation_py.ts +41 -0
  133. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +98 -0
  134. package/project/.sdk/src/cmp/py/ReadmeInstall_py.ts +25 -0
  135. package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +130 -0
  136. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +100 -0
  137. package/project/.sdk/src/cmp/py/ReadmeTopHowto_py.ts +24 -0
  138. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +56 -0
  139. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +38 -0
  140. package/project/.sdk/src/cmp/py/TestDirect_py.ts +248 -0
  141. package/project/.sdk/src/cmp/py/TestEntity_py.ts +477 -0
  142. package/project/.sdk/src/cmp/py/Test_py.ts +55 -0
  143. package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +112 -0
  144. package/project/.sdk/src/cmp/py/fragment/EntityCreateOp.fragment.py +25 -0
  145. package/project/.sdk/src/cmp/py/fragment/EntityListOp.fragment.py +22 -0
  146. package/project/.sdk/src/cmp/py/fragment/EntityLoadOp.fragment.py +27 -0
  147. package/project/.sdk/src/cmp/py/fragment/EntityRemoveOp.fragment.py +27 -0
  148. package/project/.sdk/src/cmp/py/fragment/EntityUpdateOp.fragment.py +27 -0
  149. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +222 -0
  150. package/project/.sdk/src/cmp/py/fragment/SdkError.fragment.py +16 -0
  151. package/project/.sdk/src/cmp/py/tsconfig.json +15 -0
  152. package/project/.sdk/src/cmp/py/utility_py.ts +84 -0
  153. package/project/.sdk/src/cmp/rb/Config_rb.ts +105 -0
  154. package/project/.sdk/src/cmp/rb/EntityOperation_rb.ts +44 -0
  155. package/project/.sdk/src/cmp/rb/Entity_rb.ts +62 -0
  156. package/project/.sdk/src/cmp/rb/MainEntity_rb.ts +23 -0
  157. package/project/.sdk/src/cmp/rb/Main_rb.ts +130 -0
  158. package/project/.sdk/src/cmp/rb/Package_rb.ts +111 -0
  159. package/project/.sdk/src/cmp/rb/ReadmeExplanation_rb.ts +42 -0
  160. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +98 -0
  161. package/project/.sdk/src/cmp/rb/ReadmeInstall_rb.ts +31 -0
  162. package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +129 -0
  163. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +99 -0
  164. package/project/.sdk/src/cmp/rb/ReadmeTopHowto_rb.ts +24 -0
  165. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +55 -0
  166. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +38 -0
  167. package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +260 -0
  168. package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +476 -0
  169. package/project/.sdk/src/cmp/rb/Test_rb.ts +50 -0
  170. package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +116 -0
  171. package/project/.sdk/src/cmp/rb/fragment/EntityCreateOp.fragment.rb +25 -0
  172. package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +20 -0
  173. package/project/.sdk/src/cmp/rb/fragment/EntityLoadOp.fragment.rb +26 -0
  174. package/project/.sdk/src/cmp/rb/fragment/EntityRemoveOp.fragment.rb +26 -0
  175. package/project/.sdk/src/cmp/rb/fragment/EntityUpdateOp.fragment.rb +26 -0
  176. package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +203 -0
  177. package/project/.sdk/src/cmp/rb/fragment/SdkError.fragment.rb +16 -0
  178. package/project/.sdk/src/cmp/rb/tsconfig.json +15 -0
  179. package/project/.sdk/src/cmp/rb/utility_rb.ts +84 -0
  180. package/project/.sdk/src/cmp/ts/Main_ts.ts +7 -0
  181. package/project/.sdk/src/cmp/ts/ReadmeExplanation_ts.ts +34 -0
  182. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +123 -0
  183. package/project/.sdk/src/cmp/ts/ReadmeInstall_ts.ts +1 -1
  184. package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +159 -0
  185. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +69 -54
  186. package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +25 -0
  187. package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +65 -0
  188. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +36 -0
  189. package/project/.sdk/tm/go/feature/log_feature.go +133 -0
  190. package/project/.sdk/tm/go/src/feature/log/.gitkeep +0 -0
  191. package/project/.sdk/tm/go/test/runner_test.go +16 -2
  192. package/project/.sdk/tm/js/src/Context.js +142 -0
  193. package/project/.sdk/tm/js/src/Control.js +16 -0
  194. package/project/.sdk/tm/js/src/Operation.js +19 -0
  195. package/project/.sdk/tm/js/src/Point.js +24 -0
  196. package/project/.sdk/tm/js/src/README.md +1 -0
  197. package/project/.sdk/tm/js/src/Response.js +19 -0
  198. package/project/.sdk/tm/js/src/Result.js +21 -0
  199. package/project/.sdk/tm/js/src/Spec.js +26 -0
  200. package/project/.sdk/tm/js/src/feature/README.md +1 -0
  201. package/project/.sdk/tm/js/src/feature/base/BaseFeature.js +45 -0
  202. package/project/.sdk/tm/js/src/feature/log/LogFeature.js +46 -47
  203. package/project/.sdk/tm/js/src/feature/test/TestFeature.js +207 -0
  204. package/project/.sdk/tm/js/src/types.js +22 -0
  205. package/project/.sdk/tm/js/src/utility/CleanUtility.js +31 -0
  206. package/project/.sdk/tm/js/src/utility/DoneUtility.js +11 -4
  207. package/project/.sdk/tm/js/src/utility/FeatureAddUtility.js +42 -0
  208. package/project/.sdk/tm/js/src/utility/FeatureHookUtility.js +25 -0
  209. package/project/.sdk/tm/js/src/utility/FeatureInitUtility.js +11 -0
  210. package/project/.sdk/tm/js/src/utility/FetcherUtility.js +28 -0
  211. package/project/.sdk/tm/js/src/utility/MakeContextUtility.js +11 -0
  212. package/project/.sdk/tm/js/src/utility/MakeErrorUtility.js +55 -0
  213. package/project/.sdk/tm/js/src/utility/MakeFetchDefUtility.js +44 -0
  214. package/project/.sdk/tm/js/src/utility/MakeOptionsUtility.js +93 -0
  215. package/project/.sdk/tm/js/src/utility/MakePointUtility.js +77 -0
  216. package/project/.sdk/tm/js/src/utility/MakeRequestUtility.js +63 -0
  217. package/project/.sdk/tm/js/src/utility/MakeResponseUtility.js +55 -0
  218. package/project/.sdk/tm/js/src/utility/MakeResultUtility.js +54 -0
  219. package/project/.sdk/tm/js/src/utility/MakeSpecUtility.js +58 -0
  220. package/project/.sdk/tm/js/src/utility/MakeUrlUtility.js +40 -0
  221. package/project/.sdk/tm/js/src/utility/ParamUtility.js +61 -0
  222. package/project/.sdk/tm/js/src/utility/PrepareAuthUtility.js +41 -0
  223. package/project/.sdk/tm/js/src/utility/PrepareBodyUtility.js +25 -0
  224. package/project/.sdk/tm/js/src/utility/PrepareHeadersUtility.js +18 -0
  225. package/project/.sdk/tm/js/src/utility/{MethodUtility.js → PrepareMethodUtility.js} +7 -7
  226. package/project/.sdk/tm/js/src/utility/PrepareParamsUtility.js +25 -0
  227. package/project/.sdk/tm/js/src/utility/PreparePathUtility.js +13 -0
  228. package/project/.sdk/tm/js/src/utility/PrepareQueryUtility.js +26 -0
  229. package/project/.sdk/tm/js/src/utility/README.md +1 -0
  230. package/project/.sdk/tm/js/src/utility/ResultBasicUtility.js +34 -0
  231. package/project/.sdk/tm/js/src/utility/ResultBodyUtility.js +18 -0
  232. package/project/.sdk/tm/js/src/utility/ResultHeadersUtility.js +22 -0
  233. package/project/.sdk/tm/js/src/utility/StructUtility.js +2219 -1078
  234. package/project/.sdk/tm/js/src/utility/TransformRequestUtility.js +28 -0
  235. package/project/.sdk/tm/js/src/utility/TransformResponseUtility.js +31 -0
  236. package/project/.sdk/tm/js/src/utility/Utility.js +61 -61
  237. package/project/.sdk/tm/js/test/README.md +1 -0
  238. package/project/.sdk/tm/js/test/exists.test.js +16 -0
  239. package/project/.sdk/tm/js/test/runner.js +323 -107
  240. package/project/.sdk/tm/js/test/utility/Custom.test.js +41 -63
  241. package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +390 -116
  242. package/project/.sdk/tm/js/test/utility/StructUtility.test.js +728 -175
  243. package/project/.sdk/tm/js/test/utility/index.js +9 -0
  244. package/project/.sdk/tm/js/test/utility.js +72 -0
  245. package/project/.sdk/tm/lua/LICENSE +22 -0
  246. package/project/.sdk/tm/lua/Makefile +10 -0
  247. package/project/.sdk/tm/lua/core/context.lua +208 -0
  248. package/project/.sdk/tm/lua/core/control.lua +17 -0
  249. package/project/.sdk/tm/lua/core/error.lua +30 -0
  250. package/project/.sdk/tm/lua/core/helpers.lua +30 -0
  251. package/project/.sdk/tm/lua/core/operation.lua +51 -0
  252. package/project/.sdk/tm/lua/core/response.lua +45 -0
  253. package/project/.sdk/tm/lua/core/result.lua +58 -0
  254. package/project/.sdk/tm/lua/core/spec.lua +29 -0
  255. package/project/.sdk/tm/lua/core/utility_type.lua +90 -0
  256. package/project/.sdk/tm/lua/feature/base_feature.lua +35 -0
  257. package/project/.sdk/tm/lua/feature/log_feature.lua +80 -0
  258. package/project/.sdk/tm/lua/feature/test_feature.lua +202 -0
  259. package/project/.sdk/tm/lua/src/feature/README.md +3 -0
  260. package/project/.sdk/tm/lua/src/feature/base/.gitkeep +0 -0
  261. package/project/.sdk/tm/lua/src/feature/log/.gitkeep +0 -0
  262. package/project/.sdk/tm/lua/src/feature/test/.gitkeep +0 -0
  263. package/project/.sdk/tm/lua/test/primary_utility_test.lua +1213 -0
  264. package/project/.sdk/tm/lua/test/runner.lua +86 -0
  265. package/project/.sdk/tm/lua/test/struct_runner.lua +602 -0
  266. package/project/.sdk/tm/lua/test/struct_utility_test.lua +959 -0
  267. package/project/.sdk/tm/lua/utility/clean.lua +7 -0
  268. package/project/.sdk/tm/lua/utility/done.lua +19 -0
  269. package/project/.sdk/tm/lua/utility/feature_add.lua +8 -0
  270. package/project/.sdk/tm/lua/utility/feature_hook.lua +21 -0
  271. package/project/.sdk/tm/lua/utility/feature_init.lua +24 -0
  272. package/project/.sdk/tm/lua/utility/fetcher.lua +96 -0
  273. package/project/.sdk/tm/lua/utility/make_context.lua +9 -0
  274. package/project/.sdk/tm/lua/utility/make_error.lua +73 -0
  275. package/project/.sdk/tm/lua/utility/make_fetch_def.lua +43 -0
  276. package/project/.sdk/tm/lua/utility/make_options.lua +116 -0
  277. package/project/.sdk/tm/lua/utility/make_point.lua +92 -0
  278. package/project/.sdk/tm/lua/utility/make_request.lua +58 -0
  279. package/project/.sdk/tm/lua/utility/make_response.lua +44 -0
  280. package/project/.sdk/tm/lua/utility/make_result.lua +51 -0
  281. package/project/.sdk/tm/lua/utility/make_spec.lua +72 -0
  282. package/project/.sdk/tm/lua/utility/make_url.lua +46 -0
  283. package/project/.sdk/tm/lua/utility/param.lua +68 -0
  284. package/project/.sdk/tm/lua/utility/prepare_auth.lua +39 -0
  285. package/project/.sdk/tm/lua/utility/prepare_body.lua +14 -0
  286. package/project/.sdk/tm/lua/utility/prepare_headers.lua +20 -0
  287. package/project/.sdk/tm/lua/utility/prepare_method.lua +17 -0
  288. package/project/.sdk/tm/lua/utility/prepare_params.lua +36 -0
  289. package/project/.sdk/tm/lua/utility/prepare_path.lua +19 -0
  290. package/project/.sdk/tm/lua/utility/prepare_query.lua +41 -0
  291. package/project/.sdk/tm/lua/utility/register.lua +71 -0
  292. package/project/.sdk/tm/lua/utility/result_basic.lua +32 -0
  293. package/project/.sdk/tm/lua/utility/result_body.lua +17 -0
  294. package/project/.sdk/tm/lua/utility/result_headers.lua +22 -0
  295. package/project/.sdk/tm/lua/utility/struct/struct.lua +3427 -0
  296. package/project/.sdk/tm/lua/utility/transform_request.lua +31 -0
  297. package/project/.sdk/tm/lua/utility/transform_response.lua +44 -0
  298. package/project/.sdk/tm/php/LICENSE +22 -0
  299. package/project/.sdk/tm/php/Makefile +10 -0
  300. package/project/.sdk/tm/php/core/Context.php +139 -0
  301. package/project/.sdk/tm/php/core/Control.php +18 -0
  302. package/project/.sdk/tm/php/core/Error.php +37 -0
  303. package/project/.sdk/tm/php/core/Helpers.php +25 -0
  304. package/project/.sdk/tm/php/core/Operation.php +36 -0
  305. package/project/.sdk/tm/php/core/Response.php +30 -0
  306. package/project/.sdk/tm/php/core/Result.php +35 -0
  307. package/project/.sdk/tm/php/core/Spec.php +38 -0
  308. package/project/.sdk/tm/php/core/UtilityType.php +89 -0
  309. package/project/.sdk/tm/php/feature/BaseFeature.php +37 -0
  310. package/project/.sdk/tm/php/feature/LogFeature.php +65 -0
  311. package/project/.sdk/tm/php/feature/TestFeature.php +156 -0
  312. package/project/.sdk/tm/php/src/feature/README.md +3 -0
  313. package/project/.sdk/tm/php/src/feature/base/.gitkeep +0 -0
  314. package/project/.sdk/tm/php/src/feature/log/.gitkeep +0 -0
  315. package/project/.sdk/tm/php/src/feature/test/.gitkeep +0 -0
  316. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +1309 -0
  317. package/project/.sdk/tm/php/test/Runner.php +112 -0
  318. package/project/.sdk/tm/php/test/StructRunner.php +275 -0
  319. package/project/.sdk/tm/php/test/StructUtilityTest.php +1336 -0
  320. package/project/.sdk/tm/php/utility/Clean.php +12 -0
  321. package/project/.sdk/tm/php/utility/Done.php +26 -0
  322. package/project/.sdk/tm/php/utility/FeatureAdd.php +12 -0
  323. package/project/.sdk/tm/php/utility/FeatureHook.php +23 -0
  324. package/project/.sdk/tm/php/utility/FeatureInit.php +25 -0
  325. package/project/.sdk/tm/php/utility/Fetcher.php +105 -0
  326. package/project/.sdk/tm/php/utility/MakeContext.php +14 -0
  327. package/project/.sdk/tm/php/utility/MakeError.php +59 -0
  328. package/project/.sdk/tm/php/utility/MakeFetchDef.php +36 -0
  329. package/project/.sdk/tm/php/utility/MakeOptions.php +102 -0
  330. package/project/.sdk/tm/php/utility/MakePoint.php +87 -0
  331. package/project/.sdk/tm/php/utility/MakeRequest.php +57 -0
  332. package/project/.sdk/tm/php/utility/MakeResponse.php +43 -0
  333. package/project/.sdk/tm/php/utility/MakeResult.php +53 -0
  334. package/project/.sdk/tm/php/utility/MakeSpec.php +64 -0
  335. package/project/.sdk/tm/php/utility/MakeUrl.php +41 -0
  336. package/project/.sdk/tm/php/utility/Param.php +68 -0
  337. package/project/.sdk/tm/php/utility/PrepareAuth.php +33 -0
  338. package/project/.sdk/tm/php/utility/PrepareBody.php +15 -0
  339. package/project/.sdk/tm/php/utility/PrepareHeaders.php +18 -0
  340. package/project/.sdk/tm/php/utility/PrepareMethod.php +21 -0
  341. package/project/.sdk/tm/php/utility/PrepareParams.php +34 -0
  342. package/project/.sdk/tm/php/utility/PreparePath.php +20 -0
  343. package/project/.sdk/tm/php/utility/PrepareQuery.php +32 -0
  344. package/project/.sdk/tm/php/utility/Register.php +67 -0
  345. package/project/.sdk/tm/php/utility/ResultBasic.php +29 -0
  346. package/project/.sdk/tm/php/utility/ResultBody.php +17 -0
  347. package/project/.sdk/tm/php/utility/ResultHeaders.php +21 -0
  348. package/project/.sdk/tm/php/utility/TransformRequest.php +27 -0
  349. package/project/.sdk/tm/php/utility/TransformResponse.php +42 -0
  350. package/project/.sdk/tm/php/utility/struct/Struct.php +3535 -0
  351. package/project/.sdk/tm/py/Makefile +10 -0
  352. package/project/.sdk/tm/py/core/__init__.py +0 -0
  353. package/project/.sdk/tm/py/core/context.py +199 -0
  354. package/project/.sdk/tm/py/core/control.py +12 -0
  355. package/project/.sdk/tm/py/core/error.py +18 -0
  356. package/project/.sdk/tm/py/core/helpers.py +15 -0
  357. package/project/.sdk/tm/py/core/operation.py +37 -0
  358. package/project/.sdk/tm/py/core/response.py +34 -0
  359. package/project/.sdk/tm/py/core/result.py +44 -0
  360. package/project/.sdk/tm/py/core/spec.py +23 -0
  361. package/project/.sdk/tm/py/core/utility_type.py +82 -0
  362. package/project/.sdk/tm/py/entity/__init__.py +0 -0
  363. package/project/.sdk/tm/py/feature/__init__.py +0 -0
  364. package/project/.sdk/tm/py/feature/base_feature.py +61 -0
  365. package/project/.sdk/tm/py/feature/log_feature.py +84 -0
  366. package/project/.sdk/tm/py/feature/test_feature.py +164 -0
  367. package/project/.sdk/tm/py/src/feature/README.md +3 -0
  368. package/project/.sdk/tm/py/src/feature/base/.gitkeep +0 -0
  369. package/project/.sdk/tm/py/src/feature/log/.gitkeep +0 -0
  370. package/project/.sdk/tm/py/src/feature/test/.gitkeep +0 -0
  371. package/project/.sdk/tm/py/test/__init__.py +0 -0
  372. package/project/.sdk/tm/py/test/runner.py +90 -0
  373. package/project/.sdk/tm/py/test/struct_runner.py +411 -0
  374. package/project/.sdk/tm/py/test/test_primary_utility.py +1101 -0
  375. package/project/.sdk/tm/py/test/test_struct_utility.py +751 -0
  376. package/project/.sdk/tm/py/utility/__init__.py +0 -0
  377. package/project/.sdk/tm/py/utility/clean.py +5 -0
  378. package/project/.sdk/tm/py/utility/done.py +14 -0
  379. package/project/.sdk/tm/py/utility/feature_add.py +6 -0
  380. package/project/.sdk/tm/py/utility/feature_hook.py +15 -0
  381. package/project/.sdk/tm/py/utility/feature_init.py +18 -0
  382. package/project/.sdk/tm/py/utility/fetcher.py +95 -0
  383. package/project/.sdk/tm/py/utility/make_context.py +7 -0
  384. package/project/.sdk/tm/py/utility/make_error.py +64 -0
  385. package/project/.sdk/tm/py/utility/make_fetch_def.py +37 -0
  386. package/project/.sdk/tm/py/utility/make_options.py +103 -0
  387. package/project/.sdk/tm/py/utility/make_point.py +74 -0
  388. package/project/.sdk/tm/py/utility/make_request.py +52 -0
  389. package/project/.sdk/tm/py/utility/make_response.py +36 -0
  390. package/project/.sdk/tm/py/utility/make_result.py +41 -0
  391. package/project/.sdk/tm/py/utility/make_spec.py +68 -0
  392. package/project/.sdk/tm/py/utility/make_url.py +34 -0
  393. package/project/.sdk/tm/py/utility/param.py +55 -0
  394. package/project/.sdk/tm/py/utility/prepare_auth.py +34 -0
  395. package/project/.sdk/tm/py/utility/prepare_body.py +11 -0
  396. package/project/.sdk/tm/py/utility/prepare_headers.py +17 -0
  397. package/project/.sdk/tm/py/utility/prepare_method.py +15 -0
  398. package/project/.sdk/tm/py/utility/prepare_params.py +28 -0
  399. package/project/.sdk/tm/py/utility/prepare_path.py +16 -0
  400. package/project/.sdk/tm/py/utility/prepare_query.py +33 -0
  401. package/project/.sdk/tm/py/utility/register.py +68 -0
  402. package/project/.sdk/tm/py/utility/result_basic.py +26 -0
  403. package/project/.sdk/tm/py/utility/result_body.py +13 -0
  404. package/project/.sdk/tm/py/utility/result_headers.py +17 -0
  405. package/project/.sdk/tm/py/utility/transform_request.py +27 -0
  406. package/project/.sdk/tm/py/utility/transform_response.py +39 -0
  407. package/project/.sdk/tm/py/utility/voxgig_struct/__init__.py +72 -0
  408. package/project/.sdk/tm/py/utility/voxgig_struct/voxgig_struct.py +2770 -0
  409. package/project/.sdk/tm/rb/Gemfile +4 -0
  410. package/project/.sdk/tm/rb/LICENSE +22 -0
  411. package/project/.sdk/tm/rb/Makefile +10 -0
  412. package/project/.sdk/tm/rb/core/context.rb +105 -0
  413. package/project/.sdk/tm/rb/core/control.rb +11 -0
  414. package/project/.sdk/tm/rb/core/error.rb +24 -0
  415. package/project/.sdk/tm/rb/core/helpers.rb +16 -0
  416. package/project/.sdk/tm/rb/core/operation.rb +26 -0
  417. package/project/.sdk/tm/rb/core/response.rb +20 -0
  418. package/project/.sdk/tm/rb/core/result.rb +23 -0
  419. package/project/.sdk/tm/rb/core/spec.rb +23 -0
  420. package/project/.sdk/tm/rb/core/utility_type.rb +32 -0
  421. package/project/.sdk/tm/rb/feature/base_feature.rb +30 -0
  422. package/project/.sdk/tm/rb/feature/log_feature.rb +50 -0
  423. package/project/.sdk/tm/rb/feature/test_feature.rb +154 -0
  424. package/project/.sdk/tm/rb/src/feature/README.md +3 -0
  425. package/project/.sdk/tm/rb/src/feature/base/.gitkeep +0 -0
  426. package/project/.sdk/tm/rb/src/feature/log/.gitkeep +0 -0
  427. package/project/.sdk/tm/rb/src/feature/test/.gitkeep +0 -0
  428. package/project/.sdk/tm/rb/test/primary_utility_test.rb +1083 -0
  429. package/project/.sdk/tm/rb/test/runner.rb +70 -0
  430. package/project/.sdk/tm/rb/test/struct_runner.rb +309 -0
  431. package/project/.sdk/tm/rb/test/struct_utility_test.rb +670 -0
  432. package/project/.sdk/tm/rb/utility/clean.rb +4 -0
  433. package/project/.sdk/tm/rb/utility/done.rb +14 -0
  434. package/project/.sdk/tm/rb/utility/feature_add.rb +6 -0
  435. package/project/.sdk/tm/rb/utility/feature_hook.rb +11 -0
  436. package/project/.sdk/tm/rb/utility/feature_init.rb +16 -0
  437. package/project/.sdk/tm/rb/utility/fetcher.rb +67 -0
  438. package/project/.sdk/tm/rb/utility/make_context.rb +7 -0
  439. package/project/.sdk/tm/rb/utility/make_error.rb +44 -0
  440. package/project/.sdk/tm/rb/utility/make_fetch_def.rb +24 -0
  441. package/project/.sdk/tm/rb/utility/make_options.rb +57 -0
  442. package/project/.sdk/tm/rb/utility/make_point.rb +77 -0
  443. package/project/.sdk/tm/rb/utility/make_request.rb +44 -0
  444. package/project/.sdk/tm/rb/utility/make_response.rb +25 -0
  445. package/project/.sdk/tm/rb/utility/make_result.rb +33 -0
  446. package/project/.sdk/tm/rb/utility/make_spec.rb +50 -0
  447. package/project/.sdk/tm/rb/utility/make_url.rb +32 -0
  448. package/project/.sdk/tm/rb/utility/param.rb +48 -0
  449. package/project/.sdk/tm/rb/utility/prepare_auth.rb +26 -0
  450. package/project/.sdk/tm/rb/utility/prepare_body.rb +6 -0
  451. package/project/.sdk/tm/rb/utility/prepare_headers.rb +11 -0
  452. package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -0
  453. package/project/.sdk/tm/rb/utility/prepare_params.rb +25 -0
  454. package/project/.sdk/tm/rb/utility/prepare_path.rb +13 -0
  455. package/project/.sdk/tm/rb/utility/prepare_query.rb +22 -0
  456. package/project/.sdk/tm/rb/utility/register.rb +63 -0
  457. package/project/.sdk/tm/rb/utility/result_basic.rb +23 -0
  458. package/project/.sdk/tm/rb/utility/result_body.rb +11 -0
  459. package/project/.sdk/tm/rb/utility/result_headers.rb +15 -0
  460. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +2256 -0
  461. package/project/.sdk/tm/rb/utility/transform_request.rb +15 -0
  462. package/project/.sdk/tm/rb/utility/transform_response.rb +23 -0
  463. package/src/cmp/Main.ts +1 -16
  464. package/src/cmp/Readme.ts +5 -5
  465. package/src/cmp/ReadmeEntity.ts +77 -25
  466. package/src/cmp/ReadmeExplanation.ts +333 -0
  467. package/src/cmp/ReadmeHowto.ts +28 -0
  468. package/src/cmp/ReadmeIntro.ts +10 -24
  469. package/src/cmp/ReadmeModel.ts +57 -88
  470. package/src/cmp/ReadmeOptions.ts +40 -11
  471. package/src/cmp/ReadmeQuick.ts +4 -1
  472. package/src/cmp/ReadmeRef.ts +1057 -40
  473. package/src/cmp/ReadmeTop.ts +213 -0
  474. package/src/sdkgen.ts +12 -0
  475. package/project/.sdk/src/cmp/js/Quick_js.ts +0 -78
  476. package/project/.sdk/src/cmp/js/TestAcceptEntity_js.ts +0 -13
  477. package/project/.sdk/src/cmp/js/TestAccept_js.ts +0 -18
  478. package/project/.sdk/tm/go/test/exists_test.go +0 -16
  479. package/project/.sdk/tm/js/src/utility/AuthUtility.js +0 -21
  480. package/project/.sdk/tm/js/src/utility/BodyUtility.js +0 -29
  481. package/project/.sdk/tm/js/src/utility/ErrorUtility.js +0 -33
  482. package/project/.sdk/tm/js/src/utility/FindparamUtility.js +0 -31
  483. package/project/.sdk/tm/js/src/utility/FullurlUtility.js +0 -39
  484. package/project/.sdk/tm/js/src/utility/HeadersUtility.js +0 -13
  485. package/project/.sdk/tm/js/src/utility/JoinurlUtility.js +0 -14
  486. package/project/.sdk/tm/js/src/utility/OperatorUtility.js +0 -44
  487. package/project/.sdk/tm/js/src/utility/OptionsUtility.js +0 -54
  488. package/project/.sdk/tm/js/src/utility/ParamsUtility.js +0 -21
  489. package/project/.sdk/tm/js/src/utility/QueryUtility.js +0 -21
  490. package/project/.sdk/tm/js/src/utility/ReqformUtility.js +0 -32
  491. package/project/.sdk/tm/js/src/utility/RequestUtility.js +0 -48
  492. package/project/.sdk/tm/js/src/utility/ResbasicUtility.js +0 -27
  493. package/project/.sdk/tm/js/src/utility/ResbodyUtility.js +0 -15
  494. package/project/.sdk/tm/js/src/utility/ResformUtility.js +0 -34
  495. package/project/.sdk/tm/js/src/utility/ResheadersUtility.js +0 -19
  496. package/project/.sdk/tm/js/src/utility/ResponseUtility.js +0 -37
  497. package/project/.sdk/tm/js/src/utility/ResultUtility.js +0 -28
  498. package/project/.sdk/tm/js/src/utility/SpecUtility.js +0 -35
@@ -1,187 +1,461 @@
1
1
 
2
- const { test, describe } = require('node:test')
3
- const { equal, deepEqual } = require('node:assert')
2
+ const { test, describe, before } = require('node:test')
3
+ const { equal, deepStrictEqual, ok } = require('node:assert')
4
+ const assert = require('node:assert')
4
5
 
5
- const { runner } = require('../runner')
6
+ const {
7
+ makeRunner,
8
+ } = require('../runner')
6
9
 
10
+ const {
11
+ SDK,
12
+ TEST_JSON_FILE
13
+ } = require('./index')
7
14
 
8
- describe('PrimaryUtility', async ()=>{
9
15
 
10
- async function MockFetch(url, fetchdef) {
11
- return {
12
- status: 200,
16
+ describe('PrimaryUtility', async () => {
17
+
18
+ let spec
19
+ let runset
20
+ let runsetflags
21
+ let client
22
+ let utility
23
+ let struct
24
+
25
+
26
+ // Ensure ctx has options derived from client when needed.
27
+ function fixctx(ctx) {
28
+ if (ctx && ctx.client && null == ctx.options) {
29
+ ctx.options = ctx.client.options()
13
30
  }
14
31
  }
15
32
 
16
- const runners = {
17
- auth: await runner('auth'),
18
- body: await runner('body'),
19
- error: await runner('error'),
20
- findparam: await runner('findparam'),
21
- fullurl: await runner('fullurl'),
22
- headers: await runner('headers'),
23
- method: await runner('method'),
24
- operator: await runner('operator'),
25
- options: await runner('options'),
26
- params: await runner('params'),
27
- query: await runner('query'),
28
- reqform: await runner('reqform'),
29
- request: await runner('request', { fetch: MockFetch }),
30
- resbasic: await runner('resbasic'),
31
- resbody: await runner('resbody'),
32
- resform: await runner('resform'),
33
- resheaders: await runner('resheaders'),
34
- response: await runner('response'),
35
- spec: await runner('spec'),
36
- }
37
-
38
-
39
- test('exists', async ()=>{
40
- equal('function', typeof runners.auth.subject)
41
- equal('function', typeof runners.body.subject)
42
- equal('function', typeof runners.error.subject)
43
- equal('function', typeof runners.findparam.subject)
44
- equal('function', typeof runners.fullurl.subject)
45
- equal('function', typeof runners.method.subject)
46
- equal('function', typeof runners.operator.subject)
47
- equal('function', typeof runners.options.subject)
48
- equal('function', typeof runners.params.subject)
49
- equal('function', typeof runners.query.subject)
50
- equal('function', typeof runners.reqform.subject)
51
- equal('function', typeof runners.request.subject)
52
- equal('function', typeof runners.resbasic.subject)
53
- equal('function', typeof runners.resbody.subject)
54
- equal('function', typeof runners.resform.subject)
55
- equal('function', typeof runners.resheaders.subject)
56
- equal('function', typeof runners.response.subject)
57
- equal('function', typeof runners.spec.subject)
33
+
34
+ before(async () => {
35
+ const runner = await makeRunner(TEST_JSON_FILE, await SDK.test())
36
+ const run = await runner('primary')
37
+
38
+ spec = run.spec
39
+ runset = run.runset
40
+ runsetflags = run.runsetflags
41
+ client = run.client
42
+ utility = client.utility()
43
+ struct = utility.struct
44
+ })
45
+
46
+
47
+ test('exists', () => {
48
+ const fns = [
49
+ 'clean', 'done', 'makeError', 'featureAdd', 'featureHook', 'featureInit',
50
+ 'fetcher', 'makeFetchDef', 'makeContext', 'makeOptions', 'makeRequest',
51
+ 'makeResponse', 'makeResult', 'makePoint', 'makeSpec', 'makeUrl',
52
+ 'param', 'prepareAuth', 'prepareBody', 'prepareHeaders', 'prepareMethod',
53
+ 'prepareParams', 'preparePath', 'prepareQuery', 'resultBasic',
54
+ 'resultBody', 'resultHeaders', 'transformRequest', 'transformResponse',
55
+ ]
56
+
57
+ for (const fn of fns) {
58
+ equal('function', typeof utility[fn], fn + ' should be a function')
59
+ }
60
+ })
61
+
62
+
63
+ test('context-basic', async () => {
64
+ await runset(spec.makeContext.basic, utility.makeContext)
65
+ })
66
+
67
+
68
+ test('method-basic', async () => {
69
+ await runset(spec.prepareMethod.basic, utility.prepareMethod)
70
+ })
71
+
72
+
73
+ test('headers-basic', async () => {
74
+ await runset(spec.prepareHeaders.basic, utility.prepareHeaders)
58
75
  })
59
76
 
60
77
 
61
78
  test('auth-basic', async () => {
62
- const { runset, spec, subject } = runners.auth
63
- await runset(spec.basic, undefined, (subject)=>(vin)=>{
64
- return subject(vin, vin.spec)
79
+ const sdkopts = spec.prepareAuth?.DEF?.setup?.a || {}
80
+ const authClient = SDK.test({}, sdkopts)
81
+ await runset(spec.prepareAuth.basic, (ctx) => {
82
+ ctx.client = authClient
83
+ fixctx(ctx)
84
+ return utility.prepareAuth(ctx)
65
85
  })
66
86
  })
67
87
 
68
88
 
69
- test('body-basic', async () => {
70
- const { runset, spec, subject } = runners.body
71
- await runset(spec.basic, subject)
89
+ test('params-basic', async () => {
90
+ await runset(spec.prepareParams.basic, utility.prepareParams)
72
91
  })
73
92
 
74
93
 
75
- test('error-basic', async () => {
76
- const { runset, spec, subject } = runners.error
77
- await runset(spec.basic, subject)
94
+ test('query-basic', async () => {
95
+ await runset(spec.prepareQuery.basic, utility.prepareQuery)
96
+ })
97
+
98
+
99
+ test('body-basic', async () => {
100
+ await runset(spec.prepareBody.basic, (ctx) => {
101
+ fixctx(ctx)
102
+ return utility.prepareBody(ctx)
103
+ })
78
104
  })
79
105
 
80
106
 
81
107
  test('findparam-basic', async () => {
82
- const { runset, spec, subject } = runners.findparam
83
- await runset(spec.basic, subject)
108
+ await runset(spec.param.basic, utility.param)
84
109
  })
85
110
 
86
111
 
87
112
  test('fullurl-basic', async () => {
88
- const { runset, spec, subject } = runners.fullurl
89
- await runset(spec.basic, subject)
113
+ await runset(spec.makeUrl.basic, utility.makeUrl)
90
114
  })
91
115
 
92
116
 
93
- test('headers-basic', async () => {
94
- const { runset, spec, subject } = runners.headers
95
- await runset(spec.basic, subject)
117
+ test('operator-basic', async () => {
118
+ await runset(spec.operator.basic, (opmap) => ({
119
+ entity: opmap.entity || '_',
120
+ name: opmap.name || '_',
121
+ input: opmap.input || '_',
122
+ points: opmap.points || [],
123
+ }))
96
124
  })
97
125
 
98
126
 
99
- test('method-basic', async () => {
100
- const { runset, spec, subject } = runners.method
101
- await runset(spec.basic, subject)
127
+ test('options-basic', async () => {
128
+ await runset(spec.makeOptions.basic, (vin) => {
129
+ const ctx = utility.makeContext({ options: vin.options, config: vin.config })
130
+ ctx.client = client
131
+ ctx.utility = utility
132
+ return utility.makeOptions(ctx)
133
+ })
102
134
  })
103
135
 
104
136
 
105
- test('operator-basic', async () => {
106
- const { runset, spec, subject } = runners.operator
107
- await runset(spec.basic, subject)
137
+ test('spec-basic', async () => {
138
+ const sdkopts = spec.makeSpec?.DEF?.setup?.a || {}
139
+ const specClient = SDK.test({}, sdkopts)
140
+ await runset(spec.makeSpec.basic, (ctx) => {
141
+ ctx.client = specClient
142
+ ctx.options = specClient.options()
143
+ return utility.makeSpec(ctx)
144
+ })
108
145
  })
109
-
110
146
 
111
- test('options-basic', async () => {
112
- const { runset, spec, subject } = runners.options
113
- await runset(spec.basic, subject)
147
+
148
+ test('reqform-basic', async () => {
149
+ await runset(spec.transformRequest.basic, utility.transformRequest)
114
150
  })
115
-
116
151
 
117
- test('params-basic', async () => {
118
- const { runset, spec, subject } = runners.params
119
- await runset(spec.basic, subject)
152
+
153
+ test('resform-basic', async () => {
154
+ await runset(spec.transformResponse.basic, utility.transformResponse)
120
155
  })
121
156
 
122
157
 
123
- test('query-basic', async () => {
124
- const { runset, spec, subject } = runners.query
125
- await runset(spec.basic, subject)
158
+ test('resbasic-basic', async () => {
159
+ await runset(spec.resultBasic.basic, (ctx) => {
160
+ fixctx(ctx)
161
+ return utility.resultBasic(ctx)
162
+ })
126
163
  })
127
164
 
128
165
 
129
- test('reqform-basic', async () => {
130
- const { runset, spec, subject } = runners.reqform
131
- await runset(spec.basic, subject)
166
+ test('resheaders-basic', async () => {
167
+ await runset(spec.resultHeaders.basic, (ctx) => {
168
+ // Convert plain headers map to forEach-based (browser Response API)
169
+ if (ctx.response?.headers && !ctx.response.headers.forEach) {
170
+ const h = ctx.response.headers
171
+ ctx.response.headers = {
172
+ forEach: (cb) => Object.entries(h).forEach(([k, v]) => cb(v, k.toLowerCase()))
173
+ }
174
+ }
175
+ return utility.resultHeaders(ctx)
176
+ })
177
+ })
178
+
179
+
180
+ test('resbody-basic', async () => {
181
+ await runset(spec.resultBody.basic, async (ctx) => {
182
+ if (ctx.response && !ctx.response.json) {
183
+ const body = ctx.response.body
184
+ ctx.response.json = async () => body
185
+ }
186
+ return utility.resultBody(ctx)
187
+ })
132
188
  })
133
189
 
134
190
 
135
191
  test('request-basic', async () => {
136
- const { runset, spec, subject } = runners.request
137
- await runset(spec.basic, subject)
192
+ const mockFetch = async (url, init) => ({
193
+ status: 200,
194
+ statusText: 'OK',
195
+ headers: { forEach: (cb) => { cb('application/json', 'content-type', {}) } },
196
+ json: async () => ({ id: 'res01' }),
197
+ body: 'present',
198
+ })
199
+ const reqClient = new SDK({
200
+ system: { fetch: mockFetch }
201
+ })
202
+ const reqUtility = reqClient.utility()
203
+ await runset(spec.makeRequest.basic, async (ctx) => {
204
+ ctx.client = reqClient
205
+ ctx.utility = reqUtility
206
+ ctx.options = reqClient.options()
207
+ return reqUtility.makeRequest(ctx)
208
+ })
138
209
  })
139
210
 
140
211
 
141
- test('resbasic-basic', async () => {
142
- const { runset, spec, subject } = runners.resbasic
143
- await runset(spec.basic, subject)
212
+ test('response-basic', async () => {
213
+ await runset(spec.makeResponse.basic, async (ctx) => {
214
+ fixctx(ctx)
215
+ // Add json() and forEach to response for proper handling
216
+ if (ctx.response && !ctx.response.json) {
217
+ const body = ctx.response.body
218
+ ctx.response.json = async () => body
219
+ }
220
+ if (ctx.response?.headers && !ctx.response.headers.forEach) {
221
+ const h = ctx.response.headers
222
+ ctx.response.headers = {
223
+ forEach: (cb) => Object.entries(h).forEach(([k, v]) => cb(v, k.toLowerCase()))
224
+ }
225
+ }
226
+ return utility.makeResponse(ctx)
227
+ })
144
228
  })
145
229
 
146
-
147
- test('resbody-basic', async () => {
148
- const { runset, spec, subject } = runners.resbody
149
- await runset(spec.basic, (ctx, result)=>{
150
- let resdata = ctx.utility.struct.clone(ctx.response)
151
- ctx.response.json = async ()=>resdata
152
- return subject(ctx, result)
230
+
231
+ test('done-basic', async () => {
232
+ await runset(spec.done.basic, (ctx) => {
233
+ fixctx(ctx)
234
+ return utility.done(ctx)
153
235
  })
154
236
  })
155
237
 
156
238
 
157
- test('resform-basic', async () => {
158
- const { runset, spec, subject } = runners.resform
159
- await runset(spec.basic, subject)
239
+ test('error-basic', async () => {
240
+ await runset(spec.makeError.basic, (...args) => {
241
+ const ctx = args[0]
242
+ fixctx(ctx)
243
+ return utility.makeError(...args)
244
+ })
160
245
  })
161
246
 
162
247
 
163
- test('resheaders-basic', async () => {
164
- const { runset, spec, subject } = runners.resheaders
165
- await runset(spec.basic, (ctx, result)=>{
166
- ctx.response.headers.forEach = function (callback) {
167
- Object.keys(this).forEach((key) => {
168
- callback(this[key], key, this)
169
- })
248
+ test('makePoint-single', () => {
249
+ const ctx = makeCtx()
250
+ const point = {
251
+ parts: ['items', '{id}'],
252
+ args: { params: [] },
253
+ params: [],
254
+ alias: {},
255
+ select: {},
256
+ active: true,
257
+ transform: { req: undefined, res: undefined },
258
+ }
259
+ ctx.op.points = [point]
260
+
261
+ const result = utility.makePoint(ctx)
262
+ ok(!(result instanceof Error))
263
+ equal(ctx.point, point)
264
+ })
265
+
266
+
267
+ test('makeFetchDef', () => {
268
+ const ctx = makeFullCtx()
269
+ ctx.spec = {
270
+ base: 'http://localhost:8080',
271
+ prefix: '/api',
272
+ path: 'items/{id}',
273
+ suffix: '',
274
+ params: { id: 'item01' },
275
+ query: {},
276
+ headers: { 'content-type': 'application/json' },
277
+ method: 'GET',
278
+ step: 'start',
279
+ body: undefined,
280
+ }
281
+
282
+ const fetchdef = utility.makeFetchDef(ctx)
283
+ ok(!(fetchdef instanceof Error), 'should not be error')
284
+ equal(fetchdef.method, 'GET')
285
+ ok(fetchdef.url.includes('/api/items/item01'))
286
+ equal(fetchdef.headers['content-type'], 'application/json')
287
+ ok(null == fetchdef.body)
288
+ })
289
+
290
+
291
+ test('makeFetchDef-with-body', () => {
292
+ const ctx = makeFullCtx()
293
+ ctx.spec = {
294
+ base: 'http://localhost:8080',
295
+ prefix: '',
296
+ path: 'items',
297
+ suffix: '',
298
+ params: {},
299
+ query: {},
300
+ headers: {},
301
+ method: 'POST',
302
+ step: 'start',
303
+ body: { name: 'test' },
304
+ }
305
+
306
+ const fetchdef = utility.makeFetchDef(ctx)
307
+ ok(!(fetchdef instanceof Error))
308
+ equal(fetchdef.method, 'POST')
309
+ equal(fetchdef.body, JSON.stringify({ name: 'test' }, null, 2))
310
+ })
311
+
312
+
313
+ test('featureAdd', () => {
314
+ const ctx = makeCtx()
315
+ const startLen = client._features.length
316
+
317
+ const feature = {
318
+ version: '0.0.1',
319
+ name: 'testfeat',
320
+ active: true,
321
+ init: () => { },
322
+ }
323
+
324
+ utility.featureAdd(ctx, feature)
325
+ equal(client._features.length, startLen + 1)
326
+ equal(client._features[client._features.length - 1].name, 'testfeat')
327
+ })
328
+
329
+
330
+ test('featureHook', () => {
331
+ const ctx = makeCtx()
332
+
333
+ let called = false
334
+ client._features = [{
335
+ name: 'hookfeat',
336
+ TestHook: () => { called = true },
337
+ }]
338
+
339
+ utility.featureHook(ctx, 'TestHook')
340
+ equal(called, true)
341
+ })
342
+
343
+
344
+ test('featureInit', () => {
345
+ const ctx = makeCtx()
346
+
347
+ let initCalled = false
348
+ const feature = {
349
+ name: 'initfeat',
350
+ active: true,
351
+ init: () => { initCalled = true },
352
+ }
353
+
354
+ ctx.options.feature.initfeat = { active: true }
355
+
356
+ utility.featureInit(ctx, feature)
357
+ equal(initCalled, true)
358
+ })
359
+
360
+
361
+ test('featureInit-inactive', () => {
362
+ const ctx = makeCtx()
363
+
364
+ let initCalled = false
365
+ const feature = {
366
+ name: 'nofeat',
367
+ active: false,
368
+ init: () => { initCalled = true },
369
+ }
370
+
371
+ ctx.options.feature.nofeat = { active: false }
372
+
373
+ utility.featureInit(ctx, feature)
374
+ equal(initCalled, false)
375
+ })
376
+
377
+
378
+ test('fetcher-live', async () => {
379
+ const calls = []
380
+ const liveClient = new SDK({
381
+ system: {
382
+ fetch: async (url, init) => {
383
+ calls.push({ url, init })
384
+ return { status: 200, statusText: 'OK' }
385
+ }
170
386
  }
171
- return subject(ctx, result)
172
387
  })
388
+ const liveUtility = liveClient.utility()
389
+ const ctx = liveUtility.makeContext({ opname: 'load' }, liveClient._rootctx)
390
+ ctx.client = liveClient
391
+
392
+ const fetchdef = { method: 'GET', headers: {} }
393
+ const response = await liveUtility.fetcher(ctx, 'http://example.com/test', fetchdef)
394
+ ok(!(response instanceof Error))
395
+ equal(calls.length, 1)
396
+ equal(calls[0].url, 'http://example.com/test')
173
397
  })
174
398
 
175
-
176
- test('response-basic', async () => {
177
- const { runset, spec, subject } = runners.response
178
- await runset(spec.basic, subject)
399
+
400
+ test('fetcher-blocked-test-mode', async () => {
401
+ const blockedClient = new SDK({
402
+ system: { fetch: async () => ({}) }
403
+ })
404
+ blockedClient._mode = 'test'
405
+
406
+ const blockedUtility = blockedClient.utility()
407
+ const ctx = blockedUtility.makeContext({ opname: 'load' }, blockedClient._rootctx)
408
+ ctx.client = blockedClient
409
+ const fetchdef = { method: 'GET', headers: {} }
410
+
411
+ const result = await blockedUtility.fetcher(ctx, 'http://example.com/test', fetchdef)
412
+ ok(result instanceof Error)
413
+ ok(result.message.includes('mode'))
179
414
  })
180
415
 
181
416
 
182
- test('spec-basic', async () => {
183
- const { runset, spec, subject } = runners.spec
184
- await runset(spec.basic, subject)
417
+ test('makeError-no-throw', () => {
418
+ const ctx = makeFullCtx()
419
+ ctx.ctrl.throw = false
420
+ ctx.result = { ok: false, resdata: { id: 'safe01' } }
421
+
422
+ const out = utility.makeError(ctx, ctx.error('test_code', 'test message'))
423
+ deepStrictEqual(out, { id: 'safe01' })
424
+ })
425
+
426
+
427
+ test('clean', () => {
428
+ const ctx = makeFullCtx()
429
+ const val = { key: 'secret123', name: 'test' }
430
+ const cleaned = utility.clean(ctx, val)
431
+ ok(null != cleaned)
185
432
  })
186
-
433
+
434
+
435
+ // Helper functions for manual tests
436
+ function makeCtx(overrides) {
437
+ return utility.makeContext({
438
+ opname: 'load',
439
+ ...overrides,
440
+ }, client._rootctx)
441
+ }
442
+
443
+
444
+ function makeFullCtx(overrides) {
445
+ const ctx = makeCtx(overrides)
446
+ ctx.point = {
447
+ parts: ['items', '{id}'],
448
+ args: { params: [{ name: 'id', reqd: true }] },
449
+ params: ['id'],
450
+ alias: {},
451
+ select: {},
452
+ active: true,
453
+ relations: [],
454
+ transform: { req: undefined, res: undefined },
455
+ }
456
+ ctx.match = { id: 'item01' }
457
+ ctx.reqmatch = { id: 'item01' }
458
+ return ctx
459
+ }
460
+
187
461
  })