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,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlockBuilder = void 0;
|
|
4
|
+
const message_template_field_builder_1 = require("../entities/message/template/message_template_field.builder");
|
|
5
|
+
const message_builder_1 = require("../entities/message/message.builder");
|
|
6
|
+
const dependency_1 = require("../../engine/dependency");
|
|
7
|
+
const name_helpers_1 = require("../../compiler/helpers/name_helpers");
|
|
8
|
+
class BlockBuilder {
|
|
9
|
+
constructor(module, type, name) {
|
|
10
|
+
this.module = module;
|
|
11
|
+
this.type = type;
|
|
12
|
+
this.name = name;
|
|
13
|
+
this._authn = [];
|
|
14
|
+
// References to all inline nodes, set during builder declaration (before build)
|
|
15
|
+
this._inlineNodes = [];
|
|
16
|
+
this._inputMsgs = [];
|
|
17
|
+
}
|
|
18
|
+
/** Block "human" name */
|
|
19
|
+
as(alias) {
|
|
20
|
+
this._alias = alias;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
// Inline Messages
|
|
24
|
+
/**
|
|
25
|
+
* Inline messages. These messages are exposed to the module,
|
|
26
|
+
* with a name prefixed by the block name.
|
|
27
|
+
* @param def Example: `$ => { msg1: { prop1: $.int, prop2: $.string }, msg2: { prop3: $.boolean } }`
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
messages(def) {
|
|
31
|
+
const builder = new message_template_field_builder_1.MessageTemplateFieldFactory(this.module);
|
|
32
|
+
const schema = def(builder);
|
|
33
|
+
for (const key in schema) {
|
|
34
|
+
const name = `${this.name}${key.length ? ('.' + key) : ''}`;
|
|
35
|
+
const builder = new message_builder_1.MessageBuilder(this.module, name)
|
|
36
|
+
.template(() => schema[key]);
|
|
37
|
+
this._inlineNodes.push(new dependency_1.BuilderNode({
|
|
38
|
+
module: this.module,
|
|
39
|
+
type: 'message',
|
|
40
|
+
name,
|
|
41
|
+
builder,
|
|
42
|
+
isInline: true,
|
|
43
|
+
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
44
|
+
dependencies: [] // This is added later by Treeshake.*()
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
// Authentication
|
|
50
|
+
authn(...providers) {
|
|
51
|
+
if (!Array.isArray(providers)) {
|
|
52
|
+
providers = [providers];
|
|
53
|
+
}
|
|
54
|
+
this._authn = providers;
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
// Input/Output
|
|
58
|
+
_input(...names) {
|
|
59
|
+
this._inputMsgs = names.map((name) => {
|
|
60
|
+
const fullName = name_helpers_1.NameHelpers.unabbrevName(name, this.name);
|
|
61
|
+
return new dependency_1.$Dependency(this.module, 'message', fullName);
|
|
62
|
+
});
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
outputRaw() {
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
outputMsg(...msgs) {
|
|
69
|
+
var _a;
|
|
70
|
+
this._output ?? (this._output = {});
|
|
71
|
+
(_a = this._output).msg ?? (_a.msg = []);
|
|
72
|
+
msgs.forEach(msg => {
|
|
73
|
+
this._output?.msg?.push(new dependency_1.$Dependency(this.module, 'message', msg, true));
|
|
74
|
+
});
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
outputObj(...objs) {
|
|
78
|
+
var _a;
|
|
79
|
+
this._output ?? (this._output = {});
|
|
80
|
+
(_a = this._output).obj ?? (_a.obj = []);
|
|
81
|
+
objs.forEach(obj => {
|
|
82
|
+
this._output?.obj?.push(new dependency_1.$Dependency(this.module, 'bucket', obj, true));
|
|
83
|
+
});
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.BlockBuilder = BlockBuilder;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { $Module, $Space, MessageName, RawMessageInput } from "../../schema";
|
|
2
|
+
import { $Block, $BlockType } from './block.schema';
|
|
3
|
+
import { Message } from "../entities/message/message";
|
|
4
|
+
import { Module } from "../../engine/module";
|
|
5
|
+
import { TrxNode } from "../../engine/transaction/trx_node";
|
|
6
|
+
export declare abstract class Block<S extends $Space, M extends $Module, $ extends $Block> {
|
|
7
|
+
type: $BlockType;
|
|
8
|
+
module: Module<S, M>;
|
|
9
|
+
schema: $;
|
|
10
|
+
constructor(type: $BlockType, module: Module<S, M>, schema: $);
|
|
11
|
+
consumeRaw(trx: TrxNode<S, M, $['#authn']>, raw: RawMessageInput<M, MessageName<M>>, ctx?: Record<string, any>): Promise<$['#output']>;
|
|
12
|
+
consume(trx: TrxNode<S, M, $['#authn']>, msg: Message<any>, ctx?: Record<string, any>): Promise<$['#output']>;
|
|
13
|
+
protected abstract run(trx: TrxNode<S, M, $['#authn']>, msg: Message<any>, ctx?: Record<string, any>): Promise<any>;
|
|
14
|
+
}
|
|
15
|
+
export type AnyBlock = Block<any, any, any>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Block = void 0;
|
|
4
|
+
const log_1 = require("../../engine/util/log");
|
|
5
|
+
const error_1 = require("../../engine/data/error");
|
|
6
|
+
class Block {
|
|
7
|
+
constructor(type, module, schema) {
|
|
8
|
+
this.type = type;
|
|
9
|
+
this.module = module;
|
|
10
|
+
this.schema = schema;
|
|
11
|
+
if (schema.$t !== type) {
|
|
12
|
+
throw error_1.NesoiError.Block.InvalidSchema({ name: schema.name, type: schema.$t, expectedType: type });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
async consumeRaw(trx, raw, ctx) {
|
|
16
|
+
log_1.Log.debug('trx', trx.globalId, `${(0, log_1.scopeTag)(this.type, this.schema.name)} Consume Raw`, raw);
|
|
17
|
+
if (!raw.$) {
|
|
18
|
+
throw error_1.NesoiError.Message.NoType({ raw });
|
|
19
|
+
}
|
|
20
|
+
if (typeof raw.$ !== 'string') {
|
|
21
|
+
throw error_1.NesoiError.Message.InvalidType({ type: raw.$ });
|
|
22
|
+
}
|
|
23
|
+
if (!this.schema.input.some(dep => dep.tag === `${this.module.name}::message:${raw.$}`)) {
|
|
24
|
+
throw error_1.NesoiError.Block.MessageNotSupported({ block: this.schema.name, message: raw.$ });
|
|
25
|
+
}
|
|
26
|
+
const msg = (await trx.message(raw));
|
|
27
|
+
return this.run(trx, msg, ctx);
|
|
28
|
+
}
|
|
29
|
+
async consume(trx, msg, ctx) {
|
|
30
|
+
log_1.Log.debug('trx', trx.globalId, `${(0, log_1.scopeTag)(this.type, this.schema.name)} Consume`, msg);
|
|
31
|
+
if (!this.schema.input.some(dep => dep.module === this.module.name && dep.name === msg.$)) {
|
|
32
|
+
throw error_1.NesoiError.Block.MessageNotSupported({ block: this.schema.name, message: msg.$ });
|
|
33
|
+
}
|
|
34
|
+
return this.run(trx, msg, ctx);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.Block = Block;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TypeAsObj } from "../../compiler/elements/element";
|
|
2
|
+
import { $Message } from "../entities/message/message.schema";
|
|
3
|
+
import { AnyUsers } from "../../engine/auth/authn";
|
|
4
|
+
import { $Dependency } from "../../engine/dependency";
|
|
5
|
+
export type $BlockType = 'job' | 'resource' | 'machine' | 'queue';
|
|
6
|
+
export type $BlockOutput = {
|
|
7
|
+
raw?: TypeAsObj;
|
|
8
|
+
msg?: $Dependency[];
|
|
9
|
+
obj?: $Dependency[];
|
|
10
|
+
};
|
|
11
|
+
export declare class $Block {
|
|
12
|
+
module: string;
|
|
13
|
+
name: string;
|
|
14
|
+
alias: string;
|
|
15
|
+
authn: string[];
|
|
16
|
+
input: $Dependency[];
|
|
17
|
+
output?: $BlockOutput | undefined;
|
|
18
|
+
$t: $BlockType;
|
|
19
|
+
'#authn': AnyUsers;
|
|
20
|
+
'#input': $Message;
|
|
21
|
+
'#output': unknown;
|
|
22
|
+
constructor(module: string, name: string, alias: string, authn: string[], input: $Dependency[], output?: $BlockOutput | undefined);
|
|
23
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.$Block = void 0;
|
|
4
|
+
class $Block {
|
|
5
|
+
constructor(module, name, alias, authn, input, output) {
|
|
6
|
+
this.module = module;
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.alias = alias;
|
|
9
|
+
this.authn = authn;
|
|
10
|
+
this.input = input;
|
|
11
|
+
this.output = output;
|
|
12
|
+
this.$t = 'block';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.$Block = $Block;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { $Space } from "../../../schema";
|
|
2
|
+
import { $Externals } from './externals.schema';
|
|
3
|
+
import { ResolvedBuilderNode } from "../../../engine/dependency";
|
|
4
|
+
import { MergeUnion } from "../../../engine/util/type";
|
|
5
|
+
type MergeAllBuckets<Space extends $Space, Module extends keyof Space['modules'], Modules extends $Space['modules'] = Space['modules']> = MergeUnion<{
|
|
6
|
+
[M in keyof Modules]: {
|
|
7
|
+
[B in keyof Modules[M]['buckets'] as `${M & string}::${B & string}`]: Modules[M]['buckets'][B];
|
|
8
|
+
};
|
|
9
|
+
}[keyof Modules]>;
|
|
10
|
+
type ExternalBucketRefName<Space extends $Space, M extends keyof Space['modules'], AllBuckets = MergeAllBuckets<Space, M>> = Exclude<keyof AllBuckets, `${M & string}::${string}` | `${string}::${string}::${string}`>;
|
|
11
|
+
export declare class ExternalsBuilder<Space extends $Space, ModuleName extends keyof Space['modules']> {
|
|
12
|
+
private module;
|
|
13
|
+
$b: "externals";
|
|
14
|
+
name: string;
|
|
15
|
+
private buckets;
|
|
16
|
+
private jobs;
|
|
17
|
+
private machines;
|
|
18
|
+
constructor(module: string);
|
|
19
|
+
bucket<M extends keyof Space['modules'], B extends ExternalBucketRefName<Space, ModuleName>>(ref: B): this;
|
|
20
|
+
job<M extends Exclude<keyof Space['modules'], ModuleName>, B extends keyof Space['modules'][M]['jobs']>(ref: `${M & string}::${B & string}`): this;
|
|
21
|
+
machine<M extends Exclude<keyof Space['modules'], ModuleName>, B extends keyof Space['modules'][M]['machines']>(ref: `${M & string}::${B & string}`): this;
|
|
22
|
+
static merge(to: AnyExternalsBuilder, from: AnyExternalsBuilder): void;
|
|
23
|
+
static build(node: ExternalsBuilderNode): $Externals;
|
|
24
|
+
}
|
|
25
|
+
export type AnyExternalsBuilder = ExternalsBuilder<any, any>;
|
|
26
|
+
export type ExternalsBuilderNode = ResolvedBuilderNode & {
|
|
27
|
+
builder: AnyExternalsBuilder;
|
|
28
|
+
schema?: $Externals;
|
|
29
|
+
};
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExternalsBuilder = void 0;
|
|
4
|
+
const externals_schema_1 = require("./externals.schema");
|
|
5
|
+
const dependency_1 = require("../../../engine/dependency");
|
|
6
|
+
class ExternalsBuilder {
|
|
7
|
+
constructor(module) {
|
|
8
|
+
this.module = module;
|
|
9
|
+
this.$b = 'externals';
|
|
10
|
+
this.name = '*';
|
|
11
|
+
this.buckets = {};
|
|
12
|
+
this.jobs = {};
|
|
13
|
+
this.machines = {};
|
|
14
|
+
}
|
|
15
|
+
bucket(ref) {
|
|
16
|
+
this.buckets[ref] = new dependency_1.$Dependency(this.module, 'bucket', ref);
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
job(ref) {
|
|
20
|
+
this.jobs[ref] = new dependency_1.$Dependency(this.module, 'job', ref);
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
machine(ref) {
|
|
24
|
+
this.machines[ref] = new dependency_1.$Dependency(this.module, 'machine', ref);
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
static merge(to, from) {
|
|
28
|
+
Object.assign(to.buckets, from.buckets);
|
|
29
|
+
Object.assign(to.jobs, from.jobs);
|
|
30
|
+
}
|
|
31
|
+
// Build
|
|
32
|
+
static build(node) {
|
|
33
|
+
node.schema = new externals_schema_1.$Externals(node.module, node.builder.buckets, node.builder.jobs, node.builder.machines);
|
|
34
|
+
return node.schema;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.ExternalsBuilder = ExternalsBuilder;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { $Dependency } from "../../../engine/dependency";
|
|
2
|
+
export declare class $Externals {
|
|
3
|
+
name: string;
|
|
4
|
+
buckets: Record<string, $Dependency>;
|
|
5
|
+
jobs: Record<string, $Dependency>;
|
|
6
|
+
machines: Record<string, $Dependency>;
|
|
7
|
+
$t: "externals";
|
|
8
|
+
module: string;
|
|
9
|
+
constructor(name: string, buckets?: Record<string, $Dependency>, jobs?: Record<string, $Dependency>, machines?: Record<string, $Dependency>);
|
|
10
|
+
static merge(to: $Externals, from: $Externals): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.$Externals = void 0;
|
|
4
|
+
class $Externals {
|
|
5
|
+
constructor(name, buckets = {}, jobs = {}, machines = {}) {
|
|
6
|
+
this.name = name;
|
|
7
|
+
this.buckets = buckets;
|
|
8
|
+
this.jobs = jobs;
|
|
9
|
+
this.machines = machines;
|
|
10
|
+
this.$t = 'externals';
|
|
11
|
+
this.module = this.name;
|
|
12
|
+
}
|
|
13
|
+
static merge(to, from) {
|
|
14
|
+
Object.assign(to.buckets, from.buckets);
|
|
15
|
+
Object.assign(to.jobs, from.jobs);
|
|
16
|
+
Object.assign(to.machines, from.machines);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.$Externals = $Externals;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { $Module, $Space } from "../../../../schema";
|
|
2
|
+
import { $Job, $JobAssert, $JobMethod } from '../job.schema';
|
|
3
|
+
import { TrxNode } from "../../../../engine/transaction/trx_node";
|
|
4
|
+
import { BlockBuilder } from '../../block.builder';
|
|
5
|
+
import { $Dependency, ResolvedBuilderNode } from "../../../../engine/dependency";
|
|
6
|
+
import { Overlay } from "../../../../engine/util/type";
|
|
7
|
+
export declare class MachineJobBuilder<Space extends $Space, Module extends $Module, Name extends string, Job extends $Job = $Job, Ctx = {}> extends BlockBuilder<Space, Module, 'job'> {
|
|
8
|
+
protected module: string;
|
|
9
|
+
protected name: Name;
|
|
10
|
+
private alias;
|
|
11
|
+
protected _authn: string[];
|
|
12
|
+
protected _inputMsgs: $Dependency[];
|
|
13
|
+
$b: "job";
|
|
14
|
+
$j: "MachineJob";
|
|
15
|
+
private _extrasAndAsserts;
|
|
16
|
+
private _method?;
|
|
17
|
+
private machine;
|
|
18
|
+
constructor(module: string, name: Name, alias: string, _authn?: string[], _inputMsgs?: $Dependency[]);
|
|
19
|
+
/**
|
|
20
|
+
* A function that will build new fields on the input message to be
|
|
21
|
+
* consumed by the job.
|
|
22
|
+
*
|
|
23
|
+
* @param $ A function which returns an object to be assigned to the input.
|
|
24
|
+
*/
|
|
25
|
+
extra<Extra extends {
|
|
26
|
+
[_: string]: any;
|
|
27
|
+
}, Trx = NoInfer<TrxNode<Space, Module, Job['#authn']>>, Msg = NoInfer<Job['#input']['#parsed']>, PreviousExtras = NoInfer<Job['#extra']>, C = NoInfer<Ctx>>($: $JobMethod<Trx, Msg, Extra, PreviousExtras, C>): MachineJobBuilder<Space, Module, Name, Overlay<Job, {
|
|
28
|
+
"#extra": Job["#extra"] & Extra;
|
|
29
|
+
}>, Ctx>;
|
|
30
|
+
/**
|
|
31
|
+
* A function that checks a given condition over the input and throws an exception;
|
|
32
|
+
* This assertion runs before the job method.
|
|
33
|
+
*
|
|
34
|
+
* @param { cond } A function which returns true or false
|
|
35
|
+
* @param { error } An error message or a function that makes one
|
|
36
|
+
*/
|
|
37
|
+
assert<Trx = NoInfer<TrxNode<Space, Module, Job['#authn']>>, Msg = NoInfer<Job['#input']['#parsed']>, Extras = NoInfer<Job['#extra']>, C = NoInfer<Ctx>>(condition: $JobAssert<Trx, Msg, Extras, Ctx>): this;
|
|
38
|
+
/**
|
|
39
|
+
* The function called when the job is run.
|
|
40
|
+
*
|
|
41
|
+
* @param action A function which returns one of the output messages or the response message
|
|
42
|
+
*/
|
|
43
|
+
method<Trx = NoInfer<TrxNode<Space, Module, Job['#authn']>>, Msg = NoInfer<Job['#input']['#parsed']>, Extras = NoInfer<Job['#extra']>, C = NoInfer<Ctx>>(action: $JobMethod<Trx, Msg, any, Extras, C>): this;
|
|
44
|
+
/** Build */
|
|
45
|
+
static build(node: MachineJobBuilderNode, input: $Dependency[]): $Job;
|
|
46
|
+
}
|
|
47
|
+
export type AnyMachineJobBuilder = MachineJobBuilder<any, any, any, any, any>;
|
|
48
|
+
export type MachineJobDef<S extends $Space, M extends $Module, Name extends string, Job extends $Job, Ctx = {}> = ($: MachineJobBuilder<S, M, Name, Job, Ctx>) => void;
|
|
49
|
+
export type MachineJobBuilderNode = Omit<ResolvedBuilderNode, 'builder'> & {
|
|
50
|
+
builder: AnyMachineJobBuilder;
|
|
51
|
+
schema?: $Job;
|
|
52
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MachineJobBuilder = void 0;
|
|
4
|
+
const job_schema_1 = require("../job.schema");
|
|
5
|
+
const block_builder_1 = require("../../block.builder");
|
|
6
|
+
const error_1 = require("../../../../engine/data/error");
|
|
7
|
+
/*
|
|
8
|
+
Job created inside a machine definition
|
|
9
|
+
*/
|
|
10
|
+
class MachineJobBuilder extends block_builder_1.BlockBuilder {
|
|
11
|
+
constructor(module, name, alias, _authn = [], _inputMsgs = []) {
|
|
12
|
+
super(module, 'job', name);
|
|
13
|
+
this.module = module;
|
|
14
|
+
this.name = name;
|
|
15
|
+
this.alias = alias;
|
|
16
|
+
this._authn = _authn;
|
|
17
|
+
this._inputMsgs = _inputMsgs;
|
|
18
|
+
this.$b = 'job';
|
|
19
|
+
this.$j = 'MachineJob';
|
|
20
|
+
this._extrasAndAsserts = [];
|
|
21
|
+
this.machine = name.split('@')[0];
|
|
22
|
+
}
|
|
23
|
+
/*
|
|
24
|
+
Extra
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* A function that will build new fields on the input message to be
|
|
28
|
+
* consumed by the job.
|
|
29
|
+
*
|
|
30
|
+
* @param $ A function which returns an object to be assigned to the input.
|
|
31
|
+
*/
|
|
32
|
+
extra($) {
|
|
33
|
+
this._extrasAndAsserts.push({ extra: $ });
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
/*
|
|
37
|
+
Assert
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* A function that checks a given condition over the input and throws an exception;
|
|
41
|
+
* This assertion runs before the job method.
|
|
42
|
+
*
|
|
43
|
+
* @param { cond } A function which returns true or false
|
|
44
|
+
* @param { error } An error message or a function that makes one
|
|
45
|
+
*/
|
|
46
|
+
assert(condition) {
|
|
47
|
+
this._extrasAndAsserts.push({ assert: condition });
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
/*
|
|
51
|
+
Action
|
|
52
|
+
*/
|
|
53
|
+
/**
|
|
54
|
+
* The function called when the job is run.
|
|
55
|
+
*
|
|
56
|
+
* @param action A function which returns one of the output messages or the response message
|
|
57
|
+
*/
|
|
58
|
+
method(action) {
|
|
59
|
+
this._method = action;
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
/** Build */
|
|
63
|
+
static build(node, input) {
|
|
64
|
+
if (!node.builder._method) {
|
|
65
|
+
throw error_1.NesoiError.Builder.Job.NoMethod({ job: node.builder.name });
|
|
66
|
+
}
|
|
67
|
+
node.schema = new job_schema_1.$Job(node.builder.module, node.builder.name, node.builder.alias || node.builder.name, node.builder._authn, [...node.builder._inputMsgs, ...input], {}, node.builder._extrasAndAsserts, node.builder._method, {
|
|
68
|
+
module: node.builder.module,
|
|
69
|
+
machine: node.builder.machine
|
|
70
|
+
});
|
|
71
|
+
return node.schema;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.MachineJobBuilder = MachineJobBuilder;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.$MachineJobScope = void 0;
|
|
4
|
+
class $MachineJobScope {
|
|
5
|
+
constructor(module, machine) {
|
|
6
|
+
this.module = module;
|
|
7
|
+
this.machine = machine;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.$MachineJobScope = $MachineJobScope;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { $Module, $Space } from "../../../../schema";
|
|
2
|
+
import { AnyUsers } from "../../../../engine/auth/authn";
|
|
3
|
+
import { $Job, $JobAssert, $JobMethod } from '../job.schema';
|
|
4
|
+
import { MessageTemplateFieldBuilder } from "../../../entities/message/template/message_template_field.builder";
|
|
5
|
+
import { $MessageInfer } from "../../../entities/message/message.infer";
|
|
6
|
+
import { $Message } from "../../../entities/message/message.schema";
|
|
7
|
+
import { MessageTemplateDef } from "../../../entities/message/template/message_template.builder";
|
|
8
|
+
import { TrxNode } from "../../../../engine/transaction/trx_node";
|
|
9
|
+
import { ModuleTree } from "../../../../engine/tree";
|
|
10
|
+
import { BlockBuilder } from '../../block.builder';
|
|
11
|
+
import { ResolvedBuilderNode } from "../../../../engine/dependency";
|
|
12
|
+
import { AnyQuery } from "../../../entities/bucket/query/nql.schema";
|
|
13
|
+
import { $Bucket } from "../../../entities/bucket/bucket.schema";
|
|
14
|
+
import { $BlockOutput } from '../../block.schema';
|
|
15
|
+
export type ResourceAssertions<Bucket extends $Bucket> = {
|
|
16
|
+
'query is empty': AnyQuery<any, any>;
|
|
17
|
+
'has no link': keyof Bucket['graph']['links'];
|
|
18
|
+
};
|
|
19
|
+
export type ResourceAssertionDef<Bucket extends $Bucket> = <T extends keyof ResourceAssertions<Bucket>>(type: T, arg: ResourceAssertions<Bucket>[T]) => boolean;
|
|
20
|
+
export declare class ResourceJobBuilder<Space extends $Space, Module extends $Module, Name extends string, Prepared, Authn extends AnyUsers = {}, Bucket extends $Bucket = never, ImplicitInput = {}, Trigger extends $Message = never, MsgExtras = {}, Ctx = {}, CtxAfter = {}> extends BlockBuilder<Space, Module, 'job'> {
|
|
21
|
+
protected module: string;
|
|
22
|
+
protected name: Name;
|
|
23
|
+
protected bucket: string;
|
|
24
|
+
protected method: 'view' | 'query' | 'create' | 'update' | 'delete';
|
|
25
|
+
private alias;
|
|
26
|
+
private execMethod?;
|
|
27
|
+
protected _authn: string[];
|
|
28
|
+
private implicitFields;
|
|
29
|
+
$b: "job";
|
|
30
|
+
$j: "ResourceJob";
|
|
31
|
+
private resource;
|
|
32
|
+
private _msg;
|
|
33
|
+
private _customInput;
|
|
34
|
+
private _extrasAndAsserts;
|
|
35
|
+
private _prepareMethod;
|
|
36
|
+
private _afterMethod?;
|
|
37
|
+
constructor(module: string, name: Name, bucket: string, method: 'view' | 'query' | 'create' | 'update' | 'delete', alias: string, execMethod?: $JobMethod<any, any, any, any> | undefined, _authn?: string[], implicitFields?: Record<string, [string, any]>);
|
|
38
|
+
/**
|
|
39
|
+
* The input message accepted by the job.
|
|
40
|
+
*
|
|
41
|
+
* @param def A `$ => ({})` definition for a custom trigger message
|
|
42
|
+
*/
|
|
43
|
+
input<Def extends MessageTemplateDef<Space, Module, Name>>(def: Def): ResourceJobBuilder<Space, Module, Name, Prepared, Authn, Bucket, ImplicitInput, $MessageInfer<Name, any, ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
|
|
44
|
+
'': ImplicitInput[K];
|
|
45
|
+
}, any, [never, never], [never, never]>; }, import("../../../entities/message/message.infer").$MessageInputInfer<ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
|
|
46
|
+
'': ImplicitInput[K];
|
|
47
|
+
}, any, [never, never], [never, never]>; }, ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
|
|
48
|
+
'': ImplicitInput[K];
|
|
49
|
+
}, any, [never, never], [never, never]>; } extends infer T ? { [K_1 in keyof T]: (ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
|
|
50
|
+
'': ImplicitInput[K];
|
|
51
|
+
}, any, [never, never], [never, never]>; })[K_1] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
52
|
+
path: `${K_1 & string}${keyof I & string}`;
|
|
53
|
+
data: I[keyof I];
|
|
54
|
+
opt: Opt[0];
|
|
55
|
+
nul: Nul[0];
|
|
56
|
+
} : never; } : never>, import("../../../entities/message/message.infer").$MessageOutputInfer<ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
|
|
57
|
+
'': ImplicitInput[K];
|
|
58
|
+
}, any, [never, never], [never, never]>; }, ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
|
|
59
|
+
'': ImplicitInput[K];
|
|
60
|
+
}, any, [never, never], [never, never]>; } extends infer T_1 ? { [K_2 in keyof T_1]: (ReturnType<Def> & { [K in keyof ImplicitInput]: MessageTemplateFieldBuilder<any, any, any, {
|
|
61
|
+
'': ImplicitInput[K];
|
|
62
|
+
}, any, [never, never], [never, never]>; })[K_2] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
63
|
+
path: `${K_2 & string}${keyof O & string}`;
|
|
64
|
+
data: O[keyof O];
|
|
65
|
+
opt: Opt_1[1];
|
|
66
|
+
nul: Nul_1[1];
|
|
67
|
+
} : never; } : never>>, MsgExtras, Ctx, CtxAfter>;
|
|
68
|
+
/**
|
|
69
|
+
* A function that will build new fields on the input message to be
|
|
70
|
+
* consumed by the job.
|
|
71
|
+
*
|
|
72
|
+
* @param $ A function which returns an object to be assigned to the input.
|
|
73
|
+
*/
|
|
74
|
+
extra<Extra extends {
|
|
75
|
+
[_: string]: any;
|
|
76
|
+
}, Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, PreviousExtras = NoInfer<MsgExtras>, C = NoInfer<Ctx>>($: $JobMethod<Trx, Msg, Extra, PreviousExtras, C>): ResourceJobBuilder<Space, Module, Name, Prepared, Authn, Bucket, ImplicitInput, Trigger, MsgExtras & Extra, Ctx, CtxAfter>;
|
|
77
|
+
/**
|
|
78
|
+
* A function that checks a given condition over the input and throws an exception;
|
|
79
|
+
* This assertion runs before the job method.
|
|
80
|
+
*
|
|
81
|
+
* @param { cond } A function which returns true or false
|
|
82
|
+
* @param { error } An error message or a function that makes one
|
|
83
|
+
*/
|
|
84
|
+
assert<Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<Ctx & {
|
|
85
|
+
that: ResourceAssertionDef<Bucket>;
|
|
86
|
+
}>>(condition: $JobAssert<Trx, Msg, Extras, C>): this;
|
|
87
|
+
/**
|
|
88
|
+
* The function called to prepare the input for the job.
|
|
89
|
+
*
|
|
90
|
+
* @param method A function which returns the required output.
|
|
91
|
+
*/
|
|
92
|
+
prepare<Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<Ctx>>(method: $JobMethod<Trx, Msg, Prepared, Extras, C>): this;
|
|
93
|
+
/**
|
|
94
|
+
* The function called after the input has been processed.
|
|
95
|
+
*
|
|
96
|
+
* @param method A function which returns void.
|
|
97
|
+
*/
|
|
98
|
+
after<Trx = NoInfer<TrxNode<Space, Module, Authn>>, Msg = NoInfer<Trigger['#parsed']>, Extras = NoInfer<MsgExtras>, C = NoInfer<CtxAfter>>(method: $JobMethod<Trx, Msg, void, Extras, C>): this;
|
|
99
|
+
static build(node: ResourceJobBuilderNode, tree: ModuleTree, module: $Module, output: $BlockOutput, defaultTrigger: $Message, idType?: 'string' | 'int' | null): {
|
|
100
|
+
schema: $Job;
|
|
101
|
+
inlineMessages: Record<string, $Message>;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export type AnyResourceJobBuilder = ResourceJobBuilder<any, any, any, any, any, any>;
|
|
105
|
+
export type ResourceJobDef<S extends $Space, M extends $Module, Name extends string, Prepared, Authn extends AnyUsers, Bucket extends $Bucket, DefaultTrigger extends $Message = never, ImplicitInput = {}, Ctx = {}, CtxAfter = {}> = ($: ResourceJobBuilder<S, M, Name, Prepared, Authn, Bucket, ImplicitInput, DefaultTrigger, {}, Ctx, CtxAfter>) => any;
|
|
106
|
+
export type ResourceJobBuilderNode = Omit<ResolvedBuilderNode, 'builder'> & {
|
|
107
|
+
builder: AnyResourceJobBuilder;
|
|
108
|
+
schema?: $Job;
|
|
109
|
+
};
|