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,54 +1,58 @@
|
|
|
1
|
-
import { loadConfig } from "../api/config.js";
|
|
1
|
+
import { init_config, loadConfig } from "../api/config.js";
|
|
2
2
|
import { ParallelDBManager } from "./parallel-db-manager.js";
|
|
3
|
+
|
|
4
|
+
//#region src/testing/global-setup.ts
|
|
5
|
+
init_config();
|
|
3
6
|
/**
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
};
|
|
41
|
-
};
|
|
7
|
+
* vitest globalSetup 함수를 생성합니다.
|
|
8
|
+
* sonamu.config.ts의 test 설정을 읽어서 병렬 테스트 환경을 구성합니다.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // src/testing/global.ts
|
|
13
|
+
* export { setup } from "sonamu/test";
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // src/testing/global.ts
|
|
19
|
+
* import { createGlobalSetup } from "sonamu/test";
|
|
20
|
+
* export const setup = createGlobalSetup({ rootPath: process.cwd() });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
function createGlobalSetup() {
|
|
24
|
+
return async function setup$1() {
|
|
25
|
+
const { findApiRootPath } = await import("../utils/utils.js");
|
|
26
|
+
const rootPath = findApiRootPath();
|
|
27
|
+
const config = await loadConfig(rootPath);
|
|
28
|
+
if (!config.test?.parallel) {
|
|
29
|
+
return async function teardown() {};
|
|
30
|
+
}
|
|
31
|
+
const maxWorkers = config.test.maxWorkers ?? 4;
|
|
32
|
+
const templateDb = `${config.database.name}_test`;
|
|
33
|
+
const connectionConfig = {
|
|
34
|
+
client: config.database.database ?? "pg",
|
|
35
|
+
connection: config.database.environments?.test?.connection ?? config.database.defaultOptions.connection
|
|
36
|
+
};
|
|
37
|
+
const manager = new ParallelDBManager(maxWorkers, connectionConfig, templateDb);
|
|
38
|
+
await manager.createWorkerDatabases();
|
|
39
|
+
return async function teardown() {
|
|
40
|
+
await manager.dropWorkerDatabases();
|
|
41
|
+
};
|
|
42
|
+
};
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
* 기본 globalSetup 함수입니다.
|
|
46
|
+
* sonamu.config.ts의 test 설정을 읽어서 병렬 테스트 환경을 구성합니다.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* // src/testing/global.ts
|
|
51
|
+
* export { setup } from "sonamu/test";
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
const setup = createGlobalSetup();
|
|
53
55
|
|
|
54
|
-
//#
|
|
56
|
+
//#endregion
|
|
57
|
+
export { createGlobalSetup, setup };
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXNldHVwLmpzIiwibmFtZXMiOlsic2V0dXAiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9nbG9iYWwtc2V0dXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuLi9hcGkvY29uZmlnXCI7XG5pbXBvcnQgeyBQYXJhbGxlbERCTWFuYWdlciB9IGZyb20gXCIuL3BhcmFsbGVsLWRiLW1hbmFnZXJcIjtcblxuLyoqXG4gKiB2aXRlc3QgZ2xvYmFsU2V0dXAg7ZWo7IiY66W8IOyDneyEse2VqeuLiOuLpC5cbiAqIHNvbmFtdS5jb25maWcudHPsnZggdGVzdCDshKTsoJXsnYQg7J297Ja07IScIOuzkeugrCDthYzsiqTtirgg7ZmY6rK97J2EIOq1rOyEse2VqeuLiOuLpC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gc3JjL3Rlc3RpbmcvZ2xvYmFsLnRzXG4gKiBleHBvcnQgeyBzZXR1cCB9IGZyb20gXCJzb25hbXUvdGVzdFwiO1xuICogYGBgXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIHNyYy90ZXN0aW5nL2dsb2JhbC50c1xuICogaW1wb3J0IHsgY3JlYXRlR2xvYmFsU2V0dXAgfSBmcm9tIFwic29uYW11L3Rlc3RcIjtcbiAqIGV4cG9ydCBjb25zdCBzZXR1cCA9IGNyZWF0ZUdsb2JhbFNldHVwKHsgcm9vdFBhdGg6IHByb2Nlc3MuY3dkKCkgfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdsb2JhbFNldHVwKCkge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gc2V0dXAoKSB7XG4gICAgY29uc3QgeyBmaW5kQXBpUm9vdFBhdGggfSA9IGF3YWl0IGltcG9ydChcIi4uL3V0aWxzL3V0aWxzXCIpO1xuICAgIGNvbnN0IHJvb3RQYXRoID0gZmluZEFwaVJvb3RQYXRoKCk7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyhyb290UGF0aCk7XG5cbiAgICAvLyDrs5HroKwg7YWM7Iqk7Yq46rCAIOu5hO2ZnOyEse2ZlOuQnCDqsr3smrAg7JWE66y06rKD64+EIO2VmOyngCDslYrsnYxcbiAgICBpZiAoIWNvbmZpZy50ZXN0Py5wYXJhbGxlbCkge1xuICAgICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHRlYXJkb3duKCkge1xuICAgICAgICAvLyBuby1vcFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXhXb3JrZXJzID0gY29uZmlnLnRlc3QubWF4V29ya2VycyA/PyA0O1xuICAgIGNvbnN0IHRlbXBsYXRlRGIgPSBgJHtjb25maWcuZGF0YWJhc2UubmFtZX1fdGVzdGA7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uQ29uZmlnID0ge1xuICAgICAgY2xpZW50OiBjb25maWcuZGF0YWJhc2UuZGF0YWJhc2UgPz8gKFwicGdcIiBhcyBjb25zdCksXG4gICAgICBjb25uZWN0aW9uOlxuICAgICAgICBjb25maWcuZGF0YWJhc2UuZW52aXJvbm1lbnRzPy50ZXN0Py5jb25uZWN0aW9uID8/IGNvbmZpZy5kYXRhYmFzZS5kZWZhdWx0T3B0aW9ucy5jb25uZWN0aW9uLFxuICAgIH07XG5cbiAgICBjb25zdCBtYW5hZ2VyID0gbmV3IFBhcmFsbGVsREJNYW5hZ2VyKG1heFdvcmtlcnMsIGNvbm5lY3Rpb25Db25maWcsIHRlbXBsYXRlRGIpO1xuICAgIGF3YWl0IG1hbmFnZXIuY3JlYXRlV29ya2VyRGF0YWJhc2VzKCk7XG5cbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gdGVhcmRvd24oKSB7XG4gICAgICBhd2FpdCBtYW5hZ2VyLmRyb3BXb3JrZXJEYXRhYmFzZXMoKTtcbiAgICB9O1xuICB9O1xufVxuXG4vKipcbiAqIOq4sOuzuCBnbG9iYWxTZXR1cCDtlajsiJjsnoXri4jri6QuXG4gKiBzb25hbXUuY29uZmlnLnRz7J2YIHRlc3Qg7ISk7KCV7J2EIOydveyWtOyEnCDrs5HroKwg7YWM7Iqk7Yq4IO2ZmOqyveydhCDqtazshLHtlanri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIHNyYy90ZXN0aW5nL2dsb2JhbC50c1xuICogZXhwb3J0IHsgc2V0dXAgfSBmcm9tIFwic29uYW11L3Rlc3RcIjtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3Qgc2V0dXAgPSBjcmVhdGVHbG9iYWxTZXR1cCgpO1xuIl0sIm1hcHBpbmdzIjoiOzs7O2FBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQjNDLFNBQWdCLG9CQUFvQjtBQUNsQyxRQUFPLGVBQWVBLFVBQVE7RUFDNUIsTUFBTSxFQUFFLG9CQUFvQixNQUFNLE9BQU87RUFDekMsTUFBTSxXQUFXLGlCQUFpQjtFQUNsQyxNQUFNLFNBQVMsTUFBTSxXQUFXLFNBQVM7QUFHekMsTUFBSSxDQUFDLE9BQU8sTUFBTSxVQUFVO0FBQzFCLFVBQU8sZUFBZSxXQUFXOztFQUtuQyxNQUFNLGFBQWEsT0FBTyxLQUFLLGNBQWM7RUFDN0MsTUFBTSxhQUFhLEdBQUcsT0FBTyxTQUFTLEtBQUs7RUFFM0MsTUFBTSxtQkFBbUI7R0FDdkIsUUFBUSxPQUFPLFNBQVMsWUFBYTtHQUNyQyxZQUNFLE9BQU8sU0FBUyxjQUFjLE1BQU0sY0FBYyxPQUFPLFNBQVMsZUFBZTtHQUNwRjtFQUVELE1BQU0sVUFBVSxJQUFJLGtCQUFrQixZQUFZLGtCQUFrQixXQUFXO0FBQy9FLFFBQU0sUUFBUSx1QkFBdUI7QUFFckMsU0FBTyxlQUFlLFdBQVc7QUFDL0IsU0FBTSxRQUFRLHFCQUFxQjs7Ozs7Ozs7Ozs7Ozs7QUFlekMsTUFBYSxRQUFRLG1CQUFtQiJ9
|
package/dist/testing/index.js
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { FixtureManager, FixtureManagerClass, init_fixture_manager } from "./fixture-manager.js";
|
|
2
|
+
import { DataExplorer, init_data_explorer } from "./data-explorer.js";
|
|
3
|
+
import { FixtureGenerator, init_fixture_generator } from "./fixture-generator.js";
|
|
4
|
+
import { bootstrap, runWithContext, runWithMockContext, test, testAs } from "./bootstrap.js";
|
|
5
|
+
import { DevVitestManager, init_dev_vitest_manager } from "./dev-vitest-manager.js";
|
|
6
|
+
import { createFixtureLoader } from "./fixture-loader.js";
|
|
7
|
+
import { ParallelDBManager } from "./parallel-db-manager.js";
|
|
8
|
+
import { createGlobalSetup, setup } from "./global-setup.js";
|
|
9
|
+
import { NaiteVitestReporter } from "./naite-vitest-reporter.js";
|
|
10
|
+
import { getSonamuTestConfig } from "./vitest-helpers.js";
|
|
11
11
|
|
|
12
|
-
//#
|
|
12
|
+
//#region src/testing/index.ts
|
|
13
|
+
init_data_explorer();
|
|
14
|
+
init_dev_vitest_manager();
|
|
15
|
+
init_fixture_generator();
|
|
16
|
+
init_fixture_manager();
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { DataExplorer, DevVitestManager, FixtureGenerator, FixtureManager, FixtureManagerClass, NaiteVitestReporter, ParallelDBManager, bootstrap, createFixtureLoader, createGlobalSetup, getSonamuTestConfig, runWithContext, runWithMockContext, setup, test, testAs };
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYm9vdHN0cmFwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhLWV4cGxvcmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZXYtdml0ZXN0LW1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZpeHR1cmUtZ2VuZXJhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9maXh0dXJlLWxvYWRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZml4dHVyZS1tYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nbG9iYWwtc2V0dXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25haXRlLXZpdGVzdC1yZXBvcnRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyYWxsZWwtZGItbWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdml0ZXN0LWhlbHBlcnNcIjtcbiJdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { NaiteReporter } from "../naite/naite-reporter.js";
|
|
2
|
+
|
|
3
|
+
//#region src/testing/naite-vitest-reporter.ts
|
|
2
4
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
* Naite Vitest Reporter
|
|
6
|
+
*
|
|
7
|
+
* 테스트 런 시작/종료를 정확히 감지하여 NaiteReporter에 알립니다.
|
|
8
|
+
* - onTestRunStart: 테스트 런 시작 시 (첫 실행 및 watch 재실행 포함)
|
|
9
|
+
* - onTestRunEnd: 각 런 종료 시
|
|
10
|
+
*/
|
|
11
|
+
const NaiteVitestReporter = {
|
|
12
|
+
async onTestRunStart() {
|
|
13
|
+
await NaiteReporter.startTestRun();
|
|
14
|
+
},
|
|
15
|
+
async onTestRunEnd() {
|
|
16
|
+
await NaiteReporter.endTestRun();
|
|
17
|
+
}
|
|
15
18
|
};
|
|
16
19
|
|
|
17
|
-
//#
|
|
20
|
+
//#endregion
|
|
21
|
+
export { NaiteVitestReporter };
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFpdGUtdml0ZXN0LXJlcG9ydGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL25haXRlLXZpdGVzdC1yZXBvcnRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYWl0ZVJlcG9ydGVyIH0gZnJvbSBcIi4uL25haXRlL25haXRlLXJlcG9ydGVyXCI7XG5cbi8qKlxuICogTmFpdGUgVml0ZXN0IFJlcG9ydGVyXG4gKlxuICog7YWM7Iqk7Yq4IOufsCDsi5zsnpEv7KKF66OM66W8IOygle2Zle2eiCDqsJDsp4DtlZjsl6wgTmFpdGVSZXBvcnRlcuyXkCDslYzrpr3ri4jri6QuXG4gKiAtIG9uVGVzdFJ1blN0YXJ0OiDthYzsiqTtirgg65+wIOyLnOyekSDsi5wgKOyyqyDsi6Ttlokg67CPIHdhdGNoIOyerOyLpO2WiSDtj6ztlagpXG4gKiAtIG9uVGVzdFJ1bkVuZDog6rCBIOufsCDsooXro4wg7IucXG4gKi9cbmV4cG9ydCBjb25zdCBOYWl0ZVZpdGVzdFJlcG9ydGVyID0ge1xuICBhc3luYyBvblRlc3RSdW5TdGFydCgpIHtcbiAgICBhd2FpdCBOYWl0ZVJlcG9ydGVyLnN0YXJ0VGVzdFJ1bigpO1xuICB9LFxuXG4gIGFzeW5jIG9uVGVzdFJ1bkVuZCgpIHtcbiAgICBhd2FpdCBOYWl0ZVJlcG9ydGVyLmVuZFRlc3RSdW4oKTtcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFTQSxNQUFhLHNCQUFzQjtDQUNqQyxNQUFNLGlCQUFpQjtBQUNyQixRQUFNLGNBQWMsY0FBYzs7Q0FHcEMsTUFBTSxlQUFlO0FBQ25CLFFBQU0sY0FBYyxZQUFZOztDQUVuQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-db-manager.d.ts","sourceRoot":"","sources":["../../src/testing/parallel-db-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"parallel-db-manager.d.ts","sourceRoot":"","sources":["../../src/testing/parallel-db-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC;;;;;GAKG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,EACrB,UAAU,EAAE,MAAM;IAErC;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C5C;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC1C;;;OAGG;IACH,WAAW,IAAI,MAAM;IAKrB;;OAEG;IACH,cAAc,IAAI,OAAO;CAG1B"}
|
|
@@ -1,88 +1,73 @@
|
|
|
1
|
-
import { createKnexInstance } from "../database/knex.js";
|
|
1
|
+
import { createKnexInstance, init_knex } from "../database/knex.js";
|
|
2
|
+
|
|
3
|
+
//#region src/testing/parallel-db-manager.ts
|
|
4
|
+
init_knex();
|
|
2
5
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
try {
|
|
25
|
-
const workerDbNames = Array.from({
|
|
26
|
-
length: this.maxWorkers
|
|
27
|
-
}, (_, i)=>`${this.templateDb}_${i + 1}`);
|
|
28
|
-
// 1. 기존 연결 종료 (병렬) worker DB + template DB (PG 18에서 FILE_COPY 시 template에 exclusive access 필요)
|
|
29
|
-
await Promise.all([
|
|
30
|
-
...workerDbNames,
|
|
31
|
-
this.templateDb
|
|
32
|
-
].map((dbName)=>adminDb.raw(`
|
|
6
|
+
* 병렬 테스트를 위한 Worker별 DB 관리 클래스입니다.
|
|
7
|
+
*
|
|
8
|
+
* Vitest의 globalSetup/globalTeardown에서 사용하여
|
|
9
|
+
* 템플릿 DB에서 worker 수만큼 테스트 DB를 복제/삭제합니다.
|
|
10
|
+
*/
|
|
11
|
+
var ParallelDBManager = class {
|
|
12
|
+
constructor(maxWorkers, dbConfig, templateDb) {
|
|
13
|
+
this.maxWorkers = maxWorkers;
|
|
14
|
+
this.dbConfig = dbConfig;
|
|
15
|
+
this.templateDb = templateDb;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Worker별 테스트 DB를 템플릿에서 복제하여 생성합니다.
|
|
19
|
+
* globalSetup에서 호출됩니다.
|
|
20
|
+
*/
|
|
21
|
+
async createWorkerDatabases() {
|
|
22
|
+
const adminDb = createKnexInstance({ ...this.dbConfig });
|
|
23
|
+
try {
|
|
24
|
+
const workerDbNames = Array.from({ length: this.maxWorkers }, (_, i) => `${this.templateDb}_${i + 1}`);
|
|
25
|
+
await Promise.all([...workerDbNames, this.templateDb].map((dbName) => adminDb.raw(`
|
|
33
26
|
SELECT pg_terminate_backend(pg_stat_activity.pid)
|
|
34
27
|
FROM pg_stat_activity
|
|
35
28
|
WHERE pg_stat_activity.datname = ?
|
|
36
29
|
AND pid <> pg_backend_pid()
|
|
37
|
-
`, [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
...this.dbConfig
|
|
54
|
-
});
|
|
55
|
-
try {
|
|
56
|
-
const workerDbNames = Array.from({
|
|
57
|
-
length: this.maxWorkers
|
|
58
|
-
}, (_, i)=>`${this.templateDb}_${i + 1}`);
|
|
59
|
-
// 연결 종료 (병렬)
|
|
60
|
-
await Promise.all(workerDbNames.map((dbName)=>adminDb.raw(`
|
|
30
|
+
`, [dbName])));
|
|
31
|
+
await Promise.all(workerDbNames.map((dbName) => adminDb.raw(`DROP DATABASE IF EXISTS "${dbName}"`)));
|
|
32
|
+
await Promise.all(workerDbNames.map((dbName) => adminDb.raw(`CREATE DATABASE "${dbName}" TEMPLATE "${this.templateDb}" STRATEGY FILE_COPY`)));
|
|
33
|
+
} finally {
|
|
34
|
+
await adminDb.destroy();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 생성한 Worker DB들을 삭제합니다.
|
|
39
|
+
* globalTeardown에서 호출됩니다.
|
|
40
|
+
*/
|
|
41
|
+
async dropWorkerDatabases() {
|
|
42
|
+
const adminDb = createKnexInstance({ ...this.dbConfig });
|
|
43
|
+
try {
|
|
44
|
+
const workerDbNames = Array.from({ length: this.maxWorkers }, (_, i) => `${this.templateDb}_${i + 1}`);
|
|
45
|
+
await Promise.all(workerDbNames.map((dbName) => adminDb.raw(`
|
|
61
46
|
SELECT pg_terminate_backend(pg_stat_activity.pid)
|
|
62
47
|
FROM pg_stat_activity
|
|
63
48
|
WHERE pg_stat_activity.datname = ?
|
|
64
49
|
AND pid <> pg_backend_pid()
|
|
65
|
-
`, [
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
}
|
|
50
|
+
`, [dbName])));
|
|
51
|
+
await Promise.all(workerDbNames.map((dbName) => adminDb.raw(`DROP DATABASE IF EXISTS "${dbName}"`)));
|
|
52
|
+
} finally {
|
|
53
|
+
await adminDb.destroy();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 현재 Worker의 ID를 반환합니다.
|
|
58
|
+
* Vitest는 VITEST_POOL_ID 환경변수로 worker를 식별합니다.
|
|
59
|
+
*/
|
|
60
|
+
getWorkerId() {
|
|
61
|
+
return parseInt(process.env.VITEST_POOL_ID ?? "1", 10);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 병렬 테스트 모드인지 확인합니다.
|
|
65
|
+
*/
|
|
66
|
+
isParallelMode() {
|
|
67
|
+
return process.env.SONAMU_WORKER_DB === "true";
|
|
68
|
+
}
|
|
69
|
+
};
|
|
87
70
|
|
|
88
|
-
//#
|
|
71
|
+
//#endregion
|
|
72
|
+
export { ParallelDBManager };
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwtZGItbWFuYWdlci5qcyIsIm5hbWVzIjpbIm1heFdvcmtlcnM6IG51bWJlciIsImRiQ29uZmlnOiBLbmV4LkNvbmZpZyIsInRlbXBsYXRlRGI6IHN0cmluZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL3BhcmFsbGVsLWRiLW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBLbmV4IH0gZnJvbSBcImtuZXhcIjtcblxuaW1wb3J0IHsgY3JlYXRlS25leEluc3RhbmNlIH0gZnJvbSBcIi4uL2RhdGFiYXNlL2tuZXhcIjtcblxuLyoqXG4gKiDrs5HroKwg7YWM7Iqk7Yq466W8IOychO2VnCBXb3JrZXLrs4QgREIg6rSA66asIO2BtOuemOyKpOyeheuLiOuLpC5cbiAqXG4gKiBWaXRlc3TsnZggZ2xvYmFsU2V0dXAvZ2xvYmFsVGVhcmRvd27sl5DshJwg7IKs7Jqp7ZWY7JesXG4gKiDthZztlIzrpr8gRELsl5DshJwgd29ya2VyIOyImOunjO2BvCDthYzsiqTtirggRELrpbwg67O17KCcL+yCreygnO2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhcmFsbGVsREJNYW5hZ2VyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXhXb3JrZXJzOiBudW1iZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYkNvbmZpZzogS25leC5Db25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZURiOiBzdHJpbmcsXG4gICkge31cbiAgLyoqXG4gICAqIFdvcmtlcuuzhCDthYzsiqTtirggRELrpbwg7YWc7ZSM66a/7JeQ7IScIOuzteygnO2VmOyXrCDsg53shLHtlanri4jri6QuXG4gICAqIGdsb2JhbFNldHVw7JeQ7IScIO2YuOy2nOuQqeuLiOuLpC5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVdvcmtlckRhdGFiYXNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBwb3N0Z3JlcyBEQuyXkCDsl7DqsrDtlZjsl6wgQ1JFQVRFIERBVEFCQVNFIOyLpO2WiVxuICAgIGNvbnN0IGFkbWluRGIgPSBjcmVhdGVLbmV4SW5zdGFuY2Uoe1xuICAgICAgLi4udGhpcy5kYkNvbmZpZyxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB3b3JrZXJEYk5hbWVzID0gQXJyYXkuZnJvbShcbiAgICAgICAgeyBsZW5ndGg6IHRoaXMubWF4V29ya2VycyB9LFxuICAgICAgICAoXywgaSkgPT4gYCR7dGhpcy50ZW1wbGF0ZURifV8ke2kgKyAxfWAsXG4gICAgICApO1xuXG4gICAgICAvLyAxLiDquLDsobQg7Jew6rKwIOyiheujjCAo67OR66CsKSB3b3JrZXIgREIgKyB0ZW1wbGF0ZSBEQiAoUEcgMTjsl5DshJwgRklMRV9DT1BZIOyLnCB0ZW1wbGF0ZeyXkCBleGNsdXNpdmUgYWNjZXNzIO2VhOyalClcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBbLi4ud29ya2VyRGJOYW1lcywgdGhpcy50ZW1wbGF0ZURiXS5tYXAoKGRiTmFtZSkgPT5cbiAgICAgICAgICBhZG1pbkRiLnJhdyhcbiAgICAgICAgICAgIGBcbiAgICAgICAgICAgIFNFTEVDVCBwZ190ZXJtaW5hdGVfYmFja2VuZChwZ19zdGF0X2FjdGl2aXR5LnBpZClcbiAgICAgICAgICAgIEZST00gcGdfc3RhdF9hY3Rpdml0eVxuICAgICAgICAgICAgV0hFUkUgcGdfc3RhdF9hY3Rpdml0eS5kYXRuYW1lID0gP1xuICAgICAgICAgICAgQU5EIHBpZCA8PiBwZ19iYWNrZW5kX3BpZCgpXG4gICAgICAgICAgYCxcbiAgICAgICAgICAgIFtkYk5hbWVdLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApO1xuXG4gICAgICAvLyAyLiDquLDsobQgREIg7IKt7KCcICjrs5HroKwpXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgd29ya2VyRGJOYW1lcy5tYXAoKGRiTmFtZSkgPT4gYWRtaW5EYi5yYXcoYERST1AgREFUQUJBU0UgSUYgRVhJU1RTIFwiJHtkYk5hbWV9XCJgKSksXG4gICAgICApO1xuXG4gICAgICAvLyAzLiDthZztlIzrpr/sl5DshJwg67O17KCcICjrs5HroKwpXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgd29ya2VyRGJOYW1lcy5tYXAoKGRiTmFtZSkgPT5cbiAgICAgICAgICBhZG1pbkRiLnJhdyhcbiAgICAgICAgICAgIGBDUkVBVEUgREFUQUJBU0UgXCIke2RiTmFtZX1cIiBURU1QTEFURSBcIiR7dGhpcy50ZW1wbGF0ZURifVwiIFNUUkFURUdZIEZJTEVfQ09QWWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGFkbWluRGIuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDsg53shLHtlZwgV29ya2VyIERC65Ok7J2EIOyCreygnO2VqeuLiOuLpC5cbiAgICogZ2xvYmFsVGVhcmRvd27sl5DshJwg7Zi47Lac65Cp64uI64ukLlxuICAgKi9cbiAgYXN5bmMgZHJvcFdvcmtlckRhdGFiYXNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBhZG1pbkRiID0gY3JlYXRlS25leEluc3RhbmNlKHtcbiAgICAgIC4uLnRoaXMuZGJDb25maWcsXG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgd29ya2VyRGJOYW1lcyA9IEFycmF5LmZyb20oXG4gICAgICAgIHsgbGVuZ3RoOiB0aGlzLm1heFdvcmtlcnMgfSxcbiAgICAgICAgKF8sIGkpID0+IGAke3RoaXMudGVtcGxhdGVEYn1fJHtpICsgMX1gLFxuICAgICAgKTtcblxuICAgICAgLy8g7Jew6rKwIOyiheujjCAo67OR66CsKVxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHdvcmtlckRiTmFtZXMubWFwKChkYk5hbWUpID0+XG4gICAgICAgICAgYWRtaW5EYi5yYXcoXG4gICAgICAgICAgICBgXG4gICAgICAgICAgICBTRUxFQ1QgcGdfdGVybWluYXRlX2JhY2tlbmQocGdfc3RhdF9hY3Rpdml0eS5waWQpXG4gICAgICAgICAgICBGUk9NIHBnX3N0YXRfYWN0aXZpdHlcbiAgICAgICAgICAgIFdIRVJFIHBnX3N0YXRfYWN0aXZpdHkuZGF0bmFtZSA9ID9cbiAgICAgICAgICAgIEFORCBwaWQgPD4gcGdfYmFja2VuZF9waWQoKVxuICAgICAgICAgIGAsXG4gICAgICAgICAgICBbZGJOYW1lXSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKTtcblxuICAgICAgLy8gREIg7IKt7KCcICjrs5HroKwpXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgd29ya2VyRGJOYW1lcy5tYXAoKGRiTmFtZSkgPT4gYWRtaW5EYi5yYXcoYERST1AgREFUQUJBU0UgSUYgRVhJU1RTIFwiJHtkYk5hbWV9XCJgKSksXG4gICAgICApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBhZG1pbkRiLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog7ZiE7J6sIFdvcmtlcuydmCBJROulvCDrsJjtmZjtlanri4jri6QuXG4gICAqIFZpdGVzdOuKlCBWSVRFU1RfUE9PTF9JRCDtmZjqsr3rs4DsiJjroZwgd29ya2Vy66W8IOyLneuzhO2VqeuLiOuLpC5cbiAgICovXG4gIGdldFdvcmtlcklkKCk6IG51bWJlciB7XG4gICAgLy8gVklURVNUX1BPT0xfSUTripQgMeu2gO2EsCDsi5zsnpFcbiAgICByZXR1cm4gcGFyc2VJbnQocHJvY2Vzcy5lbnYuVklURVNUX1BPT0xfSUQgPz8gXCIxXCIsIDEwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDrs5HroKwg7YWM7Iqk7Yq4IOuqqOuTnOyduOyngCDtmZXsnbjtlanri4jri6QuXG4gICAqL1xuICBpc1BhcmFsbGVsTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5lbnYuU09OQU1VX1dPUktFUl9EQiA9PT0gXCJ0cnVlXCI7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O1dBRXNEOzs7Ozs7O0FBUXRELElBQWEsb0JBQWIsTUFBK0I7Q0FDN0IsWUFDRSxBQUFpQkEsWUFDakIsQUFBaUJDLFVBQ2pCLEFBQWlCQyxZQUNqQjtFQUhpQjtFQUNBO0VBQ0E7Ozs7OztDQU1uQixNQUFNLHdCQUF1QztFQUUzQyxNQUFNLFVBQVUsbUJBQW1CLEVBQ2pDLEdBQUcsS0FBSyxVQUNULENBQUM7QUFFRixNQUFJO0dBQ0YsTUFBTSxnQkFBZ0IsTUFBTSxLQUMxQixFQUFFLFFBQVEsS0FBSyxZQUFZLEdBQzFCLEdBQUcsTUFBTSxHQUFHLEtBQUssV0FBVyxHQUFHLElBQUksSUFDckM7QUFHRCxTQUFNLFFBQVEsSUFDWixDQUFDLEdBQUcsZUFBZSxLQUFLLFdBQVcsQ0FBQyxLQUFLLFdBQ3ZDLFFBQVEsSUFDTjs7Ozs7YUFNQSxDQUFDLE9BQU8sQ0FDVCxDQUNGLENBQ0Y7QUFHRCxTQUFNLFFBQVEsSUFDWixjQUFjLEtBQUssV0FBVyxRQUFRLElBQUksNEJBQTRCLE9BQU8sR0FBRyxDQUFDLENBQ2xGO0FBR0QsU0FBTSxRQUFRLElBQ1osY0FBYyxLQUFLLFdBQ2pCLFFBQVEsSUFDTixvQkFBb0IsT0FBTyxjQUFjLEtBQUssV0FBVyxzQkFDMUQsQ0FDRixDQUNGO1lBQ087QUFDUixTQUFNLFFBQVEsU0FBUzs7Ozs7OztDQVEzQixNQUFNLHNCQUFxQztFQUN6QyxNQUFNLFVBQVUsbUJBQW1CLEVBQ2pDLEdBQUcsS0FBSyxVQUNULENBQUM7QUFFRixNQUFJO0dBQ0YsTUFBTSxnQkFBZ0IsTUFBTSxLQUMxQixFQUFFLFFBQVEsS0FBSyxZQUFZLEdBQzFCLEdBQUcsTUFBTSxHQUFHLEtBQUssV0FBVyxHQUFHLElBQUksSUFDckM7QUFHRCxTQUFNLFFBQVEsSUFDWixjQUFjLEtBQUssV0FDakIsUUFBUSxJQUNOOzs7OzthQU1BLENBQUMsT0FBTyxDQUNULENBQ0YsQ0FDRjtBQUdELFNBQU0sUUFBUSxJQUNaLGNBQWMsS0FBSyxXQUFXLFFBQVEsSUFBSSw0QkFBNEIsT0FBTyxHQUFHLENBQUMsQ0FDbEY7WUFDTztBQUNSLFNBQU0sUUFBUSxTQUFTOzs7Ozs7O0NBUTNCLGNBQXNCO0FBRXBCLFNBQU8sU0FBUyxRQUFRLElBQUksa0JBQWtCLEtBQUssR0FBRzs7Ozs7Q0FNeEQsaUJBQTBCO0FBQ3hCLFNBQU8sUUFBUSxJQUFJLHFCQUFxQiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-helpers.d.ts","sourceRoot":"","sources":["../../src/testing/vitest-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"vitest-helpers.d.ts","sourceRoot":"","sources":["../../src/testing/vitest-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,KAAK,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAoBvF"}
|
|
@@ -1,36 +1,40 @@
|
|
|
1
|
-
import { loadConfig } from "../api/config.js";
|
|
1
|
+
import { init_config, loadConfig } from "../api/config.js";
|
|
2
|
+
|
|
3
|
+
//#region src/testing/vitest-helpers.ts
|
|
4
|
+
init_config();
|
|
2
5
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
return options;
|
|
6
|
+
* sonamu.config.ts의 test 설정을 기반으로 vitest 테스트 설정을 반환합니다.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // vitest.config.ts
|
|
11
|
+
* import { getSonamuTestConfig } from "sonamu/test";
|
|
12
|
+
* import { defineConfig } from "vitest/config";
|
|
13
|
+
*
|
|
14
|
+
* export default defineConfig(async () => ({
|
|
15
|
+
* test: await getSonamuTestConfig({
|
|
16
|
+
* setupFiles: ["./src/testing/setup-mocks.ts"],
|
|
17
|
+
* }),
|
|
18
|
+
* }));
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
async function getSonamuTestConfig(options) {
|
|
22
|
+
const { findApiRootPath } = await import("../utils/utils.js");
|
|
23
|
+
const config = await loadConfig(findApiRootPath());
|
|
24
|
+
const isParallel = config.test?.parallel ?? false;
|
|
25
|
+
const maxWorkers = config.test?.maxWorkers ?? 4;
|
|
26
|
+
if (isParallel) {
|
|
27
|
+
return {
|
|
28
|
+
pool: "forks",
|
|
29
|
+
maxWorkers,
|
|
30
|
+
isolate: false,
|
|
31
|
+
env: { SONAMU_WORKER_DB: "true" },
|
|
32
|
+
...options
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return options;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
//#
|
|
38
|
+
//#endregion
|
|
39
|
+
export { getSonamuTestConfig };
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LWhlbHBlcnMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Rpbmcvdml0ZXN0LWhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBWaXRlVXNlckNvbmZpZyB9IGZyb20gXCJ2aXRlc3QvY29uZmlnXCI7XG5cbmltcG9ydCB7IGxvYWRDb25maWcgfSBmcm9tIFwiLi4vYXBpL2NvbmZpZ1wiO1xuXG50eXBlIFZpdGVzdENvbmZpZyA9IFZpdGVVc2VyQ29uZmlnW1widGVzdFwiXTtcblxuLyoqXG4gKiBzb25hbXUuY29uZmlnLnRz7J2YIHRlc3Qg7ISk7KCV7J2EIOq4sOuwmOycvOuhnCB2aXRlc3Qg7YWM7Iqk7Yq4IOyEpOygleydhCDrsJjtmZjtlanri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIHZpdGVzdC5jb25maWcudHNcbiAqIGltcG9ydCB7IGdldFNvbmFtdVRlc3RDb25maWcgfSBmcm9tIFwic29uYW11L3Rlc3RcIjtcbiAqIGltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlc3QvY29uZmlnXCI7XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKGFzeW5jICgpID0+ICh7XG4gKiAgIHRlc3Q6IGF3YWl0IGdldFNvbmFtdVRlc3RDb25maWcoe1xuICogICAgIHNldHVwRmlsZXM6IFtcIi4vc3JjL3Rlc3Rpbmcvc2V0dXAtbW9ja3MudHNcIl0sXG4gKiAgIH0pLFxuICogfSkpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTb25hbXVUZXN0Q29uZmlnKG9wdGlvbnM/OiBWaXRlc3RDb25maWcpOiBQcm9taXNlPFZpdGVzdENvbmZpZz4ge1xuICBjb25zdCB7IGZpbmRBcGlSb290UGF0aCB9ID0gYXdhaXQgaW1wb3J0KFwiLi4vdXRpbHMvdXRpbHNcIik7XG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGxvYWRDb25maWcoZmluZEFwaVJvb3RQYXRoKCkpO1xuXG4gIGNvbnN0IGlzUGFyYWxsZWwgPSBjb25maWcudGVzdD8ucGFyYWxsZWwgPz8gZmFsc2U7XG4gIGNvbnN0IG1heFdvcmtlcnMgPSBjb25maWcudGVzdD8ubWF4V29ya2VycyA/PyA0O1xuXG4gIGlmIChpc1BhcmFsbGVsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvb2w6IFwiZm9ya3NcIixcbiAgICAgIG1heFdvcmtlcnMsXG4gICAgICBpc29sYXRlOiBmYWxzZSxcbiAgICAgIGVudjoge1xuICAgICAgICBTT05BTVVfV09SS0VSX0RCOiBcInRydWVcIixcbiAgICAgIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O2FBRTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQW9CM0MsZUFBc0Isb0JBQW9CLFNBQStDO0NBQ3ZGLE1BQU0sRUFBRSxvQkFBb0IsTUFBTSxPQUFPO0NBQ3pDLE1BQU0sU0FBUyxNQUFNLFdBQVcsaUJBQWlCLENBQUM7Q0FFbEQsTUFBTSxhQUFhLE9BQU8sTUFBTSxZQUFZO0NBQzVDLE1BQU0sYUFBYSxPQUFPLE1BQU0sY0FBYztBQUU5QyxLQUFJLFlBQVk7QUFDZCxTQUFPO0dBQ0wsTUFBTTtHQUNOO0dBQ0EsU0FBUztHQUNULEtBQUssRUFDSCxrQkFBa0IsUUFDbkI7R0FDRCxHQUFHO0dBQ0o7O0FBR0gsUUFBTyJ9
|