nesoi 3.0.8 → 3.0.9

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 (254) hide show
  1. package/lib/adapters/postgres/src/migrator/database.d.ts +3 -6
  2. package/lib/adapters/postgres/src/migrator/database.js +20 -20
  3. package/lib/adapters/postgres/src/migrator/generator/generator.d.ts +22 -0
  4. package/lib/adapters/postgres/src/migrator/generator/generator.js +326 -0
  5. package/lib/adapters/postgres/src/migrator/generator/migration.d.ts +66 -0
  6. package/lib/adapters/postgres/src/migrator/generator/migration.js +249 -0
  7. package/lib/adapters/postgres/src/migrator/generator/provider.d.ts +19 -0
  8. package/lib/adapters/postgres/src/migrator/{migrator.js → generator/provider.js} +23 -25
  9. package/lib/adapters/postgres/src/migrator/index.d.ts +47 -1
  10. package/lib/adapters/postgres/src/migrator/index.js +20 -3
  11. package/lib/adapters/postgres/src/migrator/runner/runner.d.ts +17 -0
  12. package/lib/adapters/postgres/src/migrator/runner/runner.js +249 -0
  13. package/lib/adapters/postgres/src/migrator/runner/status.d.ts +17 -0
  14. package/lib/adapters/postgres/src/migrator/runner/status.js +55 -0
  15. package/lib/adapters/postgres/src/postgres.cli.d.ts +11 -1
  16. package/lib/adapters/postgres/src/postgres.cli.js +34 -11
  17. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +4 -4
  18. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +3 -0
  19. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.js +3 -0
  20. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +3 -0
  21. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +3 -0
  22. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +3 -0
  23. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.js +3 -0
  24. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.d.ts +3 -0
  25. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +3 -0
  26. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.d.ts +3 -0
  27. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +3 -0
  28. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.d.ts +3 -0
  29. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.js +3 -0
  30. package/lib/compiler/elements/externals.element.d.ts +1 -1
  31. package/lib/compiler/module.js +1 -1
  32. package/lib/compiler/stages/1_scan_stage.d.ts +3 -0
  33. package/lib/compiler/stages/1_scan_stage.js +3 -0
  34. package/lib/compiler/stages/2_treeshake_stage.d.ts +3 -0
  35. package/lib/compiler/stages/2_treeshake_stage.js +3 -0
  36. package/lib/compiler/stages/3_extract_ts_stage.d.ts +3 -0
  37. package/lib/compiler/stages/3_extract_ts_stage.js +3 -0
  38. package/lib/compiler/stages/4_build_schemas_stage.d.ts +3 -0
  39. package/lib/compiler/stages/4_build_schemas_stage.js +3 -0
  40. package/lib/compiler/stages/5_inject_ts_stage.d.ts +3 -0
  41. package/lib/compiler/stages/5_inject_ts_stage.js +3 -0
  42. package/lib/compiler/stages/6_build_elements_stage.d.ts +3 -0
  43. package/lib/compiler/stages/6_build_elements_stage.js +3 -0
  44. package/lib/compiler/stages/7_dump_stage.d.ts +3 -0
  45. package/lib/compiler/stages/7_dump_stage.js +3 -0
  46. package/lib/compiler/stages/8_diagnose_stage.d.ts +3 -0
  47. package/lib/compiler/stages/8_diagnose_stage.js +3 -0
  48. package/lib/compiler/treeshake.js +3 -3
  49. package/lib/elements/blocks/block.builder.d.ts +6 -2
  50. package/lib/elements/blocks/block.builder.js +8 -4
  51. package/lib/elements/blocks/block.schema.d.ts +4 -0
  52. package/lib/elements/blocks/block.schema.js +4 -0
  53. package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +6 -3
  54. package/lib/elements/blocks/job/internal/machine_job.builder.js +5 -2
  55. package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +4 -0
  56. package/lib/elements/blocks/job/internal/machine_job.schema.js +4 -0
  57. package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +4 -0
  58. package/lib/elements/blocks/job/internal/resource_job.builder.js +4 -0
  59. package/lib/elements/blocks/job/internal/resource_job.d.ts +4 -0
  60. package/lib/elements/blocks/job/internal/resource_job.js +4 -0
  61. package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +4 -0
  62. package/lib/elements/blocks/job/internal/resource_job.schema.js +4 -0
  63. package/lib/elements/blocks/job/job.builder.d.ts +4 -0
  64. package/lib/elements/blocks/job/job.builder.js +4 -0
  65. package/lib/elements/blocks/job/job.d.ts +4 -0
  66. package/lib/elements/blocks/job/job.js +4 -0
  67. package/lib/elements/blocks/job/job.schema.d.ts +4 -0
  68. package/lib/elements/blocks/job/job.schema.js +4 -0
  69. package/lib/elements/blocks/machine/machine.builder.d.ts +4 -0
  70. package/lib/elements/blocks/machine/machine.builder.js +4 -0
  71. package/lib/elements/blocks/machine/machine.d.ts +12 -0
  72. package/lib/elements/blocks/machine/machine.js +12 -0
  73. package/lib/elements/blocks/machine/machine.schema.d.ts +16 -0
  74. package/lib/elements/blocks/machine/machine.schema.js +16 -1
  75. package/lib/elements/blocks/machine/machine_state.builder.d.ts +4 -0
  76. package/lib/elements/blocks/machine/machine_state.builder.js +4 -0
  77. package/lib/elements/blocks/machine/machine_transition.builder.d.ts +4 -0
  78. package/lib/elements/blocks/machine/machine_transition.builder.js +4 -0
  79. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +4 -0
  80. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +4 -0
  81. package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +4 -0
  82. package/lib/elements/blocks/queue/adapters/queue_adapter.js +4 -0
  83. package/lib/elements/blocks/queue/queue.builder.d.ts +4 -0
  84. package/lib/elements/blocks/queue/queue.builder.js +4 -0
  85. package/lib/elements/blocks/queue/queue.schema.d.ts +4 -0
  86. package/lib/elements/blocks/queue/queue.schema.js +4 -0
  87. package/lib/elements/blocks/resource/resource.builder.d.ts +4 -0
  88. package/lib/elements/blocks/resource/resource.builder.js +4 -0
  89. package/lib/elements/blocks/resource/resource.d.ts +4 -0
  90. package/lib/elements/blocks/resource/resource.js +4 -0
  91. package/lib/elements/blocks/resource/resource.schema.d.ts +4 -0
  92. package/lib/elements/blocks/resource/resource.schema.js +4 -0
  93. package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +4 -0
  94. package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +4 -0
  95. package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +4 -0
  96. package/lib/elements/edge/controller/adapters/controller_adapter.js +4 -0
  97. package/lib/elements/edge/controller/controller.builder.d.ts +16 -0
  98. package/lib/elements/edge/controller/controller.builder.js +16 -0
  99. package/lib/elements/edge/controller/controller.d.ts +4 -0
  100. package/lib/elements/edge/controller/controller.js +4 -0
  101. package/lib/elements/edge/controller/controller.schema.d.ts +16 -0
  102. package/lib/elements/edge/controller/controller.schema.js +16 -0
  103. package/lib/elements/{blocks → edge}/externals/externals.builder.d.ts +4 -0
  104. package/lib/elements/{blocks → edge}/externals/externals.builder.js +4 -0
  105. package/lib/elements/{blocks → edge}/externals/externals.schema.d.ts +4 -0
  106. package/lib/elements/{blocks → edge}/externals/externals.schema.js +4 -0
  107. package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +16 -11
  108. package/lib/elements/entities/bucket/adapters/bucket_adapter.js +5 -0
  109. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +4 -0
  110. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +4 -0
  111. package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +4 -1
  112. package/lib/elements/entities/bucket/adapters/memory.nql.js +4 -1
  113. package/lib/elements/entities/bucket/bucket.builder.d.ts +4 -0
  114. package/lib/elements/entities/bucket/bucket.builder.js +4 -0
  115. package/lib/elements/entities/bucket/bucket.d.ts +9 -2
  116. package/lib/elements/entities/bucket/bucket.js +14 -7
  117. package/lib/elements/entities/bucket/bucket.schema.d.ts +4 -0
  118. package/lib/elements/entities/bucket/bucket.schema.js +4 -0
  119. package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +8 -0
  120. package/lib/elements/entities/bucket/cache/bucket_cache.js +8 -0
  121. package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +4 -0
  122. package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +4 -0
  123. package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +4 -0
  124. package/lib/elements/entities/bucket/graph/bucket_graph.js +4 -0
  125. package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +8 -0
  126. package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +8 -0
  127. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +8 -0
  128. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +8 -0
  129. package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +4 -0
  130. package/lib/elements/entities/bucket/model/bucket_model.builder.js +4 -0
  131. package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +8 -0
  132. package/lib/elements/entities/bucket/model/bucket_model.convert.js +8 -0
  133. package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +8 -0
  134. package/lib/elements/entities/bucket/model/bucket_model.schema.js +8 -0
  135. package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +8 -0
  136. package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +8 -0
  137. package/lib/elements/entities/bucket/query/nql_compiler.d.ts +9 -0
  138. package/lib/elements/entities/bucket/query/nql_compiler.js +9 -0
  139. package/lib/elements/entities/bucket/query/nql_engine.d.ts +6 -0
  140. package/lib/elements/entities/bucket/query/nql_engine.js +6 -0
  141. package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +4 -0
  142. package/lib/elements/entities/bucket/view/bucket_view.builder.js +4 -0
  143. package/lib/elements/entities/bucket/view/bucket_view.d.ts +4 -0
  144. package/lib/elements/entities/bucket/view/bucket_view.js +10 -2
  145. package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +8 -0
  146. package/lib/elements/entities/bucket/view/bucket_view.schema.js +8 -0
  147. package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +8 -0
  148. package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -0
  149. package/lib/elements/entities/constants/constants.builder.d.ts +21 -6
  150. package/lib/elements/entities/constants/constants.builder.js +21 -6
  151. package/lib/elements/entities/constants/constants.d.ts +4 -0
  152. package/lib/elements/entities/constants/constants.js +4 -0
  153. package/lib/elements/entities/constants/constants.schema.d.ts +16 -0
  154. package/lib/elements/entities/constants/constants.schema.js +16 -0
  155. package/lib/elements/entities/drive/drive_adapter.d.ts +15 -10
  156. package/lib/elements/entities/drive/drive_adapter.js +5 -2
  157. package/lib/elements/entities/drive/local.drive_adapter.d.ts +10 -4
  158. package/lib/elements/entities/drive/local.drive_adapter.js +23 -8
  159. package/lib/elements/entities/message/message.builder.d.ts +4 -0
  160. package/lib/elements/entities/message/message.builder.js +4 -0
  161. package/lib/elements/entities/message/message.d.ts +4 -0
  162. package/lib/elements/entities/message/message.js +4 -0
  163. package/lib/elements/entities/message/message.schema.d.ts +4 -0
  164. package/lib/elements/entities/message/message.schema.js +4 -0
  165. package/lib/elements/entities/message/message_parser.d.ts +4 -0
  166. package/lib/elements/entities/message/message_parser.js +4 -0
  167. package/lib/elements/entities/message/template/message_template.builder.d.ts +4 -0
  168. package/lib/elements/entities/message/template/message_template.builder.js +4 -0
  169. package/lib/elements/entities/message/template/message_template.schema.d.ts +9 -0
  170. package/lib/elements/entities/message/template/message_template.schema.js +25 -0
  171. package/lib/elements/entities/message/template/message_template_field.builder.d.ts +8 -0
  172. package/lib/elements/entities/message/template/message_template_field.builder.js +8 -0
  173. package/lib/elements/index.d.ts +1 -1
  174. package/lib/elements/index.js +1 -1
  175. package/lib/engine/apps/app.config.d.ts +3 -0
  176. package/lib/engine/apps/app.config.js +3 -0
  177. package/lib/engine/apps/app.d.ts +3 -0
  178. package/lib/engine/apps/app.js +4 -1
  179. package/lib/engine/apps/inline.app.d.ts +3 -0
  180. package/lib/engine/apps/inline.app.js +3 -0
  181. package/lib/engine/apps/monolyth/monolyth.app.d.ts +8 -0
  182. package/lib/engine/apps/monolyth/monolyth.app.js +8 -0
  183. package/lib/engine/auth/authn.d.ts +4 -0
  184. package/lib/engine/auth/authn.js +4 -0
  185. package/lib/engine/auth/zero.authn_provider.d.ts +4 -0
  186. package/lib/engine/auth/zero.authn_provider.js +4 -0
  187. package/lib/engine/cli/cli.d.ts +7 -1
  188. package/lib/engine/cli/cli.js +10 -1
  189. package/lib/engine/cli/cli_adapter.d.ts +11 -1
  190. package/lib/engine/cli/cli_adapter.js +10 -1
  191. package/lib/engine/cli/cli_input.d.ts +4 -0
  192. package/lib/engine/cli/cli_input.js +4 -0
  193. package/lib/engine/cli/ui.d.ts +14 -2
  194. package/lib/engine/cli/ui.js +10 -6
  195. package/lib/engine/daemon.d.ts +93 -6
  196. package/lib/engine/daemon.js +90 -7
  197. package/lib/engine/data/date.d.ts +4 -0
  198. package/lib/engine/data/date.js +4 -0
  199. package/lib/engine/data/datetime.d.ts +4 -0
  200. package/lib/engine/data/datetime.js +4 -0
  201. package/lib/engine/data/decimal.d.ts +4 -0
  202. package/lib/engine/data/decimal.js +4 -0
  203. package/lib/engine/data/file.d.ts +23 -23
  204. package/lib/engine/data/file.js +66 -29
  205. package/lib/engine/data/json.d.ts +4 -0
  206. package/lib/engine/data/json.js +4 -0
  207. package/lib/engine/data/tree.d.ts +4 -0
  208. package/lib/engine/data/tree.js +4 -0
  209. package/lib/engine/dependency.d.ts +63 -2
  210. package/lib/engine/dependency.js +52 -0
  211. package/lib/engine/module.d.ts +108 -8
  212. package/lib/engine/module.js +107 -22
  213. package/lib/engine/space.d.ts +163 -10
  214. package/lib/engine/space.js +184 -22
  215. package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +12 -0
  216. package/lib/engine/transaction/nodes/bucket.trx_node.js +12 -0
  217. package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +4 -0
  218. package/lib/engine/transaction/nodes/bucket_query.trx_node.js +4 -0
  219. package/lib/engine/transaction/nodes/job.trx_node.d.ts +4 -0
  220. package/lib/engine/transaction/nodes/job.trx_node.js +4 -0
  221. package/lib/engine/transaction/nodes/machine.trx_node.d.ts +4 -0
  222. package/lib/engine/transaction/nodes/machine.trx_node.js +4 -0
  223. package/lib/engine/transaction/nodes/queue.trx_node.d.ts +4 -0
  224. package/lib/engine/transaction/nodes/queue.trx_node.js +4 -0
  225. package/lib/engine/transaction/nodes/resource.trx_node.d.ts +4 -0
  226. package/lib/engine/transaction/nodes/resource.trx_node.js +4 -0
  227. package/lib/engine/transaction/trx.d.ts +8 -0
  228. package/lib/engine/transaction/trx.js +8 -0
  229. package/lib/engine/transaction/trx_engine.d.ts +4 -0
  230. package/lib/engine/transaction/trx_engine.js +4 -3
  231. package/lib/engine/transaction/trx_node.d.ts +4 -0
  232. package/lib/engine/transaction/trx_node.js +4 -0
  233. package/lib/engine/tree.d.ts +54 -2
  234. package/lib/engine/tree.js +54 -2
  235. package/lib/engine/util/mime.d.ts +4 -4
  236. package/lib/engine/util/mime.js +7 -9
  237. package/lib/schema.d.ts +1 -1
  238. package/package.json +1 -1
  239. package/tsconfig.build.tsbuildinfo +1 -1
  240. package/lib/adapters/postgres/src/migrator/bucket.d.ts +0 -20
  241. package/lib/adapters/postgres/src/migrator/bucket.js +0 -184
  242. package/lib/adapters/postgres/src/migrator/migration.d.ts +0 -57
  243. package/lib/adapters/postgres/src/migrator/migration.js +0 -203
  244. package/lib/adapters/postgres/src/migrator/migrator.d.ts +0 -21
  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/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
  248. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +0 -218
  249. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +0 -0
  250. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +0 -47
  251. package/lib/engine/apps/monolyth/monolyth.cli.d.ts +0 -45
  252. package/lib/engine/apps/monolyth/monolyth.cli.js +0 -362
  253. package/lib/engine/util/cache.d.ts +0 -6
  254. package/lib/engine/util/cache.js +0 -20
@@ -4,15 +4,35 @@ exports.DaemonTrx = exports.Daemon = void 0;
4
4
  const log_1 = require("./util/log");
5
5
  const error_1 = require("./data/error");
6
6
  const cli_1 = require("./cli/cli");
7
+ /**
8
+ * A background process running one or more modules,
9
+ * which runs _Transactions_ for the available elements.
10
+ *
11
+ * A `Daemon` is spawn by an `App`.
12
+ *
13
+ * @category Engine
14
+ */
7
15
  class Daemon {
8
- constructor(name, trxEngines, providers, app) {
16
+ /**
17
+ * @param name Name of the daemon (taken from App)
18
+ * @param trxEngines A dictionary of Transaction Engine by module name
19
+ * @param providers A dictionary of App Provider by name
20
+ * @param config Optional `AppConfig`
21
+ */
22
+ constructor(name, trxEngines, providers, config) {
9
23
  this.name = name;
10
24
  this.trxEngines = trxEngines;
11
25
  this.providers = providers;
12
- this.app = app;
26
+ this.config = config;
13
27
  this.bindControllers();
14
28
  log_1.Log.info('daemon', name, 'Woo-ha!');
15
29
  }
30
+ /**
31
+ * Prepare a transaction to be run by the Daemon.
32
+ *
33
+ * @param moduleName Name of the module where to run the transactoin
34
+ * @returns A `DaemonTrx` instance, which can be run
35
+ */
16
36
  trx(moduleName) {
17
37
  const trxEngine = this.trxEngines[moduleName];
18
38
  if (!trxEngine) {
@@ -20,10 +40,18 @@ class Daemon {
20
40
  }
21
41
  return new DaemonTrx(trxEngine);
22
42
  }
43
+ /**
44
+ * Run the Nesoi CLI for this Daemon.
45
+ */
23
46
  async cli(cmd) {
24
- this._cli = new cli_1.CLI(this, this.app?.cli);
25
- await this._cli.run(cmd);
47
+ const cli = new cli_1.CLI(this, this.config?.cli);
48
+ await cli.run(cmd);
26
49
  }
50
+ /**
51
+ * Bind the controller of each module to this Daemon.
52
+ * This allows the registered `Controller Adapters` to run
53
+ * transactions on the daemon.
54
+ */
27
55
  bindControllers() {
28
56
  log_1.Log.info('daemon', this.name, 'Binding controllers');
29
57
  for (const t in this.trxEngines) {
@@ -34,45 +62,100 @@ class Daemon {
34
62
  }
35
63
  }
36
64
  }
65
+ /**
66
+ * Destroy the providers and transaction engines of this daemon
67
+ *
68
+ * @param A `Daemon` instance
69
+ */
37
70
  static async destroy(daemon) {
38
71
  log_1.Log.info('daemon', this.name, 'Stop');
39
72
  for (const key in daemon.providers) {
40
73
  const provider = daemon.providers[key];
41
- await provider.__down(provider);
74
+ await provider.down(provider);
42
75
  delete daemon.providers[key];
43
76
  }
44
77
  for (const key in daemon.trxEngines) {
45
78
  delete daemon.trxEngines[key];
46
79
  }
47
80
  }
81
+ /**
82
+ * Replace the providers and transaction engines of this daemon
83
+ * and rebind the controllers
84
+ *
85
+ * @param daemon A `Daemon` instance
86
+ * @param trxEngines A dictionary of Transaction Engine by module name
87
+ * @param providers A dictionary of App Provider by name
88
+ */
48
89
  static reload(daemon, trxEngines, providers) {
49
90
  log_1.Log.info('daemon', this.name, 'Reloaded');
50
91
  daemon.trxEngines = trxEngines;
51
92
  daemon.providers = providers;
52
93
  daemon.bindControllers();
53
94
  }
95
+ /**
96
+ * Return a `Daemon` property.
97
+ * This is used to read private properties.
98
+ *
99
+ * @param daemon A `Daemon` instance
100
+ * @param key A `Daemon` property `'name'|'providers'|'app'`
101
+ * @returns The selected property
102
+ */
54
103
  static get(daemon, key) {
55
104
  return daemon?.[key];
56
105
  }
106
+ /**
107
+ * Return one module of the `Daemon` by name.
108
+ *
109
+ * @param daemon A `Daemon` instance
110
+ * @param module A module name
111
+ * @returns The `Module` instance
112
+ */
57
113
  static getModule(daemon, module) {
58
114
  return daemon.trxEngines[module].getModule();
59
115
  }
116
+ /**
117
+ * Return all modules of the `Daemon`.
118
+ *
119
+ * @param daemon A `Daemon` instance
120
+ * @returns The `Module` instances
121
+ */
60
122
  static getModules(daemon) {
61
123
  return Object.values(daemon.trxEngines)
62
124
  .map((trx) => trx.getModule());
63
125
  }
64
126
  }
65
127
  exports.Daemon = Daemon;
128
+ /**
129
+ * A helper class for preparing a transaction to be run.
130
+ * It allows declaring authentication data before running
131
+ * the transaction.
132
+ *
133
+ * @category Engine
134
+ */
66
135
  class DaemonTrx {
136
+ /**
137
+ * @param trxEngine The transaction engine where to run the transaction.
138
+ */
67
139
  constructor(trxEngine) {
68
140
  this.trxEngine = trxEngine;
69
141
  }
142
+ /**
143
+ * Authenticate the transaction with the given credentials.
144
+ * You can specify one or more credentials, so the transaction
145
+ * is able to access elements with different authn providers.
146
+ */
70
147
  authn(authn) {
71
- this._authn = authn;
148
+ this.authnRequest = authn;
72
149
  return this;
73
150
  }
151
+ /**
152
+ * Run a method inside the transaction.
153
+ *
154
+ * @param fn A function to execute inside the transaction
155
+ * @returns A `TrxStatus` containing metadata about the transaction and the function response
156
+ */
74
157
  async run(fn) {
75
- return this.trxEngine.trx(fn, this._authn);
158
+ return this.trxEngine.trx(fn, this.authnRequest);
76
159
  }
77
160
  }
78
161
  exports.DaemonTrx = DaemonTrx;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @category Engine
3
+ * @subcategory Data
4
+ */
1
5
  export declare class NesoiDate {
2
6
  day: number;
3
7
  month: number;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NesoiDate = void 0;
4
4
  const error_1 = require("./error");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Data
8
+ */
5
9
  class NesoiDate {
6
10
  constructor(day, month, year) {
7
11
  this.day = day;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @category Engine
3
+ * @subcategory Data
4
+ */
1
5
  export declare class NesoiDatetime {
2
6
  static tz: {
3
7
  '-12:00': string;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NesoiDatetime = void 0;
4
4
  const error_1 = require("./error");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Data
8
+ */
5
9
  class NesoiDatetime {
6
10
  constructor(epoch, tz = 'Z') {
7
11
  this.epoch = epoch || new Date().getTime();
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @category Engine
3
+ * @subcategory Data
4
+ */
1
5
  export declare class NesoiDecimal {
2
6
  private neg;
3
7
  private left;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NesoiDecimal = void 0;
4
4
  const error_1 = require("./error");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Data
8
+ */
5
9
  class NesoiDecimal {
6
10
  constructor(value, pLeft = 12, pRight = 12) {
7
11
  this.neg = false;
@@ -1,5 +1,22 @@
1
- import { TrxNode } from '../transaction/trx_node';
2
- import { $Module } from "../../elements";
1
+ /**
2
+ * @category Engine
3
+ * @subcategory Data
4
+ */
5
+ export declare class LocalNesoiFile {
6
+ /**
7
+ * - If not overriden, `extname` is derived from `filepath`
8
+ * - If `overrides.originalFilename` is passed, `extname` is derived from it (this allows saving the file without extension, but keeping the information on NesoiFile).
9
+ * - If not overriden, `mimetype` is derived from the resolved `extname`
10
+ */
11
+ static from(filepath: string, overrides?: Partial<NesoiFile>): NesoiFile;
12
+ static delete(file: NesoiFile): void;
13
+ static move(file: NesoiFile, to: string): void;
14
+ static read(file: NesoiFile): string;
15
+ }
16
+ /**
17
+ * @category Engine
18
+ * @subcategory Data
19
+ */
3
20
  export declare class NesoiFile {
4
21
  __nesoi_file: boolean;
5
22
  filepath: string;
@@ -8,31 +25,14 @@ export declare class NesoiFile {
8
25
  mimetype: string | null;
9
26
  size: number;
10
27
  originalFilename: string | null;
11
- newFilename: string;
12
28
  mtime: Date | null;
13
29
  hashAlgorithm: false | 'sha1' | 'md5' | 'sha256';
14
- private _hash;
15
- constructor(filepath: string, extra?: {
16
- originalFilename?: string | null;
17
- newFilename?: string | null;
18
- });
30
+ private hash;
31
+ constructor(filepath: string, filename: string, extname: string, mimetype: string | null, size: number, originalFilename: string | null, mtime: Date | null);
32
+ static from(file: NesoiFile, overrides: Partial<NesoiFile>): NesoiFile;
19
33
  static hash(file: NesoiFile, hashAlgorithm: 'sha1' | 'md5' | 'sha256'): Promise<{
20
34
  algorithm: "sha1" | "sha256" | "md5";
21
35
  hash: string | object;
22
36
  }>;
23
- static delete<M extends $Module>($: {
24
- trx: TrxNode<any, M, any>;
25
- }, bucket: keyof M['buckets'], file: NesoiFile, options?: {
26
- silent?: boolean;
27
- }): Promise<void> | undefined;
28
- static move<M extends $Module>($: {
29
- trx: TrxNode<any, M, any>;
30
- }, bucket: keyof M['buckets'], file: NesoiFile, to: string, options?: {
31
- silent?: boolean;
32
- }): Promise<void>;
33
- static read<M extends $Module>($: {
34
- trx: TrxNode<any, M, any>;
35
- }, bucket: keyof M['buckets'], file: NesoiFile, options?: {
36
- silent?: boolean;
37
- }): Promise<void>;
37
+ static local: typeof LocalNesoiFile;
38
38
  }
@@ -3,52 +3,89 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NesoiFile = void 0;
6
+ exports.NesoiFile = exports.LocalNesoiFile = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const hash_1 = require("../util/hash");
10
10
  const mime_1 = require("../util/mime");
11
- // Based on [formidable](https://github.com/node-formidable/formidable)
11
+ /**
12
+ * @category Engine
13
+ * @subcategory Data
14
+ */
15
+ class LocalNesoiFile {
16
+ /**
17
+ * - If not overriden, `extname` is derived from `filepath`
18
+ * - If `overrides.originalFilename` is passed, `extname` is derived from it (this allows saving the file without extension, but keeping the information on NesoiFile).
19
+ * - If not overriden, `mimetype` is derived from the resolved `extname`
20
+ */
21
+ static from(filepath, overrides) {
22
+ const filename = overrides?.filename || path_1.default.basename(filepath);
23
+ let extname;
24
+ if (overrides?.extname) {
25
+ extname = overrides.extname;
26
+ }
27
+ else {
28
+ if (overrides?.originalFilename) {
29
+ extname = path_1.default.extname(overrides?.originalFilename).slice(1);
30
+ }
31
+ else {
32
+ extname = path_1.default.extname(filepath).slice(1);
33
+ }
34
+ }
35
+ const mimetype = overrides?.mimetype || mime_1.Mime.ofExtname(extname);
36
+ const stat = fs_1.default.statSync(filepath);
37
+ const mtime = stat.mtime;
38
+ const size = stat.size;
39
+ const originalFilename = overrides?.originalFilename || null;
40
+ return new NesoiFile(filepath, filename, extname, mimetype, size, originalFilename, mtime);
41
+ }
42
+ static delete(file) {
43
+ fs_1.default.rmSync(file.filepath);
44
+ }
45
+ static move(file, to) {
46
+ fs_1.default.renameSync(file.filepath, to);
47
+ file.filepath = to;
48
+ file.filename = path_1.default.basename(to);
49
+ }
50
+ static read(file) {
51
+ return fs_1.default.readFileSync(file.filepath).toString();
52
+ }
53
+ }
54
+ exports.LocalNesoiFile = LocalNesoiFile;
55
+ /**
56
+ * @category Engine
57
+ * @subcategory Data
58
+ */
12
59
  class NesoiFile {
13
- constructor(filepath, extra) {
60
+ constructor(filepath, filename, extname, mimetype, size, originalFilename, mtime) {
14
61
  this.__nesoi_file = true;
62
+ // Algorithm used to generate the hash
15
63
  this.hashAlgorithm = false;
16
64
  // Only available after `.hash` is called
17
- this._hash = null;
65
+ this.hash = null;
18
66
  this.filepath = filepath;
19
- this.filename = path_1.default.basename(filepath);
20
- const mime = mime_1.Mime.ofFilepath(filepath);
21
- this.extname = extra?.originalFilename
22
- ? path_1.default.extname(extra.originalFilename).slice(1)
23
- : mime.extname;
24
- this.mimetype = mime.mimetype;
25
- const stat = fs_1.default.statSync(filepath);
26
- this.size = stat.size;
27
- this.originalFilename = extra?.originalFilename || null;
28
- this.newFilename = extra?.newFilename || this.filename;
29
- this.mtime = stat.mtime;
67
+ this.filename = filename;
68
+ this.extname = extname;
69
+ this.mimetype = mimetype;
70
+ this.size = size;
71
+ this.originalFilename = originalFilename;
72
+ this.mtime = mtime;
73
+ }
74
+ static from(file, overrides) {
75
+ return new NesoiFile(overrides.filepath || file.filepath, overrides.filename || file.filename, overrides.extname || file.extname, overrides.mimetype || file.mimetype, overrides.size || file.size, overrides.originalFilename || file.originalFilename, overrides.mtime || file.mtime);
30
76
  }
31
77
  static async hash(file, hashAlgorithm) {
32
- if (!file._hash) {
78
+ if (!file.hash) {
33
79
  file.hashAlgorithm = hashAlgorithm;
34
- file._hash = hash_1.Hash.file(file.filepath, file.hashAlgorithm).then(hash => {
35
- file._hash = hash;
80
+ file.hash = hash_1.Hash.file(file.filepath, file.hashAlgorithm).then(hash => {
81
+ file.hash = hash;
36
82
  });
37
83
  }
38
84
  return {
39
85
  algorithm: hashAlgorithm,
40
- hash: file._hash
86
+ hash: file.hash
41
87
  };
42
88
  }
43
- static delete($, bucket, file, options) {
44
- return $.trx.bucket(bucket).drive.delete(file, options);
45
- }
46
- static async move($, bucket, file, to, options) {
47
- await $.trx.bucket(bucket).drive.move(file, to, options);
48
- file.filepath = to;
49
- }
50
- static async read($, bucket, file, options) {
51
- await $.trx.bucket(bucket).drive.read(file, options);
52
- }
53
89
  }
54
90
  exports.NesoiFile = NesoiFile;
91
+ NesoiFile.local = LocalNesoiFile;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @category Engine
3
+ * @subcategory Data
4
+ */
1
5
  export declare class NesoiJSON {
2
6
  /**
3
7
  * Dumps an object to
@@ -4,6 +4,10 @@ exports.NesoiJSON = void 0;
4
4
  const date_1 = require("./date");
5
5
  const datetime_1 = require("./datetime");
6
6
  const decimal_1 = require("./decimal");
7
+ /**
8
+ * @category Engine
9
+ * @subcategory Data
10
+ */
7
11
  class NesoiJSON {
8
12
  /**
9
13
  * Dumps an object to
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @category Engine
3
+ * @subcategory Data
4
+ */
1
5
  export declare class Tree {
2
6
  /**
3
7
  * Read one or more values from the object, from a _fieldpath_.
@@ -5,6 +5,10 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Tree = void 0;
7
7
  const error_1 = require("./error");
8
+ /**
9
+ * @category Engine
10
+ * @subcategory Data
11
+ */
8
12
  class Tree {
9
13
  /**
10
14
  * Read one or more values from the object, from a _fieldpath_.
@@ -6,28 +6,86 @@ import { MessageBuilderNode } from "../elements/entities/message/message.builder
6
6
  import { ResourceJobBuilderNode } from "../elements/blocks/job/internal/resource_job.builder";
7
7
  import { BucketFnExtract, JobFnExtract, MachineFnExtract, MessageFnExtract } from "../compiler/typescript/bridge/organize";
8
8
  import { MachineJobBuilderNode } from "../elements/blocks/job/internal/machine_job.builder";
9
+ /**
10
+ * Utility class for parsing element `tags`.
11
+ *
12
+ * A `tag` is a string which references an element
13
+ * on the `Space`, following one of the formats below:
14
+ * ```
15
+ * module::type:name
16
+ * module::name
17
+ * type:name
18
+ * name
19
+ * ```
20
+ *
21
+ * @category Engine
22
+ */
9
23
  export declare class $Tag {
24
+ /**
25
+ * Parse `module?`, `type?` and `name` from a tag string.
26
+ *
27
+ * @param tag A tag string
28
+ * @returns An object containing the parsed tag info or `undefined`
29
+ * if it's an invalid tag.
30
+ */
10
31
  static parse(tag: string): {
11
32
  module: string | undefined;
12
33
  type: string | undefined;
13
34
  name: string;
14
35
  } | undefined;
36
+ /**
37
+ * Parse `module?`, `type?` and `name` from a tag string.
38
+ *
39
+ * @param tag A tag string
40
+ * @returns An object containing the parsed tag info
41
+ * @throws If it's an invalid tag
42
+ */
15
43
  static parseOrFail(tag: string): {
16
- module: string;
17
- type: string;
44
+ module: string | undefined;
45
+ type: string | undefined;
18
46
  name: string;
19
47
  };
20
48
  }
49
+ /**
50
+ * A reference for an element, declared from another element.
51
+ *
52
+ * @category Engine
53
+ */
21
54
  export declare class $Dependency {
55
+ /** Low name of the module*/
22
56
  module: string;
57
+ /** Type of node */
23
58
  type: BuilderType;
59
+ /** Low name of the node */
24
60
  name: string;
61
+ /** `module::type:name` */
25
62
  tag: string;
63
+ /** `name` if dependency is local, `module::name` if is external */
26
64
  refName: string;
65
+ /** If true, this dependency doesn't affect build order */
27
66
  soft: boolean;
67
+ /**
68
+ * @param fromModule Name of module which uses this dependency
69
+ * @param type Type of referenced element
70
+ * @param name Name of referenced element
71
+ * @param soft True if this doesn't affect build order
72
+ */
28
73
  constructor(fromModule: string, type: BuilderType, name: string, soft?: boolean);
74
+ /**
75
+ * Return the type name (UpperCamel) of the element
76
+ * referenced by a dependency.
77
+ *
78
+ * @param dep A `$Dependency` instance
79
+ * @param fromModule Name of dependant module
80
+ * @returns The type name of the dependency
81
+ */
29
82
  static typeName(dep: $Dependency, fromModule: string): string;
30
83
  }
84
+ /**
85
+ * A element builder, along with metadata required for building it.
86
+ *
87
+ * @category Engine
88
+ */
31
89
  export declare class BuilderNode {
32
90
  module: string;
33
91
  type: BuilderType;
@@ -47,6 +105,9 @@ export declare class BuilderNode {
47
105
  builder: AnyBuilder;
48
106
  });
49
107
  }
108
+ /**
109
+ * A builder node with the dependencies resolved to references to other nodes.
110
+ */
50
111
  export type ResolvedBuilderNode = Overlay<BuilderNode, {
51
112
  _dependencies?: ResolvedBuilderNode[];
52
113
  dependencies: {
@@ -2,7 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BuilderNode = exports.$Dependency = exports.$Tag = void 0;
4
4
  const name_helpers_1 = require("../compiler/helpers/name_helpers");
5
+ /**
6
+ * Utility class for parsing element `tags`.
7
+ *
8
+ * A `tag` is a string which references an element
9
+ * on the `Space`, following one of the formats below:
10
+ * ```
11
+ * module::type:name
12
+ * module::name
13
+ * type:name
14
+ * name
15
+ * ```
16
+ *
17
+ * @category Engine
18
+ */
5
19
  class $Tag {
20
+ /**
21
+ * Parse `module?`, `type?` and `name` from a tag string.
22
+ *
23
+ * @param tag A tag string
24
+ * @returns An object containing the parsed tag info or `undefined`
25
+ * if it's an invalid tag.
26
+ */
6
27
  static parse(tag) {
7
28
  const match = tag.match(/(.\w*?::)?(\w*?:)?(.*)/);
8
29
  const module = match?.[1]?.slice(0, -2);
@@ -17,6 +38,13 @@ class $Tag {
17
38
  }
18
39
  return { module, type, name };
19
40
  }
41
+ /**
42
+ * Parse `module?`, `type?` and `name` from a tag string.
43
+ *
44
+ * @param tag A tag string
45
+ * @returns An object containing the parsed tag info
46
+ * @throws If it's an invalid tag
47
+ */
20
48
  static parseOrFail(tag) {
21
49
  const match = tag.match(/(.\w*?::)?(\w*?:)?(.*)/);
22
50
  if (!match) {
@@ -41,7 +69,18 @@ class $Tag {
41
69
  }
42
70
  }
43
71
  exports.$Tag = $Tag;
72
+ /**
73
+ * A reference for an element, declared from another element.
74
+ *
75
+ * @category Engine
76
+ */
44
77
  class $Dependency {
78
+ /**
79
+ * @param fromModule Name of module which uses this dependency
80
+ * @param type Type of referenced element
81
+ * @param name Name of referenced element
82
+ * @param soft True if this doesn't affect build order
83
+ */
45
84
  constructor(fromModule, type, name, soft = false) {
46
85
  this.type = type;
47
86
  this.soft = soft;
@@ -61,6 +100,14 @@ class $Dependency {
61
100
  this.refName = `${this.module}::${this.name}`;
62
101
  }
63
102
  }
103
+ /**
104
+ * Return the type name (UpperCamel) of the element
105
+ * referenced by a dependency.
106
+ *
107
+ * @param dep A `$Dependency` instance
108
+ * @param fromModule Name of dependant module
109
+ * @returns The type name of the dependency
110
+ */
64
111
  static typeName(dep, fromModule) {
65
112
  if (dep.module !== fromModule) {
66
113
  const moduleHigh = name_helpers_1.NameHelpers.nameLowToHigh(dep.module);
@@ -76,6 +123,11 @@ class $Dependency {
76
123
  }
77
124
  }
78
125
  exports.$Dependency = $Dependency;
126
+ /**
127
+ * A element builder, along with metadata required for building it.
128
+ *
129
+ * @category Engine
130
+ */
79
131
  class BuilderNode {
80
132
  constructor($) {
81
133
  this.module = $.module;