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,124 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PostgresCLI = exports.cmd_migrate_one_up = exports.cmd_migrate_up = exports.cmd_make_migrations = exports.cmd_status = exports.cmd_create_db = exports.cmd_tables = exports.cmd_check = void 0;
7
+ const cli_adapter_1 = require("../../../engine/cli/cli_adapter");
8
+ const database_1 = require("./migrator/database");
9
+ const ui_1 = __importDefault(require("../../../engine/cli/ui"));
10
+ const migrator_1 = require("./migrator");
11
+ const runner_1 = require("./migrator/runner");
12
+ class cmd_check extends cli_adapter_1.CLICommand {
13
+ constructor(provider) {
14
+ super('check', 'check', 'Check if the connection to PostgreSQL is working properly');
15
+ this.provider = provider;
16
+ }
17
+ async run() {
18
+ const res = await database_1.Database.checkConnection(this.provider.sql);
19
+ if (res == true)
20
+ ui_1.default.result('ok', 'Connection to PostgreSQL working.');
21
+ else
22
+ ui_1.default.result('error', 'Connection to PostgreSQL not working.', res);
23
+ }
24
+ }
25
+ exports.cmd_check = cmd_check;
26
+ class cmd_tables extends cli_adapter_1.CLICommand {
27
+ constructor(provider) {
28
+ super('tables', 'tables', 'List the tables present on the database');
29
+ this.provider = provider;
30
+ }
31
+ async run() {
32
+ const res = await database_1.Database.listTables(this.provider.sql);
33
+ ui_1.default.list(res);
34
+ }
35
+ }
36
+ exports.cmd_tables = cmd_tables;
37
+ class cmd_create_db extends cli_adapter_1.CLICommand {
38
+ constructor(provider) {
39
+ super('create db', 'create db( NAME)', 'Create the database used by the application', /(\w*)/, ['name']);
40
+ this.provider = provider;
41
+ }
42
+ async run(_, $) {
43
+ let name = $.name;
44
+ const config = this.provider.config?.connection;
45
+ if (!name) {
46
+ if (!config?.db) {
47
+ ui_1.default.result('error', 'Database name not configured on PostgresConfig used', config);
48
+ return;
49
+ }
50
+ name = config.db;
51
+ }
52
+ try {
53
+ await database_1.Database.createDatabase(name, config);
54
+ ui_1.default.result('ok', `Database ${name} created`);
55
+ }
56
+ catch (e) {
57
+ ui_1.default.result('error', `Failed to create database ${name}`, e);
58
+ }
59
+ }
60
+ }
61
+ exports.cmd_create_db = cmd_create_db;
62
+ class cmd_status extends cli_adapter_1.CLICommand {
63
+ constructor(provider) {
64
+ super('status', 'status', 'Show the status of migrations on the current database');
65
+ this.provider = provider;
66
+ }
67
+ async run(daemon) {
68
+ const migrator = await migrator_1.Migrator.prepare(daemon, this.provider.sql);
69
+ console.log(migrator.status.describe());
70
+ }
71
+ }
72
+ exports.cmd_status = cmd_status;
73
+ class cmd_make_migrations extends cli_adapter_1.CLICommand {
74
+ constructor(provider) {
75
+ super('make migrations', 'make migrations( TAG)', 'Generate migrations for the bucket(s) using PostgresBucketAdapter', /(\w*)/, ['tag']);
76
+ this.provider = provider;
77
+ }
78
+ async run(daemon, $) {
79
+ // TODO: restrict by tag
80
+ const migrator = await migrator_1.Migrator.prepare(daemon, this.provider.sql);
81
+ const migrations = await migrator.generate();
82
+ for (const migration of migrations) {
83
+ console.log(migration.describe());
84
+ migration.save();
85
+ }
86
+ }
87
+ }
88
+ exports.cmd_make_migrations = cmd_make_migrations;
89
+ class cmd_migrate_up extends cli_adapter_1.CLICommand {
90
+ constructor(provider) {
91
+ super('migrate up', 'migrate up', 'Run ALL the pending migrations up (batch)');
92
+ this.provider = provider;
93
+ }
94
+ async run(daemon) {
95
+ await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'batch');
96
+ }
97
+ }
98
+ exports.cmd_migrate_up = cmd_migrate_up;
99
+ class cmd_migrate_one_up extends cli_adapter_1.CLICommand {
100
+ constructor(provider) {
101
+ super('migrate one up', 'migrate one up', 'Run ONE pending migration up');
102
+ this.provider = provider;
103
+ }
104
+ async run(daemon) {
105
+ await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'one');
106
+ }
107
+ }
108
+ exports.cmd_migrate_one_up = cmd_migrate_one_up;
109
+ class PostgresCLI extends cli_adapter_1.CLIAdapter {
110
+ constructor(provider) {
111
+ super();
112
+ this.provider = provider;
113
+ this.commands = {
114
+ 'check': new cmd_check(provider),
115
+ 'tables': new cmd_tables(provider),
116
+ 'create db': new cmd_create_db(provider),
117
+ 'status': new cmd_status(provider),
118
+ 'make migrations': new cmd_make_migrations(provider),
119
+ 'migrate up': new cmd_migrate_up(provider),
120
+ 'migrate one up': new cmd_migrate_one_up(provider),
121
+ };
122
+ }
123
+ }
124
+ exports.PostgresCLI = PostgresCLI;
@@ -0,0 +1,12 @@
1
+ import { AnyTrxNode } from "../../../engine/transaction/trx_node";
2
+ import { NQLRunner } from "../../../elements/entities/bucket/query/nql_engine";
3
+ import { NQL_Part } from "../../../elements/entities/bucket/query/nql.schema";
4
+ import postgres from 'postgres';
5
+ type Obj = Record<string, any>;
6
+ export declare class PostgresNQLRunner extends NQLRunner {
7
+ protected sql?: postgres.Sql<any>;
8
+ constructor();
9
+ private guard;
10
+ run(trx: AnyTrxNode, part: NQL_Part, params: Obj): Promise<any>;
11
+ }
12
+ export {};
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgresNQLRunner = void 0;
4
+ const nql_engine_1 = require("../../../elements/entities/bucket/query/nql_engine");
5
+ const trx_1 = require("../../../engine/transaction/trx");
6
+ const postgres_bucket_adapter_1 = require("./postgres.bucket_adapter");
7
+ const log_1 = require("../../../engine/util/log");
8
+ class PostgresNQLRunner extends nql_engine_1.NQLRunner {
9
+ constructor() {
10
+ super();
11
+ }
12
+ guard(sql) {
13
+ return (template, ...params) => {
14
+ return sql.call(sql, template, ...params).catch(e => {
15
+ log_1.Log.error('bucket', 'postgres', e.toString(), e);
16
+ throw new Error('Database error.');
17
+ });
18
+ };
19
+ }
20
+ async run(trx, part, params) {
21
+ const sql = trx_1.Trx.get(trx, 'sql');
22
+ const tableName = postgres_bucket_adapter_1.PostgresBucketAdapter.getTableName(trx, part.union.meta);
23
+ // console.log(NQL_RuleTree.describe(part.union));
24
+ const _sql = (part) => {
25
+ return this.guard(sql) `SELECT * FROM ${sql(tableName)} WHERE ${sql.unsafe(_union(part.union))}`;
26
+ };
27
+ const _union = (union) => {
28
+ return `(${union.inters.map(i => _inter(i)).join(' OR ')})`;
29
+ };
30
+ const _inter = (inter) => {
31
+ return `(${inter.rules.map(r => (('value' in r) ? _rule(r) : _union(r))).join(' AND ')})`;
32
+ };
33
+ const _rule = (rule) => {
34
+ // Replace '.' of fieldpath with '->' (JSONB compatible)
35
+ // TODO: process '.*'
36
+ const column = rule.fieldpath.replace(/\./g, '->');
37
+ const op = {
38
+ '==': '=',
39
+ '<': '<',
40
+ '>': '>',
41
+ '<=': '<=',
42
+ '>=': '>=',
43
+ 'in': 'in',
44
+ 'contains': 'like',
45
+ 'contains_any': 'like',
46
+ 'present': ''
47
+ }[rule.op];
48
+ let value;
49
+ if ('static' in rule.value)
50
+ value = rule.value.static;
51
+ else if ('param' in rule.value)
52
+ value = params[rule.value.param]; // TODO: deal with param[]
53
+ else {
54
+ // TODO: subquery
55
+ throw new Error('Sub-queries not implemented yet.');
56
+ }
57
+ return `${column} ${op} ${value}`;
58
+ };
59
+ // Debug
60
+ // const str = await _sql(part).describe().catch(e => {
61
+ // Log.error('postgres' as any, 'nql', e.query, e);
62
+ // })
63
+ // console.log((str as any).string);
64
+ // End of Debug
65
+ const out = await _sql(part);
66
+ return Object.values(out);
67
+ }
68
+ }
69
+ exports.PostgresNQLRunner = PostgresNQLRunner;
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mock_1 = require("../../../../tools/joaquin/mock");
4
+ const bucket_builder_1 = require("../../../elements/entities/bucket/bucket.builder");
5
+ const log_1 = require("../../../engine/util/log");
6
+ const inline_app_1 = require("../../../engine/apps/inline.app");
7
+ const postgres_bucket_adapter_1 = require("../src/postgres.bucket_adapter");
8
+ const migrator_1 = require("../src/migrator");
9
+ const runner_1 = require("../src/migrator/runner");
10
+ const database_1 = require("../src/migrator/database");
11
+ log_1.Log.level = 'warn';
12
+ // TODO: read this from env
13
+ const PostgresConfig = {
14
+ updatedAtField: 'updated_at',
15
+ connection: {
16
+ host: 'localhost',
17
+ port: 5432,
18
+ user: 'postgres',
19
+ pass: 'postgres',
20
+ db: 'NESOI_TEST',
21
+ }
22
+ };
23
+ let daemon;
24
+ async function setup() {
25
+ if (daemon) {
26
+ return daemon;
27
+ }
28
+ // Build bucket used for test
29
+ const bucket = new bucket_builder_1.BucketBuilder('MODULE', 'BUCKET')
30
+ .model($ => ({
31
+ id: $.int,
32
+ p_boolean: $.boolean,
33
+ p_date: $.date,
34
+ p_datetime: $.datetime,
35
+ p_decimal: $.decimal(),
36
+ p_enum: $.enum(['a', 'b', 'c']),
37
+ p_int: $.int,
38
+ p_float: $.float,
39
+ p_string: $.string,
40
+ p_obj: $.obj({
41
+ a: $.int,
42
+ b: $.string
43
+ }),
44
+ p_dict: $.dict($.boolean)
45
+ }));
46
+ // Build test app
47
+ const app = new inline_app_1.InlineApp('RUNTIME', [
48
+ bucket
49
+ ])
50
+ .provider(postgres_bucket_adapter_1.PostgresProvider.make('pg', PostgresConfig))
51
+ .config.buckets({
52
+ 'MODULE': {
53
+ 'BUCKET': {
54
+ adapter: ($, { pg }) => new postgres_bucket_adapter_1.PostgresBucketAdapter($, pg, 'nesoi_test_table')
55
+ }
56
+ }
57
+ })
58
+ .config.trx({
59
+ 'MODULE': {
60
+ trx: {
61
+ wrap: postgres_bucket_adapter_1.PostgresProvider.wrap('pg')
62
+ }
63
+ }
64
+ });
65
+ // Run test daemon
66
+ daemon = await app.daemon();
67
+ // Prepare database using daemon
68
+ // TODO: encapsulate this
69
+ // await Migrator.createDatabase('NESOI_TEST', PostgresConfig, { if_exists: 'delete' });
70
+ const sql = database_1.Database.connect(PostgresConfig.connection);
71
+ const migrator = await migrator_1.Migrator.prepare(daemon, sql);
72
+ const migration = await migrator.generateForBucket('MODULE', 'BUCKET', 'nesoi_test_table');
73
+ if (migration) {
74
+ migration.name = 'postgres.bucket_adapter.test';
75
+ await runner_1.MigrationRunner.oneUp(daemon, sql, migration);
76
+ }
77
+ // migration?.save();
78
+ // await MigrationRunner.up(daemon, 'one', PostgresConfig);
79
+ return daemon;
80
+ }
81
+ const mock = new mock_1.Mock();
82
+ beforeAll(async () => {
83
+ await setup();
84
+ }, 30000);
85
+ describe('Postgres Bucket Adapter', () => {
86
+ // it ('!', () => {
87
+ // expect(1+1).toEqual(2);
88
+ // })
89
+ describe('CRUD', () => {
90
+ it('create should return unmodified object', async () => {
91
+ await daemon.trx('MODULE').run(async (trx) => {
92
+ // given
93
+ const BUCKET = trx.bucket('BUCKET');
94
+ const input = mock.bucket('MODULE', 'BUCKET')
95
+ .obj({ id: undefined }).raw(daemon);
96
+ // when
97
+ const { id, ...obj } = await BUCKET.create(input);
98
+ // then
99
+ expect(id).toBeTruthy();
100
+ expect(obj).toEqual(input);
101
+ });
102
+ });
103
+ it('read should return unmodified object after create', async () => {
104
+ await daemon.trx('MODULE').run(async (trx) => {
105
+ // given
106
+ const BUCKET = trx.bucket('BUCKET');
107
+ const input = mock.bucket('MODULE', 'BUCKET')
108
+ .obj({ id: undefined }).raw(daemon);
109
+ // when
110
+ const created = await BUCKET.create(input);
111
+ const { id, ...obj } = await BUCKET.readOneOrFail(created.id);
112
+ // then
113
+ expect(id).toBeTruthy();
114
+ expect(obj).toEqual(input);
115
+ });
116
+ });
117
+ it('update should modify object after insert', async () => {
118
+ await daemon.trx('MODULE').run(async (trx) => {
119
+ // given
120
+ const BUCKET = trx.bucket('BUCKET');
121
+ const input1 = mock.bucket('MODULE', 'BUCKET')
122
+ .obj({ id: undefined }).raw(daemon);
123
+ const input2 = mock.bucket('MODULE', 'BUCKET')
124
+ .obj({ id: undefined }).raw(daemon);
125
+ // when
126
+ const { id: id_create, ...created } = await BUCKET.create(input1);
127
+ const { id: id_update, ...updated } = await BUCKET.put({
128
+ ...input2,
129
+ id: id_create
130
+ });
131
+ // then
132
+ expect(id_create).toBeTruthy();
133
+ expect(id_update).toEqual(id_create);
134
+ expect(created).toEqual(input1);
135
+ expect(updated).toEqual(input2);
136
+ });
137
+ });
138
+ it('delete should remove object from database', async () => {
139
+ await daemon.trx('MODULE').run(async (trx) => {
140
+ // given
141
+ const BUCKET = trx.bucket('BUCKET');
142
+ const input = mock.bucket('MODULE', 'BUCKET')
143
+ .obj({ id: undefined }).raw(daemon);
144
+ // when
145
+ const created = await BUCKET.create(input);
146
+ const read = await BUCKET.readOneOrFail(created.id);
147
+ await BUCKET.deleteOrFail(read.id);
148
+ const read2 = await BUCKET.readOne(read.id);
149
+ // then
150
+ expect(read2).toBeUndefined();
151
+ });
152
+ });
153
+ });
154
+ describe('Query', () => {
155
+ it('query first by existing id should return object', async () => {
156
+ let queried;
157
+ await daemon.trx('MODULE').run(async (trx) => {
158
+ // given
159
+ const BUCKET = trx.bucket('BUCKET');
160
+ const input = mock.bucket('MODULE', 'BUCKET')
161
+ .obj({ id: undefined }).raw(daemon);
162
+ // when
163
+ const created = await BUCKET.create(input);
164
+ queried = await BUCKET.query({
165
+ 'id': created.id
166
+ }).all();
167
+ // then
168
+ expect(queried.length).toEqual(1);
169
+ expect(queried[0].id).toEqual(created.id);
170
+ });
171
+ });
172
+ });
173
+ });
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ // import { Mock } from 'nesoi/tools/papagaio/mock';
3
+ // import { BucketBuilder } from '~/elements/entities/bucket/bucket.builder';
4
+ // import { Log } from '~/engine/util/log'
5
+ // import { InlineApp } from '~/engine/apps/inline.app';
6
+ // import { AnyDaemon } from '~/engine/apps/app';
7
+ // import { PostgresBucketAdapter, PostgresBucketAdapterConfig } from '../src/postgres.bucket_adapter';
8
+ // import { Migrator } from 'nesoi/tools/migrator';
9
+ // import { MigrationRunner } from 'nesoi/tools/migrator/runner';
10
+ // Log.level = 'info';
11
+ // // TODO: read this from env
12
+ // const PostgresConfig: PostgresBucketAdapterConfig = {
13
+ // updatedAtField: 'updated_at',
14
+ // postgres: {
15
+ // host: 'localhost',
16
+ // port: 5432,
17
+ // user: 'postgres',
18
+ // pass: 'postgres',
19
+ // db: 'NESOI_TEST',
20
+ // }
21
+ // }
22
+ // let daemon: AnyDaemon;
23
+ // async function setup() {
24
+ // if (daemon) {
25
+ // return daemon;
26
+ // }
27
+ // // Build buckets used for test
28
+ // const tagBucket = new BucketBuilder('MODULE', 'tag')
29
+ // .model($ => ({
30
+ // id: $.string,
31
+ // scope: $.string
32
+ // }));
33
+ // const colorBucket = new BucketBuilder('MODULE', 'color')
34
+ // .model($ => ({
35
+ // id: $.int,
36
+ // r: $.float,
37
+ // g: $.float,
38
+ // b: $.float,
39
+ // tag: $.string,
40
+ // scope: $.string
41
+ // }));
42
+ // const shapeBucket = new BucketBuilder('MODULE', 'shape')
43
+ // .model($ => ({
44
+ // id: $.int,
45
+ // name: $.string,
46
+ // size: $.float,
47
+ // color_id: $.int,
48
+ // tag: $.string,
49
+ // scope: $.string
50
+ // }));
51
+ // // Build test app
52
+ // const app = new InlineApp('RUNTIME', [
53
+ // tagBucket,
54
+ // colorBucket,
55
+ // shapeBucket
56
+ // ])
57
+ // .config.buckets({
58
+ // 'MODULE': {
59
+ // 'tag': {
60
+ // adapter: $ => new PostgresBucketAdapter($, 'tags', PostgresConfig)
61
+ // },
62
+ // 'color': {
63
+ // adapter: $ => new PostgresBucketAdapter($, 'colors', PostgresConfig)
64
+ // },
65
+ // 'shape': {
66
+ // adapter: $ => new PostgresBucketAdapter($, 'shapes', PostgresConfig)
67
+ // },
68
+ // }
69
+ // })
70
+ // // Run test daemon
71
+ // daemon = await app.daemon();
72
+ // // Prepare database using daemon
73
+ // // TODO: encapsulate this
74
+ // // await Migrator.createDatabase('NESOI_TEST', PostgresConfig, { if_exists: 'delete' });
75
+ // const migrator = await Migrator.prepare(daemon, PostgresConfig);
76
+ // {
77
+ // const migration = await migrator.bucket('MODULE', 'tag', 'tags')
78
+ // if (migration) {
79
+ // migration.name = '0_tag';
80
+ // await MigrationRunner.oneUp(daemon, migration, PostgresConfig);
81
+ // }
82
+ // }
83
+ // {
84
+ // const migration = await migrator.bucket('MODULE', 'color', 'colors')
85
+ // if (migration) {
86
+ // migration.name = '0_color';
87
+ // await MigrationRunner.oneUp(daemon, migration, PostgresConfig);
88
+ // }
89
+ // }
90
+ // {
91
+ // const migration = await migrator.bucket('MODULE', 'shape', 'shapes')
92
+ // if (migration) {
93
+ // migration.name = '0_shape';
94
+ // await MigrationRunner.oneUp(daemon, migration, PostgresConfig);
95
+ // }
96
+ // }
97
+ // // migration?.save();
98
+ // // await MigrationRunner.up(daemon, 'one', PostgresConfig);
99
+ // return daemon;
100
+ // }
101
+ // const mock = new Mock();
102
+ // beforeAll(async () => {
103
+ // await setup();
104
+ // }, 30000)
105
+ // describe('Postgres Bucket Query', () => {
106
+ // describe('CRUD', () => {
107
+ // it('create should return unmodified object', async() => {
108
+ // await daemon.trx('MODULE').run(async trx => {
109
+ // const Tag = trx.bucket('tag');
110
+ // const TagMock = mock.bucket('MODULE', 'tag');
111
+ // const Color = trx.bucket('color');
112
+ // const ColorMock = mock.bucket('MODULE', 'color');
113
+ // const Shape = trx.bucket('shape');
114
+ // const ShapeMock = mock.bucket('MODULE', 'shape');
115
+ // const tags: any[] = [];
116
+ // for (let i=0; i<100; i++) {
117
+ // const obj = TagMock.obj().raw(daemon) as any;
118
+ // (obj as any).scope = 'scope';
119
+ // tags.push(await Tag.put(obj))
120
+ // }
121
+ // for (let i=0; i<100; i++) {
122
+ // const obj = ColorMock.obj().raw(daemon);
123
+ // (obj as any).tag = tags[i].id;
124
+ // (obj as any).scope = 'scope';
125
+ // await Color.create(obj);
126
+ // }
127
+ // for (let i=0; i<100; i++) {
128
+ // const obj = ShapeMock.obj().raw(daemon);
129
+ // (obj as any).tag = tags[i].id;
130
+ // (obj as any).scope = 'scope';
131
+ // await Shape.create(obj);
132
+ // }
133
+ // })
134
+ // })
135
+ // })
136
+ // })
@@ -0,0 +1,21 @@
1
+ import { Compiler } from "../../compiler";
2
+ import { MonolythApp } from "../../../engine/apps/monolyth/monolyth.app";
3
+ export type MonolythCompilerConfig = {
4
+ libPaths?: string[];
5
+ scripts?: Record<string, string>;
6
+ nesoiPath?: string;
7
+ };
8
+ export declare class MonolythCompiler {
9
+ compiler: Compiler;
10
+ appPath: string;
11
+ config: MonolythCompilerConfig;
12
+ dirs: {
13
+ build: string;
14
+ build_modules: string;
15
+ build_types: string;
16
+ build_bin: string;
17
+ };
18
+ constructor(compiler: Compiler, appPath: string, config?: MonolythCompilerConfig);
19
+ run(): Promise<void>;
20
+ static scanAll(dir: string): Promise<MonolythApp<any, any, Record<string, any>>[] | undefined>;
21
+ }
@@ -0,0 +1,95 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.MonolythCompiler = void 0;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const space_1 = require("../../../engine/space");
43
+ const console_1 = __importDefault(require("../../../engine/util/console"));
44
+ const _1_mkdir_stage_1 = require("./stages/1_mkdir_stage");
45
+ const _3_copy_types_stage_1 = require("./stages/3_copy_types_stage");
46
+ const _4_dump_modules_stage_1 = require("./stages/4_dump_modules_stage");
47
+ const _5_dump_cli_stage_1 = require("./stages/5_dump_cli_stage");
48
+ const _6_dump_package_json_stage_1 = require("./stages/6_dump_package_json_stage");
49
+ const _2_build_typescript_stage_1 = require("./stages/2_build_typescript_stage");
50
+ const log_1 = require("../../../engine/util/log");
51
+ const app_1 = require("../../../engine/apps/app");
52
+ const monolyth_app_1 = require("../../../engine/apps/monolyth/monolyth.app");
53
+ class MonolythCompiler {
54
+ constructor(compiler, appPath, config = {}) {
55
+ this.compiler = compiler;
56
+ this.appPath = appPath;
57
+ this.config = config;
58
+ this.dirs = {};
59
+ }
60
+ async run() {
61
+ console_1.default.header('Monolyth Compiler');
62
+ log_1.Log.info('compiler', 'monolyth', `Importing the monolyth definition from ${this.appPath}`);
63
+ const appFile = space_1.Space.path(this.compiler.space, this.appPath);
64
+ const app = (await Promise.resolve(`${appFile}`).then(s => __importStar(require(s)))).default;
65
+ this.config = Object.assign({}, app_1.App.getInfo(app).config?.compiler || {}, this.config);
66
+ try {
67
+ await new _1_mkdir_stage_1.MkdirStage(this, app).run();
68
+ await new _2_build_typescript_stage_1.BuildTypescriptStage(this, app).run();
69
+ await new _3_copy_types_stage_1.CopyTypesStage(this, app).run();
70
+ await new _4_dump_modules_stage_1.DumpModulesStage(this, app).run();
71
+ await new _5_dump_cli_stage_1.DumpCLIStage(this, app).run();
72
+ await new _6_dump_package_json_stage_1.DumpPackageJsonStage(this, app).run();
73
+ }
74
+ catch (e) {
75
+ log_1.Log.error('compiler', 'monolyth', e.toString(), { stack: e.stack });
76
+ process.exit();
77
+ }
78
+ }
79
+ static async scanAll(dir) {
80
+ const apps = [];
81
+ const nodes = fs.readdirSync(dir, { withFileTypes: true });
82
+ for (const node of nodes) {
83
+ const nodePath = path.resolve(dir, node.name);
84
+ if (!nodePath.endsWith('.ts')) {
85
+ return;
86
+ }
87
+ const exported = (await Promise.resolve(`${nodePath}`).then(s => __importStar(require(s))))?.default;
88
+ if (exported instanceof monolyth_app_1.MonolythApp) {
89
+ apps.push(exported);
90
+ }
91
+ }
92
+ return apps;
93
+ }
94
+ }
95
+ exports.MonolythCompiler = MonolythCompiler;
@@ -0,0 +1,12 @@
1
+ import { MonolythApp } from "../../../../engine/apps/monolyth/monolyth.app";
2
+ import { MonolythCompiler } from '../monolyth_compiler';
3
+ /**
4
+ * [Monolyth Compiler Stage #1]
5
+ * Create the directory structure
6
+ */
7
+ export declare class MkdirStage {
8
+ private monolyth;
9
+ private app;
10
+ constructor(monolyth: MonolythCompiler, app: MonolythApp<any, any>);
11
+ run(): Promise<void>;
12
+ }