@voxgig/sdkgen 0.35.2 → 0.36.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 (385) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/cmp/Readme.js +5 -5
  3. package/dist/cmp/Readme.js.map +1 -1
  4. package/dist/cmp/ReadmeEntity.js +74 -24
  5. package/dist/cmp/ReadmeEntity.js.map +1 -1
  6. package/dist/cmp/ReadmeExplanation.d.ts +2 -0
  7. package/dist/cmp/ReadmeExplanation.js +308 -0
  8. package/dist/cmp/ReadmeExplanation.js.map +1 -0
  9. package/dist/cmp/ReadmeHowto.d.ts +2 -0
  10. package/dist/cmp/ReadmeHowto.js +18 -0
  11. package/dist/cmp/ReadmeHowto.js.map +1 -0
  12. package/dist/cmp/ReadmeIntro.js +8 -23
  13. package/dist/cmp/ReadmeIntro.js.map +1 -1
  14. package/dist/cmp/ReadmeModel.js +55 -91
  15. package/dist/cmp/ReadmeModel.js.map +1 -1
  16. package/dist/cmp/ReadmeOptions.js +35 -11
  17. package/dist/cmp/ReadmeOptions.js.map +1 -1
  18. package/dist/cmp/ReadmeQuick.js +4 -1
  19. package/dist/cmp/ReadmeQuick.js.map +1 -1
  20. package/dist/cmp/ReadmeRef.js +1042 -40
  21. package/dist/cmp/ReadmeRef.js.map +1 -1
  22. package/dist/cmp/ReadmeTop.d.ts +2 -0
  23. package/dist/cmp/ReadmeTop.js +171 -0
  24. package/dist/cmp/ReadmeTop.js.map +1 -0
  25. package/dist/sdkgen.d.ts +7 -1
  26. package/dist/sdkgen.js +13 -1
  27. package/dist/sdkgen.js.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +2 -2
  30. package/project/.sdk/model/feature/feature-index.jsonic +5 -0
  31. package/project/.sdk/model/feature/log.jsonic +5 -1
  32. package/project/.sdk/model/feature/test.jsonic +1 -1
  33. package/project/.sdk/model/target/lua.jsonic +23 -0
  34. package/project/.sdk/model/target/php.jsonic +22 -0
  35. package/project/.sdk/model/target/py.jsonic +23 -0
  36. package/project/.sdk/model/target/rb.jsonic +23 -0
  37. package/project/.sdk/src/cmp/go/Main_go.ts +2 -6
  38. package/project/.sdk/src/cmp/go/ReadmeExplanation_go.ts +42 -0
  39. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +112 -0
  40. package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +29 -0
  41. package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +129 -0
  42. package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +163 -0
  43. package/project/.sdk/src/cmp/go/ReadmeTopHowto_go.ts +24 -0
  44. package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +67 -0
  45. package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +40 -0
  46. package/project/.sdk/src/cmp/go/TestDirect_go.ts +46 -2
  47. package/project/.sdk/src/cmp/go/TestEntity_go.ts +360 -160
  48. package/project/.sdk/src/cmp/go/Test_go.ts +24 -1
  49. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +1 -1
  50. package/project/.sdk/src/cmp/lua/Config_lua.ts +112 -0
  51. package/project/.sdk/src/cmp/lua/EntityOperation_lua.ts +44 -0
  52. package/project/.sdk/src/cmp/lua/Entity_lua.ts +62 -0
  53. package/project/.sdk/src/cmp/lua/MainEntity_lua.ts +23 -0
  54. package/project/.sdk/src/cmp/lua/Main_lua.ts +133 -0
  55. package/project/.sdk/src/cmp/lua/Package_lua.ts +80 -0
  56. package/project/.sdk/src/cmp/lua/ReadmeExplanation_lua.ts +42 -0
  57. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +100 -0
  58. package/project/.sdk/src/cmp/lua/ReadmeInstall_lua.ts +26 -0
  59. package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +129 -0
  60. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +99 -0
  61. package/project/.sdk/src/cmp/lua/ReadmeTopHowto_lua.ts +24 -0
  62. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +55 -0
  63. package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +38 -0
  64. package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +261 -0
  65. package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +483 -0
  66. package/project/.sdk/src/cmp/lua/Test_lua.ts +49 -0
  67. package/project/.sdk/src/cmp/lua/fragment/Entity.fragment.lua +147 -0
  68. package/project/.sdk/src/cmp/lua/fragment/EntityCreateOp.fragment.lua +27 -0
  69. package/project/.sdk/src/cmp/lua/fragment/EntityListOp.fragment.lua +24 -0
  70. package/project/.sdk/src/cmp/lua/fragment/EntityLoadOp.fragment.lua +30 -0
  71. package/project/.sdk/src/cmp/lua/fragment/EntityRemoveOp.fragment.lua +30 -0
  72. package/project/.sdk/src/cmp/lua/fragment/EntityUpdateOp.fragment.lua +30 -0
  73. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +256 -0
  74. package/project/.sdk/src/cmp/lua/fragment/SdkError.fragment.lua +26 -0
  75. package/project/.sdk/src/cmp/lua/tsconfig.json +15 -0
  76. package/project/.sdk/src/cmp/lua/utility_lua.ts +84 -0
  77. package/project/.sdk/src/cmp/php/Config_php.ts +107 -0
  78. package/project/.sdk/src/cmp/php/EntityOperation_php.ts +44 -0
  79. package/project/.sdk/src/cmp/php/Entity_php.ts +62 -0
  80. package/project/.sdk/src/cmp/php/MainEntity_php.ts +24 -0
  81. package/project/.sdk/src/cmp/php/Main_php.ts +135 -0
  82. package/project/.sdk/src/cmp/php/Package_php.ts +87 -0
  83. package/project/.sdk/src/cmp/php/ReadmeExplanation_php.ts +42 -0
  84. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +101 -0
  85. package/project/.sdk/src/cmp/php/ReadmeInstall_php.ts +19 -0
  86. package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +129 -0
  87. package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +100 -0
  88. package/project/.sdk/src/cmp/php/ReadmeTopHowto_php.ts +24 -0
  89. package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +56 -0
  90. package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +38 -0
  91. package/project/.sdk/src/cmp/php/TestDirect_php.ts +270 -0
  92. package/project/.sdk/src/cmp/php/TestEntity_php.ts +484 -0
  93. package/project/.sdk/src/cmp/php/Test_php.ts +56 -0
  94. package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +146 -0
  95. package/project/.sdk/src/cmp/php/fragment/EntityCreateOp.fragment.php +26 -0
  96. package/project/.sdk/src/cmp/php/fragment/EntityListOp.fragment.php +23 -0
  97. package/project/.sdk/src/cmp/php/fragment/EntityLoadOp.fragment.php +29 -0
  98. package/project/.sdk/src/cmp/php/fragment/EntityRemoveOp.fragment.php +29 -0
  99. package/project/.sdk/src/cmp/php/fragment/EntityUpdateOp.fragment.php +29 -0
  100. package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +233 -0
  101. package/project/.sdk/src/cmp/php/fragment/SdkError.fragment.php +24 -0
  102. package/project/.sdk/src/cmp/php/tsconfig.json +15 -0
  103. package/project/.sdk/src/cmp/php/utility_php.ts +85 -0
  104. package/project/.sdk/src/cmp/py/Config_py.ts +93 -0
  105. package/project/.sdk/src/cmp/py/EntityOperation_py.ts +44 -0
  106. package/project/.sdk/src/cmp/py/Entity_py.ts +62 -0
  107. package/project/.sdk/src/cmp/py/MainEntity_py.ts +22 -0
  108. package/project/.sdk/src/cmp/py/Main_py.ts +156 -0
  109. package/project/.sdk/src/cmp/py/Package_py.ts +75 -0
  110. package/project/.sdk/src/cmp/py/ReadmeExplanation_py.ts +41 -0
  111. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +98 -0
  112. package/project/.sdk/src/cmp/py/ReadmeInstall_py.ts +25 -0
  113. package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +130 -0
  114. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +100 -0
  115. package/project/.sdk/src/cmp/py/ReadmeTopHowto_py.ts +24 -0
  116. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +56 -0
  117. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +38 -0
  118. package/project/.sdk/src/cmp/py/TestDirect_py.ts +248 -0
  119. package/project/.sdk/src/cmp/py/TestEntity_py.ts +475 -0
  120. package/project/.sdk/src/cmp/py/Test_py.ts +55 -0
  121. package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +112 -0
  122. package/project/.sdk/src/cmp/py/fragment/EntityCreateOp.fragment.py +25 -0
  123. package/project/.sdk/src/cmp/py/fragment/EntityListOp.fragment.py +22 -0
  124. package/project/.sdk/src/cmp/py/fragment/EntityLoadOp.fragment.py +27 -0
  125. package/project/.sdk/src/cmp/py/fragment/EntityRemoveOp.fragment.py +27 -0
  126. package/project/.sdk/src/cmp/py/fragment/EntityUpdateOp.fragment.py +27 -0
  127. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +222 -0
  128. package/project/.sdk/src/cmp/py/fragment/SdkError.fragment.py +16 -0
  129. package/project/.sdk/src/cmp/py/tsconfig.json +15 -0
  130. package/project/.sdk/src/cmp/py/utility_py.ts +84 -0
  131. package/project/.sdk/src/cmp/rb/Config_rb.ts +101 -0
  132. package/project/.sdk/src/cmp/rb/EntityOperation_rb.ts +44 -0
  133. package/project/.sdk/src/cmp/rb/Entity_rb.ts +62 -0
  134. package/project/.sdk/src/cmp/rb/MainEntity_rb.ts +23 -0
  135. package/project/.sdk/src/cmp/rb/Main_rb.ts +130 -0
  136. package/project/.sdk/src/cmp/rb/Package_rb.ts +111 -0
  137. package/project/.sdk/src/cmp/rb/ReadmeExplanation_rb.ts +42 -0
  138. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +98 -0
  139. package/project/.sdk/src/cmp/rb/ReadmeInstall_rb.ts +31 -0
  140. package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +129 -0
  141. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +99 -0
  142. package/project/.sdk/src/cmp/rb/ReadmeTopHowto_rb.ts +24 -0
  143. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +55 -0
  144. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +38 -0
  145. package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +260 -0
  146. package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +476 -0
  147. package/project/.sdk/src/cmp/rb/Test_rb.ts +50 -0
  148. package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +116 -0
  149. package/project/.sdk/src/cmp/rb/fragment/EntityCreateOp.fragment.rb +25 -0
  150. package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +20 -0
  151. package/project/.sdk/src/cmp/rb/fragment/EntityLoadOp.fragment.rb +26 -0
  152. package/project/.sdk/src/cmp/rb/fragment/EntityRemoveOp.fragment.rb +26 -0
  153. package/project/.sdk/src/cmp/rb/fragment/EntityUpdateOp.fragment.rb +26 -0
  154. package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +203 -0
  155. package/project/.sdk/src/cmp/rb/fragment/SdkError.fragment.rb +16 -0
  156. package/project/.sdk/src/cmp/rb/tsconfig.json +15 -0
  157. package/project/.sdk/src/cmp/rb/utility_rb.ts +84 -0
  158. package/project/.sdk/src/cmp/ts/ReadmeExplanation_ts.ts +34 -0
  159. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +123 -0
  160. package/project/.sdk/src/cmp/ts/ReadmeInstall_ts.ts +1 -1
  161. package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +159 -0
  162. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +69 -54
  163. package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +25 -0
  164. package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +65 -0
  165. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +36 -0
  166. package/project/.sdk/tm/go/feature/log_feature.go +133 -0
  167. package/project/.sdk/tm/go/src/feature/log/.gitkeep +0 -0
  168. package/project/.sdk/tm/lua/LICENSE +22 -0
  169. package/project/.sdk/tm/lua/Makefile +10 -0
  170. package/project/.sdk/tm/lua/core/context.lua +208 -0
  171. package/project/.sdk/tm/lua/core/control.lua +17 -0
  172. package/project/.sdk/tm/lua/core/error.lua +30 -0
  173. package/project/.sdk/tm/lua/core/helpers.lua +30 -0
  174. package/project/.sdk/tm/lua/core/operation.lua +51 -0
  175. package/project/.sdk/tm/lua/core/response.lua +45 -0
  176. package/project/.sdk/tm/lua/core/result.lua +58 -0
  177. package/project/.sdk/tm/lua/core/spec.lua +29 -0
  178. package/project/.sdk/tm/lua/core/utility_type.lua +90 -0
  179. package/project/.sdk/tm/lua/feature/base_feature.lua +35 -0
  180. package/project/.sdk/tm/lua/feature/log_feature.lua +80 -0
  181. package/project/.sdk/tm/lua/feature/test_feature.lua +202 -0
  182. package/project/.sdk/tm/lua/src/feature/README.md +3 -0
  183. package/project/.sdk/tm/lua/src/feature/base/.gitkeep +0 -0
  184. package/project/.sdk/tm/lua/src/feature/log/.gitkeep +0 -0
  185. package/project/.sdk/tm/lua/src/feature/test/.gitkeep +0 -0
  186. package/project/.sdk/tm/lua/test/runner.lua +86 -0
  187. package/project/.sdk/tm/lua/utility/clean.lua +7 -0
  188. package/project/.sdk/tm/lua/utility/done.lua +19 -0
  189. package/project/.sdk/tm/lua/utility/feature_add.lua +8 -0
  190. package/project/.sdk/tm/lua/utility/feature_hook.lua +21 -0
  191. package/project/.sdk/tm/lua/utility/feature_init.lua +24 -0
  192. package/project/.sdk/tm/lua/utility/fetcher.lua +96 -0
  193. package/project/.sdk/tm/lua/utility/make_context.lua +9 -0
  194. package/project/.sdk/tm/lua/utility/make_error.lua +73 -0
  195. package/project/.sdk/tm/lua/utility/make_fetch_def.lua +43 -0
  196. package/project/.sdk/tm/lua/utility/make_options.lua +116 -0
  197. package/project/.sdk/tm/lua/utility/make_point.lua +92 -0
  198. package/project/.sdk/tm/lua/utility/make_request.lua +58 -0
  199. package/project/.sdk/tm/lua/utility/make_response.lua +44 -0
  200. package/project/.sdk/tm/lua/utility/make_result.lua +51 -0
  201. package/project/.sdk/tm/lua/utility/make_spec.lua +72 -0
  202. package/project/.sdk/tm/lua/utility/make_url.lua +46 -0
  203. package/project/.sdk/tm/lua/utility/param.lua +68 -0
  204. package/project/.sdk/tm/lua/utility/prepare_auth.lua +39 -0
  205. package/project/.sdk/tm/lua/utility/prepare_body.lua +14 -0
  206. package/project/.sdk/tm/lua/utility/prepare_headers.lua +20 -0
  207. package/project/.sdk/tm/lua/utility/prepare_method.lua +17 -0
  208. package/project/.sdk/tm/lua/utility/prepare_params.lua +36 -0
  209. package/project/.sdk/tm/lua/utility/prepare_path.lua +19 -0
  210. package/project/.sdk/tm/lua/utility/prepare_query.lua +41 -0
  211. package/project/.sdk/tm/lua/utility/register.lua +71 -0
  212. package/project/.sdk/tm/lua/utility/result_basic.lua +32 -0
  213. package/project/.sdk/tm/lua/utility/result_body.lua +17 -0
  214. package/project/.sdk/tm/lua/utility/result_headers.lua +22 -0
  215. package/project/.sdk/tm/lua/utility/struct/struct.lua +3417 -0
  216. package/project/.sdk/tm/lua/utility/transform_request.lua +31 -0
  217. package/project/.sdk/tm/lua/utility/transform_response.lua +44 -0
  218. package/project/.sdk/tm/php/LICENSE +22 -0
  219. package/project/.sdk/tm/php/Makefile +10 -0
  220. package/project/.sdk/tm/php/core/Context.php +139 -0
  221. package/project/.sdk/tm/php/core/Control.php +18 -0
  222. package/project/.sdk/tm/php/core/Error.php +37 -0
  223. package/project/.sdk/tm/php/core/Helpers.php +25 -0
  224. package/project/.sdk/tm/php/core/Operation.php +36 -0
  225. package/project/.sdk/tm/php/core/Response.php +30 -0
  226. package/project/.sdk/tm/php/core/Result.php +35 -0
  227. package/project/.sdk/tm/php/core/Spec.php +38 -0
  228. package/project/.sdk/tm/php/core/UtilityType.php +89 -0
  229. package/project/.sdk/tm/php/feature/BaseFeature.php +37 -0
  230. package/project/.sdk/tm/php/feature/LogFeature.php +65 -0
  231. package/project/.sdk/tm/php/feature/TestFeature.php +193 -0
  232. package/project/.sdk/tm/php/src/feature/README.md +3 -0
  233. package/project/.sdk/tm/php/src/feature/base/.gitkeep +0 -0
  234. package/project/.sdk/tm/php/src/feature/log/.gitkeep +0 -0
  235. package/project/.sdk/tm/php/src/feature/test/.gitkeep +0 -0
  236. package/project/.sdk/tm/php/test/Runner.php +89 -0
  237. package/project/.sdk/tm/php/utility/Clean.php +12 -0
  238. package/project/.sdk/tm/php/utility/Done.php +26 -0
  239. package/project/.sdk/tm/php/utility/FeatureAdd.php +12 -0
  240. package/project/.sdk/tm/php/utility/FeatureHook.php +23 -0
  241. package/project/.sdk/tm/php/utility/FeatureInit.php +25 -0
  242. package/project/.sdk/tm/php/utility/Fetcher.php +101 -0
  243. package/project/.sdk/tm/php/utility/MakeContext.php +14 -0
  244. package/project/.sdk/tm/php/utility/MakeError.php +59 -0
  245. package/project/.sdk/tm/php/utility/MakeFetchDef.php +36 -0
  246. package/project/.sdk/tm/php/utility/MakeOptions.php +98 -0
  247. package/project/.sdk/tm/php/utility/MakePoint.php +87 -0
  248. package/project/.sdk/tm/php/utility/MakeRequest.php +57 -0
  249. package/project/.sdk/tm/php/utility/MakeResponse.php +43 -0
  250. package/project/.sdk/tm/php/utility/MakeResult.php +50 -0
  251. package/project/.sdk/tm/php/utility/MakeSpec.php +64 -0
  252. package/project/.sdk/tm/php/utility/MakeUrl.php +41 -0
  253. package/project/.sdk/tm/php/utility/Param.php +66 -0
  254. package/project/.sdk/tm/php/utility/PrepareAuth.php +33 -0
  255. package/project/.sdk/tm/php/utility/PrepareBody.php +15 -0
  256. package/project/.sdk/tm/php/utility/PrepareHeaders.php +18 -0
  257. package/project/.sdk/tm/php/utility/PrepareMethod.php +21 -0
  258. package/project/.sdk/tm/php/utility/PrepareParams.php +34 -0
  259. package/project/.sdk/tm/php/utility/PreparePath.php +20 -0
  260. package/project/.sdk/tm/php/utility/PrepareQuery.php +32 -0
  261. package/project/.sdk/tm/php/utility/Register.php +67 -0
  262. package/project/.sdk/tm/php/utility/ResultBasic.php +29 -0
  263. package/project/.sdk/tm/php/utility/ResultBody.php +17 -0
  264. package/project/.sdk/tm/php/utility/ResultHeaders.php +21 -0
  265. package/project/.sdk/tm/php/utility/TransformRequest.php +27 -0
  266. package/project/.sdk/tm/php/utility/TransformResponse.php +42 -0
  267. package/project/.sdk/tm/php/utility/struct/Struct.php +3431 -0
  268. package/project/.sdk/tm/py/Makefile +10 -0
  269. package/project/.sdk/tm/py/core/__init__.py +0 -0
  270. package/project/.sdk/tm/py/core/context.py +199 -0
  271. package/project/.sdk/tm/py/core/control.py +12 -0
  272. package/project/.sdk/tm/py/core/error.py +18 -0
  273. package/project/.sdk/tm/py/core/helpers.py +15 -0
  274. package/project/.sdk/tm/py/core/operation.py +37 -0
  275. package/project/.sdk/tm/py/core/response.py +34 -0
  276. package/project/.sdk/tm/py/core/result.py +44 -0
  277. package/project/.sdk/tm/py/core/spec.py +23 -0
  278. package/project/.sdk/tm/py/core/utility_type.py +82 -0
  279. package/project/.sdk/tm/py/entity/__init__.py +0 -0
  280. package/project/.sdk/tm/py/feature/__init__.py +0 -0
  281. package/project/.sdk/tm/py/feature/base_feature.py +61 -0
  282. package/project/.sdk/tm/py/feature/log_feature.py +84 -0
  283. package/project/.sdk/tm/py/feature/test_feature.py +164 -0
  284. package/project/.sdk/tm/py/src/feature/README.md +3 -0
  285. package/project/.sdk/tm/py/src/feature/base/.gitkeep +0 -0
  286. package/project/.sdk/tm/py/src/feature/log/.gitkeep +0 -0
  287. package/project/.sdk/tm/py/src/feature/test/.gitkeep +0 -0
  288. package/project/.sdk/tm/py/test/__init__.py +0 -0
  289. package/project/.sdk/tm/py/test/runner.py +77 -0
  290. package/project/.sdk/tm/py/utility/__init__.py +0 -0
  291. package/project/.sdk/tm/py/utility/clean.py +5 -0
  292. package/project/.sdk/tm/py/utility/done.py +14 -0
  293. package/project/.sdk/tm/py/utility/feature_add.py +6 -0
  294. package/project/.sdk/tm/py/utility/feature_hook.py +15 -0
  295. package/project/.sdk/tm/py/utility/feature_init.py +18 -0
  296. package/project/.sdk/tm/py/utility/fetcher.py +95 -0
  297. package/project/.sdk/tm/py/utility/make_context.py +7 -0
  298. package/project/.sdk/tm/py/utility/make_error.py +64 -0
  299. package/project/.sdk/tm/py/utility/make_fetch_def.py +37 -0
  300. package/project/.sdk/tm/py/utility/make_options.py +103 -0
  301. package/project/.sdk/tm/py/utility/make_point.py +74 -0
  302. package/project/.sdk/tm/py/utility/make_request.py +52 -0
  303. package/project/.sdk/tm/py/utility/make_response.py +36 -0
  304. package/project/.sdk/tm/py/utility/make_result.py +41 -0
  305. package/project/.sdk/tm/py/utility/make_spec.py +68 -0
  306. package/project/.sdk/tm/py/utility/make_url.py +34 -0
  307. package/project/.sdk/tm/py/utility/param.py +55 -0
  308. package/project/.sdk/tm/py/utility/prepare_auth.py +34 -0
  309. package/project/.sdk/tm/py/utility/prepare_body.py +11 -0
  310. package/project/.sdk/tm/py/utility/prepare_headers.py +17 -0
  311. package/project/.sdk/tm/py/utility/prepare_method.py +15 -0
  312. package/project/.sdk/tm/py/utility/prepare_params.py +28 -0
  313. package/project/.sdk/tm/py/utility/prepare_path.py +16 -0
  314. package/project/.sdk/tm/py/utility/prepare_query.py +33 -0
  315. package/project/.sdk/tm/py/utility/register.py +68 -0
  316. package/project/.sdk/tm/py/utility/result_basic.py +26 -0
  317. package/project/.sdk/tm/py/utility/result_body.py +13 -0
  318. package/project/.sdk/tm/py/utility/result_headers.py +17 -0
  319. package/project/.sdk/tm/py/utility/transform_request.py +27 -0
  320. package/project/.sdk/tm/py/utility/transform_response.py +39 -0
  321. package/project/.sdk/tm/py/utility/voxgig_struct/__init__.py +72 -0
  322. package/project/.sdk/tm/py/utility/voxgig_struct/voxgig_struct.py +2770 -0
  323. package/project/.sdk/tm/rb/Gemfile +4 -0
  324. package/project/.sdk/tm/rb/LICENSE +22 -0
  325. package/project/.sdk/tm/rb/Makefile +10 -0
  326. package/project/.sdk/tm/rb/core/context.rb +105 -0
  327. package/project/.sdk/tm/rb/core/control.rb +11 -0
  328. package/project/.sdk/tm/rb/core/error.rb +24 -0
  329. package/project/.sdk/tm/rb/core/helpers.rb +16 -0
  330. package/project/.sdk/tm/rb/core/operation.rb +26 -0
  331. package/project/.sdk/tm/rb/core/response.rb +20 -0
  332. package/project/.sdk/tm/rb/core/result.rb +23 -0
  333. package/project/.sdk/tm/rb/core/spec.rb +23 -0
  334. package/project/.sdk/tm/rb/core/utility_type.rb +32 -0
  335. package/project/.sdk/tm/rb/feature/base_feature.rb +30 -0
  336. package/project/.sdk/tm/rb/feature/log_feature.rb +50 -0
  337. package/project/.sdk/tm/rb/feature/test_feature.rb +154 -0
  338. package/project/.sdk/tm/rb/src/feature/README.md +3 -0
  339. package/project/.sdk/tm/rb/src/feature/base/.gitkeep +0 -0
  340. package/project/.sdk/tm/rb/src/feature/log/.gitkeep +0 -0
  341. package/project/.sdk/tm/rb/src/feature/test/.gitkeep +0 -0
  342. package/project/.sdk/tm/rb/test/runner.rb +65 -0
  343. package/project/.sdk/tm/rb/utility/clean.rb +4 -0
  344. package/project/.sdk/tm/rb/utility/done.rb +14 -0
  345. package/project/.sdk/tm/rb/utility/feature_add.rb +6 -0
  346. package/project/.sdk/tm/rb/utility/feature_hook.rb +11 -0
  347. package/project/.sdk/tm/rb/utility/feature_init.rb +16 -0
  348. package/project/.sdk/tm/rb/utility/fetcher.rb +67 -0
  349. package/project/.sdk/tm/rb/utility/make_context.rb +7 -0
  350. package/project/.sdk/tm/rb/utility/make_error.rb +44 -0
  351. package/project/.sdk/tm/rb/utility/make_fetch_def.rb +24 -0
  352. package/project/.sdk/tm/rb/utility/make_options.rb +57 -0
  353. package/project/.sdk/tm/rb/utility/make_point.rb +77 -0
  354. package/project/.sdk/tm/rb/utility/make_request.rb +44 -0
  355. package/project/.sdk/tm/rb/utility/make_response.rb +25 -0
  356. package/project/.sdk/tm/rb/utility/make_result.rb +33 -0
  357. package/project/.sdk/tm/rb/utility/make_spec.rb +50 -0
  358. package/project/.sdk/tm/rb/utility/make_url.rb +32 -0
  359. package/project/.sdk/tm/rb/utility/param.rb +48 -0
  360. package/project/.sdk/tm/rb/utility/prepare_auth.rb +26 -0
  361. package/project/.sdk/tm/rb/utility/prepare_body.rb +6 -0
  362. package/project/.sdk/tm/rb/utility/prepare_headers.rb +11 -0
  363. package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -0
  364. package/project/.sdk/tm/rb/utility/prepare_params.rb +25 -0
  365. package/project/.sdk/tm/rb/utility/prepare_path.rb +13 -0
  366. package/project/.sdk/tm/rb/utility/prepare_query.rb +22 -0
  367. package/project/.sdk/tm/rb/utility/register.rb +63 -0
  368. package/project/.sdk/tm/rb/utility/result_basic.rb +23 -0
  369. package/project/.sdk/tm/rb/utility/result_body.rb +11 -0
  370. package/project/.sdk/tm/rb/utility/result_headers.rb +15 -0
  371. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +2256 -0
  372. package/project/.sdk/tm/rb/utility/transform_request.rb +15 -0
  373. package/project/.sdk/tm/rb/utility/transform_response.rb +23 -0
  374. package/src/cmp/Readme.ts +5 -5
  375. package/src/cmp/ReadmeEntity.ts +77 -25
  376. package/src/cmp/ReadmeExplanation.ts +333 -0
  377. package/src/cmp/ReadmeHowto.ts +28 -0
  378. package/src/cmp/ReadmeIntro.ts +10 -24
  379. package/src/cmp/ReadmeModel.ts +57 -88
  380. package/src/cmp/ReadmeOptions.ts +40 -11
  381. package/src/cmp/ReadmeQuick.ts +4 -1
  382. package/src/cmp/ReadmeRef.ts +1057 -40
  383. package/src/cmp/ReadmeTop.ts +213 -0
  384. package/src/sdkgen.ts +12 -0
  385. package/project/.sdk/tm/go/test/exists_test.go +0 -16
@@ -0,0 +1,11 @@
1
+ # ProjectName SDK utility: feature_hook
2
+ module ProjectNameUtilities
3
+ FeatureHook = ->(ctx, name) {
4
+ return unless ctx.client
5
+ features = ctx.client.features
6
+ return unless features
7
+ features.each do |f|
8
+ f.send(name, ctx) if f.respond_to?(name)
9
+ end
10
+ }
11
+ end
@@ -0,0 +1,16 @@
1
+ # ProjectName SDK utility: feature_init
2
+ require_relative 'struct/voxgig_struct'
3
+ module ProjectNameUtilities
4
+ FeatureInit = ->(ctx, f) {
5
+ fname = f.get_name
6
+ fopts = {}
7
+ if ctx.options
8
+ feature_opts = VoxgigStruct.getprop(ctx.options, "feature")
9
+ if feature_opts.is_a?(Hash)
10
+ fo = VoxgigStruct.getprop(feature_opts, fname)
11
+ fopts = fo if fo.is_a?(Hash)
12
+ end
13
+ end
14
+ f.init(ctx, fopts) if fopts["active"] == true
15
+ }
16
+ end
@@ -0,0 +1,67 @@
1
+ # ProjectName SDK utility: fetcher
2
+ require_relative 'struct/voxgig_struct'
3
+ require 'net/http'
4
+ require 'uri'
5
+ require 'json'
6
+
7
+ module ProjectNameUtilities
8
+ DefaultHttpFetch = ->(fullurl, fetchdef) {
9
+ method_str = fetchdef["method"] || "GET"
10
+ body_str = fetchdef["body"]
11
+ headers = fetchdef["headers"] || {}
12
+
13
+ uri = URI.parse(fullurl)
14
+ http = Net::HTTP.new(uri.host, uri.port)
15
+ http.use_ssl = (uri.scheme == "https")
16
+
17
+ klass = case method_str.upcase
18
+ when "POST" then Net::HTTP::Post
19
+ when "PUT" then Net::HTTP::Put
20
+ when "DELETE" then Net::HTTP::Delete
21
+ when "PATCH" then Net::HTTP::Patch
22
+ else Net::HTTP::Get
23
+ end
24
+
25
+ request = klass.new(uri)
26
+ headers.each { |k, v| request[k] = v.to_s if v.is_a?(String) }
27
+ request.body = body_str if body_str.is_a?(String)
28
+
29
+ resp = http.request(request)
30
+ resp_headers = {}
31
+ resp.each_header { |k, v| resp_headers[k.downcase] = v }
32
+
33
+ json_body = nil
34
+ begin
35
+ json_body = JSON.parse(resp.body) if resp.body && !resp.body.empty?
36
+ rescue JSON::ParserError
37
+ end
38
+
39
+ return {
40
+ "status" => resp.code.to_i,
41
+ "statusText" => resp.message,
42
+ "headers" => resp_headers,
43
+ "json" => -> { json_body },
44
+ "body" => resp.body,
45
+ }, nil
46
+ }
47
+
48
+ Fetcher = ->(ctx, fullurl, fetchdef) {
49
+ if ctx.client.mode != "live"
50
+ return nil, ctx.make_error("fetch_mode_block",
51
+ "Request blocked by mode: \"#{ctx.client.mode}\" (URL was: \"#{fullurl}\")")
52
+ end
53
+
54
+ options = ctx.client.options_map
55
+ if VoxgigStruct.getpath(options, "feature.test.active") == true
56
+ return nil, ctx.make_error("fetch_test_block",
57
+ "Request blocked as test feature is active (URL was: \"#{fullurl}\")")
58
+ end
59
+
60
+ sys_fetch = VoxgigStruct.getpath(options, "system.fetch")
61
+
62
+ return DefaultHttpFetch.call(fullurl, fetchdef) if sys_fetch.nil?
63
+ return sys_fetch.call(fullurl, fetchdef) if sys_fetch.is_a?(Proc)
64
+
65
+ return nil, ctx.make_error("fetch_invalid", "system.fetch is not a valid function")
66
+ }
67
+ end
@@ -0,0 +1,7 @@
1
+ # ProjectName SDK utility: make_context
2
+ require_relative '../core/context'
3
+ module ProjectNameUtilities
4
+ MakeContext = ->(ctxmap, basectx) {
5
+ ProjectNameContext.new(ctxmap, basectx)
6
+ }
7
+ end
@@ -0,0 +1,44 @@
1
+ # ProjectName SDK utility: make_error
2
+ require_relative '../core/operation'
3
+ require_relative '../core/result'
4
+ require_relative '../core/error'
5
+ module ProjectNameUtilities
6
+ MakeError = ->(ctx, err) {
7
+ if ctx.nil?
8
+ require_relative '../core/context'
9
+ ctx = ProjectNameContext.new({}, nil)
10
+ end
11
+ op = ctx.op || ProjectNameOperation.new({})
12
+ opname = op.name
13
+ opname = "unknown operation" if opname.empty? || opname == "_"
14
+
15
+ result = ctx.result || ProjectNameResult.new({})
16
+ result.ok = false
17
+
18
+ err = result.err if err.nil?
19
+ err = ctx.make_error("unknown", "unknown error") if err.nil?
20
+
21
+ errmsg = err.is_a?(ProjectNameError) ? err.msg : err.to_s
22
+ msg = "ProjectNameSDK: #{opname}: #{errmsg}"
23
+ msg = ctx.utility.clean.call(ctx, msg)
24
+
25
+ result.err = nil
26
+ spec = ctx.spec
27
+
28
+ if ctx.ctrl.explain
29
+ ctx.ctrl.explain["err"] = { "message" => msg }
30
+ end
31
+
32
+ sdk_err = ProjectNameError.new("", msg, ctx)
33
+ sdk_err.result = ctx.utility.clean.call(ctx, result)
34
+ sdk_err.spec = ctx.utility.clean.call(ctx, spec)
35
+ sdk_err.code = err.code if err.is_a?(ProjectNameError)
36
+
37
+ ctx.ctrl.err = sdk_err
38
+
39
+ if ctx.ctrl.throw_err == false
40
+ return result.resdata, nil
41
+ end
42
+ return nil, sdk_err
43
+ }
44
+ end
@@ -0,0 +1,24 @@
1
+ # ProjectName SDK utility: make_fetch_def
2
+ require_relative 'struct/voxgig_struct'
3
+ require_relative '../core/result'
4
+ module ProjectNameUtilities
5
+ MakeFetchDef = ->(ctx) {
6
+ spec = ctx.spec
7
+ return nil, ctx.make_error("fetchdef_no_spec", "Expected context spec property to be defined.") unless spec
8
+
9
+ ctx.result = ProjectNameResult.new({}) unless ctx.result
10
+ spec.step = "prepare"
11
+
12
+ url, err = ctx.utility.make_url.call(ctx)
13
+ return nil, err if err
14
+
15
+ spec.url = url
16
+
17
+ fetchdef = { "url" => url, "method" => spec.method, "headers" => spec.headers }
18
+ if spec.body
19
+ fetchdef["body"] = spec.body.is_a?(Hash) ? VoxgigStruct.jsonify(spec.body) : spec.body
20
+ end
21
+
22
+ return fetchdef, nil
23
+ }
24
+ end
@@ -0,0 +1,57 @@
1
+ # ProjectName SDK utility: make_options
2
+ require_relative 'struct/voxgig_struct'
3
+ module ProjectNameUtilities
4
+ MakeOptions = ->(ctx) {
5
+ options = ctx.options || {}
6
+
7
+ custom_utils = VoxgigStruct.getprop(options, "utility")
8
+ if custom_utils.is_a?(Hash) && ctx.utility
9
+ custom_utils.each { |k, v| ctx.utility.custom[k] = v }
10
+ end
11
+
12
+ opts = VoxgigStruct.clone(options)
13
+ opts = {} unless opts.is_a?(Hash)
14
+
15
+ config = ctx.config || {}
16
+ cfgopts = config["options"].is_a?(Hash) ? config["options"] : {}
17
+
18
+ optspec = {
19
+ "apikey" => "",
20
+ "base" => "http://localhost:8000",
21
+ "prefix" => "",
22
+ "suffix" => "",
23
+ "auth" => { "prefix" => "" },
24
+ "headers" => { "`$CHILD`" => "`$STRING`" },
25
+ "allow" => {
26
+ "method" => "GET,PUT,POST,PATCH,DELETE,OPTIONS",
27
+ "op" => "create,update,load,list,remove,command,direct",
28
+ },
29
+ "entity" => { "`$CHILD`" => { "`$OPEN`" => true, "active" => false, "alias" => {} } },
30
+ "feature" => { "`$CHILD`" => { "`$OPEN`" => true, "active" => false } },
31
+ "utility" => {},
32
+ "system" => {},
33
+ "test" => { "active" => false, "entity" => { "`$OPEN`" => true } },
34
+ "clean" => { "keys" => "key,token,id" },
35
+ }
36
+
37
+ sys_fetch = VoxgigStruct.getpath(opts, "system.fetch")
38
+
39
+ merged = VoxgigStruct.merge([{}, cfgopts, opts])
40
+ validated = VoxgigStruct.validate(merged, optspec)
41
+ opts = validated.is_a?(Hash) ? validated : {}
42
+
43
+ if sys_fetch
44
+ opts["system"] = {} unless opts["system"].is_a?(Hash)
45
+ opts["system"]["fetch"] = sys_fetch
46
+ end
47
+
48
+ clean_keys = VoxgigStruct.getpath(opts, "clean.keys")
49
+ clean_keys = "key,token,id" unless clean_keys.is_a?(String)
50
+ parts = clean_keys.split(",").map(&:strip).reject(&:empty?).map { |p| VoxgigStruct.escre(p) }
51
+ keyre = parts.join("|")
52
+ derived = { "clean" => keyre.empty? ? {} : { "keyre" => keyre } }
53
+ opts["__derived__"] = derived
54
+
55
+ opts
56
+ }
57
+ end
@@ -0,0 +1,77 @@
1
+ # ProjectName SDK utility: make_point
2
+ require_relative 'struct/voxgig_struct'
3
+ require_relative '../core/helpers'
4
+ module ProjectNameUtilities
5
+ MakePoint = ->(ctx) {
6
+ if ctx.out["point"]
7
+ ctx.point = ctx.out["point"]
8
+ return ctx.point, nil
9
+ end
10
+
11
+ op = ctx.op
12
+ options = ctx.options
13
+
14
+ allow_op = VoxgigStruct.getpath(options, "allow.op") || ""
15
+ unless allow_op.include?(op.name)
16
+ return nil, ctx.make_error("point_op_allow",
17
+ "Operation \"#{op.name}\" not allowed by SDK option allow.op value: \"#{allow_op}\"")
18
+ end
19
+
20
+ if op.points.empty?
21
+ return nil, ctx.make_error("point_no_points",
22
+ "Operation \"#{op.name}\" has no endpoint definitions.")
23
+ end
24
+
25
+ if op.points.length == 1
26
+ ctx.point = op.points[0]
27
+ else
28
+ reqselector = op.input == "data" ? ctx.reqdata : ctx.reqmatch
29
+ selector = op.input == "data" ? ctx.data : ctx.match
30
+
31
+ point = nil
32
+ op.points.each do |p|
33
+ point = p
34
+ select_def = ProjectNameHelpers.to_map(VoxgigStruct.getprop(p, "select"))
35
+ found = true
36
+
37
+ if selector && select_def
38
+ exist = VoxgigStruct.getprop(select_def, "exist")
39
+ if exist.is_a?(Array)
40
+ exist.each do |ek|
41
+ rv = VoxgigStruct.getprop(reqselector, ek.to_s)
42
+ sv = VoxgigStruct.getprop(selector, ek.to_s)
43
+ if rv.nil? && sv.nil?
44
+ found = false
45
+ break
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ if found
52
+ req_action = VoxgigStruct.getprop(reqselector, "$action")
53
+ select_action = VoxgigStruct.getprop(select_def, "$action")
54
+ found = false if req_action != select_action
55
+ end
56
+
57
+ break if found
58
+ end
59
+
60
+ if reqselector
61
+ req_action = VoxgigStruct.getprop(reqselector, "$action")
62
+ if req_action && point
63
+ point_select = ProjectNameHelpers.to_map(VoxgigStruct.getprop(point, "select"))
64
+ point_action = VoxgigStruct.getprop(point_select, "$action")
65
+ if req_action != point_action
66
+ return nil, ctx.make_error("point_action_invalid",
67
+ "Operation \"#{op.name}\" action \"#{VoxgigStruct.stringify(req_action)}\" is not valid.")
68
+ end
69
+ end
70
+ end
71
+
72
+ ctx.point = point
73
+ end
74
+
75
+ return ctx.point, nil
76
+ }
77
+ end
@@ -0,0 +1,44 @@
1
+ # ProjectName SDK utility: make_request
2
+ require_relative '../core/response'
3
+ require_relative '../core/result'
4
+ module ProjectNameUtilities
5
+ MakeRequest = ->(ctx) {
6
+ return ctx.out["request"], nil if ctx.out["request"]
7
+
8
+ spec = ctx.spec
9
+ utility = ctx.utility
10
+ response = ProjectNameResponse.new({})
11
+ result = ProjectNameResult.new({})
12
+ ctx.result = result
13
+
14
+ return nil, ctx.make_error("request_no_spec", "Expected context spec property to be defined.") unless spec
15
+
16
+ fetchdef, err = utility.make_fetch_def.call(ctx)
17
+ if err
18
+ response.err = err
19
+ ctx.response = response
20
+ spec.step = "postrequest"
21
+ return response, nil
22
+ end
23
+
24
+ ctx.ctrl.explain["fetchdef"] = fetchdef if ctx.ctrl.explain
25
+
26
+ spec.step = "prerequest"
27
+ url = fetchdef["url"] || ""
28
+ fetched, fetch_err = utility.fetcher.call(ctx, url, fetchdef)
29
+
30
+ if fetch_err
31
+ response.err = fetch_err
32
+ elsif fetched.nil?
33
+ response = ProjectNameResponse.new({ "err" => ctx.make_error("request_no_response", "response: undefined") })
34
+ elsif fetched.is_a?(Hash)
35
+ response = ProjectNameResponse.new(fetched)
36
+ else
37
+ response.err = ctx.make_error("request_invalid_response", "response: invalid type")
38
+ end
39
+
40
+ spec.step = "postrequest"
41
+ ctx.response = response
42
+ return response, nil
43
+ }
44
+ end
@@ -0,0 +1,25 @@
1
+ # ProjectName SDK utility: make_response
2
+ module ProjectNameUtilities
3
+ MakeResponse = ->(ctx) {
4
+ return ctx.out["response"], nil if ctx.out["response"]
5
+ utility = ctx.utility
6
+ spec = ctx.spec
7
+ result = ctx.result
8
+ response = ctx.response
9
+
10
+ return nil, ctx.make_error("response_no_spec", "Expected context spec property to be defined.") unless spec
11
+ return nil, ctx.make_error("response_no_response", "Expected context response property to be defined.") unless response
12
+ return nil, ctx.make_error("response_no_result", "Expected context result property to be defined.") unless result
13
+
14
+ spec.step = "response"
15
+ utility.result_basic.call(ctx)
16
+ utility.result_headers.call(ctx)
17
+ utility.result_body.call(ctx)
18
+ utility.transform_response.call(ctx)
19
+
20
+ result.ok = true if result.err.nil?
21
+ ctx.ctrl.explain["result"] = result if ctx.ctrl.explain
22
+
23
+ return response, nil
24
+ }
25
+ end
@@ -0,0 +1,33 @@
1
+ # ProjectName SDK utility: make_result
2
+ module ProjectNameUtilities
3
+ MakeResult = ->(ctx) {
4
+ return ctx.out["result"], nil if ctx.out["result"]
5
+ utility = ctx.utility
6
+ op = ctx.op
7
+ entity = ctx.entity
8
+ spec = ctx.spec
9
+ result = ctx.result
10
+
11
+ return nil, ctx.make_error("result_no_spec", "Expected context spec property to be defined.") unless spec
12
+ return nil, ctx.make_error("result_no_result", "Expected context result property to be defined.") unless result
13
+
14
+ spec.step = "result"
15
+ utility.transform_response.call(ctx)
16
+
17
+ if op.name == "list"
18
+ resdata = result.resdata
19
+ result.resdata = []
20
+ if resdata.is_a?(Array) && !resdata.empty? && entity
21
+ entities = resdata.map do |entry|
22
+ ent = entity.make
23
+ ent.data_set(entry) if entry.is_a?(Hash)
24
+ ent
25
+ end
26
+ result.resdata = entities
27
+ end
28
+ end
29
+
30
+ ctx.ctrl.explain["result"] = result if ctx.ctrl.explain
31
+ return result, nil
32
+ }
33
+ end
@@ -0,0 +1,50 @@
1
+ # ProjectName SDK utility: make_spec
2
+ require_relative 'struct/voxgig_struct'
3
+ require_relative '../core/spec'
4
+ module ProjectNameUtilities
5
+ MakeSpec = ->(ctx) {
6
+ if ctx.out["spec"]
7
+ ctx.spec = ctx.out["spec"]
8
+ return ctx.spec, nil
9
+ end
10
+
11
+ point = ctx.point
12
+ options = ctx.options
13
+ utility = ctx.utility
14
+
15
+ base = VoxgigStruct.getprop(options, "base") || ""
16
+ prefix = VoxgigStruct.getprop(options, "prefix") || ""
17
+ suffix = VoxgigStruct.getprop(options, "suffix") || ""
18
+
19
+ parts = []
20
+ parts = VoxgigStruct.getprop(point, "parts") if point
21
+ parts = [] unless parts.is_a?(Array)
22
+
23
+ ctx.spec = ProjectNameSpec.new({
24
+ "base" => base, "prefix" => prefix, "parts" => parts,
25
+ "suffix" => suffix, "step" => "start",
26
+ })
27
+
28
+ ctx.spec.method = utility.prepare_method.call(ctx)
29
+
30
+ allow_method = VoxgigStruct.getpath(options, "allow.method") || ""
31
+ unless allow_method.include?(ctx.spec.method)
32
+ return nil, ctx.make_error("spec_method_allow",
33
+ "Method \"#{ctx.spec.method}\" not allowed by SDK option allow.method value: \"#{allow_method}\"")
34
+ end
35
+
36
+ ctx.spec.params = utility.prepare_params.call(ctx)
37
+ ctx.spec.query = utility.prepare_query.call(ctx)
38
+ ctx.spec.headers = utility.prepare_headers.call(ctx)
39
+ ctx.spec.body = utility.prepare_body.call(ctx)
40
+ ctx.spec.path = utility.prepare_path.call(ctx)
41
+
42
+ ctx.ctrl.explain["spec"] = ctx.spec if ctx.ctrl.explain
43
+
44
+ spec, err = utility.prepare_auth.call(ctx)
45
+ return nil, err if err
46
+
47
+ ctx.spec = spec
48
+ return spec, nil
49
+ }
50
+ end
@@ -0,0 +1,32 @@
1
+ # ProjectName SDK utility: make_url
2
+ require_relative 'struct/voxgig_struct'
3
+ module ProjectNameUtilities
4
+ MakeUrl = ->(ctx) {
5
+ spec = ctx.spec
6
+ result = ctx.result
7
+
8
+ return "", ctx.make_error("url_no_spec", "Expected context spec property to be defined.") unless spec
9
+ return "", ctx.make_error("url_no_result", "Expected context result property to be defined.") unless result
10
+
11
+ url = VoxgigStruct.join([spec.base, spec.prefix, spec.path, spec.suffix], "/", true)
12
+ resmatch = {}
13
+
14
+ param_items = VoxgigStruct.items(spec.params)
15
+ if param_items
16
+ param_items.each do |item|
17
+ key = item[0]
18
+ val = item[1]
19
+ if val && key.is_a?(String)
20
+ placeholder = "{#{key}}"
21
+ val_str = val.is_a?(String) ? val : val.to_s
22
+ encoded = VoxgigStruct.escurl(val_str)
23
+ url = url.gsub(placeholder, encoded)
24
+ resmatch[key] = val
25
+ end
26
+ end
27
+ end
28
+
29
+ result.resmatch = resmatch
30
+ return url, nil
31
+ }
32
+ end
@@ -0,0 +1,48 @@
1
+ # ProjectName SDK utility: param
2
+ require_relative 'struct/voxgig_struct'
3
+ require_relative '../core/helpers'
4
+ module ProjectNameUtilities
5
+ Param = ->(ctx, paramdef) {
6
+ point = ctx.point
7
+ spec = ctx.spec
8
+ match_val = ctx.match
9
+ reqmatch = ctx.reqmatch
10
+ data = ctx.data
11
+ reqdata = ctx.reqdata
12
+
13
+ pt = VoxgigStruct.typify(paramdef)
14
+ key = if (VoxgigStruct::T_string & pt) > 0
15
+ paramdef
16
+ else
17
+ k = VoxgigStruct.getprop(paramdef, "name")
18
+ k.is_a?(String) ? k : ""
19
+ end
20
+
21
+ akey = ""
22
+ if point
23
+ alias_map = ProjectNameHelpers.to_map(VoxgigStruct.getprop(point, "alias"))
24
+ if alias_map
25
+ ak = VoxgigStruct.getprop(alias_map, key)
26
+ akey = ak if ak.is_a?(String)
27
+ end
28
+ end
29
+
30
+ val = VoxgigStruct.getprop(reqmatch, key)
31
+ val = VoxgigStruct.getprop(match_val, key) if val.nil?
32
+
33
+ if val.nil? && !akey.empty?
34
+ spec.alias_map[akey] = key if spec
35
+ val = VoxgigStruct.getprop(reqmatch, akey)
36
+ end
37
+
38
+ val = VoxgigStruct.getprop(reqdata, key) if val.nil?
39
+ val = VoxgigStruct.getprop(data, key) if val.nil?
40
+
41
+ if val.nil? && !akey.empty?
42
+ val = VoxgigStruct.getprop(reqdata, akey)
43
+ val = VoxgigStruct.getprop(data, akey) if val.nil?
44
+ end
45
+
46
+ val
47
+ }
48
+ end
@@ -0,0 +1,26 @@
1
+ # ProjectName SDK utility: prepare_auth
2
+ require_relative 'struct/voxgig_struct'
3
+ module ProjectNameUtilities
4
+ HEADER_AUTH = "authorization"
5
+ OPTION_APIKEY = "apikey"
6
+ NOT_FOUND = "__NOTFOUND__"
7
+
8
+ PrepareAuth = ->(ctx) {
9
+ spec = ctx.spec
10
+ return nil, ctx.make_error("auth_no_spec", "Expected context spec property to be defined.") unless spec
11
+
12
+ headers = spec.headers
13
+ options = ctx.client.options_map
14
+ apikey = VoxgigStruct.getprop(options, OPTION_APIKEY, NOT_FOUND)
15
+
16
+ if apikey.is_a?(String) && apikey == NOT_FOUND
17
+ headers.delete(HEADER_AUTH)
18
+ else
19
+ auth_prefix = VoxgigStruct.getpath(options, "auth.prefix") || ""
20
+ apikey_val = apikey.is_a?(String) ? apikey : ""
21
+ headers[HEADER_AUTH] = "#{auth_prefix} #{apikey_val}"
22
+ end
23
+
24
+ return spec, nil
25
+ }
26
+ end
@@ -0,0 +1,6 @@
1
+ # ProjectName SDK utility: prepare_body
2
+ module ProjectNameUtilities
3
+ PrepareBody = ->(ctx) {
4
+ ctx.op.input == "data" ? ctx.utility.transform_request.call(ctx) : nil
5
+ }
6
+ end
@@ -0,0 +1,11 @@
1
+ # ProjectName SDK utility: prepare_headers
2
+ require_relative 'struct/voxgig_struct'
3
+ module ProjectNameUtilities
4
+ PrepareHeaders = ->(ctx) {
5
+ options = ctx.client.options_map
6
+ headers = VoxgigStruct.getprop(options, "headers")
7
+ return {} unless headers
8
+ out = VoxgigStruct.clone(headers)
9
+ out.is_a?(Hash) ? out : {}
10
+ }
11
+ end
@@ -0,0 +1,5 @@
1
+ # ProjectName SDK utility: prepare_method
2
+ module ProjectNameUtilities
3
+ METHOD_MAP = { "create"=>"POST", "update"=>"PUT", "load"=>"GET", "list"=>"GET", "remove"=>"DELETE", "patch"=>"PATCH" }
4
+ PrepareMethod = ->(ctx) { METHOD_MAP[ctx.op.name] || "GET" }
5
+ end
@@ -0,0 +1,25 @@
1
+ # ProjectName SDK utility: prepare_params
2
+ require_relative 'struct/voxgig_struct'
3
+ module ProjectNameUtilities
4
+ PrepareParams = ->(ctx) {
5
+ utility = ctx.utility
6
+ point = ctx.point
7
+ params = []
8
+ if point
9
+ args = VoxgigStruct.getprop(point, "args")
10
+ if args.is_a?(Hash)
11
+ p = VoxgigStruct.getprop(args, "params")
12
+ params = p if p.is_a?(Array)
13
+ end
14
+ end
15
+ out = {}
16
+ params.each do |pd|
17
+ val = utility.param.call(ctx, pd)
18
+ if val && pd.is_a?(Hash)
19
+ name = VoxgigStruct.getprop(pd, "name")
20
+ out[name] = val if name.is_a?(String) && !name.empty?
21
+ end
22
+ end
23
+ out
24
+ }
25
+ end
@@ -0,0 +1,13 @@
1
+ # ProjectName SDK utility: prepare_path
2
+ require_relative 'struct/voxgig_struct'
3
+ module ProjectNameUtilities
4
+ PreparePath = ->(ctx) {
5
+ point = ctx.point
6
+ parts = []
7
+ if point
8
+ p = VoxgigStruct.getprop(point, "parts")
9
+ parts = p if p.is_a?(Array)
10
+ end
11
+ VoxgigStruct.join(parts, "/", true)
12
+ }
13
+ end
@@ -0,0 +1,22 @@
1
+ # ProjectName SDK utility: prepare_query
2
+ require_relative 'struct/voxgig_struct'
3
+ module ProjectNameUtilities
4
+ PrepareQuery = ->(ctx) {
5
+ point = ctx.point
6
+ reqmatch = ctx.reqmatch || {}
7
+ params = []
8
+ if point
9
+ p = VoxgigStruct.getprop(point, "params")
10
+ params = p if p.is_a?(Array)
11
+ end
12
+ out = {}
13
+ items = VoxgigStruct.items(reqmatch)
14
+ if items
15
+ items.each do |item|
16
+ key, val = item[0], item[1]
17
+ out[key] = val if val && key.is_a?(String) && !params.include?(key)
18
+ end
19
+ end
20
+ out
21
+ }
22
+ end