@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
@@ -0,0 +1,31 @@
1
+
2
+ const {
3
+ walk, size, pad, slice, clone
4
+ } = require('./StructUtility')
5
+
6
+ // Clean request data by partially hiding sensitive values.
7
+ function clean(ctx, val) {
8
+ const options = ctx.options
9
+
10
+ const cleankeyre = options?.__derived__?.clean?.keyre
11
+ const hintsize = 4
12
+
13
+ /*
14
+ if (null != cleankeyre) {
15
+ val = walk(clone(val), (key, subval) => {
16
+ if (cleankeyre.exec(key) && 'string' === typeof subval) {
17
+ const len = size(subval)
18
+ const hint = (hintsize * 4) < len ? slice(subval, 0, hintsize) : ''
19
+ subval = pad(hint, len, '*')
20
+ }
21
+ return subval
22
+ })
23
+ }
24
+ */
25
+
26
+ return val
27
+ }
28
+
29
+ module.exports = {
30
+ clean
31
+ }
@@ -1,15 +1,22 @@
1
1
 
2
+ const { clean } = require('./CleanUtility')
3
+
2
4
  function done(ctx) {
3
- const { error } = ctx.utility
4
-
5
- if(ctx.result.ok) {
5
+ const error = ctx.utility.makeError
6
+ const delprop = ctx.utility.struct.delprop
7
+
8
+ if (ctx.ctrl.explain) {
9
+ ctx.ctrl.explain = clean(ctx, ctx.ctrl.explain)
10
+ delprop(ctx.ctrl.explain.result, 'err')
11
+ }
12
+
13
+ if (ctx.result && ctx.result.ok) {
6
14
  return ctx.result.resdata
7
15
  }
8
16
 
9
17
  return error(ctx)
10
18
  }
11
19
 
12
-
13
20
  module.exports = {
14
21
  done
15
22
  }
@@ -0,0 +1,42 @@
1
+
2
+ function featureAdd(ctx, f) {
3
+ const client = ctx.client
4
+ const struct = ctx.utility.struct
5
+ const setprop = struct.setprop
6
+ const getprop = struct.getprop
7
+
8
+ const fopts = getprop(f, '_options', {})
9
+ let added = false
10
+ const features = client._features
11
+
12
+ if (fopts.__before__ || fopts.__after__ || fopts.__replace__) {
13
+
14
+ for (let i = 0; i < features.length; i++) {
15
+ let ef = client._features[i]
16
+ if (fopts.__before__ === ef.name) {
17
+ client._features = [...features.slice(0, i), f, ...features.slice(i)]
18
+ added = true
19
+ break
20
+ }
21
+ else if (fopts.__after__ === ef.name) {
22
+ client._features = [...features.slice(0, ++i), f, ...features.slice(i)]
23
+ added = true
24
+ break
25
+ }
26
+ else if (fopts.__replace__ === ef.name) {
27
+ client._features = setprop(features, i, f)
28
+ added = true
29
+ break
30
+ }
31
+ }
32
+ }
33
+
34
+ if (!added) {
35
+ client._features = setprop(features, features.length, f)
36
+ }
37
+
38
+ }
39
+
40
+ module.exports = {
41
+ featureAdd
42
+ }
@@ -0,0 +1,25 @@
1
+
2
+ function featureHook(ctx, name) {
3
+ const client = ctx.client
4
+
5
+ let resp = []
6
+ const features = client._features || []
7
+
8
+ for (let f of features) {
9
+ const fh = f[name]
10
+ if (null != fh) {
11
+ const fres = fh(ctx)
12
+ if (fres instanceof Promise) {
13
+ resp.push(fres)
14
+ }
15
+ }
16
+ }
17
+
18
+ if (0 < resp.length) {
19
+ return Promise.all(resp)
20
+ }
21
+ }
22
+
23
+ module.exports = {
24
+ featureHook
25
+ }
@@ -0,0 +1,11 @@
1
+
2
+ function featureInit(ctx, f) {
3
+ const fopts = ctx.options.feature[f.name] || {}
4
+ if (true === fopts.active) {
5
+ f.init(ctx, fopts)
6
+ }
7
+ }
8
+
9
+ module.exports = {
10
+ featureInit
11
+ }
@@ -0,0 +1,28 @@
1
+
2
+ // Make HTTP call using library. Replace this utility for mocking etc.
3
+ async function fetcher(ctx, fullurl, fetchdef) {
4
+
5
+ if ('live' !== ctx.client._mode) {
6
+ return ctx.error('fetch_mode_block', 'Request blocked by mode: "' + ctx.client._mode +
7
+ '" (URL was: "' + fullurl + '")')
8
+ }
9
+
10
+ const options = ctx.client.options()
11
+
12
+ const getpath = ctx.utility.struct.getpath
13
+
14
+ if (true === getpath(options, 'feature.test.active')) {
15
+ return ctx.error('fetch_test_block', 'Request blocked as test feature is active' +
16
+ ' (URL was: "' + fullurl + '")')
17
+ }
18
+
19
+ const fetch = options.system.fetch
20
+
21
+ const response = await fetch(fullurl, fetchdef)
22
+
23
+ return response
24
+ }
25
+
26
+ module.exports = {
27
+ fetcher
28
+ }
@@ -0,0 +1,11 @@
1
+
2
+ const { Context } = require('../Context')
3
+
4
+ function makeContext(ctxmap, basectx) {
5
+ const ctx = new Context(ctxmap, basectx)
6
+ return ctx
7
+ }
8
+
9
+ module.exports = {
10
+ makeContext,
11
+ }
@@ -0,0 +1,55 @@
1
+
2
+ const { Result } = require('../Result')
3
+
4
+ const { clean } = require('./CleanUtility')
5
+ const { clone, delprop } = require('./StructUtility')
6
+
7
+ function makeError(ctx, err) {
8
+
9
+ ctx = ctx || {}
10
+ const op = ctx.op || {}
11
+ op.name = op.name || 'unknown operation'
12
+
13
+ const result = ctx.result || new Result({})
14
+ result.ok = false
15
+
16
+ const reserr = result.err
17
+
18
+ err = undefined === err ? reserr : err
19
+ err = err || ctx.error('unknown', 'unknown error')
20
+
21
+ const errmsg = err.message || 'unknown error'
22
+ const msg = 'ProjectNameSDK: ' + op.name + ': ' + errmsg
23
+ err.message = clean(ctx, msg)
24
+
25
+ if (result.err) {
26
+ delprop(result, 'err')
27
+ }
28
+
29
+ const spec = ctx.spec || {}
30
+
31
+ if (ctx.ctrl.explain) {
32
+ ctx.ctrl.explain.err = {
33
+ ...clone({ err }).err,
34
+ message: err.message,
35
+ stack: err.stack,
36
+ }
37
+ }
38
+
39
+ err.result = clean(ctx, result)
40
+ err.spec = clean(ctx, spec)
41
+
42
+ ctx.ctrl.err = err
43
+
44
+ // TODO: model option to return instead
45
+ if (false === ctx.ctrl.throw) {
46
+ return result.resdata
47
+ }
48
+ else {
49
+ throw err
50
+ }
51
+ }
52
+
53
+ module.exports = {
54
+ makeError
55
+ }
@@ -0,0 +1,44 @@
1
+
2
+ const { Result } = require('../Result')
3
+
4
+ function makeFetchDef(ctx) {
5
+ const spec = ctx.spec
6
+ const utility = ctx.utility
7
+ const makeUrl = utility.makeUrl
8
+ const struct = utility.struct
9
+ const jsonify = struct.jsonify
10
+
11
+ if (null == spec) {
12
+ return ctx.error('fetchdef_no_spec', 'Expected context spec property to be defined.')
13
+ }
14
+
15
+ if (null == ctx.result) {
16
+ ctx.result = new Result({})
17
+ }
18
+
19
+ spec.step = 'prepare'
20
+
21
+ const url = makeUrl(ctx)
22
+ if (url instanceof Error) {
23
+ return url
24
+ }
25
+
26
+ spec.url = url
27
+
28
+ const fetchdef = {
29
+ url,
30
+ method: spec.method,
31
+ headers: spec.headers,
32
+ }
33
+
34
+ if (null != spec.body) {
35
+ fetchdef.body =
36
+ 'object' === typeof spec.body ? jsonify(spec.body) : spec.body
37
+ }
38
+
39
+ return fetchdef
40
+ }
41
+
42
+ module.exports = {
43
+ makeFetchDef
44
+ }
@@ -0,0 +1,93 @@
1
+
2
+ function makeOptions(ctx) {
3
+ const utility = ctx.utility
4
+ const options = ctx.options
5
+ const struct = utility.struct
6
+ const items = struct.items
7
+ const setprop = struct.setprop
8
+ const merge = struct.merge
9
+ const validate = struct.validate
10
+ const escre = struct.escre
11
+
12
+ let opts = { ...(options || {}) }
13
+
14
+ const customUtils = opts.utility || {}
15
+ for (let [key, val] of items(customUtils)) {
16
+ setprop(utility, key, val)
17
+ }
18
+
19
+ let config = ctx.config || {}
20
+ let cfgopts = config.options || {}
21
+
22
+ // Standard SDK option values.
23
+ const optspec = {
24
+ apikey: '',
25
+ base: 'http://localhost:8000',
26
+ prefix: '',
27
+ suffix: '',
28
+ auth: {
29
+ prefix: ''
30
+ },
31
+ headers: {
32
+ '`$CHILD`': '`$STRING`'
33
+ },
34
+ allow: {
35
+ method: 'GET,PUT,POST,PATCH,DELETE,OPTIONS',
36
+ op: 'create,update,load,list,remove,command,direct'
37
+ },
38
+ entity: {
39
+ '`$CHILD`': {
40
+ '`$OPEN`': true,
41
+ active: false,
42
+ alias: {}
43
+ }
44
+ },
45
+ feature: {
46
+ '`$CHILD`': {
47
+ '`$OPEN`': true,
48
+ active: false,
49
+ }
50
+ },
51
+ utility: {},
52
+ system: {
53
+ fetch: undefined
54
+ },
55
+ test: {
56
+ active: false,
57
+ entity: {
58
+ '`$OPEN`': true,
59
+ }
60
+ },
61
+ clean: {
62
+ keys: 'key,token,id'
63
+ }
64
+ }
65
+
66
+ // JavaScript specific option values.
67
+ optspec.system.fetch = opts.system?.fetch || global.fetch
68
+
69
+ opts = merge([{}, cfgopts, opts])
70
+
71
+ opts = validate(opts, optspec)
72
+
73
+ opts.__derived__ = {
74
+ clean: {
75
+ keyre: undefined
76
+ }
77
+ }
78
+
79
+ const keyre = opts.clean.keys
80
+ .split(/\s*,\s*/)
81
+ .filter((s) => null != s && '' !== s)
82
+ .map((key) => escre(key)).join('|')
83
+
84
+ if ('' != keyre) {
85
+ opts.__derived__.clean.keyre = keyre
86
+ }
87
+
88
+ return opts
89
+ }
90
+
91
+ module.exports = {
92
+ makeOptions
93
+ }
@@ -0,0 +1,77 @@
1
+
2
+ function makePoint(ctx) {
3
+ if (ctx.out.point) {
4
+ return ctx.point = ctx.out.point
5
+ }
6
+
7
+ const getprop = ctx.utility.struct.getprop
8
+ const op = ctx.op
9
+ const options = ctx.options
10
+
11
+ if (!options.allow.op.includes(op.name)) {
12
+ return ctx.error('point_op_allow', 'Operation "' + op.name +
13
+ '" not allowed by SDK option allow.op value: "' + options.allow.op + '"')
14
+ }
15
+
16
+ if (0 === op.points.length) {
17
+ return ctx.error('point_no_points',
18
+ 'Operation "' + op.name + '" has no endpoint definitions.')
19
+ }
20
+
21
+ // Choose the appropriate point based on the match or data.
22
+ if (1 === op.points.length) {
23
+ ctx.point = op.points[0]
24
+ }
25
+ else {
26
+ // Operation argument has priority, but also look in current data or match.
27
+ const reqselector = getprop(ctx, 'req' + op.input)
28
+ const selector = getprop(ctx, op.input)
29
+
30
+ let point
31
+ for (let i = 0; i < op.points.length; i++) {
32
+ point = op.points[i]
33
+ const select = point.select
34
+ let found = true
35
+
36
+ if (selector && select.exist) {
37
+ for (let j = 0; j < select.exist.length; j++) {
38
+ const existkey = select.exist[j]
39
+
40
+ if (
41
+ undefined === getprop(reqselector, existkey)
42
+ && undefined === getprop(selector, existkey)
43
+ ) {
44
+ found = false
45
+ break
46
+ }
47
+ }
48
+ }
49
+
50
+ // Action is only in operation argument.
51
+ if (found && reqselector.$action !== select.$action) {
52
+ found = false
53
+ }
54
+
55
+ if (found) {
56
+ break
57
+ }
58
+ }
59
+
60
+ if (
61
+ null != reqselector.$action &&
62
+ null != point &&
63
+ reqselector.$action !== point.select.$action
64
+ ) {
65
+ return ctx.error('point_action_invalid', 'Operation "' + op.name +
66
+ '" action "' + reqselector.$action + '" is not valid.')
67
+ }
68
+
69
+ ctx.point = point
70
+ }
71
+
72
+ return ctx.point
73
+ }
74
+
75
+ module.exports = {
76
+ makePoint,
77
+ }
@@ -0,0 +1,63 @@
1
+
2
+ const { Response } = require('../Response')
3
+ const { Result } = require('../Result')
4
+
5
+ async function makeRequest(ctx) {
6
+ // PreRequest feature hook has already provided a result.
7
+ if (ctx.out.request) {
8
+ return ctx.out.request
9
+ }
10
+
11
+ const spec = ctx.spec
12
+ const utility = ctx.utility
13
+ const fetcher = utility.fetcher
14
+ const makeFetchDef = utility.makeFetchDef
15
+
16
+ let response = new Response({})
17
+
18
+ let result = new Result({})
19
+
20
+ ctx.result = result
21
+
22
+ if (null == spec) {
23
+ return ctx.error('request_no_spec', 'Expected context spec property to be defined.')
24
+ }
25
+
26
+ try {
27
+ const fetchdef = makeFetchDef(ctx)
28
+ if (fetchdef instanceof Error) {
29
+ throw fetchdef
30
+ }
31
+
32
+ if (ctx.ctrl.explain) {
33
+ ctx.ctrl.explain.fetchdef = fetchdef
34
+ }
35
+
36
+ spec.step = 'prerequest'
37
+
38
+ const fetched = await fetcher(ctx, fetchdef.url, fetchdef)
39
+
40
+ if (null == fetched) {
41
+ response = new Response({ err: ctx.error('request_no_response', 'response: undefined') })
42
+ }
43
+ else if (fetched instanceof Error) {
44
+ response = new Response({ err: fetched })
45
+ }
46
+ else {
47
+ response = new Response(fetched)
48
+ }
49
+ }
50
+ catch (err) {
51
+ response.err = err
52
+ }
53
+
54
+ spec.step = 'postrequest'
55
+
56
+ ctx.response = response
57
+
58
+ return response
59
+ }
60
+
61
+ module.exports = {
62
+ makeRequest
63
+ }
@@ -0,0 +1,55 @@
1
+
2
+ async function makeResponse(ctx) {
3
+ // PreResponse feature hook has already provided a result.
4
+ if (ctx.out.response) {
5
+ return ctx.out.response
6
+ }
7
+
8
+ const utility = ctx.utility
9
+ const resultBasic = utility.resultBasic
10
+ const resultHeaders = utility.resultHeaders
11
+ const resultBody = utility.resultBody
12
+ const transformResponse = utility.transformResponse
13
+
14
+ const spec = ctx.spec
15
+ const result = ctx.result
16
+ const response = ctx.response
17
+
18
+ if (null == spec) {
19
+ return ctx.error('response_no_spec', 'Expected context spec property to be defined.')
20
+ }
21
+
22
+ if (null == response) {
23
+ return ctx.error('response_no_response', 'Expected context response property to be defined.')
24
+ }
25
+
26
+ if (null == result) {
27
+ return ctx.error('response_no_result', 'Expected context result property to be defined.')
28
+ }
29
+
30
+ spec.step = 'response'
31
+
32
+ try {
33
+ resultBasic(ctx)
34
+ resultHeaders(ctx)
35
+ await resultBody(ctx)
36
+ transformResponse(ctx)
37
+
38
+ if (null == result.err) {
39
+ result.ok = true
40
+ }
41
+ }
42
+ catch (err) {
43
+ result.err = err
44
+ }
45
+
46
+ if (ctx.ctrl.explain) {
47
+ ctx.ctrl.explain.result = result
48
+ }
49
+
50
+ return response
51
+ }
52
+
53
+ module.exports = {
54
+ makeResponse
55
+ }
@@ -0,0 +1,54 @@
1
+
2
+ const { Result } = require('../Result')
3
+
4
+ function makeResult(ctx) {
5
+ // PreResult feature hook has already provided a result.
6
+ if (ctx.out.result) {
7
+ return ctx.out.result
8
+ }
9
+
10
+ const utility = ctx.utility
11
+ const transformResponse = utility.transformResponse
12
+
13
+ const op = ctx.op
14
+ const entity = ctx.entity
15
+
16
+ const spec = ctx.spec
17
+ const result = ctx.result
18
+
19
+ if (null == spec) {
20
+ return ctx.error('result_no_spec', 'Expected context spec property to be defined.')
21
+ }
22
+
23
+ if (null == result) {
24
+ return ctx.error('result_no_result', 'Expected context result property to be defined.')
25
+ }
26
+
27
+ spec.step = 'result'
28
+
29
+ transformResponse(ctx)
30
+
31
+ if ('list' == op.name) {
32
+ const resdata = result.resdata
33
+ result.resdata = []
34
+
35
+ if (null != resdata && 0 < resdata.length) {
36
+ for (let entry of resdata) {
37
+ const ent = entity.make()
38
+ ent.data(entry)
39
+ result.resdata.push(ent)
40
+ }
41
+ }
42
+ }
43
+
44
+ if (ctx.ctrl.explain) {
45
+ ctx.ctrl.explain.result = result
46
+ }
47
+
48
+ // NOTE: returns processesd result.
49
+ return result
50
+ }
51
+
52
+ module.exports = {
53
+ makeResult
54
+ }
@@ -0,0 +1,58 @@
1
+
2
+ const { Spec } = require('../Spec')
3
+
4
+ // Create request specificaton.
5
+ function makeSpec(ctx) {
6
+ if (ctx.out.spec) {
7
+ return ctx.spec = ctx.out.spec
8
+ }
9
+
10
+ const point = ctx.point
11
+ const options = ctx.options
12
+ const utility = ctx.utility
13
+
14
+ const prepareMethod = utility.prepareMethod
15
+ const prepareParams = utility.prepareParams
16
+ const prepareQuery = utility.prepareQuery
17
+ const prepareHeaders = utility.prepareHeaders
18
+ const prepareBody = utility.prepareBody
19
+ const preparePath = utility.preparePath
20
+ const prepareAuth = utility.prepareAuth
21
+
22
+ ctx.spec = new Spec({
23
+ base: options.base,
24
+ prefix: options.prefix,
25
+ parts: point.parts,
26
+ suffix: options.suffix,
27
+ step: 'start',
28
+ })
29
+
30
+ ctx.spec.method = prepareMethod(ctx)
31
+
32
+ if (!options.allow.method.includes(ctx.spec.method)) {
33
+ return ctx.error('spec_method_allow', 'Method "' + ctx.spec.method +
34
+ '" not allowed by SDK option allow.method value: "' + options.allow.method + '"')
35
+ }
36
+
37
+ ctx.spec.params = prepareParams(ctx)
38
+ ctx.spec.query = prepareQuery(ctx)
39
+ ctx.spec.headers = prepareHeaders(ctx)
40
+ ctx.spec.body = prepareBody(ctx)
41
+ ctx.spec.path = preparePath(ctx)
42
+
43
+ if (ctx.ctrl.explain) {
44
+ ctx.ctrl.explain.spec = ctx.spec
45
+ }
46
+
47
+ const spec = prepareAuth(ctx)
48
+
49
+ if (!(spec instanceof Error)) {
50
+ ctx.spec = spec
51
+ }
52
+
53
+ return spec
54
+ }
55
+
56
+ module.exports = {
57
+ makeSpec
58
+ }