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,35 @@
1
+ import { $Dependency } from "../../../../engine/dependency";
2
+ export type $BucketModelFieldType = 'boolean' | 'date' | 'datetime' | 'decimal' | 'enum' | 'file' | 'float' | 'int' | 'string' | 'obj' | 'unknown' | 'dict';
3
+ export declare class $BucketModelField {
4
+ name: string;
5
+ type: $BucketModelFieldType;
6
+ alias: string;
7
+ array: boolean;
8
+ required: boolean;
9
+ _enum?: {
10
+ options: string | string[];
11
+ dep?: $Dependency;
12
+ } | undefined;
13
+ defaultValue?: any | undefined;
14
+ children?: $BucketModelFields | undefined;
15
+ or?: $BucketModelField | undefined;
16
+ $t: string;
17
+ constructor(name: string, type: $BucketModelFieldType, alias: string, array: boolean, required: boolean, _enum?: {
18
+ options: string | string[];
19
+ dep?: $Dependency;
20
+ } | undefined, defaultValue?: any | undefined, children?: $BucketModelFields | undefined, or?: $BucketModelField | undefined);
21
+ }
22
+ export type $BucketModelFields = {
23
+ [x: string]: $BucketModelField;
24
+ };
25
+ export declare class $BucketModel {
26
+ fields: $BucketModelFields & {
27
+ id: $BucketModelField;
28
+ };
29
+ defaults: Record<string, any>;
30
+ $t: string;
31
+ constructor(fields: $BucketModelFields & {
32
+ id: $BucketModelField;
33
+ }, defaults?: Record<string, any>);
34
+ static get(model: $BucketModel, fieldpath: string): $BucketModelField | undefined;
35
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$BucketModel = exports.$BucketModelField = void 0;
4
+ class $BucketModelField {
5
+ constructor(name, type, alias, array, required, _enum, defaultValue, children, or) {
6
+ this.name = name;
7
+ this.type = type;
8
+ this.alias = alias;
9
+ this.array = array;
10
+ this.required = required;
11
+ this._enum = _enum;
12
+ this.defaultValue = defaultValue;
13
+ this.children = children;
14
+ this.or = or;
15
+ this.$t = 'bucket.model.field';
16
+ }
17
+ }
18
+ exports.$BucketModelField = $BucketModelField;
19
+ class $BucketModel {
20
+ constructor(fields, defaults = {}) {
21
+ this.fields = fields;
22
+ this.defaults = defaults;
23
+ this.$t = 'bucket.model';
24
+ }
25
+ static get(model, fieldpath) {
26
+ const paths = fieldpath.split('.');
27
+ let ref = model.fields;
28
+ for (let i = 0; i < paths.length; i++) {
29
+ const path = paths[i];
30
+ if (path === '*') {
31
+ continue;
32
+ }
33
+ else {
34
+ ref = ref?.[path];
35
+ }
36
+ if (!ref?.children || i == paths.length - 1) {
37
+ return ref;
38
+ }
39
+ if (!ref) {
40
+ return undefined;
41
+ }
42
+ ref = ref.children;
43
+ }
44
+ return ref;
45
+ }
46
+ }
47
+ exports.$BucketModel = $BucketModel;
@@ -0,0 +1,119 @@
1
+ import { $Module, $Space } from "../../../../schema";
2
+ import { $BucketModelField, $BucketModelFieldType, $BucketModelFields } from './bucket_model.schema';
3
+ import { NesoiDate } from "../../../../engine/data/date";
4
+ import { BucketFieldpathObjInfer, BucketModelObjInfer } from './bucket_model.infer';
5
+ import { $Dependency } from "../../../../engine/dependency";
6
+ import { EnumFromName, EnumName } from '../../constants/constants.schema';
7
+ import { Decimal } from "../../../../engine/data/decimal";
8
+ import { NesoiDatetime } from "../../../../engine/data/datetime";
9
+ export declare class BucketModelFieldFactory<Space extends $Space, Module extends $Module> {
10
+ private module;
11
+ constructor(module: string);
12
+ private alias?;
13
+ as(alias: string): Omit<typeof this, "as">;
14
+ get any(): BucketModelFieldBuilder<Module, any, never, any, {
15
+ '': any;
16
+ }>;
17
+ get boolean(): BucketModelFieldBuilder<Module, boolean, never, boolean, {
18
+ '': boolean;
19
+ }>;
20
+ get date(): BucketModelFieldBuilder<Module, NesoiDate, never, NesoiDate, {
21
+ '': NesoiDate;
22
+ }>;
23
+ get datetime(): BucketModelFieldBuilder<Module, NesoiDatetime, never, NesoiDatetime, {
24
+ '': NesoiDatetime;
25
+ }>;
26
+ decimal(def?: {
27
+ left?: number;
28
+ right?: number;
29
+ }): BucketModelFieldBuilder<Module, Decimal, never, Decimal, {
30
+ '': Decimal;
31
+ }>;
32
+ enum<Enums extends EnumName<Space>, Options extends (keyof Enums & string) | (readonly string[])>(options: Options): BucketModelFieldBuilder<Module, Options extends string ? EnumFromName<Space, Options>["#data"] : Options extends (infer X)[] | readonly (infer X)[] ? X : Options[keyof Options], never, Options extends string ? EnumFromName<Space, Options>["#data"] : Options extends (infer X)[] | readonly (infer X)[] ? X : Options[keyof Options], {
33
+ '': Options extends string ? EnumFromName<Space, Options>["#data"] : Options extends (infer X)[] | readonly (infer X)[] ? X : Options[keyof Options];
34
+ }>;
35
+ get int(): BucketModelFieldBuilder<Module, number, never, number, {
36
+ '': number;
37
+ }>;
38
+ get float(): BucketModelFieldBuilder<Module, number, never, number, {
39
+ '': number;
40
+ }>;
41
+ get string(): BucketModelFieldBuilder<Module, string, never, string, {
42
+ '': string;
43
+ }>;
44
+ obj<T extends BucketModelFieldBuilders<Module>>(fields?: T): BucketModelFieldBuilder<Module, BucketModelObjInfer<T>, never, BucketModelObjInfer<T>, {
45
+ '': BucketModelObjInfer<T>;
46
+ } & BucketFieldpathObjInfer<T, ".">>;
47
+ dict<T extends BucketModelFieldBuilder<Module, any>>(dictItem: T): BucketModelFieldBuilder<Module, Record<string, T extends BucketModelFieldBuilder<any, any, any, infer X, {
48
+ '': infer X;
49
+ }> ? X : never>, never, Record<string, T extends BucketModelFieldBuilder<any, any, any, infer X, {
50
+ '': infer X;
51
+ }> ? X : never>, {
52
+ '': Record<string, T extends BucketModelFieldBuilder<any, any, any, infer X, {
53
+ '': infer X;
54
+ }> ? X : never>;
55
+ } & BucketFieldpathObjInfer<{
56
+ '': T;
57
+ }, ".*">>;
58
+ }
59
+ export declare class BucketModelFieldBuilder<Module extends $Module, DefinedData, TypeAppend = never, Data = DefinedData | TypeAppend, Fieldpath = {
60
+ '': Data;
61
+ }> {
62
+ private module;
63
+ private type;
64
+ private alias?;
65
+ private _enum?;
66
+ private children?;
67
+ private _array;
68
+ private _required;
69
+ private _defaultValue?;
70
+ private _or?;
71
+ constructor(module: string, type: $BucketModelFieldType, alias?: string | undefined, _enum?: {
72
+ options: string | string[];
73
+ dep?: $Dependency;
74
+ } | undefined, children?: BucketModelFieldBuilders<Module> | undefined);
75
+ as(alias: string): this;
76
+ /**
77
+ * This field can be `undefined`.
78
+ */
79
+ get optional(): BucketModelFieldBuilder<Module, DefinedData, undefined, DefinedData | undefined, { [K in keyof Fieldpath]: Fieldpath[K] | undefined; }>;
80
+ /**
81
+ * If this field is undefined on the source, it will be
82
+ * read as the given value.
83
+ * Also, when creating or updating the model through a default
84
+ * resource method, this value is used if undefined is passed.
85
+ */
86
+ default(defaultValue: DefinedData): BucketModelFieldBuilder<Module, DefinedData, never, DefinedData, Fieldpath>;
87
+ get array(): BucketModelFieldBuilder<Module, DefinedData[], TypeAppend, DefinedData[] | TypeAppend, { [K in Exclude<keyof Fieldpath, ""> as `.*${K & string}`]: Fieldpath[K]; } & {
88
+ "": DefinedData[] | TypeAppend;
89
+ ".*": DefinedData | TypeAppend;
90
+ }>;
91
+ or<Def extends AnyBucketModelFieldBuilder>(def: Def): BucketModelFieldBuilder<Module, DefinedData | (Def extends BucketModelFieldBuilder<any, any, any, infer X, {
92
+ '': infer X;
93
+ }> ? X : never), TypeAppend, DefinedData | (Def extends BucketModelFieldBuilder<any, any, any, infer X, {
94
+ '': infer X;
95
+ }> ? X : never) | TypeAppend, { [K in Exclude<keyof Fieldpath, "">]: Fieldpath[K] | (K extends keyof (Def extends BucketModelFieldBuilder<any, any, any, any, infer X_1> ? X_1 : never) ? (Def extends BucketModelFieldBuilder<any, any, any, any, infer X_1> ? X_1 : never)[K] : undefined); } & {
96
+ "": DefinedData | (Def extends BucketModelFieldBuilder<any, any, any, infer X, {
97
+ '': infer X;
98
+ }> ? X : never) | TypeAppend;
99
+ } & { [K in Exclude<keyof (Def extends BucketModelFieldBuilder<any, any, any, any, infer X_1> ? X_1 : never), "">]: (Def extends BucketModelFieldBuilder<any, any, any, any, infer X_1> ? X_1 : never)[K]; }>;
100
+ /**
101
+ * This can be applied to `string` and `enum` fields,
102
+ * to control storage performance.
103
+ * - `null` means unconstrained length
104
+ * - `number` must be an integer number, if not it's floored
105
+ * > Notice: `enum` has a default max length of 64.
106
+ * > `string` is unconstrained by default.
107
+ * > If you want unconstrained enum you must specify `null` here.
108
+ */
109
+ maxLength(val: number | null): void;
110
+ static build(builder: BucketModelFieldBuilder<any, any>, name: string): $BucketModelField;
111
+ static buildChildren(module: string, children: BucketModelFieldBuilders<any>): {
112
+ schema: $BucketModelFields;
113
+ defaults: Record<string, any>;
114
+ };
115
+ }
116
+ export type BucketModelFieldBuilders<Module extends $Module> = {
117
+ [x: string]: BucketModelFieldBuilder<Module, any> | BucketModelFieldBuilders<Module>;
118
+ };
119
+ export type AnyBucketModelFieldBuilder = BucketModelFieldBuilder<any, any>;
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BucketModelFieldBuilder = exports.BucketModelFieldFactory = void 0;
4
+ const bucket_model_schema_1 = require("./bucket_model.schema");
5
+ const dependency_1 = require("../../../../engine/dependency");
6
+ /*
7
+ Factory
8
+ */
9
+ class BucketModelFieldFactory {
10
+ constructor(module) {
11
+ this.module = module;
12
+ }
13
+ as(alias) {
14
+ this.alias = alias;
15
+ return this;
16
+ }
17
+ get any() {
18
+ return new BucketModelFieldBuilder(this.module, 'unknown', this.alias);
19
+ }
20
+ get boolean() {
21
+ return new BucketModelFieldBuilder(this.module, 'boolean', this.alias);
22
+ }
23
+ get date() {
24
+ return new BucketModelFieldBuilder(this.module, 'date', this.alias);
25
+ }
26
+ get datetime() {
27
+ return new BucketModelFieldBuilder(this.module, 'datetime', this.alias);
28
+ }
29
+ decimal(def) {
30
+ // TODO: store definition on schema
31
+ return new BucketModelFieldBuilder(this.module, 'decimal', this.alias);
32
+ }
33
+ enum(options) {
34
+ const strings = (Array.isArray(options) || typeof options === 'string')
35
+ ? options
36
+ : Object.keys(options);
37
+ let dep;
38
+ if (typeof options === 'string') {
39
+ const tag = dependency_1.$Tag.parseOrFail(options);
40
+ if (tag.module) {
41
+ dep = new dependency_1.$Dependency(this.module, 'constants', `${tag.module}::*`);
42
+ }
43
+ else {
44
+ dep = new dependency_1.$Dependency(this.module, 'constants', '*');
45
+ }
46
+ }
47
+ return new BucketModelFieldBuilder(this.module, 'enum', this.alias, { options: strings, dep });
48
+ }
49
+ get int() {
50
+ return new BucketModelFieldBuilder(this.module, 'int', this.alias);
51
+ }
52
+ get float() {
53
+ return new BucketModelFieldBuilder(this.module, 'float', this.alias);
54
+ }
55
+ get string() {
56
+ return new BucketModelFieldBuilder(this.module, 'string', this.alias);
57
+ }
58
+ obj(fields) {
59
+ return new BucketModelFieldBuilder(this.module, 'obj', this.alias, undefined, fields);
60
+ }
61
+ dict(dictItem) {
62
+ return new BucketModelFieldBuilder(this.module, 'dict', this.alias, undefined, { __dict: dictItem });
63
+ }
64
+ }
65
+ exports.BucketModelFieldFactory = BucketModelFieldFactory;
66
+ /*
67
+ Builder
68
+ */
69
+ class BucketModelFieldBuilder {
70
+ constructor(module, type, alias, _enum, children) {
71
+ this.module = module;
72
+ this.type = type;
73
+ this.alias = alias;
74
+ this._enum = _enum;
75
+ this.children = children;
76
+ this._array = false;
77
+ this._required = true;
78
+ this._defaultValue = undefined;
79
+ }
80
+ as(alias) {
81
+ this.alias = alias;
82
+ return this;
83
+ }
84
+ /**
85
+ * This field can be `undefined`.
86
+ */
87
+ get optional() {
88
+ this._required = false;
89
+ return this;
90
+ }
91
+ /**
92
+ * If this field is undefined on the source, it will be
93
+ * read as the given value.
94
+ * Also, when creating or updating the model through a default
95
+ * resource method, this value is used if undefined is passed.
96
+ */
97
+ default(defaultValue) {
98
+ this._required = false;
99
+ this._defaultValue = defaultValue;
100
+ return this;
101
+ }
102
+ get array() {
103
+ this._array = true;
104
+ return this;
105
+ }
106
+ or(def) {
107
+ this._or = def;
108
+ return this;
109
+ }
110
+ /**
111
+ * This can be applied to `string` and `enum` fields,
112
+ * to control storage performance.
113
+ * - `null` means unconstrained length
114
+ * - `number` must be an integer number, if not it's floored
115
+ * > Notice: `enum` has a default max length of 64.
116
+ * > `string` is unconstrained by default.
117
+ * > If you want unconstrained enum you must specify `null` here.
118
+ */
119
+ maxLength(val) {
120
+ }
121
+ // Build
122
+ static build(builder, name) {
123
+ const children = builder.children
124
+ ? BucketModelFieldBuilder.buildChildren(builder.module, builder.children)
125
+ : undefined;
126
+ const defaults = builder._defaultValue && builder.children
127
+ ? Object.assign({}, builder._defaultValue, children?.defaults)
128
+ : builder._defaultValue;
129
+ const or = builder._or
130
+ ? this.build(builder._or, name)
131
+ : undefined;
132
+ return new bucket_model_schema_1.$BucketModelField(name, builder.type, builder.alias || name, builder._array, builder._required, builder._enum, defaults, children?.schema, or);
133
+ }
134
+ static buildChildren(module, children) {
135
+ const schema = {};
136
+ const defaults = {};
137
+ for (const c in children) {
138
+ const child = children[c];
139
+ if (child instanceof BucketModelFieldBuilder) {
140
+ schema[c] = BucketModelFieldBuilder.build(child, c);
141
+ }
142
+ // Builders are allowed to implicitly declare nested fields.
143
+ // The code below transforms these groups into fields of the scope 'group'.
144
+ else {
145
+ const fieldTypeBuilder = new BucketModelFieldFactory(module);
146
+ const fieldBuilder = fieldTypeBuilder.obj(child);
147
+ schema[c] = BucketModelFieldBuilder.build(fieldBuilder, c);
148
+ }
149
+ defaults[c] = schema[c].defaultValue;
150
+ }
151
+ return { schema, defaults };
152
+ }
153
+ }
154
+ exports.BucketModelFieldBuilder = BucketModelFieldBuilder;
@@ -0,0 +1,140 @@
1
+ import { $Bucket } from '../bucket.schema';
2
+ import { $Module } from "../../../../schema";
3
+ import { NesoiDate } from "../../../../engine/data/date";
4
+ import { NesoiDatetime } from "../../../../engine/data/datetime";
5
+ export type NQL_QueryMeta = {
6
+ bucket?: $Bucket;
7
+ scope?: string;
8
+ avgTime: number;
9
+ };
10
+ export type NQL_Union = {
11
+ meta: NQL_QueryMeta;
12
+ inters: NQL_Intersection[];
13
+ order?: {
14
+ by: string;
15
+ dir: 'asc' | 'desc';
16
+ };
17
+ _debug_id?: number;
18
+ };
19
+ export type NQL_Intersection = {
20
+ meta: NQL_QueryMeta;
21
+ rules: (NQL_Rule | NQL_Union)[];
22
+ _debug_id?: number;
23
+ };
24
+ export type NQL_Rule = {
25
+ meta: NQL_QueryMeta;
26
+ fieldpath: string;
27
+ op: NQL_Operation;
28
+ case_i: boolean;
29
+ not: boolean;
30
+ value: {
31
+ static: any | any[];
32
+ } | {
33
+ param: string | string[];
34
+ } | {
35
+ subquery: NQL_Union;
36
+ };
37
+ select?: string;
38
+ part?: number;
39
+ _debug_id?: number;
40
+ };
41
+ export type NQL_Part = {
42
+ i: number;
43
+ many: boolean;
44
+ union: NQL_Union;
45
+ parent?: NQL_Part;
46
+ };
47
+ export type NQL_Node = NQL_Union | NQL_Intersection | NQL_Rule;
48
+ /**
49
+ * All operations
50
+ */
51
+ export type NQL_Operation = '==' | '>' | '<' | '>=' | '<=' | 'in' | 'contains' | 'contains_any' | 'present';
52
+ export type NQL_Order<Fieldpath> = {
53
+ by?: keyof Fieldpath;
54
+ dir?: 'asc' | 'desc';
55
+ };
56
+ export type NQL_Pagination = {
57
+ page?: number;
58
+ perPage?: number;
59
+ };
60
+ /**
61
+ * A union of all operators which apply to the selected field
62
+ */
63
+ type NQL_OpFromField<T> = T extends boolean ? '' | ' ==' | ' in' | ' present' : T extends number | NesoiDate | NesoiDatetime ? '' | ' ==' | ' >' | ' <' | ' >=' | ' <=' | ' in' | ' present' : T extends string ? '' | ' ==' | ' in' | ' contains' | ' contains_any' | ' present' | ' ~' | ' ~in' | ' ~contains' | ' ~contains_any' : T extends boolean[] | number[] | NesoiDate[] | NesoiDatetime[] | string[] ? '' | ' ==' | ' in' | ' contains' | ' contains_any' | ' present' : T extends object ? ' contains' | ' contains_any' | ' present' : ' present';
64
+ /**
65
+ * A dict of accepted values for a given operator on a bucket field
66
+ */
67
+ type NQL_ValueFromOp<T> = {
68
+ '': T;
69
+ ' ==': T;
70
+ ' ~': T;
71
+ ' >': T;
72
+ ' <': T;
73
+ ' >=': T;
74
+ ' <=': T;
75
+ ' in': T[];
76
+ ' ~in': T[];
77
+ ' contains': (T extends (infer X)[] ? X : string);
78
+ ' ~contains': (T extends (infer X)[] ? X : string);
79
+ ' contains_any': (T extends any[] ? T : string[]);
80
+ ' ~contains_any': (T extends any[] ? T : string[]);
81
+ ' present': '';
82
+ };
83
+ /**
84
+ * The expected type for a value, or a compatible parameter from the list
85
+ */
86
+ type NQL_ConditionValue<T, Parameters, Titem = NoInfer<T extends (infer X)[] ? X : never>, P = NoInfer<{
87
+ [X in keyof Parameters]: NonNullable<Parameters[X]> extends NonNullable<T> ? X : never;
88
+ }[keyof Parameters]>, PArr = NoInfer<{
89
+ [X in keyof Parameters]: NonNullable<Parameters[X]> extends NonNullable<Titem> ? X : never;
90
+ }[keyof Parameters]>> = T | {
91
+ '.': P;
92
+ } | {
93
+ '.': PArr;
94
+ }[];
95
+ /**
96
+ * A field name of the subquery bucket which resolves to
97
+ * a type that's compatible with the query
98
+ */
99
+ type NQL_SubQueryField<$ extends $Bucket, Field, Fieldpath = NoInfer<$['#fieldpath']>, T = NoInfer<Fieldpath[Field & keyof Fieldpath]>> = keyof {
100
+ [X in keyof Fieldpath as NonNullable<T> extends NonNullable<Fieldpath[X]> ? X : never]: any;
101
+ };
102
+ /**
103
+ * A subquery passed as value to a query
104
+ * It must be of the form:
105
+ * {
106
+ * @BUCKETNAME.FIELDNAME: { ... }
107
+ * }
108
+ */
109
+ type NQL_SubQuery<M extends $Module, Field, Parameters> = {
110
+ [B in keyof M['buckets'] as `${'' | 'or '}@${B & string}.${NQL_SubQueryField<M['buckets'][B], Field> & string}`]?: NQL_Query<M, M['buckets'][B], Parameters>;
111
+ };
112
+ /**
113
+ * Graph link
114
+ */
115
+ type NQL_GraphLinks<M extends $Module, $ extends $Bucket, Parameters = {}> = {
116
+ [K in keyof $['graph']['links'] as `*${K & string}`]?: NQL_Terms<M, $['graph']['links'][K]['#bucket'], Parameters>;
117
+ };
118
+ /**
119
+ All possible query rules on the format:
120
+ (or |)FIELDNAME( not|)OPERATOR
121
+ */
122
+ type NQL_Terms<M extends $Module, $ extends $Bucket, Parameters = {}, Fieldpath = NoInfer<$['#fieldpath']>, Conditions = NoInfer<{
123
+ [Field in keyof Fieldpath as Field]: {
124
+ [Op in NQL_OpFromField<Fieldpath[Field]> as `${'or ' | ''}${Field & string}${' not' | ''}${Op}`]?: NQL_ConditionValue<NQL_ValueFromOp<Fieldpath[Field]>[Op], Parameters> | NQL_SubQuery<M, Field, Parameters>;
125
+ };
126
+ }>> = Conditions[keyof Conditions] & {
127
+ [K in `${'#and' | '#or'}${string}`]?: NQL_Terms<M, $, Parameters>;
128
+ } & NQL_GraphLinks<M, $, Parameters> & {
129
+ '#order'?: NQL_Order<Fieldpath>;
130
+ };
131
+ /**
132
+ * NQL Dynamic Query Type
133
+ */
134
+ export type NQL_Query<M extends $Module, $ extends $Bucket, Parameters = {}> = NQL_Terms<M, $, Parameters>;
135
+ export type NQL_AnyQuery = NQL_Query<any, any>;
136
+ /**
137
+ * @deprecated Use `NQL_Query` instead
138
+ */
139
+ export type AnyQuery<M extends $Module, $ extends $Bucket, Parameters = {}> = NQL_Query<M, $, Parameters>;
140
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,44 @@
1
+ import { NQL_AnyQuery, NQL_Union, NQL_Part, NQL_Node } from './nql.schema';
2
+ import { AnyModule } from "../../../../engine/module";
3
+ export declare class NQL_RuleTree {
4
+ private module;
5
+ private bucketName;
6
+ private query;
7
+ private debug;
8
+ private static OpByType;
9
+ root: NQL_Union;
10
+ constructor(module: AnyModule, bucketName: string, query: NQL_AnyQuery, debug?: boolean);
11
+ private parseUnion;
12
+ private parseOrder;
13
+ private parseKey;
14
+ private parseOp;
15
+ private parseValue;
16
+ private parseSubQuery;
17
+ /**
18
+ * Depth-first search on the tree:
19
+ * - Collapses single-child Unions
20
+ * - Accumulate avgTime over tree nodes, for building multi-tree
21
+ */
22
+ private simplify;
23
+ _addDebugId(): void;
24
+ describeNQL(): string;
25
+ describe(): string;
26
+ static describe(node: NQL_Node, d?: number): string;
27
+ }
28
+ /**
29
+ * Builds a NQL_CompiledQuery by splitting it into multiple parts
30
+ */
31
+ export declare class NQL_Compiler {
32
+ static build(module: AnyModule, bucketName: string, query: NQL_AnyQuery): NQL_CompiledQuery;
33
+ static buildUnion(union: NQL_Union): NQL_CompiledQuery;
34
+ }
35
+ /**
36
+ * A query ready to be run by the NQL engine, which will call
37
+ * each NQLRunner with a different adapter
38
+ */
39
+ export declare class NQL_CompiledQuery {
40
+ parts: Record<number, NQL_Part>;
41
+ execOrder: number[];
42
+ constructor(parts: NQL_Part[]);
43
+ describe(): string;
44
+ }