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,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MachineTrxNode = void 0;
4
+ const trx_node_1 = require("../trx_node");
5
+ class MachineTrxNode {
6
+ constructor(trx, machine) {
7
+ this.trx = trx;
8
+ this.machine = machine;
9
+ }
10
+ async run(message) {
11
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.machine.schema.module, 'machine', this.machine.schema.name);
12
+ await trx_node_1.TrxNode.open(trx, 'run', message);
13
+ let response;
14
+ try {
15
+ response = await this.machine.consumeRaw(trx, message);
16
+ }
17
+ catch (e) {
18
+ await trx_node_1.TrxNode.error(trx, e);
19
+ throw e;
20
+ }
21
+ await trx_node_1.TrxNode.ok(trx, response);
22
+ return response;
23
+ }
24
+ async forward(message) {
25
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.machine.schema.module, 'machine', this.machine.schema.name);
26
+ await trx_node_1.TrxNode.open(trx, 'forward', message);
27
+ let response;
28
+ try {
29
+ response = await this.machine.consume(trx, message);
30
+ }
31
+ catch (e) {
32
+ await trx_node_1.TrxNode.error(trx, e);
33
+ throw e;
34
+ }
35
+ await trx_node_1.TrxNode.ok(trx, response);
36
+ return response;
37
+ }
38
+ }
39
+ exports.MachineTrxNode = MachineTrxNode;
@@ -0,0 +1,10 @@
1
+ import { $Module, RawMessageInput } from "../../../schema";
2
+ import { TrxNode } from '../trx_node';
3
+ import { $Queue } from "../../../elements/blocks/queue/queue.schema";
4
+ import { Queue } from "../../../elements/blocks/queue/queue";
5
+ export declare class QueueTrxNode<M extends $Module, $ extends $Queue> {
6
+ private trx;
7
+ private queue;
8
+ constructor(trx: TrxNode<any, M, any>, queue: Queue<M, $>);
9
+ push(raw: RawMessageInput<M, keyof M['messages']>): Promise<void>;
10
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueueTrxNode = void 0;
4
+ const trx_node_1 = require("../trx_node");
5
+ class QueueTrxNode {
6
+ constructor(trx, queue) {
7
+ this.trx = trx;
8
+ this.queue = queue;
9
+ }
10
+ async push(raw) {
11
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.queue.schema.module, 'queue', this.queue.schema.name);
12
+ await trx_node_1.TrxNode.open(trx, 'push', { raw });
13
+ let response;
14
+ try {
15
+ // response = this.queue.push(trx, raw);
16
+ }
17
+ catch (e) {
18
+ await trx_node_1.TrxNode.error(trx, e);
19
+ throw e;
20
+ }
21
+ await trx_node_1.TrxNode.ok(trx, response);
22
+ }
23
+ }
24
+ exports.QueueTrxNode = QueueTrxNode;
@@ -0,0 +1,24 @@
1
+ import { $Module } from "../../../schema";
2
+ import { TrxNode } from '../trx_node';
3
+ import { Message } from "../../../elements/entities/message/message";
4
+ import { $Resource } from "../../../elements/blocks/resource/resource.schema";
5
+ import { Resource } from "../../../elements/blocks/resource/resource";
6
+ type ViewRaw<$ extends $Resource> = $['#input.view']['#raw'];
7
+ type QueryRaw<$ extends $Resource> = $['#input.query']['#raw'];
8
+ type CreateRaw<$ extends $Resource> = $['#input.create']['#raw'];
9
+ type UpdateRaw<$ extends $Resource> = $['#input.update']['#raw'];
10
+ type DeleteRaw<$ extends $Resource> = $['#input.delete']['#raw'];
11
+ export declare class ResourceTrxNode<M extends $Module, $ extends $Resource> {
12
+ private trx;
13
+ private resource;
14
+ constructor(trx: TrxNode<any, M, any>, resource: Resource<any, M, $>);
15
+ forward(message: Message<$['#input']>): Promise<$['#output']>;
16
+ run(raw: ViewRaw<$> | QueryRaw<$> | CreateRaw<$> | UpdateRaw<$> | DeleteRaw<$>): Promise<$['#output']>;
17
+ view<View extends keyof $['#bucket']['views'], Raw extends Omit<ViewRaw<$>, '$'>>(raw: Raw): Promise<$['#bucket']['views'][View]['#data']>;
18
+ query<View extends keyof $['#bucket']['views'], Raw extends Omit<QueryRaw<$>, '$'>>(raw: Raw): Promise<$['#bucket']['views'][View]['#data']>;
19
+ create(raw: Omit<CreateRaw<$>, '$'>): Promise<$['#bucket']['#data']>;
20
+ update(raw: Omit<UpdateRaw<$>, '$'>): Promise<$['#bucket']['#data']>;
21
+ delete(raw: Omit<DeleteRaw<$>, '$'>): Promise<void>;
22
+ private consumeRaw;
23
+ }
24
+ export {};
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceTrxNode = void 0;
4
+ const trx_node_1 = require("../trx_node");
5
+ class ResourceTrxNode {
6
+ constructor(trx, resource) {
7
+ this.trx = trx;
8
+ this.resource = resource;
9
+ }
10
+ async forward(message) {
11
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.resource.schema.module, 'resource', this.resource.schema.name);
12
+ await trx_node_1.TrxNode.open(trx, 'forward', message);
13
+ let response;
14
+ try {
15
+ response = await this.resource.consume(trx, message);
16
+ }
17
+ catch (e) {
18
+ await trx_node_1.TrxNode.error(trx, e);
19
+ throw e;
20
+ }
21
+ await trx_node_1.TrxNode.ok(trx, response);
22
+ return response;
23
+ }
24
+ async run(raw) {
25
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.resource.schema.module, 'resource', this.resource.schema.name);
26
+ await trx_node_1.TrxNode.open(trx, 'run', raw);
27
+ return this.consumeRaw(trx, raw);
28
+ }
29
+ async view(raw) {
30
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.resource.schema.module, 'resource', this.resource.schema.name);
31
+ await trx_node_1.TrxNode.open(trx, 'view', raw);
32
+ const inRaw = Object.assign({}, raw);
33
+ inRaw.$ = `${this.resource.schema.name}.view`;
34
+ return this.consumeRaw(trx, inRaw);
35
+ }
36
+ async query(raw) {
37
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.resource.schema.module, 'resource', this.resource.schema.name);
38
+ await trx_node_1.TrxNode.open(trx, 'query', raw);
39
+ const inRaw = Object.assign({}, raw);
40
+ inRaw.$ = `${this.resource.schema.name}.query`;
41
+ return this.consumeRaw(trx, inRaw);
42
+ }
43
+ async create(raw) {
44
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.resource.schema.module, 'resource', this.resource.schema.name);
45
+ await trx_node_1.TrxNode.open(trx, 'create', raw);
46
+ const inRaw = Object.assign({}, raw);
47
+ inRaw.$ = `${this.resource.schema.name}.create`;
48
+ return this.consumeRaw(trx, inRaw);
49
+ }
50
+ async update(raw) {
51
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.resource.schema.module, 'resource', this.resource.schema.name);
52
+ await trx_node_1.TrxNode.open(trx, 'update', raw);
53
+ const inRaw = Object.assign({}, raw);
54
+ inRaw.$ = `${this.resource.schema.name}.update`;
55
+ return this.consumeRaw(trx, inRaw);
56
+ }
57
+ async delete(raw) {
58
+ const trx = trx_node_1.TrxNode.makeChildNode(this.trx, this.resource.schema.module, 'resource', this.resource.schema.name);
59
+ await trx_node_1.TrxNode.open(trx, 'delete', raw);
60
+ const inRaw = Object.assign({}, raw);
61
+ inRaw.$ = `${this.resource.schema.name}.delete`;
62
+ await this.consumeRaw(trx, inRaw);
63
+ }
64
+ async consumeRaw(trx, message) {
65
+ let response;
66
+ try {
67
+ response = await this.resource.consumeRaw(trx, message);
68
+ }
69
+ catch (e) {
70
+ await trx_node_1.TrxNode.error(trx, e);
71
+ throw e;
72
+ }
73
+ await trx_node_1.TrxNode.ok(trx, response);
74
+ return response;
75
+ }
76
+ }
77
+ exports.ResourceTrxNode = ResourceTrxNode;
@@ -0,0 +1,50 @@
1
+ import { $Module, $Space } from "../../schema";
2
+ import { Module } from '../module';
3
+ import { AnyTrxNode, TrxNode, TrxNodeStatus } from './trx_node';
4
+ import { TrxEngineOrigin } from './trx_engine';
5
+ import { AnyUsers } from '../auth/authn';
6
+ import { NesoiDatetime } from '../data/datetime';
7
+ type TrxOrigin = TrxEngineOrigin | `trx:${string}`;
8
+ type TrxState = 'open' | 'ok' | 'error';
9
+ export declare class TrxStatus<Output> {
10
+ id: string;
11
+ origin: TrxOrigin;
12
+ start: NesoiDatetime;
13
+ end?: NesoiDatetime | undefined;
14
+ state?: TrxState | undefined;
15
+ output?: Output | undefined;
16
+ error?: string | undefined;
17
+ nodes: TrxNodeStatus[];
18
+ constructor(id: string, origin: TrxOrigin, start: NesoiDatetime, end?: NesoiDatetime | undefined, state?: TrxState | undefined, output?: Output | undefined, error?: string | undefined, nodes?: TrxNodeStatus[]);
19
+ summary(): string;
20
+ }
21
+ export declare class Trx<S extends $Space, M extends $Module, Authn extends AnyUsers> {
22
+ private module;
23
+ id: string;
24
+ private origin;
25
+ root: TrxNode<S, M, Authn>;
26
+ nodes: Record<string, TrxNode<S, M, Authn>>;
27
+ start: NesoiDatetime;
28
+ end?: NesoiDatetime;
29
+ ctx: Record<string, any>;
30
+ constructor(module: Module<S, M>, origin: TrxOrigin, users?: Authn, id?: string, root?: TrxNode<S, M, Authn>, nodes?: Record<string, TrxNode<S, M, Authn>>);
31
+ addNode(node: TrxNode<S, M, Authn>): void;
32
+ status(): TrxStatus<any>;
33
+ /**
34
+ * Context Manipulation
35
+ *
36
+ * This should only be used by custom adapters to inject/read custom things
37
+ * to the transaction. Elements should not modify the transaction.
38
+ */
39
+ static get<T>(node: AnyTrxNode, key: string): T;
40
+ /**
41
+ * Context Manipulation
42
+ *
43
+ * This should only be used by custom adapters to inject/read custom things
44
+ * to the transaction. Elements should not modify the transaction.
45
+ */
46
+ static set(node: AnyTrxNode, key: string, value: any): AnyTrx;
47
+ static onFinish(trx: AnyTrx): void;
48
+ }
49
+ export type AnyTrx = Trx<any, any, any>;
50
+ export {};
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Trx = exports.TrxStatus = void 0;
4
+ const trx_node_1 = require("./trx_node");
5
+ const string_1 = require("../util/string");
6
+ const log_1 = require("../util/log");
7
+ const datetime_1 = require("../data/datetime");
8
+ /*
9
+ Transaction Status
10
+ */
11
+ class TrxStatus {
12
+ constructor(id, origin, start, end, state, output, error, nodes = []) {
13
+ this.id = id;
14
+ this.origin = origin;
15
+ this.start = start;
16
+ this.end = end;
17
+ this.state = state;
18
+ this.output = output;
19
+ this.error = error;
20
+ this.nodes = nodes;
21
+ }
22
+ summary() {
23
+ const state = this.state ? (0, string_1.colored)(`[${this.state}]`, {
24
+ 'open': 'lightblue',
25
+ 'ok': 'lightgreen',
26
+ 'error': 'lightred'
27
+ }[this.state]) : 'unknown';
28
+ let str = `${state} ${this.id} ${(0, log_1.anyScopeTag)(this.origin)} `;
29
+ str += (0, string_1.colored)(`[${this.end ? (this.end.epoch - this.start.epoch) : -1}ms]\n`, 'brown');
30
+ function print(nodes, l = 1) {
31
+ let str = '';
32
+ nodes.forEach(node => {
33
+ const state = node.state ? (0, string_1.colored)(`[${node.state}]`, {
34
+ 'open': 'lightblue',
35
+ 'ok': 'lightgreen',
36
+ 'error': 'lightred'
37
+ }[node.state] || 'lightred') : 'unknown';
38
+ str += `${'-'.repeat(l)}${state} ${node.id} ${(0, log_1.anyScopeTag)(node.scope)} ${node.action}`;
39
+ str += (0, string_1.colored)(` [${node.app}ms]\n`, 'brown');
40
+ str += print(node.nodes, l + 1);
41
+ });
42
+ return str;
43
+ }
44
+ return str + print(this.nodes);
45
+ }
46
+ }
47
+ exports.TrxStatus = TrxStatus;
48
+ class Trx {
49
+ constructor(module, origin, users, id, root, nodes) {
50
+ this.start = datetime_1.NesoiDatetime.now();
51
+ this.ctx = {};
52
+ this.module = module;
53
+ this.id = id || (Math.random() + 1).toString(36).substring(7);
54
+ this.origin = origin;
55
+ this.root = root || new trx_node_1.TrxNode('root', this, undefined, module, users, id);
56
+ this.nodes = nodes || {};
57
+ }
58
+ addNode(node) {
59
+ const nodeId = node.id;
60
+ this.nodes[nodeId] = node;
61
+ }
62
+ status() {
63
+ const state = this.root.state;
64
+ const output = this.root.output;
65
+ const error = this.root.error;
66
+ return new TrxStatus(this.id, this.origin, this.start, this.end, state, output, error, this.root.status().nodes);
67
+ }
68
+ /**
69
+ * Context Manipulation
70
+ *
71
+ * This should only be used by custom adapters to inject/read custom things
72
+ * to the transaction. Elements should not modify the transaction.
73
+ */
74
+ static get(node, key) {
75
+ const trx = node.trx;
76
+ return trx.ctx[key];
77
+ }
78
+ /**
79
+ * Context Manipulation
80
+ *
81
+ * This should only be used by custom adapters to inject/read custom things
82
+ * to the transaction. Elements should not modify the transaction.
83
+ */
84
+ static set(node, key, value) {
85
+ const trx = node.trx;
86
+ trx.ctx[key] = value;
87
+ return trx;
88
+ }
89
+ //
90
+ static onFinish(trx) {
91
+ trx.end = datetime_1.NesoiDatetime.now();
92
+ }
93
+ }
94
+ exports.Trx = Trx;
@@ -0,0 +1,15 @@
1
+ import { $Module, $Space } from "../../elements";
2
+ import { BucketAdapter } from "../../elements/entities/bucket/adapters/bucket_adapter";
3
+ import { AnyTrx, Trx } from './trx';
4
+ import { AnyUsers } from '../auth/authn';
5
+ import { TrxNode, TrxNodeStatus } from './trx_node';
6
+ export type TrxEngineWrapFn<S extends $Space, M extends $Module> = (trx: TrxNode<S, M, any>) => Promise<TrxNodeStatus>;
7
+ export type TrxEngineConfig<S extends $Space, M extends $Module, Authn extends AnyUsers, Providers extends Record<string, any>> = {
8
+ /**
9
+ * Adapter used to store transactions of this module.
10
+ */
11
+ adapter?: (schema: M) => BucketAdapter<AnyTrx>;
12
+ trx?: {
13
+ wrap?: <T extends Trx<S, M, Authn>>(trx: T, fn: TrxEngineWrapFn<S, M>, providers: Providers) => Promise<any>;
14
+ };
15
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,27 @@
1
+ import { $Module, $Space } from "../../schema";
2
+ import { Module } from '../module';
3
+ import { Trx } from './trx';
4
+ import { TrxNode, TrxNodeStatus } from './trx_node';
5
+ import { AnyAuthnProviders, AnyUsers, AuthnRequest } from '../auth/authn';
6
+ import { TrxEngineConfig } from './trx_engine.config';
7
+ export type TrxEngineOrigin = `app:${string}`;
8
+ export declare class TrxEngine<S extends $Space, M extends $Module, Authn extends AnyAuthnProviders> {
9
+ private origin;
10
+ private module;
11
+ private authnProviders?;
12
+ private config?;
13
+ private providers;
14
+ /**
15
+ * Transaction used to read/write transactions on the adapter
16
+ */
17
+ private innerTrx;
18
+ private adapter;
19
+ constructor(origin: TrxEngineOrigin, module: Module<S, M>, authnProviders?: Authn | undefined, config?: TrxEngineConfig<S, M, any, any> | undefined, providers?: Record<string, any>);
20
+ getModule(): Module<S, M>;
21
+ get(id?: string, users?: AnyUsers): Promise<Trx<S, M, any>>;
22
+ trx(fn: (trx: TrxNode<S, M, any>) => Promise<TrxNodeStatus>, authn?: AuthnRequest<keyof Authn>): Promise<import("./trx").TrxStatus<any>>;
23
+ private authenticate;
24
+ private commit;
25
+ private rollback;
26
+ }
27
+ export type AnyTrxEngine = TrxEngine<any, any, any>;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrxEngine = void 0;
4
+ const log_1 = require("../util/log");
5
+ const trx_1 = require("./trx");
6
+ const trx_node_1 = require("./trx_node");
7
+ const error_1 = require("../data/error");
8
+ const memory_bucket_adapter_1 = require("../../elements/entities/bucket/adapters/memory.bucket_adapter");
9
+ /*
10
+ Transaction Engine
11
+ */
12
+ class TrxEngine {
13
+ constructor(origin, module, authnProviders, config, providers = {}) {
14
+ this.origin = origin;
15
+ this.module = module;
16
+ this.authnProviders = authnProviders;
17
+ this.config = config;
18
+ this.providers = providers;
19
+ this.innerTrx = new trx_1.Trx(this.module, `trx:${origin}`);
20
+ this.adapter = config?.adapter?.(module.schema) || new memory_bucket_adapter_1.MemoryBucketAdapter({}, {});
21
+ }
22
+ getModule() {
23
+ return this.module;
24
+ }
25
+ async get(id, users) {
26
+ let trx = undefined;
27
+ if (!id) {
28
+ trx = new trx_1.Trx(this.module, this.origin, users);
29
+ log_1.Log.info('module', this.module.name, `Begin ${(0, log_1.scopeTag)('trx', trx.id)} @ ${(0, log_1.anyScopeTag)(this.origin)}`);
30
+ return this.adapter.put(this.innerTrx.root, trx);
31
+ }
32
+ else {
33
+ trx = await this.adapter.get(this.innerTrx.root, id);
34
+ if (trx) {
35
+ log_1.Log.info('module', this.module.name, `Continue ${(0, log_1.scopeTag)('trx', trx.id)} @ ${(0, log_1.anyScopeTag)(this.origin)}`);
36
+ }
37
+ else {
38
+ log_1.Log.info('module', this.module.name, `Chain ${(0, log_1.scopeTag)('trx', id)} @ ${(0, log_1.anyScopeTag)(this.origin)}`);
39
+ trx = new trx_1.Trx(this.module, this.origin, users, id);
40
+ return this.adapter.put(this.innerTrx.root, trx);
41
+ }
42
+ }
43
+ return trx;
44
+ }
45
+ async trx(fn, authn) {
46
+ const users = authn ? await this.authenticate(authn) : undefined;
47
+ const trx = await this.get(undefined, users);
48
+ try {
49
+ let output;
50
+ if (this.config?.trx?.wrap) {
51
+ output = await this.config?.trx?.wrap(trx, fn, this.providers);
52
+ }
53
+ else {
54
+ output = await fn(trx.root);
55
+ }
56
+ await this.commit(trx, output);
57
+ }
58
+ catch (e) {
59
+ await this.rollback(trx, e);
60
+ }
61
+ return trx.status();
62
+ }
63
+ // authentication
64
+ async authenticate(request) {
65
+ if (!this.authnProviders) {
66
+ throw error_1.NesoiError.Authn.NoProvidersRegisteredForModule(this.module.name);
67
+ }
68
+ const users = {};
69
+ for (const provider in request) {
70
+ const token = request[provider];
71
+ if (!(provider in this.authnProviders)) {
72
+ throw error_1.NesoiError.Authn.NoProviderRegisteredForModule(this.module.name, provider);
73
+ }
74
+ users[provider] = await this.authnProviders[provider].authenticate(token);
75
+ }
76
+ return users;
77
+ }
78
+ //
79
+ async commit(trx, output) {
80
+ log_1.Log.info('module', this.module.name, `Commit ${(0, log_1.scopeTag)('trx', trx.id)} @ ${(0, log_1.anyScopeTag)(this.origin)}`);
81
+ await trx_node_1.TrxNode.ok(trx.root, output);
82
+ trx_1.Trx.onFinish(trx);
83
+ await this.adapter.put(this.innerTrx.root, trx);
84
+ return trx;
85
+ }
86
+ async rollback(trx, error) {
87
+ log_1.Log.error('module', this.module.name, `[${error.status}] ${error.toString()}`, error.stack);
88
+ log_1.Log.warn('module', this.module.name, `Rollback ${(0, log_1.scopeTag)('trx', trx.id)} @ ${(0, log_1.anyScopeTag)(this.origin)}`);
89
+ await trx_node_1.TrxNode.error(trx.root, error);
90
+ trx_1.Trx.onFinish(trx);
91
+ await this.adapter.put(this.innerTrx.root, trx);
92
+ return trx;
93
+ }
94
+ }
95
+ exports.TrxEngine = TrxEngine;
@@ -0,0 +1,61 @@
1
+ import { $Module, $Space } from "../../schema";
2
+ import { AnyModule, VirtualModuleDef } from '../module';
3
+ import { AnyTrx } from './trx';
4
+ import { BucketTrxNode } from './nodes/bucket.trx_node';
5
+ import { JobTrxNode } from './nodes/job.trx_node';
6
+ import { QueueTrxNode } from './nodes/queue.trx_node';
7
+ import { ResourceTrxNode } from './nodes/resource.trx_node';
8
+ import { $Message } from "../../elements/entities/message/message.schema";
9
+ import { MachineTrxNode } from './nodes/machine.trx_node';
10
+ import { AnyUsers } from '../auth/authn';
11
+ import { Enum } from "../../elements/entities/constants/constants";
12
+ import { KeysOfUnion } from '../util/type';
13
+ type TrxNodeBlock = 'bucket' | 'message' | 'job' | 'resource' | 'machine' | 'queue' | 'controller';
14
+ export type TrxNodeStatus = {
15
+ id: string;
16
+ scope: 'root' | `${string}::${TrxNodeBlock}:${string}` | `${string}::virtual`;
17
+ state?: string;
18
+ action?: string;
19
+ input?: Record<string, any>;
20
+ output?: Record<string, any>;
21
+ error?: string;
22
+ nodes: TrxNodeStatus[];
23
+ app: number;
24
+ };
25
+ export declare class TrxNode<Space extends $Space, M extends $Module, Authn extends AnyUsers> {
26
+ private scope;
27
+ private trx;
28
+ private parent;
29
+ private module;
30
+ private users?;
31
+ id: string;
32
+ globalId: string;
33
+ private children;
34
+ private state?;
35
+ private action?;
36
+ private input?;
37
+ private output?;
38
+ private error?;
39
+ private time;
40
+ constructor(scope: 'root' | `${string}::${TrxNodeBlock}:${string}` | `${string}::virtual`, trx: AnyTrx, parent: AnyTrxNode | undefined, module: AnyModule, users?: Authn | undefined, id?: string);
41
+ static open(node: AnyTrxNode, action: string, input: Record<string, any>): Promise<void>;
42
+ static ok(node: AnyTrxNode, output?: Record<string, any>): Promise<void>;
43
+ static error(node: AnyTrxNode, error: any): Promise<void>;
44
+ message<Raw extends M['#input']['#raw'], Msg extends $Message = M['messages'][Raw['$'] & keyof M['messages']]>(raw: Raw): Promise<M['#input']['#parsed']>;
45
+ value<K extends keyof M['constants']['values']>(key: K): M["constants"]["values"][K]["value"];
46
+ enum<EnumName extends KeysOfUnion<Space['modules'][keyof Space['modules']]['constants']['enums']>>(name: EnumName): Enum<M['constants']['enums'][EnumName]>;
47
+ bucket<Name extends keyof M['buckets'], Bucket extends M['buckets'][Name]>(name: Name): BucketTrxNode<M, Bucket>;
48
+ job<Name extends keyof M['jobs'], Job extends M['jobs'][Name]>(name: Name): JobTrxNode<M, Job>;
49
+ static jobWithCustomCtx<M extends $Module, JobName extends keyof M['jobs'], Job extends M['jobs'][JobName]>(node: AnyTrxNode, name: string, ctx?: Record<string, any>): JobTrxNode<M, Job>;
50
+ resource<Name extends keyof M['resources'], Resource extends M['resources'][Name]>(name: Name): ResourceTrxNode<M, Resource>;
51
+ machine<Name extends keyof M['machines'], Machine extends M['machines'][Name]>(name: Name): MachineTrxNode<M, Machine>;
52
+ queue<Name extends keyof M['queues'], Queue extends M['queues'][Name]>(name: Name): QueueTrxNode<M, Queue>;
53
+ user<U extends keyof Authn & keyof M['#authn']>(provider: U): M['#authn'][U];
54
+ virtual<T>(def: VirtualModuleDef, fn: ($: AnyTrxNode) => T | Promise<T>): Promise<T>;
55
+ status(): TrxNodeStatus;
56
+ static makeChildNode<Space extends $Space, M extends $Module, Authn extends AnyUsers>(node: TrxNode<Space, M, Authn>, module: string, block: TrxNodeBlock, name: string): TrxNode<Space, M, Authn>;
57
+ static makeVirtualChildNode<Space extends $Space, M extends $Module, Authn extends AnyUsers>(node: TrxNode<Space, M, Authn>, module: AnyModule): TrxNode<Space, M, Authn>;
58
+ static getModule(node: TrxNode<any, any, any>): AnyModule;
59
+ }
60
+ export type AnyTrxNode = TrxNode<any, any, any>;
61
+ export {};