nesoi 3.0.8 → 3.0.10

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 (266) hide show
  1. package/lib/compiler/apps/monolyth/monolyth_compiler.d.ts +1 -1
  2. package/lib/compiler/apps/monolyth/monolyth_compiler.js +7 -7
  3. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +3 -0
  4. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.js +3 -0
  5. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +3 -0
  6. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +3 -0
  7. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +3 -0
  8. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.js +3 -0
  9. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.d.ts +3 -0
  10. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +3 -0
  11. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.d.ts +3 -0
  12. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +3 -0
  13. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.d.ts +3 -0
  14. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.js +3 -0
  15. package/lib/compiler/elements/externals.element.d.ts +1 -1
  16. package/lib/compiler/module.js +1 -1
  17. package/lib/compiler/stages/1_scan_stage.d.ts +3 -0
  18. package/lib/compiler/stages/1_scan_stage.js +3 -0
  19. package/lib/compiler/stages/2_treeshake_stage.d.ts +3 -0
  20. package/lib/compiler/stages/2_treeshake_stage.js +3 -0
  21. package/lib/compiler/stages/3_extract_ts_stage.d.ts +3 -0
  22. package/lib/compiler/stages/3_extract_ts_stage.js +3 -0
  23. package/lib/compiler/stages/4_build_schemas_stage.d.ts +3 -0
  24. package/lib/compiler/stages/4_build_schemas_stage.js +3 -0
  25. package/lib/compiler/stages/5_inject_ts_stage.d.ts +3 -0
  26. package/lib/compiler/stages/5_inject_ts_stage.js +3 -0
  27. package/lib/compiler/stages/6_build_elements_stage.d.ts +3 -0
  28. package/lib/compiler/stages/6_build_elements_stage.js +3 -0
  29. package/lib/compiler/stages/7_dump_stage.d.ts +3 -0
  30. package/lib/compiler/stages/7_dump_stage.js +3 -0
  31. package/lib/compiler/stages/8_diagnose_stage.d.ts +3 -0
  32. package/lib/compiler/stages/8_diagnose_stage.js +3 -0
  33. package/lib/compiler/treeshake.js +3 -3
  34. package/lib/elements/blocks/block.builder.d.ts +6 -2
  35. package/lib/elements/blocks/block.builder.js +8 -4
  36. package/lib/elements/blocks/block.schema.d.ts +4 -0
  37. package/lib/elements/blocks/block.schema.js +4 -0
  38. package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +6 -3
  39. package/lib/elements/blocks/job/internal/machine_job.builder.js +5 -2
  40. package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +4 -0
  41. package/lib/elements/blocks/job/internal/machine_job.schema.js +4 -0
  42. package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +4 -0
  43. package/lib/elements/blocks/job/internal/resource_job.builder.js +4 -0
  44. package/lib/elements/blocks/job/internal/resource_job.d.ts +4 -0
  45. package/lib/elements/blocks/job/internal/resource_job.js +4 -0
  46. package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +4 -0
  47. package/lib/elements/blocks/job/internal/resource_job.schema.js +4 -0
  48. package/lib/elements/blocks/job/job.builder.d.ts +4 -0
  49. package/lib/elements/blocks/job/job.builder.js +4 -0
  50. package/lib/elements/blocks/job/job.d.ts +4 -0
  51. package/lib/elements/blocks/job/job.js +4 -0
  52. package/lib/elements/blocks/job/job.schema.d.ts +4 -0
  53. package/lib/elements/blocks/job/job.schema.js +4 -0
  54. package/lib/elements/blocks/machine/machine.builder.d.ts +4 -0
  55. package/lib/elements/blocks/machine/machine.builder.js +16 -1
  56. package/lib/elements/blocks/machine/machine.d.ts +12 -0
  57. package/lib/elements/blocks/machine/machine.js +12 -0
  58. package/lib/elements/blocks/machine/machine.schema.d.ts +18 -1
  59. package/lib/elements/blocks/machine/machine.schema.js +18 -2
  60. package/lib/elements/blocks/machine/machine_state.builder.d.ts +4 -0
  61. package/lib/elements/blocks/machine/machine_state.builder.js +4 -0
  62. package/lib/elements/blocks/machine/machine_transition.builder.d.ts +4 -0
  63. package/lib/elements/blocks/machine/machine_transition.builder.js +4 -0
  64. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +4 -0
  65. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +4 -0
  66. package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +4 -0
  67. package/lib/elements/blocks/queue/adapters/queue_adapter.js +4 -0
  68. package/lib/elements/blocks/queue/queue.builder.d.ts +4 -0
  69. package/lib/elements/blocks/queue/queue.builder.js +4 -0
  70. package/lib/elements/blocks/queue/queue.schema.d.ts +4 -0
  71. package/lib/elements/blocks/queue/queue.schema.js +4 -0
  72. package/lib/elements/blocks/resource/resource.builder.d.ts +4 -0
  73. package/lib/elements/blocks/resource/resource.builder.js +4 -0
  74. package/lib/elements/blocks/resource/resource.d.ts +4 -0
  75. package/lib/elements/blocks/resource/resource.js +4 -0
  76. package/lib/elements/blocks/resource/resource.schema.d.ts +4 -0
  77. package/lib/elements/blocks/resource/resource.schema.js +4 -0
  78. package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +4 -0
  79. package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +4 -0
  80. package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +7 -1
  81. package/lib/elements/edge/controller/adapters/controller_adapter.js +6 -1
  82. package/lib/elements/edge/controller/controller.builder.d.ts +16 -0
  83. package/lib/elements/edge/controller/controller.builder.js +16 -0
  84. package/lib/elements/edge/controller/controller.config.d.ts +3 -2
  85. package/lib/elements/edge/controller/controller.d.ts +7 -3
  86. package/lib/elements/edge/controller/controller.js +7 -3
  87. package/lib/elements/edge/controller/controller.schema.d.ts +16 -0
  88. package/lib/elements/edge/controller/controller.schema.js +16 -0
  89. package/lib/elements/{blocks → edge}/externals/externals.builder.d.ts +4 -0
  90. package/lib/elements/{blocks → edge}/externals/externals.builder.js +4 -0
  91. package/lib/elements/{blocks → edge}/externals/externals.schema.d.ts +4 -0
  92. package/lib/elements/{blocks → edge}/externals/externals.schema.js +4 -0
  93. package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +18 -12
  94. package/lib/elements/entities/bucket/adapters/bucket_adapter.js +5 -0
  95. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +4 -0
  96. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +4 -0
  97. package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +4 -1
  98. package/lib/elements/entities/bucket/adapters/memory.nql.js +4 -1
  99. package/lib/elements/entities/bucket/bucket.builder.d.ts +4 -0
  100. package/lib/elements/entities/bucket/bucket.builder.js +4 -0
  101. package/lib/elements/entities/bucket/bucket.config.d.ts +3 -3
  102. package/lib/elements/entities/bucket/bucket.d.ts +12 -4
  103. package/lib/elements/entities/bucket/bucket.js +18 -11
  104. package/lib/elements/entities/bucket/bucket.schema.d.ts +4 -0
  105. package/lib/elements/entities/bucket/bucket.schema.js +4 -0
  106. package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +8 -0
  107. package/lib/elements/entities/bucket/cache/bucket_cache.js +8 -0
  108. package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +4 -0
  109. package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +4 -0
  110. package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +4 -0
  111. package/lib/elements/entities/bucket/graph/bucket_graph.js +4 -0
  112. package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +8 -0
  113. package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +8 -0
  114. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +8 -0
  115. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +8 -0
  116. package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +4 -0
  117. package/lib/elements/entities/bucket/model/bucket_model.builder.js +4 -0
  118. package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +8 -0
  119. package/lib/elements/entities/bucket/model/bucket_model.convert.js +8 -0
  120. package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +8 -0
  121. package/lib/elements/entities/bucket/model/bucket_model.schema.js +8 -0
  122. package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +8 -0
  123. package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +8 -0
  124. package/lib/elements/entities/bucket/query/nql_compiler.d.ts +9 -0
  125. package/lib/elements/entities/bucket/query/nql_compiler.js +9 -0
  126. package/lib/elements/entities/bucket/query/nql_engine.d.ts +6 -0
  127. package/lib/elements/entities/bucket/query/nql_engine.js +6 -0
  128. package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +4 -0
  129. package/lib/elements/entities/bucket/view/bucket_view.builder.js +4 -0
  130. package/lib/elements/entities/bucket/view/bucket_view.d.ts +4 -0
  131. package/lib/elements/entities/bucket/view/bucket_view.js +10 -2
  132. package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +8 -0
  133. package/lib/elements/entities/bucket/view/bucket_view.schema.js +8 -0
  134. package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +8 -0
  135. package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -0
  136. package/lib/elements/entities/constants/constants.builder.d.ts +21 -6
  137. package/lib/elements/entities/constants/constants.builder.js +21 -6
  138. package/lib/elements/entities/constants/constants.d.ts +4 -0
  139. package/lib/elements/entities/constants/constants.js +4 -0
  140. package/lib/elements/entities/constants/constants.schema.d.ts +16 -0
  141. package/lib/elements/entities/constants/constants.schema.js +16 -0
  142. package/lib/elements/entities/drive/drive_adapter.d.ts +15 -10
  143. package/lib/elements/entities/drive/drive_adapter.js +5 -2
  144. package/lib/elements/entities/drive/local.drive_adapter.d.ts +10 -4
  145. package/lib/elements/entities/drive/local.drive_adapter.js +23 -8
  146. package/lib/elements/entities/message/message.builder.d.ts +4 -0
  147. package/lib/elements/entities/message/message.builder.js +4 -0
  148. package/lib/elements/entities/message/message.d.ts +4 -0
  149. package/lib/elements/entities/message/message.js +4 -0
  150. package/lib/elements/entities/message/message.schema.d.ts +4 -0
  151. package/lib/elements/entities/message/message.schema.js +4 -0
  152. package/lib/elements/entities/message/message_parser.d.ts +4 -0
  153. package/lib/elements/entities/message/message_parser.js +4 -0
  154. package/lib/elements/entities/message/template/message_template.builder.d.ts +4 -0
  155. package/lib/elements/entities/message/template/message_template.builder.js +4 -0
  156. package/lib/elements/entities/message/template/message_template.schema.d.ts +9 -0
  157. package/lib/elements/entities/message/template/message_template.schema.js +25 -0
  158. package/lib/elements/entities/message/template/message_template_field.builder.d.ts +8 -0
  159. package/lib/elements/entities/message/template/message_template_field.builder.js +8 -0
  160. package/lib/elements/index.d.ts +1 -1
  161. package/lib/elements/index.js +1 -1
  162. package/lib/engine/apps/app.config.d.ts +15 -11
  163. package/lib/engine/apps/app.config.js +3 -0
  164. package/lib/engine/apps/app.d.ts +12 -20
  165. package/lib/engine/apps/app.js +13 -10
  166. package/lib/engine/apps/inline.app.d.ts +12 -8
  167. package/lib/engine/apps/inline.app.js +27 -24
  168. package/lib/engine/apps/monolyth/monolyth.app.d.ts +13 -5
  169. package/lib/engine/apps/monolyth/monolyth.app.js +14 -6
  170. package/lib/engine/apps/service.d.ts +30 -0
  171. package/lib/engine/apps/service.js +15 -0
  172. package/lib/engine/auth/authn.d.ts +14 -1
  173. package/lib/engine/auth/authn.js +4 -0
  174. package/lib/engine/auth/zero.authn_provider.d.ts +11 -3
  175. package/lib/engine/auth/zero.authn_provider.js +13 -2
  176. package/lib/engine/cli/cli.d.ts +8 -2
  177. package/lib/engine/cli/cli.js +10 -1
  178. package/lib/engine/cli/cli_adapter.d.ts +11 -1
  179. package/lib/engine/cli/cli_adapter.js +10 -1
  180. package/lib/engine/cli/cli_input.d.ts +4 -0
  181. package/lib/engine/cli/cli_input.js +4 -0
  182. package/lib/engine/cli/ui.d.ts +14 -2
  183. package/lib/engine/cli/ui.js +10 -6
  184. package/lib/engine/daemon.d.ts +96 -9
  185. package/lib/engine/daemon.js +101 -18
  186. package/lib/engine/data/date.d.ts +4 -0
  187. package/lib/engine/data/date.js +4 -0
  188. package/lib/engine/data/datetime.d.ts +4 -0
  189. package/lib/engine/data/datetime.js +4 -0
  190. package/lib/engine/data/decimal.d.ts +4 -0
  191. package/lib/engine/data/decimal.js +4 -0
  192. package/lib/engine/data/file.d.ts +23 -23
  193. package/lib/engine/data/file.js +66 -29
  194. package/lib/engine/data/json.d.ts +4 -0
  195. package/lib/engine/data/json.js +4 -0
  196. package/lib/engine/data/tree.d.ts +4 -0
  197. package/lib/engine/data/tree.js +4 -0
  198. package/lib/engine/dependency.d.ts +65 -3
  199. package/lib/engine/dependency.js +70 -0
  200. package/lib/engine/module.d.ts +110 -8
  201. package/lib/engine/module.js +131 -31
  202. package/lib/engine/space.d.ts +163 -10
  203. package/lib/engine/space.js +184 -22
  204. package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +12 -0
  205. package/lib/engine/transaction/nodes/bucket.trx_node.js +13 -2
  206. package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +4 -0
  207. package/lib/engine/transaction/nodes/bucket_query.trx_node.js +9 -10
  208. package/lib/engine/transaction/nodes/job.trx_node.d.ts +4 -0
  209. package/lib/engine/transaction/nodes/job.trx_node.js +6 -4
  210. package/lib/engine/transaction/nodes/machine.trx_node.d.ts +4 -0
  211. package/lib/engine/transaction/nodes/machine.trx_node.js +6 -4
  212. package/lib/engine/transaction/nodes/queue.trx_node.d.ts +4 -0
  213. package/lib/engine/transaction/nodes/queue.trx_node.js +5 -2
  214. package/lib/engine/transaction/nodes/resource.trx_node.d.ts +4 -0
  215. package/lib/engine/transaction/nodes/resource.trx_node.js +6 -4
  216. package/lib/engine/transaction/trx.d.ts +14 -4
  217. package/lib/engine/transaction/trx.js +10 -1
  218. package/lib/engine/transaction/trx_engine.config.d.ts +2 -2
  219. package/lib/engine/transaction/trx_engine.d.ts +8 -3
  220. package/lib/engine/transaction/trx_engine.js +24 -20
  221. package/lib/engine/transaction/trx_node.d.ts +8 -2
  222. package/lib/engine/transaction/trx_node.js +17 -1
  223. package/lib/engine/tree.d.ts +54 -2
  224. package/lib/engine/tree.js +60 -19
  225. package/lib/engine/util/mime.d.ts +4 -4
  226. package/lib/engine/util/mime.js +7 -9
  227. package/lib/schema.d.ts +2 -2
  228. package/package.json +2 -3
  229. package/tools/joaquin/job.js +2 -2
  230. package/tools/joaquin/message.js +2 -2
  231. package/tools/joaquin/mock.d.ts +6 -6
  232. package/tsconfig.build.tsbuildinfo +1 -1
  233. package/lib/adapters/postgres/src/migrator/bucket.d.ts +0 -20
  234. package/lib/adapters/postgres/src/migrator/bucket.js +0 -184
  235. package/lib/adapters/postgres/src/migrator/csv.d.ts +0 -7
  236. package/lib/adapters/postgres/src/migrator/csv.js +0 -72
  237. package/lib/adapters/postgres/src/migrator/database.d.ts +0 -37
  238. package/lib/adapters/postgres/src/migrator/database.js +0 -88
  239. package/lib/adapters/postgres/src/migrator/index.d.ts +0 -1
  240. package/lib/adapters/postgres/src/migrator/index.js +0 -5
  241. package/lib/adapters/postgres/src/migrator/migration.d.ts +0 -57
  242. package/lib/adapters/postgres/src/migrator/migration.js +0 -203
  243. package/lib/adapters/postgres/src/migrator/migrator.d.ts +0 -21
  244. package/lib/adapters/postgres/src/migrator/migrator.js +0 -76
  245. package/lib/adapters/postgres/src/migrator/runner.d.ts +0 -71
  246. package/lib/adapters/postgres/src/migrator/runner.js +0 -271
  247. package/lib/adapters/postgres/src/postgres.bucket_adapter.d.ts +0 -42
  248. package/lib/adapters/postgres/src/postgres.bucket_adapter.js +0 -294
  249. package/lib/adapters/postgres/src/postgres.cli.d.ts +0 -66
  250. package/lib/adapters/postgres/src/postgres.cli.js +0 -184
  251. package/lib/adapters/postgres/src/postgres.config.d.ts +0 -5
  252. package/lib/adapters/postgres/src/postgres.config.js +0 -2
  253. package/lib/adapters/postgres/src/postgres.nql.d.ts +0 -16
  254. package/lib/adapters/postgres/src/postgres.nql.js +0 -123
  255. package/lib/adapters/postgres/src/postgres.provider.d.ts +0 -18
  256. package/lib/adapters/postgres/src/postgres.provider.js +0 -77
  257. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.d.ts +0 -1
  258. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +0 -210
  259. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
  260. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +0 -218
  261. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +0 -0
  262. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +0 -47
  263. package/lib/engine/apps/monolyth/monolyth.cli.d.ts +0 -45
  264. package/lib/engine/apps/monolyth/monolyth.cli.js +0 -362
  265. package/lib/engine/util/cache.d.ts +0 -6
  266. package/lib/engine/util/cache.js +0 -20
@@ -39,7 +39,7 @@ const path = __importStar(require("path"));
39
39
  // import { MachineBuilder } from "~/plugins/machine";
40
40
  const machine_builder_1 = require("../elements/blocks/machine/machine.builder");
41
41
  const constants_builder_1 = require("../elements/entities/constants/constants.builder");
42
- const externals_builder_1 = require("../elements/blocks/externals/externals.builder");
42
+ const externals_builder_1 = require("../elements/edge/externals/externals.builder");
43
43
  const job_builder_1 = require("../elements/blocks/job/job.builder");
44
44
  const message_builder_1 = require("../elements/entities/message/message.builder");
45
45
  const resource_builder_1 = require("../elements/blocks/resource/resource.builder");
@@ -49,21 +49,48 @@ const bucket_model_builder_1 = require("../elements/entities/bucket/model/bucket
49
49
  const bucket_model_field_builder_1 = require("../elements/entities/bucket/model/bucket_model_field.builder");
50
50
  const error_1 = require("../compiler/error");
51
51
  const queue_builder_1 = require("../elements/blocks/queue/queue.builder");
52
+ /**
53
+ * When using Nesoi as a framework (not a library), the `Space`
54
+ * is a collection of all modules.
55
+ * The name comes from the linear algebra notion of 'vector space'.
56
+ * It's the 'module space', where all past and future modules exist.
57
+ *
58
+ * The `Space` is mainly used to:
59
+ * - Declare builders which reference the compiled schemas with a minimal syntax
60
+ * - Read modules from the directory structure to compile schemas and apps
61
+ *
62
+ * @category Engine
63
+ */
52
64
  class Space {
53
- constructor(dirname) {
54
- this.dirname = dirname;
65
+ /**
66
+ * @param dirpath The path for the Space root directory
67
+ */
68
+ constructor(dirpath) {
69
+ this.dirpath = dirpath;
55
70
  this._authn = {};
56
- this._name = 'App';
71
+ this._name = 'Space';
57
72
  }
73
+ /*
74
+ * ROOT
75
+ */
58
76
  /**
59
- * Space Settings
60
- * - Name
61
- * - Authentication
77
+ * Set a custom Space name. The default is 'Space'.
78
+ * > This method MUST be called on the root `nesoi.ts` file.
79
+ * @param name A new Space name
80
+ * @returns The current Space, for call-chaining
62
81
  */
63
82
  name(name) {
64
83
  this._name = name;
65
84
  return this;
66
85
  }
86
+ /**
87
+ * Set one authentication model.
88
+ * This model MUST be yielded by the `AuthnProvider` assigned
89
+ * to the same name.
90
+ * > This method MUST be called on the root `nesoi.ts` file.
91
+ * @param name A name for the authentication
92
+ * @returns The current Space, for call-chaining
93
+ */
67
94
  authn(name, $) {
68
95
  const fieldBuilder = new bucket_model_field_builder_1.BucketModelFieldFactory('*');
69
96
  const fields = $(fieldBuilder);
@@ -71,64 +98,199 @@ class Space {
71
98
  this._authn[name] = bucket_model_builder_1.BucketModelBuilder.build(builder);
72
99
  return this;
73
100
  }
74
- // Statics
75
- externals(module) {
76
- return new externals_builder_1.ExternalsBuilder(module);
77
- }
101
+ /*
102
+ * ELEMENTS
103
+ */
104
+ // Entities
105
+ /**
106
+ * > Elements / Entities / Constants
107
+ *
108
+ * `Constants` represent statically-known data, namely `values` and `enums`,
109
+ * which can be referenced from any `Module`.
110
+ *
111
+ * @param module A module name
112
+ * @returns A `Constants` builder
113
+ */
78
114
  constants(module) {
79
115
  return new constants_builder_1.ConstantsBuilder(module);
80
116
  }
81
- // Entities
117
+ /**
118
+ * > Elements / Entities / Bucket
119
+ *
120
+ * A `Bucket` represents stored data, on any kind of storage.
121
+ * It contains a definition of the type of data (_model_),
122
+ * the relations between this data and other (_graph_),
123
+ * and different ways to present this data (_view_).
124
+ *
125
+ * The actual storage is linked through a `BucketAdapter`, on the
126
+ * `App` definition. Which means you build a _Bucket_ without
127
+ * knowing how it's data will be stored, and then later plug
128
+ * any adapter (like Memory, or PostgreSQL, etc) into it.
129
+ *
130
+ * @param globalName A _Bucket_ name in the format `module::name`
131
+ * @returns A `Bucket` builder
132
+ */
82
133
  bucket(globalName) {
83
134
  const [module, name] = globalName.split('::');
84
135
  // TODO: review why this was not "$Bucket & {...}"
85
136
  // type Bucket = Module['buckets'][K] & { name: K }
86
137
  return new bucket_builder_1.BucketBuilder(module, name);
87
138
  }
139
+ /**
140
+ * > Elements / Entities / Message
141
+ *
142
+ * A `Message` represents data in transit (generally incoming).
143
+ * It contains a definition of the data format (_template_),
144
+ * which includes possibly complex validation rules.
145
+ *
146
+ * This _template_ is used to _parse_ an object into the message format,
147
+ * so a _Message_ has two states: `raw` and `parsed`.
148
+ * - `raw`: A JS object containing a `$` with the message name plus some other properties
149
+ * - `parsed`: A `Message` object containing the parsed data plus some metadata (signature, etc)
150
+ *
151
+ * @param globalName A message name in the format `module::name`
152
+ * @returns A `Constants` builder
153
+ */
88
154
  message(globalName) {
89
155
  const [module, name] = globalName.split('::');
90
156
  return new message_builder_1.MessageBuilder(module, name);
91
157
  }
92
158
  // Blocks
159
+ /**
160
+ * > Elements / Blocks / Job
161
+ *
162
+ * A `Job` is a method which accepts one or more _Messages_ as input.
163
+ *
164
+ * It might declare _extra_ data to include on the job input, and
165
+ * conditions which must be met before the method is executed.
166
+ * These can be pre-validate a Job before queuing it, or for
167
+ * organizing the job flow in a more declarative way.
168
+ *
169
+ * This method has access to all elements within it's module.
170
+ *
171
+ * @param globalName A _Job_ name in the format `module::name`
172
+ * @returns A `Job` builder
173
+ */
93
174
  job(globalName) {
94
175
  const [module, name] = globalName.split('::');
95
176
  return new job_builder_1.JobBuilder(module, name);
96
177
  }
178
+ /**
179
+ * > Elements / Blocks / Resource
180
+ *
181
+ * A `Resource` is a fast way to declare simple CRUD _Jobs_ and _Messages_ for a `Bucket`.
182
+ *
183
+ * It offers 5 types of jobs:
184
+ * - `view`: Read one or all bucket object(s) through a specific view
185
+ * - `query`: Query bucket object(s)
186
+ * - `create`: Create one object on the bucket
187
+ * - `update`: Modify (patch) one object of the bucket
188
+ * - `delete`: Delete one object of the bucket
189
+ *
190
+ * @param globalName A _Resource_ name in the format `module::name`
191
+ * @returns A `Resource` builder
192
+ */
97
193
  resource(globalName) {
98
194
  const [module, name] = globalName.split('::');
99
195
  return new resource_builder_1.ResourceBuilder(module, name);
100
196
  }
197
+ /**
198
+ * > Elements / Blocks / Machine
199
+ *
200
+ * A `Machine` is a _Statechart_ which reads it's context from a _Bucket_,
201
+ * and uses a specific property to store a discrete state.
202
+ * When this machine receives _Messages_, it follows the definition to possibly
203
+ * advance the state and run _Jobs_.
204
+ *
205
+ * @param globalName A _Machine_ name in the format `module::name`
206
+ * @returns A `Machine` builder
207
+ */
101
208
  machine(globalName) {
102
209
  const [module, name] = globalName.split('::');
103
210
  return new machine_builder_1.MachineBuilder(module, name);
104
211
  }
212
+ /**
213
+ * > Elements / Blocks / Queue
214
+ *
215
+ * A `Queue` stores _Messages_ to be consumed later in order.
216
+ *
217
+ * @param globalName A _Queue_ name in the format `module::name`
218
+ * @returns A `Queue` builder
219
+ */
220
+ queue(globalName) {
221
+ const [module, name] = globalName.split('::');
222
+ return new queue_builder_1.QueueBuilder(module, name);
223
+ }
105
224
  // Edge
225
+ /**
226
+ * > Elements / Edge / Externals
227
+ *
228
+ * `Externals` references elements from other modules, allowing
229
+ * them to be used by Jobs and other elements from this module.
230
+ *
231
+ * @param module A module name
232
+ * @returns A `Externals` builder
233
+ */
234
+ externals(module) {
235
+ return new externals_builder_1.ExternalsBuilder(module);
236
+ }
237
+ /**
238
+ * > Elements / Edge / Controller
239
+ *
240
+ * A `Controller` allows an external application to send
241
+ * and receive messages /from the Nesoi Engine.
242
+ *
243
+ * The controller declares endpoints which accept specific messages
244
+ * and route them to specific elements.
245
+ * On the `App`, each controller is assigned a `ControllerAdapter`, which
246
+ * is responsible for creating the raw _Messages_ and sending them to the Engine.
247
+ *
248
+ * @param globalName A _Controller_ name in the format `module::name`
249
+ * @returns A `Controller` builder
250
+ */
106
251
  controller(globalName) {
107
252
  const [module, name] = globalName.split('::');
108
253
  return new controller_builder_1.ControllerBuilder(module, name);
109
254
  }
110
- queue(globalName) {
111
- const [module, name] = globalName.split('::');
112
- return new queue_builder_1.QueueBuilder(module, name);
113
- }
255
+ /*
256
+ * RUN / COMPILE
257
+ */
114
258
  /**
259
+ * Resolve a path relative to the Space root.
115
260
  *
261
+ * @param space A `Space` instance
262
+ * @param relPath One or many path terms
263
+ * @returns A resolved path
116
264
  */
117
265
  static path(space, ...relPath) {
118
- if (!space.dirname) {
266
+ if (!space.dirpath) {
119
267
  throw new Error('Cant use .path() on virtual space');
120
268
  }
121
- return path.resolve(space.dirname, ...relPath);
269
+ return path.resolve(space.dirpath, ...relPath);
122
270
  }
271
+ /**
272
+ * Return a path relative to the Space root given an absolute path.
273
+ *
274
+ * @param space A `Space` instance
275
+ * @param relPath One or many path terms
276
+ * @returns A resolved path
277
+ */
123
278
  static relPath(space, absPath) {
124
- if (!space.dirname) {
279
+ if (!space.dirpath) {
125
280
  throw new Error('Cant use .path() on virtual space');
126
281
  }
127
- return path.relative(space.dirname, absPath);
282
+ return path.relative(space.dirpath, absPath);
128
283
  }
284
+ /**
285
+ * Read all module directories from the Space root, then
286
+ * run a callback for each.
287
+ *
288
+ * @param space A `Space` instance
289
+ * @param buildFn A callback to run for each module directory
290
+ */
129
291
  static scan(space, buildFn) {
130
- if (!fs.existsSync(space.dirname)) {
131
- throw error_1.CompilerError.DirectoryDoesntExists(space.dirname);
292
+ if (!fs.existsSync(space.dirpath)) {
293
+ throw error_1.CompilerError.DirectoryDoesntExists(space.dirpath);
132
294
  }
133
295
  const modulesPath = this.path(space, './modules');
134
296
  if (!fs.existsSync(modulesPath)) {
@@ -6,6 +6,10 @@ import { Bucket } from "../../../elements/entities/bucket/bucket";
6
6
  import { CreateObj, PatchObj, PutObj } from "../../../elements/entities/bucket/bucket.types";
7
7
  import { NQL_Query } from "../../../elements/entities/bucket/query/nql.schema";
8
8
  import { NesoiFile } from "../../data/file";
9
+ /**
10
+ * @category Engine
11
+ * @subcategory Transaction
12
+ */
9
13
  export declare class BucketTrxNode<M extends $Module, $ extends $Bucket> {
10
14
  private parentTrx;
11
15
  private bucket;
@@ -147,6 +151,10 @@ export declare class BucketTrxNode<M extends $Module, $ extends $Bucket> {
147
151
  */
148
152
  get unsafe(): BucketUnsafeTrxNode<M, $>;
149
153
  }
154
+ /**
155
+ * @category Engine
156
+ * @subcategory Transaction
157
+ */
150
158
  export declare class BucketUnsafeTrxNode<M extends $Module, $ extends $Bucket> {
151
159
  private bucketTrx;
152
160
  private bucket;
@@ -188,6 +196,10 @@ export declare class BucketUnsafeTrxNode<M extends $Module, $ extends $Bucket> {
188
196
  */
189
197
  deleteMany(ids: $['#data']['id'][]): Promise<void>;
190
198
  }
199
+ /**
200
+ * @category Engine
201
+ * @subcategory Transaction
202
+ */
191
203
  export declare class BucketDriveTrxNode<M extends $Module, $ extends $Bucket> {
192
204
  private bucketTrx;
193
205
  private bucket;
@@ -4,6 +4,10 @@ exports.BucketDriveTrxNode = exports.BucketUnsafeTrxNode = exports.BucketTrxNode
4
4
  const trx_node_1 = require("../trx_node");
5
5
  const bucket_query_trx_node_1 = require("./bucket_query.trx_node");
6
6
  const error_1 = require("../../data/error");
7
+ /**
8
+ * @category Engine
9
+ * @subcategory Transaction
10
+ */
7
11
  class BucketTrxNode {
8
12
  constructor(parentTrx, bucket) {
9
13
  this.parentTrx = parentTrx;
@@ -28,8 +32,7 @@ class BucketTrxNode {
28
32
  out = await fn(trx);
29
33
  }
30
34
  catch (e) {
31
- await trx_node_1.TrxNode.error(trx, e);
32
- throw e;
35
+ throw await trx_node_1.TrxNode.error(trx, e);
33
36
  }
34
37
  await trx_node_1.TrxNode.ok(trx, fmtTrxOut ? fmtTrxOut(out) : out);
35
38
  return out;
@@ -283,6 +286,10 @@ class BucketTrxNode {
283
286
  }
284
287
  }
285
288
  exports.BucketTrxNode = BucketTrxNode;
289
+ /**
290
+ * @category Engine
291
+ * @subcategory Transaction
292
+ */
286
293
  class BucketUnsafeTrxNode {
287
294
  constructor(bucketTrx, bucket, enableTenancy) {
288
295
  this.bucketTrx = bucketTrx;
@@ -360,6 +367,10 @@ class BucketUnsafeTrxNode {
360
367
  }
361
368
  }
362
369
  exports.BucketUnsafeTrxNode = BucketUnsafeTrxNode;
370
+ /**
371
+ * @category Engine
372
+ * @subcategory Transaction
373
+ */
363
374
  class BucketDriveTrxNode {
364
375
  constructor(bucketTrx, bucket) {
365
376
  this.bucketTrx = bucketTrx;
@@ -4,6 +4,10 @@ import { $Bucket } from "../../../elements/entities/bucket/bucket.schema";
4
4
  import { Bucket } from "../../../elements/entities/bucket/bucket";
5
5
  import { NQL_AnyQuery, NQL_Pagination, NQL_Query } from "../../../elements/entities/bucket/query/nql.schema";
6
6
  import { NQL_Result } from "../../../elements/entities/bucket/query/nql_engine";
7
+ /**
8
+ * @category Engine
9
+ * @subcategory Transaction
10
+ */
7
11
  export declare class BucketQueryTrxNode<M extends $Module, B extends $Bucket, V extends ViewName<B>, Obj = ViewObj<B, V>> {
8
12
  private trx;
9
13
  private bucket;
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BucketQueryTrxNode = void 0;
4
4
  const trx_node_1 = require("../trx_node");
5
5
  const error_1 = require("../../data/error");
6
+ /**
7
+ * @category Engine
8
+ * @subcategory Transaction
9
+ */
6
10
  class BucketQueryTrxNode {
7
11
  constructor(trx, bucket, query, view, enableTenancy) {
8
12
  this.trx = trx;
@@ -31,8 +35,7 @@ class BucketQueryTrxNode {
31
35
  });
32
36
  }
33
37
  catch (e) {
34
- await trx_node_1.TrxNode.error(this.trx, e); // Bucket unexpected error
35
- throw e;
38
+ throw await trx_node_1.TrxNode.error(this.trx, e); // Bucket unexpected error
36
39
  }
37
40
  await trx_node_1.TrxNode.ok(this.trx, { length: results.data.length });
38
41
  return results.data.length
@@ -48,13 +51,11 @@ class BucketQueryTrxNode {
48
51
  });
49
52
  }
50
53
  catch (e) {
51
- await trx_node_1.TrxNode.error(this.trx, e); // Bucket unexpected error
52
- throw e;
54
+ throw await trx_node_1.TrxNode.error(this.trx, e); // Bucket unexpected error
53
55
  }
54
56
  if (!results.data.length) {
55
57
  const e = error_1.NesoiError.Bucket.Query.NoResults({ bucket: this.bucket.schema.alias, query: this.query });
56
- await trx_node_1.TrxNode.error(this.trx, e);
57
- throw e;
58
+ throw await trx_node_1.TrxNode.error(this.trx, e);
58
59
  }
59
60
  await trx_node_1.TrxNode.ok(this.trx, { length: results.data.length });
60
61
  return results.data[0];
@@ -66,8 +67,7 @@ class BucketQueryTrxNode {
66
67
  results = await this.bucket.query(this.trx, this.query, undefined, this.view);
67
68
  }
68
69
  catch (e) {
69
- await trx_node_1.TrxNode.error(this.trx, e); // Bucket unexpected error
70
- throw e;
70
+ throw await trx_node_1.TrxNode.error(this.trx, e); // Bucket unexpected error
71
71
  }
72
72
  await trx_node_1.TrxNode.ok(this.trx, { length: results.data.length });
73
73
  return results.data;
@@ -84,8 +84,7 @@ class BucketQueryTrxNode {
84
84
  result = await this.bucket.query(this.trx, this.query, pagination, this.view);
85
85
  }
86
86
  catch (e) {
87
- await trx_node_1.TrxNode.error(this.trx, e); // Bucket unexpected error
88
- throw e;
87
+ throw await trx_node_1.TrxNode.error(this.trx, e); // Bucket unexpected error
89
88
  }
90
89
  await trx_node_1.TrxNode.ok(this.trx, { length: result.data.length });
91
90
  return result;
@@ -4,6 +4,10 @@ import { $Job } from "../../../elements/blocks/job/job.schema";
4
4
  import { Job } from "../../../elements/blocks/job/job";
5
5
  import { Message } from "../../../elements/entities/message/message";
6
6
  import { JobInput } from "../../../elements/blocks/job/job.types";
7
+ /**
8
+ * @category Engine
9
+ * @subcategory Transaction
10
+ */
7
11
  export declare class JobTrxNode<M extends $Module, $ extends $Job> {
8
12
  private trx;
9
13
  private job;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JobTrxNode = void 0;
4
4
  const trx_node_1 = require("../trx_node");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Transaction
8
+ */
5
9
  class JobTrxNode {
6
10
  constructor(trx, job, ctx) {
7
11
  this.trx = trx;
@@ -22,8 +26,7 @@ class JobTrxNode {
22
26
  response = await this.job.consumeRaw(trx, message, this.ctx);
23
27
  }
24
28
  catch (e) {
25
- await trx_node_1.TrxNode.error(trx, e);
26
- throw e;
29
+ throw await trx_node_1.TrxNode.error(trx, e);
27
30
  }
28
31
  await trx_node_1.TrxNode.ok(trx, response);
29
32
  return response;
@@ -36,8 +39,7 @@ class JobTrxNode {
36
39
  response = await this.job.consume(trx, message, this.ctx);
37
40
  }
38
41
  catch (e) {
39
- await trx_node_1.TrxNode.error(trx, e);
40
- throw e;
42
+ throw await trx_node_1.TrxNode.error(trx, e);
41
43
  }
42
44
  await trx_node_1.TrxNode.ok(trx, response);
43
45
  return response;
@@ -3,6 +3,10 @@ import { TrxNode } from '../trx_node';
3
3
  import { $Machine } from "../../../elements/blocks/machine/machine.schema";
4
4
  import { Machine, MachineOutput } from "../../../elements/blocks/machine/machine";
5
5
  import { Message } from "../../../elements/entities/message/message";
6
+ /**
7
+ * @category Engine
8
+ * @subcategory Transaction
9
+ */
6
10
  export declare class MachineTrxNode<M extends $Module, $ extends $Machine> {
7
11
  private trx;
8
12
  private machine;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MachineTrxNode = void 0;
4
4
  const trx_node_1 = require("../trx_node");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Transaction
8
+ */
5
9
  class MachineTrxNode {
6
10
  constructor(trx, machine) {
7
11
  this.trx = trx;
@@ -15,8 +19,7 @@ class MachineTrxNode {
15
19
  response = await this.machine.consumeRaw(trx, message);
16
20
  }
17
21
  catch (e) {
18
- await trx_node_1.TrxNode.error(trx, e);
19
- throw e;
22
+ throw await trx_node_1.TrxNode.error(trx, e);
20
23
  }
21
24
  await trx_node_1.TrxNode.ok(trx, response);
22
25
  return response;
@@ -29,8 +32,7 @@ class MachineTrxNode {
29
32
  response = await this.machine.consume(trx, message);
30
33
  }
31
34
  catch (e) {
32
- await trx_node_1.TrxNode.error(trx, e);
33
- throw e;
35
+ throw await trx_node_1.TrxNode.error(trx, e);
34
36
  }
35
37
  await trx_node_1.TrxNode.ok(trx, response);
36
38
  return response;
@@ -2,6 +2,10 @@ import { $Module, RawMessageInput } from "../../../schema";
2
2
  import { TrxNode } from '../trx_node';
3
3
  import { $Queue } from "../../../elements/blocks/queue/queue.schema";
4
4
  import { Queue } from "../../../elements/blocks/queue/queue";
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Transaction
8
+ */
5
9
  export declare class QueueTrxNode<M extends $Module, $ extends $Queue> {
6
10
  private trx;
7
11
  private queue;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueueTrxNode = void 0;
4
4
  const trx_node_1 = require("../trx_node");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Transaction
8
+ */
5
9
  class QueueTrxNode {
6
10
  constructor(trx, queue) {
7
11
  this.trx = trx;
@@ -15,8 +19,7 @@ class QueueTrxNode {
15
19
  // response = this.queue.push(trx, raw);
16
20
  }
17
21
  catch (e) {
18
- await trx_node_1.TrxNode.error(trx, e);
19
- throw e;
22
+ throw await trx_node_1.TrxNode.error(trx, e);
20
23
  }
21
24
  await trx_node_1.TrxNode.ok(trx, response);
22
25
  }
@@ -8,6 +8,10 @@ type QueryRaw<$ extends $Resource> = $['#input.query']['#raw'];
8
8
  type CreateRaw<$ extends $Resource> = $['#input.create']['#raw'];
9
9
  type UpdateRaw<$ extends $Resource> = $['#input.update']['#raw'];
10
10
  type DeleteRaw<$ extends $Resource> = $['#input.delete']['#raw'];
11
+ /**
12
+ * @category Engine
13
+ * @subcategory Transaction
14
+ */
11
15
  export declare class ResourceTrxNode<M extends $Module, $ extends $Resource> {
12
16
  private trx;
13
17
  private resource;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResourceTrxNode = void 0;
4
4
  const trx_node_1 = require("../trx_node");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Transaction
8
+ */
5
9
  class ResourceTrxNode {
6
10
  constructor(trx, resource) {
7
11
  this.trx = trx;
@@ -15,8 +19,7 @@ class ResourceTrxNode {
15
19
  response = await this.resource.consume(trx, message);
16
20
  }
17
21
  catch (e) {
18
- await trx_node_1.TrxNode.error(trx, e);
19
- throw e;
22
+ throw await trx_node_1.TrxNode.error(trx, e);
20
23
  }
21
24
  await trx_node_1.TrxNode.ok(trx, response);
22
25
  return response;
@@ -67,8 +70,7 @@ class ResourceTrxNode {
67
70
  response = await this.resource.consumeRaw(trx, message);
68
71
  }
69
72
  catch (e) {
70
- await trx_node_1.TrxNode.error(trx, e);
71
- throw e;
73
+ throw await trx_node_1.TrxNode.error(trx, e);
72
74
  }
73
75
  await trx_node_1.TrxNode.ok(trx, response);
74
76
  return response;
@@ -1,11 +1,16 @@
1
1
  import { $Module, $Space } from "../../schema";
2
2
  import { Module } from '../module';
3
3
  import { AnyTrxNode, TrxNode, TrxNodeStatus } from './trx_node';
4
- import { TrxEngineOrigin } from './trx_engine';
4
+ import { AnyTrxEngine, TrxEngineOrigin } from './trx_engine';
5
5
  import { AnyUsers, AuthnRequest } from '../auth/authn';
6
6
  import { NesoiDatetime } from '../data/datetime';
7
+ import { NesoiError } from '../data/error';
7
8
  type TrxOrigin = TrxEngineOrigin | `trx:${string}`;
8
9
  type TrxState = 'open' | 'ok' | 'error';
10
+ /**
11
+ * @category Engine
12
+ * @subcategory Transaction
13
+ */
9
14
  export declare class TrxStatus<Output> {
10
15
  id: string;
11
16
  origin: TrxOrigin;
@@ -13,12 +18,17 @@ export declare class TrxStatus<Output> {
13
18
  end?: NesoiDatetime | undefined;
14
19
  state?: TrxState | undefined;
15
20
  output?: Output | undefined;
16
- error?: string | undefined;
21
+ error?: NesoiError.BaseError | undefined;
17
22
  nodes: TrxNodeStatus[];
18
- constructor(id: string, origin: TrxOrigin, start: NesoiDatetime, end?: NesoiDatetime | undefined, state?: TrxState | undefined, output?: Output | undefined, error?: string | undefined, nodes?: TrxNodeStatus[]);
23
+ constructor(id: string, origin: TrxOrigin, start: NesoiDatetime, end?: NesoiDatetime | undefined, state?: TrxState | undefined, output?: Output | undefined, error?: NesoiError.BaseError | undefined, nodes?: TrxNodeStatus[]);
19
24
  summary(): string;
20
25
  }
26
+ /**
27
+ * @category Engine
28
+ * @subcategory Transaction
29
+ */
21
30
  export declare class Trx<S extends $Space, M extends $Module, Authn extends AnyUsers> {
31
+ engine: AnyTrxEngine;
22
32
  private module;
23
33
  id: string;
24
34
  private origin;
@@ -27,7 +37,7 @@ export declare class Trx<S extends $Space, M extends $Module, Authn extends AnyU
27
37
  start: NesoiDatetime;
28
38
  end?: NesoiDatetime;
29
39
  ctx: Record<string, any>;
30
- constructor(module: Module<S, M>, origin: TrxOrigin, authn?: {
40
+ constructor(engine: AnyTrxEngine, module: Module<S, M>, origin: TrxOrigin, authn?: {
31
41
  tokens: AuthnRequest<any>;
32
42
  users: Authn;
33
43
  }, id?: string, root?: TrxNode<S, M, Authn>, nodes?: Record<string, TrxNode<S, M, Authn>>);
@@ -8,6 +8,10 @@ const datetime_1 = require("../data/datetime");
8
8
  /*
9
9
  Transaction Status
10
10
  */
11
+ /**
12
+ * @category Engine
13
+ * @subcategory Transaction
14
+ */
11
15
  class TrxStatus {
12
16
  constructor(id, origin, start, end, state, output, error, nodes = []) {
13
17
  this.id = id;
@@ -45,8 +49,13 @@ class TrxStatus {
45
49
  }
46
50
  }
47
51
  exports.TrxStatus = TrxStatus;
52
+ /**
53
+ * @category Engine
54
+ * @subcategory Transaction
55
+ */
48
56
  class Trx {
49
- constructor(module, origin, authn, id, root, nodes) {
57
+ constructor(engine, module, origin, authn, id, root, nodes) {
58
+ this.engine = engine;
50
59
  this.start = datetime_1.NesoiDatetime.now();
51
60
  this.ctx = {};
52
61
  this.module = module;
@@ -4,10 +4,10 @@ import { AnyTrx, Trx } from './trx';
4
4
  import { AnyUsers } from '../auth/authn';
5
5
  import { TrxNode, TrxNodeStatus } from './trx_node';
6
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>> = {
7
+ export type TrxEngineConfig<S extends $Space, M extends $Module, Authn extends AnyUsers, Services extends Record<string, any>> = {
8
8
  /**
9
9
  * Adapter used to store transactions of this module.
10
10
  */
11
11
  adapter?: (schema: M) => BucketAdapter<AnyTrx>;
12
- wrap?: <T extends Trx<S, M, Authn>>(trx: T, fn: TrxEngineWrapFn<S, M>, providers: Providers) => Promise<any>;
12
+ wrap?: <T extends Trx<S, M, Authn>>(trx: T, fn: TrxEngineWrapFn<S, M>, services: Services) => Promise<any>;
13
13
  };