nesoi 3.2.9 → 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 +19 -17
  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 +101 -29
  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
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModuleTree = void 0;
4
4
  const dependency_1 = require("./dependency");
5
- const error_1 = require("../compiler/error");
6
5
  const log_1 = require("./util/log");
7
6
  const string_1 = require("./util/string");
8
- const treeshake_1 = require("../compiler/treeshake");
9
- const progressive_1 = require("../compiler/progressive");
7
+ const treeshake_1 = require("./treeshake");
8
+ const error_1 = require("./data/error");
9
+ /* @nesoi:browser ignore-end */
10
10
  /**
11
11
  * A tree of module elements which allows building in the correct order.
12
12
  *
@@ -29,7 +29,22 @@ class ModuleTree {
29
29
  * - Groups tree into layers which can be built in isolation
30
30
  */
31
31
  async resolve(cache) {
32
- cache ?? (cache = progressive_1.ProgressiveBuild.empty());
32
+ cache ?? (cache = {
33
+ nesoidir: '',
34
+ hash: {
35
+ $: '',
36
+ files: {},
37
+ modules: {},
38
+ space: ''
39
+ },
40
+ files: {},
41
+ modules: {},
42
+ types: {
43
+ space: {},
44
+ modules: {},
45
+ elements: {}
46
+ }
47
+ });
33
48
  const nodesByModule = await this.treeshake(cache);
34
49
  const resolvedNodes = await this.resolveDependencies(nodesByModule);
35
50
  this.layers = this.resolveLayers(resolvedNodes);
@@ -41,7 +56,7 @@ class ModuleTree {
41
56
  * @returns A dictionary of nodes by module name
42
57
  */
43
58
  async treeshake(cache) {
44
- log_1.Log.debug('compiler', 'tree', 'Treeshaking');
59
+ log_1.Log.debug('builder', 'tree', 'Treeshaking');
45
60
  const nodesByModule = {};
46
61
  for (const m in this.modules) {
47
62
  const module = this.modules[m];
@@ -51,79 +66,112 @@ class ModuleTree {
51
66
  return nodesByModule;
52
67
  }
53
68
  /**
54
- * Each element declares it's dependencies as a `$Dependency`.
69
+ * Each element declares it's dependencies as a list of `Dependency`.
55
70
  * In order to assemble the build layers, it's necessary to
56
71
  * resolve them into a graph of `ResolvedBuilderNode`s.
57
72
  * This also resolves the inline nodes, to allow merging the schemas
58
- * of inline nodes on build.
73
+ * of inline nodes on compile.
59
74
  *
60
75
  * @param nodesByModule A dictionary of builder nodes by module name
61
76
  * @returns A dictionary of resolved builder nodes
62
77
  */
63
78
  async resolveDependencies(nodesByModule) {
64
- log_1.Log.debug('compiler', 'tree', 'Resolving dependencies');
79
+ log_1.Log.debug('builder', 'tree', 'Resolving dependencies');
65
80
  const resolved = {};
66
81
  Object.entries(nodesByModule).forEach(([module, nodes]) => {
67
- log_1.Log.debug('compiler', 'tree', `Resolving dependencies of ${(0, log_1.scopeTag)('module', module)}`);
82
+ const externals = nodes.find(node => node.tag.type === 'externals');
83
+ log_1.Log.debug('builder', 'tree', `Resolving dependencies of ${(0, log_1.scopeTag)('module', module)}`);
68
84
  nodes.forEach(node => {
69
- log_1.Log.trace('compiler', 'tree', ` └ ${(0, log_1.scopeTag)(node.type, node.name)}`);
85
+ log_1.Log.trace('builder', 'tree', ` └ ${(0, log_1.scopeTag)(node.tag.type, node.tag.name)}`);
70
86
  const dependencies = node.dependencies.map(dep => {
71
87
  // Find dependency module
72
- const depModuleNodes = nodesByModule[dep.module || module];
88
+ const depModuleNodes = nodesByModule[dep.tag.module];
73
89
  if (!depModuleNodes) {
74
- throw error_1.CompilerError.UnmetModuleDependency(node.name + '.' + node.type, dep.module || module);
90
+ throw error_1.NesoiError.Builder.UnmetModuleDependency({ from: node.tag.full, dep: dep.tag.full });
75
91
  }
76
92
  // Find dependency node
77
- const depNode = depModuleNodes.find(mNode => mNode.tag === dep.tag);
93
+ const depNode = depModuleNodes.find(mNode => dependency_1.Tag.isSameNodeAs(mNode.tag, dep.tag));
78
94
  if (!depNode) {
79
- throw error_1.CompilerError.UnmetDependency(node.tag, dep.tag);
95
+ throw error_1.NesoiError.Builder.UnmetDependency({ from: node.tag.full, dep: dep.tag.full });
96
+ }
97
+ // Check constants nodes
98
+ if (dep.tag.type === 'constants.enum') {
99
+ const enums = depNode.builder.enums;
100
+ if (!Object.keys(enums).some(v => v === dep.tag.name
101
+ || v.startsWith(dep.tag.name + '.'))) {
102
+ throw error_1.NesoiError.Builder.UnmetDependencyEnum({ from: node.tag.full, dep: dep.tag.full });
103
+ }
104
+ }
105
+ else if (dep.tag.type === 'constants.value') {
106
+ const values = depNode.builder._values;
107
+ if (!(dep.tag.name in values)) {
108
+ throw error_1.NesoiError.Builder.UnmetDependencyValue({ from: node.tag.full, dep: dep.tag.full });
109
+ }
110
+ }
111
+ // Check for externals
112
+ if (dep.tag.module !== module) {
113
+ const external = externals
114
+ ? dependency_1.Tag.resolveExternal(dep.tag, externals.builder)
115
+ : undefined;
116
+ if (!external) {
117
+ throw error_1.NesoiError.Builder.NotImportedDependency({ from: node.tag.full, dep: dep.tag.full });
118
+ }
80
119
  }
81
- log_1.Log.trace('compiler', 'tree', ` ~ ${(0, string_1.colored)('OK', 'green')} ${(0, string_1.colored)(dep.module + '::' + dep.type + ':' + dep.name, 'purple')}`);
120
+ log_1.Log.trace('builder', 'tree', ` ~ ${(0, string_1.colored)('OK', 'green')} ${(0, string_1.colored)(dep.tag.full, 'purple')}`);
82
121
  // If dependency node was not resolved yet, create a shared reference
83
122
  // on which the `dependencies` and `inlines` will be populated on future iterations.
84
- if (!(dep.tag in resolved)) {
85
- resolved[dep.tag] = {
123
+ const tag = ['constants.enum', 'constants.value'].includes(dep.tag.type)
124
+ ? new dependency_1.Tag(dep.tag.module, 'constants', '*').full
125
+ : dep.tag.full;
126
+ if (!(tag in resolved)) {
127
+ resolved[tag] = {
86
128
  ...depNode,
87
129
  dependencies: [],
88
130
  inlines: {}
89
131
  };
90
132
  }
91
- return { node: resolved[dep.tag], soft: dep.soft };
133
+ return { node: resolved[tag], dep };
92
134
  });
93
135
  const inlines = {};
94
136
  if (!node.progressive) {
95
137
  if ('_inlineNodes' in node.builder) {
96
138
  const inlineNodes = node.builder._inlineNodes;
97
139
  inlineNodes.forEach((inline) => {
98
- log_1.Log.trace('compiler', 'tree', ` └ ${(0, string_1.colored)('OK', 'green')} ${(0, string_1.colored)(inline.module + '::' + inline.type + ':' + inline.name, 'lightcyan')}`);
140
+ log_1.Log.trace('builder', 'tree', ` └ ${(0, string_1.colored)('OK', 'green')} ${(0, string_1.colored)(inline.tag.full, 'lightcyan')}`);
99
141
  // If inline node was not resolved yet, create a shared reference
100
142
  // on which the `dependencies` and `inlines` will be populated on future iterations.
101
- if (!(inline.tag in resolved)) {
102
- resolved[inline.tag] = {
143
+ const tag = ['constants.enum', 'constants.value'].includes(inline.tag.type)
144
+ ? new dependency_1.Tag(inline.tag.module, 'constants', '*').full
145
+ : inline.tag.full;
146
+ if (!(tag in resolved)) {
147
+ resolved[tag] = {
103
148
  ...inline,
104
149
  dependencies: [],
105
150
  inlines: {}
106
151
  };
107
152
  }
108
- const type = inline.type;
153
+ const type = inline.tag.type;
109
154
  if (!(type in inlines)) {
110
155
  inlines[type] = {
111
- [inline.name]: resolved[inline.tag]
156
+ [inline.tag.name]: resolved[tag]
112
157
  };
113
158
  }
114
- inlines[type][inline.name] = resolved[inline.tag];
159
+ inlines[type][inline.tag.name] = resolved[tag];
115
160
  });
116
161
  }
117
162
  }
118
163
  // If node was already created when resolving a dependendant,
119
164
  // just fill the dependencies and inlines.
120
- if (node.tag in resolved) {
121
- resolved[node.tag].dependencies = dependencies;
122
- resolved[node.tag].inlines = inlines;
165
+ const tag = ['constants.enum', 'constants.value'].includes(node.tag.type)
166
+ ? new dependency_1.Tag(node.tag.module, 'constants', '*').full
167
+ : node.tag.full;
168
+ if (tag in resolved) {
169
+ resolved[tag].dependencies = dependencies;
170
+ resolved[tag].inlines = inlines;
123
171
  }
124
172
  // If not, create the resolved node
125
173
  else {
126
- resolved[node.tag] = {
174
+ resolved[tag] = {
127
175
  ...node,
128
176
  dependencies,
129
177
  inlines
@@ -182,16 +230,16 @@ class ModuleTree {
182
230
  * @returns A list of module tree layers
183
231
  */
184
232
  resolveLayers(nodes) {
185
- log_1.Log.debug('compiler', 'tree', 'Resolving Layers');
233
+ log_1.Log.debug('builder', 'tree', 'Resolving Layers');
186
234
  nodes.forEach(node => {
187
235
  node._dependencies = [...(node.dependencies || [])]
188
- .filter(dep => !dep.soft)
236
+ .filter(dep => dep.dep.build)
189
237
  .map(dep => dep.node);
190
238
  });
191
239
  const layers = [];
192
240
  while (nodes.length) {
193
- log_1.Log.trace('compiler', 'tree', ` └ ${(0, string_1.colored)(`layer.${layers.length}`, 'lightblue')}`);
194
- let layer = [];
241
+ log_1.Log.trace('builder', 'tree', ` └ ${(0, string_1.colored)(`layer.${layers.length}`, 'lightblue')}`);
242
+ const layer = [];
195
243
  const future = [];
196
244
  nodes.forEach(node => {
197
245
  // Node has no dependency, it belongs to the current list
@@ -199,7 +247,7 @@ class ModuleTree {
199
247
  if (node._dependencies.length == 0) {
200
248
  layer.push(node);
201
249
  node.layered = true;
202
- log_1.Log.trace('compiler', 'tree', ` └ ${node.module}::${(0, log_1.scopeTag)(node.type, node.name)}` + (node.root ? (0, string_1.colored)(` @ ${node.root?.tag}`, 'purple') : ''));
250
+ log_1.Log.trace('builder', 'tree', ` └ ${node.tag.module}::${(0, log_1.scopeTag)(node.tag.type, node.tag.name)}` + (node.root ? (0, string_1.colored)(` @ ${node.root?.tag}`, 'purple') : ''));
203
251
  }
204
252
  // Node has dependencies, so it must be on future layers.
205
253
  else {
@@ -215,16 +263,12 @@ class ModuleTree {
215
263
  // are not permitted.
216
264
  if (future.length === nodes.length) {
217
265
  nodes.forEach(node => {
218
- log_1.Log.trace('compiler', 'tree', ` └ ${(0, string_1.colored)('(future)', 'lightred')} ${node.module}::${(0, log_1.scopeTag)(node.type, node.name)}` + (node.root ? (0, string_1.colored)(` @ ${node.root?.tag}`, 'purple') : ''));
219
- log_1.Log.trace('compiler', 'tree', (0, string_1.colored)(` depends on: ${node._dependencies.map(dep => dep.module + '::' + dep.type + ':' + dep.name + (dep.layered ? '(OK)' : '')).join(', ')}`, 'purple'));
266
+ log_1.Log.trace('builder', 'tree', ` └ ${(0, string_1.colored)('(future)', 'lightred')} ${node.tag.module}::${(0, log_1.scopeTag)(node.tag.type, node.tag.name)}` + (node.root ? (0, string_1.colored)(` @ ${node.root?.tag}`, 'purple') : ''));
267
+ log_1.Log.trace('builder', 'tree', (0, string_1.colored)(` depends on: ${node._dependencies.map(dep => dep.tag.full + (dep.layered ? '(OK)' : '')).join(', ')}`, 'purple'));
220
268
  });
221
- throw error_1.CompilerError.CircularDependency();
269
+ throw error_1.NesoiError.Builder.CircularDependency({});
222
270
  }
223
271
  nodes = future;
224
- // Reorder layer so that externals are built first
225
- const externals = layer.filter(node => node.type === 'externals');
226
- const internals = layer.filter(node => node.type !== 'externals');
227
- layer = [...externals, ...internals];
228
272
  layers.push(layer);
229
273
  }
230
274
  layers.forEach(layer => {
@@ -244,26 +288,12 @@ class ModuleTree {
244
288
  async traverse(actionAlias, fn) {
245
289
  for (let i = 0; i < this.layers.length; i++) {
246
290
  const layer = this.layers[i];
247
- log_1.Log.debug('compiler', 'tree', `${actionAlias} ${(0, log_1.scopeTag)('layer', i.toString())}`);
291
+ log_1.Log.debug('builder', 'tree', `${actionAlias} ${(0, log_1.scopeTag)('layer', i.toString())}`);
248
292
  for (const node of layer) {
249
293
  await fn(node);
250
294
  }
251
295
  }
252
296
  }
253
- /**
254
- * Get schema of a dependency-like object.
255
- *
256
- * @param node A dependency-like object
257
- * @return An element schema
258
- */
259
- getSchema(node) {
260
- const mod = this.modules[node.module];
261
- const schema = dependency_1.$Dependency.resolve(mod.schema, node);
262
- if (!schema) {
263
- throw error_1.CompilerError.UnmetDependency('tree', node.name);
264
- }
265
- return schema;
266
- }
267
297
  /**
268
298
  * Return a list of all nodes of all modules on the tree.
269
299
  *
@@ -288,8 +318,8 @@ class ModuleTree {
288
318
  const modules = {};
289
319
  for (const layer of this.layers) {
290
320
  for (const node of layer) {
291
- modules[_a = node.module] ?? (modules[_a] = []);
292
- modules[node.module].push(node);
321
+ modules[_a = node.tag.module] ?? (modules[_a] = []);
322
+ modules[node.tag.module].push(node);
293
323
  }
294
324
  }
295
325
  return modules;
@@ -1,40 +1,12 @@
1
- import { $Dependency, BuilderNode } from "../engine/dependency";
1
+ import { Dependency, BuilderNode } from "./dependency";
2
2
  import { BucketGraphBuilder } from "../elements/entities/bucket/graph/bucket_graph.builder";
3
- import { AnyModule } from "../engine/module";
4
- import { $BucketModelFields } from "../elements/entities/bucket/model/bucket_model.schema";
5
- import { ProgressiveBuildCache } from './progressive';
3
+ import { AnyModule } from "./module";
6
4
  export type TreeshakeConfig = {
7
5
  exclude?: string[];
8
6
  };
7
+ import { ProgressiveBuildCache } from '../compiler/progressive';
8
+ import { BucketModelFieldBuilders } from "../elements/entities/bucket/model/bucket_model_field.builder";
9
9
  export declare class Treeshake {
10
- static externals(node: BuilderNode, depth?: number): void;
11
- static bucket(node: BuilderNode, depth?: number): void;
12
- static bucketModelFields(node: BuilderNode, fields: $BucketModelFields): $Dependency[];
13
- static bucketGraph(node: BuilderNode, builder: BucketGraphBuilder<any>): $Dependency[];
14
- private static bucketGraphLink;
15
- static message(node: BuilderNode, depth?: number): void;
16
- private static messageFieldTree;
17
- protected static blockIO(node: BuilderNode): $Dependency[];
18
- protected static blockInlineNodes(node: BuilderNode, depth?: number): {
19
- dependencies: $Dependency[];
20
- inlines: BuilderNode[];
21
- };
22
- static job(node: BuilderNode, depth?: number): {
23
- inlines: BuilderNode[];
24
- };
25
- static resource(node: BuilderNode, depth?: number): {
26
- inlines: BuilderNode[];
27
- };
28
- static machine(node: BuilderNode, depth?: number): {
29
- inlines: BuilderNode[];
30
- };
31
- static controller(node: BuilderNode): void;
32
- static queue(node: BuilderNode): {
33
- inlines: BuilderNode[];
34
- };
35
- static topic(node: BuilderNode): {
36
- inlines: BuilderNode[];
37
- };
38
10
  /**
39
11
  * Scans the module directory, imports the builders and lists
40
12
  * all nodes found.
@@ -58,6 +30,34 @@ export declare class Treeshake {
58
30
  * - Nested inline builders
59
31
  */
60
32
  private static builder;
33
+ static externals(node: BuilderNode, depth?: number): void;
34
+ static message(node: BuilderNode, depth?: number): void;
35
+ private static messageFieldTree;
36
+ static bucket(node: BuilderNode, depth?: number): void;
37
+ static bucketModelFields(node: BuilderNode, fields: BucketModelFieldBuilders<any>): Dependency[];
38
+ static bucketGraph(node: BuilderNode, builder: BucketGraphBuilder<any>): Dependency[];
39
+ private static bucketGraphLink;
40
+ protected static blockIO(node: BuilderNode): Dependency[];
41
+ protected static blockInlineNodes(node: BuilderNode, depth?: number): {
42
+ dependencies: Dependency[];
43
+ inlines: BuilderNode[];
44
+ };
45
+ static job(node: BuilderNode, depth?: number): {
46
+ inlines: BuilderNode[];
47
+ };
48
+ static resource(node: BuilderNode, depth?: number): {
49
+ inlines: BuilderNode[];
50
+ };
51
+ static machine(node: BuilderNode, depth?: number): {
52
+ inlines: BuilderNode[];
53
+ };
54
+ static controller(node: BuilderNode): void;
55
+ static queue(node: BuilderNode): {
56
+ inlines: BuilderNode[];
57
+ };
58
+ static topic(node: BuilderNode): {
59
+ inlines: BuilderNode[];
60
+ };
61
61
  private static cleanNodeDependencies;
62
62
  private static logNodeList;
63
63
  private static logNodeTree;