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,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BucketViewBuilder = void 0;
|
|
4
|
+
const bucket_view_schema_1 = require("./bucket_view.schema");
|
|
5
|
+
const bucket_view_field_builder_1 = require("./bucket_view_field.builder");
|
|
6
|
+
class BucketViewBuilder {
|
|
7
|
+
constructor(name) {
|
|
8
|
+
this.name = name;
|
|
9
|
+
this._fields = {};
|
|
10
|
+
}
|
|
11
|
+
fields($) {
|
|
12
|
+
const fieldBuilder = new bucket_view_field_builder_1.BucketViewFieldFactory(this);
|
|
13
|
+
this._fields = $(fieldBuilder);
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
// Build
|
|
17
|
+
static build(builder, model, graph, views) {
|
|
18
|
+
const fields = bucket_view_field_builder_1.BucketViewFieldBuilder.buildFields(builder._fields, model, graph, views);
|
|
19
|
+
const schema = new bucket_view_schema_1.$BucketView(builder.name, fields);
|
|
20
|
+
schema.fields.id = new bucket_view_schema_1.$BucketViewField('id', 'model', 'id', 'id', false, true, { model: { key: 'id' } });
|
|
21
|
+
return schema;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.BucketViewBuilder = BucketViewBuilder;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NesoiObj } from "../../../../engine/data/obj";
|
|
2
|
+
import { Bucket } from '../bucket';
|
|
3
|
+
import { $BucketView } from './bucket_view.schema';
|
|
4
|
+
import { AnyTrxNode } from "../../../../engine/transaction/trx_node";
|
|
5
|
+
export declare class BucketView<$ extends $BucketView> {
|
|
6
|
+
private bucket;
|
|
7
|
+
schema: $;
|
|
8
|
+
constructor(bucket: Bucket<any, any>, schema: $);
|
|
9
|
+
parse<Obj extends NesoiObj>(trx: AnyTrxNode, raw: Obj): Promise<$['#data']>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BucketView = void 0;
|
|
7
|
+
const promise_1 = __importDefault(require("../../../../engine/util/promise"));
|
|
8
|
+
const tree_1 = require("../../../../engine/data/tree");
|
|
9
|
+
class BucketView {
|
|
10
|
+
constructor(bucket, schema) {
|
|
11
|
+
this.bucket = bucket;
|
|
12
|
+
this.schema = schema;
|
|
13
|
+
}
|
|
14
|
+
async parse(trx, raw) {
|
|
15
|
+
const bucket = this.bucket;
|
|
16
|
+
const doParse = async (schema, index) => {
|
|
17
|
+
const parsedObj = {};
|
|
18
|
+
// Model props
|
|
19
|
+
for (const k in schema) {
|
|
20
|
+
const prop = schema[k];
|
|
21
|
+
if (prop.scope !== 'model') {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const value = prop.value.model;
|
|
25
|
+
const rawValue = tree_1.Tree.get(raw, value.key, index);
|
|
26
|
+
if (prop.children) {
|
|
27
|
+
if (prop.array) {
|
|
28
|
+
if (!Array.isArray(rawValue)) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
const parsedArray = [];
|
|
32
|
+
for (let i = 0; i < rawValue.length; i++) {
|
|
33
|
+
const child = await doParse(prop.children, [...(index || []), i]);
|
|
34
|
+
parsedArray.push(child);
|
|
35
|
+
}
|
|
36
|
+
parsedObj[k] = parsedArray;
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
else if (prop.type === 'dict') {
|
|
40
|
+
if (typeof rawValue !== 'object' || Array.isArray(rawValue)) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const parsedArray = [];
|
|
44
|
+
for (const k in rawValue) {
|
|
45
|
+
const child = await doParse(prop.children, [...(index || []), k]);
|
|
46
|
+
parsedArray.push(child);
|
|
47
|
+
}
|
|
48
|
+
parsedObj[k] = parsedArray;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
parsedObj[k] = await doParse(prop.children, index || []);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
parsedObj[k] = rawValue;
|
|
57
|
+
}
|
|
58
|
+
// Computed props
|
|
59
|
+
for (const k in schema) {
|
|
60
|
+
const prop = schema[k];
|
|
61
|
+
if (prop.$t !== 'bucket.view.field') {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (prop.scope !== 'computed') {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const value = prop.value.computed;
|
|
68
|
+
parsedObj[k] = await promise_1.default.solve(value.fn({ trx, raw, bucket: bucket.schema }));
|
|
69
|
+
}
|
|
70
|
+
// Graph props
|
|
71
|
+
for (const k in schema) {
|
|
72
|
+
const prop = schema[k];
|
|
73
|
+
if (prop.$t !== 'bucket.view.field') {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (prop.scope !== 'graph') {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const value = prop.value.graph;
|
|
80
|
+
parsedObj[k] = await promise_1.default.solve(bucket.graph.readLink(trx, value.link, raw, value.view, index || []));
|
|
81
|
+
}
|
|
82
|
+
// Group props
|
|
83
|
+
for (const k in schema) {
|
|
84
|
+
const prop = schema[k];
|
|
85
|
+
if (prop.$t !== 'bucket.view.field') {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (prop.scope !== 'group') {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
parsedObj[k] = await doParse(prop.children || {}, index);
|
|
92
|
+
}
|
|
93
|
+
return parsedObj;
|
|
94
|
+
};
|
|
95
|
+
const parsedObj = await doParse(this.schema.fields, null);
|
|
96
|
+
return {
|
|
97
|
+
id: raw.id,
|
|
98
|
+
...parsedObj
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.BucketView = BucketView;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { $BucketModelFieldType } from '../model/bucket_model.schema';
|
|
2
|
+
import { $Bucket } from '../bucket.schema';
|
|
3
|
+
import { AnyTrxNode } from "../../../../engine/transaction/trx_node";
|
|
4
|
+
export type $BucketViewFieldFn<TrxNode extends AnyTrxNode, B extends $Bucket> = (ctx: {
|
|
5
|
+
trx: TrxNode;
|
|
6
|
+
raw: B['#data'];
|
|
7
|
+
bucket: $Bucket;
|
|
8
|
+
}) => any | Promise<any>;
|
|
9
|
+
export type $BucketViewFieldValue = {
|
|
10
|
+
model?: {
|
|
11
|
+
key: string;
|
|
12
|
+
enumOptions?: string | string[];
|
|
13
|
+
};
|
|
14
|
+
graph?: {
|
|
15
|
+
link: string;
|
|
16
|
+
view?: string;
|
|
17
|
+
};
|
|
18
|
+
computed?: {
|
|
19
|
+
fn: $BucketViewFieldFn<any, any>;
|
|
20
|
+
};
|
|
21
|
+
view?: {
|
|
22
|
+
view: string;
|
|
23
|
+
};
|
|
24
|
+
group?: {};
|
|
25
|
+
};
|
|
26
|
+
export declare class $BucketViewField {
|
|
27
|
+
name: string;
|
|
28
|
+
scope: 'model' | 'graph' | 'computed' | 'group' | 'view';
|
|
29
|
+
type: $BucketModelFieldType | 'id';
|
|
30
|
+
alias: string;
|
|
31
|
+
array: boolean | 'unknown';
|
|
32
|
+
required: boolean;
|
|
33
|
+
value: $BucketViewFieldValue;
|
|
34
|
+
children?: $BucketViewFields | undefined;
|
|
35
|
+
$t: string;
|
|
36
|
+
'#data': unknown;
|
|
37
|
+
constructor(name: string, scope: 'model' | 'graph' | 'computed' | 'group' | 'view', type: $BucketModelFieldType | 'id', alias: string, array: boolean | 'unknown', required: boolean, value: $BucketViewFieldValue, children?: $BucketViewFields | undefined);
|
|
38
|
+
}
|
|
39
|
+
export type $BucketViewFields = {
|
|
40
|
+
[x: string]: $BucketViewField;
|
|
41
|
+
};
|
|
42
|
+
export type $BucketViewFieldTree = {
|
|
43
|
+
[x: string]: $BucketViewField | $BucketViewFieldTree;
|
|
44
|
+
};
|
|
45
|
+
export declare class $BucketView {
|
|
46
|
+
name: string;
|
|
47
|
+
fields: $BucketViewFields;
|
|
48
|
+
$t: string;
|
|
49
|
+
'#data': unknown;
|
|
50
|
+
constructor(name: string, fields?: $BucketViewFields);
|
|
51
|
+
static getField(schema: $BucketView, path: string): $BucketViewField | undefined;
|
|
52
|
+
}
|
|
53
|
+
export type $BucketViews = {
|
|
54
|
+
[x: string]: $BucketView;
|
|
55
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.$BucketView = exports.$BucketViewField = void 0;
|
|
4
|
+
class $BucketViewField {
|
|
5
|
+
constructor(name, scope, type, alias, array, required, value, children) {
|
|
6
|
+
this.name = name;
|
|
7
|
+
this.scope = scope;
|
|
8
|
+
this.type = type;
|
|
9
|
+
this.alias = alias;
|
|
10
|
+
this.array = array;
|
|
11
|
+
this.required = required;
|
|
12
|
+
this.value = value;
|
|
13
|
+
this.children = children;
|
|
14
|
+
this.$t = 'bucket.view.field';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.$BucketViewField = $BucketViewField;
|
|
18
|
+
class $BucketView {
|
|
19
|
+
constructor(name, fields = {}) {
|
|
20
|
+
this.name = name;
|
|
21
|
+
this.fields = fields;
|
|
22
|
+
this.$t = 'bucket.view';
|
|
23
|
+
}
|
|
24
|
+
static getField(schema, path) {
|
|
25
|
+
const find = (fields, path) => {
|
|
26
|
+
const term = path[0];
|
|
27
|
+
if (term in fields) {
|
|
28
|
+
const field = fields[term];
|
|
29
|
+
if (path.length === 1) {
|
|
30
|
+
return field;
|
|
31
|
+
}
|
|
32
|
+
if (!field.children) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return find(field.children, path.slice(1));
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
};
|
|
39
|
+
return find(schema.fields, path.split('.'));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.$BucketView = $BucketView;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { $BucketViewField, $BucketViewFieldFn, $BucketViewFieldValue, $BucketViewFields, $BucketViews } from './bucket_view.schema';
|
|
2
|
+
import { $Module, $Space, ViewObj } from "../../../../schema";
|
|
3
|
+
import { $BucketModel } from '../model/bucket_model.schema';
|
|
4
|
+
import { $BucketGraph } from '../graph/bucket_graph.schema';
|
|
5
|
+
import { BucketViewBuilder } from './bucket_view.builder';
|
|
6
|
+
import { $Bucket } from '../bucket.schema';
|
|
7
|
+
import { $BucketViewFieldBuilderInfer } from '../bucket.infer';
|
|
8
|
+
import { TrxNode } from "../../../../engine/transaction/trx_node";
|
|
9
|
+
type GraphLinkBucket<Bucket extends $Bucket, L extends keyof Bucket['graph']['links']> = Bucket['graph']['links'][L]['#bucket'];
|
|
10
|
+
type ComputedData<Fn extends $BucketViewFieldFn<any, any>, R = ReturnType<Fn>> = R extends Promise<infer X> ? X : R;
|
|
11
|
+
export declare class BucketViewFieldFactory<Space extends $Space, Module extends $Module, Bucket extends $Bucket> {
|
|
12
|
+
private _view;
|
|
13
|
+
protected scope: $BucketViewField['scope'];
|
|
14
|
+
protected type: $BucketViewField['type'];
|
|
15
|
+
protected value: $BucketViewField['value'];
|
|
16
|
+
constructor(_view: BucketViewBuilder<any, any, any>);
|
|
17
|
+
model<K extends keyof Bucket['#fieldpath'], Extra extends BucketViewFieldBuilderTree>(key: K, extra?: Extra): BucketViewFieldBuilder<Bucket["#fieldpath"][K], "model", never>;
|
|
18
|
+
computed<Fn extends $BucketViewFieldFn<TrxNode<Space, Module, Space['authnUsers']>, Bucket>>(fn: Fn): BucketViewFieldBuilder<ComputedData<Fn, ReturnType<Fn>>, "computed", never>;
|
|
19
|
+
graph<L extends keyof Bucket['graph']['links'], LinkBucket extends GraphLinkBucket<Bucket, L>, V extends (keyof LinkBucket['views']) | undefined>(link: L, view?: V): BucketViewFieldBuilder<undefined extends V ? LinkBucket["#data"] : ViewObj<LinkBucket, NonNullable<V>>, "graph", `${LinkBucket["name"]}.${V & string}`>;
|
|
20
|
+
view<ViewName extends keyof Bucket['views'], View extends Bucket['views'][ViewName]>(view: ViewName): BucketViewFieldBuilder<View["#data"], "view", never>;
|
|
21
|
+
extend<ViewName extends keyof Bucket['views'], Builders extends BucketViewFieldBuilderTree>(view: ViewName, fields: Builders): $BucketViewFieldBuilderInfer<Bucket["views"][ViewName]["#data"]> & Builders;
|
|
22
|
+
static group(name: string, children: $BucketViewFields): $BucketViewField;
|
|
23
|
+
}
|
|
24
|
+
export declare class BucketViewFieldBuilder<Data, Scope extends $BucketViewField['scope'], GraphLink extends string = never> {
|
|
25
|
+
protected scope: $BucketViewField['scope'];
|
|
26
|
+
protected value: $BucketViewFieldValue;
|
|
27
|
+
protected refKey?: string | undefined;
|
|
28
|
+
protected extra?: BucketViewFieldBuilderTree | undefined;
|
|
29
|
+
protected type: $BucketViewField['type'];
|
|
30
|
+
constructor(scope: $BucketViewField['scope'], value: $BucketViewFieldValue, refKey?: string | undefined, extra?: BucketViewFieldBuilderTree | undefined);
|
|
31
|
+
static build(builder: BucketViewFieldBuilder<any, any>, model: $BucketModel, graph: $BucketGraph, views: $BucketViews, name: string): $BucketViewField;
|
|
32
|
+
static buildFields(fields: BucketViewFieldBuilderTree, model: $BucketModel, graph: $BucketGraph, views: $BucketViews): $BucketViewFields;
|
|
33
|
+
}
|
|
34
|
+
export type BucketViewFieldBuilderTree = {
|
|
35
|
+
[x: string]: BucketViewFieldBuilder<any, any, any> | BucketViewFieldBuilderTree;
|
|
36
|
+
};
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BucketViewFieldBuilder = exports.BucketViewFieldFactory = void 0;
|
|
4
|
+
const error_1 = require("../../../../engine/data/error");
|
|
5
|
+
const bucket_view_schema_1 = require("./bucket_view.schema");
|
|
6
|
+
const bucket_model_schema_1 = require("../model/bucket_model.schema");
|
|
7
|
+
const bucket_model_convert_1 = require("../model/bucket_model.convert");
|
|
8
|
+
/*
|
|
9
|
+
Factory
|
|
10
|
+
*/
|
|
11
|
+
class BucketViewFieldFactory {
|
|
12
|
+
constructor(_view) {
|
|
13
|
+
this._view = _view;
|
|
14
|
+
}
|
|
15
|
+
model(key, extra) {
|
|
16
|
+
return new BucketViewFieldBuilder('model', {
|
|
17
|
+
model: {
|
|
18
|
+
key: key
|
|
19
|
+
}
|
|
20
|
+
}, key, extra);
|
|
21
|
+
}
|
|
22
|
+
computed(fn) {
|
|
23
|
+
return new BucketViewFieldBuilder('computed', {
|
|
24
|
+
computed: {
|
|
25
|
+
fn: fn
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
graph(link, view) {
|
|
30
|
+
return new BucketViewFieldBuilder('graph', {
|
|
31
|
+
graph: {
|
|
32
|
+
link: link,
|
|
33
|
+
view: view
|
|
34
|
+
}
|
|
35
|
+
}, link);
|
|
36
|
+
}
|
|
37
|
+
view(view) {
|
|
38
|
+
return new BucketViewFieldBuilder('view', {
|
|
39
|
+
view: {
|
|
40
|
+
view: view
|
|
41
|
+
}
|
|
42
|
+
}, view);
|
|
43
|
+
}
|
|
44
|
+
extend(view, fields) {
|
|
45
|
+
return {
|
|
46
|
+
__ext: view,
|
|
47
|
+
...fields
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
static group(name, children) {
|
|
51
|
+
return new bucket_view_schema_1.$BucketViewField(name, 'group', 'obj', name, false, true, { group: {} }, children);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.BucketViewFieldFactory = BucketViewFieldFactory;
|
|
55
|
+
/*
|
|
56
|
+
Builder
|
|
57
|
+
*/
|
|
58
|
+
class BucketViewFieldBuilder {
|
|
59
|
+
constructor(scope, value, refKey, extra) {
|
|
60
|
+
this.scope = scope;
|
|
61
|
+
this.value = value;
|
|
62
|
+
this.refKey = refKey;
|
|
63
|
+
this.extra = extra;
|
|
64
|
+
this.type = 'unknown';
|
|
65
|
+
this.type = 'unknown';
|
|
66
|
+
}
|
|
67
|
+
// Build
|
|
68
|
+
static build(builder, model, graph, views, name) {
|
|
69
|
+
let type = 'unknown';
|
|
70
|
+
let array = 'unknown';
|
|
71
|
+
let required = true;
|
|
72
|
+
let children = undefined;
|
|
73
|
+
if (builder.scope === 'model') {
|
|
74
|
+
const modelField = bucket_model_schema_1.$BucketModel.get(model, builder.refKey);
|
|
75
|
+
if (!modelField) {
|
|
76
|
+
throw error_1.NesoiError.Builder.Bucket.UnknownModelField(builder.refKey);
|
|
77
|
+
}
|
|
78
|
+
type = modelField.type;
|
|
79
|
+
array = builder.refKey?.includes('.*') || modelField.array;
|
|
80
|
+
required = modelField.required;
|
|
81
|
+
if (modelField._enum) {
|
|
82
|
+
builder.value.model.enumOptions = modelField._enum.options;
|
|
83
|
+
}
|
|
84
|
+
if (modelField.children) {
|
|
85
|
+
const path = builder.refKey + ((modelField.array || modelField.type === 'dict') ? '.*' : '');
|
|
86
|
+
const fromModel = (0, bucket_model_convert_1.convertToView)(model, '', modelField.children, path).fields;
|
|
87
|
+
children = Object.assign({}, fromModel);
|
|
88
|
+
}
|
|
89
|
+
if (builder.extra) {
|
|
90
|
+
const extra = this.buildFields(builder.extra, model, graph, views);
|
|
91
|
+
children = Object.assign({}, children, extra);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if (builder.scope === 'graph') {
|
|
95
|
+
const graphLink = builder.refKey ? graph.links[builder.refKey] : undefined;
|
|
96
|
+
if (!graphLink) {
|
|
97
|
+
throw error_1.NesoiError.Builder.Bucket.UnknownGraphLink(builder.refKey || '');
|
|
98
|
+
}
|
|
99
|
+
array = graphLink.many;
|
|
100
|
+
}
|
|
101
|
+
else if (builder.scope === 'view') {
|
|
102
|
+
const view = builder.refKey ? views[builder.refKey] : undefined;
|
|
103
|
+
if (!view) {
|
|
104
|
+
throw error_1.NesoiError.Builder.Bucket.UnknownViewName(builder.refKey || '');
|
|
105
|
+
}
|
|
106
|
+
type = 'obj';
|
|
107
|
+
array = false;
|
|
108
|
+
children = view.fields;
|
|
109
|
+
}
|
|
110
|
+
return new bucket_view_schema_1.$BucketViewField(name, builder.scope, type, name, array, required, builder.value, children);
|
|
111
|
+
}
|
|
112
|
+
static buildFields(fields, model, graph, views) {
|
|
113
|
+
const schema = {};
|
|
114
|
+
// Extended fields inherit from other views
|
|
115
|
+
if ('__ext' in fields) {
|
|
116
|
+
const ext = views[fields.__ext];
|
|
117
|
+
Object.assign(schema, ext.fields);
|
|
118
|
+
}
|
|
119
|
+
for (const f in fields) {
|
|
120
|
+
if (f === '__ext') {
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
const field = fields[f];
|
|
124
|
+
// Normal fields are built here
|
|
125
|
+
if (field instanceof BucketViewFieldBuilder) {
|
|
126
|
+
schema[f] = BucketViewFieldBuilder.build(field, model, graph, views, f);
|
|
127
|
+
}
|
|
128
|
+
// Builders are allowed to implicitly declare nested fields.
|
|
129
|
+
// The code below transforms these groups into fields of the scope 'group'.
|
|
130
|
+
else {
|
|
131
|
+
const children = BucketViewFieldBuilder.buildFields(field, model, graph, views);
|
|
132
|
+
schema[f] = BucketViewFieldFactory.group(f, children);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return schema;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.BucketViewFieldBuilder = BucketViewFieldBuilder;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ResolvedBuilderNode } from "../../../engine/dependency";
|
|
2
|
+
import { $ConstantEnum, $ConstantEnumOption, $ConstantValue, $Constants } from './constants.schema';
|
|
3
|
+
/**
|
|
4
|
+
* Value
|
|
5
|
+
*/
|
|
6
|
+
export declare class ConstantValueBuilder {
|
|
7
|
+
private scope;
|
|
8
|
+
private key?;
|
|
9
|
+
private value?;
|
|
10
|
+
constructor(scope: string, key?: string | undefined, value?: any | undefined);
|
|
11
|
+
static build(key: string, builder: ConstantValueBuilder): $ConstantValue;
|
|
12
|
+
}
|
|
13
|
+
export declare class ConstantValueFactory {
|
|
14
|
+
static<T>(value: T): ConstantValueBuilder;
|
|
15
|
+
app<T>(key?: string): ConstantValueBuilder;
|
|
16
|
+
}
|
|
17
|
+
type ConstantValueDef = ($: ConstantValueFactory) => Record<string, ConstantValueBuilder>;
|
|
18
|
+
/**
|
|
19
|
+
* Enum
|
|
20
|
+
*/
|
|
21
|
+
export declare class ConstantEnumOptionBuilder {
|
|
22
|
+
private value;
|
|
23
|
+
constructor(value: any);
|
|
24
|
+
static build(key: string, builder: ConstantEnumOptionBuilder): $ConstantEnumOption;
|
|
25
|
+
}
|
|
26
|
+
export declare class ConstantEnumOptionFactory<T> {
|
|
27
|
+
opt(value: T): ConstantEnumOptionBuilder;
|
|
28
|
+
}
|
|
29
|
+
type ConstantEnumOptionBuilders = Record<string, ConstantEnumOptionBuilder>;
|
|
30
|
+
type ConstantEnumOptionDef<T> = ($: ConstantEnumOptionFactory<T>) => ConstantEnumOptionBuilders;
|
|
31
|
+
export declare class ConstantEnumBuilder {
|
|
32
|
+
name: string;
|
|
33
|
+
options: ConstantEnumOptionBuilders;
|
|
34
|
+
constructor(name: string, options: ConstantEnumOptionBuilders);
|
|
35
|
+
static build(builder: ConstantEnumBuilder): $ConstantEnum;
|
|
36
|
+
private static buildOptions;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Constants
|
|
40
|
+
*/
|
|
41
|
+
export declare class ConstantsBuilder {
|
|
42
|
+
private module;
|
|
43
|
+
$b: "constants";
|
|
44
|
+
name: string;
|
|
45
|
+
private _values;
|
|
46
|
+
private enums;
|
|
47
|
+
constructor(module: string);
|
|
48
|
+
values($: ConstantValueDef): this;
|
|
49
|
+
enum<T>(name: string, $: ConstantEnumOptionDef<T>): this;
|
|
50
|
+
static merge(to: ConstantsBuilder, from: ConstantsBuilder): void;
|
|
51
|
+
static build(node: ConstantsBuilderNode): $Constants;
|
|
52
|
+
}
|
|
53
|
+
export type ConstantsBuilderNode = ResolvedBuilderNode & {
|
|
54
|
+
builder: ConstantsBuilder;
|
|
55
|
+
schema?: $Constants;
|
|
56
|
+
};
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConstantsBuilder = exports.ConstantEnumBuilder = exports.ConstantEnumOptionFactory = exports.ConstantEnumOptionBuilder = exports.ConstantValueFactory = exports.ConstantValueBuilder = void 0;
|
|
4
|
+
const constants_schema_1 = require("./constants.schema");
|
|
5
|
+
/**
|
|
6
|
+
* Value
|
|
7
|
+
*/
|
|
8
|
+
class ConstantValueBuilder {
|
|
9
|
+
constructor(scope, key, value) {
|
|
10
|
+
this.scope = scope;
|
|
11
|
+
this.key = key;
|
|
12
|
+
this.value = value;
|
|
13
|
+
}
|
|
14
|
+
// Build
|
|
15
|
+
static build(key, builder) {
|
|
16
|
+
return new constants_schema_1.$ConstantValue(builder.scope, builder.key || key, builder.value);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.ConstantValueBuilder = ConstantValueBuilder;
|
|
20
|
+
class ConstantValueFactory {
|
|
21
|
+
static(value) {
|
|
22
|
+
return new ConstantValueBuilder('static', undefined, value);
|
|
23
|
+
}
|
|
24
|
+
app(key) {
|
|
25
|
+
return new ConstantValueBuilder('app', key);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.ConstantValueFactory = ConstantValueFactory;
|
|
29
|
+
/**
|
|
30
|
+
* Enum
|
|
31
|
+
*/
|
|
32
|
+
class ConstantEnumOptionBuilder {
|
|
33
|
+
constructor(value) {
|
|
34
|
+
this.value = value;
|
|
35
|
+
}
|
|
36
|
+
// Build
|
|
37
|
+
static build(key, builder) {
|
|
38
|
+
return new constants_schema_1.$ConstantEnumOption(key, builder.value);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.ConstantEnumOptionBuilder = ConstantEnumOptionBuilder;
|
|
42
|
+
class ConstantEnumOptionFactory {
|
|
43
|
+
opt(value) {
|
|
44
|
+
return new ConstantEnumOptionBuilder(value);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.ConstantEnumOptionFactory = ConstantEnumOptionFactory;
|
|
48
|
+
class ConstantEnumBuilder {
|
|
49
|
+
constructor(name, options) {
|
|
50
|
+
this.name = name;
|
|
51
|
+
this.options = options;
|
|
52
|
+
}
|
|
53
|
+
// Build
|
|
54
|
+
static build(builder) {
|
|
55
|
+
return new constants_schema_1.$ConstantEnum(builder.name, this.buildOptions(builder.options));
|
|
56
|
+
}
|
|
57
|
+
static buildOptions(builders) {
|
|
58
|
+
const options = {};
|
|
59
|
+
for (const k in builders) {
|
|
60
|
+
options[k] = ConstantEnumOptionBuilder.build(k, builders[k]);
|
|
61
|
+
}
|
|
62
|
+
return options;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.ConstantEnumBuilder = ConstantEnumBuilder;
|
|
66
|
+
/**
|
|
67
|
+
* Constants
|
|
68
|
+
*/
|
|
69
|
+
class ConstantsBuilder {
|
|
70
|
+
constructor(module) {
|
|
71
|
+
this.module = module;
|
|
72
|
+
this.$b = 'constants';
|
|
73
|
+
this.name = '*';
|
|
74
|
+
this._values = {};
|
|
75
|
+
this.enums = {};
|
|
76
|
+
}
|
|
77
|
+
values($) {
|
|
78
|
+
const factory = new ConstantValueFactory();
|
|
79
|
+
this._values = $(factory);
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
enum(name, $) {
|
|
83
|
+
const factory = new ConstantEnumOptionFactory();
|
|
84
|
+
const options = $(factory);
|
|
85
|
+
this.enums[name] = new ConstantEnumBuilder(name, options);
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
static merge(to, from) {
|
|
89
|
+
Object.assign(to._values, from._values);
|
|
90
|
+
Object.assign(to.enums, from.enums);
|
|
91
|
+
}
|
|
92
|
+
// Build
|
|
93
|
+
static build(node) {
|
|
94
|
+
const values = {};
|
|
95
|
+
const enums = {};
|
|
96
|
+
for (const k in node.builder._values) {
|
|
97
|
+
values[k] = ConstantValueBuilder.build(k, node.builder._values[k]);
|
|
98
|
+
}
|
|
99
|
+
for (const k in node.builder.enums) {
|
|
100
|
+
enums[k] = ConstantEnumBuilder.build(node.builder.enums[k]);
|
|
101
|
+
// Spread enum into multiple enums if it has one or more "." on it's name
|
|
102
|
+
const split = k.split('.');
|
|
103
|
+
if (split.length > 1) {
|
|
104
|
+
let parent = '';
|
|
105
|
+
for (let i = 0; i < split.length - 1; i++) {
|
|
106
|
+
parent = parent.length ? (`${parent}.${split[i]}`) : split[i];
|
|
107
|
+
enums[parent] ?? (enums[parent] = new constants_schema_1.$ConstantEnum(parent, {}));
|
|
108
|
+
Object.assign(enums[parent].options, enums[k].options);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
node.schema = new constants_schema_1.$Constants(node.module, values, enums);
|
|
113
|
+
return node.schema;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.ConstantsBuilder = ConstantsBuilder;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { $ConstantEnum } from './constants.schema';
|
|
2
|
+
export declare class Enum<$ extends $ConstantEnum> {
|
|
3
|
+
private schema;
|
|
4
|
+
constructor(schema: $);
|
|
5
|
+
keys<K extends keyof $['options']>(): K[];
|
|
6
|
+
get<K extends keyof $['options']>(key: K): $['options'][K]['value'];
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Enum = void 0;
|
|
4
|
+
class Enum {
|
|
5
|
+
constructor(schema) {
|
|
6
|
+
this.schema = schema;
|
|
7
|
+
}
|
|
8
|
+
keys() {
|
|
9
|
+
return Object.keys(this.schema.options);
|
|
10
|
+
}
|
|
11
|
+
get(key) {
|
|
12
|
+
return this.schema.options[key].value;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.Enum = Enum;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { $Module, $Space } from "../../../schema";
|
|
2
|
+
import { $Message } from '../message/message.schema';
|
|
3
|
+
import { MergeUnion } from "../../../engine/util/type";
|
|
4
|
+
export declare class $ConstantValue {
|
|
5
|
+
scope: string;
|
|
6
|
+
key: string;
|
|
7
|
+
value?: any | undefined;
|
|
8
|
+
constructor(scope: string, key: string, value?: any | undefined);
|
|
9
|
+
}
|
|
10
|
+
export declare class $ConstantEnumOption {
|
|
11
|
+
key: string;
|
|
12
|
+
value: unknown;
|
|
13
|
+
constructor(key: string, value: unknown);
|
|
14
|
+
}
|
|
15
|
+
export declare class $ConstantEnum {
|
|
16
|
+
name: string;
|
|
17
|
+
options: Record<string, $ConstantEnumOption>;
|
|
18
|
+
'#data': any;
|
|
19
|
+
constructor(name: string, options: Record<string, $ConstantEnumOption>);
|
|
20
|
+
static keys(schema: $ConstantEnum): string[];
|
|
21
|
+
static get(schema: $ConstantEnum, key: string): unknown;
|
|
22
|
+
}
|
|
23
|
+
export declare class $Constants {
|
|
24
|
+
name: string;
|
|
25
|
+
values: Record<string, $ConstantValue>;
|
|
26
|
+
enums: Record<string, $ConstantEnum>;
|
|
27
|
+
$t: "constants";
|
|
28
|
+
'#enumpath': Record<string, {
|
|
29
|
+
_enum: $ConstantEnum;
|
|
30
|
+
_subs: string;
|
|
31
|
+
}>;
|
|
32
|
+
module: string;
|
|
33
|
+
constructor(name: string, values?: Record<string, $ConstantValue>, enums?: Record<string, $ConstantEnum>);
|
|
34
|
+
static merge(to: $Constants, from: $Constants): void;
|
|
35
|
+
}
|
|
36
|
+
type CompatibleMessageKey<Data, Subs extends string> = {
|
|
37
|
+
[K in keyof Data]: Data[K] extends Subs ? K : never;
|
|
38
|
+
}[keyof Data];
|
|
39
|
+
type ParseMessageEnumpath<Message extends $Message, Path extends string, Subs extends string> = Path extends `${infer X}.*` ? `${X}.{${CompatibleMessageKey<Message['#parsed'], Subs> & string}}` : Path;
|
|
40
|
+
export type MessageEnumpath<Module extends $Module, Message extends $Message, Modules extends Record<string, $Module>> = MergeUnion<{
|
|
41
|
+
[M in keyof Modules]: {
|
|
42
|
+
[K in keyof Modules[M]['constants']['#enumpath'] as M extends Module['name'] ? ParseMessageEnumpath<Message, K & string, Modules[M]['constants']['#enumpath'][K]['_subs']> : `${M & string}::${ParseMessageEnumpath<Message, K & string, Modules[M]['constants']['#enumpath'][K]['_subs']>}`]: Modules[M]['constants']['#enumpath'][K]['_enum'];
|
|
43
|
+
};
|
|
44
|
+
}[keyof Modules]>;
|
|
45
|
+
export type EnumName<Space extends $Space> = MergeUnion<{
|
|
46
|
+
[M in keyof Space['modules']]: {
|
|
47
|
+
[K in keyof Space['modules'][M]['constants']['enums'] as `${M & string}::${K & string}`]: Space['modules'][M]['constants']['enums'][K];
|
|
48
|
+
};
|
|
49
|
+
}[keyof Space['modules']]>;
|
|
50
|
+
export type EnumFromName<Space extends $Space, Name, ModuleName extends keyof Space['modules'] = Name extends `${infer X}::${string}` ? X : never, Module extends $Module = Space['modules'][ModuleName], Enums = Module['constants']['enums'], EnumName = Name extends `${string}::${infer X}` ? X : never> = Enums[EnumName & keyof Enums];
|
|
51
|
+
export {};
|