@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
@@ -37,7 +37,7 @@ import {
37
37
  } from './utility_js'
38
38
 
39
39
 
40
- type OpGen = (model: any, entity: any, flow: any, step: any, index: any) => void
40
+ type OpGen = (model: any, entity: any, flow: any, step: any, index: { key$: number, val$: any }) => void
41
41
 
42
42
 
43
43
  const TestEntity = cmp(function TestEntity(props: any) {
@@ -78,9 +78,9 @@ const TestEntity = cmp(function TestEntity(props: any) {
78
78
  const indent = 2
79
79
 
80
80
  const idlist = flatten([
81
- '${entity.name}01',
82
- '${entity.name}02',
83
- '${entity.name}03',
81
+ entity.name + '01',
82
+ entity.name + '02',
83
+ entity.name + '03',
84
84
  flatten(items(entity.relations.ancestors, (ap: any) =>
85
85
  items(ap[1], (a: any) =>
86
86
  items(['01', '02', '03'], (n: any) =>
@@ -156,6 +156,10 @@ function basicSetup(extra) {
156
156
 
157
157
 
158
158
  Slot({ name: 'basic' }, () => {
159
+ const flowHasCreate = Object.values(basicflow.step).some(
160
+ (s: any) => s.op === 'create'
161
+ )
162
+
159
163
  Content(`
160
164
  const setup = basicSetup()
161
165
  const client = setup.client
@@ -166,6 +170,15 @@ function basicSetup(extra) {
166
170
 
167
171
  `)
168
172
 
173
+ // When the flow has no create step, bootstrap the entity data variable
174
+ // from existing test data so that subsequent update/load/remove steps
175
+ // can reference it.
176
+ if (!flowHasCreate) {
177
+ const ref01 = entity.name + '_ref01'
178
+ Content(` let ${ref01}_data = Object.values(setup.data.existing.${entity.name})[0]
179
+ `)
180
+ }
181
+
169
182
  each(basicflow.step, (step: any, index: any) => {
170
183
  const opgen: OpGen = GENERATE_OP[step.op]
171
184
  opgen(model, entity, basicflow, step, index)
@@ -183,17 +196,39 @@ const generateCreate: OpGen = (
183
196
  entity: ModelEntity,
184
197
  flow: ModelEntityFlow,
185
198
  step: ModelEntityFlowStep,
186
- index: number
199
+ index: any
187
200
  ) => {
188
201
  const ref = step.input.ref ?? entity.name + '_ref01'
189
202
  const entvar = step.input.entvar ?? ref + '_ent'
190
203
  const datavar = step.input.datavar ?? (ref + '_data' + (step.input.suffix ?? ''))
191
204
 
205
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
206
+ const needsEnt = !priorSteps.some((s: any) =>
207
+ ['create', 'list', 'load', 'update', 'remove'].includes(s.op))
208
+
209
+ const hasDatvar = priorSteps.some((s: any) => {
210
+ if ('create' === s.op) {
211
+ const priorRef = s.input?.ref ?? entity.name + '_ref01'
212
+ const priorDatvar = s.input?.datavar ?? (priorRef + '_data' + (s.input?.suffix ?? ''))
213
+ return priorDatvar === datavar
214
+ }
215
+ return false
216
+ })
217
+
192
218
  Content(`
193
219
  // CREATE
194
- const ${entvar} = client.${nom(entity, 'Name')}()
195
- let ${datavar} = setup.data.new.${entity.name}['${ref}']
196
220
  `)
221
+ if (needsEnt) {
222
+ Content(` const ${entvar} = client.${nom(entity, 'Name')}()
223
+ `)
224
+ }
225
+ if (hasDatvar) {
226
+ Content(` ${datavar} = setup.data.new.${entity.name}['${ref}']
227
+ `)
228
+ } else {
229
+ Content(` let ${datavar} = setup.data.new.${entity.name}['${ref}']
230
+ `)
231
+ }
197
232
 
198
233
  each(step.match, (mi: any) => {
199
234
  Content(` ${datavar}['${mi.key$}'] = setup.idmap['${mi.val$}']
@@ -212,16 +247,25 @@ const generateList: OpGen = (
212
247
  entity: ModelEntity,
213
248
  flow: ModelEntityFlow,
214
249
  step: ModelEntityFlowStep,
215
- index: number
250
+ index: any
216
251
  ) => {
217
252
  const ref = step.input.ref ?? entity.name + '_ref01'
218
253
  const entvar = step.input.entvar ?? ref + '_ent'
219
254
  const matchvar = step.input.matchvar ?? (ref + '_match' + (step.input.suffix ?? ''))
220
255
  const listvar = step.input.listvar ?? (ref + '_list' + (step.input.suffix ?? ''))
221
256
 
257
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
258
+ const needsEnt = !priorSteps.some((s: any) =>
259
+ ['create', 'list', 'load', 'update', 'remove'].includes(s.op))
260
+
222
261
  Content(`
223
262
  // LIST
224
- const ${matchvar} = {}
263
+ `)
264
+ if (needsEnt) {
265
+ Content(` const ${entvar} = client.${nom(entity, 'Name')}()
266
+ `)
267
+ }
268
+ Content(` const ${matchvar} = {}
225
269
  `)
226
270
 
227
271
  each(step.match, (mi: any) => {
@@ -232,16 +276,21 @@ const generateList: OpGen = (
232
276
  Content(`
233
277
  const ${listvar} = await ${entvar}.list(${matchvar})
234
278
  `)
279
+ const allSteps = Object.values(flow.step)
235
280
  for (let vI = 0; vI < step.valid.length; vI++) {
236
281
  const validator = step.valid[vI]
237
- if ('ItemExists' === validator.apply) {
282
+ const validRef = validator.def?.ref
283
+ const hasRefData = validRef && allSteps.some((s: any) => 'create' === s.op &&
284
+ ((s.input?.ref ?? entity.name + '_ref01') === validRef))
285
+
286
+ if ('ItemExists' === validator.apply && hasRefData) {
238
287
  Content(`
239
- assert(!isempty(select(${listvar}, { id: ${validator.def.ref}_data.id })))
288
+ assert(!isempty(select(${listvar}, { id: ${validRef}_data.id })))
240
289
  `)
241
290
  }
242
- else if ('ItemNotExists' === validator.apply) {
291
+ else if ('ItemNotExists' === validator.apply && hasRefData) {
243
292
  Content(`
244
- assert(isempty(select(${listvar}, { id: ${validator.def.ref}_data.id })))
293
+ assert(isempty(select(${listvar}, { id: ${validRef}_data.id })))
245
294
  `)
246
295
  }
247
296
  }
@@ -253,7 +302,7 @@ const generateUpdate: OpGen = (
253
302
  entity: ModelEntity,
254
303
  flow: ModelEntityFlow,
255
304
  step: ModelEntityFlowStep,
256
- index: number
305
+ index: any
257
306
  ) => {
258
307
  const ref = step.input.ref ?? entity.name + '_ref01'
259
308
  const entvar = step.input.entvar ?? ref + '_ent'
@@ -262,9 +311,18 @@ const generateUpdate: OpGen = (
262
311
  const markdefvar = step.input.markdefvar ?? (ref + '_markdef' + (step.input.suffix ?? ''))
263
312
  const srcdatavar = step.input.srcdatavar ?? (ref + '_data' + (step.input.suffix ?? ''))
264
313
 
314
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
315
+ const needsEnt = !priorSteps.some((s: any) =>
316
+ ['create', 'list', 'load', 'update', 'remove'].includes(s.op))
317
+
265
318
  Content(`
266
319
  // UPDATE
267
- const ${datavar} = {}
320
+ `)
321
+ if (needsEnt) {
322
+ Content(` const ${entvar} = client.${nom(entity, 'Name')}()
323
+ `)
324
+ }
325
+ Content(` const ${datavar} = {}
268
326
  ${datavar}.id = ${srcdatavar}.id
269
327
  `)
270
328
 
@@ -295,7 +353,7 @@ const generateUpdate: OpGen = (
295
353
 
296
354
  for (let sI = 0; sI < step.spec.length; sI++) {
297
355
  const spec = step.spec[sI]
298
- if ('TextFieldMark' === spec.apply) {
356
+ if ('TextFieldMark' === spec.apply && null != step.input.textfield) {
299
357
  Content(`
300
358
  assert(${resdatavar}[${markdefvar}.name] === ${markdefvar}.value)
301
359
  `)
@@ -310,7 +368,7 @@ const generateLoad: OpGen = (
310
368
  entity: ModelEntity,
311
369
  flow: ModelEntityFlow,
312
370
  step: ModelEntityFlowStep,
313
- index: number
371
+ index: any
314
372
  ) => {
315
373
  const ref = step.input.ref ?? entity.name + '_ref01'
316
374
  const entvar = step.input.entvar ?? ref + '_ent'
@@ -318,9 +376,36 @@ const generateLoad: OpGen = (
318
376
  const datavar = step.input.datavar ?? (ref + '_data' + (step.input.suffix ?? ''))
319
377
  const srcdatavar = step.input.srcdatavar ?? (ref + '_data' + (step.input.suffix ?? ''))
320
378
 
379
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
380
+ const hasEntVar = priorSteps.some((s: any) =>
381
+ ['create', 'list', 'load', 'update', 'remove'].includes(s.op))
382
+
383
+ // Check if srcdatavar was declared by a prior create step or by the
384
+ // preamble bootstrap (which runs when the flow has no create step)
385
+ const flowHasCreate = Object.values(flow.step).some((s: any) => s.op === 'create')
386
+ const preambleRef = entity.name + '_ref01'
387
+ const hasSrcData = (!flowHasCreate && srcdatavar === preambleRef + '_data') ||
388
+ priorSteps.some((s: any) => {
389
+ if ('create' === s.op) {
390
+ const priorRef = s.input?.ref ?? entity.name + '_ref01'
391
+ const priorDatvar = s.input?.datavar ?? (priorRef + '_data' + (s.input?.suffix ?? ''))
392
+ return priorDatvar === srcdatavar
393
+ }
394
+ return false
395
+ })
396
+
321
397
  Content(`
322
398
  // LOAD
323
- const ${matchvar} = {}
399
+ `)
400
+ if (!hasEntVar) {
401
+ Content(` const ${entvar} = client.${nom(entity, 'Name')}()
402
+ `)
403
+ }
404
+ if (!hasSrcData) {
405
+ Content(` const ${srcdatavar} = Object.values(setup.data.existing.${entity.name})[0]
406
+ `)
407
+ }
408
+ Content(` const ${matchvar} = {}
324
409
  ${matchvar}.id = ${srcdatavar}.id
325
410
  const ${datavar} = await ${entvar}.load(${matchvar})
326
411
  assert(${datavar}.id === ${srcdatavar}.id)
@@ -333,16 +418,25 @@ const generateRemove: OpGen = (
333
418
  entity: ModelEntity,
334
419
  flow: ModelEntityFlow,
335
420
  step: ModelEntityFlowStep,
336
- index: number
421
+ index: any
337
422
  ) => {
338
423
  const ref = step.input.ref ?? entity.name + '_ref01'
339
424
  const entvar = step.input.entvar ?? ref + '_ent'
340
425
  const matchvar = step.input.matchvar ?? (ref + '_match' + (step.input.suffix ?? ''))
341
426
  const srcdatavar = step.input.srcdatavar ?? (ref + '_data')
342
427
 
428
+ const priorSteps = Object.values(flow.step).slice(0, Number(index))
429
+ const needsEnt = !priorSteps.some((s: any) =>
430
+ ['create', 'list', 'load', 'update', 'remove'].includes(s.op))
431
+
343
432
  Content(`
344
433
  // REMOVE
345
- const ${matchvar} = {}
434
+ `)
435
+ if (needsEnt) {
436
+ Content(` const ${entvar} = client.${nom(entity, 'Name')}()
437
+ `)
438
+ }
439
+ Content(` const ${matchvar} = {}
346
440
  ${matchvar}.id = ${srcdatavar}.id
347
441
  await ${entvar}.remove(${matchvar})
348
442
  `)
@@ -1,106 +1,22 @@
1
1
 
2
2
  const { inspect } = require('node:util')
3
3
 
4
- const {
5
- SdkNameSDK,
6
- SdkNameEntity,
7
- } = require('../SdkNameSDK')
8
-
9
- const {
10
- Utility
11
- } = require('../utility/Utility')
4
+ const { ProjectNameEntityBase } = require('../ProjectNameEntityBase')
12
5
 
13
6
 
14
7
  // TODO: needs Entity superclass
15
- class EntityNameEntity {
16
- name = 'entityname'
17
-
18
- #client
19
- #utility
20
- #entopts
21
- #data
22
- #match
23
-
24
- _entctx
8
+ class EntityNameEntity extends ProjectNameEntityBase {
25
9
 
26
10
  constructor(client, entopts) {
27
- // super()
28
- entopts = entopts || {}
29
- entopts.active = false !== entopts.active
30
-
31
- this.#client = client
32
- this.#entopts = entopts
33
- this.#utility = client.utility()
34
- this.#data = {}
35
- this.#match = {}
36
-
37
- const makeContext = this.#utility.makeContext
38
-
39
- this._entctx = makeContext({
40
- entity: this,
41
- entopts,
42
- }, client._rootctx)
43
-
44
- const featureHook = this.#utility.featureHook
45
- featureHook(this._entctx, 'PostConstructEntity')
11
+ super(client, entopts)
12
+ this.name = 'entityname'
13
+ this.name_ = 'entityname'
14
+ this.Name = 'EntityName'
46
15
  }
47
16
 
48
- entopts() {
49
- return { ...this.#entopts }
50
- }
51
-
52
- client() {
53
- return this.#client
54
- }
55
17
 
56
18
  make() {
57
- return new EntityNameEntity(this.#client, this.entopts())
58
- }
59
-
60
-
61
- data(data) {
62
- const struct = this.#utility.struct
63
- const featureHook = this.#utility.featureHook
64
-
65
- if (null != data) {
66
- this.#data = struct.clone(data)
67
- featureHook(this._entctx, 'SetData')
68
- }
69
-
70
- featureHook(this._entctx, 'GetData')
71
- let out = struct.clone(this.#data)
72
-
73
- return out
74
- }
75
-
76
-
77
- match(match) {
78
- const struct = this.#utility.struct
79
- const featureHook = this.#utility.featureHook
80
-
81
- if (null != match) {
82
- this.#match = struct.clone(match)
83
- featureHook(this._entctx, 'SetMatch')
84
- }
85
-
86
- featureHook(this._entctx, 'GetMatch')
87
- let out = struct.clone(this.#match)
88
-
89
- return out
90
- }
91
-
92
-
93
- toJSON() {
94
- const struct = this.#utility.struct
95
- return struct.merge([{}, struct.getdef(this.#data, {}), { $entity: 'EntityName' }])
96
- }
97
-
98
- toString() {
99
- return 'EntityName ' + this.#utility.struct.jsonify(this.#data)
100
- }
101
-
102
- [inspect.custom]() {
103
- return this.toString()
19
+ return new EntityNameEntity(this._client, this.entopts())
104
20
  }
105
21
 
106
22
 
@@ -114,54 +30,6 @@ class EntityNameEntity {
114
30
 
115
31
  // #RemoveOp
116
32
 
117
-
118
- #unexpected(ctx, err) {
119
- const clean = this.#utility.clean
120
- const struct = this.#utility.struct
121
-
122
- const delprop = struct.delprop
123
- const clone = struct.clone
124
- const merge = struct.merge
125
-
126
- const ctrl = ctx.ctrl
127
-
128
- ctrl.err = err
129
-
130
- if (ctrl.explain) {
131
- ctx.ctrl.explain = clean(ctx, ctx.ctrl.explain)
132
- delprop(ctx.ctrl.explain.result, 'err')
133
-
134
- if (null != ctx.result && null != ctx.result.err) {
135
- ctrl.explain.err = clean(ctx, merge([
136
- clone({ err: ctx.result.err }).err,
137
- {
138
- message: ctx.result.err.message,
139
- stack: ctx.result.err.stack,
140
- }]))
141
- }
142
-
143
- const cleanerr = clean(ctx, merge([
144
- clone({ err }).err,
145
- {
146
- message: err.message,
147
- stack: err.stack,
148
- }]))
149
-
150
- if (null == ctrl.explain.err) {
151
- ctrl.explain.err = cleanerr
152
- }
153
- else if (ctrl.explain.err.message != cleanerr.message) {
154
- ctrl.explain.unexpected = cleanerr
155
- }
156
- }
157
-
158
- if (false === ctrl.throw) {
159
- return undefined
160
- }
161
-
162
- return err
163
- }
164
-
165
33
  }
166
34
 
167
35
 
@@ -0,0 +1,149 @@
1
+
2
+ const { inspect } = require('node:util')
3
+
4
+
5
+ // TODO: needs Entity superclass
6
+ class ProjectNameEntityBase {
7
+ name = ''
8
+ name_ = ''
9
+ Name = ''
10
+
11
+ _client
12
+ _utility
13
+ _entopts
14
+ _data
15
+ _match
16
+ _entctx
17
+
18
+
19
+ constructor(client, entopts) {
20
+ entopts = entopts || {}
21
+ entopts.active = false !== entopts.active
22
+
23
+ this._client = client
24
+ this._entopts = entopts
25
+ this._utility = client.utility()
26
+ this._data = {}
27
+ this._match = {}
28
+
29
+ const makeContext = this._utility.makeContext
30
+
31
+ this._entctx = makeContext({
32
+ entity: this,
33
+ entopts,
34
+ }, client._rootctx)
35
+
36
+ const featureHook = this._utility.featureHook
37
+ featureHook(this._entctx, 'PostConstructEntity')
38
+ }
39
+
40
+ entopts() {
41
+ return this._utility.struct.merge([{}, this._entopts])
42
+ }
43
+
44
+ client() {
45
+ return this._client
46
+ }
47
+
48
+
49
+ data(data) {
50
+ const struct = this._utility.struct
51
+ const featureHook = this._utility.featureHook
52
+
53
+ if (null != data) {
54
+ this._data = struct.clone(data)
55
+ featureHook(this._entctx, 'SetData')
56
+ }
57
+
58
+ featureHook(this._entctx, 'GetData')
59
+ let out = struct.clone(this._data)
60
+
61
+ return out
62
+ }
63
+
64
+
65
+ match(match) {
66
+ const struct = this._utility.struct
67
+ const featureHook = this._utility.featureHook
68
+
69
+ if (null != match) {
70
+ this._match = struct.clone(match)
71
+ featureHook(this._entctx, 'SetMatch')
72
+ }
73
+
74
+ featureHook(this._entctx, 'GetMatch')
75
+ let out = struct.clone(this._match)
76
+
77
+ return out
78
+ }
79
+
80
+
81
+ toJSON() {
82
+ const struct = this._utility.struct
83
+ return struct.merge([{}, struct.getdef(this._data, {}), { entity$: this.Name }])
84
+ }
85
+
86
+
87
+ toString() {
88
+ return this.Name + ' ' + this._utility.struct.jsonify(this._data)
89
+ }
90
+
91
+
92
+ [inspect.custom]() {
93
+ return this.toString()
94
+ }
95
+
96
+
97
+ _unexpected(ctx, err) {
98
+ const clean = this._utility.clean
99
+ const struct = this._utility.struct
100
+
101
+ const delprop = struct.delprop
102
+ const clone = struct.clone
103
+ const merge = struct.merge
104
+
105
+ const ctrl = ctx.ctrl
106
+
107
+ ctrl.err = err
108
+
109
+ if (ctrl.explain) {
110
+ ctx.ctrl.explain = clean(ctx, ctx.ctrl.explain)
111
+ delprop(ctx.ctrl.explain.result, 'err')
112
+
113
+ if (null != ctx.result && null != ctx.result.err) {
114
+ ctrl.explain.err = clean(ctx, merge([
115
+ clone({ err: ctx.result.err }).err,
116
+ {
117
+ message: ctx.result.err.message,
118
+ stack: ctx.result.err.stack,
119
+ }]))
120
+ }
121
+
122
+ const cleanerr = clean(ctx, merge([
123
+ clone({ err }).err,
124
+ {
125
+ message: err.message,
126
+ stack: err.stack,
127
+ }]))
128
+
129
+ if (null == ctrl.explain.err) {
130
+ ctrl.explain.err = cleanerr
131
+ }
132
+ else if (ctrl.explain.err.message != cleanerr.message) {
133
+ ctrl.explain.unexpected = cleanerr
134
+ }
135
+ }
136
+
137
+ if (false === ctrl.throw) {
138
+ return undefined
139
+ }
140
+
141
+ return err
142
+ }
143
+
144
+ }
145
+
146
+
147
+ module.exports = {
148
+ ProjectNameEntityBase
149
+ }
@@ -1,16 +1,12 @@
1
1
 
2
2
  class EntityOperation {
3
3
 
4
- #match
5
- #data
6
- #utility
7
-
8
4
 
9
5
  // EJECT-START
10
6
 
11
7
  async create(reqdata, ctrl) {
12
8
 
13
- const utility = this.#utility
9
+ const utility = this._utility
14
10
  const {
15
11
  makeContext,
16
12
  done,
@@ -28,8 +24,8 @@ class EntityOperation {
28
24
  let ctx = makeContext({
29
25
  opname: 'create',
30
26
  ctrl,
31
- match: this.#match,
32
- data: this.#data,
27
+ match: this._match,
28
+ data: this._data,
33
29
  reqdata
34
30
  }, this._entctx)
35
31
 
@@ -78,7 +74,7 @@ class EntityOperation {
78
74
 
79
75
  if (null != ctx.result) {
80
76
  if (null != ctx.result.resdata) {
81
- this.#data = ctx.result.resdata
77
+ this._data = ctx.result.resdata
82
78
  }
83
79
  }
84
80
 
@@ -87,7 +83,7 @@ class EntityOperation {
87
83
  catch (err) {
88
84
  // #PreUnexpected-Hook
89
85
 
90
- err = this.#unexpected(ctx, err)
86
+ err = this._unexpected(ctx, err)
91
87
 
92
88
  if (err) {
93
89
  throw err
@@ -101,5 +97,5 @@ class EntityOperation {
101
97
  // EJECT-END
102
98
 
103
99
 
104
- #unexpected(ctx, err) { return err }
100
+ _unexpected(ctx, err) { return err }
105
101
  }
@@ -1,16 +1,12 @@
1
1
 
2
2
  class EntityOperation {
3
3
 
4
- #match
5
- #data
6
- #utility
7
-
8
4
 
9
5
  // EJECT-START
10
6
 
11
7
  async list(reqmatch, ctrl) {
12
8
 
13
- const utility = this.#utility
9
+ const utility = this._utility
14
10
 
15
11
  const {
16
12
  makeContext,
@@ -29,8 +25,8 @@ class EntityOperation {
29
25
  let ctx = makeContext({
30
26
  opname: 'list',
31
27
  ctrl,
32
- match: this.#match,
33
- data: this.#data,
28
+ match: this._match,
29
+ data: this._data,
34
30
  reqmatch
35
31
  }, this._entctx)
36
32
 
@@ -79,7 +75,7 @@ class EntityOperation {
79
75
 
80
76
  if (null != ctx.result) {
81
77
  if (null != ctx.result.resmatch) {
82
- this.#match = ctx.result.resmatch
78
+ this._match = ctx.result.resmatch
83
79
  }
84
80
  }
85
81
 
@@ -88,7 +84,7 @@ class EntityOperation {
88
84
  catch (err) {
89
85
  // #PreUnexpected-Hook
90
86
 
91
- err = this.#unexpected(ctx, err)
87
+ err = this._unexpected(ctx, err)
92
88
 
93
89
  if (err) {
94
90
  throw err
@@ -102,7 +98,7 @@ class EntityOperation {
102
98
  // EJECT-END
103
99
 
104
100
 
105
- #unexpected(_ctx, err) { return err }
101
+ _unexpected(_ctx, err) { return err }
106
102
 
107
103
  }
108
104