nesoi 3.0.6 → 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 (255) 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 +32 -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/compiler/typescript/transformers/replace_import.transformer.js +8 -1
  50. package/lib/elements/blocks/block.builder.d.ts +6 -2
  51. package/lib/elements/blocks/block.builder.js +8 -4
  52. package/lib/elements/blocks/block.schema.d.ts +4 -0
  53. package/lib/elements/blocks/block.schema.js +4 -0
  54. package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +6 -3
  55. package/lib/elements/blocks/job/internal/machine_job.builder.js +5 -2
  56. package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +4 -0
  57. package/lib/elements/blocks/job/internal/machine_job.schema.js +4 -0
  58. package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +4 -0
  59. package/lib/elements/blocks/job/internal/resource_job.builder.js +4 -0
  60. package/lib/elements/blocks/job/internal/resource_job.d.ts +4 -0
  61. package/lib/elements/blocks/job/internal/resource_job.js +4 -0
  62. package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +4 -0
  63. package/lib/elements/blocks/job/internal/resource_job.schema.js +4 -0
  64. package/lib/elements/blocks/job/job.builder.d.ts +4 -0
  65. package/lib/elements/blocks/job/job.builder.js +4 -0
  66. package/lib/elements/blocks/job/job.d.ts +4 -0
  67. package/lib/elements/blocks/job/job.js +4 -0
  68. package/lib/elements/blocks/job/job.schema.d.ts +4 -0
  69. package/lib/elements/blocks/job/job.schema.js +4 -0
  70. package/lib/elements/blocks/machine/machine.builder.d.ts +4 -0
  71. package/lib/elements/blocks/machine/machine.builder.js +4 -0
  72. package/lib/elements/blocks/machine/machine.d.ts +12 -0
  73. package/lib/elements/blocks/machine/machine.js +12 -0
  74. package/lib/elements/blocks/machine/machine.schema.d.ts +16 -0
  75. package/lib/elements/blocks/machine/machine.schema.js +16 -1
  76. package/lib/elements/blocks/machine/machine_state.builder.d.ts +4 -0
  77. package/lib/elements/blocks/machine/machine_state.builder.js +4 -0
  78. package/lib/elements/blocks/machine/machine_transition.builder.d.ts +4 -0
  79. package/lib/elements/blocks/machine/machine_transition.builder.js +4 -0
  80. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +4 -0
  81. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +4 -0
  82. package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +4 -0
  83. package/lib/elements/blocks/queue/adapters/queue_adapter.js +4 -0
  84. package/lib/elements/blocks/queue/queue.builder.d.ts +4 -0
  85. package/lib/elements/blocks/queue/queue.builder.js +4 -0
  86. package/lib/elements/blocks/queue/queue.schema.d.ts +4 -0
  87. package/lib/elements/blocks/queue/queue.schema.js +4 -0
  88. package/lib/elements/blocks/resource/resource.builder.d.ts +4 -0
  89. package/lib/elements/blocks/resource/resource.builder.js +4 -0
  90. package/lib/elements/blocks/resource/resource.d.ts +4 -0
  91. package/lib/elements/blocks/resource/resource.js +4 -0
  92. package/lib/elements/blocks/resource/resource.schema.d.ts +4 -0
  93. package/lib/elements/blocks/resource/resource.schema.js +4 -0
  94. package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +4 -0
  95. package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +4 -0
  96. package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +4 -0
  97. package/lib/elements/edge/controller/adapters/controller_adapter.js +4 -0
  98. package/lib/elements/edge/controller/controller.builder.d.ts +16 -0
  99. package/lib/elements/edge/controller/controller.builder.js +16 -0
  100. package/lib/elements/edge/controller/controller.d.ts +4 -0
  101. package/lib/elements/edge/controller/controller.js +4 -0
  102. package/lib/elements/edge/controller/controller.schema.d.ts +16 -0
  103. package/lib/elements/edge/controller/controller.schema.js +16 -0
  104. package/lib/elements/{blocks → edge}/externals/externals.builder.d.ts +4 -0
  105. package/lib/elements/{blocks → edge}/externals/externals.builder.js +4 -0
  106. package/lib/elements/{blocks → edge}/externals/externals.schema.d.ts +4 -0
  107. package/lib/elements/{blocks → edge}/externals/externals.schema.js +4 -0
  108. package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +16 -11
  109. package/lib/elements/entities/bucket/adapters/bucket_adapter.js +5 -0
  110. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +4 -0
  111. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +4 -0
  112. package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +4 -1
  113. package/lib/elements/entities/bucket/adapters/memory.nql.js +4 -1
  114. package/lib/elements/entities/bucket/bucket.builder.d.ts +4 -0
  115. package/lib/elements/entities/bucket/bucket.builder.js +4 -0
  116. package/lib/elements/entities/bucket/bucket.d.ts +9 -2
  117. package/lib/elements/entities/bucket/bucket.js +14 -7
  118. package/lib/elements/entities/bucket/bucket.schema.d.ts +4 -0
  119. package/lib/elements/entities/bucket/bucket.schema.js +4 -0
  120. package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +8 -0
  121. package/lib/elements/entities/bucket/cache/bucket_cache.js +8 -0
  122. package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +4 -0
  123. package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +4 -0
  124. package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +4 -0
  125. package/lib/elements/entities/bucket/graph/bucket_graph.js +4 -0
  126. package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +8 -0
  127. package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +8 -0
  128. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +8 -0
  129. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +8 -0
  130. package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +4 -0
  131. package/lib/elements/entities/bucket/model/bucket_model.builder.js +4 -0
  132. package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +8 -0
  133. package/lib/elements/entities/bucket/model/bucket_model.convert.js +8 -0
  134. package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +8 -0
  135. package/lib/elements/entities/bucket/model/bucket_model.schema.js +8 -0
  136. package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +8 -0
  137. package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +8 -0
  138. package/lib/elements/entities/bucket/query/nql_compiler.d.ts +9 -0
  139. package/lib/elements/entities/bucket/query/nql_compiler.js +9 -0
  140. package/lib/elements/entities/bucket/query/nql_engine.d.ts +6 -0
  141. package/lib/elements/entities/bucket/query/nql_engine.js +6 -0
  142. package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +4 -0
  143. package/lib/elements/entities/bucket/view/bucket_view.builder.js +4 -0
  144. package/lib/elements/entities/bucket/view/bucket_view.d.ts +4 -0
  145. package/lib/elements/entities/bucket/view/bucket_view.js +10 -2
  146. package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +8 -0
  147. package/lib/elements/entities/bucket/view/bucket_view.schema.js +8 -0
  148. package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +8 -0
  149. package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -0
  150. package/lib/elements/entities/constants/constants.builder.d.ts +21 -6
  151. package/lib/elements/entities/constants/constants.builder.js +21 -6
  152. package/lib/elements/entities/constants/constants.d.ts +4 -0
  153. package/lib/elements/entities/constants/constants.js +4 -0
  154. package/lib/elements/entities/constants/constants.schema.d.ts +16 -0
  155. package/lib/elements/entities/constants/constants.schema.js +16 -0
  156. package/lib/elements/entities/drive/drive_adapter.d.ts +15 -10
  157. package/lib/elements/entities/drive/drive_adapter.js +5 -2
  158. package/lib/elements/entities/drive/local.drive_adapter.d.ts +10 -4
  159. package/lib/elements/entities/drive/local.drive_adapter.js +23 -8
  160. package/lib/elements/entities/message/message.builder.d.ts +4 -0
  161. package/lib/elements/entities/message/message.builder.js +4 -0
  162. package/lib/elements/entities/message/message.d.ts +4 -0
  163. package/lib/elements/entities/message/message.js +4 -0
  164. package/lib/elements/entities/message/message.schema.d.ts +4 -0
  165. package/lib/elements/entities/message/message.schema.js +4 -0
  166. package/lib/elements/entities/message/message_parser.d.ts +4 -0
  167. package/lib/elements/entities/message/message_parser.js +4 -0
  168. package/lib/elements/entities/message/template/message_template.builder.d.ts +4 -0
  169. package/lib/elements/entities/message/template/message_template.builder.js +4 -0
  170. package/lib/elements/entities/message/template/message_template.schema.d.ts +9 -0
  171. package/lib/elements/entities/message/template/message_template.schema.js +25 -0
  172. package/lib/elements/entities/message/template/message_template_field.builder.d.ts +8 -0
  173. package/lib/elements/entities/message/template/message_template_field.builder.js +8 -0
  174. package/lib/elements/index.d.ts +1 -1
  175. package/lib/elements/index.js +1 -1
  176. package/lib/engine/apps/app.config.d.ts +3 -0
  177. package/lib/engine/apps/app.config.js +3 -0
  178. package/lib/engine/apps/app.d.ts +3 -0
  179. package/lib/engine/apps/app.js +4 -1
  180. package/lib/engine/apps/inline.app.d.ts +3 -0
  181. package/lib/engine/apps/inline.app.js +3 -0
  182. package/lib/engine/apps/monolyth/monolyth.app.d.ts +8 -0
  183. package/lib/engine/apps/monolyth/monolyth.app.js +8 -0
  184. package/lib/engine/auth/authn.d.ts +4 -0
  185. package/lib/engine/auth/authn.js +4 -0
  186. package/lib/engine/auth/zero.authn_provider.d.ts +4 -0
  187. package/lib/engine/auth/zero.authn_provider.js +4 -0
  188. package/lib/engine/cli/cli.d.ts +7 -1
  189. package/lib/engine/cli/cli.js +10 -1
  190. package/lib/engine/cli/cli_adapter.d.ts +11 -1
  191. package/lib/engine/cli/cli_adapter.js +10 -1
  192. package/lib/engine/cli/cli_input.d.ts +4 -0
  193. package/lib/engine/cli/cli_input.js +4 -0
  194. package/lib/engine/cli/ui.d.ts +14 -2
  195. package/lib/engine/cli/ui.js +10 -6
  196. package/lib/engine/daemon.d.ts +93 -6
  197. package/lib/engine/daemon.js +90 -7
  198. package/lib/engine/data/date.d.ts +4 -0
  199. package/lib/engine/data/date.js +4 -0
  200. package/lib/engine/data/datetime.d.ts +4 -0
  201. package/lib/engine/data/datetime.js +4 -0
  202. package/lib/engine/data/decimal.d.ts +4 -0
  203. package/lib/engine/data/decimal.js +4 -0
  204. package/lib/engine/data/file.d.ts +23 -23
  205. package/lib/engine/data/file.js +66 -29
  206. package/lib/engine/data/json.d.ts +4 -0
  207. package/lib/engine/data/json.js +4 -0
  208. package/lib/engine/data/tree.d.ts +4 -0
  209. package/lib/engine/data/tree.js +4 -0
  210. package/lib/engine/dependency.d.ts +63 -2
  211. package/lib/engine/dependency.js +52 -0
  212. package/lib/engine/module.d.ts +109 -9
  213. package/lib/engine/module.js +110 -25
  214. package/lib/engine/space.d.ts +163 -10
  215. package/lib/engine/space.js +184 -22
  216. package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +12 -0
  217. package/lib/engine/transaction/nodes/bucket.trx_node.js +12 -0
  218. package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +4 -0
  219. package/lib/engine/transaction/nodes/bucket_query.trx_node.js +4 -0
  220. package/lib/engine/transaction/nodes/job.trx_node.d.ts +4 -0
  221. package/lib/engine/transaction/nodes/job.trx_node.js +4 -0
  222. package/lib/engine/transaction/nodes/machine.trx_node.d.ts +4 -0
  223. package/lib/engine/transaction/nodes/machine.trx_node.js +4 -0
  224. package/lib/engine/transaction/nodes/queue.trx_node.d.ts +4 -0
  225. package/lib/engine/transaction/nodes/queue.trx_node.js +4 -0
  226. package/lib/engine/transaction/nodes/resource.trx_node.d.ts +4 -0
  227. package/lib/engine/transaction/nodes/resource.trx_node.js +4 -0
  228. package/lib/engine/transaction/trx.d.ts +8 -0
  229. package/lib/engine/transaction/trx.js +8 -0
  230. package/lib/engine/transaction/trx_engine.d.ts +4 -0
  231. package/lib/engine/transaction/trx_engine.js +4 -3
  232. package/lib/engine/transaction/trx_node.d.ts +4 -0
  233. package/lib/engine/transaction/trx_node.js +4 -0
  234. package/lib/engine/tree.d.ts +54 -2
  235. package/lib/engine/tree.js +54 -2
  236. package/lib/engine/util/mime.d.ts +4 -4
  237. package/lib/engine/util/mime.js +7 -9
  238. package/lib/schema.d.ts +1 -1
  239. package/package.json +1 -1
  240. package/tsconfig.build.tsbuildinfo +1 -1
  241. package/lib/adapters/postgres/src/migrator/bucket.d.ts +0 -20
  242. package/lib/adapters/postgres/src/migrator/bucket.js +0 -184
  243. package/lib/adapters/postgres/src/migrator/migration.d.ts +0 -57
  244. package/lib/adapters/postgres/src/migrator/migration.js +0 -203
  245. package/lib/adapters/postgres/src/migrator/migrator.d.ts +0 -21
  246. package/lib/adapters/postgres/src/migrator/runner.d.ts +0 -71
  247. package/lib/adapters/postgres/src/migrator/runner.js +0 -271
  248. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
  249. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +0 -218
  250. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +0 -0
  251. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +0 -47
  252. package/lib/engine/apps/monolyth/monolyth.cli.d.ts +0 -45
  253. package/lib/engine/apps/monolyth/monolyth.cli.js +0 -362
  254. package/lib/engine/util/cache.d.ts +0 -6
  255. package/lib/engine/util/cache.js +0 -20
@@ -31,6 +31,10 @@ export type $MessageTemplateFieldMeta = {
31
31
  msg?: $Dependency;
32
32
  };
33
33
  export type $MessageTemplateFieldType = $BucketModelFieldType | 'string_or_number' | 'id' | 'msg';
34
+ /**
35
+ * @category Schemas
36
+ * @subcategory Entity
37
+ * */
34
38
  export declare class $MessageTemplateField {
35
39
  type: $MessageTemplateFieldType;
36
40
  name: string;
@@ -52,8 +56,13 @@ export declare class $MessageTemplateField {
52
56
  export type $MessageTemplateFields = {
53
57
  [x: string]: $MessageTemplateField;
54
58
  };
59
+ /**
60
+ * @category Schemas
61
+ * @subcategory Entity
62
+ * */
55
63
  export declare class $MessageTemplate {
56
64
  fields: $MessageTemplateFields;
57
65
  $t: string;
58
66
  constructor(fields?: $MessageTemplateFields);
67
+ static fieldsOfType(template: $MessageTemplate, type: $MessageTemplateFieldType): $MessageTemplateField[];
59
68
  }
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.$MessageTemplate = exports.$MessageTemplateField = void 0;
4
+ /**
5
+ * @category Schemas
6
+ * @subcategory Entity
7
+ * */
4
8
  class $MessageTemplateField {
5
9
  constructor(type, name, alias, path, array, required, defaultValue, nullable, rules, meta, children, or) {
6
10
  this.type = type;
@@ -19,10 +23,31 @@ class $MessageTemplateField {
19
23
  }
20
24
  }
21
25
  exports.$MessageTemplateField = $MessageTemplateField;
26
+ /**
27
+ * @category Schemas
28
+ * @subcategory Entity
29
+ * */
22
30
  class $MessageTemplate {
23
31
  constructor(fields = {}) {
24
32
  this.fields = fields;
25
33
  this.$t = 'message.template';
26
34
  }
35
+ static fieldsOfType(template, type) {
36
+ const fields = [];
37
+ let poll = Object.values(template.fields);
38
+ while (poll.length) {
39
+ const next = [];
40
+ for (const field of poll) {
41
+ if (field.type === type) {
42
+ fields.push(field);
43
+ }
44
+ if (field.children) {
45
+ next.push(...Object.values(field.children));
46
+ }
47
+ }
48
+ poll = next;
49
+ }
50
+ return fields;
51
+ }
27
52
  }
28
53
  exports.$MessageTemplate = $MessageTemplate;
@@ -9,6 +9,10 @@ import { MessageEnumpath } from '../../constants/constants.schema';
9
9
  import { NesoiDecimal } from "../../../../engine/data/decimal";
10
10
  import { NesoiDatetime } from "../../../../engine/data/datetime";
11
11
  import { NesoiFile } from "../../../../engine/data/file";
12
+ /**
13
+ * @category Builders
14
+ * @subcategory Entity
15
+ * */
12
16
  export declare class MessageTemplateFieldFactory<Space extends $Space, Module extends $Module, MsgName extends keyof Module['messages'], Message extends $Message = Module['messages'][MsgName]> {
13
17
  private module;
14
18
  private alias?;
@@ -197,6 +201,10 @@ export declare class MessageTemplateFieldFactory<Space extends $Space, Module ex
197
201
  }, {}, [never, never], [never, never]>;
198
202
  extend<MsgName extends keyof Module['messages'], Builders extends MessageTemplateFieldBuilders>(name: MsgName, fields: Builders): $MessageTemplateBuilderInfer<Module, Module["messages"][MsgName], Module["messages"][MsgName]["#raw"], Module["messages"][MsgName]["#parsed"]> & Builders;
199
203
  }
204
+ /**
205
+ * @category Builders
206
+ * @subcategory Entity
207
+ * */
200
208
  export declare class MessageTemplateFieldBuilder<Module extends $Module, Message extends $Message, DefinedInput, DefinedOutput, Children extends MessageTemplateFieldBuilders, Optional extends [undefined | never, undefined | never] = [never, never], // Used to infer the message type
201
209
  Nullable extends [null | never, null | never] = [never, never]> {
202
210
  private type;
@@ -4,6 +4,10 @@ exports.MessageTemplateFieldBuilder = exports.MessageTemplateFieldFactory = void
4
4
  const message_template_schema_1 = require("./message_template.schema");
5
5
  const error_1 = require("../../../../engine/data/error");
6
6
  const dependency_1 = require("../../../../engine/dependency");
7
+ /**
8
+ * @category Builders
9
+ * @subcategory Entity
10
+ * */
7
11
  class MessageTemplateFieldFactory {
8
12
  constructor(module) {
9
13
  this.module = module;
@@ -81,6 +85,10 @@ class MessageTemplateFieldFactory {
81
85
  }
82
86
  }
83
87
  exports.MessageTemplateFieldFactory = MessageTemplateFieldFactory;
88
+ /**
89
+ * @category Builders
90
+ * @subcategory Entity
91
+ * */
84
92
  class MessageTemplateFieldBuilder {
85
93
  constructor(type, value, alias, children) {
86
94
  this.type = type;
@@ -7,5 +7,5 @@ export { $Bucket } from './entities/bucket/bucket.schema';
7
7
  export { $Job } from './blocks/job/job.schema';
8
8
  export { $Resource } from './blocks/resource/resource.schema';
9
9
  export { $Queue } from './blocks/queue/queue.schema';
10
- export { $Externals } from './blocks/externals/externals.schema';
10
+ export { $Externals } from './edge/externals/externals.schema';
11
11
  export { $Space, $Module } from '../schema';
@@ -19,5 +19,5 @@ var resource_schema_1 = require("./blocks/resource/resource.schema");
19
19
  Object.defineProperty(exports, "$Resource", { enumerable: true, get: function () { return resource_schema_1.$Resource; } });
20
20
  var queue_schema_1 = require("./blocks/queue/queue.schema");
21
21
  Object.defineProperty(exports, "$Queue", { enumerable: true, get: function () { return queue_schema_1.$Queue; } });
22
- var externals_schema_1 = require("./blocks/externals/externals.schema");
22
+ var externals_schema_1 = require("./edge/externals/externals.schema");
23
23
  Object.defineProperty(exports, "$Externals", { enumerable: true, get: function () { return externals_schema_1.$Externals; } });
@@ -54,6 +54,9 @@ export type AppAuditConfig = {
54
54
  /**
55
55
  * Factory
56
56
  */
57
+ /**
58
+ * @category App
59
+ */
57
60
  export declare class AppConfigFactory<S extends $Space, Modules extends string = ModuleName<S> & string, Providers extends Record<string, any> = Record<string, any>, _App = App<S, Modules, Providers>> {
58
61
  private app;
59
62
  private config;
@@ -4,6 +4,9 @@ exports.AppConfigFactory = void 0;
4
4
  /**
5
5
  * Factory
6
6
  */
7
+ /**
8
+ * @category App
9
+ */
7
10
  class AppConfigFactory {
8
11
  constructor(app) {
9
12
  this.app = app;
@@ -15,6 +15,9 @@ export type AppProvider<out Name, T> = {
15
15
  libPaths?: string[];
16
16
  };
17
17
  export type AnyAppProvider = AppProvider<any, any>;
18
+ /**
19
+ * @category App
20
+ */
18
21
  export declare abstract class App<S extends $Space, Modules extends string = ModuleName<S> & string, Providers extends Record<string, any> = Record<string, any>> {
19
22
  name: string;
20
23
  protected _config: AnyAppConfig;
@@ -7,6 +7,9 @@ const app_config_1 = require("./app.config");
7
7
  /*
8
8
  App
9
9
  */
10
+ /**
11
+ * @category App
12
+ */
10
13
  class App {
11
14
  constructor(name, boot) {
12
15
  this.name = name;
@@ -73,7 +76,7 @@ class App {
73
76
  if (this.space) {
74
77
  space_1.Space.scan(this.space, (name, path) => {
75
78
  if (this._spaceModuleNames.includes(name)) {
76
- modules[name] = new module_1.Module(name, { path });
79
+ modules[name] = new module_1.Module(name, { dirpath: path });
77
80
  }
78
81
  });
79
82
  }
@@ -4,6 +4,9 @@ import { AnyTrxEngine } from '../transaction/trx_engine';
4
4
  import { AnyBuilder, AnyModule, Module } from '../module';
5
5
  import { AnyDaemon, Daemon } from '../daemon';
6
6
  import { AppConfigFactory } from './app.config';
7
+ /**
8
+ * @category App
9
+ */
7
10
  export declare class InlineApp<S extends $Space, ModuleNames extends string = ModuleName<S> & string, Providers extends Record<string, any> = Record<string, any>> extends App<S, ModuleNames, Providers> {
8
11
  protected _daemon?: Daemon<S, ModuleNames>;
9
12
  protected _modules: Record<string, AnyModule>;
@@ -7,6 +7,9 @@ const trx_engine_1 = require("../transaction/trx_engine");
7
7
  const tree_1 = require("../tree");
8
8
  const daemon_1 = require("../daemon");
9
9
  const app_config_1 = require("./app.config");
10
+ /**
11
+ * @category App
12
+ */
10
13
  class InlineApp extends app_1.App {
11
14
  constructor(name, builders) {
12
15
  super(name, { builders });
@@ -5,6 +5,10 @@ import { AnyTrxEngine } from '../../transaction/trx_engine';
5
5
  import { Space } from '../../space';
6
6
  import { Daemon } from "../../daemon";
7
7
  import { AppConfigFactory } from '../app.config';
8
+ /**
9
+ * @category App
10
+ * @subcategory Monolyth
11
+ */
8
12
  export declare class MonolythApp<S extends $Space, ModuleNames extends string = ModuleName<S> & string, Providers extends Record<string, any> = Record<string, any>> extends InlineApp<S, ModuleNames, Providers> {
9
13
  private watcher?;
10
14
  constructor(name: string, space?: Space<S>);
@@ -18,5 +22,9 @@ export declare class MonolythApp<S extends $Space, ModuleNames extends string =
18
22
  provider<Name extends string, T>($: AppProvider<Name, T>): MonolythApp<S, ModuleNames, Providers & { [K in Name]: T; }>;
19
23
  get config(): AppConfigFactory<S, ModuleNames, Providers, typeof this>;
20
24
  }
25
+ /**
26
+ * @category App
27
+ * @subcategory Monolyth
28
+ */
21
29
  export declare class MonolythDaemon<S extends $Space, Modules extends ModuleName<S>> extends Daemon<S, Modules> {
22
30
  }
@@ -39,6 +39,10 @@ const space_1 = require("../../space");
39
39
  const daemon_1 = require("../../daemon");
40
40
  const log_1 = require("../../util/log");
41
41
  const app_config_1 = require("../app.config");
42
+ /**
43
+ * @category App
44
+ * @subcategory Monolyth
45
+ */
42
46
  class MonolythApp extends inline_app_1.InlineApp {
43
47
  constructor(name, space) {
44
48
  super(name, []);
@@ -101,6 +105,10 @@ class MonolythApp extends inline_app_1.InlineApp {
101
105
  }
102
106
  }
103
107
  exports.MonolythApp = MonolythApp;
108
+ /**
109
+ * @category App
110
+ * @subcategory Monolyth
111
+ */
104
112
  class MonolythDaemon extends daemon_1.Daemon {
105
113
  }
106
114
  exports.MonolythDaemon = MonolythDaemon;
@@ -8,6 +8,10 @@ export type AuthnToken = string;
8
8
  export type AuthnRequest<P extends keyof any> = {
9
9
  [K in P]?: AuthnToken;
10
10
  };
11
+ /**
12
+ * @category Engine
13
+ * @subcategory Auth
14
+ */
11
15
  export declare abstract class AuthnProvider<U extends User> {
12
16
  abstract authenticate($: {
13
17
  trx: AnyTrxNode;
@@ -4,6 +4,10 @@ exports.AuthnProvider = void 0;
4
4
  /*
5
5
  Provider
6
6
  */
7
+ /**
8
+ * @category Engine
9
+ * @subcategory Auth
10
+ */
7
11
  class AuthnProvider {
8
12
  }
9
13
  exports.AuthnProvider = AuthnProvider;
@@ -4,6 +4,10 @@ type ZeroUser = {
4
4
  id: NesoiObjId;
5
5
  name: string;
6
6
  };
7
+ /**
8
+ * @category Engine
9
+ * @subcategory Auth
10
+ */
7
11
  export declare class ZeroAuthnProvider extends AuthnProvider<ZeroUser> {
8
12
  authenticate($: {
9
13
  token: string;
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZeroAuthnProvider = void 0;
4
4
  const authn_1 = require("./authn");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory Auth
8
+ */
5
9
  class ZeroAuthnProvider extends authn_1.AuthnProvider {
6
10
  authenticate($) {
7
11
  return Promise.resolve({
@@ -1,10 +1,15 @@
1
1
  import { AnyDaemon } from '../daemon';
2
2
  import { CLIAdapter } from './cli_adapter';
3
3
  export type CLIConfig<Providers> = {
4
+ editor?: string;
4
5
  adapters?: {
5
- [x: string]: (providers: Providers) => CLIAdapter;
6
+ [x: string]: (cli: CLI, providers: Providers) => CLIAdapter;
6
7
  };
7
8
  };
9
+ /**
10
+ * @category Engine
11
+ * @subcategory CLI
12
+ */
8
13
  export declare class CLI {
9
14
  private daemon;
10
15
  config?: CLIConfig<any> | undefined;
@@ -18,4 +23,5 @@ export declare class CLI {
18
23
  private cmdHelp;
19
24
  private cmdClear;
20
25
  private getCmds;
26
+ openEditor(file: string): void;
21
27
  }
@@ -10,6 +10,11 @@ const console_1 = __importDefault(require("../util/console"));
10
10
  const daemon_1 = require("../daemon");
11
11
  const log_1 = require("../util/log");
12
12
  const cli_input_1 = require("./cli_input");
13
+ const shell_1 = __importDefault(require("../util/shell"));
14
+ /**
15
+ * @category Engine
16
+ * @subcategory CLI
17
+ */
13
18
  class CLI {
14
19
  constructor(daemon, config) {
15
20
  this.daemon = daemon;
@@ -20,7 +25,7 @@ class CLI {
20
25
  // Build adapters
21
26
  this.adapters = {};
22
27
  Object.entries(config?.adapters || {}).forEach(([key, val]) => {
23
- this.adapters[key] = val(daemon_1.Daemon.get(daemon, 'providers'));
28
+ this.adapters[key] = val(this, daemon_1.Daemon.get(daemon, 'providers'));
24
29
  this.adapters[key].name = key;
25
30
  });
26
31
  this.input = new cli_input_1.CLIInputHandler(this.getCmds());
@@ -103,5 +108,9 @@ class CLI {
103
108
  }
104
109
  return cmds;
105
110
  }
111
+ openEditor(file) {
112
+ const editor = this.config?.editor || 'code';
113
+ shell_1.default.cmd(process.cwd(), `${editor} ${file}`);
114
+ }
106
115
  }
107
116
  exports.CLI = CLI;
@@ -1,4 +1,9 @@
1
1
  import { AnyDaemon } from '../daemon';
2
+ import { CLI } from './cli';
3
+ /**
4
+ * @category Engine
5
+ * @subcategory CLI
6
+ */
2
7
  export declare abstract class CLICommand<T extends Record<string, any> = Record<string, any>> {
3
8
  scope: 'dev' | 'prod' | 'any';
4
9
  name: string;
@@ -10,10 +15,15 @@ export declare abstract class CLICommand<T extends Record<string, any> = Record<
10
15
  input(payload: string): Record<string, any>;
11
16
  abstract run(daemon: AnyDaemon, input: T): Promise<void>;
12
17
  }
18
+ /**
19
+ * @category Engine
20
+ * @subcategory CLI
21
+ */
13
22
  export declare abstract class CLIAdapter {
23
+ protected cli: CLI;
14
24
  name?: string;
15
25
  commands: Record<string, CLICommand>;
16
- constructor();
26
+ constructor(cli: CLI);
17
27
  runCmd(daemon: AnyDaemon, payload: string): Promise<boolean>;
18
28
  help(): string;
19
29
  }
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CLIAdapter = exports.CLICommand = void 0;
4
4
  const string_1 = require("../util/string");
5
+ /**
6
+ * @category Engine
7
+ * @subcategory CLI
8
+ */
5
9
  class CLICommand {
6
10
  constructor(scope, name, syntax, description, regex, groups) {
7
11
  this.scope = scope;
@@ -30,8 +34,13 @@ class CLICommand {
30
34
  }
31
35
  }
32
36
  exports.CLICommand = CLICommand;
37
+ /**
38
+ * @category Engine
39
+ * @subcategory CLI
40
+ */
33
41
  class CLIAdapter {
34
- constructor() {
42
+ constructor(cli) {
43
+ this.cli = cli;
35
44
  this.commands = {};
36
45
  }
37
46
  async runCmd(daemon, payload) {
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @category Engine
3
+ * @subcategory CLI
4
+ */
1
5
  export declare class CLIInputHandler {
2
6
  private suggestions;
3
7
  private items;
@@ -36,6 +36,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.CLIInputHandler = void 0;
37
37
  const stream_1 = require("stream");
38
38
  const readline = __importStar(require("readline"));
39
+ /**
40
+ * @category Engine
41
+ * @subcategory CLI
42
+ */
39
43
  class CLIInputHandler {
40
44
  constructor(suggestions = []) {
41
45
  this.suggestions = suggestions;
@@ -1,8 +1,15 @@
1
+ /**
2
+ * @category Engine
3
+ * @subcategory CLI
4
+ */
1
5
  export default class UI {
2
6
  /**
3
7
  * Show a list of options and let the user pick with up/down + enter
4
8
  */
5
- static select<T>(title: string, options: T[], val?: NoInfer<(o: T) => string>, defaul?: number): Promise<T>;
9
+ static select<T>(title: string, options: T[], val?: NoInfer<(o: T) => string>, defaul?: number): Promise<{
10
+ i: number;
11
+ value: T;
12
+ }>;
6
13
  /**
7
14
  * Ask a question and wait for the answer
8
15
  */
@@ -10,7 +17,12 @@ export default class UI {
10
17
  /**
11
18
  * Show a message and wait for the user to press any key
12
19
  */
13
- static waitForAnyKey(title?: string): Promise<void>;
20
+ static waitForAnyKey(title?: string): Promise<{
21
+ sequence: string;
22
+ name: string;
23
+ ctrl: boolean;
24
+ shift: boolean;
25
+ }>;
14
26
  /**
15
27
  * Ask a yes or no question and wait for the answer
16
28
  */
@@ -36,6 +36,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const readline = __importStar(require("readline"));
37
37
  const stream_1 = require("stream");
38
38
  const string_1 = require("../util/string");
39
+ /**
40
+ * @category Engine
41
+ * @subcategory CLI
42
+ */
39
43
  class UI {
40
44
  /**
41
45
  * Show a list of options and let the user pick with up/down + enter
@@ -85,7 +89,7 @@ class UI {
85
89
  else if (key.name === 'return') {
86
90
  rl.close();
87
91
  process.stdin.off('keypress', onKeypress);
88
- resolve(options[selected]);
92
+ resolve({ i: selected, value: options[selected] });
89
93
  }
90
94
  clear();
91
95
  print();
@@ -115,7 +119,7 @@ class UI {
115
119
  */
116
120
  static waitForAnyKey(title = 'Press any key to continue...') {
117
121
  return new Promise(resolve => {
118
- UI.step(title);
122
+ process.stdin.write(title + ' ');
119
123
  const mutableStdout = new stream_1.Writable({
120
124
  write: function (chunk, encoding, callback) {
121
125
  }
@@ -127,8 +131,9 @@ class UI {
127
131
  });
128
132
  const onKeypress = function (ch, key) {
129
133
  rl.close();
134
+ console.log(`${(0, string_1.colored)(ch, 'lightcyan')}\n`);
130
135
  process.stdin.off('keypress', onKeypress);
131
- resolve();
136
+ resolve(key);
132
137
  };
133
138
  process.stdin.on('keypress', onKeypress);
134
139
  });
@@ -137,9 +142,8 @@ class UI {
137
142
  * Ask a yes or no question and wait for the answer
138
143
  */
139
144
  static async yesOrNo(text, defaul = 'n') {
140
- let answer = await this.question(text + ' [y|n]', defaul);
141
- answer = answer.toLowerCase();
142
- if (answer === 'y' || answer === 'yes')
145
+ const answer = await this.waitForAnyKey('\n\t» ' + (0, string_1.colored)(text, 'lightblue') + (0, string_1.colored)(' [y|n]', 'lightgray'));
146
+ if (answer.name === 'y')
143
147
  return true;
144
148
  return false;
145
149
  }
@@ -6,31 +6,118 @@ import { AnyUsers, AuthnRequest } from './auth/authn';
6
6
  import { TrxNode } from './transaction/trx_node';
7
7
  import { TrxStatus } from './transaction/trx';
8
8
  import { AnyModule } from './module';
9
+ import { AnyAppProvider } from './apps/app';
10
+ /**
11
+ * A background process running one or more modules,
12
+ * which runs _Transactions_ for the available elements.
13
+ *
14
+ * A `Daemon` is spawn by an `App`.
15
+ *
16
+ * @category Engine
17
+ */
9
18
  export declare abstract class Daemon<S extends $Space, Modules extends ModuleName<S>> {
10
19
  protected name: string;
11
20
  protected trxEngines: Record<Modules, AnyTrxEngine>;
12
- protected providers: Record<string, any>;
13
- protected app?: AnyAppConfig | undefined;
14
- private _cli?;
15
- constructor(name: string, trxEngines: Record<Modules, AnyTrxEngine>, providers: Record<string, any>, app?: AnyAppConfig | undefined);
21
+ protected providers: Record<string, AnyAppProvider>;
22
+ protected config?: AnyAppConfig | undefined;
23
+ /**
24
+ * @param name Name of the daemon (taken from App)
25
+ * @param trxEngines A dictionary of Transaction Engine by module name
26
+ * @param providers A dictionary of App Provider by name
27
+ * @param config Optional `AppConfig`
28
+ */
29
+ constructor(name: string, trxEngines: Record<Modules, AnyTrxEngine>, providers: Record<string, AnyAppProvider>, config?: AnyAppConfig | undefined);
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<K extends Modules & keyof S['modules']>(moduleName: K): DaemonTrx<S, S["modules"][K], {}>;
37
+ /**
38
+ * Run the Nesoi CLI for this Daemon.
39
+ */
17
40
  cli(cmd?: string): Promise<void>;
41
+ /**
42
+ * Bind the controller of each module to this Daemon.
43
+ * This allows the registered `Controller Adapters` to run
44
+ * transactions on the daemon.
45
+ */
18
46
  private bindControllers;
47
+ /**
48
+ * Destroy the providers and transaction engines of this daemon
49
+ *
50
+ * @param A `Daemon` instance
51
+ */
19
52
  static destroy(daemon: AnyDaemon): Promise<void>;
53
+ /**
54
+ * Replace the providers and transaction engines of this daemon
55
+ * and rebind the controllers
56
+ *
57
+ * @param daemon A `Daemon` instance
58
+ * @param trxEngines A dictionary of Transaction Engine by module name
59
+ * @param providers A dictionary of App Provider by name
60
+ */
20
61
  static reload(daemon: AnyDaemon, trxEngines: Record<string, AnyTrxEngine>, providers: Record<string, any>): void;
62
+ /**
63
+ * Return a `Daemon` property.
64
+ * This is used to read private properties.
65
+ *
66
+ * @param daemon A `Daemon` instance
67
+ * @param key A `Daemon` property `'name'|'providers'|'app'`
68
+ * @returns The selected property
69
+ */
21
70
  static get<T extends {
22
71
  name: string;
23
72
  providers: Record<string, any>;
24
73
  app: AnyAppConfig;
25
74
  }, K extends keyof T>(daemon: AnyDaemon | undefined, key: K): T[K];
26
- static getModule<Modules extends ModuleName<any>, D extends Daemon<any, Modules>>(daemon: D, module: Modules): import("./module").Module<any, any>;
75
+ /**
76
+ * Return one module of the `Daemon` by name.
77
+ *
78
+ * @param daemon A `Daemon` instance
79
+ * @param module A module name
80
+ * @returns The `Module` instance
81
+ */
82
+ static getModule<Module extends ModuleName<any>, D extends Daemon<any, Module>>(daemon: D, module: Module): import("./module").Module<any, any>;
83
+ /**
84
+ * Return all modules of the `Daemon`.
85
+ *
86
+ * @param daemon A `Daemon` instance
87
+ * @returns The `Module` instances
88
+ */
27
89
  static getModules(daemon: AnyDaemon): AnyModule[];
28
90
  }
91
+ /**
92
+ * A helper class for preparing a transaction to be run.
93
+ * It allows declaring authentication data before running
94
+ * the transaction.
95
+ *
96
+ * @category Engine
97
+ */
29
98
  export declare class DaemonTrx<S extends $Space, M extends $Module, Authn extends AnyUsers = {}> {
30
99
  private trxEngine;
31
- private _authn?;
100
+ /**
101
+ * The authentication request which will be used to
102
+ * authenticate this transaction prior to running.
103
+ */
104
+ private authnRequest?;
105
+ /**
106
+ * @param trxEngine The transaction engine where to run the transaction.
107
+ */
32
108
  constructor(trxEngine: AnyTrxEngine);
109
+ /**
110
+ * Authenticate the transaction with the given credentials.
111
+ * You can specify one or more credentials, so the transaction
112
+ * is able to access elements with different authn providers.
113
+ */
33
114
  authn<Authn extends AuthnRequest<keyof S['authnUsers']>>(authn?: Authn): DaemonTrx<S, M, { [K in keyof Authn]: S["authnUsers"][K & keyof S["authnUsers"]]; }>;
115
+ /**
116
+ * Run a method inside the transaction.
117
+ *
118
+ * @param fn A function to execute inside the transaction
119
+ * @returns A `TrxStatus` containing metadata about the transaction and the function response
120
+ */
34
121
  run<Output>(fn: (trx: TrxNode<S, M, Authn>) => Promise<Output>): Promise<TrxStatus<Output>>;
35
122
  }
36
123
  export type AnyDaemon = Daemon<any, any>;