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,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BuilderNode = exports.$Dependency = exports.$Tag = void 0;
4
+ const name_helpers_1 = require("../compiler/helpers/name_helpers");
5
+ class $Tag {
6
+ static parse(tag) {
7
+ const match = tag.match(/(.\w*?::)?(\w*?:)?(.*)/);
8
+ const module = match?.[1]?.slice(0, -2);
9
+ const type = match?.[2]?.slice(0, -1);
10
+ const name = match?.[3];
11
+ if (!match
12
+ || (module && module.includes(':'))
13
+ || (type && type.includes(':'))
14
+ || !name
15
+ || name.includes(':')) {
16
+ return;
17
+ }
18
+ return { module, type, name };
19
+ }
20
+ static parseOrFail(tag) {
21
+ const match = tag.match(/(.\w*?::)?(\w*?:)?(.*)/);
22
+ if (!match) {
23
+ throw new Error(`Internal error: Invalid tag ${tag}`);
24
+ }
25
+ const module = match[1]?.slice(0, -2);
26
+ if (module && module.includes(':')) {
27
+ throw new Error(`Internal error: Invalid tag ${tag}, module ${module} includes invalid characters`);
28
+ }
29
+ const type = match[2]?.slice(0, -1);
30
+ if (type && type.includes(':')) {
31
+ throw new Error(`Internal error: Invalid tag ${tag}, type ${type} includes invalid characters`);
32
+ }
33
+ const name = match[3];
34
+ if (!name) {
35
+ throw new Error(`Internal error: Invalid tag ${tag}, no name specified`);
36
+ }
37
+ if (name.includes(':')) {
38
+ throw new Error(`Internal error: Invalid tag ${tag}, name ${name} includes invalid characters`);
39
+ }
40
+ return { module, type, name };
41
+ }
42
+ }
43
+ exports.$Tag = $Tag;
44
+ class $Dependency {
45
+ constructor(fromModule, type, name, soft = false) {
46
+ this.type = type;
47
+ this.soft = soft;
48
+ const parsed = $Tag.parseOrFail(name);
49
+ this.name = parsed.name;
50
+ if (parsed.module) {
51
+ this.module = parsed.module;
52
+ }
53
+ else {
54
+ this.module = fromModule;
55
+ }
56
+ this.tag = `${this.module}::${this.type}:${this.name}`;
57
+ if (this.module === fromModule) {
58
+ this.refName = this.name;
59
+ }
60
+ else {
61
+ this.refName = `${this.module}::${this.name}`;
62
+ }
63
+ }
64
+ static typeName(dep, fromModule) {
65
+ if (dep.module !== fromModule) {
66
+ const moduleHigh = name_helpers_1.NameHelpers.nameLowToHigh(dep.module);
67
+ // WARN: this might break non-regular plural block names in the future
68
+ const el_t = dep.type + 's';
69
+ return `${moduleHigh}Module['${el_t}']['${dep.name}']`;
70
+ }
71
+ else {
72
+ return name_helpers_1.NameHelpers
73
+ .names({ $t: dep.type, name: dep.name })
74
+ .type;
75
+ }
76
+ }
77
+ }
78
+ exports.$Dependency = $Dependency;
79
+ class BuilderNode {
80
+ constructor($) {
81
+ this.module = $.module;
82
+ this.type = $.type;
83
+ this.name = $.name;
84
+ this.tag = `${this.module}::${this.type}:${this.name}`;
85
+ this.isInline = $.isInline;
86
+ this.filepath = $.filepath;
87
+ this.dependencies = $.dependencies;
88
+ this.builder = $.builder;
89
+ }
90
+ }
91
+ exports.BuilderNode = BuilderNode;
@@ -0,0 +1,97 @@
1
+ import { $Module, $Space } from "../schema";
2
+ import { Machine } from "../elements/blocks/machine/machine";
3
+ import { AnyMessageBuilder } from "../elements/entities/message/message.builder";
4
+ import { AnyBucketBuilder } from "../elements/entities/bucket/bucket.builder";
5
+ import { AnyResourceBuilder } from "../elements/blocks/resource/resource.builder";
6
+ import { AnyMachineBuilder } from "../elements/blocks/machine/machine.builder";
7
+ import { Job } from "../elements/blocks/job/job";
8
+ import { AnyJobBuilder } from "../elements/blocks/job/job.builder";
9
+ import { MessageParser } from "../elements/entities/message/message_parser";
10
+ import { $Message } from "../elements/entities/message/message.schema";
11
+ import { Resource } from "../elements/blocks/resource/resource";
12
+ import { Queue } from "../elements/blocks/queue/queue";
13
+ import { Controller } from "../elements/edge/controller/controller";
14
+ import { Bucket } from "../elements/entities/bucket/bucket";
15
+ import { $Constants } from "../elements/entities/constants/constants.schema";
16
+ import { ConstantsBuilder } from "../elements/entities/constants/constants.builder";
17
+ import { AnyControllerBuilder } from "../elements/edge/controller/controller.builder";
18
+ import { AnyExternalsBuilder } from "../elements/blocks/externals/externals.builder";
19
+ import { $Externals } from "../elements/blocks/externals/externals.schema";
20
+ import { $Dependency, ResolvedBuilderNode } from './dependency';
21
+ import { $Bucket } from "../elements/entities/bucket/bucket.schema";
22
+ import { $Resource } from "../elements/blocks/resource/resource.schema";
23
+ import { $Machine } from "../elements/blocks/machine/machine.schema";
24
+ import { $Controller } from "../elements/edge/controller/controller.schema";
25
+ import { $Job } from "../elements/blocks/job/job.schema";
26
+ import { ModuleTree } from './tree';
27
+ import { AnyResourceJobBuilder } from "../elements/blocks/job/internal/resource_job.builder";
28
+ import { AnyApp } from './apps/app';
29
+ import { AnyMachineJobBuilder } from "../elements/blocks/job/internal/machine_job.builder";
30
+ import { AnyQueueBuilder } from "../elements/blocks/queue/queue.builder";
31
+ import { $Queue } from "../elements/blocks/queue/queue.schema";
32
+ import { NQL_Engine } from "../elements/entities/bucket/query/nql_engine";
33
+ import { AnyDaemon } from './daemon';
34
+ export type AnyBuilder = AnyExternalsBuilder | ConstantsBuilder | AnyMessageBuilder | AnyBucketBuilder | AnyJobBuilder | AnyResourceJobBuilder | AnyMachineJobBuilder | AnyResourceBuilder | AnyMachineBuilder | AnyControllerBuilder | AnyQueueBuilder;
35
+ export type AnyElementSchema = $Externals | $Constants | $Message | $Bucket | $Job | $Resource | $Machine | $Controller | $Queue;
36
+ export type AnyInlineElementSchema = $Message | $Job;
37
+ export type VirtualModuleDef = {
38
+ name: string;
39
+ schemas?: {
40
+ messages?: $Message[];
41
+ machines?: $Machine[];
42
+ };
43
+ externals?: {
44
+ buckets?: $Dependency[];
45
+ jobs?: $Dependency[];
46
+ };
47
+ };
48
+ export declare class Module<S extends $Space, $ extends $Module> {
49
+ name: string;
50
+ schema: $;
51
+ buckets: { [B in keyof $["buckets"]]: Bucket<$, $["buckets"][B]>; };
52
+ messages: { [B in keyof $["messages"]]: MessageParser<$["messages"][B]>; };
53
+ jobs: { [B in keyof $["jobs"]]: Job<S, $, $["jobs"][B]>; };
54
+ resources: { [B in keyof $["resources"]]: Resource<S, $, $["resources"][B]>; };
55
+ machines: { [B in keyof $["machines"]]: Machine<S, $, $["machines"][B]>; };
56
+ queues: { [B in keyof $["queues"]]: Queue<$, $["queues"][B]>; };
57
+ controllers: { [B in keyof $["controllers"]]: Controller<S, $, $["controllers"][B]>; };
58
+ daemon?: AnyDaemon;
59
+ nql: NQL_Engine;
60
+ boot?: {
61
+ path: string;
62
+ } | {
63
+ builders: AnyBuilder[];
64
+ };
65
+ constructor(name: string, boot?: {
66
+ path: string;
67
+ } | {
68
+ builders: AnyBuilder[];
69
+ });
70
+ info(): void;
71
+ inject(schemas: {
72
+ constants?: $Constants;
73
+ externals?: $Externals;
74
+ buckets?: $Bucket[];
75
+ messages?: $Message[];
76
+ jobs?: $Job[];
77
+ resources?: $Resource[];
78
+ machines?: $Machine[];
79
+ queues?: $Queue[];
80
+ controllers?: $Controller[];
81
+ }): this;
82
+ injectDependencies(daemon: AnyDaemon, dependencies: {
83
+ buckets?: $Dependency[];
84
+ jobs?: $Dependency[];
85
+ messages?: $Dependency[];
86
+ machines?: $Dependency[];
87
+ }): this;
88
+ scanFiles(dir: string, exclude?: string[]): string[];
89
+ buildNode(node: ResolvedBuilderNode, tree: ModuleTree): Promise<void>;
90
+ private mergeInlineMessages;
91
+ private mergeInlineJobs;
92
+ start(app: AnyApp, providers: Record<string, any>): void;
93
+ destroy(): void;
94
+ private destroyBlock;
95
+ static virtual(module: AnyModule, def: VirtualModuleDef): Promise<Module<$Space, $Module>>;
96
+ }
97
+ export type AnyModule = Module<any, any>;
@@ -0,0 +1,335 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Module = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const log_1 = require("./util/log");
40
+ const machine_1 = require("../elements/blocks/machine/machine");
41
+ const message_builder_1 = require("../elements/entities/message/message.builder");
42
+ const bucket_builder_1 = require("../elements/entities/bucket/bucket.builder");
43
+ const resource_builder_1 = require("../elements/blocks/resource/resource.builder");
44
+ const machine_builder_1 = require("../elements/blocks/machine/machine.builder");
45
+ const job_1 = require("../elements/blocks/job/job");
46
+ const job_builder_1 = require("../elements/blocks/job/job.builder");
47
+ const message_parser_1 = require("../elements/entities/message/message_parser");
48
+ const resource_1 = require("../elements/blocks/resource/resource");
49
+ const queue_1 = require("../elements/blocks/queue/queue");
50
+ const controller_1 = require("../elements/edge/controller/controller");
51
+ const bucket_1 = require("../elements/entities/bucket/bucket");
52
+ const constants_schema_1 = require("../elements/entities/constants/constants.schema");
53
+ const constants_builder_1 = require("../elements/entities/constants/constants.builder");
54
+ const controller_builder_1 = require("../elements/edge/controller/controller.builder");
55
+ const externals_builder_1 = require("../elements/blocks/externals/externals.builder");
56
+ const error_1 = require("./data/error");
57
+ const externals_schema_1 = require("../elements/blocks/externals/externals.schema");
58
+ const app_1 = require("./apps/app");
59
+ const queue_builder_1 = require("../elements/blocks/queue/queue.builder");
60
+ const nql_engine_1 = require("../elements/entities/bucket/query/nql_engine");
61
+ const daemon_1 = require("./daemon");
62
+ class Module {
63
+ constructor(name, boot) {
64
+ this.name = name;
65
+ // Schemas built by this module
66
+ this.schema = {
67
+ constants: new constants_schema_1.$Constants(this.name),
68
+ externals: new externals_schema_1.$Externals(this.name),
69
+ buckets: {},
70
+ messages: {},
71
+ jobs: {},
72
+ resources: {},
73
+ machines: {},
74
+ controllers: {},
75
+ queues: {},
76
+ };
77
+ /* Entities */
78
+ this.buckets = {};
79
+ this.messages = {};
80
+ /* Blocks */
81
+ this.jobs = {};
82
+ this.resources = {};
83
+ this.machines = {};
84
+ this.queues = {};
85
+ /* Edge */
86
+ this.controllers = {};
87
+ this.schema.name = name;
88
+ this.boot = boot;
89
+ }
90
+ info() {
91
+ log_1.Log.info('module', this.name, 'Loaded', {
92
+ values: Object.keys(this.schema.constants.values),
93
+ enums: Object.keys(this.schema.constants.enums),
94
+ messages: Object.keys(this.messages),
95
+ buckets: Object.keys(this.buckets),
96
+ jobs: Object.keys(this.jobs),
97
+ resources: Object.keys(this.resources),
98
+ machines: Object.keys(this.machines),
99
+ controllers: Object.keys(this.controllers),
100
+ queues: Object.keys(this.queues),
101
+ });
102
+ }
103
+ // Manual injection
104
+ inject(schemas) {
105
+ if (schemas.constants) {
106
+ constants_schema_1.$Constants.merge(this.schema.constants, schemas.constants);
107
+ }
108
+ if (schemas.externals) {
109
+ externals_schema_1.$Externals.merge(this.schema.externals, schemas.externals);
110
+ }
111
+ schemas.buckets?.forEach(schema => {
112
+ this.schema.buckets[schema.name] = schema;
113
+ });
114
+ schemas.messages?.forEach(schema => {
115
+ this.schema.messages[schema.name] = schema;
116
+ });
117
+ schemas.jobs?.forEach(schema => {
118
+ this.schema.jobs[schema.name] = schema;
119
+ });
120
+ schemas.resources?.forEach(schema => {
121
+ this.schema.resources[schema.name] = schema;
122
+ });
123
+ schemas.machines?.forEach(schema => {
124
+ this.schema.machines[schema.name] = schema;
125
+ });
126
+ schemas.queues?.forEach(schema => {
127
+ this.schema.queues[schema.name] = schema;
128
+ });
129
+ schemas.controllers?.forEach(schema => {
130
+ this.schema.controllers[schema.name] = schema;
131
+ });
132
+ return this;
133
+ }
134
+ injectDependencies(daemon, dependencies) {
135
+ dependencies.buckets?.forEach(dep => {
136
+ const bucketModule = daemon_1.Daemon.getModule(daemon, dep.module);
137
+ const bucket = bucketModule.buckets[dep.name];
138
+ if (!bucket) {
139
+ throw new Error(`Internal Error: unable to find bucket '${dep.tag}' during injection to module '${this.name}'`);
140
+ }
141
+ this.buckets[dep.refName] = bucket;
142
+ });
143
+ dependencies.jobs?.forEach(dep => {
144
+ const jobModule = daemon_1.Daemon.getModule(daemon, dep.module);
145
+ const job = jobModule.jobs[dep.name];
146
+ if (!job) {
147
+ throw new Error(`Internal Error: unable to find job '${dep.tag}' during injection to module '${this.name}'`);
148
+ }
149
+ this.jobs[dep.refName] = job;
150
+ });
151
+ dependencies.messages?.forEach(dep => {
152
+ const messageModule = daemon_1.Daemon.getModule(daemon, dep.module);
153
+ const message = messageModule.messages[dep.name];
154
+ if (!message) {
155
+ throw new Error(`Internal Error: unable to find message '${dep.tag}' during injection to module '${this.name}'`);
156
+ }
157
+ this.messages[dep.refName] = message;
158
+ });
159
+ dependencies.machines?.forEach(dep => {
160
+ const machineModule = daemon_1.Daemon.getModule(daemon, dep.module);
161
+ const machine = machineModule.machines[dep.name];
162
+ if (!machine) {
163
+ throw new Error(`Internal Error: unable to find machine '${dep.tag}' during injection to module '${this.name}'`);
164
+ }
165
+ this.machines[dep.refName] = machine;
166
+ });
167
+ return this;
168
+ }
169
+ // Treeshaking
170
+ scanFiles(dir, exclude = []) {
171
+ const files = [];
172
+ fs.readdirSync(dir, { withFileTypes: true })
173
+ .forEach(node => {
174
+ const nodePath = path.resolve(dir, node.name);
175
+ // TODO: Wildcards, this is just ugly
176
+ for (const path of exclude) {
177
+ if (nodePath.endsWith(path.slice(1))) {
178
+ return;
179
+ }
180
+ }
181
+ if (node.isDirectory()) {
182
+ const childFiles = this.scanFiles(nodePath, exclude);
183
+ files.push(...childFiles);
184
+ }
185
+ else {
186
+ if (!nodePath.endsWith('.ts')) {
187
+ return;
188
+ }
189
+ files.push(nodePath);
190
+ }
191
+ });
192
+ return files;
193
+ }
194
+ // Build Nodes
195
+ async buildNode(node, tree) {
196
+ log_1.Log.trace('compiler', 'module', `Building ${this.name}::${(0, log_1.scopeTag)(node.builder.$b, node.builder.name)}`);
197
+ if (node.builder.$b === 'constants') {
198
+ this.schema.constants = constants_builder_1.ConstantsBuilder.build(node);
199
+ }
200
+ else if (node.builder.$b === 'externals') {
201
+ this.schema.externals = externals_builder_1.ExternalsBuilder.build(node);
202
+ }
203
+ else if (node.builder.$b === 'bucket') {
204
+ this.schema.buckets[node.name] = bucket_builder_1.BucketBuilder.build(node, tree);
205
+ }
206
+ else if (node.builder.$b === 'message') {
207
+ this.schema.messages[node.name] = message_builder_1.MessageBuilder.build(node, tree, this.schema);
208
+ }
209
+ else if (node.builder.$b === 'job') {
210
+ const { schema, inlineMessages } = job_builder_1.JobBuilder.build(node, tree, this.schema);
211
+ this.schema.jobs[node.name] = schema;
212
+ this.mergeInlineMessages(node, inlineMessages);
213
+ }
214
+ else if (node.builder.$b === 'resource') {
215
+ const { schema, inlineMessages, inlineJobs } = resource_builder_1.ResourceBuilder.build(node, tree, this.schema);
216
+ this.schema.resources[schema.name] = schema;
217
+ this.mergeInlineMessages(node, inlineMessages);
218
+ this.mergeInlineJobs(node, inlineJobs);
219
+ }
220
+ else if (node.builder.$b === 'machine') {
221
+ const { schema, inlineMessages, inlineJobs } = machine_builder_1.MachineBuilder.build(node, tree, this.schema);
222
+ this.schema.machines[schema.name] = schema;
223
+ this.mergeInlineMessages(node, inlineMessages);
224
+ this.mergeInlineJobs(node, inlineJobs);
225
+ }
226
+ else if (node.builder.$b === 'controller') {
227
+ this.schema.controllers[node.name] = controller_builder_1.ControllerBuilder.build(node);
228
+ }
229
+ else if (node.builder.$b === 'queue') {
230
+ const { schema, inlineMessages } = queue_builder_1.QueueBuilder.build(node, tree, this.schema);
231
+ this.schema.queues[node.name] = schema;
232
+ this.mergeInlineMessages(node, inlineMessages);
233
+ }
234
+ else {
235
+ throw error_1.NesoiError.Module.UnknownBuilderType(this, node.filepath.toString(), node.name, node.builder.$b);
236
+ }
237
+ }
238
+ mergeInlineMessages(node, schemas) {
239
+ for (const name in schemas) {
240
+ const $msg = schemas[name];
241
+ this.schema.messages[name] = $msg;
242
+ }
243
+ }
244
+ mergeInlineJobs(node, schemas) {
245
+ for (const name in schemas) {
246
+ const $job = schemas[name];
247
+ this.schema.jobs[name] = $job;
248
+ }
249
+ }
250
+ // Start
251
+ start(app, providers) {
252
+ const info = app_1.App.getInfo(app);
253
+ const config = info.config;
254
+ Object.entries(this.schema.buckets).forEach(([name, schema]) => {
255
+ const bucketConfig = config.buckets?.[this.name]?.[name];
256
+ this.buckets[name] = new bucket_1.Bucket(schema, bucketConfig, providers);
257
+ });
258
+ Object.entries(this.schema.messages).forEach(([name, schema]) => {
259
+ this.messages[name] = new message_parser_1.MessageParser(schema);
260
+ });
261
+ Object.entries(this.schema.jobs).forEach(([name, schema]) => {
262
+ this.jobs[name] = new job_1.Job(this, schema);
263
+ });
264
+ Object.entries(this.schema.resources).forEach(([name, schema]) => {
265
+ this.resources[name] = new resource_1.Resource(this, schema);
266
+ });
267
+ Object.entries(this.schema.machines).forEach(([name, schema]) => {
268
+ this.machines[name] = new machine_1.Machine(this, schema);
269
+ });
270
+ Object.entries(this.schema.controllers).forEach(([name, schema]) => {
271
+ const controllerConfig = config.controllers?.[this.name]?.[name];
272
+ this.controllers[name] = new controller_1.Controller(this, schema, controllerConfig, providers);
273
+ });
274
+ Object.entries(this.schema.queues).forEach(([name, schema]) => {
275
+ this.queues[name] = new queue_1.Queue(this, schema);
276
+ });
277
+ this.nql = new nql_engine_1.NQL_Engine(this);
278
+ }
279
+ // Destroy
280
+ destroy() {
281
+ // Destroy messages
282
+ for (const name in this.messages || []) {
283
+ this.destroyBlock('message', name);
284
+ }
285
+ // Destroy buckets
286
+ for (const name in this.buckets || {}) {
287
+ this.destroyBlock('bucket', name);
288
+ }
289
+ // Destroy jobs
290
+ for (const name in this.jobs || []) {
291
+ this.destroyBlock('job', name);
292
+ }
293
+ // Destroy resources
294
+ for (const name in this.resources || []) {
295
+ this.destroyBlock('resource', name);
296
+ }
297
+ // Destroy machines
298
+ for (const name in this.machines || []) {
299
+ this.destroyBlock('machine', name);
300
+ }
301
+ // Destroy queues
302
+ for (const name in this.queues || []) {
303
+ this.destroyBlock('queue', name);
304
+ }
305
+ // Destroy controllers
306
+ for (const name in this.controllers || []) {
307
+ this.destroyBlock('controller', name);
308
+ }
309
+ }
310
+ async destroyBlock(type, name) {
311
+ const t = type + 's';
312
+ log_1.Log.info('module', this.name, 'Destroying');
313
+ delete this.schema[t][name];
314
+ delete this[t][name];
315
+ }
316
+ // Virtual
317
+ static async virtual(module, def) {
318
+ if (!module.daemon) {
319
+ throw new Error(`Internal Error: unable to reach nesoi daemon when building virtual module '${def.name}'`);
320
+ }
321
+ const virtualModule = new Module(def.name, { builders: [] });
322
+ // Inject schemas
323
+ if (def.schemas) {
324
+ virtualModule.inject(def.schemas);
325
+ }
326
+ // Build schemas
327
+ await virtualModule.start({ config: {} }, {});
328
+ // Inject externals
329
+ if (def.externals) {
330
+ virtualModule.injectDependencies(module.daemon, def.externals);
331
+ }
332
+ return virtualModule;
333
+ }
334
+ }
335
+ exports.Module = Module;
@@ -0,0 +1,54 @@
1
+ import { $Module, $Space } from "../schema";
2
+ import { MachineBuilder } from "../elements/blocks/machine/machine.builder";
3
+ import { ConstantsBuilder } from "../elements/entities/constants/constants.builder";
4
+ import { ExternalsBuilder } from "../elements/blocks/externals/externals.builder";
5
+ import { JobBuilder } from "../elements/blocks/job/job.builder";
6
+ import { MessageBuilder } from "../elements/entities/message/message.builder";
7
+ import { ResourceBuilder } from "../elements/blocks/resource/resource.builder";
8
+ import { ControllerBuilder } from "../elements/edge/controller/controller.builder";
9
+ import { BucketBuilder } from "../elements/entities/bucket/bucket.builder";
10
+ import { $Message } from "../elements/entities/message/message.schema";
11
+ import { BucketModelDef } from "../elements/entities/bucket/model/bucket_model.builder";
12
+ import { BucketModelInfer } from "../elements/entities/bucket/model/bucket_model.infer";
13
+ import { QueueBuilder } from "../elements/blocks/queue/queue.builder";
14
+ import { $Bucket, $Job, $Resource } from "../elements";
15
+ export declare class Space<$ extends $Space> {
16
+ private dirname;
17
+ private _authn;
18
+ private _name;
19
+ constructor(dirname: string);
20
+ /**
21
+ * Space Settings
22
+ * - Name
23
+ * - Authentication
24
+ */
25
+ name(name: string): this;
26
+ authn<Name extends string, Def extends BucketModelDef<$, never>, Obj = BucketModelInfer<Def>>(name: Name, $: Def): this;
27
+ externals<M extends keyof $['modules']>(module: M): ExternalsBuilder<$, M>;
28
+ constants<M extends keyof $['modules']>(module: M): ConstantsBuilder;
29
+ bucket<M extends keyof $['modules'], K extends string, Module extends $Module = $['modules'][M]>(globalName: `${M & string}::${K}`): BucketBuilder<$, Module, $Bucket & {
30
+ name: K;
31
+ }>;
32
+ message<M extends keyof $['modules'], K extends string, Module extends $Module = $['modules'][M]>(globalName: `${M & string}::${K}`): MessageBuilder<$, Module, $Message & {
33
+ name: K;
34
+ }>;
35
+ job<M extends keyof $['modules'], K extends string, Module extends $Module = $['modules'][M]>(globalName: `${M & string}::${K}`): JobBuilder<$, Module, $Job & {
36
+ name: K;
37
+ }, {}>;
38
+ resource<M extends keyof $['modules'], K extends string, Module extends $Module = $['modules'][M]>(globalName: `${M & string}::${K}`): ResourceBuilder<$, Module, $Resource & {
39
+ name: K;
40
+ }>;
41
+ machine<M extends keyof $['modules'], K extends string, Module extends $Module = $['modules'][M]>(globalName: `${M & string}::${K}`): MachineBuilder<$, Module, K, Module["machines"][K] & {
42
+ name: K;
43
+ }>;
44
+ controller<M extends keyof $['modules'], K extends string, Module extends $Module = $['modules'][M]>(globalName: `${M & string}::${K}`): ControllerBuilder<$, Module>;
45
+ queue<M extends keyof $['modules'], K extends string, Module extends $Module = $['modules'][M]>(globalName: `${M & string}::${K}`): QueueBuilder<$, Module, Module["queues"][K] & {
46
+ name: K;
47
+ }>;
48
+ /**
49
+ *
50
+ */
51
+ static path(space: Space<any>, ...relPath: string[]): string;
52
+ static scan(space: Space<any>, buildFn: (name: string, path: string) => void): void;
53
+ }
54
+ export type AnySpace = Space<$Space>;