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,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BucketBuilder = void 0;
4
+ const bucket_graph_builder_1 = require("./graph/bucket_graph.builder");
5
+ const bucket_view_builder_1 = require("./view/bucket_view.builder");
6
+ const bucket_schema_1 = require("./bucket.schema");
7
+ const bucket_model_builder_1 = require("./model/bucket_model.builder");
8
+ const bucket_model_convert_1 = require("./model/bucket_model.convert");
9
+ const bucket_model_field_builder_1 = require("./model/bucket_model_field.builder");
10
+ const bucket_graph_link_builder_1 = require("./graph/bucket_graph_link.builder");
11
+ const dependency_1 = require("../../../engine/dependency");
12
+ const constants_schema_1 = require("../constants/constants.schema");
13
+ const error_1 = require("../../../engine/data/error");
14
+ class BucketBuilder {
15
+ constructor(module, name) {
16
+ this.module = module;
17
+ this.name = name;
18
+ this.$b = 'bucket';
19
+ this._graph = {};
20
+ this._views = {};
21
+ }
22
+ as(alias) {
23
+ this._alias = alias;
24
+ return this;
25
+ }
26
+ extend(name) {
27
+ this._extend = new dependency_1.$Dependency(this.module, 'bucket', name);
28
+ return this;
29
+ }
30
+ model($) {
31
+ const fieldBuilder = new bucket_model_field_builder_1.BucketModelFieldFactory(this.module);
32
+ const fields = $(fieldBuilder);
33
+ const builder = new bucket_model_builder_1.BucketModelBuilder(this.module).fields(fields);
34
+ this._model = bucket_model_builder_1.BucketModelBuilder.build(builder);
35
+ return this;
36
+ }
37
+ graph($) {
38
+ const linkFactory = new bucket_graph_link_builder_1.BucketGraphLinkFactory(this.module);
39
+ const links = $(linkFactory);
40
+ this._graph = links;
41
+ return this;
42
+ }
43
+ view(name, $) {
44
+ const view = new bucket_view_builder_1.BucketViewBuilder(name);
45
+ view.fields($);
46
+ this._views[name] = view;
47
+ return this;
48
+ }
49
+ // Build
50
+ static build(node, tree) {
51
+ // If there's an external bucket linked, merge some of
52
+ // the information before starting.
53
+ let $ext;
54
+ const extend = node.builder._extend;
55
+ if (extend) {
56
+ $ext = tree.getSchema(extend);
57
+ // Model
58
+ node.builder._model = Object.assign({}, $ext?.model || {}, node.builder._model);
59
+ // Enums
60
+ // (In order to avoid having to import constants definitions for extended buckets)
61
+ const constants = tree.getSchema({
62
+ module: extend.module,
63
+ type: 'constants',
64
+ name: '*'
65
+ });
66
+ this.mergeModelEnums(node.builder._model.fields, constants);
67
+ }
68
+ const graph = BucketBuilder.buildGraph(node, tree, extend);
69
+ const views = BucketBuilder.buildViews(node.builder, graph, tree, extend);
70
+ BucketBuilder.checkComposition(node, graph);
71
+ node.schema = new bucket_schema_1.$Bucket(node.builder.module, node.builder.name, node.builder._alias || $ext?.alias || node.builder.name, node.builder._model, graph, views, extend);
72
+ return node.schema;
73
+ }
74
+ static mergeModelEnums(fields, constants) {
75
+ Object.values(fields).forEach(field => {
76
+ if (field.type === 'enum' && typeof field._enum?.options === 'string') {
77
+ field._enum = {
78
+ options: constants_schema_1.$ConstantEnum.keys(constants.enums[field._enum.options])
79
+ };
80
+ }
81
+ if (field.children) {
82
+ this.mergeModelEnums(field.children, constants);
83
+ }
84
+ });
85
+ }
86
+ static buildGraph(node, tree, extend) {
87
+ const links = {};
88
+ if (extend) {
89
+ const ext = tree.getSchema(extend);
90
+ Object.assign(links, ext.graph.links);
91
+ }
92
+ const graphBuilder = new bucket_graph_builder_1.BucketGraphBuilder().links(node.builder._graph);
93
+ const graph = bucket_graph_builder_1.BucketGraphBuilder.build(node, graphBuilder);
94
+ Object.values(graph.links).forEach(link => {
95
+ if (link.keyOwner === 'other') {
96
+ link.selfKey || (link.selfKey = 'id');
97
+ link.otherKey || (link.otherKey = node.builder.name + '_id');
98
+ }
99
+ else if (link.keyOwner === 'self') {
100
+ link.selfKey || (link.selfKey = link.bucket.name + '_id');
101
+ link.otherKey || (link.otherKey = 'id');
102
+ }
103
+ });
104
+ graph.links = Object.assign(graph.links, links);
105
+ return graph;
106
+ }
107
+ static buildViews(builder, graph, tree, extend) {
108
+ const views = {
109
+ default: (0, bucket_model_convert_1.convertToView)(builder._model, 'default')
110
+ };
111
+ if (extend) {
112
+ const ext = tree.getSchema(extend);
113
+ Object.assign(views, ext.views);
114
+ }
115
+ for (const v in builder._views) {
116
+ views[v] = bucket_view_builder_1.BucketViewBuilder.build(builder._views[v], builder._model, graph, views);
117
+ }
118
+ return views;
119
+ }
120
+ static checkComposition(node, graph) {
121
+ Object.values(graph.links).forEach(link => {
122
+ if (link.rel === 'composition') {
123
+ if (link.pivotBucket) {
124
+ throw error_1.NesoiError.Builder.Bucket.CompositionWithPivotNotAllowed();
125
+ }
126
+ }
127
+ });
128
+ }
129
+ }
130
+ exports.BucketBuilder = BucketBuilder;
@@ -0,0 +1,29 @@
1
+ import { BucketAdapter } from './adapters/bucket_adapter';
2
+ import { $Bucket } from './bucket.schema';
3
+ export type BucketConfig<B extends $Bucket, Providers extends Record<string, any>> = {
4
+ /** Adapter used by this bucket to communicate with a data source */
5
+ adapter?: (schema: B, providers: Providers) => BucketAdapter<B['#data']>;
6
+ /** Settings for the app cache of this bucket */
7
+ cache?: {
8
+ /** Inner adapter used by the cache to manage cache entry data */
9
+ adapter?: BucketAdapter<B['#data']>;
10
+ /** Cache mode for each read method. Undefined on a method means no cache for that method. */
11
+ mode?: {
12
+ /** Cache mode for `get`:
13
+ * - **one**: Update/delete the object, then return
14
+ * - **past**: Update/delete the object and update all objects modified before it, then return
15
+ * - **all**: Update/reset the cache, then return
16
+ */
17
+ get?: 'one' | 'past' | 'all';
18
+ /** Cache mode for `index`:
19
+ * - **all**: Update/reset the cache, then return
20
+ */
21
+ index?: 'all';
22
+ /** Cache mode for `query`:
23
+ * - **incremental**: Query ids only, then query data for modified entries only, save them and return
24
+ * - **all**: Update/reset the cache, then query the inner adapter and return
25
+ */
26
+ query?: 'incremental' | 'all';
27
+ };
28
+ };
29
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,36 @@
1
+ import { AnyTrxNode } from "../../../engine/transaction/trx_node";
2
+ import { NesoiObj, NewOrOldObj } from "../../../engine/data/obj";
3
+ import { $Module, ViewName, ViewObj } from "../../../schema";
4
+ import { $Bucket } from './bucket.schema';
5
+ import { AnyBucketAdapter, BucketAdapter } from './adapters/bucket_adapter';
6
+ import { BucketConfig } from './bucket.config';
7
+ import { BucketGraph } from './graph/bucket_graph';
8
+ import { NQL_AnyQuery, NQL_Order, NQL_Pagination } from './query/nql.schema';
9
+ export declare class Bucket<M extends $Module, $ extends $Bucket> {
10
+ schema: $;
11
+ private config?;
12
+ providers: Record<string, any>;
13
+ private adapter;
14
+ private cache?;
15
+ graph: BucketGraph<M, $>;
16
+ private views;
17
+ constructor(schema: $, config?: BucketConfig<$, any> | undefined, providers?: Record<string, any>);
18
+ readOne<Obj = $['#data']>(trx: AnyTrxNode, id: (Obj & NesoiObj)['id']): Promise<Obj | undefined>;
19
+ readAll<Obj = $['#data']>(trx: AnyTrxNode, pagination?: NQL_Pagination, order?: NQL_Order<$['#fieldpath']>): Promise<Obj[]>;
20
+ viewOne<V extends ViewName<$>, Obj extends ViewObj<$, V>>(trx: AnyTrxNode, id: (Obj & NesoiObj)['id'], view: V): Promise<Obj | undefined>;
21
+ viewAll<V extends ViewName<$>, Obj extends ViewObj<$, V>>(trx: AnyTrxNode, view: V, pagination?: NQL_Pagination, order?: NQL_Order<$['#fieldpath']>): Promise<Obj[]>;
22
+ buildOne<V extends ViewName<$>, Obj extends ViewObj<$, V>>(trx: AnyTrxNode, obj: $['#data'], view: V): Promise<Obj>;
23
+ buildAll<V extends ViewName<$>, Obj extends ViewObj<$, V>>(trx: AnyTrxNode, objs: $['#data'][], view: V): Promise<Obj[]>;
24
+ put<Obj = $['#data']>(trx: AnyTrxNode, obj: NewOrOldObj<Obj & NesoiObj>): Promise<Obj>;
25
+ delete(trx: AnyTrxNode, id: $['#data']['id']): Promise<void>;
26
+ deleteMany(trx: AnyTrxNode, ids: $['#data']['id'][]): Promise<void>;
27
+ query<V extends ViewName<$>, Obj extends ViewObj<$, V>>(trx: AnyTrxNode, query: NQL_AnyQuery, pagination?: NQL_Pagination, view?: V): Promise<Obj[]>;
28
+ static getQueryMeta(bucket: AnyBucket): {
29
+ bucket: $Bucket;
30
+ scope: string;
31
+ avgTime: number;
32
+ };
33
+ static getQueryRunner(bucket: AnyBucket): AnyBucketAdapter["nql"];
34
+ static getAdapter(bucket: AnyBucket): BucketAdapter<NesoiObj>;
35
+ }
36
+ export type AnyBucket = Bucket<$Module, $Bucket>;
@@ -0,0 +1,22 @@
1
+ import { $BucketViewField, $BucketViewFields } from './view/bucket_view.schema';
2
+ import { BucketViewFieldBuilder, BucketViewFieldBuilderTree } from './view/bucket_view_field.builder';
3
+ export type $BucketViewFieldsInfer<Builder extends BucketViewFieldBuilderTree> = Builder extends (...args: any[]) => $BucketViewFields ? ReturnType<Builder> : {
4
+ [K in keyof Builder]: Builder[K] extends BucketViewFieldBuilderTree ? ($BucketViewField & {
5
+ '#data': $BucketViewFieldsInfer<Builder[K]>;
6
+ }) : Builder[K] extends BucketViewFieldBuilder<any, any, any> ? $BucketViewField & {
7
+ '#data': Builder[K] extends BucketViewFieldBuilder<infer X, any> ? X : never;
8
+ } : never;
9
+ };
10
+ export type $BucketViewDataInfer<Builder extends BucketViewFieldBuilderTree> = {
11
+ [K in keyof Builder]: Builder[K] extends BucketViewFieldBuilderTree ? $BucketViewDataInfer<Builder[K]> : Builder[K] extends BucketViewFieldBuilder<infer X, any> ? X : never;
12
+ };
13
+ export type $BucketViewFieldBuilderInfer<Data> = {
14
+ [K in keyof Data]: BucketViewFieldBuilder<Data[K], any>;
15
+ };
16
+ /**
17
+ * [Fieldpaths]
18
+ *
19
+ * The code below works but is very slow.
20
+ * It's here for reference and should be deleted in the future.
21
+ * It's been replaced by a generic Fieldpath on the builder.
22
+ */
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * [Fieldpaths]
5
+ *
6
+ * The code below works but is very slow.
7
+ * It's here for reference and should be deleted in the future.
8
+ * It's been replaced by a generic Fieldpath on the builder.
9
+ */
10
+ // type IsAnyOrUnknown<T> = Exclude<any extends T ? true : false, true> extends never ? true : false
11
+ // type $BucketFieldpathInferStep<
12
+ // Data extends Record<string, Record<string, any> | any[]>
13
+ // > = MergeUnion<{
14
+ // [P in keyof Data]:
15
+ // // If the prefixed object is any or unknown, ignore it
16
+ // IsAnyOrUnknown<Data[P]> extends true ? never
17
+ // : NonNullable<Data[P]> extends object ?
18
+ // // If the prefixed object is a list, return
19
+ // // an object where the key ends with '*' and it's
20
+ // // a single element of the list
21
+ // NonNullable<Data[P]> extends any[] ? { [_ in `${P & string}*`]: ListItem<Data[P]> }
22
+ // // If the prefixed object is a dict, return
23
+ // // an object where the key ends with '*' and it's
24
+ // // a single element of the dict
25
+ // : string extends keyof NonNullable<Data[P]> ? { [_ in `${P & string}*`]: DictItem<Data[P]> }
26
+ // // If it's an object, add it to the union
27
+ // // based on the type
28
+ // : {
29
+ // [K in keyof NonNullable<Data[P]>]:
30
+ // IsAnyOrUnknown<NonNullable<Data[P][K]>> extends true
31
+ // // any
32
+ // ? {[_ in `${P & string}${K & string}`]: any}
33
+ // : NonNullable<Data[P][K]> extends any[]
34
+ // // array (prop and prop.*)
35
+ // ? (
36
+ // {[_ in `${P & string}${K & string}`]: ObjItem<Data[P], K>}
37
+ // | { [_ in `${P & string}${K & string}.*`]: ListItem<Data[P][K]> }
38
+ // )
39
+ // // dict (prop and prop.*)
40
+ // : string extends keyof NonNullable<Data[P][K]>
41
+ // ? (
42
+ // {[_ in `${P & string}${K & string}`]: ObjItem<Data[P], K>}
43
+ // | { [_ in `${P & string}${K & string}.*`]: DictItem<Data[P][K]> }
44
+ // )
45
+ // // simple type
46
+ // : {[_ in `${P & string}${K & string}`]: ObjItem<Data[P], K>}
47
+ // }[keyof NonNullable<Data[P]>]
48
+ // // Primitive
49
+ // : never
50
+ // // : { [_ in (P extends `${infer X}.` ? X : P)]: Data[P] }
51
+ // }[keyof Data]>
52
+ // type $BucketFieldpathInferNext<
53
+ // Data,
54
+ // ObjectFields extends object = {
55
+ // [K in keyof Data as (
56
+ // // Exclude injected keys, to avoid duplicate nexts
57
+ // Data[`${K & string}.*` & keyof Data] extends never ?
58
+ // // any/unknown, not an object
59
+ // IsAnyOrUnknown<Data[K]> extends true ?
60
+ // never
61
+ // : NonNullable<Data[K]> extends object ?
62
+ // NonNullable<Data[K]> extends NesoiDate ? never
63
+ // : `${K & string}.`
64
+ // : never
65
+ // : never
66
+ // )]: Data[K]
67
+ // }
68
+ // > = ObjectFields[keyof ObjectFields] extends never ? never : ObjectFields
69
+ // /**
70
+ // * Infer the #fieldpaths from a type
71
+ // */
72
+ // export type $BucketFieldpathInfer<
73
+ // Data extends Record<string, any>,
74
+ // Input extends Record<string, any> = { '': Data },
75
+ // Step extends object = $BucketFieldpathInferStep<Input>,
76
+ // Next extends Record<string, any> = $BucketFieldpathInferNext<Step>
77
+ // // > = {
78
+ // // step: Step,
79
+ // // // next: Next
80
+ // // next: Next extends never ? never : $BucketFieldpathInfer<any, Next>
81
+ // // }
82
+ // > = MergeUnion<{
83
+ // step: Step,
84
+ // next: Next extends never ? never : $BucketFieldpathInfer<any, Next>
85
+ // }['step'|'next']>
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Bucket = void 0;
4
+ const error_1 = require("../../../engine/data/error");
5
+ const bucket_view_1 = require("./view/bucket_view");
6
+ const memory_bucket_adapter_1 = require("./adapters/memory.bucket_adapter");
7
+ const bucket_cache_1 = require("./cache/bucket_cache");
8
+ const log_1 = require("../../../engine/util/log");
9
+ const bucket_graph_1 = require("./graph/bucket_graph");
10
+ class Bucket {
11
+ constructor(schema, config, providers = {}) {
12
+ this.schema = schema;
13
+ this.config = config;
14
+ this.providers = providers;
15
+ // Config
16
+ this.adapter = this.config?.adapter?.(schema, providers) || new memory_bucket_adapter_1.MemoryBucketAdapter(schema, {});
17
+ // Graph
18
+ this.graph = new bucket_graph_1.BucketGraph(this);
19
+ // Views
20
+ const views = {};
21
+ for (const v in schema.views) {
22
+ views[v] = new bucket_view_1.BucketView(this, schema.views[v]);
23
+ }
24
+ this.views = views;
25
+ // Cache
26
+ if (this.config?.cache) {
27
+ this.cache = new bucket_cache_1.BucketCache(this.schema.name, this.adapter, this.config.cache);
28
+ }
29
+ }
30
+ // Get
31
+ async readOne(trx, id) {
32
+ if (typeof id !== 'string' && typeof id !== 'number') {
33
+ throw error_1.NesoiError.Bucket.InvalidId({ bucket: this.schema.alias, id });
34
+ }
35
+ log_1.Log.debug('bucket', this.schema.name, `Get id=${id}`);
36
+ const raw = this.cache
37
+ ? await this.cache.get(trx, id)
38
+ : await this.adapter.get(trx, id);
39
+ if (!raw)
40
+ return undefined;
41
+ return raw;
42
+ }
43
+ async readAll(trx, pagination, order) {
44
+ log_1.Log.debug('bucket', this.schema.name, 'Index');
45
+ const raws = this.cache
46
+ ? await this.cache.index(trx)
47
+ : await this.adapter.index(trx);
48
+ return raws;
49
+ }
50
+ async viewOne(trx, id, view) {
51
+ if (typeof id !== 'string' && typeof id !== 'number') {
52
+ throw error_1.NesoiError.Bucket.InvalidId({ bucket: this.schema.alias, id });
53
+ }
54
+ log_1.Log.debug('bucket', this.schema.name, `View id=${id}, v=${view}`);
55
+ const obj = await this.readOne(trx, id);
56
+ if (!obj) {
57
+ return;
58
+ }
59
+ return this.buildOne(trx, obj, view);
60
+ }
61
+ async viewAll(trx, view, pagination, order) {
62
+ log_1.Log.debug('bucket', this.schema.name, `View all, v=${view}`);
63
+ const objs = await this.readAll(trx);
64
+ return this.buildAll(trx, objs, view);
65
+ }
66
+ async buildOne(trx, obj, view) {
67
+ if (!(view in this.views)) {
68
+ throw error_1.NesoiError.Bucket.ViewNotFound({ bucket: this.schema.alias, view: view });
69
+ }
70
+ return this.views[view].parse(trx, obj);
71
+ }
72
+ async buildAll(trx, objs, view) {
73
+ return Promise.all(objs.map(obj => this.buildOne(trx, obj, view)));
74
+ }
75
+ // Put
76
+ async put(trx, obj) {
77
+ log_1.Log.debug('bucket', this.schema.name, `Put id=${obj['id'] || 'new'}`, obj);
78
+ const raw = await this.adapter.put(trx, obj);
79
+ return raw;
80
+ }
81
+ // Delete
82
+ async delete(trx, id) {
83
+ if (typeof id !== 'string' && typeof id !== 'number') {
84
+ throw error_1.NesoiError.Bucket.InvalidId({ bucket: this.schema.alias, id });
85
+ }
86
+ log_1.Log.debug('bucket', this.schema.name, `Delete id=${id}`);
87
+ await this.adapter.delete(trx, id);
88
+ }
89
+ async deleteMany(trx, ids) {
90
+ log_1.Log.debug('bucket', this.schema.name, `Delete Many ids=${ids}`);
91
+ await this.adapter.deleteMany(trx, ids);
92
+ }
93
+ // Query
94
+ async query(trx, query, pagination, view) {
95
+ log_1.Log.trace('bucket', this.schema.name, 'Query', query);
96
+ const v = (view ? this.views[view] : null) || this.views['default'];
97
+ if (!v) {
98
+ throw error_1.NesoiError.Bucket.Query.ViewNotFound(this.schema.name, view || 'default');
99
+ }
100
+ const raws = this.cache
101
+ ? await this.cache.query(trx, v.schema, query, pagination)
102
+ : await this.adapter.query(trx, query, pagination);
103
+ if (!raws.length)
104
+ return [];
105
+ if (view) {
106
+ return this.buildAll(trx, raws, view);
107
+ }
108
+ else {
109
+ return raws;
110
+ }
111
+ }
112
+ static getQueryMeta(bucket) {
113
+ return {
114
+ ...bucket.adapter.getQueryMeta(),
115
+ bucket: bucket.schema
116
+ };
117
+ }
118
+ static getQueryRunner(bucket) {
119
+ return bucket.adapter.nql;
120
+ }
121
+ static getAdapter(bucket) {
122
+ return bucket.adapter;
123
+ }
124
+ }
125
+ exports.Bucket = Bucket;
@@ -0,0 +1,24 @@
1
+ import { $BucketGraph } from './graph/bucket_graph.schema';
2
+ import { $BucketViews } from './view/bucket_view.schema';
3
+ import { $BucketModel } from './model/bucket_model.schema';
4
+ import { NesoiObj } from "../../../engine/data/obj";
5
+ import { $Dependency } from "../../../engine/dependency";
6
+ export declare class $Bucket {
7
+ module: string;
8
+ name: string;
9
+ alias: string;
10
+ model: $BucketModel;
11
+ graph: $BucketGraph;
12
+ views: $BucketViews;
13
+ extended?: $Dependency | undefined;
14
+ $t: "bucket";
15
+ '#data': NesoiObj;
16
+ '#composition': Record<string, {
17
+ bucket: $Bucket;
18
+ many: boolean;
19
+ optional: boolean;
20
+ }>;
21
+ '#fieldpath': {};
22
+ '#defaults': Record<string, any>;
23
+ constructor(module: string, name: string, alias: string, model: $BucketModel, graph: $BucketGraph, views: $BucketViews, extended?: $Dependency | undefined);
24
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$Bucket = void 0;
4
+ class $Bucket {
5
+ constructor(module, name, alias, model, graph, views, extended) {
6
+ this.module = module;
7
+ this.name = name;
8
+ this.alias = alias;
9
+ this.model = model;
10
+ this.graph = graph;
11
+ this.views = views;
12
+ this.extended = extended;
13
+ this.$t = 'bucket';
14
+ }
15
+ }
16
+ exports.$Bucket = $Bucket;
@@ -0,0 +1,32 @@
1
+ import { NewOrOldObj } from "../../../engine/data/obj";
2
+ import { $Bucket } from './bucket.schema';
3
+ import { DeepPartialNullable } from "../../../engine/util/deep";
4
+ export type PutObj<$ extends $Bucket> = NewOrOldObj<$['#data']> & (keyof $['#composition'] extends never ? {} : {
5
+ '#composition': {
6
+ [K in keyof $['#composition']]: $['#composition'][K]['many'] extends true ? (PutObj<$['#composition'][K]['bucket']> | ($['#composition'][K]['optional'] extends true ? undefined : never))[] : PutObj<$['#composition'][K]['bucket']> | ($['#composition'][K]['optional'] extends true ? undefined : never);
7
+ };
8
+ });
9
+ export type CreateObj<$ extends $Bucket> = Omit<$['#data'], 'id' | keyof $['#defaults']> & {
10
+ [K in keyof $['#defaults']]?: $['#data'][K];
11
+ } & (string extends keyof $['#composition'] ? {} : keyof $['#composition'] extends never ? {} : {
12
+ '#composition': {
13
+ [K in keyof $['#composition']]: $['#composition'][K]['many'] extends true ? (PutObj<$['#composition'][K]['bucket']> | ($['#composition'][K]['optional'] extends true ? undefined : never))[] : PutObj<$['#composition'][K]['bucket']> | ($['#composition'][K]['optional'] extends true ? undefined : never);
14
+ };
15
+ });
16
+ export type ReplaceObj<$ extends $Bucket> = $['#data'] & (string extends keyof $['#composition'] ? {} : keyof $['#composition'] extends never ? {} : {
17
+ '#composition': {
18
+ [K in keyof $['#composition']]: $['#composition'][K]['many'] extends true ? ReplaceObj<$['#composition'][K]['bucket']>[] : ReplaceObj<$['#composition'][K]['bucket']>;
19
+ };
20
+ });
21
+ export type PatchObj<$ extends $Bucket> = DeepPartialNullable<$['#data']> & {
22
+ id: $['#data']['id'];
23
+ } & (string extends keyof $['#composition'] ? {} : keyof $['#composition'] extends never ? {} : {
24
+ '#composition'?: {
25
+ [K in keyof $['#composition']]?: $['#composition'][K]['many'] extends true ? PatchObj<$['#composition'][K]['bucket']>[] : Omit<PatchObj<$['#composition'][K]['bucket']>, 'id'>;
26
+ };
27
+ });
28
+ export type PatchResourceObj<$ extends $Bucket> = DeepPartialNullable<Omit<$['#data'], 'id'>> & (keyof $['#composition'] extends never ? {} : {
29
+ '#composition'?: {
30
+ [K in keyof $['#composition']]?: $['#composition'][K]['many'] extends true ? PatchObj<$['#composition'][K]['bucket']>[] : PatchResourceObj<$['#composition'][K]['bucket']>;
31
+ };
32
+ });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,35 @@
1
+ import { BucketConfig } from '../bucket.config';
2
+ import { AnyTrxNode } from "../../../../engine/transaction/trx_node";
3
+ import { NesoiObj } from "../../../../engine/data/obj";
4
+ import { AnyBucketAdapter } from '../adapters/bucket_adapter';
5
+ import { $BucketView } from '../view/bucket_view.schema';
6
+ import { NQL_AnyQuery, NQL_Pagination } from '../query/nql.schema';
7
+ export type BucketCacheSync<T> = {
8
+ obj: T;
9
+ updateEpoch: number;
10
+ };
11
+ export declare class BucketCacheEntry<Obj extends NesoiObj> {
12
+ id: Obj['id'];
13
+ obj: Obj;
14
+ updateEpoch: number;
15
+ syncEpoch: number;
16
+ constructor(id: Obj['id'], obj: Obj, updateEpoch: number, syncEpoch: number);
17
+ }
18
+ export declare class BucketCache<Obj extends NesoiObj> {
19
+ private bucketName;
20
+ private outerAdapter;
21
+ private config;
22
+ private lastUpdateEpoch?;
23
+ private lastSyncEpoch?;
24
+ private lastHash?;
25
+ private innerAdapter;
26
+ constructor(bucketName: string, outerAdapter: AnyBucketAdapter, config: NonNullable<BucketConfig<any, any>['cache']>);
27
+ get(trx: AnyTrxNode, id: NesoiObj['id']): Promise<any>;
28
+ index(trx: AnyTrxNode): Promise<any[]>;
29
+ query(trx: AnyTrxNode, view: $BucketView, query: NQL_AnyQuery, pagination?: NQL_Pagination): Promise<any[]>;
30
+ private syncOne;
31
+ private syncOneAndPast;
32
+ private syncAll;
33
+ private syncQuery;
34
+ }
35
+ export type AnyBucketCache = BucketCache<any>;