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,220 +1,223 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Sonamu } from "../api/sonamu.js";
|
|
3
|
-
import { EntityManager } from "../entity/entity-manager.js";
|
|
4
|
-
import { betterAuthV1 } from "./better-auth-entities.js";
|
|
1
|
+
import { betterAuthV1, init_better_auth_entities } from "./better-auth-entities.js";
|
|
2
|
+
import { Sonamu, init_sonamu } from "../api/sonamu.js";
|
|
3
|
+
import { EntityManager, init_entity_manager } from "../entity/entity-manager.js";
|
|
5
4
|
import { ENTITY_DEFINITIONS, isValidPluginId } from "./plugins/entity-definitions/index.js";
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
|
|
7
|
+
//#region src/auth/auth-generator.ts
|
|
8
|
+
init_sonamu();
|
|
9
|
+
init_entity_manager();
|
|
10
|
+
init_better_auth_entities();
|
|
6
11
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
* ėė½ė props 찾기
|
|
13
|
+
*/
|
|
14
|
+
function findMissingProps(existingProps, requiredProps) {
|
|
15
|
+
const existingNames = new Set(existingProps.map((p) => p.name));
|
|
16
|
+
return requiredProps.filter((p) => !existingNames.has(p.name));
|
|
11
17
|
}
|
|
12
18
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
* ķģ
ģ“ ė³ź²½ė props 찾기 (ėģ¼ name, ė¤ė„ø type)
|
|
20
|
+
* @returns [기씓 prop index, ģ prop][]
|
|
21
|
+
*/
|
|
22
|
+
function findPropsToUpdate(existingProps, requiredProps) {
|
|
23
|
+
const result = [];
|
|
24
|
+
for (const requiredProp of requiredProps) {
|
|
25
|
+
const existingIndex = existingProps.findIndex((p) => p.name === requiredProp.name);
|
|
26
|
+
if (existingIndex === -1) continue;
|
|
27
|
+
const existingProp = existingProps[existingIndex];
|
|
28
|
+
const coneChanged = requiredProp.cone?.fixtureStrategy !== existingProp?.cone?.fixtureStrategy;
|
|
29
|
+
if (existingProp?.type !== requiredProp.type || coneChanged) {
|
|
30
|
+
result.push({
|
|
31
|
+
index: existingIndex,
|
|
32
|
+
newProp: requiredProp
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
31
37
|
}
|
|
32
38
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
* ėė½ė indexes 찾기
|
|
40
|
+
*/
|
|
41
|
+
function findMissingIndexes(existingIndexes, requiredIndexes) {
|
|
42
|
+
const existingNames = new Set(existingIndexes.map((i) => i.name));
|
|
43
|
+
return requiredIndexes.filter((i) => !existingNames.has(i.name));
|
|
37
44
|
}
|
|
38
45
|
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
* ėė½ė subsets 찾기
|
|
47
|
+
*/
|
|
48
|
+
function findMissingSubsets(existingSubsets, requiredSubsets) {
|
|
49
|
+
const missing = {};
|
|
50
|
+
for (const [key, fields] of Object.entries(requiredSubsets)) {
|
|
51
|
+
if (!existingSubsets[key]) {
|
|
52
|
+
missing[key] = fields;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return missing;
|
|
48
56
|
}
|
|
49
57
|
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (hasChanges) {
|
|
103
|
-
await entity.save();
|
|
104
|
-
console.log(chalk.blue(`[UPDATED] ${entityJson.id}`));
|
|
105
|
-
} else {
|
|
106
|
-
console.log(chalk.dim(`[SKIP] ${entityJson.id} - no changes`));
|
|
107
|
-
}
|
|
58
|
+
* ģķ°ķ°ė„¼ ģģ±ķź±°ė ģ
ė°ģ“ķøķ©ėė¤.
|
|
59
|
+
*/
|
|
60
|
+
async function createOrUpdateEntity(entityJson) {
|
|
61
|
+
const exists = EntityManager.exists(entityJson.id);
|
|
62
|
+
if (!exists) {
|
|
63
|
+
await Sonamu.syncer.createEntity({
|
|
64
|
+
entityId: entityJson.id,
|
|
65
|
+
table: entityJson.table,
|
|
66
|
+
title: entityJson.title ?? entityJson.id,
|
|
67
|
+
props: entityJson.props ?? [],
|
|
68
|
+
indexes: entityJson.indexes ?? [],
|
|
69
|
+
subsets: entityJson.subsets ?? {},
|
|
70
|
+
enums: entityJson.enums ?? {}
|
|
71
|
+
});
|
|
72
|
+
const entity$1 = EntityManager.get(entityJson.id);
|
|
73
|
+
await entity$1.save();
|
|
74
|
+
console.log(chalk.green(`[CREATED] ${entityJson.id}`));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const entity = EntityManager.get(entityJson.id);
|
|
78
|
+
let hasChanges = false;
|
|
79
|
+
const missingProps = findMissingProps(entity.props, entityJson.props ?? []);
|
|
80
|
+
for (const prop of missingProps) {
|
|
81
|
+
await entity.createProp(prop);
|
|
82
|
+
console.log(chalk.green(`[ADD PROP] ${entityJson.id}.${prop.name}`));
|
|
83
|
+
hasChanges = true;
|
|
84
|
+
}
|
|
85
|
+
const propsToUpdate = findPropsToUpdate(entity.props, entityJson.props ?? []);
|
|
86
|
+
for (const { index, newProp } of propsToUpdate) {
|
|
87
|
+
const oldType = entity.props[index]?.type;
|
|
88
|
+
await entity.modifyProp(newProp, index);
|
|
89
|
+
console.log(chalk.yellow(`[UPDATE PROP] ${entityJson.id}.${newProp.name}: ${oldType} ā ${newProp.type}`));
|
|
90
|
+
hasChanges = true;
|
|
91
|
+
}
|
|
92
|
+
const missingIndexes = findMissingIndexes(entity.indexes, entityJson.indexes ?? []);
|
|
93
|
+
for (const index of missingIndexes) {
|
|
94
|
+
entity.indexes.push(index);
|
|
95
|
+
console.log(chalk.green(`[ADD INDEX] ${entityJson.id}.${index.name}`));
|
|
96
|
+
hasChanges = true;
|
|
97
|
+
}
|
|
98
|
+
const missingSubsets = findMissingSubsets(entity.subsets, entityJson.subsets ?? {});
|
|
99
|
+
for (const [key, fields] of Object.entries(missingSubsets)) {
|
|
100
|
+
entity.subsets[key] = fields;
|
|
101
|
+
console.log(chalk.green(`[ADD SUBSET] ${entityJson.id}.${key}`));
|
|
102
|
+
hasChanges = true;
|
|
103
|
+
}
|
|
104
|
+
if (hasChanges) {
|
|
105
|
+
await entity.save();
|
|
106
|
+
console.log(chalk.blue(`[UPDATED] ${entityJson.id}`));
|
|
107
|
+
} else {
|
|
108
|
+
console.log(chalk.dim(`[SKIP] ${entityJson.id} - no changes`));
|
|
109
|
+
}
|
|
108
110
|
}
|
|
109
111
|
/**
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
112
|
+
* 기씓 ģķ°ķ°ģ props넼 ģ¶ź°ķ©ėė¤.
|
|
113
|
+
*/
|
|
114
|
+
async function addPropsToEntity(entityId, props) {
|
|
115
|
+
if (!EntityManager.exists(entityId)) {
|
|
116
|
+
console.log(chalk.yellow(`[SKIP] ${entityId} - entity not found, cannot add props`));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const entity = EntityManager.get(entityId);
|
|
120
|
+
let hasChanges = false;
|
|
121
|
+
const missingProps = findMissingProps(entity.props, props);
|
|
122
|
+
for (const prop of missingProps) {
|
|
123
|
+
await entity.createProp(prop);
|
|
124
|
+
console.log(chalk.green(`[ADD PROP] ${entityId}.${prop.name}`));
|
|
125
|
+
hasChanges = true;
|
|
126
|
+
}
|
|
127
|
+
if (hasChanges) {
|
|
128
|
+
await entity.save();
|
|
129
|
+
}
|
|
127
130
|
}
|
|
128
131
|
/**
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
132
|
+
* 기씓 ģķ°ķ°ģ indexes넼 ģ¶ź°ķ©ėė¤.
|
|
133
|
+
*/
|
|
134
|
+
async function addIndexesToEntity(entityId, indexes) {
|
|
135
|
+
if (!EntityManager.exists(entityId)) {
|
|
136
|
+
console.log(chalk.yellow(`[SKIP] ${entityId} - entity not found, cannot add indexes`));
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const entity = EntityManager.get(entityId);
|
|
140
|
+
let hasChanges = false;
|
|
141
|
+
const missingIndexes = findMissingIndexes(entity.indexes, indexes);
|
|
142
|
+
for (const index of missingIndexes) {
|
|
143
|
+
entity.indexes.push(index);
|
|
144
|
+
console.log(chalk.green(`[ADD INDEX] ${entityId}.${index.name}`));
|
|
145
|
+
hasChanges = true;
|
|
146
|
+
}
|
|
147
|
+
if (hasChanges) {
|
|
148
|
+
await entity.save();
|
|
149
|
+
}
|
|
146
150
|
}
|
|
147
151
|
/**
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
152
|
+
* 기씓 ķė”ģ ķøģ entity.jsonģ fixtureCompanions넼 ģźø ģ¶ź°ķ©ėė¤.
|
|
153
|
+
*
|
|
154
|
+
* betterAuthV1 źø°ģ¤ģ¼ė” fixtureCompanionsź° ģ ģė entity넼 ģ°¾ģ
|
|
155
|
+
* ķė”ģ ķø ė“ entity.jsonģ ķ“ė¹ propģ coneģ fixtureCompanionsź°
|
|
156
|
+
* ģģ ėė§ ģ¶ź°ķ©ėė¤. ģ“미 ģģ¼ė©“ ģ¤ķµķ©ėė¤.
|
|
157
|
+
*/
|
|
158
|
+
async function addCompanionsToEntities() {
|
|
159
|
+
for (const entityJson of betterAuthV1) {
|
|
160
|
+
const idProp = entityJson.props?.find((p) => p.name === "id");
|
|
161
|
+
if (!idProp?.cone?.fixtureCompanions) continue;
|
|
162
|
+
if (!EntityManager.exists(entityJson.id)) {
|
|
163
|
+
console.log(chalk.yellow(`[SKIP] ${entityJson.id} - not found`));
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
const entity = EntityManager.get(entityJson.id);
|
|
167
|
+
const existingIdProp = entity.props.find((p) => p.name === "id");
|
|
168
|
+
if (!existingIdProp) {
|
|
169
|
+
console.log(chalk.yellow(`[SKIP] ${entityJson.id}.id - prop not found`));
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (existingIdProp.cone?.fixtureCompanions) {
|
|
173
|
+
console.log(chalk.dim(`[SKIP] ${entityJson.id}.id - fixtureCompanions already exists`));
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
existingIdProp.cone = {
|
|
177
|
+
...existingIdProp.cone,
|
|
178
|
+
fixtureCompanions: idProp.cone.fixtureCompanions
|
|
179
|
+
};
|
|
180
|
+
await entity.save();
|
|
181
|
+
console.log(chalk.green(`[UPDATED] ${entityJson.id}.id - fixtureCompanions added`));
|
|
182
|
+
}
|
|
178
183
|
}
|
|
179
184
|
/**
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
console.log(chalk.bold("\nā
Done! better-auth entities generated."));
|
|
185
|
+
* better-auth ģķ°ķ°ė¤ģ Sonamuģ ģģ±/ģ
ė°ģ“ķø
|
|
186
|
+
*
|
|
187
|
+
* @param options ģģ± ģµģ
|
|
188
|
+
* @param options.plugins ķģ±ķķ ķė¬ź·øģø ID ėŖ©ė”
|
|
189
|
+
*/
|
|
190
|
+
async function generateBetterAuthEntities(options = {}) {
|
|
191
|
+
const { plugins = [] } = options;
|
|
192
|
+
console.log(chalk.cyan("\nš¦ Processing core entities...\n"));
|
|
193
|
+
for (const entityJson of betterAuthV1) {
|
|
194
|
+
await createOrUpdateEntity(entityJson);
|
|
195
|
+
}
|
|
196
|
+
if (plugins.length > 0) {
|
|
197
|
+
console.log(chalk.cyan("\nš Processing plugins...\n"));
|
|
198
|
+
for (const pluginId of plugins) {
|
|
199
|
+
if (!isValidPluginId(pluginId)) {
|
|
200
|
+
console.log(chalk.red(`[ERROR] Unknown plugin: ${pluginId}`));
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
const entityDef = ENTITY_DEFINITIONS[pluginId];
|
|
204
|
+
console.log(chalk.magenta(`[PLUGIN] ${entityDef.name}`));
|
|
205
|
+
for (const entityJson of entityDef.entities) {
|
|
206
|
+
await createOrUpdateEntity(entityJson);
|
|
207
|
+
}
|
|
208
|
+
for (const [entityId, props] of Object.entries(entityDef.additionalProps)) {
|
|
209
|
+
await addPropsToEntity(entityId, props);
|
|
210
|
+
}
|
|
211
|
+
if (entityDef.additionalIndexes) {
|
|
212
|
+
for (const [entityId, indexes] of Object.entries(entityDef.additionalIndexes)) {
|
|
213
|
+
await addIndexesToEntity(entityId, indexes);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
console.log(chalk.bold("\nā
Done! better-auth entities generated."));
|
|
218
219
|
}
|
|
219
220
|
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2F1dGgtZ2VuZXJhdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlJbmRleCwgRW50aXR5SnNvbiwgRW50aXR5UHJvcCB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgYmV0dGVyQXV0aFYxIH0gZnJvbSBcIi4vYmV0dGVyLWF1dGgtZW50aXRpZXNcIjtcbmltcG9ydCB7XG4gIHR5cGUgQmV0dGVyQXV0aFBsdWdpbklkLFxuICBFTlRJVFlfREVGSU5JVElPTlMsXG4gIGlzVmFsaWRQbHVnaW5JZCxcbn0gZnJvbSBcIi4vcGx1Z2lucy9lbnRpdHktZGVmaW5pdGlvbnNcIjtcblxuLyoqXG4gKiDriITrnb3rkJwgcHJvcHMg7LC+6riwXG4gKi9cbmZ1bmN0aW9uIGZpbmRNaXNzaW5nUHJvcHMoZXhpc3RpbmdQcm9wczogRW50aXR5UHJvcFtdLCByZXF1aXJlZFByb3BzOiBFbnRpdHlQcm9wW10pOiBFbnRpdHlQcm9wW10ge1xuICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldChleGlzdGluZ1Byb3BzLm1hcCgocCkgPT4gcC5uYW1lKSk7XG4gIHJldHVybiByZXF1aXJlZFByb3BzLmZpbHRlcigocCkgPT4gIWV4aXN0aW5nTmFtZXMuaGFzKHAubmFtZSkpO1xufVxuXG4vKipcbiAqIO2DgOyeheydtCDrs4Dqsr3rkJwgcHJvcHMg7LC+6riwICjrj5nsnbwgbmFtZSwg64uk66W4IHR5cGUpXG4gKiBAcmV0dXJucyBb6riw7KG0IHByb3AgaW5kZXgsIOyDiCBwcm9wXVtdXG4gKi9cbmZ1bmN0aW9uIGZpbmRQcm9wc1RvVXBkYXRlKFxuICBleGlzdGluZ1Byb3BzOiBFbnRpdHlQcm9wW10sXG4gIHJlcXVpcmVkUHJvcHM6IEVudGl0eVByb3BbXSxcbik6IHsgaW5kZXg6IG51bWJlcjsgbmV3UHJvcDogRW50aXR5UHJvcCB9W10ge1xuICBjb25zdCByZXN1bHQ6IHsgaW5kZXg6IG51bWJlcjsgbmV3UHJvcDogRW50aXR5UHJvcCB9W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHJlcXVpcmVkUHJvcCBvZiByZXF1aXJlZFByb3BzKSB7XG4gICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IGV4aXN0aW5nUHJvcHMuZmluZEluZGV4KChwKSA9PiBwLm5hbWUgPT09IHJlcXVpcmVkUHJvcC5uYW1lKTtcbiAgICBpZiAoZXhpc3RpbmdJbmRleCA9PT0gLTEpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgZXhpc3RpbmdQcm9wID0gZXhpc3RpbmdQcm9wc1tleGlzdGluZ0luZGV4XTtcbiAgICAvLyB0eXBl7J20IOuLpOultOqxsOuCmCBjb25lLmZpeHR1cmVTdHJhdGVneeqwgCDri6TrpbTrqbQg7JeF642w7J207Yq4IOuMgOyDgVxuICAgIGNvbnN0IGNvbmVDaGFuZ2VkID0gcmVxdWlyZWRQcm9wLmNvbmU/LmZpeHR1cmVTdHJhdGVneSAhPT0gZXhpc3RpbmdQcm9wPy5jb25lPy5maXh0dXJlU3RyYXRlZ3k7XG4gICAgaWYgKGV4aXN0aW5nUHJvcD8udHlwZSAhPT0gcmVxdWlyZWRQcm9wLnR5cGUgfHwgY29uZUNoYW5nZWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHsgaW5kZXg6IGV4aXN0aW5nSW5kZXgsIG5ld1Byb3A6IHJlcXVpcmVkUHJvcCB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIOuIhOudveuQnCBpbmRleGVzIOywvuq4sFxuICovXG5mdW5jdGlvbiBmaW5kTWlzc2luZ0luZGV4ZXMoXG4gIGV4aXN0aW5nSW5kZXhlczogRW50aXR5SW5kZXhbXSxcbiAgcmVxdWlyZWRJbmRleGVzOiBFbnRpdHlJbmRleFtdLFxuKTogRW50aXR5SW5kZXhbXSB7XG4gIGNvbnN0IGV4aXN0aW5nTmFtZXMgPSBuZXcgU2V0KGV4aXN0aW5nSW5kZXhlcy5tYXAoKGkpID0+IGkubmFtZSkpO1xuICByZXR1cm4gcmVxdWlyZWRJbmRleGVzLmZpbHRlcigoaSkgPT4gIWV4aXN0aW5nTmFtZXMuaGFzKGkubmFtZSkpO1xufVxuXG4vKipcbiAqIOuIhOudveuQnCBzdWJzZXRzIOywvuq4sFxuICovXG5mdW5jdGlvbiBmaW5kTWlzc2luZ1N1YnNldHMoXG4gIGV4aXN0aW5nU3Vic2V0czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICByZXF1aXJlZFN1YnNldHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSxcbik6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSB7XG4gIGNvbnN0IG1pc3Npbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkc10gb2YgT2JqZWN0LmVudHJpZXMocmVxdWlyZWRTdWJzZXRzKSkge1xuICAgIGlmICghZXhpc3RpbmdTdWJzZXRzW2tleV0pIHtcbiAgICAgIG1pc3Npbmdba2V5XSA9IGZpZWxkcztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1pc3Npbmc7XG59XG5cbi8qKlxuICog7JeU7Yuw7Yuw66W8IOyDneyEse2VmOqxsOuCmCDsl4XrjbDsnbTtirjtlanri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU9yVXBkYXRlRW50aXR5KGVudGl0eUpzb246IEVudGl0eUpzb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZXhpc3RzID0gRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SnNvbi5pZCk7XG5cbiAgaWYgKCFleGlzdHMpIHtcbiAgICAvLyDsg4gg7JeU7Yuw7YuwIOyDneyEsVxuICAgIGF3YWl0IFNvbmFtdS5zeW5jZXIuY3JlYXRlRW50aXR5KHtcbiAgICAgIGVudGl0eUlkOiBlbnRpdHlKc29uLmlkLFxuICAgICAgdGFibGU6IGVudGl0eUpzb24udGFibGUsXG4gICAgICB0aXRsZTogZW50aXR5SnNvbi50aXRsZSA/PyBlbnRpdHlKc29uLmlkLFxuICAgICAgcHJvcHM6IGVudGl0eUpzb24ucHJvcHMgPz8gW10sXG4gICAgICBpbmRleGVzOiBlbnRpdHlKc29uLmluZGV4ZXMgPz8gW10sXG4gICAgICBzdWJzZXRzOiBlbnRpdHlKc29uLnN1YnNldHMgPz8ge30sXG4gICAgICBlbnVtczogZW50aXR5SnNvbi5lbnVtcyA/PyB7fSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUpzb24uaWQpO1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtDUkVBVEVEXSAke2VudGl0eUpzb24uaWR9YCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIOq4sOyhtCDsl5Tti7Dti7Ag7JeF642w7J207Yq4XG4gIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUpzb24uaWQpO1xuICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIC8vIOuIhOudveuQnCBwcm9wcyDstpTqsIBcbiAgY29uc3QgbWlzc2luZ1Byb3BzID0gZmluZE1pc3NpbmdQcm9wcyhlbnRpdHkucHJvcHMsIGVudGl0eUpzb24ucHJvcHMgPz8gW10pO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgbWlzc2luZ1Byb3BzKSB7XG4gICAgYXdhaXQgZW50aXR5LmNyZWF0ZVByb3AocHJvcCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgUFJPUF0gJHtlbnRpdHlKc29uLmlkfS4ke3Byb3AubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDtg4DsnoXsnbQg67OA6rK965CcIHByb3BzIOyXheuNsOydtO2KuFxuICBjb25zdCBwcm9wc1RvVXBkYXRlID0gZmluZFByb3BzVG9VcGRhdGUoZW50aXR5LnByb3BzLCBlbnRpdHlKc29uLnByb3BzID8/IFtdKTtcbiAgZm9yIChjb25zdCB7IGluZGV4LCBuZXdQcm9wIH0gb2YgcHJvcHNUb1VwZGF0ZSkge1xuICAgIGNvbnN0IG9sZFR5cGUgPSBlbnRpdHkucHJvcHNbaW5kZXhdPy50eXBlO1xuICAgIGF3YWl0IGVudGl0eS5tb2RpZnlQcm9wKG5ld1Byb3AsIGluZGV4KTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNoYWxrLnllbGxvdyhgW1VQREFURSBQUk9QXSAke2VudGl0eUpzb24uaWR9LiR7bmV3UHJvcC5uYW1lfTogJHtvbGRUeXBlfSDihpIgJHtuZXdQcm9wLnR5cGV9YCksXG4gICAgKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIOuIhOudveuQnCBpbmRleGVzIOy2lOqwgFxuICBjb25zdCBtaXNzaW5nSW5kZXhlcyA9IGZpbmRNaXNzaW5nSW5kZXhlcyhlbnRpdHkuaW5kZXhlcywgZW50aXR5SnNvbi5pbmRleGVzID8/IFtdKTtcbiAgZm9yIChjb25zdCBpbmRleCBvZiBtaXNzaW5nSW5kZXhlcykge1xuICAgIGVudGl0eS5pbmRleGVzLnB1c2goaW5kZXgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIElOREVYXSAke2VudGl0eUpzb24uaWR9LiR7aW5kZXgubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDriITrnb3rkJwgc3Vic2V0cyDstpTqsIBcbiAgY29uc3QgbWlzc2luZ1N1YnNldHMgPSBmaW5kTWlzc2luZ1N1YnNldHMoXG4gICAgZW50aXR5LnN1YnNldHMsXG4gICAgKGVudGl0eUpzb24uc3Vic2V0cyA/PyB7fSkgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICApO1xuICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkc10gb2YgT2JqZWN0LmVudHJpZXMobWlzc2luZ1N1YnNldHMpKSB7XG4gICAgZW50aXR5LnN1YnNldHNba2V5XSA9IGZpZWxkcztcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0FERCBTVUJTRVRdICR7ZW50aXR5SnNvbi5pZH0uJHtrZXl9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgLy8g67OA6rK97IKs7ZWtIOyggOyepVxuICBpZiAoaGFzQ2hhbmdlcykge1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuYmx1ZShgW1VQREFURURdICR7ZW50aXR5SnNvbi5pZH1gKSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZGltKGBbU0tJUF0gJHtlbnRpdHlKc29uLmlkfSAtIG5vIGNoYW5nZXNgKSk7XG4gIH1cbn1cblxuLyoqXG4gKiDquLDsobQg7JeU7Yuw7Yuw7JeQIHByb3Bz66W8IOy2lOqwgO2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkUHJvcHNUb0VudGl0eShlbnRpdHlJZDogc3RyaW5nLCBwcm9wczogRW50aXR5UHJvcFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SWQpKSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlJZH0gLSBlbnRpdHkgbm90IGZvdW5kLCBjYW5ub3QgYWRkIHByb3BzYCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKTtcbiAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICBjb25zdCBtaXNzaW5nUHJvcHMgPSBmaW5kTWlzc2luZ1Byb3BzKGVudGl0eS5wcm9wcywgcHJvcHMpO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgbWlzc2luZ1Byb3BzKSB7XG4gICAgYXdhaXQgZW50aXR5LmNyZWF0ZVByb3AocHJvcCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgUFJPUF0gJHtlbnRpdHlJZH0uJHtwcm9wLm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGhhc0NoYW5nZXMpIHtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICB9XG59XG5cbi8qKlxuICog6riw7KG0IOyXlO2LsO2LsOyXkCBpbmRleGVz66W8IOy2lOqwgO2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkSW5kZXhlc1RvRW50aXR5KGVudGl0eUlkOiBzdHJpbmcsIGluZGV4ZXM6IEVudGl0eUluZGV4W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFFbnRpdHlNYW5hZ2VyLmV4aXN0cyhlbnRpdHlJZCkpIHtcbiAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coYFtTS0lQXSAke2VudGl0eUlkfSAtIGVudGl0eSBub3QgZm91bmQsIGNhbm5vdCBhZGQgaW5kZXhlc2ApKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG4gIGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cbiAgY29uc3QgbWlzc2luZ0luZGV4ZXMgPSBmaW5kTWlzc2luZ0luZGV4ZXMoZW50aXR5LmluZGV4ZXMsIGluZGV4ZXMpO1xuICBmb3IgKGNvbnN0IGluZGV4IG9mIG1pc3NpbmdJbmRleGVzKSB7XG4gICAgZW50aXR5LmluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgSU5ERVhdICR7ZW50aXR5SWR9LiR7aW5kZXgubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICBpZiAoaGFzQ2hhbmdlcykge1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMge1xuICAvKipcbiAgICog7Zmc7ISx7ZmU7ZWgIO2UjOufrOq3uOyduCBJRCDrqqnroZ1cbiAgICog7JiIOiBbXCJwaG9uZS1udW1iZXJcIiwgXCIyZmFcIl1cbiAgICovXG4gIHBsdWdpbnM/OiBCZXR0ZXJBdXRoUGx1Z2luSWRbXTtcbn1cblxuLyoqXG4gKiDquLDsobQg7ZSE66Gc7KCd7Yq47J2YIGVudGl0eS5qc29u7JeQIGZpeHR1cmVDb21wYW5pb25z66W8IOyGjOq4iSDstpTqsIDtlanri4jri6QuXG4gKlxuICogYmV0dGVyQXV0aFYxIOq4sOykgOycvOuhnCBmaXh0dXJlQ29tcGFuaW9uc+qwgCDsoJXsnZjrkJwgZW50aXR566W8IOywvuyVhFxuICog7ZSE66Gc7KCd7Yq4IOuCtCBlbnRpdHkuanNvbuyXkCDtlbTri7kgcHJvcOydmCBjb25l7JeQIGZpeHR1cmVDb21wYW5pb25z6rCAXG4gKiDsl4bsnYQg65WM66eMIOy2lOqwgO2VqeuLiOuLpC4g7J2066+4IOyeiOycvOuptCDsiqTtgrXtlanri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRDb21wYW5pb25zVG9FbnRpdGllcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgZm9yIChjb25zdCBlbnRpdHlKc29uIG9mIGJldHRlckF1dGhWMSkge1xuICAgIGNvbnN0IGlkUHJvcCA9IGVudGl0eUpzb24ucHJvcHM/LmZpbmQoKHApID0+IHAubmFtZSA9PT0gXCJpZFwiKTtcbiAgICBpZiAoIWlkUHJvcD8uY29uZT8uZml4dHVyZUNvbXBhbmlvbnMpIGNvbnRpbnVlO1xuXG4gICAgaWYgKCFFbnRpdHlNYW5hZ2VyLmV4aXN0cyhlbnRpdHlKc29uLmlkKSkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlKc29uLmlkfSAtIG5vdCBmb3VuZGApKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUpzb24uaWQpO1xuICAgIGNvbnN0IGV4aXN0aW5nSWRQcm9wID0gZW50aXR5LnByb3BzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gXCJpZFwiKTtcbiAgICBpZiAoIWV4aXN0aW5nSWRQcm9wKSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coYFtTS0lQXSAke2VudGl0eUpzb24uaWR9LmlkIC0gcHJvcCBub3QgZm91bmRgKSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoZXhpc3RpbmdJZFByb3AuY29uZT8uZml4dHVyZUNvbXBhbmlvbnMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmRpbShgW1NLSVBdICR7ZW50aXR5SnNvbi5pZH0uaWQgLSBmaXh0dXJlQ29tcGFuaW9ucyBhbHJlYWR5IGV4aXN0c2ApKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGV4aXN0aW5nSWRQcm9wLmNvbmUgPSB7XG4gICAgICAuLi5leGlzdGluZ0lkUHJvcC5jb25lLFxuICAgICAgZml4dHVyZUNvbXBhbmlvbnM6IGlkUHJvcC5jb25lLmZpeHR1cmVDb21wYW5pb25zLFxuICAgIH07XG4gICAgYXdhaXQgZW50aXR5LnNhdmUoKTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW1VQREFURURdICR7ZW50aXR5SnNvbi5pZH0uaWQgLSBmaXh0dXJlQ29tcGFuaW9ucyBhZGRlZGApKTtcbiAgfVxufVxuXG4vKipcbiAqIGJldHRlci1hdXRoIOyXlO2LsO2LsOuTpOydhCBTb25hbXXsl5Ag7IOd7ISxL+yXheuNsOydtO2KuFxuICpcbiAqIEBwYXJhbSBvcHRpb25zIOyDneyEsSDsmLXshZhcbiAqIEBwYXJhbSBvcHRpb25zLnBsdWdpbnMg7Zmc7ISx7ZmU7ZWgIO2UjOufrOq3uOyduCBJRCDrqqnroZ1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlQmV0dGVyQXV0aEVudGl0aWVzKFxuICBvcHRpb25zOiBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMgPSB7fSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBsdWdpbnMgPSBbXSB9ID0gb3B0aW9ucztcblxuICAvLyAxLiDquLDrs7gg7JeU7Yuw7YuwIOyDneyEsS/sl4XrjbDsnbTtirhcbiAgY29uc29sZS5sb2coY2hhbGsuY3lhbihcIlxcbvCfk6YgUHJvY2Vzc2luZyBjb3JlIGVudGl0aWVzLi4uXFxuXCIpKTtcbiAgZm9yIChjb25zdCBlbnRpdHlKc29uIG9mIGJldHRlckF1dGhWMSkge1xuICAgIGF3YWl0IGNyZWF0ZU9yVXBkYXRlRW50aXR5KGVudGl0eUpzb24pO1xuICB9XG5cbiAgLy8gMi4g7ZSM65+s6re47J24IOyymOumrFxuICBpZiAocGx1Z2lucy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsuY3lhbihcIlxcbvCflIwgUHJvY2Vzc2luZyBwbHVnaW5zLi4uXFxuXCIpKTtcblxuICAgIGZvciAoY29uc3QgcGx1Z2luSWQgb2YgcGx1Z2lucykge1xuICAgICAgaWYgKCFpc1ZhbGlkUGx1Z2luSWQocGx1Z2luSWQpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZChgW0VSUk9SXSBVbmtub3duIHBsdWdpbjogJHtwbHVnaW5JZH1gKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRpdHlEZWYgPSBFTlRJVFlfREVGSU5JVElPTlNbcGx1Z2luSWRdO1xuICAgICAgY29uc29sZS5sb2coY2hhbGsubWFnZW50YShgW1BMVUdJTl0gJHtlbnRpdHlEZWYubmFtZX1gKSk7XG5cbiAgICAgIC8vIO2UjOufrOq3uOyduOydmCDsg4gg7JeU7Yuw7YuwIOyDneyEsVxuICAgICAgZm9yIChjb25zdCBlbnRpdHlKc29uIG9mIGVudGl0eURlZi5lbnRpdGllcykge1xuICAgICAgICBhd2FpdCBjcmVhdGVPclVwZGF0ZUVudGl0eShlbnRpdHlKc29uKTtcbiAgICAgIH1cblxuICAgICAgLy8g6riw7KG0IOyXlO2LsO2LsOyXkCDtlYTrk5wg7LaU6rCAXG4gICAgICBmb3IgKGNvbnN0IFtlbnRpdHlJZCwgcHJvcHNdIG9mIE9iamVjdC5lbnRyaWVzKGVudGl0eURlZi5hZGRpdGlvbmFsUHJvcHMpKSB7XG4gICAgICAgIGF3YWl0IGFkZFByb3BzVG9FbnRpdHkoZW50aXR5SWQsIHByb3BzKTtcbiAgICAgIH1cblxuICAgICAgLy8g6riw7KG0IOyXlO2LsO2LsOyXkCDsnbjrjbHsiqQg7LaU6rCAXG4gICAgICBpZiAoZW50aXR5RGVmLmFkZGl0aW9uYWxJbmRleGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2VudGl0eUlkLCBpbmRleGVzXSBvZiBPYmplY3QuZW50cmllcyhlbnRpdHlEZWYuYWRkaXRpb25hbEluZGV4ZXMpKSB7XG4gICAgICAgICAgYXdhaXQgYWRkSW5kZXhlc1RvRW50aXR5KGVudGl0eUlkLCBpbmRleGVzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnNvbGUubG9nKGNoYWxrLmJvbGQoXCJcXG7inIUgRG9uZSEgYmV0dGVyLWF1dGggZW50aXRpZXMgZ2VuZXJhdGVkLlwiKSk7XG59XG4iXSwibmFtZXMiOlsiY2hhbGsiLCJTb25hbXUiLCJFbnRpdHlNYW5hZ2VyIiwiYmV0dGVyQXV0aFYxIiwiRU5USVRZX0RFRklOSVRJT05TIiwiaXNWYWxpZFBsdWdpbklkIiwiZmluZE1pc3NpbmdQcm9wcyIsImV4aXN0aW5nUHJvcHMiLCJyZXF1aXJlZFByb3BzIiwiZXhpc3RpbmdOYW1lcyIsIlNldCIsIm1hcCIsInAiLCJuYW1lIiwiZmlsdGVyIiwiaGFzIiwiZmluZFByb3BzVG9VcGRhdGUiLCJyZXN1bHQiLCJyZXF1aXJlZFByb3AiLCJleGlzdGluZ0luZGV4IiwiZmluZEluZGV4IiwiZXhpc3RpbmdQcm9wIiwiY29uZUNoYW5nZWQiLCJjb25lIiwiZml4dHVyZVN0cmF0ZWd5IiwidHlwZSIsInB1c2giLCJpbmRleCIsIm5ld1Byb3AiLCJmaW5kTWlzc2luZ0luZGV4ZXMiLCJleGlzdGluZ0luZGV4ZXMiLCJyZXF1aXJlZEluZGV4ZXMiLCJpIiwiZmluZE1pc3NpbmdTdWJzZXRzIiwiZXhpc3RpbmdTdWJzZXRzIiwicmVxdWlyZWRTdWJzZXRzIiwibWlzc2luZyIsImtleSIsImZpZWxkcyIsIk9iamVjdCIsImVudHJpZXMiLCJjcmVhdGVPclVwZGF0ZUVudGl0eSIsImVudGl0eUpzb24iLCJleGlzdHMiLCJpZCIsInN5bmNlciIsImNyZWF0ZUVudGl0eSIsImVudGl0eUlkIiwidGFibGUiLCJ0aXRsZSIsInByb3BzIiwiaW5kZXhlcyIsInN1YnNldHMiLCJlbnVtcyIsImVudGl0eSIsImdldCIsInNhdmUiLCJjb25zb2xlIiwibG9nIiwiZ3JlZW4iLCJoYXNDaGFuZ2VzIiwibWlzc2luZ1Byb3BzIiwicHJvcCIsImNyZWF0ZVByb3AiLCJwcm9wc1RvVXBkYXRlIiwib2xkVHlwZSIsIm1vZGlmeVByb3AiLCJ5ZWxsb3ciLCJtaXNzaW5nSW5kZXhlcyIsIm1pc3NpbmdTdWJzZXRzIiwiYmx1ZSIsImRpbSIsImFkZFByb3BzVG9FbnRpdHkiLCJhZGRJbmRleGVzVG9FbnRpdHkiLCJhZGRDb21wYW5pb25zVG9FbnRpdGllcyIsImlkUHJvcCIsImZpbmQiLCJmaXh0dXJlQ29tcGFuaW9ucyIsImV4aXN0aW5nSWRQcm9wIiwiZ2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXMiLCJvcHRpb25zIiwicGx1Z2lucyIsImN5YW4iLCJsZW5ndGgiLCJwbHVnaW5JZCIsInJlZCIsImVudGl0eURlZiIsIm1hZ2VudGEiLCJlbnRpdGllcyIsImFkZGl0aW9uYWxQcm9wcyIsImFkZGl0aW9uYWxJbmRleGVzIiwiYm9sZCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBVyxRQUFRO0FBQzFCLFNBQVNDLE1BQU0sUUFBUSxtQkFBZ0I7QUFDdkMsU0FBU0MsYUFBYSxRQUFRLDhCQUEyQjtBQUV6RCxTQUFTQyxZQUFZLFFBQVEsNEJBQXlCO0FBQ3RELFNBRUVDLGtCQUFrQixFQUNsQkMsZUFBZSxRQUNWLHdDQUErQjtBQUV0Qzs7Q0FFQyxHQUNE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
|
|
221
|
+
//#endregion
|
|
222
|
+
export { addCompanionsToEntities, generateBetterAuthEntities };
|
|
223
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1nZW5lcmF0b3IuanMiLCJuYW1lcyI6WyJyZXN1bHQ6IHsgaW5kZXg6IG51bWJlcjsgbmV3UHJvcDogRW50aXR5UHJvcCB9W10iLCJtaXNzaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0iLCJlbnRpdHkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXV0aC9hdXRoLWdlbmVyYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHlJbmRleCwgdHlwZSBFbnRpdHlKc29uLCB0eXBlIEVudGl0eVByb3AgfSBmcm9tIFwiLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IGJldHRlckF1dGhWMSB9IGZyb20gXCIuL2JldHRlci1hdXRoLWVudGl0aWVzXCI7XG5pbXBvcnQgeyBFTlRJVFlfREVGSU5JVElPTlMsIGlzVmFsaWRQbHVnaW5JZCB9IGZyb20gXCIuL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zXCI7XG5pbXBvcnQgeyB0eXBlIEJldHRlckF1dGhQbHVnaW5JZCB9IGZyb20gXCIuL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zXCI7XG5cbi8qKlxuICog64iE652965CcIHByb3BzIOywvuq4sFxuICovXG5mdW5jdGlvbiBmaW5kTWlzc2luZ1Byb3BzKGV4aXN0aW5nUHJvcHM6IEVudGl0eVByb3BbXSwgcmVxdWlyZWRQcm9wczogRW50aXR5UHJvcFtdKTogRW50aXR5UHJvcFtdIHtcbiAgY29uc3QgZXhpc3RpbmdOYW1lcyA9IG5ldyBTZXQoZXhpc3RpbmdQcm9wcy5tYXAoKHApID0+IHAubmFtZSkpO1xuICByZXR1cm4gcmVxdWlyZWRQcm9wcy5maWx0ZXIoKHApID0+ICFleGlzdGluZ05hbWVzLmhhcyhwLm5hbWUpKTtcbn1cblxuLyoqXG4gKiDtg4DsnoXsnbQg67OA6rK965CcIHByb3BzIOywvuq4sCAo64+Z7J28IG5hbWUsIOuLpOuluCB0eXBlKVxuICogQHJldHVybnMgW+q4sOyhtCBwcm9wIGluZGV4LCDsg4ggcHJvcF1bXVxuICovXG5mdW5jdGlvbiBmaW5kUHJvcHNUb1VwZGF0ZShcbiAgZXhpc3RpbmdQcm9wczogRW50aXR5UHJvcFtdLFxuICByZXF1aXJlZFByb3BzOiBFbnRpdHlQcm9wW10sXG4pOiB7IGluZGV4OiBudW1iZXI7IG5ld1Byb3A6IEVudGl0eVByb3AgfVtdIHtcbiAgY29uc3QgcmVzdWx0OiB7IGluZGV4OiBudW1iZXI7IG5ld1Byb3A6IEVudGl0eVByb3AgfVtdID0gW107XG5cbiAgZm9yIChjb25zdCByZXF1aXJlZFByb3Agb2YgcmVxdWlyZWRQcm9wcykge1xuICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBleGlzdGluZ1Byb3BzLmZpbmRJbmRleCgocCkgPT4gcC5uYW1lID09PSByZXF1aXJlZFByb3AubmFtZSk7XG4gICAgaWYgKGV4aXN0aW5nSW5kZXggPT09IC0xKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGV4aXN0aW5nUHJvcCA9IGV4aXN0aW5nUHJvcHNbZXhpc3RpbmdJbmRleF07XG4gICAgLy8gdHlwZeydtCDri6TrpbTqsbDrgpggY29uZS5maXh0dXJlU3RyYXRlZ3nqsIAg64uk66W066m0IOyXheuNsOydtO2KuCDrjIDsg4FcbiAgICBjb25zdCBjb25lQ2hhbmdlZCA9IHJlcXVpcmVkUHJvcC5jb25lPy5maXh0dXJlU3RyYXRlZ3kgIT09IGV4aXN0aW5nUHJvcD8uY29uZT8uZml4dHVyZVN0cmF0ZWd5O1xuICAgIGlmIChleGlzdGluZ1Byb3A/LnR5cGUgIT09IHJlcXVpcmVkUHJvcC50eXBlIHx8IGNvbmVDaGFuZ2VkKSB7XG4gICAgICByZXN1bHQucHVzaCh7IGluZGV4OiBleGlzdGluZ0luZGV4LCBuZXdQcm9wOiByZXF1aXJlZFByb3AgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiDriITrnb3rkJwgaW5kZXhlcyDssL7quLBcbiAqL1xuZnVuY3Rpb24gZmluZE1pc3NpbmdJbmRleGVzKFxuICBleGlzdGluZ0luZGV4ZXM6IEVudGl0eUluZGV4W10sXG4gIHJlcXVpcmVkSW5kZXhlczogRW50aXR5SW5kZXhbXSxcbik6IEVudGl0eUluZGV4W10ge1xuICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldChleGlzdGluZ0luZGV4ZXMubWFwKChpKSA9PiBpLm5hbWUpKTtcbiAgcmV0dXJuIHJlcXVpcmVkSW5kZXhlcy5maWx0ZXIoKGkpID0+ICFleGlzdGluZ05hbWVzLmhhcyhpLm5hbWUpKTtcbn1cblxuLyoqXG4gKiDriITrnb3rkJwgc3Vic2V0cyDssL7quLBcbiAqL1xuZnVuY3Rpb24gZmluZE1pc3NpbmdTdWJzZXRzKFxuICBleGlzdGluZ1N1YnNldHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSxcbiAgcmVxdWlyZWRTdWJzZXRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4pOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xuICBjb25zdCBtaXNzaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCBmaWVsZHNdIG9mIE9iamVjdC5lbnRyaWVzKHJlcXVpcmVkU3Vic2V0cykpIHtcbiAgICBpZiAoIWV4aXN0aW5nU3Vic2V0c1trZXldKSB7XG4gICAgICBtaXNzaW5nW2tleV0gPSBmaWVsZHM7XG4gICAgfVxuICB9XG4gIHJldHVybiBtaXNzaW5nO1xufVxuXG4vKipcbiAqIOyXlO2LsO2LsOulvCDsg53shLHtlZjqsbDrgpgg7JeF642w7J207Yq47ZWp64uI64ukLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVPclVwZGF0ZUVudGl0eShlbnRpdHlKc29uOiBFbnRpdHlKc29uKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGV4aXN0cyA9IEVudGl0eU1hbmFnZXIuZXhpc3RzKGVudGl0eUpzb24uaWQpO1xuXG4gIGlmICghZXhpc3RzKSB7XG4gICAgLy8g7IOIIOyXlO2LsO2LsCDsg53shLFcbiAgICBhd2FpdCBTb25hbXUuc3luY2VyLmNyZWF0ZUVudGl0eSh7XG4gICAgICBlbnRpdHlJZDogZW50aXR5SnNvbi5pZCxcbiAgICAgIHRhYmxlOiBlbnRpdHlKc29uLnRhYmxlLFxuICAgICAgdGl0bGU6IGVudGl0eUpzb24udGl0bGUgPz8gZW50aXR5SnNvbi5pZCxcbiAgICAgIHByb3BzOiBlbnRpdHlKc29uLnByb3BzID8/IFtdLFxuICAgICAgaW5kZXhlczogZW50aXR5SnNvbi5pbmRleGVzID8/IFtdLFxuICAgICAgc3Vic2V0czogZW50aXR5SnNvbi5zdWJzZXRzID8/IHt9LFxuICAgICAgZW51bXM6IGVudGl0eUpzb24uZW51bXMgPz8ge30sXG4gICAgfSk7XG5cbiAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlKc29uLmlkKTtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQ1JFQVRFRF0gJHtlbnRpdHlKc29uLmlkfWApKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyDquLDsobQg7JeU7Yuw7YuwIOyXheuNsOydtO2KuFxuICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlKc29uLmlkKTtcbiAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICAvLyDriITrnb3rkJwgcHJvcHMg7LaU6rCAXG4gIGNvbnN0IG1pc3NpbmdQcm9wcyA9IGZpbmRNaXNzaW5nUHJvcHMoZW50aXR5LnByb3BzLCBlbnRpdHlKc29uLnByb3BzID8/IFtdKTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIG1pc3NpbmdQcm9wcykge1xuICAgIGF3YWl0IGVudGl0eS5jcmVhdGVQcm9wKHByb3ApO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIFBST1BdICR7ZW50aXR5SnNvbi5pZH0uJHtwcm9wLm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgLy8g7YOA7J6F7J20IOuzgOqyveuQnCBwcm9wcyDsl4XrjbDsnbTtirhcbiAgY29uc3QgcHJvcHNUb1VwZGF0ZSA9IGZpbmRQcm9wc1RvVXBkYXRlKGVudGl0eS5wcm9wcywgZW50aXR5SnNvbi5wcm9wcyA/PyBbXSk7XG4gIGZvciAoY29uc3QgeyBpbmRleCwgbmV3UHJvcCB9IG9mIHByb3BzVG9VcGRhdGUpIHtcbiAgICBjb25zdCBvbGRUeXBlID0gZW50aXR5LnByb3BzW2luZGV4XT8udHlwZTtcbiAgICBhd2FpdCBlbnRpdHkubW9kaWZ5UHJvcChuZXdQcm9wLCBpbmRleCk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBjaGFsay55ZWxsb3coYFtVUERBVEUgUFJPUF0gJHtlbnRpdHlKc29uLmlkfS4ke25ld1Byb3AubmFtZX06ICR7b2xkVHlwZX0g4oaSICR7bmV3UHJvcC50eXBlfWApLFxuICAgICk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDriITrnb3rkJwgaW5kZXhlcyDstpTqsIBcbiAgY29uc3QgbWlzc2luZ0luZGV4ZXMgPSBmaW5kTWlzc2luZ0luZGV4ZXMoZW50aXR5LmluZGV4ZXMsIGVudGl0eUpzb24uaW5kZXhlcyA/PyBbXSk7XG4gIGZvciAoY29uc3QgaW5kZXggb2YgbWlzc2luZ0luZGV4ZXMpIHtcbiAgICBlbnRpdHkuaW5kZXhlcy5wdXNoKGluZGV4KTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0FERCBJTkRFWF0gJHtlbnRpdHlKc29uLmlkfS4ke2luZGV4Lm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgLy8g64iE652965CcIHN1YnNldHMg7LaU6rCAXG4gIGNvbnN0IG1pc3NpbmdTdWJzZXRzID0gZmluZE1pc3NpbmdTdWJzZXRzKFxuICAgIGVudGl0eS5zdWJzZXRzLFxuICAgIChlbnRpdHlKc29uLnN1YnNldHMgPz8ge30pIGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSxcbiAgKTtcbiAgZm9yIChjb25zdCBba2V5LCBmaWVsZHNdIG9mIE9iamVjdC5lbnRyaWVzKG1pc3NpbmdTdWJzZXRzKSkge1xuICAgIGVudGl0eS5zdWJzZXRzW2tleV0gPSBmaWVsZHM7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgU1VCU0VUXSAke2VudGl0eUpzb24uaWR9LiR7a2V5fWApKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIOuzgOqyveyCrO2VrSDsoIDsnqVcbiAgaWYgKGhhc0NoYW5nZXMpIHtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmJsdWUoYFtVUERBVEVEXSAke2VudGl0eUpzb24uaWR9YCkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmRpbShgW1NLSVBdICR7ZW50aXR5SnNvbi5pZH0gLSBubyBjaGFuZ2VzYCkpO1xuICB9XG59XG5cbi8qKlxuICog6riw7KG0IOyXlO2LsO2LsOyXkCBwcm9wc+ulvCDstpTqsIDtlanri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGFkZFByb3BzVG9FbnRpdHkoZW50aXR5SWQ6IHN0cmluZywgcHJvcHM6IEVudGl0eVByb3BbXSk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIUVudGl0eU1hbmFnZXIuZXhpc3RzKGVudGl0eUlkKSkge1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhgW1NLSVBdICR7ZW50aXR5SWR9IC0gZW50aXR5IG5vdCBmb3VuZCwgY2Fubm90IGFkZCBwcm9wc2ApKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG4gIGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cbiAgY29uc3QgbWlzc2luZ1Byb3BzID0gZmluZE1pc3NpbmdQcm9wcyhlbnRpdHkucHJvcHMsIHByb3BzKTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIG1pc3NpbmdQcm9wcykge1xuICAgIGF3YWl0IGVudGl0eS5jcmVhdGVQcm9wKHByb3ApO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIFBST1BdICR7ZW50aXR5SWR9LiR7cHJvcC5uYW1lfWApKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChoYXNDaGFuZ2VzKSB7XG4gICAgYXdhaXQgZW50aXR5LnNhdmUoKTtcbiAgfVxufVxuXG4vKipcbiAqIOq4sOyhtCDsl5Tti7Dti7Dsl5AgaW5kZXhlc+ulvCDstpTqsIDtlanri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGFkZEluZGV4ZXNUb0VudGl0eShlbnRpdHlJZDogc3RyaW5nLCBpbmRleGVzOiBFbnRpdHlJbmRleFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SWQpKSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlJZH0gLSBlbnRpdHkgbm90IGZvdW5kLCBjYW5ub3QgYWRkIGluZGV4ZXNgKSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SWQpO1xuICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG1pc3NpbmdJbmRleGVzID0gZmluZE1pc3NpbmdJbmRleGVzKGVudGl0eS5pbmRleGVzLCBpbmRleGVzKTtcbiAgZm9yIChjb25zdCBpbmRleCBvZiBtaXNzaW5nSW5kZXhlcykge1xuICAgIGVudGl0eS5pbmRleGVzLnB1c2goaW5kZXgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIElOREVYXSAke2VudGl0eUlkfS4ke2luZGV4Lm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGhhc0NoYW5nZXMpIHtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXNPcHRpb25zIHtcbiAgLyoqXG4gICAqIO2ZnOyEse2ZlO2VoCDtlIzrn6zqt7jsnbggSUQg66qp66GdXG4gICAqIOyYiDogW1wicGhvbmUtbnVtYmVyXCIsIFwiMmZhXCJdXG4gICAqL1xuICBwbHVnaW5zPzogQmV0dGVyQXV0aFBsdWdpbklkW107XG59XG5cbi8qKlxuICog6riw7KG0IO2UhOuhnOygne2KuOydmCBlbnRpdHkuanNvbuyXkCBmaXh0dXJlQ29tcGFuaW9uc+ulvCDshozquIkg7LaU6rCA7ZWp64uI64ukLlxuICpcbiAqIGJldHRlckF1dGhWMSDquLDspIDsnLzroZwgZml4dHVyZUNvbXBhbmlvbnPqsIAg7KCV7J2Y65CcIGVudGl0eeulvCDssL7slYRcbiAqIO2UhOuhnOygne2KuCDrgrQgZW50aXR5Lmpzb27sl5Ag7ZW064u5IHByb3DsnZggY29uZeyXkCBmaXh0dXJlQ29tcGFuaW9uc+qwgFxuICog7JeG7J2EIOuVjOunjCDstpTqsIDtlanri4jri6QuIOydtOuvuCDsnojsnLzrqbQg7Iqk7YK17ZWp64uI64ukLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkQ29tcGFuaW9uc1RvRW50aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGZvciAoY29uc3QgZW50aXR5SnNvbiBvZiBiZXR0ZXJBdXRoVjEpIHtcbiAgICBjb25zdCBpZFByb3AgPSBlbnRpdHlKc29uLnByb3BzPy5maW5kKChwKSA9PiBwLm5hbWUgPT09IFwiaWRcIik7XG4gICAgaWYgKCFpZFByb3A/LmNvbmU/LmZpeHR1cmVDb21wYW5pb25zKSBjb250aW51ZTtcblxuICAgIGlmICghRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SnNvbi5pZCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhgW1NLSVBdICR7ZW50aXR5SnNvbi5pZH0gLSBub3QgZm91bmRgKSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlKc29uLmlkKTtcbiAgICBjb25zdCBleGlzdGluZ0lkUHJvcCA9IGVudGl0eS5wcm9wcy5maW5kKChwKSA9PiBwLm5hbWUgPT09IFwiaWRcIik7XG4gICAgaWYgKCFleGlzdGluZ0lkUHJvcCkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlKc29uLmlkfS5pZCAtIHByb3Agbm90IGZvdW5kYCkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0aW5nSWRQcm9wLmNvbmU/LmZpeHR1cmVDb21wYW5pb25zKSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5kaW0oYFtTS0lQXSAke2VudGl0eUpzb24uaWR9LmlkIC0gZml4dHVyZUNvbXBhbmlvbnMgYWxyZWFkeSBleGlzdHNgKSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBleGlzdGluZ0lkUHJvcC5jb25lID0ge1xuICAgICAgLi4uZXhpc3RpbmdJZFByb3AuY29uZSxcbiAgICAgIGZpeHR1cmVDb21wYW5pb25zOiBpZFByb3AuY29uZS5maXh0dXJlQ29tcGFuaW9ucyxcbiAgICB9O1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtVUERBVEVEXSAke2VudGl0eUpzb24uaWR9LmlkIC0gZml4dHVyZUNvbXBhbmlvbnMgYWRkZWRgKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBiZXR0ZXItYXV0aCDsl5Tti7Dti7Drk6TsnYQgU29uYW117JeQIOyDneyEsS/sl4XrjbDsnbTtirhcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyDsg53shLEg7Ji17IWYXG4gKiBAcGFyYW0gb3B0aW9ucy5wbHVnaW5zIO2ZnOyEse2ZlO2VoCDtlIzrn6zqt7jsnbggSUQg66qp66GdXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllcyhcbiAgb3B0aW9uczogR2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXNPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwbHVnaW5zID0gW10gfSA9IG9wdGlvbnM7XG5cbiAgLy8gMS4g6riw67O4IOyXlO2LsO2LsCDsg53shLEv7JeF642w7J207Yq4XG4gIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oXCJcXG7wn5OmIFByb2Nlc3NpbmcgY29yZSBlbnRpdGllcy4uLlxcblwiKSk7XG4gIGZvciAoY29uc3QgZW50aXR5SnNvbiBvZiBiZXR0ZXJBdXRoVjEpIHtcbiAgICBhd2FpdCBjcmVhdGVPclVwZGF0ZUVudGl0eShlbnRpdHlKc29uKTtcbiAgfVxuXG4gIC8vIDIuIO2UjOufrOq3uOyduCDsspjrpqxcbiAgaWYgKHBsdWdpbnMubGVuZ3RoID4gMCkge1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oXCJcXG7wn5SMIFByb2Nlc3NpbmcgcGx1Z2lucy4uLlxcblwiKSk7XG5cbiAgICBmb3IgKGNvbnN0IHBsdWdpbklkIG9mIHBsdWdpbnMpIHtcbiAgICAgIGlmICghaXNWYWxpZFBsdWdpbklkKHBsdWdpbklkKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5yZWQoYFtFUlJPUl0gVW5rbm93biBwbHVnaW46ICR7cGx1Z2luSWR9YCkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50aXR5RGVmID0gRU5USVRZX0RFRklOSVRJT05TW3BsdWdpbklkXTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGEoYFtQTFVHSU5dICR7ZW50aXR5RGVmLm5hbWV9YCkpO1xuXG4gICAgICAvLyDtlIzrn6zqt7jsnbjsnZgg7IOIIOyXlO2LsO2LsCDsg53shLFcbiAgICAgIGZvciAoY29uc3QgZW50aXR5SnNvbiBvZiBlbnRpdHlEZWYuZW50aXRpZXMpIHtcbiAgICAgICAgYXdhaXQgY3JlYXRlT3JVcGRhdGVFbnRpdHkoZW50aXR5SnNvbik7XG4gICAgICB9XG5cbiAgICAgIC8vIOq4sOyhtCDsl5Tti7Dti7Dsl5Ag7ZWE65OcIOy2lOqwgFxuICAgICAgZm9yIChjb25zdCBbZW50aXR5SWQsIHByb3BzXSBvZiBPYmplY3QuZW50cmllcyhlbnRpdHlEZWYuYWRkaXRpb25hbFByb3BzKSkge1xuICAgICAgICBhd2FpdCBhZGRQcm9wc1RvRW50aXR5KGVudGl0eUlkLCBwcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIOq4sOyhtCDsl5Tti7Dti7Dsl5Ag7J24642x7IqkIOy2lOqwgFxuICAgICAgaWYgKGVudGl0eURlZi5hZGRpdGlvbmFsSW5kZXhlcykge1xuICAgICAgICBmb3IgKGNvbnN0IFtlbnRpdHlJZCwgaW5kZXhlc10gb2YgT2JqZWN0LmVudHJpZXMoZW50aXR5RGVmLmFkZGl0aW9uYWxJbmRleGVzKSkge1xuICAgICAgICAgIGF3YWl0IGFkZEluZGV4ZXNUb0VudGl0eShlbnRpdHlJZCwgaW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zb2xlLmxvZyhjaGFsay5ib2xkKFwiXFxu4pyFIERvbmUhIGJldHRlci1hdXRoIGVudGl0aWVzIGdlbmVyYXRlZC5cIikpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O2FBRXVDO3FCQUNrQjsyQkFFSDs7OztBQU90RCxTQUFTLGlCQUFpQixlQUE2QixlQUEyQztDQUNoRyxNQUFNLGdCQUFnQixJQUFJLElBQUksY0FBYyxLQUFLLE1BQU0sRUFBRSxLQUFLLENBQUM7QUFDL0QsUUFBTyxjQUFjLFFBQVEsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLEtBQUssQ0FBQzs7Ozs7O0FBT2hFLFNBQVMsa0JBQ1AsZUFDQSxlQUMwQztD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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
1
|
+
import { type BetterAuthOptions } from "better-auth";
|
|
2
|
+
import { type EntityJson } from "../types/types";
|
|
3
3
|
/**
|
|
4
4
|
* better-auth v1 ģķ°ķ° ģ ģ
|
|
5
5
|
* https://www.better-auth.com/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-entities.d.ts","sourceRoot":"","sources":["../../src/auth/better-auth-entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"better-auth-entities.d.ts","sourceRoot":"","sources":["../../src/auth/better-auth-entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,EAkKpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBA2CjC,CAAC"}
|