nesoi 3.0.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 (348) hide show
  1. package/lib/adapters/postgres/src/migrator/database.d.ts +37 -0
  2. package/lib/adapters/postgres/src/migrator/database.js +88 -0
  3. package/lib/adapters/postgres/src/migrator/index.d.ts +1 -0
  4. package/lib/adapters/postgres/src/migrator/index.js +5 -0
  5. package/lib/adapters/postgres/src/migrator/migration.d.ts +73 -0
  6. package/lib/adapters/postgres/src/migrator/migration.js +351 -0
  7. package/lib/adapters/postgres/src/migrator/migrator.d.ts +21 -0
  8. package/lib/adapters/postgres/src/migrator/migrator.js +73 -0
  9. package/lib/adapters/postgres/src/migrator/runner.d.ts +61 -0
  10. package/lib/adapters/postgres/src/migrator/runner.js +202 -0
  11. package/lib/adapters/postgres/src/postgres.bucket_adapter.d.ts +45 -0
  12. package/lib/adapters/postgres/src/postgres.bucket_adapter.js +278 -0
  13. package/lib/adapters/postgres/src/postgres.cli.d.ts +46 -0
  14. package/lib/adapters/postgres/src/postgres.cli.js +124 -0
  15. package/lib/adapters/postgres/src/postgres.nql.d.ts +12 -0
  16. package/lib/adapters/postgres/src/postgres.nql.js +69 -0
  17. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.d.ts +1 -0
  18. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +173 -0
  19. package/lib/adapters/postgres/test/postgres.bucket_query.test.d.ts +0 -0
  20. package/lib/adapters/postgres/test/postgres.bucket_query.test.js +136 -0
  21. package/lib/compiler/apps/monolyth/monolyth_compiler.d.ts +21 -0
  22. package/lib/compiler/apps/monolyth/monolyth_compiler.js +95 -0
  23. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +12 -0
  24. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.js +80 -0
  25. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +12 -0
  26. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +128 -0
  27. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +12 -0
  28. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.js +75 -0
  29. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.d.ts +13 -0
  30. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +130 -0
  31. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.d.ts +12 -0
  32. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +65 -0
  33. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.d.ts +12 -0
  34. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.js +74 -0
  35. package/lib/compiler/compiler.d.ts +19 -0
  36. package/lib/compiler/compiler.js +83 -0
  37. package/lib/compiler/elements/bucket.element.d.ts +23 -0
  38. package/lib/compiler/elements/bucket.element.js +304 -0
  39. package/lib/compiler/elements/constants.element.d.ts +9 -0
  40. package/lib/compiler/elements/constants.element.js +88 -0
  41. package/lib/compiler/elements/controller.element.d.ts +6 -0
  42. package/lib/compiler/elements/controller.element.js +22 -0
  43. package/lib/compiler/elements/element.d.ts +49 -0
  44. package/lib/compiler/elements/element.js +105 -0
  45. package/lib/compiler/elements/externals.element.d.ts +19 -0
  46. package/lib/compiler/elements/externals.element.js +83 -0
  47. package/lib/compiler/elements/job.element.d.ts +7 -0
  48. package/lib/compiler/elements/job.element.js +62 -0
  49. package/lib/compiler/elements/machine.element.d.ts +10 -0
  50. package/lib/compiler/elements/machine.element.js +98 -0
  51. package/lib/compiler/elements/message.element.d.ts +9 -0
  52. package/lib/compiler/elements/message.element.js +175 -0
  53. package/lib/compiler/elements/queue.element.d.ts +6 -0
  54. package/lib/compiler/elements/queue.element.js +24 -0
  55. package/lib/compiler/elements/resource.element.d.ts +7 -0
  56. package/lib/compiler/elements/resource.element.js +64 -0
  57. package/lib/compiler/error.d.ts +21 -0
  58. package/lib/compiler/error.js +57 -0
  59. package/lib/compiler/helpers/dump_helpers.d.ts +11 -0
  60. package/lib/compiler/helpers/dump_helpers.js +157 -0
  61. package/lib/compiler/helpers/name_helpers.d.ts +20 -0
  62. package/lib/compiler/helpers/name_helpers.js +44 -0
  63. package/lib/compiler/index.d.ts +2 -0
  64. package/lib/compiler/index.js +7 -0
  65. package/lib/compiler/module.d.ts +24 -0
  66. package/lib/compiler/module.js +122 -0
  67. package/lib/compiler/stages/1_scan_stage.d.ts +10 -0
  68. package/lib/compiler/stages/1_scan_stage.js +23 -0
  69. package/lib/compiler/stages/2_treeshake_stage.d.ts +11 -0
  70. package/lib/compiler/stages/2_treeshake_stage.js +24 -0
  71. package/lib/compiler/stages/3_extract_ts_stage.d.ts +10 -0
  72. package/lib/compiler/stages/3_extract_ts_stage.js +71 -0
  73. package/lib/compiler/stages/4_build_schemas_stage.d.ts +10 -0
  74. package/lib/compiler/stages/4_build_schemas_stage.js +25 -0
  75. package/lib/compiler/stages/5_inject_ts_stage.d.ts +10 -0
  76. package/lib/compiler/stages/5_inject_ts_stage.js +22 -0
  77. package/lib/compiler/stages/6_build_elements_stage.d.ts +11 -0
  78. package/lib/compiler/stages/6_build_elements_stage.js +22 -0
  79. package/lib/compiler/stages/7_dump_stage.d.ts +14 -0
  80. package/lib/compiler/stages/7_dump_stage.js +208 -0
  81. package/lib/compiler/stages/8_diagnose_stage.d.ts +16 -0
  82. package/lib/compiler/stages/8_diagnose_stage.js +43 -0
  83. package/lib/compiler/treeshake.d.ts +58 -0
  84. package/lib/compiler/treeshake.js +424 -0
  85. package/lib/compiler/typescript/bridge/extract.d.ts +11 -0
  86. package/lib/compiler/typescript/bridge/extract.js +270 -0
  87. package/lib/compiler/typescript/bridge/inject.d.ts +10 -0
  88. package/lib/compiler/typescript/bridge/inject.js +140 -0
  89. package/lib/compiler/typescript/bridge/organize.d.ts +61 -0
  90. package/lib/compiler/typescript/bridge/organize.js +258 -0
  91. package/lib/compiler/typescript/error.d.ts +88 -0
  92. package/lib/compiler/typescript/error.js +265 -0
  93. package/lib/compiler/typescript/parser.d.ts +48 -0
  94. package/lib/compiler/typescript/parser.js +581 -0
  95. package/lib/compiler/typescript/source.d.ts +12 -0
  96. package/lib/compiler/typescript/source.js +87 -0
  97. package/lib/compiler/typescript/transformers/app_inject.transformer.d.ts +2 -0
  98. package/lib/compiler/typescript/transformers/app_inject.transformer.js +89 -0
  99. package/lib/compiler/typescript/transformers/replace_import.transformer.d.ts +4 -0
  100. package/lib/compiler/typescript/transformers/replace_import.transformer.js +102 -0
  101. package/lib/compiler/typescript/typescript_compiler.d.ts +63 -0
  102. package/lib/compiler/typescript/typescript_compiler.js +602 -0
  103. package/lib/elements/blocks/block.builder.d.ts +29 -0
  104. package/lib/elements/blocks/block.builder.js +87 -0
  105. package/lib/elements/blocks/block.d.ts +15 -0
  106. package/lib/elements/blocks/block.js +37 -0
  107. package/lib/elements/blocks/block.schema.d.ts +23 -0
  108. package/lib/elements/blocks/block.schema.js +15 -0
  109. package/lib/elements/blocks/externals/externals.builder.d.ts +30 -0
  110. package/lib/elements/blocks/externals/externals.builder.js +37 -0
  111. package/lib/elements/blocks/externals/externals.schema.d.ts +11 -0
  112. package/lib/elements/blocks/externals/externals.schema.js +19 -0
  113. package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +52 -0
  114. package/lib/elements/blocks/job/internal/machine_job.builder.js +74 -0
  115. package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +5 -0
  116. package/lib/elements/blocks/job/internal/machine_job.schema.js +10 -0
  117. package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +109 -0
  118. package/lib/elements/blocks/job/internal/resource_job.builder.js +146 -0
  119. package/lib/elements/blocks/job/internal/resource_job.d.ts +14 -0
  120. package/lib/elements/blocks/job/internal/resource_job.js +30 -0
  121. package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +11 -0
  122. package/lib/elements/blocks/job/internal/resource_job.schema.js +15 -0
  123. package/lib/elements/blocks/job/job.builder.d.ts +118 -0
  124. package/lib/elements/blocks/job/job.builder.js +137 -0
  125. package/lib/elements/blocks/job/job.d.ts +13 -0
  126. package/lib/elements/blocks/job/job.js +40 -0
  127. package/lib/elements/blocks/job/job.schema.d.ts +26 -0
  128. package/lib/elements/blocks/job/job.schema.js +20 -0
  129. package/lib/elements/blocks/machine/machine.builder.d.ts +58 -0
  130. package/lib/elements/blocks/machine/machine.builder.js +135 -0
  131. package/lib/elements/blocks/machine/machine.d.ts +86 -0
  132. package/lib/elements/blocks/machine/machine.js +228 -0
  133. package/lib/elements/blocks/machine/machine.schema.d.ts +85 -0
  134. package/lib/elements/blocks/machine/machine.schema.js +64 -0
  135. package/lib/elements/blocks/machine/machine_state.builder.d.ts +58 -0
  136. package/lib/elements/blocks/machine/machine_state.builder.js +186 -0
  137. package/lib/elements/blocks/machine/machine_transition.builder.d.ts +48 -0
  138. package/lib/elements/blocks/machine/machine_transition.builder.js +98 -0
  139. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +10 -0
  140. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +17 -0
  141. package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +6 -0
  142. package/lib/elements/blocks/queue/adapters/queue_adapter.js +6 -0
  143. package/lib/elements/blocks/queue/queue.builder.d.ts +40 -0
  144. package/lib/elements/blocks/queue/queue.builder.js +31 -0
  145. package/lib/elements/blocks/queue/queue.d.ts +9 -0
  146. package/lib/elements/blocks/queue/queue.js +11 -0
  147. package/lib/elements/blocks/queue/queue.schema.d.ts +12 -0
  148. package/lib/elements/blocks/queue/queue.schema.js +17 -0
  149. package/lib/elements/blocks/resource/resource.builder.d.ts +60 -0
  150. package/lib/elements/blocks/resource/resource.builder.js +224 -0
  151. package/lib/elements/blocks/resource/resource.d.ts +48 -0
  152. package/lib/elements/blocks/resource/resource.js +125 -0
  153. package/lib/elements/blocks/resource/resource.schema.d.ts +32 -0
  154. package/lib/elements/blocks/resource/resource.schema.js +30 -0
  155. package/lib/elements/blocks/resource/resource.types.d.ts +38 -0
  156. package/lib/elements/blocks/resource/resource.types.js +3 -0
  157. package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +8 -0
  158. package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +17 -0
  159. package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +14 -0
  160. package/lib/elements/edge/controller/adapters/controller_adapter.js +44 -0
  161. package/lib/elements/edge/controller/controller.builder.d.ts +78 -0
  162. package/lib/elements/edge/controller/controller.builder.js +178 -0
  163. package/lib/elements/edge/controller/controller.config.d.ts +6 -0
  164. package/lib/elements/edge/controller/controller.config.js +2 -0
  165. package/lib/elements/edge/controller/controller.d.ts +22 -0
  166. package/lib/elements/edge/controller/controller.js +41 -0
  167. package/lib/elements/edge/controller/controller.schema.d.ts +44 -0
  168. package/lib/elements/edge/controller/controller.schema.js +51 -0
  169. package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +107 -0
  170. package/lib/elements/entities/bucket/adapters/bucket_adapter.js +41 -0
  171. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +37 -0
  172. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +149 -0
  173. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
  174. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +218 -0
  175. package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +19 -0
  176. package/lib/elements/entities/bucket/adapters/memory.nql.js +212 -0
  177. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +20 -0
  178. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +31 -0
  179. package/lib/elements/entities/bucket/bucket.builder.d.ts +61 -0
  180. package/lib/elements/entities/bucket/bucket.builder.js +130 -0
  181. package/lib/elements/entities/bucket/bucket.config.d.ts +29 -0
  182. package/lib/elements/entities/bucket/bucket.config.js +2 -0
  183. package/lib/elements/entities/bucket/bucket.d.ts +36 -0
  184. package/lib/elements/entities/bucket/bucket.infer.d.ts +22 -0
  185. package/lib/elements/entities/bucket/bucket.infer.js +85 -0
  186. package/lib/elements/entities/bucket/bucket.js +125 -0
  187. package/lib/elements/entities/bucket/bucket.schema.d.ts +24 -0
  188. package/lib/elements/entities/bucket/bucket.schema.js +16 -0
  189. package/lib/elements/entities/bucket/bucket.types.d.ts +32 -0
  190. package/lib/elements/entities/bucket/bucket.types.js +2 -0
  191. package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +35 -0
  192. package/lib/elements/entities/bucket/cache/bucket_cache.js +182 -0
  193. package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +11 -0
  194. package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +27 -0
  195. package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +16 -0
  196. package/lib/elements/entities/bucket/graph/bucket_graph.infer.d.ts +9 -0
  197. package/lib/elements/entities/bucket/graph/bucket_graph.infer.js +2 -0
  198. package/lib/elements/entities/bucket/graph/bucket_graph.js +136 -0
  199. package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +28 -0
  200. package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +27 -0
  201. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +36 -0
  202. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +56 -0
  203. package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +13 -0
  204. package/lib/elements/entities/bucket/model/bucket_model.builder.js +24 -0
  205. package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +5 -0
  206. package/lib/elements/entities/bucket/model/bucket_model.convert.js +51 -0
  207. package/lib/elements/entities/bucket/model/bucket_model.infer.d.ts +13 -0
  208. package/lib/elements/entities/bucket/model/bucket_model.infer.js +2 -0
  209. package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +35 -0
  210. package/lib/elements/entities/bucket/model/bucket_model.schema.js +47 -0
  211. package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +119 -0
  212. package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +154 -0
  213. package/lib/elements/entities/bucket/query/nql.schema.d.ts +140 -0
  214. package/lib/elements/entities/bucket/query/nql.schema.js +2 -0
  215. package/lib/elements/entities/bucket/query/nql_compiler.d.ts +44 -0
  216. package/lib/elements/entities/bucket/query/nql_compiler.js +620 -0
  217. package/lib/elements/entities/bucket/query/nql_engine.d.ts +16 -0
  218. package/lib/elements/entities/bucket/query/nql_engine.js +42 -0
  219. package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +14 -0
  220. package/lib/elements/entities/bucket/view/bucket_view.builder.js +24 -0
  221. package/lib/elements/entities/bucket/view/bucket_view.d.ts +10 -0
  222. package/lib/elements/entities/bucket/view/bucket_view.js +102 -0
  223. package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +55 -0
  224. package/lib/elements/entities/bucket/view/bucket_view.schema.js +42 -0
  225. package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +37 -0
  226. package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +138 -0
  227. package/lib/elements/entities/constants/constants.builder.d.ts +57 -0
  228. package/lib/elements/entities/constants/constants.builder.js +116 -0
  229. package/lib/elements/entities/constants/constants.d.ts +7 -0
  230. package/lib/elements/entities/constants/constants.js +15 -0
  231. package/lib/elements/entities/constants/constants.schema.d.ts +51 -0
  232. package/lib/elements/entities/constants/constants.schema.js +45 -0
  233. package/lib/elements/entities/message/message.builder.d.ts +33 -0
  234. package/lib/elements/entities/message/message.builder.js +41 -0
  235. package/lib/elements/entities/message/message.d.ts +11 -0
  236. package/lib/elements/entities/message/message.infer.d.ts +63 -0
  237. package/lib/elements/entities/message/message.infer.js +2 -0
  238. package/lib/elements/entities/message/message.js +52 -0
  239. package/lib/elements/entities/message/message.schema.d.ts +15 -0
  240. package/lib/elements/entities/message/message.schema.js +13 -0
  241. package/lib/elements/entities/message/message_parser.d.ts +12 -0
  242. package/lib/elements/entities/message/message_parser.js +112 -0
  243. package/lib/elements/entities/message/template/message_template.builder.d.ts +14 -0
  244. package/lib/elements/entities/message/template/message_template.builder.js +20 -0
  245. package/lib/elements/entities/message/template/message_template.schema.d.ts +57 -0
  246. package/lib/elements/entities/message/template/message_template.schema.js +28 -0
  247. package/lib/elements/entities/message/template/message_template_field.builder.d.ts +225 -0
  248. package/lib/elements/entities/message/template/message_template_field.builder.js +172 -0
  249. package/lib/elements/entities/message/template/message_template_parser.d.ts +3 -0
  250. package/lib/elements/entities/message/template/message_template_parser.js +83 -0
  251. package/lib/elements/index.d.ts +11 -0
  252. package/lib/elements/index.js +23 -0
  253. package/lib/engine/apps/app.config.d.ts +49 -0
  254. package/lib/engine/apps/app.config.js +38 -0
  255. package/lib/engine/apps/app.d.ts +70 -0
  256. package/lib/engine/apps/app.js +101 -0
  257. package/lib/engine/apps/inline.app.d.ts +48 -0
  258. package/lib/engine/apps/inline.app.js +144 -0
  259. package/lib/engine/apps/monolyth/monolyth.app.d.ts +20 -0
  260. package/lib/engine/apps/monolyth/monolyth.app.js +94 -0
  261. package/lib/engine/apps/monolyth/monolyth.cli.d.ts +45 -0
  262. package/lib/engine/apps/monolyth/monolyth.cli.js +362 -0
  263. package/lib/engine/auth/authn.d.ts +18 -0
  264. package/lib/engine/auth/authn.js +9 -0
  265. package/lib/engine/auth/zero.authn_provider.d.ts +13 -0
  266. package/lib/engine/auth/zero.authn_provider.js +13 -0
  267. package/lib/engine/cli/cli.d.ts +19 -0
  268. package/lib/engine/cli/cli.js +88 -0
  269. package/lib/engine/cli/cli_adapter.d.ts +18 -0
  270. package/lib/engine/cli/cli_adapter.js +61 -0
  271. package/lib/engine/cli/ui.d.ts +36 -0
  272. package/lib/engine/cli/ui.js +188 -0
  273. package/lib/engine/daemon.d.ts +35 -0
  274. package/lib/engine/daemon.js +66 -0
  275. package/lib/engine/data/date.d.ts +10 -0
  276. package/lib/engine/data/date.js +32 -0
  277. package/lib/engine/data/datetime.d.ts +12 -0
  278. package/lib/engine/data/datetime.js +31 -0
  279. package/lib/engine/data/decimal.d.ts +11 -0
  280. package/lib/engine/data/decimal.js +70 -0
  281. package/lib/engine/data/error.d.ts +213 -0
  282. package/lib/engine/data/error.js +386 -0
  283. package/lib/engine/data/obj.d.ts +16 -0
  284. package/lib/engine/data/obj.js +5 -0
  285. package/lib/engine/data/tree.d.ts +17 -0
  286. package/lib/engine/data/tree.js +111 -0
  287. package/lib/engine/dependency.d.ts +68 -0
  288. package/lib/engine/dependency.js +91 -0
  289. package/lib/engine/module.d.ts +97 -0
  290. package/lib/engine/module.js +335 -0
  291. package/lib/engine/space.d.ts +54 -0
  292. package/lib/engine/space.js +138 -0
  293. package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +53 -0
  294. package/lib/engine/transaction/nodes/bucket.trx_node.js +522 -0
  295. package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +17 -0
  296. package/lib/engine/transaction/nodes/bucket_query.trx_node.js +82 -0
  297. package/lib/engine/transaction/nodes/job.trx_node.d.ts +13 -0
  298. package/lib/engine/transaction/nodes/job.trx_node.js +40 -0
  299. package/lib/engine/transaction/nodes/machine.trx_node.d.ts +12 -0
  300. package/lib/engine/transaction/nodes/machine.trx_node.js +39 -0
  301. package/lib/engine/transaction/nodes/queue.trx_node.d.ts +10 -0
  302. package/lib/engine/transaction/nodes/queue.trx_node.js +24 -0
  303. package/lib/engine/transaction/nodes/resource.trx_node.d.ts +24 -0
  304. package/lib/engine/transaction/nodes/resource.trx_node.js +77 -0
  305. package/lib/engine/transaction/trx.d.ts +50 -0
  306. package/lib/engine/transaction/trx.js +94 -0
  307. package/lib/engine/transaction/trx_engine.config.d.ts +15 -0
  308. package/lib/engine/transaction/trx_engine.config.js +2 -0
  309. package/lib/engine/transaction/trx_engine.d.ts +27 -0
  310. package/lib/engine/transaction/trx_engine.js +95 -0
  311. package/lib/engine/transaction/trx_node.d.ts +61 -0
  312. package/lib/engine/transaction/trx_node.js +175 -0
  313. package/lib/engine/tree.d.ts +34 -0
  314. package/lib/engine/tree.js +237 -0
  315. package/lib/engine/util/cache.d.ts +6 -0
  316. package/lib/engine/util/cache.js +20 -0
  317. package/lib/engine/util/console.d.ts +4 -0
  318. package/lib/engine/util/console.js +24 -0
  319. package/lib/engine/util/deep.d.ts +7 -0
  320. package/lib/engine/util/deep.js +2 -0
  321. package/lib/engine/util/dotenv.d.ts +15 -0
  322. package/lib/engine/util/dotenv.js +94 -0
  323. package/lib/engine/util/i18n.d.ts +5 -0
  324. package/lib/engine/util/i18n.js +19 -0
  325. package/lib/engine/util/log.d.ts +17 -0
  326. package/lib/engine/util/log.js +93 -0
  327. package/lib/engine/util/parse.d.ts +63 -0
  328. package/lib/engine/util/parse.js +229 -0
  329. package/lib/engine/util/promise.d.ts +3 -0
  330. package/lib/engine/util/promise.js +14 -0
  331. package/lib/engine/util/shell.d.ts +6 -0
  332. package/lib/engine/util/shell.js +44 -0
  333. package/lib/engine/util/string.d.ts +18 -0
  334. package/lib/engine/util/string.js +25 -0
  335. package/lib/engine/util/type.d.ts +7 -0
  336. package/lib/engine/util/type.js +3 -0
  337. package/lib/schema.d.ts +63 -0
  338. package/lib/schema.js +2 -0
  339. package/package.json +22 -0
  340. package/tools/compile.d.ts +1 -0
  341. package/tools/compile.js +68 -0
  342. package/tools/joaquin/job.d.ts +40 -0
  343. package/tools/joaquin/job.js +47 -0
  344. package/tools/joaquin/message.d.ts +12 -0
  345. package/tools/joaquin/message.js +47 -0
  346. package/tools/joaquin/mock.d.ts +28 -0
  347. package/tools/joaquin/mock.js +128 -0
  348. package/tsconfig.build.tsbuildinfo +1 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockBuilder = void 0;
4
+ const message_template_field_builder_1 = require("../entities/message/template/message_template_field.builder");
5
+ const message_builder_1 = require("../entities/message/message.builder");
6
+ const dependency_1 = require("../../engine/dependency");
7
+ const name_helpers_1 = require("../../compiler/helpers/name_helpers");
8
+ class BlockBuilder {
9
+ constructor(module, type, name) {
10
+ this.module = module;
11
+ this.type = type;
12
+ this.name = name;
13
+ this._authn = [];
14
+ // References to all inline nodes, set during builder declaration (before build)
15
+ this._inlineNodes = [];
16
+ this._inputMsgs = [];
17
+ }
18
+ /** Block "human" name */
19
+ as(alias) {
20
+ this._alias = alias;
21
+ return this;
22
+ }
23
+ // Inline Messages
24
+ /**
25
+ * Inline messages. These messages are exposed to the module,
26
+ * with a name prefixed by the block name.
27
+ * @param def Example: `$ => { msg1: { prop1: $.int, prop2: $.string }, msg2: { prop3: $.boolean } }`
28
+ * @returns
29
+ */
30
+ messages(def) {
31
+ const builder = new message_template_field_builder_1.MessageTemplateFieldFactory(this.module);
32
+ const schema = def(builder);
33
+ for (const key in schema) {
34
+ const name = `${this.name}${key.length ? ('.' + key) : ''}`;
35
+ const builder = new message_builder_1.MessageBuilder(this.module, name)
36
+ .template(() => schema[key]);
37
+ this._inlineNodes.push(new dependency_1.BuilderNode({
38
+ module: this.module,
39
+ type: 'message',
40
+ name,
41
+ builder,
42
+ isInline: true,
43
+ filepath: [], // This is added later by Treeshake.blockInlineNodes()
44
+ dependencies: [] // This is added later by Treeshake.*()
45
+ }));
46
+ }
47
+ return this;
48
+ }
49
+ // Authentication
50
+ authn(...providers) {
51
+ if (!Array.isArray(providers)) {
52
+ providers = [providers];
53
+ }
54
+ this._authn = providers;
55
+ return this;
56
+ }
57
+ // Input/Output
58
+ _input(...names) {
59
+ this._inputMsgs = names.map((name) => {
60
+ const fullName = name_helpers_1.NameHelpers.unabbrevName(name, this.name);
61
+ return new dependency_1.$Dependency(this.module, 'message', fullName);
62
+ });
63
+ return this;
64
+ }
65
+ outputRaw() {
66
+ return this;
67
+ }
68
+ outputMsg(...msgs) {
69
+ var _a;
70
+ this._output ?? (this._output = {});
71
+ (_a = this._output).msg ?? (_a.msg = []);
72
+ msgs.forEach(msg => {
73
+ this._output?.msg?.push(new dependency_1.$Dependency(this.module, 'message', msg, true));
74
+ });
75
+ return this;
76
+ }
77
+ outputObj(...objs) {
78
+ var _a;
79
+ this._output ?? (this._output = {});
80
+ (_a = this._output).obj ?? (_a.obj = []);
81
+ objs.forEach(obj => {
82
+ this._output?.obj?.push(new dependency_1.$Dependency(this.module, 'bucket', obj, true));
83
+ });
84
+ return this;
85
+ }
86
+ }
87
+ exports.BlockBuilder = BlockBuilder;
@@ -0,0 +1,15 @@
1
+ import { $Module, $Space, MessageName, RawMessageInput } from "../../schema";
2
+ import { $Block, $BlockType } from './block.schema';
3
+ import { Message } from "../entities/message/message";
4
+ import { Module } from "../../engine/module";
5
+ import { TrxNode } from "../../engine/transaction/trx_node";
6
+ export declare abstract class Block<S extends $Space, M extends $Module, $ extends $Block> {
7
+ type: $BlockType;
8
+ module: Module<S, M>;
9
+ schema: $;
10
+ constructor(type: $BlockType, module: Module<S, M>, schema: $);
11
+ consumeRaw(trx: TrxNode<S, M, $['#authn']>, raw: RawMessageInput<M, MessageName<M>>, ctx?: Record<string, any>): Promise<$['#output']>;
12
+ consume(trx: TrxNode<S, M, $['#authn']>, msg: Message<any>, ctx?: Record<string, any>): Promise<$['#output']>;
13
+ protected abstract run(trx: TrxNode<S, M, $['#authn']>, msg: Message<any>, ctx?: Record<string, any>): Promise<any>;
14
+ }
15
+ export type AnyBlock = Block<any, any, any>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Block = void 0;
4
+ const log_1 = require("../../engine/util/log");
5
+ const error_1 = require("../../engine/data/error");
6
+ class Block {
7
+ constructor(type, module, schema) {
8
+ this.type = type;
9
+ this.module = module;
10
+ this.schema = schema;
11
+ if (schema.$t !== type) {
12
+ throw error_1.NesoiError.Block.InvalidSchema({ name: schema.name, type: schema.$t, expectedType: type });
13
+ }
14
+ }
15
+ async consumeRaw(trx, raw, ctx) {
16
+ log_1.Log.debug('trx', trx.globalId, `${(0, log_1.scopeTag)(this.type, this.schema.name)} Consume Raw`, raw);
17
+ if (!raw.$) {
18
+ throw error_1.NesoiError.Message.NoType({ raw });
19
+ }
20
+ if (typeof raw.$ !== 'string') {
21
+ throw error_1.NesoiError.Message.InvalidType({ type: raw.$ });
22
+ }
23
+ if (!this.schema.input.some(dep => dep.tag === `${this.module.name}::message:${raw.$}`)) {
24
+ throw error_1.NesoiError.Block.MessageNotSupported({ block: this.schema.name, message: raw.$ });
25
+ }
26
+ const msg = (await trx.message(raw));
27
+ return this.run(trx, msg, ctx);
28
+ }
29
+ async consume(trx, msg, ctx) {
30
+ log_1.Log.debug('trx', trx.globalId, `${(0, log_1.scopeTag)(this.type, this.schema.name)} Consume`, msg);
31
+ if (!this.schema.input.some(dep => dep.module === this.module.name && dep.name === msg.$)) {
32
+ throw error_1.NesoiError.Block.MessageNotSupported({ block: this.schema.name, message: msg.$ });
33
+ }
34
+ return this.run(trx, msg, ctx);
35
+ }
36
+ }
37
+ exports.Block = Block;
@@ -0,0 +1,23 @@
1
+ import { TypeAsObj } from "../../compiler/elements/element";
2
+ import { $Message } from "../entities/message/message.schema";
3
+ import { AnyUsers } from "../../engine/auth/authn";
4
+ import { $Dependency } from "../../engine/dependency";
5
+ export type $BlockType = 'job' | 'resource' | 'machine' | 'queue';
6
+ export type $BlockOutput = {
7
+ raw?: TypeAsObj;
8
+ msg?: $Dependency[];
9
+ obj?: $Dependency[];
10
+ };
11
+ export declare class $Block {
12
+ module: string;
13
+ name: string;
14
+ alias: string;
15
+ authn: string[];
16
+ input: $Dependency[];
17
+ output?: $BlockOutput | undefined;
18
+ $t: $BlockType;
19
+ '#authn': AnyUsers;
20
+ '#input': $Message;
21
+ '#output': unknown;
22
+ constructor(module: string, name: string, alias: string, authn: string[], input: $Dependency[], output?: $BlockOutput | undefined);
23
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$Block = void 0;
4
+ class $Block {
5
+ constructor(module, name, alias, authn, input, output) {
6
+ this.module = module;
7
+ this.name = name;
8
+ this.alias = alias;
9
+ this.authn = authn;
10
+ this.input = input;
11
+ this.output = output;
12
+ this.$t = 'block';
13
+ }
14
+ }
15
+ exports.$Block = $Block;
@@ -0,0 +1,30 @@
1
+ import { $Space } from "../../../schema";
2
+ import { $Externals } from './externals.schema';
3
+ import { ResolvedBuilderNode } from "../../../engine/dependency";
4
+ import { MergeUnion } from "../../../engine/util/type";
5
+ type MergeAllBuckets<Space extends $Space, Module extends keyof Space['modules'], Modules extends $Space['modules'] = Space['modules']> = MergeUnion<{
6
+ [M in keyof Modules]: {
7
+ [B in keyof Modules[M]['buckets'] as `${M & string}::${B & string}`]: Modules[M]['buckets'][B];
8
+ };
9
+ }[keyof Modules]>;
10
+ type ExternalBucketRefName<Space extends $Space, M extends keyof Space['modules'], AllBuckets = MergeAllBuckets<Space, M>> = Exclude<keyof AllBuckets, `${M & string}::${string}` | `${string}::${string}::${string}`>;
11
+ export declare class ExternalsBuilder<Space extends $Space, ModuleName extends keyof Space['modules']> {
12
+ private module;
13
+ $b: "externals";
14
+ name: string;
15
+ private buckets;
16
+ private jobs;
17
+ private machines;
18
+ constructor(module: string);
19
+ bucket<M extends keyof Space['modules'], B extends ExternalBucketRefName<Space, ModuleName>>(ref: B): this;
20
+ job<M extends Exclude<keyof Space['modules'], ModuleName>, B extends keyof Space['modules'][M]['jobs']>(ref: `${M & string}::${B & string}`): this;
21
+ machine<M extends Exclude<keyof Space['modules'], ModuleName>, B extends keyof Space['modules'][M]['machines']>(ref: `${M & string}::${B & string}`): this;
22
+ static merge(to: AnyExternalsBuilder, from: AnyExternalsBuilder): void;
23
+ static build(node: ExternalsBuilderNode): $Externals;
24
+ }
25
+ export type AnyExternalsBuilder = ExternalsBuilder<any, any>;
26
+ export type ExternalsBuilderNode = ResolvedBuilderNode & {
27
+ builder: AnyExternalsBuilder;
28
+ schema?: $Externals;
29
+ };
30
+ export {};
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExternalsBuilder = void 0;
4
+ const externals_schema_1 = require("./externals.schema");
5
+ const dependency_1 = require("../../../engine/dependency");
6
+ class ExternalsBuilder {
7
+ constructor(module) {
8
+ this.module = module;
9
+ this.$b = 'externals';
10
+ this.name = '*';
11
+ this.buckets = {};
12
+ this.jobs = {};
13
+ this.machines = {};
14
+ }
15
+ bucket(ref) {
16
+ this.buckets[ref] = new dependency_1.$Dependency(this.module, 'bucket', ref);
17
+ return this;
18
+ }
19
+ job(ref) {
20
+ this.jobs[ref] = new dependency_1.$Dependency(this.module, 'job', ref);
21
+ return this;
22
+ }
23
+ machine(ref) {
24
+ this.machines[ref] = new dependency_1.$Dependency(this.module, 'machine', ref);
25
+ return this;
26
+ }
27
+ static merge(to, from) {
28
+ Object.assign(to.buckets, from.buckets);
29
+ Object.assign(to.jobs, from.jobs);
30
+ }
31
+ // Build
32
+ static build(node) {
33
+ node.schema = new externals_schema_1.$Externals(node.module, node.builder.buckets, node.builder.jobs, node.builder.machines);
34
+ return node.schema;
35
+ }
36
+ }
37
+ exports.ExternalsBuilder = ExternalsBuilder;
@@ -0,0 +1,11 @@
1
+ import { $Dependency } from "../../../engine/dependency";
2
+ export declare class $Externals {
3
+ name: string;
4
+ buckets: Record<string, $Dependency>;
5
+ jobs: Record<string, $Dependency>;
6
+ machines: Record<string, $Dependency>;
7
+ $t: "externals";
8
+ module: string;
9
+ constructor(name: string, buckets?: Record<string, $Dependency>, jobs?: Record<string, $Dependency>, machines?: Record<string, $Dependency>);
10
+ static merge(to: $Externals, from: $Externals): void;
11
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$Externals = void 0;
4
+ class $Externals {
5
+ constructor(name, buckets = {}, jobs = {}, machines = {}) {
6
+ this.name = name;
7
+ this.buckets = buckets;
8
+ this.jobs = jobs;
9
+ this.machines = machines;
10
+ this.$t = 'externals';
11
+ this.module = this.name;
12
+ }
13
+ static merge(to, from) {
14
+ Object.assign(to.buckets, from.buckets);
15
+ Object.assign(to.jobs, from.jobs);
16
+ Object.assign(to.machines, from.machines);
17
+ }
18
+ }
19
+ exports.$Externals = $Externals;
@@ -0,0 +1,52 @@
1
+ import { $Module, $Space } from "../../../../schema";
2
+ import { $Job, $JobAssert, $JobMethod } from '../job.schema';
3
+ import { TrxNode } from "../../../../engine/transaction/trx_node";
4
+ import { BlockBuilder } from '../../block.builder';
5
+ import { $Dependency, ResolvedBuilderNode } from "../../../../engine/dependency";
6
+ import { Overlay } from "../../../../engine/util/type";
7
+ export declare class MachineJobBuilder<Space extends $Space, Module extends $Module, Name extends string, Job extends $Job = $Job, Ctx = {}> extends BlockBuilder<Space, Module, 'job'> {
8
+ protected module: string;
9
+ protected name: Name;
10
+ private alias;
11
+ protected _authn: string[];
12
+ protected _inputMsgs: $Dependency[];
13
+ $b: "job";
14
+ $j: "MachineJob";
15
+ private _extrasAndAsserts;
16
+ private _method?;
17
+ private machine;
18
+ constructor(module: string, name: Name, alias: string, _authn?: string[], _inputMsgs?: $Dependency[]);
19
+ /**
20
+ * A function that will build new fields on the input message to be
21
+ * consumed by the job.
22
+ *
23
+ * @param $ A function which returns an object to be assigned to the input.
24
+ */
25
+ extra<Extra extends {
26
+ [_: string]: any;
27
+ }, Trx = NoInfer<TrxNode<Space, Module, Job['#authn']>>, Msg = NoInfer<Job['#input']['#parsed']>, PreviousExtras = NoInfer<Job['#extra']>, C = NoInfer<Ctx>>($: $JobMethod<Trx, Msg, Extra, PreviousExtras, C>): MachineJobBuilder<Space, Module, Name, Overlay<Job, {
28
+ "#extra": Job["#extra"] & Extra;
29
+ }>, Ctx>;
30
+ /**
31
+ * A function that checks a given condition over the input and throws an exception;
32
+ * This assertion runs before the job method.
33
+ *
34
+ * @param { cond } A function which returns true or false
35
+ * @param { error } An error message or a function that makes one
36
+ */
37
+ assert<Trx = NoInfer<TrxNode<Space, Module, Job['#authn']>>, Msg = NoInfer<Job['#input']['#parsed']>, Extras = NoInfer<Job['#extra']>, C = NoInfer<Ctx>>(condition: $JobAssert<Trx, Msg, Extras, Ctx>): this;
38
+ /**
39
+ * The function called when the job is run.
40
+ *
41
+ * @param action A function which returns one of the output messages or the response message
42
+ */
43
+ method<Trx = NoInfer<TrxNode<Space, Module, Job['#authn']>>, Msg = NoInfer<Job['#input']['#parsed']>, Extras = NoInfer<Job['#extra']>, C = NoInfer<Ctx>>(action: $JobMethod<Trx, Msg, any, Extras, C>): this;
44
+ /** Build */
45
+ static build(node: MachineJobBuilderNode, input: $Dependency[]): $Job;
46
+ }
47
+ export type AnyMachineJobBuilder = MachineJobBuilder<any, any, any, any, any>;
48
+ export type MachineJobDef<S extends $Space, M extends $Module, Name extends string, Job extends $Job, Ctx = {}> = ($: MachineJobBuilder<S, M, Name, Job, Ctx>) => void;
49
+ export type MachineJobBuilderNode = Omit<ResolvedBuilderNode, 'builder'> & {
50
+ builder: AnyMachineJobBuilder;
51
+ schema?: $Job;
52
+ };
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MachineJobBuilder = void 0;
4
+ const job_schema_1 = require("../job.schema");
5
+ const block_builder_1 = require("../../block.builder");
6
+ const error_1 = require("../../../../engine/data/error");
7
+ /*
8
+ Job created inside a machine definition
9
+ */
10
+ class MachineJobBuilder extends block_builder_1.BlockBuilder {
11
+ constructor(module, name, alias, _authn = [], _inputMsgs = []) {
12
+ super(module, 'job', name);
13
+ this.module = module;
14
+ this.name = name;
15
+ this.alias = alias;
16
+ this._authn = _authn;
17
+ this._inputMsgs = _inputMsgs;
18
+ this.$b = 'job';
19
+ this.$j = 'MachineJob';
20
+ this._extrasAndAsserts = [];
21
+ this.machine = name.split('@')[0];
22
+ }
23
+ /*
24
+ Extra
25
+ */
26
+ /**
27
+ * A function that will build new fields on the input message to be
28
+ * consumed by the job.
29
+ *
30
+ * @param $ A function which returns an object to be assigned to the input.
31
+ */
32
+ extra($) {
33
+ this._extrasAndAsserts.push({ extra: $ });
34
+ return this;
35
+ }
36
+ /*
37
+ Assert
38
+ */
39
+ /**
40
+ * A function that checks a given condition over the input and throws an exception;
41
+ * This assertion runs before the job method.
42
+ *
43
+ * @param { cond } A function which returns true or false
44
+ * @param { error } An error message or a function that makes one
45
+ */
46
+ assert(condition) {
47
+ this._extrasAndAsserts.push({ assert: condition });
48
+ return this;
49
+ }
50
+ /*
51
+ Action
52
+ */
53
+ /**
54
+ * The function called when the job is run.
55
+ *
56
+ * @param action A function which returns one of the output messages or the response message
57
+ */
58
+ method(action) {
59
+ this._method = action;
60
+ return this;
61
+ }
62
+ /** Build */
63
+ static build(node, input) {
64
+ if (!node.builder._method) {
65
+ throw error_1.NesoiError.Builder.Job.NoMethod({ job: node.builder.name });
66
+ }
67
+ node.schema = new job_schema_1.$Job(node.builder.module, node.builder.name, node.builder.alias || node.builder.name, node.builder._authn, [...node.builder._inputMsgs, ...input], {}, node.builder._extrasAndAsserts, node.builder._method, {
68
+ module: node.builder.module,
69
+ machine: node.builder.machine
70
+ });
71
+ return node.schema;
72
+ }
73
+ }
74
+ exports.MachineJobBuilder = MachineJobBuilder;
@@ -0,0 +1,5 @@
1
+ export declare class $MachineJobScope {
2
+ module: string;
3
+ machine: string;
4
+ constructor(module: string, machine: string);
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$MachineJobScope = void 0;
4
+ class $MachineJobScope {
5
+ constructor(module, machine) {
6
+ this.module = module;
7
+ this.machine = machine;
8
+ }
9
+ }
10
+ exports.$MachineJobScope = $MachineJobScope;
@@ -0,0 +1,109 @@
1
+ import { $Module, $Space } from "../../../../schema";
2
+ import { AnyUsers } from "../../../../engine/auth/authn";
3
+ import { $Job, $JobAssert, $JobMethod } from '../job.schema';
4
+ import { MessageTemplateFieldBuilder } from "../../../entities/message/template/message_template_field.builder";
5
+ import { $MessageInfer } from "../../../entities/message/message.infer";
6
+ import { $Message } from "../../../entities/message/message.schema";
7
+ import { MessageTemplateDef } from "../../../entities/message/template/message_template.builder";
8
+ import { TrxNode } from "../../../../engine/transaction/trx_node";
9
+ import { ModuleTree } from "../../../../engine/tree";
10
+ import { BlockBuilder } from '../../block.builder';
11
+ import { ResolvedBuilderNode } from "../../../../engine/dependency";
12
+ import { AnyQuery } from "../../../entities/bucket/query/nql.schema";
13
+ import { $Bucket } from "../../../entities/bucket/bucket.schema";
14
+ import { $BlockOutput } from '../../block.schema';
15
+ export type ResourceAssertions<Bucket extends $Bucket> = {
16
+ 'query is empty': AnyQuery<any, any>;
17
+ 'has no link': keyof Bucket['graph']['links'];
18
+ };
19
+ export type ResourceAssertionDef<Bucket extends $Bucket> = <T extends keyof ResourceAssertions<Bucket>>(type: T, arg: ResourceAssertions<Bucket>[T]) => boolean;
20
+ export declare class ResourceJobBuilder<Space extends $Space, Module extends $Module, Name extends string, Prepared, Authn extends AnyUsers = {}, Bucket extends $Bucket = never, ImplicitInput = {}, Trigger extends $Message = never, MsgExtras = {}, Ctx = {}, CtxAfter = {}> extends BlockBuilder<Space, Module, 'job'> {
21
+ protected module: string;
22
+ protected name: Name;
23
+ protected bucket: string;
24
+ protected method: 'view' | 'query' | 'create' | 'update' | 'delete';
25
+ private alias;
26
+ private execMethod?;
27
+ protected _authn: string[];
28
+ private implicitFields;
29
+ $b: "job";
30
+ $j: "ResourceJob";
31
+ private resource;
32
+ private _msg;
33
+ private _customInput;
34
+ private _extrasAndAsserts;
35
+ private _prepareMethod;
36
+ private _afterMethod?;
37
+ 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]>);
38
+ /**
39
+ * The input message accepted by the job.
40
+ *
41
+ * @param def A `$ => ({})` definition for a custom trigger message
42
+ */
43
+ input<Def extends MessageTemplateDef<Space, Module, Name>>(def: Def): ResourceJobBuilder<Space, Module, Name, Prepared, Authn, Bucket, ImplicitInput, $MessageInfer<Name, any, ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
44
+ '': ImplicitInput[K];
45
+ }, any, [never, never], [never, never]>; }, import("../../../entities/message/message.infer").$MessageInputInfer<ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
46
+ '': ImplicitInput[K];
47
+ }, any, [never, never], [never, never]>; }, ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
48
+ '': ImplicitInput[K];
49
+ }, any, [never, never], [never, never]>; } extends infer T ? { [K_1 in keyof T]: (ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
50
+ '': ImplicitInput[K];
51
+ }, any, [never, never], [never, never]>; })[K_1] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
52
+ path: `${K_1 & string}${keyof I & string}`;
53
+ data: I[keyof I];
54
+ opt: Opt[0];
55
+ nul: Nul[0];
56
+ } : never; } : never>, import("../../../entities/message/message.infer").$MessageOutputInfer<ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
57
+ '': ImplicitInput[K];
58
+ }, any, [never, never], [never, never]>; }, ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
59
+ '': ImplicitInput[K];
60
+ }, any, [never, never], [never, never]>; } extends infer T_1 ? { [K_2 in keyof T_1]: (ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
61
+ '': ImplicitInput[K];
62
+ }, any, [never, never], [never, never]>; })[K_2] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
63
+ path: `${K_2 & string}${keyof O & string}`;
64
+ data: O[keyof O];
65
+ opt: Opt_1[1];
66
+ nul: Nul_1[1];
67
+ } : never; } : never>>, MsgExtras, Ctx, CtxAfter>;
68
+ /**
69
+ * A function that will build new fields on the input message to be
70
+ * consumed by the job.
71
+ *
72
+ * @param $ A function which returns an object to be assigned to the input.
73
+ */
74
+ extra<Extra extends {
75
+ [_: string]: any;
76
+ }, 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, ImplicitInput, Trigger, MsgExtras & Extra, Ctx, CtxAfter>;
77
+ /**
78
+ * A function that checks a given condition over the input and throws an exception;
79
+ * This assertion runs before the job method.
80
+ *
81
+ * @param { cond } A function which returns true or false
82
+ * @param { error } An error message or a function that makes one
83
+ */
84
+ assert<Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<Ctx & {
85
+ that: ResourceAssertionDef<Bucket>;
86
+ }>>(condition: $JobAssert<Trx, Msg, Extras, C>): this;
87
+ /**
88
+ * The function called to prepare the input for the job.
89
+ *
90
+ * @param method A function which returns the required output.
91
+ */
92
+ 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;
93
+ /**
94
+ * The function called after the input has been processed.
95
+ *
96
+ * @param method A function which returns void.
97
+ */
98
+ 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;
99
+ static build(node: ResourceJobBuilderNode, tree: ModuleTree, module: $Module, output: $BlockOutput, defaultTrigger: $Message, idType?: 'string' | 'int' | null): {
100
+ schema: $Job;
101
+ inlineMessages: Record<string, $Message>;
102
+ };
103
+ }
104
+ export type AnyResourceJobBuilder = ResourceJobBuilder<any, any, any, any, any, any>;
105
+ export type ResourceJobDef<S extends $Space, M extends $Module, Name extends string, Prepared, Authn extends AnyUsers, Bucket extends $Bucket, DefaultTrigger extends $Message = never, ImplicitInput = {}, Ctx = {}, CtxAfter = {}> = ($: ResourceJobBuilder<S, M, Name, Prepared, Authn, Bucket, ImplicitInput, DefaultTrigger, {}, Ctx, CtxAfter>) => any;
106
+ export type ResourceJobBuilderNode = Omit<ResolvedBuilderNode, 'builder'> & {
107
+ builder: AnyResourceJobBuilder;
108
+ schema?: $Job;
109
+ };