nesoi 3.0.8 → 3.0.10

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 (266) hide show
  1. package/lib/compiler/apps/monolyth/monolyth_compiler.d.ts +1 -1
  2. package/lib/compiler/apps/monolyth/monolyth_compiler.js +7 -7
  3. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +3 -0
  4. package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.js +3 -0
  5. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +3 -0
  6. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +3 -0
  7. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +3 -0
  8. package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.js +3 -0
  9. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.d.ts +3 -0
  10. package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +3 -0
  11. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.d.ts +3 -0
  12. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +3 -0
  13. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.d.ts +3 -0
  14. package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.js +3 -0
  15. package/lib/compiler/elements/externals.element.d.ts +1 -1
  16. package/lib/compiler/module.js +1 -1
  17. package/lib/compiler/stages/1_scan_stage.d.ts +3 -0
  18. package/lib/compiler/stages/1_scan_stage.js +3 -0
  19. package/lib/compiler/stages/2_treeshake_stage.d.ts +3 -0
  20. package/lib/compiler/stages/2_treeshake_stage.js +3 -0
  21. package/lib/compiler/stages/3_extract_ts_stage.d.ts +3 -0
  22. package/lib/compiler/stages/3_extract_ts_stage.js +3 -0
  23. package/lib/compiler/stages/4_build_schemas_stage.d.ts +3 -0
  24. package/lib/compiler/stages/4_build_schemas_stage.js +3 -0
  25. package/lib/compiler/stages/5_inject_ts_stage.d.ts +3 -0
  26. package/lib/compiler/stages/5_inject_ts_stage.js +3 -0
  27. package/lib/compiler/stages/6_build_elements_stage.d.ts +3 -0
  28. package/lib/compiler/stages/6_build_elements_stage.js +3 -0
  29. package/lib/compiler/stages/7_dump_stage.d.ts +3 -0
  30. package/lib/compiler/stages/7_dump_stage.js +3 -0
  31. package/lib/compiler/stages/8_diagnose_stage.d.ts +3 -0
  32. package/lib/compiler/stages/8_diagnose_stage.js +3 -0
  33. package/lib/compiler/treeshake.js +3 -3
  34. package/lib/elements/blocks/block.builder.d.ts +6 -2
  35. package/lib/elements/blocks/block.builder.js +8 -4
  36. package/lib/elements/blocks/block.schema.d.ts +4 -0
  37. package/lib/elements/blocks/block.schema.js +4 -0
  38. package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +6 -3
  39. package/lib/elements/blocks/job/internal/machine_job.builder.js +5 -2
  40. package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +4 -0
  41. package/lib/elements/blocks/job/internal/machine_job.schema.js +4 -0
  42. package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +4 -0
  43. package/lib/elements/blocks/job/internal/resource_job.builder.js +4 -0
  44. package/lib/elements/blocks/job/internal/resource_job.d.ts +4 -0
  45. package/lib/elements/blocks/job/internal/resource_job.js +4 -0
  46. package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +4 -0
  47. package/lib/elements/blocks/job/internal/resource_job.schema.js +4 -0
  48. package/lib/elements/blocks/job/job.builder.d.ts +4 -0
  49. package/lib/elements/blocks/job/job.builder.js +4 -0
  50. package/lib/elements/blocks/job/job.d.ts +4 -0
  51. package/lib/elements/blocks/job/job.js +4 -0
  52. package/lib/elements/blocks/job/job.schema.d.ts +4 -0
  53. package/lib/elements/blocks/job/job.schema.js +4 -0
  54. package/lib/elements/blocks/machine/machine.builder.d.ts +4 -0
  55. package/lib/elements/blocks/machine/machine.builder.js +16 -1
  56. package/lib/elements/blocks/machine/machine.d.ts +12 -0
  57. package/lib/elements/blocks/machine/machine.js +12 -0
  58. package/lib/elements/blocks/machine/machine.schema.d.ts +18 -1
  59. package/lib/elements/blocks/machine/machine.schema.js +18 -2
  60. package/lib/elements/blocks/machine/machine_state.builder.d.ts +4 -0
  61. package/lib/elements/blocks/machine/machine_state.builder.js +4 -0
  62. package/lib/elements/blocks/machine/machine_transition.builder.d.ts +4 -0
  63. package/lib/elements/blocks/machine/machine_transition.builder.js +4 -0
  64. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +4 -0
  65. package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +4 -0
  66. package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +4 -0
  67. package/lib/elements/blocks/queue/adapters/queue_adapter.js +4 -0
  68. package/lib/elements/blocks/queue/queue.builder.d.ts +4 -0
  69. package/lib/elements/blocks/queue/queue.builder.js +4 -0
  70. package/lib/elements/blocks/queue/queue.schema.d.ts +4 -0
  71. package/lib/elements/blocks/queue/queue.schema.js +4 -0
  72. package/lib/elements/blocks/resource/resource.builder.d.ts +4 -0
  73. package/lib/elements/blocks/resource/resource.builder.js +4 -0
  74. package/lib/elements/blocks/resource/resource.d.ts +4 -0
  75. package/lib/elements/blocks/resource/resource.js +4 -0
  76. package/lib/elements/blocks/resource/resource.schema.d.ts +4 -0
  77. package/lib/elements/blocks/resource/resource.schema.js +4 -0
  78. package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +4 -0
  79. package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +4 -0
  80. package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +7 -1
  81. package/lib/elements/edge/controller/adapters/controller_adapter.js +6 -1
  82. package/lib/elements/edge/controller/controller.builder.d.ts +16 -0
  83. package/lib/elements/edge/controller/controller.builder.js +16 -0
  84. package/lib/elements/edge/controller/controller.config.d.ts +3 -2
  85. package/lib/elements/edge/controller/controller.d.ts +7 -3
  86. package/lib/elements/edge/controller/controller.js +7 -3
  87. package/lib/elements/edge/controller/controller.schema.d.ts +16 -0
  88. package/lib/elements/edge/controller/controller.schema.js +16 -0
  89. package/lib/elements/{blocks → edge}/externals/externals.builder.d.ts +4 -0
  90. package/lib/elements/{blocks → edge}/externals/externals.builder.js +4 -0
  91. package/lib/elements/{blocks → edge}/externals/externals.schema.d.ts +4 -0
  92. package/lib/elements/{blocks → edge}/externals/externals.schema.js +4 -0
  93. package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +18 -12
  94. package/lib/elements/entities/bucket/adapters/bucket_adapter.js +5 -0
  95. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +4 -0
  96. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +4 -0
  97. package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +4 -1
  98. package/lib/elements/entities/bucket/adapters/memory.nql.js +4 -1
  99. package/lib/elements/entities/bucket/bucket.builder.d.ts +4 -0
  100. package/lib/elements/entities/bucket/bucket.builder.js +4 -0
  101. package/lib/elements/entities/bucket/bucket.config.d.ts +3 -3
  102. package/lib/elements/entities/bucket/bucket.d.ts +12 -4
  103. package/lib/elements/entities/bucket/bucket.js +18 -11
  104. package/lib/elements/entities/bucket/bucket.schema.d.ts +4 -0
  105. package/lib/elements/entities/bucket/bucket.schema.js +4 -0
  106. package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +8 -0
  107. package/lib/elements/entities/bucket/cache/bucket_cache.js +8 -0
  108. package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +4 -0
  109. package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +4 -0
  110. package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +4 -0
  111. package/lib/elements/entities/bucket/graph/bucket_graph.js +4 -0
  112. package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +8 -0
  113. package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +8 -0
  114. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +8 -0
  115. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +8 -0
  116. package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +4 -0
  117. package/lib/elements/entities/bucket/model/bucket_model.builder.js +4 -0
  118. package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +8 -0
  119. package/lib/elements/entities/bucket/model/bucket_model.convert.js +8 -0
  120. package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +8 -0
  121. package/lib/elements/entities/bucket/model/bucket_model.schema.js +8 -0
  122. package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +8 -0
  123. package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +8 -0
  124. package/lib/elements/entities/bucket/query/nql_compiler.d.ts +9 -0
  125. package/lib/elements/entities/bucket/query/nql_compiler.js +9 -0
  126. package/lib/elements/entities/bucket/query/nql_engine.d.ts +6 -0
  127. package/lib/elements/entities/bucket/query/nql_engine.js +6 -0
  128. package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +4 -0
  129. package/lib/elements/entities/bucket/view/bucket_view.builder.js +4 -0
  130. package/lib/elements/entities/bucket/view/bucket_view.d.ts +4 -0
  131. package/lib/elements/entities/bucket/view/bucket_view.js +10 -2
  132. package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +8 -0
  133. package/lib/elements/entities/bucket/view/bucket_view.schema.js +8 -0
  134. package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +8 -0
  135. package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -0
  136. package/lib/elements/entities/constants/constants.builder.d.ts +21 -6
  137. package/lib/elements/entities/constants/constants.builder.js +21 -6
  138. package/lib/elements/entities/constants/constants.d.ts +4 -0
  139. package/lib/elements/entities/constants/constants.js +4 -0
  140. package/lib/elements/entities/constants/constants.schema.d.ts +16 -0
  141. package/lib/elements/entities/constants/constants.schema.js +16 -0
  142. package/lib/elements/entities/drive/drive_adapter.d.ts +15 -10
  143. package/lib/elements/entities/drive/drive_adapter.js +5 -2
  144. package/lib/elements/entities/drive/local.drive_adapter.d.ts +10 -4
  145. package/lib/elements/entities/drive/local.drive_adapter.js +23 -8
  146. package/lib/elements/entities/message/message.builder.d.ts +4 -0
  147. package/lib/elements/entities/message/message.builder.js +4 -0
  148. package/lib/elements/entities/message/message.d.ts +4 -0
  149. package/lib/elements/entities/message/message.js +4 -0
  150. package/lib/elements/entities/message/message.schema.d.ts +4 -0
  151. package/lib/elements/entities/message/message.schema.js +4 -0
  152. package/lib/elements/entities/message/message_parser.d.ts +4 -0
  153. package/lib/elements/entities/message/message_parser.js +4 -0
  154. package/lib/elements/entities/message/template/message_template.builder.d.ts +4 -0
  155. package/lib/elements/entities/message/template/message_template.builder.js +4 -0
  156. package/lib/elements/entities/message/template/message_template.schema.d.ts +9 -0
  157. package/lib/elements/entities/message/template/message_template.schema.js +25 -0
  158. package/lib/elements/entities/message/template/message_template_field.builder.d.ts +8 -0
  159. package/lib/elements/entities/message/template/message_template_field.builder.js +8 -0
  160. package/lib/elements/index.d.ts +1 -1
  161. package/lib/elements/index.js +1 -1
  162. package/lib/engine/apps/app.config.d.ts +15 -11
  163. package/lib/engine/apps/app.config.js +3 -0
  164. package/lib/engine/apps/app.d.ts +12 -20
  165. package/lib/engine/apps/app.js +13 -10
  166. package/lib/engine/apps/inline.app.d.ts +12 -8
  167. package/lib/engine/apps/inline.app.js +27 -24
  168. package/lib/engine/apps/monolyth/monolyth.app.d.ts +13 -5
  169. package/lib/engine/apps/monolyth/monolyth.app.js +14 -6
  170. package/lib/engine/apps/service.d.ts +30 -0
  171. package/lib/engine/apps/service.js +15 -0
  172. package/lib/engine/auth/authn.d.ts +14 -1
  173. package/lib/engine/auth/authn.js +4 -0
  174. package/lib/engine/auth/zero.authn_provider.d.ts +11 -3
  175. package/lib/engine/auth/zero.authn_provider.js +13 -2
  176. package/lib/engine/cli/cli.d.ts +8 -2
  177. package/lib/engine/cli/cli.js +10 -1
  178. package/lib/engine/cli/cli_adapter.d.ts +11 -1
  179. package/lib/engine/cli/cli_adapter.js +10 -1
  180. package/lib/engine/cli/cli_input.d.ts +4 -0
  181. package/lib/engine/cli/cli_input.js +4 -0
  182. package/lib/engine/cli/ui.d.ts +14 -2
  183. package/lib/engine/cli/ui.js +10 -6
  184. package/lib/engine/daemon.d.ts +96 -9
  185. package/lib/engine/daemon.js +101 -18
  186. package/lib/engine/data/date.d.ts +4 -0
  187. package/lib/engine/data/date.js +4 -0
  188. package/lib/engine/data/datetime.d.ts +4 -0
  189. package/lib/engine/data/datetime.js +4 -0
  190. package/lib/engine/data/decimal.d.ts +4 -0
  191. package/lib/engine/data/decimal.js +4 -0
  192. package/lib/engine/data/file.d.ts +23 -23
  193. package/lib/engine/data/file.js +66 -29
  194. package/lib/engine/data/json.d.ts +4 -0
  195. package/lib/engine/data/json.js +4 -0
  196. package/lib/engine/data/tree.d.ts +4 -0
  197. package/lib/engine/data/tree.js +4 -0
  198. package/lib/engine/dependency.d.ts +65 -3
  199. package/lib/engine/dependency.js +70 -0
  200. package/lib/engine/module.d.ts +110 -8
  201. package/lib/engine/module.js +131 -31
  202. package/lib/engine/space.d.ts +163 -10
  203. package/lib/engine/space.js +184 -22
  204. package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +12 -0
  205. package/lib/engine/transaction/nodes/bucket.trx_node.js +13 -2
  206. package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +4 -0
  207. package/lib/engine/transaction/nodes/bucket_query.trx_node.js +9 -10
  208. package/lib/engine/transaction/nodes/job.trx_node.d.ts +4 -0
  209. package/lib/engine/transaction/nodes/job.trx_node.js +6 -4
  210. package/lib/engine/transaction/nodes/machine.trx_node.d.ts +4 -0
  211. package/lib/engine/transaction/nodes/machine.trx_node.js +6 -4
  212. package/lib/engine/transaction/nodes/queue.trx_node.d.ts +4 -0
  213. package/lib/engine/transaction/nodes/queue.trx_node.js +5 -2
  214. package/lib/engine/transaction/nodes/resource.trx_node.d.ts +4 -0
  215. package/lib/engine/transaction/nodes/resource.trx_node.js +6 -4
  216. package/lib/engine/transaction/trx.d.ts +14 -4
  217. package/lib/engine/transaction/trx.js +10 -1
  218. package/lib/engine/transaction/trx_engine.config.d.ts +2 -2
  219. package/lib/engine/transaction/trx_engine.d.ts +8 -3
  220. package/lib/engine/transaction/trx_engine.js +24 -20
  221. package/lib/engine/transaction/trx_node.d.ts +8 -2
  222. package/lib/engine/transaction/trx_node.js +17 -1
  223. package/lib/engine/tree.d.ts +54 -2
  224. package/lib/engine/tree.js +60 -19
  225. package/lib/engine/util/mime.d.ts +4 -4
  226. package/lib/engine/util/mime.js +7 -9
  227. package/lib/schema.d.ts +2 -2
  228. package/package.json +2 -3
  229. package/tools/joaquin/job.js +2 -2
  230. package/tools/joaquin/message.js +2 -2
  231. package/tools/joaquin/mock.d.ts +6 -6
  232. package/tsconfig.build.tsbuildinfo +1 -1
  233. package/lib/adapters/postgres/src/migrator/bucket.d.ts +0 -20
  234. package/lib/adapters/postgres/src/migrator/bucket.js +0 -184
  235. package/lib/adapters/postgres/src/migrator/csv.d.ts +0 -7
  236. package/lib/adapters/postgres/src/migrator/csv.js +0 -72
  237. package/lib/adapters/postgres/src/migrator/database.d.ts +0 -37
  238. package/lib/adapters/postgres/src/migrator/database.js +0 -88
  239. package/lib/adapters/postgres/src/migrator/index.d.ts +0 -1
  240. package/lib/adapters/postgres/src/migrator/index.js +0 -5
  241. package/lib/adapters/postgres/src/migrator/migration.d.ts +0 -57
  242. package/lib/adapters/postgres/src/migrator/migration.js +0 -203
  243. package/lib/adapters/postgres/src/migrator/migrator.d.ts +0 -21
  244. package/lib/adapters/postgres/src/migrator/migrator.js +0 -76
  245. package/lib/adapters/postgres/src/migrator/runner.d.ts +0 -71
  246. package/lib/adapters/postgres/src/migrator/runner.js +0 -271
  247. package/lib/adapters/postgres/src/postgres.bucket_adapter.d.ts +0 -42
  248. package/lib/adapters/postgres/src/postgres.bucket_adapter.js +0 -294
  249. package/lib/adapters/postgres/src/postgres.cli.d.ts +0 -66
  250. package/lib/adapters/postgres/src/postgres.cli.js +0 -184
  251. package/lib/adapters/postgres/src/postgres.config.d.ts +0 -5
  252. package/lib/adapters/postgres/src/postgres.config.js +0 -2
  253. package/lib/adapters/postgres/src/postgres.nql.d.ts +0 -16
  254. package/lib/adapters/postgres/src/postgres.nql.js +0 -123
  255. package/lib/adapters/postgres/src/postgres.provider.d.ts +0 -18
  256. package/lib/adapters/postgres/src/postgres.provider.js +0 -77
  257. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.d.ts +0 -1
  258. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +0 -210
  259. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
  260. package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +0 -218
  261. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +0 -0
  262. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +0 -47
  263. package/lib/engine/apps/monolyth/monolyth.cli.d.ts +0 -45
  264. package/lib/engine/apps/monolyth/monolyth.cli.js +0 -362
  265. package/lib/engine/util/cache.d.ts +0 -6
  266. package/lib/engine/util/cache.js +0 -20
@@ -1,294 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PostgresBucketAdapter = void 0;
4
- const bucket_adapter_1 = require("../../../elements/entities/bucket/adapters/bucket_adapter");
5
- const log_1 = require("../../../engine/util/log");
6
- const trx_node_1 = require("../../../engine/transaction/trx_node");
7
- const trx_1 = require("../../../engine/transaction/trx");
8
- class PostgresBucketAdapter extends bucket_adapter_1.BucketAdapter {
9
- constructor(schema, provider, tableName) {
10
- super(schema, provider.nql, provider.config);
11
- this.schema = schema;
12
- this.provider = provider;
13
- this.tableName = tableName;
14
- }
15
- guard(sql) {
16
- return (template, ...params) => {
17
- return sql.call(sql, template, ...params).catch(e => {
18
- log_1.Log.error('bucket', 'postgres', e.toString(), e);
19
- throw new Error('Database error.');
20
- });
21
- };
22
- }
23
- getQueryMeta() {
24
- return {
25
- scope: 'PG',
26
- avgTime: 50
27
- };
28
- }
29
- /* Dangerous, not implemented. */
30
- deleteEverything(trx) {
31
- throw new Error('Unsafe operation.');
32
- return Promise.resolve();
33
- }
34
- /* Read operations */
35
- async index(trx) {
36
- const sql = trx_1.Trx.get(trx, 'sql');
37
- const objs = await this.guard(sql) `
38
- SELECT *
39
- FROM ${sql(this.tableName)}
40
- ORDER BY ${this.config.meta.updated_at} DESC
41
- `;
42
- return objs;
43
- }
44
- async get(trx, id) {
45
- const sql = trx_1.Trx.get(trx, 'sql');
46
- const objs = await this.guard(sql) `
47
- SELECT *
48
- FROM ${sql(this.tableName)}
49
- WHERE id = ${id}
50
- `;
51
- return objs[0];
52
- }
53
- /* Write Operations */
54
- precleanup(obj) {
55
- var _a, _b;
56
- obj[_a = this.config.meta.created_by] ?? (obj[_a] = null);
57
- obj[_b = this.config.meta.updated_by] ?? (obj[_b] = null);
58
- for (const key in obj) {
59
- if (obj[key] === undefined) {
60
- delete obj[key];
61
- }
62
- }
63
- }
64
- async create(trx, obj) {
65
- const sql = trx_1.Trx.get(trx, 'sql');
66
- // Use schema fields excluding id
67
- const keys = Object.keys(this.schema.model.fields)
68
- .filter(key => obj[key] !== undefined);
69
- // Add meta (created_*/updated_*)
70
- keys.push(...Object.values(this.config.meta));
71
- this.precleanup(obj);
72
- // Create
73
- const objs = await this.guard(sql) `
74
- INSERT INTO ${sql(this.tableName)}
75
- ${sql(obj, keys)}
76
- RETURNING *`;
77
- return objs[0];
78
- }
79
- async createMany(trx, objs) {
80
- const sql = trx_1.Trx.get(trx, 'sql');
81
- // Use schema fields excluding id
82
- const keys = Object.keys(this.schema.model.fields)
83
- .filter(key => key !== 'id');
84
- // Add meta (created_*/updated_*)
85
- keys.push(...Object.values(this.config.meta));
86
- // Pre-cleanup
87
- for (const obj of objs) {
88
- this.precleanup(obj);
89
- }
90
- // Create
91
- const inserted = await this.guard(sql) `
92
- INSERT INTO ${sql(this.tableName)}
93
- ${sql(objs, keys)}
94
- RETURNING *
95
- `;
96
- return inserted;
97
- }
98
- async patch(trx, obj) {
99
- const sql = trx_1.Trx.get(trx, 'sql');
100
- // Use schema keys that exist on object
101
- const keys = Object.keys(this.schema.model.fields)
102
- .filter(key => obj[key] !== undefined)
103
- .filter(key => key in obj);
104
- // Add meta
105
- keys.push(this.config.meta.updated_by, this.config.meta.updated_at);
106
- // Pre-cleanup
107
- this.precleanup(obj);
108
- // Update
109
- const objs = await this.guard(sql) `
110
- UPDATE ${sql(this.tableName)} SET
111
- ${sql(obj, keys)}
112
- WHERE id = ${obj.id}
113
- RETURNING *
114
- `;
115
- return objs[0];
116
- }
117
- async patchMany(trx, objs) {
118
- const _objs = [];
119
- for (const obj of objs) {
120
- _objs.push(await this.patch(trx, obj));
121
- }
122
- return _objs;
123
- }
124
- async replace(trx, obj) {
125
- const sql = trx_1.Trx.get(trx, 'sql');
126
- // Use all schema keys
127
- const keys = Object.keys(this.schema.model.fields)
128
- .filter(key => obj[key] !== undefined);
129
- keys.push(this.config.meta.updated_by, this.config.meta.updated_at);
130
- this.precleanup(obj);
131
- const objs = await this.guard(sql) `
132
- UPDATE ${sql(this.tableName)} SET
133
- ${sql(obj, keys)}
134
- WHERE id = ${obj.id}
135
- RETURNING *
136
- `;
137
- return objs[0];
138
- }
139
- async replaceMany(trx, objs) {
140
- const _objs = [];
141
- for (const obj of objs) {
142
- _objs.push(await this.replace(trx, obj));
143
- }
144
- return _objs;
145
- }
146
- async put(trx, obj) {
147
- const sql = trx_1.Trx.get(trx, 'sql');
148
- // Use all schema keys
149
- const keys = Object.keys(this.schema.model.fields)
150
- .filter(key => obj[key] !== undefined);
151
- // Add meta (created_*/updated_*)
152
- const ikeys = keys.concat(...Object.values(this.config.meta));
153
- const ukeys = keys.concat(this.config.meta.updated_by, this.config.meta.updated_at);
154
- this.precleanup(obj);
155
- const objs = await this.guard(sql) `
156
- INSERT INTO ${sql(this.tableName)}
157
- ${sql(obj, ikeys)}
158
- ON CONFLICT(id)
159
- DO UPDATE SET
160
- ${sql(obj, ukeys)}
161
- RETURNING *
162
- `;
163
- return objs[0];
164
- }
165
- async putMany(trx, objs) {
166
- const _objs = [];
167
- for (const obj of objs) {
168
- _objs.push(await this.put(trx, obj));
169
- }
170
- return _objs;
171
- }
172
- async delete(trx, id) {
173
- const sql = trx_1.Trx.get(trx, 'sql');
174
- await this.guard(sql) `
175
- DELETE FROM ${sql(this.tableName)}
176
- WHERE id = ${id}
177
- `;
178
- }
179
- async deleteMany(trx, ids) {
180
- const sql = trx_1.Trx.get(trx, 'sql');
181
- await this.guard(sql) `
182
- DELETE FROM ${sql(this.tableName)}
183
- WHERE id IN ${ids}
184
- `;
185
- }
186
- /* Cache Operations */
187
- async syncOne(trx, id, lastObjUpdateEpoch) {
188
- throw new Error('Not implemented yet.');
189
- return {};
190
- // // 1. Check if object was deleted
191
- // const obj = await this.get(trx, id);
192
- // if (!obj) {
193
- // return 'deleted' as const;
194
- // }
195
- // // 2. Check if object was updated
196
- // const updateEpoch = this.getUpdateEpoch(obj);
197
- // const hasObjUpdated = updateEpoch > lastObjUpdateEpoch;
198
- // if (!hasObjUpdated) {
199
- // return null;
200
- // }
201
- // // 3. Return updated object and epoch
202
- // return {
203
- // obj,
204
- // updateEpoch
205
- // };
206
- }
207
- async syncOneAndPast(trx, id, lastUpdateEpoch) {
208
- throw new Error('Not implemented yet.');
209
- return {};
210
- // // 1. Check if object was deleted
211
- // const obj = await this.get(trx, id);
212
- // if (!obj) {
213
- // return 'deleted' as const;
214
- // }
215
- // // 2. Check if object was updated
216
- // const objUpdateEpoch = this.getUpdateEpoch(obj);
217
- // const hasObjUpdated = objUpdateEpoch > lastUpdateEpoch;
218
- // if (!hasObjUpdated) {
219
- // return null;
220
- // }
221
- // // 3. Return all objects updated and the max epoch
222
- // let updateEpoch = 0;
223
- // const changed = (Object.values(this.data) as Obj[])
224
- // .map(obj => {
225
- // const epoch = this.getUpdateEpoch(obj);
226
- // if (epoch > updateEpoch) {
227
- // updateEpoch = epoch;
228
- // }
229
- // return { obj, updateEpoch: epoch };
230
- // })
231
- // .filter(obj => obj.updateEpoch > lastUpdateEpoch);
232
- // if (!changed.length) {
233
- // return null;
234
- // }
235
- // return changed;
236
- }
237
- async syncAll(trx, lastHash, lastUpdateEpoch = 0) {
238
- throw new Error('Not implemented yet.');
239
- return {};
240
- // // 1. Hash the current ids
241
- // const idStr = Object.keys(this.data).sort().join('');
242
- // const hash = createHash('md5').update(idStr).digest('hex');
243
- // // 2. If hash changed, return a reset sync with all objects
244
- // if (hash !== lastHash) {
245
- // let updateEpoch = 0;
246
- // const sync = (await this.index(trx) as Obj[])
247
- // .map(obj => {
248
- // const epoch = this.getUpdateEpoch(obj);
249
- // if (epoch > updateEpoch) {
250
- // updateEpoch = epoch;
251
- // }
252
- // return { obj, updateEpoch: epoch };
253
- // });
254
- // return {
255
- // sync,
256
- // hash,
257
- // updateEpoch,
258
- // reset: true
259
- // };
260
- // }
261
- // // 3. Find the data that changed and return it
262
- // let updateEpoch = 0;
263
- // const sync = (Object.values(this.data) as Obj[])
264
- // .map(obj => {
265
- // const epoch = this.getUpdateEpoch(obj);
266
- // if (epoch > updateEpoch) {
267
- // updateEpoch = epoch;
268
- // }
269
- // return { obj, updateEpoch: epoch };
270
- // })
271
- // .filter(obj => obj.updateEpoch > lastUpdateEpoch);
272
- // if (!sync.length) {
273
- // return null;
274
- // }
275
- // return {
276
- // sync,
277
- // hash,
278
- // updateEpoch,
279
- // reset: false
280
- // };
281
- }
282
- static getTableMeta(trx, meta) {
283
- const trxModule = trx_node_1.TrxNode.getModule(trx);
284
- const bucketName = meta.bucket.name;
285
- const refName = (trxModule.name === meta.bucket.module ? '' : `${meta.bucket.module}::`) + bucketName;
286
- const bucket = trxModule.buckets[refName];
287
- const adapter = bucket.adapter;
288
- return {
289
- tableName: adapter.tableName,
290
- meta: adapter.config.meta
291
- };
292
- }
293
- }
294
- exports.PostgresBucketAdapter = PostgresBucketAdapter;
@@ -1,66 +0,0 @@
1
- import { CLIAdapter, CLICommand } from "../../../engine/cli/cli_adapter";
2
- import { PostgresProvider } from './postgres.provider';
3
- import { AnyDaemon } from "../../../engine/daemon";
4
- export declare class cmd_check extends CLICommand {
5
- provider: PostgresProvider;
6
- constructor(provider: PostgresProvider);
7
- run(daemon: AnyDaemon): Promise<void>;
8
- }
9
- export declare class cmd_tables extends CLICommand {
10
- provider: PostgresProvider;
11
- constructor(provider: PostgresProvider);
12
- run(): Promise<void>;
13
- }
14
- export declare class cmd_create_db extends CLICommand {
15
- provider: PostgresProvider;
16
- constructor(provider: PostgresProvider);
17
- run(daemon: AnyDaemon, $: {
18
- name: string;
19
- }): Promise<void>;
20
- }
21
- export declare class cmd_status extends CLICommand {
22
- provider: PostgresProvider;
23
- constructor(provider: PostgresProvider);
24
- run(daemon: AnyDaemon): Promise<void>;
25
- }
26
- export declare class cmd_make_migrations extends CLICommand {
27
- provider: PostgresProvider;
28
- constructor(provider: PostgresProvider);
29
- run(daemon: AnyDaemon, $: {
30
- tag: string;
31
- }): Promise<void>;
32
- }
33
- export declare class cmd_migrate_up extends CLICommand {
34
- provider: PostgresProvider;
35
- constructor(provider: PostgresProvider);
36
- run(daemon: AnyDaemon): Promise<void>;
37
- }
38
- export declare class cmd_migrate_one_up extends CLICommand {
39
- provider: PostgresProvider;
40
- constructor(provider: PostgresProvider);
41
- run(daemon: AnyDaemon): Promise<void>;
42
- }
43
- export declare class cmd_migrate_down extends CLICommand {
44
- provider: PostgresProvider;
45
- constructor(provider: PostgresProvider);
46
- run(daemon: AnyDaemon): Promise<void>;
47
- }
48
- export declare class cmd_migrate_one_down extends CLICommand {
49
- provider: PostgresProvider;
50
- constructor(provider: PostgresProvider);
51
- run(daemon: AnyDaemon): Promise<void>;
52
- }
53
- export declare class cmd_query extends CLICommand {
54
- provider: PostgresProvider;
55
- constructor(provider: PostgresProvider);
56
- run(): Promise<void>;
57
- }
58
- export declare class cmd_import_csv extends CLICommand {
59
- provider: PostgresProvider;
60
- constructor(provider: PostgresProvider);
61
- run(daemon: AnyDaemon, input: Record<string, any>): Promise<void>;
62
- }
63
- export declare class PostgresCLI extends CLIAdapter {
64
- provider: PostgresProvider;
65
- constructor(provider: PostgresProvider);
66
- }
@@ -1,184 +0,0 @@
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_import_csv = exports.cmd_query = exports.cmd_migrate_one_down = exports.cmd_migrate_down = 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 daemon_1 = require("../../../engine/daemon");
12
- const runner_1 = require("./migrator/runner");
13
- const postgres_bucket_adapter_1 = require("./postgres.bucket_adapter");
14
- const csv_1 = require("./migrator/csv");
15
- class cmd_check extends cli_adapter_1.CLICommand {
16
- constructor(provider) {
17
- super('any', 'check', 'check', 'Check if the connection to PostgreSQL is working properly');
18
- this.provider = provider;
19
- }
20
- async run(daemon) {
21
- const res = await database_1.Database.checkConnection(this.provider.sql);
22
- if (res == true)
23
- ui_1.default.result('ok', 'Connection to PostgreSQL working.');
24
- else
25
- ui_1.default.result('error', 'Connection to PostgreSQL not working.', res);
26
- await migrator_1.Migrator.prepare(daemon, this.provider.sql);
27
- }
28
- }
29
- exports.cmd_check = cmd_check;
30
- class cmd_tables extends cli_adapter_1.CLICommand {
31
- constructor(provider) {
32
- super('any', 'tables', 'tables', 'List the tables present on the database');
33
- this.provider = provider;
34
- }
35
- async run() {
36
- const res = await database_1.Database.listTables(this.provider.sql);
37
- ui_1.default.list(res);
38
- }
39
- }
40
- exports.cmd_tables = cmd_tables;
41
- class cmd_create_db extends cli_adapter_1.CLICommand {
42
- constructor(provider) {
43
- super('any', 'create db', 'create db( NAME)', 'Create the database used by the application', /(\w*)/, ['name']);
44
- this.provider = provider;
45
- }
46
- async run(daemon, $) {
47
- let name = $.name;
48
- const config = this.provider.config?.connection;
49
- if (!name) {
50
- if (!config?.db) {
51
- ui_1.default.result('error', 'Database name not configured on PostgresConfig used', config);
52
- return;
53
- }
54
- name = config.db;
55
- }
56
- try {
57
- await database_1.Database.createDatabase(name, config);
58
- ui_1.default.result('ok', `Database ${name} created`);
59
- }
60
- catch (e) {
61
- ui_1.default.result('error', `Failed to create database ${name}`, e);
62
- }
63
- await migrator_1.Migrator.prepare(daemon, this.provider.sql);
64
- }
65
- }
66
- exports.cmd_create_db = cmd_create_db;
67
- class cmd_status extends cli_adapter_1.CLICommand {
68
- constructor(provider) {
69
- super('any', 'status', 'status', 'Show the status of migrations on the current database');
70
- this.provider = provider;
71
- }
72
- async run(daemon) {
73
- const migrator = await migrator_1.Migrator.prepare(daemon, this.provider.sql);
74
- console.log(migrator.status.describe());
75
- }
76
- }
77
- exports.cmd_status = cmd_status;
78
- class cmd_make_migrations extends cli_adapter_1.CLICommand {
79
- constructor(provider) {
80
- super('any', 'make migrations', 'make migrations( TAG)', 'Generate migrations for the bucket(s) using PostgresBucketAdapter', /(\w*)/, ['tag']);
81
- this.provider = provider;
82
- }
83
- async run(daemon, $) {
84
- // TODO: restrict by tag
85
- const migrator = await migrator_1.Migrator.prepare(daemon, this.provider.sql);
86
- const migrations = await migrator.generate();
87
- for (const migration of migrations) {
88
- console.log(migration.describe());
89
- migration.save();
90
- }
91
- }
92
- }
93
- exports.cmd_make_migrations = cmd_make_migrations;
94
- class cmd_migrate_up extends cli_adapter_1.CLICommand {
95
- constructor(provider) {
96
- super('any', 'migrate up', 'migrate up', 'Run ALL the pending migrations up (batch)');
97
- this.provider = provider;
98
- }
99
- async run(daemon) {
100
- await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'batch');
101
- }
102
- }
103
- exports.cmd_migrate_up = cmd_migrate_up;
104
- class cmd_migrate_one_up extends cli_adapter_1.CLICommand {
105
- constructor(provider) {
106
- super('any', 'migrate one up', 'migrate one up', 'Run ONE pending migration up');
107
- this.provider = provider;
108
- }
109
- async run(daemon) {
110
- await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'one');
111
- }
112
- }
113
- exports.cmd_migrate_one_up = cmd_migrate_one_up;
114
- class cmd_migrate_down extends cli_adapter_1.CLICommand {
115
- constructor(provider) {
116
- super('any', 'migrate down', 'migrate down', 'Rollback the last batch of migrations');
117
- this.provider = provider;
118
- }
119
- async run(daemon) {
120
- await runner_1.MigrationRunner.down(daemon, this.provider.sql, 'batch');
121
- }
122
- }
123
- exports.cmd_migrate_down = cmd_migrate_down;
124
- class cmd_migrate_one_down extends cli_adapter_1.CLICommand {
125
- constructor(provider) {
126
- super('any', 'migrate one down', 'migrate one down', 'Rollback the last migration');
127
- this.provider = provider;
128
- }
129
- async run(daemon) {
130
- await runner_1.MigrationRunner.down(daemon, this.provider.sql, 'one');
131
- }
132
- }
133
- exports.cmd_migrate_one_down = cmd_migrate_one_down;
134
- class cmd_query extends cli_adapter_1.CLICommand {
135
- constructor(provider) {
136
- super('any', 'query', 'query', 'Run a SQL query on the database server');
137
- this.provider = provider;
138
- }
139
- async run() {
140
- const query = await ui_1.default.question('SQL');
141
- const res = await this.provider.sql.unsafe(query);
142
- console.log(res);
143
- }
144
- }
145
- exports.cmd_query = cmd_query;
146
- class cmd_import_csv extends cli_adapter_1.CLICommand {
147
- constructor(provider) {
148
- super('any', 'import csv', 'import csv PATH', 'Run a SQL query on the database server', /(.+)/, ['path']);
149
- this.provider = provider;
150
- }
151
- async run(daemon, input) {
152
- const buckets = daemon_1.Daemon.getModules(daemon)
153
- .map(module => Object.values(module.buckets)
154
- .filter(bucket => bucket.adapter instanceof postgres_bucket_adapter_1.PostgresBucketAdapter)
155
- .map(bucket => ({
156
- name: `${module.name}::${bucket.schema.name}`,
157
- tableName: bucket.adapter.tableName
158
- })))
159
- .flat(1);
160
- const bucket = await ui_1.default.select('Bucket', buckets, b => b.name);
161
- await csv_1.CSV.import(this.provider.sql, bucket.tableName, input.path);
162
- }
163
- }
164
- exports.cmd_import_csv = cmd_import_csv;
165
- class PostgresCLI extends cli_adapter_1.CLIAdapter {
166
- constructor(provider) {
167
- super();
168
- this.provider = provider;
169
- this.commands = {
170
- 'check': new cmd_check(provider),
171
- 'tables': new cmd_tables(provider),
172
- 'create db': new cmd_create_db(provider),
173
- 'status': new cmd_status(provider),
174
- 'make migrations': new cmd_make_migrations(provider),
175
- 'migrate up': new cmd_migrate_up(provider),
176
- 'migrate one up': new cmd_migrate_one_up(provider),
177
- 'migrate down': new cmd_migrate_down(provider),
178
- 'migrate one down': new cmd_migrate_one_down(provider),
179
- 'query': new cmd_query(provider),
180
- 'import csv': new cmd_import_csv(provider),
181
- };
182
- }
183
- }
184
- exports.PostgresCLI = PostgresCLI;
@@ -1,5 +0,0 @@
1
- import { BucketAdapterConfig } from "../../../elements/entities/bucket/adapters/bucket_adapter";
2
- import postgres from 'postgres';
3
- export type PostgresConfig = BucketAdapterConfig & {
4
- connection?: postgres.Options<any>;
5
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,16 +0,0 @@
1
- import { AnyTrxNode } from "../../../engine/transaction/trx_node";
2
- import { NQLRunner } from "../../../elements/entities/bucket/query/nql_engine";
3
- import { NQL_Pagination, 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
- run(trx: AnyTrxNode, part: NQL_Part, params: Obj, pagination?: NQL_Pagination): Promise<{
10
- data: Obj[];
11
- count: number | undefined;
12
- page: number | undefined;
13
- perPage: number | undefined;
14
- }>;
15
- }
16
- export {};