nesoi 3.2.8 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/README.md +33 -2
  2. package/lib/bundler/browser/browser.app.d.ts +32 -0
  3. package/lib/bundler/browser/browser.app.js +51 -0
  4. package/lib/bundler/browser/browser.bundler.d.ts +5 -0
  5. package/lib/bundler/browser/browser.bundler.js +27 -0
  6. package/lib/bundler/browser/stages/8_replace_nesoi_for_browser_stage.d.ts +13 -0
  7. package/lib/bundler/browser/stages/8_replace_nesoi_for_browser_stage.js +74 -0
  8. package/lib/bundler/distributed/distributed.app.config.d.ts +43 -0
  9. package/lib/{engine/apps → bundler}/distributed/distributed.app.config.js +1 -1
  10. package/lib/{engine/apps → bundler}/distributed/distributed.app.d.ts +14 -14
  11. package/lib/{engine/apps → bundler}/distributed/distributed.app.js +8 -3
  12. package/lib/{compiler/apps/distributed/distributed_compiler.d.ts → bundler/distributed/distributed.bundler.d.ts} +7 -7
  13. package/lib/{compiler/apps/distributed/distributed_compiler.js → bundler/distributed/distributed.bundler.js} +11 -11
  14. package/lib/{engine/apps → bundler}/distributed/distributed_node.app.d.ts +14 -20
  15. package/lib/{engine/apps → bundler}/distributed/distributed_node.app.js +18 -50
  16. package/lib/bundler/distributed/stages/1_mkdir_stage.d.ts +15 -0
  17. package/lib/{compiler/apps → bundler}/distributed/stages/1_mkdir_stage.js +6 -6
  18. package/lib/bundler/distributed/stages/2_build_typescript_stage.d.ts +15 -0
  19. package/lib/{compiler/apps → bundler}/distributed/stages/2_build_typescript_stage.js +7 -7
  20. package/lib/bundler/distributed/stages/3_copy_types_stage.d.ts +15 -0
  21. package/lib/{compiler/apps → bundler}/distributed/stages/3_copy_types_stage.js +7 -7
  22. package/lib/bundler/distributed/stages/4_dump_modules_stage.d.ts +16 -0
  23. package/lib/{compiler/apps → bundler}/distributed/stages/4_dump_modules_stage.js +5 -5
  24. package/lib/{compiler/apps → bundler}/distributed/stages/5_copy_static_stage.js +3 -3
  25. package/lib/{compiler/apps → bundler}/distributed/stages/6_dump_cli_stage.js +3 -3
  26. package/lib/{compiler/apps → bundler}/distributed/stages/7_dump_package_json_stage.js +3 -3
  27. package/lib/{engine/apps → bundler}/monolyth/monolyth.app.d.ts +13 -13
  28. package/lib/{engine/apps → bundler}/monolyth/monolyth.app.js +13 -10
  29. package/lib/{compiler/apps/monolyth/monolyth_compiler.d.ts → bundler/monolyth/monolyth.bundler.d.ts} +9 -7
  30. package/lib/{compiler/apps/monolyth/monolyth_compiler.js → bundler/monolyth/monolyth.bundler.js} +13 -12
  31. package/lib/bundler/monolyth/stages/1_mkdir_stage.d.ts +15 -0
  32. package/lib/{compiler/apps → bundler}/monolyth/stages/1_mkdir_stage.js +6 -6
  33. package/lib/bundler/monolyth/stages/2_build_typescript_stage.d.ts +15 -0
  34. package/lib/{compiler/apps → bundler}/monolyth/stages/2_build_typescript_stage.js +8 -7
  35. package/lib/bundler/monolyth/stages/3_copy_types_stage.d.ts +15 -0
  36. package/lib/{compiler/apps → bundler}/monolyth/stages/3_copy_types_stage.js +7 -7
  37. package/lib/{compiler/apps → bundler}/monolyth/stages/4_dump_modules_stage.d.ts +4 -4
  38. package/lib/{compiler/apps → bundler}/monolyth/stages/4_dump_modules_stage.js +29 -16
  39. package/lib/{compiler/apps → bundler}/monolyth/stages/5_copy_static_stage.d.ts +4 -4
  40. package/lib/{compiler/apps → bundler}/monolyth/stages/5_copy_static_stage.js +7 -7
  41. package/lib/bundler/monolyth/stages/6_dump_cli_stage.d.ts +15 -0
  42. package/lib/{compiler/apps → bundler}/monolyth/stages/6_dump_cli_stage.js +4 -4
  43. package/lib/{compiler/apps → bundler}/monolyth/stages/7_dump_package_json_stage.d.ts +4 -4
  44. package/lib/{compiler/apps → bundler}/monolyth/stages/7_dump_package_json_stage.js +13 -10
  45. package/lib/compiler/compiler.d.ts +1 -6
  46. package/lib/compiler/compiler.js +1 -1
  47. package/lib/compiler/elements/bucket.element.d.ts +2 -1
  48. package/lib/compiler/elements/bucket.element.js +16 -21
  49. package/lib/compiler/elements/cached.element.d.ts +1 -1
  50. package/lib/compiler/elements/cached.element.js +2 -2
  51. package/lib/compiler/elements/constants.element.d.ts +1 -1
  52. package/lib/compiler/elements/constants.element.js +2 -0
  53. package/lib/compiler/elements/controller.element.js +3 -3
  54. package/lib/compiler/elements/element.d.ts +6 -13
  55. package/lib/compiler/elements/element.js +11 -9
  56. package/lib/compiler/elements/externals.element.js +2 -2
  57. package/lib/compiler/elements/job.element.d.ts +1 -1
  58. package/lib/compiler/elements/job.element.js +1 -1
  59. package/lib/compiler/elements/machine.element.d.ts +2 -2
  60. package/lib/compiler/elements/machine.element.js +7 -7
  61. package/lib/compiler/elements/message.element.d.ts +1 -1
  62. package/lib/compiler/elements/message.element.js +26 -26
  63. package/lib/compiler/elements/queue.element.js +1 -1
  64. package/lib/compiler/elements/resource.element.d.ts +1 -1
  65. package/lib/compiler/elements/resource.element.js +9 -9
  66. package/lib/compiler/elements/topic.element.js +1 -1
  67. package/lib/compiler/error.d.ts +1 -5
  68. package/lib/compiler/error.js +3 -15
  69. package/lib/compiler/helpers/dump_helpers.d.ts +1 -1
  70. package/lib/compiler/helpers/dump_helpers.js +1 -1
  71. package/lib/compiler/index.d.ts +1 -3
  72. package/lib/compiler/index.js +15 -7
  73. package/lib/compiler/module.js +12 -12
  74. package/lib/compiler/progressive.d.ts +3 -4
  75. package/lib/compiler/progressive.js +3 -4
  76. package/lib/compiler/stages/2_treeshake_stage.js +4 -0
  77. package/lib/compiler/stages/3_extract_ts_stage.js +7 -7
  78. package/lib/compiler/stages/4_build_schemas_stage.js +3 -16
  79. package/lib/compiler/stages/6_build_elements_stage.js +1 -1
  80. package/lib/compiler/stages/7_dump_stage.js +35 -10
  81. package/lib/compiler/typescript/bridge/extract.js +24 -0
  82. package/lib/compiler/typescript/bridge/inject.js +18 -3
  83. package/lib/compiler/typescript/bridge/organize.d.ts +4 -0
  84. package/lib/compiler/typescript/bridge/organize.js +41 -22
  85. package/lib/compiler/typescript/error.d.ts +2 -83
  86. package/lib/compiler/typescript/error.js +6 -219
  87. package/lib/compiler/typescript/parser.js +3 -3
  88. package/lib/compiler/typescript/source.d.ts +2 -2
  89. package/lib/compiler/typescript/transformers/app_inject.transformer.js +13 -4
  90. package/lib/compiler/typescript/typescript_compiler.d.ts +3 -3
  91. package/lib/compiler/typescript/typescript_compiler.js +2 -2
  92. package/lib/elements/blocks/block.builder.d.ts +7 -4
  93. package/lib/elements/blocks/block.builder.js +24 -13
  94. package/lib/elements/blocks/block.js +2 -2
  95. package/lib/elements/blocks/block.schema.d.ts +12 -9
  96. package/lib/elements/blocks/block.schema.js +2 -2
  97. package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +6 -5
  98. package/lib/elements/blocks/job/internal/machine_job.builder.js +3 -3
  99. package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +11 -10
  100. package/lib/elements/blocks/job/internal/resource_job.builder.js +9 -6
  101. package/lib/elements/blocks/job/internal/resource_job.js +3 -6
  102. package/lib/elements/blocks/job/job.builder.d.ts +5 -5
  103. package/lib/elements/blocks/job/job.builder.js +7 -7
  104. package/lib/elements/blocks/job/job.js +1 -1
  105. package/lib/elements/blocks/job/job.schema.d.ts +5 -5
  106. package/lib/elements/blocks/job/job.schema.js +3 -3
  107. package/lib/elements/blocks/machine/machine.builder.d.ts +2 -2
  108. package/lib/elements/blocks/machine/machine.builder.js +12 -9
  109. package/lib/elements/blocks/machine/machine.js +7 -7
  110. package/lib/elements/blocks/machine/machine.schema.d.ts +23 -23
  111. package/lib/elements/blocks/machine/machine.schema.js +9 -9
  112. package/lib/elements/blocks/machine/machine_state.builder.d.ts +1 -0
  113. package/lib/elements/blocks/machine/machine_state.builder.js +31 -29
  114. package/lib/elements/blocks/machine/machine_transition.builder.d.ts +2 -2
  115. package/lib/elements/blocks/machine/machine_transition.builder.js +8 -8
  116. package/lib/elements/blocks/queue/queue.builder.d.ts +3 -3
  117. package/lib/elements/blocks/queue/queue.builder.js +3 -3
  118. package/lib/elements/blocks/queue/queue.schema.d.ts +6 -6
  119. package/lib/elements/blocks/queue/queue.schema.js +3 -3
  120. package/lib/elements/blocks/resource/resource.builder.d.ts +2 -2
  121. package/lib/elements/blocks/resource/resource.builder.js +37 -40
  122. package/lib/elements/blocks/resource/resource.d.ts +2 -2
  123. package/lib/elements/blocks/resource/resource.js +10 -18
  124. package/lib/elements/blocks/resource/resource.schema.d.ts +15 -15
  125. package/lib/elements/blocks/resource/resource.schema.js +8 -8
  126. package/lib/elements/blocks/topic/topic.builder.d.ts +2 -2
  127. package/lib/elements/blocks/topic/topic.builder.js +4 -4
  128. package/lib/elements/blocks/topic/topic.d.ts +2 -2
  129. package/lib/elements/blocks/topic/topic.js +7 -7
  130. package/lib/elements/blocks/topic/topic.schema.d.ts +6 -6
  131. package/lib/elements/blocks/topic/topic.schema.js +3 -3
  132. package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +1 -1
  133. package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +2 -2
  134. package/lib/elements/edge/controller/adapters/controller_adapter.js +2 -2
  135. package/lib/elements/edge/controller/controller.builder.d.ts +14 -13
  136. package/lib/elements/edge/controller/controller.builder.js +52 -42
  137. package/lib/elements/edge/controller/controller.d.ts +3 -3
  138. package/lib/elements/edge/controller/controller.js +12 -12
  139. package/lib/elements/edge/controller/controller.schema.d.ts +17 -16
  140. package/lib/elements/edge/controller/controller.schema.js +11 -11
  141. package/lib/elements/edge/externals/externals.builder.d.ts +8 -13
  142. package/lib/elements/edge/externals/externals.builder.js +43 -11
  143. package/lib/elements/edge/externals/externals.schema.d.ts +8 -7
  144. package/lib/elements/edge/externals/externals.schema.js +5 -3
  145. package/lib/elements/entities/bucket/adapters/browserdb.bucket_adapter.d.ts +45 -0
  146. package/lib/elements/entities/bucket/adapters/browserdb.bucket_adapter.js +164 -0
  147. package/lib/elements/entities/bucket/adapters/browserdb.service.d.ts +30 -0
  148. package/lib/elements/entities/bucket/adapters/browserdb.service.js +97 -0
  149. package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +6 -1
  150. package/lib/elements/entities/bucket/adapters/bucket_adapter.js +7 -6
  151. package/lib/elements/entities/bucket/adapters/json.bucket_adapter.d.ts +1 -1
  152. package/lib/elements/entities/bucket/adapters/json.bucket_adapter.js +1 -0
  153. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +1 -0
  154. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +14 -13
  155. package/lib/elements/entities/bucket/adapters/memory.nql.js +41 -35
  156. package/lib/elements/entities/bucket/bucket.builder.d.ts +6 -8
  157. package/lib/elements/entities/bucket/bucket.builder.js +19 -34
  158. package/lib/elements/entities/bucket/bucket.d.ts +2 -2
  159. package/lib/elements/entities/bucket/bucket.infer.d.ts +5 -5
  160. package/lib/elements/entities/bucket/bucket.js +24 -22
  161. package/lib/elements/entities/bucket/bucket.schema.d.ts +3 -3
  162. package/lib/elements/entities/bucket/bucket.schema.js +2 -2
  163. package/lib/elements/entities/bucket/cache/bucket_cache.js +14 -2
  164. package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +3 -3
  165. package/lib/elements/entities/bucket/graph/bucket_graph.js +102 -30
  166. package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +3 -3
  167. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +2 -2
  168. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +5 -3
  169. package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +2 -1
  170. package/lib/elements/entities/bucket/model/bucket_model.builder.js +2 -2
  171. package/lib/elements/entities/bucket/model/bucket_model.convert.js +3 -6
  172. package/lib/elements/entities/bucket/model/bucket_model.d.ts +13 -0
  173. package/lib/elements/entities/bucket/model/bucket_model.js +93 -0
  174. package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +4 -8
  175. package/lib/elements/entities/bucket/model/bucket_model.schema.js +0 -68
  176. package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +12 -4
  177. package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +30 -33
  178. package/lib/elements/entities/bucket/query/nql.schema.d.ts +1 -1
  179. package/lib/elements/entities/bucket/query/nql_compiler.d.ts +8 -4
  180. package/lib/elements/entities/bucket/query/nql_compiler.js +44 -38
  181. package/lib/elements/entities/bucket/query/nql_engine.d.ts +1 -1
  182. package/lib/elements/entities/bucket/query/nql_engine.js +5 -2
  183. package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +2 -2
  184. package/lib/elements/entities/bucket/view/bucket_view.js +113 -81
  185. package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +9 -8
  186. package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -10
  187. package/lib/elements/entities/constants/constants.builder.d.ts +3 -3
  188. package/lib/elements/entities/constants/constants.builder.js +8 -8
  189. package/lib/elements/entities/constants/constants.schema.d.ts +8 -3
  190. package/lib/elements/entities/constants/constants.schema.js +7 -2
  191. package/lib/elements/entities/message/message.infer.d.ts +1 -5
  192. package/lib/elements/entities/message/message.js +2 -7
  193. package/lib/elements/entities/message/message.schema.js +1 -1
  194. package/lib/elements/entities/message/template/message_template.schema.d.ts +7 -5
  195. package/lib/elements/entities/message/template/message_template_field.builder.d.ts +18 -3
  196. package/lib/elements/entities/message/template/message_template_field.builder.js +49 -30
  197. package/lib/elements/entities/message/template/message_template_parser.js +2 -2
  198. package/lib/engine/{apps → app}/app.config.d.ts +11 -5
  199. package/lib/engine/{apps → app}/app.config.js +2 -2
  200. package/lib/engine/{apps → app}/app.d.ts +3 -2
  201. package/lib/engine/{apps → app}/app.js +3 -1
  202. package/lib/engine/{apps/distributed → app}/inc/inc.client.js +1 -1
  203. package/lib/engine/{apps/distributed → app}/inc/inc.server.js +3 -3
  204. package/lib/engine/{apps/distributed → app}/inc/sandbox.js +1 -1
  205. package/lib/engine/{apps → app}/inline.app.d.ts +2 -12
  206. package/lib/engine/{apps → app}/inline.app.js +37 -34
  207. package/lib/engine/auth/authn.d.ts +10 -12
  208. package/lib/engine/auth/zero.authn_provider.d.ts +3 -4
  209. package/lib/engine/auth/zero.authn_provider.js +0 -1
  210. package/lib/engine/builder.d.ts +28 -0
  211. package/lib/engine/builder.js +99 -0
  212. package/lib/engine/cli/cli.js +3 -2
  213. package/lib/engine/cli/ui.js +1 -0
  214. package/lib/engine/daemon.d.ts +28 -25
  215. package/lib/engine/daemon.js +37 -8
  216. package/lib/engine/data/error.d.ts +37 -3
  217. package/lib/engine/data/error.js +58 -16
  218. package/lib/engine/data/file.d.ts +1 -0
  219. package/lib/engine/data/file.js +4 -0
  220. package/lib/engine/dependency.d.ts +53 -81
  221. package/lib/engine/dependency.js +246 -120
  222. package/lib/engine/module.d.ts +18 -48
  223. package/lib/engine/module.js +78 -158
  224. package/lib/engine/space.d.ts +2 -2
  225. package/lib/engine/space.js +6 -6
  226. package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +7 -4
  227. package/lib/engine/transaction/nodes/bucket.trx_node.js +66 -43
  228. package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +10 -4
  229. package/lib/engine/transaction/nodes/bucket_query.trx_node.js +56 -45
  230. package/lib/engine/transaction/nodes/external.trx_node.d.ts +15 -0
  231. package/lib/engine/transaction/nodes/external.trx_node.js +53 -0
  232. package/lib/engine/transaction/nodes/job.trx_node.d.ts +7 -3
  233. package/lib/engine/transaction/nodes/job.trx_node.js +49 -29
  234. package/lib/engine/transaction/nodes/machine.trx_node.js +6 -6
  235. package/lib/engine/transaction/nodes/queue.trx_node.js +3 -3
  236. package/lib/engine/transaction/nodes/resource.trx_node.d.ts +7 -4
  237. package/lib/engine/transaction/nodes/resource.trx_node.js +68 -51
  238. package/lib/engine/transaction/nodes/topic.trx_node.js +9 -9
  239. package/lib/engine/transaction/trx.d.ts +15 -12
  240. package/lib/engine/transaction/trx.js +19 -3
  241. package/lib/engine/transaction/trx_engine.config.d.ts +4 -4
  242. package/lib/engine/transaction/trx_engine.d.ts +25 -7
  243. package/lib/engine/transaction/trx_engine.js +67 -16
  244. package/lib/engine/transaction/trx_node.d.ts +25 -21
  245. package/lib/engine/transaction/trx_node.js +99 -57
  246. package/lib/engine/tree.d.ts +4 -16
  247. package/lib/engine/tree.js +87 -57
  248. package/lib/{compiler → engine}/treeshake.d.ts +32 -32
  249. package/lib/{compiler → engine}/treeshake.js +272 -242
  250. package/lib/engine/util/console.js +3 -0
  251. package/lib/engine/util/crypto.d.ts +4 -3
  252. package/lib/engine/util/crypto.js +15 -5
  253. package/lib/engine/util/hash.js +5 -0
  254. package/lib/engine/util/log.d.ts +6 -8
  255. package/lib/engine/util/log.js +1 -1
  256. package/lib/engine/util/name_helpers.d.ts +37 -0
  257. package/lib/{compiler/helpers → engine/util}/name_helpers.js +33 -0
  258. package/lib/engine/util/parse.d.ts +4 -3
  259. package/lib/engine/util/parse.js +13 -28
  260. package/lib/engine/util/path.d.ts +1 -0
  261. package/lib/engine/util/path.js +14 -0
  262. package/lib/engine/util/random.d.ts +4 -0
  263. package/lib/engine/util/random.js +31 -0
  264. package/lib/engine/util/type.d.ts +8 -0
  265. package/lib/schema.d.ts +1 -1
  266. package/package.json +4 -1
  267. package/tools/joaquin/bucket.js +1 -1
  268. package/tools/joaquin/job.js +1 -1
  269. package/tools/joaquin/message.js +1 -1
  270. package/tools/joaquin/mock.js +2 -1
  271. package/tsconfig.build.tsbuildinfo +1 -1
  272. package/lib/compiler/apps/distributed/stages/1_mkdir_stage.d.ts +0 -15
  273. package/lib/compiler/apps/distributed/stages/2_build_typescript_stage.d.ts +0 -15
  274. package/lib/compiler/apps/distributed/stages/3_copy_types_stage.d.ts +0 -15
  275. package/lib/compiler/apps/distributed/stages/4_dump_modules_stage.d.ts +0 -16
  276. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +0 -15
  277. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +0 -15
  278. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +0 -15
  279. package/lib/compiler/apps/monolyth/stages/6_dump_cli_stage.d.ts +0 -15
  280. package/lib/compiler/helpers/name_helpers.d.ts +0 -20
  281. package/lib/engine/apps/distributed/distributed.app.config.d.ts +0 -44
  282. package/lib/engine/apps/distributed/elements/distributed_job.d.ts +0 -7
  283. package/lib/engine/apps/distributed/elements/distributed_job.js +0 -11
  284. /package/lib/{compiler/apps → bundler}/distributed/stages/5_copy_static_stage.d.ts +0 -0
  285. /package/lib/{compiler/apps → bundler}/distributed/stages/6_dump_cli_stage.d.ts +0 -0
  286. /package/lib/{compiler/apps → bundler}/distributed/stages/7_dump_package_json_stage.d.ts +0 -0
  287. /package/lib/engine/{apps/distributed → app}/inc/inc.client.d.ts +0 -0
  288. /package/lib/engine/{apps/distributed → app}/inc/inc.server.d.ts +0 -0
  289. /package/lib/engine/{apps/distributed → app}/inc/sandbox.d.ts +0 -0
  290. /package/lib/engine/{apps → app}/service.d.ts +0 -0
  291. /package/lib/engine/{apps → app}/service.js +0 -0
@@ -12,21 +12,20 @@ import { Resource } from "../elements/blocks/resource/resource";
12
12
  import { Queue } from "../elements/blocks/queue/queue";
13
13
  import { Controller } from "../elements/edge/controller/controller";
14
14
  import { AnyBucket, Bucket } from "../elements/entities/bucket/bucket";
15
- import { $Constants } from "../elements/entities/constants/constants.schema";
15
+ import { $ConstantEnum, $ConstantValue, $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
18
  import { AnyExternalsBuilder } from "../elements/edge/externals/externals.builder";
19
19
  import { $Externals } from "../elements/edge/externals/externals.schema";
20
- import { $Dependency, ResolvedBuilderNode } from './dependency';
20
+ import { Tag } from './dependency';
21
21
  import { $Bucket } from "../elements/entities/bucket/bucket.schema";
22
22
  import { $Resource } from "../elements/blocks/resource/resource.schema";
23
23
  import { $Machine } from "../elements/blocks/machine/machine.schema";
24
24
  import { $Controller } from "../elements/edge/controller/controller.schema";
25
25
  import { $Job } from "../elements/blocks/job/job.schema";
26
- import { ModuleTree } from './tree';
27
26
  import { AnyResourceJobBuilder } from "../elements/blocks/job/internal/resource_job.builder";
28
- import { AnyApp } from './apps/app';
29
- import { AnyService } from './apps/service';
27
+ import { AnyApp } from './app/app';
28
+ import { AnyService } from './app/service';
30
29
  import { AnyMachineJobBuilder } from "../elements/blocks/job/internal/machine_job.builder";
31
30
  import { AnyQueueBuilder } from "../elements/blocks/queue/queue.builder";
32
31
  import { $Queue } from "../elements/blocks/queue/queue.schema";
@@ -36,7 +35,7 @@ import { AnyTopicBuilder } from "../elements/blocks/topic/topic.builder";
36
35
  import { $Topic } from "../elements/blocks/topic/topic.schema";
37
36
  import { Topic } from "../elements/blocks/topic/topic";
38
37
  export type AnyBuilder = AnyExternalsBuilder | ConstantsBuilder | AnyMessageBuilder | AnyBucketBuilder | AnyJobBuilder | AnyResourceJobBuilder | AnyMachineJobBuilder | AnyResourceBuilder | AnyMachineBuilder | AnyControllerBuilder | AnyQueueBuilder | AnyTopicBuilder;
39
- export type AnyElementSchema = $Externals | $Constants | $Message | $Bucket | $Job | $Resource | $Machine | $Controller | $Queue | $Topic;
38
+ export type AnyElementSchema = $Constants | $ConstantEnum | $ConstantValue | $Externals | $Message | $Bucket | $Job | $Resource | $Machine | $Controller | $Queue | $Topic;
40
39
  export type AnyInlineElementSchema = $Message | $Job;
41
40
  export type VirtualModuleDef = {
42
41
  name: string;
@@ -45,9 +44,9 @@ export type VirtualModuleDef = {
45
44
  machines?: $Machine[];
46
45
  };
47
46
  externals?: {
48
- messages?: $Dependency[];
49
- buckets?: $Dependency[];
50
- jobs?: $Dependency[];
47
+ messages?: Tag[];
48
+ buckets?: Tag[];
49
+ jobs?: Tag[];
51
50
  };
52
51
  };
53
52
  /**
@@ -131,22 +130,6 @@ export declare class Module<S extends $Space, $ extends $Module> {
131
130
  topics?: $Topic[];
132
131
  controllers?: $Controller[];
133
132
  }): this;
134
- /**
135
- * Include references for external elements on the module.
136
- * This allows a module to use elements from other modules directly.
137
- * This implementation also includes transitive dependencies.
138
- *
139
- * @param daemon A `Daemon` instance
140
- * @param dependencies: A dictionary of dependencies by element type
141
- * @returns The `Module`, for call-chaining
142
- */
143
- injectDependencies(modules: Record<string, AnyModule>, dependencies: {
144
- buckets?: $Dependency[];
145
- jobs?: $Dependency[];
146
- messages?: $Dependency[];
147
- machines?: $Dependency[];
148
- enums?: $Dependency[];
149
- }): this;
150
133
  /**
151
134
  * Include references for external elements on the module.
152
135
  *
@@ -165,29 +148,6 @@ export declare class Module<S extends $Space, $ extends $Module> {
165
148
  * @returns A list of file paths
166
149
  */
167
150
  scanFiles(dirpath: string, exclude?: string[]): string[];
168
- /**
169
- * Build a resolved builder node, then merge the
170
- * resulting schema(s) to the module.
171
- * This also merges the resulting inline nodes of building a node.
172
- *
173
- * @param node A resolved builder node
174
- * @param tree A module tree
175
- */
176
- buildNode(node: ResolvedBuilderNode, tree: ModuleTree): Promise<void>;
177
- /**
178
- * Merge inline message schemas into the module.
179
- *
180
- * @param node A resolved builder node
181
- * @param schemas A dictionary of Message schemas by name
182
- */
183
- private mergeInlineMessages;
184
- /**
185
- * Merge inline job schemas into the module.
186
- *
187
- * @param node A resolved builder node
188
- * @param schemas A dictionary of job schemas by name
189
- */
190
- private mergeInlineJobs;
191
151
  /**
192
152
  * Create elements from schemas, and the NQL engine for this module.
193
153
  *
@@ -213,5 +173,15 @@ export declare class Module<S extends $Space, $ extends $Module> {
213
173
  * @returns A `Module` instance
214
174
  */
215
175
  static virtual(daemon: AnyDaemon, def: VirtualModuleDef): Promise<Module<$Space, $Module>>;
176
+ /**
177
+ * Include references for external elements on the module.
178
+ * This is used to create virtual modules and inline apps.
179
+ * This implementation also includes transitive dependencies.
180
+ *
181
+ * @param daemon A `Daemon` instance
182
+ * @param dependencies: A dictionary of dependencies by element type
183
+ * @returns The `Module`, for call-chaining
184
+ */
185
+ private injectDependencies;
216
186
  }
217
187
  export type AnyModule = Module<any, any>;
@@ -38,29 +38,17 @@ const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const log_1 = require("./util/log");
40
40
  const machine_1 = require("../elements/blocks/machine/machine");
41
- const message_builder_1 = require("../elements/entities/message/message.builder");
42
- const bucket_builder_1 = require("../elements/entities/bucket/bucket.builder");
43
- const resource_builder_1 = require("../elements/blocks/resource/resource.builder");
44
- const machine_builder_1 = require("../elements/blocks/machine/machine.builder");
45
41
  const job_1 = require("../elements/blocks/job/job");
46
- const job_builder_1 = require("../elements/blocks/job/job.builder");
47
42
  const message_parser_1 = require("../elements/entities/message/message_parser");
48
43
  const resource_1 = require("../elements/blocks/resource/resource");
49
44
  const queue_1 = require("../elements/blocks/queue/queue");
50
45
  const controller_1 = require("../elements/edge/controller/controller");
51
46
  const bucket_1 = require("../elements/entities/bucket/bucket");
52
47
  const constants_schema_1 = require("../elements/entities/constants/constants.schema");
53
- const constants_builder_1 = require("../elements/entities/constants/constants.builder");
54
- const controller_builder_1 = require("../elements/edge/controller/controller.builder");
55
- const externals_builder_1 = require("../elements/edge/externals/externals.builder");
56
- const error_1 = require("./data/error");
57
48
  const externals_schema_1 = require("../elements/edge/externals/externals.schema");
58
- const app_1 = require("./apps/app");
59
- const queue_builder_1 = require("../elements/blocks/queue/queue.builder");
60
49
  const nql_engine_1 = require("../elements/entities/bucket/query/nql_engine");
61
50
  const daemon_1 = require("./daemon");
62
51
  const trash_1 = require("./data/trash");
63
- const topic_builder_1 = require("../elements/blocks/topic/topic.builder");
64
52
  const topic_1 = require("../elements/blocks/topic/topic");
65
53
  /**
66
54
  * A `Module` is an isolated named collection of _Elements_.
@@ -169,68 +157,6 @@ class Module {
169
157
  });
170
158
  return this;
171
159
  }
172
- /**
173
- * Include references for external elements on the module.
174
- * This allows a module to use elements from other modules directly.
175
- * This implementation also includes transitive dependencies.
176
- *
177
- * @param daemon A `Daemon` instance
178
- * @param dependencies: A dictionary of dependencies by element type
179
- * @returns The `Module`, for call-chaining
180
- */
181
- injectDependencies(modules, dependencies) {
182
- dependencies.buckets?.forEach(dep => {
183
- const bucketModule = modules[dep.module];
184
- const bucket = bucketModule.buckets[dep.name];
185
- if (!bucket) {
186
- throw new Error(`Internal Error: unable to find bucket '${dep.tag}' during injection to module '${this.name}'`);
187
- }
188
- this.buckets[dep.refName] = bucket;
189
- });
190
- dependencies.jobs?.forEach(dep => {
191
- const jobModule = modules[dep.module];
192
- const job = jobModule.jobs[dep.name];
193
- if (!job) {
194
- throw new Error(`Internal Error: unable to find job '${dep.tag}' during injection to module '${this.name}'`);
195
- }
196
- this.jobs[dep.refName] = job;
197
- const schema = job.schema;
198
- this.injectDependencies(modules, {
199
- messages: schema.input
200
- });
201
- });
202
- dependencies.messages?.forEach(dep => {
203
- const messageModule = modules[dep.module];
204
- const message = messageModule.messages[dep.name];
205
- if (!message) {
206
- throw new Error(`Internal Error: unable to find message '${dep.tag}' during injection to module '${this.name}'`);
207
- }
208
- this.messages[dep.refName] = message;
209
- });
210
- dependencies.machines?.forEach(dep => {
211
- const machineModule = modules[dep.module];
212
- const machine = machineModule.machines[dep.name];
213
- if (!machine) {
214
- throw new Error(`Internal Error: unable to find machine '${dep.tag}' during injection to module '${this.name}'`);
215
- }
216
- this.machines[dep.refName] = machine;
217
- const schema = machine.schema;
218
- this.injectDependencies(modules, {
219
- messages: schema.input,
220
- buckets: schema.buckets,
221
- jobs: schema.jobs
222
- });
223
- });
224
- dependencies.enums?.forEach(dep => {
225
- const enumModule = modules[dep.module];
226
- const _enum = enumModule.schema.constants.enums[dep.name];
227
- if (!_enum) {
228
- throw new Error(`Internal Error: unable to find enum '${dep.refName}' during injection to module '${this.name}'`);
229
- }
230
- this.schema.constants.enums[`${dep.refName}`] = _enum;
231
- });
232
- return this;
233
- }
234
160
  /**
235
161
  * Include references for external elements on the module.
236
162
  *
@@ -239,8 +165,8 @@ class Module {
239
165
  * @returns The `Module`, for call-chaining
240
166
  */
241
167
  injectRunners(elements) {
242
- Object.entries(elements.jobs || {}).forEach(([refName, job]) => {
243
- this.jobs[refName] = job;
168
+ Object.entries(elements.jobs || {}).forEach(([shortTag, job]) => {
169
+ this.jobs[shortTag] = job;
244
170
  });
245
171
  return this;
246
172
  }
@@ -276,87 +202,6 @@ class Module {
276
202
  });
277
203
  return files;
278
204
  }
279
- // Build Nodes
280
- /**
281
- * Build a resolved builder node, then merge the
282
- * resulting schema(s) to the module.
283
- * This also merges the resulting inline nodes of building a node.
284
- *
285
- * @param node A resolved builder node
286
- * @param tree A module tree
287
- */
288
- async buildNode(node, tree) {
289
- log_1.Log.trace('compiler', 'module', `Building ${this.name}::${(0, log_1.scopeTag)(node.builder.$b, node.builder.name)}`);
290
- if (node.builder.$b === 'constants') {
291
- this.schema.constants = constants_builder_1.ConstantsBuilder.build(node);
292
- }
293
- else if (node.builder.$b === 'externals') {
294
- this.schema.externals = externals_builder_1.ExternalsBuilder.build(node);
295
- }
296
- else if (node.builder.$b === 'bucket') {
297
- this.schema.buckets[node.name] = bucket_builder_1.BucketBuilder.build(node, tree);
298
- }
299
- else if (node.builder.$b === 'message') {
300
- this.schema.messages[node.name] = message_builder_1.MessageBuilder.build(node, tree, this.schema);
301
- }
302
- else if (node.builder.$b === 'job') {
303
- const { schema, inlineMessages } = job_builder_1.JobBuilder.build(node, tree, this.schema);
304
- this.schema.jobs[node.name] = schema;
305
- this.mergeInlineMessages(inlineMessages);
306
- }
307
- else if (node.builder.$b === 'resource') {
308
- const { schema, inlineMessages, inlineJobs } = resource_builder_1.ResourceBuilder.build(node, tree, this.schema);
309
- this.schema.resources[schema.name] = schema;
310
- this.mergeInlineMessages(inlineMessages);
311
- this.mergeInlineJobs(inlineJobs);
312
- }
313
- else if (node.builder.$b === 'machine') {
314
- const { schema, inlineMessages, inlineJobs } = machine_builder_1.MachineBuilder.build(node, tree, this.schema);
315
- this.schema.machines[schema.name] = schema;
316
- this.mergeInlineMessages(inlineMessages);
317
- this.mergeInlineJobs(inlineJobs);
318
- }
319
- else if (node.builder.$b === 'controller') {
320
- this.schema.controllers[node.name] = controller_builder_1.ControllerBuilder.build(node);
321
- }
322
- else if (node.builder.$b === 'queue') {
323
- const { schema, inlineMessages } = queue_builder_1.QueueBuilder.build(node, tree, this.schema);
324
- this.schema.queues[node.name] = schema;
325
- this.mergeInlineMessages(inlineMessages);
326
- }
327
- else if (node.builder.$b === 'topic') {
328
- const { schema, inlineMessages } = topic_builder_1.TopicBuilder.build(node, tree, this.schema);
329
- this.schema.topics[node.name] = schema;
330
- this.mergeInlineMessages(inlineMessages);
331
- }
332
- else {
333
- throw error_1.NesoiError.Module.UnknownBuilderType(this, node.filepath.toString(), node.name, node.builder.$b);
334
- }
335
- }
336
- /**
337
- * Merge inline message schemas into the module.
338
- *
339
- * @param node A resolved builder node
340
- * @param schemas A dictionary of Message schemas by name
341
- */
342
- mergeInlineMessages(schemas) {
343
- for (const name in schemas) {
344
- const $msg = schemas[name];
345
- this.schema.messages[name] = $msg;
346
- }
347
- }
348
- /**
349
- * Merge inline job schemas into the module.
350
- *
351
- * @param node A resolved builder node
352
- * @param schemas A dictionary of job schemas by name
353
- */
354
- mergeInlineJobs(schemas) {
355
- for (const name in schemas) {
356
- const $job = schemas[name];
357
- this.schema.jobs[name] = $job;
358
- }
359
- }
360
205
  // Start
361
206
  /**
362
207
  * Create elements from schemas, and the NQL engine for this module.
@@ -365,7 +210,12 @@ class Module {
365
210
  * @param services A dictionary of services by name
366
211
  */
367
212
  start(app, services) {
368
- const info = app_1.App.getInfo(app);
213
+ // .getInfo() avoided due to circular dependency
214
+ const info = {
215
+ spaceModules: app._spaceModuleNames,
216
+ config: app._config,
217
+ nesoiNpmPkg: app._nesoiNpmPkg,
218
+ };
369
219
  const config = info.config;
370
220
  Object.entries(this.schema.buckets).forEach(([name, schema]) => {
371
221
  const bucketConfig = config.modules?.[this.name]?.buckets?.[name];
@@ -473,5 +323,75 @@ class Module {
473
323
  }
474
324
  return virtualModule;
475
325
  }
326
+ /**
327
+ * Include references for external elements on the module.
328
+ * This is used to create virtual modules and inline apps.
329
+ * This implementation also includes transitive dependencies.
330
+ *
331
+ * @param daemon A `Daemon` instance
332
+ * @param dependencies: A dictionary of dependencies by element type
333
+ * @returns The `Module`, for call-chaining
334
+ */
335
+ injectDependencies(modules, externals) {
336
+ externals.buckets?.forEach(tag => {
337
+ const bucketModule = modules[tag.module];
338
+ const bucket = bucketModule.buckets[tag.name];
339
+ if (!bucket) {
340
+ throw new Error(`Internal Error: unable to find '${tag.full}' during injection to module '${this.name}'`);
341
+ }
342
+ this.buckets[tag.short] = bucket;
343
+ });
344
+ externals.jobs?.forEach(tag => {
345
+ const jobModule = modules[tag.module];
346
+ const job = jobModule.jobs[tag.name];
347
+ if (!job) {
348
+ throw new Error(`Internal Error: unable to find '${tag.full}' during injection to module '${this.name}'`);
349
+ }
350
+ this.jobs[tag.short] = job;
351
+ const schema = job.schema;
352
+ this.injectDependencies(modules, {
353
+ messages: schema.input
354
+ });
355
+ });
356
+ externals.messages?.forEach(tag => {
357
+ const messageModule = modules[tag.module];
358
+ const message = messageModule.messages[tag.name];
359
+ if (!message) {
360
+ throw new Error(`Internal Error: unable to find '${tag.full}' during injection to module '${this.name}'`);
361
+ }
362
+ this.messages[tag.short] = message;
363
+ });
364
+ externals.machines?.forEach(tag => {
365
+ const machineModule = modules[tag.module];
366
+ const machine = machineModule.machines[tag.name];
367
+ if (!machine) {
368
+ throw new Error(`Internal Error: unable to find '${tag.full}' during injection to module '${this.name}'`);
369
+ }
370
+ this.machines[tag.short] = machine;
371
+ const schema = machine.schema;
372
+ this.injectDependencies(modules, {
373
+ messages: schema.input,
374
+ buckets: schema.buckets,
375
+ jobs: schema.jobs
376
+ });
377
+ });
378
+ externals.enums?.forEach(tag => {
379
+ const enumModule = modules[tag.module];
380
+ const _enum = enumModule.schema.constants.enums[tag.name];
381
+ if (!_enum) {
382
+ throw new Error(`Internal Error: unable to find enum '${tag.short}' during injection to module '${this.name}'`);
383
+ }
384
+ this.schema.constants.enums[`${tag.short}`] = _enum;
385
+ });
386
+ externals.values?.forEach(tag => {
387
+ const valueModule = modules[tag.module];
388
+ const _value = valueModule.schema.constants.values[tag.name];
389
+ if (!_value) {
390
+ throw new Error(`Internal Error: unable to find value '${tag.short}' during injection to module '${this.name}'`);
391
+ }
392
+ this.schema.constants.values[`${tag.short}`] = _value;
393
+ });
394
+ return this;
395
+ }
476
396
  }
477
397
  exports.Module = Module;
@@ -41,13 +41,13 @@ export declare class Space<$ extends $Space> {
41
41
  name(name: string): this;
42
42
  /**
43
43
  * Set one authentication model.
44
- * This model MUST be yielded by the `AuthnProvider` assigned
44
+ * This model MUST be yielded by the `AuthProvider` assigned
45
45
  * to the same name.
46
46
  * > This method MUST be called on the root `nesoi.ts` file.
47
47
  * @param name A name for the authentication
48
48
  * @returns The current Space, for call-chaining
49
49
  */
50
- authn<Name extends string, Def extends BucketModelDef<$, never>>(name: Name, $: Def): this;
50
+ auth<Name extends string, Def extends BucketModelDef<$, never>>(name: Name, $: Def): this;
51
51
  /**
52
52
  * > Elements / Entities / Constants
53
53
  *
@@ -47,9 +47,9 @@ const controller_builder_1 = require("../elements/edge/controller/controller.bui
47
47
  const bucket_builder_1 = require("../elements/entities/bucket/bucket.builder");
48
48
  const bucket_model_builder_1 = require("../elements/entities/bucket/model/bucket_model.builder");
49
49
  const bucket_model_field_builder_1 = require("../elements/entities/bucket/model/bucket_model_field.builder");
50
- const error_1 = require("../compiler/error");
51
50
  const queue_builder_1 = require("../elements/blocks/queue/queue.builder");
52
51
  const topic_builder_1 = require("../elements/blocks/topic/topic.builder");
52
+ const error_1 = require("./data/error");
53
53
  /**
54
54
  * When using Nesoi as a framework (not a library), the `Space`
55
55
  * is a collection of all modules.
@@ -86,17 +86,17 @@ class Space {
86
86
  }
87
87
  /**
88
88
  * Set one authentication model.
89
- * This model MUST be yielded by the `AuthnProvider` assigned
89
+ * This model MUST be yielded by the `AuthProvider` assigned
90
90
  * to the same name.
91
91
  * > This method MUST be called on the root `nesoi.ts` file.
92
92
  * @param name A name for the authentication
93
93
  * @returns The current Space, for call-chaining
94
94
  */
95
- authn(name, $) {
95
+ auth(name, $) {
96
96
  const fieldBuilder = new bucket_model_field_builder_1.BucketModelFieldFactory('*');
97
97
  const fields = $(fieldBuilder);
98
98
  const builder = new bucket_model_builder_1.BucketModelBuilder('*').fields(fields);
99
- this._authn[name] = bucket_model_builder_1.BucketModelBuilder.build(builder);
99
+ this._authn[name] = bucket_model_builder_1.BucketModelBuilder.build(builder, {});
100
100
  return this;
101
101
  }
102
102
  /*
@@ -303,11 +303,11 @@ class Space {
303
303
  */
304
304
  static scan(space, buildFn) {
305
305
  if (!fs.existsSync(space.dirpath)) {
306
- throw error_1.CompilerError.DirectoryDoesntExists(space.dirpath);
306
+ throw error_1.NesoiError.Space.DirectoryDoesntExists(space.dirpath);
307
307
  }
308
308
  const modulesPath = this.path(space, './modules');
309
309
  if (!fs.existsSync(modulesPath)) {
310
- throw error_1.CompilerError.NoModulesFolder();
310
+ throw error_1.NesoiError.Space.NoModulesFolder();
311
311
  }
312
312
  const perform = (dirpath, subdir) => {
313
313
  const dirs = fs.readdirSync(dirpath, { withFileTypes: true })
@@ -6,17 +6,20 @@ import { Bucket } from "../../../elements/entities/bucket/bucket";
6
6
  import { CreateObj, PatchObj, PutObj } from "../../../elements/entities/bucket/bucket.types";
7
7
  import { NQL_Query } from "../../../elements/entities/bucket/query/nql.schema";
8
8
  import { NesoiFile } from "../../data/file";
9
+ import { Tag } from "../../dependency";
9
10
  /**
10
11
  * @category Engine
11
12
  * @subcategory Transaction
12
13
  */
13
14
  export declare class BucketTrxNode<M extends $Module, $ extends $Bucket> {
14
- private parentTrx;
15
- private bucket;
15
+ private trx;
16
+ private tag;
16
17
  private enableTenancy;
17
- constructor(parentTrx: TrxNode<any, M, any>, bucket: Bucket<M, $>);
18
+ private external;
19
+ private bucket?;
20
+ constructor(trx: TrxNode<any, M, any>, tag: Tag);
18
21
  get no_tenancy(): this;
19
- wrap(action: string, input: Record<string, any>, fn: (trx: AnyTrxNode) => Promise<any>, fmtTrxOut?: (out: any) => any): Promise<any>;
22
+ wrap(action: string, input: Record<string, any>, fn: (trx: AnyTrxNode, element: Bucket<M, $>) => Promise<any>, fmtTrxOut?: (out: any) => any): Promise<any>;
20
23
  /**
21
24
  * Returns one object by `id`, without pre-formatting,
22
25
  * or `undefined` if the object was not found.