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
@@ -11,7 +11,7 @@ import { BlockBuilder } from '../../block.builder';
11
11
  import { ResolvedBuilderNode } from "../../../../engine/dependency";
12
12
  import { NQL_AnyQuery } from "../../../entities/bucket/query/nql.schema";
13
13
  import { $Bucket } from "../../../entities/bucket/bucket.schema";
14
- import { $BlockOutput } from '../../block.schema';
14
+ import { $BlockAuth, $BlockOutput } from '../../block.schema';
15
15
  export type ResourceAssertions<Bucket extends $Bucket> = {
16
16
  'query is empty': NQL_AnyQuery;
17
17
  'has no link': keyof Bucket['graph']['links'];
@@ -23,14 +23,14 @@ export type ResourceAssertionDef<Bucket extends $Bucket> = <T extends keyof Reso
23
23
  * @category Builders
24
24
  * @subcategory Block
25
25
  */
26
- export declare class ResourceJobBuilder<Space extends $Space, Module extends $Module, Name extends string, Prepared, Authn extends AnyUsers = {}, Bucket extends $Bucket = never, RequiredInput = {}, Trigger extends $Message = never, MsgExtras = {}, Ctx = {}, CtxAfter = {}> extends BlockBuilder<Space, Module, 'job'> {
26
+ export declare class ResourceJobBuilder<Space extends $Space, Module extends $Module, Name extends string, Prepared, AuthUsers extends AnyUsers = {}, Bucket extends $Bucket = never, RequiredInput = {}, Trigger extends $Message = never, MsgExtras = {}, Ctx = {}, CtxAfter = {}> extends BlockBuilder<Space, Module, 'job'> {
27
27
  protected module: string;
28
28
  protected name: Name;
29
29
  protected bucket: string;
30
30
  protected method: 'view' | 'query' | 'create' | 'update' | 'delete';
31
31
  private alias;
32
32
  private execMethod?;
33
- protected _authn: string[];
33
+ protected _auth: $BlockAuth[];
34
34
  private implicitFields;
35
35
  $b: "job";
36
36
  $j: "ResourceJob";
@@ -40,13 +40,14 @@ export declare class ResourceJobBuilder<Space extends $Space, Module extends $Mo
40
40
  private _extrasAndAsserts;
41
41
  private _prepareMethod;
42
42
  private _afterMethod?;
43
- constructor(module: string, name: Name, bucket: string, method: 'view' | 'query' | 'create' | 'update' | 'delete', alias: string, execMethod?: $JobMethod<any, any, any, any> | undefined, _authn?: string[], implicitFields?: Record<string, [string, any, boolean]>);
43
+ constructor(module: string, name: Name, bucket: string, method: 'view' | 'query' | 'create' | 'update' | 'delete', alias: string, execMethod?: $JobMethod<any, any, any, any> | undefined, _auth?: $BlockAuth[], implicitFields?: Record<string, [string, any, boolean]>);
44
+ auth<U extends keyof Space['authnUsers']>(provider: U, resolver?: (user: Space['authnUsers'][U]) => boolean): ResourceJobBuilder<Space, Module, Name, Prepared, AuthUsers & { [K in U]: Space["authnUsers"][U]; }, Bucket, RequiredInput, Trigger, MsgExtras, Ctx, CtxAfter>;
44
45
  /**
45
46
  * The input message accepted by the job.
46
47
  *
47
48
  * @param def A `$ => ({})` definition for a custom trigger message
48
49
  */
49
- input<Def extends MessageTemplateDef<Space, Module, Name>>(def: Def): ResourceJobBuilder<Space, Module, Name, Prepared, Authn, Bucket, RequiredInput, $MessageInfer<Name, any, ReturnType<Def> & { [K in keyof RequiredInput]: MessageTemplateFieldBuilder<any, any, any, {
50
+ input<Def extends MessageTemplateDef<Space, Module, Name>>(def: Def): ResourceJobBuilder<Space, Module, Name, Prepared, AuthUsers, Bucket, RequiredInput, $MessageInfer<Name, any, ReturnType<Def> & { [K in keyof RequiredInput]: MessageTemplateFieldBuilder<any, any, any, {
50
51
  '': RequiredInput[K];
51
52
  }, any, [false, false], "">; }, import("../../../entities/message/message.infer").$MessageInputInfer<ReturnType<Def> & { [K in keyof RequiredInput]: MessageTemplateFieldBuilder<any, any, any, {
52
53
  '': RequiredInput[K];
@@ -61,7 +62,7 @@ export declare class ResourceJobBuilder<Space extends $Space, Module extends $Mo
61
62
  */
62
63
  extra<Extra extends {
63
64
  [_: string]: any;
64
- }, Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, PreviousExtras = NoInfer<MsgExtras>, C = NoInfer<Ctx>>($: $JobMethod<Trx, Msg, Extra, PreviousExtras, C>): ResourceJobBuilder<Space, Module, Name, Prepared, Authn, Bucket, RequiredInput, Trigger, MsgExtras & Extra, Ctx, CtxAfter>;
65
+ }, Trx = NoInfer<TrxNode<Space, Module, AuthUsers>>, Msg = NoInfer<Trigger['#parsed']>, PreviousExtras = NoInfer<MsgExtras>, C = NoInfer<Ctx>>($: $JobMethod<Trx, Msg, Extra, PreviousExtras, C>): ResourceJobBuilder<Space, Module, Name, Prepared, AuthUsers, Bucket, RequiredInput, Trigger, MsgExtras & Extra, Ctx, CtxAfter>;
65
66
  /**
66
67
  * A function that checks a given condition over the input and throws an exception;
67
68
  * This assertion runs before the job method.
@@ -69,7 +70,7 @@ export declare class ResourceJobBuilder<Space extends $Space, Module extends $Mo
69
70
  * @param { cond } A function which returns true or false
70
71
  * @param { error } An error message or a function that makes one
71
72
  */
72
- assert<Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<Ctx & {
73
+ assert<Trx = NoInfer<TrxNode<Space, Module, AuthUsers>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<Ctx & {
73
74
  that: ResourceAssertionDef<Bucket>;
74
75
  }>>(condition: $JobAssert<Trx, Msg, Extras, C>): this;
75
76
  /**
@@ -77,20 +78,20 @@ export declare class ResourceJobBuilder<Space extends $Space, Module extends $Mo
77
78
  *
78
79
  * @param method A function which returns the required output.
79
80
  */
80
- prepare<Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<Ctx>>(method: $JobMethod<Trx, Msg, Prepared, Extras, C>): this;
81
+ prepare<Trx = NoInfer<TrxNode<Space, Module, AuthUsers>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<Ctx>>(method: $JobMethod<Trx, Msg, Prepared, Extras, C>): this;
81
82
  /**
82
83
  * The function called after the input has been processed.
83
84
  *
84
85
  * @param method A function which returns void.
85
86
  */
86
- after<Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<CtxAfter>>(method: $JobMethod<Trx, Msg, void, Extras, C>): this;
87
+ after<Trx = NoInfer<TrxNode<Space, Module, AuthUsers>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<CtxAfter>>(method: $JobMethod<Trx, Msg, void, Extras, C>): this;
87
88
  static build(node: ResourceJobBuilderNode, tree: ModuleTree, module: $Module, output: $BlockOutput, defaultTrigger: $Message, idType?: 'string' | 'int' | null): {
88
89
  schema: $Job;
89
90
  inlineMessages: Record<string, $Message>;
90
91
  };
91
92
  }
92
93
  export type AnyResourceJobBuilder = ResourceJobBuilder<any, any, any, any, any, any>;
93
- export type ResourceJobDef<S extends $Space, M extends $Module, Name extends string, Prepared, Authn extends AnyUsers, Bucket extends $Bucket, DefaultTrigger extends $Message = never, RequiredInput = {}, Ctx = {}, CtxAfter = {}> = ($: ResourceJobBuilder<S, M, Name, Prepared, Authn, Bucket, RequiredInput, DefaultTrigger, {}, Ctx, CtxAfter>) => any;
94
+ export type ResourceJobDef<S extends $Space, M extends $Module, Name extends string, Prepared, AuthUsers extends AnyUsers, Bucket extends $Bucket, DefaultTrigger extends $Message = never, RequiredInput = {}, Ctx = {}, CtxAfter = {}> = ($: ResourceJobBuilder<S, M, Name, Prepared, AuthUsers, Bucket, RequiredInput, DefaultTrigger, {}, Ctx, CtxAfter>) => any;
94
95
  export type ResourceJobBuilderNode = Omit<ResolvedBuilderNode, 'builder'> & {
95
96
  builder: AnyResourceJobBuilder;
96
97
  schema?: $Job;
@@ -13,7 +13,7 @@ const resource_job_1 = require("./resource_job");
13
13
  * @subcategory Block
14
14
  */
15
15
  class ResourceJobBuilder extends block_builder_1.BlockBuilder {
16
- constructor(module, name, bucket, method, alias, execMethod, _authn = [], implicitFields = {}) {
16
+ constructor(module, name, bucket, method, alias, execMethod, _auth = [], implicitFields = {}) {
17
17
  super(module, 'job', name);
18
18
  this.module = module;
19
19
  this.name = name;
@@ -21,7 +21,7 @@ class ResourceJobBuilder extends block_builder_1.BlockBuilder {
21
21
  this.method = method;
22
22
  this.alias = alias;
23
23
  this.execMethod = execMethod;
24
- this._authn = _authn;
24
+ this._auth = _auth;
25
25
  this.implicitFields = implicitFields;
26
26
  this.$b = 'job';
27
27
  this.$j = 'ResourceJob';
@@ -32,15 +32,17 @@ class ResourceJobBuilder extends block_builder_1.BlockBuilder {
32
32
  .as(alias);
33
33
  super._input(name);
34
34
  this._inlineNodes.push(new dependency_1.BuilderNode({
35
- module: this.module,
36
- type: 'message',
37
- name: name,
35
+ tag: new dependency_1.Tag(this.module, 'message', name),
38
36
  builder: this._msg,
39
37
  isInline: true,
40
38
  filepath: [], // This is added later by Treeshake.blockInlineNodes()
41
39
  dependencies: [] // This is added later by Treeshake.*()
42
40
  }));
43
41
  }
42
+ /* [Block] */
43
+ auth(provider, resolver) {
44
+ return super.auth(provider, resolver);
45
+ }
44
46
  /**
45
47
  * The input message accepted by the job.
46
48
  *
@@ -127,7 +129,8 @@ class ResourceJobBuilder extends block_builder_1.BlockBuilder {
127
129
  delete fields['id'];
128
130
  }
129
131
  }
130
- node.schema = new job_schema_1.$Job(node.builder.module, node.builder.name, node.builder.alias || node.builder.name, node.builder._authn, [new dependency_1.$Dependency(node.module, 'message', node.builder.name)], output, node.builder._extrasAndAsserts, resource_job_1.ResourceJob.method, {
132
+ const msgTag = node.builder._inlineNodes[0].tag;
133
+ node.schema = new job_schema_1.$Job(node.builder.module, node.builder.name, node.builder.alias || node.builder.name, node.builder._auth, [msgTag], output, node.builder._extrasAndAsserts, resource_job_1.ResourceJob.method, {
131
134
  module: node.builder.module,
132
135
  resource: node.builder.resource,
133
136
  bucket: node.builder.bucket,
@@ -1,27 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResourceJob = void 0;
4
- const trx_node_1 = require("../../../../engine/transaction/trx_node");
5
4
  /**
6
5
  * @category Elements
7
6
  * @subcategory Block
8
7
  */
9
8
  class ResourceJob {
10
9
  static async method($) {
11
- // Check authentication
12
- trx_node_1.TrxNode.checkAuthn($.trx, $.job.authn);
13
10
  //
14
11
  const id = $.msg.id;
15
12
  const scope = $.job.scope;
16
13
  let obj = $.obj;
17
14
  obj = await scope.prepareMethod({ ...$, obj, bucket: scope.bucket });
18
15
  // Preserve the original message ID (if any),
19
- // even if the prepare method doesn't add it
20
- if (scope.method === 'create' || scope.method === 'update') {
16
+ // if the prepare method mistakenly changed it
17
+ if (scope.method === 'update') {
21
18
  obj.id = id;
22
19
  }
23
20
  // On delete, the method returns a boolean, so replace it with the id.
24
- else {
21
+ else if (scope.method === 'delete') {
25
22
  if (!obj)
26
23
  return;
27
24
  obj = { id };
@@ -6,7 +6,7 @@ import { Overlay } from "../../../engine/util/type";
6
6
  import { $MessageInfer } from "../../entities/message/message.infer";
7
7
  import { TrxNode } from "../../../engine/transaction/trx_node";
8
8
  import { ModuleTree } from "../../../engine/tree";
9
- import { $Dependency, ResolvedBuilderNode } from "../../../engine/dependency";
9
+ import { ResolvedBuilderNode, Tag } from "../../../engine/dependency";
10
10
  import { $Message } from "../../entities/message/message.schema";
11
11
  import { $BlockOutput } from '../block.schema';
12
12
  export type JobExtrasAndAsserts = ({
@@ -27,10 +27,10 @@ export declare class JobBuilder<Space extends $Space, Module extends $Module, Jo
27
27
  private _method?;
28
28
  private _scope?;
29
29
  constructor(module: string, name: Job['name']);
30
- authn<U extends keyof Space['authnUsers']>(...providers: U[]): JobBuilder<Space, Module, Overlay<Job, {
31
- "#authn": { [K in U]: Space["authnUsers"][U]; };
30
+ auth<U extends keyof Space['authnUsers']>(provider: U, resolver?: (user: Space['authnUsers'][U]) => boolean): JobBuilder<Space, Module, Overlay<Job, {
31
+ "#authn": Job["#authn"] & { [K in U]: Space["authnUsers"][U]; };
32
32
  }>, Ctx>;
33
- scope<JobScope extends `machine:${keyof Module['machines'] & string}`, Machine extends NoInfer<Module['machines'][JobScope extends `machine:${infer X}` ? X : never]>>(scope: JobScope): JobBuilder<Space, Module, Job, {
33
+ scope<MachineName extends keyof Module['machines'] & string, JobScope extends `machine:${MachineName}`, Machine extends NoInfer<Module['machines'][MachineName]>>(scope: JobScope): JobBuilder<Space, Module, Job, {
34
34
  obj: Machine["#data"];
35
35
  from: keyof Machine["states"] & string;
36
36
  to: keyof Machine["states"] & string;
@@ -109,7 +109,7 @@ export type JobBuildConfig = {
109
109
  defaultTrigger: $Message;
110
110
  };
111
111
  MachineJob?: {
112
- input: $Dependency[];
112
+ input: Tag[];
113
113
  };
114
114
  };
115
115
  };
@@ -8,7 +8,7 @@ const message_builder_1 = require("../../entities/message/message.builder");
8
8
  const resource_job_builder_1 = require("./internal/resource_job.builder");
9
9
  const machine_job_builder_1 = require("./internal/machine_job.builder");
10
10
  const error_1 = require("../../../engine/data/error");
11
- const name_helpers_1 = require("../../../compiler/helpers/name_helpers");
11
+ const name_helpers_1 = require("../../../engine/util/name_helpers");
12
12
  /**
13
13
  * @category Builders
14
14
  * @subcategory Block
@@ -21,12 +21,12 @@ class JobBuilder extends block_builder_1.BlockBuilder {
21
21
  this._extrasAndAsserts = [];
22
22
  }
23
23
  /* [Block] */
24
- authn(...providers) {
25
- return super.authn(...providers);
24
+ auth(provider, resolver) {
25
+ return super.auth(provider, resolver);
26
26
  }
27
27
  /* [Scope] */
28
28
  scope(scope) {
29
- this._scope = scope;
29
+ this._scope = new dependency_1.Tag(this.module, 'machine', scope.split(':')[1]);
30
30
  // Machine-scoped job
31
31
  return this;
32
32
  }
@@ -101,9 +101,9 @@ class JobBuilder extends block_builder_1.BlockBuilder {
101
101
  if (!node.builder._method) {
102
102
  throw error_1.NesoiError.Builder.Job.NoMethod({ job: node.builder.name });
103
103
  }
104
- const input = node.builder._inputMsgs;
105
- const scope = node.builder._scope ? dependency_1.$Tag.parse(node.builder._scope) : undefined;
106
- node.schema = new job_schema_1.$Job(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._authn, input, node.builder._output, node.builder._extrasAndAsserts, node.builder._method, scope ? {
104
+ const input = node.builder._inputMsgs.map(m => m.tag);
105
+ const scope = node.builder._scope;
106
+ node.schema = new job_schema_1.$Job(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._auth, input, node.builder._output, node.builder._extrasAndAsserts, node.builder._method, scope ? {
107
107
  module: node.builder.module,
108
108
  machine: scope.name,
109
109
  } : undefined);
@@ -21,7 +21,7 @@ class Job extends block_1.Block {
21
21
  }
22
22
  async run(trx, msg, _ctx = {}) {
23
23
  // Check authentication
24
- trx_node_1.TrxNode.checkAuthn(trx, this.schema.authn);
24
+ await trx_node_1.TrxNode.checkAuth(trx, this.schema.auth);
25
25
  const _msg = message_1.Message.clone(msg);
26
26
  const extra = {};
27
27
  const ctx = { trx, msg: _msg, extra, job: this.schema };
@@ -1,5 +1,5 @@
1
- import { $Block, $BlockOutput } from '../block.schema';
2
- import { $Dependency } from "../../../engine/dependency";
1
+ import { $Block, $BlockOutput, $BlockAuth } from '../block.schema';
2
+ import { Tag } from "../../../engine/dependency";
3
3
  import { JobExtrasAndAsserts } from './job.builder';
4
4
  import { $ResourceJobScope } from './internal/resource_job.schema';
5
5
  import { $MachineJobScope } from '../machine/machine.schema';
@@ -18,13 +18,13 @@ export declare class $Job extends $Block {
18
18
  module: string;
19
19
  name: string;
20
20
  alias: string;
21
- authn: string[];
22
- input: $Dependency[];
21
+ auth: $BlockAuth[];
22
+ input: Tag[];
23
23
  output: $BlockOutput | undefined;
24
24
  extrasAndAsserts: JobExtrasAndAsserts;
25
25
  method: $JobMethod<any, any, any, any>;
26
26
  scope?: ($MachineJobScope | $ResourceJobScope) | undefined;
27
27
  $t: "job";
28
28
  '#extra': unknown;
29
- constructor(module: string, name: string, alias: string, authn: string[], input: $Dependency[], output: $BlockOutput | undefined, extrasAndAsserts: JobExtrasAndAsserts, method: $JobMethod<any, any, any, any>, scope?: ($MachineJobScope | $ResourceJobScope) | undefined);
29
+ constructor(module: string, name: string, alias: string, auth: $BlockAuth[], input: Tag[], output: $BlockOutput | undefined, extrasAndAsserts: JobExtrasAndAsserts, method: $JobMethod<any, any, any, any>, scope?: ($MachineJobScope | $ResourceJobScope) | undefined);
30
30
  }
@@ -7,12 +7,12 @@ const block_schema_1 = require("../block.schema");
7
7
  * @subcategory Block
8
8
  */
9
9
  class $Job extends block_schema_1.$Block {
10
- constructor(module, name, alias, authn, input, output, extrasAndAsserts, method, scope) {
11
- super(module, name, alias, authn, input, output);
10
+ constructor(module, name, alias, auth, input, output, extrasAndAsserts, method, scope) {
11
+ super(module, name, alias, auth, input, output);
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.input = input;
17
17
  this.output = output;
18
18
  this.extrasAndAsserts = extrasAndAsserts;
@@ -20,8 +20,8 @@ export declare class MachineBuilder<Space extends $Space, Module extends $Module
20
20
  private _states;
21
21
  private _logger?;
22
22
  constructor(module: string, name: Name);
23
- authn<U extends keyof Space['authnUsers']>(...providers: U[]): MachineBuilder<Space, Module, Name, Overlay<$, {
24
- "#authn": { [K in U]: Space["authnUsers"][K]; };
23
+ auth<U extends keyof Space['authnUsers']>(provider: U, resolver?: (user: Space['authnUsers'][U]) => boolean): MachineBuilder<Space, Module, Name, Overlay<$, {
24
+ "#authn": $["#authn"] & { [K in U]: Space["authnUsers"][K]; };
25
25
  }>>;
26
26
  message<Name extends string, Def extends MessageTemplateDef<Space, Module, Name>, FullName extends string = `${$['name']}${Name extends '' ? '' : '.'}${Name & string}`, Msg extends $Message = $MessageInfer<FullName, ($: any) => ReturnType<Def>>>(name: Name, def: Def): MachineBuilder<Space, Overlay<Module, {
27
27
  messages: Overlay<Module["messages"], { [K in FullName]: Msg; }>;
@@ -20,8 +20,8 @@ class MachineBuilder extends block_builder_1.BlockBuilder {
20
20
  this._states = {};
21
21
  }
22
22
  /* [Block] */
23
- authn(...providers) {
24
- return super.authn(...providers);
23
+ auth(provider, resolver) {
24
+ return super.auth(provider, resolver);
25
25
  }
26
26
  message(name, def) {
27
27
  return super.message(name, def);
@@ -29,7 +29,10 @@ class MachineBuilder extends block_builder_1.BlockBuilder {
29
29
  /* [Data] */
30
30
  bucket(names) {
31
31
  names = Array.isArray(names) ? names : [names];
32
- this._buckets = names.map(name => new dependency_1.$Dependency(this.module, 'bucket', name));
32
+ this._buckets = names.map(name => {
33
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'bucket', name);
34
+ return new dependency_1.Dependency(this.module, tag, { compile: true, runtime: true });
35
+ });
33
36
  return this;
34
37
  }
35
38
  stateField(key) {
@@ -78,7 +81,7 @@ class MachineBuilder extends block_builder_1.BlockBuilder {
78
81
  Object.values(msgTransitions)
79
82
  .flat(1)
80
83
  .forEach(t => {
81
- if (!states[state].input.some(dep => dep.tag === t.msg.tag)) {
84
+ if (!states[state].input.some(tag => tag.full === t.msg.full)) {
82
85
  states[state].input.push(t.msg);
83
86
  }
84
87
  });
@@ -88,16 +91,16 @@ class MachineBuilder extends block_builder_1.BlockBuilder {
88
91
  .flat(1);
89
92
  const jobs = [];
90
93
  Object.values(states).forEach(state => {
91
- jobs.push(...Object.values(state.jobs));
94
+ jobs.push(...Object.values(state.jobs).filter(j => !!j));
92
95
  });
93
96
  Object.values(transitions.from).forEach(stateTransitions => {
94
97
  Object.values(stateTransitions).forEach(transitionList => {
95
98
  transitionList.forEach(trans => {
96
- jobs.push(...trans.jobs);
99
+ jobs.push(...trans.jobs.filter(j => !!j));
97
100
  });
98
101
  });
99
102
  });
100
- node.schema = new machine_schema_1.$Machine(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._authn, input, node.builder._buckets, jobs, node.builder._stateField || 'state', states, transitions, node.builder._stateAliasField, node.builder._logger);
103
+ node.schema = new machine_schema_1.$Machine(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._auth, input, node.builder._buckets.map(b => b.tag), jobs, node.builder._stateField || 'state', states, transitions, node.builder._stateAliasField, node.builder._logger);
101
104
  // Configure state jobs with proper input, based on transition targets
102
105
  const inlineJobsConfig = {};
103
106
  Object.values(states).forEach(state => {
@@ -105,13 +108,13 @@ class MachineBuilder extends block_builder_1.BlockBuilder {
105
108
  const inputLeave = [];
106
109
  Object.values(transFrom)
107
110
  .flat(1)
108
- .filter($t => !inputLeave.some(dep => dep.tag === $t.msg.tag))
111
+ .filter($t => !inputLeave.some(tag => dependency_1.Tag.matches(tag, $t.msg)))
109
112
  .forEach($t => inputLeave.push($t.msg));
110
113
  const transTo = transitions.to[state.name] || {};
111
114
  const inputEnter = [];
112
115
  Object.values(transTo)
113
116
  .flat(1)
114
- .filter($t => !inputEnter.some(dep => dep.tag === $t.msg.tag))
117
+ .filter($t => !inputEnter.some(tag => dependency_1.Tag.matches(tag, $t.msg)))
115
118
  .forEach($t => inputEnter.push($t.msg));
116
119
  state.inputEnter = inputEnter;
117
120
  state.inputLeave = inputLeave;
@@ -133,7 +133,7 @@ class Machine extends block_1.Block {
133
133
  let bucketUsed;
134
134
  let obj;
135
135
  for (const bucket of this.schema.buckets) {
136
- obj = await trx.bucket(bucket.refName).readOne(msg.id);
136
+ obj = await trx.bucket(bucket.short).readOne(msg.id);
137
137
  if (obj) {
138
138
  bucketUsed = bucket;
139
139
  break;
@@ -184,12 +184,12 @@ class Machine extends block_1.Block {
184
184
  }
185
185
  // Run all transition jobs
186
186
  for (const job of transition.jobs) {
187
- await trx_node_1.TrxNode.jobWithCustomCtx(trx, job.refName, {
187
+ await trx_node_1.TrxNode.jobWithCustomCtx(trx, job.short, {
188
188
  obj,
189
189
  from: state.name,
190
190
  to: nextState.name
191
191
  }).forward(msg);
192
- MachineOutput.add(output, MachineOutputEntry.info_job_from_transition(job.tag, transition.name));
192
+ MachineOutput.add(output, MachineOutputEntry.info_job_from_transition(job.full, transition.name));
193
193
  }
194
194
  // Run "beforeEnter" job of next state
195
195
  await this.runStateJob(trx, output, queue, nextState.jobs.beforeEnter, msg, obj, state.name, nextState.name, 'before_enter', `Ran job '${nextState.jobs.beforeEnter?.name}' before entering '${nextState.name}'`);
@@ -199,7 +199,7 @@ class Machine extends block_1.Block {
199
199
  if (this.schema.stateAliasField) {
200
200
  obj[this.schema.stateAliasField] = nextState.alias;
201
201
  }
202
- obj = await trx.bucket(bucketUsed.refName).patch(obj);
202
+ obj = await trx.bucket(bucketUsed.short).patch(obj);
203
203
  if (nextStateName !== stateName) {
204
204
  MachineOutput.add(output, MachineOutputEntry.info_state_changed(state.name, nextState.name));
205
205
  }
@@ -226,15 +226,15 @@ class Machine extends block_1.Block {
226
226
  if (!job) {
227
227
  return;
228
228
  }
229
- const result = await trx_node_1.TrxNode.jobWithCustomCtx(trx, job.refName, {
229
+ const result = await trx_node_1.TrxNode.jobWithCustomCtx(trx, job.short, {
230
230
  obj,
231
231
  from,
232
232
  to
233
233
  }).forward(msg);
234
- MachineOutput.add(output, MachineOutputEntry.info_job_from_state(job.tag, from));
234
+ MachineOutput.add(output, MachineOutputEntry.info_job_from_state(job.full, from));
235
235
  if (result instanceof message_1.Message) {
236
236
  queue.push(result);
237
- MachineOutput.add(output, MachineOutputEntry.info_job_returned_message(job.tag, result));
237
+ MachineOutput.add(output, MachineOutputEntry.info_job_returned_message(job.full, result));
238
238
  }
239
239
  }
240
240
  }
@@ -1,6 +1,6 @@
1
- import { $Block } from "../block.schema";
1
+ import { $Block, $BlockAuth } from "../block.schema";
2
2
  import { $JobAssert } from "../job/job.schema";
3
- import { $Dependency } from "../../../engine/dependency";
3
+ import { Tag } from "../../../engine/dependency";
4
4
  import { AnyTrxNode } from "../../../engine/transaction/trx_node";
5
5
  import { MachineOutput } from './machine';
6
6
  /**
@@ -11,14 +11,14 @@ export declare class $MachineTransition extends $Block {
11
11
  module: string;
12
12
  name: string;
13
13
  alias: string;
14
- authn: string[];
15
- msg: $Dependency;
14
+ auth: $BlockAuth[];
15
+ msg: Tag;
16
16
  from: string;
17
17
  to: string;
18
18
  condition?: $JobAssert<any, any, never, any> | undefined;
19
- jobs: $Dependency[];
19
+ jobs: Tag[];
20
20
  $t: any;
21
- constructor(module: string, name: string, alias: string, authn: string[], msg: $Dependency, from: string, to: string, condition?: $JobAssert<any, any, never, any> | undefined, jobs?: $Dependency[]);
21
+ constructor(module: string, name: string, alias: string, auth: $BlockAuth[], msg: Tag, from: string, to: string, condition?: $JobAssert<any, any, never, any> | undefined, jobs?: Tag[]);
22
22
  }
23
23
  export type $MachineTransitions = {
24
24
  from: {
@@ -40,25 +40,25 @@ export declare class $MachineState extends $Block {
40
40
  module: string;
41
41
  name: string;
42
42
  alias: string;
43
- authn: string[];
43
+ auth: $BlockAuth[];
44
44
  initial: boolean;
45
45
  final: boolean;
46
- inputEnter: $Dependency[];
47
- inputLeave: $Dependency[];
46
+ inputEnter: Tag[];
47
+ inputLeave: Tag[];
48
48
  jobs: {
49
- beforeEnter?: $Dependency;
50
- afterEnter?: $Dependency;
51
- beforeLeave?: $Dependency;
52
- afterLeave?: $Dependency;
49
+ beforeEnter?: Tag;
50
+ afterEnter?: Tag;
51
+ beforeLeave?: Tag;
52
+ afterLeave?: Tag;
53
53
  };
54
54
  $t: any;
55
55
  '#input.enter': any;
56
56
  '#input.leave': any;
57
- constructor(module: string, name: string, alias: string, authn: string[], initial: boolean, final: boolean, inputEnter: $Dependency[], inputLeave: $Dependency[], jobs: {
58
- beforeEnter?: $Dependency;
59
- afterEnter?: $Dependency;
60
- beforeLeave?: $Dependency;
61
- afterLeave?: $Dependency;
57
+ constructor(module: string, name: string, alias: string, auth: $BlockAuth[], initial: boolean, final: boolean, inputEnter: Tag[], inputLeave: Tag[], jobs: {
58
+ beforeEnter?: Tag;
59
+ afterEnter?: Tag;
60
+ beforeLeave?: Tag;
61
+ afterLeave?: Tag;
62
62
  });
63
63
  }
64
64
  export type $MachineStates = {
@@ -72,10 +72,10 @@ export declare class $Machine extends $Block {
72
72
  module: string;
73
73
  name: string;
74
74
  alias: string;
75
- authn: string[];
76
- input: $Dependency[];
77
- buckets: $Dependency[];
78
- jobs: $Dependency[];
75
+ auth: $BlockAuth[];
76
+ input: Tag[];
77
+ buckets: Tag[];
78
+ jobs: Tag[];
79
79
  stateField: string;
80
80
  states: $MachineStates;
81
81
  transitions: $MachineTransitions;
@@ -83,7 +83,7 @@ export declare class $Machine extends $Block {
83
83
  logger?: $MachineLogFn<any> | undefined;
84
84
  $t: "machine";
85
85
  '#data': unknown;
86
- constructor(module: string, name: string, alias: string, authn: string[], input: $Dependency[], buckets: $Dependency[], jobs: $Dependency[], stateField: string, states: $MachineStates, transitions: $MachineTransitions, stateAliasField?: string | undefined, logger?: $MachineLogFn<any> | undefined);
86
+ constructor(module: string, name: string, alias: string, auth: $BlockAuth[], input: Tag[], buckets: Tag[], jobs: Tag[], stateField: string, states: $MachineStates, transitions: $MachineTransitions, stateAliasField?: string | undefined, logger?: $MachineLogFn<any> | undefined);
87
87
  }
88
88
  /**
89
89
  * @category Schemas
@@ -8,12 +8,12 @@ const block_schema_1 = require("../block.schema");
8
8
  * @subcategory Block
9
9
  */
10
10
  class $MachineTransition extends block_schema_1.$Block {
11
- constructor(module, name, alias, authn, msg, from, to, condition, jobs = []) {
12
- super(module, name, alias, authn, [msg], {});
11
+ constructor(module, name, alias, auth, msg, from, to, condition, jobs = []) {
12
+ super(module, name, alias, auth, [msg], {});
13
13
  this.module = module;
14
14
  this.name = name;
15
15
  this.alias = alias;
16
- this.authn = authn;
16
+ this.auth = auth;
17
17
  this.msg = msg;
18
18
  this.from = from;
19
19
  this.to = to;
@@ -29,12 +29,12 @@ exports.$MachineTransition = $MachineTransition;
29
29
  * @subcategory Block
30
30
  */
31
31
  class $MachineState extends block_schema_1.$Block {
32
- constructor(module, name, alias, authn, initial, final, inputEnter, inputLeave, jobs) {
33
- super(module, name, alias, authn, [...inputEnter, ...inputLeave], {});
32
+ constructor(module, name, alias, auth, initial, final, inputEnter, inputLeave, jobs) {
33
+ super(module, name, alias, auth, [...inputEnter, ...inputLeave], {});
34
34
  this.module = module;
35
35
  this.name = name;
36
36
  this.alias = alias;
37
- this.authn = authn;
37
+ this.auth = auth;
38
38
  this.initial = initial;
39
39
  this.final = final;
40
40
  this.inputEnter = inputEnter;
@@ -49,12 +49,12 @@ exports.$MachineState = $MachineState;
49
49
  * @subcategory Block
50
50
  */
51
51
  class $Machine extends block_schema_1.$Block {
52
- constructor(module, name, alias, authn, input, buckets, jobs, stateField, states, transitions, stateAliasField, logger) {
53
- super(module, name, alias, authn, input, {});
52
+ constructor(module, name, alias, auth, input, buckets, jobs, stateField, states, transitions, stateAliasField, logger) {
53
+ super(module, name, alias, auth, input, {});
54
54
  this.module = module;
55
55
  this.name = name;
56
56
  this.alias = alias;
57
- this.authn = authn;
57
+ this.auth = auth;
58
58
  this.input = input;
59
59
  this.buckets = buckets;
60
60
  this.jobs = jobs;
@@ -60,3 +60,4 @@ export declare class MachineStateBuilder<S extends $Space, M extends $Module, $M
60
60
  };
61
61
  }
62
62
  export type MachineStateDef<S extends $Space, M extends $Module, $M extends $Machine, State extends $MachineState> = ($: MachineStateBuilder<S, M, $M, State>) => any;
63
+ export type AnyMachineStateBuilder = MachineStateBuilder<any, any, any, any>;