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
@@ -1,7 +1,7 @@
1
- import { $Block } from "../block.schema";
1
+ import { $Block, $BlockAuth } from "../block.schema";
2
2
  import { $Bucket } from "../../entities/bucket/bucket.schema";
3
3
  import { $Message } from "../../entities/message/message.schema";
4
- import { $Dependency } from "../../../engine/dependency";
4
+ import { Tag } from "../../../engine/dependency";
5
5
  /**
6
6
  * @category Schemas
7
7
  * @subcategory Block
@@ -10,14 +10,14 @@ export declare class $Resource extends $Block {
10
10
  module: string;
11
11
  name: string;
12
12
  alias: string;
13
- authn: string[];
14
- bucket: $Dependency;
13
+ auth: $BlockAuth[];
14
+ bucket: Tag;
15
15
  jobs: {
16
- view?: $Dependency;
17
- query?: $Dependency;
18
- create?: $Dependency;
19
- update?: $Dependency;
20
- delete?: $Dependency;
16
+ view?: Tag;
17
+ query?: Tag;
18
+ create?: Tag;
19
+ update?: Tag;
20
+ delete?: Tag;
21
21
  };
22
22
  $t: "resource";
23
23
  '#bucket': $Bucket;
@@ -26,11 +26,11 @@ export declare class $Resource extends $Block {
26
26
  '#input.create': $Message;
27
27
  '#input.update': $Message;
28
28
  '#input.delete': $Message;
29
- constructor(module: string, name: string, alias: string, authn: string[], bucket: $Dependency, jobs: {
30
- view?: $Dependency;
31
- query?: $Dependency;
32
- create?: $Dependency;
33
- update?: $Dependency;
34
- delete?: $Dependency;
29
+ constructor(module: string, name: string, alias: string, auth: $BlockAuth[], bucket: Tag, jobs: {
30
+ view?: Tag;
31
+ query?: Tag;
32
+ create?: Tag;
33
+ update?: Tag;
34
+ delete?: Tag;
35
35
  });
36
36
  }
@@ -8,24 +8,24 @@ const dependency_1 = require("../../../engine/dependency");
8
8
  * @subcategory Block
9
9
  */
10
10
  class $Resource extends block_schema_1.$Block {
11
- constructor(module, name, alias, authn, bucket, jobs) {
11
+ constructor(module, name, alias, auth, bucket, jobs) {
12
12
  const input = [];
13
13
  if (jobs.view)
14
- input.push(new dependency_1.$Dependency(module, 'message', jobs.view.name));
14
+ input.push(new dependency_1.Tag(module, 'message', jobs.view.name));
15
15
  if (jobs.query)
16
- input.push(new dependency_1.$Dependency(module, 'message', jobs.query.name));
16
+ input.push(new dependency_1.Tag(module, 'message', jobs.query.name));
17
17
  if (jobs.create)
18
- input.push(new dependency_1.$Dependency(module, 'message', jobs.create.name));
18
+ input.push(new dependency_1.Tag(module, 'message', jobs.create.name));
19
19
  if (jobs.update)
20
- input.push(new dependency_1.$Dependency(module, 'message', jobs.update.name));
20
+ input.push(new dependency_1.Tag(module, 'message', jobs.update.name));
21
21
  if (jobs.delete)
22
- input.push(new dependency_1.$Dependency(module, 'message', jobs.delete.name));
22
+ input.push(new dependency_1.Tag(module, 'message', jobs.delete.name));
23
23
  // TODO: Input dependencies
24
- super(module, name, alias, authn, input, {});
24
+ super(module, name, alias, auth, input, {});
25
25
  this.module = module;
26
26
  this.name = name;
27
27
  this.alias = alias;
28
- this.authn = authn;
28
+ this.auth = auth;
29
29
  this.bucket = bucket;
30
30
  this.jobs = jobs;
31
31
  this.$t = 'resource';
@@ -14,8 +14,8 @@ import { $Message } from "../../entities/message/message.schema";
14
14
  export declare class TopicBuilder<Space extends $Space, Module extends $Module, Topic extends $Topic> extends BlockBuilder<Space, Module, 'topic'> {
15
15
  $b: "topic";
16
16
  constructor(module: string, name: string);
17
- authn<U extends keyof Space['authnUsers']>(...providers: U[]): TopicBuilder<Space, Module, Overlay<Topic, {
18
- "#authn": { [K in U]: Space["authnUsers"][U]; };
17
+ auth<U extends keyof Space['authnUsers']>(provider: U, resolver?: (user: Space['authnUsers'][U]) => boolean): TopicBuilder<Space, Module, Overlay<Topic, {
18
+ "#authn": Topic["#authn"] & { [K in U]: Space["authnUsers"][U]; };
19
19
  }>>;
20
20
  message<Name extends string, Def extends MessageTemplateDef<Space, Module, Name>, FullName extends string = `${Topic['name']}${Name extends '' ? '' : '.'}${Name & string}`, Msg extends $Message = $MessageInfer<FullName, ($: any) => ReturnType<Def>>>(name: Name, def: Def): TopicBuilder<Space, Overlay<Module, {
21
21
  messages: Overlay<Module["messages"], { [K in FullName]: Msg; }>;
@@ -14,8 +14,8 @@ class TopicBuilder extends block_builder_1.BlockBuilder {
14
14
  this.$b = 'topic';
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
  /* [Topic] */
21
21
  message(name, def) {
@@ -26,8 +26,8 @@ class TopicBuilder extends block_builder_1.BlockBuilder {
26
26
  }
27
27
  // Build
28
28
  static build(node, tree, module) {
29
- const input = node.builder._inputMsgs;
30
- node.schema = new topic_schema_1.$Topic(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._authn, input, node.builder._output);
29
+ const input = node.builder._inputMsgs.map(m => m.tag);
30
+ node.schema = new topic_schema_1.$Topic(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._auth, input, node.builder._output);
31
31
  return {
32
32
  schema: node.schema,
33
33
  inlineMessages: message_builder_1.MessageBuilder.buildInlines(node, tree, module)
@@ -14,7 +14,7 @@ export declare class Topic<S extends $Space, M extends $Module, $ extends $Topic
14
14
  private subscriptions;
15
15
  constructor(module: Module<any, M>, schema: $);
16
16
  protected run(trx: TrxNode<S, M, $['#authn']>, msg: AnyMessage, _ctx?: Record<string, any>): Promise<void>;
17
- subscribe(trx: TrxNode<S, M, $['#authn']>, fn: (msg: AnyMessage) => void): string;
18
- unsubscribe(trx: TrxNode<S, M, $['#authn']>, id: string): void;
17
+ subscribe(trx: TrxNode<S, M, $['#authn']>, fn: (msg: AnyMessage) => void): Promise<string>;
18
+ unsubscribe(trx: TrxNode<S, M, $['#authn']>, id: string): Promise<void>;
19
19
  }
20
20
  export type AnyTopic = Topic<any, any, any>;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Topic = void 0;
4
4
  const trx_node_1 = require("../../../engine/transaction/trx_node");
5
5
  const block_1 = require("../block");
6
- const crypto_1 = require("crypto");
7
6
  const log_1 = require("../../../engine/util/log");
7
+ const random_1 = require("../../../engine/util/random");
8
8
  class Topic extends block_1.Block {
9
9
  constructor(module, schema) {
10
10
  super('topic', module, schema);
@@ -15,7 +15,7 @@ class Topic extends block_1.Block {
15
15
  // Publish
16
16
  async run(trx, msg, _ctx = {}) {
17
17
  // Check authentication
18
- trx_node_1.TrxNode.checkAuthn(trx, this.schema.authn);
18
+ await trx_node_1.TrxNode.checkAuth(trx, this.schema.auth);
19
19
  for (const id in this.subscriptions) {
20
20
  try {
21
21
  this.subscriptions[id].fn(msg);
@@ -26,18 +26,18 @@ class Topic extends block_1.Block {
26
26
  }
27
27
  }
28
28
  }
29
- subscribe(trx, fn) {
29
+ async subscribe(trx, fn) {
30
30
  // Check authentication
31
- trx_node_1.TrxNode.checkAuthn(trx, this.schema.authn);
32
- const id = (0, crypto_1.randomUUID)();
31
+ await trx_node_1.TrxNode.checkAuth(trx, this.schema.auth);
32
+ const id = random_1.Random.uuid();
33
33
  this.subscriptions[id] = {
34
34
  id, fn
35
35
  };
36
36
  return id;
37
37
  }
38
- unsubscribe(trx, id) {
38
+ async unsubscribe(trx, id) {
39
39
  // Check authentication
40
- trx_node_1.TrxNode.checkAuthn(trx, this.schema.authn);
40
+ await trx_node_1.TrxNode.checkAuth(trx, this.schema.auth);
41
41
  delete this.subscriptions[id];
42
42
  }
43
43
  }
@@ -1,5 +1,5 @@
1
- import { $Dependency } from "../../../engine/dependency";
2
- import { $Block, $BlockOutput } from '../block.schema';
1
+ import { Tag } from "../../../engine/dependency";
2
+ import { $Block, $BlockOutput, $BlockAuth } from '../block.schema';
3
3
  /**
4
4
  * @category Schemas
5
5
  * @subcategory Block
@@ -8,10 +8,10 @@ export declare class $Topic extends $Block {
8
8
  module: string;
9
9
  name: string;
10
10
  alias: string;
11
- authn: string[];
12
- input: $Dependency[];
11
+ auth: $BlockAuth[];
12
+ input: Tag[];
13
13
  output: $BlockOutput | undefined;
14
14
  $t: "topic";
15
- dependencies: $Dependency[];
16
- constructor(module: string, name: string, alias: string, authn: string[], input: $Dependency[], output: $BlockOutput | undefined);
15
+ dependencies: Tag[];
16
+ constructor(module: string, name: string, alias: string, auth: $BlockAuth[], input: Tag[], output: $BlockOutput | undefined);
17
17
  }
@@ -7,12 +7,12 @@ const block_schema_1 = require("../block.schema");
7
7
  * @subcategory Block
8
8
  */
9
9
  class $Topic extends block_schema_1.$Block {
10
- constructor(module, name, alias, authn, input, output) {
11
- super(module, name, alias, authn, input, output);
10
+ constructor(module, name, alias, auth, input, output) {
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.$t = 'topic';
@@ -16,7 +16,7 @@ class CLIControllerAdapter extends controller_adapter_1.ControllerAdapter {
16
16
  }
17
17
  makeEndpoint(path, schema) {
18
18
  this.endpoints[path] = new controller_1.ControllerEndpoint(schema, this, path);
19
- log_1.Log.debug('controller', this.schema.name, `Bound endpoint '${path}' to '${schema.target.tag}'`);
19
+ log_1.Log.debug('controller', this.schema.name, `Bound endpoint '${path}' to '${schema.target}'`);
20
20
  }
21
21
  makeTopic(schema) {
22
22
  this.topics[schema.name] = new controller_1.ControllerTopic(schema, this, schema.name);
@@ -1,7 +1,7 @@
1
1
  import { AnyTrxNode } from "../../../../engine/transaction/trx_node";
2
2
  import { $Controller, $ControllerDomain, $ControllerEndpoint, $ControllerGroup, $ControllerTopic } from '../controller.schema';
3
3
  import { AnyDaemon } from "../../../../engine/daemon";
4
- import { AuthnRequest } from "../../../../engine/auth/authn";
4
+ import { AuthRequest } from "../../../../engine/auth/authn";
5
5
  import { $Module } from "../../..";
6
6
  export type ControllerEndpointPath = ($ControllerDomain | $ControllerGroup | $ControllerEndpoint)[];
7
7
  /**
@@ -13,7 +13,7 @@ export declare abstract class ControllerAdapter {
13
13
  protected schema: $Controller;
14
14
  protected daemon?: AnyDaemon;
15
15
  constructor(module: $Module, schema: $Controller);
16
- trx(fn: (trx: AnyTrxNode) => Promise<any>, authn?: AuthnRequest<any>): Promise<import("../../../../engine/transaction/trx").TrxStatus<any>>;
16
+ trx(fn: (trx: AnyTrxNode) => Promise<any>, auth?: AuthRequest<any>): Promise<import("../../../../engine/transaction/trx").TrxStatus<any>>;
17
17
  bind(daemon: AnyDaemon): void;
18
18
  protected abstract makeEndpoint(path: string, schema: $ControllerEndpoint): void;
19
19
  protected abstract makeTopic(schema: $ControllerTopic): void;
@@ -11,13 +11,13 @@ class ControllerAdapter {
11
11
  this.module = module;
12
12
  this.schema = schema;
13
13
  }
14
- async trx(fn, authn) {
14
+ async trx(fn, auth) {
15
15
  if (!this.daemon) {
16
16
  throw new Error('Controller not bound to a daemon');
17
17
  }
18
18
  try {
19
19
  return await this.daemon.trx(this.schema.module)
20
- .authn(authn)
20
+ .auth(auth)
21
21
  .run(fn);
22
22
  }
23
23
  catch (e) {
@@ -1,9 +1,10 @@
1
1
  import { $Module, $Space } from "../../../schema";
2
2
  import { $Controller, $ControllerDomain, $ControllerEndpoint, $ControllerGroup, $ControllerTopic } from './controller.schema';
3
3
  import { $Message } from "../../entities/message/message.schema";
4
- import { $Dependency, ResolvedBuilderNode } from "../../../engine/dependency";
4
+ import { Dependency, ResolvedBuilderNode, Tag } from "../../../engine/dependency";
5
5
  import { $Topic } from "../../blocks/topic/topic.schema";
6
6
  import { DeepPartial } from "../../../engine/util/deep";
7
+ import { $BlockAuth } from "../../blocks/block.schema";
7
8
  type JobsSupportingMsg<M extends $Module, Msg extends $Message> = {
8
9
  [J in keyof M['jobs']]: Msg extends M['jobs'][J]['#input'] ? J : never;
9
10
  }[keyof M['jobs']];
@@ -20,15 +21,15 @@ type MachinesSupportingMsg<M extends $Module, Msg extends $Message> = {
20
21
  export declare class ControllerEndpointBuilder<S extends $Space, M extends $Module, Msg extends $Message = never> {
21
22
  private module;
22
23
  private name;
23
- private _authn;
24
+ private _auth;
24
25
  private _alias?;
25
26
  private _tags;
26
27
  private _msg;
27
28
  private _target;
28
29
  private _implicit?;
29
- constructor(module: string, name: string, _authn?: string[]);
30
+ constructor(module: string, name: string, _auth?: $BlockAuth[]);
30
31
  as(alias: string): this;
31
- authn<U extends keyof S['authnUsers']>(providers: U | U[]): this;
32
+ auth<U extends keyof S['authnUsers']>(provider: U, resolver?: (user: S['authnUsers'][U]) => boolean): this;
32
33
  tag(tag: string): this;
33
34
  tags(tags: string[]): this;
34
35
  msg<K extends keyof M['messages']>(msg: K): ControllerEndpointBuilder<S, M, M["messages"][K]>;
@@ -44,13 +45,13 @@ export declare class ControllerEndpointBuilder<S extends $Space, M extends $Modu
44
45
  export declare class ControllerTopicBuilder<S extends $Space, Topic extends $Topic> {
45
46
  private module;
46
47
  private topic;
47
- private _authn;
48
+ private _auth;
48
49
  private _alias?;
49
50
  private _tags;
50
51
  private _msgs;
51
- constructor(module: string, topic: $Dependency, _authn?: string[]);
52
+ constructor(module: string, topic: Dependency, _auth?: $BlockAuth[]);
52
53
  as(alias: string): this;
53
- authn<U extends keyof S['authnUsers']>(providers: U | U[]): this;
54
+ auth<U extends keyof S['authnUsers']>(provider: U, resolver?: (user: S['authnUsers'][U]) => boolean): this;
54
55
  msg(name: Topic['#input']['#raw']['$']): this;
55
56
  static build(builder: ControllerTopicBuilder<any, any>): $ControllerTopic;
56
57
  }
@@ -61,13 +62,13 @@ export declare class ControllerTopicBuilder<S extends $Space, Topic extends $Top
61
62
  export declare class ControllerGroupBuilder<S extends $Space, M extends $Module> {
62
63
  private module;
63
64
  protected name: string;
64
- protected _authn: string[];
65
+ protected _auth: $BlockAuth[];
65
66
  protected _alias?: string;
66
67
  protected groups: Record<string, ControllerGroupBuilder<any, any>>;
67
68
  protected endpoints: Record<string, ControllerEndpointBuilder<any, any>>;
68
- constructor(module: string, name: string, _authn?: string[]);
69
+ constructor(module: string, name: string, _auth?: $BlockAuth[]);
69
70
  as(alias: string): this;
70
- authn<U extends keyof S['authnUsers']>(providers: U | U[]): this;
71
+ auth<U extends keyof S['authnUsers']>(provider: U, resolver?: (user: S['authnUsers'][U]) => boolean): this;
71
72
  endpoint(name: string, $: ControllerEndpointDef<S, M>): this;
72
73
  group(name: string, $: ControllerGroupDef<S, M>): this;
73
74
  static build(builder: ControllerGroupBuilder<any, any>): $ControllerGroup;
@@ -92,16 +93,16 @@ export declare class ControllerBuilder<S extends $Space, M extends $Module> {
92
93
  private name;
93
94
  $b: "controller";
94
95
  private _alias?;
95
- private _authn;
96
+ private _auth;
96
97
  private domains;
97
98
  protected topics: Record<string, ControllerTopicBuilder<any, any>>;
98
99
  constructor(module: string, name: string);
99
100
  as(alias: string): this;
100
- authn<U extends keyof S['authnUsers']>(providers: U | U[]): this;
101
+ auth<U extends keyof S['authnUsers']>(provider: U, resolver?: (user: S['authnUsers'][U]) => boolean): this;
101
102
  domain(name: string, $: ControllerDomainDef<S, M>): this;
102
103
  topic<T extends keyof M['topics']>(name: T, $: ControllerTopicDef<S, M['topics'][T]>): this;
103
104
  static build(node: ControllerBuilderNode): $Controller;
104
- static buildInput(group: $ControllerGroup): $Dependency[];
105
+ static buildInput(group: $ControllerGroup): Tag[];
105
106
  static buildDomains(builders: Record<string, ControllerDomainBuilder<any, any>>): Record<string, $ControllerDomain>;
106
107
  static buildTopics(builders: Record<string, ControllerTopicBuilder<any, any>>): Record<string, $ControllerTopic>;
107
108
  }
@@ -8,21 +8,22 @@ const dependency_1 = require("../../../engine/dependency");
8
8
  * @subcategory Edge
9
9
  */
10
10
  class ControllerEndpointBuilder {
11
- constructor(module, name, _authn = []) {
11
+ constructor(module, name, _auth = []) {
12
12
  this.module = module;
13
13
  this.name = name;
14
- this._authn = _authn;
14
+ this._auth = _auth;
15
15
  this._tags = [];
16
16
  }
17
17
  as(alias) {
18
18
  this._alias = alias;
19
19
  return this;
20
20
  }
21
- authn(providers) {
22
- if (!Array.isArray(providers)) {
23
- providers = [providers];
24
- }
25
- this._authn = providers;
21
+ auth(provider, resolver) {
22
+ this._auth ?? (this._auth = []);
23
+ this._auth.push({
24
+ provider: provider,
25
+ resolver: resolver
26
+ });
26
27
  return this;
27
28
  }
28
29
  tag(tag) {
@@ -34,26 +35,30 @@ class ControllerEndpointBuilder {
34
35
  return this;
35
36
  }
36
37
  msg(msg) {
37
- this._msg = new dependency_1.$Dependency(this.module, 'message', msg);
38
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'message', msg);
39
+ this._msg = new dependency_1.Dependency(this.module, tag, { compile: true, runtime: true });
38
40
  return this;
39
41
  }
40
42
  toJob(job, implicit) {
41
- this._target = new dependency_1.$Dependency(this.module, 'job', job);
43
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'job', job);
44
+ this._target = new dependency_1.Dependency(this.module, tag, { compile: true, runtime: true });
42
45
  this._implicit = implicit;
43
46
  return this;
44
47
  }
45
48
  toResource(resource, implicit) {
46
- this._target = new dependency_1.$Dependency(this.module, 'resource', resource);
49
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'resource', resource);
50
+ this._target = new dependency_1.Dependency(this.module, tag, { compile: true, runtime: true });
47
51
  this._implicit = implicit;
48
52
  return this;
49
53
  }
50
54
  toMachine(machine, implicit) {
51
- this._target = new dependency_1.$Dependency(this.module, 'machine', machine);
55
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'machine', machine);
56
+ this._target = new dependency_1.Dependency(this.module, tag, { compile: true, runtime: true });
52
57
  this._implicit = implicit;
53
58
  return this;
54
59
  }
55
60
  static build(builder) {
56
- return new controller_schema_1.$ControllerEndpoint(builder.name, builder._alias || builder.name, builder._authn, builder._tags, builder._msg, builder._target, builder._implicit);
61
+ return new controller_schema_1.$ControllerEndpoint(builder.name, builder._alias || builder.name, builder._auth, builder._tags, builder._msg.tag, builder._target.tag, builder._implicit);
57
62
  }
58
63
  }
59
64
  exports.ControllerEndpointBuilder = ControllerEndpointBuilder;
@@ -62,10 +67,10 @@ exports.ControllerEndpointBuilder = ControllerEndpointBuilder;
62
67
  * @subcategory Edge
63
68
  */
64
69
  class ControllerTopicBuilder {
65
- constructor(module, topic, _authn = []) {
70
+ constructor(module, topic, _auth = []) {
66
71
  this.module = module;
67
72
  this.topic = topic;
68
- this._authn = _authn;
73
+ this._auth = _auth;
69
74
  this._tags = [];
70
75
  this._msgs = [];
71
76
  }
@@ -73,19 +78,21 @@ class ControllerTopicBuilder {
73
78
  this._alias = alias;
74
79
  return this;
75
80
  }
76
- authn(providers) {
77
- if (!Array.isArray(providers)) {
78
- providers = [providers];
79
- }
80
- this._authn = providers;
81
+ auth(provider, resolver) {
82
+ this._auth ?? (this._auth = []);
83
+ this._auth.push({
84
+ provider: provider,
85
+ resolver: resolver
86
+ });
81
87
  return this;
82
88
  }
83
89
  msg(name) {
84
- this._msgs.push(new dependency_1.$Dependency(this.module, 'message', name));
90
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'message', name);
91
+ this._msgs.push(new dependency_1.Dependency(this.module, tag, { compile: true, runtime: true }));
85
92
  return this;
86
93
  }
87
94
  static build(builder) {
88
- return new controller_schema_1.$ControllerTopic(builder.topic.name, builder._alias || builder.topic.name, builder._authn, builder._tags, builder._msgs, builder.topic);
95
+ return new controller_schema_1.$ControllerTopic(builder.topic.tag.name, builder._alias || builder.topic.tag.name, builder._auth, builder._tags, builder._msgs.map(m => m.tag), builder.topic.tag);
89
96
  }
90
97
  }
91
98
  exports.ControllerTopicBuilder = ControllerTopicBuilder;
@@ -94,10 +101,10 @@ exports.ControllerTopicBuilder = ControllerTopicBuilder;
94
101
  * @subcategory Edge
95
102
  */
96
103
  class ControllerGroupBuilder {
97
- constructor(module, name, _authn = []) {
104
+ constructor(module, name, _auth = []) {
98
105
  this.module = module;
99
106
  this.name = name;
100
- this._authn = _authn;
107
+ this._auth = _auth;
101
108
  this.groups = {};
102
109
  this.endpoints = {};
103
110
  }
@@ -105,21 +112,22 @@ class ControllerGroupBuilder {
105
112
  this._alias = alias;
106
113
  return this;
107
114
  }
108
- authn(providers) {
109
- if (!Array.isArray(providers)) {
110
- providers = [providers];
111
- }
112
- this._authn = providers;
115
+ auth(provider, resolver) {
116
+ this._auth ?? (this._auth = []);
117
+ this._auth.push({
118
+ provider: provider,
119
+ resolver: resolver
120
+ });
113
121
  return this;
114
122
  }
115
123
  endpoint(name, $) {
116
- const builder = new ControllerEndpointBuilder(this.module, name, this._authn);
124
+ const builder = new ControllerEndpointBuilder(this.module, name, this._auth);
117
125
  $(builder);
118
126
  this.endpoints[name] = builder;
119
127
  return this;
120
128
  }
121
129
  group(name, $) {
122
- const builder = new ControllerGroupBuilder(this.module, name, this._authn);
130
+ const builder = new ControllerGroupBuilder(this.module, name, this._auth);
123
131
  $(builder);
124
132
  this.groups[name] = builder;
125
133
  return this;
@@ -127,7 +135,7 @@ class ControllerGroupBuilder {
127
135
  static build(builder) {
128
136
  const endpoints = this.buildEndpoints(builder.endpoints);
129
137
  const groups = this.buildGroups(builder.groups);
130
- return new controller_schema_1.$ControllerGroup(builder.name, builder._alias || builder.name, builder._authn, groups, endpoints);
138
+ return new controller_schema_1.$ControllerGroup(builder.name, builder._alias || builder.name, builder._auth, groups, endpoints);
131
139
  }
132
140
  static buildGroups(builders) {
133
141
  const groups = {};
@@ -162,7 +170,7 @@ class ControllerDomainBuilder extends ControllerGroupBuilder {
162
170
  }
163
171
  static build(builder) {
164
172
  const group = ControllerGroupBuilder.build(builder);
165
- return new controller_schema_1.$ControllerDomain(group.name, group.alias, group.authn, builder._version, group.groups, group.endpoints);
173
+ return new controller_schema_1.$ControllerDomain(group.name, group.alias, group.auth, builder._version, group.groups, group.endpoints);
166
174
  }
167
175
  }
168
176
  exports.ControllerDomainBuilder = ControllerDomainBuilder;
@@ -175,7 +183,7 @@ class ControllerBuilder {
175
183
  this.module = module;
176
184
  this.name = name;
177
185
  this.$b = 'controller';
178
- this._authn = [];
186
+ this._auth = [];
179
187
  this.domains = {};
180
188
  this.topics = {};
181
189
  }
@@ -183,23 +191,25 @@ class ControllerBuilder {
183
191
  this._alias = alias;
184
192
  return this;
185
193
  }
186
- authn(providers) {
187
- if (!Array.isArray(providers)) {
188
- providers = [providers];
189
- }
190
- this._authn = providers;
194
+ auth(provider, resolver) {
195
+ this._auth ?? (this._auth = []);
196
+ this._auth.push({
197
+ provider: provider,
198
+ resolver: resolver
199
+ });
191
200
  return this;
192
201
  }
193
202
  domain(name, $) {
194
- const builder = new ControllerDomainBuilder(this.module, name, this._authn);
203
+ const builder = new ControllerDomainBuilder(this.module, name, this._auth);
195
204
  $(builder);
196
205
  const version = builder._version;
197
206
  this.domains[name + '.' + version] = builder;
198
207
  return this;
199
208
  }
200
209
  topic(name, $) {
201
- const topic = new dependency_1.$Dependency(this.module, 'topic', name);
202
- const builder = new ControllerTopicBuilder(this.module, topic, this._authn);
210
+ const tag = dependency_1.Tag.fromNameOrShort(this.module, 'topic', name);
211
+ const topic = new dependency_1.Dependency(this.module, tag, { compile: true, runtime: true });
212
+ const builder = new ControllerTopicBuilder(this.module, topic, this._auth);
203
213
  $(builder);
204
214
  this.topics[name] = builder;
205
215
  return this;
@@ -211,7 +221,7 @@ class ControllerBuilder {
211
221
  const input = Object.values(domains)
212
222
  .map(domain => this.buildInput(domain))
213
223
  .flat();
214
- node.schema = new controller_schema_1.$Controller(node.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._authn, input, domains, topics);
224
+ node.schema = new controller_schema_1.$Controller(node.tag.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._auth, input, domains, topics);
215
225
  return node.schema;
216
226
  }
217
227
  static buildInput(group) {
@@ -4,7 +4,7 @@ import { $Controller, $ControllerEndpoint, $ControllerTopic } from './controller
4
4
  import { ControllerAdapter } from './adapters/controller_adapter';
5
5
  import { ControllerConfig } from './controller.config';
6
6
  import { AnyDaemon } from "../../../engine/daemon";
7
- import { AuthnRequest } from "../../../engine/auth/authn";
7
+ import { AuthRequest } from "../../../engine/auth/authn";
8
8
  import { AnyMessage } from "../../entities/message/message";
9
9
  /**
10
10
  * @category Elements
@@ -15,7 +15,7 @@ export declare class ControllerEndpoint<$ extends $ControllerEndpoint> {
15
15
  adapter: ControllerAdapter;
16
16
  path: string;
17
17
  constructor(schema: $, adapter: ControllerAdapter, path: string);
18
- invoke(data: Record<string, any>, authn?: AuthnRequest<any>): Promise<import("../../../engine/transaction/trx").TrxStatus<any>>;
18
+ invoke(data: Record<string, any>, auth?: AuthRequest<any>): Promise<import("../../../engine/transaction/trx").TrxStatus<any>>;
19
19
  }
20
20
  /**
21
21
  * @category Elements
@@ -26,7 +26,7 @@ export declare class ControllerTopic<$ extends $ControllerTopic> {
26
26
  adapter: ControllerAdapter;
27
27
  path: string;
28
28
  constructor(schema: $, adapter: ControllerAdapter, path: string);
29
- subscribe(fn: (msg: AnyMessage) => void, authn?: AuthnRequest<any>): Promise<string>;
29
+ subscribe(fn: (msg: AnyMessage) => void, auth?: AuthRequest<any>): Promise<string>;
30
30
  unsubscribe(id: string): Promise<string>;
31
31
  }
32
32
  export declare class Controller<S extends $Space, M extends $Module, $ extends $Controller> {