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
package/dist/auth/index.js
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { BASE_FIELD_MAPPINGS, betterAuthV1, init_better_auth_entities } from "./better-auth-entities.js";
|
|
2
|
+
import { generateBetterAuthEntities } from "./auth-generator.js";
|
|
3
|
+
import { init_knex_adapter, sonamuKnexAdapter } from "./knex-adapter.js";
|
|
4
|
+
import { ADMIN_SCHEMA, admin } from "./plugins/wrappers/admin.js";
|
|
5
|
+
import { ANONYMOUS_SCHEMA, anonymous } from "./plugins/wrappers/anonymous.js";
|
|
6
|
+
import { API_KEY_SCHEMA, apiKey } from "./plugins/wrappers/api-key.js";
|
|
7
|
+
import { JWT_SCHEMA, jwt } from "./plugins/wrappers/jwt.js";
|
|
8
|
+
import { ORGANIZATION_SCHEMA, organization } from "./plugins/wrappers/organization.js";
|
|
9
|
+
import { PASSKEY_SCHEMA, passkey } from "./plugins/wrappers/passkey.js";
|
|
10
|
+
import { PHONE_NUMBER_SCHEMA, phoneNumber } from "./plugins/wrappers/phone-number.js";
|
|
11
|
+
import { SSO_SCHEMA, sso } from "./plugins/wrappers/sso.js";
|
|
12
|
+
import { TWO_FACTOR_SCHEMA, twoFactor } from "./plugins/wrappers/two-factor.js";
|
|
13
|
+
import { USERNAME_SCHEMA, username } from "./plugins/wrappers/username.js";
|
|
14
|
+
import "./plugins/index.js";
|
|
6
15
|
|
|
7
|
-
//#
|
|
16
|
+
//#region src/auth/index.ts
|
|
17
|
+
init_better_auth_entities();
|
|
18
|
+
init_knex_adapter();
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { ADMIN_SCHEMA, ANONYMOUS_SCHEMA, API_KEY_SCHEMA, BASE_FIELD_MAPPINGS, JWT_SCHEMA, ORGANIZATION_SCHEMA, PASSKEY_SCHEMA, PHONE_NUMBER_SCHEMA, SSO_SCHEMA, TWO_FACTOR_SCHEMA, USERNAME_SCHEMA, admin, anonymous, apiKey, betterAuthV1, generateBetterAuthEntities, jwt, organization, passkey, phoneNumber, sonamuKnexAdapter, sso, twoFactor, username };
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F1dGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMgfSBmcm9tIFwiLi9hdXRoLWdlbmVyYXRvclwiO1xuZXhwb3J0IHsgZ2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXMgfSBmcm9tIFwiLi9hdXRoLWdlbmVyYXRvclwiO1xuZXhwb3J0IHsgQkFTRV9GSUVMRF9NQVBQSU5HUywgYmV0dGVyQXV0aFYxIH0gZnJvbSBcIi4vYmV0dGVyLWF1dGgtZW50aXRpZXNcIjtcbmV4cG9ydCB7IHNvbmFtdUtuZXhBZGFwdGVyIH0gZnJvbSBcIi4va25leC1hZGFwdGVyXCI7XG5cbi8vIOyZuOu2gOuhnOuKlCB3cmFwcGVyc+unjCBleHBvcnQgKGFkbWluLCB0d29GYWN0b3Ig65OxIOuemO2NvCDtlajsiJjsmYAgU0NIRU1BKVxuZXhwb3J0ICogZnJvbSBcIi4vcGx1Z2luc1wiO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OzJCQUUyRTttQkFDeEIifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
1
|
+
import { type BetterAuthOptions } from "better-auth";
|
|
2
|
+
import { type Knex } from "knex";
|
|
3
3
|
interface CleanedWhere {
|
|
4
4
|
field: string;
|
|
5
5
|
value: string | number | boolean | string[] | number[] | Date | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knex-adapter.d.ts","sourceRoot":"","sources":["../../src/auth/knex-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"knex-adapter.d.ts","sourceRoot":"","sources":["../../src/auth/knex-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMrD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,SAyGpB,SAAS,iBAAiB,uDAInC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,UAAU,EAAE,YAAY,EAAE,GACzB,IAAI,CAAC,YAAY,CAmBnB"}
|
|
@@ -1,163 +1,159 @@
|
|
|
1
|
+
import { __esmMin } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { DB, init_db } from "../database/db.js";
|
|
1
3
|
import { createAdapterFactory } from "better-auth/adapters";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* better-auth용 Sonamu knex 어댑터
|
|
5
|
-
*
|
|
6
|
-
* better-auth의 모든 쿼리를 DB.getDB()를 통해 실행하여
|
|
7
|
-
* Sonamu 테스트 트랜잭션과 동일한 커넥션을 공유합니다.
|
|
8
|
-
*/ export const sonamuKnexAdapter = ()=>{
|
|
9
|
-
let lazyOptions = null;
|
|
10
|
-
const createCustomAdapter = (getDb)=>{
|
|
11
|
-
return ({ getFieldName })=>({
|
|
12
|
-
create: async ({ model, data })=>{
|
|
13
|
-
const [row] = await getDb()(model).insert(data).returning("*");
|
|
14
|
-
return row;
|
|
15
|
-
},
|
|
16
|
-
findOne: async ({ model, where })=>{
|
|
17
|
-
let query = getDb()(model);
|
|
18
|
-
query = applyWhere(query, where);
|
|
19
|
-
const row = await query.first();
|
|
20
|
-
return row ?? null;
|
|
21
|
-
},
|
|
22
|
-
findMany: async ({ model, where, limit, offset, sortBy })=>{
|
|
23
|
-
let query = getDb()(model);
|
|
24
|
-
if (where) {
|
|
25
|
-
query = applyWhere(query, where);
|
|
26
|
-
}
|
|
27
|
-
if (sortBy) {
|
|
28
|
-
const dbField = getFieldName({
|
|
29
|
-
model,
|
|
30
|
-
field: sortBy.field
|
|
31
|
-
});
|
|
32
|
-
query = query.orderBy(dbField, sortBy.direction);
|
|
33
|
-
}
|
|
34
|
-
if (limit) {
|
|
35
|
-
query = query.limit(limit);
|
|
36
|
-
}
|
|
37
|
-
if (offset) {
|
|
38
|
-
query = query.offset(offset);
|
|
39
|
-
}
|
|
40
|
-
return await query;
|
|
41
|
-
},
|
|
42
|
-
update: async ({ model, where, update })=>{
|
|
43
|
-
let query = getDb()(model);
|
|
44
|
-
query = applyWhere(query, where);
|
|
45
|
-
const [row] = await query.update(update).returning("*");
|
|
46
|
-
return row ?? null;
|
|
47
|
-
},
|
|
48
|
-
updateMany: async ({ model, where, update })=>{
|
|
49
|
-
let query = getDb()(model);
|
|
50
|
-
query = applyWhere(query, where);
|
|
51
|
-
const count = await query.update(update);
|
|
52
|
-
return count;
|
|
53
|
-
},
|
|
54
|
-
delete: async ({ model, where })=>{
|
|
55
|
-
let query = getDb()(model);
|
|
56
|
-
query = applyWhere(query, where);
|
|
57
|
-
await query.del();
|
|
58
|
-
},
|
|
59
|
-
deleteMany: async ({ model, where })=>{
|
|
60
|
-
let query = getDb()(model);
|
|
61
|
-
query = applyWhere(query, where);
|
|
62
|
-
const count = await query.del();
|
|
63
|
-
return count;
|
|
64
|
-
},
|
|
65
|
-
count: async ({ model, where })=>{
|
|
66
|
-
let query = getDb()(model);
|
|
67
|
-
if (where) {
|
|
68
|
-
query = applyWhere(query, where);
|
|
69
|
-
}
|
|
70
|
-
const [{ count }] = await query.count("* as count");
|
|
71
|
-
return Number(count);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
const adapterConfig = {
|
|
76
|
-
adapterId: "sonamu-knex",
|
|
77
|
-
adapterName: "Sonamu Knex Adapter",
|
|
78
|
-
usePlural: false,
|
|
79
|
-
supportsJSON: true,
|
|
80
|
-
supportsDates: true,
|
|
81
|
-
supportsBooleans: true,
|
|
82
|
-
supportsNumericIds: false,
|
|
83
|
-
transaction: async (cb)=>{
|
|
84
|
-
const db = DB.getDB("w");
|
|
85
|
-
return db.transaction(async (trx)=>{
|
|
86
|
-
const options = lazyOptions;
|
|
87
|
-
if (!options) {
|
|
88
|
-
throw new Error("sonamuKnexAdapter: options not initialized");
|
|
89
|
-
}
|
|
90
|
-
return cb(createAdapterFactory({
|
|
91
|
-
config: adapterConfig,
|
|
92
|
-
adapter: createCustomAdapter(()=>trx)
|
|
93
|
-
})(options));
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
const adapterCreator = createAdapterFactory({
|
|
98
|
-
config: adapterConfig,
|
|
99
|
-
adapter: createCustomAdapter(()=>DB.getDB("w"))
|
|
100
|
-
});
|
|
101
|
-
return (options)=>{
|
|
102
|
-
lazyOptions = options;
|
|
103
|
-
return adapterCreator(options);
|
|
104
|
-
};
|
|
105
|
-
};
|
|
4
|
+
|
|
5
|
+
//#region src/auth/knex-adapter.ts
|
|
106
6
|
/**
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
7
|
+
* Better Auth의 공식 어댑터(Kysely, Drizzle, Prisma, MongoDB) 패턴에 맞춰
|
|
8
|
+
* AND 그룹과 OR 그룹을 분리한 뒤 top-level AND로 결합합니다.
|
|
9
|
+
* 결과: (A AND B AND ...) AND (C OR D OR ...)
|
|
10
|
+
*/
|
|
11
|
+
function applyWhere(query, conditions) {
|
|
12
|
+
const andGroup = conditions.filter((c) => c.connector !== "OR");
|
|
13
|
+
const orGroup = conditions.filter((c) => c.connector === "OR");
|
|
14
|
+
if (andGroup.length > 0) {
|
|
15
|
+
for (const condition of andGroup) {
|
|
16
|
+
query = applyCondition(query, condition, "where");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (orGroup.length > 0) {
|
|
20
|
+
query = query.where(function() {
|
|
21
|
+
for (let i = 0; i < orGroup.length; i++) {
|
|
22
|
+
applyCondition(this, orGroup[i], i === 0 ? "where" : "orWhere");
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return query;
|
|
126
27
|
}
|
|
127
28
|
function applyCondition(query, condition, method) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
return query[method === "orWhere" ? "orWhereNotIn" : "whereNotIn"](field, value);
|
|
152
|
-
case "contains":
|
|
153
|
-
return query[method](field, "like", `%${value}%`);
|
|
154
|
-
case "starts_with":
|
|
155
|
-
return query[method](field, "like", `${value}%`);
|
|
156
|
-
case "ends_with":
|
|
157
|
-
return query[method](field, "like", `%${value}`);
|
|
158
|
-
default:
|
|
159
|
-
return query;
|
|
160
|
-
}
|
|
29
|
+
const { field, value, operator } = condition;
|
|
30
|
+
switch (operator) {
|
|
31
|
+
case "eq":
|
|
32
|
+
if (value === null) {
|
|
33
|
+
return query[method === "orWhere" ? "orWhereNull" : "whereNull"](field);
|
|
34
|
+
}
|
|
35
|
+
return query[method](field, "=", value);
|
|
36
|
+
case "ne":
|
|
37
|
+
if (value === null) {
|
|
38
|
+
return query[method === "orWhere" ? "orWhereNotNull" : "whereNotNull"](field);
|
|
39
|
+
}
|
|
40
|
+
return query[method](field, "!=", value);
|
|
41
|
+
case "lt": return query[method](field, "<", value);
|
|
42
|
+
case "lte": return query[method](field, "<=", value);
|
|
43
|
+
case "gt": return query[method](field, ">", value);
|
|
44
|
+
case "gte": return query[method](field, ">=", value);
|
|
45
|
+
case "in": return query[method === "orWhere" ? "orWhereIn" : "whereIn"](field, value);
|
|
46
|
+
case "not_in": return query[method === "orWhere" ? "orWhereNotIn" : "whereNotIn"](field, value);
|
|
47
|
+
case "contains": return query[method](field, "like", `%${value}%`);
|
|
48
|
+
case "starts_with": return query[method](field, "like", `${value}%`);
|
|
49
|
+
case "ends_with": return query[method](field, "like", `%${value}`);
|
|
50
|
+
default: return query;
|
|
51
|
+
}
|
|
161
52
|
}
|
|
53
|
+
var sonamuKnexAdapter;
|
|
54
|
+
var init_knex_adapter = __esmMin((() => {
|
|
55
|
+
init_db();
|
|
56
|
+
sonamuKnexAdapter = () => {
|
|
57
|
+
let lazyOptions = null;
|
|
58
|
+
const createCustomAdapter = (getDb) => {
|
|
59
|
+
return ({ getFieldName }) => ({
|
|
60
|
+
create: async ({ model, data }) => {
|
|
61
|
+
const [row] = await getDb()(model).insert(data).returning("*");
|
|
62
|
+
return row;
|
|
63
|
+
},
|
|
64
|
+
findOne: async ({ model, where }) => {
|
|
65
|
+
let query = getDb()(model);
|
|
66
|
+
query = applyWhere(query, where);
|
|
67
|
+
const row = await query.first();
|
|
68
|
+
return row ?? null;
|
|
69
|
+
},
|
|
70
|
+
findMany: async ({ model, where, limit, offset, sortBy }) => {
|
|
71
|
+
let query = getDb()(model);
|
|
72
|
+
if (where) {
|
|
73
|
+
query = applyWhere(query, where);
|
|
74
|
+
}
|
|
75
|
+
if (sortBy) {
|
|
76
|
+
const dbField = getFieldName({
|
|
77
|
+
model,
|
|
78
|
+
field: sortBy.field
|
|
79
|
+
});
|
|
80
|
+
query = query.orderBy(dbField, sortBy.direction);
|
|
81
|
+
}
|
|
82
|
+
if (limit) {
|
|
83
|
+
query = query.limit(limit);
|
|
84
|
+
}
|
|
85
|
+
if (offset) {
|
|
86
|
+
query = query.offset(offset);
|
|
87
|
+
}
|
|
88
|
+
return await query;
|
|
89
|
+
},
|
|
90
|
+
update: async ({ model, where, update }) => {
|
|
91
|
+
let query = getDb()(model);
|
|
92
|
+
query = applyWhere(query, where);
|
|
93
|
+
const [row] = await query.update(update).returning("*");
|
|
94
|
+
return row ?? null;
|
|
95
|
+
},
|
|
96
|
+
updateMany: async ({ model, where, update }) => {
|
|
97
|
+
let query = getDb()(model);
|
|
98
|
+
query = applyWhere(query, where);
|
|
99
|
+
const count = await query.update(update);
|
|
100
|
+
return count;
|
|
101
|
+
},
|
|
102
|
+
delete: async ({ model, where }) => {
|
|
103
|
+
let query = getDb()(model);
|
|
104
|
+
query = applyWhere(query, where);
|
|
105
|
+
await query.del();
|
|
106
|
+
},
|
|
107
|
+
deleteMany: async ({ model, where }) => {
|
|
108
|
+
let query = getDb()(model);
|
|
109
|
+
query = applyWhere(query, where);
|
|
110
|
+
const count = await query.del();
|
|
111
|
+
return count;
|
|
112
|
+
},
|
|
113
|
+
count: async ({ model, where }) => {
|
|
114
|
+
let query = getDb()(model);
|
|
115
|
+
if (where) {
|
|
116
|
+
query = applyWhere(query, where);
|
|
117
|
+
}
|
|
118
|
+
const [{ count }] = await query.count("* as count");
|
|
119
|
+
return Number(count);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
const adapterConfig = {
|
|
124
|
+
adapterId: "sonamu-knex",
|
|
125
|
+
adapterName: "Sonamu Knex Adapter",
|
|
126
|
+
usePlural: false,
|
|
127
|
+
supportsJSON: true,
|
|
128
|
+
supportsDates: true,
|
|
129
|
+
supportsBooleans: true,
|
|
130
|
+
supportsNumericIds: false,
|
|
131
|
+
transaction: async (cb) => {
|
|
132
|
+
const db = DB.getDB("w");
|
|
133
|
+
return db.transaction(async (trx) => {
|
|
134
|
+
const options = lazyOptions;
|
|
135
|
+
if (!options) {
|
|
136
|
+
throw new Error("sonamuKnexAdapter: options not initialized");
|
|
137
|
+
}
|
|
138
|
+
return cb(createAdapterFactory({
|
|
139
|
+
config: adapterConfig,
|
|
140
|
+
adapter: createCustomAdapter(() => trx)
|
|
141
|
+
})(options));
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
const adapterCreator = createAdapterFactory({
|
|
146
|
+
config: adapterConfig,
|
|
147
|
+
adapter: createCustomAdapter(() => DB.getDB("w"))
|
|
148
|
+
});
|
|
149
|
+
return (options) => {
|
|
150
|
+
lazyOptions = options;
|
|
151
|
+
return adapterCreator(options);
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
}));
|
|
162
155
|
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2tuZXgtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJldHRlckF1dGhPcHRpb25zIH0gZnJvbSBcImJldHRlci1hdXRoXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFkYXB0ZXJGYWN0b3J5Q3VzdG9taXplQWRhcHRlckNyZWF0b3IsXG4gIERCVHJhbnNhY3Rpb25BZGFwdGVyLFxufSBmcm9tIFwiYmV0dGVyLWF1dGgvYWRhcHRlcnNcIjtcbmltcG9ydCB7IGNyZWF0ZUFkYXB0ZXJGYWN0b3J5IH0gZnJvbSBcImJldHRlci1hdXRoL2FkYXB0ZXJzXCI7XG5pbXBvcnQgdHlwZSB7IEtuZXggfSBmcm9tIFwia25leFwiO1xuaW1wb3J0IHsgREIgfSBmcm9tIFwiLi4vZGF0YWJhc2UvZGJcIjtcblxuaW50ZXJmYWNlIENsZWFuZWRXaGVyZSB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgc3RyaW5nW10gfCBudW1iZXJbXSB8IERhdGUgfCBudWxsO1xuICBvcGVyYXRvcjogc3RyaW5nO1xuICBjb25uZWN0b3I6IHN0cmluZztcbn1cblxuLyoqXG4gKiBiZXR0ZXItYXV0aOyaqSBTb25hbXUga25leCDslrTrjJHthLBcbiAqXG4gKiBiZXR0ZXItYXV0aOydmCDrqqjrk6Ag7L+866as66W8IERCLmdldERCKCnrpbwg7Ya17ZW0IOyLpO2Wie2VmOyXrFxuICogU29uYW11IO2FjOyKpO2KuCDtirjrnpzsnq3shZjqs7wg64+Z7J287ZWcIOy7pOuEpeyFmOydhCDqs7XsnKDtlanri4jri6QuXG4gKi9cbmV4cG9ydCBjb25zdCBzb25hbXVLbmV4QWRhcHRlciA9ICgpID0+IHtcbiAgbGV0IGxhenlPcHRpb25zOiBCZXR0ZXJBdXRoT3B0aW9ucyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IGNyZWF0ZUN1c3RvbUFkYXB0ZXIgPSAoXG4gICAgZ2V0RGI6ICgpID0+IEtuZXggfCBLbmV4LlRyYW5zYWN0aW9uLFxuICApOiBBZGFwdGVyRmFjdG9yeUN1c3RvbWl6ZUFkYXB0ZXJDcmVhdG9yID0+IHtcbiAgICByZXR1cm4gKHsgZ2V0RmllbGROYW1lIH0pID0+ICh7XG4gICAgICBjcmVhdGU6IGFzeW5jICh7IG1vZGVsLCBkYXRhIH0pID0+IHtcbiAgICAgICAgY29uc3QgW3Jvd10gPSBhd2FpdCBnZXREYigpKG1vZGVsKS5pbnNlcnQoZGF0YSkucmV0dXJuaW5nKFwiKlwiKTtcbiAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgIH0sXG5cbiAgICAgIGZpbmRPbmU6IGFzeW5jICh7IG1vZGVsLCB3aGVyZSB9KSA9PiB7XG4gICAgICAgIGxldCBxdWVyeSA9IGdldERiKCkobW9kZWwpO1xuICAgICAgICBxdWVyeSA9IGFwcGx5V2hlcmUocXVlcnksIHdoZXJlKTtcbiAgICAgICAgY29uc3Qgcm93ID0gYXdhaXQgcXVlcnkuZmlyc3QoKTtcbiAgICAgICAgcmV0dXJuIHJvdyA/PyBudWxsO1xuICAgICAgfSxcblxuICAgICAgZmluZE1hbnk6IGFzeW5jICh7IG1vZGVsLCB3aGVyZSwgbGltaXQsIG9mZnNldCwgc29ydEJ5IH0pID0+IHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gZ2V0RGIoKShtb2RlbCk7XG4gICAgICAgIGlmICh3aGVyZSkge1xuICAgICAgICAgIHF1ZXJ5ID0gYXBwbHlXaGVyZShxdWVyeSwgd2hlcmUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0QnkpIHtcbiAgICAgICAgICBjb25zdCBkYkZpZWxkID0gZ2V0RmllbGROYW1lKHsgbW9kZWwsIGZpZWxkOiBzb3J0QnkuZmllbGQgfSk7XG4gICAgICAgICAgcXVlcnkgPSBxdWVyeS5vcmRlckJ5KGRiRmllbGQsIHNvcnRCeS5kaXJlY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaW1pdCkge1xuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkubGltaXQobGltaXQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvZmZzZXQpIHtcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5Lm9mZnNldChvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCBxdWVyeTtcbiAgICAgIH0sXG5cbiAgICAgIHVwZGF0ZTogYXN5bmMgKHsgbW9kZWwsIHdoZXJlLCB1cGRhdGUgfSkgPT4ge1xuICAgICAgICBsZXQgcXVlcnkgPSBnZXREYigpKG1vZGVsKTtcbiAgICAgICAgcXVlcnkgPSBhcHBseVdoZXJlKHF1ZXJ5LCB3aGVyZSk7XG4gICAgICAgIGNvbnN0IFtyb3ddID0gYXdhaXQgcXVlcnkudXBkYXRlKHVwZGF0ZSkucmV0dXJuaW5nKFwiKlwiKTtcbiAgICAgICAgcmV0dXJuIHJvdyA/PyBudWxsO1xuICAgICAgfSxcblxuICAgICAgdXBkYXRlTWFueTogYXN5bmMgKHsgbW9kZWwsIHdoZXJlLCB1cGRhdGUgfSkgPT4ge1xuICAgICAgICBsZXQgcXVlcnkgPSBnZXREYigpKG1vZGVsKTtcbiAgICAgICAgcXVlcnkgPSBhcHBseVdoZXJlKHF1ZXJ5LCB3aGVyZSk7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgcXVlcnkudXBkYXRlKHVwZGF0ZSk7XG4gICAgICAgIHJldHVybiBjb3VudDtcbiAgICAgIH0sXG5cbiAgICAgIGRlbGV0ZTogYXN5bmMgKHsgbW9kZWwsIHdoZXJlIH0pID0+IHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gZ2V0RGIoKShtb2RlbCk7XG4gICAgICAgIHF1ZXJ5ID0gYXBwbHlXaGVyZShxdWVyeSwgd2hlcmUpO1xuICAgICAgICBhd2FpdCBxdWVyeS5kZWwoKTtcbiAgICAgIH0sXG5cbiAgICAgIGRlbGV0ZU1hbnk6IGFzeW5jICh7IG1vZGVsLCB3aGVyZSB9KSA9PiB7XG4gICAgICAgIGxldCBxdWVyeSA9IGdldERiKCkobW9kZWwpO1xuICAgICAgICBxdWVyeSA9IGFwcGx5V2hlcmUocXVlcnksIHdoZXJlKTtcbiAgICAgICAgY29uc3QgY291bnQgPSBhd2FpdCBxdWVyeS5kZWwoKTtcbiAgICAgICAgcmV0dXJuIGNvdW50O1xuICAgICAgfSxcblxuICAgICAgY291bnQ6IGFzeW5jICh7IG1vZGVsLCB3aGVyZSB9KSA9PiB7XG4gICAgICAgIGxldCBxdWVyeSA9IGdldERiKCkobW9kZWwpO1xuICAgICAgICBpZiAod2hlcmUpIHtcbiAgICAgICAgICBxdWVyeSA9IGFwcGx5V2hlcmUocXVlcnksIHdoZXJlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbeyBjb3VudCB9XSA9IGF3YWl0IHF1ZXJ5LmNvdW50KFwiKiBhcyBjb3VudFwiKTtcbiAgICAgICAgcmV0dXJuIE51bWJlcihjb3VudCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGFkYXB0ZXJDb25maWcgPSB7XG4gICAgYWRhcHRlcklkOiBcInNvbmFtdS1rbmV4XCIsXG4gICAgYWRhcHRlck5hbWU6IFwiU29uYW11IEtuZXggQWRhcHRlclwiLFxuICAgIHVzZVBsdXJhbDogZmFsc2UsXG4gICAgc3VwcG9ydHNKU09OOiB0cnVlLFxuICAgIHN1cHBvcnRzRGF0ZXM6IHRydWUsXG4gICAgc3VwcG9ydHNCb29sZWFuczogdHJ1ZSxcbiAgICBzdXBwb3J0c051bWVyaWNJZHM6IGZhbHNlLFxuICAgIHRyYW5zYWN0aW9uOiBhc3luYyA8Uj4oY2I6ICh0cng6IERCVHJhbnNhY3Rpb25BZGFwdGVyKSA9PiBQcm9taXNlPFI+KTogUHJvbWlzZTxSPiA9PiB7XG4gICAgICBjb25zdCBkYiA9IERCLmdldERCKFwid1wiKTtcbiAgICAgIHJldHVybiBkYi50cmFuc2FjdGlvbihhc3luYyAodHJ4KSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBsYXp5T3B0aW9ucztcbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic29uYW11S25leEFkYXB0ZXI6IG9wdGlvbnMgbm90IGluaXRpYWxpemVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYihcbiAgICAgICAgICBjcmVhdGVBZGFwdGVyRmFjdG9yeSh7XG4gICAgICAgICAgICBjb25maWc6IGFkYXB0ZXJDb25maWcsXG4gICAgICAgICAgICBhZGFwdGVyOiBjcmVhdGVDdXN0b21BZGFwdGVyKCgpID0+IHRyeCksXG4gICAgICAgICAgfSkob3B0aW9ucyksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGFkYXB0ZXJDcmVhdG9yID0gY3JlYXRlQWRhcHRlckZhY3Rvcnkoe1xuICAgIGNvbmZpZzogYWRhcHRlckNvbmZpZyxcbiAgICBhZGFwdGVyOiBjcmVhdGVDdXN0b21BZGFwdGVyKCgpID0+IERCLmdldERCKFwid1wiKSksXG4gIH0pO1xuXG4gIHJldHVybiAob3B0aW9uczogQmV0dGVyQXV0aE9wdGlvbnMpID0+IHtcbiAgICBsYXp5T3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIGFkYXB0ZXJDcmVhdG9yKG9wdGlvbnMpO1xuICB9O1xufTtcblxuLyoqXG4gKiBCZXR0ZXIgQXV0aOydmCDqs7Xsi50g7Ja064yR7YSwKEt5c2VseSwgRHJpenpsZSwgUHJpc21hLCBNb25nb0RCKSDtjKjthLTsl5Ag66ee7LawXG4gKiBBTkQg6re466O56rO8IE9SIOq3uOujueydhCDrtoTrpqztlZwg65KkIHRvcC1sZXZlbCBBTkTroZwg6rKw7ZWp7ZWp64uI64ukLlxuICog6rKw6rO8OiAoQSBBTkQgQiBBTkQgLi4uKSBBTkQgKEMgT1IgRCBPUiAuLi4pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVdoZXJlKFxuICBxdWVyeTogS25leC5RdWVyeUJ1aWxkZXIsXG4gIGNvbmRpdGlvbnM6IENsZWFuZWRXaGVyZVtdLFxuKTogS25leC5RdWVyeUJ1aWxkZXIge1xuICBjb25zdCBhbmRHcm91cCA9IGNvbmRpdGlvbnMuZmlsdGVyKChjKSA9PiBjLmNvbm5lY3RvciAhPT0gXCJPUlwiKTtcbiAgY29uc3Qgb3JHcm91cCA9IGNvbmRpdGlvbnMuZmlsdGVyKChjKSA9PiBjLmNvbm5lY3RvciA9PT0gXCJPUlwiKTtcblxuICBpZiAoYW5kR3JvdXAubGVuZ3RoID4gMCkge1xuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGFuZEdyb3VwKSB7XG4gICAgICBxdWVyeSA9IGFwcGx5Q29uZGl0aW9uKHF1ZXJ5LCBjb25kaXRpb24sIFwid2hlcmVcIik7XG4gICAgfVxuICB9XG5cbiAgaWYgKG9yR3JvdXAubGVuZ3RoID4gMCkge1xuICAgIHF1ZXJ5ID0gcXVlcnkud2hlcmUoZnVuY3Rpb24gKHRoaXM6IEtuZXguUXVlcnlCdWlsZGVyKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9yR3JvdXAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYXBwbHlDb25kaXRpb24odGhpcywgb3JHcm91cFtpXSwgaSA9PT0gMCA/IFwid2hlcmVcIiA6IFwib3JXaGVyZVwiKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBxdWVyeTtcbn1cblxuZnVuY3Rpb24gYXBwbHlDb25kaXRpb24oXG4gIHF1ZXJ5OiBLbmV4LlF1ZXJ5QnVpbGRlcixcbiAgY29uZGl0aW9uOiBDbGVhbmVkV2hlcmUsXG4gIG1ldGhvZDogXCJ3aGVyZVwiIHwgXCJvcldoZXJlXCIsXG4pOiBLbmV4LlF1ZXJ5QnVpbGRlciB7XG4gIGNvbnN0IHsgZmllbGQsIHZhbHVlLCBvcGVyYXRvciB9ID0gY29uZGl0aW9uO1xuXG4gIHN3aXRjaCAob3BlcmF0b3IpIHtcbiAgICBjYXNlIFwiZXFcIjpcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcXVlcnlbbWV0aG9kID09PSBcIm9yV2hlcmVcIiA/IFwib3JXaGVyZU51bGxcIiA6IFwid2hlcmVOdWxsXCJdKGZpZWxkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBxdWVyeVttZXRob2RdKGZpZWxkLCBcIj1cIiwgdmFsdWUpO1xuICAgIGNhc2UgXCJuZVwiOlxuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBxdWVyeVttZXRob2QgPT09IFwib3JXaGVyZVwiID8gXCJvcldoZXJlTm90TnVsbFwiIDogXCJ3aGVyZU5vdE51bGxcIl0oZmllbGQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZF0oZmllbGQsIFwiIT1cIiwgdmFsdWUpO1xuICAgIGNhc2UgXCJsdFwiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZF0oZmllbGQsIFwiPFwiLCB2YWx1ZSk7XG4gICAgY2FzZSBcImx0ZVwiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZF0oZmllbGQsIFwiPD1cIiwgdmFsdWUpO1xuICAgIGNhc2UgXCJndFwiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZF0oZmllbGQsIFwiPlwiLCB2YWx1ZSk7XG4gICAgY2FzZSBcImd0ZVwiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZF0oZmllbGQsIFwiPj1cIiwgdmFsdWUpO1xuICAgIGNhc2UgXCJpblwiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZCA9PT0gXCJvcldoZXJlXCIgPyBcIm9yV2hlcmVJblwiIDogXCJ3aGVyZUluXCJdKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgdmFsdWUgYXMgKHN0cmluZyB8IG51bWJlcilbXSxcbiAgICAgICk7XG4gICAgY2FzZSBcIm5vdF9pblwiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZCA9PT0gXCJvcldoZXJlXCIgPyBcIm9yV2hlcmVOb3RJblwiIDogXCJ3aGVyZU5vdEluXCJdKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgdmFsdWUgYXMgKHN0cmluZyB8IG51bWJlcilbXSxcbiAgICAgICk7XG4gICAgY2FzZSBcImNvbnRhaW5zXCI6XG4gICAgICByZXR1cm4gcXVlcnlbbWV0aG9kXShmaWVsZCwgXCJsaWtlXCIsIGAlJHt2YWx1ZX0lYCk7XG4gICAgY2FzZSBcInN0YXJ0c193aXRoXCI6XG4gICAgICByZXR1cm4gcXVlcnlbbWV0aG9kXShmaWVsZCwgXCJsaWtlXCIsIGAke3ZhbHVlfSVgKTtcbiAgICBjYXNlIFwiZW5kc193aXRoXCI6XG4gICAgICByZXR1cm4gcXVlcnlbbWV0aG9kXShmaWVsZCwgXCJsaWtlXCIsIGAlJHt2YWx1ZX1gKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlQWRhcHRlckZhY3RvcnkiLCJEQiIsInNvbmFtdUtuZXhBZGFwdGVyIiwibGF6eU9wdGlvbnMiLCJjcmVhdGVDdXN0b21BZGFwdGVyIiwiZ2V0RGIiLCJnZXRGaWVsZE5hbWUiLCJjcmVhdGUiLCJtb2RlbCIsImRhdGEiLCJyb3ciLCJpbnNlcnQiLCJyZXR1cm5pbmciLCJmaW5kT25lIiwid2hlcmUiLCJxdWVyeSIsImFwcGx5V2hlcmUiLCJmaXJzdCIsImZpbmRNYW55IiwibGltaXQiLCJvZmZzZXQiLCJzb3J0QnkiLCJkYkZpZWxkIiwiZmllbGQiLCJvcmRlckJ5IiwiZGlyZWN0aW9uIiwidXBkYXRlIiwidXBkYXRlTWFueSIsImNvdW50IiwiZGVsZXRlIiwiZGVsIiwiZGVsZXRlTWFueSIsIk51bWJlciIsImFkYXB0ZXJDb25maWciLCJhZGFwdGVySWQiLCJhZGFwdGVyTmFtZSIsInVzZVBsdXJhbCIsInN1cHBvcnRzSlNPTiIsInN1cHBvcnRzRGF0ZXMiLCJzdXBwb3J0c0Jvb2xlYW5zIiwic3VwcG9ydHNOdW1lcmljSWRzIiwidHJhbnNhY3Rpb24iLCJjYiIsImRiIiwiZ2V0REIiLCJ0cngiLCJvcHRpb25zIiwiRXJyb3IiLCJjb25maWciLCJhZGFwdGVyIiwiYWRhcHRlckNyZWF0b3IiLCJjb25kaXRpb25zIiwiYW5kR3JvdXAiLCJmaWx0ZXIiLCJjIiwiY29ubmVjdG9yIiwib3JHcm91cCIsImxlbmd0aCIsImNvbmRpdGlvbiIsImFwcGx5Q29uZGl0aW9uIiwiaSIsIm1ldGhvZCIsInZhbHVlIiwib3BlcmF0b3IiXSwibWFwcGluZ3MiOiJBQUtBLFNB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
|
|
156
|
+
//#endregion
|
|
157
|
+
init_knex_adapter();
|
|
158
|
+
export { applyWhere, init_knex_adapter, sonamuKnexAdapter };
|
|
159
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia25leC1hZGFwdGVyLmpzIiwibmFtZXMiOlsibGF6eU9wdGlvbnM6IEJldHRlckF1dGhPcHRpb25zIHwgbnVsbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2tuZXgtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEJldHRlckF1dGhPcHRpb25zIH0gZnJvbSBcImJldHRlci1hdXRoXCI7XG5pbXBvcnQge1xuICB0eXBlIEFkYXB0ZXJGYWN0b3J5Q3VzdG9taXplQWRhcHRlckNyZWF0b3IsXG4gIHR5cGUgREJUcmFuc2FjdGlvbkFkYXB0ZXIsXG59IGZyb20gXCJiZXR0ZXItYXV0aC9hZGFwdGVyc1wiO1xuaW1wb3J0IHsgY3JlYXRlQWRhcHRlckZhY3RvcnkgfSBmcm9tIFwiYmV0dGVyLWF1dGgvYWRhcHRlcnNcIjtcbmltcG9ydCB7IHR5cGUgS25leCB9IGZyb20gXCJrbmV4XCI7XG5cbmltcG9ydCB7IERCIH0gZnJvbSBcIi4uL2RhdGFiYXNlL2RiXCI7XG5cbmludGVyZmFjZSBDbGVhbmVkV2hlcmUge1xuICBmaWVsZDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHN0cmluZ1tdIHwgbnVtYmVyW10gfCBEYXRlIHwgbnVsbDtcbiAgb3BlcmF0b3I6IHN0cmluZztcbiAgY29ubmVjdG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogYmV0dGVyLWF1dGjsmqkgU29uYW11IGtuZXgg7Ja064yR7YSwXG4gKlxuICogYmV0dGVyLWF1dGjsnZgg66qo65OgIOy/vOumrOulvCBEQi5nZXREQigp66W8IO2Gte2VtCDsi6TtlontlZjsl6xcbiAqIFNvbmFtdSDthYzsiqTtirgg7Yq4656c7J6t7IWY6rO8IOuPmeydvO2VnCDsu6TrhKXshZjsnYQg6rO17Jyg7ZWp64uI64ukLlxuICovXG5leHBvcnQgY29uc3Qgc29uYW11S25leEFkYXB0ZXIgPSAoKSA9PiB7XG4gIGxldCBsYXp5T3B0aW9uczogQmV0dGVyQXV0aE9wdGlvbnMgfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBjcmVhdGVDdXN0b21BZGFwdGVyID0gKFxuICAgIGdldERiOiAoKSA9PiBLbmV4IHwgS25leC5UcmFuc2FjdGlvbixcbiAgKTogQWRhcHRlckZhY3RvcnlDdXN0b21pemVBZGFwdGVyQ3JlYXRvciA9PiB7XG4gICAgcmV0dXJuICh7IGdldEZpZWxkTmFtZSB9KSA9PiAoe1xuICAgICAgY3JlYXRlOiBhc3luYyAoeyBtb2RlbCwgZGF0YSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IFtyb3ddID0gYXdhaXQgZ2V0RGIoKShtb2RlbCkuaW5zZXJ0KGRhdGEpLnJldHVybmluZyhcIipcIik7XG4gICAgICAgIHJldHVybiByb3c7XG4gICAgICB9LFxuXG4gICAgICBmaW5kT25lOiBhc3luYyAoeyBtb2RlbCwgd2hlcmUgfSkgPT4ge1xuICAgICAgICBsZXQgcXVlcnkgPSBnZXREYigpKG1vZGVsKTtcbiAgICAgICAgcXVlcnkgPSBhcHBseVdoZXJlKHF1ZXJ5LCB3aGVyZSk7XG4gICAgICAgIGNvbnN0IHJvdyA9IGF3YWl0IHF1ZXJ5LmZpcnN0KCk7XG4gICAgICAgIHJldHVybiByb3cgPz8gbnVsbDtcbiAgICAgIH0sXG5cbiAgICAgIGZpbmRNYW55OiBhc3luYyAoeyBtb2RlbCwgd2hlcmUsIGxpbWl0LCBvZmZzZXQsIHNvcnRCeSB9KSA9PiB7XG4gICAgICAgIGxldCBxdWVyeSA9IGdldERiKCkobW9kZWwpO1xuICAgICAgICBpZiAod2hlcmUpIHtcbiAgICAgICAgICBxdWVyeSA9IGFwcGx5V2hlcmUocXVlcnksIHdoZXJlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc29ydEJ5KSB7XG4gICAgICAgICAgY29uc3QgZGJGaWVsZCA9IGdldEZpZWxkTmFtZSh7IG1vZGVsLCBmaWVsZDogc29ydEJ5LmZpZWxkIH0pO1xuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkub3JkZXJCeShkYkZpZWxkLCBzb3J0QnkuZGlyZWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGltaXQpIHtcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5LmxpbWl0KGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2Zmc2V0KSB7XG4gICAgICAgICAgcXVlcnkgPSBxdWVyeS5vZmZzZXQob2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgcXVlcnk7XG4gICAgICB9LFxuXG4gICAgICB1cGRhdGU6IGFzeW5jICh7IG1vZGVsLCB3aGVyZSwgdXBkYXRlIH0pID0+IHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gZ2V0RGIoKShtb2RlbCk7XG4gICAgICAgIHF1ZXJ5ID0gYXBwbHlXaGVyZShxdWVyeSwgd2hlcmUpO1xuICAgICAgICBjb25zdCBbcm93XSA9IGF3YWl0IHF1ZXJ5LnVwZGF0ZSh1cGRhdGUpLnJldHVybmluZyhcIipcIik7XG4gICAgICAgIHJldHVybiByb3cgPz8gbnVsbDtcbiAgICAgIH0sXG5cbiAgICAgIHVwZGF0ZU1hbnk6IGFzeW5jICh7IG1vZGVsLCB3aGVyZSwgdXBkYXRlIH0pID0+IHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gZ2V0RGIoKShtb2RlbCk7XG4gICAgICAgIHF1ZXJ5ID0gYXBwbHlXaGVyZShxdWVyeSwgd2hlcmUpO1xuICAgICAgICBjb25zdCBjb3VudCA9IGF3YWl0IHF1ZXJ5LnVwZGF0ZSh1cGRhdGUpO1xuICAgICAgICByZXR1cm4gY291bnQ7XG4gICAgICB9LFxuXG4gICAgICBkZWxldGU6IGFzeW5jICh7IG1vZGVsLCB3aGVyZSB9KSA9PiB7XG4gICAgICAgIGxldCBxdWVyeSA9IGdldERiKCkobW9kZWwpO1xuICAgICAgICBxdWVyeSA9IGFwcGx5V2hlcmUocXVlcnksIHdoZXJlKTtcbiAgICAgICAgYXdhaXQgcXVlcnkuZGVsKCk7XG4gICAgICB9LFxuXG4gICAgICBkZWxldGVNYW55OiBhc3luYyAoeyBtb2RlbCwgd2hlcmUgfSkgPT4ge1xuICAgICAgICBsZXQgcXVlcnkgPSBnZXREYigpKG1vZGVsKTtcbiAgICAgICAgcXVlcnkgPSBhcHBseVdoZXJlKHF1ZXJ5LCB3aGVyZSk7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgcXVlcnkuZGVsKCk7XG4gICAgICAgIHJldHVybiBjb3VudDtcbiAgICAgIH0sXG5cbiAgICAgIGNvdW50OiBhc3luYyAoeyBtb2RlbCwgd2hlcmUgfSkgPT4ge1xuICAgICAgICBsZXQgcXVlcnkgPSBnZXREYigpKG1vZGVsKTtcbiAgICAgICAgaWYgKHdoZXJlKSB7XG4gICAgICAgICAgcXVlcnkgPSBhcHBseVdoZXJlKHF1ZXJ5LCB3aGVyZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW3sgY291bnQgfV0gPSBhd2FpdCBxdWVyeS5jb3VudChcIiogYXMgY291bnRcIik7XG4gICAgICAgIHJldHVybiBOdW1iZXIoY291bnQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBhZGFwdGVyQ29uZmlnID0ge1xuICAgIGFkYXB0ZXJJZDogXCJzb25hbXUta25leFwiLFxuICAgIGFkYXB0ZXJOYW1lOiBcIlNvbmFtdSBLbmV4IEFkYXB0ZXJcIixcbiAgICB1c2VQbHVyYWw6IGZhbHNlLFxuICAgIHN1cHBvcnRzSlNPTjogdHJ1ZSxcbiAgICBzdXBwb3J0c0RhdGVzOiB0cnVlLFxuICAgIHN1cHBvcnRzQm9vbGVhbnM6IHRydWUsXG4gICAgc3VwcG9ydHNOdW1lcmljSWRzOiBmYWxzZSxcbiAgICB0cmFuc2FjdGlvbjogYXN5bmMgPFI+KGNiOiAodHJ4OiBEQlRyYW5zYWN0aW9uQWRhcHRlcikgPT4gUHJvbWlzZTxSPik6IFByb21pc2U8Uj4gPT4ge1xuICAgICAgY29uc3QgZGIgPSBEQi5nZXREQihcIndcIik7XG4gICAgICByZXR1cm4gZGIudHJhbnNhY3Rpb24oYXN5bmMgKHRyeCkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gbGF6eU9wdGlvbnM7XG4gICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInNvbmFtdUtuZXhBZGFwdGVyOiBvcHRpb25zIG5vdCBpbml0aWFsaXplZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2IoXG4gICAgICAgICAgY3JlYXRlQWRhcHRlckZhY3Rvcnkoe1xuICAgICAgICAgICAgY29uZmlnOiBhZGFwdGVyQ29uZmlnLFxuICAgICAgICAgICAgYWRhcHRlcjogY3JlYXRlQ3VzdG9tQWRhcHRlcigoKSA9PiB0cngpLFxuICAgICAgICAgIH0pKG9wdGlvbnMpLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBhZGFwdGVyQ3JlYXRvciA9IGNyZWF0ZUFkYXB0ZXJGYWN0b3J5KHtcbiAgICBjb25maWc6IGFkYXB0ZXJDb25maWcsXG4gICAgYWRhcHRlcjogY3JlYXRlQ3VzdG9tQWRhcHRlcigoKSA9PiBEQi5nZXREQihcIndcIikpLFxuICB9KTtcblxuICByZXR1cm4gKG9wdGlvbnM6IEJldHRlckF1dGhPcHRpb25zKSA9PiB7XG4gICAgbGF6eU9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHJldHVybiBhZGFwdGVyQ3JlYXRvcihvcHRpb25zKTtcbiAgfTtcbn07XG5cbi8qKlxuICogQmV0dGVyIEF1dGjsnZgg6rO17IudIOyWtOuMke2EsChLeXNlbHksIERyaXp6bGUsIFByaXNtYSwgTW9uZ29EQikg7Yyo7YS07JeQIOunnuy2sFxuICogQU5EIOq3uOujueqzvCBPUiDqt7jro7nsnYQg67aE66as7ZWcIOuSpCB0b3AtbGV2ZWwgQU5E66GcIOqysO2Vqe2VqeuLiOuLpC5cbiAqIOqysOqzvDogKEEgQU5EIEIgQU5EIC4uLikgQU5EIChDIE9SIEQgT1IgLi4uKVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlXaGVyZShcbiAgcXVlcnk6IEtuZXguUXVlcnlCdWlsZGVyLFxuICBjb25kaXRpb25zOiBDbGVhbmVkV2hlcmVbXSxcbik6IEtuZXguUXVlcnlCdWlsZGVyIHtcbiAgY29uc3QgYW5kR3JvdXAgPSBjb25kaXRpb25zLmZpbHRlcigoYykgPT4gYy5jb25uZWN0b3IgIT09IFwiT1JcIik7XG4gIGNvbnN0IG9yR3JvdXAgPSBjb25kaXRpb25zLmZpbHRlcigoYykgPT4gYy5jb25uZWN0b3IgPT09IFwiT1JcIik7XG5cbiAgaWYgKGFuZEdyb3VwLmxlbmd0aCA+IDApIHtcbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBhbmRHcm91cCkge1xuICAgICAgcXVlcnkgPSBhcHBseUNvbmRpdGlvbihxdWVyeSwgY29uZGl0aW9uLCBcIndoZXJlXCIpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChvckdyb3VwLmxlbmd0aCA+IDApIHtcbiAgICBxdWVyeSA9IHF1ZXJ5LndoZXJlKGZ1bmN0aW9uICh0aGlzOiBLbmV4LlF1ZXJ5QnVpbGRlcikge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvckdyb3VwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGFwcGx5Q29uZGl0aW9uKHRoaXMsIG9yR3JvdXBbaV0sIGkgPT09IDAgPyBcIndoZXJlXCIgOiBcIm9yV2hlcmVcIik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcXVlcnk7XG59XG5cbmZ1bmN0aW9uIGFwcGx5Q29uZGl0aW9uKFxuICBxdWVyeTogS25leC5RdWVyeUJ1aWxkZXIsXG4gIGNvbmRpdGlvbjogQ2xlYW5lZFdoZXJlLFxuICBtZXRob2Q6IFwid2hlcmVcIiB8IFwib3JXaGVyZVwiLFxuKTogS25leC5RdWVyeUJ1aWxkZXIge1xuICBjb25zdCB7IGZpZWxkLCB2YWx1ZSwgb3BlcmF0b3IgfSA9IGNvbmRpdGlvbjtcblxuICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgY2FzZSBcImVxXCI6XG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZCA9PT0gXCJvcldoZXJlXCIgPyBcIm9yV2hlcmVOdWxsXCIgOiBcIndoZXJlTnVsbFwiXShmaWVsZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcXVlcnlbbWV0aG9kXShmaWVsZCwgXCI9XCIsIHZhbHVlKTtcbiAgICBjYXNlIFwibmVcIjpcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcXVlcnlbbWV0aG9kID09PSBcIm9yV2hlcmVcIiA/IFwib3JXaGVyZU5vdE51bGxcIiA6IFwid2hlcmVOb3ROdWxsXCJdKGZpZWxkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBxdWVyeVttZXRob2RdKGZpZWxkLCBcIiE9XCIsIHZhbHVlKTtcbiAgICBjYXNlIFwibHRcIjpcbiAgICAgIHJldHVybiBxdWVyeVttZXRob2RdKGZpZWxkLCBcIjxcIiwgdmFsdWUpO1xuICAgIGNhc2UgXCJsdGVcIjpcbiAgICAgIHJldHVybiBxdWVyeVttZXRob2RdKGZpZWxkLCBcIjw9XCIsIHZhbHVlKTtcbiAgICBjYXNlIFwiZ3RcIjpcbiAgICAgIHJldHVybiBxdWVyeVttZXRob2RdKGZpZWxkLCBcIj5cIiwgdmFsdWUpO1xuICAgIGNhc2UgXCJndGVcIjpcbiAgICAgIHJldHVybiBxdWVyeVttZXRob2RdKGZpZWxkLCBcIj49XCIsIHZhbHVlKTtcbiAgICBjYXNlIFwiaW5cIjpcbiAgICAgIHJldHVybiBxdWVyeVttZXRob2QgPT09IFwib3JXaGVyZVwiID8gXCJvcldoZXJlSW5cIiA6IFwid2hlcmVJblwiXShcbiAgICAgICAgZmllbGQsXG4gICAgICAgIHZhbHVlIGFzIChzdHJpbmcgfCBudW1iZXIpW10sXG4gICAgICApO1xuICAgIGNhc2UgXCJub3RfaW5cIjpcbiAgICAgIHJldHVybiBxdWVyeVttZXRob2QgPT09IFwib3JXaGVyZVwiID8gXCJvcldoZXJlTm90SW5cIiA6IFwid2hlcmVOb3RJblwiXShcbiAgICAgICAgZmllbGQsXG4gICAgICAgIHZhbHVlIGFzIChzdHJpbmcgfCBudW1iZXIpW10sXG4gICAgICApO1xuICAgIGNhc2UgXCJjb250YWluc1wiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZF0oZmllbGQsIFwibGlrZVwiLCBgJSR7dmFsdWV9JWApO1xuICAgIGNhc2UgXCJzdGFydHNfd2l0aFwiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZF0oZmllbGQsIFwibGlrZVwiLCBgJHt2YWx1ZX0lYCk7XG4gICAgY2FzZSBcImVuZHNfd2l0aFwiOlxuICAgICAgcmV0dXJuIHF1ZXJ5W21ldGhvZF0oZmllbGQsIFwibGlrZVwiLCBgJSR7dmFsdWV9YCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBxdWVyeTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBMklBLFNBQWdCLFdBQ2QsT0FDQSxZQUNtQjtDQUNuQixNQUFNLFdBQVcsV0FBVyxRQUFRLE1BQU0sRUFBRSxjQUFjLEtBQUs7Q0FDL0QsTUFBTSxVQUFVLFdBQVcsUUFBUSxNQUFNLEVBQUUsY0FBYyxLQUFLO0FBRTlELEtBQUksU0FBUyxTQUFTLEdBQUc7QUFDdkIsT0FBSyxNQUFNLGFBQWEsVUFBVTtBQUNoQyxXQUFRLGVBQWUsT0FBTyxXQUFXLFFBQVE7OztBQUlyRCxLQUFJLFFBQVEsU0FBUyxHQUFHO0FBQ3RCLFVBQVEsTUFBTSxNQUFNLFdBQW1DO0FBQ3JELFFBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSztBQUN2QyxtQkFBZSxNQUFNLFFBQVEsSUFBSSxNQUFNLElBQUksVUFBVSxVQUFVOztJQUVqRTs7QUFHSixRQUFPOztBQUdULFNBQVMsZUFDUCxPQUNBLFdBQ0EsUUFDbUI7Q0FDbkIsTUFBTSxFQUFFLE9BQU8sT0FBTyxhQUFhO0FBRW5DLFNBQVEsVUFBUjtFQUNFLEtBQUs7QUFDSCxPQUFJLFVBQVUsTUFBTTtBQUNsQixXQUFPLE1BQU0sV0FBVyxZQUFZLGdCQUFnQixhQUFhLE1BQU07O0FBRXpFLFVBQU8sTUFBTSxRQUFRLE9BQU8sS0FBSyxNQUFNO0VBQ3pDLEtBQUs7QUFDSCxPQUFJLFVBQVUsTUFBTTtBQUNsQixXQUFPLE1BQU0sV0FBVyxZQUFZLG1CQUFt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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../src/auth/plugins/entity-definitions/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../src/auth/plugins/entity-definitions/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,EAAE,mBA0C5B,CAAC"}
|
|
@@ -1,59 +1,61 @@
|
|
|
1
|
+
//#region src/auth/plugins/entity-definitions/admin.ts
|
|
1
2
|
/**
|
|
2
|
-
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
3
|
+
* better-auth admin 플러그인 엔티티 정의
|
|
4
|
+
* https://www.better-auth.com/docs/plugins/admin
|
|
5
|
+
*
|
|
6
|
+
* 관리자 기능을 위한 필드를 추가합니다:
|
|
7
|
+
*
|
|
8
|
+
* User 테이블:
|
|
9
|
+
* - role: 사용자 역할 (기본값: "user")
|
|
10
|
+
* - banned: 차단 여부
|
|
11
|
+
* - ban_reason: 차단 사유
|
|
12
|
+
* - ban_expires: 차단 만료 시간 (Unix timestamp)
|
|
13
|
+
*
|
|
14
|
+
* Session 테이블:
|
|
15
|
+
* - impersonated_by: 대리 로그인한 관리자 ID
|
|
16
|
+
*/
|
|
17
|
+
const adminEntityDef = {
|
|
18
|
+
id: "admin",
|
|
19
|
+
name: "Admin",
|
|
20
|
+
entities: [],
|
|
21
|
+
additionalProps: {
|
|
22
|
+
User: [
|
|
23
|
+
{
|
|
24
|
+
name: "role",
|
|
25
|
+
type: "string",
|
|
26
|
+
nullable: true,
|
|
27
|
+
dbDefault: "\"user\"",
|
|
28
|
+
desc: "사용자 역할"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "banned",
|
|
32
|
+
type: "boolean",
|
|
33
|
+
nullable: true,
|
|
34
|
+
dbDefault: "false",
|
|
35
|
+
desc: "차단 여부"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "ban_reason",
|
|
39
|
+
type: "string",
|
|
40
|
+
nullable: true,
|
|
41
|
+
desc: "차단 사유"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "ban_expires",
|
|
45
|
+
type: "bigInteger",
|
|
46
|
+
nullable: true,
|
|
47
|
+
desc: "차단 만료 (Unix timestamp)"
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
Session: [{
|
|
51
|
+
name: "impersonated_by",
|
|
52
|
+
type: "string",
|
|
53
|
+
nullable: true,
|
|
54
|
+
desc: "대리 로그인한 관리자 ID"
|
|
55
|
+
}]
|
|
56
|
+
}
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
//#
|
|
59
|
+
//#endregion
|
|
60
|
+
export { adminEntityDef };
|
|
61
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uanMiLCJuYW1lcyI6WyJhZG1pbkVudGl0eURlZjogQmV0dGVyQXV0aEVudGl0eURlZiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zL2FkbWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQmV0dGVyQXV0aEVudGl0eURlZiB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogYmV0dGVyLWF1dGggYWRtaW4g7ZSM65+s6re47J24IOyXlO2LsO2LsCDsoJXsnZhcbiAqIGh0dHBzOi8vd3d3LmJldHRlci1hdXRoLmNvbS9kb2NzL3BsdWdpbnMvYWRtaW5cbiAqXG4gKiDqtIDrpqzsnpAg6riw64ql7J2EIOychO2VnCDtlYTrk5zrpbwg7LaU6rCA7ZWp64uI64ukOlxuICpcbiAqIFVzZXIg7YWM7J2067iUOlxuICogLSByb2xlOiDsgqzsmqnsnpAg7Jet7ZWgICjquLDrs7jqsJI6IFwidXNlclwiKVxuICogLSBiYW5uZWQ6IOywqOuLqCDsl6zrtoBcbiAqIC0gYmFuX3JlYXNvbjog7LCo64uoIOyCrOycoFxuICogLSBiYW5fZXhwaXJlczog7LCo64uoIOunjOujjCDsi5zqsIQgKFVuaXggdGltZXN0YW1wKVxuICpcbiAqIFNlc3Npb24g7YWM7J2067iUOlxuICogLSBpbXBlcnNvbmF0ZWRfYnk6IOuMgOumrCDroZzqt7jsnbjtlZwg6rSA66as7J6QIElEXG4gKi9cbmV4cG9ydCBjb25zdCBhZG1pbkVudGl0eURlZjogQmV0dGVyQXV0aEVudGl0eURlZiA9IHtcbiAgaWQ6IFwiYWRtaW5cIixcbiAgbmFtZTogXCJBZG1pblwiLFxuICBlbnRpdGllczogW10sXG4gIGFkZGl0aW9uYWxQcm9wczoge1xuICAgIFVzZXI6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJyb2xlXCIsXG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgIG51bGxhYmxlOiB0cnVlLFxuICAgICAgICBkYkRlZmF1bHQ6ICdcInVzZXJcIicsXG4gICAgICAgIGRlc2M6IFwi7IKs7Jqp7J6QIOyXre2VoFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJiYW5uZWRcIixcbiAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgIG51bGxhYmxlOiB0cnVlLFxuICAgICAgICBkYkRlZmF1bHQ6IFwiZmFsc2VcIixcbiAgICAgICAgZGVzYzogXCLssKjri6gg7Jes67aAXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImJhbl9yZWFzb25cIixcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIGRlc2M6IFwi7LCo64uoIOyCrOycoFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJiYW5fZXhwaXJlc1wiLFxuICAgICAgICB0eXBlOiBcImJpZ0ludGVnZXJcIixcbiAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIGRlc2M6IFwi7LCo64uoIOunjOujjCAoVW5peCB0aW1lc3RhbXApXCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgU2Vzc2lvbjogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcImltcGVyc29uYXRlZF9ieVwiLFxuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgZGVzYzogXCLrjIDrpqwg66Gc6re47J247ZWcIOq0gOumrOyekCBJRFwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSxNQUFhQSxpQkFBc0M7Q0FDakQsSUFBSTtDQUNKLE1BQU07Q0FDTixVQUFVLEVBQUU7Q0FDWixpQkFBaUI7RUFDZixNQUFNO0dBQ0o7SUFDRSxNQUFNO0lBQ04sTUFBTTtJQUNOLFVBQVU7SUFDVixXQUFXO0lBQ1gsTUFBTTtJQUNQO0dBQ0Q7SUFDRSxNQUFNO0lBQ04sTUFBTTtJQUNOLFVBQVU7SUFDVixXQUFXO0lBQ1gsTUFBTTtJQUNQO0dBQ0Q7SUFDRSxNQUFNO0lBQ04sTUFBTTtJQUNOLFVBQVU7SUFDVixNQUFNO0lBQ1A7R0FDRDtJQUNFLE1BQU07SUFDTixNQUFNO0lBQ04sVUFBVTtJQUNWLE1BQU07SUFDUDtHQUNGO0VBQ0QsU0FBUyxDQUNQO0dBQ0UsTUFBTTtHQUNOLE1BQU07R0FDTixVQUFVO0dBQ1YsTUFBTTtHQUNQLENBQ0Y7RUFDRjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anonymous.d.ts","sourceRoot":"","sources":["../../../../src/auth/plugins/entity-definitions/anonymous.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"anonymous.d.ts","sourceRoot":"","sources":["../../../../src/auth/plugins/entity-definitions/anonymous.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,mBAOhC,CAAC"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
+
//#region src/auth/plugins/entity-definitions/anonymous.ts
|
|
1
2
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
}
|
|
3
|
+
* better-auth Anonymous 플러그인 엔티티 정의
|
|
4
|
+
* https://www.better-auth.com/docs/plugins/anonymous
|
|
5
|
+
*
|
|
6
|
+
* 익명 사용자 인증을 지원합니다.
|
|
7
|
+
* 새로운 테이블을 생성하지 않고 User 테이블에 is_anonymous 필드만 추가합니다.
|
|
8
|
+
*/
|
|
9
|
+
const anonymousEntityDef = {
|
|
10
|
+
id: "anonymous",
|
|
11
|
+
name: "Anonymous",
|
|
12
|
+
entities: [],
|
|
13
|
+
additionalProps: { User: [{
|
|
14
|
+
name: "is_anonymous",
|
|
15
|
+
type: "boolean",
|
|
16
|
+
nullable: true,
|
|
17
|
+
desc: "익명 사용자 여부"
|
|
18
|
+
}] }
|
|
21
19
|
};
|
|
22
20
|
|
|
23
|
-
//#
|
|
21
|
+
//#endregion
|
|
22
|
+
export { anonymousEntityDef };
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vbnltb3VzLmpzIiwibmFtZXMiOlsiYW5vbnltb3VzRW50aXR5RGVmOiBCZXR0ZXJBdXRoRW50aXR5RGVmIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F1dGgvcGx1Z2lucy9lbnRpdHktZGVmaW5pdGlvbnMvYW5vbnltb3VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQmV0dGVyQXV0aEVudGl0eURlZiB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogYmV0dGVyLWF1dGggQW5vbnltb3VzIO2UjOufrOq3uOyduCDsl5Tti7Dti7Ag7KCV7J2YXG4gKiBodHRwczovL3d3dy5iZXR0ZXItYXV0aC5jb20vZG9jcy9wbHVnaW5zL2Fub255bW91c1xuICpcbiAqIOydteuqhSDsgqzsmqnsnpAg7J247Kad7J2EIOyngOybkO2VqeuLiOuLpC5cbiAqIOyDiOuhnOyatCDthYzsnbTruJTsnYQg7IOd7ISx7ZWY7KeAIOyViuqzoCBVc2VyIO2FjOydtOu4lOyXkCBpc19hbm9ueW1vdXMg7ZWE65Oc66eMIOy2lOqwgO2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGNvbnN0IGFub255bW91c0VudGl0eURlZjogQmV0dGVyQXV0aEVudGl0eURlZiA9IHtcbiAgaWQ6IFwiYW5vbnltb3VzXCIsXG4gIG5hbWU6IFwiQW5vbnltb3VzXCIsXG4gIGVudGl0aWVzOiBbXSxcbiAgYWRkaXRpb25hbFByb3BzOiB7XG4gICAgVXNlcjogW3sgbmFtZTogXCJpc19hbm9ueW1vdXNcIiwgdHlwZTogXCJib29sZWFuXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuydteuqhSDsgqzsmqnsnpAg7Jes67aAXCIgfV0sXG4gIH0sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVNBLE1BQWFBLHFCQUEwQztDQUNyRCxJQUFJO0NBQ0osTUFBTTtDQUNOLFVBQVUsRUFBRTtDQUNaLGlCQUFpQixFQUNmLE1BQU0sQ0FBQztFQUFFLE1BQU07RUFBZ0IsTUFBTTtFQUFXLFVBQVU7RUFBTSxNQUFNO0VBQWEsQ0FBQyxFQUNyRjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key.d.ts","sourceRoot":"","sources":["../../../../src/auth/plugins/entity-definitions/api-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api-key.d.ts","sourceRoot":"","sources":["../../../../src/auth/plugins/entity-definitions/api-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,mBAoF7B,CAAC"}
|