sonamu 0.10.12 → 0.10.13
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/dist/ai/agents/agent.d.ts +1 -1
- package/dist/ai/agents/agent.d.ts.map +1 -1
- package/dist/ai/agents/agent.js +5 -6
- package/dist/ai/agents/types.d.ts +1 -1
- package/dist/ai/agents/types.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/api.js +18 -18
- package/dist/ai/providers/rtzr/error.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/error.js +17 -15
- package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/model.js +3 -2
- package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/options.js +16 -16
- package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/provider.js +9 -9
- package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
- package/dist/ai/providers/rtzr/utils.js +1 -1
- package/dist/api/caster.d.ts.map +1 -1
- package/dist/api/caster.js +17 -17
- package/dist/api/code-converters.d.ts +4 -2
- package/dist/api/code-converters.d.ts.map +1 -1
- package/dist/api/code-converters.js +100 -19
- package/dist/api/config.d.ts +16 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +28 -21
- package/dist/api/context.d.ts +2 -2
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +1 -1
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +18 -11
- package/dist/api/http-validator.d.ts +36 -0
- package/dist/api/http-validator.d.ts.map +1 -0
- package/dist/api/http-validator.js +72 -0
- package/dist/api/index.js +6 -4
- package/dist/api/sonamu.d.ts +59 -20
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +250 -106
- package/dist/api/websocket-helpers.d.ts +7 -5
- package/dist/api/websocket-helpers.d.ts.map +1 -1
- package/dist/api/websocket-helpers.js +6 -6
- package/dist/auth/audit-log/builders.d.ts.map +1 -1
- package/dist/auth/audit-log/builders.js +1 -1
- package/dist/auth/audit-log/client-ip.d.ts +1 -1
- package/dist/auth/audit-log/client-ip.d.ts.map +1 -1
- package/dist/auth/audit-log/client-ip.js +4 -2
- package/dist/auth/audit-log/events.d.ts +5 -1
- package/dist/auth/audit-log/events.d.ts.map +1 -1
- package/dist/auth/audit-log/events.js +1 -1
- package/dist/auth/audit-log/plugin.d.ts +0 -8
- package/dist/auth/audit-log/plugin.d.ts.map +1 -1
- package/dist/auth/audit-log/plugin.js +48 -52
- package/dist/auth/audit-log-ingestor.d.ts.map +1 -1
- package/dist/auth/audit-log-ingestor.js +16 -12
- package/dist/auth/auth-generator.d.ts.map +1 -1
- package/dist/auth/auth-generator.js +1 -1
- package/dist/auth/better-auth-request.d.ts.map +1 -1
- package/dist/auth/better-auth-request.js +6 -5
- package/dist/auth/knex-adapter.js +1 -1
- package/dist/auth/plugins/entity-definitions/index.d.ts +13 -1
- package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
- package/dist/auth/plugins/entity-definitions/index.js +1 -1
- package/dist/auth/plugins/wrappers/admin.d.ts +1 -1
- package/dist/bin/build-config.d.ts +25 -0
- package/dist/bin/build-config.d.ts.map +1 -1
- package/dist/bin/build-config.js +105 -2
- package/dist/bin/cli.js +131 -27
- package/dist/bin/compiler-policy.d.ts +3 -0
- package/dist/bin/compiler-policy.d.ts.map +1 -0
- package/dist/bin/compiler-policy.js +24 -0
- package/dist/bin/fixture.d.ts.map +1 -1
- package/dist/bin/fixture.js +5 -3
- package/dist/bin/test-command.d.ts +22 -1
- package/dist/bin/test-command.d.ts.map +1 -1
- package/dist/bin/test-command.js +18 -10
- package/dist/bin/ts-loader-registration.d.ts +7 -1
- package/dist/bin/ts-loader-registration.d.ts.map +1 -1
- package/dist/bin/ts-loader-registration.js +13 -4
- package/dist/cache/decorator.d.ts.map +1 -1
- package/dist/cache/decorator.js +11 -4
- package/dist/compress/compress.d.ts.map +1 -1
- package/dist/compress/compress.js +1 -1
- package/dist/cone/cone-generator.d.ts +14 -1
- package/dist/cone/cone-generator.d.ts.map +1 -1
- package/dist/cone/cone-generator.js +13 -9
- package/dist/database/_batch_update.js +1 -1
- package/dist/database/base-model.d.ts +22 -10
- package/dist/database/base-model.d.ts.map +1 -1
- package/dist/database/base-model.js +26 -16
- package/dist/database/base-model.types.d.ts +15 -3
- package/dist/database/base-model.types.d.ts.map +1 -1
- package/dist/database/db.d.ts +12 -2
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +10 -7
- package/dist/database/knex.d.ts.map +1 -1
- package/dist/database/knex.js +17 -14
- package/dist/database/puri.d.ts +11 -9
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +93 -79
- package/dist/database/puri.types.d.ts +21 -21
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +1 -1
- package/dist/database/upsert-builder.d.ts +12 -10
- package/dist/database/upsert-builder.d.ts.map +1 -1
- package/dist/database/upsert-builder.js +20 -12
- package/dist/dict/sd.d.ts.map +1 -1
- package/dist/dict/sd.js +1 -1
- package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
- package/dist/dict/sonamu-dictionary.js +1 -1
- package/dist/dict/utils.d.ts.map +1 -1
- package/dist/dict/utils.js +7 -2
- package/dist/entity/entity-manager.d.ts +13 -4
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +19 -11
- package/dist/entity/entity-template-cone.d.ts +73 -5
- package/dist/entity/entity-template-cone.d.ts.map +1 -1
- package/dist/entity/entity-template-cone.js +4 -2
- package/dist/entity/entity.d.ts +6 -2
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +30 -28
- package/dist/env.d.ts +3 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +1 -1
- package/dist/exceptions/error-handler.d.ts.map +1 -1
- package/dist/exceptions/error-handler.js +7 -2
- package/dist/exceptions/so-exceptions.d.ts +24 -20
- package/dist/exceptions/so-exceptions.d.ts.map +1 -1
- package/dist/exceptions/so-exceptions.js +4 -2
- package/dist/filter/utils.d.ts +7 -2
- package/dist/filter/utils.d.ts.map +1 -1
- package/dist/filter/utils.js +8 -6
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -6
- package/dist/logger/configure.d.ts.map +1 -1
- package/dist/logger/configure.js +10 -10
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +50 -46
- package/dist/migration/index-where-predicate.d.ts.map +1 -1
- package/dist/migration/index-where-predicate.js +22 -8
- package/dist/migration/migration-set.d.ts.map +1 -1
- package/dist/migration/migration-set.js +1 -1
- package/dist/migration/migrator.d.ts +3 -2
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +27 -21
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
- package/dist/migration/postgresql-schema-reader.js +51 -36
- package/dist/migration/slack-confirm.d.ts.map +1 -1
- package/dist/migration/slack-confirm.js +1 -1
- package/dist/naite/naite-reporter.js +2 -2
- package/dist/naite/naite.d.ts +74 -15
- package/dist/naite/naite.d.ts.map +1 -1
- package/dist/naite/naite.js +5 -19
- package/dist/runtime-type.d.ts +6 -0
- package/dist/runtime-type.d.ts.map +1 -0
- package/dist/runtime-type.js +26 -0
- package/dist/ssr/hmr-opt-out.d.ts +26 -0
- package/dist/ssr/hmr-opt-out.d.ts.map +1 -0
- package/dist/ssr/hmr-opt-out.js +59 -0
- package/dist/ssr/renderer.d.ts.map +1 -1
- package/dist/ssr/renderer.js +4 -1
- package/dist/storage/base-file.js +14 -14
- package/dist/storage/buffered-file.d.ts +2 -2
- package/dist/storage/buffered-file.d.ts.map +1 -1
- package/dist/storage/buffered-file.js +12 -12
- package/dist/storage/s3-driver.d.ts.map +1 -1
- package/dist/storage/s3-driver.js +1 -1
- package/dist/storage/uploaded-file.d.ts +2 -2
- package/dist/storage/uploaded-file.d.ts.map +1 -1
- package/dist/storage/uploaded-file.js +8 -8
- package/dist/stream/sse.js +11 -11
- package/dist/stream/ws-core.d.ts +1 -1
- package/dist/stream/ws-core.d.ts.map +1 -1
- package/dist/stream/ws-delivery.d.ts +1 -1
- package/dist/stream/ws-delivery.d.ts.map +1 -1
- package/dist/stream/ws-delivery.js +6 -4
- package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
- package/dist/stream/ws-local-connection-store.js +4 -2
- package/dist/stream/ws-presence-store.js +1 -1
- package/dist/stream/ws-registry.d.ts +4 -4
- package/dist/stream/ws-registry.d.ts.map +1 -1
- package/dist/stream/ws-registry.js +4 -2
- package/dist/stream/ws-telemetry.d.ts +16 -12
- package/dist/stream/ws-telemetry.d.ts.map +1 -1
- package/dist/stream/ws-telemetry.js +22 -18
- package/dist/stream/ws.d.ts +18 -12
- package/dist/stream/ws.d.ts.map +1 -1
- package/dist/stream/ws.js +26 -22
- package/dist/syncer/api-parser.js +1 -1
- package/dist/syncer/checksum.d.ts.map +1 -1
- package/dist/syncer/checksum.js +7 -8
- package/dist/syncer/code-generator.d.ts.map +1 -1
- package/dist/syncer/code-generator.js +13 -14
- package/dist/syncer/entity-operations.d.ts.map +1 -1
- package/dist/syncer/entity-operations.js +5 -6
- package/dist/syncer/file-copy.d.ts +5 -0
- package/dist/syncer/file-copy.d.ts.map +1 -0
- package/dist/syncer/file-copy.js +36 -0
- package/dist/syncer/file-patterns.d.ts +1 -0
- package/dist/syncer/file-patterns.d.ts.map +1 -1
- package/dist/syncer/file-patterns.js +5 -2
- package/dist/syncer/file-tracking.d.ts.map +1 -1
- package/dist/syncer/file-tracking.js +5 -4
- package/dist/syncer/filesystem-dependencies.d.ts +15 -0
- package/dist/syncer/filesystem-dependencies.d.ts.map +1 -0
- package/dist/syncer/filesystem-dependencies.js +53 -0
- package/dist/syncer/module-loader.d.ts +1 -1
- package/dist/syncer/module-loader.d.ts.map +1 -1
- package/dist/syncer/module-loader.js +6 -4
- package/dist/syncer/syncer-actions.d.ts +4 -0
- package/dist/syncer/syncer-actions.d.ts.map +1 -1
- package/dist/syncer/syncer-actions.js +34 -17
- package/dist/syncer/syncer.d.ts +17 -6
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +71 -29
- package/dist/syncer/watcher.d.ts.map +1 -1
- package/dist/syncer/watcher.js +3 -3
- package/dist/tasks/decorator.d.ts +6 -6
- package/dist/tasks/decorator.d.ts.map +1 -1
- package/dist/tasks/decorator.js +4 -4
- package/dist/tasks/step-wrapper.d.ts +6 -4
- package/dist/tasks/step-wrapper.d.ts.map +1 -1
- package/dist/tasks/step-wrapper.js +5 -5
- package/dist/tasks/workflow-manager.d.ts.map +1 -1
- package/dist/tasks/workflow-manager.js +13 -7
- 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 +2 -2
- package/dist/template/helpers.d.ts +8 -6
- package/dist/template/helpers.d.ts.map +1 -1
- package/dist/template/helpers.js +1 -1
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +4 -4
- package/dist/template/implementations/generated_http.template.d.ts +7 -4
- package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_http.template.js +21 -21
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.js +6 -3
- package/dist/template/implementations/http_validators.template.d.ts +18 -0
- package/dist/template/implementations/http_validators.template.d.ts.map +1 -0
- package/dist/template/implementations/http_validators.template.js +127 -0
- package/dist/template/implementations/model.template.d.ts.map +1 -1
- package/dist/template/implementations/model.template.js +1 -1
- package/dist/template/implementations/queries.template.js +1 -1
- package/dist/template/implementations/sd.template.d.ts.map +1 -1
- package/dist/template/implementations/sd.template.js +79 -39
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/services.template.js +6 -4
- package/dist/template/implementations/view_form.template.d.ts +6 -1
- package/dist/template/implementations/view_form.template.d.ts.map +1 -1
- package/dist/template/implementations/view_form.template.js +23 -15
- package/dist/template/implementations/view_list.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list.template.js +11 -6
- package/dist/template/template-manager.d.ts.map +1 -1
- package/dist/template/template-manager.js +9 -7
- package/dist/template/template-types.d.ts +12 -5
- package/dist/template/template-types.d.ts.map +1 -1
- package/dist/template/template-types.js +1 -1
- package/dist/template/template.d.ts +2 -2
- package/dist/template/template.d.ts.map +1 -1
- package/dist/template/template.js +6 -4
- package/dist/template/zod-converter.d.ts +0 -19
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +100 -84
- package/dist/testing/_relation-graph.d.ts.map +1 -1
- package/dist/testing/_relation-graph.js +2 -1
- package/dist/testing/bootstrap.d.ts.map +1 -1
- package/dist/testing/bootstrap.js +9 -6
- package/dist/testing/data-explorer.d.ts +32 -7
- package/dist/testing/data-explorer.d.ts.map +1 -1
- package/dist/testing/data-explorer.js +77 -31
- package/dist/testing/dev-test-routes.d.ts +8 -1
- package/dist/testing/dev-test-routes.d.ts.map +1 -1
- package/dist/testing/dev-test-routes.js +125 -108
- package/dist/testing/dev-vitest-manager.d.ts +54 -8
- package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
- package/dist/testing/dev-vitest-manager.js +24 -9
- package/dist/testing/faker-mappings.d.ts +412 -1
- package/dist/testing/faker-mappings.d.ts.map +1 -1
- package/dist/testing/faker-mappings.js +1 -1
- package/dist/testing/filesystem.d.ts +2 -0
- package/dist/testing/filesystem.d.ts.map +1 -0
- package/dist/testing/filesystem.js +7 -0
- package/dist/testing/fixture-generator.d.ts +25 -8
- package/dist/testing/fixture-generator.d.ts.map +1 -1
- package/dist/testing/fixture-generator.js +132 -73
- package/dist/testing/fixture-loader.d.ts +3 -1
- package/dist/testing/fixture-loader.d.ts.map +1 -1
- package/dist/testing/fixture-loader.js +1 -20
- package/dist/testing/fixture-manager.d.ts +8 -7
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +91 -59
- package/dist/testing/global-setup.d.ts.map +1 -1
- package/dist/testing/global-setup.js +5 -2
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +6 -3
- package/dist/types/types.d.ts +101 -99
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +234 -225
- package/dist/ui/ai-api.d.ts.map +1 -1
- package/dist/ui/ai-api.js +1 -1
- package/dist/ui/ai-client.d.ts.map +1 -1
- package/dist/ui/ai-client.js +28 -18
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +135 -128
- package/dist/ui/async-route.d.ts +3 -0
- package/dist/ui/async-route.d.ts.map +1 -0
- package/dist/ui/async-route.js +12 -0
- package/dist/ui/cdd-service.d.ts +9 -7
- package/dist/ui/cdd-service.d.ts.map +1 -1
- package/dist/ui/cdd-service.js +7 -5
- package/dist/ui/migrations-api.d.ts.map +1 -1
- package/dist/ui/migrations-api.js +17 -15
- package/dist/ui-web/assets/index-DV1AAq6W.js +178 -0
- package/dist/ui-web/index.html +1 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +7 -5
- package/dist/utils/fs-utils.d.ts +3 -3
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +6 -6
- package/dist/utils/model.d.ts +3 -5
- package/dist/utils/model.d.ts.map +1 -1
- package/dist/utils/model.js +1 -1
- package/dist/utils/object-utils.d.ts +1 -1
- package/dist/utils/object-utils.d.ts.map +1 -1
- package/dist/utils/object-utils.js +17 -16
- package/dist/utils/process-utils.d.ts.map +1 -1
- package/dist/utils/process-utils.js +4 -2
- package/dist/utils/runtime-value.d.ts +13 -0
- package/dist/utils/runtime-value.d.ts.map +1 -0
- package/dist/utils/runtime-value.js +40 -0
- package/dist/utils/sql-parser.d.ts +8 -1
- package/dist/utils/sql-parser.d.ts.map +1 -1
- package/dist/utils/sql-parser.js +6 -3
- package/dist/utils/type-utils.d.ts.map +1 -1
- package/dist/utils/type-utils.js +10 -8
- package/dist/utils/utils.d.ts +2 -2
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +11 -8
- package/dist/utils/zod-error.d.ts.map +1 -1
- package/dist/utils/zod-error.js +7 -4
- package/dist/vector/chunking.d.ts.map +1 -1
- package/dist/vector/chunking.js +1 -1
- package/dist/vector/embedding.d.ts.map +1 -1
- package/dist/vector/embedding.js +1 -1
- package/dist/vector/types.d.ts +3 -2
- package/dist/vector/types.d.ts.map +1 -1
- package/package.json +5 -3
- package/src/ai/agents/agent.ts +5 -5
- package/src/ai/agents/types.ts +1 -1
- package/src/ai/providers/rtzr/__tests__/model.test.ts +2 -2
- package/src/ai/providers/rtzr/error.ts +5 -3
- package/src/ai/providers/rtzr/model.ts +3 -2
- package/src/ai/providers/rtzr/options.ts +10 -5
- package/src/ai/providers/rtzr/provider.ts +10 -10
- package/src/ai/providers/rtzr/utils.ts +3 -1
- package/src/api/__tests__/config.test.ts +11 -21
- package/src/api/__tests__/sonamu.http-validator.test.ts +512 -0
- package/src/api/__tests__/sonamu.websocket.test.ts +51 -41
- package/src/api/__tests__/zod-compiler-policy.test.ts +95 -0
- package/src/api/caster.ts +6 -8
- package/src/api/code-converters.ts +136 -36
- package/src/api/config.ts +62 -4
- package/src/api/context.ts +3 -3
- package/src/api/decorators.ts +28 -17
- package/src/api/http-validator.ts +149 -0
- package/src/api/sonamu.ts +459 -152
- package/src/api/websocket-helpers.ts +24 -17
- package/src/auth/audit-log/builders.ts +3 -2
- package/src/auth/audit-log/client-ip.ts +4 -2
- package/src/auth/audit-log/events.ts +15 -1
- package/src/auth/audit-log/plugin.ts +129 -200
- package/src/auth/audit-log-ingestor.ts +19 -15
- package/src/auth/auth-generator.ts +10 -5
- package/src/auth/better-auth-request.ts +4 -3
- package/src/auth/knex-adapter.ts +8 -2
- package/src/auth/plugins/entity-definitions/index.ts +6 -5
- package/src/bin/__tests__/http-validator-benchmark.test.ts +94 -0
- package/src/bin/__tests__/test-command.test.ts +9 -15
- package/src/bin/__tests__/ts-loader-register.test.ts +15 -17
- package/src/bin/__tests__/zod-compiler-build.test.ts +307 -0
- package/src/bin/build-config.ts +167 -0
- package/src/bin/cli.ts +153 -36
- package/src/bin/compiler-policy.ts +35 -0
- package/src/bin/fixture.ts +14 -3
- package/src/bin/test-command.ts +74 -29
- package/src/bin/ts-loader-registration.ts +22 -4
- package/src/cache/decorator.ts +10 -3
- package/src/compress/compress.ts +17 -4
- package/src/cone/cone-generator.ts +34 -6
- package/src/database/__tests__/db.test.ts +1 -0
- package/src/database/__tests__/puri.test.ts +16 -15
- package/src/database/__tests__/transaction-scope.test.ts +5 -0
- package/src/database/_batch_update.ts +1 -0
- package/src/database/base-model.ts +81 -50
- package/src/database/base-model.types.ts +6 -6
- package/src/database/db.ts +29 -19
- package/src/database/knex.ts +30 -17
- package/src/database/puri-subset.test-d.ts +17 -0
- package/src/database/puri.ts +181 -143
- package/src/database/puri.types.test-d.ts +31 -1
- package/src/database/puri.types.ts +23 -21
- package/src/database/upsert-builder.ts +75 -53
- package/src/dict/sd.ts +15 -5
- package/src/dict/sonamu-dictionary.ts +6 -6
- package/src/dict/utils.ts +9 -1
- package/src/entity/entity-manager.ts +26 -9
- package/src/entity/entity-template-cone.ts +5 -10
- package/src/entity/entity.ts +50 -34
- package/src/env.ts +7 -3
- package/src/exceptions/error-handler.ts +17 -2
- package/src/exceptions/so-exceptions.ts +26 -20
- package/src/filter/utils.ts +21 -11
- package/src/index.ts +3 -0
- package/src/logger/configure.ts +26 -18
- package/src/migration/__tests__/migrator.test.ts +50 -57
- package/src/migration/code-generation.ts +132 -104
- package/src/migration/index-where-predicate.ts +51 -24
- package/src/migration/migration-set.ts +11 -5
- package/src/migration/migrator.ts +68 -41
- package/src/migration/postgresql-schema-reader.ts +52 -47
- package/src/migration/slack-confirm.ts +17 -15
- package/src/naite/naite-reporter.ts +1 -1
- package/src/naite/naite.ts +97 -24
- package/src/runtime-type.ts +34 -0
- package/src/ssr/hmr-opt-out.ts +78 -0
- package/src/ssr/renderer.ts +6 -0
- package/src/storage/base-file.ts +13 -13
- package/src/storage/buffered-file.ts +11 -11
- package/src/storage/s3-driver.ts +4 -1
- package/src/storage/uploaded-file.ts +8 -8
- package/src/stream/__tests__/ws-contracts.test.ts +4 -2
- package/src/stream/__tests__/ws-telemetry.test.ts +1 -1
- package/src/stream/__tests__/ws.test.ts +30 -6
- package/src/stream/sse.ts +12 -11
- package/src/stream/ws-core.ts +1 -1
- package/src/stream/ws-delivery.ts +16 -7
- package/src/stream/ws-local-connection-store.ts +2 -3
- package/src/stream/ws-presence-store.ts +6 -1
- package/src/stream/ws-registry.ts +16 -7
- package/src/stream/ws-telemetry.ts +66 -43
- package/src/stream/ws.ts +73 -39
- package/src/syncer/__tests__/api-parser.websocket-type-ref.test.ts +3 -2
- package/src/syncer/__tests__/http-validator-registry.test.ts +137 -0
- package/src/syncer/api-parser.ts +67 -27
- package/src/syncer/checksum.ts +17 -11
- package/src/syncer/code-generator.ts +25 -17
- package/src/syncer/entity-operations.ts +3 -5
- package/src/syncer/file-copy.ts +46 -0
- package/src/syncer/file-patterns.ts +11 -8
- package/src/syncer/file-tracking.ts +3 -4
- package/src/syncer/filesystem-dependencies.ts +73 -0
- package/src/syncer/module-loader.ts +8 -4
- package/src/syncer/syncer-actions.ts +56 -18
- package/src/syncer/syncer.ts +116 -43
- package/src/syncer/watcher.ts +8 -4
- package/src/tasks/decorator.ts +20 -12
- package/src/tasks/step-wrapper.ts +19 -9
- package/src/tasks/workflow-manager.ts +15 -9
- package/src/template/__tests__/http_validators.template.test.ts +160 -0
- package/src/template/__tests__/services.template.mutation.test.ts +24 -23
- package/src/template/__tests__/services.template.websocket.test.ts +21 -25
- package/src/template/entity-converter.ts +5 -2
- package/src/template/helpers.ts +8 -9
- package/src/template/implementations/generated.template.ts +5 -4
- package/src/template/implementations/generated_http.template.ts +61 -15
- package/src/template/implementations/generated_sso.template.ts +15 -4
- package/src/template/implementations/http_validators.template.ts +175 -0
- package/src/template/implementations/model.template.ts +3 -1
- package/src/template/implementations/sd.template.ts +81 -41
- package/src/template/implementations/services.template.ts +2 -2
- package/src/template/implementations/view_form.template.ts +56 -39
- package/src/template/implementations/view_list.template.ts +31 -23
- package/src/template/template-manager.ts +15 -13
- package/src/template/template-types.ts +13 -5
- package/src/template/template.ts +4 -3
- package/src/template/zod-converter.ts +206 -91
- package/src/testing/__tests__/dev-test-routes.test.ts +85 -25
- package/src/testing/__tests__/dev-vitest-manager.test.ts +15 -15
- package/src/testing/_relation-graph.ts +4 -1
- package/src/testing/bootstrap.ts +12 -5
- package/src/testing/data-explorer.ts +102 -53
- package/src/testing/dev-test-routes.ts +87 -50
- package/src/testing/dev-vitest-manager.ts +88 -32
- package/src/testing/faker-mappings.ts +2 -2
- package/src/testing/filesystem.ts +1 -0
- package/src/testing/fixture-generator.ts +191 -131
- package/src/testing/fixture-loader.ts +5 -1
- package/src/testing/fixture-manager.ts +129 -90
- package/src/testing/global-setup.ts +7 -3
- package/src/testing/index.ts +5 -0
- package/src/types/__tests__/entity-json-schema-search-text.test.ts +9 -3
- package/src/types/types.ts +184 -158
- package/src/ui/ai-api.ts +9 -7
- package/src/ui/ai-client.ts +61 -56
- package/src/ui/api.ts +727 -616
- package/src/ui/async-route.ts +4 -0
- package/src/ui/cdd-service.ts +35 -12
- package/src/ui/migrations-api.ts +63 -51
- package/src/utils/formatter.ts +7 -3
- package/src/utils/fs-utils.ts +5 -5
- package/src/utils/model.ts +4 -5
- package/src/utils/object-utils.ts +32 -22
- package/src/utils/process-utils.ts +4 -1
- package/src/utils/runtime-value.ts +43 -0
- package/src/utils/sql-parser.ts +13 -6
- package/src/utils/type-utils.ts +9 -7
- package/src/utils/utils.ts +19 -21
- package/src/utils/zod-error.ts +4 -2
- package/src/vector/chunking.ts +6 -1
- package/src/vector/embedding.ts +2 -1
- package/src/vector/types.ts +4 -2
- package/tsdown.api.config.ts +5 -2
- package/dist/ui-web/assets/index-C0m1pk6K.js +0 -177
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { type ExtendedApi } from "../../api/decorators";
|
|
3
3
|
import { Template } from "../template";
|
|
4
|
+
type RequestDefaultValue = null | undefined | bigint | boolean | number | string | RequestDefaultValue[] | RequestDefaultObject;
|
|
5
|
+
interface RequestDefaultObject {
|
|
6
|
+
[key: string]: RequestDefaultValue;
|
|
7
|
+
}
|
|
4
8
|
export declare class Template__generated_http extends Template {
|
|
5
9
|
constructor();
|
|
6
10
|
getTargetAndPath(): {
|
|
@@ -14,11 +18,10 @@ export declare class Template__generated_http extends Template {
|
|
|
14
18
|
target: string;
|
|
15
19
|
path: string;
|
|
16
20
|
}>;
|
|
17
|
-
zodTypeToReqDefault(zodType: z.ZodType, name: string):
|
|
21
|
+
zodTypeToReqDefault(zodType: z.ZodType, name: string): RequestDefaultValue;
|
|
18
22
|
resolveApiParams(api: ExtendedApi, references: {
|
|
19
23
|
[typeName: string]: z.ZodType;
|
|
20
|
-
}):
|
|
21
|
-
[key: string]: unknown;
|
|
22
|
-
};
|
|
24
|
+
}): RequestDefaultObject;
|
|
23
25
|
}
|
|
26
|
+
export {};
|
|
24
27
|
//# sourceMappingURL=generated_http.template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated_http.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/generated_http.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,wBAAyB,SAAQ,QAAQ;;IAKpD,gBAAgB;;;;IASV,MAAM;;;;;;;IA+CZ,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"generated_http.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/generated_http.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,KAAK,mBAAmB,GACpB,IAAI,GACJ,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,mBAAmB,EAAE,GACrB,oBAAoB,CAAC;AAEzB,UAAU,oBAAoB;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACpC;AAED,qBAAa,wBAAyB,SAAQ,QAAQ;;IAKpD,gBAAgB;;;;IASV,MAAM;;;;;;;IA+CZ,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB;IAkG1E,gBAAgB,CACd,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,CAAA;KAAE,GAC5C,oBAAoB;CAaxB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Sonamu, init_sonamu } from "../../api/sonamu.js";
|
|
2
1
|
import { getZodObjectFromApi, init_code_converters } from "../../api/code-converters.js";
|
|
2
|
+
import { Sonamu, init_sonamu } from "../../api/sonamu.js";
|
|
3
3
|
import { Template, init_template } from "../template.js";
|
|
4
|
-
import { z
|
|
4
|
+
import { z } from "zod";
|
|
5
5
|
import qs from "qs";
|
|
6
6
|
//#region src/template/implementations/generated_http.template.ts
|
|
7
7
|
init_code_converters();
|
|
@@ -46,31 +46,31 @@ var Template__generated_http = class extends Template {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
zodTypeToReqDefault(zodType, name) {
|
|
49
|
-
if (zodType instanceof z
|
|
50
|
-
else if (zodType instanceof z
|
|
51
|
-
else if (zodType instanceof z
|
|
49
|
+
if (zodType instanceof z.ZodObject) return Object.fromEntries(Object.keys(zodType["shape"]).map((key) => [key, this.zodTypeToReqDefault(zodType["shape"][key], key)]));
|
|
50
|
+
else if (zodType instanceof z.ZodArray) return [this.zodTypeToReqDefault(zodType.element, name)];
|
|
51
|
+
else if (zodType instanceof z.core.$ZodString) if (name.endsWith("_at") || name.endsWith("_date") || name === "range") return "2000-01-01";
|
|
52
52
|
else return name.toUpperCase();
|
|
53
|
-
else if (zodType instanceof z
|
|
53
|
+
else if (zodType instanceof z.ZodNumber) {
|
|
54
54
|
if (name === "num") return 24;
|
|
55
55
|
const minValue = zodType.minValue ?? 0;
|
|
56
56
|
return minValue > Number.MIN_SAFE_INTEGER ? minValue : 0;
|
|
57
|
-
} else if (zodType instanceof z
|
|
58
|
-
else if (zodType instanceof z
|
|
59
|
-
else if (zodType instanceof z
|
|
60
|
-
else if (zodType instanceof z
|
|
61
|
-
else if (zodType instanceof z
|
|
62
|
-
else if (zodType instanceof z
|
|
63
|
-
else if (zodType instanceof z
|
|
64
|
-
else if (zodType instanceof z
|
|
65
|
-
else if (zodType instanceof z
|
|
66
|
-
else if (zodType instanceof z
|
|
57
|
+
} else if (zodType instanceof z.ZodBoolean) return false;
|
|
58
|
+
else if (zodType instanceof z.ZodEnum) return zodType.options[0];
|
|
59
|
+
else if (zodType instanceof z.ZodOptional) return this.zodTypeToReqDefault(zodType.def.innerType, name);
|
|
60
|
+
else if (zodType instanceof z.ZodNullable) return null;
|
|
61
|
+
else if (zodType instanceof z.ZodUnion) return this.zodTypeToReqDefault(zodType.def.options[0], name);
|
|
62
|
+
else if (zodType instanceof z.ZodUnknown) return "unknown";
|
|
63
|
+
else if (zodType instanceof z.ZodTuple) return zodType.def.items.map((item) => this.zodTypeToReqDefault(item, name));
|
|
64
|
+
else if (zodType instanceof z.ZodDate) return "2000-01-01";
|
|
65
|
+
else if (zodType instanceof z.ZodLiteral) return zodType.value;
|
|
66
|
+
else if (zodType instanceof z.ZodRecord || zodType instanceof z.ZodMap) {
|
|
67
67
|
const kvDef = zodType.def;
|
|
68
|
-
const key = this.zodTypeToReqDefault(kvDef.keyType, name);
|
|
68
|
+
const key = String(this.zodTypeToReqDefault(kvDef.keyType, name));
|
|
69
69
|
const value = this.zodTypeToReqDefault(kvDef.valueType, name);
|
|
70
70
|
return { [key]: value };
|
|
71
|
-
} else if (zodType instanceof z
|
|
72
|
-
else if (zodType instanceof z
|
|
73
|
-
else if (zodType instanceof z
|
|
71
|
+
} else if (zodType instanceof z.ZodSet) return [this.zodTypeToReqDefault(zodType.def.valueType, name)];
|
|
72
|
+
else if (zodType instanceof z.ZodIntersection) return this.zodTypeToReqDefault(zodType.def.right, name);
|
|
73
|
+
else if (zodType instanceof z.ZodDefault) return this.zodTypeToReqDefault(zodType.def.innerType, name);
|
|
74
74
|
else return `unknown-${zodType.type}`;
|
|
75
75
|
}
|
|
76
76
|
resolveApiParams(api, references) {
|
|
@@ -86,4 +86,4 @@ var Template__generated_http = class extends Template {
|
|
|
86
86
|
//#endregion
|
|
87
87
|
export { Template__generated_http };
|
|
88
88
|
|
|
89
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVkX2h0dHAudGVtcGxhdGUuanMiLCJuYW1lcyI6WyJ6Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlbXBsYXRlL2ltcGxlbWVudGF0aW9ucy9nZW5lcmF0ZWRfaHR0cC50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXMgZnJvbSBcInFzXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBnZXRab2RPYmplY3RGcm9tQXBpIH0gZnJvbSBcIi4uLy4uL2FwaS9jb2RlLWNvbnZlcnRlcnNcIjtcbmltcG9ydCB7IHR5cGUgRXh0ZW5kZWRBcGkgfSBmcm9tIFwiLi4vLi4vYXBpL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX2dlbmVyYXRlZF9odHRwIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcImdlbmVyYXRlZF9odHRwXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aCgpIHtcbiAgICBjb25zdCB7IGRpciB9ID0gU29uYW11LmNvbmZpZy5hcGk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBgJHtkaXJ9L3NyYy9hcHBsaWNhdGlvbmAsXG4gICAgICBwYXRoOiBgc29uYW11LmdlbmVyYXRlZC5odHRwYCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHN5bmNlcjogeyB0eXBlcywgYXBpcyB9LFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGFwaToge1xuICAgICAgICAgIHJvdXRlOiB7IHByZWZpeCB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9ID0gU29uYW11O1xuXG4gICAgY29uc3QgbGluZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGFwaXMubWFwKGFzeW5jIChhcGkpID0+IHtcbiAgICAgICAgY29uc3QgcmVxT2JqZWN0ID0gdGhpcy5yZXNvbHZlQXBpUGFyYW1zKGFwaSwgdHlwZXMpO1xuXG4gICAgICAgIGNvbnN0IGRhdGFMaW5lcyA9IGF3YWl0IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgaWYgKChhcGkub3B0aW9ucy5odHRwTWV0aG9kID8/IFwiR0VUXCIpID09PSBcIkdFVFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBxdWVyeXN0cmluZzogW3FzLnN0cmluZ2lmeShyZXFPYmplY3QsIHsgZW5jb2RlOiBmYWxzZSB9KS5zcGxpdChcIiZcIikuam9pbihcIlxcblxcdCZcIildLFxuICAgICAgICAgICAgICBib2R5OiBbXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHF1ZXJ5c3RyaW5nOiBbXSxcbiAgICAgICAgICAgICAgYm9keTogW1wiXCIsIEpTT04uc3RyaW5naWZ5KHJlcU9iamVjdCwgbnVsbCwgMildLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBbXG4gICAgICAgICAgICBgJHthcGkub3B0aW9ucy5odHRwTWV0aG9kID8/IFwiR0VUXCJ9IHt7YmFzZVVybH19JHtwcmVmaXh9JHthcGkucGF0aH1gLFxuICAgICAgICAgICAgLi4uZGF0YUxpbmVzLnF1ZXJ5c3RyaW5nLFxuICAgICAgICAgIF0uam9pbihcIlxcblxcdD9cIiksXG4gICAgICAgICAgYENvbnRlbnQtVHlwZTogJHthcGkub3B0aW9ucy5jb250ZW50VHlwZSA/PyBcImFwcGxpY2F0aW9uL2pzb25cIn1gLFxuICAgICAgICAgIC4uLmRhdGFMaW5lcy5ib2R5LFxuICAgICAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZ2V0VGFyZ2V0QW5kUGF0aCgpLFxuICAgICAgYm9keTogbGluZXMuam9pbihcIlxcblxcbiMjI1xcblxcblwiKSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgICAgY3VzdG9tSGVhZGVyczogW1wiIyBAZ2VuZXJhdGVkXCIsIFwiIyDsp4HsoJEg7IiY7KCV7ZWY7KeAIOuniOyEuOyalC5cIl0sXG4gICAgfTtcbiAgfVxuXG4gIHpvZFR5cGVUb1JlcURlZmF1bHQoem9kVHlwZTogei5ab2RUeXBlLCBuYW1lOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgICBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0KSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBPYmplY3Qua2V5cyh6b2RUeXBlLnNoYXBlKS5tYXAoKGtleSkgPT4gW1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoem9kVHlwZS5zaGFwZVtrZXldLCBrZXkpLFxuICAgICAgICBdKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RBcnJheSkge1xuICAgICAgcmV0dXJuIFt0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoKHpvZFR5cGUgYXMgei5ab2RBcnJheTx6LlpvZFR5cGU+KS5lbGVtZW50LCBuYW1lKV07XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5jb3JlLiRab2RTdHJpbmcpIHtcbiAgICAgIC8vIE5PVEU6IHouWm9kU3RyaW5n7Jy866GcIOu5hOq1kO2VmOuptCB6LnVybCgpLCB6LmVtYWlsKCkg65Ox7J2YIO2DgOyeheyXkOyEnCDrrLjsoJzqsIAg7IOd6riw66+A66GcIHouY29yZS4kWm9kU3RyaW5n7Jy866GcIOu5hOq1kO2VqFxuICAgICAgaWYgKG5hbWUuZW5kc1dpdGgoXCJfYXRcIikgfHwgbmFtZS5lbmRzV2l0aChcIl9kYXRlXCIpIHx8IG5hbWUgPT09IFwicmFuZ2VcIikge1xuICAgICAgICByZXR1cm4gXCIyMDAwLTAxLTAxXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTnVtYmVyKSB7XG4gICAgICBpZiAobmFtZSA9PT0gXCJudW1cIikge1xuICAgICAgICByZXR1cm4gMjQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1pblZhbHVlID0gem9kVHlwZS5taW5WYWx1ZSA/PyAwO1xuICAgICAgcmV0dXJuIG1pblZhbHVlID4gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIgPyBtaW5WYWx1ZSA6IDA7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RCb29sZWFuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RFbnVtKSB7XG4gICAgICByZXR1cm4gem9kVHlwZS5vcHRpb25zWzBdO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kT3B0aW9uYWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoKHpvZFR5cGUgYXMgei5ab2RPcHRpb25hbDx6LlpvZFR5cGU+KS5kZWYuaW5uZXJUeXBlLCBuYW1lKTtcbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bGxhYmxlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZFVuaW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KCh6b2RUeXBlIGFzIHouWm9kVW5pb248ei5ab2RUeXBlW10+KS5kZWYub3B0aW9uc1swXSwgbmFtZSk7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RVbmtub3duKSB7XG4gICAgICByZXR1cm4gXCJ1bmtub3duXCI7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RUdXBsZSkge1xuICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gWm9kVHVwbGUg7YOA7J6FIOyCrOyaqVxuICAgICAgcmV0dXJuIHpvZFR5cGUuZGVmLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoaXRlbSwgbmFtZSkpO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRGF0ZSkge1xuICAgICAgcmV0dXJuIFwiMjAwMC0wMS0wMVwiO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTGl0ZXJhbCkge1xuICAgICAgcmV0dXJuIHpvZFR5cGUudmFsdWU7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RSZWNvcmQgfHwgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTWFwKSB7XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBab2RSZWNvcmQg7YOA7J6FIOyCrOyaqVxuICAgICAgY29uc3Qga3ZEZWYgPSAoem9kVHlwZSBhcyB6LlpvZFJlY29yZDxhbnksIHouWm9kVHlwZT4gfCB6LlpvZE1hcDx6LlpvZFR5cGUsIHouWm9kVHlwZT4pLmRlZjtcbiAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFpvZEludGVyc2VjdGlvbiDtg4DsnoUg7IKs7JqpXG4gICAgICBjb25zdCBrZXkgPSB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoa3ZEZWYua2V5VHlwZSwgbmFtZSkgYXMgYW55O1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoa3ZEZWYudmFsdWVUeXBlLCBuYW1lKTtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kU2V0KSB7XG4gICAgICByZXR1cm4gW3RoaXMuem9kVHlwZVRvUmVxRGVmYXVsdCgoem9kVHlwZSBhcyB6LlpvZFNldDx6LlpvZFR5cGU+KS5kZWYudmFsdWVUeXBlLCBuYW1lKV07XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RJbnRlcnNlY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoXG4gICAgICAgICh6b2RUeXBlIGFzIHouWm9kSW50ZXJzZWN0aW9uPHouWm9kVHlwZSwgei5ab2RUeXBlPikuZGVmLnJpZ2h0LFxuICAgICAgICBuYW1lLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZERlZmF1bHQpIHtcbiAgICAgIHJldHVybiB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoKHpvZFR5cGUgYXMgei5ab2REZWZhdWx0PHouWm9kVHlwZT4pLmRlZi5pbm5lclR5cGUsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyh6b2RUeXBlKTtcbiAgICAgIHJldHVybiBgdW5rbm93bi0ke3pvZFR5cGUudHlwZX1gO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVBcGlQYXJhbXMoXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICByZWZlcmVuY2VzOiB7IFt0eXBlTmFtZTogc3RyaW5nXTogei5ab2RUeXBlIH0sXG4gICk6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9IHtcbiAgICBjb25zdCByZXFUeXBlID0gZ2V0Wm9kT2JqZWN0RnJvbUFwaShhcGksIHJlZmVyZW5jZXMpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWYgPSB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQocmVxVHlwZSwgXCJ1bmtub3duTmFtZVwiKSBhcyB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGRlZjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgem9kIHR5cGUgZGV0ZWN0ZWQgb24gJHthcGkubW9kZWxOYW1lfToke2FwaS5tZXRob2ROYW1lfWAsIHtcbiAgICAgICAgY2F1c2U6IGVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztxQkFHK0Q7WUFFdEI7Y0FDSDtBQUV0QyxJQUFhLDJCQUFiLGNBQThDLFNBQVM7Q0FDckQsY0FBYztFQUNaLE1BQU0sZ0JBQWdCO0NBQ3hCO0NBRUEsbUJBQW1CO0VBQ2pCLE1BQU0sRUFBRSxRQUFRLE9BQU8sT0FBTztFQUU5QixPQUFPO0dBQ0wsUUFBUSxHQUFHLElBQUk7R0FDZixNQUFNO0VBQ1I7Q0FDRjtDQUVBLE1BQU0sU0FBUztFQUNiLE1BQU0sRUFDSixRQUFRLEVBQUUsT0FBTyxRQUNqQixRQUFRLEVBQ04sS0FBSyxFQUNILE9BQU8sRUFBRSxpQkFHWDtFQUVKLE1BQU0sUUFBUSxNQUFNLFFBQVEsSUFDMUIsS0FBSyxJQUFJLE9BQU8sUUFBUTtHQUN0QixNQUFNLFlBQVksS0FBSyxpQkFBaUIsS0FBSyxLQUFLO0dBRWxELE1BQU0sWUFBWSxPQUFPLFlBQVk7SUFDbkMsS0FBSyxJQUFJLFFBQVEsY0FBYyxXQUFXLE9BQ3hDLE9BQU87S0FDTCxhQUFhLENBQUMsR0FBRyxVQUFVLFdBQVcsRUFBRSxRQUFRLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLE1BQU8sQ0FBQztLQUNq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
|
|
89
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVkX2h0dHAudGVtcGxhdGUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlbXBsYXRlL2ltcGxlbWVudGF0aW9ucy9nZW5lcmF0ZWRfaHR0cC50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXMgZnJvbSBcInFzXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5pbXBvcnQgeyBnZXRab2RPYmplY3RGcm9tQXBpIH0gZnJvbSBcIi4uLy4uL2FwaS9jb2RlLWNvbnZlcnRlcnNcIjtcbmltcG9ydCB7IHR5cGUgRXh0ZW5kZWRBcGkgfSBmcm9tIFwiLi4vLi4vYXBpL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuXG50eXBlIFJlcXVlc3REZWZhdWx0VmFsdWUgPVxuICB8IG51bGxcbiAgfCB1bmRlZmluZWRcbiAgfCBiaWdpbnRcbiAgfCBib29sZWFuXG4gIHwgbnVtYmVyXG4gIHwgc3RyaW5nXG4gIHwgUmVxdWVzdERlZmF1bHRWYWx1ZVtdXG4gIHwgUmVxdWVzdERlZmF1bHRPYmplY3Q7XG5cbmludGVyZmFjZSBSZXF1ZXN0RGVmYXVsdE9iamVjdCB7XG4gIFtrZXk6IHN0cmluZ106IFJlcXVlc3REZWZhdWx0VmFsdWU7XG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fZ2VuZXJhdGVkX2h0dHAgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiZ2VuZXJhdGVkX2h0dHBcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKCkge1xuICAgIGNvbnN0IHsgZGlyIH0gPSBTb25hbXUuY29uZmlnLmFwaTtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2FwcGxpY2F0aW9uYCxcbiAgICAgIHBhdGg6IGBzb25hbXUuZ2VuZXJhdGVkLmh0dHBgLFxuICAgIH07XG4gIH1cblxuICBhc3luYyByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgc3luY2VyOiB7IHR5cGVzLCBhcGlzIH0sXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYXBpOiB7XG4gICAgICAgICAgcm91dGU6IHsgcHJlZml4IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0gPSBTb25hbXU7XG5cbiAgICBjb25zdCBsaW5lcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgYXBpcy5tYXAoYXN5bmMgKGFwaSkgPT4ge1xuICAgICAgICBjb25zdCByZXFPYmplY3QgPSB0aGlzLnJlc29sdmVBcGlQYXJhbXMoYXBpLCB0eXBlcyk7XG5cbiAgICAgICAgY29uc3QgZGF0YUxpbmVzID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICBpZiAoKGFwaS5vcHRpb25zLmh0dHBNZXRob2QgPz8gXCJHRVRcIikgPT09IFwiR0VUXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHF1ZXJ5c3RyaW5nOiBbcXMuc3RyaW5naWZ5KHJlcU9iamVjdCwgeyBlbmNvZGU6IGZhbHNlIH0pLnNwbGl0KFwiJlwiKS5qb2luKFwiXFxuXFx0JlwiKV0sXG4gICAgICAgICAgICAgIGJvZHk6IFtdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcXVlcnlzdHJpbmc6IFtdLFxuICAgICAgICAgICAgICBib2R5OiBbXCJcIiwgSlNPTi5zdHJpbmdpZnkocmVxT2JqZWN0LCBudWxsLCAyKV0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSkoKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIFtcbiAgICAgICAgICAgIGAke2FwaS5vcHRpb25zLmh0dHBNZXRob2QgPz8gXCJHRVRcIn0ge3tiYXNlVXJsfX0ke3ByZWZpeH0ke2FwaS5wYXRofWAsXG4gICAgICAgICAgICAuLi5kYXRhTGluZXMucXVlcnlzdHJpbmcsXG4gICAgICAgICAgXS5qb2luKFwiXFxuXFx0P1wiKSxcbiAgICAgICAgICBgQ29udGVudC1UeXBlOiAke2FwaS5vcHRpb25zLmNvbnRlbnRUeXBlID8/IFwiYXBwbGljYXRpb24vanNvblwifWAsXG4gICAgICAgICAgLi4uZGF0YUxpbmVzLmJvZHksXG4gICAgICAgIF0uam9pbihcIlxcblwiKTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKCksXG4gICAgICBib2R5OiBsaW5lcy5qb2luKFwiXFxuXFxuIyMjXFxuXFxuXCIpLFxuICAgICAgaW1wb3J0S2V5czogW10sXG4gICAgICBjdXN0b21IZWFkZXJzOiBbXCIjIEBnZW5lcmF0ZWRcIiwgXCIjIOyngeygkSDsiJjsoJXtlZjsp4Ag66eI7IS47JqULlwiXSxcbiAgICB9O1xuICB9XG5cbiAgem9kVHlwZVRvUmVxRGVmYXVsdCh6b2RUeXBlOiB6LlpvZFR5cGUsIG5hbWU6IHN0cmluZyk6IFJlcXVlc3REZWZhdWx0VmFsdWUge1xuICAgIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RPYmplY3QpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5rZXlzKHpvZFR5cGVbXCJzaGFwZVwiXSkubWFwKChrZXkpID0+IFtcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KHpvZFR5cGVbXCJzaGFwZVwiXVtrZXldLCBrZXkpLFxuICAgICAgICBdKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RBcnJheSkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KFxuICAgICAgICAgIC8qIFNBRkVUWTogWm9kQXJyYXkg67aE6riw7J2066+A66GcIGVsZW1lbnTqsIAg67Cw7Je0IOybkOyGjCDsiqTtgqTrp4jri6QuICovIChcbiAgICAgICAgICAgIHpvZFR5cGUgYXMgei5ab2RBcnJheTx6LlpvZFR5cGU+XG4gICAgICAgICAgKS5lbGVtZW50LFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICksXG4gICAgICBdO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouY29yZS4kWm9kU3RyaW5nKSB7XG4gICAgICAvLyBOT1RFOiB6LlpvZFN0cmluZ+ycvOuhnCDruYTqtZDtlZjrqbQgei51cmwoKSwgei5lbWFpbCgpIOuTseydmCDtg4DsnoXsl5DshJwg66y47KCc6rCAIOyDneq4sOuvgOuhnCB6LmNvcmUuJFpvZFN0cmluZ+ycvOuhnCDruYTqtZDtlahcbiAgICAgIGlmIChuYW1lLmVuZHNXaXRoKFwiX2F0XCIpIHx8IG5hbWUuZW5kc1dpdGgoXCJfZGF0ZVwiKSB8fCBuYW1lID09PSBcInJhbmdlXCIpIHtcbiAgICAgICAgcmV0dXJuIFwiMjAwMC0wMS0wMVwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bWJlcikge1xuICAgICAgaWYgKG5hbWUgPT09IFwibnVtXCIpIHtcbiAgICAgICAgcmV0dXJuIDI0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW5WYWx1ZSA9IHpvZFR5cGUubWluVmFsdWUgPz8gMDtcbiAgICAgIHJldHVybiBtaW5WYWx1ZSA+IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSID8gbWluVmFsdWUgOiAwO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kQm9vbGVhbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRW51bSkge1xuICAgICAgcmV0dXJuIHpvZFR5cGUub3B0aW9uc1swXTtcbiAgICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsKSB7XG4gICAgICByZXR1cm4gdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KFxuICAgICAgICAvKiBTQUZFVFk6IFpvZE9wdGlvbmFsIOu2hOq4sOydtOuvgOuhnCBpbm5lclR5cGXsnbQg7ISg7YOdIOyGjeyEseydmCDsiqTtgqTrp4jri6QuICovIChcbiAgICAgICAgICB6b2RUeXBlIGFzIHouWm9kT3B0aW9uYWw8ei5ab2RUeXBlPlxuICAgICAgICApLmRlZi5pbm5lclR5cGUsXG4gICAgICAgIG5hbWUsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTnVsbGFibGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kVW5pb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoXG4gICAgICAgIC8qIFNBRkVUWTogWm9kVW5pb24g67aE6riw7J2066+A66GcIG9wdGlvbnPsnZgg7LKrIO2VreuqqeydtCDsnKDtmqjtlZwg64yA7JWIIOyKpO2CpOuniOuLpC4gKi8gKFxuICAgICAgICAgIHpvZFR5cGUgYXMgei5ab2RVbmlvbjx6LlpvZFR5cGVbXT5cbiAgICAgICAgKS5kZWYub3B0aW9uc1swXSxcbiAgICAgICAgbmFtZSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RVbmtub3duKSB7XG4gICAgICByZXR1cm4gXCJ1bmtub3duXCI7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RUdXBsZSkge1xuICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gWm9kVHVwbGUg7YOA7J6FIOyCrOyaqVxuICAgICAgcmV0dXJuIHpvZFR5cGUuZGVmLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoaXRlbSwgbmFtZSkpO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRGF0ZSkge1xuICAgICAgcmV0dXJuIFwiMjAwMC0wMS0wMVwiO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTGl0ZXJhbCkge1xuICAgICAgcmV0dXJuIHpvZFR5cGUudmFsdWU7XG4gICAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RSZWNvcmQgfHwgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kTWFwKSB7XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBab2RSZWNvcmQg7YOA7J6FIOyCrOyaqVxuICAgICAgY29uc3Qga3ZEZWYgPSAvKiBTQUZFVFk6IFpvZFJlY29yZC9ab2RNYXAg67aE6riw7J2066+A66GcIGRlZuqwgCDtgqQt6rCSIOyKpO2CpOuniCDsoJXsnZjri6QuICovIChcbiAgICAgICAgem9kVHlwZSBhcyB6LlpvZFJlY29yZDxhbnksIHouWm9kVHlwZT4gfCB6LlpvZE1hcDx6LlpvZFR5cGUsIHouWm9kVHlwZT5cbiAgICAgICkuZGVmO1xuICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gWm9kSW50ZXJzZWN0aW9uIO2DgOyehSDsgqzsmqlcbiAgICAgIGNvbnN0IGtleSA9IFN0cmluZyh0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoa3ZEZWYua2V5VHlwZSwgbmFtZSkpO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoa3ZEZWYudmFsdWVUeXBlLCBuYW1lKTtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kU2V0KSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB0aGlzLnpvZFR5cGVUb1JlcURlZmF1bHQoXG4gICAgICAgICAgLyogU0FGRVRZOiBab2RTZXQg67aE6riw7J2066+A66GcIHZhbHVlVHlwZeydtCDsp5Htlakg7JuQ7IaMIOyKpO2CpOuniOuLpC4gKi8gKFxuICAgICAgICAgICAgem9kVHlwZSBhcyB6LlpvZFNldDx6LlpvZFR5cGU+XG4gICAgICAgICAgKS5kZWYudmFsdWVUeXBlLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICksXG4gICAgICBdO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kSW50ZXJzZWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy56b2RUeXBlVG9SZXFEZWZhdWx0KFxuICAgICAgICAvKiBTQUZFVFk6IFpvZEludGVyc2VjdGlvbiDrtoTquLDsnbTrr4DroZwgcmlnaHTqsIAg6rWQ7LCoIO2DgOyeheydmCDsmrDsuKEg7Iqk7YKk66eI64ukLiAqLyAoXG4gICAgICAgICAgem9kVHlwZSBhcyB6LlpvZEludGVyc2VjdGlvbjx6LlpvZFR5cGUsIHouWm9kVHlwZT5cbiAgICAgICAgKS5kZWYucmlnaHQsXG4gICAgICAgIG5hbWUsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRGVmYXVsdCkge1xuICAgICAgcmV0dXJuIHRoaXMuem9kVHlwZVRvUmVxRGVmYXVsdChcbiAgICAgICAgLyogU0FGRVRZOiBab2REZWZhdWx0IOu2hOq4sOydtOuvgOuhnCBpbm5lclR5cGXsnbQg6riw67O46rCSIOyggeyaqSDsoIQg7Iqk7YKk66eI64ukLiAqLyAoXG4gICAgICAgICAgem9kVHlwZSBhcyB6LlpvZERlZmF1bHQ8ei5ab2RUeXBlPlxuICAgICAgICApLmRlZi5pbm5lclR5cGUsXG4gICAgICAgIG5hbWUsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyh6b2RUeXBlKTtcbiAgICAgIHJldHVybiBgdW5rbm93bi0ke3pvZFR5cGUudHlwZX1gO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmVBcGlQYXJhbXMoXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICByZWZlcmVuY2VzOiB7IFt0eXBlTmFtZTogc3RyaW5nXTogei5ab2RUeXBlIH0sXG4gICk6IFJlcXVlc3REZWZhdWx0T2JqZWN0IHtcbiAgICBjb25zdCByZXFUeXBlID0gZ2V0Wm9kT2JqZWN0RnJvbUFwaShhcGksIHJlZmVyZW5jZXMpO1xuICAgIHRyeSB7XG4gICAgICAvLyBTQUZFVFk6IGdldFpvZE9iamVjdEZyb21BcGnripQg6rCd7LK0IOyKpO2CpOuniOulvCDrsJjtmZjtlZjrr4DroZwg6riw67O46rCS64+EIOqwneyytOydtOuLpC5cbiAgICAgIGNvbnN0IGRlZiA9IHRoaXMuem9kVHlwZVRvUmVxRGVmYXVsdChyZXFUeXBlLCBcInVua25vd25OYW1lXCIpIGFzIFJlcXVlc3REZWZhdWx0T2JqZWN0O1xuICAgICAgcmV0dXJuIGRlZjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgem9kIHR5cGUgZGV0ZWN0ZWQgb24gJHthcGkubW9kZWxOYW1lfToke2FwaS5tZXRob2ROYW1lfWAsIHtcbiAgICAgICAgY2F1c2U6IGVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztxQkFHK0Q7WUFFdEI7Y0FDSDtBQWdCdEMsSUFBYSwyQkFBYixjQUE4QyxTQUFTO0NBQ3JELGNBQWM7RUFDWixNQUFNLGdCQUFnQjtDQUN4QjtDQUVBLG1CQUFtQjtFQUNqQixNQUFNLEVBQUUsUUFBUSxPQUFPLE9BQU87RUFFOUIsT0FBTztH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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated_sso.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/generated_sso.template.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"generated_sso.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/generated_sso.template.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgCvC,qBAAa,uBAAwB,SAAQ,QAAQ;;IAKnD,gBAAgB;;;;IAShB,MAAM;;;;;;;IAyHN,OAAO,CAAC,2BAA2B;IAwEnC,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,2BAA2B;IA4BnC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAgDjC;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Sonamu } from "../../api/sonamu.js";
|
|
2
1
|
import { init_types, isBelongsToOneRelationProp, isManyToManyRelationProp, isOneToOneRelationProp } from "../../types/types.js";
|
|
2
|
+
import { Sonamu } from "../../api/sonamu.js";
|
|
3
3
|
import { EntityManager, init_entity_manager } from "../../entity/entity-manager.js";
|
|
4
4
|
import { init_api } from "../../api/index.js";
|
|
5
5
|
import { Template, init_template } from "../template.js";
|
|
@@ -25,6 +25,9 @@ function mapBetterAuthFieldType(type) {
|
|
|
25
25
|
default: return "unknown";
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
function addLoaderIdTypeSafetyComments(query) {
|
|
29
|
+
return query.replaceAll(/fromIds as (?:number|string)\[\]/g, "/* SAFETY: 로더가 전달하는 ID는 소스 엔티티의 기본 키 타입과 일치한다. */ $&");
|
|
30
|
+
}
|
|
28
31
|
var Template__generated_sso = class extends Template {
|
|
29
32
|
constructor() {
|
|
30
33
|
super("generated_sso");
|
|
@@ -58,7 +61,7 @@ var Template__generated_sso = class extends Template {
|
|
|
58
61
|
lines: [
|
|
59
62
|
`export const ${entityCamelName}LoaderQueries = {`,
|
|
60
63
|
...subsetKeys.map((subsetKey) => {
|
|
61
|
-
return `${subsetKey}: ${entity.getPuriLoaderQuery(subsetKey)},`;
|
|
64
|
+
return `${subsetKey}: ${addLoaderIdTypeSafetyComments(entity.getPuriLoaderQuery(subsetKey))},`;
|
|
62
65
|
}),
|
|
63
66
|
`} as const satisfies PuriLoaderQueries<${subsetKeyTypeName}>;`,
|
|
64
67
|
""
|
|
@@ -214,4 +217,4 @@ var Template__generated_sso = class extends Template {
|
|
|
214
217
|
//#endregion
|
|
215
218
|
export { Template__generated_sso };
|
|
216
219
|
|
|
217
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVkX3Nzby50ZW1wbGF0ZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVtcGxhdGUvaW1wbGVtZW50YXRpb25zL2dlbmVyYXRlZF9zc28udGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCI7XG5cbmltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5pbXBvcnQgeyB1bmlxdWUgfSBmcm9tIFwicmFkYXNoaVwiO1xuXG5pbXBvcnQgeyBTb25hbXUgfSBmcm9tIFwiLi4vLi4vYXBpXCI7XG5pbXBvcnQgeyB0eXBlIEVudGl0eSB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHtcbiAgaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AsXG4gIGlzTWFueVRvTWFueVJlbGF0aW9uUHJvcCxcbiAgaXNPbmVUb09uZVJlbGF0aW9uUHJvcCxcbn0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgdHlwZSBTb3VyY2VDb2RlIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLnRlbXBsYXRlXCI7XG5cbi8qKlxuICogYmV0dGVyLWF1dGggYWRkaXRpb25hbEZpZWxkc+ydmCB0eXBlIOqwkuydhCBUeXBlU2NyaXB0IO2DgOyehSDrrLjsnpDsl7TroZwg67OA7ZmY7ZWp64uI64ukLlxuICovXG5mdW5jdGlvbiBtYXBCZXR0ZXJBdXRoRmllbGRUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIHJldHVybiBcInN0cmluZ1wiO1xuICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgIHJldHVybiBcIm51bWJlclwiO1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICByZXR1cm4gXCJib29sZWFuXCI7XG4gICAgY2FzZSBcImRhdGVcIjpcbiAgICAgIHJldHVybiBcIkRhdGVcIjtcbiAgICBjYXNlIFwic3RyaW5nW11cIjpcbiAgICAgIHJldHVybiBcInN0cmluZ1tdXCI7XG4gICAgY2FzZSBcIm51bWJlcltdXCI6XG4gICAgICByZXR1cm4gXCJudW1iZXJbXVwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gXCJ1bmtub3duXCI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX19nZW5lcmF0ZWRfc3NvIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcImdlbmVyYXRlZF9zc29cIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKCkge1xuICAgIGNvbnN0IHsgZGlyIH0gPSBTb25hbXUuY29uZmlnLmFwaTtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2FwcGxpY2F0aW9uYCxcbiAgICAgIHBhdGg6IGBzb25hbXUuZ2VuZXJhdGVkLnNzby50c2AsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBlbnRpdHlJZHMgPSBFbnRpdHlNYW5hZ2VyLmdldEFsbElkcygpO1xuICAgIGNvbnN0IGVudGl0aWVzID0gZW50aXR5SWRzLm1hcCgoaWQpID0+IEVudGl0eU1hbmFnZXIuZ2V0KGlkKSk7XG5cbiAgICAvLyBTdWJzZXRRdWVyaWVzIOyDneyEsSDrjIDsg4E6IOu2gOuqqCDsl5Tti7Dti7DqsIAg7JeG6rOgIOyEnOu4jOyFi+ydtCDsobTsnqxcbiAgICBjb25zdCB0YXJnZXRFbnRpdGllcyA9IGVudGl0aWVzLmZpbHRlcihcbiAgICAgIChlbnRpdHkpID0+IGVudGl0eS5wYXJlbnRJZCA9PT0gdW5kZWZpbmVkICYmIE9iamVjdC5rZXlzKGVudGl0eS5zdWJzZXRzKS5sZW5ndGggPiAwLFxuICAgICk7XG5cbiAgICAvLyBTdWJzZXRRdWVyaWVzIOyDneyEsVxuICAgIGNvbnN0IHNvdXJjZUNvZGVzOiBTb3VyY2VDb2RlW10gPSB0YXJnZXRFbnRpdGllcy5mbGF0TWFwKChlbnRpdHkpID0+IHtcbiAgICAgIGNvbnN0IHN1YnNldEtleXMgPSBPYmplY3Qua2V5cyhlbnRpdHkuc3Vic2V0cyk7XG5cbiAgICAgIGNvbnN0IHN1YnNldEtleVR5cGVOYW1lID0gYCR7ZW50aXR5Lm5hbWVzLm1vZHVsZX1TdWJzZXRLZXlgO1xuICAgICAgY29uc3QgZW50aXR5Q2FtZWxOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShlbnRpdHkuaWQsIHRydWUpO1xuXG4gICAgICAvLyBQdXJpIOq4sOuwmCBTdWJzZXRRdWVyeVxuICAgICAgY29uc3QgcHVyaVN1YnNldFF1ZXJ5OiBTb3VyY2VDb2RlID0ge1xuICAgICAgICBsYWJlbDogYFN1YnNldFF1ZXJ5OiAke2VudGl0eS5pZH1gLFxuICAgICAgICBsaW5lczogW1xuICAgICAgICAgIGBleHBvcnQgY29uc3QgJHtlbnRpdHlDYW1lbE5hbWV9U3Vic2V0UXVlcmllcyA9IHtgLFxuICAgICAgICAgIC4uLnN1YnNldEtleXMubWFwKFxuICAgICAgICAgICAgKHN1YnNldEtleSkgPT4gYCR7c3Vic2V0S2V5fTogKHFiV3JhcHBlcjogUHVyaVdyYXBwZXI8RGF0YWJhc2VTY2hlbWFFeHRlbmQ+KSA9PiB7XG4gICAgICAgICAgICAke2VudGl0eS5nZXRQdXJpU3Vic2V0UXVlcnkoc3Vic2V0S2V5KX07XG4gICAgICAgICAgfSxgLFxuICAgICAgICAgICksXG4gICAgICAgICAgYH07YCxcbiAgICAgICAgICBcIlwiLFxuICAgICAgICBdLFxuICAgICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICAgIH07XG5cbiAgICAgIC8vIFB1cmkg6riw67CYIFN1YnNldExvYWRlcnNRdWVyeVxuICAgICAgY29uc3QgcHVyaUxvYWRlclF1ZXJ5OiBTb3VyY2VDb2RlID0ge1xuICAgICAgICBsYWJlbDogYExvYWRlclF1ZXJ5OiAke2VudGl0eS5pZH1gLFxuICAgICAgICBsaW5lczogW1xuICAgICAgICAgIGBleHBvcnQgY29uc3QgJHtlbnRpdHlDYW1lbE5hbWV9TG9hZGVyUXVlcmllcyA9IHtgLFxuICAgICAgICAgIC4uLnN1YnNldEtleXMubWFwKChzdWJzZXRLZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHtzdWJzZXRLZXl9OiAke2VudGl0eS5nZXRQdXJpTG9hZGVyUXVlcnkoc3Vic2V0S2V5KX0sYDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBgfSBhcyBjb25zdCBzYXRpc2ZpZXMgUHVyaUxvYWRlclF1ZXJpZXM8JHtzdWJzZXRLZXlUeXBlTmFtZX0+O2AsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgXSxcbiAgICAgICAgaW1wb3J0S2V5czogW3N1YnNldEtleVR5cGVOYW1lXSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBbcHVyaVN1YnNldFF1ZXJ5LCBwdXJpTG9hZGVyUXVlcnldO1xuICAgIH0pO1xuXG4gICAgLy8gRm9yZWlnbktleSDtg4DsnoUg7IOd7ISxXG4gICAgY29uc3QgZmtUeXBlU291cmNlQ29kZSA9IHRoaXMuZ2V0Rm9yZWlnbktleVR5cGVTb3VyY2VDb2RlKGVudGl0aWVzKTtcbiAgICBpZiAoZmtUeXBlU291cmNlQ29kZSkge1xuICAgICAgc291cmNlQ29kZXMucHVzaChma1R5cGVTb3VyY2VDb2RlKTtcbiAgICB9XG5cbiAgICAvLyBEYXRhYmFzZVNjaGVtYSDsg53shLFcbiAgICBjb25zdCBkYlNjaGVtYVNvdXJjZUNvZGUgPSB0aGlzLmdldERhdGFiYXNlU2NoZW1hU291cmNlQ29kZShlbnRpdGllcyk7XG4gICAgaWYgKGRiU2NoZW1hU291cmNlQ29kZSkge1xuICAgICAgc291cmNlQ29kZXMucHVzaChkYlNjaGVtYVNvdXJjZUNvZGUpO1xuICAgIH1cblxuICAgIC8vIEF1dGggVXNlciDtg4DsnoUg7IOd7ISxXG4gICAgY29uc3QgYXV0aFVzZXJUeXBlU291cmNlQ29kZSA9IHRoaXMuZ2V0QXV0aFVzZXJUeXBlU291cmNlQ29kZSgpO1xuICAgIGlmIChhdXRoVXNlclR5cGVTb3VyY2VDb2RlKSB7XG4gICAgICBzb3VyY2VDb2Rlcy5wdXNoKGF1dGhVc2VyVHlwZVNvdXJjZUNvZGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBzb3VyY2VDb2Rlcy5yZWR1Y2UoXG4gICAgICAocmVzdWx0LCB0cykgPT4ge1xuICAgICAgICBpZiAodHMgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGFzc2VydChyZXN1bHQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxpbmVzOiBbLi4ucmVzdWx0LmxpbmVzLCBgLy8gJHt0cy5sYWJlbH1gLCAuLi50cy5saW5lcywgXCJcIl0sXG4gICAgICAgICAgaW1wb3J0S2V5czogdW5pcXVlKFsuLi5yZXN1bHQuaW1wb3J0S2V5cywgLi4udHMuaW1wb3J0S2V5c10pLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGluZXM6IFtdLFxuICAgICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICAgIH0gYXMgT21pdDxTb3VyY2VDb2RlLCBcImxhYmVsXCI+LFxuICAgICk7XG5cbiAgICBjb25zdCBib2R5ID0gc291cmNlQ29kZS5saW5lcy5qb2luKFwiXFxuXCIpO1xuICAgIGNvbnN0IGlzVXNpbmdNYW55VG9NYW55QmFzZVNjaGVtYSA9IGJvZHkuaW5jbHVkZXMoXCJNYW55VG9NYW55QmFzZVNjaGVtYVwiKTtcblxuICAgIGNvbnN0IHNvbmFtdUltcG9ydHMgPSBbXG4gICAgICBcIlB1cmlXcmFwcGVyXCIsXG4gICAgICBcIkRhdGFiYXNlU2NoZW1hRXh0ZW5kXCIsXG4gICAgICBcIlB1cmlMb2FkZXJRdWVyaWVzXCIsXG4gICAgICBpc1VzaW5nTWFueVRvTWFueUJhc2VTY2hlbWEgPyBcIk1hbnlUb01hbnlCYXNlU2NoZW1hXCIgOiBcIlwiLFxuICAgIF1cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKFwiLCBcIik7XG5cbiAgICAvLyBjdXN0b21IZWFkZXJzIOq1rOyEsVxuICAgIGNvbnN0IGN1c3RvbUhlYWRlcnMgPSBbXG4gICAgICBcIi8qKlwiLFxuICAgICAgXCIgKiBAZ2VuZXJhdGVkXCIsXG4gICAgICBcIiAqIOyngeygkSDsiJjsoJXtlZjsp4Ag66eI7IS47JqULlwiLFxuICAgICAgXCIgKi9cIixcbiAgICAgIFwiXCIsXG4gICAgICBgaW1wb3J0IHsgJHtzb25hbXVJbXBvcnRzfSB9IGZyb20gXCJzb25hbXVcIjtgLFxuICAgIF07XG4gICAgaWYgKHRoaXMuaGFzQXV0aENvbmZpZygpKSB7XG4gICAgICBjdXN0b21IZWFkZXJzLnB1c2goYGltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gXCJiZXR0ZXItYXV0aFwiO2ApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgoKSxcbiAgICAgIGJvZHk6IHNvdXJjZUNvZGUubGluZXMuam9pbihcIlxcblwiKSxcbiAgICAgIGltcG9ydEtleXM6IHNvdXJjZUNvZGUuaW1wb3J0S2V5cyxcbiAgICAgIGN1c3RvbUhlYWRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gcHJpdmF0ZSBIZWxwZXIgTWV0aG9kc1xuICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHByaXZhdGUgZ2V0RGF0YWJhc2VTY2hlbWFTb3VyY2VDb2RlKGVudGl0aWVzOiBFbnRpdHlbXSk6IFNvdXJjZUNvZGUgfCBudWxsIHtcbiAgICBpZiAoZW50aXRpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBEYXRhYmFzZVNjaGVtYUV4dGVuZCAtIO2FjOydtOu4lCDsiqTtgqTrp4gg7YOA7J6FIOygleydmFxuICAgIGNvbnN0IGVudGl0eVNjaGVtYUxpbmVzID0gZW50aXRpZXMubWFwKChlbnRpdHkpID0+IGAke2VudGl0eS50YWJsZX06ICR7ZW50aXR5LmlkfUJhc2VTY2hlbWE7YCk7XG5cbiAgICBjb25zdCBqb2luVGFibGVzID0gdW5pcXVlKFxuICAgICAgZW50aXRpZXMuZmxhdE1hcCgoZW50aXR5KSA9PlxuICAgICAgICBlbnRpdHkucHJvcHMuZmlsdGVyKGlzTWFueVRvTWFueVJlbGF0aW9uUHJvcCkubWFwKChwcm9wKSA9PiB7XG4gICAgICAgICAgY29uc3QgZnJvbVRhYmxlS2V5ID0gaW5mbGVjdGlvbi5zaW5ndWxhcml6ZShlbnRpdHkudGFibGUpO1xuICAgICAgICAgIGNvbnN0IHRvRW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQocHJvcC53aXRoKTtcbiAgICAgICAgICBjb25zdCB0b1RhYmxlS2V5ID0gaW5mbGVjdGlvbi5zaW5ndWxhcml6ZSh0b0VudGl0eS50YWJsZSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhYmxlOiBwcm9wLmpvaW5UYWJsZSxcbiAgICAgICAgICAgIGZyb21UYWJsZUtleSxcbiAgICAgICAgICAgIHRvVGFibGVLZXksXG4gICAgICAgICAgICBmcm9tRW50aXR5SWQ6IGVudGl0eS5pZCxcbiAgICAgICAgICAgIHRvRW50aXR5SWQ6IHRvRW50aXR5LmlkLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIChqb2luVGFibGUpID0+IGpvaW5UYWJsZS50YWJsZSxcbiAgICApO1xuXG4gICAgLy8gRGF0YWJhc2VGb3JlaWduS2V5cyAtIEZLIOy7rOufvOydhCDqsIDsp4Qg7YWM7J2067iU66eMIOygleydmFxuICAgIGNvbnN0IGVudGl0aWVzV2l0aEZrID0gZW50aXRpZXMuZmlsdGVyKFxuICAgICAgKGVudGl0eSkgPT4gdGhpcy5nZXRGb3JlaWduS2V5Q29sdW1ucyhlbnRpdHkpLmxlbmd0aCA+IDAsXG4gICAgKTtcbiAgICBjb25zdCBma01ldGFkYXRhTGluZXMgPSBlbnRpdGllc1dpdGhGay5tYXAoXG4gICAgICAoZW50aXR5KSA9PiBgJHtlbnRpdHkudGFibGV9OiAke2VudGl0eS5pZH1Gb3JlaWduS2V5cztgLFxuICAgICk7XG5cbiAgICAvLyBDb250ZXh0RXh0ZW5kIC0gYXV0aCDshKTsoJXsnbQg7J6I7J2EIOuVjOunjCB1c2VyIO2DgOyehSDstpTqsIBcbiAgICBjb25zdCBjb250ZXh0RXh0ZW5kTGluZXM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuaGFzQXV0aENvbmZpZygpKSB7XG4gICAgICBjb250ZXh0RXh0ZW5kTGluZXMucHVzaChcbiAgICAgICAgYGAsXG4gICAgICAgIGAgIGV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dEV4dGVuZCB7YCxcbiAgICAgICAgYCAgICB1c2VyOiBTb25hbXVVc2VyIHwgbnVsbDtgLFxuICAgICAgICBgICB9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiBgRGF0YWJhc2VTY2hlbWFgLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgYGRlY2xhcmUgbW9kdWxlIFwic29uYW11XCIge2AsXG4gICAgICAgIGAgIGV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VTY2hlbWFFeHRlbmQge2AsXG4gICAgICAgIC4uLmVudGl0eVNjaGVtYUxpbmVzLFxuICAgICAgICAuLi5qb2luVGFibGVzLm1hcCgoam9pblRhYmxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgZnJvbUVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGpvaW5UYWJsZS5mcm9tRW50aXR5SWQpO1xuICAgICAgICAgIGNvbnN0IHRvRW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoam9pblRhYmxlLnRvRW50aXR5SWQpO1xuICAgICAgICAgIGNvbnN0IGZyb21Qa1R5cGUgPSBmcm9tRW50aXR5LmdldFBrVHlwZSgpID09PSBcImludGVnZXJcIiA/IFwibnVtYmVyXCIgOiBcInN0cmluZ1wiO1xuICAgICAgICAgIGNvbnN0IHRvUGtUeXBlID0gdG9FbnRpdHkuZ2V0UGtUeXBlKCkgPT09IFwiaW50ZWdlclwiID8gXCJudW1iZXJcIiA6IFwic3RyaW5nXCI7XG5cbiAgICAgICAgICByZXR1cm4gYCR7am9pblRhYmxlLnRhYmxlfTogTWFueVRvTWFueUJhc2VTY2hlbWE8XCIke2pvaW5UYWJsZS5mcm9tVGFibGVLZXl9XCIsIFwiJHtqb2luVGFibGUudG9UYWJsZUtleX1cIiwgJHtmcm9tUGtUeXBlfSwgJHt0b1BrVHlwZX0+O2A7XG4gICAgICAgIH0pLFxuICAgICAgICBgICB9YCxcbiAgICAgICAgYGAsXG4gICAgICAgIGAgIGV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VGb3JlaWduS2V5cyB7YCxcbiAgICAgICAgLi4uZmtNZXRhZGF0YUxpbmVzLFxuICAgICAgICBgICB9YCxcbiAgICAgICAgLi4uY29udGV4dEV4dGVuZExpbmVzLFxuICAgICAgICBgfWAsXG4gICAgICBdLFxuICAgICAgaW1wb3J0S2V5czogZW50aXRpZXMubWFwKChlbnRpdHkpID0+IGAke2VudGl0eS5pZH1CYXNlU2NoZW1hYCksXG4gICAgfTtcbiAgfVxuXG4gIC8vIEZLIOq0gOqzhOulvCDsu6zrn7zrqoXsnLzroZwg67OA7ZmYICjsmIg6IGNvbXBhbnkg4oaSIGNvbXBhbnlfaWQpXG4gIHByaXZhdGUgZ2V0Rm9yZWlnbktleUNvbHVtbnMoZW50aXR5OiBFbnRpdHkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGVudGl0eS5wcm9wc1xuICAgICAgLmZpbHRlcigocHJvcCkgPT4ge1xuICAgICAgICBpZiAoaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AocHJvcCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNPbmVUb09uZVJlbGF0aW9uUHJvcChwcm9wKSAmJiBwcm9wLmhhc0pvaW5Db2x1bW4pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KVxuICAgICAgLm1hcCgocHJvcCkgPT4gYCR7cHJvcC5uYW1lfV9pZGApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb3JlaWduS2V5VHlwZVNvdXJjZUNvZGUoZW50aXRpZXM6IEVudGl0eVtdKTogU291cmNlQ29kZSB8IG51bGwge1xuICAgIGlmIChlbnRpdGllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIEZL6rCAIOyeiOuKlCDsl5Tti7Dti7Drp4wg7YOA7J6FIOyDneyEsVxuICAgIGNvbnN0IGVudGl0aWVzV2l0aEZrID0gZW50aXRpZXMuZmlsdGVyKFxuICAgICAgKGVudGl0eSkgPT4gdGhpcy5nZXRGb3JlaWduS2V5Q29sdW1ucyhlbnRpdHkpLmxlbmd0aCA+IDAsXG4gICAgKTtcblxuICAgIGlmIChlbnRpdGllc1dpdGhGay5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGZrVHlwZUxpbmVzID0gZW50aXRpZXNXaXRoRmsubWFwKChlbnRpdHkpID0+IHtcbiAgICAgIGNvbnN0IGZrQ29sdW1ucyA9IHRoaXMuZ2V0Rm9yZWlnbktleUNvbHVtbnMoZW50aXR5KTtcbiAgICAgIGNvbnN0IGZrVHlwZVZhbHVlID0gZmtDb2x1bW5zLm1hcCgoY29sKSA9PiBgXCIke2NvbH1cImApLmpvaW4oXCIgfCBcIik7XG5cbiAgICAgIHJldHVybiBgZXhwb3J0IHR5cGUgJHtlbnRpdHkuaWR9Rm9yZWlnbktleXMgPSAke2ZrVHlwZVZhbHVlfTtgO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiBgRm9yZWlnbktleSBUeXBlc2AsXG4gICAgICBsaW5lczogZmtUeXBlTGluZXMsXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHNvbmFtdS5jb25maWcudHPsnZggYXV0aC51c2VyLmFkZGl0aW9uYWxGaWVsZHPsl5DshJwgU29uYW11VXNlciDtg4DsnoXsnYQg7IOd7ISx7ZWp64uI64ukLlxuICAgKiBAcmV0dXJucyBTb3VyY2VDb2RlIHwgbnVsbCAtIGF1dGgg7ISk7KCV7J20IOyXhuycvOuptCBudWxsIOuwmO2ZmFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRBdXRoVXNlclR5cGVTb3VyY2VDb2RlKCk6IFNvdXJjZUNvZGUgfCBudWxsIHtcbiAgICBjb25zdCBhdXRoQ29uZmlnID0gU29uYW11LmNvbmZpZy5zZXJ2ZXI/LmF1dGg7XG4gICAgaWYgKCFhdXRoQ29uZmlnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBhZGRpdGlvbmFsRmllbGRzIO2DgOyeheydtCDrj5nsoIHsnoRcbiAgICBjb25zdCBhZGRpdGlvbmFsRmllbGRzID0gKGF1dGhDb25maWcgYXMgYW55KT8udXNlcj8uYWRkaXRpb25hbEZpZWxkcztcbiAgICBpZiAoIWFkZGl0aW9uYWxGaWVsZHMgfHwgT2JqZWN0LmtleXMoYWRkaXRpb25hbEZpZWxkcykubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBhZGRpdGlvbmFsRmllbGRz6rCAIOyXhuycvOuptCDquLDrs7ggVXNlciDtg4DsnoXrp4wg7IKs7JqpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogXCJBdXRoIFVzZXIgVHlwZVwiLFxuICAgICAgICBsaW5lczogW1wiZXhwb3J0IHR5cGUgU29uYW11VXNlciA9IFVzZXI7XCJdLFxuICAgICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgaW1wb3J0S2V5czogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIGFkZGl0aW9uYWxGaWVsZHPrpbwgVHlwZVNjcmlwdCDtg4DsnoXsnLzroZwg67OA7ZmYXG4gICAgY29uc3QgZmllbGRMaW5lcyA9IE9iamVjdC5lbnRyaWVzKGFkZGl0aW9uYWxGaWVsZHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBiZXR0ZXItYXV0aCBhZGRpdGlvbmFsRmllbGRzIOq1rOyhsFxuICAgICAgY29uc3QgZmllbGRDb25maWcgPSB2YWx1ZSBhcyBhbnk7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gZmllbGRDb25maWcucmVxdWlyZWQgIT09IGZhbHNlO1xuXG4gICAgICBsZXQgZmllbGRUeXBlOiBzdHJpbmc7XG5cbiAgICAgIC8vIHNvbmFtdVR5cGXsnbQg7J6I7Jy866m0IGRlc2NyaXB0aW9u7J2EIO2DgOyeheuqheycvOuhnCDsgqzsmqlcbiAgICAgIGlmIChmaWVsZENvbmZpZy5zb25hbXVUeXBlKSB7XG4gICAgICAgIGZpZWxkVHlwZSA9IGZpZWxkQ29uZmlnLnNvbmFtdVR5cGU7XG4gICAgICAgIGltcG9ydEtleXMucHVzaChmaWVsZFR5cGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmllbGRUeXBlID0gbWFwQmV0dGVyQXV0aEZpZWxkVHlwZShmaWVsZENvbmZpZy50eXBlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAgICR7a2V5fSR7aXNSZXF1aXJlZCA/IFwiXCIgOiBcIj9cIn06ICR7ZmllbGRUeXBlfTtgO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiBcIkF1dGggVXNlciBUeXBlXCIsXG4gICAgICBsaW5lczogW1wiZXhwb3J0IHR5cGUgU29uYW11VXNlciA9IFVzZXIgJiB7XCIsIC4uLmZpZWxkTGluZXMsIFwifTtcIl0sXG4gICAgICBpbXBvcnRLZXlzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogYXV0aCDshKTsoJXsnbQg7J6I64qU7KeAIO2ZleyduO2VqeuLiOuLpC5cbiAgICovXG4gIHByaXZhdGUgaGFzQXV0aENvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFTb25hbXUuY29uZmlnLnNlcnZlcj8uYXV0aDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7U0FLa0M7b0JBRXlCO1dBS2pDO2NBQ1k7Ozs7QUFNdEMsU0FBUyx1QkFBdUIsTUFBc0I7Q0FDcEQsUUFBUSxNQUFSO0VBQ0UsS0FBSyxVQUNILE9BQU87RUFDVCxLQUFLLFVBQ0gsT0FBTztFQUNULEtBQUssV0FDSCxPQUFPO0VBQ1QsS0FBSyxRQUNILE9BQU87RUFDVCxLQUFLLFlBQ0gsT0FBTztFQUNULEtBQUssWUFDSCxPQUFPO0VBQ1QsU0FDRSxPQUFPO0NBQ1g7QUFDRjtBQUVBLElBQWEsMEJBQWIsY0FBNkMsU0FBUztDQUNwRCxjQUFjO0VBQ1osTUFBTSxlQUFlO0NBQ3ZCO0NBRUEsbUJBQW1CO0VBQ2pCLE1BQU0sRUFBRSxRQUFRLE9BQU8sT0FBTztFQUU5QixPQUFPO0dBQ0wsUUFBUSxHQUFHLElBQUk7R0FDZixNQUFNO0VBQ1I7Q0FDRjtDQUVBLFNBQVM7RUFFUCxNQUFNLFdBRFksY0FBYyxVQUNmLENBQUEsQ0FBVSxLQUFLLE9BQU8sY0FBYyxJQUFJLEVBQUUsQ0FBQztFQVE1RCxNQUFNLGNBTGlCLFNBQVMsUUFDN0IsV0FBVyxPQUFPLGFBQWEsVUFBYSxPQUFPLEtBQUssT0FBTyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBSWxELENBQUEsQ0FBZSxTQUFTLFdBQVc7R0FDbkUsTUFBTSxhQUFhLE9BQU8sS0FBSyxPQUFPLE9BQU87R0FFN0MsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLE1BQU0sT0FBTztHQUNqRCxNQUFNLGtCQUFrQixXQUFXLFNBQVMsT0FBTyxJQUFJLElBQUk7R0FnQzNELE9BQU8sQ0FBQztJQTVCTixPQUFPLGdCQUFnQixPQUFPO0lBQzlCLE9BQU87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
|
|
220
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVkX3Nzby50ZW1wbGF0ZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVtcGxhdGUvaW1wbGVtZW50YXRpb25zL2dlbmVyYXRlZF9zc28udGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCI7XG5cbmltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5pbXBvcnQgeyB1bmlxdWUgfSBmcm9tIFwicmFkYXNoaVwiO1xuXG5pbXBvcnQgeyBTb25hbXUgfSBmcm9tIFwiLi4vLi4vYXBpXCI7XG5pbXBvcnQgeyB0eXBlIEVudGl0eSB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHtcbiAgaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AsXG4gIGlzTWFueVRvTWFueVJlbGF0aW9uUHJvcCxcbiAgaXNPbmVUb09uZVJlbGF0aW9uUHJvcCxcbn0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgdHlwZSBTb3VyY2VDb2RlIH0gZnJvbSBcIi4vZ2VuZXJhdGVkLnRlbXBsYXRlXCI7XG5cbi8qKlxuICogYmV0dGVyLWF1dGggYWRkaXRpb25hbEZpZWxkc+ydmCB0eXBlIOqwkuydhCBUeXBlU2NyaXB0IO2DgOyehSDrrLjsnpDsl7TroZwg67OA7ZmY7ZWp64uI64ukLlxuICovXG5mdW5jdGlvbiBtYXBCZXR0ZXJBdXRoRmllbGRUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIHJldHVybiBcInN0cmluZ1wiO1xuICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgIHJldHVybiBcIm51bWJlclwiO1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICByZXR1cm4gXCJib29sZWFuXCI7XG4gICAgY2FzZSBcImRhdGVcIjpcbiAgICAgIHJldHVybiBcIkRhdGVcIjtcbiAgICBjYXNlIFwic3RyaW5nW11cIjpcbiAgICAgIHJldHVybiBcInN0cmluZ1tdXCI7XG4gICAgY2FzZSBcIm51bWJlcltdXCI6XG4gICAgICByZXR1cm4gXCJudW1iZXJbXVwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gXCJ1bmtub3duXCI7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkTG9hZGVySWRUeXBlU2FmZXR5Q29tbWVudHMocXVlcnk6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBxdWVyeS5yZXBsYWNlQWxsKFxuICAgIC9mcm9tSWRzIGFzICg/Om51bWJlcnxzdHJpbmcpXFxbXFxdL2csXG4gICAgXCIvKiBTQUZFVFk6IOuhnOuNlOqwgCDsoITri6ztlZjripQgSUTripQg7IaM7IqkIOyXlO2LsO2LsOydmCDquLDrs7gg7YKkIO2DgOyeheqzvCDsnbzsuZjtlZzri6QuICovICQmXCIsXG4gICk7XG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fZ2VuZXJhdGVkX3NzbyBleHRlbmRzIFRlbXBsYXRlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJnZW5lcmF0ZWRfc3NvXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aCgpIHtcbiAgICBjb25zdCB7IGRpciB9ID0gU29uYW11LmNvbmZpZy5hcGk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBgJHtkaXJ9L3NyYy9hcHBsaWNhdGlvbmAsXG4gICAgICBwYXRoOiBgc29uYW11LmdlbmVyYXRlZC5zc28udHNgLFxuICAgIH07XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgZW50aXR5SWRzID0gRW50aXR5TWFuYWdlci5nZXRBbGxJZHMoKTtcbiAgICBjb25zdCBlbnRpdGllcyA9IGVudGl0eUlkcy5tYXAoKGlkKSA9PiBFbnRpdHlNYW5hZ2VyLmdldChpZCkpO1xuXG4gICAgLy8gU3Vic2V0UXVlcmllcyDsg53shLEg64yA7IOBOiDrtoDrqqgg7JeU7Yuw7Yuw6rCAIOyXhuqzoCDshJzruIzshYvsnbQg7KG07J6sXG4gICAgY29uc3QgdGFyZ2V0RW50aXRpZXMgPSBlbnRpdGllcy5maWx0ZXIoXG4gICAgICAoZW50aXR5KSA9PiBlbnRpdHkucGFyZW50SWQgPT09IHVuZGVmaW5lZCAmJiBPYmplY3Qua2V5cyhlbnRpdHkuc3Vic2V0cykubGVuZ3RoID4gMCxcbiAgICApO1xuXG4gICAgLy8gU3Vic2V0UXVlcmllcyDsg53shLFcbiAgICBjb25zdCBzb3VyY2VDb2RlczogU291cmNlQ29kZVtdID0gdGFyZ2V0RW50aXRpZXMuZmxhdE1hcCgoZW50aXR5KSA9PiB7XG4gICAgICBjb25zdCBzdWJzZXRLZXlzID0gT2JqZWN0LmtleXMoZW50aXR5LnN1YnNldHMpO1xuXG4gICAgICBjb25zdCBzdWJzZXRLZXlUeXBlTmFtZSA9IGAke2VudGl0eS5uYW1lcy5tb2R1bGV9U3Vic2V0S2V5YDtcbiAgICAgIGNvbnN0IGVudGl0eUNhbWVsTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoZW50aXR5LmlkLCB0cnVlKTtcblxuICAgICAgLy8gUHVyaSDquLDrsJggU3Vic2V0UXVlcnlcbiAgICAgIGNvbnN0IHB1cmlTdWJzZXRRdWVyeTogU291cmNlQ29kZSA9IHtcbiAgICAgICAgbGFiZWw6IGBTdWJzZXRRdWVyeTogJHtlbnRpdHkuaWR9YCxcbiAgICAgICAgbGluZXM6IFtcbiAgICAgICAgICBgZXhwb3J0IGNvbnN0ICR7ZW50aXR5Q2FtZWxOYW1lfVN1YnNldFF1ZXJpZXMgPSB7YCxcbiAgICAgICAgICAuLi5zdWJzZXRLZXlzLm1hcChcbiAgICAgICAgICAgIChzdWJzZXRLZXkpID0+IGAke3N1YnNldEtleX06IChxYldyYXBwZXI6IFB1cmlXcmFwcGVyPERhdGFiYXNlU2NoZW1hRXh0ZW5kPikgPT4ge1xuICAgICAgICAgICAgJHtlbnRpdHkuZ2V0UHVyaVN1YnNldFF1ZXJ5KHN1YnNldEtleSl9O1xuICAgICAgICAgIH0sYCxcbiAgICAgICAgICApLFxuICAgICAgICAgIGB9O2AsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgXSxcbiAgICAgICAgaW1wb3J0S2V5czogW10sXG4gICAgICB9O1xuXG4gICAgICAvLyBQdXJpIOq4sOuwmCBTdWJzZXRMb2FkZXJzUXVlcnlcbiAgICAgIGNvbnN0IHB1cmlMb2FkZXJRdWVyeTogU291cmNlQ29kZSA9IHtcbiAgICAgICAgbGFiZWw6IGBMb2FkZXJRdWVyeTogJHtlbnRpdHkuaWR9YCxcbiAgICAgICAgbGluZXM6IFtcbiAgICAgICAgICBgZXhwb3J0IGNvbnN0ICR7ZW50aXR5Q2FtZWxOYW1lfUxvYWRlclF1ZXJpZXMgPSB7YCxcbiAgICAgICAgICAuLi5zdWJzZXRLZXlzLm1hcCgoc3Vic2V0S2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IGVudGl0eS5nZXRQdXJpTG9hZGVyUXVlcnkoc3Vic2V0S2V5KTtcbiAgICAgICAgICAgIHJldHVybiBgJHtzdWJzZXRLZXl9OiAke2FkZExvYWRlcklkVHlwZVNhZmV0eUNvbW1lbnRzKHF1ZXJ5KX0sYDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBgfSBhcyBjb25zdCBzYXRpc2ZpZXMgUHVyaUxvYWRlclF1ZXJpZXM8JHtzdWJzZXRLZXlUeXBlTmFtZX0+O2AsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgXSxcbiAgICAgICAgaW1wb3J0S2V5czogW3N1YnNldEtleVR5cGVOYW1lXSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBbcHVyaVN1YnNldFF1ZXJ5LCBwdXJpTG9hZGVyUXVlcnldO1xuICAgIH0pO1xuXG4gICAgLy8gRm9yZWlnbktleSDtg4DsnoUg7IOd7ISxXG4gICAgY29uc3QgZmtUeXBlU291cmNlQ29kZSA9IHRoaXMuZ2V0Rm9yZWlnbktleVR5cGVTb3VyY2VDb2RlKGVudGl0aWVzKTtcbiAgICBpZiAoZmtUeXBlU291cmNlQ29kZSkge1xuICAgICAgc291cmNlQ29kZXMucHVzaChma1R5cGVTb3VyY2VDb2RlKTtcbiAgICB9XG5cbiAgICAvLyBEYXRhYmFzZVNjaGVtYSDsg53shLFcbiAgICBjb25zdCBkYlNjaGVtYVNvdXJjZUNvZGUgPSB0aGlzLmdldERhdGFiYXNlU2NoZW1hU291cmNlQ29kZShlbnRpdGllcyk7XG4gICAgaWYgKGRiU2NoZW1hU291cmNlQ29kZSkge1xuICAgICAgc291cmNlQ29kZXMucHVzaChkYlNjaGVtYVNvdXJjZUNvZGUpO1xuICAgIH1cblxuICAgIC8vIEF1dGggVXNlciDtg4DsnoUg7IOd7ISxXG4gICAgY29uc3QgYXV0aFVzZXJUeXBlU291cmNlQ29kZSA9IHRoaXMuZ2V0QXV0aFVzZXJUeXBlU291cmNlQ29kZSgpO1xuICAgIGlmIChhdXRoVXNlclR5cGVTb3VyY2VDb2RlKSB7XG4gICAgICBzb3VyY2VDb2Rlcy5wdXNoKGF1dGhVc2VyVHlwZVNvdXJjZUNvZGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBzb3VyY2VDb2Rlcy5yZWR1Y2UoXG4gICAgICAocmVzdWx0LCB0cykgPT4ge1xuICAgICAgICBpZiAodHMgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGFzc2VydChyZXN1bHQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxpbmVzOiBbLi4ucmVzdWx0LmxpbmVzLCBgLy8gJHt0cy5sYWJlbH1gLCAuLi50cy5saW5lcywgXCJcIl0sXG4gICAgICAgICAgaW1wb3J0S2V5czogdW5pcXVlKFsuLi5yZXN1bHQuaW1wb3J0S2V5cywgLi4udHMuaW1wb3J0S2V5c10pLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIC8qIFNBRkVUWTogcmVkdWNlIOuIhOyCsOq4sOuKlCBsYWJlbOydhCDsoJzsmbjtlZwgU291cmNlQ29kZeydmCDrkZAg67Cw7Je066GcIOy0iOq4sO2ZlOuQnOuLpC4gKi8ge1xuICAgICAgICBsaW5lczogW10sXG4gICAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgICAgfSBhcyBPbWl0PFNvdXJjZUNvZGUsIFwibGFiZWxcIj4sXG4gICAgKTtcblxuICAgIGNvbnN0IGJvZHkgPSBzb3VyY2VDb2RlLmxpbmVzLmpvaW4oXCJcXG5cIik7XG4gICAgY29uc3QgaXNVc2luZ01hbnlUb01hbnlCYXNlU2NoZW1hID0gYm9keS5pbmNsdWRlcyhcIk1hbnlUb01hbnlCYXNlU2NoZW1hXCIpO1xuXG4gICAgY29uc3Qgc29uYW11SW1wb3J0cyA9IFtcbiAgICAgIFwiUHVyaVdyYXBwZXJcIixcbiAgICAgIFwiRGF0YWJhc2VTY2hlbWFFeHRlbmRcIixcbiAgICAgIFwiUHVyaUxvYWRlclF1ZXJpZXNcIixcbiAgICAgIGlzVXNpbmdNYW55VG9NYW55QmFzZVNjaGVtYSA/IFwiTWFueVRvTWFueUJhc2VTY2hlbWFcIiA6IFwiXCIsXG4gICAgXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oXCIsIFwiKTtcblxuICAgIC8vIGN1c3RvbUhlYWRlcnMg6rWs7ISxXG4gICAgY29uc3QgY3VzdG9tSGVhZGVycyA9IFtcbiAgICAgIFwiLyoqXCIsXG4gICAgICBcIiAqIEBnZW5lcmF0ZWRcIixcbiAgICAgIFwiICog7KeB7KCRIOyImOygle2VmOyngCDrp4jshLjsmpQuXCIsXG4gICAgICBcIiAqL1wiLFxuICAgICAgXCJcIixcbiAgICAgIGBpbXBvcnQgeyAke3NvbmFtdUltcG9ydHN9IH0gZnJvbSBcInNvbmFtdVwiO2AsXG4gICAgXTtcbiAgICBpZiAodGhpcy5oYXNBdXRoQ29uZmlnKCkpIHtcbiAgICAgIGN1c3RvbUhlYWRlcnMucHVzaChgaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSBcImJldHRlci1hdXRoXCI7YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZ2V0VGFyZ2V0QW5kUGF0aCgpLFxuICAgICAgYm9keTogc291cmNlQ29kZS5saW5lcy5qb2luKFwiXFxuXCIpLFxuICAgICAgaW1wb3J0S2V5czogc291cmNlQ29kZS5pbXBvcnRLZXlzLFxuICAgICAgY3VzdG9tSGVhZGVycyxcbiAgICB9O1xuICB9XG5cbiAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBwcml2YXRlIEhlbHBlciBNZXRob2RzXG4gIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgcHJpdmF0ZSBnZXREYXRhYmFzZVNjaGVtYVNvdXJjZUNvZGUoZW50aXRpZXM6IEVudGl0eVtdKTogU291cmNlQ29kZSB8IG51bGwge1xuICAgIGlmIChlbnRpdGllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIERhdGFiYXNlU2NoZW1hRXh0ZW5kIC0g7YWM7J2067iUIOyKpO2CpOuniCDtg4DsnoUg7KCV7J2YXG4gICAgY29uc3QgZW50aXR5U2NoZW1hTGluZXMgPSBlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4gYCR7ZW50aXR5LnRhYmxlfTogJHtlbnRpdHkuaWR9QmFzZVNjaGVtYTtgKTtcblxuICAgIGNvbnN0IGpvaW5UYWJsZXMgPSB1bmlxdWUoXG4gICAgICBlbnRpdGllcy5mbGF0TWFwKChlbnRpdHkpID0+XG4gICAgICAgIGVudGl0eS5wcm9wcy5maWx0ZXIoaXNNYW55VG9NYW55UmVsYXRpb25Qcm9wKS5tYXAoKHByb3ApID0+IHtcbiAgICAgICAgICBjb25zdCBmcm9tVGFibGVLZXkgPSBpbmZsZWN0aW9uLnNpbmd1bGFyaXplKGVudGl0eS50YWJsZSk7XG4gICAgICAgICAgY29uc3QgdG9FbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChwcm9wLndpdGgpO1xuICAgICAgICAgIGNvbnN0IHRvVGFibGVLZXkgPSBpbmZsZWN0aW9uLnNpbmd1bGFyaXplKHRvRW50aXR5LnRhYmxlKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFibGU6IHByb3Auam9pblRhYmxlLFxuICAgICAgICAgICAgZnJvbVRhYmxlS2V5LFxuICAgICAgICAgICAgdG9UYWJsZUtleSxcbiAgICAgICAgICAgIGZyb21FbnRpdHlJZDogZW50aXR5LmlkLFxuICAgICAgICAgICAgdG9FbnRpdHlJZDogdG9FbnRpdHkuaWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgKGpvaW5UYWJsZSkgPT4gam9pblRhYmxlLnRhYmxlLFxuICAgICk7XG5cbiAgICAvLyBEYXRhYmFzZUZvcmVpZ25LZXlzIC0gRksg7Lus65+87J2EIOqwgOynhCDthYzsnbTruJTrp4wg7KCV7J2YXG4gICAgY29uc3QgZW50aXRpZXNXaXRoRmsgPSBlbnRpdGllcy5maWx0ZXIoXG4gICAgICAoZW50aXR5KSA9PiB0aGlzLmdldEZvcmVpZ25LZXlDb2x1bW5zKGVudGl0eSkubGVuZ3RoID4gMCxcbiAgICApO1xuICAgIGNvbnN0IGZrTWV0YWRhdGFMaW5lcyA9IGVudGl0aWVzV2l0aEZrLm1hcChcbiAgICAgIChlbnRpdHkpID0+IGAke2VudGl0eS50YWJsZX06ICR7ZW50aXR5LmlkfUZvcmVpZ25LZXlzO2AsXG4gICAgKTtcblxuICAgIC8vIENvbnRleHRFeHRlbmQgLSBhdXRoIOyEpOygleydtCDsnojsnYQg65WM66eMIHVzZXIg7YOA7J6FIOy2lOqwgFxuICAgIGNvbnN0IGNvbnRleHRFeHRlbmRMaW5lczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodGhpcy5oYXNBdXRoQ29uZmlnKCkpIHtcbiAgICAgIGNvbnRleHRFeHRlbmRMaW5lcy5wdXNoKFxuICAgICAgICBgYCxcbiAgICAgICAgYCAgZXhwb3J0IGludGVyZmFjZSBDb250ZXh0RXh0ZW5kIHtgLFxuICAgICAgICBgICAgIHVzZXI6IFNvbmFtdVVzZXIgfCBudWxsO2AsXG4gICAgICAgIGAgIH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IGBEYXRhYmFzZVNjaGVtYWAsXG4gICAgICBsaW5lczogW1xuICAgICAgICBgZGVjbGFyZSBtb2R1bGUgXCJzb25hbXVcIiB7YCxcbiAgICAgICAgYCAgZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVNjaGVtYUV4dGVuZCB7YCxcbiAgICAgICAgLi4uZW50aXR5U2NoZW1hTGluZXMsXG4gICAgICAgIC4uLmpvaW5UYWJsZXMubWFwKChqb2luVGFibGUpID0+IHtcbiAgICAgICAgICBjb25zdCBmcm9tRW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoam9pblRhYmxlLmZyb21FbnRpdHlJZCk7XG4gICAgICAgICAgY29uc3QgdG9FbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChqb2luVGFibGUudG9FbnRpdHlJZCk7XG4gICAgICAgICAgY29uc3QgZnJvbVBrVHlwZSA9IGZyb21FbnRpdHkuZ2V0UGtUeXBlKCkgPT09IFwiaW50ZWdlclwiID8gXCJudW1iZXJcIiA6IFwic3RyaW5nXCI7XG4gICAgICAgICAgY29uc3QgdG9Qa1R5cGUgPSB0b0VudGl0eS5nZXRQa1R5cGUoKSA9PT0gXCJpbnRlZ2VyXCIgPyBcIm51bWJlclwiIDogXCJzdHJpbmdcIjtcblxuICAgICAgICAgIHJldHVybiBgJHtqb2luVGFibGUudGFibGV9OiBNYW55VG9NYW55QmFzZVNjaGVtYTxcIiR7am9pblRhYmxlLmZyb21UYWJsZUtleX1cIiwgXCIke2pvaW5UYWJsZS50b1RhYmxlS2V5fVwiLCAke2Zyb21Qa1R5cGV9LCAke3RvUGtUeXBlfT47YDtcbiAgICAgICAgfSksXG4gICAgICAgIGAgIH1gLFxuICAgICAgICBgYCxcbiAgICAgICAgYCAgZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUZvcmVpZ25LZXlzIHtgLFxuICAgICAgICAuLi5ma01ldGFkYXRhTGluZXMsXG4gICAgICAgIGAgIH1gLFxuICAgICAgICAuLi5jb250ZXh0RXh0ZW5kTGluZXMsXG4gICAgICAgIGB9YCxcbiAgICAgIF0sXG4gICAgICBpbXBvcnRLZXlzOiBlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4gYCR7ZW50aXR5LmlkfUJhc2VTY2hlbWFgKSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRksg6rSA6rOE66W8IOy7rOufvOuqheycvOuhnCDrs4DtmZggKOyYiDogY29tcGFueSDihpIgY29tcGFueV9pZClcbiAgcHJpdmF0ZSBnZXRGb3JlaWduS2V5Q29sdW1ucyhlbnRpdHk6IEVudGl0eSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZW50aXR5LnByb3BzXG4gICAgICAuZmlsdGVyKChwcm9wKSA9PiB7XG4gICAgICAgIGlmIChpc0JlbG9uZ3NUb09uZVJlbGF0aW9uUHJvcChwcm9wKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc09uZVRvT25lUmVsYXRpb25Qcm9wKHByb3ApICYmIHByb3AuaGFzSm9pbkNvbHVtbikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pXG4gICAgICAubWFwKChwcm9wKSA9PiBgJHtwcm9wLm5hbWV9X2lkYCk7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcmVpZ25LZXlUeXBlU291cmNlQ29kZShlbnRpdGllczogRW50aXR5W10pOiBTb3VyY2VDb2RlIHwgbnVsbCB7XG4gICAgaWYgKGVudGl0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gRkvqsIAg7J6I64qUIOyXlO2LsO2LsOunjCDtg4DsnoUg7IOd7ISxXG4gICAgY29uc3QgZW50aXRpZXNXaXRoRmsgPSBlbnRpdGllcy5maWx0ZXIoXG4gICAgICAoZW50aXR5KSA9PiB0aGlzLmdldEZvcmVpZ25LZXlDb2x1bW5zKGVudGl0eSkubGVuZ3RoID4gMCxcbiAgICApO1xuXG4gICAgaWYgKGVudGl0aWVzV2l0aEZrLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZmtUeXBlTGluZXMgPSBlbnRpdGllc1dpdGhGay5tYXAoKGVudGl0eSkgPT4ge1xuICAgICAgY29uc3QgZmtDb2x1bW5zID0gdGhpcy5nZXRGb3JlaWduS2V5Q29sdW1ucyhlbnRpdHkpO1xuICAgICAgY29uc3QgZmtUeXBlVmFsdWUgPSBma0NvbHVtbnMubWFwKChjb2wpID0+IGBcIiR7Y29sfVwiYCkuam9pbihcIiB8IFwiKTtcblxuICAgICAgcmV0dXJuIGBleHBvcnQgdHlwZSAke2VudGl0eS5pZH1Gb3JlaWduS2V5cyA9ICR7ZmtUeXBlVmFsdWV9O2A7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IGBGb3JlaWduS2V5IFR5cGVzYCxcbiAgICAgIGxpbmVzOiBma1R5cGVMaW5lcyxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogc29uYW11LmNvbmZpZy50c+ydmCBhdXRoLnVzZXIuYWRkaXRpb25hbEZpZWxkc+yXkOyEnCBTb25hbXVVc2VyIO2DgOyeheydhCDsg53shLHtlanri4jri6QuXG4gICAqIEByZXR1cm5zIFNvdXJjZUNvZGUgfCBudWxsIC0gYXV0aCDshKTsoJXsnbQg7JeG7Jy866m0IG51bGwg67CY7ZmYXG4gICAqL1xuICBwcml2YXRlIGdldEF1dGhVc2VyVHlwZVNvdXJjZUNvZGUoKTogU291cmNlQ29kZSB8IG51bGwge1xuICAgIGNvbnN0IGF1dGhDb25maWcgPSBTb25hbXUuY29uZmlnLnNlcnZlcj8uYXV0aDtcbiAgICBpZiAoIWF1dGhDb25maWcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIGFkZGl0aW9uYWxGaWVsZHMg7YOA7J6F7J20IOuPmeyggeyehFxuICAgIGNvbnN0IGFkZGl0aW9uYWxGaWVsZHMgPVxuICAgICAgLyogU0FGRVRZOiBiZXR0ZXItYXV0aCDshKTsoJXsnZggdXNlci5hZGRpdGlvbmFsRmllbGRz64qUIOuPmeyggSDtlYTrk5wg66e17J2064ukLiAqLyAoYXV0aENvbmZpZyBhcyBhbnkpXG4gICAgICAgID8udXNlcj8uYWRkaXRpb25hbEZpZWxkcztcbiAgICBpZiAoIWFkZGl0aW9uYWxGaWVsZHMgfHwgT2JqZWN0LmtleXMoYWRkaXRpb25hbEZpZWxkcykubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBhZGRpdGlvbmFsRmllbGRz6rCAIOyXhuycvOuptCDquLDrs7ggVXNlciDtg4DsnoXrp4wg7IKs7JqpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogXCJBdXRoIFVzZXIgVHlwZVwiLFxuICAgICAgICBsaW5lczogW1wiZXhwb3J0IHR5cGUgU29uYW11VXNlciA9IFVzZXI7XCJdLFxuICAgICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgaW1wb3J0S2V5czogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIGFkZGl0aW9uYWxGaWVsZHPrpbwgVHlwZVNjcmlwdCDtg4DsnoXsnLzroZwg67OA7ZmYXG4gICAgY29uc3QgZmllbGRMaW5lcyA9IE9iamVjdC5lbnRyaWVzKGFkZGl0aW9uYWxGaWVsZHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBiZXR0ZXItYXV0aCBhZGRpdGlvbmFsRmllbGRzIOq1rOyhsFxuICAgICAgY29uc3QgZmllbGRDb25maWcgPVxuICAgICAgICAvKiBTQUZFVFk6IGFkZGl0aW9uYWxGaWVsZHPsnZgg6rCBIOqwkuydgCBiZXR0ZXItYXV0aCDtlYTrk5wg7ISk7KCVIOqwneyytOydtOuLpC4gKi8gdmFsdWUgYXMgYW55O1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGZpZWxkQ29uZmlnLnJlcXVpcmVkICE9PSBmYWxzZTtcblxuICAgICAgbGV0IGZpZWxkVHlwZTogc3RyaW5nO1xuXG4gICAgICAvLyBzb25hbXVUeXBl7J20IOyeiOycvOuptCBkZXNjcmlwdGlvbuydhCDtg4DsnoXrqoXsnLzroZwg7IKs7JqpXG4gICAgICBpZiAoZmllbGRDb25maWcuc29uYW11VHlwZSkge1xuICAgICAgICBmaWVsZFR5cGUgPSBmaWVsZENvbmZpZy5zb25hbXVUeXBlO1xuICAgICAgICBpbXBvcnRLZXlzLnB1c2goZmllbGRUeXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpZWxkVHlwZSA9IG1hcEJldHRlckF1dGhGaWVsZFR5cGUoZmllbGRDb25maWcudHlwZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgICAke2tleX0ke2lzUmVxdWlyZWQgPyBcIlwiIDogXCI/XCJ9OiAke2ZpZWxkVHlwZX07YDtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBsYWJlbDogXCJBdXRoIFVzZXIgVHlwZVwiLFxuICAgICAgbGluZXM6IFtcImV4cG9ydCB0eXBlIFNvbmFtdVVzZXIgPSBVc2VyICYge1wiLCAuLi5maWVsZExpbmVzLCBcIn07XCJdLFxuICAgICAgaW1wb3J0S2V5cyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIGF1dGgg7ISk7KCV7J20IOyeiOuKlOyngCDtmZXsnbjtlanri4jri6QuXG4gICAqL1xuICBwcml2YXRlIGhhc0F1dGhDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhU29uYW11LmNvbmZpZy5zZXJ2ZXI/LmF1dGg7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1NBS2tDO29CQUV5QjtXQUtqQztjQUNZOzs7O0FBTXRDLFNBQVMsdUJBQXVCLE1BQXNCO0NBQ3BELFFBQVEsTUFBUjtFQUNFLEtBQUssVUFDSCxPQUFPO0VBQ1QsS0FBSyxV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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Template } from "../template";
|
|
2
|
+
export declare class Template__http_validators extends Template {
|
|
3
|
+
constructor();
|
|
4
|
+
getTargetAndPath(): {
|
|
5
|
+
target: string;
|
|
6
|
+
path: string;
|
|
7
|
+
};
|
|
8
|
+
render(): {
|
|
9
|
+
body: string;
|
|
10
|
+
importKeys: string[];
|
|
11
|
+
customHeaders: string[];
|
|
12
|
+
target: string;
|
|
13
|
+
path: string;
|
|
14
|
+
};
|
|
15
|
+
private renderAotRegistry;
|
|
16
|
+
private renderPlainStub;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=http_validators.template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http_validators.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/http_validators.template.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqDvC,qBAAa,yBAA0B,SAAQ,QAAQ;;IAKrD,gBAAgB;;;;IAOhB,MAAM;;;;;;;IAsDN,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { init_runtime_value, isObjectValue, isStringValue } from "../../utils/runtime-value.js";
|
|
2
|
+
import { getHttpValidatorFingerprint, getHttpValidatorRouteIdentifier, getHttpValidatorRouteKey, init_http_validator } from "../../api/http-validator.js";
|
|
3
|
+
import { Sonamu, init_sonamu } from "../../api/sonamu.js";
|
|
4
|
+
import { Template, init_template } from "../template.js";
|
|
5
|
+
//#region src/template/implementations/http_validators.template.ts
|
|
6
|
+
init_http_validator();
|
|
7
|
+
init_sonamu();
|
|
8
|
+
init_runtime_value();
|
|
9
|
+
init_template();
|
|
10
|
+
function collectReferencedTypes(type, result) {
|
|
11
|
+
if (isStringValue(type)) return;
|
|
12
|
+
switch (type.t) {
|
|
13
|
+
case "ref":
|
|
14
|
+
result.add(type.id);
|
|
15
|
+
for (const argument of type.args ?? []) collectReferencedTypes(argument, result);
|
|
16
|
+
return;
|
|
17
|
+
case "array":
|
|
18
|
+
collectReferencedTypes(type.elementsType, result);
|
|
19
|
+
return;
|
|
20
|
+
case "object":
|
|
21
|
+
for (const prop of type.props) collectReferencedTypes(prop.type, result);
|
|
22
|
+
return;
|
|
23
|
+
case "union":
|
|
24
|
+
case "intersection":
|
|
25
|
+
for (const member of type.types) collectReferencedTypes(member, result);
|
|
26
|
+
return;
|
|
27
|
+
case "tuple-type":
|
|
28
|
+
for (const element of type.elements) collectReferencedTypes(element, result);
|
|
29
|
+
return;
|
|
30
|
+
case "indexed-access":
|
|
31
|
+
collectReferencedTypes(type.object, result);
|
|
32
|
+
collectReferencedTypes(type.index, result);
|
|
33
|
+
return;
|
|
34
|
+
case "type-param":
|
|
35
|
+
if (type.constraint !== void 0) collectReferencedTypes(type.constraint, result);
|
|
36
|
+
return;
|
|
37
|
+
case "function":
|
|
38
|
+
for (const parameter of type.parameters) collectReferencedTypes(parameter.type, result);
|
|
39
|
+
collectReferencedTypes(type.returnType, result);
|
|
40
|
+
return;
|
|
41
|
+
case "string-literal":
|
|
42
|
+
case "numeric-literal": return;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
var Template__http_validators = class extends Template {
|
|
46
|
+
constructor() {
|
|
47
|
+
super("http_validators");
|
|
48
|
+
}
|
|
49
|
+
getTargetAndPath() {
|
|
50
|
+
return {
|
|
51
|
+
target: `${Sonamu.config.api.dir}/src/application`,
|
|
52
|
+
path: "sonamu.validators.generated.ts"
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
render() {
|
|
56
|
+
const apis = [...Sonamu.syncer.apis].filter((api) => api.websocketOptions === void 0).toSorted((left, right) => getHttpValidatorRouteKey(left).localeCompare(getHttpValidatorRouteKey(right)));
|
|
57
|
+
const routeKeys = apis.map(getHttpValidatorRouteKey);
|
|
58
|
+
const duplicateKey = routeKeys.find((key, index) => routeKeys.indexOf(key) !== index);
|
|
59
|
+
if (duplicateKey !== void 0) throw new Error(`중복된 HTTP validator route key: ${duplicateKey}`);
|
|
60
|
+
const fingerprint = getHttpValidatorFingerprint(apis);
|
|
61
|
+
const policy = Sonamu.config.validation?.zodCompiler;
|
|
62
|
+
const isAot = isObjectValue(policy) && policy !== null && policy.api === "aot";
|
|
63
|
+
const hasAotValidators = isAot && apis.length > 0;
|
|
64
|
+
const referencedTypes = /* @__PURE__ */ new Set();
|
|
65
|
+
for (const api of apis) {
|
|
66
|
+
for (const typeParameter of api.typeParameters) collectReferencedTypes(typeParameter, referencedTypes);
|
|
67
|
+
for (const parameter of api.parameters) collectReferencedTypes(parameter.type, referencedTypes);
|
|
68
|
+
}
|
|
69
|
+
const importKeys = [...referencedTypes].filter((typeName) => Sonamu.syncer.types[typeName] !== void 0).toSorted();
|
|
70
|
+
const body = isAot ? this.renderAotRegistry(apis, fingerprint, importKeys) : this.renderPlainStub(apis, fingerprint);
|
|
71
|
+
return {
|
|
72
|
+
...this.getTargetAndPath(),
|
|
73
|
+
body,
|
|
74
|
+
importKeys,
|
|
75
|
+
customHeaders: [
|
|
76
|
+
"/**",
|
|
77
|
+
" * @generated",
|
|
78
|
+
" * 직접 수정하지 마세요.",
|
|
79
|
+
" */",
|
|
80
|
+
"",
|
|
81
|
+
"/* oxlint-disable */",
|
|
82
|
+
"",
|
|
83
|
+
...hasAotValidators ? [`import { compile } from "zod-compiler";`, `import { fastifyCaster, getZodObjectFromApi } from "sonamu";`] : []
|
|
84
|
+
]
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
renderAotRegistry(apis, fingerprint, importKeys) {
|
|
88
|
+
const declarations = apis.map((api) => {
|
|
89
|
+
const identifier = `validator_${getHttpValidatorRouteIdentifier(api)}`;
|
|
90
|
+
const schemaApi = {
|
|
91
|
+
modelName: api.modelName,
|
|
92
|
+
methodName: api.methodName,
|
|
93
|
+
path: api.path,
|
|
94
|
+
options: { httpMethod: api.options.httpMethod ?? "GET" },
|
|
95
|
+
typeParameters: api.typeParameters,
|
|
96
|
+
parameters: api.parameters,
|
|
97
|
+
returnType: "unknown"
|
|
98
|
+
};
|
|
99
|
+
return `export const ${identifier} = compile(fastifyCaster(getZodObjectFromApi(${JSON.stringify(schemaApi)}, { ...types })));`;
|
|
100
|
+
});
|
|
101
|
+
const routeIds = Object.fromEntries(apis.map((api) => [getHttpValidatorRouteKey(api), getHttpValidatorRouteIdentifier(api)]));
|
|
102
|
+
return [
|
|
103
|
+
`export const fingerprint = ${JSON.stringify(fingerprint)};`,
|
|
104
|
+
`export const routeIds = ${JSON.stringify(routeIds)};`,
|
|
105
|
+
`const types = { ${importKeys.join(", ")} };`,
|
|
106
|
+
...declarations,
|
|
107
|
+
`export const validators = new Map([`,
|
|
108
|
+
...apis.map((api) => {
|
|
109
|
+
const routeKey = getHttpValidatorRouteKey(api);
|
|
110
|
+
return ` [${JSON.stringify(routeKey)}, validator_${getHttpValidatorRouteIdentifier(api)}],`;
|
|
111
|
+
}),
|
|
112
|
+
`]);`
|
|
113
|
+
].join("\n");
|
|
114
|
+
}
|
|
115
|
+
renderPlainStub(apis, fingerprint) {
|
|
116
|
+
const routeIds = Object.fromEntries(apis.map((api) => [getHttpValidatorRouteKey(api), getHttpValidatorRouteIdentifier(api)]));
|
|
117
|
+
return [
|
|
118
|
+
`export const fingerprint = ${JSON.stringify(fingerprint)};`,
|
|
119
|
+
`export const routeIds = ${JSON.stringify(routeIds)};`,
|
|
120
|
+
`export const validators = new Map();`
|
|
121
|
+
].join("\n");
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
//#endregion
|
|
125
|
+
export { Template__http_validators };
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cF92YWxpZGF0b3JzLnRlbXBsYXRlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvaHR0cF92YWxpZGF0b3JzLnRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRXh0ZW5kZWRBcGkgfSBmcm9tIFwiLi4vLi4vYXBpL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7XG4gIGdldEh0dHBWYWxpZGF0b3JGaW5nZXJwcmludCxcbiAgZ2V0SHR0cFZhbGlkYXRvclJvdXRlSWRlbnRpZmllcixcbiAgZ2V0SHR0cFZhbGlkYXRvclJvdXRlS2V5LFxufSBmcm9tIFwiLi4vLi4vYXBpL2h0dHAtdmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBTb25hbXUgfSBmcm9tIFwiLi4vLi4vYXBpL3NvbmFtdVwiO1xuaW1wb3J0IHsgdHlwZSBBcGlQYXJhbVR5cGUgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IGlzT2JqZWN0VmFsdWUsIGlzU3RyaW5nVmFsdWUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvcnVudGltZS12YWx1ZVwiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcblxuZnVuY3Rpb24gY29sbGVjdFJlZmVyZW5jZWRUeXBlcyh0eXBlOiBBcGlQYXJhbVR5cGUsIHJlc3VsdDogU2V0PHN0cmluZz4pOiB2b2lkIHtcbiAgaWYgKGlzU3RyaW5nVmFsdWUodHlwZSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgc3dpdGNoICh0eXBlLnQpIHtcbiAgICBjYXNlIFwicmVmXCI6XG4gICAgICByZXN1bHQuYWRkKHR5cGUuaWQpO1xuICAgICAgZm9yIChjb25zdCBhcmd1bWVudCBvZiB0eXBlLmFyZ3MgPz8gW10pIHtcbiAgICAgICAgY29sbGVjdFJlZmVyZW5jZWRUeXBlcyhhcmd1bWVudCwgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgIGNvbGxlY3RSZWZlcmVuY2VkVHlwZXModHlwZS5lbGVtZW50c1R5cGUsIHJlc3VsdCk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHR5cGUucHJvcHMpIHtcbiAgICAgICAgY29sbGVjdFJlZmVyZW5jZWRUeXBlcyhwcm9wLnR5cGUsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBcInVuaW9uXCI6XG4gICAgY2FzZSBcImludGVyc2VjdGlvblwiOlxuICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgdHlwZS50eXBlcykge1xuICAgICAgICBjb2xsZWN0UmVmZXJlbmNlZFR5cGVzKG1lbWJlciwgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwidHVwbGUtdHlwZVwiOlxuICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHR5cGUuZWxlbWVudHMpIHtcbiAgICAgICAgY29sbGVjdFJlZmVyZW5jZWRUeXBlcyhlbGVtZW50LCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJpbmRleGVkLWFjY2Vzc1wiOlxuICAgICAgY29sbGVjdFJlZmVyZW5jZWRUeXBlcyh0eXBlLm9iamVjdCwgcmVzdWx0KTtcbiAgICAgIGNvbGxlY3RSZWZlcmVuY2VkVHlwZXModHlwZS5pbmRleCwgcmVzdWx0KTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwidHlwZS1wYXJhbVwiOlxuICAgICAgaWYgKHR5cGUuY29uc3RyYWludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbGxlY3RSZWZlcmVuY2VkVHlwZXModHlwZS5jb25zdHJhaW50LCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2YgdHlwZS5wYXJhbWV0ZXJzKSB7XG4gICAgICAgIGNvbGxlY3RSZWZlcmVuY2VkVHlwZXMocGFyYW1ldGVyLnR5cGUsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBjb2xsZWN0UmVmZXJlbmNlZFR5cGVzKHR5cGUucmV0dXJuVHlwZSwgcmVzdWx0KTtcbiAgICAgIHJldHVybjtcbiAgICBjYXNlIFwic3RyaW5nLWxpdGVyYWxcIjpcbiAgICBjYXNlIFwibnVtZXJpYy1saXRlcmFsXCI6XG4gICAgICByZXR1cm47XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX19odHRwX3ZhbGlkYXRvcnMgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiaHR0cF92YWxpZGF0b3JzXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBgJHtTb25hbXUuY29uZmlnLmFwaS5kaXJ9L3NyYy9hcHBsaWNhdGlvbmAsXG4gICAgICBwYXRoOiBcInNvbmFtdS52YWxpZGF0b3JzLmdlbmVyYXRlZC50c1wiLFxuICAgIH07XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgYXBpcyA9IFsuLi5Tb25hbXUuc3luY2VyLmFwaXNdXG4gICAgICAuZmlsdGVyKChhcGkpID0+IGFwaS53ZWJzb2NrZXRPcHRpb25zID09PSB1bmRlZmluZWQpXG4gICAgICAudG9Tb3J0ZWQoKGxlZnQsIHJpZ2h0KSA9PlxuICAgICAgICBnZXRIdHRwVmFsaWRhdG9yUm91dGVLZXkobGVmdCkubG9jYWxlQ29tcGFyZShnZXRIdHRwVmFsaWRhdG9yUm91dGVLZXkocmlnaHQpKSxcbiAgICAgICk7XG4gICAgY29uc3Qgcm91dGVLZXlzID0gYXBpcy5tYXAoZ2V0SHR0cFZhbGlkYXRvclJvdXRlS2V5KTtcbiAgICBjb25zdCBkdXBsaWNhdGVLZXkgPSByb3V0ZUtleXMuZmluZCgoa2V5LCBpbmRleCkgPT4gcm91dGVLZXlzLmluZGV4T2Yoa2V5KSAhPT0gaW5kZXgpO1xuICAgIGlmIChkdXBsaWNhdGVLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGDspJHrs7XrkJwgSFRUUCB2YWxpZGF0b3Igcm91dGUga2V5OiAke2R1cGxpY2F0ZUtleX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaW5nZXJwcmludCA9IGdldEh0dHBWYWxpZGF0b3JGaW5nZXJwcmludChhcGlzKTtcbiAgICBjb25zdCBwb2xpY3kgPSBTb25hbXUuY29uZmlnLnZhbGlkYXRpb24/LnpvZENvbXBpbGVyO1xuICAgIGNvbnN0IGlzQW90ID0gaXNPYmplY3RWYWx1ZShwb2xpY3kpICYmIHBvbGljeSAhPT0gbnVsbCAmJiBwb2xpY3kuYXBpID09PSBcImFvdFwiO1xuICAgIGNvbnN0IGhhc0FvdFZhbGlkYXRvcnMgPSBpc0FvdCAmJiBhcGlzLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgcmVmZXJlbmNlZFR5cGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBhcGkgb2YgYXBpcykge1xuICAgICAgZm9yIChjb25zdCB0eXBlUGFyYW1ldGVyIG9mIGFwaS50eXBlUGFyYW1ldGVycykge1xuICAgICAgICBjb2xsZWN0UmVmZXJlbmNlZFR5cGVzKHR5cGVQYXJhbWV0ZXIsIHJlZmVyZW5jZWRUeXBlcyk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHBhcmFtZXRlciBvZiBhcGkucGFyYW1ldGVycykge1xuICAgICAgICBjb2xsZWN0UmVmZXJlbmNlZFR5cGVzKHBhcmFtZXRlci50eXBlLCByZWZlcmVuY2VkVHlwZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBpbXBvcnRLZXlzID0gWy4uLnJlZmVyZW5jZWRUeXBlc11cbiAgICAgIC5maWx0ZXIoKHR5cGVOYW1lKSA9PiBTb25hbXUuc3luY2VyLnR5cGVzW3R5cGVOYW1lXSAhPT0gdW5kZWZpbmVkKVxuICAgICAgLnRvU29ydGVkKCk7XG4gICAgY29uc3QgYm9keSA9IGlzQW90XG4gICAgICA/IHRoaXMucmVuZGVyQW90UmVnaXN0cnkoYXBpcywgZmluZ2VycHJpbnQsIGltcG9ydEtleXMpXG4gICAgICA6IHRoaXMucmVuZGVyUGxhaW5TdHViKGFwaXMsIGZpbmdlcnByaW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgoKSxcbiAgICAgIGJvZHksXG4gICAgICBpbXBvcnRLZXlzLFxuICAgICAgY3VzdG9tSGVhZGVyczogW1xuICAgICAgICBcIi8qKlwiLFxuICAgICAgICBcIiAqIEBnZW5lcmF0ZWRcIixcbiAgICAgICAgXCIgKiDsp4HsoJEg7IiY7KCV7ZWY7KeAIOuniOyEuOyalC5cIixcbiAgICAgICAgXCIgKi9cIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCIvKiBveGxpbnQtZGlzYWJsZSAqL1wiLFxuICAgICAgICBcIlwiLFxuICAgICAgICAuLi4oaGFzQW90VmFsaWRhdG9yc1xuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICBgaW1wb3J0IHsgY29tcGlsZSB9IGZyb20gXCJ6b2QtY29tcGlsZXJcIjtgLFxuICAgICAgICAgICAgICBgaW1wb3J0IHsgZmFzdGlmeUNhc3RlciwgZ2V0Wm9kT2JqZWN0RnJvbUFwaSB9IGZyb20gXCJzb25hbXVcIjtgLFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogW10pLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJBb3RSZWdpc3RyeShcbiAgICBhcGlzOiBFeHRlbmRlZEFwaVtdLFxuICAgIGZpbmdlcnByaW50OiBzdHJpbmcsXG4gICAgaW1wb3J0S2V5czogc3RyaW5nW10sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25zID0gYXBpcy5tYXAoKGFwaSkgPT4ge1xuICAgICAgY29uc3QgaWRlbnRpZmllciA9IGB2YWxpZGF0b3JfJHtnZXRIdHRwVmFsaWRhdG9yUm91dGVJZGVudGlmaWVyKGFwaSl9YDtcbiAgICAgIGNvbnN0IHNjaGVtYUFwaSA9IHtcbiAgICAgICAgbW9kZWxOYW1lOiBhcGkubW9kZWxOYW1lLFxuICAgICAgICBtZXRob2ROYW1lOiBhcGkubWV0aG9kTmFtZSxcbiAgICAgICAgcGF0aDogYXBpLnBhdGgsXG4gICAgICAgIG9wdGlvbnM6IHsgaHR0cE1ldGhvZDogYXBpLm9wdGlvbnMuaHR0cE1ldGhvZCA/PyBcIkdFVFwiIH0sXG4gICAgICAgIHR5cGVQYXJhbWV0ZXJzOiBhcGkudHlwZVBhcmFtZXRlcnMsXG4gICAgICAgIHBhcmFtZXRlcnM6IGFwaS5wYXJhbWV0ZXJzLFxuICAgICAgICByZXR1cm5UeXBlOiBcInVua25vd25cIixcbiAgICAgIH0gc2F0aXNmaWVzIEV4dGVuZGVkQXBpO1xuICAgICAgcmV0dXJuIGBleHBvcnQgY29uc3QgJHtpZGVudGlmaWVyfSA9IGNvbXBpbGUoZmFzdGlmeUNhc3RlcihnZXRab2RPYmplY3RGcm9tQXBpKCR7SlNPTi5zdHJpbmdpZnkoc2NoZW1hQXBpKX0sIHsgLi4udHlwZXMgfSkpKTtgO1xuICAgIH0pO1xuICAgIGNvbnN0IHJvdXRlSWRzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgYXBpcy5tYXAoKGFwaSkgPT4gW2dldEh0dHBWYWxpZGF0b3JSb3V0ZUtleShhcGkpLCBnZXRIdHRwVmFsaWRhdG9yUm91dGVJZGVudGlmaWVyKGFwaSldKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIGBleHBvcnQgY29uc3QgZmluZ2VycHJpbnQgPSAke0pTT04uc3RyaW5naWZ5KGZpbmdlcnByaW50KX07YCxcbiAgICAgIGBleHBvcnQgY29uc3Qgcm91dGVJZHMgPSAke0pTT04uc3RyaW5naWZ5KHJvdXRlSWRzKX07YCxcbiAgICAgIGBjb25zdCB0eXBlcyA9IHsgJHtpbXBvcnRLZXlzLmpvaW4oXCIsIFwiKX0gfTtgLFxuICAgICAgLi4uZGVjbGFyYXRpb25zLFxuICAgICAgYGV4cG9ydCBjb25zdCB2YWxpZGF0b3JzID0gbmV3IE1hcChbYCxcbiAgICAgIC4uLmFwaXMubWFwKChhcGkpID0+IHtcbiAgICAgICAgY29uc3Qgcm91dGVLZXkgPSBnZXRIdHRwVmFsaWRhdG9yUm91dGVLZXkoYXBpKTtcbiAgICAgICAgcmV0dXJuIGAgIFske0pTT04uc3RyaW5naWZ5KHJvdXRlS2V5KX0sIHZhbGlkYXRvcl8ke2dldEh0dHBWYWxpZGF0b3JSb3V0ZUlkZW50aWZpZXIoYXBpKX1dLGA7XG4gICAgICB9KSxcbiAgICAgIGBdKTtgLFxuICAgIF0uam9pbihcIlxcblwiKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUGxhaW5TdHViKGFwaXM6IEV4dGVuZGVkQXBpW10sIGZpbmdlcnByaW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvdXRlSWRzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgYXBpcy5tYXAoKGFwaSkgPT4gW2dldEh0dHBWYWxpZGF0b3JSb3V0ZUtleShhcGkpLCBnZXRIdHRwVmFsaWRhdG9yUm91dGVJZGVudGlmaWVyKGFwaSldKSxcbiAgICApO1xuICAgIHJldHVybiBbXG4gICAgICBgZXhwb3J0IGNvbnN0IGZpbmdlcnByaW50ID0gJHtKU09OLnN0cmluZ2lmeShmaW5nZXJwcmludCl9O2AsXG4gICAgICBgZXhwb3J0IGNvbnN0IHJvdXRlSWRzID0gJHtKU09OLnN0cmluZ2lmeShyb3V0ZUlkcyl9O2AsXG4gICAgICBgZXhwb3J0IGNvbnN0IHZhbGlkYXRvcnMgPSBuZXcgTWFwKCk7YCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7b0JBS2lDO1lBQ1E7bUJBRStCO2NBQ2xDO0FBRXRDLFNBQVMsdUJBQXVCLE1BQW9CLFFBQTJCO0NBQzdFLElBQUksY0FBYyxJQUFJLEdBQ3BCO0NBRUYsUUFBUSxLQUFLLEdBQWI7RUFDRSxLQUFLO0dBQ0gsT0FBTyxJQUFJLEtBQUssRUFBRTtHQUNsQixLQUFLLE1BQU0sWUFBWSxLQUFLLFFBQVEs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/model.template.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,eAAgB,SAAQ,QAAQ;;IAK3C,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAShC,mBAAmB,IAAI,MAAM,EAAE,GAAG,IAAI;IAIzC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC;;;;;;
|
|
1
|
+
{"version":3,"file":"model.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/model.template.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,eAAgB,SAAQ,QAAQ;;IAK3C,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAShC,mBAAmB,IAAI,MAAM,EAAE,GAAG,IAAI;IAIzC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC;;;;;;CA0LpD"}
|
|
@@ -196,4 +196,4 @@ export const ${entityId}Model = new ${entityId}ModelClass();
|
|
|
196
196
|
//#endregion
|
|
197
197
|
export { Template__model };
|
|
198
198
|
|
|
199
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudGVtcGxhdGUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlbXBsYXRlL2ltcGxlbWVudGF0aW9ucy9tb2RlbC50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB6IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uLy4uL2FwaVwiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBOYWl0ZSB9IGZyb20gXCIuLi8uLi9uYWl0ZS9uYWl0ZVwiO1xuaW1wb3J0IHsgdHlwZSBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBnZXRab2RUeXBlQnlJZCwgem9kVHlwZVRvUmVuZGVyaW5nTm9kZSB9IGZyb20gXCIuLi96b2QtY29udmVydGVyXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZV9fdmlld19saXN0IH0gZnJvbSBcIi4vdmlld19saXN0LnRlbXBsYXRlXCI7XG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX21vZGVsIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIm1vZGVsXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQpIHtcbiAgICBjb25zdCB7IGRpciB9ID0gU29uYW11LmNvbmZpZy5hcGk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBgJHtkaXJ9L3NyYy9hcHBsaWNhdGlvbmAsXG4gICAgICBwYXRoOiBgJHtuYW1lcy5mc30vJHtuYW1lcy5mc30ubW9kZWwudHNgLFxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSBnZXRSZXF1aXJlZERpY3RLZXlzKCk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgcmV0dXJuIFtcImVycm9yLmVudGl0eU5vdEZvdW5kXCIsIFwiZXJyb3IudW5rbm93blNlYXJjaEZpZWxkXCJdO1xuICB9XG5cbiAgYXN5bmMgcmVuZGVyKHsgZW50aXR5SWQgfTogVGVtcGxhdGVPcHRpb25zW1wibW9kZWxcIl0pIHtcbiAgICBOYWl0ZS50KFwicmVuZGVyXCIsIHsgZW50aXR5SWQgfSk7XG5cbiAgICBjb25zdCBsaXN0UGFyYW1zWm9kVHlwZSA9IGF3YWl0IGdldFpvZFR5cGVCeUlkKGAke2VudGl0eUlkfUxpc3RQYXJhbXNgKTtcbiAgICBjb25zdCBsaXN0UGFyYW1zTm9kZSA9IHpvZFR5cGVUb1JlbmRlcmluZ05vZGUobGlzdFBhcmFtc1pvZFR5cGUpO1xuXG4gICAgY29uc3Qgc3Vic2V0S2V5Wm9kVHlwZSA9IGF3YWl0IGdldFpvZFR5cGVCeUlkKGAke2VudGl0eUlkfVN1YnNldEtleWApO1xuICAgIGNvbnN0IHN1YnNldEtleXMgPSAoc3Vic2V0S2V5Wm9kVHlwZSBhcyB6LlpvZEVudW0pLmVudW07XG5cbiAgICBjb25zdCBuYW1lcyA9IEVudGl0eU1hbmFnZXIuZ2V0TmFtZXNGcm9tSWQoZW50aXR5SWQpO1xuICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKTtcblxuICAgIGNvbnN0IHZsVHBsID0gbmV3IFRlbXBsYXRlX192aWV3X2xpc3QoKTtcbiAgICBpZiAobGlzdFBhcmFtc05vZGU/LmNoaWxkcmVuID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbGlzdFBhcmFtc05vZGXqsIAg7JeG7Iq164uI64ukLiAke2VudGl0eUlkfWApO1xuICAgIH1cbiAgICBjb25zdCBkZWYgPSB2bFRwbC5nZXREZWZhdWx0KGxpc3RQYXJhbXNOb2RlLmNoaWxkcmVuKTtcblxuICAgIC8vIOyXkOufrCDrqZTsi5zsp4Ag7IOd7ISxXG4gICAgY29uc3Qgbm90Rm91bmRFcnJvciA9IGBTRChcImVycm9yLmVudGl0eU5vdEZvdW5kXCIpKFwiJHtuYW1lcy5jYXBpdGFsfVwiLCBpZClgO1xuICAgIGNvbnN0IHVua25vd25TZWFyY2hGaWVsZEVycm9yID0gYFNEKFwiZXJyb3IudW5rbm93blNlYXJjaEZpZWxkXCIpKHBhcmFtcy5zZWFyY2gpYDtcblxuICAgIC8vIFBLIO2DgOyeheyXkCDrlLDrpbggVHlwZVNjcmlwdCDtg4DsnoUg6rKw7KCVXG4gICAgY29uc3QgcGtUeXBlID0gZW50aXR5LmdldFBrVHlwZSgpO1xuICAgIGNvbnN0IGlkVHNUeXBlID0gcGtUeXBlID09PSBcInN0cmluZ1wiIHx8IHBrVHlwZSA9PT0gXCJ1dWlkXCIgPyBcInN0cmluZ1wiIDogXCJudW1iZXJcIjtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgobmFtZXMpLFxuICAgICAgYm9keTogYFxuaW1wb3J0IHsgQmFzZU1vZGVsQ2xhc3MsIHR5cGUgTGlzdFJlc3VsdCwgYXNBcnJheSwgTm90Rm91bmRFeGNlcHRpb24sIEJhZFJlcXVlc3RFeGNlcHRpb24sIGFwaSwgZXhoYXVzdGl2ZSB9IGZyb20gJ3NvbmFtdSc7XG5pbXBvcnQge1xuICAke2VudGl0eUlkfVN1YnNldEtleSxcbiAgJHtlbnRpdHlJZH1TdWJzZXRNYXBwaW5nLFxufSBmcm9tIFwiLi4vc29uYW11LmdlbmVyYXRlZFwiO1xuaW1wb3J0IHtcbiAgJHtuYW1lcy5jYW1lbH1TdWJzZXRRdWVyaWVzLFxuICAke25hbWVzLmNhbWVsfUxvYWRlclF1ZXJpZXMsXG59IGZyb20gXCIuLi9zb25hbXUuZ2VuZXJhdGVkLnNzb1wiO1xuaW1wb3J0IHsgJHtlbnRpdHlJZH1MaXN0UGFyYW1zLCAke2VudGl0eUlkfVNhdmVQYXJhbXMgfSBmcm9tIFwiLi8ke25hbWVzLmZzfS50eXBlc1wiO1xuaW1wb3J0IHsgU0QgfSBmcm9tIFwiLi4vLi4vaTE4bi9zZC5nZW5lcmF0ZWRcIjtcblxuLypcbiAgJHtlbnRpdHlJZH0gTW9kZWxcbiovXG5jbGFzcyAke2VudGl0eUlkfU1vZGVsQ2xhc3MgZXh0ZW5kcyBCYXNlTW9kZWxDbGFzczxcbiAgJHtlbnRpdHlJZH1TdWJzZXRLZXksXG4gICR7ZW50aXR5SWR9U3Vic2V0TWFwcGluZyxcbiAgdHlwZW9mICR7bmFtZXMuY2FtZWx9U3Vic2V0UXVlcmllcyxcbiAgdHlwZW9mICR7bmFtZXMuY2FtZWx9TG9hZGVyUXVlcmllc1xuPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiJHtlbnRpdHlJZH1cIiwgJHtuYW1lcy5jYW1lbH1TdWJzZXRRdWVyaWVzLCAke25hbWVzLmNhbWVsfUxvYWRlclF1ZXJpZXMpO1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiR0VUXCIsIGNsaWVudHM6IFtcImF4aW9zXCIsIFwidGFuc3RhY2stcXVlcnlcIl0sIHJlc291cmNlTmFtZTogXCIke2VudGl0eUlkfVwiIH0pXG4gIGFzeW5jIGZpbmRCeUlkPFQgZXh0ZW5kcyAke2VudGl0eUlkfVN1YnNldEtleT4oXG4gICAgc3Vic2V0OiBULFxuICAgIGlkOiAke2lkVHNUeXBlfVxuICApOiBQcm9taXNlPCR7ZW50aXR5SWR9U3Vic2V0TWFwcGluZ1tUXT4ge1xuICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHtcbiAgICAgIGlkLFxuICAgICAgbnVtOiAxLFxuICAgICAgcGFnZTogMSxcbiAgICB9KTtcbiAgICBpZiAoIXJvd3NbMF0pIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEV4Y2VwdGlvbigke25vdEZvdW5kRXJyb3J9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm93c1swXTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRPbmU8VCBleHRlbmRzICR7ZW50aXR5SWR9U3Vic2V0S2V5PihcbiAgICBzdWJzZXQ6IFQsXG4gICAgbGlzdFBhcmFtczogJHtlbnRpdHlJZH1MaXN0UGFyYW1zXG4gICk6IFByb21pc2U8JHtlbnRpdHlJZH1TdWJzZXRNYXBwaW5nW1RdIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHtcbiAgICAgIC4uLmxpc3RQYXJhbXMsXG4gICAgICBudW06IDEsXG4gICAgICBwYWdlOiAxLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJvd3NbMF0gPz8gbnVsbDtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIkdFVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLXF1ZXJ5XCJdLCByZXNvdXJjZU5hbWU6IFwiJHtuYW1lcy5jYXBpdGFsUGx1cmFsfVwiIH0pXG4gIGFzeW5jIGZpbmRNYW55PFQgZXh0ZW5kcyAke2VudGl0eUlkfVN1YnNldEtleSwgTFAgZXh0ZW5kcyAke2VudGl0eUlkfUxpc3RQYXJhbXM+KFxuICAgIHN1YnNldDogVCxcbiAgICByYXdQYXJhbXM/OiBMUCxcbiAgKTogUHJvbWlzZTxMaXN0UmVzdWx0PExQLCAke2VudGl0eUlkfVN1YnNldE1hcHBpbmdbVF0+PiB7XG4gICAgLy8gcGFyYW1zIHdpdGggZGVmYXVsdHNcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBudW06IDI0LFxuICAgICAgcGFnZTogMSxcbiAgICAgIHNlYXJjaDogXCIke2RlZi5zZWFyY2h9XCIgYXMgY29uc3QsXG4gICAgICBvcmRlckJ5OiBcIiR7ZGVmLm9yZGVyQnl9XCIgYXMgY29uc3QsXG4gICAgICAuLi5yYXdQYXJhbXMsXG4gICAgfSBzYXRpc2ZpZXMgJHtlbnRpdHlJZH1MaXN0UGFyYW1zO1xuXG4gICAgLy8gYnVpbGQgcXVlcmllc1xuICAgIGNvbnN0IHsgcWIsIG9uU3Vic2V0OiBfIH0gPSB0aGlzLmdldFN1YnNldFF1ZXJpZXMoc3Vic2V0KTtcbiAgICBcbiAgICAvLyBpZFxuICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgIHFiLndoZXJlSW4oXCIke2VudGl0eS50YWJsZX0uaWRcIiwgYXNBcnJheShwYXJhbXMuaWQpKTtcbiAgICB9XG5cbiAgICAvLyBzZWFyY2gta2V5d29yZFxuICAgIGlmIChwYXJhbXMuc2VhcmNoICYmIHBhcmFtcy5rZXl3b3JkICYmIHBhcmFtcy5rZXl3b3JkLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmIChwYXJhbXMuc2VhcmNoID09PSBcImlkXCIpIHtcbiAgICAgICAgcWIud2hlcmUoXCIke2VudGl0eS50YWJsZX0uaWRcIiwgJHtpZFRzVHlwZSA9PT0gXCJzdHJpbmdcIiA/IFwicGFyYW1zLmtleXdvcmRcIiA6IFwiTnVtYmVyKHBhcmFtcy5rZXl3b3JkKVwifSk7XG4gICAgICAgIC8vIH0gZWxzZSBpZiAocGFyYW1zLnNlYXJjaCA9PT0gXCJmaWVsZFwiKSB7XG4gICAgICAgIC8vICAgcWIud2hlcmUoXCIke2VudGl0eS50YWJsZX0uZmllbGRcIiwgXCJsaWtlXCIsIFxcYCVcXCR7cGFyYW1zLmtleXdvcmR9JVxcYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEV4Y2VwdGlvbigke3Vua25vd25TZWFyY2hGaWVsZEVycm9yfSk7XG4gICAgICB9XG4gICAgfVxuICAgICAgXG4gICAgLy8gb3JkZXJCeVxuICAgIGlmIChwYXJhbXMub3JkZXJCeSkge1xuICAgICAgLy8gZGVmYXVsdCBvcmRlckJ5XG4gICAgICBpZiAocGFyYW1zLm9yZGVyQnkgPT09IFwiaWQtZGVzY1wiKSB7XG4gICAgICAgIHFiLm9yZGVyQnkoXCIke2VudGl0eS50YWJsZX0uaWRcIiwgXCJkZXNjXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhoYXVzdGl2ZShwYXJhbXMub3JkZXJCeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZW5oYW5jZXJzID0gdGhpcy5jcmVhdGVFbmhhbmNlcnMoe1xuICAgICAgJHtPYmplY3Qua2V5cyhzdWJzZXRLZXlzKVxuICAgICAgICAubWFwKFxuICAgICAgICAgIChrZXkpID0+IGAke2tleX06IChyb3cpID0+ICh7XG4gICAgICAgICAgLi4ucm93LFxuICAgICAgICAgIC8vIOyEnOu4jOyFi+uzhOuhnCB2aXJ0dWFsIO2VhOuTnCDqs4TsgrDroZzsp4Eg7LaU6rCAXG4gICAgICAgIH0pLGAsXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oXCJcXG5cIil9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlU3Vic2V0UXVlcnkoe1xuICAgICAgc3Vic2V0LFxuICAgICAgcWIsXG4gICAgICBwYXJhbXMsXG4gICAgICBlbmhhbmNlcnMsXG4gICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJQT1NUXCIsIGNsaWVudHM6IFtcImF4aW9zXCIsIFwidGFuc3RhY2stbXV0YXRpb25cIl0gfSlcbiAgYXN5bmMgc2F2ZShcbiAgICBzcGE6ICR7ZW50aXR5SWR9U2F2ZVBhcmFtc1tdXG4gICk6IFByb21pc2U8JHtpZFRzVHlwZX1bXT4ge1xuICAgIGNvbnN0IHdkYiA9IHRoaXMuZ2V0UHVyaShcIndcIik7XG5cbiAgICAvLyByZWdpc3RlclxuICAgIHNwYS5mb3JFYWNoKChzcCkgPT4ge1xuICAgICAgd2RiLnViUmVnaXN0ZXIoXCIke2VudGl0eS50YWJsZX1cIiwgc3ApO1xuICAgIH0pO1xuXG4gICAgLy8gdHJhbnNhY3Rpb25cbiAgICByZXR1cm4gd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIGNvbnN0IGlkcyA9IGF3YWl0IHRyeC51YlVwc2VydChcIiR7ZW50aXR5LnRhYmxlfVwiKTtcblxuICAgICAgcmV0dXJuIGlkcztcbiAgICB9KTtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIlBPU1RcIiwgY2xpZW50czogW1wiYXhpb3NcIiwgXCJ0YW5zdGFjay1tdXRhdGlvblwiXSwgZ3VhcmRzOiBbIFwiYWRtaW5cIiBdIH0pXG4gIGFzeW5jIGRlbChpZHM6ICR7aWRUc1R5cGV9W10pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHdkYiA9IHRoaXMuZ2V0UHVyaShcIndcIik7XG5cbiAgICAvLyB0cmFuc2FjdGlvblxuICAgIGF3YWl0IHdkYi50cmFuc2FjdGlvbihhc3luYyAodHJ4KSA9PiB7XG4gICAgICByZXR1cm4gdHJ4LnRhYmxlKFwiJHtlbnRpdHkudGFibGV9XCIpLndoZXJlSW4oXCIke2VudGl0eS50YWJsZX0uaWRcIiwgaWRzKS5kZWxldGUoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBpZHMubGVuZ3RoO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCAke2VudGl0eUlkfU1vZGVsID0gbmV3ICR7ZW50aXR5SWR9TW9kZWxDbGFzcygpO1xuICAgICAgYC50cmltKCksXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O1NBRWtDO29CQUN5QjtXQUVsQjtjQUVIO21CQUNtQztBQUV6RSxJQUFhLGtCQUFiLGNBQXFDLFNBQVM7Q0FDNUMsY0FBYztFQUNaLE1BQU0sT0FBTztDQUNmO0NBRUEsaUJBQWlCLE9BQTBCO0VBQ3pDLE1BQU0sRUFBRSxRQUFRLE9BQU8sT0FBTztFQUU5QixPQUFPO0dBQ0wsUUFBUSxHQUFHLElBQUk7R0FDZixNQUFNLEdBQUcsTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHO0VBQ2hDO0NBQ0Y7Q0FFQSxzQkFBZ0Q7RUFDOUMsT0FBTyxDQUFDLHdCQUF3QiwwQkFBMEI7Q0FDNUQ7Q0FFQSxNQUFNLE9BQU8sRUFBRSxZQUFzQztFQUNuRCxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQztFQUc5QixNQUFNLGlCQUFpQix1QkFBdUIsTUFEZCxlQUFlLEdBQUcsU0FBUyxXQUFXLENBQ1A7RUFHL0QsTUFBTSxjQUFjLE1BRFcsZUFBZSxHQUFHLFNBQVMsVUFBVSxFQUNoRCxDQUErQjtFQUVuRCxNQUFNLFFBQVEsY0FBYyxlQUFlLFFBQVE7RUFDbkQsTUFBTSxTQUFTLGNBQWMsSUFBSSxRQUFRO0VBRXpDLE1BQU0sUUFBUSxJQUFJLG9CQUFvQjtFQUN0QyxJQUFJLGdCQUFnQixhQUFhLFFBQy9CLE1BQU0sSUFBSSxNQUFNLHlCQUF5QixVQUFVO0VBRXJELE1BQU0sTUFBTSxNQUFNLFdBQVcsZUFBZSxRQUFRO0VBR3BELE1BQU0sZ0JBQWdCLCtCQUErQixNQUFNLFFBQVE7RUFDbkUsTUFBTSwwQkFBMEI7RUFHaEMsTUFBTSxTQUFTLE9BQU8sVUFBVTtFQUNoQyxNQUFNLFdBQVcsV0FBVyxZQUFZLFdBQVcsU0FBUyxXQUFXO0VBRXZFLE9BQU87R0FDTCxHQUFHLEtBQUssaUJBQWlCLEtBQUs7R0FDOUIsTUFBTTs7O0lBR1IsU0FBUztJQUNULFNBQVM7OztJQUdULE1BQU0sTUFBTTtJQUNaLE1BQU0sTUFBTTs7V0FFTCxTQUFTLGNBQWMsU0FBUyx1QkFBdUIsTUFBTSxHQUFHOzs7O0lBSXZFLFNBQVM7O1FBRUwsU0FBUztJQUNiLFNBQVM7SUFDVCxTQUFTO1dBQ0YsTUFBTSxNQUFNO1dBQ1osTUFBTSxNQUFNOzs7YUFHVixTQUFTLEtBQUssTUFBTSxNQUFNLGlCQUFpQixNQUFNLE1BQU07OzttRkFHZSxTQUFTOzZCQUMvRCxTQUFTOztVQUU1QixTQUFTO2VBQ0osU0FBUzs7Ozs7OztvQ0FPWSxjQUFjOzs7Ozs7NEJBTXRCLFNBQVM7O2tCQUVuQixTQUFTO2VBQ1osU0FBUzs7Ozs7Ozs7OzttRkFVMkQsTUFBTSxjQUFjOzZCQUMxRSxTQUFTLHdCQUF3QixTQUFTOzs7OEJBR3pDLFNBQVM7Ozs7O2lCQUt0QixJQUFJLE9BQU87a0JBQ1YsSUFBSSxRQUFROztrQkFFWixTQUFTOzs7Ozs7O29CQU9QLE9BQU8sTUFBTTs7Ozs7O29CQU1iLE9BQU8sTUFBTSxRQUFRLGFBQWEsV0FBVyxtQkFBbUIseUJBQXlCOzt5QkFFcEYsT0FBTyxNQUFNOzt3Q0FFRSx3QkFBd0I7Ozs7Ozs7O3NCQVExQyxPQUFPLE1BQU07Ozs7Ozs7UUFPM0IsT0FBTyxLQUFLLFVBQVUsQ0FBQyxDQUN0QixLQUNFLFFBQVEsR0FBRyxJQUFJOzs7WUFJbEIsQ0FBQyxDQUNBLEtBQUssSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7OztXQWNULFNBQVM7ZUFDTCxTQUFTOzs7Ozt3QkFLQSxPQUFPLE1BQU07Ozs7O3dDQUtHLE9BQU8sTUFBTTs7Ozs7OzttQkFPbEMsU0FBUzs7Ozs7MEJBS0YsT0FBTyxNQUFNLGNBQWMsT0FBTyxNQUFNOzs7Ozs7O2VBT25ELFNBQVMsY0FBYyxTQUFTO1FBQ3ZDLEtBQUs7R0FDUCxZQUFZLENBQUM7RUFDZjtDQUNGO0FBQ0YifQ==
|
|
199
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudGVtcGxhdGUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlbXBsYXRlL2ltcGxlbWVudGF0aW9ucy9tb2RlbC50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB6IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uLy4uL2FwaVwiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBOYWl0ZSB9IGZyb20gXCIuLi8uLi9uYWl0ZS9uYWl0ZVwiO1xuaW1wb3J0IHsgdHlwZSBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBnZXRab2RUeXBlQnlJZCwgem9kVHlwZVRvUmVuZGVyaW5nTm9kZSB9IGZyb20gXCIuLi96b2QtY29udmVydGVyXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZV9fdmlld19saXN0IH0gZnJvbSBcIi4vdmlld19saXN0LnRlbXBsYXRlXCI7XG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX21vZGVsIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIm1vZGVsXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQpIHtcbiAgICBjb25zdCB7IGRpciB9ID0gU29uYW11LmNvbmZpZy5hcGk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBgJHtkaXJ9L3NyYy9hcHBsaWNhdGlvbmAsXG4gICAgICBwYXRoOiBgJHtuYW1lcy5mc30vJHtuYW1lcy5mc30ubW9kZWwudHNgLFxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSBnZXRSZXF1aXJlZERpY3RLZXlzKCk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgcmV0dXJuIFtcImVycm9yLmVudGl0eU5vdEZvdW5kXCIsIFwiZXJyb3IudW5rbm93blNlYXJjaEZpZWxkXCJdO1xuICB9XG5cbiAgYXN5bmMgcmVuZGVyKHsgZW50aXR5SWQgfTogVGVtcGxhdGVPcHRpb25zW1wibW9kZWxcIl0pIHtcbiAgICBOYWl0ZS50KFwicmVuZGVyXCIsIHsgZW50aXR5SWQgfSk7XG5cbiAgICBjb25zdCBsaXN0UGFyYW1zWm9kVHlwZSA9IGF3YWl0IGdldFpvZFR5cGVCeUlkKGAke2VudGl0eUlkfUxpc3RQYXJhbXNgKTtcbiAgICBjb25zdCBsaXN0UGFyYW1zTm9kZSA9IHpvZFR5cGVUb1JlbmRlcmluZ05vZGUobGlzdFBhcmFtc1pvZFR5cGUpO1xuXG4gICAgY29uc3Qgc3Vic2V0S2V5Wm9kVHlwZSA9IGF3YWl0IGdldFpvZFR5cGVCeUlkKGAke2VudGl0eUlkfVN1YnNldEtleWApO1xuICAgIGNvbnN0IHN1YnNldEtleXMgPVxuICAgICAgLyogU0FGRVRZOiDsg53shLHrkJwgKlN1YnNldEtleSDtg4DsnoXsnYAgZW51bSDsiqTtgqTrp4jroZwg65Ox66Gd65Cc64ukLiAqLyAoc3Vic2V0S2V5Wm9kVHlwZSBhcyB6LlpvZEVudW0pXG4gICAgICAgIC5lbnVtO1xuXG4gICAgY29uc3QgbmFtZXMgPSBFbnRpdHlNYW5hZ2VyLmdldE5hbWVzRnJvbUlkKGVudGl0eUlkKTtcbiAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG5cbiAgICBjb25zdCB2bFRwbCA9IG5ldyBUZW1wbGF0ZV9fdmlld19saXN0KCk7XG4gICAgaWYgKGxpc3RQYXJhbXNOb2RlPy5jaGlsZHJlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGxpc3RQYXJhbXNOb2Rl6rCAIOyXhuyKteuLiOuLpC4gJHtlbnRpdHlJZH1gKTtcbiAgICB9XG4gICAgY29uc3QgZGVmID0gdmxUcGwuZ2V0RGVmYXVsdChsaXN0UGFyYW1zTm9kZS5jaGlsZHJlbik7XG5cbiAgICAvLyDsl5Drn6wg66mU7Iuc7KeAIOyDneyEsVxuICAgIGNvbnN0IG5vdEZvdW5kRXJyb3IgPSBgU0QoXCJlcnJvci5lbnRpdHlOb3RGb3VuZFwiKShcIiR7bmFtZXMuY2FwaXRhbH1cIiwgaWQpYDtcbiAgICBjb25zdCB1bmtub3duU2VhcmNoRmllbGRFcnJvciA9IGBTRChcImVycm9yLnVua25vd25TZWFyY2hGaWVsZFwiKShwYXJhbXMuc2VhcmNoKWA7XG5cbiAgICAvLyBQSyDtg4DsnoXsl5Ag65Sw66W4IFR5cGVTY3JpcHQg7YOA7J6FIOqysOyglVxuICAgIGNvbnN0IHBrVHlwZSA9IGVudGl0eS5nZXRQa1R5cGUoKTtcbiAgICBjb25zdCBpZFRzVHlwZSA9IHBrVHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBwa1R5cGUgPT09IFwidXVpZFwiID8gXCJzdHJpbmdcIiA6IFwibnVtYmVyXCI7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKG5hbWVzKSxcbiAgICAgIGJvZHk6IGBcbmltcG9ydCB7IEJhc2VNb2RlbENsYXNzLCB0eXBlIExpc3RSZXN1bHQsIGFzQXJyYXksIE5vdEZvdW5kRXhjZXB0aW9uLCBCYWRSZXF1ZXN0RXhjZXB0aW9uLCBhcGksIGV4aGF1c3RpdmUgfSBmcm9tICdzb25hbXUnO1xuaW1wb3J0IHtcbiAgJHtlbnRpdHlJZH1TdWJzZXRLZXksXG4gICR7ZW50aXR5SWR9U3Vic2V0TWFwcGluZyxcbn0gZnJvbSBcIi4uL3NvbmFtdS5nZW5lcmF0ZWRcIjtcbmltcG9ydCB7XG4gICR7bmFtZXMuY2FtZWx9U3Vic2V0UXVlcmllcyxcbiAgJHtuYW1lcy5jYW1lbH1Mb2FkZXJRdWVyaWVzLFxufSBmcm9tIFwiLi4vc29uYW11LmdlbmVyYXRlZC5zc29cIjtcbmltcG9ydCB7ICR7ZW50aXR5SWR9TGlzdFBhcmFtcywgJHtlbnRpdHlJZH1TYXZlUGFyYW1zIH0gZnJvbSBcIi4vJHtuYW1lcy5mc30udHlwZXNcIjtcbmltcG9ydCB7IFNEIH0gZnJvbSBcIi4uLy4uL2kxOG4vc2QuZ2VuZXJhdGVkXCI7XG5cbi8qXG4gICR7ZW50aXR5SWR9IE1vZGVsXG4qL1xuY2xhc3MgJHtlbnRpdHlJZH1Nb2RlbENsYXNzIGV4dGVuZHMgQmFzZU1vZGVsQ2xhc3M8XG4gICR7ZW50aXR5SWR9U3Vic2V0S2V5LFxuICAke2VudGl0eUlkfVN1YnNldE1hcHBpbmcsXG4gIHR5cGVvZiAke25hbWVzLmNhbWVsfVN1YnNldFF1ZXJpZXMsXG4gIHR5cGVvZiAke25hbWVzLmNhbWVsfUxvYWRlclF1ZXJpZXNcbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIiR7ZW50aXR5SWR9XCIsICR7bmFtZXMuY2FtZWx9U3Vic2V0UXVlcmllcywgJHtuYW1lcy5jYW1lbH1Mb2FkZXJRdWVyaWVzKTtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIkdFVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLXF1ZXJ5XCJdLCByZXNvdXJjZU5hbWU6IFwiJHtlbnRpdHlJZH1cIiB9KVxuICBhc3luYyBmaW5kQnlJZDxUIGV4dGVuZHMgJHtlbnRpdHlJZH1TdWJzZXRLZXk+KFxuICAgIHN1YnNldDogVCxcbiAgICBpZDogJHtpZFRzVHlwZX1cbiAgKTogUHJvbWlzZTwke2VudGl0eUlkfVN1YnNldE1hcHBpbmdbVF0+IHtcbiAgICBjb25zdCB7IHJvd3MgfSA9IGF3YWl0IHRoaXMuZmluZE1hbnkoc3Vic2V0LCB7XG4gICAgICBpZCxcbiAgICAgIG51bTogMSxcbiAgICAgIHBhZ2U6IDEsXG4gICAgfSk7XG4gICAgaWYgKCFyb3dzWzBdKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFeGNlcHRpb24oJHtub3RGb3VuZEVycm9yfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvd3NbMF07XG4gIH1cblxuICBhc3luYyBmaW5kT25lPFQgZXh0ZW5kcyAke2VudGl0eUlkfVN1YnNldEtleT4oXG4gICAgc3Vic2V0OiBULFxuICAgIGxpc3RQYXJhbXM6ICR7ZW50aXR5SWR9TGlzdFBhcmFtc1xuICApOiBQcm9taXNlPCR7ZW50aXR5SWR9U3Vic2V0TWFwcGluZ1tUXSB8IG51bGw+IHtcbiAgICBjb25zdCB7IHJvd3MgfSA9IGF3YWl0IHRoaXMuZmluZE1hbnkoc3Vic2V0LCB7XG4gICAgICAuLi5saXN0UGFyYW1zLFxuICAgICAgbnVtOiAxLFxuICAgICAgcGFnZTogMSxcbiAgICB9KTtcblxuICAgIHJldHVybiByb3dzWzBdID8/IG51bGw7XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJHRVRcIiwgY2xpZW50czogW1wiYXhpb3NcIiwgXCJ0YW5zdGFjay1xdWVyeVwiXSwgcmVzb3VyY2VOYW1lOiBcIiR7bmFtZXMuY2FwaXRhbFBsdXJhbH1cIiB9KVxuICBhc3luYyBmaW5kTWFueTxUIGV4dGVuZHMgJHtlbnRpdHlJZH1TdWJzZXRLZXksIExQIGV4dGVuZHMgJHtlbnRpdHlJZH1MaXN0UGFyYW1zPihcbiAgICBzdWJzZXQ6IFQsXG4gICAgcmF3UGFyYW1zPzogTFAsXG4gICk6IFByb21pc2U8TGlzdFJlc3VsdDxMUCwgJHtlbnRpdHlJZH1TdWJzZXRNYXBwaW5nW1RdPj4ge1xuICAgIC8vIHBhcmFtcyB3aXRoIGRlZmF1bHRzXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgbnVtOiAyNCxcbiAgICAgIHBhZ2U6IDEsXG4gICAgICBzZWFyY2g6IFwiJHtkZWYuc2VhcmNofVwiIGFzIGNvbnN0LFxuICAgICAgb3JkZXJCeTogXCIke2RlZi5vcmRlckJ5fVwiIGFzIGNvbnN0LFxuICAgICAgLi4ucmF3UGFyYW1zLFxuICAgIH0gc2F0aXNmaWVzICR7ZW50aXR5SWR9TGlzdFBhcmFtcztcblxuICAgIC8vIGJ1aWxkIHF1ZXJpZXNcbiAgICBjb25zdCB7IHFiLCBvblN1YnNldDogXyB9ID0gdGhpcy5nZXRTdWJzZXRRdWVyaWVzKHN1YnNldCk7XG4gICAgXG4gICAgLy8gaWRcbiAgICBpZiAocGFyYW1zLmlkKSB7XG4gICAgICBxYi53aGVyZUluKFwiJHtlbnRpdHkudGFibGV9LmlkXCIsIGFzQXJyYXkocGFyYW1zLmlkKSk7XG4gICAgfVxuXG4gICAgLy8gc2VhcmNoLWtleXdvcmRcbiAgICBpZiAocGFyYW1zLnNlYXJjaCAmJiBwYXJhbXMua2V5d29yZCAmJiBwYXJhbXMua2V5d29yZC5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAocGFyYW1zLnNlYXJjaCA9PT0gXCJpZFwiKSB7XG4gICAgICAgIHFiLndoZXJlKFwiJHtlbnRpdHkudGFibGV9LmlkXCIsICR7aWRUc1R5cGUgPT09IFwic3RyaW5nXCIgPyBcInBhcmFtcy5rZXl3b3JkXCIgOiBcIk51bWJlcihwYXJhbXMua2V5d29yZClcIn0pO1xuICAgICAgICAvLyB9IGVsc2UgaWYgKHBhcmFtcy5zZWFyY2ggPT09IFwiZmllbGRcIikge1xuICAgICAgICAvLyAgIHFiLndoZXJlKFwiJHtlbnRpdHkudGFibGV9LmZpZWxkXCIsIFwibGlrZVwiLCBcXGAlXFwke3BhcmFtcy5rZXl3b3JkfSVcXGApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFeGNlcHRpb24oJHt1bmtub3duU2VhcmNoRmllbGRFcnJvcn0pO1xuICAgICAgfVxuICAgIH1cbiAgICAgIFxuICAgIC8vIG9yZGVyQnlcbiAgICBpZiAocGFyYW1zLm9yZGVyQnkpIHtcbiAgICAgIC8vIGRlZmF1bHQgb3JkZXJCeVxuICAgICAgaWYgKHBhcmFtcy5vcmRlckJ5ID09PSBcImlkLWRlc2NcIikge1xuICAgICAgICBxYi5vcmRlckJ5KFwiJHtlbnRpdHkudGFibGV9LmlkXCIsIFwiZGVzY1wiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4aGF1c3RpdmUocGFyYW1zLm9yZGVyQnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGVuaGFuY2VycyA9IHRoaXMuY3JlYXRlRW5oYW5jZXJzKHtcbiAgICAgICR7T2JqZWN0LmtleXMoc3Vic2V0S2V5cylcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAoa2V5KSA9PiBgJHtrZXl9OiAocm93KSA9PiAoe1xuICAgICAgICAgIC4uLnJvdyxcbiAgICAgICAgICAvLyDshJzruIzshYvrs4TroZwgdmlydHVhbCDtlYTrk5wg6rOE7IKw66Gc7KeBIOy2lOqwgFxuICAgICAgICB9KSxgLFxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiXFxuXCIpfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVN1YnNldFF1ZXJ5KHtcbiAgICAgIHN1YnNldCxcbiAgICAgIHFiLFxuICAgICAgcGFyYW1zLFxuICAgICAgZW5oYW5jZXJzLFxuICAgICAgZGVidWc6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiUE9TVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLW11dGF0aW9uXCJdIH0pXG4gIGFzeW5jIHNhdmUoXG4gICAgc3BhOiAke2VudGl0eUlkfVNhdmVQYXJhbXNbXVxuICApOiBQcm9taXNlPCR7aWRUc1R5cGV9W10+IHtcbiAgICBjb25zdCB3ZGIgPSB0aGlzLmdldFB1cmkoXCJ3XCIpO1xuXG4gICAgLy8gcmVnaXN0ZXJcbiAgICBzcGEuZm9yRWFjaCgoc3ApID0+IHtcbiAgICAgIHdkYi51YlJlZ2lzdGVyKFwiJHtlbnRpdHkudGFibGV9XCIsIHNwKTtcbiAgICB9KTtcblxuICAgIC8vIHRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHdkYi50cmFuc2FjdGlvbihhc3luYyAodHJ4KSA9PiB7XG4gICAgICBjb25zdCBpZHMgPSBhd2FpdCB0cngudWJVcHNlcnQoXCIke2VudGl0eS50YWJsZX1cIik7XG5cbiAgICAgIHJldHVybiBpZHM7XG4gICAgfSk7XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJQT1NUXCIsIGNsaWVudHM6IFtcImF4aW9zXCIsIFwidGFuc3RhY2stbXV0YXRpb25cIl0sIGd1YXJkczogWyBcImFkbWluXCIgXSB9KVxuICBhc3luYyBkZWwoaWRzOiAke2lkVHNUeXBlfVtdKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB3ZGIgPSB0aGlzLmdldFB1cmkoXCJ3XCIpO1xuXG4gICAgLy8gdHJhbnNhY3Rpb25cbiAgICBhd2FpdCB3ZGIudHJhbnNhY3Rpb24oYXN5bmMgKHRyeCkgPT4ge1xuICAgICAgcmV0dXJuIHRyeC50YWJsZShcIiR7ZW50aXR5LnRhYmxlfVwiKS53aGVyZUluKFwiJHtlbnRpdHkudGFibGV9LmlkXCIsIGlkcykuZGVsZXRlKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaWRzLmxlbmd0aDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgJHtlbnRpdHlJZH1Nb2RlbCA9IG5ldyAke2VudGl0eUlkfU1vZGVsQ2xhc3MoKTtcbiAgICAgIGAudHJpbSgpLFxuICAgICAgaW1wb3J0S2V5czogW10sXG4gICAgfTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztTQUVrQztvQkFDeUI7V0FFbEI7Y0FFSDttQkFDbUM7QUFFekUsSUFBYSxrQkFBYixjQUFxQyxTQUFTO0NBQzVDLGNBQWM7RUFDWixNQUFNLE9BQU87Q0FDZjtDQUVBLGlCQUFpQixPQUEwQjtFQUN6QyxNQUFNLEVBQUUsUUFBUSxPQUFPLE9BQU87RUFFOUIsT0FBTztHQUNMLFFBQVEsR0FBRyxJQUFJO0dBQ2YsTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLE1BQU0sR0FBRztFQUNoQztDQUNGO0NBRUEsc0JBQWdEO0VBQzlDLE9BQU8sQ0FBQyx3QkFBd0IsMEJBQTBCO0NBQzVEO0NBRUEsTUFBTSxPQUFPLEVBQUUsWUFBc0M7RUFDbkQsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7RUFHOUIsTUFBTSxpQkFBaUIsdUJBQXVCLE1BRGQsZUFBZSxHQUFHLFNBQVMsV0FBVyxDQUNQO0VBRy9ELE1BQU0sY0FDOEMsTUFGckIsZUFBZSxHQUFHLFNBQVMsVUFBVSxFQUVoQixDQUMvQztFQUVMLE1BQU0sUUFBUSxjQUFjLGVBQWUsUUFBUTtFQUNuRCxNQUFNLFNBQVMsY0FBYyxJQUFJLFFBQVE7RUFFekMsTUFBTSxRQUFRLElBQUksb0JBQW9CO0VBQ3RDLElBQUksZ0JBQWdCLGFBQWEsUUFDL0IsTUFBTSxJQUFJLE1BQU0seUJBQXlCLFVBQVU7RUFFckQsTUFBTSxNQUFNLE1BQU0sV0FBVyxlQUFlLFFBQVE7RUFHcEQsTUFBTSxnQkFBZ0IsK0JBQStCLE1BQU0sUUFBUTtFQUNuRSxNQUFNLDBCQUEwQjtFQUdoQyxNQUFNLFNBQVMsT0FBTyxVQUFVO0VBQ2hDLE1BQU0sV0FBVyxXQUFXLFlBQVksV0FBVyxTQUFTLFdBQVc7RUFFdkUsT0FBTztHQUNMLEdBQUcsS0FBSyxpQkFBaUIsS0FBSztHQUM5QixNQUFNOzs7SUFHUixTQUFTO0lBQ1QsU0FBUzs7O0lBR1QsTUFBTSxNQUFNO0lBQ1osTUFBTSxNQUFNOztXQUVMLFNBQVMsY0FBYyxTQUFTLHVCQUF1QixNQUFNLEdBQUc7Ozs7SUFJdkUsU0FBUzs7UUFFTCxTQUFTO0lBQ2IsU0FBUztJQUNULFNBQVM7V0FDRixNQUFNLE1BQU07V0FDWixNQUFNLE1BQU07OzthQUdWLFNBQVMsS0FBSyxNQUFNLE1BQU0saUJBQWlCLE1BQU0sTUFBTTs7O21GQUdlLFNBQVM7NkJBQy9ELFNBQVM7O1VBRTVCLFNBQVM7ZUFDSixTQUFTOzs7Ozs7O29DQU9ZLGNBQWM7Ozs7Ozs0QkFNdEIsU0FBUzs7a0JBRW5CLFNBQVM7ZUFDWixTQUFTOzs7Ozs7Ozs7O21GQVUyRCxNQUFNLGNBQWM7NkJBQzFFLFNBQVMsd0JBQXdCLFNBQVM7Ozs4QkFHekMsU0FBUzs7Ozs7aUJBS3RCLElBQUksT0FBTztrQkFDVixJQUFJLFFBQVE7O2tCQUVaLFNBQVM7Ozs7Ozs7b0JBT1AsT0FBTyxNQUFNOzs7Ozs7b0JBTWIsT0FBTyxNQUFNLFFBQVEsYUFBYSxXQUFXLG1CQUFtQix5QkFBeUI7O3lCQUVwRixPQUFPLE1BQU07O3dDQUVFLHdCQUF3Qjs7Ozs7Ozs7c0JBUTFDLE9BQU8sTUFBTTs7Ozs7OztRQU8zQixPQUFPLEtBQUssVUFBVSxDQUFDLENBQ3RCLEtBQ0UsUUFBUSxHQUFHLElBQUk7OztZQUlsQixDQUFDLENBQ0EsS0FBSyxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7O1dBY1QsU0FBUztlQUNMLFNBQVM7Ozs7O3dCQUtBLE9BQU8sTUFBTTs7Ozs7d0NBS0csT0FBTyxNQUFNOzs7Ozs7O21CQU9sQyxTQUFTOzs7OzswQkFLRixPQUFPLE1BQU0sY0FBYyxPQUFPLE1BQU07Ozs7Ozs7ZUFPbkQsU0FBUyxjQUFjLFNBQVM7UUFDdkMsS0FBSztHQUNQLFlBQVksQ0FBQztFQUNmO0NBQ0Y7QUFDRiJ9
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Sonamu, init_sonamu } from "../../api/sonamu.js";
|
|
2
1
|
import { ApiParamType, init_types } from "../../types/types.js";
|
|
3
2
|
import { apiParamToTsCode, apiParamTypeToTsType, init_code_converters } from "../../api/code-converters.js";
|
|
3
|
+
import { Sonamu, init_sonamu } from "../../api/sonamu.js";
|
|
4
4
|
import { Template, init_template } from "../template.js";
|
|
5
5
|
import inflection from "inflection";
|
|
6
6
|
import { diff, unique } from "radashi";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/sd.template.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;;IAKxC,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK;;;;IAW7E,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC;;;;;;;
|
|
1
|
+
{"version":3,"file":"sd.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/sd.template.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;;IAKxC,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK;;;;IAW7E,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC;;;;;;;IAqUrC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAoC/B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,YAAY;CAGrB"}
|