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
@@ -1,4 +1,4 @@
1
- import { BuilderType } from "../schema";
1
+ import { $Module, BuilderType } from "../schema";
2
2
  import { AnyBuilder, AnyElementSchema } from './module';
3
3
  import { Overlay } from './util/type';
4
4
  import { JobBuilderNode } from "../elements/blocks/job/job.builder";
@@ -6,28 +6,87 @@ 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;
83
+ static resolve(module: $Module, dep: $Dependency): import("../elements").$Message | import("../elements").$Machine | import("../elements").$Bucket | import("../elements").$Constants | import("../elements").$Job | import("../elements").$Externals | import("../elements").$Resource | import("../elements").$Controller | undefined;
30
84
  }
85
+ /**
86
+ * A element builder, along with metadata required for building it.
87
+ *
88
+ * @category Engine
89
+ */
31
90
  export declare class BuilderNode {
32
91
  module: string;
33
92
  type: BuilderType;
@@ -47,6 +106,9 @@ export declare class BuilderNode {
47
106
  builder: AnyBuilder;
48
107
  });
49
108
  }
109
+ /**
110
+ * A builder node with the dependencies resolved to references to other nodes.
111
+ */
50
112
  export type ResolvedBuilderNode = Overlay<BuilderNode, {
51
113
  _dependencies?: ResolvedBuilderNode[];
52
114
  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);
@@ -74,8 +121,31 @@ class $Dependency {
74
121
  .type;
75
122
  }
76
123
  }
124
+ static resolve(module, dep) {
125
+ if (dep.type === 'constants')
126
+ return module.constants;
127
+ if (dep.type === 'externals')
128
+ return module.externals;
129
+ if (dep.type === 'bucket')
130
+ return module.buckets[dep.name];
131
+ if (dep.type === 'message')
132
+ return module.messages[dep.name];
133
+ if (dep.type === 'job')
134
+ return module.jobs[dep.name];
135
+ if (dep.type === 'resource')
136
+ return module.resources[dep.name];
137
+ if (dep.type === 'machine')
138
+ return module.machines[dep.name];
139
+ if (dep.type === 'controller')
140
+ return module.controllers[dep.name];
141
+ }
77
142
  }
78
143
  exports.$Dependency = $Dependency;
144
+ /**
145
+ * A element builder, along with metadata required for building it.
146
+ *
147
+ * @category Engine
148
+ */
79
149
  class BuilderNode {
80
150
  constructor($) {
81
151
  this.module = $.module;
@@ -15,8 +15,8 @@ import { Bucket } from "../elements/entities/bucket/bucket";
15
15
  import { $Constants } from "../elements/entities/constants/constants.schema";
16
16
  import { ConstantsBuilder } from "../elements/entities/constants/constants.builder";
17
17
  import { AnyControllerBuilder } from "../elements/edge/controller/controller.builder";
18
- import { AnyExternalsBuilder } from "../elements/blocks/externals/externals.builder";
19
- import { $Externals } from "../elements/blocks/externals/externals.schema";
18
+ import { AnyExternalsBuilder } from "../elements/edge/externals/externals.builder";
19
+ import { $Externals } from "../elements/edge/externals/externals.schema";
20
20
  import { $Dependency, ResolvedBuilderNode } from './dependency';
21
21
  import { $Bucket } from "../elements/entities/bucket/bucket.schema";
22
22
  import { $Resource } from "../elements/blocks/resource/resource.schema";
@@ -26,6 +26,7 @@ import { $Job } from "../elements/blocks/job/job.schema";
26
26
  import { ModuleTree } from './tree';
27
27
  import { AnyResourceJobBuilder } from "../elements/blocks/job/internal/resource_job.builder";
28
28
  import { AnyApp } from './apps/app';
29
+ import { AnyService } from './apps/service';
29
30
  import { AnyMachineJobBuilder } from "../elements/blocks/job/internal/machine_job.builder";
30
31
  import { AnyQueueBuilder } from "../elements/blocks/queue/queue.builder";
31
32
  import { $Queue } from "../elements/blocks/queue/queue.schema";
@@ -46,6 +47,20 @@ export type VirtualModuleDef = {
46
47
  jobs?: $Dependency[];
47
48
  };
48
49
  };
50
+ /**
51
+ * A `Module` is an isolated named collection of _Elements_.
52
+ *
53
+ * Modules should be designed to work in isolation as much as possible.
54
+ * When declaring external dependencies, these can be injected into the
55
+ * module or linked externally through REST or other means.
56
+ *
57
+ * Each `Module` has a _Transaction Engine_, which keeps track of
58
+ * transactions performed with the Module elements.
59
+ * Transactions can be shared between engines, to allow for a tracking
60
+ * of distributed applications.
61
+ *
62
+ * @category Engine
63
+ */
49
64
  export declare class Module<S extends $Space, $ extends $Module> {
50
65
  name: string;
51
66
  schema: $;
@@ -56,19 +71,48 @@ export declare class Module<S extends $Space, $ extends $Module> {
56
71
  machines: { [B in keyof $["machines"]]: Machine<S, $, $["machines"][B]>; };
57
72
  queues: { [B in keyof $["queues"]]: Queue<$, $["queues"][B]>; };
58
73
  controllers: { [B in keyof $["controllers"]]: Controller<S, $, $["controllers"][B]>; };
74
+ /**
75
+ * Daemon which is running the current module.
76
+ * This is `undefined` when the _Module_ is created for compiling.
77
+ */
59
78
  daemon?: AnyDaemon;
79
+ /**
80
+ * NQL (Nesoi Query Language) Engine for this module.
81
+ */
60
82
  nql: NQL_Engine;
83
+ /**
84
+ * The boot source for this module:
85
+ * - `dirpath`: This module is being run from a Space (Framework mode), so
86
+ * source is the module directory, from which builders will be read
87
+ * - `builders`: This module is being run in Library mode, so source is
88
+ * a list of builders
89
+ */
61
90
  boot?: {
62
- path: string;
91
+ dirpath: string;
63
92
  } | {
64
93
  builders: AnyBuilder[];
65
94
  };
95
+ /**
96
+ * @param name A module name
97
+ * @param boot The boot source for this module
98
+ */
66
99
  constructor(name: string, boot?: {
67
- path: string;
100
+ dirpath: string;
68
101
  } | {
69
102
  builders: AnyBuilder[];
70
103
  });
104
+ /**
105
+ * Log the module elements
106
+ */
71
107
  info(): void;
108
+ /**
109
+ * Inject element schemas into the module.
110
+ * This is used on the compiled version of the `App`, which has
111
+ * the schemas pre-built, so it directly injects them.
112
+ *
113
+ * @param schemas A dictionary of schema(s) by element type
114
+ * @returns The `Module`, for call-chaining
115
+ */
72
116
  inject(schemas: {
73
117
  externals?: $Externals;
74
118
  constants?: $Constants;
@@ -80,19 +124,77 @@ export declare class Module<S extends $Space, $ extends $Module> {
80
124
  queues?: $Queue[];
81
125
  controllers?: $Controller[];
82
126
  }): this;
83
- injectDependencies(daemon: AnyDaemon, dependencies: {
127
+ /**
128
+ * Include references for external elements on the module.
129
+ * This allows a module to use elements from other modules directly,
130
+ * on single-threaded `Apps`.
131
+ * This implementation also includes transitive dependencies.
132
+ *
133
+ * @param daemon A `Daemon` instance
134
+ * @param dependencies: A dictionary of dependencies by element type
135
+ * @returns The `Module`, for call-chaining
136
+ */
137
+ injectDependencies(modules: Record<string, AnyModule>, dependencies: {
84
138
  buckets?: $Dependency[];
85
139
  jobs?: $Dependency[];
86
140
  messages?: $Dependency[];
87
141
  machines?: $Dependency[];
88
142
  }): this;
89
- scanFiles(dir: string, exclude?: string[]): string[];
143
+ /**
144
+ * Recursively find all files inside the module dir.
145
+ *
146
+ * @param dirpath A directory to scan
147
+ * @param exclude: A list of patterns to ignore
148
+ * @returns A list of file paths
149
+ */
150
+ scanFiles(dirpath: string, exclude?: string[]): string[];
151
+ /**
152
+ * Build a resolved builder node, then merge the
153
+ * resulting schema(s) to the module.
154
+ * This also merges the resulting inline nodes of building a node.
155
+ *
156
+ * @param node A resolved builder node
157
+ * @param tree A module tree
158
+ */
90
159
  buildNode(node: ResolvedBuilderNode, tree: ModuleTree): Promise<void>;
160
+ /**
161
+ * Merge inline message schemas into the module.
162
+ *
163
+ * @param node A resolved builder node
164
+ * @param schemas A dictionary of Message schemas by name
165
+ */
91
166
  private mergeInlineMessages;
167
+ /**
168
+ * Merge inline job schemas into the module.
169
+ *
170
+ * @param node A resolved builder node
171
+ * @param schemas A dictionary of job schemas by name
172
+ */
92
173
  private mergeInlineJobs;
93
- start(app: AnyApp, providers: Record<string, any>): void;
174
+ /**
175
+ * Create elements from schemas, and the NQL engine for this module.
176
+ *
177
+ * @param app A `App` instance
178
+ * @param services A dictionary of services by name
179
+ */
180
+ start(app: AnyApp, services: Record<string, AnyService>): void;
181
+ /**
182
+ * Destroy all elements from module.
183
+ */
94
184
  destroy(): void;
95
- private destroyBlock;
185
+ /**
186
+ * Destroy one element from module.
187
+ */
188
+ private destroyElement;
189
+ /**
190
+ * Create a virtual module from a definition.
191
+ * A virtual module can be used to dynamically create
192
+ * and use schemas with limited access to the application elements.
193
+ *
194
+ * @param daemon A `Daemon` instance
195
+ * @param def A definition for a Virtual Module
196
+ * @returns A `Module` instance
197
+ */
96
198
  static virtual(daemon: AnyDaemon, def: VirtualModuleDef): Promise<Module<$Space, $Module>>;
97
199
  }
98
200
  export type AnyModule = Module<any, any>;