sonamu 0.8.26 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +60 -13
- package/dist/_virtual/rolldown_runtime.js +39 -0
- package/dist/ai/agents/agent.d.ts +3 -3
- package/dist/ai/agents/agent.d.ts.map +1 -1
- package/dist/ai/agents/agent.js +76 -73
- package/dist/ai/agents/index.js +3 -3
- package/dist/ai/agents/types.d.ts +3 -3
- package/dist/ai/agents/types.d.ts.map +1 -1
- package/dist/ai/agents/types.js +1 -3
- package/dist/ai/index.js +3 -2
- package/dist/ai/providers/rtzr/api.js +25 -25
- package/dist/ai/providers/rtzr/error.js +25 -26
- package/dist/ai/providers/rtzr/index.js +5 -5
- package/dist/ai/providers/rtzr/model.d.ts +1 -1
- package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/model.js +117 -133
- package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/options.js +35 -41
- package/dist/ai/providers/rtzr/provider.d.ts +1 -1
- package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/provider.js +53 -51
- package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/utils.js +84 -84
- package/dist/api/base-frame.d.ts +2 -2
- package/dist/api/base-frame.d.ts.map +1 -1
- package/dist/api/base-frame.js +29 -19
- package/dist/api/caster.d.ts +1 -1
- package/dist/api/caster.d.ts.map +1 -1
- package/dist/api/caster.js +51 -61
- package/dist/api/code-converters.d.ts +4 -3
- package/dist/api/code-converters.d.ts.map +1 -1
- package/dist/api/code-converters.js +226 -249
- package/dist/api/config.d.ts +17 -17
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +37 -30
- package/dist/api/context.d.ts +10 -10
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +8 -2
- package/dist/api/decorators.d.ts +8 -8
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +245 -268
- package/dist/api/index.js +39 -7
- package/dist/api/secret.js +22 -15
- package/dist/api/sonamu.d.ts +15 -15
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +1012 -1131
- package/dist/api/validator.js +88 -79
- package/dist/auth/auth-generator.d.ts.map +1 -1
- package/dist/auth/auth-generator.js +203 -200
- package/dist/auth/better-auth-entities.d.ts +2 -2
- package/dist/auth/better-auth-entities.d.ts.map +1 -1
- package/dist/auth/better-auth-entities.js +369 -429
- package/dist/auth/index.js +21 -6
- package/dist/auth/knex-adapter.d.ts +2 -2
- package/dist/auth/knex-adapter.d.ts.map +1 -1
- package/dist/auth/knex-adapter.js +153 -157
- package/dist/auth/plugins/entity-definitions/admin.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/admin.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/admin.js +58 -56
- package/dist/auth/plugins/entity-definitions/anonymous.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/anonymous.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/anonymous.js +20 -20
- package/dist/auth/plugins/entity-definitions/api-key.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/api-key.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/api-key.js +185 -196
- package/dist/auth/plugins/entity-definitions/index.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/index.js +26 -29
- package/dist/auth/plugins/entity-definitions/jwt.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/jwt.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/jwt.js +62 -64
- package/dist/auth/plugins/entity-definitions/organization.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/organization.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/organization.js +362 -421
- package/dist/auth/plugins/entity-definitions/passkey.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/passkey.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/passkey.js +115 -126
- package/dist/auth/plugins/entity-definitions/phone-number.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/phone-number.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/phone-number.js +31 -40
- package/dist/auth/plugins/entity-definitions/sso.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/sso.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/sso.js +94 -107
- package/dist/auth/plugins/entity-definitions/two-factor.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/two-factor.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/two-factor.js +78 -92
- package/dist/auth/plugins/entity-definitions/types.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/types.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/types.js +1 -10
- package/dist/auth/plugins/entity-definitions/username.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/username.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/username.js +31 -40
- package/dist/auth/plugins/index.js +12 -3
- package/dist/auth/plugins/wrappers/admin.d.ts +2 -2
- package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/admin.js +28 -29
- package/dist/auth/plugins/wrappers/anonymous.d.ts +2 -1
- package/dist/auth/plugins/wrappers/anonymous.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/anonymous.js +23 -22
- package/dist/auth/plugins/wrappers/api-key.d.ts +2 -1
- package/dist/auth/plugins/wrappers/api-key.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/api-key.js +39 -34
- package/dist/auth/plugins/wrappers/index.js +11 -11
- package/dist/auth/plugins/wrappers/jwt.d.ts +2 -1
- package/dist/auth/plugins/wrappers/jwt.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/jwt.js +31 -26
- package/dist/auth/plugins/wrappers/organization.d.ts +2 -1
- package/dist/auth/plugins/wrappers/organization.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/organization.js +65 -62
- package/dist/auth/plugins/wrappers/passkey.d.ts +2 -1
- package/dist/auth/plugins/wrappers/passkey.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/passkey.js +33 -28
- package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/phone-number.js +26 -23
- package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/sso.js +37 -31
- package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/two-factor.js +31 -28
- package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/username.js +23 -23
- package/dist/bin/build-config.js +31 -31
- package/dist/bin/cli.js +1063 -1204
- package/dist/bin/fixture.d.ts.map +1 -1
- package/dist/bin/fixture.js +266 -259
- package/dist/bin/hmr-hook-register.d.ts.map +1 -1
- package/dist/bin/hmr-hook-register.js +19 -18
- package/dist/bin/test-command.d.ts.map +1 -1
- package/dist/bin/test-command.js +180 -177
- package/dist/bin/ts-loader-register.js +13 -6
- package/dist/bin/ts-loader-registration.d.ts.map +1 -1
- package/dist/bin/ts-loader-registration.js +28 -38
- package/dist/cache/cache-manager.d.ts +1 -1
- package/dist/cache/cache-manager.d.ts.map +1 -1
- package/dist/cache/cache-manager.js +20 -15
- package/dist/cache/decorator.d.ts +1 -1
- package/dist/cache/decorator.d.ts.map +1 -1
- package/dist/cache/decorator.js +84 -76
- package/dist/cache/drivers.js +21 -34
- package/dist/cache/index.js +10 -7
- package/dist/cache/types.d.ts +2 -2
- package/dist/cache/types.d.ts.map +1 -1
- package/dist/cache/types.js +1 -6
- package/dist/cache-control/cache-control.d.ts +2 -2
- package/dist/cache-control/cache-control.d.ts.map +1 -1
- package/dist/cache-control/cache-control.js +106 -122
- package/dist/cache-control/types.d.ts +2 -2
- package/dist/cache-control/types.d.ts.map +1 -1
- package/dist/cache-control/types.js +1 -19
- package/dist/compress/compress.d.ts +1 -1
- package/dist/compress/compress.d.ts.map +1 -1
- package/dist/compress/compress.js +58 -56
- package/dist/compress/index.js +7 -2
- package/dist/compress/types.js +1 -11
- package/dist/cone/cone-generator.d.ts +1 -1
- package/dist/cone/cone-generator.d.ts.map +1 -1
- package/dist/cone/cone-generator.js +216 -219
- package/dist/database/_batch_update.d.ts +1 -1
- package/dist/database/_batch_update.d.ts.map +1 -1
- package/dist/database/_batch_update.js +107 -102
- package/dist/database/base-model.d.ts +8 -9
- package/dist/database/base-model.d.ts.map +1 -1
- package/dist/database/base-model.js +371 -392
- package/dist/database/base-model.types.d.ts +5 -5
- package/dist/database/base-model.types.d.ts.map +1 -1
- package/dist/database/base-model.types.js +1 -20
- package/dist/database/db.d.ts +5 -2
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +185 -171
- package/dist/database/knex.d.ts +1 -1
- package/dist/database/knex.d.ts.map +1 -1
- package/dist/database/knex.js +48 -42
- package/dist/database/puri-subset.types.d.ts +6 -7
- package/dist/database/puri-subset.types.d.ts.map +1 -1
- package/dist/database/puri-subset.types.js +1 -16
- package/dist/database/puri-wrapper.d.ts +6 -6
- package/dist/database/puri-wrapper.d.ts.map +1 -1
- package/dist/database/puri-wrapper.js +99 -101
- package/dist/database/puri.d.ts +4 -5
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +1021 -1227
- package/dist/database/puri.types.d.ts +6 -6
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +15 -6
- package/dist/database/transaction-context.d.ts +2 -2
- package/dist/database/transaction-context.d.ts.map +1 -1
- package/dist/database/transaction-context.js +22 -13
- package/dist/database/upsert-builder.d.ts +3 -3
- package/dist/database/upsert-builder.d.ts.map +1 -1
- package/dist/database/upsert-builder.js +405 -465
- package/dist/dict/en.js +72 -74
- package/dist/dict/index.js +13 -13
- package/dist/dict/ko.js +72 -74
- package/dist/dict/rc-keys.js +150 -168
- package/dist/dict/sd.d.ts +3 -1
- package/dist/dict/sd.d.ts.map +1 -1
- package/dist/dict/sd.js +54 -40
- package/dist/dict/sonamu-dictionary.d.ts +1 -1
- package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
- package/dist/dict/sonamu-dictionary.js +887 -955
- package/dist/dict/types.js +1 -7
- package/dist/dict/utils.js +26 -24
- package/dist/entity/entity-manager.d.ts +9 -9
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +226 -223
- package/dist/entity/entity-template-cone.d.ts +1 -1
- package/dist/entity/entity-template-cone.d.ts.map +1 -1
- package/dist/entity/entity-template-cone.js +152 -151
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +952 -1089
- package/dist/exceptions/error-handler.d.ts +1 -1
- package/dist/exceptions/error-handler.d.ts.map +1 -1
- package/dist/exceptions/error-handler.js +32 -27
- package/dist/exceptions/so-exceptions.d.ts +1 -1
- package/dist/exceptions/so-exceptions.d.ts.map +1 -1
- package/dist/exceptions/so-exceptions.js +61 -68
- package/dist/filter/index.js +9 -3
- package/dist/filter/types.js +92 -88
- package/dist/filter/utils.d.ts +1 -1
- package/dist/filter/utils.d.ts.map +1 -1
- package/dist/filter/utils.js +147 -161
- package/dist/index.js +87 -40
- package/dist/logger/category.d.ts.map +1 -1
- package/dist/logger/category.js +30 -29
- package/dist/logger/configure.d.ts.map +1 -1
- package/dist/logger/configure.js +83 -107
- package/dist/migration/code-generation.d.ts +2 -2
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +1385 -1578
- package/dist/migration/migration-set.d.ts +1 -1
- package/dist/migration/migration-set.d.ts.map +1 -1
- package/dist/migration/migration-set.js +177 -227
- package/dist/migration/migrator.d.ts +4 -3
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +340 -345
- package/dist/migration/postgresql-schema-reader.d.ts +2 -2
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
- package/dist/migration/postgresql-schema-reader.js +506 -564
- package/dist/migration/slack-confirm.d.ts +2 -2
- package/dist/migration/slack-confirm.d.ts.map +1 -1
- package/dist/migration/slack-confirm.js +205 -193
- package/dist/migration/types.d.ts +2 -2
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/migration/types.js +1 -3
- package/dist/naite/messaging-types.d.ts +1 -0
- package/dist/naite/messaging-types.d.ts.map +1 -1
- package/dist/naite/messaging-types.js +1 -7
- package/dist/naite/naite-reporter.d.ts +2 -2
- package/dist/naite/naite-reporter.d.ts.map +1 -1
- package/dist/naite/naite-reporter.js +127 -120
- package/dist/naite/naite.d.ts +3 -2
- package/dist/naite/naite.d.ts.map +1 -1
- package/dist/naite/naite.js +266 -300
- package/dist/ssr/index.d.ts +2 -2
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +13 -3
- package/dist/ssr/registry.d.ts +1 -1
- package/dist/ssr/registry.d.ts.map +1 -1
- package/dist/ssr/registry.js +45 -37
- package/dist/ssr/renderer.d.ts +4 -4
- package/dist/ssr/renderer.d.ts.map +1 -1
- package/dist/ssr/renderer.js +84 -91
- package/dist/ssr/types.d.ts +2 -2
- package/dist/ssr/types.d.ts.map +1 -1
- package/dist/ssr/types.js +1 -3
- package/dist/storage/base-file.js +54 -41
- package/dist/storage/buffered-file.d.ts +2 -2
- package/dist/storage/buffered-file.d.ts.map +1 -1
- package/dist/storage/buffered-file.js +51 -44
- package/dist/storage/drivers.d.ts +2 -2
- package/dist/storage/drivers.d.ts.map +1 -1
- package/dist/storage/drivers.js +12 -7
- package/dist/storage/index.js +14 -7
- package/dist/storage/s3-driver.d.ts +2 -2
- package/dist/storage/s3-driver.d.ts.map +1 -1
- package/dist/storage/s3-driver.js +52 -48
- package/dist/storage/storage-manager.d.ts +2 -2
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +33 -25
- package/dist/storage/types.d.ts +2 -2
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js +1 -5
- package/dist/storage/uploaded-file.d.ts +1 -1
- package/dist/storage/uploaded-file.d.ts.map +1 -1
- package/dist/storage/uploaded-file.js +45 -35
- package/dist/stream/index.js +7 -2
- package/dist/stream/sse.d.ts +2 -2
- package/dist/stream/sse.d.ts.map +1 -1
- package/dist/stream/sse.js +72 -67
- package/dist/syncer/api-parser.d.ts +1 -1
- package/dist/syncer/api-parser.d.ts.map +1 -1
- package/dist/syncer/api-parser.js +224 -245
- package/dist/syncer/checksum.d.ts +1 -1
- package/dist/syncer/checksum.d.ts.map +1 -1
- package/dist/syncer/checksum.js +86 -72
- package/dist/syncer/code-generator.d.ts +2 -2
- package/dist/syncer/code-generator.d.ts.map +1 -1
- package/dist/syncer/code-generator.js +154 -160
- package/dist/syncer/entity-operations.d.ts +1 -1
- package/dist/syncer/entity-operations.d.ts.map +1 -1
- package/dist/syncer/entity-operations.js +63 -54
- package/dist/syncer/file-patterns.d.ts +1 -1
- package/dist/syncer/file-patterns.d.ts.map +1 -1
- package/dist/syncer/file-patterns.js +38 -38
- package/dist/syncer/index.js +19 -8
- package/dist/syncer/module-loader.d.ts +5 -5
- package/dist/syncer/module-loader.d.ts.map +1 -1
- package/dist/syncer/module-loader.js +83 -78
- package/dist/syncer/syncer-actions.d.ts +2 -2
- package/dist/syncer/syncer-actions.d.ts.map +1 -1
- package/dist/syncer/syncer-actions.js +76 -91
- package/dist/syncer/syncer.d.ts +7 -6
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +426 -492
- package/dist/tasks/decorator.d.ts +3 -3
- package/dist/tasks/decorator.d.ts.map +1 -1
- package/dist/tasks/decorator.js +32 -28
- package/dist/tasks/step-wrapper.d.ts +1 -1
- package/dist/tasks/step-wrapper.d.ts.map +1 -1
- package/dist/tasks/step-wrapper.js +42 -41
- package/dist/tasks/workflow-manager.d.ts +2 -2
- package/dist/tasks/workflow-manager.d.ts.map +1 -1
- package/dist/tasks/workflow-manager.js +192 -221
- package/dist/template/entity-converter.d.ts +1 -1
- package/dist/template/entity-converter.d.ts.map +1 -1
- package/dist/template/entity-converter.js +103 -103
- package/dist/template/helpers.d.ts.map +1 -1
- package/dist/template/helpers.js +163 -163
- package/dist/template/implementations/entity.template.d.ts +1 -1
- package/dist/template/implementations/entity.template.d.ts.map +1 -1
- package/dist/template/implementations/entity.template.js +76 -85
- package/dist/template/implementations/entry-server.template.d.ts +1 -1
- package/dist/template/implementations/entry-server.template.d.ts.map +1 -1
- package/dist/template/implementations/entry-server.template.js +32 -27
- package/dist/template/implementations/generated.template.d.ts +1 -1
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +254 -275
- package/dist/template/implementations/generated_http.template.d.ts +2 -2
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_http.template.js +114 -133
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.js +249 -275
- package/dist/template/implementations/init_types.template.d.ts +1 -1
- package/dist/template/implementations/init_types.template.d.ts.map +1 -1
- package/dist/template/implementations/init_types.template.js +40 -34
- package/dist/template/implementations/model.template.d.ts +1 -1
- package/dist/template/implementations/model.template.d.ts.map +1 -1
- package/dist/template/implementations/model.template.js +56 -53
- package/dist/template/implementations/model_test.template.d.ts +1 -1
- package/dist/template/implementations/model_test.template.d.ts.map +1 -1
- package/dist/template/implementations/model_test.template.js +32 -24
- package/dist/template/implementations/queries.template.d.ts +1 -1
- package/dist/template/implementations/queries.template.d.ts.map +1 -1
- package/dist/template/implementations/queries.template.js +84 -89
- package/dist/template/implementations/sd.template.d.ts +1 -1
- package/dist/template/implementations/sd.template.d.ts.map +1 -1
- package/dist/template/implementations/sd.template.js +137 -144
- package/dist/template/implementations/services.template.d.ts +1 -1
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/services.template.js +164 -189
- package/dist/template/implementations/view_form.template.d.ts +1 -1
- package/dist/template/implementations/view_form.template.d.ts.map +1 -1
- package/dist/template/implementations/view_form.template.js +258 -285
- package/dist/template/implementations/view_id_all_select.template.d.ts +1 -1
- package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -1
- package/dist/template/implementations/view_id_all_select.template.js +31 -25
- package/dist/template/implementations/view_list.template.d.ts +1 -1
- package/dist/template/implementations/view_list.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list.template.js +304 -355
- package/dist/template/implementations/view_search_input.template.d.ts +1 -1
- package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
- package/dist/template/implementations/view_search_input.template.js +31 -27
- package/dist/template/index.js +21 -7
- package/dist/template/template-manager.d.ts +1 -1
- package/dist/template/template-manager.d.ts.map +1 -1
- package/dist/template/template-manager.js +132 -123
- package/dist/template/template-types.js +8 -6
- package/dist/template/template.d.ts +2 -2
- package/dist/template/template.d.ts.map +1 -1
- package/dist/template/template.js +73 -68
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +603 -657
- package/dist/testing/_relation-graph.d.ts +1 -1
- package/dist/testing/_relation-graph.d.ts.map +1 -1
- package/dist/testing/_relation-graph.js +93 -88
- package/dist/testing/bootstrap.d.ts +22 -13
- package/dist/testing/bootstrap.d.ts.map +1 -1
- package/dist/testing/bootstrap.js +114 -114
- package/dist/testing/data-explorer.d.ts +3 -3
- package/dist/testing/data-explorer.d.ts.map +1 -1
- package/dist/testing/data-explorer.js +237 -265
- package/dist/testing/dev-test-routes.d.ts +2 -2
- package/dist/testing/dev-test-routes.d.ts.map +1 -1
- package/dist/testing/dev-test-routes.js +258 -249
- package/dist/testing/dev-vitest-manager.d.ts +1 -1
- package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
- package/dist/testing/dev-vitest-manager.js +514 -539
- package/dist/testing/faker-mappings.js +422 -420
- package/dist/testing/fixture-generator.d.ts +3 -3
- package/dist/testing/fixture-generator.d.ts.map +1 -1
- package/dist/testing/fixture-generator.js +1216 -1346
- package/dist/testing/fixture-loader.js +26 -25
- package/dist/testing/fixture-manager.d.ts +3 -3
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +706 -776
- package/dist/testing/global-setup.js +53 -49
- package/dist/testing/index.js +19 -11
- package/dist/testing/naite-vitest-reporter.js +18 -13
- package/dist/testing/parallel-db-manager.d.ts +1 -1
- package/dist/testing/parallel-db-manager.d.ts.map +1 -1
- package/dist/testing/parallel-db-manager.js +63 -78
- package/dist/testing/vitest-helpers.d.ts +1 -1
- package/dist/testing/vitest-helpers.d.ts.map +1 -1
- package/dist/testing/vitest-helpers.js +37 -33
- package/dist/types/types.d.ts +28 -28
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +764 -890
- package/dist/ui/ai-api.d.ts +1 -1
- package/dist/ui/ai-api.d.ts.map +1 -1
- package/dist/ui/ai-api.js +52 -42
- package/dist/ui/ai-client.d.ts +1 -2
- package/dist/ui/ai-client.d.ts.map +1 -1
- package/dist/ui/ai-client.js +353 -388
- package/dist/ui/api.d.ts +1 -1
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +903 -1145
- package/dist/ui/cdd-service.d.ts +1 -1
- package/dist/ui/cdd-service.d.ts.map +1 -1
- package/dist/ui/cdd-service.js +406 -407
- package/dist/ui/cdd-types.js +1 -3
- package/dist/ui-web/assets/index-C-Zz-wYg.css +1 -0
- package/dist/ui-web/assets/index-DejDON8K.js +238 -0
- package/dist/ui-web/index.html +3 -3
- package/dist/utils/async-utils.js +57 -45
- package/dist/utils/console-util.d.ts.map +1 -1
- package/dist/utils/console-util.js +104 -87
- package/dist/utils/controller.js +26 -19
- package/dist/utils/esm-utils.js +49 -38
- package/dist/utils/formatter.d.ts +1 -2
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +89 -115
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +68 -65
- package/dist/utils/lodash-able.js +11 -4
- package/dist/utils/model.d.ts +1 -1
- package/dist/utils/model.d.ts.map +1 -1
- package/dist/utils/model.js +21 -19
- package/dist/utils/object-utils.js +148 -186
- package/dist/utils/path-utils.js +67 -57
- package/dist/utils/process-utils.d.ts.map +1 -1
- package/dist/utils/process-utils.js +37 -31
- package/dist/utils/sql-parser.d.ts +1 -1
- package/dist/utils/sql-parser.d.ts.map +1 -1
- package/dist/utils/sql-parser.js +40 -40
- package/dist/utils/type-utils.js +44 -43
- package/dist/utils/utils.d.ts +2 -3
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +81 -93
- package/dist/utils/zod-error.d.ts +1 -1
- package/dist/utils/zod-error.d.ts.map +1 -1
- package/dist/utils/zod-error.js +24 -17
- package/dist/vector/chunking.d.ts +1 -1
- package/dist/vector/chunking.d.ts.map +1 -1
- package/dist/vector/chunking.js +100 -94
- package/dist/vector/config.d.ts +1 -1
- package/dist/vector/config.d.ts.map +1 -1
- package/dist/vector/config.js +76 -78
- package/dist/vector/embedding.d.ts +1 -1
- package/dist/vector/embedding.d.ts.map +1 -1
- package/dist/vector/embedding.js +128 -125
- package/dist/vector/index.js +5 -5
- package/dist/vector/types.js +1 -5
- package/package.json +31 -36
- package/src/ai/agents/agent.ts +12 -5
- package/src/ai/agents/types.ts +5 -5
- package/src/ai/providers/rtzr/model.ts +8 -10
- package/src/ai/providers/rtzr/options.ts +2 -1
- package/src/ai/providers/rtzr/provider.ts +5 -3
- package/src/ai/providers/rtzr/utils.ts +2 -7
- package/src/api/__tests__/config.test.ts +15 -8
- package/src/api/base-frame.ts +5 -3
- package/src/api/caster.ts +7 -6
- package/src/api/code-converters.ts +23 -26
- package/src/api/config.ts +23 -17
- package/src/api/context.ts +18 -11
- package/src/api/decorators.ts +17 -18
- package/src/api/sonamu.ts +44 -49
- package/src/auth/auth-generator.ts +4 -6
- package/src/auth/better-auth-entities.ts +3 -2
- package/src/auth/knex-adapter.ts +6 -5
- package/src/auth/plugins/entity-definitions/admin.ts +1 -1
- package/src/auth/plugins/entity-definitions/anonymous.ts +1 -1
- package/src/auth/plugins/entity-definitions/api-key.ts +1 -1
- package/src/auth/plugins/entity-definitions/index.ts +1 -1
- package/src/auth/plugins/entity-definitions/jwt.ts +1 -1
- package/src/auth/plugins/entity-definitions/organization.ts +1 -1
- package/src/auth/plugins/entity-definitions/passkey.ts +1 -1
- package/src/auth/plugins/entity-definitions/phone-number.ts +1 -1
- package/src/auth/plugins/entity-definitions/sso.ts +1 -1
- package/src/auth/plugins/entity-definitions/two-factor.ts +1 -1
- package/src/auth/plugins/entity-definitions/types.ts +1 -1
- package/src/auth/plugins/entity-definitions/username.ts +1 -1
- package/src/auth/plugins/wrappers/admin.ts +3 -1
- package/src/auth/plugins/wrappers/anonymous.ts +3 -1
- package/src/auth/plugins/wrappers/api-key.ts +3 -1
- package/src/auth/plugins/wrappers/jwt.ts +3 -1
- package/src/auth/plugins/wrappers/organization.ts +3 -1
- package/src/auth/plugins/wrappers/passkey.ts +3 -1
- package/src/auth/plugins/wrappers/phone-number.ts +3 -1
- package/src/auth/plugins/wrappers/sso.ts +2 -1
- package/src/auth/plugins/wrappers/two-factor.ts +3 -1
- package/src/auth/plugins/wrappers/username.ts +3 -1
- package/src/bin/__tests__/ts-loader-register.test.ts +7 -12
- package/src/bin/build-config.ts +3 -3
- package/src/bin/cli.ts +27 -25
- package/src/bin/fixture.ts +4 -2
- package/src/bin/hmr-hook-register.ts +1 -0
- package/src/bin/test-command.ts +4 -2
- package/src/bin/ts-loader-registration.ts +6 -22
- package/src/cache/cache-manager.ts +2 -1
- package/src/cache/decorator.ts +2 -2
- package/src/cache/types.ts +3 -3
- package/src/cache-control/cache-control.ts +3 -2
- package/src/cache-control/types.ts +2 -2
- package/src/compress/compress.ts +1 -1
- package/src/cone/cone-generator.ts +5 -3
- package/src/database/_batch_update.ts +1 -1
- package/src/database/base-model.ts +20 -14
- package/src/database/base-model.types.ts +12 -11
- package/src/database/db.ts +56 -21
- package/src/database/knex.ts +2 -2
- package/src/database/puri-subset.test-d.ts +33 -32
- package/src/database/puri-subset.types.ts +6 -7
- package/src/database/puri-wrapper.ts +29 -26
- package/src/database/puri.ts +36 -34
- package/src/database/puri.types.test-d.ts +6 -5
- package/src/database/puri.types.ts +9 -12
- package/src/database/transaction-context.ts +2 -2
- package/src/database/upsert-builder.ts +17 -10
- package/src/dict/sd.ts +17 -4
- package/src/dict/sonamu-dictionary.ts +23 -17
- package/src/entity/entity-manager.ts +9 -7
- package/src/entity/entity-template-cone.ts +10 -3
- package/src/entity/entity.ts +20 -16
- package/src/exceptions/error-handler.ts +2 -1
- package/src/exceptions/so-exceptions.ts +1 -1
- package/src/filter/utils.ts +3 -2
- package/src/logger/category.ts +1 -0
- package/src/logger/configure.ts +5 -5
- package/src/migration/__tests__/code-generation.search-text.test.ts +2 -3
- package/src/migration/code-generation.ts +26 -25
- package/src/migration/migration-set.ts +16 -18
- package/src/migration/migrator.ts +38 -33
- package/src/migration/postgresql-schema-reader.ts +12 -12
- package/src/migration/slack-confirm.ts +5 -4
- package/src/migration/types.ts +2 -2
- package/src/naite/messaging-types.ts +1 -1
- package/src/naite/naite-reporter.ts +5 -3
- package/src/naite/naite.ts +12 -7
- package/src/shared/app.shared.ts.txt +2 -2
- package/src/shared/web.shared.ts.txt +2 -2
- package/src/skills/AGENTS.md +19 -18
- package/src/skills/commands/sonamu-skills.md +9 -9
- package/src/skills/sonamu/SKILL.md +111 -104
- package/src/skills/sonamu/ai-agents.md +27 -26
- package/src/skills/sonamu/api.md +81 -69
- package/src/skills/sonamu/auth-migration.md +13 -27
- package/src/skills/sonamu/auth-plugins.md +41 -31
- package/src/skills/sonamu/auth.md +30 -24
- package/src/skills/sonamu/cdd.md +26 -17
- package/src/skills/sonamu/cone.md +50 -50
- package/src/skills/sonamu/config.md +74 -51
- package/src/skills/sonamu/create-sonamu.md +31 -19
- package/src/skills/sonamu/database.md +43 -26
- package/src/skills/sonamu/entity-basic.md +61 -61
- package/src/skills/sonamu/entity-relations.md +84 -80
- package/src/skills/sonamu/entity-validation-checklist.md +19 -15
- package/src/skills/sonamu/fixture-cli.md +52 -30
- package/src/skills/sonamu/framework-change.md +9 -7
- package/src/skills/sonamu/frontend.md +64 -82
- package/src/skills/sonamu/i18n.md +45 -37
- package/src/skills/sonamu/migration.md +54 -31
- package/src/skills/sonamu/model.md +98 -66
- package/src/skills/sonamu/naite.md +34 -32
- package/src/skills/sonamu/project-init.md +28 -8
- package/src/skills/sonamu/puri.md +82 -91
- package/src/skills/sonamu/scaffolding.md +44 -32
- package/src/skills/sonamu/skill-contribution.md +50 -45
- package/src/skills/sonamu/subset.md +13 -13
- package/src/skills/sonamu/tasks.md +73 -58
- package/src/skills/sonamu/testing-devrunner.md +56 -36
- package/src/skills/sonamu/testing.md +23 -58
- package/src/skills/sonamu/upsert.md +32 -31
- package/src/skills/sonamu/vector.md +37 -36
- package/src/ssr/index.ts +2 -12
- package/src/ssr/registry.ts +1 -1
- package/src/ssr/renderer.ts +7 -5
- package/src/ssr/types.ts +2 -2
- package/src/storage/buffered-file.ts +4 -2
- package/src/storage/drivers.ts +3 -2
- package/src/storage/s3-driver.ts +7 -4
- package/src/storage/storage-manager.ts +3 -2
- package/src/storage/types.ts +3 -2
- package/src/storage/uploaded-file.ts +1 -1
- package/src/stream/sse.ts +2 -2
- package/src/syncer/api-parser.ts +8 -5
- package/src/syncer/checksum.ts +9 -5
- package/src/syncer/code-generator.ts +16 -8
- package/src/syncer/entity-operations.ts +5 -3
- package/src/syncer/file-patterns.ts +2 -1
- package/src/syncer/module-loader.ts +9 -6
- package/src/syncer/syncer-actions.ts +5 -3
- package/src/syncer/syncer.ts +18 -24
- package/src/tasks/decorator.ts +10 -8
- package/src/tasks/step-wrapper.ts +1 -1
- package/src/tasks/workflow-manager.ts +18 -15
- package/src/template/__tests__/generated.template.search-text.test.ts +1 -0
- package/src/template/entity-converter.ts +4 -2
- package/src/template/generated.template.test-d.ts +2 -1
- package/src/template/helpers.ts +5 -2
- package/src/template/implementations/entity.template.ts +9 -8
- package/src/template/implementations/entry-server.template.ts +1 -1
- package/src/template/implementations/generated.template.ts +21 -29
- package/src/template/implementations/generated_http.template.ts +9 -6
- package/src/template/implementations/generated_sso.template.ts +6 -4
- package/src/template/implementations/init_types.template.ts +3 -2
- package/src/template/implementations/model.template.ts +4 -2
- package/src/template/implementations/model_test.template.ts +3 -2
- package/src/template/implementations/queries.template.ts +6 -14
- package/src/template/implementations/sd.template.ts +4 -2
- package/src/template/implementations/services.template.ts +7 -11
- package/src/template/implementations/view_form.template.ts +5 -3
- package/src/template/implementations/view_id_all_select.template.ts +3 -2
- package/src/template/implementations/view_list.template.ts +7 -5
- package/src/template/implementations/view_search_input.template.ts +3 -2
- package/src/template/template-manager.ts +4 -3
- package/src/template/template.ts +4 -3
- package/src/template/zod-converter.ts +10 -7
- package/src/testing/__tests__/dev-test-routes.test.ts +3 -2
- package/src/testing/__tests__/dev-vitest-manager.test.ts +1 -0
- package/src/testing/_relation-graph.ts +2 -2
- package/src/testing/bootstrap.ts +55 -27
- package/src/testing/data-explorer.ts +5 -4
- package/src/testing/dev-test-routes.ts +8 -5
- package/src/testing/dev-vitest-manager.ts +13 -12
- package/src/testing/fixture-generator.ts +11 -17
- package/src/testing/fixture-manager.ts +21 -17
- package/src/testing/parallel-db-manager.ts +2 -1
- package/src/testing/vitest-helpers.ts +2 -1
- package/src/types/__tests__/entity-json-schema-search-text.test.ts +1 -0
- package/src/types/types.ts +8 -8
- package/src/typings/knex.d.ts +4 -4
- package/src/ui/ai-api.ts +5 -3
- package/src/ui/ai-client.ts +6 -5
- package/src/ui/api.ts +25 -23
- package/src/ui/cdd-service.ts +12 -11
- package/src/utils/console-util.ts +3 -1
- package/src/utils/formatter.ts +94 -102
- package/src/utils/fs-utils.ts +2 -1
- package/src/utils/model.ts +2 -2
- package/src/utils/object-utils.ts +3 -3
- package/src/utils/process-utils.ts +2 -1
- package/src/utils/sql-parser.ts +10 -1
- package/src/utils/type-utils.ts +3 -3
- package/src/utils/utils.ts +9 -7
- package/src/utils/zod-error.ts +1 -1
- package/src/vector/chunking.ts +1 -1
- package/src/vector/config.ts +1 -1
- package/src/vector/embedding.ts +11 -9
- package/tsdown.api.config.ts +50 -0
- package/.swcrc.project-default +0 -18
- package/dist/api/__tests__/config.test.js +0 -189
- package/dist/bin/__tests__/test-command.test.js +0 -112
- package/dist/bin/__tests__/ts-loader-register.test.js +0 -45
- package/dist/database/puri-subset.test-d.js +0 -89
- package/dist/database/puri.types.test-d.js +0 -129
- package/dist/migration/__tests__/code-generation.search-text.test.js +0 -435
- package/dist/template/__tests__/generated.template.search-text.test.js +0 -99
- package/dist/template/generated.template.test-d.js +0 -24
- package/dist/testing/__tests__/dev-test-routes.test.js +0 -144
- package/dist/testing/__tests__/dev-vitest-manager.test.js +0 -152
- package/dist/types/__tests__/entity-json-schema-search-text.test.js +0 -256
- package/dist/typings/knex.d.js +0 -3
- package/dist/ui-web/assets/index-CKo0Z2Iu.css +0 -1
- package/dist/ui-web/assets/index-DK-2aacv.js +0 -257
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-set.d.ts","sourceRoot":"","sources":["../../src/migration/migration-set.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migration-set.d.ts","sourceRoot":"","sources":["../../src/migration/migration-set.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAc/C,OAAO,EAOL,KAAK,wBAAwB,EAC9B,MAAM,gBAAgB,CAAC;AAGxB;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,CAsLlF"}
|
|
@@ -1,233 +1,183 @@
|
|
|
1
|
+
import { __esmMin } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { exhaustive, init_utils } from "../utils/utils.js";
|
|
3
|
+
import { init_types, isBelongsToOneRelationProp, isHasManyRelationProp, isManyToManyRelationProp, isNumberProp, isNumericProp, isOneToOneRelationProp, isRelationProp, isStringProp, isVectorProp, isVirtualProp } from "../types/types.js";
|
|
4
|
+
import { EntityManager, init_entity_manager } from "../entity/entity-manager.js";
|
|
1
5
|
import inflection from "inflection";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { exhaustive } from "../utils/utils.js";
|
|
6
|
+
|
|
7
|
+
//#region src/migration/migration-set.ts
|
|
5
8
|
/**
|
|
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
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return r;
|
|
138
|
-
} else if (isBelongsToOneRelationProp(prop) || isOneToOneRelationProp(prop) && prop.hasJoinColumn) {
|
|
139
|
-
// -OneRelation 케이스
|
|
140
|
-
const relEntity = EntityManager.get(prop.with);
|
|
141
|
-
const pkType = relEntity.getPkType();
|
|
142
|
-
const pkProp = relEntity.getPkProp();
|
|
143
|
-
const idColumnName = `${prop.name}_id`;
|
|
144
|
-
r.columns.push({
|
|
145
|
-
name: idColumnName,
|
|
146
|
-
type: pkType,
|
|
147
|
-
nullable: prop.nullable ?? false,
|
|
148
|
-
// string FK인 경우 length도 전달
|
|
149
|
-
...pkType === "string" && pkProp.type === "string" && pkProp.length !== undefined && {
|
|
150
|
-
length: pkProp.length
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
if ((prop.useConstraint ?? true) === true) {
|
|
154
|
-
r.foreigns.push({
|
|
155
|
-
columns: [
|
|
156
|
-
idColumnName
|
|
157
|
-
],
|
|
158
|
-
to: `${inflection.underscore(inflection.pluralize(prop.with)).toLowerCase()}.id`,
|
|
159
|
-
onUpdate: prop.onUpdate ?? "RESTRICT",
|
|
160
|
-
onDelete: prop.onDelete ?? "RESTRICT"
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return r;
|
|
165
|
-
}, {
|
|
166
|
-
table: entity.table,
|
|
167
|
-
columns: [],
|
|
168
|
-
indexes: [],
|
|
169
|
-
foreigns: [],
|
|
170
|
-
joinTables: []
|
|
171
|
-
});
|
|
172
|
-
// indexes
|
|
173
|
-
migrationSet.indexes = entity.indexes.filter((index)=>index.columns.find((col)=>col.name.includes(".") === false));
|
|
174
|
-
return migrationSet;
|
|
9
|
+
* Entity를 읽어서 MigrationSetAndJoinTable을 만들어옵니다.
|
|
10
|
+
* @param entity Entity 객체
|
|
11
|
+
* @returns MigrationSetAndJoinTable 객체
|
|
12
|
+
*/
|
|
13
|
+
function getMigrationSetFromEntity(entity) {
|
|
14
|
+
const migrationSet = entity.props.reduce((r, prop) => {
|
|
15
|
+
if (isVirtualProp(prop)) {
|
|
16
|
+
return r;
|
|
17
|
+
}
|
|
18
|
+
if (isHasManyRelationProp(prop)) {
|
|
19
|
+
return r;
|
|
20
|
+
}
|
|
21
|
+
if (!isRelationProp(prop)) {
|
|
22
|
+
const column = {
|
|
23
|
+
name: prop.name,
|
|
24
|
+
type: resolveEntityPropTypeToMigrationColumnType(prop),
|
|
25
|
+
nullable: prop.nullable === true,
|
|
26
|
+
...(() => {
|
|
27
|
+
if (prop.dbDefault !== undefined) {
|
|
28
|
+
return { defaultTo: prop.dbDefault };
|
|
29
|
+
}
|
|
30
|
+
return {};
|
|
31
|
+
})(),
|
|
32
|
+
...isStringProp(prop) && prop.length !== undefined && { length: prop.length },
|
|
33
|
+
...(isNumberProp(prop) || isNumericProp(prop)) && {
|
|
34
|
+
precision: prop.precision,
|
|
35
|
+
scale: prop.scale,
|
|
36
|
+
numberType: isNumberProp(prop) ? prop.numberType ?? "numeric" : "numeric"
|
|
37
|
+
},
|
|
38
|
+
...isVectorProp(prop) && { dimensions: prop.dimensions },
|
|
39
|
+
...prop.generated && { generated: prop.generated }
|
|
40
|
+
};
|
|
41
|
+
r.columns.push(column);
|
|
42
|
+
}
|
|
43
|
+
if (isManyToManyRelationProp(prop)) {
|
|
44
|
+
const relMd = EntityManager.get(prop.with);
|
|
45
|
+
const table1 = entity.table;
|
|
46
|
+
const table2 = relMd.table;
|
|
47
|
+
const thisPkType = entity.getPkType();
|
|
48
|
+
const thisPkProp = entity.getPkProp();
|
|
49
|
+
const relPkType = relMd.getPkType();
|
|
50
|
+
const relPkProp = relMd.getPkProp();
|
|
51
|
+
const join = {
|
|
52
|
+
from: `${entity.table}.id`,
|
|
53
|
+
through: {
|
|
54
|
+
from: `${prop.joinTable}.${inflection.singularize(table1)}_id`,
|
|
55
|
+
to: `${prop.joinTable}.${inflection.singularize(table2)}_id`,
|
|
56
|
+
onUpdate: prop.onUpdate,
|
|
57
|
+
onDelete: prop.onDelete
|
|
58
|
+
},
|
|
59
|
+
to: `${relMd.table}.id`
|
|
60
|
+
};
|
|
61
|
+
const through = join.through;
|
|
62
|
+
const fields = [through.from, through.to];
|
|
63
|
+
r.joinTables.push({
|
|
64
|
+
table: through.from.split(".")[0],
|
|
65
|
+
indexes: entity.indexes.filter((index) => index.columns.find((col) => col.name.includes(`${prop.joinTable}.`))).map((index) => ({
|
|
66
|
+
...index,
|
|
67
|
+
columns: index.columns.map((col) => ({
|
|
68
|
+
name: col.name.replace(`${prop.joinTable}.`, ""),
|
|
69
|
+
nullsFirst: col.nullsFirst,
|
|
70
|
+
sortOrder: col.sortOrder
|
|
71
|
+
}))
|
|
72
|
+
})),
|
|
73
|
+
columns: [
|
|
74
|
+
{
|
|
75
|
+
name: "id",
|
|
76
|
+
type: "integer",
|
|
77
|
+
nullable: false
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: `${inflection.singularize(table1)}_id`,
|
|
81
|
+
type: thisPkType,
|
|
82
|
+
nullable: false,
|
|
83
|
+
...thisPkType === "string" && thisPkProp.type === "string" && thisPkProp.length !== undefined && { length: thisPkProp.length }
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: `${inflection.singularize(table2)}_id`,
|
|
87
|
+
type: relPkType,
|
|
88
|
+
nullable: false,
|
|
89
|
+
...relPkType === "string" && relPkProp.type === "string" && relPkProp.length !== undefined && { length: relPkProp.length }
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
foreigns: fields.map((field) => {
|
|
93
|
+
const col = field.split(".")[1];
|
|
94
|
+
const to = (() => {
|
|
95
|
+
if (`${inflection.singularize(join.to.split(".")[0])}_id` === col) {
|
|
96
|
+
return join.to;
|
|
97
|
+
} else {
|
|
98
|
+
return join.from;
|
|
99
|
+
}
|
|
100
|
+
})();
|
|
101
|
+
return {
|
|
102
|
+
columns: [col],
|
|
103
|
+
to,
|
|
104
|
+
onUpdate: through.onUpdate,
|
|
105
|
+
onDelete: through.onDelete
|
|
106
|
+
};
|
|
107
|
+
})
|
|
108
|
+
});
|
|
109
|
+
return r;
|
|
110
|
+
} else if (isBelongsToOneRelationProp(prop) || isOneToOneRelationProp(prop) && prop.hasJoinColumn) {
|
|
111
|
+
const relEntity = EntityManager.get(prop.with);
|
|
112
|
+
const pkType = relEntity.getPkType();
|
|
113
|
+
const pkProp = relEntity.getPkProp();
|
|
114
|
+
const idColumnName = `${prop.name}_id`;
|
|
115
|
+
r.columns.push({
|
|
116
|
+
name: idColumnName,
|
|
117
|
+
type: pkType,
|
|
118
|
+
nullable: prop.nullable ?? false,
|
|
119
|
+
...pkType === "string" && pkProp.type === "string" && pkProp.length !== undefined && { length: pkProp.length }
|
|
120
|
+
});
|
|
121
|
+
if (prop.useConstraint ?? true) {
|
|
122
|
+
r.foreigns.push({
|
|
123
|
+
columns: [idColumnName],
|
|
124
|
+
to: `${inflection.underscore(inflection.pluralize(prop.with)).toLowerCase()}.id`,
|
|
125
|
+
onUpdate: prop.onUpdate ?? "RESTRICT",
|
|
126
|
+
onDelete: prop.onDelete ?? "RESTRICT"
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return r;
|
|
131
|
+
}, {
|
|
132
|
+
table: entity.table,
|
|
133
|
+
columns: [],
|
|
134
|
+
indexes: [],
|
|
135
|
+
foreigns: [],
|
|
136
|
+
joinTables: []
|
|
137
|
+
});
|
|
138
|
+
migrationSet.indexes = entity.indexes.filter((index) => index.columns.find((col) => !col.name.includes(".")));
|
|
139
|
+
return migrationSet;
|
|
175
140
|
}
|
|
176
141
|
function resolveEntityPropTypeToMigrationColumnType(prop) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
return "boolean[]";
|
|
209
|
-
case "date":
|
|
210
|
-
return "date";
|
|
211
|
-
case "date[]":
|
|
212
|
-
return "date[]";
|
|
213
|
-
case "uuid":
|
|
214
|
-
return "uuid";
|
|
215
|
-
case "uuid[]":
|
|
216
|
-
return "uuid[]";
|
|
217
|
-
case "json":
|
|
218
|
-
return "json";
|
|
219
|
-
case "searchText":
|
|
220
|
-
return "string";
|
|
221
|
-
case "vector":
|
|
222
|
-
return "vector";
|
|
223
|
-
case "vector[]":
|
|
224
|
-
return "vector[]";
|
|
225
|
-
case "tsvector":
|
|
226
|
-
return "tsvector";
|
|
227
|
-
default:
|
|
228
|
-
exhaustive(prop);
|
|
229
|
-
throw new Error(`Unknown entity prop type: ${prop.type}`);
|
|
230
|
-
}
|
|
142
|
+
if (prop.type === "relation" || prop.type === "virtual") {
|
|
143
|
+
throw new Error(`Unresolved column type: ${prop.type}`);
|
|
144
|
+
}
|
|
145
|
+
switch (prop.type) {
|
|
146
|
+
case "string": return "string";
|
|
147
|
+
case "string[]": return "string[]";
|
|
148
|
+
case "enum": return "string";
|
|
149
|
+
case "enum[]": return "string[]";
|
|
150
|
+
case "integer": return "integer";
|
|
151
|
+
case "integer[]": return "integer[]";
|
|
152
|
+
case "bigInteger": return "bigInteger";
|
|
153
|
+
case "bigInteger[]": return "bigInteger[]";
|
|
154
|
+
case "number": return "numberOrNumeric";
|
|
155
|
+
case "number[]": return "numberOrNumeric[]";
|
|
156
|
+
case "numeric": return "numberOrNumeric";
|
|
157
|
+
case "numeric[]": return "numberOrNumeric[]";
|
|
158
|
+
case "boolean": return "boolean";
|
|
159
|
+
case "boolean[]": return "boolean[]";
|
|
160
|
+
case "date": return "date";
|
|
161
|
+
case "date[]": return "date[]";
|
|
162
|
+
case "uuid": return "uuid";
|
|
163
|
+
case "uuid[]": return "uuid[]";
|
|
164
|
+
case "json": return "json";
|
|
165
|
+
case "searchText": return "string";
|
|
166
|
+
case "vector": return "vector";
|
|
167
|
+
case "vector[]": return "vector[]";
|
|
168
|
+
case "tsvector": return "tsvector";
|
|
169
|
+
default:
|
|
170
|
+
exhaustive(prop);
|
|
171
|
+
throw new Error(`Unknown entity prop type: ${prop.type}`);
|
|
172
|
+
}
|
|
231
173
|
}
|
|
174
|
+
var init_migration_set = __esmMin((() => {
|
|
175
|
+
init_entity_manager();
|
|
176
|
+
init_types();
|
|
177
|
+
init_utils();
|
|
178
|
+
}));
|
|
232
179
|
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWdyYXRpb24vbWlncmF0aW9uLXNldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHkgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eVwiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7XG4gIHR5cGUgRW50aXR5UHJvcCxcbiAgaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AsXG4gIGlzSGFzTWFueVJlbGF0aW9uUHJvcCxcbiAgaXNNYW55VG9NYW55UmVsYXRpb25Qcm9wLFxuICBpc051bWJlclByb3AsXG4gIGlzTnVtZXJpY1Byb3AsXG4gIGlzT25lVG9PbmVSZWxhdGlvblByb3AsXG4gIGlzUmVsYXRpb25Qcm9wLFxuICBpc1N0cmluZ1Byb3AsXG4gIGlzVmVjdG9yUHJvcCxcbiAgaXNWaXJ0dWFsUHJvcCxcbiAgdHlwZSBNaWdyYXRpb25Db2x1bW4sXG4gIHR5cGUgTWlncmF0aW9uQ29sdW1uVHlwZSxcbiAgdHlwZSBNaWdyYXRpb25Gb3JlaWduLFxuICB0eXBlIE1pZ3JhdGlvbkluZGV4LFxuICB0eXBlIE1pZ3JhdGlvbkpvaW5UYWJsZSxcbiAgdHlwZSBNaWdyYXRpb25TZXRBbmRKb2luVGFibGUsXG59IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgZXhoYXVzdGl2ZSB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG4vKipcbiAqIEVudGl0eeulvCDsnb3slrTshJwgTWlncmF0aW9uU2V0QW5kSm9pblRhYmxl7J2EIOunjOuTpOyWtOyYteuLiOuLpC5cbiAqIEBwYXJhbSBlbnRpdHkgRW50aXR5IOqwneyytFxuICogQHJldHVybnMgTWlncmF0aW9uU2V0QW5kSm9pblRhYmxlIOqwneyytFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWlncmF0aW9uU2V0RnJvbUVudGl0eShlbnRpdHk6IEVudGl0eSk6IE1pZ3JhdGlvblNldEFuZEpvaW5UYWJsZSB7XG4gIGNvbnN0IG1pZ3JhdGlvblNldDogTWlncmF0aW9uU2V0QW5kSm9pblRhYmxlID0gZW50aXR5LnByb3BzLnJlZHVjZShcbiAgICAociwgcHJvcCkgPT4ge1xuICAgICAgLy8gdmlydHVhbCDtlYTrk5wg7KCc7Jm4XG4gICAgICBpZiAoaXNWaXJ0dWFsUHJvcChwcm9wKSkge1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH1cbiAgICAgIC8vIEhhc01hbnkg7LyA7J207Iqk64qUIOyVhOustCDsspjrpqzrj4Qg7ZWY7KeAIOyViuydjFxuICAgICAgaWYgKGlzSGFzTWFueVJlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH1cblxuICAgICAgLy8g7J2867CYIOy7rOufvFxuICAgICAgaWYgKCFpc1JlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB7XG4gICAgICAgICAgbmFtZTogcHJvcC5uYW1lLFxuICAgICAgICAgIHR5cGU6IHJlc29sdmVFbnRpdHlQcm9wVHlwZVRvTWlncmF0aW9uQ29sdW1uVHlwZShwcm9wKSxcbiAgICAgICAgICBudWxsYWJsZTogcHJvcC5udWxsYWJsZSA9PT0gdHJ1ZSxcbiAgICAgICAgICAuLi4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3AuZGJEZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0VG86IHByb3AuZGJEZWZhdWx0LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgIH0pKCksXG4gICAgICAgICAgLy8gU3RyaW5nIO2DgOyeheyXkCBsZW5ndGgg7J6I64qUIOqyveyasCDstpTqsIBcbiAgICAgICAgICAuLi4oaXNTdHJpbmdQcm9wKHByb3ApICYmXG4gICAgICAgICAgICBwcm9wLmxlbmd0aCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgICAgICAgbGVuZ3RoOiBwcm9wLmxlbmd0aCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIC8vIE51bWJlci9OdW1lcmljIO2DgOyeheydmCDqsr3smrAgcHJlY2lzaW9uLCBzY2FsZSDstpTqsIBcbiAgICAgICAgICAuLi4oKGlzTnVtYmVyUHJvcChwcm9wKSB8fCBpc051bWVyaWNQcm9wKHByb3ApKSAmJiB7XG4gICAgICAgICAgICBwcmVjaXNpb246IHByb3AucHJlY2lzaW9uLFxuICAgICAgICAgICAgc2NhbGU6IHByb3Auc2NhbGUsXG4gICAgICAgICAgICBudW1iZXJUeXBlOiBpc051bWJlclByb3AocHJvcCkgPyAocHJvcC5udW1iZXJUeXBlID8/IFwibnVtZXJpY1wiKSA6IFwibnVtZXJpY1wiLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIC8vIFZlY3RvciDtg4DsnoXsnZgg6rK97JqwIGRpbWVuc2lvbnMg7LaU6rCAXG4gICAgICAgICAgLi4uKGlzVmVjdG9yUHJvcChwcm9wKSAmJiB7XG4gICAgICAgICAgICBkaW1lbnNpb25zOiBwcm9wLmRpbWVuc2lvbnMsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLy8gR2VuZXJhdGVkIENvbHVtbiDsoJXrs7Qg7LaU6rCAXG4gICAgICAgICAgLi4uKHByb3AuZ2VuZXJhdGVkICYmIHtcbiAgICAgICAgICAgIGdlbmVyYXRlZDogcHJvcC5nZW5lcmF0ZWQsXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG5cbiAgICAgICAgci5jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzTWFueVRvTWFueVJlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgICAgICAvLyBNYW55VG9NYW55IOy8gOydtOyKpFxuICAgICAgICBjb25zdCByZWxNZCA9IEVudGl0eU1hbmFnZXIuZ2V0KHByb3Aud2l0aCk7XG4gICAgICAgIGNvbnN0IHRhYmxlMSA9IGVudGl0eS50YWJsZTtcbiAgICAgICAgY29uc3QgdGFibGUyID0gcmVsTWQudGFibGU7XG5cbiAgICAgICAgLy8g6rCBIOyXlO2LsO2LsOydmCBQSyDtg4DsnoUg7KCV67O0IOqwgOyguOyYpOq4sFxuICAgICAgICBjb25zdCB0aGlzUGtUeXBlID0gZW50aXR5LmdldFBrVHlwZSgpO1xuICAgICAgICBjb25zdCB0aGlzUGtQcm9wID0gZW50aXR5LmdldFBrUHJvcCgpO1xuICAgICAgICBjb25zdCByZWxQa1R5cGUgPSByZWxNZC5nZXRQa1R5cGUoKTtcbiAgICAgICAgY29uc3QgcmVsUGtQcm9wID0gcmVsTWQuZ2V0UGtQcm9wKCk7XG5cbiAgICAgICAgY29uc3Qgam9pbiA9IHtcbiAgICAgICAgICBmcm9tOiBgJHtlbnRpdHkudGFibGV9LmlkYCxcbiAgICAgICAgICB0aHJvdWdoOiB7XG4gICAgICAgICAgICBmcm9tOiBgJHtwcm9wLmpvaW5UYWJsZX0uJHtpbmZsZWN0aW9uLnNpbmd1bGFyaXplKHRhYmxlMSl9X2lkYCxcbiAgICAgICAgICAgIHRvOiBgJHtwcm9wLmpvaW5UYWJsZX0uJHtpbmZsZWN0aW9uLnNpbmd1bGFyaXplKHRhYmxlMil9X2lkYCxcbiAgICAgICAgICAgIG9uVXBkYXRlOiBwcm9wLm9uVXBkYXRlLFxuICAgICAgICAgICAgb25EZWxldGU6IHByb3Aub25EZWxldGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0bzogYCR7cmVsTWQudGFibGV9LmlkYCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdGhyb3VnaCA9IGpvaW4udGhyb3VnaDtcbiAgICAgICAgY29uc3QgZmllbGRzID0gW3Rocm91Z2guZnJvbSwgdGhyb3VnaC50b107XG4gICAgICAgIHIuam9pblRhYmxlcy5wdXNoKHtcbiAgICAgICAgICB0YWJsZTogdGhyb3VnaC5mcm9tLnNwbGl0KFwiLlwiKVswXSxcbiAgICAgICAgICBpbmRleGVzOiBbXG4gICAgICAgICAgICAvLyDsobDsnbgg7YWM7J2067iU7JeQIOqxuOumsCDsnbjrjbHsiqQg7LC+7JWE7JmA7IScIOyXsOqysFxuICAgICAgICAgICAgLi4uZW50aXR5LmluZGV4ZXNcbiAgICAgICAgICAgICAgLmZpbHRlcigoaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgaW5kZXguY29sdW1ucy5maW5kKChjb2wpID0+IGNvbC5uYW1lLmluY2x1ZGVzKGAke3Byb3Auam9pblRhYmxlfS5gKSksXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLm1hcCgoaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgLi4uaW5kZXgsXG4gICAgICAgICAgICAgICAgY29sdW1uczogaW5kZXguY29sdW1ucy5tYXAoKGNvbCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGNvbC5uYW1lLnJlcGxhY2UoYCR7cHJvcC5qb2luVGFibGV9LmAsIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgbnVsbHNGaXJzdDogY29sLm51bGxzRmlyc3QsXG4gICAgICAgICAgICAgICAgICBzb3J0T3JkZXI6IGNvbC5zb3J0T3JkZXIsXG4gICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjb2x1bW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiaWRcIixcbiAgICAgICAgICAgICAgdHlwZTogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgIG51bGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyDtmITsnqwg7JeU7Yuw7Yuw7J2YIEZLXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IGAke2luZmxlY3Rpb24uc2luZ3VsYXJpemUodGFibGUxKX1faWRgLFxuICAgICAgICAgICAgICB0eXBlOiB0aGlzUGtUeXBlLFxuICAgICAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgIC4uLih0aGlzUGtUeXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgdGhpc1BrUHJvcC50eXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgdGhpc1BrUHJvcC5sZW5ndGggIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgICAgICAgICAgICAgICBsZW5ndGg6IHRoaXNQa1Byb3AubGVuZ3RoLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIOywuOyhsCDsl5Tti7Dti7DsnZggRktcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogYCR7aW5mbGVjdGlvbi5zaW5ndWxhcml6ZSh0YWJsZTIpfV9pZGAsXG4gICAgICAgICAgICAgIHR5cGU6IHJlbFBrVHlwZSxcbiAgICAgICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAuLi4ocmVsUGtUeXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgcmVsUGtQcm9wLnR5cGUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICByZWxQa1Byb3AubGVuZ3RoICE9PSB1bmRlZmluZWQgJiYge1xuICAgICAgICAgICAgICAgICAgbGVuZ3RoOiByZWxQa1Byb3AubGVuZ3RoLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGZvcmVpZ25zOiBmaWVsZHMubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgLy8g7ZiE7J6sIO2VhOuTnOqwgCDslrTrlqQg7YWM7J2067iU7JeQIOyGje2VmOuKlOyngCDtjJDri6hcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IGZpZWxkLnNwbGl0KFwiLlwiKVsxXTtcbiAgICAgICAgICAgIGNvbnN0IHRvID0gKCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGAke2luZmxlY3Rpb24uc2luZ3VsYXJpemUoam9pbi50by5zcGxpdChcIi5cIilbMF0pfV9pZGAgPT09IGNvbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBqb2luLnRvO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBqb2luLmZyb207XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBjb2x1bW5zOiBbY29sXSxcbiAgICAgICAgICAgICAgdG8sXG4gICAgICAgICAgICAgIG9uVXBkYXRlOiB0aHJvdWdoLm9uVXBkYXRlLFxuICAgICAgICAgICAgICBvbkRlbGV0ZTogdGhyb3VnaC5vbkRlbGV0ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGlzQmVsb25nc1RvT25lUmVsYXRpb25Qcm9wKHByb3ApIHx8XG4gICAgICAgIChpc09uZVRvT25lUmVsYXRpb25Qcm9wKHByb3ApICYmIHByb3AuaGFzSm9pbkNvbHVtbilcbiAgICAgICkge1xuICAgICAgICAvLyAtT25lUmVsYXRpb24g7LyA7J207IqkXG4gICAgICAgIGNvbnN0IHJlbEVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KHByb3Aud2l0aCk7XG4gICAgICAgIGNvbnN0IHBrVHlwZSA9IHJlbEVudGl0eS5nZXRQa1R5cGUoKTtcbiAgICAgICAgY29uc3QgcGtQcm9wID0gcmVsRW50aXR5LmdldFBrUHJvcCgpO1xuXG4gICAgICAgIGNvbnN0IGlkQ29sdW1uTmFtZSA9IGAke3Byb3AubmFtZX1faWRgO1xuICAgICAgICByLmNvbHVtbnMucHVzaCh7XG4gICAgICAgICAgbmFtZTogaWRDb2x1bW5OYW1lLFxuICAgICAgICAgIHR5cGU6IHBrVHlwZSxcbiAgICAgICAgICBudWxsYWJsZTogcHJvcC5udWxsYWJsZSA/PyBmYWxzZSxcbiAgICAgICAgICAvLyBzdHJpbmcgRkvsnbgg6rK97JqwIGxlbmd0aOuPhCDsoITri6xcbiAgICAgICAgICAuLi4ocGtUeXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICBwa1Byb3AudHlwZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgcGtQcm9wLmxlbmd0aCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgICAgICAgbGVuZ3RoOiBwa1Byb3AubGVuZ3RoLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoKHByb3AudXNlQ29uc3RyYWludCA/PyB0cnVlKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHIuZm9yZWlnbnMucHVzaCh7XG4gICAgICAgICAgICBjb2x1bW5zOiBbaWRDb2x1bW5OYW1lXSxcbiAgICAgICAgICAgIHRvOiBgJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoaW5mbGVjdGlvbi5wbHVyYWxpemUocHJvcC53aXRoKSkudG9Mb3dlckNhc2UoKX0uaWRgLFxuICAgICAgICAgICAgb25VcGRhdGU6IHByb3Aub25VcGRhdGUgPz8gXCJSRVNUUklDVFwiLFxuICAgICAgICAgICAgb25EZWxldGU6IHByb3Aub25EZWxldGUgPz8gXCJSRVNUUklDVFwiLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByO1xuICAgIH0sXG4gICAge1xuICAgICAgdGFibGU6IGVudGl0eS50YWJsZSxcbiAgICAgIGNvbHVtbnM6IFtdIGFzIE1pZ3JhdGlvbkNvbHVtbltdLFxuICAgICAgaW5kZXhlczogW10gYXMgTWlncmF0aW9uSW5kZXhbXSxcbiAgICAgIGZvcmVpZ25zOiBbXSBhcyBNaWdyYXRpb25Gb3JlaWduW10sXG4gICAgICBqb2luVGFibGVzOiBbXSBhcyBNaWdyYXRpb25Kb2luVGFibGVbXSxcbiAgICB9LFxuICApO1xuXG4gIC8vIGluZGV4ZXNcbiAgbWlncmF0aW9uU2V0LmluZGV4ZXMgPSBlbnRpdHkuaW5kZXhlcy5maWx0ZXIoKGluZGV4KSA9PlxuICAgIGluZGV4LmNvbHVtbnMuZmluZCgoY29sKSA9PiBjb2wubmFtZS5pbmNsdWRlcyhcIi5cIikgPT09IGZhbHNlKSxcbiAgKTtcblxuICByZXR1cm4gbWlncmF0aW9uU2V0O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRW50aXR5UHJvcFR5cGVUb01pZ3JhdGlvbkNvbHVtblR5cGUocHJvcDogRW50aXR5UHJvcCk6IE1pZ3JhdGlvbkNvbHVtblR5cGUge1xuICBpZiAocHJvcC50eXBlID09PSBcInJlbGF0aW9uXCIgfHwgcHJvcC50eXBlID09PSBcInZpcnR1YWxcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5yZXNvbHZlZCBjb2x1bW4gdHlwZTogJHtwcm9wLnR5cGV9YCk7XG4gIH1cblxuICBzd2l0Y2ggKHByb3AudHlwZSkge1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIHJldHVybiBcInN0cmluZ1wiO1xuICAgIGNhc2UgXCJzdHJpbmdbXVwiOlxuICAgICAgcmV0dXJuIFwic3RyaW5nW11cIjtcbiAgICBjYXNlIFwiZW51bVwiOlxuICAgICAgcmV0dXJuIFwic3RyaW5nXCI7XG4gICAgY2FzZSBcImVudW1bXVwiOlxuICAgICAgcmV0dXJuIFwic3RyaW5nW11cIjtcbiAgICBjYXNlIFwiaW50ZWdlclwiOlxuICAgICAgcmV0dXJuIFwiaW50ZWdlclwiO1xuICAgIGNhc2UgXCJpbnRlZ2VyW11cIjpcbiAgICAgIHJldHVybiBcImludGVnZXJbXVwiO1xuICAgIGNhc2UgXCJiaWdJbnRlZ2VyXCI6XG4gICAgICByZXR1cm4gXCJiaWdJbnRlZ2VyXCI7XG4gICAgY2FzZSBcImJpZ0ludGVnZXJbXVwiOlxuICAgICAgcmV0dXJuIFwiYmlnSW50ZWdlcltdXCI7XG4gICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgcmV0dXJuIFwibnVtYmVyT3JOdW1lcmljXCI7XG4gICAgY2FzZSBcIm51bWJlcltdXCI6XG4gICAgICByZXR1cm4gXCJudW1iZXJPck51bWVyaWNbXVwiO1xuICAgIGNhc2UgXCJudW1lcmljXCI6XG4gICAgICByZXR1cm4gXCJudW1iZXJPck51bWVyaWNcIjtcbiAgICBjYXNlIFwibnVtZXJpY1tdXCI6XG4gICAgICByZXR1cm4gXCJudW1iZXJPck51bWVyaWNbXVwiO1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICByZXR1cm4gXCJib29sZWFuXCI7XG4gICAgY2FzZSBcImJvb2xlYW5bXVwiOlxuICAgICAgcmV0dXJuIFwiYm9vbGVhbltdXCI7XG4gICAgY2FzZSBcImRhdGVcIjpcbiAgICAgIHJldHVybiBcImRhdGVcIjtcbiAgICBjYXNlIFwiZGF0ZVtdXCI6XG4gICAgICByZXR1cm4gXCJkYXRlW11cIjtcbiAgICBjYXNlIFwidXVpZFwiOlxuICAgICAgcmV0dXJuIFwidXVpZFwiO1xuICAgIGNhc2UgXCJ1dWlkW11cIjpcbiAgICAgIHJldHVybiBcInV1aWRbXVwiO1xuICAgIGNhc2UgXCJqc29uXCI6XG4gICAgICByZXR1cm4gXCJqc29uXCI7XG4gICAgY2FzZSBcInNlYXJjaFRleHRcIjpcbiAgICAgIHJldHVybiBcInN0cmluZ1wiO1xuICAgIGNhc2UgXCJ2ZWN0b3JcIjpcbiAgICAgIHJldHVybiBcInZlY3RvclwiO1xuICAgIGNhc2UgXCJ2ZWN0b3JbXVwiOlxuICAgICAgcmV0dXJuIFwidmVjdG9yW11cIjtcbiAgICBjYXNlIFwidHN2ZWN0b3JcIjpcbiAgICAgIHJldHVybiBcInRzdmVjdG9yXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIGV4aGF1c3RpdmUocHJvcCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZW50aXR5IHByb3AgdHlwZTogJHsocHJvcCBhcyB7IHR5cGU6IHN0cmluZyB9KS50eXBlfWApO1xuICB9XG59XG4iXSwibmFtZXMiOlsiaW5mbGVjdGlvbiIsIkVudGl0eU1hbmFnZXIiLCJpc0JlbG9uZ3NUb09uZVJlbGF0aW9uUHJvcCIsImlzSGFzTWFueVJlbGF0aW9uUHJvcCIsImlzTWFueVRvTWFueVJlbGF0aW9uUHJvcCIsImlzTnVtYmVyUHJvcCIsImlzTnVtZXJpY1Byb3AiLCJpc09uZVRvT25lUmVsYXRpb25Qcm9wIiwiaXNSZWxhdGlvblByb3AiLCJpc1N0cmluZ1Byb3AiLCJpc1ZlY3RvclByb3AiLCJpc1ZpcnR1YWxQcm9wIiwiZXhoYXVzdGl2ZSIsImdldE1pZ3JhdGlvblNldEZyb21FbnRpdHkiLCJlbnRpdHkiLCJtaWdyYXRpb25TZXQiLCJwcm9wcyIsInJlZHVjZSIsInIiLCJwcm9wIiwiY29sdW1uIiwibmFtZSIsInR5cGUiLCJyZXNvbHZlRW50aXR5UHJvcFR5cGVUb01pZ3JhdGlvbkNvbHVtblR5cGUiLCJudWxsYWJsZSIsImRiRGVmYXVsdCIsInVuZGVmaW5lZCIsImRlZmF1bHRUbyIsImxlbmd0aCIsInByZWNpc2lvbiIsInNjYWxlIiwibnVtYmVyVHlwZSIsImRpbWVuc2lvbnMiLCJnZW5lcmF0ZWQiLCJjb2x1bW5zIiwicHVzaCIsInJlbE1kIiwiZ2V0Iiwid2l0aCIsInRhYmxlMSIsInRhYmxlIiwidGFibGUyIiwidGhpc1BrVHlwZSIsImdldFBrVHlwZSIsInRoaXNQa1Byb3AiLCJnZXRQa1Byb3AiLCJyZWxQa1R5cGUiLCJyZWxQa1Byb3AiLCJqb2luIiwiZnJvbSIsInRocm91Z2giLCJqb2luVGFibGUiLCJzaW5ndWxhcml6ZSIsInRvIiwib25VcGRhdGUiLCJvbkRlbGV0ZSIsImZpZWxkcyIsImpvaW5UYWJsZXMiLCJzcGxpdCIsImluZGV4ZXMiLCJmaWx0ZXIiLCJpbmRleCIsImZpbmQiLCJjb2wiLCJpbmNsdWRlcyIsIm1hcCIsInJlcGxhY2UiLCJudWxsc0ZpcnN0Iiwic29ydE9yZGVyIiwiZm9yZWlnbnMiLCJmaWVsZCIsImhhc0pvaW5Db2x1bW4iLCJyZWxFbnRpdHkiLCJwa1R5cGUiLCJwa1Byb3AiLCJpZENvbHVtbk5hbWUiLCJ1c2VDb25zdHJhaW50IiwidW5kZXJzY29yZSIsInBsdXJhbGl6ZSIsInRvTG93ZXJDYXNlIiwiRXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGdCQUFnQixhQUFhO0FBRXBDLFNBQVNDLGFBQWEsUUFBUSw4QkFBMkI7QUFDekQsU0FFRUMsMEJBQTBCLEVBQzFCQyxxQkFBcUIsRUFDckJDLHdCQUF3QixFQUN4QkMsWUFBWSxFQUNaQyxhQUFhLEVBQ2JDLHNCQUFzQixFQUN0QkMsY0FBYyxFQUNkQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsYUFBYSxRQU9SLG9CQUFpQjtBQUN4QixTQUFTQyxVQUFVLFFBQVEsb0JBQWlCO0FBRTVDOzs7O0NBSUMsR0FDRCxPQUFPLFNBQVNDLDBCQUEwQkMsTUFBYztJQUN0RCxNQUFNQyxlQUF5Q0QsT0FBT0UsS0FBSyxDQUFDQyxNQUFNLENBQ2hFLENBQUNDLEdBQUdDO1FBQ0YsZ0JBQWdCO1FBQ2hCLElBQUlSLGNBQWNRLE9BQU87WUFDdkIsT0FBT0Q7UUFDVDtRQUNBLDRCQUE0QjtRQUM1QixJQUFJZixzQkFBc0JnQixPQUFPO1lBQy9CLE9BQU9EO1FBQ1Q7UUFFQSxRQUFRO1FBQ1IsSUFBSSxDQUFDVixlQUFlVyxPQUFPO1lBQ3pCLE1BQU1DLFNBQVM7Z0JBQ2JDLE1BQU1GLEtBQUtFLElBQUk7Z0JBQ2ZDLE1BQU1DLDJDQUEyQ0o7Z0JBQ2pESyxVQUFVTCxLQUFLSyxRQUFRLEtBQUs7Z0JBQzVCLEdBQUcsQUFBQyxDQUFBO29CQUNGLElBQUlMLEtBQUtNLFNBQVMsS0FBS0MsV0FBVzt3QkFDaEMsT0FBTzs0QkFDTEMsV0FBV1IsS0FBS00sU0FBUzt3QkFDM0I7b0JBQ0Y7b0JBQ0EsT0FBTyxDQUFDO2dCQUNWLENBQUEsR0FBSTtnQkFDSiw2QkFBNkI7Z0JBQzdCLEdBQUloQixhQUFhVSxTQUNmQSxLQUFLUyxNQUFNLEtBQUtGLGFBQWE7b0JBQzNCRSxRQUFRVCxLQUFLUyxNQUFNO2dCQUNyQixDQUFDO2dCQUNILDRDQUE0QztnQkFDNUMsR0FBSSxBQUFDdkIsQ0FBQUEsYUFBYWMsU0FBU2IsY0FBY2EsS0FBSSxLQUFNO29CQUNqRFUsV0FBV1YsS0FBS1UsU0FBUztvQkFDekJDLE9BQU9YLEtBQUtXLEtBQUs7b0JBQ2pCQyxZQUFZMUIsYUFBYWMsUUFBU0EsS0FBS1ksVUFBVSxJQUFJLFlBQWE7Z0JBQ3BFLENBQUM7Z0JBQ0QsOEJBQThCO2dCQUM5QixHQUFJckIsYUFBYVMsU0FBUztvQkFDeEJhLFlBQVliLEtBQUthLFVBQVU7Z0JBQzdCLENBQUM7Z0JBQ0QseUJBQXlCO2dCQUN6QixHQUFJYixLQUFLYyxTQUFTLElBQUk7b0JBQ3BCQSxXQUFXZCxLQUFLYyxTQUFTO2dCQUMzQixDQUFDO1lBQ0g7WUFFQWYsRUFBRWdCLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDZjtRQUNqQjtRQUVBLElBQUloQix5QkFBeUJlLE9BQU87WUFDbEMsaUJBQWlCO1lBQ2pCLE1BQU1pQixRQUFRbkMsY0FBY29DLEdBQUcsQ0FBQ2xCLEtBQUttQixJQUFJO1lBQ3pDLE1BQU1DLFNBQVN6QixPQUFPMEIsS0FBSztZQUMzQixNQUFNQyxTQUFTTCxNQUFNSSxLQUFLO1lBRTFCLHVCQUF1QjtZQUN2QixNQUFNRSxhQUFhNUIsT0FBTzZCLFNBQVM7WUFDbkMsTUFBTUMsYUFBYTlCLE9BQU8rQixTQUFTO1lBQ25DLE1BQU1DLFlBQVlWLE1BQU1PLFNBQVM7WUFDakMsTUFBTUksWUFBWVgsTUFBTVMsU0FBUztZQUVqQyxNQUFNRyxPQUFPO2dCQUNYQyxNQUFNLEdBQUduQyxPQUFPMEIsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDMUJVLFNBQVM7b0JBQ1BELE1BQU0sR0FBRzlCLEtBQUtnQyxTQUFTLENBQUMsQ0FBQyxFQUFFbkQsV0FBV29ELFdBQVcsQ0FBQ2IsUUFBUSxHQUFHLENBQUM7b0JBQzlEYyxJQUFJLEdBQUdsQyxLQUFLZ0MsU0FBUyxDQUFDLENBQUMsRUFBRW5ELFdBQVdvRCxXQUFXLENBQUNYLFFBQVEsR0FBRyxDQUFDO29CQUM1RGEsVUFBVW5DLEtBQUttQyxRQUFRO29CQUN2QkMsVUFBVXBDLEtBQUtvQyxRQUFRO2dCQUN6QjtnQkFDQUYsSUFBSSxHQUFHakIsTUFBTUksS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN6QjtZQUNBLE1BQU1VLFVBQVVGLEtBQUtFLE9BQU87WUFDNUIsTUFBTU0sU0FBUztnQkFBQ04sUUFBUUQsSUFBSTtnQkFBRUMsUUFBUUcsRUFBRTthQUFDO1lBQ3pDbkMsRUFBRXVDLFVBQVUsQ0FBQ3RCLElBQUksQ0FBQztnQkFDaEJLLE9BQU9VLFFBQVFELElBQUksQ0FBQ1MsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQ0MsU0FBUztvQkFDUCx5QkFBeUI7dUJBQ3RCN0MsT0FBTzZDLE9BQU8sQ0FDZEMsTUFBTSxDQUFDLENBQUNDLFFBQ1BBLE1BQU0zQixPQUFPLENBQUM0QixJQUFJLENBQUMsQ0FBQ0MsTUFBUUEsSUFBSTFDLElBQUksQ0FBQzJDLFFBQVEsQ0FBQyxHQUFHN0MsS0FBS2dDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFFbkVjLEdBQUcsQ0FBQyxDQUFDSixRQUFXLENBQUE7NEJBQ2YsR0FBR0EsS0FBSzs0QkFDUjNCLFNBQVMyQixNQUFNM0IsT0FBTyxDQUFDK0IsR0FBRyxDQUFDLENBQUNGLE1BQVMsQ0FBQTtvQ0FDbkMxQyxNQUFNMEMsSUFBSTFDLElBQUksQ0FBQzZDLE9BQU8sQ0FBQyxHQUFHL0MsS0FBS2dDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQ0FDN0NnQixZQUFZSixJQUFJSSxVQUFVO29DQUMxQkMsV0FBV0wsSUFBSUssU0FBUztnQ0FDMUIsQ0FBQTt3QkFDRixDQUFBO2lCQUNIO2dCQUNEbEMsU0FBUztvQkFDUDt3QkFDRWIsTUFBTTt3QkFDTkMsTUFBTTt3QkFDTkUsVUFBVTtvQkFDWjtvQkFDQSxhQUFhO29CQUNiO3dCQUNFSCxNQUFNLEdBQUdyQixXQUFXb0QsV0FBVyxDQUFDYixRQUFRLEdBQUcsQ0FBQzt3QkFDNUNqQixNQUFNb0I7d0JBQ05sQixVQUFVO3dCQUNWLEdBQUlrQixlQUFlLFlBQ2pCRSxXQUFXdEIsSUFBSSxLQUFLLFlBQ3BCc0IsV0FBV2hCLE1BQU0sS0FBS0YsYUFBYTs0QkFDakNFLFFBQVFnQixXQUFXaEIsTUFBTTt3QkFDM0IsQ0FBQztvQkFDTDtvQkFDQSxhQUFhO29CQUNiO3dCQUNFUCxNQUFNLEdBQUdyQixXQUFXb0QsV0FBVyxDQUFDWCxRQUFRLEdBQUcsQ0FBQzt3QkFDNUNuQixNQUFNd0I7d0JBQ050QixVQUFVO3dCQUNWLEdBQUlzQixjQUFjLFlBQ2hCQyxVQUFVekIsSUFBSSxLQUFLLFlBQ25CeUIsVUFBVW5CLE1BQU0sS0FBS0YsYUFBYTs0QkFDaENFLFFBQVFtQixVQUFVbkIsTUFBTTt3QkFDMUIsQ0FBQztvQkFDTDtpQkFDRDtnQkFDRHlDLFVBQVViLE9BQU9TLEdBQUcsQ0FBQyxDQUFDSztvQkFDcEIseUJBQXlCO29CQUN6QixNQUFNUCxNQUFNTyxNQUFNWixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQy9CLE1BQU1MLEtBQUssQUFBQyxDQUFBO3dCQUNWLElBQUksR0FBR3JELFdBQVdvRCxXQUFXLENBQUNKLEtBQUtLLEVBQUUsQ0FBQ0ssS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEtBQUtLLEtBQUs7NEJBQ2pFLE9BQU9mLEtBQUtLLEVBQUU7d0JBQ2hCLE9BQU87NEJBQ0wsT0FBT0wsS0FBS0MsSUFBSTt3QkFDbEI7b0JBQ0YsQ0FBQTtvQkFDQSxPQUFPO3dCQUNMZixTQUFTOzRCQUFDNkI7eUJBQUk7d0JBQ2RWO3dCQUNBQyxVQUFVSixRQUFRSSxRQUFRO3dCQUMxQkMsVUFBVUwsUUFBUUssUUFBUTtvQkFDNUI7Z0JBQ0Y7WUFDRjtZQUNBLE9BQU9yQztRQUNULE9BQU8sSUFDTGhCLDJCQUEyQmlCLFNBQzFCWix1QkFBdUJZLFNBQVNBLEtBQUtvRCxhQUFhLEVBQ25EO1lBQ0EsbUJBQW1CO1lBQ25CLE1BQU1DLFlBQVl2RSxjQUFjb0MsR0FBRyxDQUFDbEIsS0FBS21CLElBQUk7WUFDN0MsTUFBTW1DLFNBQVNELFVBQVU3QixTQUFTO1lBQ2xDLE1BQU0rQixTQUFTRixVQUFVM0IsU0FBUztZQUVsQyxNQUFNOEIsZUFBZSxHQUFHeEQsS0FBS0UsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUN0Q0gsRUFBRWdCLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDO2dCQUNiZCxNQUFNc0Q7Z0JBQ05yRCxNQUFNbUQ7Z0JBQ05qRCxVQUFVTCxLQUFLSyxRQUFRLElBQUk7Z0JBQzNCLDJCQUEyQjtnQkFDM0IsR0FBSWlELFdBQVcsWUFDYkMsT0FBT3BELElBQUksS0FBSyxZQUNoQm9ELE9BQU85QyxNQUFNLEtBQUtGLGFBQWE7b0JBQzdCRSxRQUFROEMsT0FBTzlDLE1BQU07Z0JBQ3ZCLENBQUM7WUFDTDtZQUNBLElBQUksQUFBQ1QsQ0FBQUEsS0FBS3lELGFBQWEsSUFBSSxJQUFHLE1BQU8sTUFBTTtnQkFDekMxRCxFQUFFbUQsUUFBUSxDQUFDbEMsSUFBSSxDQUFDO29CQUNkRCxTQUFTO3dCQUFDeUM7cUJBQWE7b0JBQ3ZCdEIsSUFBSSxHQUFHckQsV0FBVzZFLFVBQVUsQ0FBQzdFLFdBQVc4RSxTQUFTLENBQUMzRCxLQUFLbUIsSUFBSSxHQUFHeUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztvQkFDaEZ6QixVQUFVbkMsS0FBS21DLFFBQVEsSUFBSTtvQkFDM0JDLFVBQVVwQyxLQUFLb0MsUUFBUSxJQUFJO2dCQUM3QjtZQUNGO1FBQ0Y7UUFFQSxPQUFPckM7SUFDVCxHQUNBO1FBQ0VzQixPQUFPMUIsT0FBTzBCLEtBQUs7UUFDbkJOLFNBQVMsRUFBRTtRQUNYeUIsU0FBUyxFQUFFO1FBQ1hVLFVBQVUsRUFBRTtRQUNaWixZQUFZLEVBQUU7SUFDaEI7SUFHRixVQUFVO0lBQ1YxQyxhQUFhNEMsT0FBTyxHQUFHN0MsT0FBTzZDLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDLENBQUNDLFFBQzVDQSxNQUFNM0IsT0FBTyxDQUFDNEIsSUFBSSxDQUFDLENBQUNDLE1BQVFBLElBQUkxQyxJQUFJLENBQUMyQyxRQUFRLENBQUMsU0FBUztJQUd6RCxPQUFPakQ7QUFDVDtBQUVBLFNBQVNRLDJDQUEyQ0osSUFBZ0I7SUFDbEUsSUFBSUEsS0FBS0csSUFBSSxLQUFLLGNBQWNILEtBQUtHLElBQUksS0FBSyxXQUFXO1FBQ3ZELE1BQU0sSUFBSTBELE1BQU0sQ0FBQyx3QkFBd0IsRUFBRTdELEtBQUtHLElBQUksRUFBRTtJQUN4RDtJQUVBLE9BQVFILEtBQUtHLElBQUk7UUFDZixLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1QsS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1QsS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1QsS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1QsS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1QsS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1QsS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1QsS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRVYsV0FBV087WUFDWCxNQUFNLElBQUk2RCxNQUFNLENBQUMsMEJBQTBCLEVBQUUsQUFBQzdELEtBQTBCRyxJQUFJLEVBQUU7SUFDbEY7QUFDRiJ9
|
|
180
|
+
//#endregion
|
|
181
|
+
init_migration_set();
|
|
182
|
+
export { getMigrationSetFromEntity, init_migration_set };
|
|
183
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLXNldC5qcyIsIm5hbWVzIjpbIm1pZ3JhdGlvblNldDogTWlncmF0aW9uU2V0QW5kSm9pblRhYmxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21pZ3JhdGlvbi9taWdyYXRpb24tc2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5cbmltcG9ydCB7IHR5cGUgRW50aXR5IH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHlcIjtcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQge1xuICBpc0JlbG9uZ3NUb09uZVJlbGF0aW9uUHJvcCxcbiAgaXNIYXNNYW55UmVsYXRpb25Qcm9wLFxuICBpc01hbnlUb01hbnlSZWxhdGlvblByb3AsXG4gIGlzTnVtYmVyUHJvcCxcbiAgaXNOdW1lcmljUHJvcCxcbiAgaXNPbmVUb09uZVJlbGF0aW9uUHJvcCxcbiAgaXNSZWxhdGlvblByb3AsXG4gIGlzU3RyaW5nUHJvcCxcbiAgaXNWZWN0b3JQcm9wLFxuICBpc1ZpcnR1YWxQcm9wLFxufSBmcm9tIFwiLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7XG4gIHR5cGUgRW50aXR5UHJvcCxcbiAgdHlwZSBNaWdyYXRpb25Db2x1bW4sXG4gIHR5cGUgTWlncmF0aW9uQ29sdW1uVHlwZSxcbiAgdHlwZSBNaWdyYXRpb25Gb3JlaWduLFxuICB0eXBlIE1pZ3JhdGlvbkluZGV4LFxuICB0eXBlIE1pZ3JhdGlvbkpvaW5UYWJsZSxcbiAgdHlwZSBNaWdyYXRpb25TZXRBbmRKb2luVGFibGUsXG59IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgZXhoYXVzdGl2ZSB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG4vKipcbiAqIEVudGl0eeulvCDsnb3slrTshJwgTWlncmF0aW9uU2V0QW5kSm9pblRhYmxl7J2EIOunjOuTpOyWtOyYteuLiOuLpC5cbiAqIEBwYXJhbSBlbnRpdHkgRW50aXR5IOqwneyytFxuICogQHJldHVybnMgTWlncmF0aW9uU2V0QW5kSm9pblRhYmxlIOqwneyytFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWlncmF0aW9uU2V0RnJvbUVudGl0eShlbnRpdHk6IEVudGl0eSk6IE1pZ3JhdGlvblNldEFuZEpvaW5UYWJsZSB7XG4gIGNvbnN0IG1pZ3JhdGlvblNldDogTWlncmF0aW9uU2V0QW5kSm9pblRhYmxlID0gZW50aXR5LnByb3BzLnJlZHVjZShcbiAgICAociwgcHJvcCkgPT4ge1xuICAgICAgLy8gdmlydHVhbCDtlYTrk5wg7KCc7Jm4XG4gICAgICBpZiAoaXNWaXJ0dWFsUHJvcChwcm9wKSkge1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH1cbiAgICAgIC8vIEhhc01hbnkg7LyA7J207Iqk64qUIOyVhOustCDsspjrpqzrj4Qg7ZWY7KeAIOyViuydjFxuICAgICAgaWYgKGlzSGFzTWFueVJlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH1cblxuICAgICAgLy8g7J2867CYIOy7rOufvFxuICAgICAgaWYgKCFpc1JlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB7XG4gICAgICAgICAgbmFtZTogcHJvcC5uYW1lLFxuICAgICAgICAgIHR5cGU6IHJlc29sdmVFbnRpdHlQcm9wVHlwZVRvTWlncmF0aW9uQ29sdW1uVHlwZShwcm9wKSxcbiAgICAgICAgICBudWxsYWJsZTogcHJvcC5udWxsYWJsZSA9PT0gdHJ1ZSxcbiAgICAgICAgICAuLi4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3AuZGJEZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0VG86IHByb3AuZGJEZWZhdWx0LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgIH0pKCksXG4gICAgICAgICAgLy8gU3RyaW5nIO2DgOyeheyXkCBsZW5ndGgg7J6I64qUIOqyveyasCDstpTqsIBcbiAgICAgICAgICAuLi4oaXNTdHJpbmdQcm9wKHByb3ApICYmXG4gICAgICAgICAgICBwcm9wLmxlbmd0aCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgICAgICAgbGVuZ3RoOiBwcm9wLmxlbmd0aCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIC8vIE51bWJlci9OdW1lcmljIO2DgOyeheydmCDqsr3smrAgcHJlY2lzaW9uLCBzY2FsZSDstpTqsIBcbiAgICAgICAgICAuLi4oKGlzTnVtYmVyUHJvcChwcm9wKSB8fCBpc051bWVyaWNQcm9wKHByb3ApKSAmJiB7XG4gICAgICAgICAgICBwcmVjaXNpb246IHByb3AucHJlY2lzaW9uLFxuICAgICAgICAgICAgc2NhbGU6IHByb3Auc2NhbGUsXG4gICAgICAgICAgICBudW1iZXJUeXBlOiBpc051bWJlclByb3AocHJvcCkgPyAocHJvcC5udW1iZXJUeXBlID8/IFwibnVtZXJpY1wiKSA6IFwibnVtZXJpY1wiLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIC8vIFZlY3RvciDtg4DsnoXsnZgg6rK97JqwIGRpbWVuc2lvbnMg7LaU6rCAXG4gICAgICAgICAgLi4uKGlzVmVjdG9yUHJvcChwcm9wKSAmJiB7XG4gICAgICAgICAgICBkaW1lbnNpb25zOiBwcm9wLmRpbWVuc2lvbnMsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLy8gR2VuZXJhdGVkIENvbHVtbiDsoJXrs7Qg7LaU6rCAXG4gICAgICAgICAgLi4uKHByb3AuZ2VuZXJhdGVkICYmIHtcbiAgICAgICAgICAgIGdlbmVyYXRlZDogcHJvcC5nZW5lcmF0ZWQsXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG5cbiAgICAgICAgci5jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzTWFueVRvTWFueVJlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgICAgICAvLyBNYW55VG9NYW55IOy8gOydtOyKpFxuICAgICAgICBjb25zdCByZWxNZCA9IEVudGl0eU1hbmFnZXIuZ2V0KHByb3Aud2l0aCk7XG4gICAgICAgIGNvbnN0IHRhYmxlMSA9IGVudGl0eS50YWJsZTtcbiAgICAgICAgY29uc3QgdGFibGUyID0gcmVsTWQudGFibGU7XG5cbiAgICAgICAgLy8g6rCBIOyXlO2LsO2LsOydmCBQSyDtg4DsnoUg7KCV67O0IOqwgOyguOyYpOq4sFxuICAgICAgICBjb25zdCB0aGlzUGtUeXBlID0gZW50aXR5LmdldFBrVHlwZSgpO1xuICAgICAgICBjb25zdCB0aGlzUGtQcm9wID0gZW50aXR5LmdldFBrUHJvcCgpO1xuICAgICAgICBjb25zdCByZWxQa1R5cGUgPSByZWxNZC5nZXRQa1R5cGUoKTtcbiAgICAgICAgY29uc3QgcmVsUGtQcm9wID0gcmVsTWQuZ2V0UGtQcm9wKCk7XG5cbiAgICAgICAgY29uc3Qgam9pbiA9IHtcbiAgICAgICAgICBmcm9tOiBgJHtlbnRpdHkudGFibGV9LmlkYCxcbiAgICAgICAgICB0aHJvdWdoOiB7XG4gICAgICAgICAgICBmcm9tOiBgJHtwcm9wLmpvaW5UYWJsZX0uJHtpbmZsZWN0aW9uLnNpbmd1bGFyaXplKHRhYmxlMSl9X2lkYCxcbiAgICAgICAgICAgIHRvOiBgJHtwcm9wLmpvaW5UYWJsZX0uJHtpbmZsZWN0aW9uLnNpbmd1bGFyaXplKHRhYmxlMil9X2lkYCxcbiAgICAgICAgICAgIG9uVXBkYXRlOiBwcm9wLm9uVXBkYXRlLFxuICAgICAgICAgICAgb25EZWxldGU6IHByb3Aub25EZWxldGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0bzogYCR7cmVsTWQudGFibGV9LmlkYCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdGhyb3VnaCA9IGpvaW4udGhyb3VnaDtcbiAgICAgICAgY29uc3QgZmllbGRzID0gW3Rocm91Z2guZnJvbSwgdGhyb3VnaC50b107XG4gICAgICAgIHIuam9pblRhYmxlcy5wdXNoKHtcbiAgICAgICAgICB0YWJsZTogdGhyb3VnaC5mcm9tLnNwbGl0KFwiLlwiKVswXSxcbiAgICAgICAgICBpbmRleGVzOiBlbnRpdHkuaW5kZXhlc1xuICAgICAgICAgICAgLmZpbHRlcigoaW5kZXgpID0+IGluZGV4LmNvbHVtbnMuZmluZCgoY29sKSA9PiBjb2wubmFtZS5pbmNsdWRlcyhgJHtwcm9wLmpvaW5UYWJsZX0uYCkpKVxuICAgICAgICAgICAgLm1hcCgoaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmluZGV4LFxuICAgICAgICAgICAgICBjb2x1bW5zOiBpbmRleC5jb2x1bW5zLm1hcCgoY29sKSA9PiAoe1xuICAgICAgICAgICAgICAgIG5hbWU6IGNvbC5uYW1lLnJlcGxhY2UoYCR7cHJvcC5qb2luVGFibGV9LmAsIFwiXCIpLFxuICAgICAgICAgICAgICAgIG51bGxzRmlyc3Q6IGNvbC5udWxsc0ZpcnN0LFxuICAgICAgICAgICAgICAgIHNvcnRPcmRlcjogY29sLnNvcnRPcmRlcixcbiAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJpZFwiLFxuICAgICAgICAgICAgICB0eXBlOiBcImludGVnZXJcIixcbiAgICAgICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIO2YhOyerCDsl5Tti7Dti7DsnZggRktcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogYCR7aW5mbGVjdGlvbi5zaW5ndWxhcml6ZSh0YWJsZTEpfV9pZGAsXG4gICAgICAgICAgICAgIHR5cGU6IHRoaXNQa1R5cGUsXG4gICAgICAgICAgICAgIG51bGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgLi4uKHRoaXNQa1R5cGUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICB0aGlzUGtQcm9wLnR5cGUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICB0aGlzUGtQcm9wLmxlbmd0aCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgICAgICAgICAgIGxlbmd0aDogdGhpc1BrUHJvcC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8g7LC47KGwIOyXlO2LsO2LsOydmCBGS1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBgJHtpbmZsZWN0aW9uLnNpbmd1bGFyaXplKHRhYmxlMil9X2lkYCxcbiAgICAgICAgICAgICAgdHlwZTogcmVsUGtUeXBlLFxuICAgICAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgIC4uLihyZWxQa1R5cGUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICByZWxQa1Byb3AudHlwZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgICAgIHJlbFBrUHJvcC5sZW5ndGggIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgICAgICAgICAgICAgICBsZW5ndGg6IHJlbFBrUHJvcC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZm9yZWlnbnM6IGZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAvLyDtmITsnqwg7ZWE65Oc6rCAIOyWtOuWpCDthYzsnbTruJTsl5Ag7IaN7ZWY64qU7KeAIO2MkOuLqFxuICAgICAgICAgICAgY29uc3QgY29sID0gZmllbGQuc3BsaXQoXCIuXCIpWzFdO1xuICAgICAgICAgICAgY29uc3QgdG8gPSAoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYCR7aW5mbGVjdGlvbi5zaW5ndWxhcml6ZShqb2luLnRvLnNwbGl0KFwiLlwiKVswXSl9X2lkYCA9PT0gY29sKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGpvaW4udG87XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGpvaW4uZnJvbTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGNvbHVtbnM6IFtjb2xdLFxuICAgICAgICAgICAgICB0byxcbiAgICAgICAgICAgICAgb25VcGRhdGU6IHRocm91Z2gub25VcGRhdGUsXG4gICAgICAgICAgICAgIG9uRGVsZXRlOiB0aHJvdWdoLm9uRGVsZXRlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AocHJvcCkgfHxcbiAgICAgICAgKGlzT25lVG9PbmVSZWxhdGlvblByb3AocHJvcCkgJiYgcHJvcC5oYXNKb2luQ29sdW1uKVxuICAgICAgKSB7XG4gICAgICAgIC8vIC1PbmVSZWxhdGlvbiDsvIDsnbTsiqRcbiAgICAgICAgY29uc3QgcmVsRW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQocHJvcC53aXRoKTtcbiAgICAgICAgY29uc3QgcGtUeXBlID0gcmVsRW50aXR5LmdldFBrVHlwZSgpO1xuICAgICAgICBjb25zdCBwa1Byb3AgPSByZWxFbnRpdHkuZ2V0UGtQcm9wKCk7XG5cbiAgICAgICAgY29uc3QgaWRDb2x1bW5OYW1lID0gYCR7cHJvcC5uYW1lfV9pZGA7XG4gICAgICAgIHIuY29sdW1ucy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBpZENvbHVtbk5hbWUsXG4gICAgICAgICAgdHlwZTogcGtUeXBlLFxuICAgICAgICAgIG51bGxhYmxlOiBwcm9wLm51bGxhYmxlID8/IGZhbHNlLFxuICAgICAgICAgIC8vIHN0cmluZyBGS+yduCDqsr3smrAgbGVuZ3Ro64+EIOyghOuLrFxuICAgICAgICAgIC4uLihwa1R5cGUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHBrUHJvcC50eXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICBwa1Byb3AubGVuZ3RoICE9PSB1bmRlZmluZWQgJiYge1xuICAgICAgICAgICAgICBsZW5ndGg6IHBrUHJvcC5sZW5ndGgsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwcm9wLnVzZUNvbnN0cmFpbnQgPz8gdHJ1ZSkge1xuICAgICAgICAgIHIuZm9yZWlnbnMucHVzaCh7XG4gICAgICAgICAgICBjb2x1bW5zOiBbaWRDb2x1bW5OYW1lXSxcbiAgICAgICAgICAgIHRvOiBgJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoaW5mbGVjdGlvbi5wbHVyYWxpemUocHJvcC53aXRoKSkudG9Mb3dlckNhc2UoKX0uaWRgLFxuICAgICAgICAgICAgb25VcGRhdGU6IHByb3Aub25VcGRhdGUgPz8gXCJSRVNUUklDVFwiLFxuICAgICAgICAgICAgb25EZWxldGU6IHByb3Aub25EZWxldGUgPz8gXCJSRVNUUklDVFwiLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByO1xuICAgIH0sXG4gICAge1xuICAgICAgdGFibGU6IGVudGl0eS50YWJsZSxcbiAgICAgIGNvbHVtbnM6IFtdIGFzIE1pZ3JhdGlvbkNvbHVtbltdLFxuICAgICAgaW5kZXhlczogW10gYXMgTWlncmF0aW9uSW5kZXhbXSxcbiAgICAgIGZvcmVpZ25zOiBbXSBhcyBNaWdyYXRpb25Gb3JlaWduW10sXG4gICAgICBqb2luVGFibGVzOiBbXSBhcyBNaWdyYXRpb25Kb2luVGFibGVbXSxcbiAgICB9LFxuICApO1xuXG4gIC8vIGluZGV4ZXNcbiAgbWlncmF0aW9uU2V0LmluZGV4ZXMgPSBlbnRpdHkuaW5kZXhlcy5maWx0ZXIoKGluZGV4KSA9PlxuICAgIGluZGV4LmNvbHVtbnMuZmluZCgoY29sKSA9PiAhY29sLm5hbWUuaW5jbHVkZXMoXCIuXCIpKSxcbiAgKTtcblxuICByZXR1cm4gbWlncmF0aW9uU2V0O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRW50aXR5UHJvcFR5cGVUb01pZ3JhdGlvbkNvbHVtblR5cGUocHJvcDogRW50aXR5UHJvcCk6IE1pZ3JhdGlvbkNvbHVtblR5cGUge1xuICBpZiAocHJvcC50eXBlID09PSBcInJlbGF0aW9uXCIgfHwgcHJvcC50eXBlID09PSBcInZpcnR1YWxcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5yZXNvbHZlZCBjb2x1bW4gdHlwZTogJHtwcm9wLnR5cGV9YCk7XG4gIH1cblxuICBzd2l0Y2ggKHByb3AudHlwZSkge1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIHJldHVybiBcInN0cmluZ1wiO1xuICAgIGNhc2UgXCJzdHJpbmdbXVwiOlxuICAgICAgcmV0dXJuIFwic3RyaW5nW11cIjtcbiAgICBjYXNlIFwiZW51bVwiOlxuICAgICAgcmV0dXJuIFwic3RyaW5nXCI7XG4gICAgY2FzZSBcImVudW1bXVwiOlxuICAgICAgcmV0dXJuIFwic3RyaW5nW11cIjtcbiAgICBjYXNlIFwiaW50ZWdlclwiOlxuICAgICAgcmV0dXJuIFwiaW50ZWdlclwiO1xuICAgIGNhc2UgXCJpbnRlZ2VyW11cIjpcbiAgICAgIHJldHVybiBcImludGVnZXJbXVwiO1xuICAgIGNhc2UgXCJiaWdJbnRlZ2VyXCI6XG4gICAgICByZXR1cm4gXCJiaWdJbnRlZ2VyXCI7XG4gICAgY2FzZSBcImJpZ0ludGVnZXJbXVwiOlxuICAgICAgcmV0dXJuIFwiYmlnSW50ZWdlcltdXCI7XG4gICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgcmV0dXJuIFwibnVtYmVyT3JOdW1lcmljXCI7XG4gICAgY2FzZSBcIm51bWJlcltdXCI6XG4gICAgICByZXR1cm4gXCJudW1iZXJPck51bWVyaWNbXVwiO1xuICAgIGNhc2UgXCJudW1lcmljXCI6XG4gICAgICByZXR1cm4gXCJudW1iZXJPck51bWVyaWNcIjtcbiAgICBjYXNlIFwibnVtZXJpY1tdXCI6XG4gICAgICByZXR1cm4gXCJudW1iZXJPck51bWVyaWNbXVwiO1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICByZXR1cm4gXCJib29sZWFuXCI7XG4gICAgY2FzZSBcImJvb2xlYW5bXVwiOlxuICAgICAgcmV0dXJuIFwiYm9vbGVhbltdXCI7XG4gICAgY2FzZSBcImRhdGVcIjpcbiAgICAgIHJldHVybiBcImRhdGVcIjtcbiAgICBjYXNlIFwiZGF0ZVtdXCI6XG4gICAgICByZXR1cm4gXCJkYXRlW11cIjtcbiAgICBjYXNlIFwidXVpZFwiOlxuICAgICAgcmV0dXJuIFwidXVpZFwiO1xuICAgIGNhc2UgXCJ1dWlkW11cIjpcbiAgICAgIHJldHVybiBcInV1aWRbXVwiO1xuICAgIGNhc2UgXCJqc29uXCI6XG4gICAgICByZXR1cm4gXCJqc29uXCI7XG4gICAgY2FzZSBcInNlYXJjaFRleHRcIjpcbiAgICAgIHJldHVybiBcInN0cmluZ1wiO1xuICAgIGNhc2UgXCJ2ZWN0b3JcIjpcbiAgICAgIHJldHVybiBcInZlY3RvclwiO1xuICAgIGNhc2UgXCJ2ZWN0b3JbXVwiOlxuICAgICAgcmV0dXJuIFwidmVjdG9yW11cIjtcbiAgICBjYXNlIFwidHN2ZWN0b3JcIjpcbiAgICAgIHJldHVybiBcInRzdmVjdG9yXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIGV4aGF1c3RpdmUocHJvcCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZW50aXR5IHByb3AgdHlwZTogJHsocHJvcCBhcyB7IHR5cGU6IHN0cmluZyB9KS50eXBlfWApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQWdDQSxTQUFnQiwwQkFBMEIsUUFBMEM7Q0FDbEYsTUFBTUEsZUFBeUMsT0FBTyxNQUFNLFFBQ3pELEdBQUcsU0FBUztBQUVYLE1BQUksY0FBYyxLQUFLLEVBQUU7QUFDdkIsVUFBTzs7QUFH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
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Knex } from "knex";
|
|
2
2
|
import { type SonamuDBConfig } from "../database/db";
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
3
|
+
import { type GenMigrationCode } from "../types/types";
|
|
4
|
+
import { type MigrationStatus } from "./types";
|
|
5
5
|
export type MigrationResult = {
|
|
6
6
|
connKey: string;
|
|
7
7
|
batchNo: number;
|
|
8
8
|
applied: string[];
|
|
9
9
|
}[];
|
|
10
10
|
export declare class Migrator {
|
|
11
|
+
private runMigrationsSequentially;
|
|
11
12
|
private getMigrationCodes;
|
|
12
13
|
/**
|
|
13
14
|
* 타겟별 마이그레이션 상태와 코드 생성/준비 상태를 구해옵니다.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/migration/migrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/migration/migrator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMrD,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,gBAAgB,CAAC;AAM1E,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAEpF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,EAAE,CAAC;AAEJ,qBAAa,QAAQ;YACL,yBAAyB;YAoBzB,iBAAiB;IAqB/B;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAiG3C;;;;;;;;;OASG;IACG,SAAS,CACb,MAAM,EAAE,OAAO,GAAG,UAAU,EAC5B,OAAO,EAAE,CAAC,MAAM,cAAc,CAAC,EAAE,GAChC,OAAO,CAAC,eAAe,CAAC;IAiD3B;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;;;;IAWtE;;;;;;;OAOG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBpD,OAAO,CAAC,UAAU;IAalB;;;;;;OAMG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBxC,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgErE;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;CAsEhD"}
|