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
@@ -4,224 +4,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Treeshake = void 0;
7
- const dependency_1 = require("../engine/dependency");
7
+ const dependency_1 = require("./dependency");
8
8
  const bucket_graph_builder_1 = require("../elements/entities/bucket/graph/bucket_graph.builder");
9
9
  const externals_builder_1 = require("../elements/edge/externals/externals.builder");
10
- const log_1 = require("../engine/util/log");
11
- const string_1 = require("../engine/util/string");
12
- const error_1 = require("../engine/data/error");
10
+ const log_1 = require("./util/log");
11
+ const string_1 = require("./util/string");
12
+ const error_1 = require("./data/error");
13
13
  const constants_builder_1 = require("../elements/entities/constants/constants.builder");
14
- const progressive_1 = require("./progressive");
15
14
  const path_1 = __importDefault(require("path"));
15
+ /* @nesoi:browser ignore-start */
16
+ const progressive_1 = require("../compiler/progressive");
17
+ /* @nesoi:browser ignore-end */
16
18
  class Treeshake {
17
- /* Externals */
18
- static externals(node, depth = 1) {
19
- const b = node.builder;
20
- const $b = b.$b;
21
- const buckets = b.buckets;
22
- const messages = b.messages;
23
- const jobs = b.jobs;
24
- const enums = b.enums;
25
- log_1.Log.trace('compiler', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.name)}`);
26
- node.dependencies = [
27
- ...Object.values(buckets),
28
- ...Object.values(messages),
29
- ...Object.values(jobs),
30
- ...Object.values(enums).map(dep => new dependency_1.$Dependency(node.module, 'constants', `${dep.module}::*`))
31
- ];
32
- node.dependencies = this.cleanNodeDependencies(node);
33
- }
34
- /* Bucket */
35
- static bucket(node, depth = 1) {
36
- const b = node.builder;
37
- const $b = b.$b;
38
- const _extend = b._extend;
39
- const graphLinks = b._graph;
40
- const name = b.name;
41
- const _model = b._model;
42
- log_1.Log.trace('compiler', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.name)}`);
43
- node.dependencies = [];
44
- if (_extend) {
45
- node.dependencies.push(_extend);
46
- }
47
- if (_model) {
48
- node.dependencies.push(...Treeshake.bucketModelFields(node, _model.fields));
49
- }
50
- const graph = new bucket_graph_builder_1.BucketGraphBuilder().links(graphLinks);
51
- node.dependencies.push(...Treeshake.bucketGraph(node, graph));
52
- node.dependencies = this.cleanNodeDependencies(node);
53
- }
54
- static bucketModelFields(node, fields) {
55
- const dependencies = [];
56
- Object.values(fields).forEach(field => {
57
- if (field.meta?.enum?.dep) {
58
- dependencies.push(field.meta?.enum.dep);
59
- }
60
- if (field.children?.length) {
61
- dependencies.push(...Treeshake.bucketModelFields(node, field.children));
62
- }
63
- });
64
- return dependencies;
65
- }
66
- static bucketGraph(node, builder) {
67
- const b = builder;
68
- const _links = b._links;
69
- return Object.values(_links).map((link) => {
70
- const dep = Treeshake.bucketGraphLink(link);
71
- if (dep.module === node.module && dep.name === node.name) {
72
- return undefined;
73
- }
74
- return dep;
75
- }).filter(d => !!d);
76
- }
77
- static bucketGraphLink(builder) {
78
- const b = builder;
79
- const bucket = b.bucket;
80
- return bucket;
81
- }
82
- /* Message */
83
- static message(node, depth = 1) {
84
- const b = node.builder;
85
- const $b = b.$b;
86
- const _fields = b._template._fields;
87
- log_1.Log.trace('compiler', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.name)}`);
88
- node.dependencies = Treeshake.messageFieldTree(node, _fields);
89
- node.dependencies = this.cleanNodeDependencies(node);
90
- }
91
- static messageFieldTree(node, tree) {
92
- const dependencies = [];
93
- if (tree.__ext) {
94
- dependencies.push(tree.__ext);
95
- }
96
- Object.values(tree).forEach(child => {
97
- const c = child;
98
- if (c.type === 'enum') {
99
- if (typeof c.value.enum.options === 'string') {
100
- dependencies.push(c.value.enum.dep);
101
- }
102
- }
103
- else if (c.type === 'id') {
104
- const ref = c.value.id.bucket;
105
- dependencies.push(ref);
106
- }
107
- else if (c.type === 'msg') {
108
- dependencies.push(c.value.msg);
109
- }
110
- else if (c.children) {
111
- dependencies.push(...Treeshake.messageFieldTree(node, c.children));
112
- }
113
- });
114
- return dependencies;
115
- }
116
- /* Block */
117
- static blockIO(node) {
118
- const b = node.builder;
119
- const _inputMsgs = b._inputMsgs;
120
- const _inlineNodes = b._inlineNodes;
121
- const nonInlineIO = [
122
- ..._inputMsgs.filter(dep => !_inlineNodes.some(node => node.module === dep.module
123
- && node.type === dep.type
124
- && node.name === dep.name))
125
- ];
126
- return nonInlineIO;
127
- }
128
- static blockInlineNodes(node, depth = 1) {
129
- const b = node.builder;
130
- const _inlineNodes = b._inlineNodes;
131
- const dependencies = [];
132
- const nestedInlines = [];
133
- // Finds the dependencies of each inline node
134
- for (const inlineNode of _inlineNodes) {
135
- // Inherit information from parent node
136
- inlineNode.filepath = node.filepath;
137
- inlineNode.tag = `${inlineNode.module}::${inlineNode.type}:${inlineNode.name}`;
138
- if (inlineNode.type === 'message') {
139
- Treeshake.message(inlineNode, depth + 1);
140
- dependencies.push(...inlineNode.dependencies);
141
- }
142
- else if (inlineNode.type === 'job') {
143
- const deps = Treeshake.job(inlineNode, depth + 1);
144
- dependencies.push(...inlineNode.dependencies);
145
- nestedInlines.push(...deps.inlines);
146
- }
147
- }
148
- // Inlines are a dependency of their parent node
149
- const inlines = [..._inlineNodes, ...nestedInlines];
150
- inlines.forEach(inline => {
151
- dependencies.push(new dependency_1.$Dependency(inline.module, inline.type, inline.name));
152
- });
153
- return {
154
- dependencies,
155
- inlines
156
- };
157
- }
158
- /* Job */
159
- static job(node, depth = 0) {
160
- const builder = node.builder;
161
- log_1.Log.trace('compiler', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)(builder.$b, node.name)}`);
162
- const inlineTreeshake = Treeshake.blockInlineNodes(node, depth);
163
- node.dependencies = [
164
- ...Treeshake.blockIO(node),
165
- ...inlineTreeshake.dependencies
166
- ];
167
- node.dependencies = this.cleanNodeDependencies(node);
168
- return { inlines: inlineTreeshake.inlines };
169
- }
170
- /* Resource */
171
- static resource(node, depth = 1) {
172
- const b = node.builder;
173
- const $b = b.$b;
174
- const _bucket = b._bucket;
175
- log_1.Log.trace('compiler', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.name)}`);
176
- const inlineTreeshake = Treeshake.blockInlineNodes(node, depth);
177
- node.dependencies = [
178
- _bucket,
179
- ...inlineTreeshake.dependencies
180
- ];
181
- node.dependencies = this.cleanNodeDependencies(node);
182
- return { inlines: inlineTreeshake.inlines };
183
- }
184
- /* Machine */
185
- static machine(node, depth = 1) {
186
- const b = node.builder;
187
- const $b = b.$b;
188
- const _buckets = b._buckets;
189
- log_1.Log.trace('compiler', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.name)}`);
190
- const buckets = _buckets;
191
- node.dependencies = [...buckets];
192
- const inlineTreeshake = Treeshake.blockInlineNodes(node, depth);
193
- node.dependencies.push(...inlineTreeshake.dependencies);
194
- node.dependencies = this.cleanNodeDependencies(node);
195
- return { inlines: inlineTreeshake.inlines };
196
- }
197
- /* Controller */
198
- static controller(node) {
199
- const b = node.builder;
200
- node.dependencies = [];
201
- }
202
- static queue(node) {
203
- const builder = node.builder;
204
- log_1.Log.trace('compiler', 'treeshake', `└ Treeshaking node ${(0, log_1.scopeTag)(builder.$b, node.name)}`);
205
- const inlineTreeshake = Treeshake.blockInlineNodes(node);
206
- node.dependencies = [
207
- ...Treeshake.blockIO(node),
208
- ...inlineTreeshake.dependencies
209
- ];
210
- node.dependencies = this.cleanNodeDependencies(node);
211
- return { inlines: inlineTreeshake.inlines };
212
- }
213
- static topic(node) {
214
- const builder = node.builder;
215
- log_1.Log.trace('compiler', 'treeshake', `└ Treeshaking node ${(0, log_1.scopeTag)(builder.$b, node.name)}`);
216
- const inlineTreeshake = Treeshake.blockInlineNodes(node);
217
- node.dependencies = [
218
- ...Treeshake.blockIO(node),
219
- ...inlineTreeshake.dependencies
220
- ];
221
- node.dependencies = this.cleanNodeDependencies(node);
222
- return { inlines: inlineTreeshake.inlines };
223
- }
224
- /* Module */
19
+ /* Entry-Points */
225
20
  /**
226
21
  * Scans the module directory, imports the builders and lists
227
22
  * all nodes found.
@@ -229,23 +24,46 @@ class Treeshake {
229
24
  * @returns A list of all `BuilderNodes` found on the module folder
230
25
  */
231
26
  static async module(module, cache, config) {
232
- log_1.Log.debug('compiler', 'treeshake', `Treeshaking ${(0, log_1.scopeTag)('module', module.name)}`);
27
+ log_1.Log.debug('engine', 'treeshake', `Treeshaking ${(0, log_1.scopeTag)('module', module.name)}`);
233
28
  const nodes = [];
234
29
  const merge = (node) => {
235
30
  // Merge constants in a single builder
236
- if (node.type === 'constants') {
31
+ if (node.tag.type.startsWith('constants')) {
237
32
  node.filepath = [node.filepath];
238
- const constants = nodes.find(node => node.type === 'constants');
33
+ const constants = nodes.find(node => node.tag.type === 'constants');
239
34
  if (constants) {
240
35
  constants_builder_1.ConstantsBuilder.merge(constants.builder, node.builder);
241
36
  constants.filepath = [...constants.filepath, ...node.filepath];
242
37
  return;
243
38
  }
39
+ else {
40
+ nodes.push({
41
+ ...node,
42
+ tag: new dependency_1.Tag(node.tag.module, 'constants', '*')
43
+ });
44
+ return;
45
+ }
244
46
  }
245
47
  // Merge externals in a single builder
246
- if (node.type === 'externals') {
48
+ if (node.tag.type === 'externals') {
247
49
  node.filepath = [node.filepath];
248
- const externals = nodes.find(node => node.type === 'externals');
50
+ // If the external references constants, ensure a constants node is present
51
+ // This ensures there will be a container for the external values, which
52
+ // are copied as "static externals"
53
+ const enums = node.builder.enums;
54
+ const values = node.builder.values;
55
+ if (Object.keys(enums).length || Object.keys(values).length) {
56
+ const constants = nodes.find(node => node.tag.type === 'constants');
57
+ if (!constants) {
58
+ nodes.push(new dependency_1.BuilderNode({
59
+ tag: new dependency_1.Tag(node.tag.module, 'constants', '*'),
60
+ filepath: [],
61
+ dependencies: [],
62
+ builder: new constants_builder_1.ConstantsBuilder(node.tag.module),
63
+ }));
64
+ }
65
+ }
66
+ const externals = nodes.find(node => node.tag.type === 'externals');
249
67
  if (externals) {
250
68
  externals_builder_1.ExternalsBuilder.merge(externals.builder, node.builder);
251
69
  externals.filepath = [...externals.filepath, ...node.filepath];
@@ -268,9 +86,9 @@ class Treeshake {
268
86
  builderNodes.forEach(merge);
269
87
  }
270
88
  }
271
- log_1.Log.trace('compiler', 'treeshake', `Node list of module ${(0, log_1.scopeTag)('module', module.name)}:`);
89
+ log_1.Log.trace('builder', 'treeshake', `Node list of module ${(0, log_1.scopeTag)('module', module.name)}:`);
272
90
  this.logNodeList(nodes);
273
- log_1.Log.trace('compiler', 'treeshake', `Node tree of module ${(0, log_1.scopeTag)('module', module.name)}:`);
91
+ log_1.Log.trace('builder', 'treeshake', `Node tree of module ${(0, log_1.scopeTag)('module', module.name)}:`);
274
92
  this.logNodeTree(nodes.filter(node => !node.isInline));
275
93
  return nodes;
276
94
  }
@@ -282,13 +100,15 @@ class Treeshake {
282
100
  * - Nested inline builders
283
101
  */
284
102
  static async file(module, filepath, cache) {
103
+ /* @nesoi:browser ignore-start */
285
104
  if (cache && filepath in cache.files) {
286
105
  const nodes = await progressive_1.ProgressiveBuild.treeshake(cache, filepath);
287
106
  if (nodes) {
288
107
  return nodes;
289
108
  }
290
109
  }
291
- log_1.Log.debug('compiler', 'treeshake', ` └ Treeshaking file ${(0, string_1.colored)(filepath, 'blue')}`);
110
+ /* @nesoi:browser ignore-end */
111
+ log_1.Log.debug('engine', 'treeshake', ` └ Treeshaking file ${(0, string_1.colored)(filepath, 'blue')}`);
292
112
  // Require is used here to avoid cache - which allows watch mode
293
113
  delete require.cache[filepath];
294
114
  // eslint-disable-next-line @typescript-eslint/no-require-imports
@@ -299,15 +119,15 @@ class Treeshake {
299
119
  if (!builder.$b) {
300
120
  // TODO: check lib paths to re-enable this message
301
121
  // without annoying
302
- // Log.warn('compiler', 'treeshake', `No builder found on file ${filepath}, move it to a library folder or it won't work on the built version.`);
122
+ // Log.warn('builder', 'treeshake', `No builder found on file ${filepath}, move it to a library folder or it won't work on the built version.`);
303
123
  continue;
304
124
  }
305
125
  nodes.push(...Treeshake.builder(module, builder, filepath));
306
126
  }
307
- log_1.Log.debug('compiler', 'treeshake', ` - Nodes: ${(0, string_1.colored)(nodes.map(node => node.tag).join(', '), 'purple')}`);
127
+ log_1.Log.debug('engine', 'treeshake', ` - Nodes: ${(0, string_1.colored)(nodes.map(node => node.tag.full).join(', '), 'purple')}`);
308
128
  cache.files[filepath] = {
309
- type: nodes.map(node => node.type),
310
- elements: nodes.map(node => path_1.default.join(cache.nesoidir, module, `${node.type}__${node.name}.ts`)).flat(1)
129
+ type: nodes.map(node => node.tag.type),
130
+ elements: nodes.map(node => path_1.default.join(cache.nesoidir, module, `${node.tag.type}__${node.tag.name}.ts`)).flat(1)
311
131
  };
312
132
  return nodes;
313
133
  }
@@ -319,13 +139,10 @@ class Treeshake {
319
139
  * - Nested inline builders
320
140
  */
321
141
  static builder(module, builder, filepath = '*') {
322
- log_1.Log.debug('compiler', 'treeshake', ` └ Treeshaking builder ${(0, string_1.colored)(builder.$b, 'blue')}`);
142
+ log_1.Log.debug('engine', 'treeshake', ` └ Treeshaking builder ${(0, string_1.colored)(builder.$b, 'blue')}`);
323
143
  const name = builder.name;
324
144
  const node = {
325
- module,
326
- type: builder.$b,
327
- name,
328
- tag: `${module}::${builder.$b}:${name}`,
145
+ tag: new dependency_1.Tag(module, builder.$b, name),
329
146
  builder,
330
147
  filepath: filepath,
331
148
  dependencies: []
@@ -348,7 +165,6 @@ class Treeshake {
348
165
  inlines.forEach(inline => {
349
166
  nodes.push({
350
167
  ...inline,
351
- module,
352
168
  filepath
353
169
  });
354
170
  });
@@ -358,7 +174,6 @@ class Treeshake {
358
174
  inlines.forEach(inline => {
359
175
  nodes.push({
360
176
  ...inline,
361
- module,
362
177
  filepath
363
178
  });
364
179
  });
@@ -369,7 +184,6 @@ class Treeshake {
369
184
  inlines.forEach(inline => {
370
185
  nodes.push({
371
186
  ...inline,
372
- module,
373
187
  filepath
374
188
  });
375
189
  });
@@ -382,7 +196,6 @@ class Treeshake {
382
196
  inlines.forEach(inline => {
383
197
  nodes.push({
384
198
  ...inline,
385
- module,
386
199
  filepath
387
200
  });
388
201
  });
@@ -392,7 +205,6 @@ class Treeshake {
392
205
  inlines.forEach(inline => {
393
206
  nodes.push({
394
207
  ...inline,
395
- module,
396
208
  filepath
397
209
  });
398
210
  });
@@ -403,12 +215,230 @@ class Treeshake {
403
215
  nodes.push(node);
404
216
  return nodes;
405
217
  }
218
+ /* Externals */
219
+ static externals(node, depth = 1) {
220
+ const b = node.builder;
221
+ const $b = b.$b;
222
+ const enums = b.enums;
223
+ const values = b.values;
224
+ const buckets = b.buckets;
225
+ const messages = b.messages;
226
+ const jobs = b.jobs;
227
+ const machines = b.machines;
228
+ log_1.Log.trace('builder', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.tag.name)}`);
229
+ node.dependencies = [
230
+ ...Object.values(enums),
231
+ ...Object.values(values),
232
+ ...Object.values(buckets),
233
+ ...Object.values(messages),
234
+ ...Object.values(jobs),
235
+ ...Object.values(machines),
236
+ ];
237
+ node.dependencies = this.cleanNodeDependencies(node);
238
+ }
239
+ /* Message */
240
+ static message(node, depth = 1) {
241
+ const b = node.builder;
242
+ const $b = b.$b;
243
+ const _fields = b._template._fields;
244
+ log_1.Log.trace('builder', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.tag.name)}`);
245
+ node.dependencies = Treeshake.messageFieldTree(node, _fields);
246
+ node.dependencies = this.cleanNodeDependencies(node);
247
+ }
248
+ static messageFieldTree(node, tree) {
249
+ const dependencies = [];
250
+ if (tree.__ext) {
251
+ dependencies.push(tree.__ext);
252
+ }
253
+ Object.values(tree).forEach(child => {
254
+ const c = child;
255
+ if (c.type === 'enum') {
256
+ if ('dep' in c.meta.enum) {
257
+ dependencies.push(c.meta.enum.dep);
258
+ }
259
+ }
260
+ else if (c.type === 'id') {
261
+ const ref = c.meta.id.bucket;
262
+ dependencies.push(ref);
263
+ }
264
+ else if (c.type === 'msg') {
265
+ dependencies.push(c.meta.msg);
266
+ }
267
+ else if (c.children) {
268
+ dependencies.push(...Treeshake.messageFieldTree(node, c.children));
269
+ }
270
+ });
271
+ return dependencies;
272
+ }
273
+ /* Bucket */
274
+ static bucket(node, depth = 1) {
275
+ const b = node.builder;
276
+ const $b = b.$b;
277
+ const _extend = b._extend;
278
+ const graphLinks = b._graph;
279
+ const _model = b._model;
280
+ log_1.Log.trace('builder', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.tag.name)}`);
281
+ node.dependencies = [];
282
+ if (_extend) {
283
+ node.dependencies.push(_extend);
284
+ }
285
+ if (_model) {
286
+ const builders = b._model.builders;
287
+ node.dependencies.push(...Treeshake.bucketModelFields(node, builders));
288
+ }
289
+ const graph = new bucket_graph_builder_1.BucketGraphBuilder().links(graphLinks);
290
+ node.dependencies.push(...Treeshake.bucketGraph(node, graph));
291
+ node.dependencies = this.cleanNodeDependencies(node);
292
+ }
293
+ static bucketModelFields(node, fields) {
294
+ const dependencies = [];
295
+ Object.values(fields).forEach((field) => {
296
+ const meta = field.meta;
297
+ const crypto = field.crypto;
298
+ const children = field.children;
299
+ if (meta?.enum && 'dep' in meta.enum) {
300
+ dependencies.push(meta.enum.dep);
301
+ }
302
+ if (crypto) {
303
+ dependencies.push(crypto.value);
304
+ }
305
+ if (children?.length) {
306
+ dependencies.push(...Treeshake.bucketModelFields(node, children));
307
+ }
308
+ });
309
+ return dependencies;
310
+ }
311
+ static bucketGraph(node, builder) {
312
+ const b = builder;
313
+ const _links = b._links;
314
+ return Object.values(_links).map((link) => {
315
+ const dep = Treeshake.bucketGraphLink(link);
316
+ if (dep.tag.full === node.tag.full) {
317
+ return undefined;
318
+ }
319
+ return dep;
320
+ }).filter(d => !!d);
321
+ }
322
+ static bucketGraphLink(builder) {
323
+ const b = builder;
324
+ const bucket = b.bucket;
325
+ return bucket;
326
+ }
327
+ /* Block */
328
+ static blockIO(node) {
329
+ const b = node.builder;
330
+ const _inputMsgs = b._inputMsgs;
331
+ const _inlineNodes = b._inlineNodes;
332
+ const nonInlineIO = [
333
+ ..._inputMsgs.filter(dep => !_inlineNodes.some(node => node.tag.full === dep.tag.full))
334
+ ];
335
+ return nonInlineIO;
336
+ }
337
+ static blockInlineNodes(node, depth = 1) {
338
+ const b = node.builder;
339
+ const _inlineNodes = b._inlineNodes;
340
+ const dependencies = [];
341
+ const nestedInlines = [];
342
+ // Finds the dependencies of each inline node
343
+ for (const inlineNode of _inlineNodes) {
344
+ // Inherit information from parent node
345
+ inlineNode.filepath = node.filepath;
346
+ if (inlineNode.tag.type === 'message') {
347
+ Treeshake.message(inlineNode, depth + 1);
348
+ dependencies.push(...inlineNode.dependencies);
349
+ }
350
+ else if (inlineNode.tag.type === 'job') {
351
+ const deps = Treeshake.job(inlineNode, depth + 1);
352
+ dependencies.push(...inlineNode.dependencies);
353
+ nestedInlines.push(...deps.inlines);
354
+ }
355
+ }
356
+ const inlines = [..._inlineNodes, ...nestedInlines];
357
+ // Inlines were a build dependency of their parent node
358
+ // Now, inlines are ignored on build order
359
+ //
360
+ // inlines.forEach(inline => {
361
+ // dependencies.push(new Dependency(node.tag.module, inline.tag, { build: true }));
362
+ // });
363
+ return {
364
+ dependencies,
365
+ inlines
366
+ };
367
+ }
368
+ /* Job */
369
+ static job(node, depth = 0) {
370
+ const builder = node.builder;
371
+ log_1.Log.trace('builder', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)(builder.$b, node.tag.name)}`);
372
+ const inlineTreeshake = Treeshake.blockInlineNodes(node, depth);
373
+ node.dependencies = [
374
+ ...Treeshake.blockIO(node),
375
+ ...inlineTreeshake.dependencies
376
+ ];
377
+ node.dependencies = this.cleanNodeDependencies(node);
378
+ return { inlines: inlineTreeshake.inlines };
379
+ }
380
+ /* Resource */
381
+ static resource(node, depth = 1) {
382
+ const b = node.builder;
383
+ const $b = b.$b;
384
+ const _bucket = b._bucket;
385
+ log_1.Log.trace('builder', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.tag.name)}`);
386
+ const inlineTreeshake = Treeshake.blockInlineNodes(node, depth);
387
+ node.dependencies = [
388
+ _bucket,
389
+ ...inlineTreeshake.dependencies
390
+ ];
391
+ node.dependencies = this.cleanNodeDependencies(node);
392
+ return { inlines: inlineTreeshake.inlines };
393
+ }
394
+ /* Machine */
395
+ static machine(node, depth = 1) {
396
+ const b = node.builder;
397
+ const $b = b.$b;
398
+ const _buckets = b._buckets;
399
+ log_1.Log.trace('builder', 'treeshake', `${' '.repeat(depth)} └ Treeshaking node ${(0, log_1.scopeTag)($b, node.tag.name)}`);
400
+ const buckets = _buckets;
401
+ node.dependencies = [...buckets];
402
+ const inlineTreeshake = Treeshake.blockInlineNodes(node, depth);
403
+ node.dependencies.push(...inlineTreeshake.dependencies);
404
+ node.dependencies = this.cleanNodeDependencies(node);
405
+ return { inlines: inlineTreeshake.inlines };
406
+ }
407
+ /* Controller */
408
+ static controller(node) {
409
+ const b = node.builder;
410
+ node.dependencies = [];
411
+ }
412
+ /* Queue */
413
+ static queue(node) {
414
+ const builder = node.builder;
415
+ log_1.Log.trace('builder', 'treeshake', `└ Treeshaking node ${(0, log_1.scopeTag)(builder.$b, node.tag.name)}`);
416
+ const inlineTreeshake = Treeshake.blockInlineNodes(node);
417
+ node.dependencies = [
418
+ ...Treeshake.blockIO(node),
419
+ ...inlineTreeshake.dependencies
420
+ ];
421
+ node.dependencies = this.cleanNodeDependencies(node);
422
+ return { inlines: inlineTreeshake.inlines };
423
+ }
424
+ /* Topic */
425
+ static topic(node) {
426
+ const builder = node.builder;
427
+ log_1.Log.trace('builder', 'treeshake', `└ Treeshaking node ${(0, log_1.scopeTag)(builder.$b, node.tag.name)}`);
428
+ const inlineTreeshake = Treeshake.blockInlineNodes(node);
429
+ node.dependencies = [
430
+ ...Treeshake.blockIO(node),
431
+ ...inlineTreeshake.dependencies
432
+ ];
433
+ node.dependencies = this.cleanNodeDependencies(node);
434
+ return { inlines: inlineTreeshake.inlines };
435
+ }
406
436
  // Utility
407
437
  static cleanNodeDependencies(node) {
408
438
  let filtered = [];
409
439
  // Remove duplicates
410
440
  node.dependencies.forEach(dep => {
411
- if (!filtered.find(f => dep.tag === f.tag)) {
441
+ if (!filtered.find(f => dependency_1.Tag.matches(dep.tag, f.tag))) {
412
442
  filtered.push(dep);
413
443
  }
414
444
  });
@@ -421,28 +451,28 @@ class Treeshake {
421
451
  nodes
422
452
  .map(node => ({
423
453
  node,
424
- tag: (0, log_1.scopeTag)(node.type, node.name)
454
+ tag: (0, log_1.scopeTag)(node.tag.type, node.tag.name)
425
455
  }))
426
456
  .sort((a, b) => a.tag.localeCompare(b.tag))
427
457
  .forEach(({ node, tag }) => {
428
- log_1.Log.trace('compiler', 'treeshake', ` └ ${tag} ` + (0, string_1.colored)(`@ ${node.filepath}`, 'purple'));
458
+ log_1.Log.trace('builder', 'treeshake', ` └ ${tag} ` + (0, string_1.colored)(`@ ${node.filepath}`, 'purple'));
429
459
  });
430
460
  }
431
461
  static logNodeTree(nodes, depth = 1) {
432
462
  nodes
433
463
  .map(node => ({
434
464
  node,
435
- tag: (0, log_1.scopeTag)(node.type, node.name)
465
+ tag: (0, log_1.scopeTag)(node.tag.type, node.tag.name)
436
466
  }))
437
467
  .sort((a, b) => a.tag.localeCompare(b.tag))
438
468
  .forEach(({ node, tag }) => {
439
- log_1.Log.debug('compiler', 'treeshake', `${' '.repeat(depth)} └ ${tag} ` + (0, string_1.colored)(`@ ${node.filepath}`, 'purple'));
469
+ log_1.Log.debug('engine', 'treeshake', `${' '.repeat(depth)} └ ${tag} ` + (0, string_1.colored)(`@ ${node.filepath}`, 'purple'));
440
470
  if (node.progressive) {
441
- log_1.Log.debug('compiler', 'treeshake', `${' '.repeat(depth + 1)}` + (0, string_1.colored)('[cache]', 'green'));
471
+ log_1.Log.debug('engine', 'treeshake', `${' '.repeat(depth + 1)}` + (0, string_1.colored)('[cache]', 'green'));
442
472
  return;
443
473
  }
444
474
  if (node.dependencies.length) {
445
- log_1.Log.debug('compiler', 'treeshake', (0, string_1.colored)(`${' '.repeat(depth)} (depends on: ${node.dependencies.map(dep => dep.tag).join(', ')})`, 'purple'));
475
+ log_1.Log.debug('engine', 'treeshake', (0, string_1.colored)(`${' '.repeat(depth)} (depends on: ${node.dependencies.map(dep => dep.tag.full).join(', ')})`, 'purple'));
446
476
  }
447
477
  if ('_inlineNodes' in node.builder) {
448
478
  const inlineNodes = node.builder['_inlineNodes'];
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const package_json_1 = __importDefault(require("../../../package.json"));
7
+ const log_1 = require("./log");
7
8
  const string_1 = require("./string");
8
9
  class Console {
9
10
  // Prints a step message to the terminal
@@ -12,6 +13,8 @@ class Console {
12
13
  }
13
14
  // Prints the header
14
15
  static header(module) {
16
+ if (['off', 'error', 'warn'].includes(log_1.Log.level))
17
+ return;
15
18
  console.log((0, string_1.colored)('┏ ┓', 'lightcyan'));
16
19
  console.log((0, string_1.colored)(' ┏┓┳┓┏┏┓┏', 'lightblue'));
17
20
  console.log((0, string_1.colored)(' ┛╹┗ ┛┗┛╹', 'lightblue'));