sonamu 0.8.26 → 0.9.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/bin/cli.js +60 -13
- package/dist/_virtual/rolldown_runtime.js +39 -0
- package/dist/ai/agents/agent.d.ts +3 -3
- package/dist/ai/agents/agent.d.ts.map +1 -1
- package/dist/ai/agents/agent.js +76 -73
- package/dist/ai/agents/index.js +3 -3
- package/dist/ai/agents/types.d.ts +3 -3
- package/dist/ai/agents/types.d.ts.map +1 -1
- package/dist/ai/agents/types.js +1 -3
- package/dist/ai/index.js +3 -2
- package/dist/ai/providers/rtzr/api.js +25 -25
- package/dist/ai/providers/rtzr/error.js +25 -26
- package/dist/ai/providers/rtzr/index.js +5 -5
- package/dist/ai/providers/rtzr/model.d.ts +1 -1
- package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/model.js +117 -133
- package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/options.js +35 -41
- package/dist/ai/providers/rtzr/provider.d.ts +1 -1
- package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/provider.js +53 -51
- package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/utils.js +84 -84
- package/dist/api/base-frame.d.ts +2 -2
- package/dist/api/base-frame.d.ts.map +1 -1
- package/dist/api/base-frame.js +29 -19
- package/dist/api/caster.d.ts +1 -1
- package/dist/api/caster.d.ts.map +1 -1
- package/dist/api/caster.js +51 -61
- package/dist/api/code-converters.d.ts +4 -3
- package/dist/api/code-converters.d.ts.map +1 -1
- package/dist/api/code-converters.js +226 -249
- package/dist/api/config.d.ts +17 -17
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +37 -30
- package/dist/api/context.d.ts +10 -10
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +8 -2
- package/dist/api/decorators.d.ts +8 -8
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +245 -268
- package/dist/api/index.js +39 -7
- package/dist/api/secret.js +22 -15
- package/dist/api/sonamu.d.ts +15 -15
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +1012 -1131
- package/dist/api/validator.js +88 -79
- package/dist/auth/auth-generator.d.ts.map +1 -1
- package/dist/auth/auth-generator.js +203 -200
- package/dist/auth/better-auth-entities.d.ts +2 -2
- package/dist/auth/better-auth-entities.d.ts.map +1 -1
- package/dist/auth/better-auth-entities.js +369 -429
- package/dist/auth/index.js +21 -6
- package/dist/auth/knex-adapter.d.ts +2 -2
- package/dist/auth/knex-adapter.d.ts.map +1 -1
- package/dist/auth/knex-adapter.js +153 -157
- package/dist/auth/plugins/entity-definitions/admin.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/admin.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/admin.js +58 -56
- package/dist/auth/plugins/entity-definitions/anonymous.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/anonymous.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/anonymous.js +20 -20
- package/dist/auth/plugins/entity-definitions/api-key.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/api-key.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/api-key.js +185 -196
- package/dist/auth/plugins/entity-definitions/index.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/index.js +26 -29
- package/dist/auth/plugins/entity-definitions/jwt.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/jwt.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/jwt.js +62 -64
- package/dist/auth/plugins/entity-definitions/organization.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/organization.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/organization.js +362 -421
- package/dist/auth/plugins/entity-definitions/passkey.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/passkey.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/passkey.js +115 -126
- package/dist/auth/plugins/entity-definitions/phone-number.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/phone-number.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/phone-number.js +31 -40
- package/dist/auth/plugins/entity-definitions/sso.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/sso.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/sso.js +94 -107
- package/dist/auth/plugins/entity-definitions/two-factor.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/two-factor.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/two-factor.js +78 -92
- package/dist/auth/plugins/entity-definitions/types.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/types.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/types.js +1 -10
- package/dist/auth/plugins/entity-definitions/username.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/username.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/username.js +31 -40
- package/dist/auth/plugins/index.js +12 -3
- package/dist/auth/plugins/wrappers/admin.d.ts +2 -2
- package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/admin.js +28 -29
- package/dist/auth/plugins/wrappers/anonymous.d.ts +2 -1
- package/dist/auth/plugins/wrappers/anonymous.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/anonymous.js +23 -22
- package/dist/auth/plugins/wrappers/api-key.d.ts +2 -1
- package/dist/auth/plugins/wrappers/api-key.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/api-key.js +39 -34
- package/dist/auth/plugins/wrappers/index.js +11 -11
- package/dist/auth/plugins/wrappers/jwt.d.ts +2 -1
- package/dist/auth/plugins/wrappers/jwt.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/jwt.js +31 -26
- package/dist/auth/plugins/wrappers/organization.d.ts +2 -1
- package/dist/auth/plugins/wrappers/organization.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/organization.js +65 -62
- package/dist/auth/plugins/wrappers/passkey.d.ts +2 -1
- package/dist/auth/plugins/wrappers/passkey.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/passkey.js +33 -28
- package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/phone-number.js +26 -23
- package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/sso.js +37 -31
- package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/two-factor.js +31 -28
- package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/username.js +23 -23
- package/dist/bin/build-config.js +31 -31
- package/dist/bin/cli.js +1063 -1204
- package/dist/bin/fixture.d.ts.map +1 -1
- package/dist/bin/fixture.js +266 -259
- package/dist/bin/hmr-hook-register.d.ts.map +1 -1
- package/dist/bin/hmr-hook-register.js +19 -18
- package/dist/bin/test-command.d.ts.map +1 -1
- package/dist/bin/test-command.js +180 -177
- package/dist/bin/ts-loader-register.js +13 -6
- package/dist/bin/ts-loader-registration.d.ts.map +1 -1
- package/dist/bin/ts-loader-registration.js +28 -38
- package/dist/cache/cache-manager.d.ts +1 -1
- package/dist/cache/cache-manager.d.ts.map +1 -1
- package/dist/cache/cache-manager.js +20 -15
- package/dist/cache/decorator.d.ts +1 -1
- package/dist/cache/decorator.d.ts.map +1 -1
- package/dist/cache/decorator.js +84 -76
- package/dist/cache/drivers.js +21 -34
- package/dist/cache/index.js +10 -7
- package/dist/cache/types.d.ts +2 -2
- package/dist/cache/types.d.ts.map +1 -1
- package/dist/cache/types.js +1 -6
- package/dist/cache-control/cache-control.d.ts +2 -2
- package/dist/cache-control/cache-control.d.ts.map +1 -1
- package/dist/cache-control/cache-control.js +106 -122
- package/dist/cache-control/types.d.ts +2 -2
- package/dist/cache-control/types.d.ts.map +1 -1
- package/dist/cache-control/types.js +1 -19
- package/dist/compress/compress.d.ts +1 -1
- package/dist/compress/compress.d.ts.map +1 -1
- package/dist/compress/compress.js +58 -56
- package/dist/compress/index.js +7 -2
- package/dist/compress/types.js +1 -11
- package/dist/cone/cone-generator.d.ts +1 -1
- package/dist/cone/cone-generator.d.ts.map +1 -1
- package/dist/cone/cone-generator.js +216 -219
- package/dist/database/_batch_update.d.ts +1 -1
- package/dist/database/_batch_update.d.ts.map +1 -1
- package/dist/database/_batch_update.js +107 -102
- package/dist/database/base-model.d.ts +8 -9
- package/dist/database/base-model.d.ts.map +1 -1
- package/dist/database/base-model.js +371 -392
- package/dist/database/base-model.types.d.ts +5 -5
- package/dist/database/base-model.types.d.ts.map +1 -1
- package/dist/database/base-model.types.js +1 -20
- package/dist/database/db.d.ts +5 -2
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +185 -171
- package/dist/database/knex.d.ts +1 -1
- package/dist/database/knex.d.ts.map +1 -1
- package/dist/database/knex.js +48 -42
- package/dist/database/puri-subset.types.d.ts +6 -7
- package/dist/database/puri-subset.types.d.ts.map +1 -1
- package/dist/database/puri-subset.types.js +1 -16
- package/dist/database/puri-wrapper.d.ts +6 -6
- package/dist/database/puri-wrapper.d.ts.map +1 -1
- package/dist/database/puri-wrapper.js +99 -101
- package/dist/database/puri.d.ts +4 -5
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +1021 -1227
- package/dist/database/puri.types.d.ts +6 -6
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +15 -6
- package/dist/database/transaction-context.d.ts +2 -2
- package/dist/database/transaction-context.d.ts.map +1 -1
- package/dist/database/transaction-context.js +22 -13
- package/dist/database/upsert-builder.d.ts +3 -3
- package/dist/database/upsert-builder.d.ts.map +1 -1
- package/dist/database/upsert-builder.js +405 -465
- package/dist/dict/en.js +72 -74
- package/dist/dict/index.js +13 -13
- package/dist/dict/ko.js +72 -74
- package/dist/dict/rc-keys.js +150 -168
- package/dist/dict/sd.d.ts +3 -1
- package/dist/dict/sd.d.ts.map +1 -1
- package/dist/dict/sd.js +54 -40
- package/dist/dict/sonamu-dictionary.d.ts +1 -1
- package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
- package/dist/dict/sonamu-dictionary.js +887 -955
- package/dist/dict/types.js +1 -7
- package/dist/dict/utils.js +26 -24
- package/dist/entity/entity-manager.d.ts +9 -9
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +226 -223
- package/dist/entity/entity-template-cone.d.ts +1 -1
- package/dist/entity/entity-template-cone.d.ts.map +1 -1
- package/dist/entity/entity-template-cone.js +152 -151
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +952 -1089
- package/dist/exceptions/error-handler.d.ts +1 -1
- package/dist/exceptions/error-handler.d.ts.map +1 -1
- package/dist/exceptions/error-handler.js +32 -27
- package/dist/exceptions/so-exceptions.d.ts +1 -1
- package/dist/exceptions/so-exceptions.d.ts.map +1 -1
- package/dist/exceptions/so-exceptions.js +61 -68
- package/dist/filter/index.js +9 -3
- package/dist/filter/types.js +92 -88
- package/dist/filter/utils.d.ts +1 -1
- package/dist/filter/utils.d.ts.map +1 -1
- package/dist/filter/utils.js +147 -161
- package/dist/index.js +87 -40
- package/dist/logger/category.d.ts.map +1 -1
- package/dist/logger/category.js +30 -29
- package/dist/logger/configure.d.ts.map +1 -1
- package/dist/logger/configure.js +83 -107
- package/dist/migration/code-generation.d.ts +2 -2
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +1385 -1578
- package/dist/migration/migration-set.d.ts +1 -1
- package/dist/migration/migration-set.d.ts.map +1 -1
- package/dist/migration/migration-set.js +177 -227
- package/dist/migration/migrator.d.ts +4 -3
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +340 -345
- package/dist/migration/postgresql-schema-reader.d.ts +2 -2
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
- package/dist/migration/postgresql-schema-reader.js +506 -564
- package/dist/migration/slack-confirm.d.ts +2 -2
- package/dist/migration/slack-confirm.d.ts.map +1 -1
- package/dist/migration/slack-confirm.js +205 -193
- package/dist/migration/types.d.ts +2 -2
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/migration/types.js +1 -3
- package/dist/naite/messaging-types.d.ts +1 -0
- package/dist/naite/messaging-types.d.ts.map +1 -1
- package/dist/naite/messaging-types.js +1 -7
- package/dist/naite/naite-reporter.d.ts +2 -2
- package/dist/naite/naite-reporter.d.ts.map +1 -1
- package/dist/naite/naite-reporter.js +127 -120
- package/dist/naite/naite.d.ts +3 -2
- package/dist/naite/naite.d.ts.map +1 -1
- package/dist/naite/naite.js +266 -300
- package/dist/ssr/index.d.ts +2 -2
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +13 -3
- package/dist/ssr/registry.d.ts +1 -1
- package/dist/ssr/registry.d.ts.map +1 -1
- package/dist/ssr/registry.js +45 -37
- package/dist/ssr/renderer.d.ts +4 -4
- package/dist/ssr/renderer.d.ts.map +1 -1
- package/dist/ssr/renderer.js +84 -91
- package/dist/ssr/types.d.ts +2 -2
- package/dist/ssr/types.d.ts.map +1 -1
- package/dist/ssr/types.js +1 -3
- package/dist/storage/base-file.js +54 -41
- package/dist/storage/buffered-file.d.ts +2 -2
- package/dist/storage/buffered-file.d.ts.map +1 -1
- package/dist/storage/buffered-file.js +51 -44
- package/dist/storage/drivers.d.ts +2 -2
- package/dist/storage/drivers.d.ts.map +1 -1
- package/dist/storage/drivers.js +12 -7
- package/dist/storage/index.js +14 -7
- package/dist/storage/s3-driver.d.ts +2 -2
- package/dist/storage/s3-driver.d.ts.map +1 -1
- package/dist/storage/s3-driver.js +52 -48
- package/dist/storage/storage-manager.d.ts +2 -2
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +33 -25
- package/dist/storage/types.d.ts +2 -2
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js +1 -5
- package/dist/storage/uploaded-file.d.ts +1 -1
- package/dist/storage/uploaded-file.d.ts.map +1 -1
- package/dist/storage/uploaded-file.js +45 -35
- package/dist/stream/index.js +7 -2
- package/dist/stream/sse.d.ts +2 -2
- package/dist/stream/sse.d.ts.map +1 -1
- package/dist/stream/sse.js +72 -67
- package/dist/syncer/api-parser.d.ts +1 -1
- package/dist/syncer/api-parser.d.ts.map +1 -1
- package/dist/syncer/api-parser.js +224 -245
- package/dist/syncer/checksum.d.ts +1 -1
- package/dist/syncer/checksum.d.ts.map +1 -1
- package/dist/syncer/checksum.js +86 -72
- package/dist/syncer/code-generator.d.ts +2 -2
- package/dist/syncer/code-generator.d.ts.map +1 -1
- package/dist/syncer/code-generator.js +154 -160
- package/dist/syncer/entity-operations.d.ts +1 -1
- package/dist/syncer/entity-operations.d.ts.map +1 -1
- package/dist/syncer/entity-operations.js +63 -54
- package/dist/syncer/file-patterns.d.ts +1 -1
- package/dist/syncer/file-patterns.d.ts.map +1 -1
- package/dist/syncer/file-patterns.js +38 -38
- package/dist/syncer/index.js +19 -8
- package/dist/syncer/module-loader.d.ts +5 -5
- package/dist/syncer/module-loader.d.ts.map +1 -1
- package/dist/syncer/module-loader.js +83 -78
- package/dist/syncer/syncer-actions.d.ts +2 -2
- package/dist/syncer/syncer-actions.d.ts.map +1 -1
- package/dist/syncer/syncer-actions.js +76 -91
- package/dist/syncer/syncer.d.ts +7 -6
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +426 -492
- package/dist/tasks/decorator.d.ts +3 -3
- package/dist/tasks/decorator.d.ts.map +1 -1
- package/dist/tasks/decorator.js +32 -28
- package/dist/tasks/step-wrapper.d.ts +1 -1
- package/dist/tasks/step-wrapper.d.ts.map +1 -1
- package/dist/tasks/step-wrapper.js +42 -41
- package/dist/tasks/workflow-manager.d.ts +2 -2
- package/dist/tasks/workflow-manager.d.ts.map +1 -1
- package/dist/tasks/workflow-manager.js +192 -221
- package/dist/template/entity-converter.d.ts +1 -1
- package/dist/template/entity-converter.d.ts.map +1 -1
- package/dist/template/entity-converter.js +103 -103
- package/dist/template/helpers.d.ts.map +1 -1
- package/dist/template/helpers.js +163 -163
- package/dist/template/implementations/entity.template.d.ts +1 -1
- package/dist/template/implementations/entity.template.d.ts.map +1 -1
- package/dist/template/implementations/entity.template.js +76 -85
- package/dist/template/implementations/entry-server.template.d.ts +1 -1
- package/dist/template/implementations/entry-server.template.d.ts.map +1 -1
- package/dist/template/implementations/entry-server.template.js +32 -27
- package/dist/template/implementations/generated.template.d.ts +1 -1
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +254 -275
- package/dist/template/implementations/generated_http.template.d.ts +2 -2
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_http.template.js +114 -133
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.js +249 -275
- package/dist/template/implementations/init_types.template.d.ts +1 -1
- package/dist/template/implementations/init_types.template.d.ts.map +1 -1
- package/dist/template/implementations/init_types.template.js +40 -34
- package/dist/template/implementations/model.template.d.ts +1 -1
- package/dist/template/implementations/model.template.d.ts.map +1 -1
- package/dist/template/implementations/model.template.js +56 -53
- package/dist/template/implementations/model_test.template.d.ts +1 -1
- package/dist/template/implementations/model_test.template.d.ts.map +1 -1
- package/dist/template/implementations/model_test.template.js +32 -24
- package/dist/template/implementations/queries.template.d.ts +1 -1
- package/dist/template/implementations/queries.template.d.ts.map +1 -1
- package/dist/template/implementations/queries.template.js +84 -89
- package/dist/template/implementations/sd.template.d.ts +1 -1
- package/dist/template/implementations/sd.template.d.ts.map +1 -1
- package/dist/template/implementations/sd.template.js +137 -144
- package/dist/template/implementations/services.template.d.ts +1 -1
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/services.template.js +164 -189
- package/dist/template/implementations/view_form.template.d.ts +1 -1
- package/dist/template/implementations/view_form.template.d.ts.map +1 -1
- package/dist/template/implementations/view_form.template.js +258 -285
- package/dist/template/implementations/view_id_all_select.template.d.ts +1 -1
- package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -1
- package/dist/template/implementations/view_id_all_select.template.js +31 -25
- package/dist/template/implementations/view_list.template.d.ts +1 -1
- package/dist/template/implementations/view_list.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list.template.js +304 -355
- package/dist/template/implementations/view_search_input.template.d.ts +1 -1
- package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
- package/dist/template/implementations/view_search_input.template.js +31 -27
- package/dist/template/index.js +21 -7
- package/dist/template/template-manager.d.ts +1 -1
- package/dist/template/template-manager.d.ts.map +1 -1
- package/dist/template/template-manager.js +132 -123
- package/dist/template/template-types.js +8 -6
- package/dist/template/template.d.ts +2 -2
- package/dist/template/template.d.ts.map +1 -1
- package/dist/template/template.js +73 -68
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +603 -657
- package/dist/testing/_relation-graph.d.ts +1 -1
- package/dist/testing/_relation-graph.d.ts.map +1 -1
- package/dist/testing/_relation-graph.js +93 -88
- package/dist/testing/bootstrap.d.ts +22 -13
- package/dist/testing/bootstrap.d.ts.map +1 -1
- package/dist/testing/bootstrap.js +114 -114
- package/dist/testing/data-explorer.d.ts +3 -3
- package/dist/testing/data-explorer.d.ts.map +1 -1
- package/dist/testing/data-explorer.js +237 -265
- package/dist/testing/dev-test-routes.d.ts +2 -2
- package/dist/testing/dev-test-routes.d.ts.map +1 -1
- package/dist/testing/dev-test-routes.js +258 -249
- package/dist/testing/dev-vitest-manager.d.ts +1 -1
- package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
- package/dist/testing/dev-vitest-manager.js +514 -539
- package/dist/testing/faker-mappings.js +422 -420
- package/dist/testing/fixture-generator.d.ts +3 -3
- package/dist/testing/fixture-generator.d.ts.map +1 -1
- package/dist/testing/fixture-generator.js +1216 -1346
- package/dist/testing/fixture-loader.js +26 -25
- package/dist/testing/fixture-manager.d.ts +3 -3
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +706 -776
- package/dist/testing/global-setup.js +53 -49
- package/dist/testing/index.js +19 -11
- package/dist/testing/naite-vitest-reporter.js +18 -13
- package/dist/testing/parallel-db-manager.d.ts +1 -1
- package/dist/testing/parallel-db-manager.d.ts.map +1 -1
- package/dist/testing/parallel-db-manager.js +63 -78
- package/dist/testing/vitest-helpers.d.ts +1 -1
- package/dist/testing/vitest-helpers.d.ts.map +1 -1
- package/dist/testing/vitest-helpers.js +37 -33
- package/dist/types/types.d.ts +28 -28
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +764 -890
- package/dist/ui/ai-api.d.ts +1 -1
- package/dist/ui/ai-api.d.ts.map +1 -1
- package/dist/ui/ai-api.js +52 -42
- package/dist/ui/ai-client.d.ts +1 -2
- package/dist/ui/ai-client.d.ts.map +1 -1
- package/dist/ui/ai-client.js +353 -388
- package/dist/ui/api.d.ts +1 -1
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +903 -1145
- package/dist/ui/cdd-service.d.ts +1 -1
- package/dist/ui/cdd-service.d.ts.map +1 -1
- package/dist/ui/cdd-service.js +406 -407
- package/dist/ui/cdd-types.js +1 -3
- package/dist/ui-web/assets/index-C-Zz-wYg.css +1 -0
- package/dist/ui-web/assets/index-DejDON8K.js +238 -0
- package/dist/ui-web/index.html +3 -3
- package/dist/utils/async-utils.js +57 -45
- package/dist/utils/console-util.d.ts.map +1 -1
- package/dist/utils/console-util.js +104 -87
- package/dist/utils/controller.js +26 -19
- package/dist/utils/esm-utils.js +49 -38
- package/dist/utils/formatter.d.ts +1 -2
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +89 -115
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +68 -65
- package/dist/utils/lodash-able.js +11 -4
- package/dist/utils/model.d.ts +1 -1
- package/dist/utils/model.d.ts.map +1 -1
- package/dist/utils/model.js +21 -19
- package/dist/utils/object-utils.js +148 -186
- package/dist/utils/path-utils.js +67 -57
- package/dist/utils/process-utils.d.ts.map +1 -1
- package/dist/utils/process-utils.js +37 -31
- package/dist/utils/sql-parser.d.ts +1 -1
- package/dist/utils/sql-parser.d.ts.map +1 -1
- package/dist/utils/sql-parser.js +40 -40
- package/dist/utils/type-utils.js +44 -43
- package/dist/utils/utils.d.ts +2 -3
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +81 -93
- package/dist/utils/zod-error.d.ts +1 -1
- package/dist/utils/zod-error.d.ts.map +1 -1
- package/dist/utils/zod-error.js +24 -17
- package/dist/vector/chunking.d.ts +1 -1
- package/dist/vector/chunking.d.ts.map +1 -1
- package/dist/vector/chunking.js +100 -94
- package/dist/vector/config.d.ts +1 -1
- package/dist/vector/config.d.ts.map +1 -1
- package/dist/vector/config.js +76 -78
- package/dist/vector/embedding.d.ts +1 -1
- package/dist/vector/embedding.d.ts.map +1 -1
- package/dist/vector/embedding.js +128 -125
- package/dist/vector/index.js +5 -5
- package/dist/vector/types.js +1 -5
- package/package.json +31 -36
- package/src/ai/agents/agent.ts +12 -5
- package/src/ai/agents/types.ts +5 -5
- package/src/ai/providers/rtzr/model.ts +8 -10
- package/src/ai/providers/rtzr/options.ts +2 -1
- package/src/ai/providers/rtzr/provider.ts +5 -3
- package/src/ai/providers/rtzr/utils.ts +2 -7
- package/src/api/__tests__/config.test.ts +15 -8
- package/src/api/base-frame.ts +5 -3
- package/src/api/caster.ts +7 -6
- package/src/api/code-converters.ts +23 -26
- package/src/api/config.ts +23 -17
- package/src/api/context.ts +18 -11
- package/src/api/decorators.ts +17 -18
- package/src/api/sonamu.ts +44 -49
- package/src/auth/auth-generator.ts +4 -6
- package/src/auth/better-auth-entities.ts +3 -2
- package/src/auth/knex-adapter.ts +6 -5
- package/src/auth/plugins/entity-definitions/admin.ts +1 -1
- package/src/auth/plugins/entity-definitions/anonymous.ts +1 -1
- package/src/auth/plugins/entity-definitions/api-key.ts +1 -1
- package/src/auth/plugins/entity-definitions/index.ts +1 -1
- package/src/auth/plugins/entity-definitions/jwt.ts +1 -1
- package/src/auth/plugins/entity-definitions/organization.ts +1 -1
- package/src/auth/plugins/entity-definitions/passkey.ts +1 -1
- package/src/auth/plugins/entity-definitions/phone-number.ts +1 -1
- package/src/auth/plugins/entity-definitions/sso.ts +1 -1
- package/src/auth/plugins/entity-definitions/two-factor.ts +1 -1
- package/src/auth/plugins/entity-definitions/types.ts +1 -1
- package/src/auth/plugins/entity-definitions/username.ts +1 -1
- package/src/auth/plugins/wrappers/admin.ts +3 -1
- package/src/auth/plugins/wrappers/anonymous.ts +3 -1
- package/src/auth/plugins/wrappers/api-key.ts +3 -1
- package/src/auth/plugins/wrappers/jwt.ts +3 -1
- package/src/auth/plugins/wrappers/organization.ts +3 -1
- package/src/auth/plugins/wrappers/passkey.ts +3 -1
- package/src/auth/plugins/wrappers/phone-number.ts +3 -1
- package/src/auth/plugins/wrappers/sso.ts +2 -1
- package/src/auth/plugins/wrappers/two-factor.ts +3 -1
- package/src/auth/plugins/wrappers/username.ts +3 -1
- package/src/bin/__tests__/ts-loader-register.test.ts +7 -12
- package/src/bin/build-config.ts +3 -3
- package/src/bin/cli.ts +27 -25
- package/src/bin/fixture.ts +4 -2
- package/src/bin/hmr-hook-register.ts +1 -0
- package/src/bin/test-command.ts +4 -2
- package/src/bin/ts-loader-registration.ts +6 -22
- package/src/cache/cache-manager.ts +2 -1
- package/src/cache/decorator.ts +2 -2
- package/src/cache/types.ts +3 -3
- package/src/cache-control/cache-control.ts +3 -2
- package/src/cache-control/types.ts +2 -2
- package/src/compress/compress.ts +1 -1
- package/src/cone/cone-generator.ts +5 -3
- package/src/database/_batch_update.ts +1 -1
- package/src/database/base-model.ts +20 -14
- package/src/database/base-model.types.ts +12 -11
- package/src/database/db.ts +56 -21
- package/src/database/knex.ts +2 -2
- package/src/database/puri-subset.test-d.ts +33 -32
- package/src/database/puri-subset.types.ts +6 -7
- package/src/database/puri-wrapper.ts +29 -26
- package/src/database/puri.ts +36 -34
- package/src/database/puri.types.test-d.ts +6 -5
- package/src/database/puri.types.ts +9 -12
- package/src/database/transaction-context.ts +2 -2
- package/src/database/upsert-builder.ts +17 -10
- package/src/dict/sd.ts +17 -4
- package/src/dict/sonamu-dictionary.ts +23 -17
- package/src/entity/entity-manager.ts +9 -7
- package/src/entity/entity-template-cone.ts +10 -3
- package/src/entity/entity.ts +20 -16
- package/src/exceptions/error-handler.ts +2 -1
- package/src/exceptions/so-exceptions.ts +1 -1
- package/src/filter/utils.ts +3 -2
- package/src/logger/category.ts +1 -0
- package/src/logger/configure.ts +5 -5
- package/src/migration/__tests__/code-generation.search-text.test.ts +2 -3
- package/src/migration/code-generation.ts +26 -25
- package/src/migration/migration-set.ts +16 -18
- package/src/migration/migrator.ts +38 -33
- package/src/migration/postgresql-schema-reader.ts +12 -12
- package/src/migration/slack-confirm.ts +5 -4
- package/src/migration/types.ts +2 -2
- package/src/naite/messaging-types.ts +1 -1
- package/src/naite/naite-reporter.ts +5 -3
- package/src/naite/naite.ts +12 -7
- package/src/shared/app.shared.ts.txt +2 -2
- package/src/shared/web.shared.ts.txt +2 -2
- package/src/skills/AGENTS.md +19 -18
- package/src/skills/commands/sonamu-skills.md +9 -9
- package/src/skills/sonamu/SKILL.md +111 -104
- package/src/skills/sonamu/ai-agents.md +27 -26
- package/src/skills/sonamu/api.md +81 -69
- package/src/skills/sonamu/auth-migration.md +13 -27
- package/src/skills/sonamu/auth-plugins.md +41 -31
- package/src/skills/sonamu/auth.md +30 -24
- package/src/skills/sonamu/cdd.md +26 -17
- package/src/skills/sonamu/cone.md +50 -50
- package/src/skills/sonamu/config.md +74 -51
- package/src/skills/sonamu/create-sonamu.md +31 -19
- package/src/skills/sonamu/database.md +43 -26
- package/src/skills/sonamu/entity-basic.md +61 -61
- package/src/skills/sonamu/entity-relations.md +84 -80
- package/src/skills/sonamu/entity-validation-checklist.md +19 -15
- package/src/skills/sonamu/fixture-cli.md +52 -30
- package/src/skills/sonamu/framework-change.md +9 -7
- package/src/skills/sonamu/frontend.md +64 -82
- package/src/skills/sonamu/i18n.md +45 -37
- package/src/skills/sonamu/migration.md +54 -31
- package/src/skills/sonamu/model.md +98 -66
- package/src/skills/sonamu/naite.md +34 -32
- package/src/skills/sonamu/project-init.md +28 -8
- package/src/skills/sonamu/puri.md +82 -91
- package/src/skills/sonamu/scaffolding.md +44 -32
- package/src/skills/sonamu/skill-contribution.md +50 -45
- package/src/skills/sonamu/subset.md +13 -13
- package/src/skills/sonamu/tasks.md +73 -58
- package/src/skills/sonamu/testing-devrunner.md +56 -36
- package/src/skills/sonamu/testing.md +23 -58
- package/src/skills/sonamu/upsert.md +32 -31
- package/src/skills/sonamu/vector.md +37 -36
- package/src/ssr/index.ts +2 -12
- package/src/ssr/registry.ts +1 -1
- package/src/ssr/renderer.ts +7 -5
- package/src/ssr/types.ts +2 -2
- package/src/storage/buffered-file.ts +4 -2
- package/src/storage/drivers.ts +3 -2
- package/src/storage/s3-driver.ts +7 -4
- package/src/storage/storage-manager.ts +3 -2
- package/src/storage/types.ts +3 -2
- package/src/storage/uploaded-file.ts +1 -1
- package/src/stream/sse.ts +2 -2
- package/src/syncer/api-parser.ts +8 -5
- package/src/syncer/checksum.ts +9 -5
- package/src/syncer/code-generator.ts +16 -8
- package/src/syncer/entity-operations.ts +5 -3
- package/src/syncer/file-patterns.ts +2 -1
- package/src/syncer/module-loader.ts +9 -6
- package/src/syncer/syncer-actions.ts +5 -3
- package/src/syncer/syncer.ts +18 -24
- package/src/tasks/decorator.ts +10 -8
- package/src/tasks/step-wrapper.ts +1 -1
- package/src/tasks/workflow-manager.ts +18 -15
- package/src/template/__tests__/generated.template.search-text.test.ts +1 -0
- package/src/template/entity-converter.ts +4 -2
- package/src/template/generated.template.test-d.ts +2 -1
- package/src/template/helpers.ts +5 -2
- package/src/template/implementations/entity.template.ts +9 -8
- package/src/template/implementations/entry-server.template.ts +1 -1
- package/src/template/implementations/generated.template.ts +21 -29
- package/src/template/implementations/generated_http.template.ts +9 -6
- package/src/template/implementations/generated_sso.template.ts +6 -4
- package/src/template/implementations/init_types.template.ts +3 -2
- package/src/template/implementations/model.template.ts +4 -2
- package/src/template/implementations/model_test.template.ts +3 -2
- package/src/template/implementations/queries.template.ts +6 -14
- package/src/template/implementations/sd.template.ts +4 -2
- package/src/template/implementations/services.template.ts +7 -11
- package/src/template/implementations/view_form.template.ts +5 -3
- package/src/template/implementations/view_id_all_select.template.ts +3 -2
- package/src/template/implementations/view_list.template.ts +7 -5
- package/src/template/implementations/view_search_input.template.ts +3 -2
- package/src/template/template-manager.ts +4 -3
- package/src/template/template.ts +4 -3
- package/src/template/zod-converter.ts +10 -7
- package/src/testing/__tests__/dev-test-routes.test.ts +3 -2
- package/src/testing/__tests__/dev-vitest-manager.test.ts +1 -0
- package/src/testing/_relation-graph.ts +2 -2
- package/src/testing/bootstrap.ts +55 -27
- package/src/testing/data-explorer.ts +5 -4
- package/src/testing/dev-test-routes.ts +8 -5
- package/src/testing/dev-vitest-manager.ts +13 -12
- package/src/testing/fixture-generator.ts +11 -17
- package/src/testing/fixture-manager.ts +21 -17
- package/src/testing/parallel-db-manager.ts +2 -1
- package/src/testing/vitest-helpers.ts +2 -1
- package/src/types/__tests__/entity-json-schema-search-text.test.ts +1 -0
- package/src/types/types.ts +8 -8
- package/src/typings/knex.d.ts +4 -4
- package/src/ui/ai-api.ts +5 -3
- package/src/ui/ai-client.ts +6 -5
- package/src/ui/api.ts +25 -23
- package/src/ui/cdd-service.ts +12 -11
- package/src/utils/console-util.ts +3 -1
- package/src/utils/formatter.ts +94 -102
- package/src/utils/fs-utils.ts +2 -1
- package/src/utils/model.ts +2 -2
- package/src/utils/object-utils.ts +3 -3
- package/src/utils/process-utils.ts +2 -1
- package/src/utils/sql-parser.ts +10 -1
- package/src/utils/type-utils.ts +3 -3
- package/src/utils/utils.ts +9 -7
- package/src/utils/zod-error.ts +1 -1
- package/src/vector/chunking.ts +1 -1
- package/src/vector/config.ts +1 -1
- package/src/vector/embedding.ts +11 -9
- package/tsdown.api.config.ts +50 -0
- package/.swcrc.project-default +0 -18
- package/dist/api/__tests__/config.test.js +0 -189
- package/dist/bin/__tests__/test-command.test.js +0 -112
- package/dist/bin/__tests__/ts-loader-register.test.js +0 -45
- package/dist/database/puri-subset.test-d.js +0 -89
- package/dist/database/puri.types.test-d.js +0 -129
- package/dist/migration/__tests__/code-generation.search-text.test.js +0 -435
- package/dist/template/__tests__/generated.template.search-text.test.js +0 -99
- package/dist/template/generated.template.test-d.js +0 -24
- package/dist/testing/__tests__/dev-test-routes.test.js +0 -144
- package/dist/testing/__tests__/dev-vitest-manager.test.js +0 -152
- package/dist/types/__tests__/entity-json-schema-search-text.test.js +0 -256
- package/dist/typings/knex.d.js +0 -3
- package/dist/ui-web/assets/index-CKo0Z2Iu.css +0 -1
- package/dist/ui-web/assets/index-DK-2aacv.js +0 -257
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_relation-graph.d.ts","sourceRoot":"","sources":["../../src/testing/_relation-graph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"_relation-graph.d.ts","sourceRoot":"","sources":["../../src/testing/_relation-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,gBAAgB,CAAC;AASvE,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAwC;IAErD,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IA+C3C,iBAAiB,IAAI,MAAM,EAAE;CAyD9B"}
|
|
@@ -1,89 +1,94 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isBelongsToOneRelationProp, isManyToManyRelationProp, isOneToOneRelationProp, isRelationProp } from "../types/types.js";
|
|
3
|
-
|
|
4
|
-
export class RelationGraph {
|
|
5
|
-
graph = new Map();
|
|
6
|
-
buildGraph(fixtures) {
|
|
7
|
-
this.graph.clear();
|
|
8
|
-
// 1. 노드 추가
|
|
9
|
-
for (const fixture of fixtures){
|
|
10
|
-
this.graph.set(fixture.fixtureId, {
|
|
11
|
-
fixtureId: fixture.fixtureId,
|
|
12
|
-
entityId: fixture.entityId,
|
|
13
|
-
related: new Set()
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
// 2. 의존성 추가
|
|
17
|
-
for (const fixture of fixtures){
|
|
18
|
-
const node = this.graph.get(fixture.fixtureId);
|
|
19
|
-
if (node === undefined) {
|
|
20
|
-
throw new Error(`Node not found for fixture ${fixture.fixtureId}`);
|
|
21
|
-
}
|
|
22
|
-
for (const [, column] of Object.entries(fixture.columns)){
|
|
23
|
-
const prop = column.prop;
|
|
24
|
-
if (isRelationProp(prop)) {
|
|
25
|
-
if (isBelongsToOneRelationProp(prop) || isOneToOneRelationProp(prop) && prop.hasJoinColumn) {
|
|
26
|
-
const relatedFixtureId = `${prop.with}#${column.value}`;
|
|
27
|
-
if (this.graph.has(relatedFixtureId)) {
|
|
28
|
-
node.related.add(relatedFixtureId);
|
|
29
|
-
}
|
|
30
|
-
} else if (isManyToManyRelationProp(prop)) {
|
|
31
|
-
// ManyToMany 관계의 경우 양방향 의존성 추가
|
|
32
|
-
const relatedIds = column.value;
|
|
33
|
-
for (const relatedId of relatedIds){
|
|
34
|
-
const relatedFixtureId = `${prop.with}#${relatedId}`;
|
|
35
|
-
if (this.graph.has(relatedFixtureId)) {
|
|
36
|
-
node.related.add(relatedFixtureId);
|
|
37
|
-
this.graph.get(relatedFixtureId)?.related.add(fixture.fixtureId);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
getInsertionOrder() {
|
|
46
|
-
const visited = new Set();
|
|
47
|
-
const order = [];
|
|
48
|
-
const tempVisited = new Set();
|
|
49
|
-
const visit = (fixtureId)=>{
|
|
50
|
-
if (visited.has(fixtureId)) return;
|
|
51
|
-
if (tempVisited.has(fixtureId)) {
|
|
52
|
-
console.warn(`Circular dependency detected involving: ${fixtureId}`);
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
tempVisited.add(fixtureId);
|
|
56
|
-
const node = this.graph.get(fixtureId);
|
|
57
|
-
if (node === undefined) {
|
|
58
|
-
throw new Error(`Node not found for fixture ${fixtureId}`);
|
|
59
|
-
}
|
|
60
|
-
const entity = EntityManager.get(node.entityId);
|
|
61
|
-
for (const depId of node.related){
|
|
62
|
-
const depNode = this.graph.get(depId);
|
|
63
|
-
if (depNode === undefined) {
|
|
64
|
-
throw new Error(`Node not found for fixture ${depId}`);
|
|
65
|
-
}
|
|
66
|
-
// BelongsToOne 관계이면서 nullable이 아닌 경우 먼저 방문
|
|
67
|
-
const relationProp = entity.props.find((prop)=>isRelationProp(prop) && (isBelongsToOneRelationProp(prop) || isOneToOneRelationProp(prop) && prop.hasJoinColumn) && prop.with === depNode.entityId);
|
|
68
|
-
if (relationProp && !relationProp.nullable) {
|
|
69
|
-
visit(depId);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
tempVisited.delete(fixtureId);
|
|
73
|
-
visited.add(fixtureId);
|
|
74
|
-
order.push(fixtureId);
|
|
75
|
-
};
|
|
76
|
-
for (const fixtureId of this.graph.keys()){
|
|
77
|
-
visit(fixtureId);
|
|
78
|
-
}
|
|
79
|
-
// circular dependency로 인해 방문되지 않은 fixtureId 추가
|
|
80
|
-
for (const fixtureId of this.graph.keys()){
|
|
81
|
-
if (!visited.has(fixtureId)) {
|
|
82
|
-
order.push(fixtureId);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return order;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
1
|
+
import { __esmMin } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { init_types, isBelongsToOneRelationProp, isManyToManyRelationProp, isOneToOneRelationProp, isRelationProp } from "../types/types.js";
|
|
3
|
+
import { EntityManager, init_entity_manager } from "../entity/entity-manager.js";
|
|
88
4
|
|
|
89
|
-
//#
|
|
5
|
+
//#region src/testing/_relation-graph.ts
|
|
6
|
+
var RelationGraph;
|
|
7
|
+
var init__relation_graph = __esmMin((() => {
|
|
8
|
+
init_entity_manager();
|
|
9
|
+
init_types();
|
|
10
|
+
RelationGraph = class {
|
|
11
|
+
graph = new Map();
|
|
12
|
+
buildGraph(fixtures) {
|
|
13
|
+
this.graph.clear();
|
|
14
|
+
for (const fixture of fixtures) {
|
|
15
|
+
this.graph.set(fixture.fixtureId, {
|
|
16
|
+
fixtureId: fixture.fixtureId,
|
|
17
|
+
entityId: fixture.entityId,
|
|
18
|
+
related: new Set()
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
for (const fixture of fixtures) {
|
|
22
|
+
const node = this.graph.get(fixture.fixtureId);
|
|
23
|
+
if (node === undefined) {
|
|
24
|
+
throw new Error(`Node not found for fixture ${fixture.fixtureId}`);
|
|
25
|
+
}
|
|
26
|
+
for (const [, column] of Object.entries(fixture.columns)) {
|
|
27
|
+
const prop = column.prop;
|
|
28
|
+
if (isRelationProp(prop)) {
|
|
29
|
+
if (isBelongsToOneRelationProp(prop) || isOneToOneRelationProp(prop) && prop.hasJoinColumn) {
|
|
30
|
+
const relatedFixtureId = `${prop.with}#${column.value}`;
|
|
31
|
+
if (this.graph.has(relatedFixtureId)) {
|
|
32
|
+
node.related.add(relatedFixtureId);
|
|
33
|
+
}
|
|
34
|
+
} else if (isManyToManyRelationProp(prop)) {
|
|
35
|
+
const relatedIds = column.value;
|
|
36
|
+
for (const relatedId of relatedIds) {
|
|
37
|
+
const relatedFixtureId = `${prop.with}#${relatedId}`;
|
|
38
|
+
if (this.graph.has(relatedFixtureId)) {
|
|
39
|
+
node.related.add(relatedFixtureId);
|
|
40
|
+
this.graph.get(relatedFixtureId)?.related.add(fixture.fixtureId);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
getInsertionOrder() {
|
|
49
|
+
const visited = new Set();
|
|
50
|
+
const order = [];
|
|
51
|
+
const tempVisited = new Set();
|
|
52
|
+
const visit = (fixtureId) => {
|
|
53
|
+
if (visited.has(fixtureId)) return;
|
|
54
|
+
if (tempVisited.has(fixtureId)) {
|
|
55
|
+
console.warn(`Circular dependency detected involving: ${fixtureId}`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
tempVisited.add(fixtureId);
|
|
59
|
+
const node = this.graph.get(fixtureId);
|
|
60
|
+
if (node === undefined) {
|
|
61
|
+
throw new Error(`Node not found for fixture ${fixtureId}`);
|
|
62
|
+
}
|
|
63
|
+
const entity = EntityManager.get(node.entityId);
|
|
64
|
+
for (const depId of node.related) {
|
|
65
|
+
const depNode = this.graph.get(depId);
|
|
66
|
+
if (depNode === undefined) {
|
|
67
|
+
throw new Error(`Node not found for fixture ${depId}`);
|
|
68
|
+
}
|
|
69
|
+
const relationProp = entity.props.find((prop) => isRelationProp(prop) && (isBelongsToOneRelationProp(prop) || isOneToOneRelationProp(prop) && prop.hasJoinColumn) && prop.with === depNode.entityId);
|
|
70
|
+
if (relationProp && !relationProp.nullable) {
|
|
71
|
+
visit(depId);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
tempVisited.delete(fixtureId);
|
|
75
|
+
visited.add(fixtureId);
|
|
76
|
+
order.push(fixtureId);
|
|
77
|
+
};
|
|
78
|
+
for (const fixtureId of this.graph.keys()) {
|
|
79
|
+
visit(fixtureId);
|
|
80
|
+
}
|
|
81
|
+
for (const fixtureId of this.graph.keys()) {
|
|
82
|
+
if (!visited.has(fixtureId)) {
|
|
83
|
+
order.push(fixtureId);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return order;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}));
|
|
90
|
+
|
|
91
|
+
//#endregion
|
|
92
|
+
init__relation_graph();
|
|
93
|
+
export { RelationGraph, init__relation_graph };
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX3JlbGF0aW9uLWdyYXBoLmpzIiwibmFtZXMiOlsib3JkZXI6IHN0cmluZ1tdIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvX3JlbGF0aW9uLWdyYXBoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eU1hbmFnZXIgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIEZpeHR1cmVSZWNvcmQsIHR5cGUgUmVsYXRpb25Ob2RlIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQge1xuICBpc0JlbG9uZ3NUb09uZVJlbGF0aW9uUHJvcCxcbiAgaXNNYW55VG9NYW55UmVsYXRpb25Qcm9wLFxuICBpc09uZVRvT25lUmVsYXRpb25Qcm9wLFxuICBpc1JlbGF0aW9uUHJvcCxcbn0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5cbi8vIOq0gOqzhCDqt7jrnpjtlIQg7LKY66as66W8IOuzhOuPhCDtgbTrnpjsiqTroZwg67aE66asXG5leHBvcnQgY2xhc3MgUmVsYXRpb25HcmFwaCB7XG4gIHByaXZhdGUgZ3JhcGg6IE1hcDxzdHJpbmcsIFJlbGF0aW9uTm9kZT4gPSBuZXcgTWFwKCk7XG5cbiAgYnVpbGRHcmFwaChmaXh0dXJlczogRml4dHVyZVJlY29yZFtdKTogdm9pZCB7XG4gICAgdGhpcy5ncmFwaC5jbGVhcigpO1xuXG4gICAgLy8gMS4g64W465OcIOy2lOqwgFxuICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiBmaXh0dXJlcykge1xuICAgICAgdGhpcy5ncmFwaC5zZXQoZml4dHVyZS5maXh0dXJlSWQsIHtcbiAgICAgICAgZml4dHVyZUlkOiBmaXh0dXJlLmZpeHR1cmVJZCxcbiAgICAgICAgZW50aXR5SWQ6IGZpeHR1cmUuZW50aXR5SWQsXG4gICAgICAgIHJlbGF0ZWQ6IG5ldyBTZXQoKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIDIuIOydmOyhtOyEsSDstpTqsIBcbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgZml4dHVyZXMpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdyYXBoLmdldChmaXh0dXJlLmZpeHR1cmVJZCk7XG4gICAgICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm9kZSBub3QgZm91bmQgZm9yIGZpeHR1cmUgJHtmaXh0dXJlLmZpeHR1cmVJZH1gKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBbLCBjb2x1bW5dIG9mIE9iamVjdC5lbnRyaWVzKGZpeHR1cmUuY29sdW1ucykpIHtcbiAgICAgICAgY29uc3QgcHJvcCA9IGNvbHVtbi5wcm9wO1xuXG4gICAgICAgIGlmIChpc1JlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGlzQmVsb25nc1RvT25lUmVsYXRpb25Qcm9wKHByb3ApIHx8XG4gICAgICAgICAgICAoaXNPbmVUb09uZVJlbGF0aW9uUHJvcChwcm9wKSAmJiBwcm9wLmhhc0pvaW5Db2x1bW4pXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCByZWxhdGVkRml4dHVyZUlkID0gYCR7cHJvcC53aXRofSMke2NvbHVtbi52YWx1ZX1gO1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzKHJlbGF0ZWRGaXh0dXJlSWQpKSB7XG4gICAgICAgICAgICAgIG5vZGUucmVsYXRlZC5hZGQocmVsYXRlZEZpeHR1cmVJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChpc01hbnlUb01hbnlSZWxhdGlvblByb3AocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIE1hbnlUb01hbnkg6rSA6rOE7J2YIOqyveyasCDslpHrsKntlqUg7J2Y7KG07ISxIOy2lOqwgFxuICAgICAgICAgICAgY29uc3QgcmVsYXRlZElkcyA9IGNvbHVtbi52YWx1ZSBhcyB1bmtub3duIGFzIChudW1iZXIgfCBzdHJpbmcpW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlbGF0ZWRJZCBvZiByZWxhdGVkSWRzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRGaXh0dXJlSWQgPSBgJHtwcm9wLndpdGh9IyR7cmVsYXRlZElkfWA7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmdyYXBoLmhhcyhyZWxhdGVkRml4dHVyZUlkKSkge1xuICAgICAgICAgICAgICAgIG5vZGUucmVsYXRlZC5hZGQocmVsYXRlZEZpeHR1cmVJZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFwaC5nZXQocmVsYXRlZEZpeHR1cmVJZCk/LnJlbGF0ZWQuYWRkKGZpeHR1cmUuZml4dHVyZUlkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldEluc2VydGlvbk9yZGVyKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgb3JkZXI6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgdGVtcFZpc2l0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKGZpeHR1cmVJZDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodmlzaXRlZC5oYXMoZml4dHVyZUlkKSkgcmV0dXJuO1xuICAgICAgaWYgKHRlbXBWaXNpdGVkLmhhcyhmaXh0dXJlSWQpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgQ2lyY3VsYXIgZGVwZW5kZW5jeSBkZXRlY3RlZCBpbnZvbHZpbmc6ICR7Zml4dHVyZUlkfWApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRlbXBWaXNpdGVkLmFkZChmaXh0dXJlSWQpO1xuXG4gICAgICBjb25zdCBub2RlID0gdGhpcy5ncmFwaC5nZXQoZml4dHVyZUlkKTtcbiAgICAgIGlmIChub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb2RlIG5vdCBmb3VuZCBmb3IgZml4dHVyZSAke2ZpeHR1cmVJZH1gKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KG5vZGUuZW50aXR5SWQpO1xuXG4gICAgICBmb3IgKGNvbnN0IGRlcElkIG9mIG5vZGUucmVsYXRlZCkge1xuICAgICAgICBjb25zdCBkZXBOb2RlID0gdGhpcy5ncmFwaC5nZXQoZGVwSWQpO1xuICAgICAgICBpZiAoZGVwTm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb2RlIG5vdCBmb3VuZCBmb3IgZml4dHVyZSAke2RlcElkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmVsb25nc1RvT25lIOq0gOqzhOydtOuptOyEnCBudWxsYWJsZeydtCDslYTri4wg6rK97JqwIOuovOyggCDrsKnrrLhcbiAgICAgICAgY29uc3QgcmVsYXRpb25Qcm9wID0gZW50aXR5LnByb3BzLmZpbmQoXG4gICAgICAgICAgKHByb3ApID0+XG4gICAgICAgICAgICBpc1JlbGF0aW9uUHJvcChwcm9wKSAmJlxuICAgICAgICAgICAgKGlzQmVsb25nc1RvT25lUmVsYXRpb25Qcm9wKHByb3ApIHx8XG4gICAgICAgICAgICAgIChpc09uZVRvT25lUmVsYXRpb25Qcm9wKHByb3ApICYmIHByb3AuaGFzSm9pbkNvbHVtbikpICYmXG4gICAgICAgICAgICBwcm9wLndpdGggPT09IGRlcE5vZGUuZW50aXR5SWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChyZWxhdGlvblByb3AgJiYgIXJlbGF0aW9uUHJvcC5udWxsYWJsZSkge1xuICAgICAgICAgIHZpc2l0KGRlcElkKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZW1wVmlzaXRlZC5kZWxldGUoZml4dHVyZUlkKTtcbiAgICAgIHZpc2l0ZWQuYWRkKGZpeHR1cmVJZCk7XG4gICAgICBvcmRlci5wdXNoKGZpeHR1cmVJZCk7XG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgZml4dHVyZUlkIG9mIHRoaXMuZ3JhcGgua2V5cygpKSB7XG4gICAgICB2aXNpdChmaXh0dXJlSWQpO1xuICAgIH1cblxuICAgIC8vIGNpcmN1bGFyIGRlcGVuZGVuY3nroZwg7J247ZW0IOuwqeusuOuQmOyngCDslYrsnYAgZml4dHVyZUlkIOy2lOqwgFxuICAgIGZvciAoY29uc3QgZml4dHVyZUlkIG9mIHRoaXMuZ3JhcGgua2V5cygpKSB7XG4gICAgICBpZiAoIXZpc2l0ZWQuaGFzKGZpeHR1cmVJZCkpIHtcbiAgICAgICAgb3JkZXIucHVzaChmaXh0dXJlSWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvcmRlcjtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O3NCQUF5RDthQU9qQztDQUdYLGdCQUFiLE1BQTJCO0VBQ3pCLEFBQVEsUUFBbUMsSUFBSSxLQUFLO0VBRXBELFdBQVcsVUFBaUM7QUFDMUMsUUFBSyxNQUFNLE9BQU87QUFHbEIsUUFBSyxNQUFNLFdBQVcsVUFBVTtBQUM5QixTQUFLLE1BQU0sSUFBSSxRQUFRLFdBQVc7S0FDaEMsV0FBVyxRQUFRO0tBQ25CLFVBQVUsUUFBUTtLQUNsQixTQUFTLElBQUksS0FBSztLQUNuQixDQUFDOztBQUlKLFFBQUssTUFBTSxXQUFXLFVBQVU7SUFDOUIsTUFBTSxPQUFPLEtBQUssTUFBTSxJQUFJLFFBQVEsVUFBVTtBQUM5QyxRQUFJLFNBQVMsV0FBVztBQUN0QixXQUFNLElBQUksTUFBTSw4QkFBOEIsUUFBUSxZQUFZOztBQUdwRSxTQUFLLE1BQU0sR0FBRyxXQUFXLE9BQU8sUUFBUSxRQUFRLFFBQVEsRUFBRTtLQUN4RCxNQUFNLE9BQU8sT0FBTztBQUVwQixTQUFJLGVBQWUsS0FBSyxFQUFFO0FBQ3hCLFVBQ0UsMkJBQTJCLEtBQUssSUFDL0IsdUJBQXVCLEtBQUssSUFBSSxLQUFLLGVBQ3RDO09BQ0EsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEtBQUssR0FBRyxPQUFPO0FBQ2hELFdBQUksS0FBSyxNQUFNLElBQUksaUJBQWlCLEVBQUU7QUFDcEMsYUFBSyxRQUFRLElBQUksaUJBQWlCOztpQkFFM0IseUJBQXlCLEtBQUssRUFBRTtPQUV6QyxNQUFNLGFBQWEsT0FBTztBQUMxQixZQUFLLE1BQU0sYUFBYSxZQUFZO1FBQ2xDLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxLQUFLLEdBQUc7QUFDekMsWUFBSSxLQUFLLE1BQU0sSUFBSSxpQkFBaUIsRUFBRTtBQUNwQyxjQUFLLFFBQVEsSUFBSSxpQkFBaUI7QUFDbEMsY0FBSyxNQUFNLElBQUksaUJBQWlCLEVBQUUsUUFBUSxJQUFJLFFBQVEsVUFBVTs7Ozs7Ozs7RUFTOUUsb0JBQThCO0dBQzVCLE1BQU0sVUFBVSxJQUFJLEtBQWE7R0FDakMsTUFBTUEsUUFBa0IsRUFBRTtHQUMxQixNQUFNLGNBQWMsSUFBSSxLQUFhO0dBRXJDLE1BQU0sU0FBUyxjQUFzQjtBQUNuQyxRQUFJLFFBQVEsSUFBSSxVQUFVLENBQUU7QUFDNUIsUUFBSSxZQUFZLElBQUksVUFBVSxFQUFFO0FBQzlCLGFBQVEsS0FBSywyQ0FBMkMsWUFBWTtBQUNwRTs7QUFHRixnQkFBWSxJQUFJLFVBQVU7SUFFMUIsTUFBTSxPQUFPLEtBQUssTUFBTSxJQUFJLFVBQVU7QUFDdEMsUUFBSSxTQUFTLFdBQVc7QUFDdEIsV0FBTSxJQUFJLE1BQU0sOEJBQThCLFlBQVk7O0lBRTVELE1BQU0sU0FBUyxjQUFjLElBQUksS0FBSyxTQUFTO0FBRS9DLFNBQUssTUFBTSxTQUFTLEtBQUssU0FBUztLQUNoQyxNQUFNLFVBQVUsS0FBSyxNQUFNLElBQUksTUFBTTtBQUNyQyxTQUFJLFlBQVksV0FBVztBQUN6QixZQUFNLElBQUksTUFBTSw4QkFBOEIsUUFBUTs7S0FJeEQsTUFBTSxlQUFlLE9BQU8sTUFBTSxNQUMvQixTQUNDLGVBQWUsS0FBSyxLQUNuQiwyQkFBMkIsS0FBSyxJQUM5Qix1QkFBdUIsS0FBSyxJQUFJLEtBQUssa0JBQ3hDLEtBQUssU0FBUyxRQUFRLFNBQ3pCO0FBQ0QsU0FBSSxnQkFBZ0IsQ0FBQyxhQUFhLFVBQVU7QUFDMUMsWUFBTSxNQUFNOzs7QUFJaEIsZ0JBQVksT0FBTyxVQUFVO0FBQzdCLFlBQVEsSUFBSSxVQUFVO0FBQ3RCLFVBQU0sS0FBSyxVQUFVOztBQUd2QixRQUFLLE1BQU0sYUFBYSxLQUFLLE1BQU0sTUFBTSxFQUFFO0FBQ3pDLFVBQU0sVUFBVTs7QUFJbEIsUUFBSyxNQUFNLGFBQWEsS0FBSyxNQUFNLE1BQU0sRUFBRTtBQUN6QyxRQUFJLENBQUMsUUFBUSxJQUFJLFVBQVUsRUFBRTtBQUMzQixXQUFNLEtBQUssVUFBVTs7O0FBSXpCLFVBQU8ifQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type
|
|
1
|
+
import { test as vitestTest } from "vitest";
|
|
2
|
+
import { type TestFunction, type TestOptions, type VitestUtils } from "vitest";
|
|
3
|
+
import { type Context } from "../api/context";
|
|
3
4
|
import { type SerializedTrace } from "../naite/naite";
|
|
4
5
|
export interface BootstrapOptions {
|
|
5
6
|
/**
|
|
@@ -14,20 +15,28 @@ export interface BootstrapOptions {
|
|
|
14
15
|
export declare function bootstrap(vi: VitestUtils, options?: BootstrapOptions): void;
|
|
15
16
|
export declare function runWithContext(context: Context | null, fn: () => Promise<void>): Promise<void>;
|
|
16
17
|
export declare function runWithMockContext(fn: () => Promise<void>): Promise<void>;
|
|
18
|
+
type TestResult = Promise<ReturnType<typeof vitestTest>>;
|
|
19
|
+
type TestCallbackResult = void | Promise<void>;
|
|
20
|
+
type TestEach = <TArgs extends readonly unknown[]>(cases: readonly TArgs[]) => (title: string, fn: (...args: TArgs) => TestCallbackResult) => void;
|
|
21
|
+
type TestWrapper = {
|
|
22
|
+
(title: string, fn: TestFunction, options?: TestOptions): TestResult;
|
|
23
|
+
skip: (title: string, fn: TestFunction, options?: TestOptions) => TestResult;
|
|
24
|
+
only: (title: string, fn: TestFunction, options?: TestOptions) => TestResult;
|
|
25
|
+
todo: (title: string) => void;
|
|
26
|
+
each: TestEach;
|
|
27
|
+
};
|
|
28
|
+
type TestAsWrapper = {
|
|
29
|
+
<User extends Context["user"]>(user: User, title: string, fn: TestFunction, options?: TestOptions): TestResult;
|
|
30
|
+
skip: <User extends Context["user"]>(user: User, title: string, fn: TestFunction, options?: TestOptions) => TestResult;
|
|
31
|
+
only: <User extends Context["user"]>(user: User, title: string, fn: TestFunction, options?: TestOptions) => TestResult;
|
|
32
|
+
todo: (title: string) => void;
|
|
33
|
+
};
|
|
17
34
|
declare module "vitest" {
|
|
18
35
|
interface TaskMeta {
|
|
19
36
|
traces: SerializedTrace[];
|
|
20
37
|
}
|
|
21
38
|
}
|
|
22
|
-
export declare const test:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
todo: (title: string) => void;
|
|
26
|
-
each: typeof vitestTest.each;
|
|
27
|
-
};
|
|
28
|
-
export declare const testAs: (<User extends Context["user"]>(user: User, title: string, fn: TestFunction<object>, options?: TestOptions) => Promise<void>) & {
|
|
29
|
-
skip: <User extends Context["user"]>(_user: User, title: string, fn: TestFunction<object>, options?: TestOptions) => Promise<void>;
|
|
30
|
-
only: <User extends Context["user"]>(user: User, title: string, fn: TestFunction<object>, options?: TestOptions) => Promise<void>;
|
|
31
|
-
todo: (title: string) => void;
|
|
32
|
-
};
|
|
39
|
+
export declare const test: TestWrapper;
|
|
40
|
+
export declare const testAs: TestAsWrapper;
|
|
41
|
+
export {};
|
|
33
42
|
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/testing/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/testing/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,IAAI,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AACxF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE/E,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAI9C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,QAmCpE;AAWD,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAGpF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAE/D;AAED,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AACzD,KAAK,kBAAkB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,KAAK,QAAQ,GAAG,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAC/C,KAAK,EAAE,SAAS,KAAK,EAAE,KACpB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,kBAAkB,KAAK,IAAI,CAAC;AAEzE,KAAK,WAAW,GAAG;IACjB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IACrE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,UAAU,CAAC;IAC7E,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,UAAU,CAAC;IAC7E,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,CAAC,IAAI,SAAS,OAAO,CAAC,MAAM,CAAC,EAC3B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,YAAY,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,UAAU,CAAC;IACd,IAAI,EAAE,CAAC,IAAI,SAAS,OAAO,CAAC,MAAM,CAAC,EACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,YAAY,EAChB,OAAO,CAAC,EAAE,WAAW,KAClB,UAAU,CAAC;IAChB,IAAI,EAAE,CAAC,IAAI,SAAS,OAAO,CAAC,MAAM,CAAC,EACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,YAAY,EAChB,OAAO,CAAC,EAAE,WAAW,KAClB,UAAU,CAAC;IAChB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AAIF,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,QAAQ;QAChB,MAAM,EAAE,eAAe,EAAE,CAAC;KAC3B;CACF;AAED,eAAO,MAAM,IAAI,EAAE,WAiClB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,aA0DpB,CAAC"}
|
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Sonamu } from "../api/sonamu.js";
|
|
3
|
-
import {
|
|
4
|
-
import { Naite } from "../naite/naite.js";
|
|
1
|
+
import { DB, init_db } from "../database/db.js";
|
|
2
|
+
import { Sonamu, init_sonamu } from "../api/sonamu.js";
|
|
3
|
+
import { Naite, init_naite } from "../naite/naite.js";
|
|
5
4
|
import { NaiteReporter } from "../naite/naite-reporter.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
5
|
+
import { afterAll, afterEach, beforeAll, beforeEach, test as test$1 } from "vitest";
|
|
6
|
+
|
|
7
|
+
//#region src/testing/bootstrap.ts
|
|
8
|
+
init_sonamu();
|
|
9
|
+
init_db();
|
|
10
|
+
init_naite();
|
|
11
|
+
function bootstrap(vi, options) {
|
|
12
|
+
const forTesting = options?.forTesting ?? true;
|
|
13
|
+
beforeAll(async () => {
|
|
14
|
+
if (!forTesting) {
|
|
15
|
+
Sonamu.isInitialized = false;
|
|
16
|
+
}
|
|
17
|
+
await Sonamu.init(true, false, undefined, forTesting);
|
|
18
|
+
});
|
|
19
|
+
beforeEach(async () => {
|
|
20
|
+
await DB.createTestTransaction();
|
|
21
|
+
});
|
|
22
|
+
afterEach(async ({ task }) => {
|
|
23
|
+
vi.useRealTimers();
|
|
24
|
+
await DB.clearTestTransaction();
|
|
25
|
+
await NaiteReporter.reportTestResult({
|
|
26
|
+
suiteName: task.suite?.name ?? "(no suite)",
|
|
27
|
+
suiteFilePath: task.file?.filepath,
|
|
28
|
+
testName: task.name,
|
|
29
|
+
testFilePath: task.file?.filepath ?? "",
|
|
30
|
+
testLine: task.location?.line ?? 0,
|
|
31
|
+
status: task.result?.state ?? "pass",
|
|
32
|
+
duration: task.result?.duration ?? 0,
|
|
33
|
+
error: task.result?.errors?.[0] ? {
|
|
34
|
+
message: task.result.errors[0].message,
|
|
35
|
+
stack: task.result.errors[0].stack
|
|
36
|
+
} : undefined,
|
|
37
|
+
traces: task.meta?.traces ?? []
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
afterAll(() => {});
|
|
37
41
|
}
|
|
38
42
|
function getMockContext() {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
logout: ()=>{}
|
|
46
|
-
},
|
|
47
|
-
naiteStore: Naite.createStore()
|
|
48
|
-
};
|
|
43
|
+
return {
|
|
44
|
+
session: null,
|
|
45
|
+
user: null,
|
|
46
|
+
naiteStore: Naite.createStore(),
|
|
47
|
+
locale: ""
|
|
48
|
+
};
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
await Sonamu.asyncLocalStorage.run({
|
|
53
|
-
context: context ?? getMockContext()
|
|
54
|
-
}, fn);
|
|
50
|
+
async function runWithContext(context, fn) {
|
|
51
|
+
await Sonamu.asyncLocalStorage.run({ context: context ?? getMockContext() }, fn);
|
|
55
52
|
}
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
async function runWithMockContext(fn) {
|
|
54
|
+
await runWithContext(getMockContext(), fn);
|
|
58
55
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
56
|
+
const each = test$1.each.bind(test$1);
|
|
57
|
+
const test = Object.assign(async (title, fn, options) => {
|
|
58
|
+
return test$1(title, options, async (context) => {
|
|
59
|
+
await runWithMockContext(async () => {
|
|
60
|
+
try {
|
|
61
|
+
await fn(context);
|
|
62
|
+
context.task.meta.traces = Naite.getAllTraces();
|
|
63
|
+
} catch (e) {
|
|
64
|
+
context.task.meta.traces = Naite.getAllTraces();
|
|
65
|
+
throw e;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
71
69
|
}, {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
70
|
+
skip: async (title, fn, options) => test$1.skip(title, options, fn),
|
|
71
|
+
only: async (title, fn, options) => {
|
|
72
|
+
return test$1.only(title, options, async (context) => {
|
|
73
|
+
await runWithMockContext(async () => {
|
|
74
|
+
try {
|
|
75
|
+
await fn(context);
|
|
76
|
+
context.task.meta.traces = Naite.getAllTraces();
|
|
77
|
+
} catch (e) {
|
|
78
|
+
context.task.meta.traces = Naite.getAllTraces();
|
|
79
|
+
throw e;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
todo: (title) => test$1.todo(title),
|
|
85
|
+
each
|
|
88
86
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
87
|
+
const testAs = Object.assign(async (user, title, fn, options) => {
|
|
88
|
+
return test$1(title, options, async (context) => {
|
|
89
|
+
await runWithContext({
|
|
90
|
+
...getMockContext(),
|
|
91
|
+
user
|
|
92
|
+
}, async () => {
|
|
93
|
+
try {
|
|
94
|
+
await fn(context);
|
|
95
|
+
context.task.meta.traces = Naite.getAllTraces();
|
|
96
|
+
} catch (e) {
|
|
97
|
+
context.task.meta.traces = Naite.getAllTraces();
|
|
98
|
+
throw e;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
});
|
|
104
102
|
}, {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
103
|
+
skip: async (_user, title, fn, options) => test$1.skip(title, options, fn),
|
|
104
|
+
only: async (user, title, fn, options) => {
|
|
105
|
+
return test$1.only(title, options, async (context) => {
|
|
106
|
+
await runWithContext({
|
|
107
|
+
...getMockContext(),
|
|
108
|
+
user
|
|
109
|
+
}, async () => {
|
|
110
|
+
try {
|
|
111
|
+
await fn(context);
|
|
112
|
+
context.task.meta.traces = Naite.getAllTraces();
|
|
113
|
+
} catch (e) {
|
|
114
|
+
context.task.meta.traces = Naite.getAllTraces();
|
|
115
|
+
throw e;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
},
|
|
120
|
+
todo: (title) => test$1.todo(title)
|
|
123
121
|
});
|
|
124
122
|
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2Jvb3RzdHJhcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhZnRlckFsbCxcbiAgYWZ0ZXJFYWNoLFxuICBiZWZvcmVBbGwsXG4gIGJlZm9yZUVhY2gsXG4gIHR5cGUgVGVzdEZ1bmN0aW9uLFxuICB0eXBlIFRlc3RPcHRpb25zLFxuICB0eXBlIFZpdGVzdFV0aWxzLFxuICB0ZXN0IGFzIHZpdGVzdFRlc3QsXG59IGZyb20gXCJ2aXRlc3RcIjtcbmltcG9ydCB0eXBlIHsgQ29udGV4dCB9IGZyb20gXCIuLi9hcGkvY29udGV4dFwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IERCIH0gZnJvbSBcIi4uL2RhdGFiYXNlL2RiXCI7XG5pbXBvcnQgeyBOYWl0ZSwgdHlwZSBTZXJpYWxpemVkVHJhY2UgfSBmcm9tIFwiLi4vbmFpdGUvbmFpdGVcIjtcbmltcG9ydCB7IE5haXRlUmVwb3J0ZXIgfSBmcm9tIFwiLi4vbmFpdGUvbmFpdGUtcmVwb3J0ZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNvbmFtdSDstIjquLDtmZQg66qo65Oc66W8IOyngOygle2VqeuLiOuLpC5cbiAgICogLSB0cnVlICjquLDrs7jqsJIpOiDthYzsiqTtjIUg66qo65Oc66GcIOy0iOq4sO2ZlCAo67mg66aELCBTeW5jZXIvVGFzayDsg53rnrUpXG4gICAqIC0gZmFsc2U6IOyghOyytCDstIjquLDtmZQgKFN5bmNlciwgVGFzaywgRW50aXR5TWFuYWdlciDrk7Eg66qo65GQIOuhnOuTnClcbiAgICpcbiAgICogbWlncmF0b3IsIHN5bmNlciwgdGVtcGxhdGUg65Ox7J2YIO2FjOyKpO2KuOyXkOyEnOuKlCBmYWxzZeulvCDsgqzsmqntlanri4jri6QuXG4gICAqL1xuICBmb3JUZXN0aW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcCh2aTogVml0ZXN0VXRpbHMsIG9wdGlvbnM/OiBCb290c3RyYXBPcHRpb25zKSB7XG4gIGNvbnN0IGZvclRlc3RpbmcgPSBvcHRpb25zPy5mb3JUZXN0aW5nID8/IHRydWU7XG5cbiAgYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWZvclRlc3RpbmcpIHtcbiAgICAgIC8vIGZvclRlc3Rpbmc6IGZhbHNl7J24IOqyveyasCDsnqzstIjquLDtmZTqsIAg7ZWE7JqU7ZWY66+A66GcIO2UjOuemOq3uCDtlbTsoJxcbiAgICAgIFNvbmFtdS5pc0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgfVxuICAgIGF3YWl0IFNvbmFtdS5pbml0KHRydWUsIGZhbHNlLCB1bmRlZmluZWQsIGZvclRlc3RpbmcpO1xuICB9KTtcbiAgYmVmb3JlRWFjaChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgREIuY3JlYXRlVGVzdFRyYW5zYWN0aW9uKCk7XG4gIH0pO1xuICBhZnRlckVhY2goYXN5bmMgKHsgdGFzayB9KSA9PiB7XG4gICAgdmkudXNlUmVhbFRpbWVycygpO1xuICAgIGF3YWl0IERCLmNsZWFyVGVzdFRyYW5zYWN0aW9uKCk7XG5cbiAgICBhd2FpdCBOYWl0ZVJlcG9ydGVyLnJlcG9ydFRlc3RSZXN1bHQoe1xuICAgICAgc3VpdGVOYW1lOiB0YXNrLnN1aXRlPy5uYW1lID8/IFwiKG5vIHN1aXRlKVwiLFxuICAgICAgc3VpdGVGaWxlUGF0aDogdGFzay5maWxlPy5maWxlcGF0aCxcbiAgICAgIHRlc3ROYW1lOiB0YXNrLm5hbWUsXG4gICAgICB0ZXN0RmlsZVBhdGg6IHRhc2suZmlsZT8uZmlsZXBhdGggPz8gXCJcIixcbiAgICAgIHRlc3RMaW5lOiB0YXNrLmxvY2F0aW9uPy5saW5lID8/IDAsXG4gICAgICBzdGF0dXM6IHRhc2sucmVzdWx0Py5zdGF0ZSA/PyBcInBhc3NcIixcbiAgICAgIGR1cmF0aW9uOiB0YXNrLnJlc3VsdD8uZHVyYXRpb24gPz8gMCxcbiAgICAgIGVycm9yOiB0YXNrLnJlc3VsdD8uZXJyb3JzPy5bMF1cbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtZXNzYWdlOiB0YXNrLnJlc3VsdC5lcnJvcnNbMF0ubWVzc2FnZSxcbiAgICAgICAgICAgIHN0YWNrOiB0YXNrLnJlc3VsdC5lcnJvcnNbMF0uc3RhY2ssXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHRyYWNlczogdGFzay5tZXRhPy50cmFjZXMgPz8gW10sXG4gICAgfSk7XG4gIH0pO1xuICBhZnRlckFsbCgoKSA9PiB7fSk7XG59XG5cbmZ1bmN0aW9uIGdldE1vY2tDb250ZXh0KCk6IENvbnRleHQge1xuICByZXR1cm4ge1xuICAgIGlwOiBcIjEyNy4wLjAuMVwiLFxuICAgIHNlc3Npb246IHt9LFxuICAgIHVzZXI6IG51bGwsXG4gICAgcGFzc3BvcnQ6IHtcbiAgICAgIGxvZ2luOiBhc3luYyAoKSA9PiB7fSxcbiAgICAgIGxvZ291dDogKCkgPT4ge30sXG4gICAgfSxcbiAgICBuYWl0ZVN0b3JlOiBOYWl0ZS5jcmVhdGVTdG9yZSgpLFxuICB9IGFzIHVua25vd24gYXMgQ29udGV4dDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhDb250ZXh0KGNvbnRleHQ6IENvbnRleHQgfCBudWxsLCBmbjogKCkgPT4gUHJvbWlzZTx2b2lkPikge1xuICAvLyBTb25hbXUuYXN5bmNMb2NhbFN0b3JhZ2UucnVu7Jy866GcIGNvbnRleHQg7ISk7KCVXG4gIGF3YWl0IFNvbmFtdS5hc3luY0xvY2FsU3RvcmFnZS5ydW4oeyBjb250ZXh0OiBjb250ZXh0ID8/IGdldE1vY2tDb250ZXh0KCkgfSwgZm4pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2l0aE1vY2tDb250ZXh0KGZuOiAoKSA9PiBQcm9taXNlPHZvaWQ+KSB7XG4gIGF3YWl0IHJ1bldpdGhDb250ZXh0KGdldE1vY2tDb250ZXh0KCksIGZuKTtcbn1cblxuZGVjbGFyZSBtb2R1bGUgXCJ2aXRlc3RcIiB7XG4gIGludGVyZmFjZSBUYXNrTWV0YSB7XG4gICAgdHJhY2VzOiBTZXJpYWxpemVkVHJhY2VbXTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdGVzdCA9IE9iamVjdC5hc3NpZ24oXG4gIGFzeW5jICh0aXRsZTogc3RyaW5nLCBmbjogVGVzdEZ1bmN0aW9uPG9iamVjdD4sIG9wdGlvbnM/OiBUZXN0T3B0aW9ucykgPT4ge1xuICAgIHJldHVybiB2aXRlc3RUZXN0KHRpdGxlLCBvcHRpb25zLCBhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgYXdhaXQgcnVuV2l0aE1vY2tDb250ZXh0KGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBmbihjb250ZXh0KTtcbiAgICAgICAgICBjb250ZXh0LnRhc2subWV0YS50cmFjZXMgPSBOYWl0ZS5nZXRBbGxUcmFjZXMoKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIGNvbnRleHQudGFzay5tZXRhLnRyYWNlcyA9IE5haXRlLmdldEFsbFRyYWNlcygpO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuICB7XG4gICAgc2tpcDogYXN5bmMgKHRpdGxlOiBzdHJpbmcsIGZuOiBUZXN0RnVuY3Rpb248b2JqZWN0Piwgb3B0aW9ucz86IFRlc3RPcHRpb25zKSA9PlxuICAgICAgdml0ZXN0VGVzdC5za2lwKHRpdGxlLCBvcHRpb25zLCBmbiksXG4gICAgb25seTogYXN5bmMgKHRpdGxlOiBzdHJpbmcsIGZuOiBUZXN0RnVuY3Rpb248b2JqZWN0Piwgb3B0aW9ucz86IFRlc3RPcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gdml0ZXN0VGVzdC5vbmx5KHRpdGxlLCBvcHRpb25zLCBhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICBhd2FpdCBydW5XaXRoTW9ja0NvbnRleHQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBmbihjb250ZXh0KTtcbiAgICAgICAgICAgIGNvbnRleHQudGFzay5tZXRhLnRyYWNlcyA9IE5haXRlLmdldEFsbFRyYWNlcygpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICAgIGNvbnRleHQudGFzay5tZXRhLnRyYWNlcyA9IE5haXRlLmdldEFsbFRyYWNlcygpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICB0b2RvOiAodGl0bGU6IHN0cmluZykgPT4gdml0ZXN0VGVzdC50b2RvKHRpdGxlKSxcbiAgICBlYWNoOiB2aXRlc3RUZXN0LmVhY2guYmluZCh2aXRlc3RUZXN0KSBhcyB0eXBlb2Ygdml0ZXN0VGVzdC5lYWNoLFxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IHRlc3RBcyA9IE9iamVjdC5hc3NpZ24oXG4gIGFzeW5jIDxVc2VyIGV4dGVuZHMgQ29udGV4dFtcInVzZXJcIl0+KFxuICAgIHVzZXI6IFVzZXIsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBmbjogVGVzdEZ1bmN0aW9uPG9iamVjdD4sXG4gICAgb3B0aW9ucz86IFRlc3RPcHRpb25zLFxuICApID0+IHtcbiAgICByZXR1cm4gdml0ZXN0VGVzdCh0aXRsZSwgb3B0aW9ucywgYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgIGF3YWl0IHJ1bldpdGhDb250ZXh0KFxuICAgICAgICB7XG4gICAgICAgICAgLi4uZ2V0TW9ja0NvbnRleHQoKSxcbiAgICAgICAgICB1c2VyLFxuICAgICAgICB9LFxuICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGZuKGNvbnRleHQpO1xuICAgICAgICAgICAgY29udGV4dC50YXNrLm1ldGEudHJhY2VzID0gTmFpdGUuZ2V0QWxsVHJhY2VzKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgICAgY29udGV4dC50YXNrLm1ldGEudHJhY2VzID0gTmFpdGUuZ2V0QWxsVHJhY2VzKCk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0sXG4gIHtcbiAgICBza2lwOiBhc3luYyA8VXNlciBleHRlbmRzIENvbnRleHRbXCJ1c2VyXCJdPihcbiAgICAgIF91c2VyOiBVc2VyLFxuICAgICAgdGl0bGU6IHN0cmluZyxcbiAgICAgIGZuOiBUZXN0RnVuY3Rpb248b2JqZWN0PixcbiAgICAgIG9wdGlvbnM/OiBUZXN0T3B0aW9ucyxcbiAgICApID0+IHZpdGVzdFRlc3Quc2tpcCh0aXRsZSwgb3B0aW9ucywgZm4pLFxuICAgIG9ubHk6IGFzeW5jIDxVc2VyIGV4dGVuZHMgQ29udGV4dFtcInVzZXJcIl0+KFxuICAgICAgdXNlcjogVXNlcixcbiAgICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgICBmbjogVGVzdEZ1bmN0aW9uPG9iamVjdD4sXG4gICAgICBvcHRpb25zPzogVGVzdE9wdGlvbnMsXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gdml0ZXN0VGVzdC5vbmx5KHRpdGxlLCBvcHRpb25zLCBhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICBhd2FpdCBydW5XaXRoQ29udGV4dChcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5nZXRNb2NrQ29udGV4dCgpLFxuICAgICAgICAgICAgdXNlcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGF3YWl0IGZuKGNvbnRleHQpO1xuICAgICAgICAgICAgICBjb250ZXh0LnRhc2subWV0YS50cmFjZXMgPSBOYWl0ZS5nZXRBbGxUcmFjZXMoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgY29udGV4dC50YXNrLm1ldGEudHJhY2VzID0gTmFpdGUuZ2V0QWxsVHJhY2VzKCk7XG4gICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgdG9kbzogKHRpdGxlOiBzdHJpbmcpID0+IHZpdGVzdFRlc3QudG9kbyh0aXRsZSksXG4gIH0sXG4pO1xuIl0sIm5hbWVzIjpbImFmdGVyQWxsIiwiYWZ0ZXJFYWNoIiwiYmVmb3JlQWxsIiwiYmVmb3JlRWFjaCIsInRlc3QiLCJ2aXRlc3RUZXN0IiwiU29uYW11IiwiREIiLCJOYWl0ZSIsIk5haXRlUmVwb3J0ZXIiLCJib290c3RyYXAiLCJ2aSIsIm9wdGlvbnMiLCJmb3JUZXN0aW5nIiwiaXNJbml0aWFsaXplZCIsImluaXQiLCJ1bmRlZmluZWQiLCJjcmVhdGVUZXN0VHJhbnNhY3Rpb24iLCJ0YXNrIiwidXNlUmVhbFRpbWVycyIsImNsZWFyVGVzdFRyYW5zYWN0aW9uIiwicmVwb3J0VGVzdFJlc3VsdCIsInN1aXRlTmFtZSIsInN1aXRlIiwibmFtZSIsInN1aXRlRmlsZVBhdGgiLCJmaWxlIiwiZmlsZXBhdGgiLCJ0ZXN0TmFtZSIsInRlc3RGaWxlUGF0aCIsInRlc3RMaW5lIiwibG9jYXRpb24iLCJsaW5lIiwic3RhdHVzIiwicmVzdWx0Iiwic3RhdGUiLCJkdXJhdGlvbiIsImVycm9yIiwiZXJyb3JzIiwibWVzc2FnZSIsInN0YWNrIiwidHJhY2VzIiwibWV0YSIsImdldE1vY2tDb250ZXh0IiwiaXAiLCJzZXNzaW9uIiwidXNlciIsInBhc3Nwb3J0IiwibG9naW4iLCJsb2dvdXQiLCJuYWl0ZVN0b3JlIiwiY3JlYXRlU3RvcmUiLCJydW5XaXRoQ29udGV4dCIsImNvbnRleHQiLCJmbiIsImFzeW5jTG9jYWxTdG9yYWdlIiwicnVuIiwicnVuV2l0aE1vY2tDb250ZXh0IiwiT2JqZWN0IiwiYXNzaWduIiwidGl0bGUiLCJnZXRBbGxUcmFjZXMi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
|
|
123
|
+
//#endregion
|
|
124
|
+
export { bootstrap, runWithContext, runWithMockContext, test, testAs };
|
|
125
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwibmFtZXMiOlsiZWFjaDogVGVzdEVhY2giLCJ2aXRlc3RUZXN0IiwidGVzdDogVGVzdFdyYXBwZXIiLCJlOiB1bmtub3duIiwidGVzdEFzOiBUZXN0QXNXcmFwcGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvYm9vdHN0cmFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyQWxsLCBhZnRlckVhY2gsIGJlZm9yZUFsbCwgYmVmb3JlRWFjaCwgdGVzdCBhcyB2aXRlc3RUZXN0IH0gZnJvbSBcInZpdGVzdFwiO1xuaW1wb3J0IHsgdHlwZSBUZXN0RnVuY3Rpb24sIHR5cGUgVGVzdE9wdGlvbnMsIHR5cGUgVml0ZXN0VXRpbHMgfSBmcm9tIFwidml0ZXN0XCI7XG5cbmltcG9ydCB7IHR5cGUgQ29udGV4dCB9IGZyb20gXCIuLi9hcGkvY29udGV4dFwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IERCIH0gZnJvbSBcIi4uL2RhdGFiYXNlL2RiXCI7XG5pbXBvcnQgeyBOYWl0ZSB9IGZyb20gXCIuLi9uYWl0ZS9uYWl0ZVwiO1xuaW1wb3J0IHsgdHlwZSBTZXJpYWxpemVkVHJhY2UgfSBmcm9tIFwiLi4vbmFpdGUvbmFpdGVcIjtcbmltcG9ydCB7IE5haXRlUmVwb3J0ZXIgfSBmcm9tIFwiLi4vbmFpdGUvbmFpdGUtcmVwb3J0ZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNvbmFtdSDstIjquLDtmZQg66qo65Oc66W8IOyngOygle2VqeuLiOuLpC5cbiAgICogLSB0cnVlICjquLDrs7jqsJIpOiDthYzsiqTtjIUg66qo65Oc66GcIOy0iOq4sO2ZlCAo67mg66aELCBTeW5jZXIvVGFzayDsg53rnrUpXG4gICAqIC0gZmFsc2U6IOyghOyytCDstIjquLDtmZQgKFN5bmNlciwgVGFzaywgRW50aXR5TWFuYWdlciDrk7Eg66qo65GQIOuhnOuTnClcbiAgICpcbiAgICogbWlncmF0b3IsIHN5bmNlciwgdGVtcGxhdGUg65Ox7J2YIO2FjOyKpO2KuOyXkOyEnOuKlCBmYWxzZeulvCDsgqzsmqntlanri4jri6QuXG4gICAqL1xuICBmb3JUZXN0aW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb3RzdHJhcCh2aTogVml0ZXN0VXRpbHMsIG9wdGlvbnM/OiBCb290c3RyYXBPcHRpb25zKSB7XG4gIGNvbnN0IGZvclRlc3RpbmcgPSBvcHRpb25zPy5mb3JUZXN0aW5nID8/IHRydWU7XG5cbiAgYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWZvclRlc3RpbmcpIHtcbiAgICAgIC8vIGZvclRlc3Rpbmc6IGZhbHNl7J24IOqyveyasCDsnqzstIjquLDtmZTqsIAg7ZWE7JqU7ZWY66+A66GcIO2UjOuemOq3uCDtlbTsoJxcbiAgICAgIFNvbmFtdS5pc0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgfVxuICAgIGF3YWl0IFNvbmFtdS5pbml0KHRydWUsIGZhbHNlLCB1bmRlZmluZWQsIGZvclRlc3RpbmcpO1xuICB9KTtcbiAgYmVmb3JlRWFjaChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgREIuY3JlYXRlVGVzdFRyYW5zYWN0aW9uKCk7XG4gIH0pO1xuICBhZnRlckVhY2goYXN5bmMgKHsgdGFzayB9KSA9PiB7XG4gICAgdmkudXNlUmVhbFRpbWVycygpO1xuICAgIGF3YWl0IERCLmNsZWFyVGVzdFRyYW5zYWN0aW9uKCk7XG5cbiAgICBhd2FpdCBOYWl0ZVJlcG9ydGVyLnJlcG9ydFRlc3RSZXN1bHQoe1xuICAgICAgc3VpdGVOYW1lOiB0YXNrLnN1aXRlPy5uYW1lID8/IFwiKG5vIHN1aXRlKVwiLFxuICAgICAgc3VpdGVGaWxlUGF0aDogdGFzay5maWxlPy5maWxlcGF0aCxcbiAgICAgIHRlc3ROYW1lOiB0YXNrLm5hbWUsXG4gICAgICB0ZXN0RmlsZVBhdGg6IHRhc2suZmlsZT8uZmlsZXBhdGggPz8gXCJcIixcbiAgICAgIHRlc3RMaW5lOiB0YXNrLmxvY2F0aW9uPy5saW5lID8/IDAsXG4gICAgICBzdGF0dXM6IHRhc2sucmVzdWx0Py5zdGF0ZSA/PyBcInBhc3NcIixcbiAgICAgIGR1cmF0aW9uOiB0YXNrLnJlc3VsdD8uZHVyYXRpb24gPz8gMCxcbiAgICAgIGVycm9yOiB0YXNrLnJlc3VsdD8uZXJyb3JzPy5bMF1cbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtZXNzYWdlOiB0YXNrLnJlc3VsdC5lcnJvcnNbMF0ubWVzc2FnZSxcbiAgICAgICAgICAgIHN0YWNrOiB0YXNrLnJlc3VsdC5lcnJvcnNbMF0uc3RhY2ssXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHRyYWNlczogdGFzay5tZXRhPy50cmFjZXMgPz8gW10sXG4gICAgfSk7XG4gIH0pO1xuICBhZnRlckFsbCgoKSA9PiB7fSk7XG59XG5cbmZ1bmN0aW9uIGdldE1vY2tDb250ZXh0KCk6IENvbnRleHQge1xuICByZXR1cm4ge1xuICAgIHNlc3Npb246IG51bGwsXG4gICAgdXNlcjogbnVsbCxcbiAgICBuYWl0ZVN0b3JlOiBOYWl0ZS5jcmVhdGVTdG9yZSgpLFxuICAgIGxvY2FsZTogXCJcIixcbiAgfSBhcyB1bmtub3duIGFzIENvbnRleHQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5XaXRoQ29udGV4dChjb250ZXh0OiBDb250ZXh0IHwgbnVsbCwgZm46ICgpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgLy8gU29uYW11LmFzeW5jTG9jYWxTdG9yYWdlLnJ1buycvOuhnCBjb250ZXh0IOyEpOyglVxuICBhd2FpdCBTb25hbXUuYXN5bmNMb2NhbFN0b3JhZ2UucnVuKHsgY29udGV4dDogY29udGV4dCA/PyBnZXRNb2NrQ29udGV4dCgpIH0sIGZuKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhNb2NrQ29udGV4dChmbjogKCkgPT4gUHJvbWlzZTx2b2lkPikge1xuICBhd2FpdCBydW5XaXRoQ29udGV4dChnZXRNb2NrQ29udGV4dCgpLCBmbik7XG59XG5cbnR5cGUgVGVzdFJlc3VsdCA9IFByb21pc2U8UmV0dXJuVHlwZTx0eXBlb2Ygdml0ZXN0VGVzdD4+O1xudHlwZSBUZXN0Q2FsbGJhY2tSZXN1bHQgPSB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbnR5cGUgVGVzdEVhY2ggPSA8VEFyZ3MgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+KFxuICBjYXNlczogcmVhZG9ubHkgVEFyZ3NbXSxcbikgPT4gKHRpdGxlOiBzdHJpbmcsIGZuOiAoLi4uYXJnczogVEFyZ3MpID0+IFRlc3RDYWxsYmFja1Jlc3VsdCkgPT4gdm9pZDtcblxudHlwZSBUZXN0V3JhcHBlciA9IHtcbiAgKHRpdGxlOiBzdHJpbmcsIGZuOiBUZXN0RnVuY3Rpb24sIG9wdGlvbnM/OiBUZXN0T3B0aW9ucyk6IFRlc3RSZXN1bHQ7XG4gIHNraXA6ICh0aXRsZTogc3RyaW5nLCBmbjogVGVzdEZ1bmN0aW9uLCBvcHRpb25zPzogVGVzdE9wdGlvbnMpID0+IFRlc3RSZXN1bHQ7XG4gIG9ubHk6ICh0aXRsZTogc3RyaW5nLCBmbjogVGVzdEZ1bmN0aW9uLCBvcHRpb25zPzogVGVzdE9wdGlvbnMpID0+IFRlc3RSZXN1bHQ7XG4gIHRvZG86ICh0aXRsZTogc3RyaW5nKSA9PiB2b2lkO1xuICBlYWNoOiBUZXN0RWFjaDtcbn07XG5cbnR5cGUgVGVzdEFzV3JhcHBlciA9IHtcbiAgPFVzZXIgZXh0ZW5kcyBDb250ZXh0W1widXNlclwiXT4oXG4gICAgdXNlcjogVXNlcixcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGZuOiBUZXN0RnVuY3Rpb24sXG4gICAgb3B0aW9ucz86IFRlc3RPcHRpb25zLFxuICApOiBUZXN0UmVzdWx0O1xuICBza2lwOiA8VXNlciBleHRlbmRzIENvbnRleHRbXCJ1c2VyXCJdPihcbiAgICB1c2VyOiBVc2VyLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgZm46IFRlc3RGdW5jdGlvbixcbiAgICBvcHRpb25zPzogVGVzdE9wdGlvbnMsXG4gICkgPT4gVGVzdFJlc3VsdDtcbiAgb25seTogPFVzZXIgZXh0ZW5kcyBDb250ZXh0W1widXNlclwiXT4oXG4gICAgdXNlcjogVXNlcixcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGZuOiBUZXN0RnVuY3Rpb24sXG4gICAgb3B0aW9ucz86IFRlc3RPcHRpb25zLFxuICApID0+IFRlc3RSZXN1bHQ7XG4gIHRvZG86ICh0aXRsZTogc3RyaW5nKSA9PiB2b2lkO1xufTtcblxuY29uc3QgZWFjaDogVGVzdEVhY2ggPSB2aXRlc3RUZXN0LmVhY2guYmluZCh2aXRlc3RUZXN0KTtcblxuZGVjbGFyZSBtb2R1bGUgXCJ2aXRlc3RcIiB7XG4gIGludGVyZmFjZSBUYXNrTWV0YSB7XG4gICAgdHJhY2VzOiBTZXJpYWxpemVkVHJhY2VbXTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdGVzdDogVGVzdFdyYXBwZXIgPSBPYmplY3QuYXNzaWduKFxuICBhc3luYyAodGl0bGU6IHN0cmluZywgZm46IFRlc3RGdW5jdGlvbiwgb3B0aW9ucz86IFRlc3RPcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIHZpdGVzdFRlc3QodGl0bGUsIG9wdGlvbnMsIGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICBhd2FpdCBydW5XaXRoTW9ja0NvbnRleHQoYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGZuKGNvbnRleHQpO1xuICAgICAgICAgIGNvbnRleHQudGFzay5tZXRhLnRyYWNlcyA9IE5haXRlLmdldEFsbFRyYWNlcygpO1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgY29udGV4dC50YXNrLm1ldGEudHJhY2VzID0gTmFpdGUuZ2V0QWxsVHJhY2VzKCk7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG4gIHtcbiAgICBza2lwOiBhc3luYyAodGl0bGU6IHN0cmluZywgZm46IFRlc3RGdW5jdGlvbiwgb3B0aW9ucz86IFRlc3RPcHRpb25zKSA9PlxuICAgICAgdml0ZXN0VGVzdC5za2lwKHRpdGxlLCBvcHRpb25zLCBmbiksXG4gICAgb25seTogYXN5bmMgKHRpdGxlOiBzdHJpbmcsIGZuOiBUZXN0RnVuY3Rpb24sIG9wdGlvbnM/OiBUZXN0T3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIHZpdGVzdFRlc3Qub25seSh0aXRsZSwgb3B0aW9ucywgYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgICAgYXdhaXQgcnVuV2l0aE1vY2tDb250ZXh0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZm4oY29udGV4dCk7XG4gICAgICAgICAgICBjb250ZXh0LnRhc2subWV0YS50cmFjZXMgPSBOYWl0ZS5nZXRBbGxUcmFjZXMoKTtcbiAgICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgICBjb250ZXh0LnRhc2subWV0YS50cmFjZXMgPSBOYWl0ZS5nZXRBbGxUcmFjZXMoKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgdG9kbzogKHRpdGxlOiBzdHJpbmcpID0+IHZpdGVzdFRlc3QudG9kbyh0aXRsZSksXG4gICAgZWFjaCxcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCB0ZXN0QXM6IFRlc3RBc1dyYXBwZXIgPSBPYmplY3QuYXNzaWduKFxuICBhc3luYyA8VXNlciBleHRlbmRzIENvbnRleHRbXCJ1c2VyXCJdPihcbiAgICB1c2VyOiBVc2VyLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgZm46IFRlc3RGdW5jdGlvbixcbiAgICBvcHRpb25zPzogVGVzdE9wdGlvbnMsXG4gICkgPT4ge1xuICAgIHJldHVybiB2aXRlc3RUZXN0KHRpdGxlLCBvcHRpb25zLCBhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgYXdhaXQgcnVuV2l0aENvbnRleHQoXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5nZXRNb2NrQ29udGV4dCgpLFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZm4oY29udGV4dCk7XG4gICAgICAgICAgICBjb250ZXh0LnRhc2subWV0YS50cmFjZXMgPSBOYWl0ZS5nZXRBbGxUcmFjZXMoKTtcbiAgICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgICBjb250ZXh0LnRhc2subWV0YS50cmFjZXMgPSBOYWl0ZS5nZXRBbGxUcmFjZXMoKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSxcbiAge1xuICAgIHNraXA6IGFzeW5jIDxVc2VyIGV4dGVuZHMgQ29udGV4dFtcInVzZXJcIl0+KFxuICAgICAgX3VzZXI6IFVzZXIsXG4gICAgICB0aXRsZTogc3RyaW5nLFxuICAgICAgZm46IFRlc3RGdW5jdGlvbixcbiAgICAgIG9wdGlvbnM/OiBUZXN0T3B0aW9ucyxcbiAgICApID0+IHZpdGVzdFRlc3Quc2tpcCh0aXRsZSwgb3B0aW9ucywgZm4pLFxuICAgIG9ubHk6IGFzeW5jIDxVc2VyIGV4dGVuZHMgQ29udGV4dFtcInVzZXJcIl0+KFxuICAgICAgdXNlcjogVXNlcixcbiAgICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgICBmbjogVGVzdEZ1bmN0aW9uLFxuICAgICAgb3B0aW9ucz86IFRlc3RPcHRpb25zLFxuICAgICkgPT4ge1xuICAgICAgcmV0dXJuIHZpdGVzdFRlc3Qub25seSh0aXRsZSwgb3B0aW9ucywgYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgICAgYXdhaXQgcnVuV2l0aENvbnRleHQoXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4uZ2V0TW9ja0NvbnRleHQoKSxcbiAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBhd2FpdCBmbihjb250ZXh0KTtcbiAgICAgICAgICAgICAgY29udGV4dC50YXNrLm1ldGEudHJhY2VzID0gTmFpdGUuZ2V0QWxsVHJhY2VzKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQudGFzay5tZXRhLnRyYWNlcyA9IE5haXRlLmdldEFsbFRyYWNlcygpO1xuICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHRvZG86ICh0aXRsZTogc3RyaW5nKSA9PiB2aXRlc3RUZXN0LnRvZG8odGl0bGUpLFxuICB9LFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OzthQUl1QztTQUNIO1lBQ0c7QUFldkMsU0FBZ0IsVUFBVSxJQUFpQixTQUE0QjtDQUNyRSxNQUFNLGFBQWEsU0FBUyxjQUFjO0FBRTFDLFdBQVUsWUFBWTtBQUNwQixNQUFJLENBQUMsWUFBWTtBQUVmLFVBQU8sZ0JBQWdCOztBQUV6QixRQUFNLE9BQU8sS0FBSyxNQUFNLE9BQU8sV0FBVyxXQUFXO0dBQ3JEO0FBQ0YsWUFBVyxZQUFZO0FBQ3JCLFFBQU0sR0FBRyx1QkFBdUI7R0FDaEM7QUFDRixXQUFVLE9BQU8sRUFBRSxXQUFXO0FBQzVCLEtBQUcsZUFBZTtBQUNsQixRQUFNLEdBQUcsc0JBQXNCO0FBRS9CLFFBQU0sY0FBYyxpQkFBaUI7R0FDbkMsV0FBVyxLQUFLLE9BQU8sUUFBUTtHQUMvQixlQUFlLEtBQUssTUFBTTtHQUMxQixVQUFVLEtBQUs7R0FDZixjQUFjLEtBQUssTUFBTSxZQUFZO0dBQ3JDLFVBQVUsS0FBSyxVQUFVLFFBQVE7R0FDakMsUUFBUSxL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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
1
|
+
import { type Knex } from "knex";
|
|
2
|
+
import { type CacheManager } from "../cache/types";
|
|
3
|
+
import { type EntityManager } from "../entity/entity-manager";
|
|
4
4
|
export type DataExplorerStrategy = "sample" | "ids" | "query" | "file" | "recent" | "random";
|
|
5
5
|
/** WHERE 조건 타입 (객체 또는 Knex QueryBuilder 함수) */
|
|
6
6
|
export type WhereCondition = Record<string, unknown> | ((queryBuilder: Knex.QueryBuilder) => void);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-explorer.d.ts","sourceRoot":"","sources":["../../src/testing/data-explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"data-explorer.d.ts","sourceRoot":"","sources":["../../src/testing/data-explorer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7F,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;AAEnG,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC9D,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,oBAAoB;IACpB,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KACpC,CAAC;IACF,0CAA0C;IAC1C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;CACjD,CAAC;AAGF,qBAAa,YAAY;IAIrB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,aAAa;IAJvB,OAAO,CAAC,KAAK,CAAC,CAAe;gBAGnB,EAAE,EAAE,IAAI,EACR,aAAa,EAAE,OAAO,aAAa,EAC3C,YAAY,CAAC,EAAE,YAAY;IAKvB,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAmBvB,eAAe;YAsDf,UAAU;YAqCV,YAAY;IAO1B,OAAO,CAAC,mBAAmB;YAKb,YAAY;IA8BpB,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAuBrC;;OAEG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAWrD,OAAO,CAAC,gBAAgB;IAoBxB;;;OAGG;IACG,oBAAoB,CACxB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IA6BtC;;OAEG;YACW,kBAAkB;CAkHjC"}
|