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,218 @@
1
+ "use strict";
2
+ // import { AnyTrxNode } from '~/engine/transaction/trx_node';
3
+ // import { NesoiObj } from '~/engine/data/obj';
4
+ // import { NesoiError } from '~/engine/data/error';
5
+ // import { Tree } from '~/engine/data/tree';
6
+ // import { $BucketView } from '../view/bucket_view.schema';
7
+ // import { BucketQuery } from '../query/bucket_query';
8
+ // import { BucketAdapter } from './bucket_adapter';
9
+ // import { MemoryBucketAdapter } from './memory.bucket_adapter';
10
+ // /**
11
+ // * This is a slow implementation of the query engine for a Memory Bucket.
12
+ // *
13
+ // * It goes through all objects and applies all rules. If one returns false,
14
+ // * it skips and goes to the next.
15
+ // */
16
+ // export class MemoryBucketQuery extends BucketQuery {
17
+ // async run<Obj extends NesoiObj, V extends $BucketView>(
18
+ // adapter: BucketAdapter<Obj>,
19
+ // trx: AnyTrxNode,
20
+ // view: V,
21
+ // query: $BucketQuery,
22
+ // pagination?: NQL_Pagination
23
+ // ) {
24
+ // const filtered: Obj[] = [];
25
+ // await this.parse(trx, view, query);
26
+ // const memory = adapter as MemoryBucketAdapter<Obj>;
27
+ // for (const id in memory.data) {
28
+ // const obj = (memory.data as any)[id] as Obj;
29
+ // const match = await this.checkObj(view, obj, query);
30
+ // if (match) {
31
+ // filtered.push(obj);
32
+ // }
33
+ // }
34
+ // return filtered;
35
+ // }
36
+ // private async checkObj<Obj extends NesoiObj, V extends $BucketView>(
37
+ // view: V,
38
+ // obj: Obj,
39
+ // query: $BucketQuery
40
+ // ) {
41
+ // for (const term of query.or) {
42
+ // const match = ('$t' in term) && term.$t === 'bucket.query.rule'
43
+ // ? await this.applyRule(view, obj, term)
44
+ // : await this.checkObj(view, obj, term);
45
+ // if (match) {
46
+ // return true;
47
+ // }
48
+ // }
49
+ // for (const term of query.and) {
50
+ // const match = ('$t' in term) && term.$t === 'bucket.query.rule'
51
+ // ? await this.applyRule(view, obj, term)
52
+ // : await this.checkObj(view, obj, term);
53
+ // if (!match) {
54
+ // return false;
55
+ // }
56
+ // }
57
+ // return true;
58
+ // }
59
+ // private async applyRule<Obj extends NesoiObj, V extends $BucketView>(
60
+ // view: V,
61
+ // obj: Obj,
62
+ // rule: $BucketQueryRule
63
+ // ) {
64
+ // const field = rule.viewField;
65
+ // const objVal = Tree.get(obj, rule.path);
66
+ // let res;
67
+ // switch (field.type) {
68
+ // case 'id':
69
+ // res = await this.applyIdRule(objVal, rule); break;
70
+ // case 'int':
71
+ // case 'float':
72
+ // res = await this.applyNumberRule(objVal, rule); break;
73
+ // case 'string':
74
+ // res = await this.applyStringRule(objVal, rule); break;
75
+ // case 'boolean':
76
+ // res = await this.applyBooleanRule(objVal, rule); break;
77
+ // // TODO
78
+ // // case 'list':
79
+ // // return this.applyListRule(objVal, rule);
80
+ // // case 'obj':
81
+ // // return this.applyObjRule(objVal, rule);
82
+ // }
83
+ // if (rule.not) {
84
+ // res = !res;
85
+ // }
86
+ // return res;
87
+ // }
88
+ // private async applyIdRule(
89
+ // objVal: number|string,
90
+ // rule: $BucketQueryRule
91
+ // ) {
92
+ // switch (rule.op) {
93
+ // case '==':
94
+ // if (typeof rule.parsedValue !== 'number' && typeof rule.parsedValue !== 'string')
95
+ // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'id');
96
+ // return objVal === rule.parsedValue;
97
+ // case 'in':
98
+ // if (!Array.isArray(rule.parsedValue))
99
+ // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'id[]');
100
+ // return (rule.parsedValue as (number|string)[]).includes(objVal);
101
+ // case 'present':
102
+ // return (objVal !== undefined) === rule.parsedValue;
103
+ // }
104
+ // }
105
+ // private async applyNumberRule(
106
+ // objVal: number | number[],
107
+ // rule: $BucketQueryRule
108
+ // ) {
109
+ // const isNumber = typeof objVal === 'number';
110
+ // const isNumberList = Array.isArray(objVal) && !objVal.some(v => typeof v !== 'number');
111
+ // if (!isNumber && !isNumberList) {
112
+ // return false;
113
+ // }
114
+ // switch (rule.op) {
115
+ // case '<':
116
+ // return (objVal as number) < (rule.parsedValue as number);
117
+ // case '<=':
118
+ // return (objVal as number) <= (rule.parsedValue as number);
119
+ // case '>':
120
+ // return (objVal as number) > (rule.parsedValue as number);
121
+ // case '>=':
122
+ // return (objVal as number) >= (rule.parsedValue as number);
123
+ // case '==':
124
+ // return (objVal as number) === (rule.parsedValue as number);
125
+ // case 'in':
126
+ // return (rule.parsedValue as number[]).includes(objVal as number);
127
+ // case 'contains':
128
+ // return (rule.parsedValue as boolean[]).includes(rule.parsedValue as boolean);
129
+ // case 'contains_any':
130
+ // return (rule.parsedValue as boolean[]).some(v => (rule.parsedValue as boolean[]).includes(v));
131
+ // case 'present':
132
+ // return (objVal !== undefined) === rule.parsedValue;
133
+ // }
134
+ // }
135
+ // private async applyStringRule(
136
+ // objVal: string | string[],
137
+ // rule: $BucketQueryRule
138
+ // ) {
139
+ // const isString = typeof objVal === 'string';
140
+ // const isStringList = Array.isArray(objVal) && !objVal.some(v => typeof v !== 'string');
141
+ // if (!isString && !isStringList) {
142
+ // return false;
143
+ // }
144
+ // switch (rule.op) {
145
+ // case '==':
146
+ // if (rule.case_sensitive) {
147
+ // return objVal === rule.parsedValue;
148
+ // }
149
+ // return (objVal as string).toLowerCase() === (rule.parsedValue as string).toLowerCase()
150
+ // case 'contains':
151
+ // if (rule.case_sensitive) {
152
+ // return objVal.includes(rule.parsedValue as string);
153
+ // }
154
+ // return (objVal as string).toLowerCase().includes((rule.parsedValue as string).toLowerCase());
155
+ // case 'contains_any':
156
+ // if (rule.case_sensitive) {
157
+ // return (rule.parsedValue as string[]).some(v => objVal.includes(v.toString()));
158
+ // }
159
+ // return (rule.parsedValue as string[])
160
+ // .map(o => o.toString().toLowerCase())
161
+ // .some(v => objVal.includes(v.toString()));
162
+ // case 'in':
163
+ // return (rule.parsedValue as string|string[]).includes(objVal as string);
164
+ // case 'present':
165
+ // return (objVal !== undefined) === rule.parsedValue;
166
+ // }
167
+ // }
168
+ // private async applyBooleanRule(
169
+ // objVal: boolean | boolean[],
170
+ // rule: $BucketQueryRule
171
+ // ) {
172
+ // const isBoolean = typeof objVal === 'boolean';
173
+ // const isBooleanList = Array.isArray(objVal) && !objVal.some(v => typeof v !== 'boolean');
174
+ // if (!isBoolean && !isBooleanList) {
175
+ // return false;
176
+ // }
177
+ // switch (rule.op) {
178
+ // case '==':
179
+ // return objVal === rule.parsedValue;
180
+ // case 'in':
181
+ // return (rule.parsedValue as boolean[]).includes(objVal as boolean);
182
+ // case 'contains':
183
+ // return (objVal as boolean[]).includes(rule.parsedValue as boolean);
184
+ // case 'contains_any':
185
+ // return (rule.parsedValue as boolean[]).some(v => (objVal as boolean[]).includes(v));
186
+ // case 'present':
187
+ // return (objVal !== undefined) === rule.parsedValue;
188
+ // }
189
+ // }
190
+ // // private async applyObjRule<Obj extends NesoiObj, V extends $BucketView>(
191
+ // // objVal: Record<string, any>,
192
+ // // rule: $BucketQueryRule
193
+ // // ) {
194
+ // // if (typeof objVal !== 'object' && !Array.isArray(objVal)) {
195
+ // // return false;
196
+ // // }
197
+ // // switch (rule.op) {
198
+ // // // case '==':
199
+ // // // if (typeof rule.parsedValue !== 'object' && !Array.isArray(rule.parsedValue))
200
+ // // // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'object');
201
+ // // // return objVal === rule.parsedValue;
202
+ // // case 'contains':
203
+ // // if (typeof rule.parsedValue !== 'string')
204
+ // // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'string');
205
+ // // return Object.keys(objVal).includes(rule.parsedValue);
206
+ // // // case 'contains_any':
207
+ // // // if (!Array.isArray(rule.parsedValue))
208
+ // // // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'object');
209
+ // // // return rule.parsedValue.some(v => Object.keys(objVal).includes(v));
210
+ // // // case 'in':
211
+ // // // if (!Array.isArray(rule.parsedValue))
212
+ // // // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'object');
213
+ // // // return (rule.parsedValue as Record<string, any>[]).includes(objVal);
214
+ // // case 'present':
215
+ // // return objVal !== undefined;
216
+ // // }
217
+ // // }
218
+ // }
@@ -0,0 +1,19 @@
1
+ import { NQLRunner } from '../query/nql_engine';
2
+ import { AnyTrxNode } from "../../../../engine/transaction/trx_node";
3
+ import { NQL_Part } from '../query/nql.schema';
4
+ import { MemoryBucketAdapter } from "../../..";
5
+ type Obj = Record<string, any>;
6
+ type Objs = Record<string, Obj>;
7
+ export declare class MemoryNQLRunner extends NQLRunner {
8
+ protected adapter?: MemoryBucketAdapter<any>;
9
+ constructor();
10
+ bind(adapter: MemoryBucketAdapter<any>): void;
11
+ run(trx: AnyTrxNode, part: NQL_Part, params: Obj): Promise<Objs>;
12
+ /**
13
+ * Goes through each rule keeping a scoped white and black list to avoid
14
+ * testing objects unnecessarily. Returns a dict of results by id.
15
+ * @returns
16
+ */
17
+ private filter;
18
+ }
19
+ export {};
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryNQLRunner = void 0;
4
+ const nql_engine_1 = require("../query/nql_engine");
5
+ const tree_1 = require("../../../../engine/data/tree");
6
+ class MemoryNQLRunner extends nql_engine_1.NQLRunner {
7
+ constructor() {
8
+ super();
9
+ }
10
+ bind(adapter) {
11
+ this.adapter = adapter;
12
+ }
13
+ async run(trx, part, params) {
14
+ if (!this.adapter) {
15
+ throw new Error('No adapter bound to NQL Runner');
16
+ }
17
+ const data = this.adapter.data;
18
+ return this.filter(part, data, params);
19
+ }
20
+ /**
21
+ * Goes through each rule keeping a scoped white and black list to avoid
22
+ * testing objects unnecessarily. Returns a dict of results by id.
23
+ * @returns
24
+ */
25
+ filter(part, objs, params) {
26
+ const _union = (union, objs, params) => {
27
+ // console.log(`::UNION (objs: ${Object.keys(objs)})\n`)
28
+ const out = {};
29
+ for (const inter of union.inters) {
30
+ // Pass `out` as blacklist: if already found, can be skipped
31
+ const black = out;
32
+ const interOut = _inter(inter, objs, params, black);
33
+ Object.assign(out, interOut);
34
+ }
35
+ // console.log(' -> union out\n', out);
36
+ return out;
37
+ };
38
+ const _inter = (inter, objs, params, black = {}) => {
39
+ // console.log(`::INTER (objs: ${Object.keys(objs)}, black: ${Object.keys(black)})\n`)
40
+ // Create white set, which will be modified by rules running on this union
41
+ const white = new Set(Object.keys(objs));
42
+ let out = {};
43
+ for (const rule of inter.rules) {
44
+ // <Union>
45
+ if ('inters' in rule) {
46
+ if (!_union(rule, objs, objs))
47
+ return false;
48
+ }
49
+ // <Rule>
50
+ else {
51
+ const ruleOut = _rule(rule, objs, params, black, white);
52
+ out = ruleOut;
53
+ }
54
+ if (white.size == 0)
55
+ break;
56
+ // console.log(` -> white: ${Array.from(white.values())}\n`)
57
+ }
58
+ // console.log(` -> inter out: ${Object.keys(out)}\n`)
59
+ return out;
60
+ };
61
+ const _rule = (rule, objs, params, black, white) => {
62
+ // console.log(`::RULE (objs: ${Object.keys(objs)}, black: ${Object.keys(black)}, white: ${Array.from(white.values())})\n`)
63
+ const out = {};
64
+ for (const id in objs) {
65
+ if (!white.has(id)) {
66
+ continue;
67
+ }
68
+ if (id in black) {
69
+ white.delete(id);
70
+ continue;
71
+ }
72
+ const obj = objs[id];
73
+ let match = _obj(rule, obj, params);
74
+ // console.log(` -> match: ${match}\n`)
75
+ if (rule.not) {
76
+ match = !match;
77
+ }
78
+ if (!match) {
79
+ white.delete(id);
80
+ continue;
81
+ }
82
+ if (obj !== undefined) {
83
+ if (rule.select) {
84
+ out[obj.id] = obj[rule.select];
85
+ }
86
+ else {
87
+ out[obj.id] = obj;
88
+ }
89
+ }
90
+ }
91
+ // console.log(` -> rule out: ${Object.keys(out)}\n`)
92
+ return out;
93
+ };
94
+ const _obj = (rule, obj, params) => {
95
+ // console.log(`::OBJ (obj: ${obj.id})\n`)
96
+ const fieldValue = tree_1.Tree.get(obj, rule.fieldpath);
97
+ // Value is undefined, only 'present' rule applies
98
+ if (fieldValue === undefined) {
99
+ if (rule.op === 'present') {
100
+ return false;
101
+ }
102
+ return false;
103
+ }
104
+ // Fieldpath is a spread, apply rule to each item
105
+ if (rule.fieldpath.includes('.*')) {
106
+ for (const item of fieldValue) {
107
+ if (_obj(rule, item, params))
108
+ return true;
109
+ }
110
+ return false;
111
+ }
112
+ let queryValue;
113
+ // Value is a subquery, run union
114
+ if ('subquery' in rule.value) {
115
+ const subOut = _union(rule.value.subquery, objs, params);
116
+ const subList = Object.values(subOut);
117
+ // Subquery operator is for a list, filter
118
+ if (rule.op === 'in' || rule.op === 'contains_any') {
119
+ queryValue = subList;
120
+ }
121
+ // Subquery operator is for a single item, pick first
122
+ else {
123
+ queryValue = subList[0];
124
+ }
125
+ }
126
+ else if ('param' in rule.value) {
127
+ if (Array.isArray(rule.value.param)) {
128
+ queryValue = rule.value.param.map(p => params[p]);
129
+ }
130
+ else {
131
+ queryValue = params[rule.value.param];
132
+ }
133
+ }
134
+ else if ('static' in rule.value) {
135
+ queryValue = rule.value.static;
136
+ }
137
+ // console.log({fieldpath: rule.fieldpath, op: rule.op, fieldValue, queryValue});
138
+ // Check each operation
139
+ // (Compatible operations and types have already been validated)
140
+ if (rule.op === '<') {
141
+ return fieldValue < queryValue;
142
+ }
143
+ if (rule.op === '<=') {
144
+ return fieldValue <= queryValue;
145
+ }
146
+ if (rule.op === '==') {
147
+ if (rule.case_i) {
148
+ return fieldValue.toLowerCase() === queryValue.toLowerCase();
149
+ }
150
+ else {
151
+ return fieldValue === queryValue;
152
+ }
153
+ }
154
+ if (rule.op === '>') {
155
+ return fieldValue > queryValue;
156
+ }
157
+ if (rule.op === '>=') {
158
+ return fieldValue >= queryValue;
159
+ }
160
+ if (rule.op === 'in') {
161
+ if (typeof fieldValue === 'object' && !Array.isArray(fieldValue)) {
162
+ return fieldValue in queryValue;
163
+ }
164
+ else {
165
+ return queryValue.includes(fieldValue);
166
+ }
167
+ }
168
+ if (rule.op === 'contains') {
169
+ if (typeof fieldValue === 'string') {
170
+ if (rule.case_i) {
171
+ return fieldValue.toLowerCase().includes(queryValue.toLowerCase());
172
+ }
173
+ else {
174
+ return fieldValue.includes(queryValue);
175
+ }
176
+ }
177
+ else {
178
+ if (rule.case_i) {
179
+ return Object.keys(fieldValue).some(f => f.toLowerCase().includes(queryValue.toLowerCase()));
180
+ }
181
+ else {
182
+ return queryValue in fieldValue;
183
+ }
184
+ }
185
+ }
186
+ if (rule.op === 'contains_any') {
187
+ if (typeof fieldValue === 'string') {
188
+ if (rule.case_i) {
189
+ return queryValue.some(q => fieldValue.toLowerCase().includes(q.toLowerCase()));
190
+ }
191
+ else {
192
+ return queryValue.some(q => fieldValue.includes(q));
193
+ }
194
+ }
195
+ else {
196
+ if (rule.case_i) {
197
+ return queryValue.some(q => Object.keys(q).some(k => fieldValue.toLowerCase().includes(q.toLowerCase())));
198
+ }
199
+ else {
200
+ return queryValue.some(q => q in fieldValue);
201
+ }
202
+ }
203
+ }
204
+ if (rule.op === 'present') {
205
+ return true;
206
+ }
207
+ return false;
208
+ };
209
+ return _union(part.union, objs, params);
210
+ }
211
+ }
212
+ exports.MemoryNQLRunner = MemoryNQLRunner;
@@ -0,0 +1,20 @@
1
+ import { BucketAdapterConfig } from './bucket_adapter';
2
+ import { MemoryBucketAdapter } from './memory.bucket_adapter';
3
+ import { $Bucket } from '../bucket.schema';
4
+ import { NesoiObj } from "../../../../engine/data/obj";
5
+ import { AnyTrxNode } from "../../../../engine/transaction/trx_node";
6
+ import { NQL_AnyQuery, NQL_Pagination } from '../query/nql.schema';
7
+ export declare class SlowMemoryBucketAdapter<Obj extends NesoiObj> extends MemoryBucketAdapter<Obj> {
8
+ schema: $Bucket;
9
+ protected timeout: number;
10
+ constructor(schema: $Bucket, timeout: number, data?: Record<Obj['id'], Obj>, config?: BucketAdapterConfig);
11
+ private wrap;
12
+ index(trx: AnyTrxNode): Promise<Obj[]>;
13
+ get(trx: AnyTrxNode, id: Obj['id']): Promise<Awaited<Record<Obj["id"], Obj>[Obj["id"]]>>;
14
+ query<MetadataOnly extends boolean>(trx: AnyTrxNode, query: NQL_AnyQuery, pagination?: NQL_Pagination, config?: {
15
+ metadataOnly: MetadataOnly;
16
+ }): Promise<MetadataOnly extends true ? {
17
+ id: Obj['id'];
18
+ [x: string]: any;
19
+ }[] : Obj[]>;
20
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlowMemoryBucketAdapter = void 0;
4
+ const memory_bucket_adapter_1 = require("./memory.bucket_adapter");
5
+ class SlowMemoryBucketAdapter extends memory_bucket_adapter_1.MemoryBucketAdapter {
6
+ constructor(schema, timeout, data = {}, config) {
7
+ super(schema, data, config);
8
+ this.schema = schema;
9
+ this.timeout = timeout;
10
+ }
11
+ wrap(scale, fn) {
12
+ return new Promise((resolve, reject) => {
13
+ setTimeout(() => {
14
+ fn()
15
+ .then(resolve)
16
+ .catch(reject);
17
+ }, this.timeout * scale);
18
+ });
19
+ }
20
+ /* Read operations */
21
+ index(trx) {
22
+ return this.wrap(5, () => super.index(trx));
23
+ }
24
+ get(trx, id) {
25
+ return this.wrap(1, () => super.get(trx, id));
26
+ }
27
+ async query(trx, query, pagination, config) {
28
+ return this.wrap(3, () => super.query(trx, query, pagination, config));
29
+ }
30
+ }
31
+ exports.SlowMemoryBucketAdapter = SlowMemoryBucketAdapter;
@@ -0,0 +1,61 @@
1
+ import { $Module, $Space, BucketName } from "../../../schema";
2
+ import { BucketGraphDef } from './graph/bucket_graph.builder';
3
+ import { $BucketView, $BucketViews } from './view/bucket_view.schema';
4
+ import { BucketViewDef } from './view/bucket_view.builder';
5
+ import { $Bucket } from './bucket.schema';
6
+ import { BucketModelDef } from './model/bucket_model.builder';
7
+ import { $BucketModelFields } from './model/bucket_model.schema';
8
+ import { $BucketViewDataInfer, $BucketViewFieldsInfer } from './bucket.infer';
9
+ import { $BucketGraphLinksInfer } from './graph/bucket_graph.infer';
10
+ import { $BucketGraph } from './graph/bucket_graph.schema';
11
+ import { $Dependency, ResolvedBuilderNode } from "../../../engine/dependency";
12
+ import { ModuleTree } from "../../../engine/tree";
13
+ import { BucketFieldpathInfer, BucketModelInfer } from './model/bucket_model.infer';
14
+ import { Overlay } from "../../../engine/util/type";
15
+ import { $Constants } from '../constants/constants.schema';
16
+ import { NesoiObj } from "../../../engine/data/obj";
17
+ export declare class BucketBuilder<Space extends $Space, Module extends $Module, Bucket extends $Bucket = Omit<$Bucket, 'views'> & {
18
+ views: {};
19
+ }> {
20
+ private module;
21
+ private name;
22
+ $b: "bucket";
23
+ private _alias?;
24
+ private _model;
25
+ private _graph;
26
+ private _views;
27
+ private _extend?;
28
+ constructor(module: string, name: string);
29
+ as(alias: string): this;
30
+ extend<N extends Exclude<BucketName<Module>, Bucket['name']>>(name: N): BucketBuilder<Space, Module, Module["buckets"][N]>;
31
+ model<Def extends BucketModelDef<Space, Module>, Obj = BucketModelInfer<Def>, Fieldpath extends {} = BucketFieldpathInfer<Def>>($: Def): BucketBuilder<Space, Overlay<Module, {
32
+ buckets: Overlay<Module["buckets"], { [K in Bucket["name"]]: Overlay<Bucket, {
33
+ '#data': Obj & NesoiObj;
34
+ '#fieldpath': Fieldpath;
35
+ }>; }>;
36
+ }>, Overlay<Bucket, {
37
+ '#data': Obj & NesoiObj;
38
+ '#fieldpath': Fieldpath;
39
+ }>>;
40
+ graph<Def extends BucketGraphDef<Module, Bucket>>($: Def): BucketBuilder<Space, Module, Overlay<Bucket, {
41
+ graph: Overlay<Bucket["graph"], {
42
+ links: $BucketGraphLinksInfer<ReturnType<Def>>;
43
+ }>;
44
+ }>>;
45
+ view<ViewName extends string, Def extends BucketViewDef<Space, Module, Bucket>>(name: ViewName, $: Def): BucketBuilder<Space, Module, Bucket & {
46
+ views: { [K in ViewName]: $BucketView & {
47
+ "#data": $BucketViewDataInfer<ReturnType<Def>>;
48
+ fields: $BucketViewFieldsInfer<ReturnType<Def>>;
49
+ }; };
50
+ }>;
51
+ static build(node: BucketBuilderNode, tree: ModuleTree): $Bucket;
52
+ static mergeModelEnums(fields: $BucketModelFields, constants: $Constants): void;
53
+ static buildGraph(node: BucketBuilderNode, tree: ModuleTree, extend?: $Dependency): $BucketGraph;
54
+ static buildViews(builder: AnyBucketBuilder, graph: $BucketGraph, tree: ModuleTree, extend?: $Dependency): $BucketViews;
55
+ static checkComposition(node: BucketBuilderNode, graph: $BucketGraph): void;
56
+ }
57
+ export type AnyBucketBuilder = BucketBuilder<any, any>;
58
+ export type BucketBuilderNode = ResolvedBuilderNode & {
59
+ builder: AnyBucketBuilder;
60
+ schema?: $Bucket;
61
+ };