sonamu 0.5.7 → 0.7.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/.swcrc.project-default +18 -0
- package/bin/cli.js +24 -0
- package/dist/ai/agents/agent.d.ts +11 -0
- package/dist/ai/agents/agent.d.ts.map +1 -0
- package/dist/ai/agents/agent.js +65 -0
- package/dist/ai/agents/index.d.ts +3 -0
- package/dist/ai/agents/index.d.ts.map +1 -0
- package/dist/ai/agents/index.js +4 -0
- package/dist/ai/agents/types.d.ts +43 -0
- package/dist/ai/agents/types.d.ts.map +1 -0
- package/dist/ai/agents/types.js +3 -0
- package/dist/ai/index.d.ts +2 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +3 -0
- package/dist/ai/providers/rtzr/api.d.ts +22 -0
- package/dist/ai/providers/rtzr/api.d.ts.map +1 -0
- package/dist/ai/providers/rtzr/api.js +28 -0
- package/dist/ai/providers/rtzr/error.d.ts +18 -0
- package/dist/ai/providers/rtzr/error.d.ts.map +1 -0
- package/dist/ai/providers/rtzr/error.js +29 -0
- package/dist/ai/providers/rtzr/index.d.ts +5 -0
- package/dist/ai/providers/rtzr/index.d.ts.map +1 -0
- package/dist/ai/providers/rtzr/index.js +6 -0
- package/dist/ai/providers/rtzr/model.d.ts +52 -0
- package/dist/ai/providers/rtzr/model.d.ts.map +1 -0
- package/dist/ai/providers/rtzr/model.js +137 -0
- package/dist/ai/providers/rtzr/options.d.ts +7 -0
- package/dist/ai/providers/rtzr/options.d.ts.map +1 -0
- package/dist/ai/providers/rtzr/options.js +47 -0
- package/dist/ai/providers/rtzr/provider.d.ts +18 -0
- package/dist/ai/providers/rtzr/provider.d.ts.map +1 -0
- package/dist/ai/providers/rtzr/provider.js +54 -0
- package/dist/ai/providers/rtzr/utils.d.ts +19 -0
- package/dist/ai/providers/rtzr/utils.d.ts.map +1 -0
- package/dist/ai/providers/rtzr/utils.js +88 -0
- 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 +13 -2
- package/dist/api/caster.d.ts.map +1 -1
- package/dist/api/caster.js +71 -2
- package/dist/api/code-converters.d.ts +58 -14
- package/dist/api/code-converters.d.ts.map +1 -1
- package/dist/api/code-converters.js +258 -2
- package/dist/api/config.d.ts +90 -0
- package/dist/api/config.d.ts.map +1 -0
- package/dist/api/config.js +25 -0
- package/dist/api/context.d.ts +4 -2
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +3 -2
- package/dist/api/decorators.d.ts +20 -6
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +235 -2
- package/dist/api/index.d.ts +2 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +9 -2
- package/dist/api/sonamu.d.ts +10 -24
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +514 -2
- package/dist/api/validator.d.ts +6 -0
- package/dist/api/validator.d.ts.map +1 -0
- package/dist/api/validator.js +81 -0
- package/dist/bin/build-config.d.ts +6 -1
- package/dist/bin/build-config.d.ts.map +1 -1
- package/dist/bin/build-config.js +15 -2
- package/dist/bin/cli.js +519 -2
- package/dist/bin/hot-hook-register.d.ts +11 -0
- package/dist/bin/hot-hook-register.d.ts.map +1 -0
- package/dist/bin/hot-hook-register.js +21 -0
- package/dist/bin/loader-register.d.ts +2 -0
- package/dist/bin/loader-register.d.ts.map +1 -0
- package/dist/bin/loader-register.js +34 -0
- package/dist/database/_batch_update.d.ts +5 -3
- package/dist/database/_batch_update.d.ts.map +1 -1
- package/dist/database/_batch_update.js +95 -2
- package/dist/database/base-model.d.ts +96 -10
- package/dist/database/base-model.d.ts.map +1 -1
- package/dist/database/base-model.js +390 -2
- package/dist/database/base-model.types.d.ts +93 -0
- package/dist/database/base-model.types.d.ts.map +1 -0
- package/dist/database/base-model.types.js +10 -0
- package/dist/database/code-generator.d.ts +1 -1
- package/dist/database/code-generator.d.ts.map +1 -1
- package/dist/database/code-generator.js +54 -2
- package/dist/database/db.d.ts +6 -21
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +129 -2
- package/dist/database/puri-subset.test-d.js +81 -0
- package/dist/database/puri-subset.types.d.ts +123 -0
- package/dist/database/puri-subset.types.d.ts.map +1 -0
- package/dist/database/puri-subset.types.js +16 -0
- package/dist/database/puri-wrapper.d.ts +13 -11
- package/dist/database/puri-wrapper.d.ts.map +1 -1
- package/dist/database/puri-wrapper.js +109 -2
- package/dist/database/puri.d.ts +41 -23
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +601 -2
- package/dist/database/puri.types.d.ts +25 -6
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +6 -2
- package/dist/database/transaction-context.d.ts +1 -1
- package/dist/database/transaction-context.d.ts.map +1 -1
- package/dist/database/transaction-context.js +14 -2
- package/dist/database/upsert-builder.d.ts +9 -3
- package/dist/database/upsert-builder.d.ts.map +1 -1
- package/dist/database/upsert-builder.js +365 -2
- package/dist/entity/entity-manager.d.ts +167 -2
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +130 -2
- package/dist/entity/entity.d.ts +5 -3
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +750 -2
- 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 +29 -2
- 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 +85 -2
- package/dist/file-storage/driver.d.ts +1 -1
- package/dist/file-storage/driver.d.ts.map +1 -1
- package/dist/file-storage/driver.js +79 -2
- package/dist/file-storage/file-storage.js +75 -2
- package/dist/index.d.ts +18 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -2
- package/dist/migration/code-generation.d.ts +1 -1
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +614 -2
- package/dist/migration/migration-set.d.ts +2 -10
- package/dist/migration/migration-set.d.ts.map +1 -1
- package/dist/migration/migration-set.js +213 -2
- package/dist/migration/migrator.d.ts +24 -82
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +330 -2
- package/dist/migration/postgresql-schema-reader.d.ts +51 -0
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -0
- package/dist/migration/postgresql-schema-reader.js +245 -0
- package/dist/migration/types.d.ts +6 -38
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/migration/types.js +3 -2
- package/dist/naite/messaging-types.d.ts +43 -0
- package/dist/naite/messaging-types.d.ts.map +1 -0
- package/dist/naite/messaging-types.js +7 -0
- package/dist/naite/naite-reporter.d.ts +41 -0
- package/dist/naite/naite-reporter.d.ts.map +1 -0
- package/dist/naite/naite-reporter.js +102 -0
- package/dist/naite/naite.d.ts +95 -0
- package/dist/naite/naite.d.ts.map +1 -0
- package/dist/naite/naite.js +316 -0
- package/dist/stream/index.js +3 -2
- package/dist/stream/sse.d.ts +2 -2
- package/dist/stream/sse.d.ts.map +1 -1
- package/dist/stream/sse.js +38 -2
- package/dist/syncer/api-parser.d.ts +10 -0
- package/dist/syncer/api-parser.d.ts.map +1 -0
- package/dist/syncer/api-parser.js +240 -0
- package/dist/syncer/checksum.d.ts +21 -0
- package/dist/syncer/checksum.d.ts.map +1 -0
- package/dist/syncer/checksum.js +98 -0
- package/dist/syncer/code-generator.d.ts +20 -0
- package/dist/syncer/code-generator.d.ts.map +1 -0
- package/dist/syncer/code-generator.js +161 -0
- package/dist/syncer/entity-operations.d.ts +17 -0
- package/dist/syncer/entity-operations.d.ts.map +1 -0
- package/dist/syncer/entity-operations.js +59 -0
- package/dist/syncer/file-patterns.d.ts +29 -0
- package/dist/syncer/file-patterns.d.ts.map +1 -0
- package/dist/syncer/file-patterns.js +38 -0
- package/dist/syncer/index.d.ts +6 -0
- package/dist/syncer/index.d.ts.map +1 -1
- package/dist/syncer/index.js +9 -2
- package/dist/syncer/module-loader.d.ts +35 -0
- package/dist/syncer/module-loader.d.ts.map +1 -0
- package/dist/syncer/module-loader.js +87 -0
- package/dist/syncer/syncer.d.ts +98 -106
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +422 -2
- package/dist/template/entity-converter.d.ts +14 -0
- package/dist/template/entity-converter.d.ts.map +1 -0
- package/dist/template/entity-converter.js +108 -0
- package/dist/template/helpers.d.ts +23 -0
- package/dist/template/helpers.d.ts.map +1 -0
- package/dist/template/helpers.js +64 -0
- package/dist/{templates → template/implementations}/entity.template.d.ts +3 -3
- package/dist/template/implementations/entity.template.d.ts.map +1 -0
- package/dist/template/implementations/entity.template.js +86 -0
- package/dist/{templates → template/implementations}/generated.template.d.ts +3 -4
- package/dist/template/implementations/generated.template.d.ts.map +1 -0
- package/dist/template/implementations/generated.template.js +249 -0
- package/dist/{templates → template/implementations}/generated_http.template.d.ts +3 -4
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -0
- package/dist/template/implementations/generated_http.template.js +131 -0
- package/dist/{templates → template/implementations}/generated_sso.template.d.ts +4 -5
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -0
- package/dist/template/implementations/generated_sso.template.js +134 -0
- package/dist/{templates → template/implementations}/init_types.template.d.ts +3 -3
- package/dist/template/implementations/init_types.template.d.ts.map +1 -0
- package/dist/template/implementations/init_types.template.js +38 -0
- package/dist/template/implementations/model.template.d.ts +17 -0
- package/dist/template/implementations/model.template.d.ts.map +1 -0
- package/dist/template/implementations/model.template.js +181 -0
- package/dist/{templates → template/implementations}/model_test.template.d.ts +3 -3
- package/dist/template/implementations/model_test.template.d.ts.map +1 -0
- package/dist/template/implementations/model_test.template.js +35 -0
- package/dist/{templates → template/implementations}/service.template.d.ts +6 -6
- package/dist/template/implementations/service.template.d.ts.map +1 -0
- package/dist/template/implementations/service.template.js +201 -0
- package/dist/{templates → template/implementations}/view_enums_buttonset.template.d.ts +3 -3
- package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -0
- package/dist/template/implementations/view_enums_buttonset.template.js +31 -0
- package/dist/{templates → template/implementations}/view_enums_dropdown.template.d.ts +3 -4
- package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -0
- package/dist/template/implementations/view_enums_dropdown.template.js +50 -0
- package/dist/{templates → template/implementations}/view_enums_select.template.d.ts +3 -3
- package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -0
- package/dist/template/implementations/view_enums_select.template.js +55 -0
- package/dist/{templates → template/implementations}/view_form.template.d.ts +5 -5
- package/dist/template/implementations/view_form.template.d.ts.map +1 -0
- package/dist/template/implementations/view_form.template.js +337 -0
- package/dist/{templates → template/implementations}/view_id_all_select.template.d.ts +3 -3
- package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -0
- package/dist/template/implementations/view_id_all_select.template.js +31 -0
- package/dist/{templates → template/implementations}/view_id_async_select.template.d.ts +3 -3
- package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -0
- package/dist/template/implementations/view_id_async_select.template.js +105 -0
- package/dist/{templates → template/implementations}/view_list.template.d.ts +5 -13
- package/dist/template/implementations/view_list.template.d.ts.map +1 -0
- package/dist/template/implementations/view_list.template.js +475 -0
- package/dist/template/implementations/view_list_columns.template.d.ts +17 -0
- package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -0
- package/dist/template/implementations/view_list_columns.template.js +49 -0
- package/dist/{templates → template/implementations}/view_search_input.template.d.ts +3 -3
- package/dist/template/implementations/view_search_input.template.d.ts.map +1 -0
- package/dist/template/implementations/view_search_input.template.js +64 -0
- package/dist/template/index.d.ts +7 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/template/index.js +8 -0
- package/dist/template/template-manager.d.ts +56 -0
- package/dist/template/template-manager.d.ts.map +1 -0
- package/dist/template/template-manager.js +125 -0
- package/dist/template/template-types.d.ts +16 -0
- package/dist/template/template-types.d.ts.map +1 -0
- package/dist/template/template-types.js +7 -0
- package/dist/template/template.d.ts +49 -0
- package/dist/template/template.d.ts.map +1 -0
- package/dist/template/template.js +60 -0
- package/dist/template/zod-converter.d.ts +51 -0
- package/dist/template/zod-converter.d.ts.map +1 -0
- package/dist/template/zod-converter.js +449 -0
- 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 +89 -2
- package/dist/testing/fixture-manager.d.ts +42 -11
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +623 -2
- package/dist/types/types.d.ts +747 -143
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +546 -2
- package/dist/typings/knex.d.js +3 -2
- package/dist/utils/async-utils.d.ts +7 -0
- package/dist/utils/async-utils.d.ts.map +1 -1
- package/dist/utils/async-utils.js +57 -2
- package/dist/utils/console-util.d.ts +2 -0
- package/dist/utils/console-util.d.ts.map +1 -0
- package/dist/utils/console-util.js +6 -0
- package/dist/utils/controller.d.ts +1 -0
- package/dist/utils/controller.d.ts.map +1 -1
- package/dist/utils/controller.js +29 -2
- package/dist/utils/esm-utils.d.ts +39 -0
- package/dist/utils/esm-utils.d.ts.map +1 -0
- package/dist/utils/esm-utils.js +49 -0
- package/dist/utils/formatter.d.ts +3 -0
- package/dist/utils/formatter.d.ts.map +1 -0
- package/dist/utils/formatter.js +110 -0
- package/dist/utils/fs-utils.d.ts +1 -1
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +17 -2
- package/dist/utils/lodash-able.d.ts.map +1 -1
- package/dist/utils/lodash-able.js +6 -2
- package/dist/utils/model.js +22 -2
- package/dist/utils/object-utils.d.ts +44 -0
- package/dist/utils/object-utils.d.ts.map +1 -0
- package/dist/utils/object-utils.js +191 -0
- package/dist/utils/path-utils.d.ts +89 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +60 -0
- package/dist/utils/process-utils.d.ts +13 -0
- package/dist/utils/process-utils.d.ts.map +1 -0
- package/dist/utils/process-utils.js +36 -0
- package/dist/utils/sql-parser.d.ts +5 -1
- package/dist/utils/sql-parser.d.ts.map +1 -1
- package/dist/utils/sql-parser.js +46 -2
- package/dist/utils/type-utils.d.ts +23 -0
- package/dist/utils/type-utils.d.ts.map +1 -0
- package/dist/utils/type-utils.js +45 -0
- package/dist/utils/utils.d.ts +10 -7
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +72 -2
- 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 +19 -2
- package/package.json +65 -27
- package/src/ai/agents/agent.ts +87 -0
- package/src/ai/agents/index.ts +2 -0
- package/src/ai/agents/types.ts +47 -0
- package/src/ai/index.ts +1 -0
- package/src/ai/providers/rtzr/api.ts +37 -0
- package/src/ai/providers/rtzr/error.ts +34 -0
- package/src/ai/providers/rtzr/index.ts +4 -0
- package/src/ai/providers/rtzr/model.ts +201 -0
- package/src/ai/providers/rtzr/options.ts +49 -0
- package/src/ai/providers/rtzr/provider.ts +91 -0
- package/src/ai/providers/rtzr/utils.ts +127 -0
- package/src/api/base-frame.ts +4 -2
- package/src/api/caster.ts +17 -23
- package/src/api/code-converters.ts +178 -535
- package/src/api/config.ts +125 -0
- package/src/api/context.ts +7 -17
- package/src/api/decorators.ts +176 -46
- package/src/api/index.ts +2 -2
- package/src/api/sonamu.ts +190 -167
- package/src/api/validator.ts +83 -0
- package/src/bin/build-config.ts +8 -1
- package/src/bin/cli.ts +258 -124
- package/src/bin/hot-hook-register.ts +22 -0
- package/src/bin/loader-register.ts +38 -0
- package/src/database/_batch_update.ts +46 -31
- package/src/database/base-model.ts +390 -182
- package/src/database/base-model.types.ts +155 -0
- package/src/database/code-generator.ts +13 -32
- package/src/database/db.ts +40 -96
- package/src/database/puri-subset.test-d.ts +471 -0
- package/src/database/puri-subset.types.ts +195 -0
- package/src/database/puri-wrapper.ts +58 -67
- package/src/database/puri.ts +229 -148
- package/src/database/puri.types.ts +76 -30
- package/src/database/transaction-context.ts +1 -1
- package/src/database/upsert-builder.ts +262 -132
- package/src/entity/entity-manager.ts +48 -36
- package/src/entity/entity.ts +330 -248
- package/src/exceptions/error-handler.ts +3 -3
- package/src/exceptions/so-exceptions.ts +11 -11
- package/src/file-storage/driver.ts +5 -5
- package/src/file-storage/file-storage.ts +2 -2
- package/src/index.ts +18 -10
- package/src/migration/code-generation.ts +185 -172
- package/src/migration/migration-set.ts +80 -293
- package/src/migration/migrator.ts +199 -571
- package/src/migration/mysql-schema-reader.ts.txt +272 -0
- package/src/migration/postgresql-schema-reader.ts +310 -0
- package/src/migration/types.ts +6 -39
- package/src/naite/messaging-types.ts +51 -0
- package/src/naite/naite-reporter.ts +128 -0
- package/src/naite/naite.ts +415 -0
- package/src/shared/web.shared.ts.txt +20 -24
- package/src/stream/sse.ts +5 -5
- package/src/syncer/api-parser.ts +282 -0
- package/src/syncer/checksum.ts +140 -0
- package/src/syncer/code-generator.ts +198 -0
- package/src/syncer/entity-operations.ts +65 -0
- package/src/syncer/file-patterns.ts +56 -0
- package/src/syncer/index.ts +6 -0
- package/src/syncer/module-loader.ts +128 -0
- package/src/syncer/syncer.ts +389 -1453
- package/src/template/entity-converter.ts +114 -0
- package/src/template/helpers.ts +81 -0
- package/src/{templates → template/implementations}/entity.template.ts +7 -7
- package/src/{templates → template/implementations}/generated.template.ts +101 -101
- package/src/{templates → template/implementations}/generated_http.template.ts +27 -57
- package/src/template/implementations/generated_sso.template.ts +151 -0
- package/src/{templates → template/implementations}/init_types.template.ts +5 -7
- package/src/{templates → template/implementations}/model.template.ts +52 -43
- package/src/{templates → template/implementations}/model_test.template.ts +5 -5
- package/src/{templates → template/implementations}/service.template.ts +66 -82
- package/src/{templates → template/implementations}/view_enums_buttonset.template.ts +3 -3
- package/src/{templates → template/implementations}/view_enums_dropdown.template.ts +4 -20
- package/src/{templates → template/implementations}/view_enums_select.template.ts +4 -4
- package/src/{templates → template/implementations}/view_form.template.ts +40 -83
- package/src/{templates → template/implementations}/view_id_all_select.template.ts +3 -3
- package/src/{templates → template/implementations}/view_id_async_select.template.ts +10 -24
- package/src/{templates → template/implementations}/view_list.template.ts +60 -152
- package/src/{templates → template/implementations}/view_list_columns.template.ts +5 -11
- package/src/{templates → template/implementations}/view_search_input.template.ts +3 -3
- package/src/template/index.ts +6 -0
- package/src/template/template-manager.ts +166 -0
- package/src/template/template-types.ts +16 -0
- package/src/template/template.ts +105 -0
- package/src/template/zod-converter.ts +525 -0
- package/src/testing/_relation-graph.ts +18 -11
- package/src/testing/fixture-manager.ts +472 -359
- package/src/types/types.ts +553 -308
- package/src/typings/knex.d.ts +7 -9
- package/src/utils/async-utils.ts +23 -10
- package/src/utils/console-util.ts +4 -0
- package/src/utils/controller.ts +3 -0
- package/src/utils/esm-utils.ts +59 -0
- package/src/utils/formatter.ts +109 -0
- package/src/utils/fs-utils.ts +1 -1
- package/src/utils/lodash-able.ts +1 -4
- package/src/utils/object-utils.ts +217 -0
- package/src/utils/path-utils.ts +99 -0
- package/src/utils/process-utils.ts +46 -0
- package/src/utils/sql-parser.ts +23 -5
- package/src/utils/type-utils.ts +83 -0
- package/src/utils/utils.ts +66 -43
- package/src/utils/zod-error.ts +3 -4
- package/dist/api/base-frame.js.map +0 -1
- package/dist/api/caster.js.map +0 -1
- package/dist/api/code-converters.js.map +0 -1
- package/dist/api/context.js.map +0 -1
- package/dist/api/decorators.js.map +0 -1
- package/dist/api/index.js.map +0 -1
- package/dist/api/sonamu.js.map +0 -1
- package/dist/bin/build-config.js.map +0 -1
- package/dist/bin/cli-wrapper.d.ts +0 -3
- package/dist/bin/cli-wrapper.d.ts.map +0 -1
- package/dist/bin/cli-wrapper.js +0 -3
- package/dist/bin/cli-wrapper.js.map +0 -1
- package/dist/bin/cli.js.map +0 -1
- package/dist/database/_batch_update.js.map +0 -1
- package/dist/database/base-model.js.map +0 -1
- package/dist/database/code-generator.js.map +0 -1
- package/dist/database/db.js.map +0 -1
- package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts +0 -2
- package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts.map +0 -1
- package/dist/database/knex-plugins/knex-on-duplicate-update.js +0 -2
- package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +0 -1
- package/dist/database/puri-wrapper.js.map +0 -1
- package/dist/database/puri.js.map +0 -1
- package/dist/database/puri.types.js.map +0 -1
- package/dist/database/transaction-context.js.map +0 -1
- package/dist/database/upsert-builder.js.map +0 -1
- package/dist/entity/entity-manager.js.map +0 -1
- package/dist/entity/entity-utils.d.ts +0 -61
- package/dist/entity/entity-utils.d.ts.map +0 -1
- package/dist/entity/entity-utils.js +0 -2
- package/dist/entity/entity-utils.js.map +0 -1
- package/dist/entity/entity.js.map +0 -1
- package/dist/exceptions/error-handler.js.map +0 -1
- package/dist/exceptions/so-exceptions.js.map +0 -1
- package/dist/file-storage/driver.js.map +0 -1
- package/dist/file-storage/file-storage.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/migration/code-generation.js.map +0 -1
- package/dist/migration/migration-set.js.map +0 -1
- package/dist/migration/migrator.js.map +0 -1
- package/dist/migration/types.js.map +0 -1
- package/dist/stream/index.js.map +0 -1
- package/dist/stream/sse.js.map +0 -1
- package/dist/syncer/index.js.map +0 -1
- package/dist/syncer/syncer.js.map +0 -1
- package/dist/templates/base-template.d.ts +0 -13
- package/dist/templates/base-template.d.ts.map +0 -1
- package/dist/templates/base-template.js +0 -2
- package/dist/templates/base-template.js.map +0 -1
- package/dist/templates/entity.template.d.ts.map +0 -1
- package/dist/templates/entity.template.js +0 -2
- package/dist/templates/entity.template.js.map +0 -1
- package/dist/templates/generated.template.d.ts.map +0 -1
- package/dist/templates/generated.template.js +0 -2
- package/dist/templates/generated.template.js.map +0 -1
- package/dist/templates/generated_http.template.d.ts.map +0 -1
- package/dist/templates/generated_http.template.js +0 -2
- package/dist/templates/generated_http.template.js.map +0 -1
- package/dist/templates/generated_sso.template.d.ts.map +0 -1
- package/dist/templates/generated_sso.template.js +0 -2
- package/dist/templates/generated_sso.template.js.map +0 -1
- package/dist/templates/index.d.ts +0 -2
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/templates/index.js +0 -2
- package/dist/templates/index.js.map +0 -1
- package/dist/templates/init_types.template.d.ts.map +0 -1
- package/dist/templates/init_types.template.js +0 -2
- package/dist/templates/init_types.template.js.map +0 -1
- package/dist/templates/model.template.d.ts +0 -17
- package/dist/templates/model.template.d.ts.map +0 -1
- package/dist/templates/model.template.js +0 -2
- package/dist/templates/model.template.js.map +0 -1
- package/dist/templates/model_test.template.d.ts.map +0 -1
- package/dist/templates/model_test.template.js +0 -2
- package/dist/templates/model_test.template.js.map +0 -1
- package/dist/templates/service.template.d.ts.map +0 -1
- package/dist/templates/service.template.js +0 -2
- package/dist/templates/service.template.js.map +0 -1
- package/dist/templates/view_enums_buttonset.template.d.ts.map +0 -1
- package/dist/templates/view_enums_buttonset.template.js +0 -2
- package/dist/templates/view_enums_buttonset.template.js.map +0 -1
- package/dist/templates/view_enums_dropdown.template.d.ts.map +0 -1
- package/dist/templates/view_enums_dropdown.template.js +0 -2
- package/dist/templates/view_enums_dropdown.template.js.map +0 -1
- package/dist/templates/view_enums_select.template.d.ts.map +0 -1
- package/dist/templates/view_enums_select.template.js +0 -2
- package/dist/templates/view_enums_select.template.js.map +0 -1
- package/dist/templates/view_form.template.d.ts.map +0 -1
- package/dist/templates/view_form.template.js +0 -2
- package/dist/templates/view_form.template.js.map +0 -1
- package/dist/templates/view_id_all_select.template.d.ts.map +0 -1
- package/dist/templates/view_id_all_select.template.js +0 -2
- package/dist/templates/view_id_all_select.template.js.map +0 -1
- package/dist/templates/view_id_async_select.template.d.ts.map +0 -1
- package/dist/templates/view_id_async_select.template.js +0 -2
- package/dist/templates/view_id_async_select.template.js.map +0 -1
- package/dist/templates/view_list.template.d.ts.map +0 -1
- package/dist/templates/view_list.template.js +0 -2
- package/dist/templates/view_list.template.js.map +0 -1
- package/dist/templates/view_list_columns.template.d.ts +0 -17
- package/dist/templates/view_list_columns.template.d.ts.map +0 -1
- package/dist/templates/view_list_columns.template.js +0 -2
- package/dist/templates/view_list_columns.template.js.map +0 -1
- package/dist/templates/view_search_input.template.d.ts.map +0 -1
- package/dist/templates/view_search_input.template.js +0 -2
- package/dist/templates/view_search_input.template.js.map +0 -1
- package/dist/testing/_relation-graph.js.map +0 -1
- package/dist/testing/fixture-manager.js.map +0 -1
- package/dist/types/types.js.map +0 -1
- package/dist/typings/knex.d.js.map +0 -1
- package/dist/utils/async-utils.js.map +0 -1
- package/dist/utils/controller.js.map +0 -1
- package/dist/utils/fs-utils.js.map +0 -1
- package/dist/utils/lodash-able.js.map +0 -1
- package/dist/utils/model.js.map +0 -1
- package/dist/utils/sql-parser.js.map +0 -1
- package/dist/utils/utils.js.map +0 -1
- package/dist/utils/zod-error.js.map +0 -1
- package/src/bin/cli-wrapper.ts +0 -75
- package/src/database/knex-plugins/knex-on-duplicate-update.ts +0 -45
- package/src/entity/entity-utils.ts +0 -291
- package/src/templates/base-template.ts +0 -19
- package/src/templates/generated_sso.template.ts +0 -138
- package/src/templates/index.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/exceptions/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/exceptions/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,QA2BxD"}
|
|
@@ -1,2 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { isSoException } from "./so-exceptions.js";
|
|
2
|
+
export function setupErrorHandler(server) {
|
|
3
|
+
server.setErrorHandler((error, request, reply)=>{
|
|
4
|
+
error.statusCode ??= 400;
|
|
5
|
+
if (isSoException(error) && error.payload && Array.isArray(error.payload)) {
|
|
6
|
+
const issues = error.payload;
|
|
7
|
+
const [issue] = issues;
|
|
8
|
+
const message = `${issue.message} (${issue.path.join("/")})`;
|
|
9
|
+
request.log.error(`${error.statusCode} ${message}`);
|
|
10
|
+
reply.status(error.statusCode <= 501 ? error.statusCode : 501).send({
|
|
11
|
+
name: error.name,
|
|
12
|
+
code: error.code,
|
|
13
|
+
message: message,
|
|
14
|
+
validationErrors: error.validation,
|
|
15
|
+
issues
|
|
16
|
+
});
|
|
17
|
+
} else {
|
|
18
|
+
request.log.error(`${error.statusCode} ${error.message}`);
|
|
19
|
+
reply.status(error.statusCode <= 501 ? error.statusCode : 501).send({
|
|
20
|
+
name: error.name,
|
|
21
|
+
code: error.code,
|
|
22
|
+
message: error.message,
|
|
23
|
+
validationErrors: error.validation
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGNlcHRpb25zL2Vycm9yLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGYXN0aWZ5SW5zdGFuY2UgfSBmcm9tIFwiZmFzdGlmeVwiO1xuaW1wb3J0IHR5cGUgeiBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBpc1NvRXhjZXB0aW9uIH0gZnJvbSBcIi4vc28tZXhjZXB0aW9uc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBFcnJvckhhbmRsZXIoc2VydmVyOiBGYXN0aWZ5SW5zdGFuY2UpIHtcbiAgc2VydmVyLnNldEVycm9ySGFuZGxlcigoZXJyb3IsIHJlcXVlc3QsIHJlcGx5KSA9PiB7XG4gICAgZXJyb3Iuc3RhdHVzQ29kZSA/Pz0gNDAwO1xuXG4gICAgaWYgKGlzU29FeGNlcHRpb24oZXJyb3IpICYmIGVycm9yLnBheWxvYWQgJiYgQXJyYXkuaXNBcnJheShlcnJvci5wYXlsb2FkKSkge1xuICAgICAgY29uc3QgaXNzdWVzID0gZXJyb3IucGF5bG9hZCBhcyB6LmNvcmUuJFpvZElzc3VlW107XG4gICAgICBjb25zdCBbaXNzdWVdID0gaXNzdWVzO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGAke2lzc3VlLm1lc3NhZ2V9ICgke2lzc3VlLnBhdGguam9pbihcIi9cIil9KWA7XG5cbiAgICAgIHJlcXVlc3QubG9nLmVycm9yKGAke2Vycm9yLnN0YXR1c0NvZGV9ICR7bWVzc2FnZX1gKTtcbiAgICAgIHJlcGx5LnN0YXR1cyhlcnJvci5zdGF0dXNDb2RlIDw9IDUwMSA/IGVycm9yLnN0YXR1c0NvZGUgOiA1MDEpLnNlbmQoe1xuICAgICAgICBuYW1lOiBlcnJvci5uYW1lLFxuICAgICAgICBjb2RlOiBlcnJvci5jb2RlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICB2YWxpZGF0aW9uRXJyb3JzOiBlcnJvci52YWxpZGF0aW9uLFxuICAgICAgICBpc3N1ZXMsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdC5sb2cuZXJyb3IoYCR7ZXJyb3Iuc3RhdHVzQ29kZX0gJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgcmVwbHkuc3RhdHVzKGVycm9yLnN0YXR1c0NvZGUgPD0gNTAxID8gZXJyb3Iuc3RhdHVzQ29kZSA6IDUwMSkuc2VuZCh7XG4gICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgIGNvZGU6IGVycm9yLmNvZGUsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgIHZhbGlkYXRpb25FcnJvcnM6IGVycm9yLnZhbGlkYXRpb24sXG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImlzU29FeGNlcHRpb24iLCJzZXR1cEVycm9ySGFuZGxlciIsInNlcnZlciIsInNldEVycm9ySGFuZGxlciIsImVycm9yIiwicmVxdWVzdCIsInJlcGx5Iiwic3RhdHVzQ29kZSIsInBheWxvYWQiLCJBcnJheSIsImlzQXJyYXkiLCJpc3N1ZXMiLCJpc3N1ZSIsIm1lc3NhZ2UiLCJwYXRoIiwiam9pbiIsImxvZyIsInN0YXR1cyIsInNlbmQiLCJuYW1lIiwiY29kZSIsInZhbGlkYXRpb25FcnJvcnMiLCJ2YWxpZGF0aW9uIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxhQUFhLFFBQVEscUJBQWtCO0FBRWhELE9BQU8sU0FBU0Msa0JBQWtCQyxNQUF1QjtJQUN2REEsT0FBT0MsZUFBZSxDQUFDLENBQUNDLE9BQU9DLFNBQVNDO1FBQ3RDRixNQUFNRyxVQUFVLEtBQUs7UUFFckIsSUFBSVAsY0FBY0ksVUFBVUEsTUFBTUksT0FBTyxJQUFJQyxNQUFNQyxPQUFPLENBQUNOLE1BQU1JLE9BQU8sR0FBRztZQUN6RSxNQUFNRyxTQUFTUCxNQUFNSSxPQUFPO1lBQzVCLE1BQU0sQ0FBQ0ksTUFBTSxHQUFHRDtZQUNoQixNQUFNRSxVQUFVLEdBQUdELE1BQU1DLE9BQU8sQ0FBQyxFQUFFLEVBQUVELE1BQU1FLElBQUksQ0FBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTVEVixRQUFRVyxHQUFHLENBQUNaLEtBQUssQ0FBQyxHQUFHQSxNQUFNRyxVQUFVLENBQUMsQ0FBQyxFQUFFTSxTQUFTO1lBQ2xEUCxNQUFNVyxNQUFNLENBQUNiLE1BQU1HLFVBQVUsSUFBSSxNQUFNSCxNQUFNRyxVQUFVLEdBQUcsS0FBS1csSUFBSSxDQUFDO2dCQUNsRUMsTUFBTWYsTUFBTWUsSUFBSTtnQkFDaEJDLE1BQU1oQixNQUFNZ0IsSUFBSTtnQkFDaEJQLFNBQVNBO2dCQUNUUSxrQkFBa0JqQixNQUFNa0IsVUFBVTtnQkFDbENYO1lBQ0Y7UUFDRixPQUFPO1lBQ0xOLFFBQVFXLEdBQUcsQ0FBQ1osS0FBSyxDQUFDLEdBQUdBLE1BQU1HLFVBQVUsQ0FBQyxDQUFDLEVBQUVILE1BQU1TLE9BQU8sRUFBRTtZQUN4RFAsTUFBTVcsTUFBTSxDQUFDYixNQUFNRyxVQUFVLElBQUksTUFBTUgsTUFBTUcsVUFBVSxHQUFHLEtBQUtXLElBQUksQ0FBQztnQkFDbEVDLE1BQU1mLE1BQU1lLElBQUk7Z0JBQ2hCQyxNQUFNaEIsTUFBTWdCLElBQUk7Z0JBQ2hCUCxTQUFTVCxNQUFNUyxPQUFPO2dCQUN0QlEsa0JBQWtCakIsTUFBTWtCLFVBQVU7WUFDcEM7UUFDRjtJQUNGO0FBQ0YifQ==
|
|
@@ -4,7 +4,7 @@ export declare abstract class SoException extends Error {
|
|
|
4
4
|
payload?: unknown | undefined;
|
|
5
5
|
constructor(statusCode: number, message: string, payload?: unknown | undefined);
|
|
6
6
|
}
|
|
7
|
-
export declare function isSoException(err:
|
|
7
|
+
export declare function isSoException(err: unknown): err is SoException;
|
|
8
8
|
export declare class BadRequestException extends SoException {
|
|
9
9
|
message: string;
|
|
10
10
|
payload?: unknown | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"so-exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions/so-exceptions.ts"],"names":[],"mappings":"AAAA,8BAAsB,WAAY,SAAQ,KAAK;aAE3B,UAAU,EAAE,MAAM;IAC3B,OAAO,EAAE,MAAM;IACf,OAAO,CAAC,EAAE,OAAO;gBAFR,UAAU,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"so-exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions/so-exceptions.ts"],"names":[],"mappings":"AAAA,8BAAsB,WAAY,SAAQ,KAAK;aAE3B,UAAU,EAAE,MAAM;IAC3B,OAAO,EAAE,MAAM;IACf,OAAO,CAAC,EAAE,OAAO;gBAFR,UAAU,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAE9D;AAKD,qBAAa,mBAAoB,SAAQ,WAAW;IAEzC,OAAO;IACP,OAAO,CAAC,EAAE,OAAO;gBADjB,OAAO,SAAgB,EACvB,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAKD,qBAAa,qBAAsB,SAAQ,WAAW;IAE3C,OAAO;IACP,OAAO,CAAC,EAAE,OAAO;gBADjB,OAAO,SAAiB,EACxB,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAKD,qBAAa,iBAAkB,SAAQ,WAAW;IAEvC,OAAO;IACP,OAAO,CAAC,EAAE,OAAO;gBADjB,OAAO,SAAc,EACrB,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAKD,qBAAa,2BAA4B,SAAQ,WAAW;IAEjD,OAAO;IACP,OAAO,CAAC,EAAE,OAAO;gBADjB,OAAO,SAAwB,EAC/B,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAKD,qBAAa,4BAA6B,SAAQ,WAAW;IAElD,OAAO;IACP,OAAO,CAAC,EAAE,OAAO;gBADjB,OAAO,SAA0B,EACjC,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAKD,qBAAa,yBAA0B,SAAQ,WAAW;IAE/C,OAAO;IACP,OAAO,CAAC,EAAE,OAAO;gBADjB,OAAO,SAAsB,EAC7B,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAKD,qBAAa,qBAAsB,SAAQ,WAAW;IAE3C,OAAO;IACP,OAAO,CAAC,EAAE,OAAO;gBADjB,OAAO,SAAkB,EACzB,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B;AAKD,qBAAa,uBAAwB,SAAQ,WAAW;IAE7C,OAAO;IACP,OAAO,CAAC,EAAE,OAAO;gBADjB,OAAO,SAAqB,EAC5B,OAAO,CAAC,EAAE,OAAO,YAAA;CAI3B"}
|
|
@@ -1,2 +1,85 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export class SoException extends Error {
|
|
2
|
+
statusCode;
|
|
3
|
+
message;
|
|
4
|
+
payload;
|
|
5
|
+
constructor(statusCode, message, payload){
|
|
6
|
+
super(message), this.statusCode = statusCode, this.message = message, this.payload = payload;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function isSoException(err) {
|
|
10
|
+
return err.statusCode !== undefined;
|
|
11
|
+
}
|
|
12
|
+
/*
|
|
13
|
+
잘못된 매개변수 등 요청사항에 문제가 있는 경우
|
|
14
|
+
*/ export class BadRequestException extends SoException {
|
|
15
|
+
message;
|
|
16
|
+
payload;
|
|
17
|
+
constructor(message = "Bad Request", payload){
|
|
18
|
+
super(400, message, payload), this.message = message, this.payload = payload;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/*
|
|
22
|
+
로그인이 반드시 필요한 케이스에 로그아웃 상태인 경우 / 접근 권한이 없는 요청시
|
|
23
|
+
*/ export class UnauthorizedException extends SoException {
|
|
24
|
+
message;
|
|
25
|
+
payload;
|
|
26
|
+
constructor(message = "Unauthorized", payload){
|
|
27
|
+
super(401, message, payload), this.message = message, this.payload = payload;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/*
|
|
31
|
+
존재하지 않는 레코드에 접근시
|
|
32
|
+
*/ export class NotFoundException extends SoException {
|
|
33
|
+
message;
|
|
34
|
+
payload;
|
|
35
|
+
constructor(message = "Not Found", payload){
|
|
36
|
+
super(404, message, payload), this.message = message, this.payload = payload;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/*
|
|
40
|
+
현재 상태에서 처리가 불가능한 케이스
|
|
41
|
+
*/ export class ServiceUnavailableException extends SoException {
|
|
42
|
+
message;
|
|
43
|
+
payload;
|
|
44
|
+
constructor(message = "Service Unavailable", payload){
|
|
45
|
+
super(503, message, payload), this.message = message, this.payload = payload;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/*
|
|
49
|
+
내부 처리 로직 (외부 API 콜 포함) 오류 발생시
|
|
50
|
+
*/ export class InternalServerErrorException extends SoException {
|
|
51
|
+
message;
|
|
52
|
+
payload;
|
|
53
|
+
constructor(message = "Internal Server Error", payload){
|
|
54
|
+
super(500, message, payload), this.message = message, this.payload = payload;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/*
|
|
58
|
+
이미 처리함
|
|
59
|
+
*/ export class AlreadyProcessedException extends SoException {
|
|
60
|
+
message;
|
|
61
|
+
payload;
|
|
62
|
+
constructor(message = "Already Processed", payload){
|
|
63
|
+
super(541, message, payload), this.message = message, this.payload = payload;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/*
|
|
67
|
+
중복 허용하지 않는 케이스에 중복 요청
|
|
68
|
+
*/ export class DuplicateRowException extends SoException {
|
|
69
|
+
message;
|
|
70
|
+
payload;
|
|
71
|
+
constructor(message = "Duplicate Row", payload){
|
|
72
|
+
super(542, message, payload), this.message = message, this.payload = payload;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/*
|
|
76
|
+
뭔가를 하려고 했으나 대상이 없음
|
|
77
|
+
*/ export class TargetNotFoundException extends SoException {
|
|
78
|
+
message;
|
|
79
|
+
payload;
|
|
80
|
+
constructor(message = "Target Not Found", payload){
|
|
81
|
+
super(520, message, payload), this.message = message, this.payload = payload;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGNlcHRpb25zL3NvLWV4Y2VwdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNvRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZTogbnVtYmVyLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTb0V4Y2VwdGlvbihlcnI6IHVua25vd24pOiBlcnIgaXMgU29FeGNlcHRpb24ge1xuICByZXR1cm4gKGVyciBhcyBTb0V4Y2VwdGlvbikuc3RhdHVzQ29kZSAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKlxuXHTsnpjrqrvrkJwg66ek6rCc67OA7IiYIOuTsSDsmpTssq3sgqztla3sl5Ag66y47KCc6rCAIOyeiOuKlCDqsr3smrBcbiovXG5leHBvcnQgY2xhc3MgQmFkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIFNvRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1lc3NhZ2UgPSBcIkJhZCBSZXF1ZXN0XCIsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duLFxuICApIHtcbiAgICBzdXBlcig0MDAsIG1lc3NhZ2UsIHBheWxvYWQpO1xuICB9XG59XG5cbi8qXG5cdOuhnOq3uOyduOydtCDrsJjrk5zsi5wg7ZWE7JqU7ZWcIOy8gOydtOyKpOyXkCDroZzqt7jslYTsm4Mg7IOB7YOc7J24IOqyveyasCAvIOygkeq3vCDqtoztlZzsnbQg7JeG64qUIOyalOyyreyLnFxuKi9cbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRFeGNlcHRpb24gZXh0ZW5kcyBTb0V4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtZXNzYWdlID0gXCJVbmF1dGhvcml6ZWRcIixcbiAgICBwdWJsaWMgcGF5bG9hZD86IHVua25vd24sXG4gICkge1xuICAgIHN1cGVyKDQwMSwgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cbn1cblxuLypcblx07KG07J6s7ZWY7KeAIOyViuuKlCDroIjsvZTrk5zsl5Ag7KCR6re87IucXG4qL1xuZXhwb3J0IGNsYXNzIE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiTm90IEZvdW5kXCIsXG4gICAgcHVibGljIHBheWxvYWQ/OiB1bmtub3duLFxuICApIHtcbiAgICBzdXBlcig0MDQsIG1lc3NhZ2UsIHBheWxvYWQpO1xuICB9XG59XG5cbi8qXG5cdO2YhOyerCDsg4Htg5zsl5DshJwg7LKY66as6rCAIOu2iOqwgOuKpe2VnCDsvIDsnbTsiqRcbiovXG5leHBvcnQgY2xhc3MgU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiU2VydmljZSBVbmF2YWlsYWJsZVwiLFxuICAgIHB1YmxpYyBwYXlsb2FkPzogdW5rbm93bixcbiAgKSB7XG4gICAgc3VwZXIoNTAzLCBtZXNzYWdlLCBwYXlsb2FkKTtcbiAgfVxufVxuXG4vKlxuXHTrgrTrtoAg7LKY66asIOuhnOyngSAo7Jm467aAIEFQSSDsvZwg7Y+s7ZWoKSDsmKTrpZgg67Cc7IOd7IucXG4qL1xuZXhwb3J0IGNsYXNzIEludGVybmFsU2VydmVyRXJyb3JFeGNlcHRpb24gZXh0ZW5kcyBTb0V4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtZXNzYWdlID0gXCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIixcbiAgICBwdWJsaWMgcGF5bG9hZD86IHVua25vd24sXG4gICkge1xuICAgIHN1cGVyKDUwMCwgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cbn1cblxuLypcblx07J2066+4IOyymOumrO2VqFxuKi9cbmV4cG9ydCBjbGFzcyBBbHJlYWR5UHJvY2Vzc2VkRXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiQWxyZWFkeSBQcm9jZXNzZWRcIixcbiAgICBwdWJsaWMgcGF5bG9hZD86IHVua25vd24sXG4gICkge1xuICAgIHN1cGVyKDU0MSwgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cbn1cblxuLypcblx07KSR67O1IO2XiOyaqe2VmOyngCDslYrripQg7LyA7J207Iqk7JeQIOykkeuztSDsmpTssq1cbiovXG5leHBvcnQgY2xhc3MgRHVwbGljYXRlUm93RXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiRHVwbGljYXRlIFJvd1wiLFxuICAgIHB1YmxpYyBwYXlsb2FkPzogdW5rbm93bixcbiAgKSB7XG4gICAgc3VwZXIoNTQyLCBtZXNzYWdlLCBwYXlsb2FkKTtcbiAgfVxufVxuXG4vKlxuXHTrrZTqsIDrpbwg7ZWY66Ck6rOgIO2WiOycvOuCmCDrjIDsg4HsnbQg7JeG7J2MXG4qL1xuZXhwb3J0IGNsYXNzIFRhcmdldE5vdEZvdW5kRXhjZXB0aW9uIGV4dGVuZHMgU29FeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVzc2FnZSA9IFwiVGFyZ2V0IE5vdCBGb3VuZFwiLFxuICAgIHB1YmxpYyBwYXlsb2FkPzogdW5rbm93bixcbiAgKSB7XG4gICAgc3VwZXIoNTIwLCBtZXNzYWdlLCBwYXlsb2FkKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNvRXhjZXB0aW9uIiwiRXJyb3IiLCJzdGF0dXNDb2RlIiwibWVzc2FnZSIsInBheWxvYWQiLCJpc1NvRXhjZXB0aW9uIiwiZXJyIiwidW5kZWZpbmVkIiwiQmFkUmVxdWVzdEV4Y2VwdGlvbiIsIlVuYXV0aG9yaXplZEV4Y2VwdGlvbiIsIk5vdEZvdW5kRXhjZXB0aW9uIiwiU2VydmljZVVuYXZhaWxhYmxlRXhjZXB0aW9uIiwiSW50ZXJuYWxTZXJ2ZXJFcnJvckV4Y2VwdGlvbiIsIkFscmVhZHlQcm9jZXNzZWRFeGNlcHRpb24iLCJEdXBsaWNhdGVSb3dFeGNlcHRpb24iLCJUYXJnZXROb3RGb3VuZEV4Y2VwdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFlQSxvQkFBb0JDOzs7O0lBQ3hDLFlBQ0UsQUFBZ0JDLFVBQWtCLEVBQ2xDLEFBQU9DLE9BQWUsRUFDdEIsQUFBT0MsT0FBaUIsQ0FDeEI7UUFDQSxLQUFLLENBQUNELGVBSlVELGFBQUFBLGlCQUNUQyxVQUFBQSxjQUNBQyxVQUFBQTtJQUdUO0FBQ0Y7QUFFQSxPQUFPLFNBQVNDLGNBQWNDLEdBQVk7SUFDeEMsT0FBTyxBQUFDQSxJQUFvQkosVUFBVSxLQUFLSztBQUM3QztBQUVBOztBQUVBLEdBQ0EsT0FBTyxNQUFNQyw0QkFBNEJSOzs7SUFDdkMsWUFDRSxBQUFPRyxVQUFVLGFBQWEsRUFDOUIsQUFBT0MsT0FBaUIsQ0FDeEI7UUFDQSxLQUFLLENBQUMsS0FBS0QsU0FBU0MsZUFIYkQsVUFBQUEsY0FDQUMsVUFBQUE7SUFHVDtBQUNGO0FBRUE7O0FBRUEsR0FDQSxPQUFPLE1BQU1LLDhCQUE4QlQ7OztJQUN6QyxZQUNFLEFBQU9HLFVBQVUsY0FBYyxFQUMvQixBQUFPQyxPQUFpQixDQUN4QjtRQUNBLEtBQUssQ0FBQyxLQUFLRCxTQUFTQyxlQUhiRCxVQUFBQSxjQUNBQyxVQUFBQTtJQUdUO0FBQ0Y7QUFFQTs7QUFFQSxHQUNBLE9BQU8sTUFBTU0sMEJBQTBCVjs7O0lBQ3JDLFlBQ0UsQUFBT0csVUFBVSxXQUFXLEVBQzVCLEFBQU9DLE9BQWlCLENBQ3hCO1FBQ0EsS0FBSyxDQUFDLEtBQUtELFNBQVNDLGVBSGJELFVBQUFBLGNBQ0FDLFVBQUFBO0lBR1Q7QUFDRjtBQUVBOztBQUVBLEdBQ0EsT0FBTyxNQUFNTyxvQ0FBb0NYOzs7SUFDL0MsWUFDRSxBQUFPRyxVQUFVLHFCQUFxQixFQUN0QyxBQUFPQyxPQUFpQixDQUN4QjtRQUNBLEtBQUssQ0FBQyxLQUFLRCxTQUFTQyxlQUhiRCxVQUFBQSxjQUNBQyxVQUFBQTtJQUdUO0FBQ0Y7QUFFQTs7QUFFQSxHQUNBLE9BQU8sTUFBTVEscUNBQXFDWjs7O0lBQ2hELFlBQ0UsQUFBT0csVUFBVSx1QkFBdUIsRUFDeEMsQUFBT0MsT0FBaUIsQ0FDeEI7UUFDQSxLQUFLLENBQUMsS0FBS0QsU0FBU0MsZUFIYkQsVUFBQUEsY0FDQUMsVUFBQUE7SUFHVDtBQUNGO0FBRUE7O0FBRUEsR0FDQSxPQUFPLE1BQU1TLGtDQUFrQ2I7OztJQUM3QyxZQUNFLEFBQU9HLFVBQVUsbUJBQW1CLEVBQ3BDLEFBQU9DLE9BQWlCLENBQ3hCO1FBQ0EsS0FBSyxDQUFDLEtBQUtELFNBQVNDLGVBSGJELFVBQUFBLGNBQ0FDLFVBQUFBO0lBR1Q7QUFDRjtBQUVBOztBQUVBLEdBQ0EsT0FBTyxNQUFNVSw4QkFBOEJkOzs7SUFDekMsWUFDRSxBQUFPRyxVQUFVLGVBQWUsRUFDaEMsQUFBT0MsT0FBaUIsQ0FDeEI7UUFDQSxLQUFLLENBQUMsS0FBS0QsU0FBU0MsZUFIYkQsVUFBQUEsY0FDQUMsVUFBQUE7SUFHVDtBQUNGO0FBRUE7O0FBRUEsR0FDQSxPQUFPLE1BQU1XLGdDQUFnQ2Y7OztJQUMzQyxZQUNFLEFBQU9HLFVBQVUsa0JBQWtCLEVBQ25DLEFBQU9DLE9BQWlCLENBQ3hCO1FBQ0EsS0FBSyxDQUFDLEtBQUtELFNBQVNDLGVBSGJELFVBQUFBLGNBQ0FDLFVBQUFBO0lBR1Q7QUFDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/file-storage/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,QAAQ,EACR,cAAc,
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/file-storage/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,QAAQ,EACR,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAK5B;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,GAAG,CACD,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAE,GACpE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,qBAAa,QAAS,YAAW,MAAM;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,GAAG,CAAC,GAAG,EAAE,MAAM;IAIrB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKrB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrE,OAAO;CAGR;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,QAAS,YAAW,MAAM;IAGzB,OAAO,CAAC,MAAM;IAF1B,EAAE,EAAE,QAAQ,CAAC;gBAEO,MAAM,EAAE,cAAc;IAIpC,GAAG,CACP,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAE,GACpE,OAAO,CAAC,IAAI,CAAC;IAYV,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIrB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE,OAAO,CAAC,MAAM;IAQd,OAAO;CAGR"}
|
|
@@ -1,2 +1,79 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { DeleteObjectCommand, GetObjectCommand, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
|
|
2
|
+
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
import path from "path";
|
|
5
|
+
/**
|
|
6
|
+
* 로컬 파일시스템
|
|
7
|
+
*/ export class FSDriver {
|
|
8
|
+
config;
|
|
9
|
+
constructor(config){
|
|
10
|
+
this.config = config;
|
|
11
|
+
}
|
|
12
|
+
async put(key, contents) {
|
|
13
|
+
const filePath = path.join(this.config.location, key);
|
|
14
|
+
const dir = path.dirname(filePath);
|
|
15
|
+
await fs.mkdir(dir, {
|
|
16
|
+
recursive: true
|
|
17
|
+
});
|
|
18
|
+
await fs.writeFile(filePath, contents);
|
|
19
|
+
}
|
|
20
|
+
async del(key) {
|
|
21
|
+
await fs.rm(path.join(this.config.location, key));
|
|
22
|
+
}
|
|
23
|
+
getUrl(key) {
|
|
24
|
+
return `${this.config.urlPrefix}/${key}`;
|
|
25
|
+
}
|
|
26
|
+
// 로컬 파일시스템은 signed URL을 지원하지 않으므로 일반 URL 반환
|
|
27
|
+
async getSignedUrl(key, _expiresIn) {
|
|
28
|
+
return this.getUrl(key);
|
|
29
|
+
}
|
|
30
|
+
destroy() {
|
|
31
|
+
// 아무것도 하지 않음
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class S3Driver {
|
|
35
|
+
config;
|
|
36
|
+
s3;
|
|
37
|
+
constructor(config){
|
|
38
|
+
this.config = config;
|
|
39
|
+
this.s3 = new S3Client(config);
|
|
40
|
+
}
|
|
41
|
+
async put(key, contents, options) {
|
|
42
|
+
await this.s3.send(new PutObjectCommand({
|
|
43
|
+
Bucket: this.config.bucket,
|
|
44
|
+
Key: key,
|
|
45
|
+
Body: contents,
|
|
46
|
+
ContentType: options?.contentType,
|
|
47
|
+
ACL: this.getAcl(options?.visibility)
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
async del(key) {
|
|
51
|
+
await this.s3.send(new DeleteObjectCommand({
|
|
52
|
+
Bucket: this.config.bucket,
|
|
53
|
+
Key: key
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
getUrl(key) {
|
|
57
|
+
return `https://${this.config.bucket}.s3.${this.config.region}.amazonaws.com/${key}`;
|
|
58
|
+
}
|
|
59
|
+
async getSignedUrl(key, expiresIn) {
|
|
60
|
+
const command = new GetObjectCommand({
|
|
61
|
+
Bucket: this.config.bucket,
|
|
62
|
+
Key: key
|
|
63
|
+
});
|
|
64
|
+
return getSignedUrl(this.s3, command, {
|
|
65
|
+
expiresIn: expiresIn ?? 60 * 60 * 24 * 7
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
getAcl(visibility) {
|
|
69
|
+
if (visibility === "public") {
|
|
70
|
+
return "public-read";
|
|
71
|
+
}
|
|
72
|
+
return visibility;
|
|
73
|
+
}
|
|
74
|
+
destroy() {
|
|
75
|
+
this.s3.destroy();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JhZ2UvZHJpdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlbGV0ZU9iamVjdENvbW1hbmQsXG4gIEdldE9iamVjdENvbW1hbmQsXG4gIFB1dE9iamVjdENvbW1hbmQsXG4gIFMzQ2xpZW50LFxuICB0eXBlIFMzQ2xpZW50Q29uZmlnLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXMzXCI7XG5pbXBvcnQgeyBnZXRTaWduZWRVcmwgfSBmcm9tIFwiQGF3cy1zZGsvczMtcmVxdWVzdC1wcmVzaWduZXJcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbi8qKlxuICog7YyM7J28IOyggOyepeyGjOydmCDqs7XthrUg7J247YSw7Y6Y7J207IqkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHJpdmVyIHtcbiAgcHV0KFxuICAgIGtleTogc3RyaW5nLFxuICAgIGNvbnRlbnRzOiBCdWZmZXIsXG4gICAgb3B0aW9ucz86IHsgY29udGVudFR5cGU/OiBzdHJpbmc7IHZpc2liaWxpdHk/OiBcInB1YmxpY1wiIHwgXCJwcml2YXRlXCIgfSxcbiAgKTogUHJvbWlzZTx2b2lkPjtcblxuICBkZWwoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGdldFVybChrZXk6IHN0cmluZyk6IHN0cmluZztcblxuICBnZXRTaWduZWRVcmwoa2V5OiBzdHJpbmcsIGV4cGlyZXNJbj86IG51bWJlcik6IFByb21pc2U8c3RyaW5nPjtcblxuICBkZXN0cm95KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIEZTRHJpdmVyQ29uZmlnID0ge1xuICBsb2NhdGlvbjogc3RyaW5nO1xuICB1cmxQcmVmaXg6IHN0cmluZztcbn07XG5cbi8qKlxuICog66Gc7LusIO2MjOydvOyLnOyKpO2FnFxuICovXG5leHBvcnQgY2xhc3MgRlNEcml2ZXIgaW1wbGVtZW50cyBEcml2ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogRlNEcml2ZXJDb25maWcpIHt9XG5cbiAgYXN5bmMgcHV0KGtleTogc3RyaW5nLCBjb250ZW50czogQnVmZmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5jb25maWcubG9jYXRpb24sIGtleSk7XG4gICAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKTtcblxuICAgIGF3YWl0IGZzLm1rZGlyKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnRzKTtcbiAgfVxuXG4gIGFzeW5jIGRlbChrZXk6IHN0cmluZykge1xuICAgIGF3YWl0IGZzLnJtKHBhdGguam9pbih0aGlzLmNvbmZpZy5sb2NhdGlvbiwga2V5KSk7XG4gIH1cblxuICBnZXRVcmwoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy51cmxQcmVmaXh9LyR7a2V5fWA7XG4gIH1cblxuICAvLyDroZzsu6wg7YyM7J287Iuc7Iqk7YWc7J2AIHNpZ25lZCBVUkzsnYQg7KeA7JuQ7ZWY7KeAIOyViuycvOuvgOuhnCDsnbzrsJggVVJMIOuwmO2ZmFxuICBhc3luYyBnZXRTaWduZWRVcmwoa2V5OiBzdHJpbmcsIF9leHBpcmVzSW4/OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmdldFVybChrZXkpO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICAvLyDslYTrrLTqsoPrj4Qg7ZWY7KeAIOyViuydjFxuICB9XG59XG5cbmV4cG9ydCB0eXBlIFMzRHJpdmVyQ29uZmlnID0gUzNDbGllbnRDb25maWcgJiB7XG4gIGJ1Y2tldDogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNsYXNzIFMzRHJpdmVyIGltcGxlbWVudHMgRHJpdmVyIHtcbiAgczM6IFMzQ2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBTM0RyaXZlckNvbmZpZykge1xuICAgIHRoaXMuczMgPSBuZXcgUzNDbGllbnQoY29uZmlnKTtcbiAgfVxuXG4gIGFzeW5jIHB1dChcbiAgICBrZXk6IHN0cmluZyxcbiAgICBjb250ZW50czogQnVmZmVyLFxuICAgIG9wdGlvbnM/OiB7IGNvbnRlbnRUeXBlPzogc3RyaW5nOyB2aXNpYmlsaXR5PzogXCJwdWJsaWNcIiB8IFwicHJpdmF0ZVwiIH0sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuczMuc2VuZChcbiAgICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgQnVja2V0OiB0aGlzLmNvbmZpZy5idWNrZXQsXG4gICAgICAgIEtleToga2V5LFxuICAgICAgICBCb2R5OiBjb250ZW50cyxcbiAgICAgICAgQ29udGVudFR5cGU6IG9wdGlvbnM/LmNvbnRlbnRUeXBlLFxuICAgICAgICBBQ0w6IHRoaXMuZ2V0QWNsKG9wdGlvbnM/LnZpc2liaWxpdHkpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbChrZXk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuczMuc2VuZChcbiAgICAgIG5ldyBEZWxldGVPYmplY3RDb21tYW5kKHtcbiAgICAgICAgQnVja2V0OiB0aGlzLmNvbmZpZy5idWNrZXQsXG4gICAgICAgIEtleToga2V5LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGdldFVybChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBodHRwczovLyR7dGhpcy5jb25maWcuYnVja2V0fS5zMy4ke3RoaXMuY29uZmlnLnJlZ2lvbn0uYW1hem9uYXdzLmNvbS8ke2tleX1gO1xuICB9XG5cbiAgYXN5bmMgZ2V0U2lnbmVkVXJsKGtleTogc3RyaW5nLCBleHBpcmVzSW4/OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgR2V0T2JqZWN0Q29tbWFuZCh7XG4gICAgICBCdWNrZXQ6IHRoaXMuY29uZmlnLmJ1Y2tldCxcbiAgICAgIEtleToga2V5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdldFNpZ25lZFVybCh0aGlzLnMzLCBjb21tYW5kLCB7XG4gICAgICBleHBpcmVzSW46IGV4cGlyZXNJbiA/PyA2MCAqIDYwICogMjQgKiA3LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY2wodmlzaWJpbGl0eT86IFwicHVibGljXCIgfCBcInByaXZhdGVcIikge1xuICAgIGlmICh2aXNpYmlsaXR5ID09PSBcInB1YmxpY1wiKSB7XG4gICAgICByZXR1cm4gXCJwdWJsaWMtcmVhZFwiO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpYmlsaXR5O1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnMzLmRlc3Ryb3koKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRlbGV0ZU9iamVjdENvbW1hbmQiLCJHZXRPYmplY3RDb21tYW5kIiwiUHV0T2JqZWN0Q29tbWFuZCIsIlMzQ2xpZW50IiwiZ2V0U2lnbmVkVXJsIiwiZnMiLCJwYXRoIiwiRlNEcml2ZXIiLCJjb25maWciLCJwdXQiLCJrZXkiLCJjb250ZW50cyIsImZpbGVQYXRoIiwiam9pbiIsImxvY2F0aW9uIiwiZGlyIiwiZGlybmFtZSIsIm1rZGlyIiwicmVjdXJzaXZlIiwid3JpdGVGaWxlIiwiZGVsIiwicm0iLCJnZXRVcmwiLCJ1cmxQcmVmaXgiLCJfZXhwaXJlc0luIiwiZGVzdHJveSIsIlMzRHJpdmVyIiwiczMiLCJvcHRpb25zIiwic2VuZCIsIkJ1Y2tldCIsImJ1Y2tldCIsIktleSIsIkJvZHkiLCJDb250ZW50VHlwZSIsImNvbnRlbnRUeXBlIiwiQUNMIiwiZ2V0QWNsIiwidmlzaWJpbGl0eSIsInJlZ2lvbiIsImV4cGlyZXNJbiIsImNvbW1hbmQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLG1CQUFtQixFQUNuQkMsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsRUFDaEJDLFFBQVEsUUFFSCxxQkFBcUI7QUFDNUIsU0FBU0MsWUFBWSxRQUFRLGdDQUFnQztBQUM3RCxPQUFPQyxRQUFRLG1CQUFjO0FBQzdCLE9BQU9DLFVBQVUsT0FBTztBQTBCeEI7O0NBRUMsR0FDRCxPQUFPLE1BQU1DOztJQUNYLFlBQVksQUFBUUMsTUFBc0IsQ0FBRTthQUF4QkEsU0FBQUE7SUFBeUI7SUFFN0MsTUFBTUMsSUFBSUMsR0FBVyxFQUFFQyxRQUFnQixFQUFpQjtRQUN0RCxNQUFNQyxXQUFXTixLQUFLTyxJQUFJLENBQUMsSUFBSSxDQUFDTCxNQUFNLENBQUNNLFFBQVEsRUFBRUo7UUFDakQsTUFBTUssTUFBTVQsS0FBS1UsT0FBTyxDQUFDSjtRQUV6QixNQUFNUCxHQUFHWSxLQUFLLENBQUNGLEtBQUs7WUFBRUcsV0FBVztRQUFLO1FBRXRDLE1BQU1iLEdBQUdjLFNBQVMsQ0FBQ1AsVUFBVUQ7SUFDL0I7SUFFQSxNQUFNUyxJQUFJVixHQUFXLEVBQUU7UUFDckIsTUFBTUwsR0FBR2dCLEVBQUUsQ0FBQ2YsS0FBS08sSUFBSSxDQUFDLElBQUksQ0FBQ0wsTUFBTSxDQUFDTSxRQUFRLEVBQUVKO0lBQzlDO0lBRUFZLE9BQU9aLEdBQVcsRUFBVTtRQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDRixNQUFNLENBQUNlLFNBQVMsQ0FBQyxDQUFDLEVBQUViLEtBQUs7SUFDMUM7SUFFQSw0Q0FBNEM7SUFDNUMsTUFBTU4sYUFBYU0sR0FBVyxFQUFFYyxVQUFtQixFQUFtQjtRQUNwRSxPQUFPLElBQUksQ0FBQ0YsTUFBTSxDQUFDWjtJQUNyQjtJQUVBZSxVQUFVO0lBQ1IsYUFBYTtJQUNmO0FBQ0Y7QUFNQSxPQUFPLE1BQU1DOztJQUNYQyxHQUFhO0lBRWIsWUFBWSxBQUFRbkIsTUFBc0IsQ0FBRTthQUF4QkEsU0FBQUE7UUFDbEIsSUFBSSxDQUFDbUIsRUFBRSxHQUFHLElBQUl4QixTQUFTSztJQUN6QjtJQUVBLE1BQU1DLElBQ0pDLEdBQVcsRUFDWEMsUUFBZ0IsRUFDaEJpQixPQUFxRSxFQUN0RDtRQUNmLE1BQU0sSUFBSSxDQUFDRCxFQUFFLENBQUNFLElBQUksQ0FDaEIsSUFBSTNCLGlCQUFpQjtZQUNuQjRCLFFBQVEsSUFBSSxDQUFDdEIsTUFBTSxDQUFDdUIsTUFBTTtZQUMxQkMsS0FBS3RCO1lBQ0x1QixNQUFNdEI7WUFDTnVCLGFBQWFOLFNBQVNPO1lBQ3RCQyxLQUFLLElBQUksQ0FBQ0MsTUFBTSxDQUFDVCxTQUFTVTtRQUM1QjtJQUVKO0lBRUEsTUFBTWxCLElBQUlWLEdBQVcsRUFBaUI7UUFDcEMsTUFBTSxJQUFJLENBQUNpQixFQUFFLENBQUNFLElBQUksQ0FDaEIsSUFBSTdCLG9CQUFvQjtZQUN0QjhCLFFBQVEsSUFBSSxDQUFDdEIsTUFBTSxDQUFDdUIsTUFBTTtZQUMxQkMsS0FBS3RCO1FBQ1A7SUFFSjtJQUVBWSxPQUFPWixHQUFXLEVBQVU7UUFDMUIsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUNGLE1BQU0sQ0FBQ3VCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDdkIsTUFBTSxDQUFDK0IsTUFBTSxDQUFDLGVBQWUsRUFBRTdCLEtBQUs7SUFDdEY7SUFFQSxNQUFNTixhQUFhTSxHQUFXLEVBQUU4QixTQUFrQixFQUFtQjtRQUNuRSxNQUFNQyxVQUFVLElBQUl4QyxpQkFBaUI7WUFDbkM2QixRQUFRLElBQUksQ0FBQ3RCLE1BQU0sQ0FBQ3VCLE1BQU07WUFDMUJDLEtBQUt0QjtRQUNQO1FBRUEsT0FBT04sYUFBYSxJQUFJLENBQUN1QixFQUFFLEVBQUVjLFNBQVM7WUFDcENELFdBQVdBLGFBQWEsS0FBSyxLQUFLLEtBQUs7UUFDekM7SUFDRjtJQUVRSCxPQUFPQyxVQUFpQyxFQUFFO1FBQ2hELElBQUlBLGVBQWUsVUFBVTtZQUMzQixPQUFPO1FBQ1Q7UUFFQSxPQUFPQTtJQUNUO0lBRUFiLFVBQVU7UUFDUixJQUFJLENBQUNFLEVBQUUsQ0FBQ0YsT0FBTztJQUNqQjtBQUNGIn0=
|
|
@@ -1,2 +1,75 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { createHash } from "crypto";
|
|
2
|
+
import mime from "mime-types";
|
|
3
|
+
/**
|
|
4
|
+
* @fastify/multipart의 MultipartFile 래퍼
|
|
5
|
+
*/ export class FileStorage {
|
|
6
|
+
_file;
|
|
7
|
+
_buffer;
|
|
8
|
+
_driver;
|
|
9
|
+
constructor(file, driver){
|
|
10
|
+
this._file = file;
|
|
11
|
+
this._driver = driver;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 사용자 컴퓨터의 원본 파일명
|
|
15
|
+
*/ get clientName() {
|
|
16
|
+
return this._file.filename;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 파일명 (clientName의 별칭)
|
|
20
|
+
*/ get filename() {
|
|
21
|
+
return this._file.filename;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* HTML input 필드명
|
|
25
|
+
*/ get fieldName() {
|
|
26
|
+
return this._file.fieldname;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 파일 크기 (바이트)
|
|
30
|
+
*/ get size() {
|
|
31
|
+
return this._file.file.bytesRead;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 파일 확장자 (점 제외)
|
|
35
|
+
*/ get extname() {
|
|
36
|
+
return mime.extension(this._file.mimetype);
|
|
37
|
+
}
|
|
38
|
+
get mimetype() {
|
|
39
|
+
return this._file.mimetype;
|
|
40
|
+
}
|
|
41
|
+
get encoding() {
|
|
42
|
+
return this._file.encoding;
|
|
43
|
+
}
|
|
44
|
+
async toBuffer() {
|
|
45
|
+
if (!this._buffer) {
|
|
46
|
+
this._buffer = await this._file.toBuffer();
|
|
47
|
+
}
|
|
48
|
+
return this._buffer;
|
|
49
|
+
}
|
|
50
|
+
async md5() {
|
|
51
|
+
const buffer = await this.toBuffer();
|
|
52
|
+
return createHash("md5").update(buffer).digest("hex");
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 파일을 저장소에 저장
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const { file } = Sonamu.getUploadContext();
|
|
60
|
+
* const url = await file.saveToDisk('uploads/avatar.png');
|
|
61
|
+
* ```
|
|
62
|
+
*/ async saveToDisk(key, options) {
|
|
63
|
+
const buffer = await this.toBuffer();
|
|
64
|
+
await this._driver.put(key, buffer, {
|
|
65
|
+
contentType: options?.contentType ?? this.mimetype,
|
|
66
|
+
visibility: options?.visibility
|
|
67
|
+
});
|
|
68
|
+
return this._driver.getSignedUrl(key);
|
|
69
|
+
}
|
|
70
|
+
get raw() {
|
|
71
|
+
return this._file;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlLXN0b3JhZ2UvZmlsZS1zdG9yYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTXVsdGlwYXJ0RmlsZSB9IGZyb20gXCJAZmFzdGlmeS9tdWx0aXBhcnRcIjtcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgbWltZSBmcm9tIFwibWltZS10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBEcml2ZXIgfSBmcm9tIFwiLi9kcml2ZXJcIjtcblxuLyoqXG4gKiBAZmFzdGlmeS9tdWx0aXBhcnTsnZggTXVsdGlwYXJ0RmlsZSDrnpjtjbxcbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVTdG9yYWdlIHtcbiAgcHJpdmF0ZSBfZmlsZTogTXVsdGlwYXJ0RmlsZTtcbiAgcHJpdmF0ZSBfYnVmZmVyPzogQnVmZmVyO1xuICBwcml2YXRlIF9kcml2ZXI6IERyaXZlcjtcblxuICBjb25zdHJ1Y3RvcihmaWxlOiBNdWx0aXBhcnRGaWxlLCBkcml2ZXI6IERyaXZlcikge1xuICAgIHRoaXMuX2ZpbGUgPSBmaWxlO1xuICAgIHRoaXMuX2RyaXZlciA9IGRyaXZlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiDsgqzsmqnsnpAg7Lu07ZOo7YSw7J2YIOybkOuzuCDtjIzsnbzrqoVcbiAgICovXG4gIGdldCBjbGllbnROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGUuZmlsZW5hbWU7XG4gIH1cblxuICAvKipcbiAgICog7YyM7J2866qFIChjbGllbnROYW1l7J2YIOuzhOy5rSlcbiAgICovXG4gIGdldCBmaWxlbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9maWxlLmZpbGVuYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEhUTUwgaW5wdXQg7ZWE65Oc66qFXG4gICAqL1xuICBnZXQgZmllbGROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGUuZmllbGRuYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIO2MjOydvCDtgazquLAgKOuwlOydtO2KuClcbiAgICovXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGUuZmlsZS5ieXRlc1JlYWQ7XG4gIH1cblxuICAvKipcbiAgICog7YyM7J28IO2ZleyepeyekCAo7KCQIOygnOyZuClcbiAgICovXG4gIGdldCBleHRuYW1lKCk6IHN0cmluZyB8IGZhbHNlIHtcbiAgICByZXR1cm4gbWltZS5leHRlbnNpb24odGhpcy5fZmlsZS5taW1ldHlwZSk7XG4gIH1cblxuICBnZXQgbWltZXR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZS5taW1ldHlwZTtcbiAgfVxuXG4gIGdldCBlbmNvZGluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9maWxlLmVuY29kaW5nO1xuICB9XG5cbiAgYXN5bmMgdG9CdWZmZXIoKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICBpZiAoIXRoaXMuX2J1ZmZlcikge1xuICAgICAgdGhpcy5fYnVmZmVyID0gYXdhaXQgdGhpcy5fZmlsZS50b0J1ZmZlcigpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYnVmZmVyO1xuICB9XG5cbiAgYXN5bmMgbWQ1KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy50b0J1ZmZlcigpO1xuICAgIHJldHVybiBjcmVhdGVIYXNoKFwibWQ1XCIpLnVwZGF0ZShidWZmZXIpLmRpZ2VzdChcImhleFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDtjIzsnbzsnYQg7KCA7J6l7IaM7JeQIOyggOyepVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHsgZmlsZSB9ID0gU29uYW11LmdldFVwbG9hZENvbnRleHQoKTtcbiAgICogY29uc3QgdXJsID0gYXdhaXQgZmlsZS5zYXZlVG9EaXNrKCd1cGxvYWRzL2F2YXRhci5wbmcnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzYXZlVG9EaXNrKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IGNvbnRlbnRUeXBlPzogc3RyaW5nOyB2aXNpYmlsaXR5PzogXCJwdWJsaWNcIiB8IFwicHJpdmF0ZVwiIH0sXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy50b0J1ZmZlcigpO1xuXG4gICAgYXdhaXQgdGhpcy5fZHJpdmVyLnB1dChrZXksIGJ1ZmZlciwge1xuICAgICAgY29udGVudFR5cGU6IG9wdGlvbnM/LmNvbnRlbnRUeXBlID8/IHRoaXMubWltZXR5cGUsXG4gICAgICB2aXNpYmlsaXR5OiBvcHRpb25zPy52aXNpYmlsaXR5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2RyaXZlci5nZXRTaWduZWRVcmwoa2V5KTtcbiAgfVxuXG4gIGdldCByYXcoKTogTXVsdGlwYXJ0RmlsZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVIYXNoIiwibWltZSIsIkZpbGVTdG9yYWdlIiwiX2ZpbGUiLCJfYnVmZmVyIiwiX2RyaXZlciIsImZpbGUiLCJkcml2ZXIiLCJjbGllbnROYW1lIiwiZmlsZW5hbWUiLCJmaWVsZE5hbWUiLCJmaWVsZG5hbWUiLCJzaXplIiwiYnl0ZXNSZWFkIiwiZXh0bmFtZSIsImV4dGVuc2lvbiIsIm1pbWV0eXBlIiwiZW5jb2RpbmciLCJ0b0J1ZmZlciIsIm1kNSIsImJ1ZmZlciIsInVwZGF0ZSIsImRpZ2VzdCIsInNhdmVUb0Rpc2siLCJrZXkiLCJvcHRpb25zIiwicHV0IiwiY29udGVudFR5cGUiLCJ2aXNpYmlsaXR5IiwiZ2V0U2lnbmVkVXJsIiwicmF3Il0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxVQUFVLFFBQVEsU0FBUztBQUNwQyxPQUFPQyxVQUFVLGFBQWE7QUFHOUI7O0NBRUMsR0FDRCxPQUFPLE1BQU1DO0lBQ0hDLE1BQXFCO0lBQ3JCQyxRQUFpQjtJQUNqQkMsUUFBZ0I7SUFFeEIsWUFBWUMsSUFBbUIsRUFBRUMsTUFBYyxDQUFFO1FBQy9DLElBQUksQ0FBQ0osS0FBSyxHQUFHRztRQUNiLElBQUksQ0FBQ0QsT0FBTyxHQUFHRTtJQUNqQjtJQUVBOztHQUVDLEdBQ0QsSUFBSUMsYUFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUNMLEtBQUssQ0FBQ00sUUFBUTtJQUM1QjtJQUVBOztHQUVDLEdBQ0QsSUFBSUEsV0FBbUI7UUFDckIsT0FBTyxJQUFJLENBQUNOLEtBQUssQ0FBQ00sUUFBUTtJQUM1QjtJQUVBOztHQUVDLEdBQ0QsSUFBSUMsWUFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUNQLEtBQUssQ0FBQ1EsU0FBUztJQUM3QjtJQUVBOztHQUVDLEdBQ0QsSUFBSUMsT0FBZTtRQUNqQixPQUFPLElBQUksQ0FBQ1QsS0FBSyxDQUFDRyxJQUFJLENBQUNPLFNBQVM7SUFDbEM7SUFFQTs7R0FFQyxHQUNELElBQUlDLFVBQTBCO1FBQzVCLE9BQU9iLEtBQUtjLFNBQVMsQ0FBQyxJQUFJLENBQUNaLEtBQUssQ0FBQ2EsUUFBUTtJQUMzQztJQUVBLElBQUlBLFdBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDYixLQUFLLENBQUNhLFFBQVE7SUFDNUI7SUFFQSxJQUFJQyxXQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQ2QsS0FBSyxDQUFDYyxRQUFRO0lBQzVCO0lBRUEsTUFBTUMsV0FBNEI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQ2QsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQ0EsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDRCxLQUFLLENBQUNlLFFBQVE7UUFDMUM7UUFDQSxPQUFPLElBQUksQ0FBQ2QsT0FBTztJQUNyQjtJQUVBLE1BQU1lLE1BQXVCO1FBQzNCLE1BQU1DLFNBQVMsTUFBTSxJQUFJLENBQUNGLFFBQVE7UUFDbEMsT0FBT2xCLFdBQVcsT0FBT3FCLE1BQU0sQ0FBQ0QsUUFBUUUsTUFBTSxDQUFDO0lBQ2pEO0lBRUE7Ozs7Ozs7O0dBUUMsR0FDRCxNQUFNQyxXQUNKQyxHQUFXLEVBQ1hDLE9BQXFFLEVBQ3BEO1FBQ2pCLE1BQU1MLFNBQVMsTUFBTSxJQUFJLENBQUNGLFFBQVE7UUFFbEMsTUFBTSxJQUFJLENBQUNiLE9BQU8sQ0FBQ3FCLEdBQUcsQ0FBQ0YsS0FBS0osUUFBUTtZQUNsQ08sYUFBYUYsU0FBU0UsZUFBZSxJQUFJLENBQUNYLFFBQVE7WUFDbERZLFlBQVlILFNBQVNHO1FBQ3ZCO1FBRUEsT0FBTyxJQUFJLENBQUN2QixPQUFPLENBQUN3QixZQUFZLENBQUNMO0lBQ25DO0lBRUEsSUFBSU0sTUFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMzQixLQUFLO0lBQ25CO0FBQ0YifQ==
|
package/dist/index.d.ts
CHANGED
|
@@ -1,24 +1,33 @@
|
|
|
1
|
+
export * from "./api/base-frame";
|
|
2
|
+
export * from "./api/config";
|
|
1
3
|
export type * from "./api/context";
|
|
2
4
|
export * from "./api/decorators";
|
|
3
5
|
export * from "./api/sonamu";
|
|
4
6
|
export * from "./database/base-model";
|
|
5
|
-
export * from "./api/base-frame";
|
|
6
7
|
export * from "./database/db";
|
|
7
|
-
export * from "./database/upsert-builder";
|
|
8
8
|
export * from "./database/puri";
|
|
9
|
-
export * from "./database/puri-wrapper";
|
|
10
9
|
export * from "./database/puri.types";
|
|
10
|
+
export * from "./database/puri-subset.types";
|
|
11
|
+
export * from "./database/puri-wrapper";
|
|
12
|
+
export * from "./database/upsert-builder";
|
|
13
|
+
export * from "./entity/entity";
|
|
14
|
+
export * from "./entity/entity-manager";
|
|
11
15
|
export * from "./exceptions/error-handler";
|
|
12
16
|
export * from "./exceptions/so-exceptions";
|
|
17
|
+
export * from "./file-storage/driver";
|
|
18
|
+
export * from "./migration/migration-set";
|
|
19
|
+
export * from "./migration/migrator";
|
|
20
|
+
export * from "./migration/postgresql-schema-reader";
|
|
21
|
+
export * from "./migration/types";
|
|
22
|
+
export * from "./naite/naite";
|
|
23
|
+
export * from "./naite/naite-reporter";
|
|
13
24
|
export * from "./stream/sse";
|
|
25
|
+
export * from "./template/template";
|
|
26
|
+
export * from "./template/template-manager";
|
|
27
|
+
export * from "./testing/fixture-manager";
|
|
14
28
|
export * from "./types/types";
|
|
15
29
|
export * from "./utils/controller";
|
|
16
30
|
export * from "./utils/model";
|
|
31
|
+
export * from "./utils/type-utils";
|
|
17
32
|
export * from "./utils/utils";
|
|
18
|
-
export * from "./testing/fixture-manager";
|
|
19
|
-
export * from "./entity/entity-manager";
|
|
20
|
-
export * from "./entity/entity";
|
|
21
|
-
export * from "./migration/migrator";
|
|
22
|
-
export * from "./migration/types";
|
|
23
|
-
export * from "./file-storage/driver";
|
|
24
33
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,mBAAmB,eAAe,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export * from "./api/base-frame.js";
|
|
2
|
+
export * from "./api/config.js";
|
|
3
|
+
export * from "./api/decorators.js";
|
|
4
|
+
export * from "./api/sonamu.js";
|
|
5
|
+
export * from "./database/base-model.js";
|
|
6
|
+
export * from "./database/db.js";
|
|
7
|
+
export * from "./database/puri.js";
|
|
8
|
+
export * from "./database/puri.types.js";
|
|
9
|
+
export * from "./database/puri-subset.types.js";
|
|
10
|
+
export * from "./database/puri-wrapper.js";
|
|
11
|
+
export * from "./database/upsert-builder.js";
|
|
12
|
+
export * from "./entity/entity.js";
|
|
13
|
+
export * from "./entity/entity-manager.js";
|
|
14
|
+
export * from "./exceptions/error-handler.js";
|
|
15
|
+
export * from "./exceptions/so-exceptions.js";
|
|
16
|
+
export * from "./file-storage/driver.js";
|
|
17
|
+
export * from "./migration/migration-set.js";
|
|
18
|
+
export * from "./migration/migrator.js";
|
|
19
|
+
export * from "./migration/postgresql-schema-reader.js";
|
|
20
|
+
export * from "./migration/types.js";
|
|
21
|
+
export * from "./naite/naite.js";
|
|
22
|
+
export * from "./naite/naite-reporter.js";
|
|
23
|
+
export * from "./stream/sse.js";
|
|
24
|
+
export * from "./template/template.js";
|
|
25
|
+
export * from "./template/template-manager.js";
|
|
26
|
+
export * from "./testing/fixture-manager.js";
|
|
27
|
+
export * from "./types/types.js";
|
|
28
|
+
export * from "./utils/controller.js";
|
|
29
|
+
export * from "./utils/model.js";
|
|
30
|
+
export * from "./utils/type-utils.js";
|
|
31
|
+
export * from "./utils/utils.js"; // export * from "./api/code-converters";
|
|
32
|
+
// export * from "./syncer/syncer";
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hcGkvYmFzZS1mcmFtZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXBpL2NvbmZpZ1wiO1xuZXhwb3J0IHR5cGUgKiBmcm9tIFwiLi9hcGkvY29udGV4dFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXBpL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FwaS9zb25hbXVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGFiYXNlL2Jhc2UtbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RhdGFiYXNlL2RiXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZS9wdXJpXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZS9wdXJpLnR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZS9wdXJpLXN1YnNldC50eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YWJhc2UvcHVyaS13cmFwcGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZS91cHNlcnQtYnVpbGRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXR5L2VudGl0eVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leGNlcHRpb25zL2Vycm9yLWhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4Y2VwdGlvbnMvc28tZXhjZXB0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZmlsZS1zdG9yYWdlL2RyaXZlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWlncmF0aW9uL21pZ3JhdGlvbi1zZXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21pZ3JhdGlvbi9taWdyYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWlncmF0aW9uL3Bvc3RncmVzcWwtc2NoZW1hLXJlYWRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWlncmF0aW9uL3R5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uYWl0ZS9uYWl0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmFpdGUvbmFpdGUtcmVwb3J0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0cmVhbS9zc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RlbXBsYXRlL3RlbXBsYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZW1wbGF0ZS90ZW1wbGF0ZS1tYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZXN0aW5nL2ZpeHR1cmUtbWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMvdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL2NvbnRyb2xsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy90eXBlLXV0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy91dGlsc1wiO1xuXG4vLyBleHBvcnQgKiBmcm9tIFwiLi9hcGkvY29kZS1jb252ZXJ0ZXJzXCI7XG4vLyBleHBvcnQgKiBmcm9tIFwiLi9zeW5jZXIvc3luY2VyXCI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBbUI7QUFDakMsY0FBYyxrQkFBZTtBQUU3QixjQUFjLHNCQUFtQjtBQUNqQyxjQUFjLGtCQUFlO0FBQzdCLGNBQWMsMkJBQXdCO0FBQ3RDLGNBQWMsbUJBQWdCO0FBQzlCLGNBQWMscUJBQWtCO0FBQ2hDLGNBQWMsMkJBQXdCO0FBQ3RDLGNBQWMsa0NBQStCO0FBQzdDLGNBQWMsNkJBQTBCO0FBQ3hDLGNBQWMsK0JBQTRCO0FBQzFDLGNBQWMscUJBQWtCO0FBQ2hDLGNBQWMsNkJBQTBCO0FBQ3hDLGNBQWMsZ0NBQTZCO0FBQzNDLGNBQWMsZ0NBQTZCO0FBQzNDLGNBQWMsMkJBQXdCO0FBQ3RDLGNBQWMsK0JBQTRCO0FBQzFDLGNBQWMsMEJBQXVCO0FBQ3JDLGNBQWMsMENBQXVDO0FBQ3JELGNBQWMsdUJBQW9CO0FBQ2xDLGNBQWMsbUJBQWdCO0FBQzlCLGNBQWMsNEJBQXlCO0FBQ3ZDLGNBQWMsa0JBQWU7QUFDN0IsY0FBYyx5QkFBc0I7QUFDcEMsY0FBYyxpQ0FBOEI7QUFDNUMsY0FBYywrQkFBNEI7QUFDMUMsY0FBYyxtQkFBZ0I7QUFDOUIsY0FBYyx3QkFBcUI7QUFDbkMsY0FBYyxtQkFBZ0I7QUFDOUIsY0FBYyx3QkFBcUI7QUFDbkMsY0FBYyxtQkFBZ0IsQ0FFOUIseUNBQXlDO0NBQ3pDLG1DQUFtQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-generation.d.ts","sourceRoot":"","sources":["../../src/migration/code-generation.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"code-generation.d.ts","sourceRoot":"","sources":["../../src/migration/code-generation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAIhB,YAAY,EACb,MAAM,gBAAgB,CAAC;AA8oBxB;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAS7F;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqG7B"}
|