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.
- package/lib/adapters/postgres/src/migrator/database.d.ts +37 -0
- package/lib/adapters/postgres/src/migrator/database.js +88 -0
- package/lib/adapters/postgres/src/migrator/index.d.ts +1 -0
- package/lib/adapters/postgres/src/migrator/index.js +5 -0
- package/lib/adapters/postgres/src/migrator/migration.d.ts +73 -0
- package/lib/adapters/postgres/src/migrator/migration.js +351 -0
- package/lib/adapters/postgres/src/migrator/migrator.d.ts +21 -0
- package/lib/adapters/postgres/src/migrator/migrator.js +73 -0
- package/lib/adapters/postgres/src/migrator/runner.d.ts +61 -0
- package/lib/adapters/postgres/src/migrator/runner.js +202 -0
- package/lib/adapters/postgres/src/postgres.bucket_adapter.d.ts +45 -0
- package/lib/adapters/postgres/src/postgres.bucket_adapter.js +278 -0
- package/lib/adapters/postgres/src/postgres.cli.d.ts +46 -0
- package/lib/adapters/postgres/src/postgres.cli.js +124 -0
- package/lib/adapters/postgres/src/postgres.nql.d.ts +12 -0
- package/lib/adapters/postgres/src/postgres.nql.js +69 -0
- package/lib/adapters/postgres/test/postgres.bucket_adapter.test.d.ts +1 -0
- package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +173 -0
- package/lib/adapters/postgres/test/postgres.bucket_query.test.d.ts +0 -0
- package/lib/adapters/postgres/test/postgres.bucket_query.test.js +136 -0
- package/lib/compiler/apps/monolyth/monolyth_compiler.d.ts +21 -0
- package/lib/compiler/apps/monolyth/monolyth_compiler.js +95 -0
- package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +12 -0
- package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.js +80 -0
- package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +12 -0
- package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +128 -0
- package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +12 -0
- package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.js +75 -0
- package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.d.ts +13 -0
- package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +130 -0
- package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.d.ts +12 -0
- package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +65 -0
- package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.d.ts +12 -0
- package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.js +74 -0
- package/lib/compiler/compiler.d.ts +19 -0
- package/lib/compiler/compiler.js +83 -0
- package/lib/compiler/elements/bucket.element.d.ts +23 -0
- package/lib/compiler/elements/bucket.element.js +304 -0
- package/lib/compiler/elements/constants.element.d.ts +9 -0
- package/lib/compiler/elements/constants.element.js +88 -0
- package/lib/compiler/elements/controller.element.d.ts +6 -0
- package/lib/compiler/elements/controller.element.js +22 -0
- package/lib/compiler/elements/element.d.ts +49 -0
- package/lib/compiler/elements/element.js +105 -0
- package/lib/compiler/elements/externals.element.d.ts +19 -0
- package/lib/compiler/elements/externals.element.js +83 -0
- package/lib/compiler/elements/job.element.d.ts +7 -0
- package/lib/compiler/elements/job.element.js +62 -0
- package/lib/compiler/elements/machine.element.d.ts +10 -0
- package/lib/compiler/elements/machine.element.js +98 -0
- package/lib/compiler/elements/message.element.d.ts +9 -0
- package/lib/compiler/elements/message.element.js +175 -0
- package/lib/compiler/elements/queue.element.d.ts +6 -0
- package/lib/compiler/elements/queue.element.js +24 -0
- package/lib/compiler/elements/resource.element.d.ts +7 -0
- package/lib/compiler/elements/resource.element.js +64 -0
- package/lib/compiler/error.d.ts +21 -0
- package/lib/compiler/error.js +57 -0
- package/lib/compiler/helpers/dump_helpers.d.ts +11 -0
- package/lib/compiler/helpers/dump_helpers.js +157 -0
- package/lib/compiler/helpers/name_helpers.d.ts +20 -0
- package/lib/compiler/helpers/name_helpers.js +44 -0
- package/lib/compiler/index.d.ts +2 -0
- package/lib/compiler/index.js +7 -0
- package/lib/compiler/module.d.ts +24 -0
- package/lib/compiler/module.js +122 -0
- package/lib/compiler/stages/1_scan_stage.d.ts +10 -0
- package/lib/compiler/stages/1_scan_stage.js +23 -0
- package/lib/compiler/stages/2_treeshake_stage.d.ts +11 -0
- package/lib/compiler/stages/2_treeshake_stage.js +24 -0
- package/lib/compiler/stages/3_extract_ts_stage.d.ts +10 -0
- package/lib/compiler/stages/3_extract_ts_stage.js +71 -0
- package/lib/compiler/stages/4_build_schemas_stage.d.ts +10 -0
- package/lib/compiler/stages/4_build_schemas_stage.js +25 -0
- package/lib/compiler/stages/5_inject_ts_stage.d.ts +10 -0
- package/lib/compiler/stages/5_inject_ts_stage.js +22 -0
- package/lib/compiler/stages/6_build_elements_stage.d.ts +11 -0
- package/lib/compiler/stages/6_build_elements_stage.js +22 -0
- package/lib/compiler/stages/7_dump_stage.d.ts +14 -0
- package/lib/compiler/stages/7_dump_stage.js +208 -0
- package/lib/compiler/stages/8_diagnose_stage.d.ts +16 -0
- package/lib/compiler/stages/8_diagnose_stage.js +43 -0
- package/lib/compiler/treeshake.d.ts +58 -0
- package/lib/compiler/treeshake.js +424 -0
- package/lib/compiler/typescript/bridge/extract.d.ts +11 -0
- package/lib/compiler/typescript/bridge/extract.js +270 -0
- package/lib/compiler/typescript/bridge/inject.d.ts +10 -0
- package/lib/compiler/typescript/bridge/inject.js +140 -0
- package/lib/compiler/typescript/bridge/organize.d.ts +61 -0
- package/lib/compiler/typescript/bridge/organize.js +258 -0
- package/lib/compiler/typescript/error.d.ts +88 -0
- package/lib/compiler/typescript/error.js +265 -0
- package/lib/compiler/typescript/parser.d.ts +48 -0
- package/lib/compiler/typescript/parser.js +581 -0
- package/lib/compiler/typescript/source.d.ts +12 -0
- package/lib/compiler/typescript/source.js +87 -0
- package/lib/compiler/typescript/transformers/app_inject.transformer.d.ts +2 -0
- package/lib/compiler/typescript/transformers/app_inject.transformer.js +89 -0
- package/lib/compiler/typescript/transformers/replace_import.transformer.d.ts +4 -0
- package/lib/compiler/typescript/transformers/replace_import.transformer.js +102 -0
- package/lib/compiler/typescript/typescript_compiler.d.ts +63 -0
- package/lib/compiler/typescript/typescript_compiler.js +602 -0
- package/lib/elements/blocks/block.builder.d.ts +29 -0
- package/lib/elements/blocks/block.builder.js +87 -0
- package/lib/elements/blocks/block.d.ts +15 -0
- package/lib/elements/blocks/block.js +37 -0
- package/lib/elements/blocks/block.schema.d.ts +23 -0
- package/lib/elements/blocks/block.schema.js +15 -0
- package/lib/elements/blocks/externals/externals.builder.d.ts +30 -0
- package/lib/elements/blocks/externals/externals.builder.js +37 -0
- package/lib/elements/blocks/externals/externals.schema.d.ts +11 -0
- package/lib/elements/blocks/externals/externals.schema.js +19 -0
- package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +52 -0
- package/lib/elements/blocks/job/internal/machine_job.builder.js +74 -0
- package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +5 -0
- package/lib/elements/blocks/job/internal/machine_job.schema.js +10 -0
- package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +109 -0
- package/lib/elements/blocks/job/internal/resource_job.builder.js +146 -0
- package/lib/elements/blocks/job/internal/resource_job.d.ts +14 -0
- package/lib/elements/blocks/job/internal/resource_job.js +30 -0
- package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +11 -0
- package/lib/elements/blocks/job/internal/resource_job.schema.js +15 -0
- package/lib/elements/blocks/job/job.builder.d.ts +118 -0
- package/lib/elements/blocks/job/job.builder.js +137 -0
- package/lib/elements/blocks/job/job.d.ts +13 -0
- package/lib/elements/blocks/job/job.js +40 -0
- package/lib/elements/blocks/job/job.schema.d.ts +26 -0
- package/lib/elements/blocks/job/job.schema.js +20 -0
- package/lib/elements/blocks/machine/machine.builder.d.ts +58 -0
- package/lib/elements/blocks/machine/machine.builder.js +135 -0
- package/lib/elements/blocks/machine/machine.d.ts +86 -0
- package/lib/elements/blocks/machine/machine.js +228 -0
- package/lib/elements/blocks/machine/machine.schema.d.ts +85 -0
- package/lib/elements/blocks/machine/machine.schema.js +64 -0
- package/lib/elements/blocks/machine/machine_state.builder.d.ts +58 -0
- package/lib/elements/blocks/machine/machine_state.builder.js +186 -0
- package/lib/elements/blocks/machine/machine_transition.builder.d.ts +48 -0
- package/lib/elements/blocks/machine/machine_transition.builder.js +98 -0
- package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +10 -0
- package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +17 -0
- package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +6 -0
- package/lib/elements/blocks/queue/adapters/queue_adapter.js +6 -0
- package/lib/elements/blocks/queue/queue.builder.d.ts +40 -0
- package/lib/elements/blocks/queue/queue.builder.js +31 -0
- package/lib/elements/blocks/queue/queue.d.ts +9 -0
- package/lib/elements/blocks/queue/queue.js +11 -0
- package/lib/elements/blocks/queue/queue.schema.d.ts +12 -0
- package/lib/elements/blocks/queue/queue.schema.js +17 -0
- package/lib/elements/blocks/resource/resource.builder.d.ts +60 -0
- package/lib/elements/blocks/resource/resource.builder.js +224 -0
- package/lib/elements/blocks/resource/resource.d.ts +48 -0
- package/lib/elements/blocks/resource/resource.js +125 -0
- package/lib/elements/blocks/resource/resource.schema.d.ts +32 -0
- package/lib/elements/blocks/resource/resource.schema.js +30 -0
- package/lib/elements/blocks/resource/resource.types.d.ts +38 -0
- package/lib/elements/blocks/resource/resource.types.js +3 -0
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +8 -0
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +17 -0
- package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +14 -0
- package/lib/elements/edge/controller/adapters/controller_adapter.js +44 -0
- package/lib/elements/edge/controller/controller.builder.d.ts +78 -0
- package/lib/elements/edge/controller/controller.builder.js +178 -0
- package/lib/elements/edge/controller/controller.config.d.ts +6 -0
- package/lib/elements/edge/controller/controller.config.js +2 -0
- package/lib/elements/edge/controller/controller.d.ts +22 -0
- package/lib/elements/edge/controller/controller.js +41 -0
- package/lib/elements/edge/controller/controller.schema.d.ts +44 -0
- package/lib/elements/edge/controller/controller.schema.js +51 -0
- package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +107 -0
- package/lib/elements/entities/bucket/adapters/bucket_adapter.js +41 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +37 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +149 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +218 -0
- package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +19 -0
- package/lib/elements/entities/bucket/adapters/memory.nql.js +212 -0
- package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +20 -0
- package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +31 -0
- package/lib/elements/entities/bucket/bucket.builder.d.ts +61 -0
- package/lib/elements/entities/bucket/bucket.builder.js +130 -0
- package/lib/elements/entities/bucket/bucket.config.d.ts +29 -0
- package/lib/elements/entities/bucket/bucket.config.js +2 -0
- package/lib/elements/entities/bucket/bucket.d.ts +36 -0
- package/lib/elements/entities/bucket/bucket.infer.d.ts +22 -0
- package/lib/elements/entities/bucket/bucket.infer.js +85 -0
- package/lib/elements/entities/bucket/bucket.js +125 -0
- package/lib/elements/entities/bucket/bucket.schema.d.ts +24 -0
- package/lib/elements/entities/bucket/bucket.schema.js +16 -0
- package/lib/elements/entities/bucket/bucket.types.d.ts +32 -0
- package/lib/elements/entities/bucket/bucket.types.js +2 -0
- package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +35 -0
- package/lib/elements/entities/bucket/cache/bucket_cache.js +182 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +11 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +27 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +16 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.infer.d.ts +9 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.infer.js +2 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.js +136 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +28 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +27 -0
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +36 -0
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +56 -0
- package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +13 -0
- package/lib/elements/entities/bucket/model/bucket_model.builder.js +24 -0
- package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +5 -0
- package/lib/elements/entities/bucket/model/bucket_model.convert.js +51 -0
- package/lib/elements/entities/bucket/model/bucket_model.infer.d.ts +13 -0
- package/lib/elements/entities/bucket/model/bucket_model.infer.js +2 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +35 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.js +47 -0
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +119 -0
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +154 -0
- package/lib/elements/entities/bucket/query/nql.schema.d.ts +140 -0
- package/lib/elements/entities/bucket/query/nql.schema.js +2 -0
- package/lib/elements/entities/bucket/query/nql_compiler.d.ts +44 -0
- package/lib/elements/entities/bucket/query/nql_compiler.js +620 -0
- package/lib/elements/entities/bucket/query/nql_engine.d.ts +16 -0
- package/lib/elements/entities/bucket/query/nql_engine.js +42 -0
- package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +14 -0
- package/lib/elements/entities/bucket/view/bucket_view.builder.js +24 -0
- package/lib/elements/entities/bucket/view/bucket_view.d.ts +10 -0
- package/lib/elements/entities/bucket/view/bucket_view.js +102 -0
- package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +55 -0
- package/lib/elements/entities/bucket/view/bucket_view.schema.js +42 -0
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +37 -0
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +138 -0
- package/lib/elements/entities/constants/constants.builder.d.ts +57 -0
- package/lib/elements/entities/constants/constants.builder.js +116 -0
- package/lib/elements/entities/constants/constants.d.ts +7 -0
- package/lib/elements/entities/constants/constants.js +15 -0
- package/lib/elements/entities/constants/constants.schema.d.ts +51 -0
- package/lib/elements/entities/constants/constants.schema.js +45 -0
- package/lib/elements/entities/message/message.builder.d.ts +33 -0
- package/lib/elements/entities/message/message.builder.js +41 -0
- package/lib/elements/entities/message/message.d.ts +11 -0
- package/lib/elements/entities/message/message.infer.d.ts +63 -0
- package/lib/elements/entities/message/message.infer.js +2 -0
- package/lib/elements/entities/message/message.js +52 -0
- package/lib/elements/entities/message/message.schema.d.ts +15 -0
- package/lib/elements/entities/message/message.schema.js +13 -0
- package/lib/elements/entities/message/message_parser.d.ts +12 -0
- package/lib/elements/entities/message/message_parser.js +112 -0
- package/lib/elements/entities/message/template/message_template.builder.d.ts +14 -0
- package/lib/elements/entities/message/template/message_template.builder.js +20 -0
- package/lib/elements/entities/message/template/message_template.schema.d.ts +57 -0
- package/lib/elements/entities/message/template/message_template.schema.js +28 -0
- package/lib/elements/entities/message/template/message_template_field.builder.d.ts +225 -0
- package/lib/elements/entities/message/template/message_template_field.builder.js +172 -0
- package/lib/elements/entities/message/template/message_template_parser.d.ts +3 -0
- package/lib/elements/entities/message/template/message_template_parser.js +83 -0
- package/lib/elements/index.d.ts +11 -0
- package/lib/elements/index.js +23 -0
- package/lib/engine/apps/app.config.d.ts +49 -0
- package/lib/engine/apps/app.config.js +38 -0
- package/lib/engine/apps/app.d.ts +70 -0
- package/lib/engine/apps/app.js +101 -0
- package/lib/engine/apps/inline.app.d.ts +48 -0
- package/lib/engine/apps/inline.app.js +144 -0
- package/lib/engine/apps/monolyth/monolyth.app.d.ts +20 -0
- package/lib/engine/apps/monolyth/monolyth.app.js +94 -0
- package/lib/engine/apps/monolyth/monolyth.cli.d.ts +45 -0
- package/lib/engine/apps/monolyth/monolyth.cli.js +362 -0
- package/lib/engine/auth/authn.d.ts +18 -0
- package/lib/engine/auth/authn.js +9 -0
- package/lib/engine/auth/zero.authn_provider.d.ts +13 -0
- package/lib/engine/auth/zero.authn_provider.js +13 -0
- package/lib/engine/cli/cli.d.ts +19 -0
- package/lib/engine/cli/cli.js +88 -0
- package/lib/engine/cli/cli_adapter.d.ts +18 -0
- package/lib/engine/cli/cli_adapter.js +61 -0
- package/lib/engine/cli/ui.d.ts +36 -0
- package/lib/engine/cli/ui.js +188 -0
- package/lib/engine/daemon.d.ts +35 -0
- package/lib/engine/daemon.js +66 -0
- package/lib/engine/data/date.d.ts +10 -0
- package/lib/engine/data/date.js +32 -0
- package/lib/engine/data/datetime.d.ts +12 -0
- package/lib/engine/data/datetime.js +31 -0
- package/lib/engine/data/decimal.d.ts +11 -0
- package/lib/engine/data/decimal.js +70 -0
- package/lib/engine/data/error.d.ts +213 -0
- package/lib/engine/data/error.js +386 -0
- package/lib/engine/data/obj.d.ts +16 -0
- package/lib/engine/data/obj.js +5 -0
- package/lib/engine/data/tree.d.ts +17 -0
- package/lib/engine/data/tree.js +111 -0
- package/lib/engine/dependency.d.ts +68 -0
- package/lib/engine/dependency.js +91 -0
- package/lib/engine/module.d.ts +97 -0
- package/lib/engine/module.js +335 -0
- package/lib/engine/space.d.ts +54 -0
- package/lib/engine/space.js +138 -0
- package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +53 -0
- package/lib/engine/transaction/nodes/bucket.trx_node.js +522 -0
- package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +17 -0
- package/lib/engine/transaction/nodes/bucket_query.trx_node.js +82 -0
- package/lib/engine/transaction/nodes/job.trx_node.d.ts +13 -0
- package/lib/engine/transaction/nodes/job.trx_node.js +40 -0
- package/lib/engine/transaction/nodes/machine.trx_node.d.ts +12 -0
- package/lib/engine/transaction/nodes/machine.trx_node.js +39 -0
- package/lib/engine/transaction/nodes/queue.trx_node.d.ts +10 -0
- package/lib/engine/transaction/nodes/queue.trx_node.js +24 -0
- package/lib/engine/transaction/nodes/resource.trx_node.d.ts +24 -0
- package/lib/engine/transaction/nodes/resource.trx_node.js +77 -0
- package/lib/engine/transaction/trx.d.ts +50 -0
- package/lib/engine/transaction/trx.js +94 -0
- package/lib/engine/transaction/trx_engine.config.d.ts +15 -0
- package/lib/engine/transaction/trx_engine.config.js +2 -0
- package/lib/engine/transaction/trx_engine.d.ts +27 -0
- package/lib/engine/transaction/trx_engine.js +95 -0
- package/lib/engine/transaction/trx_node.d.ts +61 -0
- package/lib/engine/transaction/trx_node.js +175 -0
- package/lib/engine/tree.d.ts +34 -0
- package/lib/engine/tree.js +237 -0
- package/lib/engine/util/cache.d.ts +6 -0
- package/lib/engine/util/cache.js +20 -0
- package/lib/engine/util/console.d.ts +4 -0
- package/lib/engine/util/console.js +24 -0
- package/lib/engine/util/deep.d.ts +7 -0
- package/lib/engine/util/deep.js +2 -0
- package/lib/engine/util/dotenv.d.ts +15 -0
- package/lib/engine/util/dotenv.js +94 -0
- package/lib/engine/util/i18n.d.ts +5 -0
- package/lib/engine/util/i18n.js +19 -0
- package/lib/engine/util/log.d.ts +17 -0
- package/lib/engine/util/log.js +93 -0
- package/lib/engine/util/parse.d.ts +63 -0
- package/lib/engine/util/parse.js +229 -0
- package/lib/engine/util/promise.d.ts +3 -0
- package/lib/engine/util/promise.js +14 -0
- package/lib/engine/util/shell.d.ts +6 -0
- package/lib/engine/util/shell.js +44 -0
- package/lib/engine/util/string.d.ts +18 -0
- package/lib/engine/util/string.js +25 -0
- package/lib/engine/util/type.d.ts +7 -0
- package/lib/engine/util/type.js +3 -0
- package/lib/schema.d.ts +63 -0
- package/lib/schema.js +2 -0
- package/package.json +22 -0
- package/tools/compile.d.ts +1 -0
- package/tools/compile.js +68 -0
- package/tools/joaquin/job.d.ts +40 -0
- package/tools/joaquin/job.js +47 -0
- package/tools/joaquin/message.d.ts +12 -0
- package/tools/joaquin/message.js +47 -0
- package/tools/joaquin/mock.d.ts +28 -0
- package/tools/joaquin/mock.js +128 -0
- 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,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
|
+
}
|