sonamu 0.6.0 → 0.7.1
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 +227 -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 +386 -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 +55 -30
- 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 +261 -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 +459 -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,9 +1,13 @@
|
|
|
1
|
+
import assert from "assert";
|
|
1
2
|
import inflection from "inflection";
|
|
2
|
-
import
|
|
3
|
+
import { diff, group, sort, unique } from "radashi";
|
|
4
|
+
import { apiParamToTsCode, apiParamToTsCodeAsObject, apiParamTypeToTsType, unwrapPromiseOnce } from "../../api/code-converters.js";
|
|
5
|
+
import { Sonamu } from "../../api/sonamu.js";
|
|
6
|
+
import { Naite } from "../../naite/naite.js";
|
|
3
7
|
import { ApiParamType } from "../../types/types.js";
|
|
4
|
-
import {
|
|
8
|
+
import { assertDefined } from "../../utils/utils.js";
|
|
5
9
|
import { Template } from "../template.js";
|
|
6
|
-
import {
|
|
10
|
+
import { zodTypeToTsTypeDef } from "../zod-converter.js";
|
|
7
11
|
export class Template__service extends Template {
|
|
8
12
|
constructor(){
|
|
9
13
|
super("service");
|
|
@@ -15,6 +19,9 @@ export class Template__service extends Template {
|
|
|
15
19
|
};
|
|
16
20
|
}
|
|
17
21
|
render({ namesRecord }) {
|
|
22
|
+
Naite.t("render", {
|
|
23
|
+
namesRecord
|
|
24
|
+
});
|
|
18
25
|
const { syncer: { apis } } = Sonamu;
|
|
19
26
|
const apisForThisModel = apis.filter((api)=>api.modelName === `${namesRecord.capital}Model`);
|
|
20
27
|
// 서비스 TypeSource
|
|
@@ -30,10 +37,10 @@ export class Template__service extends Template {
|
|
|
30
37
|
customHeaders: [
|
|
31
38
|
`import { z } from 'zod';`,
|
|
32
39
|
`import qs from "qs";`,
|
|
33
|
-
`import useSWR, { SWRResponse } from "swr";`,
|
|
40
|
+
`import useSWR, { type SWRResponse } from "swr";`,
|
|
34
41
|
`import { fetch, ListResult, SWRError, SwrOptions, handleConditional, swrPostFetcher, EventHandlers, SSEStreamOptions, useSSEStream } from '../sonamu.shared';`,
|
|
35
42
|
...hasAxiosProgressEvent ? [
|
|
36
|
-
`import { AxiosProgressEvent } from 'axios';`
|
|
43
|
+
`import { type AxiosProgressEvent } from 'axios';`
|
|
37
44
|
] : []
|
|
38
45
|
]
|
|
39
46
|
};
|
|
@@ -42,13 +49,13 @@ export class Template__service extends Template {
|
|
|
42
49
|
const importKeys = [];
|
|
43
50
|
// 제네릭에서 선언한 타입, importKeys에서 제외 필요
|
|
44
51
|
let typeParamNames = [];
|
|
45
|
-
const groups =
|
|
52
|
+
const groups = group(apis, (api)=>api.modelName);
|
|
46
53
|
const body = Object.keys(groups).map((modelName)=>{
|
|
47
54
|
const methods = groups[modelName];
|
|
55
|
+
assert(methods);
|
|
48
56
|
const methodCodes = methods.map((api)=>{
|
|
49
57
|
// 컨텍스트 제외된 파라미터 리스트
|
|
50
|
-
const paramsWithoutContext = api.parameters.filter((param)=>!ApiParamType.isContext(param.type) && !ApiParamType.isRefKnex(param.type) && !(param.optional === true && param.name.startsWith("_")
|
|
51
|
-
));
|
|
58
|
+
const paramsWithoutContext = api.parameters.filter((param)=>!ApiParamType.isContext(param.type) && !ApiParamType.isRefKnex(param.type) && !(param.optional === true && param.name.startsWith("_")));
|
|
52
59
|
// 파라미터 타입 정의
|
|
53
60
|
const typeParamsDef = api.typeParameters.map((typeParam)=>{
|
|
54
61
|
return apiParamTypeToTsType(typeParam, importKeys);
|
|
@@ -59,14 +66,15 @@ export class Template__service extends Template {
|
|
|
59
66
|
// 파라미터 정의 (객체 형태)
|
|
60
67
|
const paramsDefAsObject = apiParamToTsCodeAsObject(paramsWithoutContext, importKeys);
|
|
61
68
|
// 리턴 타입 정의
|
|
62
|
-
const returnTypeDef = apiParamTypeToTsType(unwrapPromiseOnce(api.returnType), importKeys);
|
|
69
|
+
const returnTypeDef = apiParamTypeToTsType(assertDefined(unwrapPromiseOnce(api.returnType)), importKeys);
|
|
63
70
|
// 페이로드 데이터 정의
|
|
64
71
|
const payloadDef = `{ ${paramsWithoutContext.map((param)=>param.name).join(", ")} }`;
|
|
65
72
|
// 기본 URL
|
|
66
73
|
const apiBaseUrl = `${Sonamu.config.api.route.prefix}${api.path}`;
|
|
74
|
+
const clients = api.options.clients ?? [];
|
|
67
75
|
return [
|
|
68
76
|
// 클라이언트별로 생성
|
|
69
|
-
...
|
|
77
|
+
...sort(clients, (client)=>client === "swr" ? 0 : 1).map((client)=>{
|
|
70
78
|
switch(client){
|
|
71
79
|
case "axios":
|
|
72
80
|
return this.renderAxios(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef);
|
|
@@ -94,11 +102,11 @@ ${methodCodes}
|
|
|
94
102
|
lines: [
|
|
95
103
|
body
|
|
96
104
|
],
|
|
97
|
-
importKeys:
|
|
105
|
+
importKeys: diff(unique(importKeys), typeParamNames)
|
|
98
106
|
};
|
|
99
107
|
}
|
|
100
108
|
renderAxios(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef) {
|
|
101
|
-
const methodNameAxios = api.options.resourceName ?
|
|
109
|
+
const methodNameAxios = api.options.resourceName ? `get${inflection.camelize(api.options.resourceName)}` : api.methodName;
|
|
102
110
|
if (api.options.httpMethod === "GET") {
|
|
103
111
|
return `
|
|
104
112
|
export async function ${methodNameAxios}${typeParamsDef}(${paramsDef}): Promise<${returnTypeDef}> {
|
|
@@ -127,7 +135,7 @@ export async function ${methodNameAxios}${typeParamsDef}(${paramsDef}): Promise<
|
|
|
127
135
|
const fileParamName = isMultiple ? "files" : "file";
|
|
128
136
|
const fileParamType = isMultiple ? "File[]" : "File";
|
|
129
137
|
const formDataDef = isMultiple ? [
|
|
130
|
-
`${fileParamName}.forEach(f => formData.append("${fileParamName}", f))
|
|
138
|
+
`${fileParamName}.forEach(f => { formData.append("${fileParamName}", f) } ); `,
|
|
131
139
|
...paramsWithoutContext.map((param)=>`formData.append('${param.name}', String(${param.name}));`)
|
|
132
140
|
].join("\n") : [
|
|
133
141
|
`formData.append("${fileParamName}", ${fileParamName});`,
|
|
@@ -156,7 +164,7 @@ export async function ${api.methodName}${typeParamsDef}(
|
|
|
156
164
|
`.trim();
|
|
157
165
|
}
|
|
158
166
|
renderSwr(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef) {
|
|
159
|
-
const methodNameSwr = api.options.resourceName ?
|
|
167
|
+
const methodNameSwr = api.options.resourceName ? `use${inflection.camelize(api.options.resourceName)}` : `use${inflection.camelize(api.methodName)}`;
|
|
160
168
|
return ` export function ${inflection.camelize(methodNameSwr, true)}${typeParamsDef}(${[
|
|
161
169
|
paramsDef,
|
|
162
170
|
"swrOptions?: SwrOptions"
|
|
@@ -178,7 +186,7 @@ export async function ${api.methodName}${typeParamsDef}(${paramsDef}): Promise<R
|
|
|
178
186
|
if (!api.streamOptions) {
|
|
179
187
|
return "// streamOptions not found";
|
|
180
188
|
}
|
|
181
|
-
const methodNameStream = api.options.resourceName ?
|
|
189
|
+
const methodNameStream = api.options.resourceName ? `use${inflection.camelize(api.options.resourceName)}` : `use${inflection.camelize(api.methodName)}`;
|
|
182
190
|
const methodNameStreamCamelized = inflection.camelize(methodNameStream, true);
|
|
183
191
|
const eventsTypeDef = zodTypeToTsTypeDef(api.streamOptions.events);
|
|
184
192
|
return ` export function ${methodNameStreamCamelized}(
|
|
@@ -190,4 +198,4 @@ export async function ${api.methodName}${typeParamsDef}(${paramsDef}): Promise<R
|
|
|
190
198
|
}
|
|
191
199
|
}
|
|
192
200
|
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvc2VydmljZS50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgQXBpUGFyYW1UeXBlLCBBcGlQYXJhbSB9IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHtcbiAgYXBpUGFyYW1UeXBlVG9Uc1R5cGUsXG4gIGFwaVBhcmFtVG9Uc0NvZGUsXG4gIHVud3JhcFByb21pc2VPbmNlLFxuICB6b2RUeXBlVG9Uc1R5cGVEZWYsXG4gIGFwaVBhcmFtVG9Uc0NvZGVBc09iamVjdCxcbn0gZnJvbSBcIi4uLy4uL2FwaS9jb2RlLWNvbnZlcnRlcnNcIjtcbmltcG9ydCB7IEV4dGVuZGVkQXBpIH0gZnJvbSBcIi4uLy4uL2FwaS9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uLy4uL2FwaS9zb25hbXVcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX19zZXJ2aWNlIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInNlcnZpY2VcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCkge1xuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IFwiOnRhcmdldC9zcmMvc2VydmljZXNcIixcbiAgICAgIHBhdGg6IGAke25hbWVzLmZzfS8ke25hbWVzLmZzfS5zZXJ2aWNlLnRzYCxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHsgbmFtZXNSZWNvcmQgfTogVGVtcGxhdGVPcHRpb25zW1wic2VydmljZVwiXSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHN5bmNlcjogeyBhcGlzIH0sXG4gICAgfSA9IFNvbmFtdTtcblxuICAgIGNvbnN0IGFwaXNGb3JUaGlzTW9kZWwgPSBhcGlzLmZpbHRlcihcbiAgICAgIChhcGkpID0+IGFwaS5tb2RlbE5hbWUgPT09IGAke25hbWVzUmVjb3JkLmNhcGl0YWx9TW9kZWxgXG4gICAgKTtcblxuICAgIC8vIOyEnOu5hOyKpCBUeXBlU291cmNlXG4gICAgY29uc3QgeyBsaW5lcywgaW1wb3J0S2V5cyB9ID0gdGhpcy5nZXRUeXBlU291cmNlKGFwaXNGb3JUaGlzTW9kZWwpO1xuXG4gICAgLy8gQXhpb3NQcm9ncmVzc0V2ZW50IOyeiOuKlOyngCDtmZXsnbhcbiAgICBjb25zdCBoYXNBeGlvc1Byb2dyZXNzRXZlbnQgPSBhcGlzLmZpbmQoKGFwaSkgPT5cbiAgICAgIChhcGkub3B0aW9ucy5jbGllbnRzID8/IFtdKS5pbmNsdWRlcyhcImF4aW9zLW11bHRpcGFydFwiKVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKG5hbWVzUmVjb3JkKSxcbiAgICAgIGJvZHk6IGxpbmVzLmpvaW4oXCJcXG5cIiksXG4gICAgICBpbXBvcnRLZXlzOiBpbXBvcnRLZXlzLmZpbHRlcihcbiAgICAgICAgKGtleSkgPT4gW1wiTGlzdFJlc3VsdFwiXS5pbmNsdWRlcyhrZXkpID09PSBmYWxzZVxuICAgICAgKSxcbiAgICAgIGN1c3RvbUhlYWRlcnM6IFtcbiAgICAgICAgYGltcG9ydCB7IHogfSBmcm9tICd6b2QnO2AsXG4gICAgICAgIGBpbXBvcnQgcXMgZnJvbSBcInFzXCI7YCxcbiAgICAgICAgYGltcG9ydCB1c2VTV1IsIHsgU1dSUmVzcG9uc2UgfSBmcm9tIFwic3dyXCI7YCxcbiAgICAgICAgYGltcG9ydCB7IGZldGNoLCBMaXN0UmVzdWx0LCBTV1JFcnJvciwgU3dyT3B0aW9ucywgaGFuZGxlQ29uZGl0aW9uYWwsIHN3clBvc3RGZXRjaGVyLCBFdmVudEhhbmRsZXJzLCBTU0VTdHJlYW1PcHRpb25zLCB1c2VTU0VTdHJlYW0gfSBmcm9tICcuLi9zb25hbXUuc2hhcmVkJztgLFxuICAgICAgICAuLi4oaGFzQXhpb3NQcm9ncmVzc0V2ZW50XG4gICAgICAgICAgPyBbYGltcG9ydCB7IEF4aW9zUHJvZ3Jlc3NFdmVudCB9IGZyb20gJ2F4aW9zJztgXVxuICAgICAgICAgIDogW10pLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VHlwZVNvdXJjZShhcGlzOiBFeHRlbmRlZEFwaVtdKToge1xuICAgIGxpbmVzOiBzdHJpbmdbXTtcbiAgICBpbXBvcnRLZXlzOiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgY29uc3QgaW1wb3J0S2V5czogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIOygnOuEpOumreyXkOyEnCDshKDslrjtlZwg7YOA7J6FLCBpbXBvcnRLZXlz7JeQ7IScIOygnOyZuCDtlYTsmpRcbiAgICBsZXQgdHlwZVBhcmFtTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdCBncm91cHMgPSBfLmdyb3VwQnkoYXBpcywgKGFwaSkgPT4gYXBpLm1vZGVsTmFtZSk7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5rZXlzKGdyb3VwcylcbiAgICAgIC5tYXAoKG1vZGVsTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBtZXRob2RzID0gZ3JvdXBzW21vZGVsTmFtZV07XG4gICAgICAgIGNvbnN0IG1ldGhvZENvZGVzID0gbWV0aG9kc1xuICAgICAgICAgIC5tYXAoKGFwaSkgPT4ge1xuICAgICAgICAgICAgLy8g7Luo7YWN7Iqk7Yq4IOygnOyZuOuQnCDtjIzrnbzrr7jthLAg66as7Iqk7Yq4XG4gICAgICAgICAgICBjb25zdCBwYXJhbXNXaXRob3V0Q29udGV4dCA9IGFwaS5wYXJhbWV0ZXJzLmZpbHRlcihcbiAgICAgICAgICAgICAgKHBhcmFtKSA9PlxuICAgICAgICAgICAgICAgICFBcGlQYXJhbVR5cGUuaXNDb250ZXh0KHBhcmFtLnR5cGUpICYmXG4gICAgICAgICAgICAgICAgIUFwaVBhcmFtVHlwZS5pc1JlZktuZXgocGFyYW0udHlwZSkgJiZcbiAgICAgICAgICAgICAgICAhKHBhcmFtLm9wdGlvbmFsID09PSB0cnVlICYmIHBhcmFtLm5hbWUuc3RhcnRzV2l0aChcIl9cIikpIC8vIF/roZwg7Iuc7J6R7ZWY64qUIO2MjOudvOuvuO2EsOuKlCDsoJzsmbhcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIO2MjOudvOuvuO2EsCDtg4DsnoUg7KCV7J2YXG4gICAgICAgICAgICBjb25zdCB0eXBlUGFyYW1zRGVmID0gYXBpLnR5cGVQYXJhbWV0ZXJzXG4gICAgICAgICAgICAgIC5tYXAoKHR5cGVQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcGlQYXJhbVR5cGVUb1RzVHlwZSh0eXBlUGFyYW0sIGltcG9ydEtleXMpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuam9pbihcIiwgXCIpO1xuICAgICAgICAgICAgdHlwZVBhcmFtTmFtZXMgPSB0eXBlUGFyYW1OYW1lcy5jb25jYXQoXG4gICAgICAgICAgICAgIGFwaS50eXBlUGFyYW1ldGVycy5tYXAoKHR5cGVQYXJhbSkgPT4gdHlwZVBhcmFtLmlkKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8g7YyM652866+47YSwIOygleydmFxuICAgICAgICAgICAgY29uc3QgcGFyYW1zRGVmID0gYXBpUGFyYW1Ub1RzQ29kZShcbiAgICAgICAgICAgICAgcGFyYW1zV2l0aG91dENvbnRleHQsXG4gICAgICAgICAgICAgIGltcG9ydEtleXNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIO2MjOudvOuvuO2EsCDsoJXsnZggKOqwneyytCDtmJXtg5wpXG4gICAgICAgICAgICBjb25zdCBwYXJhbXNEZWZBc09iamVjdCA9IGFwaVBhcmFtVG9Uc0NvZGVBc09iamVjdChcbiAgICAgICAgICAgICAgcGFyYW1zV2l0aG91dENvbnRleHQsXG4gICAgICAgICAgICAgIGltcG9ydEtleXNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIOumrO2EtCDtg4DsnoUg7KCV7J2YXG4gICAgICAgICAgICBjb25zdCByZXR1cm5UeXBlRGVmID0gYXBpUGFyYW1UeXBlVG9Uc1R5cGUoXG4gICAgICAgICAgICAgIHVud3JhcFByb21pc2VPbmNlKGFwaS5yZXR1cm5UeXBlKSxcbiAgICAgICAgICAgICAgaW1wb3J0S2V5c1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8g7Y6Y7J2066Gc65OcIOuNsOydtO2EsCDsoJXsnZhcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWREZWYgPSBgeyAke3BhcmFtc1dpdGhvdXRDb250ZXh0XG4gICAgICAgICAgICAgIC5tYXAoKHBhcmFtKSA9PiBwYXJhbS5uYW1lKVxuICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfSB9YDtcblxuICAgICAgICAgICAgLy8g6riw67O4IFVSTFxuICAgICAgICAgICAgY29uc3QgYXBpQmFzZVVybCA9IGAke1NvbmFtdS5jb25maWcuYXBpLnJvdXRlLnByZWZpeH0ke2FwaS5wYXRofWA7XG5cbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIC8vIO2BtOudvOydtOyWuO2KuOuzhOuhnCDsg53shLFcbiAgICAgICAgICAgICAgLi4uXy5zb3J0QnkoYXBpLm9wdGlvbnMuY2xpZW50cywgKGNsaWVudCkgPT5cbiAgICAgICAgICAgICAgICBjbGllbnQgPT09IFwic3dyXCIgPyAwIDogMVxuICAgICAgICAgICAgICApLm1hcCgoY2xpZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjbGllbnQpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJheGlvc1wiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJBeGlvcyhcbiAgICAgICAgICAgICAgICAgICAgICBhcGksXG4gICAgICAgICAgICAgICAgICAgICAgYXBpQmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlUGFyYW1zRGVmLFxuICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc0RlZixcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlRGVmLFxuICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWREZWZcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJheGlvcy1tdWx0aXBhcnRcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyQXhpb3NNdWx0aXBhcnQoXG4gICAgICAgICAgICAgICAgICAgICAgYXBpLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaUJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtc0RlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZURlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNXaXRob3V0Q29udGV4dFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcInN3clwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJTd3IoXG4gICAgICAgICAgICAgICAgICAgICAgYXBpLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaUJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtc0RlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZURlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkRGVmXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwid2luZG93LWZldGNoXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlcldpbmRvd0ZldGNoKFxuICAgICAgICAgICAgICAgICAgICAgIGFwaSxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlCYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVQYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyYW1zRGVmLFxuICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWREZWZcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgLy8gTm90IHN1cHBvcnRlZCAke2luZmxlY3Rpb24uY2FtZWxpemUoY2xpZW50LCB0cnVlKX0geWV0LmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgLy8g7Iqk7Yq466as67CN7J24IOqyveyasFxuICAgICAgICAgICAgICAuLi4oYXBpLnN0cmVhbU9wdGlvbnNcbiAgICAgICAgICAgICAgICA/IFt0aGlzLnJlbmRlclN0cmVhbShhcGksIGFwaUJhc2VVcmwsIHBhcmFtc0RlZkFzT2JqZWN0KV1cbiAgICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAgIF0uam9pbihcIlxcblwiKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5qb2luKFwiXFxuXFxuXCIpO1xuXG4gICAgICAgIHJldHVybiBgZXhwb3J0IG5hbWVzcGFjZSAke21vZGVsTmFtZS5yZXBsYWNlKC9Nb2RlbCQvLCBcIlNlcnZpY2VcIikucmVwbGFjZSgvRnJhbWUkLywgXCJTZXJ2aWNlXCIpfSB7XG4ke21ldGhvZENvZGVzfVxufWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGluZXM6IFtib2R5XSxcbiAgICAgIGltcG9ydEtleXM6IF8uZGlmZmVyZW5jZShfLnVuaXEoaW1wb3J0S2V5cyksIHR5cGVQYXJhbU5hbWVzKSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyQXhpb3MoXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICBhcGlCYXNlVXJsOiBzdHJpbmcsXG4gICAgdHlwZVBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHJldHVyblR5cGVEZWY6IHN0cmluZyxcbiAgICBwYXlsb2FkRGVmOiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgbWV0aG9kTmFtZUF4aW9zID0gYXBpLm9wdGlvbnMucmVzb3VyY2VOYW1lXG4gICAgICA/IFwiZ2V0XCIgKyBpbmZsZWN0aW9uLmNhbWVsaXplKGFwaS5vcHRpb25zLnJlc291cmNlTmFtZSlcbiAgICAgIDogYXBpLm1ldGhvZE5hbWU7XG5cbiAgICBpZiAoYXBpLm9wdGlvbnMuaHR0cE1ldGhvZCA9PT0gXCJHRVRcIikge1xuICAgICAgcmV0dXJuIGBcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiAke21ldGhvZE5hbWVBeGlvc30ke3R5cGVQYXJhbXNEZWZ9KCR7cGFyYW1zRGVmfSk6IFByb21pc2U8JHtyZXR1cm5UeXBlRGVmfT4ge1xuICAgIHJldHVybiBmZXRjaCh7XG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICB1cmw6IFxcYCR7YXBpQmFzZVVybH0/XFwke3FzLnN0cmluZ2lmeSgke3BheWxvYWREZWZ9KX1cXGAsXG4gICAgICAke2FwaS5vcHRpb25zLnRpbWVvdXQgPyBgc2lnbmFsOiBBYm9ydFNpZ25hbC50aW1lb3V0KCR7YXBpLm9wdGlvbnMudGltZW91dH0pLGAgOiBcIlwifVxuICAgIH0pO1xufVxuICAgIGAudHJpbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uICR7bWV0aG9kTmFtZUF4aW9zfSR7dHlwZVBhcmFtc0RlZn0oJHtwYXJhbXNEZWZ9KTogUHJvbWlzZTwke3JldHVyblR5cGVEZWZ9PiB7XG4gICAgcmV0dXJuIGZldGNoKHtcbiAgICAgIG1ldGhvZDogJyR7YXBpLm9wdGlvbnMuaHR0cE1ldGhvZH0nLFxuICAgICAgdXJsOiBcXGAke2FwaUJhc2VVcmx9XFxgLFxuICAgICAgZGF0YTogJHtwYXlsb2FkRGVmfSxcbiAgICAgICR7YXBpLm9wdGlvbnMudGltZW91dCA/IGBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoJHthcGkub3B0aW9ucy50aW1lb3V0fSksYCA6IFwiXCJ9XG4gICAgfSk7XG59XG4gICAgICBgLnRyaW0oKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJBeGlvc011bHRpcGFydChcbiAgICBhcGk6IEV4dGVuZGVkQXBpLFxuICAgIGFwaUJhc2VVcmw6IHN0cmluZyxcbiAgICB0eXBlUGFyYW1zRGVmOiBzdHJpbmcsXG4gICAgcGFyYW1zRGVmOiBzdHJpbmcsXG4gICAgcmV0dXJuVHlwZURlZjogc3RyaW5nLFxuICAgIHBhcmFtc1dpdGhvdXRDb250ZXh0OiBBcGlQYXJhbVtdXG4gICkge1xuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBhcGkudXBsb2FkT3B0aW9ucz8ubW9kZSA9PT0gXCJtdWx0aXBsZVwiO1xuICAgIGNvbnN0IGZpbGVQYXJhbU5hbWUgPSBpc011bHRpcGxlID8gXCJmaWxlc1wiIDogXCJmaWxlXCI7XG4gICAgY29uc3QgZmlsZVBhcmFtVHlwZSA9IGlzTXVsdGlwbGUgPyBcIkZpbGVbXVwiIDogXCJGaWxlXCI7XG5cbiAgICBjb25zdCBmb3JtRGF0YURlZiA9IGlzTXVsdGlwbGVcbiAgICAgID8gW1xuICAgICAgICAgIGAke2ZpbGVQYXJhbU5hbWV9LmZvckVhY2goZiA9PiBmb3JtRGF0YS5hcHBlbmQoXCIke2ZpbGVQYXJhbU5hbWV9XCIsIGYpKTtgLFxuICAgICAgICAgIC4uLnBhcmFtc1dpdGhvdXRDb250ZXh0Lm1hcChcbiAgICAgICAgICAgIChwYXJhbSkgPT5cbiAgICAgICAgICAgICAgYGZvcm1EYXRhLmFwcGVuZCgnJHtwYXJhbS5uYW1lfScsIFN0cmluZygke3BhcmFtLm5hbWV9KSk7YFxuICAgICAgICAgICksXG4gICAgICAgIF0uam9pbihcIlxcblwiKVxuICAgICAgOiBbXG4gICAgICAgICAgYGZvcm1EYXRhLmFwcGVuZChcIiR7ZmlsZVBhcmFtTmFtZX1cIiwgJHtmaWxlUGFyYW1OYW1lfSk7YCxcbiAgICAgICAgICAuLi5wYXJhbXNXaXRob3V0Q29udGV4dC5tYXAoXG4gICAgICAgICAgICAocGFyYW0pID0+XG4gICAgICAgICAgICAgIGBmb3JtRGF0YS5hcHBlbmQoJyR7cGFyYW0ubmFtZX0nLCBTdHJpbmcoJHtwYXJhbS5uYW1lfSkpO2BcbiAgICAgICAgICApLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIik7XG5cbiAgICBjb25zdCBwYXJhbXNEZWZDb21tYSA9IHBhcmFtc0RlZiAhPT0gXCJcIiA/IFwiLCBcIiA6IFwiXCI7XG4gICAgcmV0dXJuIGBcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiAke2FwaS5tZXRob2ROYW1lfSR7dHlwZVBhcmFtc0RlZn0oXG4gICR7cGFyYW1zRGVmfSR7cGFyYW1zRGVmQ29tbWF9XG4gICR7ZmlsZVBhcmFtTmFtZX06ICR7ZmlsZVBhcmFtVHlwZX0sXG4gIG9uVXBsb2FkUHJvZ3Jlc3M/OiAocGU6QXhpb3NQcm9ncmVzc0V2ZW50KSA9PiB2b2lkXG4gICk6IFByb21pc2U8JHtyZXR1cm5UeXBlRGVmfT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgJHtmb3JtRGF0YURlZn1cbiAgICByZXR1cm4gZmV0Y2goe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IFxcYCR7YXBpQmFzZVVybH1cXGAsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiLFxuICAgICAgfSxcbiAgICAgIG9uVXBsb2FkUHJvZ3Jlc3MsXG4gICAgICBkYXRhOiBmb3JtRGF0YSxcbiAgICAgICR7YXBpLm9wdGlvbnMudGltZW91dCA/IGBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoJHthcGkub3B0aW9ucy50aW1lb3V0fSksYCA6IFwiXCJ9XG4gICAgfSk7XG4gIH1cbiAgYC50cmltKCk7XG4gIH1cblxuICByZW5kZXJTd3IoXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICBhcGlCYXNlVXJsOiBzdHJpbmcsXG4gICAgdHlwZVBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHJldHVyblR5cGVEZWY6IHN0cmluZyxcbiAgICBwYXlsb2FkRGVmOiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgbWV0aG9kTmFtZVN3ciA9IGFwaS5vcHRpb25zLnJlc291cmNlTmFtZVxuICAgICAgPyBcInVzZVwiICsgaW5mbGVjdGlvbi5jYW1lbGl6ZShhcGkub3B0aW9ucy5yZXNvdXJjZU5hbWUpXG4gICAgICA6IFwidXNlXCIgKyBpbmZsZWN0aW9uLmNhbWVsaXplKGFwaS5tZXRob2ROYW1lKTtcbiAgICByZXR1cm4gYCAgZXhwb3J0IGZ1bmN0aW9uICR7aW5mbGVjdGlvbi5jYW1lbGl6ZShcbiAgICAgIG1ldGhvZE5hbWVTd3IsXG4gICAgICB0cnVlXG4gICAgKX0ke3R5cGVQYXJhbXNEZWZ9KCR7W3BhcmFtc0RlZiwgXCJzd3JPcHRpb25zPzogU3dyT3B0aW9uc1wiXVxuICAgICAgLmZpbHRlcigocCkgPT4gcCAhPT0gXCJcIilcbiAgICAgIC5qb2luKFwiLFwiKX0sICk6IFNXUlJlc3BvbnNlPCR7cmV0dXJuVHlwZURlZn0sIFNXUkVycm9yPiB7XG4gICAgcmV0dXJuIHVzZVNXUihoYW5kbGVDb25kaXRpb25hbChbXG4gICAgICBcXGAke2FwaUJhc2VVcmx9XFxgLFxuICAgICAgJHtwYXlsb2FkRGVmfSxcbiAgICBdLCBzd3JPcHRpb25zPy5jb25kaXRpb25hbCkke1xuICAgICAgYXBpLm9wdGlvbnMuaHR0cE1ldGhvZCA9PT0gXCJQT1NUXCIgPyBcIiwgc3dyUG9zdEZldGNoZXJcIiA6IFwiXCJcbiAgICB9JHtcbiAgICAgIGFwaS5vcHRpb25zLnRpbWVvdXQgPyBgLCB7IGxvYWRpbmdUaW1lb3V0OiAke2FwaS5vcHRpb25zLnRpbWVvdXR9IH1gIDogXCJcIlxuICAgIH0pO1xuICB9YDtcbiAgfVxuXG4gIHJlbmRlcldpbmRvd0ZldGNoKFxuICAgIGFwaTogRXh0ZW5kZWRBcGksXG4gICAgYXBpQmFzZVVybDogc3RyaW5nLFxuICAgIHR5cGVQYXJhbXNEZWY6IHN0cmluZyxcbiAgICBwYXJhbXNEZWY6IHN0cmluZyxcbiAgICBwYXlsb2FkRGVmOiBzdHJpbmdcbiAgKSB7XG4gICAgcmV0dXJuIGBcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiAke2FwaS5tZXRob2ROYW1lfSR7dHlwZVBhcmFtc0RlZn0oJHtwYXJhbXNEZWZ9KTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIHJldHVybiB3aW5kb3cuZmV0Y2goXFxgJHthcGlCYXNlVXJsfT9cXCR7cXMuc3RyaW5naWZ5KCR7cGF5bG9hZERlZn0pfVxcYCR7XG4gICAgICBhcGkub3B0aW9ucy50aW1lb3V0XG4gICAgICAgID8gYCwgeyBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoJHthcGkub3B0aW9ucy50aW1lb3V0fSkgfWBcbiAgICAgICAgOiBcIlwiXG4gICAgfSk7XG59XG4gICAgYC50cmltKCk7XG4gIH1cblxuICByZW5kZXJTdHJlYW0oXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICBhcGlCYXNlVXJsOiBzdHJpbmcsXG4gICAgcGFyYW1zRGVmQXNPYmplY3Q6IHN0cmluZ1xuICApIHtcbiAgICBpZiAoIWFwaS5zdHJlYW1PcHRpb25zKSB7XG4gICAgICByZXR1cm4gXCIvLyBzdHJlYW1PcHRpb25zIG5vdCBmb3VuZFwiO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZE5hbWVTdHJlYW0gPSBhcGkub3B0aW9ucy5yZXNvdXJjZU5hbWVcbiAgICAgID8gXCJ1c2VcIiArIGluZmxlY3Rpb24uY2FtZWxpemUoYXBpLm9wdGlvbnMucmVzb3VyY2VOYW1lKVxuICAgICAgOiBcInVzZVwiICsgaW5mbGVjdGlvbi5jYW1lbGl6ZShhcGkubWV0aG9kTmFtZSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZVN0cmVhbUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoXG4gICAgICBtZXRob2ROYW1lU3RyZWFtLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBldmVudHNUeXBlRGVmID0gem9kVHlwZVRvVHNUeXBlRGVmKGFwaS5zdHJlYW1PcHRpb25zLmV2ZW50cyk7XG5cbiAgICByZXR1cm4gYCAgZXhwb3J0IGZ1bmN0aW9uICR7bWV0aG9kTmFtZVN0cmVhbUNhbWVsaXplZH0oXG4gIHBhcmFtczogJHtwYXJhbXNEZWZBc09iamVjdH0sXG4gIGhhbmRsZXJzOiBFdmVudEhhbmRsZXJzPCR7ZXZlbnRzVHlwZURlZn0gJiB7IGVuZD86ICgpID0+IHZvaWQgfT4sXG4gIG9wdGlvbnM6IFNTRVN0cmVhbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdXNlU1NFU3RyZWFtPCR7ZXZlbnRzVHlwZURlZn0+KFxcYCR7YXBpQmFzZVVybH1cXGAsIHBhcmFtcywgaGFuZGxlcnMsIG9wdGlvbnMpO1xuICB9YDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImluZmxlY3Rpb24iLCJfIiwiQXBpUGFyYW1UeXBlIiwiYXBpUGFyYW1UeXBlVG9Uc1R5cGUiLCJhcGlQYXJhbVRvVHNDb2RlIiwidW53cmFwUHJvbWlzZU9uY2UiLCJ6b2RUeXBlVG9Uc1R5cGVEZWYiLCJhcGlQYXJhbVRvVHNDb2RlQXNPYmplY3QiLCJUZW1wbGF0ZSIsIlNvbmFtdSIsIlRlbXBsYXRlX19zZXJ2aWNlIiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwidGFyZ2V0IiwicGF0aCIsImZzIiwicmVuZGVyIiwibmFtZXNSZWNvcmQiLCJzeW5jZXIiLCJhcGlzIiwiYXBpc0ZvclRoaXNNb2RlbCIsImZpbHRlciIsImFwaSIsIm1vZGVsTmFtZSIsImNhcGl0YWwiLCJsaW5lcyIsImltcG9ydEtleXMiLCJnZXRUeXBlU291cmNlIiwiaGFzQXhpb3NQcm9ncmVzc0V2ZW50IiwiZmluZCIsIm9wdGlvbnMiLCJjbGllbnRzIiwiaW5jbHVkZXMiLCJib2R5Iiwiam9pbiIsImtleSIsImN1c3RvbUhlYWRlcnMiLCJ0eXBlUGFyYW1OYW1lcyIsImdyb3VwcyIsImdyb3VwQnkiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwibWV0aG9kcyIsIm1ldGhvZENvZGVzIiwicGFyYW1zV2l0aG91dENvbnRleHQiLCJwYXJhbWV0ZXJzIiwicGFyYW0iLCJpc0NvbnRleHQiLCJ0eXBlIiwiaXNSZWZLbmV4Iiwib3B0aW9uYWwiLCJuYW1lIiwic3RhcnRzV2l0aCIsInR5cGVQYXJhbXNEZWYiLCJ0eXBlUGFyYW1ldGVycyIsInR5cGVQYXJhbSIsImNvbmNhdCIsImlkIiwicGFyYW1zRGVmIiwicGFyYW1zRGVmQXNPYmplY3QiLCJyZXR1cm5UeXBlRGVmIiwicmV0dXJuVHlwZSIsInBheWxvYWREZWYiLCJhcGlCYXNlVXJsIiwiY29uZmlnIiwicm91dGUiLCJwcmVmaXgiLCJzb3J0QnkiLCJjbGllbnQiLCJyZW5kZXJBeGlvcyIsInJlbmRlckF4aW9zTXVsdGlwYXJ0IiwicmVuZGVyU3dyIiwicmVuZGVyV2luZG93RmV0Y2giLCJjYW1lbGl6ZSIsInN0cmVhbU9wdGlvbnMiLCJyZW5kZXJTdHJlYW0iLCJyZXBsYWNlIiwiZGlmZmVyZW5jZSIsInVuaXEiLCJtZXRob2ROYW1lQXhpb3MiLCJyZXNvdXJjZU5hbWUiLCJtZXRob2ROYW1lIiwiaHR0cE1ldGhvZCIsInRpbWVvdXQiLCJ0cmltIiwiaXNNdWx0aXBsZSIsInVwbG9hZE9wdGlvbnMiLCJtb2RlIiwiZmlsZVBhcmFtTmFtZSIsImZpbGVQYXJhbVR5cGUiLCJmb3JtRGF0YURlZiIsInBhcmFtc0RlZkNvbW1hIiwibWV0aG9kTmFtZVN3ciIsInAiLCJtZXRob2ROYW1lU3RyZWFtIiwibWV0aG9kTmFtZVN0cmVhbUNhbWVsaXplZCIsImV2ZW50c1R5cGVEZWYiLCJldmVudHMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGdCQUFnQixhQUFhO0FBQ3BDLFlBQVlDLE9BQU8sWUFBWTtBQUcvQixTQUFTQyxZQUFZLFFBQWtCLHVCQUFvQjtBQUMzRCxTQUNFQyxvQkFBb0IsRUFDcEJDLGdCQUFnQixFQUNoQkMsaUJBQWlCLEVBQ2pCQyxrQkFBa0IsRUFDbEJDLHdCQUF3QixRQUNuQiwrQkFBNEI7QUFFbkMsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBQ3ZDLFNBQVNDLE1BQU0sUUFBUSxzQkFBbUI7QUFFMUMsT0FBTyxNQUFNQywwQkFBMEJGO0lBQ3JDLGFBQWM7UUFDWixLQUFLLENBQUM7SUFDUjtJQUVBRyxpQkFBaUJDLEtBQXdCLEVBQUU7UUFDekMsT0FBTztZQUNMQyxRQUFRO1lBQ1JDLE1BQU0sR0FBR0YsTUFBTUcsRUFBRSxDQUFDLENBQUMsRUFBRUgsTUFBTUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUM1QztJQUNGO0lBRUFDLE9BQU8sRUFBRUMsV0FBVyxFQUE4QixFQUFFO1FBQ2xELE1BQU0sRUFDSkMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsRUFDakIsR0FBR1Y7UUFFSixNQUFNVyxtQkFBbUJELEtBQUtFLE1BQU0sQ0FDbEMsQ0FBQ0MsTUFBUUEsSUFBSUMsU0FBUyxLQUFLLEdBQUdOLFlBQVlPLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFHMUQsaUJBQWlCO1FBQ2pCLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUNDLGFBQWEsQ0FBQ1A7UUFFakQsNEJBQTRCO1FBQzVCLE1BQU1RLHdCQUF3QlQsS0FBS1UsSUFBSSxDQUFDLENBQUNQLE1BQ3ZDLEFBQUNBLENBQUFBLElBQUlRLE9BQU8sQ0FBQ0MsT0FBTyxJQUFJLEVBQUUsQUFBRCxFQUFHQyxRQUFR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
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvc2VydmljZS50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5pbXBvcnQgeyBkaWZmLCBncm91cCwgc29ydCwgdW5pcXVlIH0gZnJvbSBcInJhZGFzaGlcIjtcbmltcG9ydCB7XG4gIGFwaVBhcmFtVG9Uc0NvZGUsXG4gIGFwaVBhcmFtVG9Uc0NvZGVBc09iamVjdCxcbiAgYXBpUGFyYW1UeXBlVG9Uc1R5cGUsXG4gIHVud3JhcFByb21pc2VPbmNlLFxufSBmcm9tIFwiLi4vLi4vYXBpL2NvZGUtY29udmVydGVyc1wiO1xuaW1wb3J0IHR5cGUgeyBFeHRlbmRlZEFwaSB9IGZyb20gXCIuLi8uLi9hcGkvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uLy4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBOYWl0ZSB9IGZyb20gXCIuLi8uLi9uYWl0ZS9uYWl0ZVwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IHR5cGUgQXBpUGFyYW0sIEFwaVBhcmFtVHlwZSB9IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgYXNzZXJ0RGVmaW5lZCB9IGZyb20gXCIuLi8uLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcbmltcG9ydCB7IHpvZFR5cGVUb1RzVHlwZURlZiB9IGZyb20gXCIuLi96b2QtY29udmVydGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fc2VydmljZSBleHRlbmRzIFRlbXBsYXRlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJzZXJ2aWNlXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBcIjp0YXJnZXQvc3JjL3NlcnZpY2VzXCIsXG4gICAgICBwYXRoOiBgJHtuYW1lcy5mc30vJHtuYW1lcy5mc30uc2VydmljZS50c2AsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcih7IG5hbWVzUmVjb3JkIH06IFRlbXBsYXRlT3B0aW9uc1tcInNlcnZpY2VcIl0pIHtcbiAgICBOYWl0ZS50KFwicmVuZGVyXCIsIHsgbmFtZXNSZWNvcmQgfSk7XG5cbiAgICBjb25zdCB7XG4gICAgICBzeW5jZXI6IHsgYXBpcyB9LFxuICAgIH0gPSBTb25hbXU7XG5cbiAgICBjb25zdCBhcGlzRm9yVGhpc01vZGVsID0gYXBpcy5maWx0ZXIoKGFwaSkgPT4gYXBpLm1vZGVsTmFtZSA9PT0gYCR7bmFtZXNSZWNvcmQuY2FwaXRhbH1Nb2RlbGApO1xuXG4gICAgLy8g7ISc67mE7IqkIFR5cGVTb3VyY2VcbiAgICBjb25zdCB7IGxpbmVzLCBpbXBvcnRLZXlzIH0gPSB0aGlzLmdldFR5cGVTb3VyY2UoYXBpc0ZvclRoaXNNb2RlbCk7XG5cbiAgICAvLyBBeGlvc1Byb2dyZXNzRXZlbnQg7J6I64qU7KeAIO2ZleyduFxuICAgIGNvbnN0IGhhc0F4aW9zUHJvZ3Jlc3NFdmVudCA9IGFwaXMuZmluZCgoYXBpKSA9PlxuICAgICAgKGFwaS5vcHRpb25zLmNsaWVudHMgPz8gW10pLmluY2x1ZGVzKFwiYXhpb3MtbXVsdGlwYXJ0XCIpLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKG5hbWVzUmVjb3JkKSxcbiAgICAgIGJvZHk6IGxpbmVzLmpvaW4oXCJcXG5cIiksXG4gICAgICBpbXBvcnRLZXlzOiBpbXBvcnRLZXlzLmZpbHRlcigoa2V5KSA9PiBbXCJMaXN0UmVzdWx0XCJdLmluY2x1ZGVzKGtleSkgPT09IGZhbHNlKSxcbiAgICAgIGN1c3RvbUhlYWRlcnM6IFtcbiAgICAgICAgYGltcG9ydCB7IHogfSBmcm9tICd6b2QnO2AsXG4gICAgICAgIGBpbXBvcnQgcXMgZnJvbSBcInFzXCI7YCxcbiAgICAgICAgYGltcG9ydCB1c2VTV1IsIHsgdHlwZSBTV1JSZXNwb25zZSB9IGZyb20gXCJzd3JcIjtgLFxuICAgICAgICBgaW1wb3J0IHsgZmV0Y2gsIExpc3RSZXN1bHQsIFNXUkVycm9yLCBTd3JPcHRpb25zLCBoYW5kbGVDb25kaXRpb25hbCwgc3dyUG9zdEZldGNoZXIsIEV2ZW50SGFuZGxlcnMsIFNTRVN0cmVhbU9wdGlvbnMsIHVzZVNTRVN0cmVhbSB9IGZyb20gJy4uL3NvbmFtdS5zaGFyZWQnO2AsXG4gICAgICAgIC4uLihoYXNBeGlvc1Byb2dyZXNzRXZlbnQgPyBbYGltcG9ydCB7IHR5cGUgQXhpb3NQcm9ncmVzc0V2ZW50IH0gZnJvbSAnYXhpb3MnO2BdIDogW10pLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VHlwZVNvdXJjZShhcGlzOiBFeHRlbmRlZEFwaVtdKToge1xuICAgIGxpbmVzOiBzdHJpbmdbXTtcbiAgICBpbXBvcnRLZXlzOiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgY29uc3QgaW1wb3J0S2V5czogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIOygnOuEpOumreyXkOyEnCDshKDslrjtlZwg7YOA7J6FLCBpbXBvcnRLZXlz7JeQ7IScIOygnOyZuCDtlYTsmpRcbiAgICBsZXQgdHlwZVBhcmFtTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdCBncm91cHMgPSBncm91cChhcGlzLCAoYXBpKSA9PiBhcGkubW9kZWxOYW1lKTtcbiAgICBjb25zdCBib2R5ID0gT2JqZWN0LmtleXMoZ3JvdXBzKVxuICAgICAgLm1hcCgobW9kZWxOYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IG1ldGhvZHMgPSBncm91cHNbbW9kZWxOYW1lXTtcbiAgICAgICAgYXNzZXJ0KG1ldGhvZHMpO1xuICAgICAgICBjb25zdCBtZXRob2RDb2RlcyA9IG1ldGhvZHNcbiAgICAgICAgICAubWFwKChhcGkpID0+IHtcbiAgICAgICAgICAgIC8vIOy7qO2FjeyKpO2KuCDsoJzsmbjrkJwg7YyM652866+47YSwIOumrOyKpO2KuFxuICAgICAgICAgICAgY29uc3QgcGFyYW1zV2l0aG91dENvbnRleHQgPSBhcGkucGFyYW1ldGVycy5maWx0ZXIoXG4gICAgICAgICAgICAgIChwYXJhbSkgPT5cbiAgICAgICAgICAgICAgICAhQXBpUGFyYW1UeXBlLmlzQ29udGV4dChwYXJhbS50eXBlKSAmJlxuICAgICAgICAgICAgICAgICFBcGlQYXJhbVR5cGUuaXNSZWZLbmV4KHBhcmFtLnR5cGUpICYmXG4gICAgICAgICAgICAgICAgIShwYXJhbS5vcHRpb25hbCA9PT0gdHJ1ZSAmJiBwYXJhbS5uYW1lLnN0YXJ0c1dpdGgoXCJfXCIpKSwgLy8gX+uhnCDsi5zsnpHtlZjripQg7YyM652866+47YSw64qUIOygnOyZuFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8g7YyM652866+47YSwIO2DgOyehSDsoJXsnZhcbiAgICAgICAgICAgIGNvbnN0IHR5cGVQYXJhbXNEZWYgPSBhcGkudHlwZVBhcmFtZXRlcnNcbiAgICAgICAgICAgICAgLm1hcCgodHlwZVBhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwaVBhcmFtVHlwZVRvVHNUeXBlKHR5cGVQYXJhbSwgaW1wb3J0S2V5cyk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5qb2luKFwiLCBcIik7XG4gICAgICAgICAgICB0eXBlUGFyYW1OYW1lcyA9IHR5cGVQYXJhbU5hbWVzLmNvbmNhdChcbiAgICAgICAgICAgICAgYXBpLnR5cGVQYXJhbWV0ZXJzLm1hcCgodHlwZVBhcmFtKSA9PiB0eXBlUGFyYW0uaWQpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8g7YyM652866+47YSwIOygleydmFxuICAgICAgICAgICAgY29uc3QgcGFyYW1zRGVmID0gYXBpUGFyYW1Ub1RzQ29kZShwYXJhbXNXaXRob3V0Q29udGV4dCwgaW1wb3J0S2V5cyk7XG5cbiAgICAgICAgICAgIC8vIO2MjOudvOuvuO2EsCDsoJXsnZggKOqwneyytCDtmJXtg5wpXG4gICAgICAgICAgICBjb25zdCBwYXJhbXNEZWZBc09iamVjdCA9IGFwaVBhcmFtVG9Uc0NvZGVBc09iamVjdChwYXJhbXNXaXRob3V0Q29udGV4dCwgaW1wb3J0S2V5cyk7XG5cbiAgICAgICAgICAgIC8vIOumrO2EtCDtg4DsnoUg7KCV7J2YXG4gICAgICAgICAgICBjb25zdCByZXR1cm5UeXBlRGVmID0gYXBpUGFyYW1UeXBlVG9Uc1R5cGUoXG4gICAgICAgICAgICAgIGFzc2VydERlZmluZWQodW53cmFwUHJvbWlzZU9uY2UoYXBpLnJldHVyblR5cGUpKSxcbiAgICAgICAgICAgICAgaW1wb3J0S2V5cyxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIO2OmOydtOuhnOuTnCDrjbDsnbTthLAg7KCV7J2YXG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkRGVmID0gYHsgJHtwYXJhbXNXaXRob3V0Q29udGV4dC5tYXAoKHBhcmFtKSA9PiBwYXJhbS5uYW1lKS5qb2luKFwiLCBcIil9IH1gO1xuXG4gICAgICAgICAgICAvLyDquLDrs7ggVVJMXG4gICAgICAgICAgICBjb25zdCBhcGlCYXNlVXJsID0gYCR7U29uYW11LmNvbmZpZy5hcGkucm91dGUucHJlZml4fSR7YXBpLnBhdGh9YDtcblxuICAgICAgICAgICAgY29uc3QgY2xpZW50cyA9IGFwaS5vcHRpb25zLmNsaWVudHMgPz8gW107XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAvLyDtgbTrnbzsnbTslrjtirjrs4TroZwg7IOd7ISxXG4gICAgICAgICAgICAgIC4uLnNvcnQoY2xpZW50cywgKGNsaWVudCkgPT4gKGNsaWVudCA9PT0gXCJzd3JcIiA/IDAgOiAxKSkubWFwKChjbGllbnQpID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNsaWVudCkge1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImF4aW9zXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlckF4aW9zKFxuICAgICAgICAgICAgICAgICAgICAgIGFwaSxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlCYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVQYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyYW1zRGVmLFxuICAgICAgICAgICAgICAgICAgICAgIHJldHVyblR5cGVEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZERlZixcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJheGlvcy1tdWx0aXBhcnRcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyQXhpb3NNdWx0aXBhcnQoXG4gICAgICAgICAgICAgICAgICAgICAgYXBpLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaUJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtc0RlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZURlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNXaXRob3V0Q29udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJzd3JcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyU3dyKFxuICAgICAgICAgICAgICAgICAgICAgIGFwaSxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlCYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVQYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyYW1zRGVmLFxuICAgICAgICAgICAgICAgICAgICAgIHJldHVyblR5cGVEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZERlZixcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJ3aW5kb3ctZmV0Y2hcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyV2luZG93RmV0Y2goXG4gICAgICAgICAgICAgICAgICAgICAgYXBpLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaUJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtc0RlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZERlZixcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgLy8gTm90IHN1cHBvcnRlZCAke2luZmxlY3Rpb24uY2FtZWxpemUoY2xpZW50LCB0cnVlKX0geWV0LmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgLy8g7Iqk7Yq466as67CN7J24IOqyveyasFxuICAgICAgICAgICAgICAuLi4oYXBpLnN0cmVhbU9wdGlvbnMgPyBbdGhpcy5yZW5kZXJTdHJlYW0oYXBpLCBhcGlCYXNlVXJsLCBwYXJhbXNEZWZBc09iamVjdCldIDogW10pLFxuICAgICAgICAgICAgXS5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XG5cbiAgICAgICAgcmV0dXJuIGBleHBvcnQgbmFtZXNwYWNlICR7bW9kZWxOYW1lLnJlcGxhY2UoL01vZGVsJC8sIFwiU2VydmljZVwiKS5yZXBsYWNlKC9GcmFtZSQvLCBcIlNlcnZpY2VcIil9IHtcbiR7bWV0aG9kQ29kZXN9XG59YDtcbiAgICAgIH0pXG4gICAgICAuam9pbihcIlxcblxcblwiKTtcblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lczogW2JvZHldLFxuICAgICAgaW1wb3J0S2V5czogZGlmZih1bmlxdWUoaW1wb3J0S2V5cyksIHR5cGVQYXJhbU5hbWVzKSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyQXhpb3MoXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICBhcGlCYXNlVXJsOiBzdHJpbmcsXG4gICAgdHlwZVBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHJldHVyblR5cGVEZWY6IHN0cmluZyxcbiAgICBwYXlsb2FkRGVmOiBzdHJpbmcsXG4gICkge1xuICAgIGNvbnN0IG1ldGhvZE5hbWVBeGlvcyA9IGFwaS5vcHRpb25zLnJlc291cmNlTmFtZVxuICAgICAgPyBgZ2V0JHtpbmZsZWN0aW9uLmNhbWVsaXplKGFwaS5vcHRpb25zLnJlc291cmNlTmFtZSl9YFxuICAgICAgOiBhcGkubWV0aG9kTmFtZTtcblxuICAgIGlmIChhcGkub3B0aW9ucy5odHRwTWV0aG9kID09PSBcIkdFVFwiKSB7XG4gICAgICByZXR1cm4gYFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uICR7bWV0aG9kTmFtZUF4aW9zfSR7dHlwZVBhcmFtc0RlZn0oJHtwYXJhbXNEZWZ9KTogUHJvbWlzZTwke3JldHVyblR5cGVEZWZ9PiB7XG4gICAgcmV0dXJuIGZldGNoKHtcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIHVybDogXFxgJHthcGlCYXNlVXJsfT9cXCR7cXMuc3RyaW5naWZ5KCR7cGF5bG9hZERlZn0pfVxcYCxcbiAgICAgICR7YXBpLm9wdGlvbnMudGltZW91dCA/IGBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoJHthcGkub3B0aW9ucy50aW1lb3V0fSksYCA6IFwiXCJ9XG4gICAgfSk7XG59XG4gICAgYC50cmltKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gJHttZXRob2ROYW1lQXhpb3N9JHt0eXBlUGFyYW1zRGVmfSgke3BhcmFtc0RlZn0pOiBQcm9taXNlPCR7cmV0dXJuVHlwZURlZn0+IHtcbiAgICByZXR1cm4gZmV0Y2goe1xuICAgICAgbWV0aG9kOiAnJHthcGkub3B0aW9ucy5odHRwTWV0aG9kfScsXG4gICAgICB1cmw6IFxcYCR7YXBpQmFzZVVybH1cXGAsXG4gICAgICBkYXRhOiAke3BheWxvYWREZWZ9LFxuICAgICAgJHthcGkub3B0aW9ucy50aW1lb3V0ID8gYHNpZ25hbDogQWJvcnRTaWduYWwudGltZW91dCgke2FwaS5vcHRpb25zLnRpbWVvdXR9KSxgIDogXCJcIn1cbiAgICB9KTtcbn1cbiAgICAgIGAudHJpbSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlckF4aW9zTXVsdGlwYXJ0KFxuICAgIGFwaTogRXh0ZW5kZWRBcGksXG4gICAgYXBpQmFzZVVybDogc3RyaW5nLFxuICAgIHR5cGVQYXJhbXNEZWY6IHN0cmluZyxcbiAgICBwYXJhbXNEZWY6IHN0cmluZyxcbiAgICByZXR1cm5UeXBlRGVmOiBzdHJpbmcsXG4gICAgcGFyYW1zV2l0aG91dENvbnRleHQ6IEFwaVBhcmFtW10sXG4gICkge1xuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBhcGkudXBsb2FkT3B0aW9ucz8ubW9kZSA9PT0gXCJtdWx0aXBsZVwiO1xuICAgIGNvbnN0IGZpbGVQYXJhbU5hbWUgPSBpc011bHRpcGxlID8gXCJmaWxlc1wiIDogXCJmaWxlXCI7XG4gICAgY29uc3QgZmlsZVBhcmFtVHlwZSA9IGlzTXVsdGlwbGUgPyBcIkZpbGVbXVwiIDogXCJGaWxlXCI7XG5cbiAgICBjb25zdCBmb3JtRGF0YURlZiA9IGlzTXVsdGlwbGVcbiAgICAgID8gW1xuICAgICAgICAgIGAke2ZpbGVQYXJhbU5hbWV9LmZvckVhY2goZiA9PiB7IGZvcm1EYXRhLmFwcGVuZChcIiR7ZmlsZVBhcmFtTmFtZX1cIiwgZikgfSApOyBgLFxuICAgICAgICAgIC4uLnBhcmFtc1dpdGhvdXRDb250ZXh0Lm1hcChcbiAgICAgICAgICAgIChwYXJhbSkgPT4gYGZvcm1EYXRhLmFwcGVuZCgnJHtwYXJhbS5uYW1lfScsIFN0cmluZygke3BhcmFtLm5hbWV9KSk7YCxcbiAgICAgICAgICApLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIilcbiAgICAgIDogW1xuICAgICAgICAgIGBmb3JtRGF0YS5hcHBlbmQoXCIke2ZpbGVQYXJhbU5hbWV9XCIsICR7ZmlsZVBhcmFtTmFtZX0pO2AsXG4gICAgICAgICAgLi4ucGFyYW1zV2l0aG91dENvbnRleHQubWFwKFxuICAgICAgICAgICAgKHBhcmFtKSA9PiBgZm9ybURhdGEuYXBwZW5kKCcke3BhcmFtLm5hbWV9JywgU3RyaW5nKCR7cGFyYW0ubmFtZX0pKTtgLFxuICAgICAgICAgICksXG4gICAgICAgIF0uam9pbihcIlxcblwiKTtcblxuICAgIGNvbnN0IHBhcmFtc0RlZkNvbW1hID0gcGFyYW1zRGVmICE9PSBcIlwiID8gXCIsIFwiIDogXCJcIjtcbiAgICByZXR1cm4gYFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uICR7YXBpLm1ldGhvZE5hbWV9JHt0eXBlUGFyYW1zRGVmfShcbiAgJHtwYXJhbXNEZWZ9JHtwYXJhbXNEZWZDb21tYX1cbiAgJHtmaWxlUGFyYW1OYW1lfTogJHtmaWxlUGFyYW1UeXBlfSxcbiAgb25VcGxvYWRQcm9ncmVzcz86IChwZTpBeGlvc1Byb2dyZXNzRXZlbnQpID0+IHZvaWRcbiAgKTogUHJvbWlzZTwke3JldHVyblR5cGVEZWZ9PiB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAke2Zvcm1EYXRhRGVmfVxuICAgIHJldHVybiBmZXRjaCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogXFxgJHthcGlCYXNlVXJsfVxcYCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCIsXG4gICAgICB9LFxuICAgICAgb25VcGxvYWRQcm9ncmVzcyxcbiAgICAgIGRhdGE6IGZvcm1EYXRhLFxuICAgICAgJHthcGkub3B0aW9ucy50aW1lb3V0ID8gYHNpZ25hbDogQWJvcnRTaWduYWwudGltZW91dCgke2FwaS5vcHRpb25zLnRpbWVvdXR9KSxgIDogXCJcIn1cbiAgICB9KTtcbiAgfVxuICBgLnRyaW0oKTtcbiAgfVxuXG4gIHJlbmRlclN3cihcbiAgICBhcGk6IEV4dGVuZGVkQXBpLFxuICAgIGFwaUJhc2VVcmw6IHN0cmluZyxcbiAgICB0eXBlUGFyYW1zRGVmOiBzdHJpbmcsXG4gICAgcGFyYW1zRGVmOiBzdHJpbmcsXG4gICAgcmV0dXJuVHlwZURlZjogc3RyaW5nLFxuICAgIHBheWxvYWREZWY6IHN0cmluZyxcbiAgKSB7XG4gICAgY29uc3QgbWV0aG9kTmFtZVN3ciA9IGFwaS5vcHRpb25zLnJlc291cmNlTmFtZVxuICAgICAgPyBgdXNlJHtpbmZsZWN0aW9uLmNhbWVsaXplKGFwaS5vcHRpb25zLnJlc291cmNlTmFtZSl9YFxuICAgICAgOiBgdXNlJHtpbmZsZWN0aW9uLmNhbWVsaXplKGFwaS5tZXRob2ROYW1lKX1gO1xuICAgIHJldHVybiBgICBleHBvcnQgZnVuY3Rpb24gJHtpbmZsZWN0aW9uLmNhbWVsaXplKG1ldGhvZE5hbWVTd3IsIHRydWUpfSR7dHlwZVBhcmFtc0RlZn0oJHtbXG4gICAgICBwYXJhbXNEZWYsXG4gICAgICBcInN3ck9wdGlvbnM/OiBTd3JPcHRpb25zXCIsXG4gICAgXVxuICAgICAgLmZpbHRlcigocCkgPT4gcCAhPT0gXCJcIilcbiAgICAgIC5qb2luKFwiLFwiKX0sICk6IFNXUlJlc3BvbnNlPCR7cmV0dXJuVHlwZURlZn0sIFNXUkVycm9yPiB7XG4gICAgcmV0dXJuIHVzZVNXUihoYW5kbGVDb25kaXRpb25hbChbXG4gICAgICBcXGAke2FwaUJhc2VVcmx9XFxgLFxuICAgICAgJHtwYXlsb2FkRGVmfSxcbiAgICBdLCBzd3JPcHRpb25zPy5jb25kaXRpb25hbCkke2FwaS5vcHRpb25zLmh0dHBNZXRob2QgPT09IFwiUE9TVFwiID8gXCIsIHN3clBvc3RGZXRjaGVyXCIgOiBcIlwifSR7XG4gICAgICBhcGkub3B0aW9ucy50aW1lb3V0ID8gYCwgeyBsb2FkaW5nVGltZW91dDogJHthcGkub3B0aW9ucy50aW1lb3V0fSB9YCA6IFwiXCJcbiAgICB9KTtcbiAgfWA7XG4gIH1cblxuICByZW5kZXJXaW5kb3dGZXRjaChcbiAgICBhcGk6IEV4dGVuZGVkQXBpLFxuICAgIGFwaUJhc2VVcmw6IHN0cmluZyxcbiAgICB0eXBlUGFyYW1zRGVmOiBzdHJpbmcsXG4gICAgcGFyYW1zRGVmOiBzdHJpbmcsXG4gICAgcGF5bG9hZERlZjogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gYFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uICR7YXBpLm1ldGhvZE5hbWV9JHt0eXBlUGFyYW1zRGVmfSgke3BhcmFtc0RlZn0pOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHdpbmRvdy5mZXRjaChcXGAke2FwaUJhc2VVcmx9P1xcJHtxcy5zdHJpbmdpZnkoJHtwYXlsb2FkRGVmfSl9XFxgJHtcbiAgICAgIGFwaS5vcHRpb25zLnRpbWVvdXQgPyBgLCB7IHNpZ25hbDogQWJvcnRTaWduYWwudGltZW91dCgke2FwaS5vcHRpb25zLnRpbWVvdXR9KSB9YCA6IFwiXCJcbiAgICB9KTtcbn1cbiAgICBgLnRyaW0oKTtcbiAgfVxuXG4gIHJlbmRlclN0cmVhbShhcGk6IEV4dGVuZGVkQXBpLCBhcGlCYXNlVXJsOiBzdHJpbmcsIHBhcmFtc0RlZkFzT2JqZWN0OiBzdHJpbmcpIHtcbiAgICBpZiAoIWFwaS5zdHJlYW1PcHRpb25zKSB7XG4gICAgICByZXR1cm4gXCIvLyBzdHJlYW1PcHRpb25zIG5vdCBmb3VuZFwiO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZE5hbWVTdHJlYW0gPSBhcGkub3B0aW9ucy5yZXNvdXJjZU5hbWVcbiAgICAgID8gYHVzZSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShhcGkub3B0aW9ucy5yZXNvdXJjZU5hbWUpfWBcbiAgICAgIDogYHVzZSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShhcGkubWV0aG9kTmFtZSl9YDtcbiAgICBjb25zdCBtZXRob2ROYW1lU3RyZWFtQ2FtZWxpemVkID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShtZXRob2ROYW1lU3RyZWFtLCB0cnVlKTtcblxuICAgIGNvbnN0IGV2ZW50c1R5cGVEZWYgPSB6b2RUeXBlVG9Uc1R5cGVEZWYoYXBpLnN0cmVhbU9wdGlvbnMuZXZlbnRzKTtcblxuICAgIHJldHVybiBgICBleHBvcnQgZnVuY3Rpb24gJHttZXRob2ROYW1lU3RyZWFtQ2FtZWxpemVkfShcbiAgcGFyYW1zOiAke3BhcmFtc0RlZkFzT2JqZWN0fSxcbiAgaGFuZGxlcnM6IEV2ZW50SGFuZGxlcnM8JHtldmVudHNUeXBlRGVmfSAmIHsgZW5kPzogKCkgPT4gdm9pZCB9PixcbiAgb3B0aW9uczogU1NFU3RyZWFtT3B0aW9ucykge1xuICAgIHJldHVybiB1c2VTU0VTdHJlYW08JHtldmVudHNUeXBlRGVmfT4oXFxgJHthcGlCYXNlVXJsfVxcYCwgcGFyYW1zLCBoYW5kbGVycywgb3B0aW9ucyk7XG4gIH1gO1xuICB9XG59XG4iXSwibmFtZXMiOlsiYXNzZXJ0IiwiaW5mbGVjdGlvbiIsImRpZmYiLCJncm91cCIsInNvcnQiLCJ1bmlxdWUiLCJhcGlQYXJhbVRvVHNDb2RlIiwiYXBpUGFyYW1Ub1RzQ29kZUFzT2JqZWN0IiwiYXBpUGFyYW1UeXBlVG9Uc1R5cGUiLCJ1bndyYXBQcm9taXNlT25jZSIsIlNvbmFtdSIsIk5haXRlIiwiQXBpUGFyYW1UeXBlIiwiYXNzZXJ0RGVmaW5lZCIsIlRlbXBsYXRlIiwiem9kVHlwZVRvVHNUeXBlRGVmIiwiVGVtcGxhdGVfX3NlcnZpY2UiLCJnZXRUYXJnZXRBbmRQYXRoIiwibmFtZXMiLCJ0YXJnZXQiLCJwYXRoIiwiZnMiLCJyZW5kZXIiLCJuYW1lc1JlY29yZCIsInQiLCJzeW5jZXIiLCJhcGlzIiwiYXBpc0ZvclRoaXNNb2RlbCIsImZpbHRlciIsImFwaSIsIm1vZGVsTmFtZSIsImNhcGl0YWwiLCJsaW5lcyIsImltcG9ydEtleXMiLCJnZXRUeXBlU291cmNlIiwiaGFzQXhpb3NQcm9ncmVzc0V2ZW50IiwiZmluZCIsIm9wdGlvbnMiLCJjbGllbnRzIiwiaW5jbHVkZXMiLCJib2R5Iiwiam9pbiIsImtleSIsImN1c3RvbUhlYWRlcnMiLCJ0eXBlUGFyYW1OYW1lcyIsImdyb3VwcyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJtZXRob2RzIiwibWV0aG9kQ29kZXMiLCJwYXJhbXNXaXRob3V0Q29udGV4dCIsInBhcmFtZXRlcnMiLCJwYXJhbSIsImlzQ29udGV4dCIsInR5cGUiLCJpc1JlZktuZXgiLCJvcHRpb25hbCIsIm5hbWUiLCJzdGFydHNXaXRoIiwidHlwZVBhcmFtc0RlZiIsInR5cGVQYXJhbWV0ZXJzIiwidHlwZVBhcmFtIiwiY29uY2F0IiwiaWQiLCJwYXJhbXNEZWYiLCJwYXJhbXNEZWZBc09iamVjdCIsInJldHVyblR5cGVEZWYiLCJyZXR1cm5UeXBlIiwicGF5bG9hZERlZiIsImFwaUJhc2VVcmwiLCJjb25maWciLCJyb3V0ZSIsInByZWZpeCIsImNsaWVudCIsInJlbmRlckF4aW9zIiwicmVuZGVyQXhpb3NNdWx0aXBhcnQiLCJyZW5kZXJTd3IiLCJyZW5kZXJXaW5kb3dGZXRjaCIsImNhbWVsaXplIiwic3RyZWFtT3B0aW9ucyIsInJlbmRlclN0cmVhbSIsInJlcGxhY2UiLCJtZXRob2ROYW1lQXhpb3MiLCJyZXNvdXJjZU5hbWUiLCJtZXRob2ROYW1lIiwiaHR0cE1ldGhvZCIsInRpbWVvdXQiLCJ0cmltIiwiaXNNdWx0aXBsZSIsInVwbG9hZE9wdGlvbnMiLCJtb2RlIiwiZmlsZVBhcmFtTmFtZSIsImZpbGVQYXJhbVR5cGUiLCJmb3JtRGF0YURlZiIsInBhcmFtc0RlZkNvbW1hIiwibWV0aG9kTmFtZVN3ciIsInAiLCJtZXRob2ROYW1lU3RyZWFtIiwibWV0aG9kTmFtZVN0cmVhbUNhbWVsaXplZCIsImV2ZW50c1R5cGVEZWYiLCJldmVudHMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksU0FBUztBQUM1QixPQUFPQyxnQkFBZ0IsYUFBYTtBQUNwQyxTQUFTQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFQyxNQUFNLFFBQVEsVUFBVTtBQUNwRCxTQUNFQyxnQkFBZ0IsRUFDaEJDLHdCQUF3QixFQUN4QkMsb0JBQW9CLEVBQ3BCQyxpQkFBaUIsUUFDWiwrQkFBNEI7QUFFbkMsU0FBU0MsTUFBTSxRQUFRLHNCQUFtQjtBQUUxQyxTQUFTQyxLQUFLLFFBQVEsdUJBQW9CO0FBRTFDLFNBQXdCQyxZQUFZLFFBQVEsdUJBQW9CO0FBQ2hFLFNBQVNDLGFBQWEsUUFBUSx1QkFBb0I7QUFDbEQsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBQ3ZDLFNBQVNDLGtCQUFrQixRQUFRLHNCQUFtQjtBQUV0RCxPQUFPLE1BQU1DLDBCQUEwQkY7SUFDckMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFHLGlCQUFpQkMsS0FBd0IsRUFBRTtRQUN6QyxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsTUFBTSxHQUFHRixNQUFNRyxFQUFFLENBQUMsQ0FBQyxFQUFFSCxNQUFNRyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQzVDO0lBQ0Y7SUFFQUMsT0FBTyxFQUFFQyxXQUFXLEVBQThCLEVBQUU7UUFDbERaLE1BQU1hLENBQUMsQ0FBQyxVQUFVO1lBQUVEO1FBQVk7UUFFaEMsTUFBTSxFQUNKRSxRQUFRLEVBQUVDLElBQUksRUFBRSxFQUNqQixHQUFHaEI7UUFFSixNQUFNaUIsbUJBQW1CRCxLQUFLRSxNQUFNLENBQUMsQ0FBQ0MsTUFBUUEsSUFBSUMsU0FBUyxLQUFLLEdBQUdQLFlBQVlRLE9BQU8sQ0FBQyxLQUFLLENBQUM7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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type EntityNamesRecord } from "../../entity/entity-manager";
|
|
2
|
+
import type { TemplateOptions } from "../../types/types";
|
|
3
3
|
import { Template } from "../template";
|
|
4
4
|
export declare class Template__view_enums_buttonset extends Template {
|
|
5
5
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view_enums_buttonset.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_buttonset.template.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"view_enums_buttonset.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_buttonset.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,8BAA+B,SAAQ,QAAQ;;IAK1D,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM;;;;IAO9D,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,sBAAsB,CAAC;;;;;;CAiBrE"}
|
|
@@ -28,4 +28,4 @@ ${JSON.stringify({
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19lbnVtc19idXR0b25zZXQudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5TWFuYWdlciwgdHlwZSBFbnRpdHlOYW1lc1JlY29yZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX3ZpZXdfZW51bXNfYnV0dG9uc2V0IGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInZpZXdfZW51bXNfYnV0dG9uc2V0XCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQsIGNvbXBvbmVudElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBcIndlYi9zcmMvY29tcG9uZW50c1wiLFxuICAgICAgcGF0aDogYCR7bmFtZXMuZnN9LyR7Y29tcG9uZW50SWR9QnV0dG9uU2V0LnRzeGAsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcih7IGVudGl0eUlkLCBlbnVtSWQgfTogVGVtcGxhdGVPcHRpb25zW1widmlld19lbnVtc19idXR0b25zZXRcIl0pIHtcbiAgICBjb25zdCBuYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQoZW50aXR5SWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZ2V0VGFyZ2V0QW5kUGF0aChuYW1lcywgZW51bUlkKSxcbiAgICAgIGJvZHk6IGBcbi8qXG52aWV3X2VudW1zX2J1dHRvbnNldFxuJHtKU09OLnN0cmluZ2lmeSh7XG4gIGtleTogdGhpcy5rZXksXG4gIG9wdGlvbnM6IGVudGl0eUlkLFxufSl9XG4qL1xuICAgICAgYC50cmltKCksXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiRW50aXR5TWFuYWdlciIsIlRlbXBsYXRlIiwiVGVtcGxhdGVfX3ZpZXdfZW51bXNfYnV0dG9uc2V0IiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwiY29tcG9uZW50SWQiLCJ0YXJnZXQiLCJwYXRoIiwiZnMiLCJyZW5kZXIiLCJlbnRpdHlJZCIsImVudW1JZCIsImdldE5hbWVzRnJvbUlkIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJrZXkiLCJvcHRpb25zIiwidHJpbSIsImltcG9ydEtleXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsUUFBZ0MsaUNBQThCO0FBRXBGLFNBQVNDLFFBQVEsUUFBUSxpQkFBYztBQUV2QyxPQUFPLE1BQU1DLHVDQUF1Q0Q7SUFDbEQsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFFLGlCQUFpQkMsS0FBd0IsRUFBRUMsV0FBbUIsRUFBRTtRQUM5RCxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsTUFBTSxHQUFHSCxNQUFNSSxFQUFFLENBQUMsQ0FBQyxFQUFFSCxZQUFZLGFBQWEsQ0FBQztRQUNqRDtJQUNGO0lBRUFJLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQTJDLEVBQUU7UUFDcEUsTUFBTVAsUUFBUUosY0FBY1ksY0FBYyxDQUFDRjtRQUUzQyxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUNQLGdCQUFnQixDQUFDQyxPQUFPTyxPQUFPO1lBQ3ZDRSxNQUFNLENBQUM7OztBQUdiLEVBQUVDLEtBQUtDLFNBQVMsQ0FBQztnQkFDZkMsS0FBSyxJQUFJLENBQUNBLEdBQUc7Z0JBQ2JDLFNBQVNQO1lBQ1gsR0FBRzs7TUFFRyxDQUFDLENBQUNRLElBQUk7WUFDTkMsWUFBWSxFQUFFO1FBQ2hCO0lBQ0Y7QUFDRiJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type EntityNamesRecord } from "../../entity/entity-manager";
|
|
2
|
+
import type { TemplateOptions } from "../../types/types";
|
|
3
3
|
import { Template } from "../template";
|
|
4
4
|
export declare class Template__view_enums_dropdown extends Template {
|
|
5
5
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view_enums_dropdown.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_dropdown.template.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"view_enums_dropdown.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_dropdown.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,6BAA8B,SAAQ,QAAQ;;IAKzD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;;;;IAOzD,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,qBAAqB,CAAC;;;;;;CAmCpE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityManager } from "../../entity/entity-manager.js";
|
|
2
|
-
import { Template } from "../template.js";
|
|
3
2
|
import { getLabel } from "../helpers.js";
|
|
3
|
+
import { Template } from "../template.js";
|
|
4
4
|
export class Template__view_enums_dropdown extends Template {
|
|
5
5
|
constructor(){
|
|
6
6
|
super("view_enums_dropdown");
|
|
@@ -47,4 +47,4 @@ export function ${enumId}Dropdown(props: DropdownProps) {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19lbnVtc19kcm9wZG93bi50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlNYW5hZ2VyLCB0eXBlIEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IGdldExhYmVsIH0gZnJvbSBcIi4uL2hlbHBlcnNcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fdmlld19lbnVtc19kcm9wZG93biBleHRlbmRzIFRlbXBsYXRlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJ2aWV3X2VudW1zX2Ryb3Bkb3duXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQsIGVudW1JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldDogXCJ3ZWIvc3JjL2NvbXBvbmVudHNcIixcbiAgICAgIHBhdGg6IGAke25hbWVzLmZzfS8ke2VudW1JZH1Ecm9wZG93bi50c3hgLFxuICAgIH07XG4gIH1cblxuICByZW5kZXIoeyBlbnRpdHlJZCwgZW51bUlkIH06IFRlbXBsYXRlT3B0aW9uc1tcInZpZXdfZW51bXNfZHJvcGRvd25cIl0pIHtcbiAgICBjb25zdCBuYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQoZW50aXR5SWQpO1xuICAgIGNvbnN0IGxhYmVsID0gZ2V0TGFiZWwoZW50aXR5SWQsIGVudW1JZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKG5hbWVzLCBlbnVtSWQpLFxuICAgICAgYm9keTogYFxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIERyb3Bkb3duLFxuICBEcm9wZG93blByb3BzLFxufSBmcm9tICdzZW1hbnRpYy11aS1yZWFjdCc7XG5cbmltcG9ydCB7ICR7ZW51bUlkfUxhYmVsIH0gZnJvbSAnc3JjL3NlcnZpY2VzL3NvbmFtdS5nZW5lcmF0ZWQnO1xuXG5leHBvcnQgZnVuY3Rpb24gJHtlbnVtSWR9RHJvcGRvd24ocHJvcHM6IERyb3Bkb3duUHJvcHMpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5lbnRyaWVzKCR7ZW51bUlkfUxhYmVsKS5tYXAoKFtrZXksIGxhYmVsXSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICB2YWx1ZToga2V5LFxuICAgICAgdGV4dDogXCIke2xhYmVsfTogXCIgKyBsYWJlbCxcbiAgICB9O1xuICB9KTtcbiAgcmV0dXJuIChcbiAgICA8RHJvcGRvd25cbiAgICAgIGNsYXNzTmFtZT1cImxhYmVsXCJcbiAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn1cbiAgICAgIGAudHJpbSgpLFxuICAgICAgaW1wb3J0S2V5czogW10sXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVudGl0eU1hbmFnZXIiLCJnZXRMYWJlbCIsIlRlbXBsYXRlIiwiVGVtcGxhdGVfX3ZpZXdfZW51bXNfZHJvcGRvd24iLCJnZXRUYXJnZXRBbmRQYXRoIiwibmFtZXMiLCJlbnVtSWQiLCJ0YXJnZXQiLCJwYXRoIiwiZnMiLCJyZW5kZXIiLCJlbnRpdHlJZCIsImdldE5hbWVzRnJvbUlkIiwibGFiZWwiLCJib2R5IiwidHJpbSIsImltcG9ydEtleXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsUUFBZ0MsaUNBQThCO0FBRXBGLFNBQVNDLFFBQVEsUUFBUSxnQkFBYTtBQUN0QyxTQUFTQyxRQUFRLFFBQVEsaUJBQWM7QUFFdkMsT0FBTyxNQUFNQyxzQ0FBc0NEO0lBQ2pELGFBQWM7UUFDWixLQUFLLENBQUM7SUFDUjtJQUVBRSxpQkFBaUJDLEtBQXdCLEVBQUVDLE1BQWMsRUFBRTtRQUN6RCxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsTUFBTSxHQUFHSCxNQUFNSSxFQUFFLENBQUMsQ0FBQyxFQUFFSCxPQUFPLFlBQVksQ0FBQztRQUMzQztJQUNGO0lBRUFJLE9BQU8sRUFBRUMsUUFBUSxFQUFFTCxNQUFNLEVBQTBDLEVBQUU7UUFDbkUsTUFBTUQsUUFBUUwsY0FBY1ksY0FBYyxDQUFDRDtRQUMzQyxNQUFNRSxRQUFRWixTQUFTVSxVQUFVTDtRQUVqQyxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUNGLGdCQUFnQixDQUFDQyxPQUFPQyxPQUFPO1lBQ3ZDUSxNQUFNLENBQUM7Ozs7Ozs7U0FPSixFQUFFUixPQUFPOztnQkFFRixFQUFFQSxPQUFPO2lDQUNRLEVBQUVBLE9BQU87Ozs7YUFJN0IsRUFBRU8sTUFBTTs7Ozs7Ozs7Ozs7TUFXZixDQUFDLENBQUNFLElBQUk7WUFDTkMsWUFBWSxFQUFFO1FBQ2hCO0lBQ0Y7QUFDRiJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type EntityNamesRecord } from "../../entity/entity-manager";
|
|
2
|
+
import type { TemplateOptions } from "../../types/types";
|
|
3
3
|
import { Template } from "../template";
|
|
4
4
|
export declare class Template__view_enums_select extends Template {
|
|
5
5
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view_enums_select.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"view_enums_select.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,2BAA4B,SAAQ,QAAQ;;IAKvD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;;;;IAOzD,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,mBAAmB,CAAC;;;;;;CAwClE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityManager } from "../../entity/entity-manager.js";
|
|
2
|
-
import { Template } from "../template.js";
|
|
3
2
|
import { getLabel } from "../helpers.js";
|
|
3
|
+
import { Template } from "../template.js";
|
|
4
4
|
export class Template__view_enums_select extends Template {
|
|
5
5
|
constructor(){
|
|
6
6
|
super("view_enums_select");
|
|
@@ -52,4 +52,4 @@ export function ${enumId}Select({placeholder, textPrefix, ...props}: ${enumId}Se
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19lbnVtc19zZWxlY3QudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5TWFuYWdlciwgdHlwZSBFbnRpdHlOYW1lc1JlY29yZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRMYWJlbCB9IGZyb20gXCIuLi9oZWxwZXJzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX3ZpZXdfZW51bXNfc2VsZWN0IGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInZpZXdfZW51bXNfc2VsZWN0XCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQsIGVudW1JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldDogXCJ3ZWIvc3JjL2NvbXBvbmVudHNcIixcbiAgICAgIHBhdGg6IGAke25hbWVzLmZzfS8ke2VudW1JZH1TZWxlY3QudHN4YCxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHsgZW50aXR5SWQsIGVudW1JZCB9OiBUZW1wbGF0ZU9wdGlvbnNbXCJ2aWV3X2VudW1zX3NlbGVjdFwiXSkge1xuICAgIGNvbnN0IG5hbWVzID0gRW50aXR5TWFuYWdlci5nZXROYW1lc0Zyb21JZChlbnRpdHlJZCk7XG4gICAgY29uc3QgbGFiZWwgPSBnZXRMYWJlbChlbnRpdHlJZCwgZW51bUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgobmFtZXMsIGVudW1JZCksXG4gICAgICBib2R5OiBgXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgRHJvcGRvd24sXG4gIERyb3Bkb3duUHJvcHMsXG59IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcblxuaW1wb3J0IHsgJHtlbnVtSWR9LCAke2VudW1JZH1MYWJlbCB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9zb25hbXUuZ2VuZXJhdGVkJztcblxuZXhwb3J0IHR5cGUgJHtlbnVtSWR9U2VsZWN0UHJvcHMgPSB7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICB0ZXh0UHJlZml4Pzogc3RyaW5nO1xufSAmIERyb3Bkb3duUHJvcHM7XG5leHBvcnQgZnVuY3Rpb24gJHtlbnVtSWR9U2VsZWN0KHtwbGFjZWhvbGRlciwgdGV4dFByZWZpeCwgLi4ucHJvcHN9OiAke2VudW1JZH1TZWxlY3RQcm9wcykge1xuICBjb25zdCB0eXBlT3B0aW9ucyA9ICR7ZW51bUlkfS5vcHRpb25zLm1hcCgoa2V5KSA9PiAoe1xuICAgIGtleSxcbiAgICB2YWx1ZToga2V5LFxuICAgIHRleHQ6ICh0ZXh0UHJlZml4ID8/ICcke2xhYmVsfTogJykgKyAke2VudW1JZH1MYWJlbFtrZXldLFxuICB9KSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RHJvcGRvd25cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlciA/PyBcIiR7bGFiZWx9XCJ9XG4gICAgICBzZWxlY3Rpb25cbiAgICAgIG9wdGlvbnM9e3R5cGVPcHRpb25zfVxuICAgICAgc2VsZWN0T25CbHVyPXtmYWxzZX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApO1xufVxuICAgICAgYC50cmltKCksXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiRW50aXR5TWFuYWdlciIsImdldExhYmVsIiwiVGVtcGxhdGUiLCJUZW1wbGF0ZV9fdmlld19lbnVtc19zZWxlY3QiLCJnZXRUYXJnZXRBbmRQYXRoIiwibmFtZXMiLCJlbnVtSWQiLCJ0YXJnZXQiLCJwYXRoIiwiZnMiLCJyZW5kZXIiLCJlbnRpdHlJZCIsImdldE5hbWVzRnJvbUlkIiwibGFiZWwiLCJib2R5IiwidHJpbSIsImltcG9ydEtleXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsUUFBZ0MsaUNBQThCO0FBRXBGLFNBQVNDLFFBQVEsUUFBUSxnQkFBYTtBQUN0QyxTQUFTQyxRQUFRLFFBQVEsaUJBQWM7QUFFdkMsT0FBTyxNQUFNQyxvQ0FBb0NEO0lBQy9DLGFBQWM7UUFDWixLQUFLLENBQUM7SUFDUjtJQUVBRSxpQkFBaUJDLEtBQXdCLEVBQUVDLE1BQWMsRUFBRTtRQUN6RCxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsTUFBTSxHQUFHSCxNQUFNSSxFQUFFLENBQUMsQ0FBQyxFQUFFSCxPQUFPLFVBQVUsQ0FBQztRQUN6QztJQUNGO0lBRUFJLE9BQU8sRUFBRUMsUUFBUSxFQUFFTCxNQUFNLEVBQXdDLEVBQUU7UUFDakUsTUFBTUQsUUFBUUwsY0FBY1ksY0FBYyxDQUFDRDtRQUMzQyxNQUFNRSxRQUFRWixTQUFTVSxVQUFVTDtRQUVqQyxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUNGLGdCQUFnQixDQUFDQyxPQUFPQyxPQUFPO1lBQ3ZDUSxNQUFNLENBQUM7Ozs7Ozs7U0FPSixFQUFFUixPQUFPLEVBQUUsRUFBRUEsT0FBTzs7WUFFakIsRUFBRUEsT0FBTzs7OztnQkFJTCxFQUFFQSxPQUFPLDRDQUE0QyxFQUFFQSxPQUFPO3NCQUN4RCxFQUFFQSxPQUFPOzs7MEJBR0wsRUFBRU8sTUFBTSxPQUFPLEVBQUVQLE9BQU87Ozs7O21DQUtmLEVBQUVPLE1BQU07Ozs7Ozs7O01BUXJDLENBQUMsQ0FBQ0UsSUFBSTtZQUNOQyxZQUFZLEVBQUU7UUFDaEI7SUFDRjtBQUNGIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type EntityNamesRecord } from "../../entity/entity-manager";
|
|
2
|
+
import type { RenderingNode, TemplateKey, TemplateOptions } from "../../types/types";
|
|
3
3
|
import { Template } from "../template";
|
|
4
4
|
export declare class Template__view_form extends Template {
|
|
5
5
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view_form.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_form.template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"view_form.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_form.template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGrF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,mBAAoB,SAAQ,QAAQ;;IAK/C,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAOzC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAO5C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAI5C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa;IAmBvD,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,iBAAiB,EACxB,MAAM,GAAE,MAAW,GAClB,MAAM;IA6DT,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM;IAqC/C,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC;;;;;;;;;;CAoOxD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import inflection from "inflection";
|
|
2
|
+
import { unique } from "radashi";
|
|
2
3
|
import { z } from "zod";
|
|
3
4
|
import { EntityManager } from "../../entity/entity-manager.js";
|
|
5
|
+
import { getEnumInfoFromColName, getRelationPropFromColName } from "../helpers.js";
|
|
4
6
|
import { Template } from "../template.js";
|
|
5
|
-
import { getRelationPropFromColName, getEnumInfoFromColName } from "../helpers.js";
|
|
6
|
-
import * as _ from "lodash-es";
|
|
7
7
|
import { getZodTypeById, zodTypeToRenderingNode } from "../zod-converter.js";
|
|
8
8
|
export class Template__view_form extends Template {
|
|
9
9
|
constructor(){
|
|
@@ -222,7 +222,7 @@ import { defaultCatch } from 'src/services/sonamu.shared';
|
|
|
222
222
|
import { ${names.capital}SaveParams } from 'src/services/${names.fs}/${names.fs}.types';
|
|
223
223
|
import { ${names.capital}Service } from 'src/services/${names.fs}/${names.fs}.service';
|
|
224
224
|
import { ${names.capital}SubsetA } from 'src/services/sonamu.generated';
|
|
225
|
-
${
|
|
225
|
+
${unique(columns.filter((col)=>[
|
|
226
226
|
"number-fk_id",
|
|
227
227
|
"enums"
|
|
228
228
|
].includes(col.renderType)).map((col)=>{
|
|
@@ -334,4 +334,4 @@ export function ${names.capitalPlural}Form({ id, mode }: ${names.capitalPlural}F
|
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
336
|
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19mb3JtLnRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgUmVuZGVyaW5nTm9kZSwgVGVtcGxhdGVLZXksIFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciwgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBSZW5kZXJlZFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgZ2V0UmVsYXRpb25Qcm9wRnJvbUNvbE5hbWUsIGdldEVudW1JbmZvRnJvbUNvbE5hbWUgfSBmcm9tIFwiLi4vaGVscGVyc1wiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBnZXRab2RUeXBlQnlJZCwgem9kVHlwZVRvUmVuZGVyaW5nTm9kZSB9IGZyb20gXCIuLi96b2QtY29udmVydGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fdmlld19mb3JtIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInZpZXdfZm9ybVwiKTtcbiAgfVxuXG4gIGdldFRhcmdldEFuZFBhdGgobmFtZXM6IEVudGl0eU5hbWVzUmVjb3JkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldDogXCJ3ZWIvc3JjL3BhZ2VzL2FkbWluXCIsXG4gICAgICBwYXRoOiBgJHtuYW1lcy5mc1BsdXJhbH0vZm9ybS50c3hgLFxuICAgIH07XG4gIH1cblxuICB3cmFwRkMoYm9keTogc3RyaW5nLCBsYWJlbD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGA8Rm9ybS5GaWVsZD4ke2xhYmVsID8gYFxcbiAgIDxsYWJlbD4ke2xhYmVsfTwvbGFiZWw+YCA6IFwiXCJ9YCxcbiAgICAgIGJvZHksXG4gICAgICBgPC9Gb3JtLkZpZWxkPmAsXG4gICAgXS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHdyYXBGRyhib2R5OiBzdHJpbmcsIGxhYmVsPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgYDxGb3JtLkdyb3VwIHdpZHRocz1cImVxdWFsXCI+YCxcbiAgICAgIHRoaXMud3JhcEZDKGJvZHksIGxhYmVsKSxcbiAgICAgIGA8L0Zvcm0uR3JvdXA+YCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gIH1cblxuICByZW5kZXJDb2x1bW5JbXBvcnQoZW50aXR5SWQ6IHN0cmluZywgY29sOiBSZW5kZXJpbmdOb2RlKSB7XG4gICAgaWYgKGNvbC5yZW5kZXJUeXBlID09PSBcImVudW1zXCIpIHtcbiAgICAgIGNvbnN0IHsgaWQsIHRhcmdldEVudGl0eU5hbWVzIH0gPSBnZXRFbnVtSW5mb0Zyb21Db2xOYW1lKFxuICAgICAgICBlbnRpdHlJZCxcbiAgICAgICAgY29sLm5hbWVcbiAgICAgICk7XG4gICAgICBjb25zdCBjb21wb25lbnRJZCA9IGAke2lkfVNlbGVjdGA7XG4gICAgICByZXR1cm4gYGltcG9ydCB7ICR7Y29tcG9uZW50SWR9IH0gZnJvbSBcInNyYy9jb21wb25lbnRzLyR7dGFyZ2V0RW50aXR5TmFtZXMuZnN9LyR7Y29tcG9uZW50SWR9XCI7YDtcbiAgICB9IGVsc2UgaWYgKGNvbC5yZW5kZXJUeXBlID09PSBcIm51bWJlci1ma19pZFwiKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWxQcm9wID0gZ2V0UmVsYXRpb25Qcm9wRnJvbUNvbE5hbWUoXG4gICAgICAgICAgZW50aXR5SWQsXG4gICAgICAgICAgY29sLm5hbWUucmVwbGFjZShcIl9pZFwiLCBcIlwiKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCB0YXJnZXROYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQocmVsUHJvcC53aXRoKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50SWQgPSBgJHtyZWxQcm9wLndpdGh9SWRBc3luY1NlbGVjdGA7XG4gICAgICAgIHJldHVybiBgaW1wb3J0IHsgJHtjb21wb25lbnRJZH0gfSBmcm9tIFwic3JjL2NvbXBvbmVudHMvJHt0YXJnZXROYW1lcy5mc30vJHtjb21wb25lbnRJZH1cIjtgO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOugjOuNlCDrtojqsIDriqXtlZwg7J6E7Y+s7Yq4ICR7Y29sLm5hbWV9ICR7Y29sLnJlbmRlclR5cGV9YCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyQ29sdW1uKFxuICAgIGVudGl0eUlkOiBzdHJpbmcsXG4gICAgY29sOiBSZW5kZXJpbmdOb2RlLFxuICAgIG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCxcbiAgICBwYXJlbnQ6IHN0cmluZyA9IFwiXCJcbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgcmVnRXhwcjogc3RyaW5nID0gXCJcIjtcbiAgICByZWdFeHByID0gYHsuLi5yZWdpc3RlcihcXGAke3BhcmVudH0ke2NvbC5uYW1lfVxcYCl9YDtcblxuICAgIHN3aXRjaCAoY29sLnJlbmRlclR5cGUpIHtcbiAgICAgIGNhc2UgXCJzdHJpbmctcGxhaW5cIjpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNvbC56b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RTdHJpbmcgJiZcbiAgICAgICAgICAoY29sLnpvZFR5cGUubWF4TGVuZ3RoID8/IDApIDw9IDUxMlxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gYDxJbnB1dCBwbGFjZWhvbGRlcj1cIiR7Y29sLmxhYmVsfVwiICR7cmVnRXhwcn0gLz5gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBgPFRleHRBcmVhIHJvd3M9ezh9IHBsYWNlaG9sZGVyPVwiJHtjb2wubGFiZWx9XCIgJHtyZWdFeHByfSAvPmA7XG4gICAgICAgIH1cbiAgICAgIGNhc2UgXCJkYXRldGltZVwiOlxuICAgICAgICByZXR1cm4gYDxJbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiAke3JlZ0V4cHJ9IC8+YDtcbiAgICAgIGNhc2UgXCJzdHJpbmctZGF0ZXRpbWVcIjpcbiAgICAgICAgcmV0dXJuIGA8U1FMRGF0ZVRpbWVJbnB1dCAke3JlZ0V4cHJ9IC8+YDtcbiAgICAgIGNhc2UgXCJzdHJpbmctZGF0ZVwiOlxuICAgICAgICByZXR1cm4gYDxTUUxEYXRlSW5wdXQgJHtyZWdFeHByfSAvPmA7XG4gICAgICBjYXNlIFwibnVtYmVyLWlkXCI6XG4gICAgICAgIHJldHVybiBgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiAke3JlZ0V4cHJ9IC8+YDtcbiAgICAgIGNhc2UgXCJudW1iZXItcGxhaW5cIjpcbiAgICAgICAgcmV0dXJuIGA8TnVtYmVySW5wdXQgcGxhY2Vob2xkZXI9XCIke2NvbC5sYWJlbH1cIiAke3JlZ0V4cHJ9IC8+YDtcbiAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgIHJldHVybiBgPEJvb2xlYW5Ub2dnbGUgJHtyZWdFeHByfSAvPmA7XG4gICAgICBjYXNlIFwic3RyaW5nLWltYWdlXCI6XG4gICAgICAgIHJldHVybiBgPEltYWdlVXBsb2FkZXIgbXVsdGlwbGU9e2ZhbHNlfSAke3JlZ0V4cHJ9IC8+YDtcbiAgICAgIGNhc2UgXCJhcnJheS1pbWFnZXNcIjpcbiAgICAgICAgcmV0dXJuIGA8SW1hZ2VVcGxvYWRlciBtdWx0aXBsZT17dHJ1ZX0gJHtyZWdFeHByfSBtYXhTaXplPXs1fSAvPmA7XG4gICAgICBjYXNlIFwiZW51bXNcIjpcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgZW51bUlkOiBzdHJpbmc7XG4gICAgICAgICAgaWYgKGNvbC5uYW1lID09PSBcIm9yZGVyQnlcIikge1xuICAgICAgICAgICAgZW51bUlkID0gYCR7bmFtZXMuY2FwaXRhbH0ke2luZmxlY3Rpb24uY2FtZWxpemUoY29sLm5hbWUpfVNlbGVjdGA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHsgaWQgfSA9IGdldEVudW1JbmZvRnJvbUNvbE5hbWUoZW50aXR5SWQsIGNvbC5uYW1lKTtcbiAgICAgICAgICAgIGVudW1JZCA9IGAke2lkfVNlbGVjdGA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBgPCR7ZW51bUlkfSAke3JlZ0V4cHJ9ICR7XG4gICAgICAgICAgICBjb2wub3B0aW9uYWwgfHwgY29sLm51bGxhYmxlID8gXCJjbGVhcmFibGVcIiA6IFwiXCJcbiAgICAgICAgICB9IHRleHRQcmVmaXg9XCJcIiAvPmA7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBgPD7ssL7snYQg7IiYIOyXhuuKlCBFbnVtICR7Y29sLm5hbWV9PC8+YDtcbiAgICAgICAgfVxuICAgICAgY2FzZSBcIm51bWJlci1ma19pZFwiOlxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHJlbFByb3AgPSBnZXRSZWxhdGlvblByb3BGcm9tQ29sTmFtZShcbiAgICAgICAgICAgIGVudGl0eUlkLFxuICAgICAgICAgICAgY29sLm5hbWUucmVwbGFjZShcIl9pZFwiLCBcIlwiKVxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZmtJZCA9IGAke3JlbFByb3Aud2l0aH1JZEFzeW5jU2VsZWN0YDtcbiAgICAgICAgICByZXR1cm4gYDwke2ZrSWR9IHsuLi5yZWdpc3RlcignJHtjb2wubmFtZX0nKX0gJHtcbiAgICAgICAgICAgIGNvbC5vcHRpb25hbCB8fCBjb2wubnVsbGFibGUgPyBcImNsZWFyYWJsZVwiIDogXCJcIlxuICAgICAgICAgIH0gc3Vic2V0PVwiQVwiIC8+YDtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmV0dXJuIGA8SW5wdXQgJHtyZWdFeHByfSAvPmA7XG4gICAgICAgIH1cbiAgICAgIGNhc2UgXCJhcnJheVwiOlxuICAgICAgICByZXR1cm4gYDw+JHtjb2wubmFtZX0gYXJyYXk8Lz5gO1xuICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICByZXR1cm4gYDw+JHtjb2wubmFtZX0gb2JqZWN0PC8+YDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBg64yA7J2RIOu2iOqwgOuKpe2VnCDroIzrjZQg7YOA7J6FICR7Y29sLnJlbmRlclR5cGV9IG9uICR7Y29sLm5hbWV9YFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVEZWZhdWx0VmFsdWUoY29sdW1uczogUmVuZGVyaW5nTm9kZVtdKTogb2JqZWN0IHtcbiAgICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoXG4gICAgICAocmVzdWx0LCBjb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbC5vcHRpb25hbCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWU6IHVua25vd247XG4gICAgICAgIGlmIChjb2wubnVsbGFibGUgPT09IHRydWUpIHtcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAoY29sLnpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bWJlcikge1xuICAgICAgICAgIHZhbHVlID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChjb2wuem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRW51bSkge1xuICAgICAgICAgIHZhbHVlID0gT2JqZWN0LmtleXMoY29sLnpvZFR5cGUub3B0aW9ucylbMF07XG4gICAgICAgIH0gZWxzZSBpZiAoY29sLnpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZEJvb2xlYW4pIHtcbiAgICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbC56b2RUeXBlIGluc3RhbmNlb2Ygei5ab2REYXRlKSB7XG4gICAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbC56b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RTdHJpbmcpIHtcbiAgICAgICAgICBpZiAoY29sLnJlbmRlclR5cGUgPT09IFwic3RyaW5nLWRhdGV0aW1lXCIpIHtcbiAgICAgICAgICAgIHZhbHVlID0gXCJub3coKVwiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGNvbC56b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RBcnJheSkge1xuICAgICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIH0gZWxzZSBpZiAoY29sLnpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9iamVjdCkge1xuICAgICAgICAgIHZhbHVlID0ge307XG4gICAgICAgIH1cblxuICAgICAgICByZXN1bHRbY29sLm5hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9LFxuICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH1cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVuZGVyKHsgZW50aXR5SWQgfTogVGVtcGxhdGVPcHRpb25zW1widmlld19mb3JtXCJdKSB7XG4gICAgY29uc3Qgc2F2ZVBhcmFtc1pvZFR5cGUgPSBhd2FpdCBnZXRab2RUeXBlQnlJZChgJHtlbnRpdHlJZH1TYXZlUGFyYW1zYCk7XG4gICAgY29uc3Qgc2F2ZVBhcmFtc05vZGUgPSB6b2RUeXBlVG9SZW5kZXJpbmdOb2RlKHNhdmVQYXJhbXNab2RUeXBlKTtcblxuICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKTtcbiAgICBjb25zdCBuYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQoZW50aXR5SWQpO1xuICAgIGNvbnN0IGNvbHVtbnMgPSAoc2F2ZVBhcmFtc05vZGUuY2hpbGRyZW4gYXMgUmVuZGVyaW5nTm9kZVtdKVxuICAgICAgLmZpbHRlcigoY29sKSA9PiBjb2wubmFtZSAhPT0gXCJpZFwiKVxuICAgICAgLm1hcCgoY29sKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BDYW5kaWRhdGUgPSBlbnRpdHkucHJvcHMuZmluZChcbiAgICAgICAgICAocHJvcCkgPT4gcHJvcC5uYW1lID09PSBjb2wubmFtZVxuICAgICAgICApO1xuICAgICAgICBjb2wubGFiZWwgPSBwcm9wQ2FuZGlkYXRlPy5kZXNjID8/IGNvbC5sYWJlbDtcbiAgICAgICAgcmV0dXJuIGNvbDtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gdGhpcy5yZXNvbHZlRGVmYXVsdFZhbHVlKGNvbHVtbnMpO1xuXG4gICAgLy8g7ZSE66asIO2FnO2UjOumv1xuICAgIGNvbnN0IHByZVRlbXBsYXRlczogUmVuZGVyZWRUZW1wbGF0ZVtcInByZVRlbXBsYXRlc1wiXSA9IChcbiAgICAgIGNvbHVtbnMgYXMgUmVuZGVyaW5nTm9kZVtdXG4gICAgKVxuICAgICAgLmZpbHRlcigoY29sKSA9PiB7XG4gICAgICAgIGlmIChjb2wubmFtZSA9PT0gXCJpZFwiKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbC5uYW1lLmVuZHNXaXRoKFwiX2lkXCIpIHx8IGNvbC5yZW5kZXJUeXBlID09PSBcIm51bWJlci1pZFwiKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGdldFJlbGF0aW9uUHJvcEZyb21Db2xOYW1lKGVudGl0eUlkLCBjb2wubmFtZS5yZXBsYWNlKFwiX2lkXCIsIFwiXCIpKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjb2wucmVuZGVyVHlwZSA9PT0gXCJlbnVtc1wiKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGdldEVudW1JbmZvRnJvbUNvbE5hbWUoZW50aXR5SWQsIGNvbC5uYW1lKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KVxuICAgICAgLm1hcCgoY29sKSA9PiB7XG4gICAgICAgIGxldCBrZXk6IFRlbXBsYXRlS2V5O1xuICAgICAgICBsZXQgdGFyZ2V0TWRJZCA9IGVudGl0eUlkO1xuICAgICAgICBsZXQgZW51bUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChjb2wucmVuZGVyVHlwZSA9PT0gXCJlbnVtc1wiKSB7XG4gICAgICAgICAga2V5ID0gXCJ2aWV3X2VudW1zX3NlbGVjdFwiO1xuICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0RW50aXR5TmFtZXM6IHRhcmdldE1ETmFtZXMsIGlkIH0gPVxuICAgICAgICAgICAgZ2V0RW51bUluZm9Gcm9tQ29sTmFtZShlbnRpdHlJZCwgY29sLm5hbWUpO1xuICAgICAgICAgIHRhcmdldE1kSWQgPSB0YXJnZXRNRE5hbWVzLmNhcGl0YWw7XG4gICAgICAgICAgZW51bUlkID0gaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAga2V5ID0gXCJ2aWV3X2lkX2FzeW5jX3NlbGVjdFwiO1xuICAgICAgICAgIGNvbnN0IHJlbFByb3AgPSBnZXRSZWxhdGlvblByb3BGcm9tQ29sTmFtZShcbiAgICAgICAgICAgIGVudGl0eUlkLFxuICAgICAgICAgICAgY29sLm5hbWUucmVwbGFjZShcIl9pZFwiLCBcIlwiKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGFyZ2V0TWRJZCA9IHJlbFByb3Aud2l0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5OiBrZXkgYXMgVGVtcGxhdGVLZXksXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgZW50aXR5SWQ6IHRhcmdldE1kSWQsXG4gICAgICAgICAgICBub2RlOiBjb2wsXG4gICAgICAgICAgICBlbnVtSWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChwcmVUZW1wbGF0ZSkgPT4ge1xuICAgICAgICBpZiAocHJlVGVtcGxhdGUua2V5ID09PSBcInZpZXdfaWRfYXN5bmNfc2VsZWN0XCIpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgRW50aXR5TWFuYWdlci5nZXQocHJlVGVtcGxhdGUub3B0aW9ucy5lbnRpdHlJZCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgobmFtZXMpLFxuICAgICAgYm9keTogYFxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUsIERpc3BhdGNoLCBTZXRTdGF0ZUFjdGlvbiwgZm9yd2FyZFJlZiwgUmVmLCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHtcbiAgQnV0dG9uLFxuICBDaGVja2JveCxcbiAgRm9ybSxcbiAgSGVhZGVyLFxuICBJbnB1dCxcbiAgU2VnbWVudCxcbiAgVGV4dEFyZWEsXG4gIExhYmVsLFxufSBmcm9tICdzZW1hbnRpYy11aS1yZWFjdCc7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gXCJsdXhvblwiO1xuXG5pbXBvcnQgeyBCYWNrTGluaywgTGlua0lucHV0LCBOdW1iZXJJbnB1dCwgQm9vbGVhblRvZ2dsZSwgU1FMRGF0ZVRpbWVJbnB1dCwgU1FMRGF0ZUlucHV0LCB1c2VUeXBlRm9ybSwgdXNlR29CYWNrLCBmb3JtYXREYXRlVGltZSB9IGZyb20gXCJAc29uYW11LWtpdC9yZWFjdC1zdWlcIjtcbmltcG9ydCB7IGRlZmF1bHRDYXRjaCB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9zb25hbXUuc2hhcmVkJztcbi8vIGltcG9ydCB7IEltYWdlVXBsb2FkZXIgfSBmcm9tICdzcmMvYWRtaW4tY29tbW9uL0ltYWdlVXBsb2FkZXInO1xuLy8gaW1wb3J0IHsgdXNlQ29tbW9uTW9kYWwgfSBmcm9tIFwic3JjL2FkbWluLWNvbW1vbi9Db21tb25Nb2RhbFwiO1xuXG5pbXBvcnQgeyAke25hbWVzLmNhcGl0YWx9U2F2ZVBhcmFtcyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy8ke25hbWVzLmZzfS8ke1xuICAgICAgICBuYW1lcy5mc1xuICAgICAgfS50eXBlcyc7XG5pbXBvcnQgeyAke25hbWVzLmNhcGl0YWx9U2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy8ke25hbWVzLmZzfS8ke1xuICAgICAgICBuYW1lcy5mc1xuICAgICAgfS5zZXJ2aWNlJztcbmltcG9ydCB7ICR7bmFtZXMuY2FwaXRhbH1TdWJzZXRBIH0gZnJvbSAnc3JjL3NlcnZpY2VzL3NvbmFtdS5nZW5lcmF0ZWQnO1xuJHtfLnVuaXEoXG4gIGNvbHVtbnNcbiAgICAuZmlsdGVyKChjb2wpID0+IFtcIm51bWJlci1ma19pZFwiLCBcImVudW1zXCJdLmluY2x1ZGVzKGNvbC5yZW5kZXJUeXBlKSlcbiAgICAubWFwKChjb2wpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckNvbHVtbkltcG9ydChlbnRpdHlJZCwgY29sKTtcbiAgICB9KVxuKS5qb2luKFwiXFxuXCIpfVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAke25hbWVzLmNhcGl0YWxQbHVyYWx9Rm9ybVBhZ2UoKSB7XG4gIC8vIOudvOyasO2MhSBzZWFyY2hQYXJhbXNcbiAgY29uc3QgW3NlYXJjaFBhcmFtc10gPSB1c2VTZWFyY2hQYXJhbXMoKTtcbiAgY29uc3QgcXVlcnkgPSB7XG4gICAgaWQ6IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJykgPz8gdW5kZWZpbmVkLFxuICB9O1xuXG4gIHJldHVybiA8JHtcbiAgICBuYW1lcy5jYXBpdGFsUGx1cmFsXG4gIH1Gb3JtIGlkPXtxdWVyeT8uaWQgPyBOdW1iZXIocXVlcnkuaWQpIDogdW5kZWZpbmVkfSAvPjtcbn1cbnR5cGUgJHtuYW1lcy5jYXBpdGFsUGx1cmFsfUZvcm1Qcm9wcyA9IHtcbiAgaWQ/OiBudW1iZXI7XG4gIG1vZGU/OiAncGFnZScgfCAnbW9kYWwnO1xufTtcbmV4cG9ydCBmdW5jdGlvbiAke25hbWVzLmNhcGl0YWxQbHVyYWx9Rm9ybSh7IGlkLCBtb2RlIH06ICR7XG4gICAgICAgIG5hbWVzLmNhcGl0YWxQbHVyYWxcbiAgICAgIH1Gb3JtUHJvcHMpIHtcbiAgLy8g7Y647KeR7IucIOq4sOyhtCByb3dcbiAgY29uc3QgW3Jvdywgc2V0Um93XSA9IHVzZVN0YXRlPCR7bmFtZXMuY2FwaXRhbH1TdWJzZXRBIHwgdW5kZWZpbmVkPigpO1xuXG4gIC8vICR7bmFtZXMuY2FwaXRhbH1TYXZlUGFyYW1zIO2PvFxuICBjb25zdCB7IGZvcm0sIHNldEZvcm0sIHJlZ2lzdGVyIH0gPSB1c2VUeXBlRm9ybSgke1xuICAgIG5hbWVzLmNhcGl0YWxcbiAgfVNhdmVQYXJhbXMsICR7SlNPTi5zdHJpbmdpZnkoZGVmYXVsdFZhbHVlKS5yZXBsYWNlKFxuICAgIC9cIm5vd1xcKFxcKVwiL2csXG4gICAgXCJEYXRlVGltZS5sb2NhbCgpLnRvU1FMKCkhLnNsaWNlKDAsIDE5KVwiXG4gICl9KTtcblxuICAvLyDsiJjsoJXsnbwg65WMIOq4sOyhtCByb3cg7L2cXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICAke25hbWVzLmNhcGl0YWx9U2VydmljZS5nZXQke25hbWVzLmNhcGl0YWx9KCdBJywgaWQpLnRoZW4oKHJvdykgPT4ge1xuICAgICAgICBzZXRSb3cocm93KTtcbiAgICAgICAgc2V0Rm9ybSh7XG4gICAgICAgICAgLi4ucm93LFxuICAgICAgICAgICR7Y29sdW1uc1xuICAgICAgICAgICAgLmZpbHRlcigoY29sKSA9PiBjb2wucmVuZGVyVHlwZSA9PT0gXCJudW1iZXItZmtfaWRcIilcbiAgICAgICAgICAgIC5tYXAoKGNvbCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoY29sLm51bGxhYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbC5uYW1lfTogcm93LiR7Y29sLm5hbWUucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgIFwiX2lkXCIsXG4gICAgICAgICAgICAgICAgICBcIj8uaWRcIlxuICAgICAgICAgICAgICAgICl9ID8/IG51bGxgO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHtjb2wubmFtZX06IHJvdy4ke2NvbC5uYW1lLnJlcGxhY2UoXCJfaWRcIiwgXCIuaWRcIil9YDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKFwiLFxcblwiKX1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtpZF0pO1xuXG4gIC8vIENvbW1vbk1vZGFsXG4gIC8vIGNvbnN0IHsgZG9uZU1vZGFsLCBjbG9zZU1vZGFsIH0gPSB1c2VDb21tb25Nb2RhbCgpO1xuXG4gIC8vIOyggOyepVxuICBjb25zdCB7IGdvQmFjayB9ID0gdXNlR29CYWNrKCk7XG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAke25hbWVzLmNhcGl0YWx9U2VydmljZS5zYXZlKFtmb3JtXSkudGhlbigoW2lkXSkgPT4ge1xuICAgICAgaWYoIG1vZGUgPT09ICdtb2RhbCcgKSB7XG4gICAgICAgIC8vIGRvbmVNb2RhbCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ29CYWNrKCcvYWRtaW4vJHtuYW1lcy5mc1BsdXJhbH0nKTtcbiAgICAgIH1cbiAgICB9KS5jYXRjaChkZWZhdWx0Q2F0Y2gpO1xuICB9LCBbIGZvcm0sIG1vZGUsIGlkIF0pO1xuXG4gIC8vIO2OmOydtOyngFxuICBjb25zdCBQQUdFID0ge1xuICAgIHRpdGxlOiBcXGAke1xuICAgICAgZW50aXR5LnRpdGxlID8/IG5hbWVzLmNhcGl0YWxcbiAgICB9XFwke2lkID8gXFxgI1xcJHtpZH0g7IiY7KCVXFxgIDogJyDrk7HroZ0nfVxcYCxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtXCI+XG4gICAgICA8U2VnbWVudCBwYWRkZWQgYmFzaWM+XG4gICAgICAgIDxTZWdtZW50IHBhZGRlZCBjb2xvcj1cImdyZXlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci1yb3dcIj5cbiAgICAgICAgICAgIDxIZWFkZXI+XG4gICAgICAgICAgICAgIHtQQUdFLnRpdGxlfVxuICAgICAgICAgICAgPC9IZWFkZXI+XG4gICAgICAgICAgICB7IG1vZGUgIT09ICdtb2RhbCcgJiYgPGRpdiBjbGFzc05hbWU9XCJidXR0b25zXCI+XG4gICAgICAgICAgICAgIDxCYWNrTGluayBwcmltYXJ5IHNpemU9XCJ0aW55XCIgdG89XCIvYWRtaW4vJHtcbiAgICAgICAgICAgICAgICBuYW1lcy5mc1BsdXJhbFxuICAgICAgICAgICAgICB9XCIgY29udGVudD1cIuuqqeuhnVwiIGljb249XCJsaXN0XCIgLz5cbiAgICAgICAgICAgIDwvZGl2Pn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Rm9ybT5cbiAgICAgICAgICAgICR7Y29sdW1uc1xuICAgICAgICAgICAgICAubWFwKChjb2wpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29sLm5hbWUgPT09IFwiY3JlYXRlZF9hdFwiKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYHtmb3JtLmlkICYmICgke3RoaXMud3JhcEZHKFxuICAgICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzc05hbWU9XCJwLThweFwiPntmb3JtYXREYXRlVGltZShmb3JtLiR7Y29sLm5hbWV9KX08L2Rpdj5gLFxuICAgICAgICAgICAgICAgICAgICBcIuuTseuhneydvOyLnFwiXG4gICAgICAgICAgICAgICAgICApfSl9YDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud3JhcEZHKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbHVtbihlbnRpdHlJZCwgY29sLCBuYW1lcyksXG4gICAgICAgICAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbC5sYWJlbC5lbmRzV2l0aChcIklkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2wubGFiZWwucmVwbGFjZShcIklkXCIsIFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRpdHkudGl0bGUgPz8gY29sLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2wubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2wubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgIH0pKClcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuam9pbihcIlxcblwiKX1cbiAgICAgICAgICAgIDxTZWdtZW50IGJhc2ljIHRleHRBbGlnbj1cImNlbnRlclwiPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBwcmltYXJ5IG9uQ2xpY2s9e2hhbmRsZVN1Ym1pdH0gY29udGVudD1cIuyggOyepVwiIGljb249XCJzYXZlXCIgLz5cbiAgICAgICAgICAgIDwvU2VnbWVudD5cbiAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgIDwvU2VnbWVudD5cbiAgICAgIDwvU2VnbWVudD5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4gICAgICBgLnRyaW0oKSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgICAgcHJlVGVtcGxhdGVzLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpbmZsZWN0aW9uIiwieiIsIkVudGl0eU1hbmFnZXIiLCJUZW1wbGF0ZSIsImdldFJlbGF0aW9uUHJvcEZyb21Db2xOYW1lIiwiZ2V0RW51bUluZm9Gcm9tQ29sTmFtZSIsIl8iLCJnZXRab2RUeXBlQnlJZCIsInpvZFR5cGVUb1JlbmRlcmluZ05vZGUiLCJUZW1wbGF0ZV9fdmlld19mb3JtIiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwidGFyZ2V0IiwicGF0aCIsImZzUGx1cmFsIiwid3JhcEZDIiwiYm9keSIsImxhYmVsIiwiam9pbiIsIndyYXBGRyIsInJlbmRlckNvbHVtbkltcG9ydCIsImVudGl0eUlkIiwiY29sIiwicmVuZGVyVHlwZSIsImlkIiwidGFyZ2V0RW50aXR5TmFtZXMiLCJuYW1lIiwiY29tcG9uZW50SWQiLCJmcyIsInJlbFByb3AiLCJyZXBsYWNlIiwidGFyZ2V0TmFtZXMiLCJnZXROYW1lc0Zyb21JZCIsIndpdGgiLCJFcnJvciIsInJlbmRlckNvbHVtbiIsInBhcmVudCIsInJlZ0V4cHIiLCJ6b2RUeXBlIiwiWm9kU3RyaW5nIiwibWF4TGVuZ3RoIiwiZW51bUlkIiwiY2FwaXRhbCIsImNhbWVsaXplIiwib3B0aW9uYWwiLCJudWxsYWJsZSIsImZrSWQiLCJyZXNvbHZlRGVmYXVsdFZhbHVlIiwiY29sdW1ucyIsInJlZHVjZSIsInJlc3VsdCIsInZhbHVlIiwiWm9kTnVtYmVyIiwiWm9kRW51bSIsIk9iamVjdCIsImtleXMiLCJvcHRpb25zIiwiWm9kQm9vbGVhbiIsIlpvZERhdGUiLCJEYXRlIiwiWm9kQXJyYXkiLCJab2RPYmplY3QiLCJyZW5kZXIiLCJzYXZlUGFyYW1zWm9kVHlwZSIsInNhdmVQYXJhbXNOb2RlIiwiZW50aXR5IiwiZ2V0IiwiY2hpbGRyZW4iLCJmaWx0ZXIiLCJtYXAiLCJwcm9wQ2FuZGlkYXRlIiwicHJvcHMiLCJmaW5kIiwicHJvcCIsImRlc2MiLCJkZWZhdWx0VmFsdWUiLCJwcmVUZW1wbGF0ZXMiLCJlbmRzV2l0aCIsImtleSIsInRhcmdldE1kSWQiLCJ0YXJnZXRNRE5hbWVzIiwibm9kZSIsInByZVRlbXBsYXRlIiwidW5pcSIsImluY2x1ZGVzIiwiY2FwaXRhbFBsdXJhbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0aXRsZSIsInRyaW0iLCJpbXBvcnRLZXlzIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxnQkFBZ0IsYUFBYTtBQUNwQyxTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUV4QixTQUFTQyxhQUFhLFFBQTJCLGlDQUE4QjtBQUUvRSxTQUFTQyxRQUFRLFFBQVEsaUJBQWM7QUFDdkMsU0FBU0MsMEJBQTBCLEVBQUVDLHNCQUFzQixRQUFRLGdCQUFhO0FBQ2hGLFlBQVlDLE9BQU8sWUFBWTtBQUMvQixTQUFTQyxjQUFjLEVBQUVDLHNCQUFzQixRQUFRLHNCQUFtQjtBQUUxRSxPQUFPLE1BQU1DLDRCQUE0Qk47SUFDdkMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFPLGlCQUFpQkMsS0FBd0IsRUFBRTtRQUN6QyxP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
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19mb3JtLnRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5pbXBvcnQgeyB1bmlxdWUgfSBmcm9tIFwicmFkYXNoaVwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IFJlbmRlcmluZ05vZGUsIFRlbXBsYXRlS2V5LCBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IGdldEVudW1JbmZvRnJvbUNvbE5hbWUsIGdldFJlbGF0aW9uUHJvcEZyb21Db2xOYW1lIH0gZnJvbSBcIi4uL2hlbHBlcnNcIjtcbmltcG9ydCB0eXBlIHsgUmVuZGVyZWRUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcbmltcG9ydCB7IGdldFpvZFR5cGVCeUlkLCB6b2RUeXBlVG9SZW5kZXJpbmdOb2RlIH0gZnJvbSBcIi4uL3pvZC1jb252ZXJ0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX192aWV3X2Zvcm0gZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwidmlld19mb3JtXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBcIndlYi9zcmMvcGFnZXMvYWRtaW5cIixcbiAgICAgIHBhdGg6IGAke25hbWVzLmZzUGx1cmFsfS9mb3JtLnRzeGAsXG4gICAgfTtcbiAgfVxuXG4gIHdyYXBGQyhib2R5OiBzdHJpbmcsIGxhYmVsPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgYDxGb3JtLkZpZWxkPiR7bGFiZWwgPyBgXFxuICAgPGxhYmVsPiR7bGFiZWx9PC9sYWJlbD5gIDogXCJcIn1gLFxuICAgICAgYm9keSxcbiAgICAgIGA8L0Zvcm0uRmllbGQ+YCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gIH1cbiAgd3JhcEZHKGJvZHk6IHN0cmluZywgbGFiZWw/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBbYDxGb3JtLkdyb3VwIHdpZHRocz1cImVxdWFsXCI+YCwgdGhpcy53cmFwRkMoYm9keSwgbGFiZWwpLCBgPC9Gb3JtLkdyb3VwPmBdLmpvaW4oXCJcXG5cIik7XG4gIH1cblxuICByZW5kZXJDb2x1bW5JbXBvcnQoZW50aXR5SWQ6IHN0cmluZywgY29sOiBSZW5kZXJpbmdOb2RlKSB7XG4gICAgaWYgKGNvbC5yZW5kZXJUeXBlID09PSBcImVudW1zXCIpIHtcbiAgICAgIGNvbnN0IHsgaWQsIHRhcmdldEVudGl0eU5hbWVzIH0gPSBnZXRFbnVtSW5mb0Zyb21Db2xOYW1lKGVudGl0eUlkLCBjb2wubmFtZSk7XG4gICAgICBjb25zdCBjb21wb25lbnRJZCA9IGAke2lkfVNlbGVjdGA7XG4gICAgICByZXR1cm4gYGltcG9ydCB7ICR7Y29tcG9uZW50SWR9IH0gZnJvbSBcInNyYy9jb21wb25lbnRzLyR7dGFyZ2V0RW50aXR5TmFtZXMuZnN9LyR7Y29tcG9uZW50SWR9XCI7YDtcbiAgICB9IGVsc2UgaWYgKGNvbC5yZW5kZXJUeXBlID09PSBcIm51bWJlci1ma19pZFwiKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWxQcm9wID0gZ2V0UmVsYXRpb25Qcm9wRnJvbUNvbE5hbWUoZW50aXR5SWQsIGNvbC5uYW1lLnJlcGxhY2UoXCJfaWRcIiwgXCJcIikpO1xuICAgICAgICBjb25zdCB0YXJnZXROYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQocmVsUHJvcC53aXRoKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50SWQgPSBgJHtyZWxQcm9wLndpdGh9SWRBc3luY1NlbGVjdGA7XG4gICAgICAgIHJldHVybiBgaW1wb3J0IHsgJHtjb21wb25lbnRJZH0gfSBmcm9tIFwic3JjL2NvbXBvbmVudHMvJHt0YXJnZXROYW1lcy5mc30vJHtjb21wb25lbnRJZH1cIjtgO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOugjOuNlCDrtojqsIDriqXtlZwg7J6E7Y+s7Yq4ICR7Y29sLm5hbWV9ICR7Y29sLnJlbmRlclR5cGV9YCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyQ29sdW1uKFxuICAgIGVudGl0eUlkOiBzdHJpbmcsXG4gICAgY29sOiBSZW5kZXJpbmdOb2RlLFxuICAgIG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCxcbiAgICBwYXJlbnQ6IHN0cmluZyA9IFwiXCIsXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IHJlZ0V4cHI6IHN0cmluZyA9IFwiXCI7XG4gICAgcmVnRXhwciA9IGB7Li4ucmVnaXN0ZXIoXFxgJHtwYXJlbnR9JHtjb2wubmFtZX1cXGApfWA7XG5cbiAgICBzd2l0Y2ggKGNvbC5yZW5kZXJUeXBlKSB7XG4gICAgICBjYXNlIFwic3RyaW5nLXBsYWluXCI6XG4gICAgICAgIGlmIChjb2wuem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kU3RyaW5nICYmIChjb2wuem9kVHlwZS5tYXhMZW5ndGggPz8gMCkgPD0gNTEyKSB7XG4gICAgICAgICAgcmV0dXJuIGA8SW5wdXQgcGxhY2Vob2xkZXI9XCIke2NvbC5sYWJlbH1cIiAke3JlZ0V4cHJ9IC8+YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYDxUZXh0QXJlYSByb3dzPXs4fSBwbGFjZWhvbGRlcj1cIiR7Y29sLmxhYmVsfVwiICR7cmVnRXhwcn0gLz5gO1xuICAgICAgICB9XG4gICAgICBjYXNlIFwiZGF0ZXRpbWVcIjpcbiAgICAgICAgcmV0dXJuIGA8SW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgJHtyZWdFeHByfSAvPmA7XG4gICAgICBjYXNlIFwic3RyaW5nLWRhdGV0aW1lXCI6XG4gICAgICAgIHJldHVybiBgPFNRTERhdGVUaW1lSW5wdXQgJHtyZWdFeHByfSAvPmA7XG4gICAgICBjYXNlIFwic3RyaW5nLWRhdGVcIjpcbiAgICAgICAgcmV0dXJuIGA8U1FMRGF0ZUlucHV0ICR7cmVnRXhwcn0gLz5gO1xuICAgICAgY2FzZSBcIm51bWJlci1pZFwiOlxuICAgICAgICByZXR1cm4gYDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgJHtyZWdFeHByfSAvPmA7XG4gICAgICBjYXNlIFwibnVtYmVyLXBsYWluXCI6XG4gICAgICAgIHJldHVybiBgPE51bWJlcklucHV0IHBsYWNlaG9sZGVyPVwiJHtjb2wubGFiZWx9XCIgJHtyZWdFeHByfSAvPmA7XG4gICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICByZXR1cm4gYDxCb29sZWFuVG9nZ2xlICR7cmVnRXhwcn0gLz5gO1xuICAgICAgY2FzZSBcInN0cmluZy1pbWFnZVwiOlxuICAgICAgICByZXR1cm4gYDxJbWFnZVVwbG9hZGVyIG11bHRpcGxlPXtmYWxzZX0gJHtyZWdFeHByfSAvPmA7XG4gICAgICBjYXNlIFwiYXJyYXktaW1hZ2VzXCI6XG4gICAgICAgIHJldHVybiBgPEltYWdlVXBsb2FkZXIgbXVsdGlwbGU9e3RydWV9ICR7cmVnRXhwcn0gbWF4U2l6ZT17NX0gLz5gO1xuICAgICAgY2FzZSBcImVudW1zXCI6XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbGV0IGVudW1JZDogc3RyaW5nO1xuICAgICAgICAgIGlmIChjb2wubmFtZSA9PT0gXCJvcmRlckJ5XCIpIHtcbiAgICAgICAgICAgIGVudW1JZCA9IGAke25hbWVzLmNhcGl0YWx9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGNvbC5uYW1lKX1TZWxlY3RgO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB7IGlkIH0gPSBnZXRFbnVtSW5mb0Zyb21Db2xOYW1lKGVudGl0eUlkLCBjb2wubmFtZSk7XG4gICAgICAgICAgICBlbnVtSWQgPSBgJHtpZH1TZWxlY3RgO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYDwke2VudW1JZH0gJHtyZWdFeHByfSAke1xuICAgICAgICAgICAgY29sLm9wdGlvbmFsIHx8IGNvbC5udWxsYWJsZSA/IFwiY2xlYXJhYmxlXCIgOiBcIlwiXG4gICAgICAgICAgfSB0ZXh0UHJlZml4PVwiXCIgLz5gO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4gYDw+7LC+7J2EIOyImCDsl4bripQgRW51bSAke2NvbC5uYW1lfTwvPmA7XG4gICAgICAgIH1cbiAgICAgIGNhc2UgXCJudW1iZXItZmtfaWRcIjpcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZWxQcm9wID0gZ2V0UmVsYXRpb25Qcm9wRnJvbUNvbE5hbWUoZW50aXR5SWQsIGNvbC5uYW1lLnJlcGxhY2UoXCJfaWRcIiwgXCJcIikpO1xuICAgICAgICAgIGNvbnN0IGZrSWQgPSBgJHtyZWxQcm9wLndpdGh9SWRBc3luY1NlbGVjdGA7XG4gICAgICAgICAgcmV0dXJuIGA8JHtma0lkfSB7Li4ucmVnaXN0ZXIoJyR7Y29sLm5hbWV9Jyl9ICR7XG4gICAgICAgICAgICBjb2wub3B0aW9uYWwgfHwgY29sLm51bGxhYmxlID8gXCJjbGVhcmFibGVcIiA6IFwiXCJcbiAgICAgICAgICB9IHN1YnNldD1cIkFcIiAvPmA7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBgPElucHV0ICR7cmVnRXhwcn0gLz5gO1xuICAgICAgICB9XG4gICAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgICAgcmV0dXJuIGA8PiR7Y29sLm5hbWV9IGFycmF5PC8+YDtcbiAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgcmV0dXJuIGA8PiR7Y29sLm5hbWV9IG9iamVjdDwvPmA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYOuMgOydkSDrtojqsIDriqXtlZwg66CM642UIO2DgOyehSAke2NvbC5yZW5kZXJUeXBlfSBvbiAke2NvbC5uYW1lfWApO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVEZWZhdWx0VmFsdWUoY29sdW1uczogUmVuZGVyaW5nTm9kZVtdKTogb2JqZWN0IHtcbiAgICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoXG4gICAgICAocmVzdWx0LCBjb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbC5vcHRpb25hbCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWU6IHVua25vd247XG4gICAgICAgIGlmIChjb2wubnVsbGFibGUgPT09IHRydWUpIHtcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAoY29sLnpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bWJlcikge1xuICAgICAgICAgIHZhbHVlID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChjb2wuem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRW51bSkge1xuICAgICAgICAgIHZhbHVlID0gT2JqZWN0LmtleXMoY29sLnpvZFR5cGUub3B0aW9ucylbMF07XG4gICAgICAgIH0gZWxzZSBpZiAoY29sLnpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZEJvb2xlYW4pIHtcbiAgICAgICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbC56b2RUeXBlIGluc3RhbmNlb2Ygei5ab2REYXRlKSB7XG4gICAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbC56b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RTdHJpbmcpIHtcbiAgICAgICAgICBpZiAoY29sLnJlbmRlclR5cGUgPT09IFwic3RyaW5nLWRhdGV0aW1lXCIpIHtcbiAgICAgICAgICAgIHZhbHVlID0gXCJub3coKVwiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGNvbC56b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RBcnJheSkge1xuICAgICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIH0gZWxzZSBpZiAoY29sLnpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9iamVjdCkge1xuICAgICAgICAgIHZhbHVlID0ge307XG4gICAgICAgIH1cblxuICAgICAgICByZXN1bHRbY29sLm5hbWVdID0gdmFsdWU7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9LFxuICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0sXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJlbmRlcih7IGVudGl0eUlkIH06IFRlbXBsYXRlT3B0aW9uc1tcInZpZXdfZm9ybVwiXSkge1xuICAgIGNvbnN0IHNhdmVQYXJhbXNab2RUeXBlID0gYXdhaXQgZ2V0Wm9kVHlwZUJ5SWQoYCR7ZW50aXR5SWR9U2F2ZVBhcmFtc2ApO1xuICAgIGNvbnN0IHNhdmVQYXJhbXNOb2RlID0gem9kVHlwZVRvUmVuZGVyaW5nTm9kZShzYXZlUGFyYW1zWm9kVHlwZSk7XG5cbiAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG4gICAgY29uc3QgbmFtZXMgPSBFbnRpdHlNYW5hZ2VyLmdldE5hbWVzRnJvbUlkKGVudGl0eUlkKTtcbiAgICBjb25zdCBjb2x1bW5zID0gKHNhdmVQYXJhbXNOb2RlLmNoaWxkcmVuIGFzIFJlbmRlcmluZ05vZGVbXSlcbiAgICAgIC5maWx0ZXIoKGNvbCkgPT4gY29sLm5hbWUgIT09IFwiaWRcIilcbiAgICAgIC5tYXAoKGNvbCkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wQ2FuZGlkYXRlID0gZW50aXR5LnByb3BzLmZpbmQoKHByb3ApID0+IHByb3AubmFtZSA9PT0gY29sLm5hbWUpO1xuICAgICAgICBjb2wubGFiZWwgPSBwcm9wQ2FuZGlkYXRlPy5kZXNjID8/IGNvbC5sYWJlbDtcbiAgICAgICAgcmV0dXJuIGNvbDtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gdGhpcy5yZXNvbHZlRGVmYXVsdFZhbHVlKGNvbHVtbnMpO1xuXG4gICAgLy8g7ZSE66asIO2FnO2UjOumv1xuICAgIGNvbnN0IHByZVRlbXBsYXRlczogUmVuZGVyZWRUZW1wbGF0ZVtcInByZVRlbXBsYXRlc1wiXSA9IChjb2x1bW5zIGFzIFJlbmRlcmluZ05vZGVbXSlcbiAgICAgIC5maWx0ZXIoKGNvbCkgPT4ge1xuICAgICAgICBpZiAoY29sLm5hbWUgPT09IFwiaWRcIikge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChjb2wubmFtZS5lbmRzV2l0aChcIl9pZFwiKSB8fCBjb2wucmVuZGVyVHlwZSA9PT0gXCJudW1iZXItaWRcIikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBnZXRSZWxhdGlvblByb3BGcm9tQ29sTmFtZShlbnRpdHlJZCwgY29sLm5hbWUucmVwbGFjZShcIl9pZFwiLCBcIlwiKSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY29sLnJlbmRlclR5cGUgPT09IFwiZW51bXNcIikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBnZXRFbnVtSW5mb0Zyb21Db2xOYW1lKGVudGl0eUlkLCBjb2wubmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSlcbiAgICAgIC5tYXAoKGNvbCkgPT4ge1xuICAgICAgICBsZXQga2V5OiBUZW1wbGF0ZUtleTtcbiAgICAgICAgbGV0IHRhcmdldE1kSWQgPSBlbnRpdHlJZDtcbiAgICAgICAgbGV0IGVudW1JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY29sLnJlbmRlclR5cGUgPT09IFwiZW51bXNcIikge1xuICAgICAgICAgIGtleSA9IFwidmlld19lbnVtc19zZWxlY3RcIjtcbiAgICAgICAgICBjb25zdCB7IHRhcmdldEVudGl0eU5hbWVzOiB0YXJnZXRNRE5hbWVzLCBpZCB9ID0gZ2V0RW51bUluZm9Gcm9tQ29sTmFtZShcbiAgICAgICAgICAgIGVudGl0eUlkLFxuICAgICAgICAgICAgY29sLm5hbWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0YXJnZXRNZElkID0gdGFyZ2V0TUROYW1lcy5jYXBpdGFsO1xuICAgICAgICAgIGVudW1JZCA9IGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGtleSA9IFwidmlld19pZF9hc3luY19zZWxlY3RcIjtcbiAgICAgICAgICBjb25zdCByZWxQcm9wID0gZ2V0UmVsYXRpb25Qcm9wRnJvbUNvbE5hbWUoZW50aXR5SWQsIGNvbC5uYW1lLnJlcGxhY2UoXCJfaWRcIiwgXCJcIikpO1xuICAgICAgICAgIHRhcmdldE1kSWQgPSByZWxQcm9wLndpdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleToga2V5IGFzIFRlbXBsYXRlS2V5LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGVudGl0eUlkOiB0YXJnZXRNZElkLFxuICAgICAgICAgICAgbm9kZTogY29sLFxuICAgICAgICAgICAgZW51bUlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigocHJlVGVtcGxhdGUpID0+IHtcbiAgICAgICAgaWYgKHByZVRlbXBsYXRlLmtleSA9PT0gXCJ2aWV3X2lkX2FzeW5jX3NlbGVjdFwiKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIEVudGl0eU1hbmFnZXIuZ2V0KHByZVRlbXBsYXRlLm9wdGlvbnMuZW50aXR5SWQpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKG5hbWVzKSxcbiAgICAgIGJvZHk6IGBcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCBEaXNwYXRjaCwgU2V0U3RhdGVBY3Rpb24sIGZvcndhcmRSZWYsIFJlZiwgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIEJ1dHRvbixcbiAgQ2hlY2tib3gsXG4gIEZvcm0sXG4gIEhlYWRlcixcbiAgSW5wdXQsXG4gIFNlZ21lbnQsXG4gIFRleHRBcmVhLFxuICBMYWJlbCxcbn0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tIFwibHV4b25cIjtcblxuaW1wb3J0IHsgQmFja0xpbmssIExpbmtJbnB1dCwgTnVtYmVySW5wdXQsIEJvb2xlYW5Ub2dnbGUsIFNRTERhdGVUaW1lSW5wdXQsIFNRTERhdGVJbnB1dCwgdXNlVHlwZUZvcm0sIHVzZUdvQmFjaywgZm9ybWF0RGF0ZVRpbWUgfSBmcm9tIFwiQHNvbmFtdS1raXQvcmVhY3Qtc3VpXCI7XG5pbXBvcnQgeyBkZWZhdWx0Q2F0Y2ggfSBmcm9tICdzcmMvc2VydmljZXMvc29uYW11LnNoYXJlZCc7XG4vLyBpbXBvcnQgeyBJbWFnZVVwbG9hZGVyIH0gZnJvbSAnc3JjL2FkbWluLWNvbW1vbi9JbWFnZVVwbG9hZGVyJztcbi8vIGltcG9ydCB7IHVzZUNvbW1vbk1vZGFsIH0gZnJvbSBcInNyYy9hZG1pbi1jb21tb24vQ29tbW9uTW9kYWxcIjtcblxuaW1wb3J0IHsgJHtuYW1lcy5jYXBpdGFsfVNhdmVQYXJhbXMgfSBmcm9tICdzcmMvc2VydmljZXMvJHtuYW1lcy5mc30vJHtuYW1lcy5mc30udHlwZXMnO1xuaW1wb3J0IHsgJHtuYW1lcy5jYXBpdGFsfVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvJHtuYW1lcy5mc30vJHtuYW1lcy5mc30uc2VydmljZSc7XG5pbXBvcnQgeyAke25hbWVzLmNhcGl0YWx9U3Vic2V0QSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9zb25hbXUuZ2VuZXJhdGVkJztcbiR7dW5pcXVlKFxuICBjb2x1bW5zXG4gICAgLmZpbHRlcigoY29sKSA9PiBbXCJudW1iZXItZmtfaWRcIiwgXCJlbnVtc1wiXS5pbmNsdWRlcyhjb2wucmVuZGVyVHlwZSkpXG4gICAgLm1hcCgoY29sKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJDb2x1bW5JbXBvcnQoZW50aXR5SWQsIGNvbCk7XG4gICAgfSksXG4pLmpvaW4oXCJcXG5cIil9XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uICR7bmFtZXMuY2FwaXRhbFBsdXJhbH1Gb3JtUGFnZSgpIHtcbiAgLy8g65287Jqw7YyFIHNlYXJjaFBhcmFtc1xuICBjb25zdCBbc2VhcmNoUGFyYW1zXSA9IHVzZVNlYXJjaFBhcmFtcygpO1xuICBjb25zdCBxdWVyeSA9IHtcbiAgICBpZDogc2VhcmNoUGFyYW1zLmdldCgnaWQnKSA/PyB1bmRlZmluZWQsXG4gIH07XG5cbiAgcmV0dXJuIDwke25hbWVzLmNhcGl0YWxQbHVyYWx9Rm9ybSBpZD17cXVlcnk/LmlkID8gTnVtYmVyKHF1ZXJ5LmlkKSA6IHVuZGVmaW5lZH0gLz47XG59XG50eXBlICR7bmFtZXMuY2FwaXRhbFBsdXJhbH1Gb3JtUHJvcHMgPSB7XG4gIGlkPzogbnVtYmVyO1xuICBtb2RlPzogJ3BhZ2UnIHwgJ21vZGFsJztcbn07XG5leHBvcnQgZnVuY3Rpb24gJHtuYW1lcy5jYXBpdGFsUGx1cmFsfUZvcm0oeyBpZCwgbW9kZSB9OiAke25hbWVzLmNhcGl0YWxQbHVyYWx9Rm9ybVByb3BzKSB7XG4gIC8vIO2OuOynkeyLnCDquLDsobQgcm93XG4gIGNvbnN0IFtyb3csIHNldFJvd10gPSB1c2VTdGF0ZTwke25hbWVzLmNhcGl0YWx9U3Vic2V0QSB8IHVuZGVmaW5lZD4oKTtcblxuICAvLyAke25hbWVzLmNhcGl0YWx9U2F2ZVBhcmFtcyDtj7xcbiAgY29uc3QgeyBmb3JtLCBzZXRGb3JtLCByZWdpc3RlciB9ID0gdXNlVHlwZUZvcm0oJHtuYW1lcy5jYXBpdGFsfVNhdmVQYXJhbXMsICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgZGVmYXVsdFZhbHVlLFxuICApLnJlcGxhY2UoL1wibm93XFwoXFwpXCIvZywgXCJEYXRlVGltZS5sb2NhbCgpLnRvU1FMKCkhLnNsaWNlKDAsIDE5KVwiKX0pO1xuXG4gIC8vIOyImOygleydvCDrlYwg6riw7KG0IHJvdyDsvZxcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgICR7bmFtZXMuY2FwaXRhbH1TZXJ2aWNlLmdldCR7bmFtZXMuY2FwaXRhbH0oJ0EnLCBpZCkudGhlbigocm93KSA9PiB7XG4gICAgICAgIHNldFJvdyhyb3cpO1xuICAgICAgICBzZXRGb3JtKHtcbiAgICAgICAgICAuLi5yb3csXG4gICAgICAgICAgJHtjb2x1bW5zXG4gICAgICAgICAgICAuZmlsdGVyKChjb2wpID0+IGNvbC5yZW5kZXJUeXBlID09PSBcIm51bWJlci1ma19pZFwiKVxuICAgICAgICAgICAgLm1hcCgoY29sKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChjb2wubnVsbGFibGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7Y29sLm5hbWV9OiByb3cuJHtjb2wubmFtZS5yZXBsYWNlKFwiX2lkXCIsIFwiPy5pZFwiKX0gPz8gbnVsbGA7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbC5uYW1lfTogcm93LiR7Y29sLm5hbWUucmVwbGFjZShcIl9pZFwiLCBcIi5pZFwiKX1gO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCIsXFxuXCIpfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2lkXSk7XG5cbiAgLy8gQ29tbW9uTW9kYWxcbiAgLy8gY29uc3QgeyBkb25lTW9kYWwsIGNsb3NlTW9kYWwgfSA9IHVzZUNvbW1vbk1vZGFsKCk7XG5cbiAgLy8g7KCA7J6lXG4gIGNvbnN0IHsgZ29CYWNrIH0gPSB1c2VHb0JhY2soKTtcbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICR7bmFtZXMuY2FwaXRhbH1TZXJ2aWNlLnNhdmUoW2Zvcm1dKS50aGVuKChbaWRdKSA9PiB7XG4gICAgICBpZiggbW9kZSA9PT0gJ21vZGFsJyApIHtcbiAgICAgICAgLy8gZG9uZU1vZGFsKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnb0JhY2soJy9hZG1pbi8ke25hbWVzLmZzUGx1cmFsfScpO1xuICAgICAgfVxuICAgIH0pLmNhdGNoKGRlZmF1bHRDYXRjaCk7XG4gIH0sIFsgZm9ybSwgbW9kZSwgaWQgXSk7XG5cbiAgLy8g7Y6Y7J207KeAXG4gIGNvbnN0IFBBR0UgPSB7XG4gICAgdGl0bGU6IFxcYCR7ZW50aXR5LnRpdGxlID8/IG5hbWVzLmNhcGl0YWx9XFwke2lkID8gXFxgI1xcJHtpZH0g7IiY7KCVXFxgIDogJyDrk7HroZ0nfVxcYCxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtXCI+XG4gICAgICA8U2VnbWVudCBwYWRkZWQgYmFzaWM+XG4gICAgICAgIDxTZWdtZW50IHBhZGRlZCBjb2xvcj1cImdyZXlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci1yb3dcIj5cbiAgICAgICAgICAgIDxIZWFkZXI+XG4gICAgICAgICAgICAgIHtQQUdFLnRpdGxlfVxuICAgICAgICAgICAgPC9IZWFkZXI+XG4gICAgICAgICAgICB7IG1vZGUgIT09ICdtb2RhbCcgJiYgPGRpdiBjbGFzc05hbWU9XCJidXR0b25zXCI+XG4gICAgICAgICAgICAgIDxCYWNrTGluayBwcmltYXJ5IHNpemU9XCJ0aW55XCIgdG89XCIvYWRtaW4vJHtcbiAgICAgICAgICAgICAgICBuYW1lcy5mc1BsdXJhbFxuICAgICAgICAgICAgICB9XCIgY29udGVudD1cIuuqqeuhnVwiIGljb249XCJsaXN0XCIgLz5cbiAgICAgICAgICAgIDwvZGl2Pn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Rm9ybT5cbiAgICAgICAgICAgICR7Y29sdW1uc1xuICAgICAgICAgICAgICAubWFwKChjb2wpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29sLm5hbWUgPT09IFwiY3JlYXRlZF9hdFwiKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYHtmb3JtLmlkICYmICgke3RoaXMud3JhcEZHKFxuICAgICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzc05hbWU9XCJwLThweFwiPntmb3JtYXREYXRlVGltZShmb3JtLiR7Y29sLm5hbWV9KX08L2Rpdj5gLFxuICAgICAgICAgICAgICAgICAgICBcIuuTseuhneydvOyLnFwiLFxuICAgICAgICAgICAgICAgICAgKX0pfWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLndyYXBGRyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb2x1bW4oZW50aXR5SWQsIGNvbCwgbmFtZXMpLFxuICAgICAgICAgICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2wubGFiZWwuZW5kc1dpdGgoXCJJZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoY29sLmxhYmVsLnJlcGxhY2UoXCJJZFwiLCBcIlwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRpdHkudGl0bGUgPz8gY29sLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2wubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2wubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgIH0pKCksXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIil9XG4gICAgICAgICAgICA8U2VnbWVudCBiYXNpYyB0ZXh0QWxpZ249XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwic3VibWl0XCIgcHJpbWFyeSBvbkNsaWNrPXtoYW5kbGVTdWJtaXR9IGNvbnRlbnQ9XCLsoIDsnqVcIiBpY29uPVwic2F2ZVwiIC8+XG4gICAgICAgICAgICA8L1NlZ21lbnQ+XG4gICAgICAgICAgPC9Gb3JtPlxuICAgICAgICA8L1NlZ21lbnQ+XG4gICAgICA8L1NlZ21lbnQ+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuICAgICAgYC50cmltKCksXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICAgIHByZVRlbXBsYXRlcyxcbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiaW5mbGVjdGlvbiIsInVuaXF1ZSIsInoiLCJFbnRpdHlNYW5hZ2VyIiwiZ2V0RW51bUluZm9Gcm9tQ29sTmFtZSIsImdldFJlbGF0aW9uUHJvcEZyb21Db2xOYW1lIiwiVGVtcGxhdGUiLCJnZXRab2RUeXBlQnlJZCIsInpvZFR5cGVUb1JlbmRlcmluZ05vZGUiLCJUZW1wbGF0ZV9fdmlld19mb3JtIiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwidGFyZ2V0IiwicGF0aCIsImZzUGx1cmFsIiwid3JhcEZDIiwiYm9keSIsImxhYmVsIiwiam9pbiIsIndyYXBGRyIsInJlbmRlckNvbHVtbkltcG9ydCIsImVudGl0eUlkIiwiY29sIiwicmVuZGVyVHlwZSIsImlkIiwidGFyZ2V0RW50aXR5TmFtZXMiLCJuYW1lIiwiY29tcG9uZW50SWQiLCJmcyIsInJlbFByb3AiLCJyZXBsYWNlIiwidGFyZ2V0TmFtZXMiLCJnZXROYW1lc0Zyb21JZCIsIndpdGgiLCJFcnJvciIsInJlbmRlckNvbHVtbiIsInBhcmVudCIsInJlZ0V4cHIiLCJ6b2RUeXBlIiwiWm9kU3RyaW5nIiwibWF4TGVuZ3RoIiwiZW51bUlkIiwiY2FwaXRhbCIsImNhbWVsaXplIiwib3B0aW9uYWwiLCJudWxsYWJsZSIsImZrSWQiLCJyZXNvbHZlRGVmYXVsdFZhbHVlIiwiY29sdW1ucyIsInJlZHVjZSIsInJlc3VsdCIsInZhbHVlIiwiWm9kTnVtYmVyIiwiWm9kRW51bSIsIk9iamVjdCIsImtleXMiLCJvcHRpb25zIiwiWm9kQm9vbGVhbiIsIlpvZERhdGUiLCJEYXRlIiwiWm9kQXJyYXkiLCJab2RPYmplY3QiLCJyZW5kZXIiLCJzYXZlUGFyYW1zWm9kVHlwZSIsInNhdmVQYXJhbXNOb2RlIiwiZW50aXR5IiwiZ2V0IiwiY2hpbGRyZW4iLCJmaWx0ZXIiLCJtYXAiLCJwcm9wQ2FuZGlkYXRlIiwicHJvcHMiLCJmaW5kIiwicHJvcCIsImRlc2MiLCJkZWZhdWx0VmFsdWUiLCJwcmVUZW1wbGF0ZXMiLCJlbmRzV2l0aCIsImtleSIsInRhcmdldE1kSWQiLCJ0YXJnZXRNRE5hbWVzIiwibm9kZSIsInByZVRlbXBsYXRlIiwiaW5jbHVkZXMiLCJjYXBpdGFsUGx1cmFsIiwiSlNPTiIsInN0cmluZ2lmeSIsInRpdGxlIiwidHJpbSIsImltcG9ydEtleXMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGdCQUFnQixhQUFhO0FBQ3BDLFNBQVNDLE1BQU0sUUFBUSxVQUFVO0FBQ2pDLFNBQVNDLENBQUMsUUFBUSxNQUFNO0FBQ3hCLFNBQVNDLGFBQWEsUUFBZ0MsaUNBQThCO0FBRXBGLFNBQVNDLHNCQUFzQixFQUFFQywwQkFBMEIsUUFBUSxnQkFBYTtBQUVoRixTQUFTQyxRQUFRLFFBQVEsaUJBQWM7QUFDdkMsU0FBU0MsY0FBYyxFQUFFQyxzQkFBc0IsUUFBUSxzQkFBbUI7QUFFMUUsT0FBTyxNQUFNQyw0QkFBNEJIO0lBQ3ZDLGFBQWM7UUFDWixLQUFLLENBQUM7SUFDUjtJQUVBSSxpQkFBaUJDLEtBQXdCLEVBQUU7UUFDekMsT0FBTztZQUNMQyxRQUFRO1lBQ1JDLE1BQU0sR0FBR0YsTUFBTUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUNwQztJQUNGO0lBRUFDLE9BQU9DLElBQVksRUFBRUMsS0FBYyxFQUFVO1FBQzNDLE9BQU87WUFDTCxDQUFDLFlBQVksRUFBRUEsUUFBUSxDQUFDLFlBQVksRUFBRUEsTUFBTSxRQUFRLENBQUMsR0FBRyxJQUFJO1lBQzVERDtZQUNBLENBQUMsYUFBYSxDQUFDO1NBQ2hCLENBQUNFLElBQUksQ0FBQztJQUNUO0lBQ0FDLE9BQU9ILElBQVksRUFBRUMsS0FBYyxFQUFVO1FBQzNDLE9BQU87WUFBQyxDQUFDLDJCQUEyQixDQUFDO1lBQUUsSUFBSSxDQUFDRixNQUFNLENBQUNDLE1BQU1DO1lBQVEsQ0FBQyxhQUFhLENBQUM7U0FBQyxDQUFDQyxJQUFJLENBQUM7SUFDekY7SUFFQUUsbUJBQW1CQyxRQUFnQixFQUFFQyxHQUFrQixF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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type EntityNamesRecord } from "../../entity/entity-manager";
|
|
2
|
+
import type { TemplateOptions } from "../../types/types";
|
|
3
3
|
import { Template } from "../template";
|
|
4
4
|
export declare class Template__view_id_all_select extends Template {
|
|
5
5
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view_id_all_select.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_id_all_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"view_id_all_select.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_id_all_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,4BAA6B,SAAQ,QAAQ;;IAKxD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAOzC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,oBAAoB,CAAC;;;;;;CAiB3D"}
|
|
@@ -28,4 +28,4 @@ ${JSON.stringify({
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19pZF9hbGxfc2VsZWN0LnRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eU1hbmFnZXIsIHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX192aWV3X2lkX2FsbF9zZWxlY3QgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwidmlld19pZF9hbGxfc2VsZWN0XCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBcIndlYi9zcmMvY29tcG9uZW50c1wiLFxuICAgICAgcGF0aDogYCR7bmFtZXMuZnN9LyR7bmFtZXMuY2FwaXRhbH1JZEFsbFNlbGVjdC50c3hgLFxuICAgIH07XG4gIH1cblxuICByZW5kZXIoeyBlbnRpdHlJZCB9OiBUZW1wbGF0ZU9wdGlvbnNbXCJ2aWV3X2lkX2FsbF9zZWxlY3RcIl0pIHtcbiAgICBjb25zdCBuYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQoZW50aXR5SWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZ2V0VGFyZ2V0QW5kUGF0aChuYW1lcyksXG4gICAgICBib2R5OiBgXG4vKlxudmlld19pZF9hbGxfc2VsZWN0XG4ke0pTT04uc3RyaW5naWZ5KHtcbiAga2V5OiB0aGlzLmtleSxcbiAgb3B0aW9uczogZW50aXR5SWQsXG59KX1cbiovXG4gICAgICBgLnRyaW0oKSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFbnRpdHlNYW5hZ2VyIiwiVGVtcGxhdGUiLCJUZW1wbGF0ZV9fdmlld19pZF9hbGxfc2VsZWN0IiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwidGFyZ2V0IiwicGF0aCIsImZzIiwiY2FwaXRhbCIsInJlbmRlciIsImVudGl0eUlkIiwiZ2V0TmFtZXNGcm9tSWQiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsImtleSIsIm9wdGlvbnMiLCJ0cmltIiwiaW1wb3J0S2V5cyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxRQUFnQyxpQ0FBOEI7QUFFcEYsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBRXZDLE9BQU8sTUFBTUMscUNBQXFDRDtJQUNoRCxhQUFjO1FBQ1osS0FBSyxDQUFDO0lBQ1I7SUFFQUUsaUJBQWlCQyxLQUF3QixFQUFFO1FBQ3pDLE9BQU87WUFDTEMsUUFBUTtZQUNSQyxNQUFNLEdBQUdGLE1BQU1HLEVBQUUsQ0FBQyxDQUFDLEVBQUVILE1BQU1JLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDckQ7SUFDRjtJQUVBQyxPQUFPLEVBQUVDLFFBQVEsRUFBeUMsRUFBRTtRQUMxRCxNQUFNTixRQUFRSixjQUFjVyxjQUFjLENBQUNEO1FBRTNDLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQ1AsZ0JBQWdCLENBQUNDLE1BQU07WUFDL0JRLE1BQU0sQ0FBQzs7O0FBR2IsRUFBRUMsS0FBS0MsU0FBUyxDQUFDO2dCQUNmQyxLQUFLLElBQUksQ0FBQ0EsR0FBRztnQkFDYkMsU0FBU047WUFDWCxHQUFHOztNQUVHLENBQUMsQ0FBQ08sSUFBSTtZQUNOQyxZQUFZLEVBQUU7UUFDaEI7SUFDRjtBQUNGIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type EntityNamesRecord } from "../../entity/entity-manager";
|
|
2
|
+
import type { TemplateOptions } from "../../types/types";
|
|
3
3
|
import { Template } from "../template";
|
|
4
4
|
export declare class Template__view_id_async_select extends Template {
|
|
5
5
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view_id_async_select.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_id_async_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"view_id_async_select.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_id_async_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,8BAA+B,SAAQ,QAAQ;;IAK1D,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAOzC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,CAAC,sBAAsB,CAAC;;;;;;CA2FxE"}
|