sonamu 0.6.0 → 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 +2 -1
- package/dist/api/caster.d.ts.map +1 -1
- package/dist/api/caster.js +6 -1
- 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 +178 -409
- package/dist/api/config.d.ts +27 -13
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +19 -26
- package/dist/api/context.d.ts +4 -3
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +1 -1
- package/dist/api/decorators.d.ts +20 -6
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +111 -18
- package/dist/api/index.d.ts +2 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +3 -3
- package/dist/api/sonamu.d.ts +7 -7
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +83 -51
- 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 +5 -1
- package/dist/bin/build-config.d.ts.map +1 -1
- package/dist/bin/build-config.js +5 -2
- package/dist/bin/cli.js +165 -64
- 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 +30 -13
- 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 +232 -89
- 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 +11 -10
- package/dist/database/db.d.ts +5 -6
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +22 -25
- 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 +2 -2
- package/dist/database/puri.d.ts +25 -14
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +83 -21
- package/dist/database/puri.types.d.ts +21 -7
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +4 -1
- 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 +1 -1
- 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 +228 -78
- package/dist/entity/entity-manager.d.ts +165 -2
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +26 -10
- package/dist/entity/entity.d.ts +5 -3
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +153 -54
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/file-storage/file-storage.js +2 -2
- package/dist/index.d.ts +18 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -13
- 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 +123 -67
- 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 +67 -218
- package/dist/migration/migrator.d.ts +24 -73
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +121 -301
- 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 +1 -1
- 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 +91 -8
- package/dist/naite/naite.d.ts.map +1 -1
- package/dist/naite/naite.js +285 -41
- package/dist/stream/sse.d.ts +2 -2
- package/dist/stream/sse.d.ts.map +1 -1
- package/dist/stream/sse.js +1 -1
- package/dist/syncer/api-parser.d.ts +3 -13
- package/dist/syncer/api-parser.d.ts.map +1 -1
- package/dist/syncer/api-parser.js +67 -56
- package/dist/syncer/checksum.d.ts +2 -2
- package/dist/syncer/checksum.d.ts.map +1 -1
- package/dist/syncer/checksum.js +11 -11
- package/dist/syncer/code-generator.d.ts +3 -3
- package/dist/syncer/code-generator.d.ts.map +1 -1
- package/dist/syncer/code-generator.js +37 -17
- package/dist/syncer/entity-operations.d.ts +2 -2
- package/dist/syncer/entity-operations.d.ts.map +1 -1
- package/dist/syncer/entity-operations.js +9 -8
- 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 +1 -1
- package/dist/syncer/index.d.ts +4 -4
- package/dist/syncer/index.d.ts.map +1 -1
- package/dist/syncer/index.js +5 -5
- package/dist/syncer/module-loader.d.ts +4 -4
- package/dist/syncer/module-loader.d.ts.map +1 -1
- package/dist/syncer/module-loader.js +17 -12
- package/dist/syncer/syncer.d.ts +31 -24
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +92 -45
- 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 +15 -8
- package/dist/template/helpers.d.ts +2 -2
- package/dist/template/helpers.d.ts.map +1 -1
- package/dist/template/helpers.js +3 -3
- package/dist/template/implementations/entity.template.d.ts +2 -2
- package/dist/template/implementations/entity.template.d.ts.map +1 -1
- package/dist/template/implementations/entity.template.js +4 -5
- package/dist/template/implementations/generated.template.d.ts +2 -3
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +46 -29
- package/dist/template/implementations/generated_http.template.d.ts +2 -3
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_http.template.js +9 -9
- package/dist/template/implementations/generated_sso.template.d.ts +3 -4
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.js +54 -25
- package/dist/template/implementations/init_types.template.d.ts +2 -2
- package/dist/template/implementations/init_types.template.d.ts.map +1 -1
- package/dist/template/implementations/init_types.template.js +2 -2
- package/dist/template/implementations/model.template.d.ts +2 -2
- package/dist/template/implementations/model.template.d.ts.map +1 -1
- package/dist/template/implementations/model.template.js +47 -37
- package/dist/template/implementations/model_test.template.d.ts +2 -2
- package/dist/template/implementations/model_test.template.d.ts.map +1 -1
- package/dist/template/implementations/model_test.template.js +2 -2
- package/dist/template/implementations/service.template.d.ts +4 -4
- package/dist/template/implementations/service.template.d.ts.map +1 -1
- package/dist/template/implementations/service.template.js +24 -16
- package/dist/template/implementations/view_enums_buttonset.template.d.ts +2 -2
- package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -1
- package/dist/template/implementations/view_enums_buttonset.template.js +1 -1
- package/dist/template/implementations/view_enums_dropdown.template.d.ts +2 -2
- package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -1
- package/dist/template/implementations/view_enums_dropdown.template.js +2 -2
- package/dist/template/implementations/view_enums_select.template.d.ts +2 -2
- package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -1
- package/dist/template/implementations/view_enums_select.template.js +2 -2
- package/dist/template/implementations/view_form.template.d.ts +2 -2
- package/dist/template/implementations/view_form.template.d.ts.map +1 -1
- package/dist/template/implementations/view_form.template.js +4 -4
- package/dist/template/implementations/view_id_all_select.template.d.ts +2 -2
- package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -1
- package/dist/template/implementations/view_id_all_select.template.js +1 -1
- package/dist/template/implementations/view_id_async_select.template.d.ts +2 -2
- package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -1
- package/dist/template/implementations/view_id_async_select.template.js +1 -1
- package/dist/template/implementations/view_list.template.d.ts +2 -2
- package/dist/template/implementations/view_list.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list.template.js +29 -19
- package/dist/template/implementations/view_list_columns.template.d.ts +3 -3
- package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list_columns.template.js +1 -1
- package/dist/template/implementations/view_search_input.template.d.ts +2 -2
- package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
- package/dist/template/implementations/view_search_input.template.js +1 -1
- package/dist/template/index.d.ts +4 -2
- package/dist/template/index.d.ts.map +1 -1
- package/dist/template/index.js +5 -3
- 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 +12 -2
- package/dist/template/template.d.ts.map +1 -1
- package/dist/template/template.js +19 -6
- package/dist/template/zod-converter.d.ts +40 -7
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +341 -58
- 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 +12 -3
- 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 +338 -236
- package/dist/types/types.d.ts +709 -104
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +309 -52
- package/dist/typings/knex.d.js +2 -2
- package/dist/utils/async-utils.d.ts.map +1 -1
- package/dist/utils/async-utils.js +3 -3
- package/dist/utils/console-util.js +1 -1
- package/dist/utils/controller.d.ts +1 -0
- package/dist/utils/controller.d.ts.map +1 -1
- package/dist/utils/controller.js +4 -1
- package/dist/utils/esm-utils.d.ts +0 -6
- package/dist/utils/esm-utils.d.ts.map +1 -1
- package/dist/utils/esm-utils.js +2 -9
- 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 +1 -1
- package/dist/utils/lodash-able.d.ts.map +1 -1
- package/dist/utils/lodash-able.js +1 -1
- 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 +1 -1
- package/dist/utils/path-utils.d.ts.map +1 -1
- package/dist/utils/path-utils.js +3 -3
- package/dist/utils/process-utils.js +1 -1
- 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 +14 -3
- 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 +7 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +44 -5
- 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 +1 -1
- package/package.json +54 -29
- 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 +176 -533
- package/src/api/config.ts +39 -56
- package/src/api/context.ts +7 -18
- package/src/api/decorators.ts +175 -46
- package/src/api/index.ts +2 -2
- package/src/api/sonamu.ts +133 -124
- package/src/api/validator.ts +83 -0
- package/src/bin/build-config.ts +7 -1
- package/src/bin/cli.ts +192 -110
- 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 +36 -50
- 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 +182 -126
- package/src/database/puri.types.ts +64 -31
- package/src/database/transaction-context.ts +1 -1
- package/src/database/upsert-builder.ts +262 -132
- package/src/entity/entity-manager.ts +36 -28
- package/src/entity/entity.ts +330 -249
- 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 -12
- package/src/migration/code-generation.ts +185 -172
- package/src/migration/migration-set.ts +80 -293
- package/src/migration/migrator.ts +182 -425
- 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 +378 -33
- package/src/shared/web.shared.ts.txt +20 -24
- package/src/stream/sse.ts +5 -5
- package/src/syncer/api-parser.ts +52 -69
- package/src/syncer/checksum.ts +25 -37
- package/src/syncer/code-generator.ts +58 -62
- package/src/syncer/entity-operations.ts +12 -15
- package/src/syncer/file-patterns.ts +2 -2
- package/src/syncer/index.ts +4 -4
- package/src/syncer/module-loader.ts +28 -25
- package/src/syncer/syncer.ts +155 -162
- package/src/template/entity-converter.ts +18 -27
- package/src/template/helpers.ts +8 -11
- package/src/template/implementations/entity.template.ts +6 -6
- package/src/template/implementations/generated.template.ts +99 -99
- package/src/template/implementations/generated_http.template.ts +21 -54
- package/src/template/implementations/generated_sso.template.ts +78 -65
- package/src/template/implementations/init_types.template.ts +4 -6
- package/src/template/implementations/model.template.ts +47 -38
- package/src/template/implementations/model_test.template.ts +3 -3
- package/src/template/implementations/service.template.ts +56 -80
- package/src/template/implementations/view_enums_buttonset.template.ts +2 -2
- package/src/template/implementations/view_enums_dropdown.template.ts +4 -4
- package/src/template/implementations/view_enums_select.template.ts +3 -3
- package/src/template/implementations/view_form.template.ts +34 -75
- package/src/template/implementations/view_id_all_select.template.ts +2 -2
- package/src/template/implementations/view_id_async_select.template.ts +9 -23
- package/src/template/implementations/view_list.template.ts +54 -95
- package/src/template/implementations/view_list_columns.template.ts +4 -10
- package/src/template/implementations/view_search_input.template.ts +2 -2
- package/src/template/index.ts +4 -2
- package/src/template/template-manager.ts +166 -0
- package/src/template/template-types.ts +16 -0
- package/src/template/template.ts +29 -10
- package/src/template/zod-converter.ts +407 -101
- package/src/testing/_relation-graph.ts +18 -11
- package/src/testing/fixture-manager.ts +468 -362
- package/src/types/types.ts +516 -248
- package/src/typings/knex.d.ts +7 -9
- package/src/utils/async-utils.ts +8 -12
- package/src/utils/console-util.ts +1 -1
- package/src/utils/controller.ts +3 -0
- package/src/utils/esm-utils.ts +8 -18
- 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 +3 -6
- package/src/utils/process-utils.ts +1 -1
- package/src/utils/sql-parser.ts +23 -5
- package/src/utils/type-utils.ts +83 -0
- package/src/utils/utils.ts +58 -9
- package/src/utils/zod-error.ts +3 -3
- 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 -72
- 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 -39
- 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 -210
- package/src/bin/cli-wrapper.ts +0 -82
- package/src/database/knex-plugins/knex-on-duplicate-update.ts +0 -45
- package/src/entity/entity-utils.ts +0 -291
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import assert from "assert";
|
|
1
2
|
import { readFile } from "node:fs/promises";
|
|
3
|
+
import inflection from "inflection";
|
|
2
4
|
import ts from "typescript";
|
|
3
5
|
import { registeredApis } from "../api/decorators.js";
|
|
4
|
-
import
|
|
5
|
-
import assert from "assert";
|
|
6
|
+
import { validateMethodName } from "../api/validator.js";
|
|
6
7
|
/**
|
|
7
8
|
* TypeScript 파일을 파싱하여 API 메소드 정보를 추출합니다.
|
|
8
9
|
* @api 데코레이터가 붙은 메소드들의 타입 정보를 분석합니다.
|
|
@@ -25,6 +26,7 @@ import assert from "assert";
|
|
|
25
26
|
if (ts.isMethodDeclaration(node)) {
|
|
26
27
|
if (ts.isIdentifier(node.name)) {
|
|
27
28
|
methodName = node.name.escapedText.toString();
|
|
29
|
+
validateMethodName(methodName);
|
|
28
30
|
}
|
|
29
31
|
const typeParameters = (node.typeParameters ?? []).map((typeParam)=>{
|
|
30
32
|
const tp = typeParam;
|
|
@@ -75,11 +77,14 @@ import assert from "assert";
|
|
|
75
77
|
// 등록된 API에 현재 메소드 타입 정보 확장
|
|
76
78
|
const extendedApis = currentModelApis.map((api)=>{
|
|
77
79
|
const foundMethod = methods.find((method)=>method.modelName === api.modelName && method.methodName === api.methodName);
|
|
80
|
+
if (!foundMethod) {
|
|
81
|
+
throw new Error(`API ${api.modelName}.${api.methodName} not found in ${filePath}`);
|
|
82
|
+
}
|
|
78
83
|
return {
|
|
79
84
|
...api,
|
|
80
|
-
typeParameters: foundMethod
|
|
81
|
-
parameters: foundMethod
|
|
82
|
-
returnType: foundMethod
|
|
85
|
+
typeParameters: foundMethod?.typeParameters,
|
|
86
|
+
parameters: foundMethod?.parameters,
|
|
87
|
+
returnType: foundMethod?.returnType
|
|
83
88
|
};
|
|
84
89
|
});
|
|
85
90
|
return extendedApis;
|
|
@@ -103,61 +108,67 @@ function resolveTypeNode(typeNode) {
|
|
|
103
108
|
case ts.SyntaxKind.VoidKeyword:
|
|
104
109
|
return "void";
|
|
105
110
|
case ts.SyntaxKind.LiteralType:
|
|
106
|
-
|
|
107
|
-
|
|
111
|
+
{
|
|
112
|
+
const literal = typeNode.literal;
|
|
113
|
+
if (ts.isStringLiteral(literal)) {
|
|
114
|
+
return {
|
|
115
|
+
t: "string-literal",
|
|
116
|
+
value: literal.text
|
|
117
|
+
};
|
|
118
|
+
} else if (ts.isNumericLiteral(literal)) {
|
|
119
|
+
return {
|
|
120
|
+
t: "numeric-literal",
|
|
121
|
+
value: Number(literal.text)
|
|
122
|
+
};
|
|
123
|
+
} else {
|
|
124
|
+
if (literal.kind === ts.SyntaxKind.NullKeyword) {
|
|
125
|
+
return "null";
|
|
126
|
+
} else if (literal.kind === ts.SyntaxKind.UndefinedKeyword) {
|
|
127
|
+
return "undefined";
|
|
128
|
+
} else if (literal.kind === ts.SyntaxKind.TrueKeyword) {
|
|
129
|
+
return "true";
|
|
130
|
+
} else if (literal.kind === ts.SyntaxKind.FalseKeyword) {
|
|
131
|
+
return "false";
|
|
132
|
+
}
|
|
133
|
+
throw new Error("알 수 없는 리터럴");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
case ts.SyntaxKind.ArrayType:
|
|
137
|
+
{
|
|
138
|
+
const arrNode = typeNode;
|
|
108
139
|
return {
|
|
109
|
-
t: "
|
|
110
|
-
|
|
140
|
+
t: "array",
|
|
141
|
+
elementsType: resolveTypeNode(arrNode.elementType)
|
|
111
142
|
};
|
|
112
|
-
}
|
|
143
|
+
}
|
|
144
|
+
case ts.SyntaxKind.TypeLiteral:
|
|
145
|
+
{
|
|
146
|
+
const literalNode = typeNode;
|
|
113
147
|
return {
|
|
114
|
-
t: "
|
|
115
|
-
|
|
148
|
+
t: "object",
|
|
149
|
+
props: literalNode.members.map((member)=>{
|
|
150
|
+
if (ts.isIndexSignatureDeclaration(member)) {
|
|
151
|
+
assert(member.parameters[0]);
|
|
152
|
+
const res = resolveParamDec({
|
|
153
|
+
name: member.parameters[0].name,
|
|
154
|
+
type: member.parameters[0].type
|
|
155
|
+
});
|
|
156
|
+
return resolveParamDec({
|
|
157
|
+
name: {
|
|
158
|
+
escapedText: `[${res.name}${res.optional ? "?" : ""}: ${res.type}]`
|
|
159
|
+
},
|
|
160
|
+
type: member.type
|
|
161
|
+
});
|
|
162
|
+
} else {
|
|
163
|
+
return resolveParamDec({
|
|
164
|
+
name: member.name,
|
|
165
|
+
type: member.type,
|
|
166
|
+
optional: member.questionToken !== undefined
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
})
|
|
116
170
|
};
|
|
117
|
-
} else {
|
|
118
|
-
if (literal.kind === ts.SyntaxKind.NullKeyword) {
|
|
119
|
-
return "null";
|
|
120
|
-
} else if (literal.kind === ts.SyntaxKind.UndefinedKeyword) {
|
|
121
|
-
return "undefined";
|
|
122
|
-
} else if (literal.kind === ts.SyntaxKind.TrueKeyword) {
|
|
123
|
-
return "true";
|
|
124
|
-
} else if (literal.kind === ts.SyntaxKind.FalseKeyword) {
|
|
125
|
-
return "false";
|
|
126
|
-
}
|
|
127
|
-
throw new Error("알 수 없는 리터럴");
|
|
128
171
|
}
|
|
129
|
-
case ts.SyntaxKind.ArrayType:
|
|
130
|
-
const arrNode = typeNode;
|
|
131
|
-
return {
|
|
132
|
-
t: "array",
|
|
133
|
-
elementsType: resolveTypeNode(arrNode.elementType)
|
|
134
|
-
};
|
|
135
|
-
case ts.SyntaxKind.TypeLiteral:
|
|
136
|
-
const literalNode = typeNode;
|
|
137
|
-
return {
|
|
138
|
-
t: "object",
|
|
139
|
-
props: literalNode.members.map((member)=>{
|
|
140
|
-
if (ts.isIndexSignatureDeclaration(member)) {
|
|
141
|
-
assert(member.parameters[0]);
|
|
142
|
-
const res = resolveParamDec({
|
|
143
|
-
name: member.parameters[0].name,
|
|
144
|
-
type: member.parameters[0].type
|
|
145
|
-
});
|
|
146
|
-
return resolveParamDec({
|
|
147
|
-
name: {
|
|
148
|
-
escapedText: `[${res.name}${res.optional ? "?" : ""}: ${res.type}]`
|
|
149
|
-
},
|
|
150
|
-
type: member.type
|
|
151
|
-
});
|
|
152
|
-
} else {
|
|
153
|
-
return resolveParamDec({
|
|
154
|
-
name: member.name,
|
|
155
|
-
type: member.type,
|
|
156
|
-
optional: member.questionToken !== undefined
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
})
|
|
160
|
-
};
|
|
161
172
|
case ts.SyntaxKind.TypeReference:
|
|
162
173
|
return {
|
|
163
174
|
t: "ref",
|
|
@@ -226,4 +237,4 @@ function printNode(node, sourceFile) {
|
|
|
226
237
|
return printer.printNode(ts.EmitHint.Unspecified, node, sourceFile);
|
|
227
238
|
}
|
|
228
239
|
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jZXIvYXBpLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlQYXJhbSwgQXBpUGFyYW1UeXBlIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IEV4dGVuZGVkQXBpLCByZWdpc3RlcmVkQXBpcyB9IGZyb20gXCIuLi9hcGkvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIjtcbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiO1xuaW1wb3J0IHsgQWJzb2x1dGVQYXRoIH0gZnJvbSBcIi4uL3V0aWxzL3BhdGgtdXRpbHNcIjtcblxuLyoqXG4gKiBUeXBlU2NyaXB0IO2MjOydvOydhCDtjIzsi7HtlZjsl6wgQVBJIOuplOyGjOuTnCDsoJXrs7Trpbwg7LaU7Lac7ZWp64uI64ukLlxuICogQGFwaSDrjbDsvZTroIjsnbTthLDqsIAg67aZ7J2AIOuplOyGjOuTnOuTpOydmCDtg4DsnoUg7KCV67O066W8IOu2hOyEne2VqeuLiOuLpC5cbiAqIEBwYXJhbSBmaWxlUGF0aCAtIO2MjOyLse2VoCBUeXBlU2NyaXB0IO2MjOydvOydmCDsoIjrjIAg6rK966GcXG4gKiBAcmV0dXJucyBBUEkg66mU7IaM65OcIOygleuztCDrsLDsl7QgKO2DgOyehSDtjIzrnbzrr7jthLAsIO2MjOudvOuvuO2EsCwg66as7YS0IO2DgOyehSDrk7EpXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkQXBpc0Zyb21GaWxlKGZpbGVQYXRoOiBBYnNvbHV0ZVBhdGgpIHtcbiAgaWYgKCFmaWxlUGF0aC5lbmRzV2l0aChcIi50c1wiKSkgeyBcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZmlsZVBhdGh9IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBUeXBlU2NyaXB0IGZpbGUuIFBsZWFzZSBjaGVjayB0aGUgZmlsZSBwYXRoLiBXZSBvbmx5IHN1cHBvcnQgcGFyc2luZyBUeXBlU2NyaXB0IGZpbGVzLmApO1xuICB9XG4gIFxuICBjb25zdCBzb3VyY2VGaWxlID0gdHMuY3JlYXRlU291cmNlRmlsZShcbiAgICBmaWxlUGF0aCxcbiAgICAoYXdhaXQgcmVhZEZpbGUoZmlsZVBhdGgpKS50b1N0cmluZygpLFxuICAgIHRzLlNjcmlwdFRhcmdldC5MYXRlc3RcbiAgKTtcblxuICBjb25zdCBtZXRob2RzOiBPbWl0PEV4dGVuZGVkQXBpLCBcInBhdGhcIiB8IFwib3B0aW9uc1wiPltdID0gW107XG4gIGxldCBtb2RlbE5hbWU6IHN0cmluZyA9IFwiVW5rbm93bk1vZGVsXCI7XG4gIGxldCBtZXRob2ROYW1lOiBzdHJpbmcgPSBcInVua25vd25NZXRob2RcIjtcbiAgY29uc3QgdmlzaXRvciA9IChub2RlOiB0cy5Ob2RlKSA9PiB7XG4gICAgaWYgKHRzLmlzQ2xhc3NEZWNsYXJhdGlvbihub2RlKSkge1xuICAgICAgaWYgKG5vZGUubmFtZSAmJiB0cy5pc0lkZW50aWZpZXIobm9kZS5uYW1lKSkge1xuICAgICAgICBtb2RlbE5hbWUgPSBub2RlLm5hbWUuZXNjYXBlZFRleHQudG9TdHJpbmcoKS5yZXBsYWNlKC9DbGFzcyQvLCBcIlwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRzLmlzTWV0aG9kRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgIGlmICh0cy5pc0lkZW50aWZpZXIobm9kZS5uYW1lKSkge1xuICAgICAgICBtZXRob2ROYW1lID0gbm9kZS5uYW1lLmVzY2FwZWRUZXh0LnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGVQYXJhbWV0ZXJzOiBBcGlQYXJhbVR5cGUuVHlwZVBhcmFtW10gPSAoXG4gICAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMgPz8gW11cbiAgICAgICkubWFwKCh0eXBlUGFyYW0pID0+IHtcbiAgICAgICAgY29uc3QgdHAgPSB0eXBlUGFyYW0gYXMgdHMuVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdDogXCJ0eXBlLXBhcmFtXCIsXG4gICAgICAgICAgaWQ6IHRwLm5hbWUuZXNjYXBlZFRleHQudG9TdHJpbmcoKSxcbiAgICAgICAgICBjb25zdHJhaW50OiB0cC5jb25zdHJhaW50XG4gICAgICAgICAgICA/IHJlc29sdmVUeXBlTm9kZSh0cC5jb25zdHJhaW50KVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IEFwaVBhcmFtW10gPSBub2RlLnBhcmFtZXRlcnMubWFwKChwYXJhbURlYywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdERlZiA9IHByaW50Tm9kZShwYXJhbURlYy5pbml0aWFsaXplciwgc291cmNlRmlsZSk7XG5cbiAgICAgICAgLy8g6riw67O46rCS7J20IOyeiOuKlCDqsr3smrAgcGFyYW1EZWMudHlwZeqwgCB1bmRlZmluZWTroZwg64KY7Ji0XG5cbiAgICAgICAgcmV0dXJuIHJlc29sdmVQYXJhbURlYyhcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBwYXJhbURlYy5uYW1lLFxuICAgICAgICAgICAgdHlwZTogcGFyYW1EZWMudHlwZSBhcyB0cy5UeXBlTm9kZSxcbiAgICAgICAgICAgIG9wdGlvbmFsOlxuICAgICAgICAgICAgICBwYXJhbURlYy5xdWVzdGlvblRva2VuICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgcGFyYW1EZWMuaW5pdGlhbGl6ZXIgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRlZmF1bHREZWYsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbmRleFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICBpZiAobm9kZS50eXBlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGDrpqzthLQg7YOA7J6F7J20IOq4sOyerOuQmOyngCDslYrsnYAg66mU7IaM65OcICR7bW9kZWxOYW1lfS4ke21ldGhvZE5hbWV9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgcmV0dXJuVHlwZSA9IHJlc29sdmVUeXBlTm9kZShub2RlLnR5cGUhKTtcblxuICAgICAgbWV0aG9kcy5wdXNoKHtcbiAgICAgICAgbW9kZWxOYW1lLFxuICAgICAgICBtZXRob2ROYW1lLFxuICAgICAgICB0eXBlUGFyYW1ldGVycyxcbiAgICAgICAgcGFyYW1ldGVycyxcbiAgICAgICAgcmV0dXJuVHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0cy5mb3JFYWNoQ2hpbGQobm9kZSwgdmlzaXRvcik7XG4gIH07XG4gIHZpc2l0b3Ioc291cmNlRmlsZSk7XG5cbiAgaWYgKG1ldGhvZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLy8g7ZiE7J6sIO2MjOydvOydmCDrk7HroZ3rkJwgQVBJIO2VhO2EsFxuICBjb25zdCBjdXJyZW50TW9kZWxBcGlzID0gcmVnaXN0ZXJlZEFwaXMuZmlsdGVyKChhcGkpID0+IHtcbiAgICByZXR1cm4gbWV0aG9kcy5maW5kKFxuICAgICAgKG1ldGhvZCkgPT5cbiAgICAgICAgbWV0aG9kLm1vZGVsTmFtZSA9PT0gYXBpLm1vZGVsTmFtZSAmJlxuICAgICAgICBtZXRob2QubWV0aG9kTmFtZSA9PT0gYXBpLm1ldGhvZE5hbWVcbiAgICApO1xuICB9KTtcbiAgaWYgKGN1cnJlbnRNb2RlbEFwaXMubGVuZ3RoID09PSAwKSB7XG4gICAgLy8gY29uc3QgcCA9IHBhdGguam9pbih0bXBkaXIoKSwgXCJzb25hbXUtc3luY2VyLWVycm9yLmpzb25cIik7XG4gICAgLy8gd3JpdGVGaWxlU3luYyhwLCBKU09OLnN0cmluZ2lmeShyZWdpc3RlcmVkQXBpcywgbnVsbCwgMikpO1xuICAgIC8vIGV4ZWNTeW5jKGBvcGVuICR7cH1gKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYO2YhOyerCDtjIzsnbzsl5Ag7IKs7KCEIOuTseuhneuQnCBBUEnqsIAg7JeG7Iq164uI64ukLiAke2ZpbGVQYXRofWApO1xuICB9XG5cbiAgLy8g65Ox66Gd65CcIEFQSeyXkCDtmITsnqwg66mU7IaM65OcIO2DgOyehSDsoJXrs7Qg7ZmV7J6lXG4gIGNvbnN0IGV4dGVuZGVkQXBpcyA9IGN1cnJlbnRNb2RlbEFwaXMubWFwKChhcGkpID0+IHtcbiAgICBjb25zdCBmb3VuZE1ldGhvZCA9IG1ldGhvZHMuZmluZChcbiAgICAgIChtZXRob2QpID0+XG4gICAgICAgIG1ldGhvZC5tb2RlbE5hbWUgPT09IGFwaS5tb2RlbE5hbWUgJiZcbiAgICAgICAgbWV0aG9kLm1ldGhvZE5hbWUgPT09IGFwaS5tZXRob2ROYW1lXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYXBpLFxuICAgICAgdHlwZVBhcmFtZXRlcnM6IGZvdW5kTWV0aG9kIS50eXBlUGFyYW1ldGVycyxcbiAgICAgIHBhcmFtZXRlcnM6IGZvdW5kTWV0aG9kIS5wYXJhbWV0ZXJzLFxuICAgICAgcmV0dXJuVHlwZTogZm91bmRNZXRob2QhLnJldHVyblR5cGUsXG4gICAgfTtcbiAgfSk7XG4gIHJldHVybiBleHRlbmRlZEFwaXM7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVUeXBlTm9kZSh0eXBlTm9kZTogdHMuVHlwZU5vZGUpOiBBcGlQYXJhbVR5cGUge1xuICBzd2l0Y2ggKHR5cGVOb2RlPy5raW5kKSB7XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLkFueUtleXdvcmQ6XG4gICAgICByZXR1cm4gXCJhbnlcIjtcbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuVW5rbm93bktleXdvcmQ6XG4gICAgICByZXR1cm4gXCJ1bmtub3duXCI7XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLlN0cmluZ0tleXdvcmQ6XG4gICAgICByZXR1cm4gXCJzdHJpbmdcIjtcbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuTnVtYmVyS2V5d29yZDpcbiAgICAgIHJldHVybiBcIm51bWJlclwiO1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5Cb29sZWFuS2V5d29yZDpcbiAgICAgIHJldHVybiBcImJvb2xlYW5cIjtcbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuVW5kZWZpbmVkS2V5d29yZDpcbiAgICAgIHJldHVybiBcInVuZGVmaW5lZFwiO1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5OdWxsS2V5d29yZDpcbiAgICAgIHJldHVybiBcIm51bGxcIjtcbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuVm9pZEtleXdvcmQ6XG4gICAgICByZXR1cm4gXCJ2b2lkXCI7XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLkxpdGVyYWxUeXBlOlxuICAgICAgY29uc3QgbGl0ZXJhbCA9ICh0eXBlTm9kZSBhcyB0cy5MaXRlcmFsVHlwZU5vZGUpLmxpdGVyYWw7XG4gICAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsKGxpdGVyYWwpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdDogXCJzdHJpbmctbGl0ZXJhbFwiLFxuICAgICAgICAgIHZhbHVlOiBsaXRlcmFsLnRleHQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKHRzLmlzTnVtZXJpY0xpdGVyYWwobGl0ZXJhbCkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0OiBcIm51bWVyaWMtbGl0ZXJhbFwiLFxuICAgICAgICAgIHZhbHVlOiBOdW1iZXIobGl0ZXJhbC50ZXh0KSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChsaXRlcmFsLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuTnVsbEtleXdvcmQpIHtcbiAgICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobGl0ZXJhbC5raW5kID09PSB0cy5TeW50YXhLaW5kLlVuZGVmaW5lZEtleXdvcmQpIHtcbiAgICAgICAgICByZXR1cm4gXCJ1bmRlZmluZWRcIjtcbiAgICAgICAgfSBlbHNlIGlmIChsaXRlcmFsLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVHJ1ZUtleXdvcmQpIHtcbiAgICAgICAgICByZXR1cm4gXCJ0cnVlXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobGl0ZXJhbC5raW5kID09PSB0cy5TeW50YXhLaW5kLkZhbHNlS2V5d29yZCkge1xuICAgICAgICAgIHJldHVybiBcImZhbHNlXCI7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwi7JWMIOyImCDsl4bripQg66as7YSw65+0XCIpO1xuICAgICAgfVxuICAgIGNhc2UgdHMuU3ludGF4S2luZC5BcnJheVR5cGU6XG4gICAgICBjb25zdCBhcnJOb2RlID0gdHlwZU5vZGUgYXMgdHMuQXJyYXlUeXBlTm9kZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHQ6IFwiYXJyYXlcIixcbiAgICAgICAgZWxlbWVudHNUeXBlOiByZXNvbHZlVHlwZU5vZGUoYXJyTm9kZS5lbGVtZW50VHlwZSksXG4gICAgICB9O1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5UeXBlTGl0ZXJhbDpcbiAgICAgIGNvbnN0IGxpdGVyYWxOb2RlID0gdHlwZU5vZGUgYXMgdHMuVHlwZUxpdGVyYWxOb2RlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdDogXCJvYmplY3RcIixcbiAgICAgICAgcHJvcHM6IGxpdGVyYWxOb2RlLm1lbWJlcnMubWFwKChtZW1iZXIpID0+IHtcbiAgICAgICAgICBpZiAodHMuaXNJbmRleFNpZ25hdHVyZURlY2xhcmF0aW9uKG1lbWJlcikpIHtcbiAgICAgICAgICAgIGFzc2VydChtZW1iZXIucGFyYW1ldGVyc1swXSk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSByZXNvbHZlUGFyYW1EZWMoe1xuICAgICAgICAgICAgICBuYW1lOiBtZW1iZXIucGFyYW1ldGVyc1swXS5uYW1lIGFzIHRzLklkZW50aWZpZXIsXG4gICAgICAgICAgICAgIHR5cGU6IG1lbWJlci5wYXJhbWV0ZXJzWzBdLnR5cGUgYXMgdHMuVHlwZU5vZGUsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVQYXJhbURlYyh7XG4gICAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgICBlc2NhcGVkVGV4dDogYFske3Jlcy5uYW1lfSR7cmVzLm9wdGlvbmFsID8gXCI/XCIgOiBcIlwifTogJHtcbiAgICAgICAgICAgICAgICAgIHJlcy50eXBlXG4gICAgICAgICAgICAgICAgfV1gLFxuICAgICAgICAgICAgICB9IGFzIHRzLklkZW50aWZpZXIsXG4gICAgICAgICAgICAgIHR5cGU6IG1lbWJlci50eXBlIGFzIHRzLlR5cGVOb2RlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlUGFyYW1EZWMoe1xuICAgICAgICAgICAgICBuYW1lOiAobWVtYmVyIGFzIHRzLlByb3BlcnR5U2lnbmF0dXJlKS5uYW1lIGFzIHRzLklkZW50aWZpZXIsXG4gICAgICAgICAgICAgIHR5cGU6IChtZW1iZXIgYXMgdHMuUHJvcGVydHlTaWduYXR1cmUpLnR5cGUgYXMgdHMuVHlwZU5vZGUsXG4gICAgICAgICAgICAgIG9wdGlvbmFsOlxuICAgICAgICAgICAgICAgIChtZW1iZXIgYXMgdHMuUHJvcGVydHlTaWduYXR1cmUpLnF1ZXN0aW9uVG9rZW4gIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5UeXBlUmVmZXJlbmNlOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdDogXCJyZWZcIixcbiAgICAgICAgaWQ6IChcbiAgICAgICAgICAodHlwZU5vZGUgYXMgdHMuVHlwZVJlZmVyZW5jZU5vZGUpLnR5cGVOYW1lIGFzIHRzLklkZW50aWZpZXJcbiAgICAgICAgKS5lc2NhcGVkVGV4dC50b1N0cmluZygpLFxuICAgICAgICBhcmdzOiAodHlwZU5vZGUgYXMgdHMuVHlwZVJlZmVyZW5jZU5vZGUpLnR5cGVBcmd1bWVudHM/Lm1hcCgodHlwZUFyZykgPT5cbiAgICAgICAgICByZXNvbHZlVHlwZU5vZGUodHlwZUFyZylcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLlVuaW9uVHlwZTpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHQ6IFwidW5pb25cIixcbiAgICAgICAgdHlwZXM6ICh0eXBlTm9kZSBhcyB0cy5VbmlvblR5cGVOb2RlKS50eXBlcy5tYXAoKHR5cGUpID0+XG4gICAgICAgICAgcmVzb2x2ZVR5cGVOb2RlKHR5cGUpXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5JbnRlcnNlY3Rpb25UeXBlOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdDogXCJpbnRlcnNlY3Rpb25cIixcbiAgICAgICAgdHlwZXM6ICh0eXBlTm9kZSBhcyB0cy5JbnRlcnNlY3Rpb25UeXBlTm9kZSkudHlwZXMubWFwKCh0eXBlKSA9PlxuICAgICAgICAgIHJlc29sdmVUeXBlTm9kZSh0eXBlKVxuICAgICAgICApLFxuICAgICAgfTtcbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuSW5kZXhlZEFjY2Vzc1R5cGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0OiBcImluZGV4ZWQtYWNjZXNzXCIsXG4gICAgICAgIG9iamVjdDogcmVzb2x2ZVR5cGVOb2RlKFxuICAgICAgICAgICh0eXBlTm9kZSBhcyB0cy5JbmRleGVkQWNjZXNzVHlwZU5vZGUpLm9iamVjdFR5cGVcbiAgICAgICAgKSxcbiAgICAgICAgaW5kZXg6IHJlc29sdmVUeXBlTm9kZShcbiAgICAgICAgICAodHlwZU5vZGUgYXMgdHMuSW5kZXhlZEFjY2Vzc1R5cGVOb2RlKS5pbmRleFR5cGVcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLlR1cGxlVHlwZTpcbiAgICAgIGlmICh0cy5pc1R1cGxlVHlwZU5vZGUodHlwZU5vZGUpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdDogXCJ0dXBsZS10eXBlXCIsXG4gICAgICAgICAgZWxlbWVudHM6IHR5cGVOb2RlLmVsZW1lbnRzLm1hcCgoZWxlbSkgPT4gcmVzb2x2ZVR5cGVOb2RlKGVsZW0pKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB0eXBlTm9kZSB1bmRlZmluZWRgKTtcbiAgfVxuXG4gIGNvbnNvbGUuZGVidWcodHlwZU5vZGUpO1xuICB0aHJvdyBuZXcgRXJyb3IoYOyVjCDsiJgg7JeG64qUIFN5bnRheEtpbmQgJHt0eXBlTm9kZS5raW5kfWApO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlUGFyYW1EZWMoXG4gIHBhcmFtRGVjOiB7XG4gICAgbmFtZTogdHMuQmluZGluZ05hbWU7XG4gICAgdHlwZTogdHMuVHlwZU5vZGU7XG4gICAgb3B0aW9uYWw/OiBib29sZWFuO1xuICAgIGRlZmF1bHREZWY/OiBzdHJpbmc7XG4gIH0sXG4gIGluZGV4OiBudW1iZXIgPSAwXG4pOiBBcGlQYXJhbSB7XG4gIGNvbnN0IG5hbWUgPSBwYXJhbURlYy5uYW1lIGFzIHRzLklkZW50aWZpZXI7XG4gIGNvbnN0IHR5cGUgPSByZXNvbHZlVHlwZU5vZGUocGFyYW1EZWMudHlwZSk7XG5cbiAgaWYgKG5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZGVidWcoeyBuYW1lLCB0eXBlLCBwYXJhbURlYyB9KTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogQXBpUGFyYW0gPSB7XG4gICAgbmFtZTogbmFtZS5lc2NhcGVkVGV4dCA/IG5hbWUuZXNjYXBlZFRleHQudG9TdHJpbmcoKSA6IGBub25hbWVBdCR7aW5kZXh9YCxcbiAgICB0eXBlLFxuICAgIG9wdGlvbmFsOiBwYXJhbURlYy5vcHRpb25hbCA9PT0gdHJ1ZSxcbiAgICBkZWZhdWx0RGVmOiBwYXJhbURlYz8uZGVmYXVsdERlZixcbiAgfTtcblxuICAvLyDqtazsobDrtoTtlbTtlaDri7nsnZgg6rK97JqwIO2DgOyeheydtOumhCDsgqzsmqlcbiAgaWYgKFxuICAgIHRzLmlzT2JqZWN0QmluZGluZ1BhdHRlcm4obmFtZSkgJiZcbiAgICB0cy5pc1R5cGVSZWZlcmVuY2VOb2RlKHBhcmFtRGVjLnR5cGUpICYmXG4gICAgdHMuaXNJZGVudGlmaWVyKHBhcmFtRGVjLnR5cGUudHlwZU5hbWUpXG4gICkge1xuICAgIHJlc3VsdC5uYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShwYXJhbURlYy50eXBlLnR5cGVOYW1lLnRleHQsIHRydWUpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gcHJpbnROb2RlKFxuICBub2RlOiB0cy5Ob2RlIHwgdW5kZWZpbmVkLFxuICBzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHByaW50ZXIgPSB0cy5jcmVhdGVQcmludGVyKHsgbmV3TGluZTogdHMuTmV3TGluZUtpbmQuTGluZUZlZWQgfSk7XG4gIHJldHVybiBwcmludGVyLnByaW50Tm9kZSh0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgbm9kZSwgc291cmNlRmlsZSk7XG59XG4iXSwibmFtZXMiOlsicmVhZEZpbGUiLCJ0cyIsInJlZ2lzdGVyZWRBcGlzIiwiaW5mbGVjdGlvbiIsImFzc2VydCIsInJlYWRBcGlzRnJvbUZpbGUiLCJmaWxlUGF0aCIsImVuZHNXaXRoIiwiRXJyb3IiLCJzb3VyY2VGaWxlIiwiY3JlYXRlU291cmNlRmlsZSIsInRvU3RyaW5nIiwiU2NyaXB0VGFyZ2V0IiwiTGF0ZXN0IiwibWV0aG9kcyIsIm1vZGVsTmFtZSIsIm1ldGhvZE5hbWUiLCJ2aXNpdG9yIiwibm9kZSIsImlzQ2xhc3NEZWNsYXJhdGlvbiIsIm5hbWUiLCJpc0lkZW50aWZpZXIiLCJlc2NhcGVkVGV4dCIsInJlcGxhY2UiLCJpc01ldGhvZERlY2xhcmF0aW9uIiwidHlwZVBhcmFtZXRlcnMiLCJtYXAiLCJ0eXBlUGFyYW0iLCJ0cCIsInQiLCJpZCIsImNvbnN0cmFpbnQiLCJyZXNvbHZlVHlwZU5vZGUiLCJ1bmRlZmluZWQiLCJwYXJhbWV0ZXJzIiwicGFyYW1EZWMiLCJpbmRleCIsImRlZmF1bHREZWYiLCJwcmludE5vZGUiLCJpbml0aWFsaXplciIsInJlc29sdmVQYXJhbURlYyIsInR5cGUiLCJvcHRpb25hbCIsInF1ZXN0aW9uVG9rZW4iLCJyZXR1cm5UeXBlIiwicHVzaCIsImZvckVhY2hDaGlsZCIsImxlbmd0aCIsImN1cnJlbnRNb2RlbEFwaXMiLCJmaWx0ZXIiLCJhcGkiLCJmaW5kIiwibWV0aG9kIiwiZXh0ZW5kZWRBcGlzIiwiZm91bmRNZXRob2QiLCJ0eXBlTm9kZSIsImtpbmQiLCJTeW50YXhLaW5kIiwiQW55S2V5d29yZCIsIlVua25vd25LZXl3b3JkIiwiU3RyaW5nS2V5d29yZCIsIk51bWJlcktleXdvcmQiLCJCb29sZWFuS2V5d29yZCIsIlVuZGVmaW5lZEtleXdvcmQiLCJOdWxsS2V5d29yZCIsIlZvaWRLZXl3b3JkIiwiTGl0ZXJhbFR5cGUiLCJsaXRlcmFsIiwiaXNTdHJpbmdMaXRlcmFsIiwidmFsdWUiLCJ0ZXh0IiwiaXNOdW1lcmljTGl0ZXJhbCIsIk51bWJlciIsIlRydWVLZXl3b3JkIiwiRmFsc2VLZXl3b3JkIiwiQXJyYXlUeXBlIiwiYXJyTm9kZSIsImVsZW1lbnRzVHlwZSIsImVsZW1lbnRUeXBlIiwiVHlwZUxpdGVyYWwiLCJsaXRlcmFsTm9kZSIsInByb3BzIiwibWVtYmVycyIsIm1lbWJlciIsImlzSW5kZXhTaWduYXR1cmVEZWNsYXJhdGlvbiIsInJlcyIsIlR5cGVSZWZlcmVuY2UiLCJ0eXBlTmFtZSIsImFyZ3MiLCJ0eXBlQXJndW1lbnRzIiwidHlwZUFyZyIsIlVuaW9uVHlwZSIsInR5cGVzIiwiSW50ZXJzZWN0aW9uVHlwZSIsIkluZGV4ZWRBY2Nlc3NUeXBlIiwib2JqZWN0Iiwib2JqZWN0VHlwZSIsImluZGV4VHlwZSIsIlR1cGxlVHlwZSIsImlzVHVwbGVUeXBlTm9kZSIsImVsZW1lbnRzIiwiZWxlbSIsImNvbnNvbGUiLCJkZWJ1ZyIsInJlc3VsdCIsImlzT2JqZWN0QmluZGluZ1BhdHRlcm4iLCJpc1R5cGVSZWZlcmVuY2VOb2RlIiwiY2FtZWxpemUiLCJwcmludGVyIiwiY3JlYXRlUHJpbnRlciIsIm5ld0xpbmUiLCJOZXdMaW5lS2luZCIsIkxpbmVGZWVkIiwiRW1pdEhpbnQiLCJVbnNwZWNpZmllZCJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsUUFBUSxRQUFRLG1CQUFjO0FBRXZDLE9BQU9DLFFBQVEsYUFBYTtBQUM1QixTQUFzQkMsY0FBYyxRQUFRLHVCQUFvQjtBQUNoRSxPQUFPQyxnQkFBZ0IsYUFBYTtBQUNwQyxPQUFPQyxZQUFZLFNBQVM7QUFHNUI7Ozs7O0NBS0MsR0FDRCxPQUFPLGVBQWVDLGlCQUFpQkMsUUFBc0I7SUFDM0QsSUFBSSxDQUFDQSxTQUFTQyxRQUFRLENBQUMsUUFBUTtRQUM3QixNQUFNLElBQUlDLE1BQU0sR0FBR0YsU0FBUyw2R0FBNkcsQ0FBQztJQUM1STtJQUVBLE1BQU1HLGFBQWFSLEdBQUdTLGdCQUFnQixDQUNwQ0osVUFDQSxBQUFDLENBQUEsTUFBTU4sU0FBU00sU0FBUSxFQUFHSyxRQUFRLElBQ25DVixHQUFHVyxZQUFZLENBQUNDLE1BQU07SUFHeEIsTUFBTUMsVUFBbUQsRUFBRTtJQUMzRCxJQUFJQyxZQUFvQjtJQUN4QixJQUFJQyxhQUFxQjtJQUN6QixNQUFNQyxVQUFVLENBQUNDO1FBQ2YsSUFBSWpCLEdBQUdrQixrQkFBa0IsQ0FBQ0QsT0FBTztZQUMvQixJQUFJQSxLQUFLRSxJQUFJLElBQUluQixHQUFHb0IsWUFBWSxDQUFDSCxLQUFLRSxJQUFJLEdBQUc7Z0JBQzNDTCxZQUFZRyxLQUFLRSxJQUFJLENBQUNFLFdBQVcsQ0FBQ1gsUUFBUSxHQUFHWSxPQUFPLENBQUMsVUFBVTtZQUNqRTtRQUNGO1FBQ0EsSUFBSXRCLEdBQUd1QixtQkFBbUIsQ0FBQ04sT0FBTztZQUNoQyxJQUFJakIsR0FBR29CLFlBQVksQ0FBQ0gsS0FBS0UsSUFBSSxHQUFHO2dCQUM5QkosYUFBYUUsS0FBS0UsSUFBSSxDQUFDRSxXQUFXLENBQUNYLFFBQVE7WUFDN0M7WUFFQSxNQUFNYyxpQkFBMkMsQUFDL0NQLENBQUFBLEtBQUtPLGNBQWMsSUFBSSxFQUFFLEFBQUQsRUFDeEJDLEdBQUcsQ0FBQyxDQUFDQztnQkFDTCxNQUFNQyxLQUFLRDtnQkFFWCxPQUFPO29CQUNMRSxHQUFHO29CQUNIQyxJQUFJRixHQUFHUixJQUFJLENBQUNFLFdBQVcsQ0FBQ1gsUUFBUTtvQkFDaENvQixZQUFZSCxHQUFHRyxVQUFVLEdBQ3JCQyxnQkFBZ0JKLEdBQUdHLFVBQVUsSUFDN0JFO2dCQUNOO1lBQ0Y7WUFDQSxNQUFNQyxhQUF5QmhCLEtBQUtnQixVQUFVLENBQUNSLEdBQUcsQ0FBQyxDQUFDUyxVQUFVQztnQkFDNUQsTUFBTUMsYUFBYUMsVUFBVUgsU0FBU0ksV0FBVyxFQUFFOUI7Z0JBRW5ELDBDQUEwQztnQkFFMUMsT0FBTytCLGdCQUNMO29CQUNFcEIsTUFBTWUsU0FBU2YsSUFBSTtvQkFDbkJxQixNQUFNTixTQUFTTSxJQUFJO29CQUNuQkMsVUFDRVAsU0FBU1EsYUFBYSxLQUFLVixhQUMzQkUsU0FBU0ksV0FBVyxLQUFLTjtvQkFDM0JJO2dCQUNGLEdBQ0FEO1lBRUo7WUFDQSxJQUFJbEIsS0FBS3VCLElBQUksS0FBS1IsV0FBVztnQkFDM0IsTUFBTSxJQUFJekIsTUFDUixDQUFDLG1CQUFtQixFQUFFTyxVQUFVLENBQUMsRUFBRUMsWUFBWTtZQUVuRDtZQUNBLE1BQU00QixhQUFhWixnQkFBZ0JkLEtBQUt1QixJQUFJO1lBRTVDM0IsUUFBUStCLElBQUksQ0FBQztnQkFDWDlCO2dCQUNBQztnQkFDQVM7Z0JBQ0FTO2dCQUNBVTtZQUNGO1FBQ0Y7UUFDQTNDLEdBQUc2QyxZQUFZLENBQUM1QixNQUFNRDtJQUN4QjtJQUNBQSxRQUFRUjtJQUVSLElBQUlLLFFBQVFpQyxNQUFNLEtBQUssR0FBRztRQUN4QixPQUFPLEVBQUU7SUFDWDtJQUVBLG9CQUFvQjtJQUNwQixNQUFNQyxtQkFBbUI5QyxlQUFlK0MsTUFBTSxDQUFDLENBQUNDO1FBQzlDLE9BQU9wQyxRQUFRcUMsSUFBSSxDQUNqQixDQUFDQyxTQUNDQSxPQUFPckMsU0FBUyxLQUFLbUMsSUFBSW5DLFNBQVMsSUFDbENxQyxPQUFPcEMsVUFBVSxLQUFLa0MsSUFBSWxDLFVBQVU7SUFFMUM7SUFDQSxJQUFJZ0MsaUJBQWlCRCxNQUFNLEtBQUssR0FBRztRQUNqQyw2REFBNkQ7UUFDN0QsNkRBQTZEO1FBQzdELHlCQUF5QjtRQUN6QixNQUFNLElBQUl2QyxNQUFNLENBQUMseUJBQXlCLEVBQUVGLFVBQVU7SUFDeEQ7SUFFQSwyQkFBMkI7SUFDM0IsTUFBTStDLGVBQWVMLGlCQUFpQnRCLEdBQUcsQ0FBQyxDQUFDd0I7UUFDekMsTUFBTUksY0FBY3hDLFFBQVFxQyxJQUFJLENBQzlCLENBQUNDLFNBQ0NBLE9BQU9yQyxTQUFTLEtBQUttQyxJQUFJbkMsU0FBUyxJQUNsQ3FDLE9BQU9wQyxVQUFVLEtBQUtrQyxJQUFJbEMsVUFBVTtRQUV4QyxPQUFPO1lBQ0wsR0FBR2tDLEdBQUc7WUFDTnpCLGdCQUFnQjZCLFlBQWE3QixjQUFjO1lBQzNDUyxZQUFZb0IsWUFBYXBCLFVBQVU7WUFDbkNVLFlBQVlVLFlBQWFWLFVBQVU7UUFDckM7SUFDRjtJQUNBLE9BQU9TO0FBQ1Q7QUFFQSxTQUFTckIsZ0JBQWdCdUIsUUFBcUI7SUFDNUMsT0FBUUEsVUFBVUM7UUFDaEIsS0FBS3ZELEdBQUd3RCxVQUFVLENBQUNDLFVBQVU7WUFDM0IsT0FBTztRQUNULEtBQUt6RCxHQUFHd0QsVUFBVSxDQUFDRSxjQUFjO1lBQy9CLE9BQU87UUFDVCxLQUFLMUQsR0FBR3dELFVBQVUsQ0FBQ0csYUFBYTtZQUM5QixPQUFPO1FBQ1QsS0FBSzNELEdBQUd3RCxVQUFVLENBQUNJLGFBQWE7WUFDOUIsT0FBTztRQUNULEtBQUs1RCxHQUFHd0QsVUFBVSxDQUFDSyxjQUFjO1lBQy9CLE9BQU87UUFDVCxLQUFLN0QsR0FBR3dELFVBQVUsQ0FBQ00sZ0JBQWdCO1lBQ2pDLE9BQU87UUFDVCxLQUFLOUQsR0FBR3dELFVBQVUsQ0FBQ08sV0FBVztZQUM1QixPQUFPO1FBQ1QsS0FBSy9ELEdBQUd3RCxVQUFVLENBQUNRLFdBQVc7WUFDNUIsT0FBTztRQUNULEtBQUtoRSxHQUFHd0QsVUFBVSxDQUFDUyxXQUFXO1lBQzVCLE1BQU1DLFVBQVUsQUFBQ1osU0FBZ0NZLE9BQU87WUFDeEQsSUFBSWxFLEdBQUdtRSxlQUFlLENBQUNELFVBQVU7Z0JBQy9CLE9BQU87b0JBQ0x0QyxHQUFHO29CQUNId0MsT0FBT0YsUUFBUUcsSUFBSTtnQkFDckI7WUFDRixPQUFPLElBQUlyRSxHQUFHc0UsZ0JBQWdCLENBQUNKLFVBQVU7Z0JBQ3ZDLE9BQU87b0JBQ0x0QyxHQUFHO29CQUNId0MsT0FBT0csT0FBT0wsUUFBUUcsSUFBSTtnQkFDNUI7WUFDRixPQUFPO2dCQUNMLElBQUlILFFBQVFYLElBQUksS0FBS3ZELEdBQUd3RCxVQUFVLENBQUNPLFdBQVcsRUFBRTtvQkFDOUMsT0FBTztnQkFDVCxPQUFPLElBQUlHLFFBQVFYLElBQUksS0FBS3ZELEdBQUd3RCxVQUFVLENBQUNNLGdCQUFnQixFQUFFO29CQUMxRCxPQUFPO2dCQUNULE9BQU8sSUFBSUksUUFBUVgsSUFBSSxLQUFLdkQsR0FBR3dELFVBQVUsQ0FBQ2dCLFdBQVcsRUFBRTtvQkFDckQsT0FBTztnQkFDVCxPQUFPLElBQUlOLFFBQVFYLElBQUksS0FBS3ZELEdBQUd3RCxVQUFVLENBQUNpQixZQUFZLEVBQUU7b0JBQ3RELE9BQU87Z0JBQ1Q7Z0JBQ0EsTUFBTSxJQUFJbEUsTUFBTTtZQUNsQjtRQUNGLEtBQUtQLEdBQUd3RCxVQUFVLENBQUNrQixTQUFTO1lBQzFCLE1BQU1DLFVBQVVyQjtZQUNoQixPQUFPO2dCQUNMMUIsR0FBRztnQkFDSGdELGNBQWM3QyxnQkFBZ0I0QyxRQUFRRSxXQUFXO1lBQ25EO1FBQ0YsS0FBSzdFLEdBQUd3RCxVQUFVLENBQUNzQixXQUFXO1lBQzVCLE1BQU1DLGNBQWN6QjtZQUNwQixPQUFPO2dCQUNMMUIsR0FBRztnQkFDSG9ELE9BQU9ELFlBQVlFLE9BQU8sQ0FBQ3hELEdBQUcsQ0FBQyxDQUFDeUQ7b0JBQzlCLElBQUlsRixHQUFHbUYsMkJBQTJCLENBQUNELFNBQVM7d0JBQzFDL0UsT0FBTytFLE9BQU9qRCxVQUFVLENBQUMsRUFBRTt3QkFDM0IsTUFBTW1ELE1BQU03QyxnQkFBZ0I7NEJBQzFCcEIsTUFBTStELE9BQU9qRCxVQUFVLENBQUMsRUFBRSxDQUFDZCxJQUFJOzRCQUMvQnFCLE1BQU0wQyxPQUFPakQsVUFBVSxDQUFDLEVBQUUsQ0FBQ08sSUFBSTt3QkFDakM7d0JBRUEsT0FBT0QsZ0JBQWdCOzRCQUNyQnBCLE1BQU07Z0NBQ0pFLGFBQWEsQ0FBQyxDQUFDLEVBQUUrRCxJQUFJakUsSUFBSSxHQUFHaUUsSUFBSTNDLFFBQVEsR0FBRyxNQUFNLEdBQUcsRUFBRSxFQUNwRDJDLElBQUk1QyxJQUFJLENBQ1QsQ0FBQyxDQUFDOzRCQUNMOzRCQUNBQSxNQUFNMEMsT0FBTzFDLElBQUk7d0JBQ25CO29CQUNGLE9BQU87d0JBQ0wsT0FBT0QsZ0JBQWdCOzRCQUNyQnBCLE1BQU0sQUFBQytELE9BQWdDL0QsSUFBSTs0QkFDM0NxQixNQUFNLEFBQUMwQyxPQUFnQzFDLElBQUk7NEJBQzNDQyxVQUNFLEFBQUN5QyxPQUFnQ3hDLGFBQWEsS0FBS1Y7d0JBQ3ZEO29CQUNGO2dCQUNGO1lBQ0Y7UUFDRixLQUFLaEMsR0FBR3dELFVBQVUsQ0FBQzZCLGFBQWE7WUFDOUIsT0FBTztnQkFDTHpELEdBQUc7Z0JBQ0hDLElBQUksQUFDRixBQUFDeUIsU0FBa0NnQyxRQUFRLENBQzNDakUsV0FBVyxDQUFDWCxRQUFRO2dCQUN0QjZFLE1BQU0sQUFBQ2pDLFNBQWtDa0MsYUFBYSxFQUFFL0QsSUFBSSxDQUFDZ0UsVUFDM0QxRCxnQkFBZ0IwRDtZQUVwQjtRQUNGLEtBQUt6RixHQUFHd0QsVUFBVSxDQUFDa0MsU0FBUztZQUMxQixPQUFPO2dCQUNMOUQsR0FBRztnQkFDSCtELE9BQU8sQUFBQ3JDLFNBQThCcUMsS0FBSyxDQUFDbEUsR0FBRyxDQUFDLENBQUNlLE9BQy9DVCxnQkFBZ0JTO1lBRXBCO1FBQ0YsS0FBS3hDLEdBQUd3RCxVQUFVLENBQUNvQyxnQkFBZ0I7WUFDakMsT0FBTztnQkFDTGhFLEdBQUc7Z0JBQ0grRCxPQUFPLEFBQUNyQyxTQUFxQ3FDLEtBQUssQ0FBQ2xFLEdBQUcsQ0FBQyxDQUFDZSxPQUN0RFQsZ0JBQWdCUztZQUVwQjtRQUNGLEtBQUt4QyxHQUFHd0QsVUFBVSxDQUFDcUMsaUJBQWlCO1lBQ2xDLE9BQU87Z0JBQ0xqRSxHQUFHO2dCQUNIa0UsUUFBUS9ELGdCQUNOLEFBQUN1QixTQUFzQ3lDLFVBQVU7Z0JBRW5ENUQsT0FBT0osZ0JBQ0wsQUFBQ3VCLFNBQXNDMEMsU0FBUztZQUVwRDtRQUNGLEtBQUtoRyxHQUFHd0QsVUFBVSxDQUFDeUMsU0FBUztZQUMxQixJQUFJakcsR0FBR2tHLGVBQWUsQ0FBQzVDLFdBQVc7Z0JBQ2hDLE9BQU87b0JBQ0wxQixHQUFHO29CQUNIdUUsVUFBVTdDLFNBQVM2QyxRQUFRLENBQUMxRSxHQUFHLENBQUMsQ0FBQzJFLE9BQVNyRSxnQkFBZ0JxRTtnQkFDNUQ7WUFDRjtZQUNBO1FBQ0YsS0FBS3BFO1lBQ0gsTUFBTSxJQUFJekIsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0lBQ3hDO0lBRUE4RixRQUFRQyxLQUFLLENBQUNoRDtJQUNkLE1BQU0sSUFBSS9DLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRStDLFNBQVNDLElBQUksRUFBRTtBQUN0RDtBQUVBLFNBQVNoQixnQkFDUEwsUUFLQyxFQUNEQyxRQUFnQixDQUFDO0lBRWpCLE1BQU1oQixPQUFPZSxTQUFTZixJQUFJO0lBQzFCLE1BQU1xQixPQUFPVCxnQkFBZ0JHLFNBQVNNLElBQUk7SUFFMUMsSUFBSXJCLFNBQVNhLFdBQVc7UUFDdEJxRSxRQUFRQyxLQUFLLENBQUM7WUFBRW5GO1lBQU1xQjtZQUFNTjtRQUFTO0lBQ3ZDO0lBRUEsTUFBTXFFLFNBQW1CO1FBQ3ZCcEYsTUFBTUEsS0FBS0UsV0FBVyxHQUFHRixLQUFLRSxXQUFXLENBQUNYLFFBQVEsS0FBSyxDQUFDLFFBQVEsRUFBRXlCLE9BQU87UUFDekVLO1FBQ0FDLFVBQVVQLFNBQVNPLFFBQVEsS0FBSztRQUNoQ0wsWUFBWUYsVUFBVUU7SUFDeEI7SUFFQSxxQkFBcUI7SUFDckIsSUFDRXBDLEdBQUd3RyxzQkFBc0IsQ0FBQ3JGLFNBQzFCbkIsR0FBR3lHLG1CQUFtQixDQUFDdkUsU0FBU00sSUFBSSxLQUNwQ3hDLEdBQUdvQixZQUFZLENBQUNjLFNBQVNNLElBQUksQ0FBQzhDLFFBQVEsR0FDdEM7UUFDQWlCLE9BQU9wRixJQUFJLEdBQUdqQixXQUFXd0csUUFBUSxDQUFDeEUsU0FBU00sSUFBSSxDQUFDOEMsUUFBUSxDQUFDakIsSUFBSSxFQUFFO0lBQ2pFO0lBRUEsT0FBT2tDO0FBQ1Q7QUFFQSxTQUFTbEUsVUFDUHBCLElBQXlCLEVBQ3pCVCxVQUF5QjtJQUV6QixJQUFJUyxTQUFTZSxXQUFXO1FBQ3RCLE9BQU9BO0lBQ1Q7SUFFQSxNQUFNMkUsVUFBVTNHLEdBQUc0RyxhQUFhLENBQUM7UUFBRUMsU0FBUzdHLEdBQUc4RyxXQUFXLENBQUNDLFFBQVE7SUFBQztJQUNwRSxPQUFPSixRQUFRdEUsU0FBUyxDQUFDckMsR0FBR2dILFFBQVEsQ0FBQ0MsV0FBVyxFQUFFaEcsTUFBTVQ7QUFDMUQifQ==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jZXIvYXBpLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiO1xuaW1wb3J0IHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyB0eXBlIEV4dGVuZGVkQXBpLCByZWdpc3RlcmVkQXBpcyB9IGZyb20gXCIuLi9hcGkvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgdmFsaWRhdGVNZXRob2ROYW1lIH0gZnJvbSBcIi4uL2FwaS92YWxpZGF0b3JcIjtcbmltcG9ydCB0eXBlIHsgQXBpUGFyYW0sIEFwaVBhcmFtVHlwZSB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBBYnNvbHV0ZVBhdGggfSBmcm9tIFwiLi4vdXRpbHMvcGF0aC11dGlsc1wiO1xuXG4vKipcbiAqIFR5cGVTY3JpcHQg7YyM7J287J2EIO2MjOyLse2VmOyXrCBBUEkg66mU7IaM65OcIOygleuztOulvCDstpTstpztlanri4jri6QuXG4gKiBAYXBpIOuNsOy9lOugiOydtO2EsOqwgCDrtpnsnYAg66mU7IaM65Oc65Ok7J2YIO2DgOyehSDsoJXrs7Trpbwg67aE7ISd7ZWp64uI64ukLlxuICogQHBhcmFtIGZpbGVQYXRoIC0g7YyM7Iux7ZWgIFR5cGVTY3JpcHQg7YyM7J287J2YIOygiOuMgCDqsr3roZxcbiAqIEByZXR1cm5zIEFQSSDrqZTshozrk5wg7KCV67O0IOuwsOyXtCAo7YOA7J6FIO2MjOudvOuvuO2EsCwg7YyM652866+47YSwLCDrpqzthLQg7YOA7J6FIOuTsSlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRBcGlzRnJvbUZpbGUoZmlsZVBhdGg6IEFic29sdXRlUGF0aCk6IFByb21pc2U8RXh0ZW5kZWRBcGlbXT4ge1xuICBpZiAoIWZpbGVQYXRoLmVuZHNXaXRoKFwiLnRzXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7ZmlsZVBhdGh9IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBUeXBlU2NyaXB0IGZpbGUuIFBsZWFzZSBjaGVjayB0aGUgZmlsZSBwYXRoLiBXZSBvbmx5IHN1cHBvcnQgcGFyc2luZyBUeXBlU2NyaXB0IGZpbGVzLmAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZUZpbGUgPSB0cy5jcmVhdGVTb3VyY2VGaWxlKFxuICAgIGZpbGVQYXRoLFxuICAgIChhd2FpdCByZWFkRmlsZShmaWxlUGF0aCkpLnRvU3RyaW5nKCksXG4gICAgdHMuU2NyaXB0VGFyZ2V0LkxhdGVzdCxcbiAgKTtcblxuICBjb25zdCBtZXRob2RzOiBPbWl0PEV4dGVuZGVkQXBpLCBcInBhdGhcIiB8IFwib3B0aW9uc1wiPltdID0gW107XG4gIGxldCBtb2RlbE5hbWU6IHN0cmluZyA9IFwiVW5rbm93bk1vZGVsXCI7XG4gIGxldCBtZXRob2ROYW1lOiBzdHJpbmcgPSBcInVua25vd25NZXRob2RcIjtcbiAgY29uc3QgdmlzaXRvciA9IChub2RlOiB0cy5Ob2RlKSA9PiB7XG4gICAgaWYgKHRzLmlzQ2xhc3NEZWNsYXJhdGlvbihub2RlKSkge1xuICAgICAgaWYgKG5vZGUubmFtZSAmJiB0cy5pc0lkZW50aWZpZXIobm9kZS5uYW1lKSkge1xuICAgICAgICBtb2RlbE5hbWUgPSBub2RlLm5hbWUuZXNjYXBlZFRleHQudG9TdHJpbmcoKS5yZXBsYWNlKC9DbGFzcyQvLCBcIlwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRzLmlzTWV0aG9kRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgIGlmICh0cy5pc0lkZW50aWZpZXIobm9kZS5uYW1lKSkge1xuICAgICAgICBtZXRob2ROYW1lID0gbm9kZS5uYW1lLmVzY2FwZWRUZXh0LnRvU3RyaW5nKCk7XG4gICAgICAgIHZhbGlkYXRlTWV0aG9kTmFtZShtZXRob2ROYW1lKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHlwZVBhcmFtZXRlcnM6IEFwaVBhcmFtVHlwZS5UeXBlUGFyYW1bXSA9IChub2RlLnR5cGVQYXJhbWV0ZXJzID8/IFtdKS5tYXAoXG4gICAgICAgICh0eXBlUGFyYW0pID0+IHtcbiAgICAgICAgICBjb25zdCB0cCA9IHR5cGVQYXJhbSBhcyB0cy5UeXBlUGFyYW1ldGVyRGVjbGFyYXRpb247XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdDogXCJ0eXBlLXBhcmFtXCIsXG4gICAgICAgICAgICBpZDogdHAubmFtZS5lc2NhcGVkVGV4dC50b1N0cmluZygpLFxuICAgICAgICAgICAgY29uc3RyYWludDogdHAuY29uc3RyYWludCA/IHJlc29sdmVUeXBlTm9kZSh0cC5jb25zdHJhaW50KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IEFwaVBhcmFtW10gPSBub2RlLnBhcmFtZXRlcnMubWFwKChwYXJhbURlYywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdERlZiA9IHByaW50Tm9kZShwYXJhbURlYy5pbml0aWFsaXplciwgc291cmNlRmlsZSk7XG5cbiAgICAgICAgLy8g6riw67O46rCS7J20IOyeiOuKlCDqsr3smrAgcGFyYW1EZWMudHlwZeqwgCB1bmRlZmluZWTroZwg64KY7Ji0XG5cbiAgICAgICAgcmV0dXJuIHJlc29sdmVQYXJhbURlYyhcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBwYXJhbURlYy5uYW1lLFxuICAgICAgICAgICAgdHlwZTogcGFyYW1EZWMudHlwZSBhcyB0cy5UeXBlTm9kZSxcbiAgICAgICAgICAgIG9wdGlvbmFsOiBwYXJhbURlYy5xdWVzdGlvblRva2VuICE9PSB1bmRlZmluZWQgfHwgcGFyYW1EZWMuaW5pdGlhbGl6ZXIgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRlZmF1bHREZWYsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbmRleCxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihg66as7YS0IO2DgOyeheydtCDquLDsnqzrkJjsp4Ag7JWK7J2AIOuplOyGjOuTnCAke21vZGVsTmFtZX0uJHttZXRob2ROYW1lfWApO1xuICAgICAgfVxuICAgICAgY29uc3QgcmV0dXJuVHlwZSA9IHJlc29sdmVUeXBlTm9kZShub2RlLnR5cGUpO1xuXG4gICAgICBtZXRob2RzLnB1c2goe1xuICAgICAgICBtb2RlbE5hbWUsXG4gICAgICAgIG1ldGhvZE5hbWUsXG4gICAgICAgIHR5cGVQYXJhbWV0ZXJzLFxuICAgICAgICBwYXJhbWV0ZXJzLFxuICAgICAgICByZXR1cm5UeXBlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRzLmZvckVhY2hDaGlsZChub2RlLCB2aXNpdG9yKTtcbiAgfTtcbiAgdmlzaXRvcihzb3VyY2VGaWxlKTtcblxuICBpZiAobWV0aG9kcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyDtmITsnqwg7YyM7J287J2YIOuTseuhneuQnCBBUEkg7ZWE7YSwXG4gIGNvbnN0IGN1cnJlbnRNb2RlbEFwaXMgPSByZWdpc3RlcmVkQXBpcy5maWx0ZXIoKGFwaSkgPT4ge1xuICAgIHJldHVybiBtZXRob2RzLmZpbmQoXG4gICAgICAobWV0aG9kKSA9PiBtZXRob2QubW9kZWxOYW1lID09PSBhcGkubW9kZWxOYW1lICYmIG1ldGhvZC5tZXRob2ROYW1lID09PSBhcGkubWV0aG9kTmFtZSxcbiAgICApO1xuICB9KTtcbiAgaWYgKGN1cnJlbnRNb2RlbEFwaXMubGVuZ3RoID09PSAwKSB7XG4gICAgLy8gY29uc3QgcCA9IHBhdGguam9pbih0bXBkaXIoKSwgXCJzb25hbXUtc3luY2VyLWVycm9yLmpzb25cIik7XG4gICAgLy8gd3JpdGVGaWxlU3luYyhwLCBKU09OLnN0cmluZ2lmeShyZWdpc3RlcmVkQXBpcywgbnVsbCwgMikpO1xuICAgIC8vIGV4ZWNTeW5jKGBvcGVuICR7cH1gKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYO2YhOyerCDtjIzsnbzsl5Ag7IKs7KCEIOuTseuhneuQnCBBUEnqsIAg7JeG7Iq164uI64ukLiAke2ZpbGVQYXRofWApO1xuICB9XG5cbiAgLy8g65Ox66Gd65CcIEFQSeyXkCDtmITsnqwg66mU7IaM65OcIO2DgOyehSDsoJXrs7Qg7ZmV7J6lXG4gIGNvbnN0IGV4dGVuZGVkQXBpcyA9IGN1cnJlbnRNb2RlbEFwaXMubWFwKChhcGkpID0+IHtcbiAgICBjb25zdCBmb3VuZE1ldGhvZCA9IG1ldGhvZHMuZmluZChcbiAgICAgIChtZXRob2QpID0+IG1ldGhvZC5tb2RlbE5hbWUgPT09IGFwaS5tb2RlbE5hbWUgJiYgbWV0aG9kLm1ldGhvZE5hbWUgPT09IGFwaS5tZXRob2ROYW1lLFxuICAgICk7XG4gICAgaWYgKCFmb3VuZE1ldGhvZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUEkgJHthcGkubW9kZWxOYW1lfS4ke2FwaS5tZXRob2ROYW1lfSBub3QgZm91bmQgaW4gJHtmaWxlUGF0aH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFwaSxcbiAgICAgIHR5cGVQYXJhbWV0ZXJzOiBmb3VuZE1ldGhvZD8udHlwZVBhcmFtZXRlcnMsXG4gICAgICBwYXJhbWV0ZXJzOiBmb3VuZE1ldGhvZD8ucGFyYW1ldGVycyxcbiAgICAgIHJldHVyblR5cGU6IGZvdW5kTWV0aG9kPy5yZXR1cm5UeXBlLFxuICAgIH07XG4gIH0pO1xuICByZXR1cm4gZXh0ZW5kZWRBcGlzO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlVHlwZU5vZGUodHlwZU5vZGU6IHRzLlR5cGVOb2RlKTogQXBpUGFyYW1UeXBlIHtcbiAgc3dpdGNoICh0eXBlTm9kZT8ua2luZCkge1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5BbnlLZXl3b3JkOlxuICAgICAgcmV0dXJuIFwiYW55XCI7XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLlVua25vd25LZXl3b3JkOlxuICAgICAgcmV0dXJuIFwidW5rbm93blwiO1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5TdHJpbmdLZXl3b3JkOlxuICAgICAgcmV0dXJuIFwic3RyaW5nXCI7XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLk51bWJlcktleXdvcmQ6XG4gICAgICByZXR1cm4gXCJudW1iZXJcIjtcbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuQm9vbGVhbktleXdvcmQ6XG4gICAgICByZXR1cm4gXCJib29sZWFuXCI7XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLlVuZGVmaW5lZEtleXdvcmQ6XG4gICAgICByZXR1cm4gXCJ1bmRlZmluZWRcIjtcbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuTnVsbEtleXdvcmQ6XG4gICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLlZvaWRLZXl3b3JkOlxuICAgICAgcmV0dXJuIFwidm9pZFwiO1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5MaXRlcmFsVHlwZToge1xuICAgICAgY29uc3QgbGl0ZXJhbCA9ICh0eXBlTm9kZSBhcyB0cy5MaXRlcmFsVHlwZU5vZGUpLmxpdGVyYWw7XG4gICAgICBpZiAodHMuaXNTdHJpbmdMaXRlcmFsKGxpdGVyYWwpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdDogXCJzdHJpbmctbGl0ZXJhbFwiLFxuICAgICAgICAgIHZhbHVlOiBsaXRlcmFsLnRleHQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKHRzLmlzTnVtZXJpY0xpdGVyYWwobGl0ZXJhbCkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0OiBcIm51bWVyaWMtbGl0ZXJhbFwiLFxuICAgICAgICAgIHZhbHVlOiBOdW1iZXIobGl0ZXJhbC50ZXh0KSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChsaXRlcmFsLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuTnVsbEtleXdvcmQpIHtcbiAgICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobGl0ZXJhbC5raW5kID09PSB0cy5TeW50YXhLaW5kLlVuZGVmaW5lZEtleXdvcmQpIHtcbiAgICAgICAgICByZXR1cm4gXCJ1bmRlZmluZWRcIjtcbiAgICAgICAgfSBlbHNlIGlmIChsaXRlcmFsLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVHJ1ZUtleXdvcmQpIHtcbiAgICAgICAgICByZXR1cm4gXCJ0cnVlXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobGl0ZXJhbC5raW5kID09PSB0cy5TeW50YXhLaW5kLkZhbHNlS2V5d29yZCkge1xuICAgICAgICAgIHJldHVybiBcImZhbHNlXCI7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwi7JWMIOyImCDsl4bripQg66as7YSw65+0XCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuQXJyYXlUeXBlOiB7XG4gICAgICBjb25zdCBhcnJOb2RlID0gdHlwZU5vZGUgYXMgdHMuQXJyYXlUeXBlTm9kZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHQ6IFwiYXJyYXlcIixcbiAgICAgICAgZWxlbWVudHNUeXBlOiByZXNvbHZlVHlwZU5vZGUoYXJyTm9kZS5lbGVtZW50VHlwZSksXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuVHlwZUxpdGVyYWw6IHtcbiAgICAgIGNvbnN0IGxpdGVyYWxOb2RlID0gdHlwZU5vZGUgYXMgdHMuVHlwZUxpdGVyYWxOb2RlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdDogXCJvYmplY3RcIixcbiAgICAgICAgcHJvcHM6IGxpdGVyYWxOb2RlLm1lbWJlcnMubWFwKChtZW1iZXIpID0+IHtcbiAgICAgICAgICBpZiAodHMuaXNJbmRleFNpZ25hdHVyZURlY2xhcmF0aW9uKG1lbWJlcikpIHtcbiAgICAgICAgICAgIGFzc2VydChtZW1iZXIucGFyYW1ldGVyc1swXSk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSByZXNvbHZlUGFyYW1EZWMoe1xuICAgICAgICAgICAgICBuYW1lOiBtZW1iZXIucGFyYW1ldGVyc1swXS5uYW1lIGFzIHRzLklkZW50aWZpZXIsXG4gICAgICAgICAgICAgIHR5cGU6IG1lbWJlci5wYXJhbWV0ZXJzWzBdLnR5cGUgYXMgdHMuVHlwZU5vZGUsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVQYXJhbURlYyh7XG4gICAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgICBlc2NhcGVkVGV4dDogYFske3Jlcy5uYW1lfSR7cmVzLm9wdGlvbmFsID8gXCI/XCIgOiBcIlwifTogJHtyZXMudHlwZX1dYCxcbiAgICAgICAgICAgICAgfSBhcyB0cy5JZGVudGlmaWVyLFxuICAgICAgICAgICAgICB0eXBlOiBtZW1iZXIudHlwZSBhcyB0cy5UeXBlTm9kZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZVBhcmFtRGVjKHtcbiAgICAgICAgICAgICAgbmFtZTogKG1lbWJlciBhcyB0cy5Qcm9wZXJ0eVNpZ25hdHVyZSkubmFtZSBhcyB0cy5JZGVudGlmaWVyLFxuICAgICAgICAgICAgICB0eXBlOiAobWVtYmVyIGFzIHRzLlByb3BlcnR5U2lnbmF0dXJlKS50eXBlIGFzIHRzLlR5cGVOb2RlLFxuICAgICAgICAgICAgICBvcHRpb25hbDogKG1lbWJlciBhcyB0cy5Qcm9wZXJ0eVNpZ25hdHVyZSkucXVlc3Rpb25Ub2tlbiAhPT0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgdHMuU3ludGF4S2luZC5UeXBlUmVmZXJlbmNlOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdDogXCJyZWZcIixcbiAgICAgICAgaWQ6ICgodHlwZU5vZGUgYXMgdHMuVHlwZVJlZmVyZW5jZU5vZGUpLnR5cGVOYW1lIGFzIHRzLklkZW50aWZpZXIpLmVzY2FwZWRUZXh0LnRvU3RyaW5nKCksXG4gICAgICAgIGFyZ3M6ICh0eXBlTm9kZSBhcyB0cy5UeXBlUmVmZXJlbmNlTm9kZSkudHlwZUFyZ3VtZW50cz8ubWFwKCh0eXBlQXJnKSA9PlxuICAgICAgICAgIHJlc29sdmVUeXBlTm9kZSh0eXBlQXJnKSxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSB0cy5TeW50YXhLaW5kLlVuaW9uVHlwZTpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHQ6IFwidW5pb25cIixcbiAgICAgICAgdHlwZXM6ICh0eXBlTm9kZSBhcyB0cy5VbmlvblR5cGVOb2RlKS50eXBlcy5tYXAoKHR5cGUpID0+IHJlc29sdmVUeXBlTm9kZSh0eXBlKSksXG4gICAgICB9O1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5JbnRlcnNlY3Rpb25UeXBlOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdDogXCJpbnRlcnNlY3Rpb25cIixcbiAgICAgICAgdHlwZXM6ICh0eXBlTm9kZSBhcyB0cy5JbnRlcnNlY3Rpb25UeXBlTm9kZSkudHlwZXMubWFwKCh0eXBlKSA9PiByZXNvbHZlVHlwZU5vZGUodHlwZSkpLFxuICAgICAgfTtcbiAgICBjYXNlIHRzLlN5bnRheEtpbmQuSW5kZXhlZEFjY2Vzc1R5cGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0OiBcImluZGV4ZWQtYWNjZXNzXCIsXG4gICAgICAgIG9iamVjdDogcmVzb2x2ZVR5cGVOb2RlKCh0eXBlTm9kZSBhcyB0cy5JbmRleGVkQWNjZXNzVHlwZU5vZGUpLm9iamVjdFR5cGUpLFxuICAgICAgICBpbmRleDogcmVzb2x2ZVR5cGVOb2RlKCh0eXBlTm9kZSBhcyB0cy5JbmRleGVkQWNjZXNzVHlwZU5vZGUpLmluZGV4VHlwZSksXG4gICAgICB9O1xuICAgIGNhc2UgdHMuU3ludGF4S2luZC5UdXBsZVR5cGU6XG4gICAgICBpZiAodHMuaXNUdXBsZVR5cGVOb2RlKHR5cGVOb2RlKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHQ6IFwidHVwbGUtdHlwZVwiLFxuICAgICAgICAgIGVsZW1lbnRzOiB0eXBlTm9kZS5lbGVtZW50cy5tYXAoKGVsZW0pID0+IHJlc29sdmVUeXBlTm9kZShlbGVtKSksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdHlwZU5vZGUgdW5kZWZpbmVkYCk7XG4gIH1cblxuICBjb25zb2xlLmRlYnVnKHR5cGVOb2RlKTtcbiAgdGhyb3cgbmV3IEVycm9yKGDslYwg7IiYIOyXhuuKlCBTeW50YXhLaW5kICR7dHlwZU5vZGUua2luZH1gKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVBhcmFtRGVjKFxuICBwYXJhbURlYzoge1xuICAgIG5hbWU6IHRzLkJpbmRpbmdOYW1lO1xuICAgIHR5cGU6IHRzLlR5cGVOb2RlO1xuICAgIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgICBkZWZhdWx0RGVmPzogc3RyaW5nO1xuICB9LFxuICBpbmRleDogbnVtYmVyID0gMCxcbik6IEFwaVBhcmFtIHtcbiAgY29uc3QgbmFtZSA9IHBhcmFtRGVjLm5hbWUgYXMgdHMuSWRlbnRpZmllcjtcbiAgY29uc3QgdHlwZSA9IHJlc29sdmVUeXBlTm9kZShwYXJhbURlYy50eXBlKTtcblxuICBpZiAobmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc29sZS5kZWJ1Zyh7IG5hbWUsIHR5cGUsIHBhcmFtRGVjIH0pO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBBcGlQYXJhbSA9IHtcbiAgICBuYW1lOiBuYW1lLmVzY2FwZWRUZXh0ID8gbmFtZS5lc2NhcGVkVGV4dC50b1N0cmluZygpIDogYG5vbmFtZUF0JHtpbmRleH1gLFxuICAgIHR5cGUsXG4gICAgb3B0aW9uYWw6IHBhcmFtRGVjLm9wdGlvbmFsID09PSB0cnVlLFxuICAgIGRlZmF1bHREZWY6IHBhcmFtRGVjPy5kZWZhdWx0RGVmLFxuICB9O1xuXG4gIC8vIOq1rOyhsOu2hO2VtO2VoOuLueydmCDqsr3smrAg7YOA7J6F7J2066aEIOyCrOyaqVxuICBpZiAoXG4gICAgdHMuaXNPYmplY3RCaW5kaW5nUGF0dGVybihuYW1lKSAmJlxuICAgIHRzLmlzVHlwZVJlZmVyZW5jZU5vZGUocGFyYW1EZWMudHlwZSkgJiZcbiAgICB0cy5pc0lkZW50aWZpZXIocGFyYW1EZWMudHlwZS50eXBlTmFtZSlcbiAgKSB7XG4gICAgcmVzdWx0Lm5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHBhcmFtRGVjLnR5cGUudHlwZU5hbWUudGV4dCwgdHJ1ZSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBwcmludE5vZGUobm9kZTogdHMuTm9kZSB8IHVuZGVmaW5lZCwgc291cmNlRmlsZTogdHMuU291cmNlRmlsZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcHJpbnRlciA9IHRzLmNyZWF0ZVByaW50ZXIoeyBuZXdMaW5lOiB0cy5OZXdMaW5lS2luZC5MaW5lRmVlZCB9KTtcbiAgcmV0dXJuIHByaW50ZXIucHJpbnROb2RlKHRzLkVtaXRIaW50LlVuc3BlY2lmaWVkLCBub2RlLCBzb3VyY2VGaWxlKTtcbn1cbiJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZWFkRmlsZSIsImluZmxlY3Rpb24iLCJ0cyIsInJlZ2lzdGVyZWRBcGlzIiwidmFsaWRhdGVNZXRob2ROYW1lIiwicmVhZEFwaXNGcm9tRmlsZSIsImZpbGVQYXRoIiwiZW5kc1dpdGgiLCJFcnJvciIsInNvdXJjZUZpbGUiLCJjcmVhdGVTb3VyY2VGaWxlIiwidG9TdHJpbmciLCJTY3JpcHRUYXJnZXQiLCJMYXRlc3QiLCJtZXRob2RzIiwibW9kZWxOYW1lIiwibWV0aG9kTmFtZSIsInZpc2l0b3IiLCJub2RlIiwiaXNDbGFzc0RlY2xhcmF0aW9uIiwibmFtZSIsImlzSWRlbnRpZmllciIsImVzY2FwZWRUZXh0IiwicmVwbGFjZSIsImlzTWV0aG9kRGVjbGFyYXRpb24iLCJ0eXBlUGFyYW1ldGVycyIsIm1hcCIsInR5cGVQYXJhbSIsInRwIiwidCIsImlkIiwiY29uc3RyYWludCIsInJlc29sdmVUeXBlTm9kZSIsInVuZGVmaW5lZCIsInBhcmFtZXRlcnMiLCJwYXJhbURlYyIsImluZGV4IiwiZGVmYXVsdERlZiIsInByaW50Tm9kZSIsImluaXRpYWxpemVyIiwicmVzb2x2ZVBhcmFtRGVjIiwidHlwZSIsIm9wdGlvbmFsIiwicXVlc3Rpb25Ub2tlbiIsInJldHVyblR5cGUiLCJwdXNoIiwiZm9yRWFjaENoaWxkIiwibGVuZ3RoIiwiY3VycmVudE1vZGVsQXBpcyIsImZpbHRlciIsImFwaSIsImZpbmQiLCJtZXRob2QiLCJleHRlbmRlZEFwaXMiLCJmb3VuZE1ldGhvZCIsInR5cGVOb2RlIiwia2luZCIsIlN5bnRheEtpbmQiLCJBbnlLZXl3b3JkIiwiVW5rbm93bktleXdvcmQiLCJTdHJpbmdLZXl3b3JkIiwiTnVtYmVyS2V5d29yZCIsIkJvb2xlYW5LZXl3b3JkIiwiVW5kZWZpbmVkS2V5d29yZCIsIk51bGxLZXl3b3JkIiwiVm9pZEtleXdvcmQiLCJMaXRlcmFsVHlwZSIsImxpdGVyYWwiLCJpc1N0cmluZ0xpdGVyYWwiLCJ2YWx1ZSIsInRleHQiLCJpc051bWVyaWNMaXRlcmFsIiwiTnVtYmVyIiwiVHJ1ZUtleXdvcmQiLCJGYWxzZUtleXdvcmQiLCJBcnJheVR5cGUiLCJhcnJOb2RlIiwiZWxlbWVudHNUeXBlIiwiZWxlbWVudFR5cGUiLCJUeXBlTGl0ZXJhbCIsImxpdGVyYWxOb2RlIiwicHJvcHMiLCJtZW1iZXJzIiwibWVtYmVyIiwiaXNJbmRleFNpZ25hdHVyZURlY2xhcmF0aW9uIiwicmVzIiwiVHlwZVJlZmVyZW5jZSIsInR5cGVOYW1lIiwiYXJncyIsInR5cGVBcmd1bWVudHMiLCJ0eXBlQXJnIiwiVW5pb25UeXBlIiwidHlwZXMiLCJJbnRlcnNlY3Rpb25UeXBlIiwiSW5kZXhlZEFjY2Vzc1R5cGUiLCJvYmplY3QiLCJvYmplY3RUeXBlIiwiaW5kZXhUeXBlIiwiVHVwbGVUeXBlIiwiaXNUdXBsZVR5cGVOb2RlIiwiZWxlbWVudHMiLCJlbGVtIiwiY29uc29sZSIsImRlYnVnIiwicmVzdWx0IiwiaXNPYmplY3RCaW5kaW5nUGF0dGVybiIsImlzVHlwZVJlZmVyZW5jZU5vZGUiLCJjYW1lbGl6ZSIsInByaW50ZXIiLCJjcmVhdGVQcmludGVyIiwibmV3TGluZSIsIk5ld0xpbmVLaW5kIiwiTGluZUZlZWQiLCJFbWl0SGludCIsIlVuc3BlY2lmaWVkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFZLFNBQVM7QUFDNUIsU0FBU0MsUUFBUSxRQUFRLG1CQUFjO0FBQ3ZDLE9BQU9DLGdCQUFnQixhQUFhO0FBQ3BDLE9BQU9DLFFBQVEsYUFBYTtBQUM1QixTQUEyQkMsY0FBYyxRQUFRLHVCQUFvQjtBQUNyRSxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBbUI7QUFJdEQ7Ozs7O0NBS0MsR0FDRCxPQUFPLGVBQWVDLGlCQUFpQkMsUUFBc0I7SUFDM0QsSUFBSSxDQUFDQSxTQUFTQyxRQUFRLENBQUMsUUFBUTtRQUM3QixNQUFNLElBQUlDLE1BQ1IsR0FBR0YsU0FBUyw2R0FBNkcsQ0FBQztJQUU5SDtJQUVBLE1BQU1HLGFBQWFQLEdBQUdRLGdCQUFnQixDQUNwQ0osVUFDQSxBQUFDLENBQUEsTUFBTU4sU0FBU00sU0FBUSxFQUFHSyxRQUFRLElBQ25DVCxHQUFHVSxZQUFZLENBQUNDLE1BQU07SUFHeEIsTUFBTUMsVUFBbUQsRUFBRTtJQUMzRCxJQUFJQyxZQUFvQjtJQUN4QixJQUFJQyxhQUFxQjtJQUN6QixNQUFNQyxVQUFVLENBQUND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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PathLike } from "fs";
|
|
2
|
-
import { AbsolutePath } from "../utils/path-utils";
|
|
1
|
+
import { type PathLike } from "fs";
|
|
2
|
+
import type { AbsolutePath } from "../utils/path-utils";
|
|
3
3
|
/**
|
|
4
4
|
* 체크섬 파일에 저장된 내용과 현재 실제 파일의 체크섬을 비교하여 변경된 파일을 찾습니다.
|
|
5
5
|
* @returns 변경된 파일 경로 배열. 프로젝트 루트부터 슬래시로 시작합니다. 예시: "/src/application/user/user.model.ts"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../src/syncer/checksum.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,QAAQ,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../src/syncer/checksum.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,IAAI,CAAC;AAOrD,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AASzE;;;GAGG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAU9E;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CASjF"}
|
package/dist/syncer/checksum.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import { globAsync } from "../utils/async-utils.js";
|
|
3
|
-
import { createReadStream } from "fs";
|
|
4
|
-
import { readFile, writeFile } from "node:fs/promises";
|
|
5
|
-
import { exists } from "../utils/fs-utils.js";
|
|
6
1
|
import crypto from "crypto";
|
|
7
2
|
import equal from "fast-deep-equal";
|
|
8
|
-
import
|
|
3
|
+
import { createReadStream } from "fs";
|
|
4
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
5
|
+
import path from "path";
|
|
6
|
+
import { isEqual } from "radashi";
|
|
9
7
|
import { Sonamu } from "../api/sonamu.js";
|
|
8
|
+
import { globAsync } from "../utils/async-utils.js";
|
|
9
|
+
import { exists } from "../utils/fs-utils.js";
|
|
10
|
+
import { differenceWith } from "../utils/utils.js";
|
|
10
11
|
import { getChecksumPatternGroupInAbsolutePath } from "./file-patterns.js";
|
|
11
12
|
/**
|
|
12
13
|
* 체크섬 파일에 저장된 내용과 현재 실제 파일의 체크섬을 비교하여 변경된 파일을 찾습니다.
|
|
@@ -18,8 +19,7 @@ import { getChecksumPatternGroupInAbsolutePath } from "./file-patterns.js";
|
|
|
18
19
|
if (isSame) {
|
|
19
20
|
return [];
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
return diff.map((r)=>r.path);
|
|
22
|
+
return differenceWith(calculatedChecksums, savedChecksums, isEqual).map((r)=>r.path);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* 체크섬을 갱신합니다.
|
|
@@ -86,13 +86,13 @@ async function getChecksumOfFile(filePath) {
|
|
|
86
86
|
const hash = crypto.createHash("sha1");
|
|
87
87
|
const input = createReadStream(filePath);
|
|
88
88
|
input.on("error", reject);
|
|
89
|
-
input.on("data",
|
|
89
|
+
input.on("data", (chunk)=>{
|
|
90
90
|
hash.update(chunk);
|
|
91
91
|
});
|
|
92
|
-
input.on("close",
|
|
92
|
+
input.on("close", ()=>{
|
|
93
93
|
resolve(hash.digest("hex"));
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jZXIvY2hlY2tzdW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuLi91dGlscy9hc3luYy11dGlsc1wiO1xuaW1wb3J0IHsgY3JlYXRlUmVhZFN0cmVhbSwgUGF0aExpa2UgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IHJlYWRGaWxlLCB3cml0ZUZpbGUgfSBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGV4aXN0cyB9IGZyb20gXCIuLi91dGlscy9mcy11dGlsc1wiO1xuXG5pbXBvcnQgY3J5cHRvIGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCBlcXVhbCBmcm9tIFwiZmFzdC1kZWVwLWVxdWFsXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi9hcGkvc29uYW11XCI7XG5pbXBvcnQge1xuICBBYnNvbHV0ZVBhdGgsXG4gIEFwaVJlbGF0aXZlUGF0aCxcbn0gZnJvbSBcIi4uL3V0aWxzL3BhdGgtdXRpbHNcIjtcbmltcG9ydCB7IGdldENoZWNrc3VtUGF0dGVybkdyb3VwSW5BYnNvbHV0ZVBhdGggfSBmcm9tIFwiLi9maWxlLXBhdHRlcm5zXCI7XG5cbnR5cGUgUGF0aEFuZENoZWNrc3VtID0ge1xuICBwYXRoOiBBYnNvbHV0ZVBhdGg7XG4gIGNoZWNrc3VtOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIOyytO2BrOyErCDtjIzsnbzsl5Ag7KCA7J6l65CcIOuCtOyaqeqzvCDtmITsnqwg7Iuk7KCcIO2MjOydvOydmCDssrTtgazshKzsnYQg67mE6rWQ7ZWY7JesIOuzgOqyveuQnCDtjIzsnbzsnYQg7LC+7Iq164uI64ukLlxuICogQHJldHVybnMg67OA6rK965CcIO2MjOydvCDqsr3roZwg67Cw7Je0LiDtlITroZzsoJ3tirgg66Oo7Yq467aA7YSwIOyKrOuemOyLnOuhnCDsi5zsnpHtlanri4jri6QuIOyYiOyLnDogXCIvc3JjL2FwcGxpY2F0aW9uL3VzZXIvdXNlci5tb2RlbC50c1wiXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kQ2hhbmdlZEZpbGVzVXNpbmdDaGVja3N1bXMoKTogUHJvbWlzZTxcbiAgQWJzb2x1dGVQYXRoW11cbj4ge1xuICBjb25zdCBjYWxjdWxhdGVkQ2hlY2tzdW1zID0gYXdhaXQgZ2V0Q3VycmVudENoZWNrc3VtcygpO1xuICBjb25zdCBzYXZlZENoZWNrc3VtcyA9IGF3YWl0IGdldFByZXZpb3VzQ2hlY2tzdW1zKCk7XG5cbiAgY29uc3QgaXNTYW1lID0gZXF1YWwoY2FsY3VsYXRlZENoZWNrc3Vtcywgc2F2ZWRDaGVja3N1bXMpO1xuICBpZiAoaXNTYW1lKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgZGlmZiA9IF8uZGlmZmVyZW5jZVdpdGgoY2FsY3VsYXRlZENoZWNrc3Vtcywgc2F2ZWRDaGVja3N1bXMsIF8uaXNFcXVhbCk7XG5cbiAgcmV0dXJuIGRpZmYubWFwKChyKSA9PiByLnBhdGgpO1xufVxuXG4vKipcbiAqIOyytO2BrOyErOydhCDqsLHsi6Dtlanri4jri6QuXG4gKiDtmITsnqwg7YyM7J2865Ok7J2YIOyytO2BrOyErOydhCDqs4TsgrDtlbTshJwg6rWs7ZWcIOuLpOydjCwg7LK07YGs7ISsIO2MjOydvOyXkCDsoIDsnqXrkJwg64K07Jqp6rO8IOuLpOultOuptCDssrTtgazshKwg7YyM7J287J2EIOqwseyLoO2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmV3Q2hlY2tzdW1zKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjYWxjdWxhdGVkQ2hlY2tzdW1zID0gYXdhaXQgZ2V0Q3VycmVudENoZWNrc3VtcygpO1xuICBjb25zdCBzYXZlZENoZWNrc3VtcyA9IGF3YWl0IGdldFByZXZpb3VzQ2hlY2tzdW1zKCk7XG5cbiAgY29uc3QgaXNTYW1lID0gZXF1YWwoY2FsY3VsYXRlZENoZWNrc3Vtcywgc2F2ZWRDaGVja3N1bXMpO1xuICBpZiAoaXNTYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXdhaXQgc2F2ZUNoZWNrc3VtcyhjYWxjdWxhdGVkQ2hlY2tzdW1zKTtcbn1cblxuLyoqXG4gKiDrkZAg7YyM7J287J2YIOuCtOyaqeydtCDqsJnsnYDsp4Ag7LK07YGs7ISs7Jy866GcIOu5hOq1kO2VqeuLiOuLpC5cbiAqIOunjOyVvSDtjIzsnbzsnbQg65GYIOykkSDtlZjrgpjrnbzrj4Qg7JeG64uk66m0IOu5hOq1kCDrtojqsIDroZwgZmFsc2Ug67CY7ZmY7ZWp64uI64ukLlxuICogQHBhcmFtIG9uZSDtjIzsnbwg6rK966GcXG4gKiBAcGFyYW0gdHdvIO2MjOydvCDqsr3roZxcbiAqIEByZXR1cm5zIGJvb2xlYW5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFyZUZpbGVzU2FtZShcbiAgb25lOiBQYXRoTGlrZSxcbiAgdHdvOiBQYXRoTGlrZVxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmICghKGF3YWl0IGV4aXN0cyhvbmUpKSB8fCAhKGF3YWl0IGV4aXN0cyh0d28pKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IG9uZUNoZWNrc3VtID0gYXdhaXQgZ2V0Q2hlY2tzdW1PZkZpbGUob25lKTtcbiAgY29uc3QgdHdvQ2hlY2tzdW0gPSBhd2FpdCBnZXRDaGVja3N1bU9mRmlsZSh0d28pO1xuXG4gIHJldHVybiBvbmVDaGVja3N1bSA9PT0gdHdvQ2hlY2tzdW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRDaGVja3N1bXMoKTogUHJvbWlzZTxQYXRoQW5kQ2hlY2tzdW1bXT4ge1xuICBjb25zdCBmaWxlUGF0aHMgPSAoXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBPYmplY3QuZW50cmllcyhnZXRDaGVja3N1bVBhdHRlcm5Hcm91cEluQWJzb2x1dGVQYXRoKCkpLm1hcChcbiAgICAgICAgYXN5bmMgKFtfZmlsZVR5cGUsIHBhdHRlcm5dKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGdsb2JBc3luYyhwYXR0ZXJuKSBhcyBQcm9taXNlPEFic29sdXRlUGF0aFtdPjtcbiAgICAgICAgfVxuICAgICAgKVxuICAgIClcbiAgKVxuICAgIC5mbGF0KClcbiAgICAuc29ydCgpO1xuXG4gIGNvbnN0IGZpbGVDaGVja3N1bXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBmaWxlUGF0aHMubWFwKGFzeW5jIChmaWxlUGF0aCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICAgIGNoZWNrc3VtOiBhd2FpdCBnZXRDaGVja3N1bU9mRmlsZShmaWxlUGF0aCksXG4gICAgICB9O1xuICAgIH0pXG4gICk7XG5cbiAgcmV0dXJuIGZpbGVDaGVja3N1bXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFByZXZpb3VzQ2hlY2tzdW1zKCk6IFByb21pc2U8UGF0aEFuZENoZWNrc3VtW10+IHtcbiAgY29uc3QgY2hlY2tzdW1GaWxlUGF0aCA9IGdldENoZWNrc3VtRmlsZVBhdGgoKTtcbiAgaWYgKCEoYXdhaXQgZXhpc3RzKGNoZWNrc3VtRmlsZVBhdGgpKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHByZXZpb3VzQ2hlY2tzdW1zID0gSlNPTi5wYXJzZShcbiAgICBhd2FpdCByZWFkRmlsZShjaGVja3N1bUZpbGVQYXRoLCBcInV0Zi04XCIpXG4gICkubWFwKChyOiB7IHBhdGg6IEFwaVJlbGF0aXZlUGF0aDsgY2hlY2tzdW06IHN0cmluZyB9KSA9PiAoe1xuICAgIHBhdGg6IHBhdGguam9pbihTb25hbXUuYXBpUm9vdFBhdGgsIHIucGF0aCksIC8vIOyytO2BrOyErCDtjIzsnbzsl5DshJwg7J297J2EIOuVjDogQVBJIOyDgeuMgCDqsr3roZwg4oaSIOygiOuMgCDqsr3roZxcbiAgICBjaGVja3N1bTogci5jaGVja3N1bSxcbiAgfSkpIGFzIFBhdGhBbmRDaGVja3N1bVtdO1xuICByZXR1cm4gcHJldmlvdXNDaGVja3N1bXM7XG59XG5cbmZ1bmN0aW9uIGdldENoZWNrc3VtRmlsZVBhdGgoKTogQWJzb2x1dGVQYXRoIHtcbiAgcmV0dXJuIHBhdGguam9pbihTb25hbXUuYXBpUm9vdFBhdGgsIFwic29uYW11LmxvY2tcIikgYXMgQWJzb2x1dGVQYXRoO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzYXZlQ2hlY2tzdW1zKGNoZWNrc3VtczogUGF0aEFuZENoZWNrc3VtW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY2hlY2tzdW1GaWxlUGF0aCA9IGdldENoZWNrc3VtRmlsZVBhdGgoKTtcbiAgYXdhaXQgd3JpdGVGaWxlKFxuICAgIGNoZWNrc3VtRmlsZVBhdGgsXG4gICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICBjaGVja3N1bXMubWFwKChyKSA9PiAoe1xuICAgICAgICBwYXRoOiBwYXRoLnJlbGF0aXZlKFNvbmFtdS5hcGlSb290UGF0aCwgci5wYXRoKSwgLy8g7LK07YGs7ISsIO2MjOydvOyXkCDsoIDsnqXtlaAg65WMOiDsoIjrjIAg6rK966GcIOKGkiBBUEkg7IOB64yAIOqyveuhnFxuICAgICAgICBjaGVja3N1bTogci5jaGVja3N1bSxcbiAgICAgIH0pKSxcbiAgICAgIG51bGwsXG4gICAgICAyXG4gICAgKSxcbiAgICBcInV0Zi04XCJcbiAgKTtcbiAgY29uc29sZS5sb2coXCJjaGVja3N1bSBzYXZlZFwiLCBjaGVja3N1bUZpbGVQYXRoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q2hlY2tzdW1PZkZpbGUoZmlsZVBhdGg6IFBhdGhMaWtlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaChcInNoYTFcIik7XG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVSZWFkU3RyZWFtKGZpbGVQYXRoKTtcbiAgICBpbnB1dC5vbihcImVycm9yXCIsIHJlamVjdCk7XG4gICAgaW5wdXQub24oXCJkYXRhXCIsIGZ1bmN0aW9uIChjaHVuazogYW55KSB7XG4gICAgICBoYXNoLnVwZGF0ZShjaHVuayk7XG4gICAgfSk7XG4gICAgaW5wdXQub24oXCJjbG9zZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXNvbHZlKGhhc2guZGlnZXN0KFwiaGV4XCIpKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsicGF0aCIsImdsb2JBc3luYyIsImNyZWF0ZVJlYWRTdHJlYW0iLCJyZWFkRmlsZSIsIndyaXRlRmlsZSIsImV4aXN0cyIsImNyeXB0byIsImVxdWFsIiwiXyIsIlNvbmFtdSIsImdldENoZWNrc3VtUGF0dGVybkdyb3VwSW5BYnNvbHV0ZVBhdGgiLCJmaW5kQ2hhbmdlZEZpbGVzVXNpbmdDaGVja3N1bXMiLCJjYWxjdWxhdGVkQ2hlY2tzdW1zIiwiZ2V0Q3VycmVudENoZWNrc3VtcyIsInNhdmVkQ2hlY2tzdW1zIiwiZ2V0UHJldmlvdXNDaGVja3N1bXMiLCJpc1NhbWUiLCJkaWZmIiwiZGlmZmVyZW5jZVdpdGgiLCJpc0VxdWFsIiwibWFwIiwiciIsInJlbmV3Q2hlY2tzdW1zIiwic2F2ZUNoZWNrc3VtcyIsImFyZUZpbGVzU2FtZSIsIm9uZSIsInR3byIsIm9uZUNoZWNrc3VtIiwiZ2V0Q2hlY2tzdW1PZkZpbGUiLCJ0d29DaGVja3N1bSIsImZpbGVQYXRocyIsIlByb21pc2UiLCJhbGwiLCJPYmplY3QiLCJlbnRyaWVzIiwiX2ZpbGVUeXBlIiwicGF0dGVybiIsImZsYXQiLCJzb3J0IiwiZmlsZUNoZWNrc3VtcyIsImZpbGVQYXRoIiwiY2hlY2tzdW0iLCJjaGVja3N1bUZpbGVQYXRoIiwiZ2V0Q2hlY2tzdW1GaWxlUGF0aCIsInByZXZpb3VzQ2hlY2tzdW1zIiwiSlNPTiIsInBhcnNlIiwiam9pbiIsImFwaVJvb3RQYXRoIiwiY2hlY2tzdW1zIiwic3RyaW5naWZ5IiwicmVsYXRpdmUiLCJjb25zb2xlIiwibG9nIiwicmVzb2x2ZSIsInJlamVjdCIsImhhc2giLCJjcmVhdGVIYXNoIiwiaW5wdXQiLCJvbiIsImNodW5rIiwidXBkYXRlIiwiZGlnZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxVQUFVLE9BQU87QUFDeEIsU0FBU0MsU0FBUyxRQUFRLDBCQUF1QjtBQUNqRCxTQUFTQyxnQkFBZ0IsUUFBa0IsS0FBSztBQUNoRCxTQUFTQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxtQkFBYztBQUNsRCxTQUFTQyxNQUFNLFFBQVEsdUJBQW9CO0FBRTNDLE9BQU9DLFlBQVksU0FBUztBQUM1QixPQUFPQyxXQUFXLGtCQUFrQjtBQUNwQyxZQUFZQyxPQUFPLFlBQVk7QUFDL0IsU0FBU0MsTUFBTSxRQUFRLG1CQUFnQjtBQUt2QyxTQUFTQyxxQ0FBcUMsUUFBUSxxQkFBa0I7QUFPeEU7OztDQUdDLEdBQ0QsT0FBTyxlQUFlQztJQUdwQixNQUFNQyxzQkFBc0IsTUFBTUM7SUFDbEMsTUFBTUMsaUJBQWlCLE1BQU1DO0lBRTdCLE1BQU1DLFNBQVNULE1BQU1LLHFCQUFxQkU7SUFDMUMsSUFBSUUsUUFBUTtRQUNWLE9BQU8sRUFBRTtJQUNYO0lBRUEsTUFBTUMsT0FBT1QsRUFBRVUsY0FBYyxDQUFDTixxQkFBcUJFLGdCQUFnQk4sRUFBRVcsT0FBTztJQUU1RSxPQUFPRixLQUFLRyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRXJCLElBQUk7QUFDL0I7QUFFQTs7O0NBR0MsR0FDRCxPQUFPLGVBQWVzQjtJQUNwQixNQUFNVixzQkFBc0IsTUFBTUM7SUFDbEMsTUFBTUMsaUJBQWlCLE1BQU1DO0lBRTdCLE1BQU1DLFNBQVNULE1BQU1LLHFCQUFxQkU7SUFDMUMsSUFBSUUsUUFBUTtRQUNWO0lBQ0Y7SUFFQSxNQUFNTyxjQUFjWDtBQUN0QjtBQUVBOzs7Ozs7Q0FNQyxHQUNELE9BQU8sZUFBZVksYUFDcEJDLEdBQWEsRUFDYkMsR0FBYTtJQUViLElBQUksQ0FBRSxNQUFNckIsT0FBT29CLFFBQVMsQ0FBRSxNQUFNcEIsT0FBT3FCLE1BQU87UUFDaEQsT0FBTztJQUNUO0lBRUEsTUFBTUMsY0FBYyxNQUFNQyxrQkFBa0JIO0lBQzVDLE1BQU1JLGNBQWMsTUFBTUQsa0JBQWtCRjtJQUU1QyxPQUFPQyxnQkFBZ0JFO0FBQ3pCO0FBRUEsZUFBZWhCO0lBQ2IsTUFBTWlCLFlBQVksQUFDaEIsQ0FBQSxNQUFNQyxRQUFRQyxHQUFHLENBQ2ZDLE9BQU9DLE9BQU8sQ0FBQ3hCLHlDQUF5Q1UsR0FBRyxDQUN6RCxPQUFPLENBQUNlLFdBQVdDLFFBQVE7UUFDekIsT0FBT25DLFVBQVVtQztJQUNuQixHQUVKLEVBRUNDLElBQUksR0FDSkMsSUFBSTtJQUVQLE1BQU1DLGdCQUFnQixNQUFNUixRQUFRQyxHQUFHLENBQ3JDRixVQUFVVixHQUFHLENBQUMsT0FBT29CO1FBQ25CLE9BQU87WUFDTHhDLE1BQU13QztZQUNOQyxVQUFVLE1BQU1iLGtCQUFrQlk7UUFDcEM7SUFDRjtJQUdGLE9BQU9EO0FBQ1Q7QUFFQSxlQUFleEI7SUFDYixNQUFNMkIsbUJBQW1CQztJQUN6QixJQUFJLENBQUUsTUFBTXRDLE9BQU9xQyxtQkFBb0I7UUFDckMsT0FBTyxFQUFFO0lBQ1g7SUFFQSxNQUFNRSxvQkFBb0JDLEtBQUtDLEtBQUssQ0FDbEMsTUFBTTNDLFNBQVN1QyxrQkFBa0IsVUFDakN0QixHQUFHLENBQUMsQ0FBQ0MsSUFBb0QsQ0FBQTtZQUN6RHJCLE1BQU1BLEtBQUsrQyxJQUFJLENBQUN0QyxPQUFPdUMsV0FBVyxFQUFFM0IsRUFBRXJCLElBQUk7WUFDMUN5QyxVQUFVcEIsRUFBRW9CLFFBQVE7UUFDdEIsQ0FBQTtJQUNBLE9BQU9HO0FBQ1Q7QUFFQSxTQUFTRDtJQUNQLE9BQU8zQyxLQUFLK0MsSUFBSSxDQUFDdEMsT0FBT3VDLFdBQVcsRUFBRTtBQUN2QztBQUVBLGVBQWV6QixjQUFjMEIsU0FBNEI7SUFDdkQsTUFBTVAsbUJBQW1CQztJQUN6QixNQUFNdkMsVUFDSnNDLGtCQUNBRyxLQUFLSyxTQUFTLENBQ1pELFVBQVU3QixHQUFHLENBQUMsQ0FBQ0MsSUFBTyxDQUFBO1lBQ3BCckIsTUFBTUEsS0FBS21ELFFBQVEsQ0FBQzFDLE9BQU91QyxXQUFXLEVBQUUzQixFQUFFckIsSUFBSTtZQUM5Q3lDLFVBQVVwQixFQUFFb0IsUUFBUTtRQUN0QixDQUFBLElBQ0EsTUFDQSxJQUVGO0lBRUZXLFFBQVFDLEdBQUcsQ0FBQyxrQkFBa0JYO0FBQ2hDO0FBRUEsZUFBZWQsa0JBQWtCWSxRQUFrQjtJQUNqRCxPQUFPLElBQUlULFFBQWdCLENBQUN1QixTQUFTQztRQUNuQyxNQUFNQyxPQUFPbEQsT0FBT21ELFVBQVUsQ0FBQztRQUMvQixNQUFNQyxRQUFReEQsaUJBQWlCc0M7UUFDL0JrQixNQUFNQyxFQUFFLENBQUMsU0FBU0o7UUFDbEJHLE1BQU1DLEVBQUUsQ0FBQyxRQUFRLFNBQVVDLEtBQVU7WUFDbkNKLEtBQUtLLE1BQU0sQ0FBQ0Q7UUFDZDtRQUNBRixNQUFNQyxFQUFFLENBQUMsU0FBUztZQUNoQkwsUUFBUUUsS0FBS00sTUFBTSxDQUFDO1FBQ3RCO0lBQ0Y7QUFDRiJ9
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jZXIvY2hlY2tzdW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0bywgeyB0eXBlIEJpbmFyeUxpa2UgfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgZXF1YWwgZnJvbSBcImZhc3QtZGVlcC1lcXVhbFwiO1xuaW1wb3J0IHsgY3JlYXRlUmVhZFN0cmVhbSwgdHlwZSBQYXRoTGlrZSB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tIFwicmFkYXNoaVwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuLi91dGlscy9hc3luYy11dGlsc1wiO1xuaW1wb3J0IHsgZXhpc3RzIH0gZnJvbSBcIi4uL3V0aWxzL2ZzLXV0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IEFic29sdXRlUGF0aCwgQXBpUmVsYXRpdmVQYXRoIH0gZnJvbSBcIi4uL3V0aWxzL3BhdGgtdXRpbHNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VXaXRoIH0gZnJvbSBcIi4uL3V0aWxzL3V0aWxzXCI7XG5pbXBvcnQgeyBnZXRDaGVja3N1bVBhdHRlcm5Hcm91cEluQWJzb2x1dGVQYXRoIH0gZnJvbSBcIi4vZmlsZS1wYXR0ZXJuc1wiO1xuXG50eXBlIFBhdGhBbmRDaGVja3N1bSA9IHtcbiAgcGF0aDogQWJzb2x1dGVQYXRoO1xuICBjaGVja3N1bTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiDssrTtgazshKwg7YyM7J287JeQIOyggOyepeuQnCDrgrTsmqnqs7wg7ZiE7J6sIOyLpOygnCDtjIzsnbzsnZgg7LK07YGs7ISs7J2EIOu5hOq1kO2VmOyXrCDrs4Dqsr3rkJwg7YyM7J287J2EIOywvuyKteuLiOuLpC5cbiAqIEByZXR1cm5zIOuzgOqyveuQnCDtjIzsnbwg6rK966GcIOuwsOyXtC4g7ZSE66Gc7KCd7Yq4IOujqO2KuOu2gO2EsCDsiqzrnpjsi5zroZwg7Iuc7J6R7ZWp64uI64ukLiDsmIjsi5w6IFwiL3NyYy9hcHBsaWNhdGlvbi91c2VyL3VzZXIubW9kZWwudHNcIlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmluZENoYW5nZWRGaWxlc1VzaW5nQ2hlY2tzdW1zKCk6IFByb21pc2U8QWJzb2x1dGVQYXRoW10+IHtcbiAgY29uc3QgY2FsY3VsYXRlZENoZWNrc3VtcyA9IGF3YWl0IGdldEN1cnJlbnRDaGVja3N1bXMoKTtcbiAgY29uc3Qgc2F2ZWRDaGVja3N1bXMgPSBhd2FpdCBnZXRQcmV2aW91c0NoZWNrc3VtcygpO1xuXG4gIGNvbnN0IGlzU2FtZSA9IGVxdWFsKGNhbGN1bGF0ZWRDaGVja3N1bXMsIHNhdmVkQ2hlY2tzdW1zKTtcbiAgaWYgKGlzU2FtZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBkaWZmZXJlbmNlV2l0aChjYWxjdWxhdGVkQ2hlY2tzdW1zLCBzYXZlZENoZWNrc3VtcywgaXNFcXVhbCkubWFwKChyKSA9PiByLnBhdGgpO1xufVxuXG4vKipcbiAqIOyytO2BrOyErOydhCDqsLHsi6Dtlanri4jri6QuXG4gKiDtmITsnqwg7YyM7J2865Ok7J2YIOyytO2BrOyErOydhCDqs4TsgrDtlbTshJwg6rWs7ZWcIOuLpOydjCwg7LK07YGs7ISsIO2MjOydvOyXkCDsoIDsnqXrkJwg64K07Jqp6rO8IOuLpOultOuptCDssrTtgazshKwg7YyM7J287J2EIOqwseyLoO2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmV3Q2hlY2tzdW1zKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjYWxjdWxhdGVkQ2hlY2tzdW1zID0gYXdhaXQgZ2V0Q3VycmVudENoZWNrc3VtcygpO1xuICBjb25zdCBzYXZlZENoZWNrc3VtcyA9IGF3YWl0IGdldFByZXZpb3VzQ2hlY2tzdW1zKCk7XG5cbiAgY29uc3QgaXNTYW1lID0gZXF1YWwoY2FsY3VsYXRlZENoZWNrc3Vtcywgc2F2ZWRDaGVja3N1bXMpO1xuICBpZiAoaXNTYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXdhaXQgc2F2ZUNoZWNrc3VtcyhjYWxjdWxhdGVkQ2hlY2tzdW1zKTtcbn1cblxuLyoqXG4gKiDrkZAg7YyM7J287J2YIOuCtOyaqeydtCDqsJnsnYDsp4Ag7LK07YGs7ISs7Jy866GcIOu5hOq1kO2VqeuLiOuLpC5cbiAqIOunjOyVvSDtjIzsnbzsnbQg65GYIOykkSDtlZjrgpjrnbzrj4Qg7JeG64uk66m0IOu5hOq1kCDrtojqsIDroZwgZmFsc2Ug67CY7ZmY7ZWp64uI64ukLlxuICogQHBhcmFtIG9uZSDtjIzsnbwg6rK966GcXG4gKiBAcGFyYW0gdHdvIO2MjOydvCDqsr3roZxcbiAqIEByZXR1cm5zIGJvb2xlYW5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFyZUZpbGVzU2FtZShvbmU6IFBhdGhMaWtlLCB0d286IFBhdGhMaWtlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmICghKGF3YWl0IGV4aXN0cyhvbmUpKSB8fCAhKGF3YWl0IGV4aXN0cyh0d28pKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IG9uZUNoZWNrc3VtID0gYXdhaXQgZ2V0Q2hlY2tzdW1PZkZpbGUob25lKTtcbiAgY29uc3QgdHdvQ2hlY2tzdW0gPSBhd2FpdCBnZXRDaGVja3N1bU9mRmlsZSh0d28pO1xuXG4gIHJldHVybiBvbmVDaGVja3N1bSA9PT0gdHdvQ2hlY2tzdW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRDaGVja3N1bXMoKTogUHJvbWlzZTxQYXRoQW5kQ2hlY2tzdW1bXT4ge1xuICBjb25zdCBmaWxlUGF0aHMgPSAoXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBPYmplY3QuZW50cmllcyhnZXRDaGVja3N1bVBhdHRlcm5Hcm91cEluQWJzb2x1dGVQYXRoKCkpLm1hcChhc3luYyAoW19maWxlVHlwZSwgcGF0dGVybl0pID0+IHtcbiAgICAgICAgcmV0dXJuIGdsb2JBc3luYyhwYXR0ZXJuKSBhcyBQcm9taXNlPEFic29sdXRlUGF0aFtdPjtcbiAgICAgIH0pLFxuICAgIClcbiAgKVxuICAgIC5mbGF0KClcbiAgICAuc29ydCgpO1xuXG4gIGNvbnN0IGZpbGVDaGVja3N1bXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBmaWxlUGF0aHMubWFwKGFzeW5jIChmaWxlUGF0aCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICAgIGNoZWNrc3VtOiBhd2FpdCBnZXRDaGVja3N1bU9mRmlsZShmaWxlUGF0aCksXG4gICAgICB9O1xuICAgIH0pLFxuICApO1xuXG4gIHJldHVybiBmaWxlQ2hlY2tzdW1zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRQcmV2aW91c0NoZWNrc3VtcygpOiBQcm9taXNlPFBhdGhBbmRDaGVja3N1bVtdPiB7XG4gIGNvbnN0IGNoZWNrc3VtRmlsZVBhdGggPSBnZXRDaGVja3N1bUZpbGVQYXRoKCk7XG4gIGlmICghKGF3YWl0IGV4aXN0cyhjaGVja3N1bUZpbGVQYXRoKSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwcmV2aW91c0NoZWNrc3VtcyA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUoY2hlY2tzdW1GaWxlUGF0aCwgXCJ1dGYtOFwiKSkubWFwKFxuICAgIChyOiB7IHBhdGg6IEFwaVJlbGF0aXZlUGF0aDsgY2hlY2tzdW06IHN0cmluZyB9KSA9PiAoe1xuICAgICAgcGF0aDogcGF0aC5qb2luKFNvbmFtdS5hcGlSb290UGF0aCwgci5wYXRoKSwgLy8g7LK07YGs7ISsIO2MjOydvOyXkOyEnCDsnb3snYQg65WMOiBBUEkg7IOB64yAIOqyveuhnCDihpIg7KCI64yAIOqyveuhnFxuICAgICAgY2hlY2tzdW06IHIuY2hlY2tzdW0sXG4gICAgfSksXG4gICkgYXMgUGF0aEFuZENoZWNrc3VtW107XG4gIHJldHVybiBwcmV2aW91c0NoZWNrc3Vtcztcbn1cblxuZnVuY3Rpb24gZ2V0Q2hlY2tzdW1GaWxlUGF0aCgpOiBBYnNvbHV0ZVBhdGgge1xuICByZXR1cm4gcGF0aC5qb2luKFNvbmFtdS5hcGlSb290UGF0aCwgXCJzb25hbXUubG9ja1wiKSBhcyBBYnNvbHV0ZVBhdGg7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNhdmVDaGVja3N1bXMoY2hlY2tzdW1zOiBQYXRoQW5kQ2hlY2tzdW1bXSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjaGVja3N1bUZpbGVQYXRoID0gZ2V0Q2hlY2tzdW1GaWxlUGF0aCgpO1xuICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgY2hlY2tzdW1GaWxlUGF0aCxcbiAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgIGNoZWNrc3Vtcy5tYXAoKHIpID0+ICh7XG4gICAgICAgIHBhdGg6IHBhdGgucmVsYXRpdmUoU29uYW11LmFwaVJvb3RQYXRoLCByLnBhdGgpLCAvLyDssrTtgazshKwg7YyM7J287JeQIOyggOyepe2VoCDrlYw6IOygiOuMgCDqsr3roZwg4oaSIEFQSSDsg4HrjIAg6rK966GcXG4gICAgICAgIGNoZWNrc3VtOiByLmNoZWNrc3VtLFxuICAgICAgfSkpLFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGNvbnNvbGUubG9nKFwiY2hlY2tzdW0gc2F2ZWRcIiwgY2hlY2tzdW1GaWxlUGF0aCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENoZWNrc3VtT2ZGaWxlKGZpbGVQYXRoOiBQYXRoTGlrZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBoYXNoID0gY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGExXCIpO1xuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlUmVhZFN0cmVhbShmaWxlUGF0aCk7XG4gICAgaW5wdXQub24oXCJlcnJvclwiLCByZWplY3QpO1xuICAgIGlucHV0Lm9uKFwiZGF0YVwiLCAoY2h1bms6IEJpbmFyeUxpa2UpID0+IHtcbiAgICAgIGhhc2gudXBkYXRlKGNodW5rKTtcbiAgICB9KTtcbiAgICBpbnB1dC5vbihcImNsb3NlXCIsICgpID0+IHtcbiAgICAgIHJlc29sdmUoaGFzaC5kaWdlc3QoXCJoZXhcIikpO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJjcnlwdG8iLCJlcXVhbCIsImNyZWF0ZVJlYWRTdHJlYW0iLCJyZWFkRmlsZSIsIndyaXRlRmlsZSIsInBhdGgiLCJpc0VxdWFsIiwiU29uYW11IiwiZ2xvYkFzeW5jIiwiZXhpc3RzIiwiZGlmZmVyZW5jZVdpdGgiLCJnZXRDaGVja3N1bVBhdHRlcm5Hcm91cEluQWJzb2x1dGVQYXRoIiwiZmluZENoYW5nZWRGaWxlc1VzaW5nQ2hlY2tzdW1zIiwiY2FsY3VsYXRlZENoZWNrc3VtcyIsImdldEN1cnJlbnRDaGVja3N1bXMiLCJzYXZlZENoZWNrc3VtcyIsImdldFByZXZpb3VzQ2hlY2tzdW1zIiwiaXNTYW1lIiwibWFwIiwiciIsInJlbmV3Q2hlY2tzdW1zIiwic2F2ZUNoZWNrc3VtcyIsImFyZUZpbGVzU2FtZSIsIm9uZSIsInR3byIsIm9uZUNoZWNrc3VtIiwiZ2V0Q2hlY2tzdW1PZkZpbGUiLCJ0d29DaGVja3N1bSIsImZpbGVQYXRocyIsIlByb21pc2UiLCJhbGwiLCJPYmplY3QiLCJlbnRyaWVzIiwiX2ZpbGVUeXBlIiwicGF0dGVybiIsImZsYXQiLCJzb3J0IiwiZmlsZUNoZWNrc3VtcyIsImZpbGVQYXRoIiwiY2hlY2tzdW0iLCJjaGVja3N1bUZpbGVQYXRoIiwiZ2V0Q2hlY2tzdW1GaWxlUGF0aCIsInByZXZpb3VzQ2hlY2tzdW1zIiwiSlNPTiIsInBhcnNlIiwiam9pbiIsImFwaVJvb3RQYXRoIiwiY2hlY2tzdW1zIiwic3RyaW5naWZ5IiwicmVsYXRpdmUiLCJjb25zb2xlIiwibG9nIiwicmVzb2x2ZSIsInJlamVjdCIsImhhc2giLCJjcmVhdGVIYXNoIiwiaW5wdXQiLCJvbiIsImNodW5rIiwidXBkYXRlIiwiZGlnZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFpQyxTQUFTO0FBQ2pELE9BQU9DLFdBQVcsa0JBQWtCO0FBQ3BDLFNBQVNDLGdCQUFnQixRQUF1QixLQUFLO0FBQ3JELFNBQVNDLFFBQVEsRUFBRUMsU0FBUyxRQUFRLG1CQUFjO0FBQ2xELE9BQU9DLFVBQVUsT0FBTztBQUN4QixTQUFTQyxPQUFPLFFBQVEsVUFBVTtBQUNsQyxTQUFTQyxNQUFNLFFBQVEsbUJBQWdCO0FBQ3ZDLFNBQVNDLFNBQVMsUUFBUSwwQkFBdUI7QUFDakQsU0FBU0MsTUFBTSxRQUFRLHVCQUFvQjtBQUUzQyxTQUFTQyxjQUFjLFFBQVEsb0JBQWlCO0FBQ2hELFNBQVNDLHFDQUFxQyxRQUFRLHFCQUFrQjtBQU94RTs7O0NBR0MsR0FDRCxPQUFPLGVBQWVDO0lBQ3BCLE1BQU1DLHNCQUFzQixNQUFNQztJQUNsQyxNQUFNQyxpQkFBaUIsTUFBTUM7SUFFN0IsTUFBTUMsU0FBU2hCLE1BQU1ZLHFCQUFxQkU7SUFDMUMsSUFBSUUsUUFBUTtRQUNWLE9BQU8sRUFBRTtJQUNYO0lBRUEsT0FBT1AsZUFBZUcscUJBQXFCRSxnQkFBZ0JULFNBQVNZLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFZCxJQUFJO0FBQ3ZGO0FBRUE7OztDQUdDLEdBQ0QsT0FBTyxlQUFlZTtJQUNwQixNQUFNUCxzQkFBc0IsTUFBTUM7SUFDbEMsTUFBTUMsaUJBQWlCLE1BQU1DO0lBRTdCLE1BQU1DLFNBQVNoQixNQUFNWSxxQkFBcUJFO0lBQzFDLElBQUlFLFFBQVE7UUFDVjtJQUNGO0lBRUEsTUFBTUksY0FBY1I7QUFDdEI7QUFFQTs7Ozs7O0NBTUMsR0FDRCxPQUFPLGVBQWVTLGFBQWFDLEdBQWEsRUFBRUMsR0FBYTtJQUM3RCxJQUFJLENBQUUsTUFBTWYsT0FBT2MsUUFBUyxDQUFFLE1BQU1kLE9BQU9lLE1BQU87UUFDaEQsT0FBTztJQUNUO0lBRUEsTUFBTUMsY0FBYyxNQUFNQyxrQkFBa0JIO0lBQzVDLE1BQU1JLGNBQWMsTUFBTUQsa0JBQWtCRjtJQUU1QyxPQUFPQyxnQkFBZ0JFO0FBQ3pCO0FBRUEsZUFBZWI7SUFDYixNQUFNYyxZQUFZLEFBQ2hCLENBQUEsTUFBTUMsUUFBUUMsR0FBRyxDQUNmQyxPQUFPQyxPQUFPLENBQUNyQix5Q0FBeUNPLEdBQUcsQ0FBQyxPQUFPLENBQUNlLFdBQVdDLFFBQVE7UUFDckYsT0FBTzFCLFVBQVUwQjtJQUNuQixHQUNGLEVBRUNDLElBQUksR0FDSkMsSUFBSTtJQUVQLE1BQU1DLGdCQUFnQixNQUFNUixRQUFRQyxHQUFHLENBQ3JDRixVQUFVVixHQUFHLENBQUMsT0FBT29CO1FBQ25CLE9BQU87WUFDTGpDLE1BQU1pQztZQUNOQyxVQUFVLE1BQU1iLGtCQUFrQlk7UUFDcEM7SUFDRjtJQUdGLE9BQU9EO0FBQ1Q7QUFFQSxlQUFlckI7SUFDYixNQUFNd0IsbUJBQW1CQztJQUN6QixJQUFJLENBQUUsTUFBTWhDLE9BQU8rQixtQkFBb0I7UUFDckMsT0FBTyxFQUFFO0lBQ1g7SUFFQSxNQUFNRSxvQkFBb0JDLEtBQUtDLEtBQUssQ0FBQyxNQUFNekMsU0FBU3FDLGtCQUFrQixVQUFVdEIsR0FBRyxDQUNqRixDQUFDQyxJQUFvRCxDQUFBO1lBQ25EZCxNQUFNQSxLQUFLd0MsSUFBSSxDQUFDdEMsT0FBT3VDLFdBQVcsRUFBRTNCLEVBQUVkLElBQUk7WUFDMUNrQyxVQUFVcEIsRUFBRW9CLFFBQVE7UUFDdEIsQ0FBQTtJQUVGLE9BQU9HO0FBQ1Q7QUFFQSxTQUFTRDtJQUNQLE9BQU9wQyxLQUFLd0MsSUFBSSxDQUFDdEMsT0FBT3VDLFdBQVcsRUFBRTtBQUN2QztBQUVBLGVBQWV6QixjQUFjMEIsU0FBNEI7SUFDdkQsTUFBTVAsbUJBQW1CQztJQUN6QixNQUFNckMsVUFDSm9DLGtCQUNBRyxLQUFLSyxTQUFTLENBQ1pELFVBQVU3QixHQUFHLENBQUMsQ0FBQ0MsSUFBTyxDQUFBO1lBQ3BCZCxNQUFNQSxLQUFLNEMsUUFBUSxDQUFDMUMsT0FBT3VDLFdBQVcsRUFBRTNCLEVBQUVkLElBQUk7WUFDOUNrQyxVQUFVcEIsRUFBRW9CLFFBQVE7UUFDdEIsQ0FBQSxJQUNBLE1BQ0EsSUFFRjtJQUVGVyxRQUFRQyxHQUFHLENBQUMsa0JBQWtCWDtBQUNoQztBQUVBLGVBQWVkLGtCQUFrQlksUUFBa0I7SUFDakQsT0FBTyxJQUFJVCxRQUFnQixDQUFDdUIsU0FBU0M7UUFDbkMsTUFBTUMsT0FBT3RELE9BQU91RCxVQUFVLENBQUM7UUFDL0IsTUFBTUMsUUFBUXRELGlCQUFpQm9DO1FBQy9Ca0IsTUFBTUMsRUFBRSxDQUFDLFNBQVNKO1FBQ2xCRyxNQUFNQyxFQUFFLENBQUMsUUFBUSxDQUFDQztZQUNoQkosS0FBS0ssTUFBTSxDQUFDRDtRQUNkO1FBQ0FGLE1BQU1DLEVBQUUsQ0FBQyxTQUFTO1lBQ2hCTCxRQUFRRSxLQUFLTSxNQUFNLENBQUM7UUFDdEI7SUFDRjtBQUNGIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GenerateOptions, PathAndCode, TemplateKey, TemplateOptions } from "../types/types";
|
|
2
|
-
import { AbsolutePath } from "../utils/path-utils";
|
|
1
|
+
import type { GenerateOptions, PathAndCode, TemplateKey, TemplateOptions } from "../types/types";
|
|
2
|
+
import type { AbsolutePath } from "../utils/path-utils";
|
|
3
3
|
/**
|
|
4
4
|
* 템플릿을 렌더링하고 파일로 생성합니다.
|
|
5
5
|
* overwrite 옵션이 false인 경우, 이미 존재하는 파일은 건너뜁니다.
|
|
@@ -8,7 +8,7 @@ import { AbsolutePath } from "../utils/path-utils";
|
|
|
8
8
|
* @param _generateOptions - 생성 옵션 (overwrite 여부)
|
|
9
9
|
* @returns 생성된 파일 경로 배열
|
|
10
10
|
*/
|
|
11
|
-
export declare function generateTemplate(key:
|
|
11
|
+
export declare function generateTemplate<T extends TemplateKey>(key: T, templateOptions: TemplateOptions[T], _generateOptions?: GenerateOptions): Promise<AbsolutePath[]>;
|
|
12
12
|
/**
|
|
13
13
|
* 템플릿을 렌더링하여 PathAndCode 객체를 반환합니다.
|
|
14
14
|
* 파일로 쓰지 않고 메모리상에서만 렌더링합니다.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../../src/syncer/code-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../../src/syncer/code-generator.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAC1D,GAAG,EAAE,CAAC,EACN,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,EACnC,gBAAgB,CAAC,EAAE,eAAe,GACjC,OAAO,CAAC,YAAY,EAAE,CAAC,CAyCzB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,MAAM,eAAe,EAClE,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBxB"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
1
3
|
import path from "path";
|
|
4
|
+
import { unique } from "radashi";
|
|
2
5
|
import { Sonamu } from "../api/sonamu.js";
|
|
6
|
+
import { EntityManager } from "../entity/entity-manager.js";
|
|
3
7
|
import { AlreadyProcessedException } from "../exceptions/so-exceptions.js";
|
|
8
|
+
import { Naite } from "../naite/naite.js";
|
|
9
|
+
import { TemplateManager } from "../template/template-manager.js";
|
|
4
10
|
import { everyAsync, filterAsync } from "../utils/async-utils.js";
|
|
11
|
+
import { isTest } from "../utils/controller.js";
|
|
12
|
+
import { formatCode } from "../utils/formatter.js";
|
|
5
13
|
import { exists } from "../utils/fs-utils.js";
|
|
6
|
-
import chalk from "chalk";
|
|
7
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
8
|
-
import * as _ from "lodash-es";
|
|
9
|
-
import { Template } from "../template/template.js";
|
|
10
|
-
import { EntityManager } from "../entity/entity-manager.js";
|
|
11
14
|
import { wrapIf } from "../utils/lodash-able.js";
|
|
12
|
-
import prettier from "prettier";
|
|
13
15
|
/**
|
|
14
16
|
* 템플릿을 렌더링하고 파일로 생성합니다.
|
|
15
17
|
* overwrite 옵션이 false인 경우, 이미 존재하는 파일은 건너뜁니다.
|
|
@@ -22,6 +24,11 @@ import prettier from "prettier";
|
|
|
22
24
|
overwrite: false,
|
|
23
25
|
..._generateOptions
|
|
24
26
|
};
|
|
27
|
+
Naite.t("generateTemplate", {
|
|
28
|
+
key,
|
|
29
|
+
templateOptions,
|
|
30
|
+
generateOptions
|
|
31
|
+
});
|
|
25
32
|
// 키 children
|
|
26
33
|
const keys = [
|
|
27
34
|
key
|
|
@@ -54,7 +61,11 @@ import prettier from "prettier";
|
|
|
54
61
|
* @param options - 템플릿 렌더링 옵션
|
|
55
62
|
* @returns 경로와 코드 쌍의 배열
|
|
56
63
|
*/ export async function renderTemplate(key, options) {
|
|
57
|
-
|
|
64
|
+
Naite.t("renderTemplate", {
|
|
65
|
+
key,
|
|
66
|
+
options
|
|
67
|
+
});
|
|
68
|
+
const template = TemplateManager.get(key);
|
|
58
69
|
const rendered = await template.render(options);
|
|
59
70
|
const resolved = await resolveRenderedTemplate(key, rendered);
|
|
60
71
|
let preTemplateResolved = [];
|
|
@@ -69,6 +80,10 @@ import prettier from "prettier";
|
|
|
69
80
|
];
|
|
70
81
|
}
|
|
71
82
|
async function resolveRenderedTemplate(key, result) {
|
|
83
|
+
Naite.t(`resolveRenderedTemplate${key}`, {
|
|
84
|
+
key,
|
|
85
|
+
result
|
|
86
|
+
});
|
|
72
87
|
const { target, path: filePath, body, importKeys, customHeaders } = result;
|
|
73
88
|
// import 할 대상의 대상 path 추출
|
|
74
89
|
const importDefs = importKeys.reduce((r, importKey)=>{
|
|
@@ -77,13 +92,13 @@ async function resolveRenderedTemplate(key, result) {
|
|
|
77
92
|
if (modulePath.includes("/") || modulePath.includes(".")) {
|
|
78
93
|
importPath = wrapIf(path.relative(path.dirname(filePath), modulePath), (p)=>[
|
|
79
94
|
p.startsWith(".") === false,
|
|
80
|
-
|
|
95
|
+
`./${p}`
|
|
81
96
|
]);
|
|
82
97
|
}
|
|
83
98
|
// 같은 파일에서 import 하는 경우 keys 로 나열 처리
|
|
84
99
|
const existsOne = r.find((importDef)=>importDef.from === importPath);
|
|
85
100
|
if (existsOne) {
|
|
86
|
-
existsOne.keys =
|
|
101
|
+
existsOne.keys = unique(existsOne.keys.concat(importKey));
|
|
87
102
|
} else {
|
|
88
103
|
r.push({
|
|
89
104
|
keys: [
|
|
@@ -94,7 +109,7 @@ async function resolveRenderedTemplate(key, result) {
|
|
|
94
109
|
}
|
|
95
110
|
return r;
|
|
96
111
|
}, [])// 셀프 참조 방지
|
|
97
|
-
.filter((importDef)=>filePath.endsWith(importDef.from.replace("./", "")
|
|
112
|
+
.filter((importDef)=>filePath.endsWith(`${importDef.from.replace("./", "")}.ts`) === false);
|
|
98
113
|
// 커스텀 헤더 포함하여 헤더 생성
|
|
99
114
|
const header = [
|
|
100
115
|
...customHeaders ?? [],
|
|
@@ -107,16 +122,21 @@ async function resolveRenderedTemplate(key, result) {
|
|
|
107
122
|
body
|
|
108
123
|
].join("\n\n");
|
|
109
124
|
} else {
|
|
110
|
-
|
|
125
|
+
Naite.t("resolveRenderedTemplate:beforeFormat", {
|
|
126
|
+
key,
|
|
111
127
|
header,
|
|
112
128
|
body
|
|
113
|
-
].join("\n\n"), {
|
|
114
|
-
parser: key === "entity" ? "json" : "typescript"
|
|
115
129
|
});
|
|
130
|
+
const formatted = formatCode([
|
|
131
|
+
header,
|
|
132
|
+
body
|
|
133
|
+
].join("\n\n"), key === "entity" ? "json" : "typescript", `${Sonamu.appRootPath}/${filePath}`);
|
|
134
|
+
Naite.t(`resolveRenderedTemplate:formatted:${key}`, formatted);
|
|
135
|
+
return formatted;
|
|
116
136
|
}
|
|
117
137
|
})();
|
|
118
138
|
return {
|
|
119
|
-
path: target
|
|
139
|
+
path: `${target}/${filePath}`,
|
|
120
140
|
code: formatted
|
|
121
141
|
};
|
|
122
142
|
}
|
|
@@ -124,7 +144,7 @@ async function writeCodeToPathEachTarget(pathAndCode) {
|
|
|
124
144
|
const { targets } = Sonamu.config.sync;
|
|
125
145
|
const { appRootPath } = Sonamu;
|
|
126
146
|
const filePath = `${Sonamu.appRootPath}/${pathAndCode.path}`;
|
|
127
|
-
const dstFilePaths =
|
|
147
|
+
const dstFilePaths = unique(targets.map((target)=>filePath.replace("/:target/", `/${target}/`)));
|
|
128
148
|
return await Promise.all(dstFilePaths.map(async (dstFilePath)=>{
|
|
129
149
|
const dir = path.dirname(dstFilePath);
|
|
130
150
|
if (!await exists(dir)) {
|
|
@@ -133,9 +153,9 @@ async function writeCodeToPathEachTarget(pathAndCode) {
|
|
|
133
153
|
});
|
|
134
154
|
}
|
|
135
155
|
await writeFile(dstFilePath, pathAndCode.code);
|
|
136
|
-
console.log(chalk.bold("Generated: ") + chalk.blue(`${dstFilePath.replace(appRootPath
|
|
156
|
+
!isTest() && console.log(chalk.bold("Generated: ") + chalk.blue(`${dstFilePath.replace(`${appRootPath}/`, "")}`));
|
|
137
157
|
return dstFilePath;
|
|
138
158
|
}));
|
|
139
159
|
}
|
|
140
160
|
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jZXIvY29kZS1nZW5lcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBBbHJlYWR5UHJvY2Vzc2VkRXhjZXB0aW9uIH0gZnJvbSBcIi4uL2V4Y2VwdGlvbnMvc28tZXhjZXB0aW9uc1wiO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGVPcHRpb25zLFxuICBQYXRoQW5kQ29kZSxcbiAgVGVtcGxhdGVLZXksXG4gIFRlbXBsYXRlT3B0aW9ucyxcbn0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBldmVyeUFzeW5jLCBmaWx0ZXJBc3luYyB9IGZyb20gXCIuLi91dGlscy9hc3luYy11dGlsc1wiO1xuaW1wb3J0IHsgZXhpc3RzIH0gZnJvbSBcIi4uL3V0aWxzL2ZzLXV0aWxzXCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgeyBta2Rpciwgd3JpdGVGaWxlIH0gZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBSZW5kZXJlZFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgd3JhcElmIH0gZnJvbSBcIi4uL3V0aWxzL2xvZGFzaC1hYmxlXCI7XG5pbXBvcnQgcHJldHRpZXIgZnJvbSBcInByZXR0aWVyXCI7XG5pbXBvcnQgeyBBYnNvbHV0ZVBhdGggfSBmcm9tIFwiLi4vdXRpbHMvcGF0aC11dGlsc1wiO1xuXG4vKipcbiAqIO2FnO2UjOumv+ydhCDroIzrjZTrp4HtlZjqs6Ag7YyM7J2866GcIOyDneyEse2VqeuLiOuLpC5cbiAqIG92ZXJ3cml0ZSDsmLXshZjsnbQgZmFsc2Xsnbgg6rK97JqwLCDsnbTrr7gg7KG07J6s7ZWY64qUIO2MjOydvOydgCDqsbTrhIjrnIHri4jri6QuXG4gKiBAcGFyYW0ga2V5IC0g7YWc7ZSM66a/IO2CpCAo7JiIOiBcImVudGl0eVwiLCBcIm1vZGVsXCIsIFwic2VydmljZVwiIOuTsSlcbiAqIEBwYXJhbSB0ZW1wbGF0ZU9wdGlvbnMgLSDthZztlIzrpr8g66CM642U66eB7JeQIO2VhOyalO2VnCDsmLXshZhcbiAqIEBwYXJhbSBfZ2VuZXJhdGVPcHRpb25zIC0g7IOd7ISxIOyYteyFmCAob3ZlcndyaXRlIOyXrOu2gClcbiAqIEByZXR1cm5zIOyDneyEseuQnCDtjIzsnbwg6rK966GcIOuwsOyXtFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVUZW1wbGF0ZShcbiAga2V5OiBUZW1wbGF0ZUtleSxcbiAgdGVtcGxhdGVPcHRpb25zOiBhbnksXG4gIF9nZW5lcmF0ZU9wdGlvbnM/OiBHZW5lcmF0ZU9wdGlvbnNcbik6IFByb21pc2U8QWJzb2x1dGVQYXRoW10+IHtcbiAgY29uc3QgZ2VuZXJhdGVPcHRpb25zID0ge1xuICAgIG92ZXJ3cml0ZTogZmFsc2UsXG4gICAgLi4uX2dlbmVyYXRlT3B0aW9ucyxcbiAgfTtcblxuICAvLyDtgqQgY2hpbGRyZW5cbiAgY29uc3Qga2V5czogVGVtcGxhdGVLZXlbXSA9IFtrZXldO1xuXG4gIC8vIO2FnO2UjOumvyDroIzrjZRcbiAgY29uc3QgcGF0aEFuZENvZGVzID0gKFxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAga2V5cy5tYXAoYXN5bmMgKGtleSkgPT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgcmVuZGVyVGVtcGxhdGUoa2V5LCB0ZW1wbGF0ZU9wdGlvbnMpO1xuICAgICAgfSlcbiAgICApXG4gICkuZmxhdCgpO1xuXG4gIGNvbnN0IGZpbHRlcmVkUGF0aEFuZENvZGVzOiBQYXRoQW5kQ29kZVtdID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICBpZiAoZ2VuZXJhdGVPcHRpb25zLm92ZXJ3cml0ZSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIHBhdGhBbmRDb2RlcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IGZpbHRlckFzeW5jKHBhdGhBbmRDb2RlcywgYXN5bmMgKHBhdGhBbmRDb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdGFyZ2V0cyB9ID0gU29uYW11LmNvbmZpZy5zeW5jO1xuICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGAke1NvbmFtdS5hcHBSb290UGF0aH0vJHtwYXRoQW5kQ29kZS5wYXRofWA7XG4gICAgICAgIGNvbnN0IGRzdEZpbGVQYXRocyA9IHRhcmdldHMubWFwKCh0YXJnZXQpID0+XG4gICAgICAgICAgZmlsZVBhdGgucmVwbGFjZShcIi86dGFyZ2V0L1wiLCBgLyR7dGFyZ2V0fS9gKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gYXdhaXQgZXZlcnlBc3luYyhcbiAgICAgICAgICBkc3RGaWxlUGF0aHMsXG4gICAgICAgICAgYXN5bmMgKGRzdFBhdGgpID0+ICEoYXdhaXQgZXhpc3RzKGRzdFBhdGgpKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9KSgpO1xuICBcbiAgaWYgKGZpbHRlcmVkUGF0aEFuZENvZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBBbHJlYWR5UHJvY2Vzc2VkRXhjZXB0aW9uKFwi7J2066+4IOqyveuhnOyXkCDrqqjrk6Ag7YyM7J287J20IOyhtOyerO2VqeuLiOuLpC5cIik7XG4gIH1cblxuICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGZpbHRlcmVkUGF0aEFuZENvZGVzLm1hcCgocGF0aEFuZENvZGUpID0+IHdyaXRlQ29kZVRvUGF0aEVhY2hUYXJnZXQocGF0aEFuZENvZGUpKVxuICApKS5mbGF0KCk7XG59XG5cbi8qKlxuICog7YWc7ZSM66a/7J2EIOugjOuNlOunge2VmOyXrCBQYXRoQW5kQ29kZSDqsJ3ssrTrpbwg67CY7ZmY7ZWp64uI64ukLlxuICog7YyM7J2866GcIOyTsOyngCDslYrqs6Ag66mU66qo66as7IOB7JeQ7ISc66eMIOugjOuNlOunge2VqeuLiOuLpC5cbiAqIEBwYXJhbSBrZXkgLSDthZztlIzrpr8g7YKkXG4gKiBAcGFyYW0gb3B0aW9ucyAtIO2FnO2UjOumvyDroIzrjZTrp4Eg7Ji17IWYXG4gKiBAcmV0dXJucyDqsr3roZzsmYAg7L2U65OcIOyMjeydmCDrsLDsl7RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclRlbXBsYXRlPFQgZXh0ZW5kcyBrZXlvZiBUZW1wbGF0ZU9wdGlvbnM+KFxuICBrZXk6IFQsXG4gIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tUXVxuKTogUHJvbWlzZTxQYXRoQW5kQ29kZVtdPiB7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZmluZChrZXkpO1xuXG4gIGNvbnN0IHJlbmRlcmVkID0gYXdhaXQgdGVtcGxhdGUucmVuZGVyKG9wdGlvbnMpO1xuICBjb25zdCByZXNvbHZlZCA9IGF3YWl0IHJlc29sdmVSZW5kZXJlZFRlbXBsYXRlKGtleSwgcmVuZGVyZWQpO1xuXG4gIGxldCBwcmVUZW1wbGF0ZVJlc29sdmVkOiBQYXRoQW5kQ29kZVtdID0gW107XG4gIGlmIChyZW5kZXJlZC5wcmVUZW1wbGF0ZXMpIHtcbiAgICBwcmVUZW1wbGF0ZVJlc29sdmVkID0gKFxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHJlbmRlcmVkLnByZVRlbXBsYXRlcy5tYXAoKHsga2V5LCBvcHRpb25zIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVuZGVyVGVtcGxhdGUoa2V5LCBvcHRpb25zKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLmZsYXQoKTtcbiAgfVxuXG4gIHJldHVybiBbcmVzb2x2ZWQsIC4uLnByZVRlbXBsYXRlUmVzb2x2ZWRdO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlUmVuZGVyZWRUZW1wbGF0ZShcbiAga2V5OiBUZW1wbGF0ZUtleSxcbiAgcmVzdWx0OiBSZW5kZXJlZFRlbXBsYXRlXG4pOiBQcm9taXNlPFBhdGhBbmRDb2RlPiB7XG4gIGNvbnN0IHsgdGFyZ2V0LCBwYXRoOiBmaWxlUGF0aCwgYm9keSwgaW1wb3J0S2V5cywgY3VzdG9tSGVhZGVycyB9ID0gcmVzdWx0O1xuXG4gIC8vIGltcG9ydCDtlaAg64yA7IOB7J2YIOuMgOyDgSBwYXRoIOy2lOy2nFxuICBjb25zdCBpbXBvcnREZWZzID0gaW1wb3J0S2V5c1xuICAgIC5yZWR1Y2UoXG4gICAgICAociwgaW1wb3J0S2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IG1vZHVsZVBhdGggPSBFbnRpdHlNYW5hZ2VyLmdldE1vZHVsZVBhdGgoaW1wb3J0S2V5KTtcbiAgICAgICAgbGV0IGltcG9ydFBhdGggPSBtb2R1bGVQYXRoO1xuICAgICAgICBpZiAobW9kdWxlUGF0aC5pbmNsdWRlcyhcIi9cIikgfHwgbW9kdWxlUGF0aC5pbmNsdWRlcyhcIi5cIikpIHtcbiAgICAgICAgICBpbXBvcnRQYXRoID0gd3JhcElmKFxuICAgICAgICAgICAgcGF0aC5yZWxhdGl2ZShwYXRoLmRpcm5hbWUoZmlsZVBhdGgpLCBtb2R1bGVQYXRoKSxcbiAgICAgICAgICAgIChwKSA9PiBbcC5zdGFydHNXaXRoKFwiLlwiKSA9PT0gZmFsc2UsIFwiLi9cIiArIHBdXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOqwmeydgCDtjIzsnbzsl5DshJwgaW1wb3J0IO2VmOuKlCDqsr3smrAga2V5cyDroZwg64KY7Je0IOyymOumrFxuICAgICAgICBjb25zdCBleGlzdHNPbmUgPSByLmZpbmQoKGltcG9ydERlZikgPT4gaW1wb3J0RGVmLmZyb20gPT09IGltcG9ydFBhdGgpO1xuICAgICAgICBpZiAoZXhpc3RzT25lKSB7XG4gICAgICAgICAgZXhpc3RzT25lLmtleXMgPSBfLnVuaXEoZXhpc3RzT25lLmtleXMuY29uY2F0KGltcG9ydEtleSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHIucHVzaCh7XG4gICAgICAgICAgICBrZXlzOiBbaW1wb3J0S2V5XSxcbiAgICAgICAgICAgIGZyb206IGltcG9ydFBhdGgsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHI7XG4gICAgICB9LFxuICAgICAgW10gYXMge1xuICAgICAgICBrZXlzOiBzdHJpbmdbXTtcbiAgICAgICAgZnJvbTogc3RyaW5nO1xuICAgICAgfVtdXG4gICAgKVxuICAgIC8vIOyFgO2UhCDssLjsobAg67Cp7KeAXG4gICAgLmZpbHRlcihcbiAgICAgIChpbXBvcnREZWYpID0+XG4gICAgICAgIGZpbGVQYXRoLmVuZHNXaXRoKGltcG9ydERlZi5mcm9tLnJlcGxhY2UoXCIuL1wiLCBcIlwiKSArIFwiLnRzXCIpID09PSBmYWxzZVxuICAgICk7XG5cbiAgLy8g7Luk7Iqk7YWAIO2XpOuNlCDtj6ztlajtlZjsl6wg7Zek642UIOyDneyEsVxuICBjb25zdCBoZWFkZXIgPSBbXG4gICAgLi4uKGN1c3RvbUhlYWRlcnMgPz8gW10pLFxuICAgIC4uLmltcG9ydERlZnMubWFwKFxuICAgICAgKGltcG9ydERlZikgPT5cbiAgICAgICAgYGltcG9ydCB7ICR7aW1wb3J0RGVmLmtleXMuam9pbihcIiwgXCIpfSB9IGZyb20gJyR7aW1wb3J0RGVmLmZyb219J2BcbiAgICApLFxuICBdLmpvaW4oXCJcXG5cIik7XG5cbiAgY29uc3QgZm9ybWF0dGVkID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICBpZiAoa2V5ID09PSBcImdlbmVyYXRlZF9odHRwXCIpIHtcbiAgICAgIHJldHVybiBbaGVhZGVyLCBib2R5XS5qb2luKFwiXFxuXFxuXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcHJldHRpZXIuZm9ybWF0KFtoZWFkZXIsIGJvZHldLmpvaW4oXCJcXG5cXG5cIiksIHtcbiAgICAgICAgcGFyc2VyOiBrZXkgPT09IFwiZW50aXR5XCIgPyBcImpzb25cIiA6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgfSk7XG4gICAgfVxuICB9KSgpO1xuXG4gIHJldHVybiB7XG4gICAgcGF0aDogdGFyZ2V0ICsgXCIvXCIgKyBmaWxlUGF0aCxcbiAgICBjb2RlOiBmb3JtYXR0ZWQsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlQ29kZVRvUGF0aEVhY2hUYXJnZXQoXG4gIHBhdGhBbmRDb2RlOiBQYXRoQW5kQ29kZVxuKTogUHJvbWlzZTxBYnNvbHV0ZVBhdGhbXT4ge1xuICBjb25zdCB7IHRhcmdldHMgfSA9IFNvbmFtdS5jb25maWcuc3luYztcbiAgY29uc3QgeyBhcHBSb290UGF0aCB9ID0gU29uYW11O1xuICBjb25zdCBmaWxlUGF0aCA9IGAke1NvbmFtdS5hcHBSb290UGF0aH0vJHtwYXRoQW5kQ29kZS5wYXRofWAgYXMgQWJzb2x1dGVQYXRoO1xuXG4gIGNvbnN0IGRzdEZpbGVQYXRocyA9IF8udW5pcShcbiAgICB0YXJnZXRzLm1hcCgodGFyZ2V0KSA9PlxuICAgICAgZmlsZVBhdGgucmVwbGFjZShcIi86dGFyZ2V0L1wiLCBgLyR7dGFyZ2V0fS9gKVxuICAgICkgYXMgQWJzb2x1dGVQYXRoW11cbiAgKTtcbiAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGRzdEZpbGVQYXRocy5tYXAoYXN5bmMgKGRzdEZpbGVQYXRoKSA9PiB7XG4gICAgICBjb25zdCBkaXIgPSBwYXRoLmRpcm5hbWUoZHN0RmlsZVBhdGgpO1xuICAgICAgaWYgKCEoYXdhaXQgZXhpc3RzKGRpcikpKSB7XG4gICAgICAgIGF3YWl0IG1rZGlyKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICB9XG4gICAgICBhd2FpdCB3cml0ZUZpbGUoZHN0RmlsZVBhdGgsIHBhdGhBbmRDb2RlLmNvZGUpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNoYWxrLmJvbGQoXCJHZW5lcmF0ZWQ6IFwiKSArXG4gICAgICAgICAgY2hhbGsuYmx1ZShgJHtkc3RGaWxlUGF0aC5yZXBsYWNlKGFwcFJvb3RQYXRoICsgXCIvXCIsIFwiXCIpfWApXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRzdEZpbGVQYXRoO1xuICAgIH0pXG4gICk7XG59XG4iXSwibmFtZXMiOlsicGF0aCIsIlNvbmFtdSIsIkFscmVhZHlQcm9jZXNzZWRFeGNlcHRpb24iLCJldmVyeUFzeW5jIiwiZmlsdGVyQXN5bmMiLCJleGlzdHMiLCJjaGFsayIsIm1rZGlyIiwid3JpdGVGaWxlIiwiXyIsIlRlbXBsYXRlIiwiRW50aXR5TWFuYWdlciIsIndyYXBJZiIsInByZXR0aWVyIiwiZ2VuZXJhdGVUZW1wbGF0ZSIsImtleSIsInRlbXBsYXRlT3B0aW9ucyIsIl9nZW5lcmF0ZU9wdGlvbnMiLCJnZW5lcmF0ZU9wdGlvbnMiLCJvdmVyd3JpdGUiLCJrZXlzIiwicGF0aEFuZENvZGVzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInJlbmRlclRlbXBsYXRlIiwiZmxhdCIsImZpbHRlcmVkUGF0aEFuZENvZGVzIiwicGF0aEFuZENvZGUiLCJ0YXJnZXRzIiwiY29uZmlnIiwic3luYyIsImZpbGVQYXRoIiwiYXBwUm9vdFBhdGgiLCJkc3RGaWxlUGF0aHMiLCJ0YXJnZXQiLCJyZXBsYWNlIiwiZHN0UGF0aCIsImxlbmd0aCIsIndyaXRlQ29kZVRvUGF0aEVhY2hUYXJnZXQiLCJvcHRpb25zIiwidGVtcGxhdGUiLCJmaW5kIiwicmVuZGVyZWQiLCJyZW5kZXIiLCJyZXNvbHZlZCIsInJlc29sdmVSZW5kZXJlZFRlbXBsYXRlIiwicHJlVGVtcGxhdGVSZXNvbHZlZCIsInByZVRlbXBsYXRlcyIsInJlc3VsdCIsImJvZHkiLCJpbXBvcnRLZXlzIiwiY3VzdG9tSGVhZGVycyIsImltcG9ydERlZnMiLCJyZWR1Y2UiLCJyIiwiaW1wb3J0S2V5IiwibW9kdWxlUGF0aCIsImdldE1vZHVsZVBhdGgiLCJpbXBvcnRQYXRoIiwiaW5jbHVkZXMiLCJyZWxhdGl2ZSIsImRpcm5hbWUiLCJwIiwic3RhcnRzV2l0aCIsImV4aXN0c09uZSIsImltcG9ydERlZiIsImZyb20iLCJ1bmlxIiwiY29uY2F0IiwicHVzaCIsImZpbHRlciIsImVuZHNXaXRoIiwiaGVhZGVyIiwiam9pbiIsImZvcm1hdHRlZCIsImZvcm1hdCIsInBhcnNlciIsImNvZGUiLCJkc3RGaWxlUGF0aCIsImRpciIsInJlY3Vyc2l2ZSIsImNvbnNvbGUiLCJsb2ciLCJib2xkIiwiYmx1ZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsVUFBVSxPQUFPO0FBQ3hCLFNBQVNDLE1BQU0sUUFBUSxtQkFBZ0I7QUFDdkMsU0FBU0MseUJBQXlCLFFBQVEsaUNBQThCO0FBT3hFLFNBQVNDLFVBQVUsRUFBRUMsV0FBVyxRQUFRLDBCQUF1QjtBQUMvRCxTQUFTQyxNQUFNLFFBQVEsdUJBQW9CO0FBQzNDLE9BQU9DLFdBQVcsUUFBUTtBQUMxQixTQUFTQyxLQUFLLEVBQUVDLFNBQVMsUUFBUSxtQkFBYztBQUMvQyxZQUFZQyxPQUFPLFlBQVk7QUFDL0IsU0FBU0MsUUFBUSxRQUFRLDBCQUF1QjtBQUVoRCxTQUFTQyxhQUFhLFFBQVEsOEJBQTJCO0FBQ3pELFNBQVNDLE1BQU0sUUFBUSwwQkFBdUI7QUFDOUMsT0FBT0MsY0FBYyxXQUFXO0FBR2hDOzs7Ozs7O0NBT0MsR0FDRCxPQUFPLGVBQWVDLGlCQUNwQkMsR0FBZ0IsRUFDaEJDLGVBQW9CLEVBQ3BCQyxnQkFBa0M7SUFFbEMsTUFBTUMsa0JBQWtCO1FBQ3RCQyxXQUFXO1FBQ1gsR0FBR0YsZ0JBQWdCO0lBQ3JCO0lBRUEsYUFBYTtJQUNiLE1BQU1HLE9BQXNCO1FBQUNMO0tBQUk7SUFFakMsU0FBUztJQUNULE1BQU1NLGVBQWUsQUFDbkIsQ0FBQSxNQUFNQyxRQUFRQyxHQUFHLENBQ2ZILEtBQUtJLEdBQUcsQ0FBQyxPQUFPVDtRQUNkLE9BQU8sTUFBTVUsZUFBZVYsS0FBS0M7SUFDbkMsR0FDRixFQUNBVSxJQUFJ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
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jZXIvY29kZS1nZW5lcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHsgbWtkaXIsIHdyaXRlRmlsZSB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gXCJyYWRhc2hpXCI7XG5pbXBvcnQgeyBTb25hbXUgfSBmcm9tIFwiLi4vYXBpL3NvbmFtdVwiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IEFscmVhZHlQcm9jZXNzZWRFeGNlcHRpb24gfSBmcm9tIFwiLi4vZXhjZXB0aW9ucy9zby1leGNlcHRpb25zXCI7XG5pbXBvcnQgeyBOYWl0ZSB9IGZyb20gXCIuLi9uYWl0ZS9uYWl0ZVwiO1xuaW1wb3J0IHR5cGUgeyBSZW5kZXJlZFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZU1hbmFnZXIgfSBmcm9tIFwiLi4vdGVtcGxhdGUvdGVtcGxhdGUtbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBHZW5lcmF0ZU9wdGlvbnMsIFBhdGhBbmRDb2RlLCBUZW1wbGF0ZUtleSwgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBldmVyeUFzeW5jLCBmaWx0ZXJBc3luYyB9IGZyb20gXCIuLi91dGlscy9hc3luYy11dGlsc1wiO1xuaW1wb3J0IHsgaXNUZXN0IH0gZnJvbSBcIi4uL3V0aWxzL2NvbnRyb2xsZXJcIjtcbmltcG9ydCB7IGZvcm1hdENvZGUgfSBmcm9tIFwiLi4vdXRpbHMvZm9ybWF0dGVyXCI7XG5pbXBvcnQgeyBleGlzdHMgfSBmcm9tIFwiLi4vdXRpbHMvZnMtdXRpbHNcIjtcbmltcG9ydCB7IHdyYXBJZiB9IGZyb20gXCIuLi91dGlscy9sb2Rhc2gtYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBBYnNvbHV0ZVBhdGggfSBmcm9tIFwiLi4vdXRpbHMvcGF0aC11dGlsc1wiO1xuXG4vKipcbiAqIO2FnO2UjOumv+ydhCDroIzrjZTrp4HtlZjqs6Ag7YyM7J2866GcIOyDneyEse2VqeuLiOuLpC5cbiAqIG92ZXJ3cml0ZSDsmLXshZjsnbQgZmFsc2Xsnbgg6rK97JqwLCDsnbTrr7gg7KG07J6s7ZWY64qUIO2MjOydvOydgCDqsbTrhIjrnIHri4jri6QuXG4gKiBAcGFyYW0ga2V5IC0g7YWc7ZSM66a/IO2CpCAo7JiIOiBcImVudGl0eVwiLCBcIm1vZGVsXCIsIFwic2VydmljZVwiIOuTsSlcbiAqIEBwYXJhbSB0ZW1wbGF0ZU9wdGlvbnMgLSDthZztlIzrpr8g66CM642U66eB7JeQIO2VhOyalO2VnCDsmLXshZhcbiAqIEBwYXJhbSBfZ2VuZXJhdGVPcHRpb25zIC0g7IOd7ISxIOyYteyFmCAob3ZlcndyaXRlIOyXrOu2gClcbiAqIEByZXR1cm5zIOyDneyEseuQnCDtjIzsnbwg6rK966GcIOuwsOyXtFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVUZW1wbGF0ZTxUIGV4dGVuZHMgVGVtcGxhdGVLZXk+KFxuICBrZXk6IFQsXG4gIHRlbXBsYXRlT3B0aW9uczogVGVtcGxhdGVPcHRpb25zW1RdLFxuICBfZ2VuZXJhdGVPcHRpb25zPzogR2VuZXJhdGVPcHRpb25zLFxuKTogUHJvbWlzZTxBYnNvbHV0ZVBhdGhbXT4ge1xuICBjb25zdCBnZW5lcmF0ZU9wdGlvbnMgPSB7XG4gICAgb3ZlcndyaXRlOiBmYWxzZSxcbiAgICAuLi5fZ2VuZXJhdGVPcHRpb25zLFxuICB9O1xuICBOYWl0ZS50KFwiZ2VuZXJhdGVUZW1wbGF0ZVwiLCB7IGtleSwgdGVtcGxhdGVPcHRpb25zLCBnZW5lcmF0ZU9wdGlvbnMgfSk7XG5cbiAgLy8g7YKkIGNoaWxkcmVuXG4gIGNvbnN0IGtleXM6IFRlbXBsYXRlS2V5W10gPSBba2V5XTtcblxuICAvLyDthZztlIzrpr8g66CM642UXG4gIGNvbnN0IHBhdGhBbmRDb2RlcyA9IChcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGtleXMubWFwKGFzeW5jIChrZXkpID0+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlbmRlclRlbXBsYXRlKGtleSwgdGVtcGxhdGVPcHRpb25zKTtcbiAgICAgIH0pLFxuICAgIClcbiAgKS5mbGF0KCk7XG5cbiAgY29uc3QgZmlsdGVyZWRQYXRoQW5kQ29kZXM6IFBhdGhBbmRDb2RlW10gPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgIGlmIChnZW5lcmF0ZU9wdGlvbnMub3ZlcndyaXRlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gcGF0aEFuZENvZGVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgZmlsdGVyQXN5bmMocGF0aEFuZENvZGVzLCBhc3luYyAocGF0aEFuZENvZGUpID0+IHtcbiAgICAgICAgY29uc3QgeyB0YXJnZXRzIH0gPSBTb25hbXUuY29uZmlnLnN5bmM7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7U29uYW11LmFwcFJvb3RQYXRofS8ke3BhdGhBbmRDb2RlLnBhdGh9YDtcbiAgICAgICAgY29uc3QgZHN0RmlsZVBhdGhzID0gdGFyZ2V0cy5tYXAoKHRhcmdldCkgPT4gZmlsZVBhdGgucmVwbGFjZShcIi86dGFyZ2V0L1wiLCBgLyR7dGFyZ2V0fS9gKSk7XG4gICAgICAgIHJldHVybiBhd2FpdCBldmVyeUFzeW5jKGRzdEZpbGVQYXRocywgYXN5bmMgKGRzdFBhdGgpID0+ICEoYXdhaXQgZXhpc3RzKGRzdFBhdGgpKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pKCk7XG5cbiAgaWYgKGZpbHRlcmVkUGF0aEFuZENvZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBBbHJlYWR5UHJvY2Vzc2VkRXhjZXB0aW9uKFwi7J2066+4IOqyveuhnOyXkCDrqqjrk6Ag7YyM7J287J20IOyhtOyerO2VqeuLiOuLpC5cIik7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZmlsdGVyZWRQYXRoQW5kQ29kZXMubWFwKChwYXRoQW5kQ29kZSkgPT4gd3JpdGVDb2RlVG9QYXRoRWFjaFRhcmdldChwYXRoQW5kQ29kZSkpLFxuICAgIClcbiAgKS5mbGF0KCk7XG59XG5cbi8qKlxuICog7YWc7ZSM66a/7J2EIOugjOuNlOunge2VmOyXrCBQYXRoQW5kQ29kZSDqsJ3ssrTrpbwg67CY7ZmY7ZWp64uI64ukLlxuICog7YyM7J2866GcIOyTsOyngCDslYrqs6Ag66mU66qo66as7IOB7JeQ7ISc66eMIOugjOuNlOunge2VqeuLiOuLpC5cbiAqIEBwYXJhbSBrZXkgLSDthZztlIzrpr8g7YKkXG4gKiBAcGFyYW0gb3B0aW9ucyAtIO2FnO2UjOumvyDroIzrjZTrp4Eg7Ji17IWYXG4gKiBAcmV0dXJucyDqsr3roZzsmYAg7L2U65OcIOyMjeydmCDrsLDsl7RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclRlbXBsYXRlPFQgZXh0ZW5kcyBrZXlvZiBUZW1wbGF0ZU9wdGlvbnM+KFxuICBrZXk6IFQsXG4gIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tUXSxcbik6IFByb21pc2U8UGF0aEFuZENvZGVbXT4ge1xuICBOYWl0ZS50KFwicmVuZGVyVGVtcGxhdGVcIiwgeyBrZXksIG9wdGlvbnMgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZU1hbmFnZXIuZ2V0KGtleSk7XG5cbiAgY29uc3QgcmVuZGVyZWQgPSBhd2FpdCB0ZW1wbGF0ZS5yZW5kZXIob3B0aW9ucyk7XG4gIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgcmVzb2x2ZVJlbmRlcmVkVGVtcGxhdGUoa2V5LCByZW5kZXJlZCk7XG5cbiAgbGV0IHByZVRlbXBsYXRlUmVzb2x2ZWQ6IFBhdGhBbmRDb2RlW10gPSBbXTtcbiAgaWYgKHJlbmRlcmVkLnByZVRlbXBsYXRlcykge1xuICAgIHByZVRlbXBsYXRlUmVzb2x2ZWQgPSAoXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgcmVuZGVyZWQucHJlVGVtcGxhdGVzLm1hcCgoeyBrZXksIG9wdGlvbnMgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZW5kZXJUZW1wbGF0ZShrZXksIG9wdGlvbnMpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICApLmZsYXQoKTtcbiAgfVxuXG4gIHJldHVybiBbcmVzb2x2ZWQsIC4uLnByZVRlbXBsYXRlUmVzb2x2ZWRdO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlUmVuZGVyZWRUZW1wbGF0ZShcbiAga2V5OiBUZW1wbGF0ZUtleSxcbiAgcmVzdWx0OiBSZW5kZXJlZFRlbXBsYXRlLFxuKTogUHJvbWlzZTxQYXRoQW5kQ29kZT4ge1xuICBOYWl0ZS50KGByZXNvbHZlUmVuZGVyZWRUZW1wbGF0ZSR7a2V5fWAsIHsga2V5LCByZXN1bHQgfSk7XG5cbiAgY29uc3QgeyB0YXJnZXQsIHBhdGg6IGZpbGVQYXRoLCBib2R5LCBpbXBvcnRLZXlzLCBjdXN0b21IZWFkZXJzIH0gPSByZXN1bHQ7XG5cbiAgLy8gaW1wb3J0IO2VoCDrjIDsg4HsnZgg64yA7IOBIHBhdGgg7LaU7LacXG4gIGNvbnN0IGltcG9ydERlZnMgPSBpbXBvcnRLZXlzXG4gICAgLnJlZHVjZShcbiAgICAgIChyLCBpbXBvcnRLZXkpID0+IHtcbiAgICAgICAgY29uc3QgbW9kdWxlUGF0aCA9IEVudGl0eU1hbmFnZXIuZ2V0TW9kdWxlUGF0aChpbXBvcnRLZXkpO1xuICAgICAgICBsZXQgaW1wb3J0UGF0aCA9IG1vZHVsZVBhdGg7XG4gICAgICAgIGlmIChtb2R1bGVQYXRoLmluY2x1ZGVzKFwiL1wiKSB8fCBtb2R1bGVQYXRoLmluY2x1ZGVzKFwiLlwiKSkge1xuICAgICAgICAgIGltcG9ydFBhdGggPSB3cmFwSWYocGF0aC5yZWxhdGl2ZShwYXRoLmRpcm5hbWUoZmlsZVBhdGgpLCBtb2R1bGVQYXRoKSwgKHApID0+IFtcbiAgICAgICAgICAgIHAuc3RhcnRzV2l0aChcIi5cIikgPT09IGZhbHNlLFxuICAgICAgICAgICAgYC4vJHtwfWAsXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDqsJnsnYAg7YyM7J287JeQ7IScIGltcG9ydCDtlZjripQg6rK97JqwIGtleXMg66GcIOuCmOyXtCDsspjrpqxcbiAgICAgICAgY29uc3QgZXhpc3RzT25lID0gci5maW5kKChpbXBvcnREZWYpID0+IGltcG9ydERlZi5mcm9tID09PSBpbXBvcnRQYXRoKTtcbiAgICAgICAgaWYgKGV4aXN0c09uZSkge1xuICAgICAgICAgIGV4aXN0c09uZS5rZXlzID0gdW5pcXVlKGV4aXN0c09uZS5rZXlzLmNvbmNhdChpbXBvcnRLZXkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByLnB1c2goe1xuICAgICAgICAgICAga2V5czogW2ltcG9ydEtleV0sXG4gICAgICAgICAgICBmcm9tOiBpbXBvcnRQYXRoLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByO1xuICAgICAgfSxcbiAgICAgIFtdIGFzIHtcbiAgICAgICAga2V5czogc3RyaW5nW107XG4gICAgICAgIGZyb206IHN0cmluZztcbiAgICAgIH1bXSxcbiAgICApXG4gICAgLy8g7IWA7ZSEIOywuOyhsCDrsKnsp4BcbiAgICAuZmlsdGVyKChpbXBvcnREZWYpID0+IGZpbGVQYXRoLmVuZHNXaXRoKGAke2ltcG9ydERlZi5mcm9tLnJlcGxhY2UoXCIuL1wiLCBcIlwiKX0udHNgKSA9PT0gZmFsc2UpO1xuXG4gIC8vIOy7pOyKpO2FgCDtl6TrjZQg7Y+s7ZWo7ZWY7JesIO2XpOuNlCDsg53shLFcbiAgY29uc3QgaGVhZGVyID0gW1xuICAgIC4uLihjdXN0b21IZWFkZXJzID8/IFtdKSxcbiAgICAuLi5pbXBvcnREZWZzLm1hcChcbiAgICAgIChpbXBvcnREZWYpID0+IGBpbXBvcnQgeyAke2ltcG9ydERlZi5rZXlzLmpvaW4oXCIsIFwiKX0gfSBmcm9tICcke2ltcG9ydERlZi5mcm9tfSdgLFxuICAgICksXG4gIF0uam9pbihcIlxcblwiKTtcblxuICBjb25zdCBmb3JtYXR0ZWQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgIGlmIChrZXkgPT09IFwiZ2VuZXJhdGVkX2h0dHBcIikge1xuICAgICAgcmV0dXJuIFtoZWFkZXIsIGJvZHldLmpvaW4oXCJcXG5cXG5cIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIE5haXRlLnQoXCJyZXNvbHZlUmVuZGVyZWRUZW1wbGF0ZTpiZWZvcmVGb3JtYXRcIiwgeyBrZXksIGhlYWRlciwgYm9keSB9KTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdENvZGUoXG4gICAgICAgIFtoZWFkZXIsIGJvZHldLmpvaW4oXCJcXG5cXG5cIiksXG4gICAgICAgIGtleSA9PT0gXCJlbnRpdHlcIiA/IFwianNvblwiIDogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgIGAke1NvbmFtdS5hcHBSb290UGF0aH0vJHtmaWxlUGF0aH1gLFxuICAgICAgKTtcbiAgICAgIE5haXRlLnQoYHJlc29sdmVSZW5kZXJlZFRlbXBsYXRlOmZvcm1hdHRlZDoke2tleX1gLCBmb3JtYXR0ZWQpO1xuICAgICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgICB9XG4gIH0pKCk7XG5cbiAgcmV0dXJuIHtcbiAgICBwYXRoOiBgJHt0YXJnZXR9LyR7ZmlsZVBhdGh9YCxcbiAgICBjb2RlOiBmb3JtYXR0ZWQsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlQ29kZVRvUGF0aEVhY2hUYXJnZXQocGF0aEFuZENvZGU6IFBhdGhBbmRDb2RlKTogUHJvbWlzZTxBYnNvbHV0ZVBhdGhbXT4ge1xuICBjb25zdCB7IHRhcmdldHMgfSA9IFNvbmFtdS5jb25maWcuc3luYztcbiAgY29uc3QgeyBhcHBSb290UGF0aCB9ID0gU29uYW11O1xuICBjb25zdCBmaWxlUGF0aCA9IGAke1NvbmFtdS5hcHBSb290UGF0aH0vJHtwYXRoQW5kQ29kZS5wYXRofWAgYXMgQWJzb2x1dGVQYXRoO1xuXG4gIGNvbnN0IGRzdEZpbGVQYXRocyA9IHVuaXF1ZShcbiAgICB0YXJnZXRzLm1hcCgodGFyZ2V0KSA9PiBmaWxlUGF0aC5yZXBsYWNlKFwiLzp0YXJnZXQvXCIsIGAvJHt0YXJnZXR9L2ApKSBhcyBBYnNvbHV0ZVBhdGhbXSxcbiAgKTtcbiAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGRzdEZpbGVQYXRocy5tYXAoYXN5bmMgKGRzdEZpbGVQYXRoKSA9PiB7XG4gICAgICBjb25zdCBkaXIgPSBwYXRoLmRpcm5hbWUoZHN0RmlsZVBhdGgpO1xuICAgICAgaWYgKCEoYXdhaXQgZXhpc3RzKGRpcikpKSB7XG4gICAgICAgIGF3YWl0IG1rZGlyKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICB9XG4gICAgICBhd2FpdCB3cml0ZUZpbGUoZHN0RmlsZVBhdGgsIHBhdGhBbmRDb2RlLmNvZGUpO1xuICAgICAgIWlzVGVzdCgpICYmXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGNoYWxrLmJvbGQoXCJHZW5lcmF0ZWQ6IFwiKSArIGNoYWxrLmJsdWUoYCR7ZHN0RmlsZVBhdGgucmVwbGFjZShgJHthcHBSb290UGF0aH0vYCwgXCJcIil9YCksXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gZHN0RmlsZVBhdGg7XG4gICAgfSksXG4gICk7XG59XG4iXSwibmFtZXMiOlsiY2hhbGsiLCJta2RpciIsIndyaXRlRmlsZSIsInBhdGgiLCJ1bmlxdWUiLCJTb25hbXUiLCJFbnRpdHlNYW5hZ2VyIiwiQWxyZWFkeVByb2Nlc3NlZEV4Y2VwdGlvbiIsIk5haXRlIiwiVGVtcGxhdGVNYW5hZ2VyIiwiZXZlcnlBc3luYyIsImZpbHRlckFzeW5jIiwiaXNUZXN0IiwiZm9ybWF0Q29kZSIsImV4aXN0cyIsIndyYXBJZiIsImdlbmVyYXRlVGVtcGxhdGUiLCJrZXkiLCJ0ZW1wbGF0ZU9wdGlvbnMiLCJfZ2VuZXJhdGVPcHRpb25zIiwiZ2VuZXJhdGVPcHRpb25zIiwib3ZlcndyaXRlIiwidCIsImtleXMiLCJwYXRoQW5kQ29kZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwicmVuZGVyVGVtcGxhdGUiLCJmbGF0IiwiZmlsdGVyZWRQYXRoQW5kQ29kZXMiLCJwYXRoQW5kQ29kZSIsInRhcmdldHMiLCJjb25maWciLCJzeW5jIiwiZmlsZVBhdGgiLCJhcHBSb290UGF0aCIsImRzdEZpbGVQYXRocyIsInRhcmdldCIsInJlcGxhY2UiLCJkc3RQYXRoIiwibGVuZ3RoIiwid3JpdGVDb2RlVG9QYXRoRWFjaFRhcmdldCIsIm9wdGlvbnMiLCJ0ZW1wbGF0ZSIsImdldCIsInJlbmRlcmVkIiwicmVuZGVyIiwicmVzb2x2ZWQiLCJyZXNvbHZlUmVuZGVyZWRUZW1wbGF0ZSIsInByZVRlbXBsYXRlUmVzb2x2ZWQiLCJwcmVUZW1wbGF0ZXMiLCJyZXN1bHQiLCJib2R5IiwiaW1wb3J0S2V5cyIsImN1c3RvbUhlYWRlcnMiLCJpbXBvcnREZWZzIiwicmVkdWNlIiwiciIsImltcG9ydEtleSIsIm1vZHVsZVBhdGgiLCJnZXRNb2R1bGVQYXRoIiwiaW1wb3J0UGF0aCIsImluY2x1ZGVzIiwicmVsYXRpdmUiLCJkaXJuYW1lIiwicCIsInN0YXJ0c1dpdGgiLCJleGlzdHNPbmUiLCJmaW5kIiwiaW1wb3J0RGVmIiwiZnJvbSIsImNvbmNhdCIsInB1c2giLCJmaWx0ZXIiLCJlbmRzV2l0aCIsImhlYWRlciIsImpvaW4iLCJmb3JtYXR0ZWQiLCJjb2RlIiwiZHN0RmlsZVBhdGgiLCJkaXIiLCJyZWN1cnNpdmUiLCJjb25zb2xlIiwibG9nIiwiYm9sZCIsImJsdWUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVcsUUFBUTtBQUMxQixTQUFTQyxLQUFLLEVBQUVDLFNBQVMsUUFBUSxtQkFBYztBQUMvQyxPQUFPQyxVQUFVLE9BQU87QUFDeEIsU0FBU0MsTUFBTSxRQUFRLFVBQVU7QUFDakMsU0FB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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { TemplateOptions } from "../types/types";
|
|
1
|
+
import type { TemplateOptions } from "../types/types";
|
|
2
2
|
/**
|
|
3
3
|
* 새로운 엔티티를 생성합니다.
|
|
4
4
|
* entityId는 반드시 CamelCase 형식이어야 합니다.
|
|
5
5
|
*/
|
|
6
6
|
export declare function createEntity(form: Omit<TemplateOptions["entity"], "title"> & {
|
|
7
|
-
title
|
|
7
|
+
title: string;
|
|
8
8
|
}): Promise<void>;
|
|
9
9
|
/**
|
|
10
10
|
* 엔티티를 삭제합니다.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-operations.d.ts","sourceRoot":"","sources":["../../src/syncer/entity-operations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entity-operations.d.ts","sourceRoot":"","sources":["../../src/syncer/entity-operations.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,iBAUnE;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgCjF"}
|