nesoi 3.0.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 (348) hide show
  1. package/lib/adapters/postgres/src/migrator/database.d.ts +37 -0
  2. package/lib/adapters/postgres/src/migrator/database.js +88 -0
  3. package/lib/adapters/postgres/src/migrator/index.d.ts +1 -0
  4. package/lib/adapters/postgres/src/migrator/index.js +5 -0
  5. package/lib/adapters/postgres/src/migrator/migration.d.ts +73 -0
  6. package/lib/adapters/postgres/src/migrator/migration.js +351 -0
  7. package/lib/adapters/postgres/src/migrator/migrator.d.ts +21 -0
  8. package/lib/adapters/postgres/src/migrator/migrator.js +73 -0
  9. package/lib/adapters/postgres/src/migrator/runner.d.ts +61 -0
  10. package/lib/adapters/postgres/src/migrator/runner.js +202 -0
  11. package/lib/adapters/postgres/src/postgres.bucket_adapter.d.ts +45 -0
  12. package/lib/adapters/postgres/src/postgres.bucket_adapter.js +278 -0
  13. package/lib/adapters/postgres/src/postgres.cli.d.ts +46 -0
  14. package/lib/adapters/postgres/src/postgres.cli.js +124 -0
  15. package/lib/adapters/postgres/src/postgres.nql.d.ts +12 -0
  16. package/lib/adapters/postgres/src/postgres.nql.js +69 -0
  17. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.d.ts +1 -0
  18. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +173 -0
  19. package/lib/adapters/postgres/test/postgres.bucket_query.test.d.ts +0 -0
  20. package/lib/adapters/postgres/test/postgres.bucket_query.test.js +136 -0
  21. package/lib/compiler/apps/monolyth/monolyth_compiler.d.ts +21 -0
  22. package/lib/compiler/apps/monolyth/monolyth_compiler.js +95 -0
  23. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +12 -0
  24. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.js +80 -0
  25. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +12 -0
  26. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +128 -0
  27. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +12 -0
  28. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.js +75 -0
  29. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.d.ts +13 -0
  30. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +130 -0
  31. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.d.ts +12 -0
  32. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +65 -0
  33. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.d.ts +12 -0
  34. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.js +74 -0
  35. package/lib/compiler/compiler.d.ts +19 -0
  36. package/lib/compiler/compiler.js +83 -0
  37. package/lib/compiler/elements/bucket.element.d.ts +23 -0
  38. package/lib/compiler/elements/bucket.element.js +304 -0
  39. package/lib/compiler/elements/constants.element.d.ts +9 -0
  40. package/lib/compiler/elements/constants.element.js +88 -0
  41. package/lib/compiler/elements/controller.element.d.ts +6 -0
  42. package/lib/compiler/elements/controller.element.js +22 -0
  43. package/lib/compiler/elements/element.d.ts +49 -0
  44. package/lib/compiler/elements/element.js +105 -0
  45. package/lib/compiler/elements/externals.element.d.ts +19 -0
  46. package/lib/compiler/elements/externals.element.js +83 -0
  47. package/lib/compiler/elements/job.element.d.ts +7 -0
  48. package/lib/compiler/elements/job.element.js +62 -0
  49. package/lib/compiler/elements/machine.element.d.ts +10 -0
  50. package/lib/compiler/elements/machine.element.js +98 -0
  51. package/lib/compiler/elements/message.element.d.ts +9 -0
  52. package/lib/compiler/elements/message.element.js +175 -0
  53. package/lib/compiler/elements/queue.element.d.ts +6 -0
  54. package/lib/compiler/elements/queue.element.js +24 -0
  55. package/lib/compiler/elements/resource.element.d.ts +7 -0
  56. package/lib/compiler/elements/resource.element.js +64 -0
  57. package/lib/compiler/error.d.ts +21 -0
  58. package/lib/compiler/error.js +57 -0
  59. package/lib/compiler/helpers/dump_helpers.d.ts +11 -0
  60. package/lib/compiler/helpers/dump_helpers.js +157 -0
  61. package/lib/compiler/helpers/name_helpers.d.ts +20 -0
  62. package/lib/compiler/helpers/name_helpers.js +44 -0
  63. package/lib/compiler/index.d.ts +2 -0
  64. package/lib/compiler/index.js +7 -0
  65. package/lib/compiler/module.d.ts +24 -0
  66. package/lib/compiler/module.js +122 -0
  67. package/lib/compiler/stages/1_scan_stage.d.ts +10 -0
  68. package/lib/compiler/stages/1_scan_stage.js +23 -0
  69. package/lib/compiler/stages/2_treeshake_stage.d.ts +11 -0
  70. package/lib/compiler/stages/2_treeshake_stage.js +24 -0
  71. package/lib/compiler/stages/3_extract_ts_stage.d.ts +10 -0
  72. package/lib/compiler/stages/3_extract_ts_stage.js +71 -0
  73. package/lib/compiler/stages/4_build_schemas_stage.d.ts +10 -0
  74. package/lib/compiler/stages/4_build_schemas_stage.js +25 -0
  75. package/lib/compiler/stages/5_inject_ts_stage.d.ts +10 -0
  76. package/lib/compiler/stages/5_inject_ts_stage.js +22 -0
  77. package/lib/compiler/stages/6_build_elements_stage.d.ts +11 -0
  78. package/lib/compiler/stages/6_build_elements_stage.js +22 -0
  79. package/lib/compiler/stages/7_dump_stage.d.ts +14 -0
  80. package/lib/compiler/stages/7_dump_stage.js +208 -0
  81. package/lib/compiler/stages/8_diagnose_stage.d.ts +16 -0
  82. package/lib/compiler/stages/8_diagnose_stage.js +43 -0
  83. package/lib/compiler/treeshake.d.ts +58 -0
  84. package/lib/compiler/treeshake.js +424 -0
  85. package/lib/compiler/typescript/bridge/extract.d.ts +11 -0
  86. package/lib/compiler/typescript/bridge/extract.js +270 -0
  87. package/lib/compiler/typescript/bridge/inject.d.ts +10 -0
  88. package/lib/compiler/typescript/bridge/inject.js +140 -0
  89. package/lib/compiler/typescript/bridge/organize.d.ts +61 -0
  90. package/lib/compiler/typescript/bridge/organize.js +258 -0
  91. package/lib/compiler/typescript/error.d.ts +88 -0
  92. package/lib/compiler/typescript/error.js +265 -0
  93. package/lib/compiler/typescript/parser.d.ts +48 -0
  94. package/lib/compiler/typescript/parser.js +581 -0
  95. package/lib/compiler/typescript/source.d.ts +12 -0
  96. package/lib/compiler/typescript/source.js +87 -0
  97. package/lib/compiler/typescript/transformers/app_inject.transformer.d.ts +2 -0
  98. package/lib/compiler/typescript/transformers/app_inject.transformer.js +89 -0
  99. package/lib/compiler/typescript/transformers/replace_import.transformer.d.ts +4 -0
  100. package/lib/compiler/typescript/transformers/replace_import.transformer.js +102 -0
  101. package/lib/compiler/typescript/typescript_compiler.d.ts +63 -0
  102. package/lib/compiler/typescript/typescript_compiler.js +602 -0
  103. package/lib/elements/blocks/block.builder.d.ts +29 -0
  104. package/lib/elements/blocks/block.builder.js +87 -0
  105. package/lib/elements/blocks/block.d.ts +15 -0
  106. package/lib/elements/blocks/block.js +37 -0
  107. package/lib/elements/blocks/block.schema.d.ts +23 -0
  108. package/lib/elements/blocks/block.schema.js +15 -0
  109. package/lib/elements/blocks/externals/externals.builder.d.ts +30 -0
  110. package/lib/elements/blocks/externals/externals.builder.js +37 -0
  111. package/lib/elements/blocks/externals/externals.schema.d.ts +11 -0
  112. package/lib/elements/blocks/externals/externals.schema.js +19 -0
  113. package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +52 -0
  114. package/lib/elements/blocks/job/internal/machine_job.builder.js +74 -0
  115. package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +5 -0
  116. package/lib/elements/blocks/job/internal/machine_job.schema.js +10 -0
  117. package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +109 -0
  118. package/lib/elements/blocks/job/internal/resource_job.builder.js +146 -0
  119. package/lib/elements/blocks/job/internal/resource_job.d.ts +14 -0
  120. package/lib/elements/blocks/job/internal/resource_job.js +30 -0
  121. package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +11 -0
  122. package/lib/elements/blocks/job/internal/resource_job.schema.js +15 -0
  123. package/lib/elements/blocks/job/job.builder.d.ts +118 -0
  124. package/lib/elements/blocks/job/job.builder.js +137 -0
  125. package/lib/elements/blocks/job/job.d.ts +13 -0
  126. package/lib/elements/blocks/job/job.js +40 -0
  127. package/lib/elements/blocks/job/job.schema.d.ts +26 -0
  128. package/lib/elements/blocks/job/job.schema.js +20 -0
  129. package/lib/elements/blocks/machine/machine.builder.d.ts +58 -0
  130. package/lib/elements/blocks/machine/machine.builder.js +135 -0
  131. package/lib/elements/blocks/machine/machine.d.ts +86 -0
  132. package/lib/elements/blocks/machine/machine.js +228 -0
  133. package/lib/elements/blocks/machine/machine.schema.d.ts +85 -0
  134. package/lib/elements/blocks/machine/machine.schema.js +64 -0
  135. package/lib/elements/blocks/machine/machine_state.builder.d.ts +58 -0
  136. package/lib/elements/blocks/machine/machine_state.builder.js +186 -0
  137. package/lib/elements/blocks/machine/machine_transition.builder.d.ts +48 -0
  138. package/lib/elements/blocks/machine/machine_transition.builder.js +98 -0
  139. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +10 -0
  140. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +17 -0
  141. package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +6 -0
  142. package/lib/elements/blocks/queue/adapters/queue_adapter.js +6 -0
  143. package/lib/elements/blocks/queue/queue.builder.d.ts +40 -0
  144. package/lib/elements/blocks/queue/queue.builder.js +31 -0
  145. package/lib/elements/blocks/queue/queue.d.ts +9 -0
  146. package/lib/elements/blocks/queue/queue.js +11 -0
  147. package/lib/elements/blocks/queue/queue.schema.d.ts +12 -0
  148. package/lib/elements/blocks/queue/queue.schema.js +17 -0
  149. package/lib/elements/blocks/resource/resource.builder.d.ts +60 -0
  150. package/lib/elements/blocks/resource/resource.builder.js +224 -0
  151. package/lib/elements/blocks/resource/resource.d.ts +48 -0
  152. package/lib/elements/blocks/resource/resource.js +125 -0
  153. package/lib/elements/blocks/resource/resource.schema.d.ts +32 -0
  154. package/lib/elements/blocks/resource/resource.schema.js +30 -0
  155. package/lib/elements/blocks/resource/resource.types.d.ts +38 -0
  156. package/lib/elements/blocks/resource/resource.types.js +3 -0
  157. package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +8 -0
  158. package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +17 -0
  159. package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +14 -0
  160. package/lib/elements/edge/controller/adapters/controller_adapter.js +44 -0
  161. package/lib/elements/edge/controller/controller.builder.d.ts +78 -0
  162. package/lib/elements/edge/controller/controller.builder.js +178 -0
  163. package/lib/elements/edge/controller/controller.config.d.ts +6 -0
  164. package/lib/elements/edge/controller/controller.config.js +2 -0
  165. package/lib/elements/edge/controller/controller.d.ts +22 -0
  166. package/lib/elements/edge/controller/controller.js +41 -0
  167. package/lib/elements/edge/controller/controller.schema.d.ts +44 -0
  168. package/lib/elements/edge/controller/controller.schema.js +51 -0
  169. package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +107 -0
  170. package/lib/elements/entities/bucket/adapters/bucket_adapter.js +41 -0
  171. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +37 -0
  172. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +149 -0
  173. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
  174. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +218 -0
  175. package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +19 -0
  176. package/lib/elements/entities/bucket/adapters/memory.nql.js +212 -0
  177. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +20 -0
  178. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +31 -0
  179. package/lib/elements/entities/bucket/bucket.builder.d.ts +61 -0
  180. package/lib/elements/entities/bucket/bucket.builder.js +130 -0
  181. package/lib/elements/entities/bucket/bucket.config.d.ts +29 -0
  182. package/lib/elements/entities/bucket/bucket.config.js +2 -0
  183. package/lib/elements/entities/bucket/bucket.d.ts +36 -0
  184. package/lib/elements/entities/bucket/bucket.infer.d.ts +22 -0
  185. package/lib/elements/entities/bucket/bucket.infer.js +85 -0
  186. package/lib/elements/entities/bucket/bucket.js +125 -0
  187. package/lib/elements/entities/bucket/bucket.schema.d.ts +24 -0
  188. package/lib/elements/entities/bucket/bucket.schema.js +16 -0
  189. package/lib/elements/entities/bucket/bucket.types.d.ts +32 -0
  190. package/lib/elements/entities/bucket/bucket.types.js +2 -0
  191. package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +35 -0
  192. package/lib/elements/entities/bucket/cache/bucket_cache.js +182 -0
  193. package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +11 -0
  194. package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +27 -0
  195. package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +16 -0
  196. package/lib/elements/entities/bucket/graph/bucket_graph.infer.d.ts +9 -0
  197. package/lib/elements/entities/bucket/graph/bucket_graph.infer.js +2 -0
  198. package/lib/elements/entities/bucket/graph/bucket_graph.js +136 -0
  199. package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +28 -0
  200. package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +27 -0
  201. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +36 -0
  202. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +56 -0
  203. package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +13 -0
  204. package/lib/elements/entities/bucket/model/bucket_model.builder.js +24 -0
  205. package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +5 -0
  206. package/lib/elements/entities/bucket/model/bucket_model.convert.js +51 -0
  207. package/lib/elements/entities/bucket/model/bucket_model.infer.d.ts +13 -0
  208. package/lib/elements/entities/bucket/model/bucket_model.infer.js +2 -0
  209. package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +35 -0
  210. package/lib/elements/entities/bucket/model/bucket_model.schema.js +47 -0
  211. package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +119 -0
  212. package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +154 -0
  213. package/lib/elements/entities/bucket/query/nql.schema.d.ts +140 -0
  214. package/lib/elements/entities/bucket/query/nql.schema.js +2 -0
  215. package/lib/elements/entities/bucket/query/nql_compiler.d.ts +44 -0
  216. package/lib/elements/entities/bucket/query/nql_compiler.js +620 -0
  217. package/lib/elements/entities/bucket/query/nql_engine.d.ts +16 -0
  218. package/lib/elements/entities/bucket/query/nql_engine.js +42 -0
  219. package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +14 -0
  220. package/lib/elements/entities/bucket/view/bucket_view.builder.js +24 -0
  221. package/lib/elements/entities/bucket/view/bucket_view.d.ts +10 -0
  222. package/lib/elements/entities/bucket/view/bucket_view.js +102 -0
  223. package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +55 -0
  224. package/lib/elements/entities/bucket/view/bucket_view.schema.js +42 -0
  225. package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +37 -0
  226. package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +138 -0
  227. package/lib/elements/entities/constants/constants.builder.d.ts +57 -0
  228. package/lib/elements/entities/constants/constants.builder.js +116 -0
  229. package/lib/elements/entities/constants/constants.d.ts +7 -0
  230. package/lib/elements/entities/constants/constants.js +15 -0
  231. package/lib/elements/entities/constants/constants.schema.d.ts +51 -0
  232. package/lib/elements/entities/constants/constants.schema.js +45 -0
  233. package/lib/elements/entities/message/message.builder.d.ts +33 -0
  234. package/lib/elements/entities/message/message.builder.js +41 -0
  235. package/lib/elements/entities/message/message.d.ts +11 -0
  236. package/lib/elements/entities/message/message.infer.d.ts +63 -0
  237. package/lib/elements/entities/message/message.infer.js +2 -0
  238. package/lib/elements/entities/message/message.js +52 -0
  239. package/lib/elements/entities/message/message.schema.d.ts +15 -0
  240. package/lib/elements/entities/message/message.schema.js +13 -0
  241. package/lib/elements/entities/message/message_parser.d.ts +12 -0
  242. package/lib/elements/entities/message/message_parser.js +112 -0
  243. package/lib/elements/entities/message/template/message_template.builder.d.ts +14 -0
  244. package/lib/elements/entities/message/template/message_template.builder.js +20 -0
  245. package/lib/elements/entities/message/template/message_template.schema.d.ts +57 -0
  246. package/lib/elements/entities/message/template/message_template.schema.js +28 -0
  247. package/lib/elements/entities/message/template/message_template_field.builder.d.ts +225 -0
  248. package/lib/elements/entities/message/template/message_template_field.builder.js +172 -0
  249. package/lib/elements/entities/message/template/message_template_parser.d.ts +3 -0
  250. package/lib/elements/entities/message/template/message_template_parser.js +83 -0
  251. package/lib/elements/index.d.ts +11 -0
  252. package/lib/elements/index.js +23 -0
  253. package/lib/engine/apps/app.config.d.ts +49 -0
  254. package/lib/engine/apps/app.config.js +38 -0
  255. package/lib/engine/apps/app.d.ts +70 -0
  256. package/lib/engine/apps/app.js +101 -0
  257. package/lib/engine/apps/inline.app.d.ts +48 -0
  258. package/lib/engine/apps/inline.app.js +144 -0
  259. package/lib/engine/apps/monolyth/monolyth.app.d.ts +20 -0
  260. package/lib/engine/apps/monolyth/monolyth.app.js +94 -0
  261. package/lib/engine/apps/monolyth/monolyth.cli.d.ts +45 -0
  262. package/lib/engine/apps/monolyth/monolyth.cli.js +362 -0
  263. package/lib/engine/auth/authn.d.ts +18 -0
  264. package/lib/engine/auth/authn.js +9 -0
  265. package/lib/engine/auth/zero.authn_provider.d.ts +13 -0
  266. package/lib/engine/auth/zero.authn_provider.js +13 -0
  267. package/lib/engine/cli/cli.d.ts +19 -0
  268. package/lib/engine/cli/cli.js +88 -0
  269. package/lib/engine/cli/cli_adapter.d.ts +18 -0
  270. package/lib/engine/cli/cli_adapter.js +61 -0
  271. package/lib/engine/cli/ui.d.ts +36 -0
  272. package/lib/engine/cli/ui.js +188 -0
  273. package/lib/engine/daemon.d.ts +35 -0
  274. package/lib/engine/daemon.js +66 -0
  275. package/lib/engine/data/date.d.ts +10 -0
  276. package/lib/engine/data/date.js +32 -0
  277. package/lib/engine/data/datetime.d.ts +12 -0
  278. package/lib/engine/data/datetime.js +31 -0
  279. package/lib/engine/data/decimal.d.ts +11 -0
  280. package/lib/engine/data/decimal.js +70 -0
  281. package/lib/engine/data/error.d.ts +213 -0
  282. package/lib/engine/data/error.js +386 -0
  283. package/lib/engine/data/obj.d.ts +16 -0
  284. package/lib/engine/data/obj.js +5 -0
  285. package/lib/engine/data/tree.d.ts +17 -0
  286. package/lib/engine/data/tree.js +111 -0
  287. package/lib/engine/dependency.d.ts +68 -0
  288. package/lib/engine/dependency.js +91 -0
  289. package/lib/engine/module.d.ts +97 -0
  290. package/lib/engine/module.js +335 -0
  291. package/lib/engine/space.d.ts +54 -0
  292. package/lib/engine/space.js +138 -0
  293. package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +53 -0
  294. package/lib/engine/transaction/nodes/bucket.trx_node.js +522 -0
  295. package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +17 -0
  296. package/lib/engine/transaction/nodes/bucket_query.trx_node.js +82 -0
  297. package/lib/engine/transaction/nodes/job.trx_node.d.ts +13 -0
  298. package/lib/engine/transaction/nodes/job.trx_node.js +40 -0
  299. package/lib/engine/transaction/nodes/machine.trx_node.d.ts +12 -0
  300. package/lib/engine/transaction/nodes/machine.trx_node.js +39 -0
  301. package/lib/engine/transaction/nodes/queue.trx_node.d.ts +10 -0
  302. package/lib/engine/transaction/nodes/queue.trx_node.js +24 -0
  303. package/lib/engine/transaction/nodes/resource.trx_node.d.ts +24 -0
  304. package/lib/engine/transaction/nodes/resource.trx_node.js +77 -0
  305. package/lib/engine/transaction/trx.d.ts +50 -0
  306. package/lib/engine/transaction/trx.js +94 -0
  307. package/lib/engine/transaction/trx_engine.config.d.ts +15 -0
  308. package/lib/engine/transaction/trx_engine.config.js +2 -0
  309. package/lib/engine/transaction/trx_engine.d.ts +27 -0
  310. package/lib/engine/transaction/trx_engine.js +95 -0
  311. package/lib/engine/transaction/trx_node.d.ts +61 -0
  312. package/lib/engine/transaction/trx_node.js +175 -0
  313. package/lib/engine/tree.d.ts +34 -0
  314. package/lib/engine/tree.js +237 -0
  315. package/lib/engine/util/cache.d.ts +6 -0
  316. package/lib/engine/util/cache.js +20 -0
  317. package/lib/engine/util/console.d.ts +4 -0
  318. package/lib/engine/util/console.js +24 -0
  319. package/lib/engine/util/deep.d.ts +7 -0
  320. package/lib/engine/util/deep.js +2 -0
  321. package/lib/engine/util/dotenv.d.ts +15 -0
  322. package/lib/engine/util/dotenv.js +94 -0
  323. package/lib/engine/util/i18n.d.ts +5 -0
  324. package/lib/engine/util/i18n.js +19 -0
  325. package/lib/engine/util/log.d.ts +17 -0
  326. package/lib/engine/util/log.js +93 -0
  327. package/lib/engine/util/parse.d.ts +63 -0
  328. package/lib/engine/util/parse.js +229 -0
  329. package/lib/engine/util/promise.d.ts +3 -0
  330. package/lib/engine/util/promise.js +14 -0
  331. package/lib/engine/util/shell.d.ts +6 -0
  332. package/lib/engine/util/shell.js +44 -0
  333. package/lib/engine/util/string.d.ts +18 -0
  334. package/lib/engine/util/string.js +25 -0
  335. package/lib/engine/util/type.d.ts +7 -0
  336. package/lib/engine/util/type.js +3 -0
  337. package/lib/schema.d.ts +63 -0
  338. package/lib/schema.js +2 -0
  339. package/package.json +22 -0
  340. package/tools/compile.d.ts +1 -0
  341. package/tools/compile.js +68 -0
  342. package/tools/joaquin/job.d.ts +40 -0
  343. package/tools/joaquin/job.js +47 -0
  344. package/tools/joaquin/message.d.ts +12 -0
  345. package/tools/joaquin/message.js +47 -0
  346. package/tools/joaquin/mock.d.ts +28 -0
  347. package/tools/joaquin/mock.js +128 -0
  348. package/tsconfig.build.tsbuildinfo +1 -0
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceBuilder = void 0;
4
+ const resource_schema_1 = require("./resource.schema");
5
+ const resource_job_builder_1 = require("../job/internal/resource_job.builder");
6
+ const block_builder_1 = require("../block.builder");
7
+ const error_1 = require("../../../engine/data/error");
8
+ const message_builder_1 = require("../../entities/message/message.builder");
9
+ const bucket_model_convert_1 = require("../../entities/bucket/model/bucket_model.convert");
10
+ const dependency_1 = require("../../../engine/dependency");
11
+ const name_helpers_1 = require("../../../compiler/helpers/name_helpers");
12
+ const job_builder_1 = require("../job/job.builder");
13
+ const resource_1 = require("./resource");
14
+ const resource_job_1 = require("../job/internal/resource_job");
15
+ class ResourceBuilder extends block_builder_1.BlockBuilder {
16
+ constructor(module, name) {
17
+ super(module, 'resource', name);
18
+ this.$b = 'resource';
19
+ this._jobs = {};
20
+ }
21
+ /* [Block] */
22
+ authn(...providers) {
23
+ return super.authn(...providers);
24
+ }
25
+ /* Bucket */
26
+ bucket(name) {
27
+ this._bucket = new dependency_1.$Dependency(this.module, 'bucket', name);
28
+ return this;
29
+ }
30
+ /* Read */
31
+ view(...views) {
32
+ const name = `${this.name}.view`;
33
+ const alias = `View ${this._alias || this.name}`;
34
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'view', alias, resource_1.Resource.view, this._authn)
35
+ .input($ => ({
36
+ view: $.enum(views).default(views[0]),
37
+ id: $.string_or_number.optional,
38
+ perPage: $.int.default(10),
39
+ page: $.int.default(0),
40
+ orderBy: $.string.optional,
41
+ orderDesc: $.boolean.default(false)
42
+ }))
43
+ .prepare(resource_job_1.ResourceJob.prepareMsgData);
44
+ this._inlineNodes.push(new dependency_1.BuilderNode({
45
+ module: this.module,
46
+ type: 'job',
47
+ name: name,
48
+ builder: jobBuilder,
49
+ isInline: true,
50
+ filepath: [], // This is added later by Treeshake.blockInlineNodes()
51
+ dependencies: [] // This is added later by Treeshake.*()
52
+ }));
53
+ this._jobs.view = new dependency_1.$Dependency(this.module, 'job', name);
54
+ return this;
55
+ }
56
+ query(...views) {
57
+ const name = `${this.name}.query`;
58
+ const alias = `Query ${this._alias || this.name}`;
59
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'query', alias, resource_1.Resource.query, this._authn)
60
+ .input($ => ({
61
+ view: $.enum(views).default(views[0]),
62
+ query: $.dict($.any),
63
+ perPage: $.int.default(10),
64
+ page: $.int.default(0),
65
+ orderBy: $.string.optional,
66
+ orderDesc: $.boolean.default(false)
67
+ }))
68
+ .prepare(resource_job_1.ResourceJob.prepareMsgData);
69
+ this._inlineNodes.push(new dependency_1.BuilderNode({
70
+ module: this.module,
71
+ type: 'job',
72
+ name: name,
73
+ builder: jobBuilder,
74
+ isInline: true,
75
+ filepath: [], // This is added later by Treeshake.blockInlineNodes()
76
+ dependencies: [] // This is added later by Treeshake.*()
77
+ }));
78
+ this._jobs.query = new dependency_1.$Dependency(this.module, 'job', name);
79
+ return this;
80
+ }
81
+ /* Create/Update/Delete */
82
+ create($) {
83
+ const name = `${this.name}.create`;
84
+ const alias = `Create ${this._alias || this.name}`;
85
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'create', alias, resource_1.Resource.create, this._authn)
86
+ .prepare(resource_job_1.ResourceJob.prepareMsgData);
87
+ $(jobBuilder);
88
+ this._inlineNodes.push(new dependency_1.BuilderNode({
89
+ module: this.module,
90
+ type: 'job',
91
+ name: name,
92
+ builder: jobBuilder,
93
+ isInline: true,
94
+ filepath: [], // This is added later by Treeshake.blockInlineNodes()
95
+ dependencies: [] // This is added later by Treeshake.*()
96
+ }));
97
+ this._jobs.create = new dependency_1.$Dependency(this.module, 'job', name);
98
+ return this;
99
+ }
100
+ update($) {
101
+ const name = `${this.name}.update`;
102
+ const alias = `Update ${this._alias || this.name}`;
103
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'update', alias, resource_1.Resource.update, this._authn, {
104
+ id: ['string_or_number', undefined]
105
+ })
106
+ .prepare(resource_job_1.ResourceJob.prepareMsgData);
107
+ $(jobBuilder);
108
+ this._inlineNodes.push(new dependency_1.BuilderNode({
109
+ module: this.module,
110
+ type: 'job',
111
+ name: name,
112
+ builder: jobBuilder,
113
+ isInline: true,
114
+ filepath: [], // This is added later by Treeshake.blockInlineNodes()
115
+ dependencies: [] // This is added later by Treeshake.*()
116
+ }));
117
+ this._jobs.update = new dependency_1.$Dependency(this.module, 'job', name);
118
+ return this;
119
+ }
120
+ delete($) {
121
+ const name = `${this.name}.delete`;
122
+ const alias = `Delete ${this._alias || this.name}`;
123
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'delete', alias, resource_1.Resource.delete, this._authn, {
124
+ id: ['string_or_number', undefined]
125
+ })
126
+ .prepare(resource_job_1.ResourceJob.prepareTrue);
127
+ $(jobBuilder);
128
+ this._inlineNodes.push(new dependency_1.BuilderNode({
129
+ module: this.module,
130
+ type: 'job',
131
+ name: name,
132
+ builder: jobBuilder,
133
+ isInline: true,
134
+ filepath: [], // This is added later by Treeshake.blockInlineNodes()
135
+ dependencies: [] // This is added later by Treeshake.*()
136
+ }));
137
+ this._jobs.delete = new dependency_1.$Dependency(this.module, 'job', name);
138
+ return this;
139
+ }
140
+ // Build
141
+ static build(node, tree, module) {
142
+ const bucket = tree.getSchema(node.builder._bucket);
143
+ if (!bucket) {
144
+ throw error_1.NesoiError.Builder.Resource.BucketNotFound(node.builder.name, node.builder._bucket.refName);
145
+ }
146
+ const model = bucket.model;
147
+ const modelName = name_helpers_1.NameHelpers.nameLowToHigh(bucket.name);
148
+ const inlineMsgs = {};
149
+ const inlineJobs = {};
150
+ const inlineJobsConfig = {};
151
+ // view
152
+ const viewDep = node.builder._jobs.view;
153
+ if (viewDep) {
154
+ inlineJobsConfig[viewDep.name] = {
155
+ ResourceJob: {
156
+ output: { raw: modelName + ' | ' + modelName + '[]' },
157
+ defaultTrigger: undefined
158
+ }
159
+ };
160
+ }
161
+ // query
162
+ const queryDep = node.builder._jobs.query;
163
+ if (queryDep) {
164
+ inlineJobsConfig[queryDep.name] = {
165
+ ResourceJob: {
166
+ idType: null,
167
+ output: { raw: modelName + '[]' },
168
+ defaultTrigger: undefined
169
+ }
170
+ };
171
+ }
172
+ // create
173
+ const createDep = node.builder._jobs.create;
174
+ if (createDep) {
175
+ const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, createDep.name, `Create ${node.builder._alias || node.builder.name}`, [], ['id']);
176
+ inlineJobsConfig[createDep.name] = {
177
+ ResourceJob: {
178
+ idType: null,
179
+ output: { raw: modelName },
180
+ defaultTrigger
181
+ }
182
+ };
183
+ }
184
+ // update
185
+ const updateDep = node.builder._jobs.update;
186
+ if (updateDep) {
187
+ const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, updateDep.name, `Update ${node.builder._alias || node.builder.name}`, [], []);
188
+ inlineJobsConfig[updateDep.name] = {
189
+ ResourceJob: {
190
+ idType: model.fields.id.type,
191
+ output: { raw: modelName },
192
+ defaultTrigger
193
+ }
194
+ };
195
+ }
196
+ // delete
197
+ const deleteDep = node.builder._jobs.delete;
198
+ if (deleteDep) {
199
+ const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, deleteDep.name, `Delete ${node.builder._alias || node.builder.name}`, ['id'], []);
200
+ inlineJobsConfig[deleteDep.name] = {
201
+ ResourceJob: {
202
+ idType: model.fields.id.type,
203
+ output: { raw: 'void' },
204
+ defaultTrigger
205
+ }
206
+ };
207
+ }
208
+ node.schema = new resource_schema_1.$Resource(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._authn, node.builder._bucket, node.builder._jobs);
209
+ const jobs = job_builder_1.JobBuilder.buildInlines(node, tree, module, inlineJobsConfig);
210
+ return {
211
+ schema: node.schema,
212
+ inlineMessages: {
213
+ ...message_builder_1.MessageBuilder.buildInlines(node, tree, module),
214
+ ...jobs.nestedInlineMessages,
215
+ ...inlineMsgs,
216
+ },
217
+ inlineJobs: {
218
+ ...jobs.inlineJobs,
219
+ ...inlineJobs
220
+ }
221
+ };
222
+ }
223
+ }
224
+ exports.ResourceBuilder = ResourceBuilder;
@@ -0,0 +1,48 @@
1
+ import { $Module, $Space } from "../../../schema";
2
+ import { $Resource } from './resource.schema';
3
+ import { Block } from "../block";
4
+ import { NesoiObj } from "../../../engine/data/obj";
5
+ import { AnyMessage } from "../../entities/message/message";
6
+ import { Module } from "../../../engine/module";
7
+ import { AnyTrxNode, TrxNode } from "../../../engine/transaction/trx_node";
8
+ import { $Dependency } from "../../../engine/dependency";
9
+ import { ResourceAssertions } from '../job/internal/resource_job.builder';
10
+ import { $Job } from '../job/job.schema';
11
+ export declare class Resource<S extends $Space, M extends $Module, $ extends $Resource> extends Block<S, M, $> {
12
+ module: Module<S, M>;
13
+ schema: $;
14
+ constructor(module: Module<S, M>, schema: $);
15
+ protected run(trx: TrxNode<S, M, $['#authn']>, msg: AnyMessage): Promise<unknown>;
16
+ private view;
17
+ private query;
18
+ private create;
19
+ private update;
20
+ private delete;
21
+ static view($: {
22
+ trx: AnyTrxNode;
23
+ msg: any;
24
+ job: $Job;
25
+ }): Promise<any>;
26
+ static query($: {
27
+ trx: AnyTrxNode;
28
+ msg: any;
29
+ job: $Job;
30
+ }): Promise<any[]>;
31
+ static create($: {
32
+ trx: AnyTrxNode;
33
+ obj: any;
34
+ job: $Job;
35
+ }): Promise<any>;
36
+ static update($: {
37
+ trx: AnyTrxNode;
38
+ obj: any;
39
+ job: $Job;
40
+ }): Promise<any>;
41
+ static delete($: {
42
+ trx: AnyTrxNode;
43
+ obj: any;
44
+ job: $Job;
45
+ }): Promise<void> | undefined;
46
+ static assertThat(trx: AnyTrxNode, bucket: $Dependency, obj: NesoiObj | undefined, type: keyof ResourceAssertions<any>, arg: any): Promise<boolean | undefined>;
47
+ }
48
+ export type AnyResource = Resource<any, any, any>;
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Resource = void 0;
4
+ const block_1 = require("../block");
5
+ const trx_node_1 = require("../../../engine/transaction/trx_node");
6
+ const error_1 = require("../../../engine/data/error");
7
+ class Resource extends block_1.Block {
8
+ constructor(module, schema) {
9
+ super('resource', module, schema);
10
+ this.module = module;
11
+ this.schema = schema;
12
+ }
13
+ async run(trx, msg) {
14
+ if (msg.$.endsWith('.view')) {
15
+ return this.view(trx, msg);
16
+ }
17
+ if (msg.$.endsWith('.query')) {
18
+ return this.query(trx, msg);
19
+ }
20
+ if (msg.$.endsWith('.create')) {
21
+ return this.create(trx, msg);
22
+ }
23
+ if (msg.$.endsWith('.update')) {
24
+ return this.update(trx, msg);
25
+ }
26
+ if (msg.$.endsWith('.delete')) {
27
+ return this.delete(trx, msg);
28
+ }
29
+ }
30
+ async view(trx, msg) {
31
+ if (!this.schema.jobs.view) {
32
+ throw error_1.NesoiError.Resource.ViewNotSupported(this.schema);
33
+ }
34
+ return trx.job(this.schema.jobs.view.refName).forward(msg);
35
+ }
36
+ async query(trx, msg) {
37
+ // const q = $BucketQuery.parse(msg.query);
38
+ // const node = trx.bucket(this.schema.bucket.refName).query(msg.view, q);
39
+ // if (msg.orderBy) {
40
+ // node.orderBy(msg.orderBy as keyof NesoiObj, msg.orderDesc ? 'desc' : 'asc');
41
+ // }
42
+ // return node.page({
43
+ // perPage: msg.perPage,
44
+ // page: msg.page
45
+ // });
46
+ if (!this.schema.jobs.query) {
47
+ throw error_1.NesoiError.Resource.QueryNotSupported(this.schema);
48
+ }
49
+ return trx.job(this.schema.jobs.query.refName).forward(msg);
50
+ }
51
+ async create(trx, msg) {
52
+ if (!this.schema.jobs.create) {
53
+ throw error_1.NesoiError.Resource.CreateNotSupported(this.schema);
54
+ }
55
+ return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.create.refName, {
56
+ that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, undefined, type, arg)
57
+ }).forward(msg);
58
+ }
59
+ async update(trx, msg) {
60
+ if (!this.schema.jobs.update) {
61
+ throw error_1.NesoiError.Resource.UpdateNotSupported(this.schema);
62
+ }
63
+ const obj = await trx.bucket(this.schema.bucket.refName).readOneOrFail(msg.id);
64
+ return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.update.refName, {
65
+ that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, obj, type, arg),
66
+ obj,
67
+ })
68
+ .forward(msg);
69
+ }
70
+ async delete(trx, msg) {
71
+ if (!this.schema.jobs.delete) {
72
+ throw error_1.NesoiError.Resource.DeleteNotSupported(this.schema);
73
+ }
74
+ const obj = await trx.bucket(this.schema.bucket.refName).readOneOrFail(msg.id);
75
+ return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.delete.refName, {
76
+ that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, obj, type, arg),
77
+ obj,
78
+ })
79
+ .forward(msg);
80
+ }
81
+ static view($) {
82
+ const scope = $.job.scope;
83
+ return $.msg.id
84
+ ? $.trx.bucket(scope.bucket).viewOneOrFail($.msg.id, $.msg.view)
85
+ : $.trx.bucket(scope.bucket).viewAll($.msg.view);
86
+ }
87
+ static query($) {
88
+ const scope = $.job.scope;
89
+ return $.trx.bucket(scope.bucket)
90
+ .query($.msg.query).all();
91
+ }
92
+ static create($) {
93
+ const scope = $.job.scope;
94
+ return $.trx.bucket(scope.bucket)
95
+ .create($.obj);
96
+ }
97
+ static update($) {
98
+ const scope = $.job.scope;
99
+ return $.trx.bucket(scope.bucket)
100
+ .patch($.obj);
101
+ }
102
+ static delete($) {
103
+ const scope = $.job.scope;
104
+ if (!$.obj) {
105
+ return;
106
+ }
107
+ return $.trx.bucket(scope.bucket)
108
+ .deleteOrFail($.obj.id);
109
+ }
110
+ // Custom assertions
111
+ static async assertThat(trx, bucket, obj, type, arg) {
112
+ if (type === 'query is empty') {
113
+ return !(await trx.bucket(bucket.refName)
114
+ .query(arg)
115
+ .first());
116
+ }
117
+ if (type === 'has no link') {
118
+ if (!obj)
119
+ return true;
120
+ return !(await trx.bucket(bucket.refName)
121
+ .hasLink(obj.id, arg));
122
+ }
123
+ }
124
+ }
125
+ exports.Resource = Resource;
@@ -0,0 +1,32 @@
1
+ import { $Block } from "../block.schema";
2
+ import { $Bucket } from "../../entities/bucket/bucket.schema";
3
+ import { $Message } from "../../entities/message/message.schema";
4
+ import { $Dependency } from "../../../engine/dependency";
5
+ export declare class $Resource extends $Block {
6
+ module: string;
7
+ name: string;
8
+ alias: string;
9
+ authn: string[];
10
+ bucket: $Dependency;
11
+ jobs: {
12
+ view?: $Dependency;
13
+ query?: $Dependency;
14
+ create?: $Dependency;
15
+ update?: $Dependency;
16
+ delete?: $Dependency;
17
+ };
18
+ $t: "resource";
19
+ '#bucket': $Bucket;
20
+ '#input.view': $Message;
21
+ '#input.query': $Message;
22
+ '#input.create': $Message;
23
+ '#input.update': $Message;
24
+ '#input.delete': $Message;
25
+ constructor(module: string, name: string, alias: string, authn: string[], bucket: $Dependency, jobs: {
26
+ view?: $Dependency;
27
+ query?: $Dependency;
28
+ create?: $Dependency;
29
+ update?: $Dependency;
30
+ delete?: $Dependency;
31
+ });
32
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$Resource = void 0;
4
+ const block_schema_1 = require("../block.schema");
5
+ const dependency_1 = require("../../../engine/dependency");
6
+ class $Resource extends block_schema_1.$Block {
7
+ constructor(module, name, alias, authn, bucket, jobs) {
8
+ const input = [];
9
+ if (jobs.view)
10
+ input.push(new dependency_1.$Dependency(module, 'message', jobs.view.name));
11
+ if (jobs.query)
12
+ input.push(new dependency_1.$Dependency(module, 'message', jobs.query.name));
13
+ if (jobs.create)
14
+ input.push(new dependency_1.$Dependency(module, 'message', jobs.create.name));
15
+ if (jobs.update)
16
+ input.push(new dependency_1.$Dependency(module, 'message', jobs.update.name));
17
+ if (jobs.delete)
18
+ input.push(new dependency_1.$Dependency(module, 'message', jobs.delete.name));
19
+ // TODO: Input dependencies
20
+ super(module, name, alias, authn, input, {});
21
+ this.module = module;
22
+ this.name = name;
23
+ this.alias = alias;
24
+ this.authn = authn;
25
+ this.bucket = bucket;
26
+ this.jobs = jobs;
27
+ this.$t = 'resource';
28
+ }
29
+ }
30
+ exports.$Resource = $Resource;
@@ -0,0 +1,38 @@
1
+ import { $Module, $Space } from "../../../schema";
2
+ import { $Resource } from './resource.schema';
3
+ import { NesoiObjId, UndefinedToOptional } from "../../../engine/data/obj";
4
+ import { ResourceJobDef } from '../job/internal/resource_job.builder';
5
+ import { $Message } from "../../entities/message/message.schema";
6
+ import { Overlay } from "../../../engine/util/type";
7
+ export type asResourceCreateJob<S extends $Space, Module extends keyof S['modules'], Res extends keyof S['modules'][Module]['resources'], M extends $Module = S['modules'][Module], $ extends $Resource = M['resources'][Res], Response extends Record<string, any> = UndefinedToOptional<Omit<$['#bucket']['#data'], 'id'>>, MsgName extends string = `${$['name']}.create`, MsgData extends Record<string, any> = Omit<$['#bucket']['#data'], 'id'>, DefaultTrigger extends $Message = Overlay<$Message, {
8
+ $: MsgName;
9
+ '#raw': MsgData['#input'] & {
10
+ $: MsgData['$'];
11
+ };
12
+ '#parsed': MsgData['#output'] & {
13
+ $: MsgData['$'];
14
+ };
15
+ fields: any;
16
+ }>> = ResourceJobDef<S, M, MsgName, Response, $['#authn'], $['#bucket'], DefaultTrigger>;
17
+ export type asResourceUpdateJob<S extends $Space, Module extends keyof S['modules'], Res extends keyof S['modules'][Module]['resources'], M extends $Module = S['modules'][Module], $ extends $Resource = M['resources'][Res], Response extends Record<string, any> = UndefinedToOptional<Omit<$['#bucket']['#data'], 'id'>>, MsgName extends string = `${$['name']}.update`, MsgData extends Record<string, any> = $['#bucket']['#data'], DefaultTrigger extends $Message = Overlay<$Message, {
18
+ $: MsgName;
19
+ '#raw': MsgData['#input'] & {
20
+ $: MsgData['$'];
21
+ };
22
+ '#parsed': MsgData['#output'] & {
23
+ $: MsgData['$'];
24
+ };
25
+ fields: any;
26
+ }>> = ResourceJobDef<S, M, MsgName, Response, $['#authn'], $['#bucket'], DefaultTrigger>;
27
+ export type asResourceDeleteJob<S extends $Space, Module extends keyof S['modules'], Res extends keyof S['modules'][Module]['resources'], M extends $Module = S['modules'][Module], $ extends $Resource = M['resources'][Res], MsgName extends string = `${$['name']}.update`, MsgData extends Record<string, any> = $['#bucket']['#data'], DefaultTrigger extends $Message = Overlay<$Message, {
28
+ $: MsgName;
29
+ '#raw': MsgData['#input'] & {
30
+ $: MsgData['$'];
31
+ };
32
+ '#parsed': MsgData['#output'] & {
33
+ $: MsgData['$'];
34
+ };
35
+ fields: any;
36
+ }>> = ResourceJobDef<S, M, MsgName, boolean, $['#authn'], $['#bucket'], DefaultTrigger, {
37
+ id: NesoiObjId;
38
+ }>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* File splitters */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { ControllerAdapter } from './controller_adapter';
2
+ import { ControllerEndpoint } from '../controller';
3
+ import { $ControllerDomain, $ControllerEndpoint, $ControllerGroup } from '../controller.schema';
4
+ export type ControllerEndpointPath = ($ControllerDomain | $ControllerGroup | $ControllerEndpoint)[];
5
+ export declare class CLIControllerAdapter extends ControllerAdapter {
6
+ endpoints: Record<string, ControllerEndpoint<$ControllerEndpoint>>;
7
+ protected makeEndpoint(path: string, schema: $ControllerEndpoint): void;
8
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CLIControllerAdapter = void 0;
4
+ const controller_adapter_1 = require("./controller_adapter");
5
+ const controller_1 = require("../controller");
6
+ const log_1 = require("../../../../engine/util/log");
7
+ class CLIControllerAdapter extends controller_adapter_1.ControllerAdapter {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.endpoints = {};
11
+ }
12
+ makeEndpoint(path, schema) {
13
+ this.endpoints[path] = new controller_1.ControllerEndpoint(schema, this, path);
14
+ log_1.Log.debug('controller', this.schema.name, `Bound endpoint '${path}' to '${schema.target.tag}'`);
15
+ }
16
+ }
17
+ exports.CLIControllerAdapter = CLIControllerAdapter;
@@ -0,0 +1,14 @@
1
+ import { AnyTrxNode } from "../../../../engine/transaction/trx_node";
2
+ import { $Controller, $ControllerDomain, $ControllerEndpoint, $ControllerGroup } from '../controller.schema';
3
+ import { AnyDaemon } from "../../../../engine/daemon";
4
+ export type ControllerEndpointPath = ($ControllerDomain | $ControllerGroup | $ControllerEndpoint)[];
5
+ export declare abstract class ControllerAdapter {
6
+ protected schema: $Controller;
7
+ protected daemon?: AnyDaemon;
8
+ constructor(schema: $Controller);
9
+ trx(fn: (trx: AnyTrxNode) => Promise<any>): Promise<import("../../../../engine/transaction/trx").TrxStatus<any>>;
10
+ bind(daemon: AnyDaemon): void;
11
+ protected abstract makeEndpoint(path: string, schema: $ControllerEndpoint): void;
12
+ protected makeGroup(group: $ControllerGroup, root?: ControllerEndpointPath): void;
13
+ protected makePath(schema: $Controller, path: ControllerEndpointPath): string;
14
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ControllerAdapter = void 0;
4
+ class ControllerAdapter {
5
+ constructor(schema) {
6
+ this.schema = schema;
7
+ }
8
+ trx(fn) {
9
+ if (!this.daemon) {
10
+ throw new Error('Controller not bound to a daemon');
11
+ }
12
+ return this.daemon.trx(this.schema.module).run(fn);
13
+ }
14
+ bind(daemon) {
15
+ this.daemon = daemon;
16
+ for (const d in this.schema.domains) {
17
+ const domain = this.schema.domains[d];
18
+ this.makeGroup(domain, [domain]);
19
+ }
20
+ }
21
+ makeGroup(group, root = []) {
22
+ for (const e in group.endpoints) {
23
+ const endpoint = group.endpoints[e];
24
+ const path = this.makePath(this.schema, [...root, endpoint]);
25
+ this.makeEndpoint(path, endpoint);
26
+ }
27
+ for (const e in group.groups) {
28
+ const childGroup = group.groups[e];
29
+ const childRoot = [...root, childGroup];
30
+ this.makeGroup(childGroup, childRoot);
31
+ }
32
+ }
33
+ makePath(schema, path) {
34
+ const domain = path[0];
35
+ const root = domain.name
36
+ ? [schema.name, domain.name, domain.version]
37
+ : [schema.name, domain.version];
38
+ const list = root.concat(path
39
+ .slice(1)
40
+ .map(node => node.name));
41
+ return '/' + list.join('/');
42
+ }
43
+ }
44
+ exports.ControllerAdapter = ControllerAdapter;
@@ -0,0 +1,78 @@
1
+ import { $Module, $Space } from "../../../schema";
2
+ import { $Controller, $ControllerDomain, $ControllerEndpoint, $ControllerGroup } from './controller.schema';
3
+ import { $Message } from "../../entities/message/message.schema";
4
+ import { $Dependency, ResolvedBuilderNode } from "../../../engine/dependency";
5
+ type JobsSupportingMsg<M extends $Module, Msg extends $Message> = {
6
+ [J in keyof M['jobs']]: Msg extends M['jobs'][J]['#input'] ? J : never;
7
+ }[keyof M['jobs']];
8
+ type ResourcesSupportingMsg<M extends $Module, Msg extends $Message> = {
9
+ [J in keyof M['resources']]: Msg extends M['resources'][J]['#input'] ? J : never;
10
+ }[keyof M['resources']];
11
+ type MachinesSupportingMsg<M extends $Module, Msg extends $Message> = {
12
+ [J in keyof M['machines']]: Msg extends M['machines'][J]['#input'] ? J : never;
13
+ }[keyof M['machines']];
14
+ export declare class ControllerEndpointBuilder<S extends $Space, M extends $Module, Msg extends $Message = never> {
15
+ private module;
16
+ private name;
17
+ private _alias?;
18
+ private _version?;
19
+ private _authn;
20
+ private _tags;
21
+ private _msg;
22
+ private _target;
23
+ constructor(module: string, name: string);
24
+ as(alias: string): this;
25
+ authn<U extends keyof S['authnUsers']>(providers: U | U[]): this;
26
+ tag(tag: string): this;
27
+ tags(tags: string[]): this;
28
+ msg<K extends keyof M['messages']>(msg: K): ControllerEndpointBuilder<S, M, M["messages"][K]>;
29
+ toJob(job: JobsSupportingMsg<M, Msg>): this;
30
+ toResource(resource: ResourcesSupportingMsg<M, Msg>): this;
31
+ toMachine(machine: MachinesSupportingMsg<M, Msg>): this;
32
+ static build(builder: ControllerEndpointBuilder<any, any>): $ControllerEndpoint;
33
+ }
34
+ export declare class ControllerGroupBuilder<S extends $Space, M extends $Module> {
35
+ private module;
36
+ protected name: string;
37
+ protected _alias?: string;
38
+ protected _authn: string[];
39
+ protected groups: Record<string, ControllerGroupBuilder<any, any>>;
40
+ protected endpoints: Record<string, ControllerEndpointBuilder<any, any>>;
41
+ constructor(module: string, name: string);
42
+ as(alias: string): this;
43
+ authn<U extends keyof S['authnUsers']>(providers: U | U[]): this;
44
+ endpoint(name: string, $: ControllerEndpointDef<S, M>): this;
45
+ group(name: string, $: ControllerGroupDef<S, M>): this;
46
+ static build(builder: ControllerGroupBuilder<any, any>): $ControllerGroup;
47
+ static buildGroups(builders: Record<string, ControllerGroupBuilder<any, any>>): Record<string, $ControllerGroup>;
48
+ static buildEndpoints(builders: Record<string, ControllerEndpointBuilder<any, any>>): Record<string, $ControllerEndpoint>;
49
+ }
50
+ export declare class ControllerDomainBuilder<S extends $Space, M extends $Module> extends ControllerGroupBuilder<S, M> {
51
+ private _version;
52
+ version(version: string): this;
53
+ static build(builder: ControllerDomainBuilder<any, any>): $ControllerDomain;
54
+ }
55
+ export declare class ControllerBuilder<S extends $Space, M extends $Module> {
56
+ private module;
57
+ private name;
58
+ $b: "controller";
59
+ private _alias?;
60
+ private _authn;
61
+ private domains;
62
+ constructor(module: string, name: string);
63
+ as(alias: string): this;
64
+ authn<U extends keyof S['authnUsers']>(providers: U | U[]): this;
65
+ domain(name: string, $: ControllerDomainDef<S, M>): this;
66
+ static build(node: ControllerBuilderNode): $Controller;
67
+ static buildInput(group: $ControllerGroup): $Dependency[];
68
+ static buildDomains(builders: Record<string, ControllerDomainBuilder<any, any>>): Record<string, $ControllerDomain>;
69
+ }
70
+ type ControllerEndpointDef<S extends $Space, M extends $Module> = ($: ControllerEndpointBuilder<S, M>) => ControllerEndpointBuilder<S, M, any>;
71
+ type ControllerGroupDef<S extends $Space, M extends $Module> = ($: ControllerGroupBuilder<S, M>) => ControllerGroupBuilder<S, M>;
72
+ type ControllerDomainDef<S extends $Space, M extends $Module> = ($: ControllerDomainBuilder<S, M>) => ControllerDomainBuilder<S, M>;
73
+ export type AnyControllerBuilder = ControllerBuilder<any, any>;
74
+ export type ControllerBuilderNode = Omit<ResolvedBuilderNode, 'builder'> & {
75
+ builder: AnyControllerBuilder;
76
+ schema?: $Controller;
77
+ };
78
+ export {};