nesoi 3.2.9 → 3.3.1

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 +14 -11
  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
@@ -5,7 +5,7 @@ const machine_schema_1 = require("./machine.schema");
5
5
  const machine_transition_builder_1 = require("./machine_transition.builder");
6
6
  const dependency_1 = require("../../../engine/dependency");
7
7
  const block_builder_1 = require("../block.builder");
8
- const name_helpers_1 = require("../../../compiler/helpers/name_helpers");
8
+ const name_helpers_1 = require("../../../engine/util/name_helpers");
9
9
  const machine_job_builder_1 = require("../job/internal/machine_job.builder");
10
10
  /**
11
11
  * @category Builders
@@ -32,16 +32,15 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
32
32
  beforeEnter(def) {
33
33
  const machineName = this.machine.name;
34
34
  const name = `${machineName}@${this.name}__before_enter`;
35
- const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `Before Enter ${this._alias || this.name}`, this._authn);
35
+ const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `Before Enter ${this._alias || this.name}`, this._auth);
36
36
  def(builder);
37
- this._jobs.beforeEnter = new dependency_1.$Dependency(this.module, 'job', name);
37
+ const tag = new dependency_1.Tag(this.module, 'job', name);
38
+ this._jobs.beforeEnter = new dependency_1.Dependency(this.module, tag, { runtime: true });
38
39
  // Inline nodes are registered on the machine builder,
39
40
  // since a machine state is not a BuilderNode
40
41
  const _inlineNodes = this.machine._inlineNodes;
41
42
  _inlineNodes.push(new dependency_1.BuilderNode({
42
- module: this.module,
43
- type: 'job',
44
- name: name,
43
+ tag: new dependency_1.Tag(this.module, 'job', name),
45
44
  builder: builder,
46
45
  isInline: true,
47
46
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
@@ -52,16 +51,15 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
52
51
  afterEnter(def) {
53
52
  const machineName = this.machine.name;
54
53
  const name = `${machineName}@${this.name}__after_enter`;
55
- const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `On Enter ${this._alias || this.name}`, this._authn);
54
+ const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `On Enter ${this._alias || this.name}`, this._auth);
56
55
  def(builder);
57
- this._jobs.afterEnter = new dependency_1.$Dependency(this.module, 'job', name);
56
+ const tag = new dependency_1.Tag(this.module, 'job', name);
57
+ this._jobs.afterEnter = new dependency_1.Dependency(this.module, tag, { runtime: true });
58
58
  // Inline nodes are registered on the machine builder,
59
59
  // since a machine state is not a BuilderNode
60
60
  const _inlineNodes = this.machine._inlineNodes;
61
61
  _inlineNodes.push(new dependency_1.BuilderNode({
62
- module: this.module,
63
- type: 'job',
64
- name: name,
62
+ tag: new dependency_1.Tag(this.module, 'job', name),
65
63
  builder: builder,
66
64
  isInline: true,
67
65
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
@@ -72,16 +70,15 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
72
70
  beforeLeave(def) {
73
71
  const machineName = this.machine.name;
74
72
  const name = `${machineName}@${this.name}__before_leave`;
75
- const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `Before leave ${this._alias || this.name}`, this._authn);
73
+ const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `Before leave ${this._alias || this.name}`, this._auth);
76
74
  def(builder);
77
- this._jobs.beforeLeave = new dependency_1.$Dependency(this.module, 'job', name);
75
+ const tag = new dependency_1.Tag(this.module, 'job', name);
76
+ this._jobs.beforeLeave = new dependency_1.Dependency(this.module, tag, { runtime: true });
78
77
  // Inline nodes are registered on the machine builder,
79
78
  // since a machine state is not a BuilderNode
80
79
  const _inlineNodes = this.machine._inlineNodes;
81
80
  _inlineNodes.push(new dependency_1.BuilderNode({
82
- module: this.module,
83
- type: 'job',
84
- name: name,
81
+ tag: new dependency_1.Tag(this.module, 'job', name),
85
82
  builder: builder,
86
83
  isInline: true,
87
84
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
@@ -92,16 +89,15 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
92
89
  afterLeave(def) {
93
90
  const machineName = this.machine.name;
94
91
  const name = `${machineName}@${this.name}__after_leave`;
95
- const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `On leave ${this._alias || this.name}`, this._authn);
92
+ const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `On leave ${this._alias || this.name}`, this._auth);
96
93
  def(builder);
97
- this._jobs.afterLeave = new dependency_1.$Dependency(this.module, 'job', name);
94
+ const tag = new dependency_1.Tag(this.module, 'job', name);
95
+ this._jobs.afterLeave = new dependency_1.Dependency(this.module, tag, { runtime: true });
98
96
  // Inline nodes are registered on the machine builder,
99
97
  // since a machine state is not a BuilderNode
100
98
  const _inlineNodes = this.machine._inlineNodes;
101
99
  _inlineNodes.push(new dependency_1.BuilderNode({
102
- module: this.module,
103
- type: 'job',
104
- name: name,
100
+ tag: new dependency_1.Tag(this.module, 'job', name),
105
101
  builder: builder,
106
102
  isInline: true,
107
103
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
@@ -112,7 +108,8 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
112
108
  transition(msg, $) {
113
109
  const machineName = this.machine.name;
114
110
  const msgName = name_helpers_1.NameHelpers.unabbrevName(msg, machineName);
115
- const msgDep = new dependency_1.$Dependency(this.module, 'message', msgName);
111
+ const tag = new dependency_1.Tag(this.module, 'message', msgName);
112
+ const msgDep = new dependency_1.Dependency(this.module, tag, { runtime: true });
116
113
  const builder = new machine_transition_builder_1.MachineTransitionBuilder(this.machine, this.module, this.name, msgDep);
117
114
  $(builder);
118
115
  if (!(msgName in this._transitions)) {
@@ -153,21 +150,26 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
153
150
  if (!($trans.to in transitions.to)) {
154
151
  transitions.to[$trans.to] = {};
155
152
  }
156
- if (!($trans.msg.refName in transitions.to[$trans.to])) {
157
- transitions.to[$trans.to][$trans.msg.refName] = [];
153
+ if (!($trans.msg.short in transitions.to[$trans.to])) {
154
+ transitions.to[$trans.to][$trans.msg.short] = [];
158
155
  }
159
- transitions.to[$trans.to][$trans.msg.refName].push($trans);
156
+ transitions.to[$trans.to][$trans.msg.short].push($trans);
160
157
  // We also take note of unique transition input messages
161
- if (!input.some(dep => dep.tag === $trans.msg.tag)) {
158
+ if (!input.some(tag => dependency_1.Tag.matches(tag, $trans.msg))) {
162
159
  input.push($trans.msg);
163
160
  }
164
161
  });
165
162
  });
166
163
  // Build this state
167
164
  const states = {};
168
- states[builder.name] = new machine_schema_1.$MachineState(builder.module, builder.name, builder._alias || builder.name, builder._authn, builder._initial, builder._final, [], // This is filled by the machine (after all transitions are built)
165
+ states[builder.name] = new machine_schema_1.$MachineState(builder.module, builder.name, builder._alias || builder.name, builder._auth, builder._initial, builder._final, [], // This is filled by the machine (after all transitions are built)
169
166
  [], // This is filled by the machine (after all transitions are built)
170
- builder._jobs);
167
+ {
168
+ beforeEnter: builder._jobs.beforeEnter?.tag,
169
+ afterEnter: builder._jobs.afterEnter?.tag,
170
+ beforeLeave: builder._jobs.beforeLeave?.tag,
171
+ afterLeave: builder._jobs.afterLeave?.tag,
172
+ });
171
173
  // Build substates
172
174
  for (const key in builder._states) {
173
175
  const childBuilder = builder._states[key];
@@ -177,7 +179,7 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
177
179
  machine_transition_builder_1.MachineTransitionBuilder.merge(transitions, child.transitions);
178
180
  Object.values(child.states).forEach(state => {
179
181
  state.input.forEach(msg => {
180
- if (!input.some(dep => dep.tag === msg.tag)) {
182
+ if (!input.some(tag => dependency_1.Tag.matches(tag, msg))) {
181
183
  input.push(msg);
182
184
  }
183
185
  });
@@ -2,7 +2,7 @@ import { $Module, $Space } from "../../../schema";
2
2
  import { $Machine, $MachineTransition, $MachineTransitions } from './machine.schema';
3
3
  import { $Job, $JobAssert, $JobMethod } from "../job/job.schema";
4
4
  import { TrxNode } from "../../../engine/transaction/trx_node";
5
- import { $Dependency } from "../../../engine/dependency";
5
+ import { Dependency } from "../../../engine/dependency";
6
6
  import { BlockBuilder } from '../block.builder';
7
7
  import { $Message } from "../../entities/message/message.schema";
8
8
  import { Overlay } from "../../../engine/util/type";
@@ -24,7 +24,7 @@ export declare class MachineTransitionBuilder<S extends $Space, M extends $Modul
24
24
  private _else?;
25
25
  private _to?;
26
26
  private _jobs;
27
- constructor(machine: AnyMachineBuilder, module: string, _from: string, _msg: $Dependency, index?: number);
27
+ constructor(machine: AnyMachineBuilder, module: string, _from: string, _msg: Dependency, index?: number);
28
28
  as(alias: string): this;
29
29
  if<Assert extends $JobAssert<TrxNode<S, M, $M['#authn']>, $['#input']['#parsed'], never, {
30
30
  obj: $M['#data'];
@@ -11,7 +11,7 @@ const machine_job_builder_1 = require("../job/internal/machine_job.builder");
11
11
  */
12
12
  class MachineTransitionBuilder extends block_builder_1.BlockBuilder {
13
13
  constructor(machine, module, _from, _msg, index = 0) {
14
- super(module, 'machine', `${_from}~${_msg.refName}`);
14
+ super(module, 'machine', `${_from}~${_msg.tag.short}`);
15
15
  this.machine = machine;
16
16
  this._from = _from;
17
17
  this._msg = _msg;
@@ -38,21 +38,21 @@ class MachineTransitionBuilder extends block_builder_1.BlockBuilder {
38
38
  }
39
39
  runJob(def) {
40
40
  if (typeof def === 'string') {
41
- this._jobs.push(new dependency_1.$Dependency(this.module, 'job', def));
41
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'job', def);
42
+ this._jobs.push(new dependency_1.Dependency(this.module, tag, { runtime: true }));
42
43
  }
43
44
  else {
44
45
  const machineName = this.machine.name;
45
46
  const name = `${machineName}@${this.name}#${this.index}`;
46
- const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, this._alias || name, this._authn, [this._msg]);
47
+ const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, this._alias || name, this._auth, [this._msg]);
47
48
  def(builder);
48
- this._jobs.push(new dependency_1.$Dependency(this.module, 'job', name));
49
+ const tag = new dependency_1.Tag(this.module, 'job', name);
50
+ this._jobs.push(new dependency_1.Dependency(this.module, tag, { runtime: true }));
49
51
  // Inline nodes are registered on the machine builder,
50
52
  // since a machine transition is not a BuilderNode
51
53
  const _inlineNodes = this.machine._inlineNodes;
52
54
  _inlineNodes.push(new dependency_1.BuilderNode({
53
- module: this.module,
54
- type: 'job',
55
- name: name,
55
+ tag: new dependency_1.Tag(this.module, 'job', name),
56
56
  builder: builder,
57
57
  isInline: true,
58
58
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
@@ -89,7 +89,7 @@ class MachineTransitionBuilder extends block_builder_1.BlockBuilder {
89
89
  /** Build */
90
90
  static build(builder) {
91
91
  const transitions = [];
92
- const self = new machine_schema_1.$MachineTransition(builder.module, builder.name, builder._alias || builder.name, builder._authn, builder._msg, builder._from, builder._to || builder._from, builder._condition, builder._jobs);
92
+ const self = new machine_schema_1.$MachineTransition(builder.module, builder.name, builder._alias || builder.name, builder._auth, builder._msg.tag, builder._from, builder._to || builder._from, builder._condition, builder._jobs.map(j => j.tag));
93
93
  transitions.push(self);
94
94
  if (builder._else) {
95
95
  const others = MachineTransitionBuilder.build(builder._else);
@@ -14,9 +14,9 @@ import { $Message } from "../../entities/message/message.schema";
14
14
  export declare class QueueBuilder<Space extends $Space, M extends $Module, $ extends $Queue> extends BlockBuilder<Space, M, 'queue'> {
15
15
  $b: "queue";
16
16
  constructor(module: string, name: string);
17
- authn<U extends keyof Space['authnUsers']>(...providers: U[]): QueueBuilder<Space, M, $ & {
18
- "#authn": U extends any[] ? U[number] : U;
19
- }>;
17
+ auth<U extends keyof Space['authnUsers']>(provider: U, resolver?: (user: Space['authnUsers'][U]) => boolean): QueueBuilder<Space, M, Overlay<$, {
18
+ "#authn": $["#authn"] & { [K in U]: Space["authnUsers"][K]; };
19
+ }>>;
20
20
  message<Name extends string, Def extends MessageTemplateDef<Space, M, Name>, FullName extends string = `${$['name']}${Name extends '' ? '' : '.'}${Name & string}`, Msg extends $Message = $MessageInfer<FullName, ($: any) => ReturnType<Def>>>(name: Name, def: Def): QueueBuilder<Space, Overlay<M, {
21
21
  messages: Overlay<M["messages"], { [K in FullName]: Msg; }>;
22
22
  }>, $>;
@@ -14,8 +14,8 @@ class QueueBuilder extends block_builder_1.BlockBuilder {
14
14
  this.$b = 'queue';
15
15
  }
16
16
  /* [Block] */
17
- authn(...providers) {
18
- return super.authn(...providers);
17
+ auth(provider, resolver) {
18
+ return super.auth(provider, resolver);
19
19
  }
20
20
  message(name, def) {
21
21
  return super.message(name, def);
@@ -25,7 +25,7 @@ class QueueBuilder extends block_builder_1.BlockBuilder {
25
25
  }
26
26
  // Build
27
27
  static build(node, tree, module) {
28
- node.schema = new queue_schema_1.$Queue(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._authn, node.builder._inputMsgs);
28
+ node.schema = new queue_schema_1.$Queue(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._auth, node.builder._inputMsgs.map(m => m.tag));
29
29
  return {
30
30
  schema: node.schema,
31
31
  inlineMessages: message_builder_1.MessageBuilder.buildInlines(node, tree, module)
@@ -1,5 +1,5 @@
1
- import { $Dependency } from "../../../engine/dependency";
2
- import { $Block } from '../block.schema';
1
+ import { Tag } from "../../../engine/dependency";
2
+ import { $Block, $BlockAuth } from '../block.schema';
3
3
  /**
4
4
  * @category Schemas
5
5
  * @subcategory Block
@@ -8,9 +8,9 @@ export declare class $Queue extends $Block {
8
8
  module: string;
9
9
  name: string;
10
10
  alias: string;
11
- authn: string[];
12
- msgs: $Dependency[];
11
+ auth: $BlockAuth[];
12
+ msgs: Tag[];
13
13
  $t: "queue";
14
- dependencies: $Dependency[];
15
- constructor(module: string, name: string, alias: string, authn: string[], msgs: $Dependency[]);
14
+ dependencies: Tag[];
15
+ constructor(module: string, name: string, alias: string, auth: $BlockAuth[], msgs: Tag[]);
16
16
  }
@@ -7,12 +7,12 @@ const block_schema_1 = require("../block.schema");
7
7
  * @subcategory Block
8
8
  */
9
9
  class $Queue extends block_schema_1.$Block {
10
- constructor(module, name, alias, authn, msgs) {
11
- super(module, name, alias, authn, msgs, {});
10
+ constructor(module, name, alias, auth, msgs) {
11
+ super(module, name, alias, auth, msgs, {});
12
12
  this.module = module;
13
13
  this.name = name;
14
14
  this.alias = alias;
15
- this.authn = authn;
15
+ this.auth = auth;
16
16
  this.msgs = msgs;
17
17
  this.$t = 'queue';
18
18
  this.dependencies = [];
@@ -20,8 +20,8 @@ export declare class ResourceBuilder<Space extends $Space, Module extends $Modul
20
20
  private _jobs;
21
21
  private _bucket;
22
22
  constructor(module: string, name: Resource['name']);
23
- authn<U extends keyof Space['authnUsers']>(...providers: U[]): ResourceBuilder<Space, Module, Overlay<Resource, {
24
- "#authn": { [K in U]: Space["authnUsers"][U]; };
23
+ auth<U extends keyof Space['authnUsers']>(provider: U, resolver?: (user: Space['authnUsers'][U]) => boolean): ResourceBuilder<Space, Module, Overlay<Resource, {
24
+ "#authn": Resource["#authn"] & { [K in U]: Space["authnUsers"][U]; };
25
25
  }>>;
26
26
  bucket<B extends keyof Module['buckets']>(name: B): ResourceBuilder<Space, Module, Overlay<Resource, {
27
27
  "#bucket": Module["buckets"][B];
@@ -8,7 +8,7 @@ const error_1 = require("../../../engine/data/error");
8
8
  const message_builder_1 = require("../../entities/message/message.builder");
9
9
  const bucket_model_convert_1 = require("../../entities/bucket/model/bucket_model.convert");
10
10
  const dependency_1 = require("../../../engine/dependency");
11
- const name_helpers_1 = require("../../../compiler/helpers/name_helpers");
11
+ const name_helpers_1 = require("../../../engine/util/name_helpers");
12
12
  const job_builder_1 = require("../job/job.builder");
13
13
  const resource_1 = require("./resource");
14
14
  const resource_job_1 = require("../job/internal/resource_job");
@@ -23,19 +23,20 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
23
23
  this._jobs = {};
24
24
  }
25
25
  /* [Block] */
26
- authn(...providers) {
27
- return super.authn(...providers);
26
+ auth(provider, resolver) {
27
+ return super.auth(provider, resolver);
28
28
  }
29
29
  /* Bucket */
30
30
  bucket(name) {
31
- this._bucket = new dependency_1.$Dependency(this.module, 'bucket', name);
31
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'bucket', name);
32
+ this._bucket = new dependency_1.Dependency(this.module, tag, { build: true, compile: true, runtime: true });
32
33
  return this;
33
34
  }
34
35
  /* Read */
35
36
  view(...views) {
36
37
  const name = `${this.name}.view`;
37
38
  const alias = `View ${this._alias || this.name}`;
38
- const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'view', alias, resource_1.Resource.view, this._authn)
39
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'view', alias, resource_1.Resource.view, [...this._auth])
39
40
  .input($ => ({
40
41
  view: $.enum(views).default(views[0]),
41
42
  id: $.string_or_number.optional,
@@ -46,21 +47,19 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
46
47
  }))
47
48
  .prepare(resource_job_1.ResourceJob.prepareMsgData);
48
49
  this._inlineNodes.push(new dependency_1.BuilderNode({
49
- module: this.module,
50
- type: 'job',
51
- name: name,
50
+ tag: new dependency_1.Tag(this.module, 'job', name),
52
51
  builder: jobBuilder,
53
52
  isInline: true,
54
53
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
55
54
  dependencies: [] // This is added later by Treeshake.*()
56
55
  }));
57
- this._jobs.view = new dependency_1.$Dependency(this.module, 'job', name);
56
+ this._jobs.view = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
58
57
  return this;
59
58
  }
60
59
  query(...views) {
61
60
  const name = `${this.name}.query`;
62
61
  const alias = `Query ${this._alias || this.name}`;
63
- const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'query', alias, resource_1.Resource.query, this._authn)
62
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'query', alias, resource_1.Resource.query, [...this._auth])
64
63
  .input($ => ({
65
64
  view: $.enum(views).default(views[0]),
66
65
  query: $.dict($.any.optional).default({}),
@@ -69,83 +68,75 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
69
68
  }))
70
69
  .prepare(resource_job_1.ResourceJob.prepareMsgData);
71
70
  this._inlineNodes.push(new dependency_1.BuilderNode({
72
- module: this.module,
73
- type: 'job',
74
- name: name,
71
+ tag: new dependency_1.Tag(this.module, 'job', name),
75
72
  builder: jobBuilder,
76
73
  isInline: true,
77
74
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
78
75
  dependencies: [] // This is added later by Treeshake.*()
79
76
  }));
80
- this._jobs.query = new dependency_1.$Dependency(this.module, 'job', name);
77
+ this._jobs.query = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
81
78
  return this;
82
79
  }
83
80
  /* Create/Update/Delete */
84
81
  create($) {
85
82
  const name = `${this.name}.create`;
86
83
  const alias = `Create ${this._alias || this.name}`;
87
- const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'create', alias, resource_1.Resource.create, this._authn, {
84
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'create', alias, resource_1.Resource.create, [...this._auth], {
88
85
  id: ['string_or_number', undefined, false]
89
86
  })
90
87
  .prepare(resource_job_1.ResourceJob.prepareMsgData);
91
88
  $(jobBuilder);
92
89
  this._inlineNodes.push(new dependency_1.BuilderNode({
93
- module: this.module,
94
- type: 'job',
95
- name: name,
90
+ tag: new dependency_1.Tag(this.module, 'job', name),
96
91
  builder: jobBuilder,
97
92
  isInline: true,
98
93
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
99
94
  dependencies: [] // This is added later by Treeshake.*()
100
95
  }));
101
- this._jobs.create = new dependency_1.$Dependency(this.module, 'job', name);
96
+ this._jobs.create = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
102
97
  return this;
103
98
  }
104
99
  update($) {
105
100
  const name = `${this.name}.update`;
106
101
  const alias = `Update ${this._alias || this.name}`;
107
- const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'update', alias, resource_1.Resource.update, this._authn, {
102
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'update', alias, resource_1.Resource.update, [...this._auth], {
108
103
  id: ['string_or_number', undefined, true]
109
104
  })
110
105
  .prepare(resource_job_1.ResourceJob.prepareMsgData);
111
106
  $(jobBuilder);
112
107
  this._inlineNodes.push(new dependency_1.BuilderNode({
113
- module: this.module,
114
- type: 'job',
115
- name: name,
108
+ tag: new dependency_1.Tag(this.module, 'job', name),
116
109
  builder: jobBuilder,
117
110
  isInline: true,
118
111
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
119
112
  dependencies: [] // This is added later by Treeshake.*()
120
113
  }));
121
- this._jobs.update = new dependency_1.$Dependency(this.module, 'job', name);
114
+ this._jobs.update = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
122
115
  return this;
123
116
  }
124
117
  delete($) {
125
118
  const name = `${this.name}.delete`;
126
119
  const alias = `Delete ${this._alias || this.name}`;
127
- const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.refName, 'delete', alias, resource_1.Resource.delete, this._authn, {
120
+ const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'delete', alias, resource_1.Resource.delete, [...this._auth], {
128
121
  id: ['string_or_number', undefined, true]
129
122
  })
130
123
  .prepare(resource_job_1.ResourceJob.prepareTrue);
131
124
  $(jobBuilder);
132
125
  this._inlineNodes.push(new dependency_1.BuilderNode({
133
- module: this.module,
134
- type: 'job',
135
- name: name,
126
+ tag: new dependency_1.Tag(this.module, 'job', name),
136
127
  builder: jobBuilder,
137
128
  isInline: true,
138
129
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
139
130
  dependencies: [] // This is added later by Treeshake.*()
140
131
  }));
141
- this._jobs.delete = new dependency_1.$Dependency(this.module, 'job', name);
132
+ this._jobs.delete = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
142
133
  return this;
143
134
  }
144
135
  // Build
145
136
  static build(node, tree, module) {
146
- const bucket = tree.getSchema(node.builder._bucket);
137
+ const bucket = dependency_1.Tag.resolve(node.builder._bucket.tag, tree);
147
138
  if (!bucket) {
148
- throw error_1.NesoiError.Builder.Resource.BucketNotFound(node.builder.name, node.builder._bucket.refName);
139
+ throw error_1.NesoiError.Builder.Resource.BucketNotFound(node.builder.name, node.builder._bucket.tag.short);
149
140
  }
150
141
  const model = bucket.model;
151
142
  const modelName = name_helpers_1.NameHelpers.nameLowToHigh(bucket.name);
@@ -155,7 +146,7 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
155
146
  // view
156
147
  const viewDep = node.builder._jobs.view;
157
148
  if (viewDep) {
158
- inlineJobsConfig[viewDep.name] = {
149
+ inlineJobsConfig[viewDep.tag.name] = {
159
150
  ResourceJob: {
160
151
  output: { raw: modelName + ' | ' + modelName + '[]' },
161
152
  defaultTrigger: undefined
@@ -165,7 +156,7 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
165
156
  // query
166
157
  const queryDep = node.builder._jobs.query;
167
158
  if (queryDep) {
168
- inlineJobsConfig[queryDep.name] = {
159
+ inlineJobsConfig[queryDep.tag.name] = {
169
160
  ResourceJob: {
170
161
  idType: null,
171
162
  output: { raw: modelName + '[]' },
@@ -176,8 +167,8 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
176
167
  // create
177
168
  const createDep = node.builder._jobs.create;
178
169
  if (createDep) {
179
- const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, createDep.name, `Create ${node.builder._alias || node.builder.name}`, [], [], ['id']);
180
- inlineJobsConfig[createDep.name] = {
170
+ const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, createDep.tag.name, `Create ${node.builder._alias || node.builder.name}`, [], [], ['id']);
171
+ inlineJobsConfig[createDep.tag.name] = {
181
172
  ResourceJob: {
182
173
  idType: null,
183
174
  output: { raw: modelName },
@@ -188,8 +179,8 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
188
179
  // update
189
180
  const updateDep = node.builder._jobs.update;
190
181
  if (updateDep) {
191
- const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, updateDep.name, `Update ${node.builder._alias || node.builder.name}`, [], []);
192
- inlineJobsConfig[updateDep.name] = {
182
+ const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, updateDep.tag.name, `Update ${node.builder._alias || node.builder.name}`, [], []);
183
+ inlineJobsConfig[updateDep.tag.name] = {
193
184
  ResourceJob: {
194
185
  idType: model.fields.id.type,
195
186
  output: { raw: modelName },
@@ -200,8 +191,8 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
200
191
  // delete
201
192
  const deleteDep = node.builder._jobs.delete;
202
193
  if (deleteDep) {
203
- const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, deleteDep.name, `Delete ${node.builder._alias || node.builder.name}`, ['id'], []);
204
- inlineJobsConfig[deleteDep.name] = {
194
+ const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, deleteDep.tag.name, `Delete ${node.builder._alias || node.builder.name}`, ['id'], []);
195
+ inlineJobsConfig[deleteDep.tag.name] = {
205
196
  ResourceJob: {
206
197
  idType: model.fields.id.type,
207
198
  output: { raw: 'void' },
@@ -209,7 +200,13 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
209
200
  }
210
201
  };
211
202
  }
212
- node.schema = new resource_schema_1.$Resource(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._authn, node.builder._bucket, node.builder._jobs);
203
+ node.schema = new resource_schema_1.$Resource(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._auth, node.builder._bucket.tag, {
204
+ view: node.builder._jobs.view?.tag,
205
+ query: node.builder._jobs.query?.tag,
206
+ create: node.builder._jobs.create?.tag,
207
+ update: node.builder._jobs.update?.tag,
208
+ delete: node.builder._jobs.delete?.tag,
209
+ });
213
210
  const jobs = job_builder_1.JobBuilder.buildInlines(node, tree, module, inlineJobsConfig);
214
211
  return {
215
212
  schema: node.schema,
@@ -5,7 +5,7 @@ import { NesoiObj } from "../../../engine/data/obj";
5
5
  import { AnyMessage } from "../../entities/message/message";
6
6
  import { Module } from "../../../engine/module";
7
7
  import { AnyTrxNode, TrxNode } from "../../../engine/transaction/trx_node";
8
- import { $Dependency } from "../../../engine/dependency";
8
+ import { Tag } from "../../../engine/dependency";
9
9
  import { ResourceAssertions } from '../job/internal/resource_job.builder';
10
10
  import { $Job } from '../job/job.schema';
11
11
  /**
@@ -47,7 +47,7 @@ export declare class Resource<S extends $Space, M extends $Module, $ extends $Re
47
47
  obj: any;
48
48
  job: $Job;
49
49
  }): Promise<void>;
50
- static assertThat(trx: AnyTrxNode, bucket: $Dependency, obj: NesoiObj | undefined, type: keyof ResourceAssertions<any>, arg: any): {
50
+ static assertThat(trx: AnyTrxNode, bucket: Tag, obj: NesoiObj | undefined, type: keyof ResourceAssertions<any>, arg: any): {
51
51
  else: (error: string) => Promise<string | true>;
52
52
  };
53
53
  }
@@ -35,28 +35,19 @@ class Resource extends block_1.Block {
35
35
  if (!this.schema.jobs.view) {
36
36
  throw error_1.NesoiError.Resource.ViewNotSupported(this.schema);
37
37
  }
38
- return trx.job(this.schema.jobs.view.refName).forward(msg);
38
+ return trx.job(this.schema.jobs.view.short).forward(msg);
39
39
  }
40
40
  async query(trx, msg) {
41
- // const q = $BucketQuery.parse(msg.query);
42
- // const node = trx.bucket(this.schema.bucket.refName).query(msg.view, q);
43
- // if (msg.orderBy) {
44
- // node.orderBy(msg.orderBy as keyof NesoiObj, msg.orderDesc ? 'desc' : 'asc');
45
- // }
46
- // return node.page({
47
- // perPage: msg.perPage,
48
- // page: msg.page
49
- // });
50
41
  if (!this.schema.jobs.query) {
51
42
  throw error_1.NesoiError.Resource.QueryNotSupported(this.schema);
52
43
  }
53
- return trx.job(this.schema.jobs.query.refName).forward(msg);
44
+ return trx.job(this.schema.jobs.query.short).forward(msg);
54
45
  }
55
46
  async create(trx, msg) {
56
47
  if (!this.schema.jobs.create) {
57
48
  throw error_1.NesoiError.Resource.CreateNotSupported(this.schema);
58
49
  }
59
- return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.create.refName, {
50
+ return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.create.short, {
60
51
  that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, undefined, type, arg)
61
52
  }).forward(msg);
62
53
  }
@@ -64,8 +55,8 @@ class Resource extends block_1.Block {
64
55
  if (!this.schema.jobs.update) {
65
56
  throw error_1.NesoiError.Resource.UpdateNotSupported(this.schema);
66
57
  }
67
- const obj = await trx.bucket(this.schema.bucket.refName).readOneOrFail(msg.id);
68
- return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.update.refName, {
58
+ const obj = await trx.bucket(this.schema.bucket.short).readOneOrFail(msg.id);
59
+ return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.update.short, {
69
60
  that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, obj, type, arg),
70
61
  obj,
71
62
  })
@@ -75,13 +66,14 @@ class Resource extends block_1.Block {
75
66
  if (!this.schema.jobs.delete) {
76
67
  throw error_1.NesoiError.Resource.DeleteNotSupported(this.schema);
77
68
  }
78
- const obj = await trx.bucket(this.schema.bucket.refName).readOneOrFail(msg.id);
79
- return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.delete.refName, {
69
+ const obj = await trx.bucket(this.schema.bucket.short).readOneOrFail(msg.id);
70
+ return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.delete.short, {
80
71
  that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, obj, type, arg),
81
72
  obj,
82
73
  })
83
74
  .forward(msg);
84
75
  }
76
+ /* Implementations */
85
77
  static view($) {
86
78
  const scope = $.job.scope;
87
79
  return $.msg.id
@@ -118,7 +110,7 @@ class Resource extends block_1.Block {
118
110
  else: async (error) => {
119
111
  let out = false;
120
112
  if (type === 'query is empty') {
121
- out = !(await trx.bucket(bucket.refName)
113
+ out = !(await trx.bucket(bucket.short)
122
114
  .query(arg)
123
115
  .params(obj)
124
116
  .first());
@@ -127,7 +119,7 @@ class Resource extends block_1.Block {
127
119
  if (!obj)
128
120
  out = true;
129
121
  else {
130
- out = !(await trx.bucket(bucket.refName)
122
+ out = !(await trx.bucket(bucket.short)
131
123
  .hasLink(obj.id, arg));
132
124
  }
133
125
  }