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,70 @@
1
+ import { $Space, ModuleName } from "../../schema";
2
+ import { AnyBuilder, AnyModule } from '../module';
3
+ import { Space } from '../space';
4
+ import { Daemon } from '../daemon';
5
+ import { AnyAppConfig, AppConfigFactory } from './app.config';
6
+ /**
7
+ * Provider
8
+ */
9
+ export type AppProvider<out Name, T> = {
10
+ name: Name;
11
+ up: ($: {
12
+ modules: Record<string, AnyModule>;
13
+ }) => T;
14
+ down: (provider: NoInfer<T>) => any;
15
+ };
16
+ export type AnyAppProvider = AppProvider<any, any>;
17
+ export declare abstract class App<S extends $Space, Modules extends string = ModuleName<S> & string, Providers extends Record<string, any> = Record<string, any>> {
18
+ name: string;
19
+ protected _config: AnyAppConfig;
20
+ protected _spaceModuleNames: ModuleName<S>[];
21
+ protected _injectedModules: AnyModule[];
22
+ protected _providers: Record<string, AnyAppProvider>;
23
+ protected space?: Space<S>;
24
+ protected builders?: AnyBuilder[];
25
+ constructor(name: string, boot?: {
26
+ space: Space<S>;
27
+ } | {
28
+ builders: AnyBuilder[];
29
+ });
30
+ /**
31
+ * Scan the space for modules and their elements,
32
+ * then build all schemas.
33
+ * This can be run without await before the daemon,
34
+ * to preload the module in background.
35
+ */
36
+ abstract boot(): App<S, Modules, Providers>;
37
+ /**
38
+ * Spawn a daemon for this app.
39
+ */
40
+ abstract daemon(): Promise<Daemon<S, Modules>>;
41
+ /**
42
+ * Specifies which `Space` modules to include on this App.
43
+ *
44
+ * ⚠ This has no effect on apps without a `Space`, such as `InlineApp`.
45
+ * @param modules A list of names of modules from the current `Space`.
46
+ */
47
+ modules<M extends ModuleName<S>>(modules: M[]): App<S, M & Modules, Providers>;
48
+ /**
49
+ * Injects pre-built modules into this App.
50
+ * These will be included on the Daemon once it starts.
51
+ *
52
+ * @param modules A list of pre-built modules.
53
+ */
54
+ inject(modules: AnyModule[]): this;
55
+ /**
56
+ * Declares a `Provider` with a given name.
57
+ *
58
+ * Providers are started and ended along with the daemon, and can be used on the App
59
+ * config to share globals between adapters and other methods.
60
+ * @param $ `AppProvider` with an `up` and `down` method to create/destroy the provider.
61
+ */
62
+ provider<Name extends string, T>($: AppProvider<Name, T>): App<S, Modules, Providers & { [K in Name]: T; }>;
63
+ get config(): AppConfigFactory<S, Modules, Providers>;
64
+ protected makeModules(): Record<string, AnyModule>;
65
+ static getInfo(app: AnyApp): {
66
+ spaceModules: (string | number | symbol)[];
67
+ config: AnyAppConfig;
68
+ };
69
+ }
70
+ export type AnyApp = App<any, any>;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.App = void 0;
4
+ const module_1 = require("../module");
5
+ const space_1 = require("../space");
6
+ const app_config_1 = require("./app.config");
7
+ /*
8
+ App
9
+ */
10
+ class App {
11
+ constructor(name, boot) {
12
+ this.name = name;
13
+ this._config = {};
14
+ // This is a list of names to be read from the space.
15
+ // If the app is not booted with a space, this does nothing.
16
+ this._spaceModuleNames = [];
17
+ // A list of modules injected into the application prior to
18
+ // running the daemon. These will be included on the daemon
19
+ // once it's run.
20
+ this._injectedModules = [];
21
+ // A list of providers, which are created and destroyed
22
+ // along with the daemon. These are internally available for
23
+ // blocks - usually used by adapters.
24
+ this._providers = {};
25
+ if (boot) {
26
+ if ('space' in boot) {
27
+ this.space = boot.space;
28
+ }
29
+ else {
30
+ this.builders = boot.builders;
31
+ }
32
+ }
33
+ }
34
+ //
35
+ /**
36
+ * Specifies which `Space` modules to include on this App.
37
+ *
38
+ * ⚠ This has no effect on apps without a `Space`, such as `InlineApp`.
39
+ * @param modules A list of names of modules from the current `Space`.
40
+ */
41
+ modules(modules) {
42
+ this._spaceModuleNames = modules;
43
+ return this;
44
+ }
45
+ /**
46
+ * Injects pre-built modules into this App.
47
+ * These will be included on the Daemon once it starts.
48
+ *
49
+ * @param modules A list of pre-built modules.
50
+ */
51
+ inject(modules) {
52
+ this._injectedModules = modules;
53
+ return this;
54
+ }
55
+ /**
56
+ * Declares a `Provider` with a given name.
57
+ *
58
+ * Providers are started and ended along with the daemon, and can be used on the App
59
+ * config to share globals between adapters and other methods.
60
+ * @param $ `AppProvider` with an `up` and `down` method to create/destroy the provider.
61
+ */
62
+ provider($) {
63
+ this._providers[$.name] = $;
64
+ return this;
65
+ }
66
+ //
67
+ get config() {
68
+ return new app_config_1.AppConfigFactory(this);
69
+ }
70
+ //
71
+ makeModules() {
72
+ const modules = {};
73
+ if (this.space) {
74
+ space_1.Space.scan(this.space, (name, path) => {
75
+ if (this._spaceModuleNames.includes(name)) {
76
+ modules[name] = new module_1.Module(name, { path });
77
+ }
78
+ });
79
+ }
80
+ else {
81
+ const buildersByModule = {};
82
+ (this.builders || []).forEach(builder => {
83
+ const module = builder.module;
84
+ buildersByModule[module] || (buildersByModule[module] = []);
85
+ buildersByModule[module].push(builder);
86
+ });
87
+ Object.entries(buildersByModule).forEach(([name, builders]) => {
88
+ modules[name] = new module_1.Module(name, { builders });
89
+ });
90
+ }
91
+ return modules;
92
+ }
93
+ //
94
+ static getInfo(app) {
95
+ return {
96
+ spaceModules: app._spaceModuleNames,
97
+ config: app._config
98
+ };
99
+ }
100
+ }
101
+ exports.App = App;
@@ -0,0 +1,48 @@
1
+ import { $Module, $Space, ModuleName } from "../../schema";
2
+ import { App, AppProvider } from './app';
3
+ import { AnyTrxEngine } from '../transaction/trx_engine';
4
+ import { AnyBuilder, AnyModule, Module } from '../module';
5
+ import { AnyDaemon, Daemon } from '../daemon';
6
+ export declare class InlineApp<S extends $Space, ModuleNames extends string = ModuleName<S> & string, Providers extends Record<string, any> = Record<string, any>> extends App<S, ModuleNames, Providers> {
7
+ protected _daemon?: Daemon<S, ModuleNames>;
8
+ protected _modules: Record<string, AnyModule>;
9
+ private packageJson?;
10
+ private bootPromise?;
11
+ constructor(name: string, builders: AnyBuilder[]);
12
+ modules<M extends ModuleName<S>>(modules: M[]): InlineApp<S, M & ModuleNames>;
13
+ provider<Name extends string, T>($: AppProvider<Name, T>): InlineApp<S, ModuleNames, Providers & { [K in Name]: T; }>;
14
+ boot(): InlineApp<S, ModuleNames, Providers>;
15
+ /**
16
+ * Treeshake and build modules declared for this application.
17
+ */
18
+ protected build(): Promise<void>;
19
+ /**
20
+ * Build the application, start providers and trx engines.
21
+ * Returns references to start a daemon.
22
+ */
23
+ protected make(): Promise<{
24
+ modules: Record<string, AnyModule>;
25
+ providers: Record<string, any>;
26
+ trxEngines: Record<ModuleNames, AnyTrxEngine>;
27
+ }>;
28
+ daemon(): Promise<Daemon<S, ModuleNames>>;
29
+ protected makeDaemon(trxEngines: Record<ModuleNames, AnyTrxEngine>, providers: Record<string, any>): AnyDaemon;
30
+ package(_package: Record<string, any>): this;
31
+ /**
32
+ * This method injects elements flagged as externals by referencing them
33
+ * from the other module directly, given this is a single-threaded App.
34
+ *
35
+ * TODO: allow overriding this behavior with adapters
36
+ */
37
+ protected linkExternals(modules: Record<string, Module<S, $Module>>): void;
38
+ static package(app: InlineApp<any, any>, scripts: Record<string, string>, dependencies: Record<string, string>): {
39
+ name: string;
40
+ version: string;
41
+ description: string;
42
+ main: string;
43
+ scripts: Record<string, string>;
44
+ dependencies: Record<string, string>;
45
+ };
46
+ }
47
+ export declare class InlineDaemon<S extends $Space, Modules extends ModuleName<S>> extends Daemon<S, Modules> {
48
+ }
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InlineDaemon = exports.InlineApp = void 0;
4
+ const app_1 = require("./app");
5
+ const log_1 = require("../util/log");
6
+ const trx_engine_1 = require("../transaction/trx_engine");
7
+ const tree_1 = require("../tree");
8
+ const daemon_1 = require("../daemon");
9
+ class InlineApp extends app_1.App {
10
+ constructor(name, builders) {
11
+ super(name, { builders });
12
+ this._modules = {};
13
+ }
14
+ // Type Builder Overrides
15
+ modules(modules) {
16
+ super.modules(modules);
17
+ return this;
18
+ }
19
+ provider($) {
20
+ super.provider($);
21
+ return this;
22
+ }
23
+ // App abstract methods
24
+ boot() {
25
+ if (!this.bootPromise) {
26
+ this.bootPromise = this.build();
27
+ }
28
+ return this;
29
+ }
30
+ // Inline
31
+ /**
32
+ * Treeshake and build modules declared for this application.
33
+ */
34
+ async build() {
35
+ log_1.Log.info('app', this.name, 'Booting');
36
+ this._modules = await this.makeModules();
37
+ log_1.Log.debug('app', this.name, 'Building');
38
+ const tree = new tree_1.ModuleTree(this._modules, {
39
+ exclude: ['*.test.ts']
40
+ });
41
+ await tree.resolve();
42
+ await tree.traverse('Building', async (node) => {
43
+ // Inline nodes are built by their root builder
44
+ if (node.isInline) {
45
+ return;
46
+ }
47
+ const module = this._modules[node.module];
48
+ await module.buildNode(node, tree);
49
+ });
50
+ }
51
+ /**
52
+ * Build the application, start providers and trx engines.
53
+ * Returns references to start a daemon.
54
+ */
55
+ async make() {
56
+ if (this.space || this.builders) {
57
+ await this.boot().bootPromise;
58
+ }
59
+ const modules = this._modules;
60
+ for (const key in this._injectedModules) {
61
+ modules[key] = this._injectedModules[key];
62
+ }
63
+ const providers = {};
64
+ for (const key in this._providers) {
65
+ providers[key] = this._providers[key].up({
66
+ modules
67
+ });
68
+ }
69
+ log_1.Log.debug('app', this.name, 'Starting transaction engines');
70
+ const trxEngines = {};
71
+ for (const m in modules) {
72
+ const module = modules[m];
73
+ module.start(this, providers);
74
+ const trxConfig = this._config.trxEngine?.[m];
75
+ trxEngines[m] = new trx_engine_1.TrxEngine(`app:${this.name}`, module, this._config.authn, trxConfig, providers);
76
+ }
77
+ log_1.Log.debug('app', this.name, 'Linking externals');
78
+ this.linkExternals(modules);
79
+ return {
80
+ modules,
81
+ providers,
82
+ trxEngines
83
+ };
84
+ }
85
+ async daemon() {
86
+ if (this._daemon) {
87
+ return this._daemon;
88
+ }
89
+ const app = await this.make();
90
+ log_1.Log.debug('app', this.name, 'Spawning daemon');
91
+ this._daemon = this.makeDaemon(app.trxEngines, app.providers);
92
+ // Link daemon to modules
93
+ for (const m in app.modules) {
94
+ const module = app.modules[m];
95
+ module.daemon = this._daemon;
96
+ }
97
+ return this._daemon;
98
+ }
99
+ makeDaemon(trxEngines, providers) {
100
+ return new InlineDaemon(this.name, trxEngines, providers, this._config);
101
+ }
102
+ package(_package) {
103
+ this.packageJson = _package;
104
+ return this;
105
+ }
106
+ /**
107
+ * This method injects elements flagged as externals by referencing them
108
+ * from the other module directly, given this is a single-threaded App.
109
+ *
110
+ * TODO: allow overriding this behavior with adapters
111
+ */
112
+ linkExternals(modules) {
113
+ Object.values(modules).forEach(module => {
114
+ const buckets = module.schema.externals.buckets;
115
+ Object.values(buckets).forEach(bucket => {
116
+ module.buckets[bucket.refName] = modules[bucket.module].buckets[bucket.name];
117
+ });
118
+ const jobs = module.schema.externals.jobs;
119
+ Object.values(jobs).forEach(job => {
120
+ module.jobs[job.refName] = modules[job.module].jobs[job.name];
121
+ });
122
+ const machines = module.schema.externals.machines;
123
+ Object.values(machines).forEach(machine => {
124
+ module.machines[machine.refName] = modules[machine.module].machines[machine.name];
125
+ });
126
+ });
127
+ }
128
+ //
129
+ static package(app, scripts, dependencies) {
130
+ return {
131
+ 'name': app.name,
132
+ 'version': '1.0.0',
133
+ 'description': '',
134
+ 'main': 'index.js',
135
+ scripts,
136
+ dependencies,
137
+ ...(app.packageJson || {})
138
+ };
139
+ }
140
+ }
141
+ exports.InlineApp = InlineApp;
142
+ class InlineDaemon extends daemon_1.Daemon {
143
+ }
144
+ exports.InlineDaemon = InlineDaemon;
@@ -0,0 +1,20 @@
1
+ import { $Space, ModuleName } from "../../../schema";
2
+ import { AppProvider } from '../app';
3
+ import { InlineApp } from './../inline.app';
4
+ import { AnyTrxEngine } from '../../transaction/trx_engine';
5
+ import { Space } from '../../space';
6
+ import { Daemon } from "../../daemon";
7
+ export declare class MonolythApp<S extends $Space, ModuleNames extends string = ModuleName<S> & string, Providers extends Record<string, any> = Record<string, any>> extends InlineApp<S, ModuleNames, Providers> {
8
+ private watcher?;
9
+ constructor(name: string, space?: Space<S>);
10
+ protected _packageJson?: Record<string, any>;
11
+ modules<M extends ModuleName<S>>(modules: M[]): MonolythApp<S, M & ModuleNames>;
12
+ provider<Name extends string, T>($: AppProvider<Name, T>): MonolythApp<S, ModuleNames, Providers & { [K in Name]: T; }>;
13
+ daemon($?: {
14
+ watch?: boolean;
15
+ }): Promise<Daemon<S, ModuleNames>>;
16
+ protected makeDaemon(trxEngines: Record<ModuleNames, AnyTrxEngine>, providers: Record<string, any>): MonolythDaemon<$Space, ModuleNames>;
17
+ remake(): Promise<void>;
18
+ }
19
+ export declare class MonolythDaemon<S extends $Space, Modules extends ModuleName<S>> extends Daemon<S, Modules> {
20
+ }
@@ -0,0 +1,94 @@
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.MonolythDaemon = exports.MonolythApp = void 0;
37
+ const inline_app_1 = require("./../inline.app");
38
+ const space_1 = require("../../space");
39
+ const daemon_1 = require("../../daemon");
40
+ const log_1 = require("../../util/log");
41
+ class MonolythApp extends inline_app_1.InlineApp {
42
+ constructor(name, space) {
43
+ super(name, []);
44
+ this.builders = undefined;
45
+ this.space = space;
46
+ }
47
+ // Type Builder Overrides
48
+ modules(modules) {
49
+ super.modules(modules);
50
+ return this;
51
+ }
52
+ provider($) {
53
+ super.provider($);
54
+ return this;
55
+ }
56
+ // Override InlineApp abstract methods
57
+ async daemon($) {
58
+ /**
59
+ * When running from development environment (with Space)
60
+ * this flag watches file changes on the space path and
61
+ * reboots the modules.
62
+ *
63
+ * Dynamic imports are used here so `chokidar` can be declared
64
+ * as a "devDependency" instead of a "dependency".
65
+ */
66
+ if (this.space && $?.watch) {
67
+ Promise.resolve().then(() => __importStar(require('chokidar'))).then(({ default: chokidar }) => {
68
+ this.watcher = chokidar.watch(space_1.Space.path(this.space, '..', '..')); // TODO: change to .
69
+ this.watcher
70
+ .on('change', () => {
71
+ this.remake();
72
+ });
73
+ });
74
+ }
75
+ return super.daemon();
76
+ }
77
+ makeDaemon(trxEngines, providers) {
78
+ return new MonolythDaemon(this.name, trxEngines, providers, this._config);
79
+ }
80
+ // Reboot (from Watcher)
81
+ async remake() {
82
+ log_1.Log.warn('app', 'monolyth', `File changes detected. Remaking app '${this.name}'`);
83
+ if (!this._daemon) {
84
+ log_1.Log.error('app', 'monolyth', `Attempt to remake app ${this.name} failed: Daemon not running.`);
85
+ return;
86
+ }
87
+ const app = await this.make();
88
+ await daemon_1.Daemon.reload(this._daemon, app.trxEngines, app.providers);
89
+ }
90
+ }
91
+ exports.MonolythApp = MonolythApp;
92
+ class MonolythDaemon extends daemon_1.Daemon {
93
+ }
94
+ exports.MonolythDaemon = MonolythDaemon;
@@ -0,0 +1,45 @@
1
+ import { AnyTrxEngine } from '../../transaction/trx_engine';
2
+ import { $Module } from "../../../schema";
3
+ export type CLIData<M extends $Module, Msg extends keyof M['messages']> = Omit<M['messages'][Msg]['#raw'], '$'>;
4
+ export declare class MonolythCLI {
5
+ private trxEngines;
6
+ private module?;
7
+ constructor(trxEngines: Record<string, AnyTrxEngine>);
8
+ run(): Promise<void>;
9
+ private runCmd;
10
+ private cmdHelp;
11
+ private cmdClear;
12
+ private cmdListModules;
13
+ private cmdInvokeInteractive;
14
+ private cmdPickModule;
15
+ private cmdInvoke;
16
+ }
17
+ export declare enum Color {
18
+ black = "0;30",
19
+ red = "0;31",
20
+ green = "0;32",
21
+ brown = "0;33",
22
+ blue = "0;34",
23
+ purple = "0;35",
24
+ cyan = "0;36",
25
+ lightgray = "0;37",
26
+ darkgray = "1;30",
27
+ lightred = "1;31",
28
+ lightgreen = "1;32",
29
+ yellow = "1;33",
30
+ lightblue = "1;34",
31
+ lightpurple = "1;35",
32
+ lightcyan = "1;36"
33
+ }
34
+ export default class Console {
35
+ static colored(msg: string, color: keyof typeof Color): string;
36
+ static select(title: string, options: string[], defaul?: number): Promise<string>;
37
+ static question(text: string, defaul?: string, prefix?: string): Promise<string>;
38
+ static waitForAnyKey(title?: string): Promise<void>;
39
+ static yesOrNo(text: string, defaul?: 'y' | 'n'): Promise<boolean>;
40
+ static step(msg: string): void;
41
+ static info(msg: string): void;
42
+ static cmd(msg: string): void;
43
+ static error(msg: string): void;
44
+ static header(module: string): void;
45
+ }