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,124 @@
|
|
|
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.PostgresCLI = exports.cmd_migrate_one_up = exports.cmd_migrate_up = exports.cmd_make_migrations = exports.cmd_status = exports.cmd_create_db = exports.cmd_tables = exports.cmd_check = void 0;
|
|
7
|
+
const cli_adapter_1 = require("../../../engine/cli/cli_adapter");
|
|
8
|
+
const database_1 = require("./migrator/database");
|
|
9
|
+
const ui_1 = __importDefault(require("../../../engine/cli/ui"));
|
|
10
|
+
const migrator_1 = require("./migrator");
|
|
11
|
+
const runner_1 = require("./migrator/runner");
|
|
12
|
+
class cmd_check extends cli_adapter_1.CLICommand {
|
|
13
|
+
constructor(provider) {
|
|
14
|
+
super('check', 'check', 'Check if the connection to PostgreSQL is working properly');
|
|
15
|
+
this.provider = provider;
|
|
16
|
+
}
|
|
17
|
+
async run() {
|
|
18
|
+
const res = await database_1.Database.checkConnection(this.provider.sql);
|
|
19
|
+
if (res == true)
|
|
20
|
+
ui_1.default.result('ok', 'Connection to PostgreSQL working.');
|
|
21
|
+
else
|
|
22
|
+
ui_1.default.result('error', 'Connection to PostgreSQL not working.', res);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.cmd_check = cmd_check;
|
|
26
|
+
class cmd_tables extends cli_adapter_1.CLICommand {
|
|
27
|
+
constructor(provider) {
|
|
28
|
+
super('tables', 'tables', 'List the tables present on the database');
|
|
29
|
+
this.provider = provider;
|
|
30
|
+
}
|
|
31
|
+
async run() {
|
|
32
|
+
const res = await database_1.Database.listTables(this.provider.sql);
|
|
33
|
+
ui_1.default.list(res);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.cmd_tables = cmd_tables;
|
|
37
|
+
class cmd_create_db extends cli_adapter_1.CLICommand {
|
|
38
|
+
constructor(provider) {
|
|
39
|
+
super('create db', 'create db( NAME)', 'Create the database used by the application', /(\w*)/, ['name']);
|
|
40
|
+
this.provider = provider;
|
|
41
|
+
}
|
|
42
|
+
async run(_, $) {
|
|
43
|
+
let name = $.name;
|
|
44
|
+
const config = this.provider.config?.connection;
|
|
45
|
+
if (!name) {
|
|
46
|
+
if (!config?.db) {
|
|
47
|
+
ui_1.default.result('error', 'Database name not configured on PostgresConfig used', config);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
name = config.db;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
await database_1.Database.createDatabase(name, config);
|
|
54
|
+
ui_1.default.result('ok', `Database ${name} created`);
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
ui_1.default.result('error', `Failed to create database ${name}`, e);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.cmd_create_db = cmd_create_db;
|
|
62
|
+
class cmd_status extends cli_adapter_1.CLICommand {
|
|
63
|
+
constructor(provider) {
|
|
64
|
+
super('status', 'status', 'Show the status of migrations on the current database');
|
|
65
|
+
this.provider = provider;
|
|
66
|
+
}
|
|
67
|
+
async run(daemon) {
|
|
68
|
+
const migrator = await migrator_1.Migrator.prepare(daemon, this.provider.sql);
|
|
69
|
+
console.log(migrator.status.describe());
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.cmd_status = cmd_status;
|
|
73
|
+
class cmd_make_migrations extends cli_adapter_1.CLICommand {
|
|
74
|
+
constructor(provider) {
|
|
75
|
+
super('make migrations', 'make migrations( TAG)', 'Generate migrations for the bucket(s) using PostgresBucketAdapter', /(\w*)/, ['tag']);
|
|
76
|
+
this.provider = provider;
|
|
77
|
+
}
|
|
78
|
+
async run(daemon, $) {
|
|
79
|
+
// TODO: restrict by tag
|
|
80
|
+
const migrator = await migrator_1.Migrator.prepare(daemon, this.provider.sql);
|
|
81
|
+
const migrations = await migrator.generate();
|
|
82
|
+
for (const migration of migrations) {
|
|
83
|
+
console.log(migration.describe());
|
|
84
|
+
migration.save();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.cmd_make_migrations = cmd_make_migrations;
|
|
89
|
+
class cmd_migrate_up extends cli_adapter_1.CLICommand {
|
|
90
|
+
constructor(provider) {
|
|
91
|
+
super('migrate up', 'migrate up', 'Run ALL the pending migrations up (batch)');
|
|
92
|
+
this.provider = provider;
|
|
93
|
+
}
|
|
94
|
+
async run(daemon) {
|
|
95
|
+
await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'batch');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.cmd_migrate_up = cmd_migrate_up;
|
|
99
|
+
class cmd_migrate_one_up extends cli_adapter_1.CLICommand {
|
|
100
|
+
constructor(provider) {
|
|
101
|
+
super('migrate one up', 'migrate one up', 'Run ONE pending migration up');
|
|
102
|
+
this.provider = provider;
|
|
103
|
+
}
|
|
104
|
+
async run(daemon) {
|
|
105
|
+
await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'one');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.cmd_migrate_one_up = cmd_migrate_one_up;
|
|
109
|
+
class PostgresCLI extends cli_adapter_1.CLIAdapter {
|
|
110
|
+
constructor(provider) {
|
|
111
|
+
super();
|
|
112
|
+
this.provider = provider;
|
|
113
|
+
this.commands = {
|
|
114
|
+
'check': new cmd_check(provider),
|
|
115
|
+
'tables': new cmd_tables(provider),
|
|
116
|
+
'create db': new cmd_create_db(provider),
|
|
117
|
+
'status': new cmd_status(provider),
|
|
118
|
+
'make migrations': new cmd_make_migrations(provider),
|
|
119
|
+
'migrate up': new cmd_migrate_up(provider),
|
|
120
|
+
'migrate one up': new cmd_migrate_one_up(provider),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.PostgresCLI = PostgresCLI;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnyTrxNode } from "../../../engine/transaction/trx_node";
|
|
2
|
+
import { NQLRunner } from "../../../elements/entities/bucket/query/nql_engine";
|
|
3
|
+
import { NQL_Part } from "../../../elements/entities/bucket/query/nql.schema";
|
|
4
|
+
import postgres from 'postgres';
|
|
5
|
+
type Obj = Record<string, any>;
|
|
6
|
+
export declare class PostgresNQLRunner extends NQLRunner {
|
|
7
|
+
protected sql?: postgres.Sql<any>;
|
|
8
|
+
constructor();
|
|
9
|
+
private guard;
|
|
10
|
+
run(trx: AnyTrxNode, part: NQL_Part, params: Obj): Promise<any>;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostgresNQLRunner = void 0;
|
|
4
|
+
const nql_engine_1 = require("../../../elements/entities/bucket/query/nql_engine");
|
|
5
|
+
const trx_1 = require("../../../engine/transaction/trx");
|
|
6
|
+
const postgres_bucket_adapter_1 = require("./postgres.bucket_adapter");
|
|
7
|
+
const log_1 = require("../../../engine/util/log");
|
|
8
|
+
class PostgresNQLRunner extends nql_engine_1.NQLRunner {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
}
|
|
12
|
+
guard(sql) {
|
|
13
|
+
return (template, ...params) => {
|
|
14
|
+
return sql.call(sql, template, ...params).catch(e => {
|
|
15
|
+
log_1.Log.error('bucket', 'postgres', e.toString(), e);
|
|
16
|
+
throw new Error('Database error.');
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async run(trx, part, params) {
|
|
21
|
+
const sql = trx_1.Trx.get(trx, 'sql');
|
|
22
|
+
const tableName = postgres_bucket_adapter_1.PostgresBucketAdapter.getTableName(trx, part.union.meta);
|
|
23
|
+
// console.log(NQL_RuleTree.describe(part.union));
|
|
24
|
+
const _sql = (part) => {
|
|
25
|
+
return this.guard(sql) `SELECT * FROM ${sql(tableName)} WHERE ${sql.unsafe(_union(part.union))}`;
|
|
26
|
+
};
|
|
27
|
+
const _union = (union) => {
|
|
28
|
+
return `(${union.inters.map(i => _inter(i)).join(' OR ')})`;
|
|
29
|
+
};
|
|
30
|
+
const _inter = (inter) => {
|
|
31
|
+
return `(${inter.rules.map(r => (('value' in r) ? _rule(r) : _union(r))).join(' AND ')})`;
|
|
32
|
+
};
|
|
33
|
+
const _rule = (rule) => {
|
|
34
|
+
// Replace '.' of fieldpath with '->' (JSONB compatible)
|
|
35
|
+
// TODO: process '.*'
|
|
36
|
+
const column = rule.fieldpath.replace(/\./g, '->');
|
|
37
|
+
const op = {
|
|
38
|
+
'==': '=',
|
|
39
|
+
'<': '<',
|
|
40
|
+
'>': '>',
|
|
41
|
+
'<=': '<=',
|
|
42
|
+
'>=': '>=',
|
|
43
|
+
'in': 'in',
|
|
44
|
+
'contains': 'like',
|
|
45
|
+
'contains_any': 'like',
|
|
46
|
+
'present': ''
|
|
47
|
+
}[rule.op];
|
|
48
|
+
let value;
|
|
49
|
+
if ('static' in rule.value)
|
|
50
|
+
value = rule.value.static;
|
|
51
|
+
else if ('param' in rule.value)
|
|
52
|
+
value = params[rule.value.param]; // TODO: deal with param[]
|
|
53
|
+
else {
|
|
54
|
+
// TODO: subquery
|
|
55
|
+
throw new Error('Sub-queries not implemented yet.');
|
|
56
|
+
}
|
|
57
|
+
return `${column} ${op} ${value}`;
|
|
58
|
+
};
|
|
59
|
+
// Debug
|
|
60
|
+
// const str = await _sql(part).describe().catch(e => {
|
|
61
|
+
// Log.error('postgres' as any, 'nql', e.query, e);
|
|
62
|
+
// })
|
|
63
|
+
// console.log((str as any).string);
|
|
64
|
+
// End of Debug
|
|
65
|
+
const out = await _sql(part);
|
|
66
|
+
return Object.values(out);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.PostgresNQLRunner = PostgresNQLRunner;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const mock_1 = require("../../../../tools/joaquin/mock");
|
|
4
|
+
const bucket_builder_1 = require("../../../elements/entities/bucket/bucket.builder");
|
|
5
|
+
const log_1 = require("../../../engine/util/log");
|
|
6
|
+
const inline_app_1 = require("../../../engine/apps/inline.app");
|
|
7
|
+
const postgres_bucket_adapter_1 = require("../src/postgres.bucket_adapter");
|
|
8
|
+
const migrator_1 = require("../src/migrator");
|
|
9
|
+
const runner_1 = require("../src/migrator/runner");
|
|
10
|
+
const database_1 = require("../src/migrator/database");
|
|
11
|
+
log_1.Log.level = 'warn';
|
|
12
|
+
// TODO: read this from env
|
|
13
|
+
const PostgresConfig = {
|
|
14
|
+
updatedAtField: 'updated_at',
|
|
15
|
+
connection: {
|
|
16
|
+
host: 'localhost',
|
|
17
|
+
port: 5432,
|
|
18
|
+
user: 'postgres',
|
|
19
|
+
pass: 'postgres',
|
|
20
|
+
db: 'NESOI_TEST',
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
let daemon;
|
|
24
|
+
async function setup() {
|
|
25
|
+
if (daemon) {
|
|
26
|
+
return daemon;
|
|
27
|
+
}
|
|
28
|
+
// Build bucket used for test
|
|
29
|
+
const bucket = new bucket_builder_1.BucketBuilder('MODULE', 'BUCKET')
|
|
30
|
+
.model($ => ({
|
|
31
|
+
id: $.int,
|
|
32
|
+
p_boolean: $.boolean,
|
|
33
|
+
p_date: $.date,
|
|
34
|
+
p_datetime: $.datetime,
|
|
35
|
+
p_decimal: $.decimal(),
|
|
36
|
+
p_enum: $.enum(['a', 'b', 'c']),
|
|
37
|
+
p_int: $.int,
|
|
38
|
+
p_float: $.float,
|
|
39
|
+
p_string: $.string,
|
|
40
|
+
p_obj: $.obj({
|
|
41
|
+
a: $.int,
|
|
42
|
+
b: $.string
|
|
43
|
+
}),
|
|
44
|
+
p_dict: $.dict($.boolean)
|
|
45
|
+
}));
|
|
46
|
+
// Build test app
|
|
47
|
+
const app = new inline_app_1.InlineApp('RUNTIME', [
|
|
48
|
+
bucket
|
|
49
|
+
])
|
|
50
|
+
.provider(postgres_bucket_adapter_1.PostgresProvider.make('pg', PostgresConfig))
|
|
51
|
+
.config.buckets({
|
|
52
|
+
'MODULE': {
|
|
53
|
+
'BUCKET': {
|
|
54
|
+
adapter: ($, { pg }) => new postgres_bucket_adapter_1.PostgresBucketAdapter($, pg, 'nesoi_test_table')
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
.config.trx({
|
|
59
|
+
'MODULE': {
|
|
60
|
+
trx: {
|
|
61
|
+
wrap: postgres_bucket_adapter_1.PostgresProvider.wrap('pg')
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
// Run test daemon
|
|
66
|
+
daemon = await app.daemon();
|
|
67
|
+
// Prepare database using daemon
|
|
68
|
+
// TODO: encapsulate this
|
|
69
|
+
// await Migrator.createDatabase('NESOI_TEST', PostgresConfig, { if_exists: 'delete' });
|
|
70
|
+
const sql = database_1.Database.connect(PostgresConfig.connection);
|
|
71
|
+
const migrator = await migrator_1.Migrator.prepare(daemon, sql);
|
|
72
|
+
const migration = await migrator.generateForBucket('MODULE', 'BUCKET', 'nesoi_test_table');
|
|
73
|
+
if (migration) {
|
|
74
|
+
migration.name = 'postgres.bucket_adapter.test';
|
|
75
|
+
await runner_1.MigrationRunner.oneUp(daemon, sql, migration);
|
|
76
|
+
}
|
|
77
|
+
// migration?.save();
|
|
78
|
+
// await MigrationRunner.up(daemon, 'one', PostgresConfig);
|
|
79
|
+
return daemon;
|
|
80
|
+
}
|
|
81
|
+
const mock = new mock_1.Mock();
|
|
82
|
+
beforeAll(async () => {
|
|
83
|
+
await setup();
|
|
84
|
+
}, 30000);
|
|
85
|
+
describe('Postgres Bucket Adapter', () => {
|
|
86
|
+
// it ('!', () => {
|
|
87
|
+
// expect(1+1).toEqual(2);
|
|
88
|
+
// })
|
|
89
|
+
describe('CRUD', () => {
|
|
90
|
+
it('create should return unmodified object', async () => {
|
|
91
|
+
await daemon.trx('MODULE').run(async (trx) => {
|
|
92
|
+
// given
|
|
93
|
+
const BUCKET = trx.bucket('BUCKET');
|
|
94
|
+
const input = mock.bucket('MODULE', 'BUCKET')
|
|
95
|
+
.obj({ id: undefined }).raw(daemon);
|
|
96
|
+
// when
|
|
97
|
+
const { id, ...obj } = await BUCKET.create(input);
|
|
98
|
+
// then
|
|
99
|
+
expect(id).toBeTruthy();
|
|
100
|
+
expect(obj).toEqual(input);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
it('read should return unmodified object after create', async () => {
|
|
104
|
+
await daemon.trx('MODULE').run(async (trx) => {
|
|
105
|
+
// given
|
|
106
|
+
const BUCKET = trx.bucket('BUCKET');
|
|
107
|
+
const input = mock.bucket('MODULE', 'BUCKET')
|
|
108
|
+
.obj({ id: undefined }).raw(daemon);
|
|
109
|
+
// when
|
|
110
|
+
const created = await BUCKET.create(input);
|
|
111
|
+
const { id, ...obj } = await BUCKET.readOneOrFail(created.id);
|
|
112
|
+
// then
|
|
113
|
+
expect(id).toBeTruthy();
|
|
114
|
+
expect(obj).toEqual(input);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
it('update should modify object after insert', async () => {
|
|
118
|
+
await daemon.trx('MODULE').run(async (trx) => {
|
|
119
|
+
// given
|
|
120
|
+
const BUCKET = trx.bucket('BUCKET');
|
|
121
|
+
const input1 = mock.bucket('MODULE', 'BUCKET')
|
|
122
|
+
.obj({ id: undefined }).raw(daemon);
|
|
123
|
+
const input2 = mock.bucket('MODULE', 'BUCKET')
|
|
124
|
+
.obj({ id: undefined }).raw(daemon);
|
|
125
|
+
// when
|
|
126
|
+
const { id: id_create, ...created } = await BUCKET.create(input1);
|
|
127
|
+
const { id: id_update, ...updated } = await BUCKET.put({
|
|
128
|
+
...input2,
|
|
129
|
+
id: id_create
|
|
130
|
+
});
|
|
131
|
+
// then
|
|
132
|
+
expect(id_create).toBeTruthy();
|
|
133
|
+
expect(id_update).toEqual(id_create);
|
|
134
|
+
expect(created).toEqual(input1);
|
|
135
|
+
expect(updated).toEqual(input2);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
it('delete should remove object from database', async () => {
|
|
139
|
+
await daemon.trx('MODULE').run(async (trx) => {
|
|
140
|
+
// given
|
|
141
|
+
const BUCKET = trx.bucket('BUCKET');
|
|
142
|
+
const input = mock.bucket('MODULE', 'BUCKET')
|
|
143
|
+
.obj({ id: undefined }).raw(daemon);
|
|
144
|
+
// when
|
|
145
|
+
const created = await BUCKET.create(input);
|
|
146
|
+
const read = await BUCKET.readOneOrFail(created.id);
|
|
147
|
+
await BUCKET.deleteOrFail(read.id);
|
|
148
|
+
const read2 = await BUCKET.readOne(read.id);
|
|
149
|
+
// then
|
|
150
|
+
expect(read2).toBeUndefined();
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe('Query', () => {
|
|
155
|
+
it('query first by existing id should return object', async () => {
|
|
156
|
+
let queried;
|
|
157
|
+
await daemon.trx('MODULE').run(async (trx) => {
|
|
158
|
+
// given
|
|
159
|
+
const BUCKET = trx.bucket('BUCKET');
|
|
160
|
+
const input = mock.bucket('MODULE', 'BUCKET')
|
|
161
|
+
.obj({ id: undefined }).raw(daemon);
|
|
162
|
+
// when
|
|
163
|
+
const created = await BUCKET.create(input);
|
|
164
|
+
queried = await BUCKET.query({
|
|
165
|
+
'id': created.id
|
|
166
|
+
}).all();
|
|
167
|
+
// then
|
|
168
|
+
expect(queried.length).toEqual(1);
|
|
169
|
+
expect(queried[0].id).toEqual(created.id);
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
});
|
|
File without changes
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import { Mock } from 'nesoi/tools/papagaio/mock';
|
|
3
|
+
// import { BucketBuilder } from '~/elements/entities/bucket/bucket.builder';
|
|
4
|
+
// import { Log } from '~/engine/util/log'
|
|
5
|
+
// import { InlineApp } from '~/engine/apps/inline.app';
|
|
6
|
+
// import { AnyDaemon } from '~/engine/apps/app';
|
|
7
|
+
// import { PostgresBucketAdapter, PostgresBucketAdapterConfig } from '../src/postgres.bucket_adapter';
|
|
8
|
+
// import { Migrator } from 'nesoi/tools/migrator';
|
|
9
|
+
// import { MigrationRunner } from 'nesoi/tools/migrator/runner';
|
|
10
|
+
// Log.level = 'info';
|
|
11
|
+
// // TODO: read this from env
|
|
12
|
+
// const PostgresConfig: PostgresBucketAdapterConfig = {
|
|
13
|
+
// updatedAtField: 'updated_at',
|
|
14
|
+
// postgres: {
|
|
15
|
+
// host: 'localhost',
|
|
16
|
+
// port: 5432,
|
|
17
|
+
// user: 'postgres',
|
|
18
|
+
// pass: 'postgres',
|
|
19
|
+
// db: 'NESOI_TEST',
|
|
20
|
+
// }
|
|
21
|
+
// }
|
|
22
|
+
// let daemon: AnyDaemon;
|
|
23
|
+
// async function setup() {
|
|
24
|
+
// if (daemon) {
|
|
25
|
+
// return daemon;
|
|
26
|
+
// }
|
|
27
|
+
// // Build buckets used for test
|
|
28
|
+
// const tagBucket = new BucketBuilder('MODULE', 'tag')
|
|
29
|
+
// .model($ => ({
|
|
30
|
+
// id: $.string,
|
|
31
|
+
// scope: $.string
|
|
32
|
+
// }));
|
|
33
|
+
// const colorBucket = new BucketBuilder('MODULE', 'color')
|
|
34
|
+
// .model($ => ({
|
|
35
|
+
// id: $.int,
|
|
36
|
+
// r: $.float,
|
|
37
|
+
// g: $.float,
|
|
38
|
+
// b: $.float,
|
|
39
|
+
// tag: $.string,
|
|
40
|
+
// scope: $.string
|
|
41
|
+
// }));
|
|
42
|
+
// const shapeBucket = new BucketBuilder('MODULE', 'shape')
|
|
43
|
+
// .model($ => ({
|
|
44
|
+
// id: $.int,
|
|
45
|
+
// name: $.string,
|
|
46
|
+
// size: $.float,
|
|
47
|
+
// color_id: $.int,
|
|
48
|
+
// tag: $.string,
|
|
49
|
+
// scope: $.string
|
|
50
|
+
// }));
|
|
51
|
+
// // Build test app
|
|
52
|
+
// const app = new InlineApp('RUNTIME', [
|
|
53
|
+
// tagBucket,
|
|
54
|
+
// colorBucket,
|
|
55
|
+
// shapeBucket
|
|
56
|
+
// ])
|
|
57
|
+
// .config.buckets({
|
|
58
|
+
// 'MODULE': {
|
|
59
|
+
// 'tag': {
|
|
60
|
+
// adapter: $ => new PostgresBucketAdapter($, 'tags', PostgresConfig)
|
|
61
|
+
// },
|
|
62
|
+
// 'color': {
|
|
63
|
+
// adapter: $ => new PostgresBucketAdapter($, 'colors', PostgresConfig)
|
|
64
|
+
// },
|
|
65
|
+
// 'shape': {
|
|
66
|
+
// adapter: $ => new PostgresBucketAdapter($, 'shapes', PostgresConfig)
|
|
67
|
+
// },
|
|
68
|
+
// }
|
|
69
|
+
// })
|
|
70
|
+
// // Run test daemon
|
|
71
|
+
// daemon = await app.daemon();
|
|
72
|
+
// // Prepare database using daemon
|
|
73
|
+
// // TODO: encapsulate this
|
|
74
|
+
// // await Migrator.createDatabase('NESOI_TEST', PostgresConfig, { if_exists: 'delete' });
|
|
75
|
+
// const migrator = await Migrator.prepare(daemon, PostgresConfig);
|
|
76
|
+
// {
|
|
77
|
+
// const migration = await migrator.bucket('MODULE', 'tag', 'tags')
|
|
78
|
+
// if (migration) {
|
|
79
|
+
// migration.name = '0_tag';
|
|
80
|
+
// await MigrationRunner.oneUp(daemon, migration, PostgresConfig);
|
|
81
|
+
// }
|
|
82
|
+
// }
|
|
83
|
+
// {
|
|
84
|
+
// const migration = await migrator.bucket('MODULE', 'color', 'colors')
|
|
85
|
+
// if (migration) {
|
|
86
|
+
// migration.name = '0_color';
|
|
87
|
+
// await MigrationRunner.oneUp(daemon, migration, PostgresConfig);
|
|
88
|
+
// }
|
|
89
|
+
// }
|
|
90
|
+
// {
|
|
91
|
+
// const migration = await migrator.bucket('MODULE', 'shape', 'shapes')
|
|
92
|
+
// if (migration) {
|
|
93
|
+
// migration.name = '0_shape';
|
|
94
|
+
// await MigrationRunner.oneUp(daemon, migration, PostgresConfig);
|
|
95
|
+
// }
|
|
96
|
+
// }
|
|
97
|
+
// // migration?.save();
|
|
98
|
+
// // await MigrationRunner.up(daemon, 'one', PostgresConfig);
|
|
99
|
+
// return daemon;
|
|
100
|
+
// }
|
|
101
|
+
// const mock = new Mock();
|
|
102
|
+
// beforeAll(async () => {
|
|
103
|
+
// await setup();
|
|
104
|
+
// }, 30000)
|
|
105
|
+
// describe('Postgres Bucket Query', () => {
|
|
106
|
+
// describe('CRUD', () => {
|
|
107
|
+
// it('create should return unmodified object', async() => {
|
|
108
|
+
// await daemon.trx('MODULE').run(async trx => {
|
|
109
|
+
// const Tag = trx.bucket('tag');
|
|
110
|
+
// const TagMock = mock.bucket('MODULE', 'tag');
|
|
111
|
+
// const Color = trx.bucket('color');
|
|
112
|
+
// const ColorMock = mock.bucket('MODULE', 'color');
|
|
113
|
+
// const Shape = trx.bucket('shape');
|
|
114
|
+
// const ShapeMock = mock.bucket('MODULE', 'shape');
|
|
115
|
+
// const tags: any[] = [];
|
|
116
|
+
// for (let i=0; i<100; i++) {
|
|
117
|
+
// const obj = TagMock.obj().raw(daemon) as any;
|
|
118
|
+
// (obj as any).scope = 'scope';
|
|
119
|
+
// tags.push(await Tag.put(obj))
|
|
120
|
+
// }
|
|
121
|
+
// for (let i=0; i<100; i++) {
|
|
122
|
+
// const obj = ColorMock.obj().raw(daemon);
|
|
123
|
+
// (obj as any).tag = tags[i].id;
|
|
124
|
+
// (obj as any).scope = 'scope';
|
|
125
|
+
// await Color.create(obj);
|
|
126
|
+
// }
|
|
127
|
+
// for (let i=0; i<100; i++) {
|
|
128
|
+
// const obj = ShapeMock.obj().raw(daemon);
|
|
129
|
+
// (obj as any).tag = tags[i].id;
|
|
130
|
+
// (obj as any).scope = 'scope';
|
|
131
|
+
// await Shape.create(obj);
|
|
132
|
+
// }
|
|
133
|
+
// })
|
|
134
|
+
// })
|
|
135
|
+
// })
|
|
136
|
+
// })
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Compiler } from "../../compiler";
|
|
2
|
+
import { MonolythApp } from "../../../engine/apps/monolyth/monolyth.app";
|
|
3
|
+
export type MonolythCompilerConfig = {
|
|
4
|
+
libPaths?: string[];
|
|
5
|
+
scripts?: Record<string, string>;
|
|
6
|
+
nesoiPath?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class MonolythCompiler {
|
|
9
|
+
compiler: Compiler;
|
|
10
|
+
appPath: string;
|
|
11
|
+
config: MonolythCompilerConfig;
|
|
12
|
+
dirs: {
|
|
13
|
+
build: string;
|
|
14
|
+
build_modules: string;
|
|
15
|
+
build_types: string;
|
|
16
|
+
build_bin: string;
|
|
17
|
+
};
|
|
18
|
+
constructor(compiler: Compiler, appPath: string, config?: MonolythCompilerConfig);
|
|
19
|
+
run(): Promise<void>;
|
|
20
|
+
static scanAll(dir: string): Promise<MonolythApp<any, any, Record<string, any>>[] | undefined>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.MonolythCompiler = void 0;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const space_1 = require("../../../engine/space");
|
|
43
|
+
const console_1 = __importDefault(require("../../../engine/util/console"));
|
|
44
|
+
const _1_mkdir_stage_1 = require("./stages/1_mkdir_stage");
|
|
45
|
+
const _3_copy_types_stage_1 = require("./stages/3_copy_types_stage");
|
|
46
|
+
const _4_dump_modules_stage_1 = require("./stages/4_dump_modules_stage");
|
|
47
|
+
const _5_dump_cli_stage_1 = require("./stages/5_dump_cli_stage");
|
|
48
|
+
const _6_dump_package_json_stage_1 = require("./stages/6_dump_package_json_stage");
|
|
49
|
+
const _2_build_typescript_stage_1 = require("./stages/2_build_typescript_stage");
|
|
50
|
+
const log_1 = require("../../../engine/util/log");
|
|
51
|
+
const app_1 = require("../../../engine/apps/app");
|
|
52
|
+
const monolyth_app_1 = require("../../../engine/apps/monolyth/monolyth.app");
|
|
53
|
+
class MonolythCompiler {
|
|
54
|
+
constructor(compiler, appPath, config = {}) {
|
|
55
|
+
this.compiler = compiler;
|
|
56
|
+
this.appPath = appPath;
|
|
57
|
+
this.config = config;
|
|
58
|
+
this.dirs = {};
|
|
59
|
+
}
|
|
60
|
+
async run() {
|
|
61
|
+
console_1.default.header('Monolyth Compiler');
|
|
62
|
+
log_1.Log.info('compiler', 'monolyth', `Importing the monolyth definition from ${this.appPath}`);
|
|
63
|
+
const appFile = space_1.Space.path(this.compiler.space, this.appPath);
|
|
64
|
+
const app = (await Promise.resolve(`${appFile}`).then(s => __importStar(require(s)))).default;
|
|
65
|
+
this.config = Object.assign({}, app_1.App.getInfo(app).config?.compiler || {}, this.config);
|
|
66
|
+
try {
|
|
67
|
+
await new _1_mkdir_stage_1.MkdirStage(this, app).run();
|
|
68
|
+
await new _2_build_typescript_stage_1.BuildTypescriptStage(this, app).run();
|
|
69
|
+
await new _3_copy_types_stage_1.CopyTypesStage(this, app).run();
|
|
70
|
+
await new _4_dump_modules_stage_1.DumpModulesStage(this, app).run();
|
|
71
|
+
await new _5_dump_cli_stage_1.DumpCLIStage(this, app).run();
|
|
72
|
+
await new _6_dump_package_json_stage_1.DumpPackageJsonStage(this, app).run();
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
log_1.Log.error('compiler', 'monolyth', e.toString(), { stack: e.stack });
|
|
76
|
+
process.exit();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
static async scanAll(dir) {
|
|
80
|
+
const apps = [];
|
|
81
|
+
const nodes = fs.readdirSync(dir, { withFileTypes: true });
|
|
82
|
+
for (const node of nodes) {
|
|
83
|
+
const nodePath = path.resolve(dir, node.name);
|
|
84
|
+
if (!nodePath.endsWith('.ts')) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const exported = (await Promise.resolve(`${nodePath}`).then(s => __importStar(require(s))))?.default;
|
|
88
|
+
if (exported instanceof monolyth_app_1.MonolythApp) {
|
|
89
|
+
apps.push(exported);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return apps;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.MonolythCompiler = MonolythCompiler;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MonolythApp } from "../../../../engine/apps/monolyth/monolyth.app";
|
|
2
|
+
import { MonolythCompiler } from '../monolyth_compiler';
|
|
3
|
+
/**
|
|
4
|
+
* [Monolyth Compiler Stage #1]
|
|
5
|
+
* Create the directory structure
|
|
6
|
+
*/
|
|
7
|
+
export declare class MkdirStage {
|
|
8
|
+
private monolyth;
|
|
9
|
+
private app;
|
|
10
|
+
constructor(monolyth: MonolythCompiler, app: MonolythApp<any, any>);
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
}
|