taon 18.0.20 → 18.0.22
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/README.md +3 -7
- package/assets/shared/logo-header-admin-mode.png +0 -0
- package/assets/shared/shared_folder_info.txt +1 -1
- package/browser/esm2022/lib/base-classes/base-class.mjs +2 -2
- package/browser/esm2022/lib/base-classes/base-controller.mjs +3 -2
- package/browser/esm2022/lib/base-classes/base-migration.mjs +23 -0
- package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
- package/browser/esm2022/lib/base-classes/base.mjs +3 -1
- package/browser/esm2022/lib/context-db-migrations.mjs +425 -0
- package/browser/esm2022/lib/create-context.mjs +17 -4
- package/browser/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
- package/browser/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
- package/browser/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
- package/browser/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
- package/browser/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
- package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
- package/browser/esm2022/lib/endpoint-context.mjs +83 -49
- package/browser/esm2022/lib/index.mjs +4 -1
- package/browser/esm2022/lib/inject.mjs +1 -1
- package/browser/esm2022/lib/models.mjs +30 -1
- package/browser/esm2022/lib/symbols.mjs +2 -1
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
- package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
- package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
- package/browser/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
- package/browser/fesm2022/taon.mjs +688 -420
- package/browser/fesm2022/taon.mjs.map +1 -1
- package/browser/lib/base-classes/base-class.d.ts +1 -1
- package/browser/lib/base-classes/base-context.d.ts +3 -0
- package/browser/lib/base-classes/base-controller.d.ts +2 -1
- package/browser/lib/base-classes/base-migration.d.ts +12 -0
- package/browser/lib/base-classes/base.d.ts +5 -0
- package/browser/lib/context-db-migrations.d.ts +18 -0
- package/browser/lib/create-context.d.ts +4 -1
- package/browser/lib/decorators/classes/controller-decorator.d.ts +3 -0
- package/browser/lib/decorators/classes/entity-decorator.d.ts +3 -0
- package/browser/lib/decorators/classes/migration-decorator.d.ts +8 -0
- package/browser/lib/decorators/classes/provider-decorator.d.ts +3 -0
- package/browser/lib/decorators/classes/repository-decorator.d.ts +3 -0
- package/browser/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
- package/browser/lib/endpoint-context.d.ts +12 -5
- package/browser/lib/index.d.ts +14 -1
- package/browser/lib/models.d.ts +44 -19
- package/browser/lib/symbols.d.ts +1 -0
- package/browser/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
- package/client/esm2022/lib/base-classes/base-class.mjs +2 -2
- package/client/esm2022/lib/base-classes/base-controller.mjs +3 -2
- package/client/esm2022/lib/base-classes/base-migration.mjs +23 -0
- package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
- package/client/esm2022/lib/base-classes/base.mjs +3 -1
- package/client/esm2022/lib/context-db-migrations.mjs +425 -0
- package/client/esm2022/lib/create-context.mjs +17 -4
- package/client/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
- package/client/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
- package/client/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
- package/client/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
- package/client/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
- package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
- package/client/esm2022/lib/endpoint-context.mjs +83 -49
- package/client/esm2022/lib/index.mjs +4 -1
- package/client/esm2022/lib/inject.mjs +1 -1
- package/client/esm2022/lib/models.mjs +30 -1
- package/client/esm2022/lib/symbols.mjs +2 -1
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
- package/client/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
- package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
- package/client/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
- package/client/fesm2022/taon.mjs +688 -420
- package/client/fesm2022/taon.mjs.map +1 -1
- package/client/lib/base-classes/base-class.d.ts +1 -1
- package/client/lib/base-classes/base-context.d.ts +3 -0
- package/client/lib/base-classes/base-controller.d.ts +2 -1
- package/client/lib/base-classes/base-migration.d.ts +12 -0
- package/client/lib/base-classes/base.d.ts +5 -0
- package/client/lib/context-db-migrations.d.ts +18 -0
- package/client/lib/create-context.d.ts +4 -1
- package/client/lib/decorators/classes/controller-decorator.d.ts +3 -0
- package/client/lib/decorators/classes/entity-decorator.d.ts +3 -0
- package/client/lib/decorators/classes/migration-decorator.d.ts +8 -0
- package/client/lib/decorators/classes/provider-decorator.d.ts +3 -0
- package/client/lib/decorators/classes/repository-decorator.d.ts +3 -0
- package/client/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
- package/client/lib/endpoint-context.d.ts +12 -5
- package/client/lib/index.d.ts +14 -1
- package/client/lib/models.d.ts +44 -19
- package/client/lib/symbols.d.ts +1 -0
- package/client/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
- package/lib/base-classes/base-class.d.ts +1 -1
- package/lib/base-classes/base-class.js +1 -1
- package/lib/base-classes/base-context.d.ts +3 -0
- package/lib/base-classes/base-controller.d.ts +2 -1
- package/lib/base-classes/base-controller.js +2 -1
- package/lib/base-classes/base-controller.js.map +1 -1
- package/lib/base-classes/base-migration.d.ts +11 -0
- package/lib/base-classes/base-migration.js +41 -0
- package/lib/base-classes/base-migration.js.map +1 -0
- package/lib/base-classes/base-repository.js +4 -4
- package/lib/base-classes/base-repository.js.map +1 -1
- package/lib/base-classes/base-subscriber-for-entity.js +19 -19
- package/lib/base-classes/base-subscriber-for-entity.js.map +1 -1
- package/lib/base-classes/base.d.ts +5 -0
- package/lib/base-classes/base.js +2 -0
- package/lib/base-classes/base.js.map +1 -1
- package/lib/context-db-migrations.d.ts +17 -0
- package/lib/context-db-migrations.js +605 -0
- package/lib/context-db-migrations.js.map +1 -0
- package/lib/create-context.d.ts +4 -1
- package/lib/create-context.js +30 -21
- package/lib/create-context.js.map +1 -1
- package/lib/decorators/classes/controller-decorator.d.ts +3 -0
- package/lib/decorators/classes/controller-decorator.js +3 -0
- package/lib/decorators/classes/controller-decorator.js.map +1 -1
- package/lib/decorators/classes/entity-decorator.d.ts +3 -0
- package/lib/decorators/classes/entity-decorator.js +3 -0
- package/lib/decorators/classes/entity-decorator.js.map +1 -1
- package/lib/decorators/classes/migration-decorator.d.ts +7 -0
- package/lib/decorators/classes/migration-decorator.js +27 -0
- package/lib/decorators/classes/migration-decorator.js.map +1 -0
- package/lib/decorators/classes/provider-decorator.d.ts +3 -0
- package/lib/decorators/classes/provider-decorator.js +3 -0
- package/lib/decorators/classes/provider-decorator.js.map +1 -1
- package/lib/decorators/classes/repository-decorator.d.ts +3 -0
- package/lib/decorators/classes/repository-decorator.js +3 -0
- package/lib/decorators/classes/repository-decorator.js.map +1 -1
- package/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
- package/lib/decorators/classes/subscriber-decorator.js +4 -1
- package/lib/decorators/classes/subscriber-decorator.js.map +1 -1
- package/lib/endpoint-context.d.ts +12 -5
- package/lib/endpoint-context.js +234 -189
- package/lib/endpoint-context.js.map +1 -1
- package/lib/index.d.ts +14 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/inject.js +0 -2
- package/lib/inject.js.map +1 -1
- package/lib/models.d.ts +44 -19
- package/lib/models.js +45 -0
- package/lib/models.js.map +1 -1
- package/lib/symbols.d.ts +1 -0
- package/lib/symbols.js +1 -0
- package/lib/symbols.js.map +1 -1
- package/lib/ui/directives/index.js +2 -2
- package/lib/ui/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
- package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +4 -7
- package/lib/ui/taon-admin-mode-configuration/{models/taon-admin-mode-tabs.js → taon-admin.models.js} +1 -1
- package/lib/ui/taon-admin-mode-configuration/taon-admin.models.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +6 -6
- package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
- package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
- package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
- package/lib/ui/taon-progress-bar/index.js +2 -2
- package/lib/ui/taon-session-passcode/index.js +2 -2
- package/lib/ui/taon-table/index.js +2 -2
- package/migrations/index.d.ts +1 -0
- package/migrations/index.js +6 -0
- package/migrations/index.js.map +1 -0
- package/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/migrations/migrations_index._auto-generated_.js +4 -0
- package/migrations/migrations_index._auto-generated_.js.map +1 -0
- package/package.json +7 -7
- package/tmp-environment.json +32 -29
- package/websql/esm2022/lib/base-classes/base-class.mjs +2 -2
- package/websql/esm2022/lib/base-classes/base-controller.mjs +3 -2
- package/websql/esm2022/lib/base-classes/base-migration.mjs +23 -0
- package/websql/esm2022/lib/base-classes/base-repository.mjs +5 -5
- package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
- package/websql/esm2022/lib/base-classes/base.mjs +3 -1
- package/websql/esm2022/lib/context-db-migrations.mjs +274 -0
- package/websql/esm2022/lib/create-context.mjs +17 -4
- package/websql/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
- package/websql/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
- package/websql/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
- package/websql/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
- package/websql/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
- package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
- package/websql/esm2022/lib/endpoint-context.mjs +117 -85
- package/websql/esm2022/lib/index.mjs +4 -1
- package/websql/esm2022/lib/inject.mjs +1 -1
- package/websql/esm2022/lib/models.mjs +28 -1
- package/websql/esm2022/lib/symbols.mjs +2 -1
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
- package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
- package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
- package/websql/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
- package/websql/fesm2022/taon.mjs +569 -460
- package/websql/fesm2022/taon.mjs.map +1 -1
- package/websql/lib/base-classes/base-class.d.ts +1 -1
- package/websql/lib/base-classes/base-context.d.ts +3 -0
- package/websql/lib/base-classes/base-controller.d.ts +2 -1
- package/websql/lib/base-classes/base-migration.d.ts +12 -0
- package/websql/lib/base-classes/base.d.ts +5 -0
- package/websql/lib/context-db-migrations.d.ts +18 -0
- package/websql/lib/create-context.d.ts +4 -1
- package/websql/lib/decorators/classes/controller-decorator.d.ts +3 -0
- package/websql/lib/decorators/classes/entity-decorator.d.ts +3 -0
- package/websql/lib/decorators/classes/migration-decorator.d.ts +8 -0
- package/websql/lib/decorators/classes/provider-decorator.d.ts +3 -0
- package/websql/lib/decorators/classes/repository-decorator.d.ts +3 -0
- package/websql/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
- package/websql/lib/endpoint-context.d.ts +12 -5
- package/websql/lib/index.d.ts +14 -1
- package/websql/lib/models.d.ts +44 -19
- package/websql/lib/symbols.d.ts +1 -0
- package/websql/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
- package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
- package/browser/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
- package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
- package/client/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -2
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +0 -5
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js.map +0 -1
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -29
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -2
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.d.ts +0 -1
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +0 -5
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js.map +0 -1
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +0 -8
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -2
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +0 -5
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js.map +0 -1
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -13
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -2
- package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js.map +0 -1
- package/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -14
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -2
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
- package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
- package/websql/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
- /package/lib/ui/taon-admin-mode-configuration/{models/taon-admin-mode-tabs.d.ts → taon-admin.models.d.ts} +0 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { Helpers, UtilsMigrations } from 'tnp-core/websql';
|
|
2
|
+
import { Models } from './models';
|
|
3
|
+
import { ClassHelpers } from './helpers/class-helpers';
|
|
4
|
+
import { Table, TableIndex, } from 'taon-typeorm/websql'; /* */
|
|
5
|
+
export class ContextDbMigrations {
|
|
6
|
+
constructor(ctx) {
|
|
7
|
+
this.ctx = ctx;
|
|
8
|
+
this.DEFAULT_MIGRATION_TABLE_NAME = 'TAON_MIGRATION_META';
|
|
9
|
+
this.MIGRATION_STATUS_COMPLETED = 'completed';
|
|
10
|
+
this.MIGRATION_STATUS_PENDING = 'pending';
|
|
11
|
+
this.table = new Table({
|
|
12
|
+
name: this.DEFAULT_MIGRATION_TABLE_NAME,
|
|
13
|
+
columns: [
|
|
14
|
+
{
|
|
15
|
+
name: 'id',
|
|
16
|
+
type: 'integer',
|
|
17
|
+
isPrimary: true, // Mark it as the primary key
|
|
18
|
+
isGenerated: true, // Enable auto-generation
|
|
19
|
+
generationStrategy: 'increment', // Use auto-increment strategy
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'name',
|
|
23
|
+
type: 'varchar',
|
|
24
|
+
length: '255',
|
|
25
|
+
isUnique: true, // Ensure the name is unique
|
|
26
|
+
isNullable: false, // Ensure this field is required
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'context',
|
|
30
|
+
type: 'varchar',
|
|
31
|
+
length: '255',
|
|
32
|
+
isNullable: false, // Optional context for migrations (e.g., tenant or module name)
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'applied_at',
|
|
36
|
+
type: 'timestamp',
|
|
37
|
+
default: 'CURRENT_TIMESTAMP', // Automatically set the timestamp
|
|
38
|
+
isNullable: true,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'status',
|
|
42
|
+
type: 'varchar',
|
|
43
|
+
length: '50',
|
|
44
|
+
default: `'${this.MIGRATION_STATUS_COMPLETED}'`,
|
|
45
|
+
isNullable: false,
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async ensureMigrationTableExists() {
|
|
51
|
+
if (this.ctx.remoteHost) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
55
|
+
await queryRunner.connect();
|
|
56
|
+
await queryRunner.startTransaction();
|
|
57
|
+
const hasTable = await queryRunner.hasTable(this.DEFAULT_MIGRATION_TABLE_NAME);
|
|
58
|
+
if (hasTable) {
|
|
59
|
+
this.ctx.logMigrations &&
|
|
60
|
+
console.log(`Table ${this.DEFAULT_MIGRATION_TABLE_NAME} already exists.`);
|
|
61
|
+
await queryRunner.commitTransaction();
|
|
62
|
+
await queryRunner.release();
|
|
63
|
+
return; // Exit early if the table exists
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
await queryRunner.createTable(this.table);
|
|
67
|
+
await queryRunner.createIndex(this.DEFAULT_MIGRATION_TABLE_NAME, new TableIndex({
|
|
68
|
+
name: 'IDX_NAME',
|
|
69
|
+
columnNames: ['name'],
|
|
70
|
+
}));
|
|
71
|
+
await queryRunner.commitTransaction();
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
this.ctx.logMigrations &&
|
|
75
|
+
console.error(`Transaction failed [ensureMigrationTableExists]` + `, rolling back:`, error);
|
|
76
|
+
await queryRunner.rollbackTransaction();
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
await queryRunner.release();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async logSelectALl(name, queryRunner) {
|
|
83
|
+
console.log(name, (await queryRunner.query(`SELECT * FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE context = $1`, [this.ctx.contextName])).map(m => m.name));
|
|
84
|
+
}
|
|
85
|
+
async revertMigrationToTimestamp(timestamp) {
|
|
86
|
+
if (this.ctx.remoteHost) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (!UtilsMigrations.isValidTimestamp(timestamp)) {
|
|
90
|
+
Helpers.throw(`Invalid timestamp provided for migration revert: ${timestamp}`);
|
|
91
|
+
}
|
|
92
|
+
const migrationsClassFns = this.ctx
|
|
93
|
+
.getClassFunByArr(Models.ClassType.MIGRATION)
|
|
94
|
+
.reverse();
|
|
95
|
+
const migrationClassesInstancesToRevert = migrationsClassFns
|
|
96
|
+
.map(classFn => {
|
|
97
|
+
const timestampFromClassName = Number(UtilsMigrations.getTimestampFromClassName(ClassHelpers.getName(classFn)));
|
|
98
|
+
if (timestampFromClassName <= timestamp) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
return this.ctx.getInstanceBy(classFn);
|
|
102
|
+
})
|
|
103
|
+
.filter(f => !!f)
|
|
104
|
+
.map(f => f)
|
|
105
|
+
.filter(migrationInstance => migrationInstance.isReadyToRun());
|
|
106
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
107
|
+
await queryRunner.connect();
|
|
108
|
+
try {
|
|
109
|
+
await queryRunner.startTransaction();
|
|
110
|
+
const appliedMigrationsForContext = await queryRunner.query(`SELECT name FROM ${this.DEFAULT_MIGRATION_TABLE_NAME}
|
|
111
|
+
WHERE status = $1 AND context = $2`, [this.MIGRATION_STATUS_COMPLETED, this.ctx.contextName]);
|
|
112
|
+
const appliedMigrationsForContextNames = appliedMigrationsForContext.map(m => m.name);
|
|
113
|
+
for (const migrationClassInstance of migrationClassesInstancesToRevert) {
|
|
114
|
+
const migrationName = ClassHelpers.getName(migrationClassInstance);
|
|
115
|
+
if (!appliedMigrationsForContextNames.includes(migrationName)) {
|
|
116
|
+
this.ctx.logMigrations &&
|
|
117
|
+
console.warn(`Skipping migration not marked as applied: ${migrationName}`);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
this.ctx.logMigrations &&
|
|
121
|
+
console.log(`Reverting migration: ${migrationName} , context: ${this.ctx.contextName}`);
|
|
122
|
+
await migrationClassInstance.down(queryRunner);
|
|
123
|
+
await queryRunner.query(`DELETE FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE name = $1`, [migrationName]);
|
|
124
|
+
}
|
|
125
|
+
await queryRunner.commitTransaction();
|
|
126
|
+
this.ctx.logMigrations &&
|
|
127
|
+
console.log(`Migrations successfully reverted ` +
|
|
128
|
+
`to the specified timestamp ${timestamp} .`);
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
this.ctx.logMigrations &&
|
|
132
|
+
console.error('Transaction failed, rolling back:', error);
|
|
133
|
+
await queryRunner.rollbackTransaction();
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
await queryRunner.release();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async clearMigrationTable() {
|
|
140
|
+
if (this.ctx.remoteHost) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
144
|
+
await queryRunner.connect();
|
|
145
|
+
await queryRunner.startTransaction();
|
|
146
|
+
try {
|
|
147
|
+
await queryRunner.clearTable(this.DEFAULT_MIGRATION_TABLE_NAME);
|
|
148
|
+
await queryRunner.commitTransaction();
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
this.ctx.logMigrations &&
|
|
152
|
+
console.error('Transaction failed, rolling back:', error);
|
|
153
|
+
await queryRunner.rollbackTransaction();
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
await queryRunner.release();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async markAllMigrationsAsApplied() {
|
|
160
|
+
if (this.ctx.remoteHost) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const migrationsClassFns = this.ctx.getClassFunByArr(Models.ClassType.MIGRATION);
|
|
164
|
+
const migrationClassesInstances = migrationsClassFns
|
|
165
|
+
.map(classFn => this.ctx.getInstanceBy(classFn))
|
|
166
|
+
.map(f => f)
|
|
167
|
+
.filter(migrationInstance => migrationInstance.isReadyToRun());
|
|
168
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
169
|
+
await queryRunner.connect();
|
|
170
|
+
try {
|
|
171
|
+
await queryRunner.startTransaction();
|
|
172
|
+
const allMigrationsInDb = await queryRunner.query(`SELECT name FROM ${this.DEFAULT_MIGRATION_TABLE_NAME}`);
|
|
173
|
+
const allMigrationInDBNames = allMigrationsInDb.map(m => m.name);
|
|
174
|
+
for (const instance of migrationClassesInstances) {
|
|
175
|
+
const migrationName = ClassHelpers.getName(instance);
|
|
176
|
+
if (allMigrationInDBNames.includes(migrationName)) {
|
|
177
|
+
this.ctx.logMigrations &&
|
|
178
|
+
console.log(`Skipping already applied migration: ${migrationName}`);
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
this.ctx.logMigrations &&
|
|
182
|
+
console.log(`Marking migration as applied: ${migrationName}`);
|
|
183
|
+
await queryRunner.query(`INSERT INTO ${this.DEFAULT_MIGRATION_TABLE_NAME} (name, status, context, applied_at) ` +
|
|
184
|
+
`VALUES ($1, $2, $3, CURRENT_TIMESTAMP)`, [
|
|
185
|
+
migrationName,
|
|
186
|
+
this.MIGRATION_STATUS_COMPLETED,
|
|
187
|
+
instance.ctx.contextName,
|
|
188
|
+
]);
|
|
189
|
+
}
|
|
190
|
+
await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME}
|
|
191
|
+
SET status = $1, applied_at = CURRENT_TIMESTAMP
|
|
192
|
+
WHERE status = $2`, [this.MIGRATION_STATUS_COMPLETED, this.MIGRATION_STATUS_PENDING]);
|
|
193
|
+
await queryRunner.commitTransaction();
|
|
194
|
+
this.ctx.logMigrations &&
|
|
195
|
+
console.log('All migrations marked as applied.');
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
this.ctx.logMigrations &&
|
|
199
|
+
console.error('Failed to mark all migrations as applied, rolling back:', error);
|
|
200
|
+
await queryRunner.rollbackTransaction();
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
await queryRunner.release();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
async runAllNotCompletedMigrations() {
|
|
207
|
+
if (this.ctx.remoteHost) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const migrationsClassFns = this.ctx.getClassFunByArr(Models.ClassType.MIGRATION);
|
|
211
|
+
const migrationClassesInstances = migrationsClassFns
|
|
212
|
+
.map(classFn => this.ctx.getInstanceBy(classFn))
|
|
213
|
+
.map(f => f)
|
|
214
|
+
.filter(migrationInstance => migrationInstance.isReadyToRun());
|
|
215
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
216
|
+
await queryRunner.connect();
|
|
217
|
+
try {
|
|
218
|
+
await queryRunner.startTransaction();
|
|
219
|
+
const appliedMigrationsForContext = await queryRunner.query(`SELECT name, status FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} ` +
|
|
220
|
+
`WHERE context = $1`, [this.ctx.contextName]);
|
|
221
|
+
const pendingMigrationsForContext = appliedMigrationsForContext.filter(m => m.status === this.MIGRATION_STATUS_PENDING);
|
|
222
|
+
for (const pendingContextMigration of pendingMigrationsForContext) {
|
|
223
|
+
const migrationInstance = migrationClassesInstances.find(instance => ClassHelpers.getName(instance) === pendingContextMigration.name);
|
|
224
|
+
if (!migrationInstance) {
|
|
225
|
+
this.ctx.logMigrations &&
|
|
226
|
+
console.warn(`Pending migration ${pendingContextMigration.name} not found in loaded migrations.`);
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
this.ctx.logMigrations &&
|
|
230
|
+
console.log(`Completing pending migration: ${pendingContextMigration.name}`);
|
|
231
|
+
await migrationInstance.up(queryRunner);
|
|
232
|
+
await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME}
|
|
233
|
+
SET status = $1, applied_at = CURRENT_TIMESTAMP
|
|
234
|
+
WHERE name = $2`, [this.MIGRATION_STATUS_COMPLETED, pendingContextMigration.name]);
|
|
235
|
+
}
|
|
236
|
+
for (const instance of migrationClassesInstances) {
|
|
237
|
+
const migrationName = ClassHelpers.getName(instance);
|
|
238
|
+
if (appliedMigrationsForContext.some(m => m.name === migrationName)) {
|
|
239
|
+
this.ctx.logMigrations &&
|
|
240
|
+
console.log(`Skipping already applied migration: ${migrationName}`);
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
this.ctx.logMigrations &&
|
|
244
|
+
console.log(`Applying new migration: ${migrationName}`);
|
|
245
|
+
await queryRunner.query(`INSERT INTO ${this.DEFAULT_MIGRATION_TABLE_NAME} (name, status, context, applied_at) ` +
|
|
246
|
+
`VALUES ($1, $2, $3, NULL)`, [migrationName, this.MIGRATION_STATUS_PENDING, this.ctx.contextName]);
|
|
247
|
+
try {
|
|
248
|
+
await instance.up(queryRunner);
|
|
249
|
+
await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME} ` +
|
|
250
|
+
`SET status = '${this.MIGRATION_STATUS_COMPLETED}', applied_at = CURRENT_TIMESTAMP ` +
|
|
251
|
+
`WHERE name = $1`, [migrationName]);
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
this.ctx.logMigrations &&
|
|
255
|
+
console.error(`Failed to apply migration: ${migrationName}`, error);
|
|
256
|
+
await queryRunner.query(`DELETE FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE name = $1`, [migrationName]);
|
|
257
|
+
throw error; // Rethrow to ensure the transaction is rolled back
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
await queryRunner.commitTransaction();
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
this.ctx.logMigrations &&
|
|
264
|
+
console.error('Transaction failed, rolling back:', error);
|
|
265
|
+
await queryRunner.rollbackTransaction();
|
|
266
|
+
}
|
|
267
|
+
finally {
|
|
268
|
+
await queryRunner.release();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
;
|
|
273
|
+
({}); // @--end-of-file-for-module=taon lib/context-db-migrations.ts
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYi1taWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2NvbnRleHQtZGItbWlncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBSyxNQUFNLGlCQUFpQixDQUFDO0FBRzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBd0csS0FBSyxFQUFtQixVQUFVLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxDQUFBLEtBQUs7QUFpQnJMLE1BQU0sT0FBTyxtQkFBbUI7SUErRDlCLFlBQW9CLEdBQW9CO1FBQXBCLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBM0QvQixpQ0FBNEIsR0FBRyxxQkFBcUIsQ0FBQztRQUlyRCwrQkFBMEIsR0FBb0IsV0FBVyxDQUFDO1FBQzFELDZCQUF3QixHQUFvQixTQUFTLENBQUM7UUFJdEQsVUFBSyxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsNEJBQTRCO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsU0FBUztvQkFDZixTQUFTLEVBQUUsSUFBSSxFQUFFLDZCQUE2QjtvQkFDOUMsV0FBVyxFQUFFLElBQUksRUFBRSx5QkFBeUI7b0JBQzVDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSw4QkFBOEI7aUJBQ2hFO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxLQUFLO29CQUNiLFFBQVEsRUFBRSxJQUFJLEVBQUUsNEJBQTRCO29CQUM1QyxVQUFVLEVBQUUsS0FBSyxFQUFFLGdDQUFnQztpQkFDcEQ7Z0JBQ0Q7b0JBRUUsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsVUFBVSxFQUFFLEtBQUssRUFBRSxnRUFBZ0U7aUJBQ3BGO2dCQUNEO29CQUNFLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsV0FBVztvQkFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtDQUFrQztvQkFDaEUsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxJQUFJO29CQUNaLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQywwQkFBMEIsR0FBRztvQkFDL0MsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCO2FBT0Y7U0FDRixDQUFDLENBQUM7SUFNd0MsQ0FBQztJQUk1QyxLQUFLLENBQUMsMEJBQTBCO1FBRTlCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDNUQsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsTUFBTSxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUdyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxRQUFRLENBQ3pDLElBQUksQ0FBQyw0QkFBNEIsQ0FDbEMsQ0FBQztRQUNGLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7Z0JBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQ1QsU0FBUyxJQUFJLENBQUMsNEJBQTRCLGtCQUFrQixDQUM3RCxDQUFDO1lBQ0osTUFBTSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsaUNBQWlDO1FBQzNDLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FDM0IsSUFBSSxDQUFDLDRCQUE0QixFQUNqQyxJQUFJLFVBQVUsQ0FBQztnQkFDYixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDO2FBQ3RCLENBQUMsQ0FDSCxDQUFDO1lBRUYsTUFBTSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FDWCxpREFBaUQsR0FBRyxpQkFBaUIsRUFDckUsS0FBSyxDQUNOLENBQUM7WUFDSixNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFHSCxDQUFDO0lBSU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFZLEVBQUUsV0FBd0I7UUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxJQUFJLEVBQ0osQ0FDRSxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQ3JCLGlCQUFpQixJQUFJLENBQUMsNEJBQTRCLHFCQUFxQixFQUN2RSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQ3ZCLENBQ0YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLDBCQUEwQixDQUFDLFNBQWlCO1FBRWhELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLENBQUMsS0FBSyxDQUNYLG9EQUFvRCxTQUFTLEVBQUUsQ0FDaEUsQ0FBQztRQUNKLENBQUM7UUFHRCxNQUFNLGtCQUFrQixHQUFlLElBQUksQ0FBQyxHQUFHO2FBQzVDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO2FBQzVDLE9BQU8sRUFBRSxDQUFDO1FBR2IsTUFBTSxpQ0FBaUMsR0FDckMsa0JBQWtCO2FBQ2YsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2IsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQ25DLGVBQWUsQ0FBQyx5QkFBeUIsQ0FDdkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FDOUIsQ0FDRixDQUFDO1lBRUYsSUFBSSxzQkFBc0IsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFNeEMsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFjLENBQVEsQ0FBQztRQUN2RCxDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQWtCLENBQUM7YUFDNUIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDNUQsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUdyQyxNQUFNLDJCQUEyQixHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FDekQsb0JBQW9CLElBQUksQ0FBQyw0QkFBNEI7NENBQ2pCLEVBQ3BDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQ3hELENBQUM7WUFFRixNQUFNLGdDQUFnQyxHQUFHLDJCQUEyQixDQUFDLEdBQUcsQ0FDdEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNaLENBQUM7WUFHRixLQUFLLE1BQU0sc0JBQXNCLElBQUksaUNBQWlDLEVBQUUsQ0FBQztnQkFDdkUsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUVuRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7b0JBQzlELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTt3QkFDcEIsT0FBTyxDQUFDLElBQUksQ0FDViw2Q0FBNkMsYUFBYSxFQUFFLENBQzdELENBQUM7b0JBQ0osU0FBUztnQkFDWCxDQUFDO2dCQUVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtvQkFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FDVCx3QkFBd0IsYUFBYSxlQUFlLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQzNFLENBQUM7Z0JBQ0osTUFBTSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBRy9DLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FDckIsZUFBZSxJQUFJLENBQUMsNEJBQTRCLGtCQUFrQixFQUNsRSxDQUFDLGFBQWEsQ0FBQyxDQUNoQixDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO2dCQUNwQixPQUFPLENBQUMsR0FBRyxDQUNULG1DQUFtQztvQkFDakMsOEJBQThCLFNBQVMsSUFBSSxDQUM5QyxDQUFDO1FBQ04sQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7Z0JBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUQsTUFBTSxXQUFXLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMxQyxDQUFDO2dCQUFTLENBQUM7WUFDVCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixDQUFDO0lBRUgsQ0FBQztJQUlELEtBQUssQ0FBQyxtQkFBbUI7UUFFdkIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXJDLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNoRSxNQUFNLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO2dCQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELE1BQU0sV0FBVyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDMUMsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUVILENBQUM7SUFJRCxLQUFLLENBQUMsMEJBQTBCO1FBRTlCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sa0JBQWtCLEdBQWUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FDOUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQzNCLENBQUM7UUFFRixNQUFNLHlCQUF5QixHQUFvQixrQkFBa0I7YUFDbEUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBYyxDQUFDLENBQUM7YUFDdEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBa0IsQ0FBQzthQUM1QixNQUFNLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFakUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBR3JDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUMvQyxvQkFBb0IsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQ3hELENBQUM7WUFFRixNQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVqRSxLQUFLLE1BQU0sUUFBUSxJQUFJLHlCQUF5QixFQUFFLENBQUM7Z0JBQ2pELE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRXJELElBQUkscUJBQXFCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7b0JBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTt3QkFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsYUFBYSxFQUFFLENBQUMsQ0FBQztvQkFDdEUsU0FBUztnQkFDWCxDQUFDO2dCQUVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtvQkFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsYUFBYSxFQUFFLENBQUMsQ0FBQztnQkFHaEUsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUNyQixlQUFlLElBQUksQ0FBQyw0QkFBNEIsdUNBQXVDO29CQUNyRix3Q0FBd0MsRUFDMUM7b0JBQ0UsYUFBYTtvQkFDYixJQUFJLENBQUMsMEJBQTBCO29CQUMvQixRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVc7aUJBQ3pCLENBQ0YsQ0FBQztZQUNKLENBQUM7WUFHRCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQ3JCLFVBQVUsSUFBSSxDQUFDLDRCQUE0Qjs7MkJBRXhCLEVBQ25CLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUNqRSxDQUFDO1lBRUYsTUFBTSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7Z0JBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FDWCx5REFBeUQsRUFDekQsS0FBSyxDQUNOLENBQUM7WUFDSixNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFFSCxDQUFDO0lBSUQsS0FBSyxDQUFDLDRCQUE0QjtRQUVoQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLGtCQUFrQixHQUFlLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQzlELE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUMzQixDQUFDO1FBTUYsTUFBTSx5QkFBeUIsR0FBb0Isa0JBQWtCO2FBQ2xFLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQWMsQ0FBQyxDQUFDO2FBQ3RELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQWtCLENBQUM7YUFDNUIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBUWpFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDNUQsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQU1yQyxNQUFNLDJCQUEyQixHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FDekQsNEJBQTRCLElBQUksQ0FBQyw0QkFBNEIsR0FBRztnQkFDOUQsb0JBQW9CLEVBQ3RCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FDdkIsQ0FBQztZQUdGLE1BQU0sMkJBQTJCLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUNwRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLHdCQUF3QixDQUNoRCxDQUFDO1lBR0YsS0FBSyxNQUFNLHVCQUF1QixJQUFJLDJCQUEyQixFQUFFLENBQUM7Z0JBQ2xFLE1BQU0saUJBQWlCLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUN0RCxRQUFRLENBQUMsRUFBRSxDQUNULFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssdUJBQXVCLENBQUMsSUFBSSxDQUNsRSxDQUFDO2dCQUVGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7d0JBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQ1YscUJBQXFCLHVCQUF1QixDQUFDLElBQUksa0NBQWtDLENBQ3BGLENBQUM7b0JBQ0osU0FBUztnQkFDWCxDQUFDO2dCQUVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtvQkFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FDVCxpQ0FBaUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQ2hFLENBQUM7Z0JBQ0osTUFBTSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBR3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FDckIsVUFBVSxJQUFJLENBQUMsNEJBQTRCOzsyQkFFMUIsRUFDakIsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQ2hFLENBQUM7WUFDSixDQUFDO1lBSUQsS0FBSyxNQUFNLFFBQVEsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO2dCQUNqRCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVyRCxJQUFJLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO3dCQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxhQUFhLEVBQUUsQ0FBQyxDQUFDO29CQUN0RSxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO29CQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixhQUFhLEVBQUUsQ0FBQyxDQUFDO2dCQUUxRCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQ3JCLGVBQWUsSUFBSSxDQUFDLDRCQUE0Qix1Q0FBdUM7b0JBQ3JGLDJCQUEyQixFQUM3QixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FDckUsQ0FBQztnQkFFRixJQUFJLENBQUM7b0JBRUgsTUFBTSxRQUFRLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUcvQixNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQ3JCLFVBQVUsSUFBSSxDQUFDLDRCQUE0QixHQUFHO3dCQUM1QyxpQkFBaUIsSUFBSSxDQUFDLDBCQUEwQixvQ0FBb0M7d0JBQ3BGLGlCQUFpQixFQUNuQixDQUFDLGFBQWEsQ0FBQyxDQUNoQixDQUFDO2dCQUNKLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7d0JBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLGFBQWEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUd0RSxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQ3JCLGVBQWUsSUFBSSxDQUFDLDRCQUE0QixrQkFBa0IsRUFDbEUsQ0FBQyxhQUFhLENBQUMsQ0FDaEIsQ0FBQztvQkFFRixNQUFNLEtBQUssQ0FBQyxDQUFDLG1EQUFtRDtnQkFDbEUsQ0FBQztZQUNILENBQUM7WUFJRCxNQUFNLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO2dCQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELE1BQU0sV0FBVyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDMUMsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUVILENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOERBQThEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgSGVscGVycywgVXRpbHNNaWdyYXRpb25zLCBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEJhc2VNaWdyYXRpb24gfSBmcm9tICcuL2Jhc2UtY2xhc3Nlcy9iYXNlLW1pZ3JhdGlvbic7XG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyAgIENvbHVtbiwgICBEYXRhU291cmNlLCAgIEVudGl0eSwgICBFbnRpdHlTY2hlbWEsICAgSW5kZXgsICAgUHJpbWFyeUdlbmVyYXRlZENvbHVtbiwgICBRdWVyeVJ1bm5lciwgICBUYWJsZSwgICBUYWJsZUNvbHVtbiwgICBUYWJsZUluZGV4LCB9IGZyb20gJ3Rhb24tdHlwZW9ybS93ZWJzcWwnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5cblxuXG5leHBvcnQgdHlwZSBNaWdyYXRpb25TdGF0dXMgPSAnY29tcGxldGVkJyB8ICdwZW5kaW5nJztcblxuZXhwb3J0IGNsYXNzIENvbnRleHREYk1pZ3JhdGlvbnMge1xuXG5cblxuICByZWFkb25seSBERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FID0gJ1RBT05fTUlHUkFUSU9OX01FVEEnO1xuXG5cblxuICByZWFkb25seSBNSUdSQVRJT05fU1RBVFVTX0NPTVBMRVRFRDogTWlncmF0aW9uU3RhdHVzID0gJ2NvbXBsZXRlZCc7XG4gIHJlYWRvbmx5IE1JR1JBVElPTl9TVEFUVVNfUEVORElORzogTWlncmF0aW9uU3RhdHVzID0gJ3BlbmRpbmcnO1xuXG5cblxuICByZWFkb25seSB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgbmFtZTogdGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FLFxuICAgIGNvbHVtbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICBpc1ByaW1hcnk6IHRydWUsIC8vIE1hcmsgaXQgYXMgdGhlIHByaW1hcnkga2V5XG4gICAgICAgIGlzR2VuZXJhdGVkOiB0cnVlLCAvLyBFbmFibGUgYXV0by1nZW5lcmF0aW9uXG4gICAgICAgIGdlbmVyYXRpb25TdHJhdGVneTogJ2luY3JlbWVudCcsIC8vIFVzZSBhdXRvLWluY3JlbWVudCBzdHJhdGVneVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICB0eXBlOiAndmFyY2hhcicsXG4gICAgICAgIGxlbmd0aDogJzI1NScsXG4gICAgICAgIGlzVW5pcXVlOiB0cnVlLCAvLyBFbnN1cmUgdGhlIG5hbWUgaXMgdW5pcXVlXG4gICAgICAgIGlzTnVsbGFibGU6IGZhbHNlLCAvLyBFbnN1cmUgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICAgICAgfSxcbiAgICAgIHtcblxuICAgICAgICBuYW1lOiAnY29udGV4dCcsXG4gICAgICAgIHR5cGU6ICd2YXJjaGFyJyxcbiAgICAgICAgbGVuZ3RoOiAnMjU1JyxcbiAgICAgICAgaXNOdWxsYWJsZTogZmFsc2UsIC8vIE9wdGlvbmFsIGNvbnRleHQgZm9yIG1pZ3JhdGlvbnMgKGUuZy4sIHRlbmFudCBvciBtb2R1bGUgbmFtZSlcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdhcHBsaWVkX2F0JyxcbiAgICAgICAgdHlwZTogJ3RpbWVzdGFtcCcsXG4gICAgICAgIGRlZmF1bHQ6ICdDVVJSRU5UX1RJTUVTVEFNUCcsIC8vIEF1dG9tYXRpY2FsbHkgc2V0IHRoZSB0aW1lc3RhbXBcbiAgICAgICAgaXNOdWxsYWJsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICB0eXBlOiAndmFyY2hhcicsXG4gICAgICAgIGxlbmd0aDogJzUwJyxcbiAgICAgICAgZGVmYXVsdDogYCcke3RoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUR9J2AsXG4gICAgICAgIGlzTnVsbGFibGU6IGZhbHNlLFxuICAgICAgfSxcblxuXG5cblxuXG5cbiAgICBdLFxuICB9KTtcblxuXG5cblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY3R4OiBFbmRwb2ludENvbnRleHQpIHt9XG5cblxuXG4gIGFzeW5jIGVuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzKCkge1xuXG4gICAgaWYgKHRoaXMuY3R4LnJlbW90ZUhvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmN0eC5jb25uZWN0aW9uLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcblxuXG4gICAgY29uc3QgaGFzVGFibGUgPSBhd2FpdCBxdWVyeVJ1bm5lci5oYXNUYWJsZShcbiAgICAgIHRoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRSxcbiAgICApO1xuICAgIGlmIChoYXNUYWJsZSkge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgVGFibGUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IGFscmVhZHkgZXhpc3RzLmAsXG4gICAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgICAgcmV0dXJuOyAvLyBFeGl0IGVhcmx5IGlmIHRoZSB0YWJsZSBleGlzdHNcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY3JlYXRlVGFibGUodGhpcy50YWJsZSk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jcmVhdGVJbmRleChcbiAgICAgICAgdGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FLFxuICAgICAgICBuZXcgVGFibGVJbmRleCh7XG4gICAgICAgICAgbmFtZTogJ0lEWF9OQU1FJyxcbiAgICAgICAgICBjb2x1bW5OYW1lczogWyduYW1lJ10sXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBUcmFuc2FjdGlvbiBmYWlsZWQgW2Vuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzXWAgKyBgLCByb2xsaW5nIGJhY2s6YCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cblxuXG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBhc3luYyBsb2dTZWxlY3RBTGwobmFtZTogc3RyaW5nLCBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIG5hbWUsXG4gICAgICAoXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBTRUxFQ1QgKiBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBXSEVSRSBjb250ZXh0ID0gJDFgLFxuICAgICAgICAgIFt0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICAgIClcbiAgICAgICkubWFwKG0gPT4gbS5uYW1lKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghVXRpbHNNaWdyYXRpb25zLmlzVmFsaWRUaW1lc3RhbXAodGltZXN0YW1wKSkge1xuICAgICAgSGVscGVycy50aHJvdyhcbiAgICAgICAgYEludmFsaWQgdGltZXN0YW1wIHByb3ZpZGVkIGZvciBtaWdyYXRpb24gcmV2ZXJ0OiAke3RpbWVzdGFtcH1gLFxuICAgICAgKTtcbiAgICB9XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4XG4gICAgICAuZ2V0Q2xhc3NGdW5CeUFycihNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTilcbiAgICAgIC5yZXZlcnNlKCk7XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXNUb1JldmVydDogQmFzZU1pZ3JhdGlvbltdID1cbiAgICAgIG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgICAubWFwKGNsYXNzRm4gPT4ge1xuICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcEZyb21DbGFzc05hbWUgPSBOdW1iZXIoXG4gICAgICAgICAgICBVdGlsc01pZ3JhdGlvbnMuZ2V0VGltZXN0YW1wRnJvbUNsYXNzTmFtZShcbiAgICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoY2xhc3NGbiksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodGltZXN0YW1wRnJvbUNsYXNzTmFtZSA8PSB0aW1lc3RhbXApIHtcblxuXG5cblxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkgYXMgYW55O1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGYgPT4gISFmKVxuICAgICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgICAuZmlsdGVyKG1pZ3JhdGlvbkluc3RhbmNlID0+IG1pZ3JhdGlvbkluc3RhbmNlLmlzUmVhZHlUb1J1bigpKTtcblxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cblxuICAgICAgY29uc3QgYXBwbGllZE1pZ3JhdGlvbnNGb3JDb250ZXh0ID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBTRUxFQ1QgbmFtZSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfVxuICAgICAgICAgV0hFUkUgc3RhdHVzID0gJDEgQU5EIGNvbnRleHQgPSAkMmAsXG4gICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCB0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHROYW1lcyA9IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5tYXAoXG4gICAgICAgIG0gPT4gbS5uYW1lLFxuICAgICAgKTtcblxuXG4gICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvbkNsYXNzSW5zdGFuY2Ugb2YgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlc1RvUmV2ZXJ0KSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShtaWdyYXRpb25DbGFzc0luc3RhbmNlKTtcblxuICAgICAgICBpZiAoIWFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dE5hbWVzLmluY2x1ZGVzKG1pZ3JhdGlvbk5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgU2tpcHBpbmcgbWlncmF0aW9uIG5vdCBtYXJrZWQgYXMgYXBwbGllZDogJHttaWdyYXRpb25OYW1lfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFJldmVydGluZyBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX0gLCBjb250ZXh0OiAke3RoaXMuY3R4LmNvbnRleHROYW1lfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgbWlncmF0aW9uQ2xhc3NJbnN0YW5jZS5kb3duKHF1ZXJ5UnVubmVyKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBERUxFVEUgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gV0hFUkUgbmFtZSA9ICQxYCxcbiAgICAgICAgICBbbWlncmF0aW9uTmFtZV0sXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBNaWdyYXRpb25zIHN1Y2Nlc3NmdWxseSByZXZlcnRlZCBgICtcbiAgICAgICAgICAgIGB0byB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcCAke3RpbWVzdGFtcH0gLmAsXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcignVHJhbnNhY3Rpb24gZmFpbGVkLCByb2xsaW5nIGJhY2s6JywgZXJyb3IpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgYXN5bmMgY2xlYXJNaWdyYXRpb25UYWJsZSgpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY2xlYXJUYWJsZSh0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUUpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKCdUcmFuc2FjdGlvbiBmYWlsZWQsIHJvbGxpbmcgYmFjazonLCBlcnJvcik7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgfVxuXG5cblxuICBhc3luYyBtYXJrQWxsTWlncmF0aW9uc0FzQXBwbGllZCgpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4LmdldENsYXNzRnVuQnlBcnIoXG4gICAgICBNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTixcbiAgICApO1xuXG4gICAgY29uc3QgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlczogQmFzZU1pZ3JhdGlvbltdID0gbWlncmF0aW9uc0NsYXNzRm5zXG4gICAgICAubWFwKGNsYXNzRm4gPT4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkpXG4gICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgLmZpbHRlcihtaWdyYXRpb25JbnN0YW5jZSA9PiBtaWdyYXRpb25JbnN0YW5jZS5pc1JlYWR5VG9SdW4oKSk7XG5cbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuY3R4LmNvbm5lY3Rpb24uY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuXG5cbiAgICAgIGNvbnN0IGFsbE1pZ3JhdGlvbnNJbkRiID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBTRUxFQ1QgbmFtZSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfWAsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhbGxNaWdyYXRpb25JbkRCTmFtZXMgPSBhbGxNaWdyYXRpb25zSW5EYi5tYXAobSA9PiBtLm5hbWUpO1xuXG4gICAgICBmb3IgKGNvbnN0IGluc3RhbmNlIG9mIG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXMpIHtcbiAgICAgICAgY29uc3QgbWlncmF0aW9uTmFtZSA9IENsYXNzSGVscGVycy5nZXROYW1lKGluc3RhbmNlKTtcblxuICAgICAgICBpZiAoYWxsTWlncmF0aW9uSW5EQk5hbWVzLmluY2x1ZGVzKG1pZ3JhdGlvbk5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS5sb2coYFNraXBwaW5nIGFscmVhZHkgYXBwbGllZCBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX1gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTWFya2luZyBtaWdyYXRpb24gYXMgYXBwbGllZDogJHttaWdyYXRpb25OYW1lfWApO1xuXG5cbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgICAgYElOU0VSVCBJTlRPICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSAobmFtZSwgc3RhdHVzLCBjb250ZXh0LCBhcHBsaWVkX2F0KSBgICtcbiAgICAgICAgICAgIGBWQUxVRVMgKCQxLCAkMiwgJDMsIENVUlJFTlRfVElNRVNUQU1QKWAsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgbWlncmF0aW9uTmFtZSxcbiAgICAgICAgICAgIHRoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUQsXG4gICAgICAgICAgICBpbnN0YW5jZS5jdHguY29udGV4dE5hbWUsXG4gICAgICAgICAgXSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuXG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgYFVQREFURSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX1cbiAgICAgICAgIFNFVCBzdGF0dXMgPSAkMSwgYXBwbGllZF9hdCA9IENVUlJFTlRfVElNRVNUQU1QXG4gICAgICAgICBXSEVSRSBzdGF0dXMgPSAkMmAsXG4gICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCB0aGlzLk1JR1JBVElPTl9TVEFUVVNfUEVORElOR10sXG4gICAgICApO1xuXG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmxvZygnQWxsIG1pZ3JhdGlvbnMgbWFya2VkIGFzIGFwcGxpZWQuJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnRmFpbGVkIHRvIG1hcmsgYWxsIG1pZ3JhdGlvbnMgYXMgYXBwbGllZCwgcm9sbGluZyBiYWNrOicsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgfVxuXG5cblxuICBhc3luYyBydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCkge1xuXG4gICAgaWYgKHRoaXMuY3R4LnJlbW90ZUhvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbWlncmF0aW9uc0NsYXNzRm5zOiBGdW5jdGlvbltdID0gdGhpcy5jdHguZ2V0Q2xhc3NGdW5CeUFycihcbiAgICAgIE1vZGVscy5DbGFzc1R5cGUuTUlHUkFUSU9OLFxuICAgICk7XG5cblxuXG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXM6IEJhc2VNaWdyYXRpb25bXSA9IG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgLm1hcChjbGFzc0ZuID0+IHRoaXMuY3R4LmdldEluc3RhbmNlQnkoY2xhc3NGbiBhcyBhbnkpKVxuICAgICAgLm1hcChmID0+IGYgYXMgQmFzZU1pZ3JhdGlvbilcbiAgICAgIC5maWx0ZXIobWlncmF0aW9uSW5zdGFuY2UgPT4gbWlncmF0aW9uSW5zdGFuY2UuaXNSZWFkeVRvUnVuKCkpO1xuXG5cblxuXG5cblxuXG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmN0eC5jb25uZWN0aW9uLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcblxuXG5cblxuXG4gICAgICBjb25zdCBhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHQgPSBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgYFNFTEVDVCBuYW1lLCBzdGF0dXMgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gYCArXG4gICAgICAgICAgYFdIRVJFIGNvbnRleHQgPSAkMWAsXG4gICAgICAgIFt0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICApO1xuXG5cbiAgICAgIGNvbnN0IHBlbmRpbmdNaWdyYXRpb25zRm9yQ29udGV4dCA9IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5maWx0ZXIoXG4gICAgICAgIG0gPT4gbS5zdGF0dXMgPT09IHRoaXMuTUlHUkFUSU9OX1NUQVRVU19QRU5ESU5HLFxuICAgICAgKTtcblxuXG4gICAgICBmb3IgKGNvbnN0IHBlbmRpbmdDb250ZXh0TWlncmF0aW9uIG9mIHBlbmRpbmdNaWdyYXRpb25zRm9yQ29udGV4dCkge1xuICAgICAgICBjb25zdCBtaWdyYXRpb25JbnN0YW5jZSA9IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXMuZmluZChcbiAgICAgICAgICBpbnN0YW5jZSA9PlxuICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoaW5zdGFuY2UpID09PSBwZW5kaW5nQ29udGV4dE1pZ3JhdGlvbi5uYW1lLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghbWlncmF0aW9uSW5zdGFuY2UpIHtcbiAgICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBQZW5kaW5nIG1pZ3JhdGlvbiAke3BlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWV9IG5vdCBmb3VuZCBpbiBsb2FkZWQgbWlncmF0aW9ucy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBDb21wbGV0aW5nIHBlbmRpbmcgbWlncmF0aW9uOiAke3BlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWV9YCxcbiAgICAgICAgICApO1xuICAgICAgICBhd2FpdCBtaWdyYXRpb25JbnN0YW5jZS51cChxdWVyeVJ1bm5lcik7XG5cblxuICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgICBgVVBEQVRFICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfVxuICAgICAgICAgICBTRVQgc3RhdHVzID0gJDEsIGFwcGxpZWRfYXQgPSBDVVJSRU5UX1RJTUVTVEFNUFxuICAgICAgICAgICBXSEVSRSBuYW1lID0gJDJgLFxuICAgICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCBwZW5kaW5nQ29udGV4dE1pZ3JhdGlvbi5uYW1lXSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuXG5cbiAgICAgIGZvciAoY29uc3QgaW5zdGFuY2Ugb2YgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlcykge1xuICAgICAgICBjb25zdCBtaWdyYXRpb25OYW1lID0gQ2xhc3NIZWxwZXJzLmdldE5hbWUoaW5zdGFuY2UpO1xuXG4gICAgICAgIGlmIChhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHQuc29tZShtID0+IG0ubmFtZSA9PT0gbWlncmF0aW9uTmFtZSkpIHtcbiAgICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgU2tpcHBpbmcgYWxyZWFkeSBhcHBsaWVkIG1pZ3JhdGlvbjogJHttaWdyYXRpb25OYW1lfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKGBBcHBseWluZyBuZXcgbWlncmF0aW9uOiAke21pZ3JhdGlvbk5hbWV9YCk7XG5cbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgICAgYElOU0VSVCBJTlRPICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSAobmFtZSwgc3RhdHVzLCBjb250ZXh0LCBhcHBsaWVkX2F0KSBgICtcbiAgICAgICAgICAgIGBWQUxVRVMgKCQxLCAkMiwgJDMsIE5VTEwpYCxcbiAgICAgICAgICBbbWlncmF0aW9uTmFtZSwgdGhpcy5NSUdSQVRJT05fU1RBVFVTX1BFTkRJTkcsIHRoaXMuY3R4LmNvbnRleHROYW1lXSxcbiAgICAgICAgKTtcblxuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgYXdhaXQgaW5zdGFuY2UudXAocXVlcnlSdW5uZXIpO1xuXG5cbiAgICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgICAgIGBVUERBVEUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IGAgK1xuICAgICAgICAgICAgICBgU0VUIHN0YXR1cyA9ICcke3RoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUR9JywgYXBwbGllZF9hdCA9IENVUlJFTlRfVElNRVNUQU1QIGAgK1xuICAgICAgICAgICAgICBgV0hFUkUgbmFtZSA9ICQxYCxcbiAgICAgICAgICAgIFttaWdyYXRpb25OYW1lXSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBhcHBseSBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX1gLCBlcnJvcik7XG5cblxuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgICAgYERFTEVURSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBXSEVSRSBuYW1lID0gJDFgLFxuICAgICAgICAgICAgW21pZ3JhdGlvbk5hbWVdLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aHJvdyBlcnJvcjsgLy8gUmV0aHJvdyB0byBlbnN1cmUgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrXG4gICAgICAgIH1cbiAgICAgIH1cblxuXG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcignVHJhbnNhY3Rpb24gZmFpbGVkLCByb2xsaW5nIGJhY2s6JywgZXJyb3IpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvY29udGV4dC1kYi1taWdyYXRpb25zLnRzIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Helpers } from 'tnp-core/websql';
|
|
2
2
|
import { EndpointContext } from './endpoint-context';
|
|
3
3
|
import { ENV } from './env';
|
|
4
|
-
import {
|
|
4
|
+
import { TaonAdminService } from './ui/taon-admin-mode-configuration/taon-admin.service';
|
|
5
5
|
export const createContext = (configFn) => {
|
|
6
6
|
let config = configFn(ENV);
|
|
7
7
|
const endpointContextRef = new EndpointContext(config, configFn);
|
|
@@ -19,6 +19,9 @@ export const createContext = (configFn) => {
|
|
|
19
19
|
get subscribers() {
|
|
20
20
|
return config.subscribers;
|
|
21
21
|
},
|
|
22
|
+
get migrations() {
|
|
23
|
+
return config.migrations;
|
|
24
|
+
},
|
|
22
25
|
},
|
|
23
26
|
get contexts() {
|
|
24
27
|
return config.contexts;
|
|
@@ -68,13 +71,14 @@ export const createContext = (configFn) => {
|
|
|
68
71
|
await endpointContextRef.initEntities();
|
|
69
72
|
await endpointContextRef.initSubscribers();
|
|
70
73
|
await endpointContextRef.initDatabaseConnection();
|
|
71
|
-
endpointContextRef.
|
|
74
|
+
await endpointContextRef.dbMigrations.ensureMigrationTableExists();
|
|
75
|
+
endpointContextRef.initControllers();
|
|
72
76
|
endpointContextRef.startServer();
|
|
73
77
|
endpointContextRef.writeActiveRoutes();
|
|
74
78
|
await endpointContextRef.initClasses();
|
|
75
79
|
let keepWebsqlDbDataAfterReload = false;
|
|
76
80
|
keepWebsqlDbDataAfterReload =
|
|
77
|
-
|
|
81
|
+
TaonAdminService.Instance?.keepWebsqlDbDataAfterReload;
|
|
78
82
|
if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {
|
|
79
83
|
Helpers.info(`[taon] Keep websql data after reload`);
|
|
80
84
|
}
|
|
@@ -82,6 +86,15 @@ export const createContext = (configFn) => {
|
|
|
82
86
|
await endpointContextRef.reinitControllers();
|
|
83
87
|
}
|
|
84
88
|
///#region TODO this may be usefull but for now
|
|
89
|
+
if (endpointContextRef.onlyMigrationRun) {
|
|
90
|
+
await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
|
|
91
|
+
}
|
|
92
|
+
else if (endpointContextRef.onlyMigrationRevertToTimestamp) {
|
|
93
|
+
await endpointContextRef.dbMigrations.revertMigrationToTimestamp(endpointContextRef.onlyMigrationRevertToTimestamp);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
|
|
97
|
+
}
|
|
85
98
|
resolve(endpointContextRef);
|
|
86
99
|
});
|
|
87
100
|
});
|
|
@@ -105,4 +118,4 @@ export const createContext = (configFn) => {
|
|
|
105
118
|
};
|
|
106
119
|
;
|
|
107
120
|
({}); // @--end-of-file-for-module=taon lib/create-context.ts
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU9sRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FVM0IsUUFFeUUsRUFDekUsRUFBRTtJQUNGLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQixNQUFNLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqRSxNQUFNLEdBQUcsR0FBRztRQUVWLEtBQUssRUFBRTtZQW1CTCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFlBQVk7Z0JBQ2QsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLFNBQVM7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7U0FDRjtRQUdELElBQUksUUFBUTtZQUNWLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxXQUFXO1lBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzVCLENBQUM7UUFHRDs7O1dBR0c7UUFDSCxLQUFLLENBQUMsS0FBSztZQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7b0JBQzVCLCtCQUErQixFQUFFLElBQUk7aUJBQ3RDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLGtCQUFrQixDQUFDO1FBQzVCLENBQUM7UUFDRDs7O1dBR0c7UUFDSCxJQUFJLFNBQVM7WUFDWCxPQUFPLGtCQUFrQixDQUFDO1FBQzVCLENBQUM7UUFDRCxnQkFBZ0IsQ0FBSSxJQUErQjtZQUNqRCxPQUFPLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsUUFBUSxDQUFJLElBQStCO1lBQ3pDLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdELE9BQU8sUUFBZSxDQUFDO1FBY3pCLENBQUM7UUFHRDs7O1dBR0c7UUFDSCxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBR2xCLEVBQTRCLEVBQUU7WUFDN0IsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pELFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDcEIsTUFBTSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7d0JBQzVCLEdBQUcsZUFBZTtxQkFDbkIsQ0FBQyxDQUFDO29CQUVILElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7b0JBQzdELENBQUM7b0JBRUQsTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDeEMsTUFBTSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFFM0MsTUFBTSxrQkFBa0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQU9sRCxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDbEMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBRWpDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBR3ZDLE1BQU0sa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3ZDLElBQUksMkJBQTJCLEdBQUcsS0FBSyxDQUFDO29CQUV4QywyQkFBMkI7d0JBQ3pCLFNBQVMsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUM7b0JBRWpELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLDJCQUEyQixFQUFFLENBQUM7d0JBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQztvQkFDdkQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE1BQU0sa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFDL0MsQ0FBQztvQkFDRCwrQ0FBK0M7b0JBZS9DLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVEOzs7V0FHRztRQUNILElBQUksUUFBUTtZQUNWLE9BQU87Z0JBQ0wsSUFBSSxNQUFNO29CQUNSLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDO2dCQUMzQyxDQUFDO2dCQUNELElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztJQUNGLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBR0QsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5cbmltcG9ydCB7IEVOViB9IGZyb20gJy4vZW52JztcblxuaW1wb3J0IHsgVGFvbkFkbWluIH0gZnJvbSAnLi91aS90YW9uLWFkbWluLW1vZGUtY29uZmlndXJhdGlvbi90YW9uLWFkbWluLnNlcnZpY2UnO1xuXG5cblxuXG5cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvbnRleHQgPSA8XG5cbiAgQ1RYIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgb2JqZWN0PixcbiAgQ1RSTCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIEVOVElUWSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIFJFUE8gZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBQUk9WSURFUiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIFNVQlNDUklCRVIgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuXG4+KFxuICBjb25maWdGbjogKFxuICAgIGVudjogYW55LFxuICApID0+IE1vZGVscy5Db250ZXh0T3B0aW9uczxDVFgsIENUUkwsIEVOVElUWSwgUkVQTywgUFJPVklERVIsIFNVQlNDUklCRVI+LFxuKSA9PiB7XG4gIGxldCBjb25maWcgPSBjb25maWdGbihFTlYpO1xuXG4gIGNvbnN0IGVuZHBvaW50Q29udGV4dFJlZiA9IG5ldyBFbmRwb2ludENvbnRleHQoY29uZmlnLCBjb25maWdGbik7XG5cbiAgY29uc3QgcmVzID0ge1xuXG4gICAgdHlwZXM6IHtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgICAgIGdldCBjb250cm9sbGVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5jb250cm9sbGVycztcbiAgICAgIH0sXG4gICAgICBnZXQgcmVwb3NpdG9yaWVzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLnJlcG9zaXRvcmllcztcbiAgICAgIH0sXG4gICAgICBnZXQgcHJvdmlkZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLnByb3ZpZGVycztcbiAgICAgIH0sXG4gICAgICBnZXQgc3Vic2NyaWJlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcuc3Vic2NyaWJlcnM7XG4gICAgICB9LFxuICAgIH0sXG5cblxuICAgIGdldCBjb250ZXh0cygpIHtcbiAgICAgIHJldHVybiBjb25maWcuY29udGV4dHM7XG4gICAgfSxcbiAgICBnZXQgY29udGV4dE5hbWUoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHROYW1lO1xuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogLSBnZXQgcmVmZXJlbmNlIHRvIGludGVybmFsIGNvbnRleHRcbiAgICAgKi9cbiAgICBhc3luYyBfX3JlZigpIHtcbiAgICAgIGlmICghZW5kcG9pbnRDb250ZXh0UmVmLmluaXRlZCkge1xuICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdCh7XG4gICAgICAgICAgaW5pdEZyb21SZWNydXNpdmVDb250ZXh0UmVzb3ZsZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogb25seSBmb3IgaW50ZXJuYWwgdXNlXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBnZXQgX19yZWZTeW5jKCkge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIGdldENsYXNzSW5zdGFuY2U8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5nZXRJbnN0YW5jZUJ5KGN0b3IpO1xuICAgIH0sXG5cbiAgICBnZXRDbGFzczxUPihjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCB7XG4gICAgICBjb25zdCBjbGFzc0Z1biA9IGVuZHBvaW50Q29udGV4dFJlZi5nZXRDbGFzc0Z1bkJ5Q2xhc3MoY3Rvcik7XG4gICAgICByZXR1cm4gY2xhc3NGdW4gYXMgYW55O1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgfSxcblxuXG4gICAgLyoqXG4gICAgICogLSBjcmVhdGUgY29udHJvbGxlciBpbnN0YW5jZXMgZm9yIGNvbnRleHRcbiAgICAgKiAtIGluaXQgZGF0YWJhc2UgKGlmIGVuYWJsZSkgKyBtaWdhdGlvbiBzY3JpcHRzXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZTogYXN5bmMgKG92ZXJyaWRlT3B0aW9ucz86IHtcbiAgICAgIG92ZXJyaWRlSG9zdD86IHN0cmluZztcbiAgICAgIG92ZXJyaWRlUmVtb3RlSG9zdD86IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTxFbmRwb2ludENvbnRleHQ+ID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0KHtcbiAgICAgICAgICAgIC4uLm92ZXJyaWRlT3B0aW9ucyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChjb25maWcuYWJzdHJhY3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWJzdHJhY3QgY29udGV4dCBjYW4gbm90IGJlIGluaXRpYWxpemVkYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRFbnRpdGllcygpO1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0U3Vic2NyaWJlcnMoKTtcblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0RGF0YWJhc2VDb25uZWN0aW9uKCk7XG5cblxuXG5cblxuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRNZXRhZGF0YSgpO1xuICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5zdGFydFNlcnZlcigpO1xuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLndyaXRlQWN0aXZlUm91dGVzKCk7XG5cblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0Q2xhc3NlcygpO1xuICAgICAgICAgIGxldCBrZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQgPSBmYWxzZTtcblxuICAgICAgICAgIGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9XG4gICAgICAgICAgICBUYW9uQWRtaW4uSW5zdGFuY2Uua2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkO1xuXG4gICAgICAgICAgaWYgKCFIZWxwZXJzLmlzTm9kZSAmJiBrZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQpIHtcbiAgICAgICAgICAgIEhlbHBlcnMuaW5mbyhgW3Rhb25dIEtlZXAgd2Vic3FsIGRhdGEgYWZ0ZXIgcmVsb2FkYCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5yZWluaXRDb250cm9sbGVycygpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLy8jcmVnaW9uIFRPRE8gdGhpcyBtYXkgYmUgdXNlZnVsbCBidXQgZm9yIG5vd1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgICAgICAgICByZXNvbHZlKGVuZHBvaW50Q29udGV4dFJlZik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlYWx0aW1lIGNvbW11bmljYXRpb24gd2l0aCBzZXJ2ZXJcbiAgICAgKiBVZHAgc29ja2V0LmlvIChvciBpcGMpIGJhc2VkLlxuICAgICAqL1xuICAgIGdldCByZWFsdGltZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldCBjbGllbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZUNsaWVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHNlcnZlcigpIHtcbiAgICAgICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmLnJlYWx0aW1lU2VydmVyO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gcmVzO1xufTtcblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvY3JlYXRlLWNvbnRleHQudHMiXX0=
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBT3pGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQVczQixRQVVDLEVBQ0QsRUFBRTtJQUNGLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQixNQUFNLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqRSxNQUFNLEdBQUcsR0FBRztRQUVWLEtBQUssRUFBRTtZQW1CTCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFlBQVk7Z0JBQ2QsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLFNBQVM7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFVBQVU7Z0JBQ1osT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQzNCLENBQUM7U0FDRjtRQUdELElBQUksUUFBUTtZQUNWLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxX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QUksUUFBUTtZQUNWLE9BQU87Z0JBQ0wsSUFBSSxNQUFNO29CQUNSLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDO2dCQUMzQyxDQUFDO2dCQUNELElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztJQUNGLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBR0QsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5cbmltcG9ydCB7IEVOViB9IGZyb20gJy4vZW52JztcblxuaW1wb3J0IHsgVGFvbkFkbWluU2VydmljZSB9IGZyb20gJy4vdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi5zZXJ2aWNlJztcblxuXG5cblxuXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDb250ZXh0ID0gPFxuXG4gIENUWCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG9iamVjdD4sXG4gIENUUkwgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBFTlRJVFkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBSRVBPIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgUFJPVklERVIgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBTVUJTQ1JJQkVSIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgTUlHUkFUSU9OIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcblxuPihcbiAgY29uZmlnRm46IChcbiAgICBlbnY6IGFueSxcbiAgKSA9PiBNb2RlbHMuQ29udGV4dE9wdGlvbnM8XG4gICAgQ1RYLFxuICAgIENUUkwsXG4gICAgRU5USVRZLFxuICAgIFJFUE8sXG4gICAgUFJPVklERVIsXG4gICAgU1VCU0NSSUJFUixcbiAgICBNSUdSQVRJT05cbiAgPixcbikgPT4ge1xuICBsZXQgY29uZmlnID0gY29uZmlnRm4oRU5WKTtcblxuICBjb25zdCBlbmRwb2ludENvbnRleHRSZWYgPSBuZXcgRW5kcG9pbnRDb250ZXh0KGNvbmZpZywgY29uZmlnRm4pO1xuXG4gIGNvbnN0IHJlcyA9IHtcblxuICAgIHR5cGVzOiB7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICBnZXQgY29udHJvbGxlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcuY29udHJvbGxlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHJlcG9zaXRvcmllcygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5yZXBvc2l0b3JpZXM7XG4gICAgICB9LFxuICAgICAgZ2V0IHByb3ZpZGVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5wcm92aWRlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHN1YnNjcmliZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLnN1YnNjcmliZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCBtaWdyYXRpb25zKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLm1pZ3JhdGlvbnM7XG4gICAgICB9LFxuICAgIH0sXG5cblxuICAgIGdldCBjb250ZXh0cygpIHtcbiAgICAgIHJldHVybiBjb25maWcuY29udGV4dHM7XG4gICAgfSxcbiAgICBnZXQgY29udGV4dE5hbWUoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHROYW1lO1xuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogLSBnZXQgcmVmZXJlbmNlIHRvIGludGVybmFsIGNvbnRleHRcbiAgICAgKi9cbiAgICBhc3luYyBfX3JlZigpIHtcbiAgICAgIGlmICghZW5kcG9pbnRDb250ZXh0UmVmLmluaXRlZCkge1xuICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdCh7XG4gICAgICAgICAgaW5pdEZyb21SZWNydXNpdmVDb250ZXh0UmVzb3ZsZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogb25seSBmb3IgaW50ZXJuYWwgdXNlXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBnZXQgX19yZWZTeW5jKCkge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIGdldENsYXNzSW5zdGFuY2U8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5nZXRJbnN0YW5jZUJ5KGN0b3IpO1xuICAgIH0sXG5cbiAgICBnZXRDbGFzczxUPihjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCB7XG4gICAgICBjb25zdCBjbGFzc0Z1biA9IGVuZHBvaW50Q29udGV4dFJlZi5nZXRDbGFzc0Z1bkJ5Q2xhc3MoY3Rvcik7XG4gICAgICByZXR1cm4gY2xhc3NGdW4gYXMgYW55O1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgfSxcblxuXG4gICAgLyoqXG4gICAgICogLSBjcmVhdGUgY29udHJvbGxlciBpbnN0YW5jZXMgZm9yIGNvbnRleHRcbiAgICAgKiAtIGluaXQgZGF0YWJhc2UgKGlmIGVuYWJsZSkgKyBtaWdhdGlvbiBzY3JpcHRzXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZTogYXN5bmMgKG92ZXJyaWRlT3B0aW9ucz86IHtcbiAgICAgIG92ZXJyaWRlSG9zdD86IHN0cmluZztcbiAgICAgIG92ZXJyaWRlUmVtb3RlSG9zdD86IHN0cmluZztcbiAgICAgIG9ubHlNaWdyYXRpb25SdW4/OiBib29sZWFuO1xuICAgICAgb25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPEVuZHBvaW50Q29udGV4dD4gPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXQoe1xuICAgICAgICAgICAgLi4ub3ZlcnJpZGVPcHRpb25zLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZy5hYnN0cmFjdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBYnN0cmFjdCBjb250ZXh0IGNhbiBub3QgYmUgaW5pdGlhbGl6ZWRgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdEVudGl0aWVzKCk7XG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRTdWJzY3JpYmVycygpO1xuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXREYXRhYmFzZUNvbm5lY3Rpb24oKTtcblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5kYk1pZ3JhdGlvbnMuZW5zdXJlTWlncmF0aW9uVGFibGVFeGlzdHMoKTtcblxuXG5cblxuXG5cbiAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYuaW5pdENvbnRyb2xsZXJzKCk7XG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLnN0YXJ0U2VydmVyKCk7XG5cbiAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYud3JpdGVBY3RpdmVSb3V0ZXMoKTtcblxuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRDbGFzc2VzKCk7XG4gICAgICAgICAgbGV0IGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9IGZhbHNlO1xuXG4gICAgICAgICAga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkID1cbiAgICAgICAgICAgIFRhb25BZG1pblNlcnZpY2UuSW5zdGFuY2U/LmtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZDtcblxuICAgICAgICAgIGlmICghSGVscGVycy5pc05vZGUgJiYga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkKSB7XG4gICAgICAgICAgICBIZWxwZXJzLmluZm8oYFt0YW9uXSBLZWVwIHdlYnNxbCBkYXRhIGFmdGVyIHJlbG9hZGApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYucmVpbml0Q29udHJvbGxlcnMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8vI3JlZ2lvbiBUT0RPIHRoaXMgbWF5IGJlIHVzZWZ1bGwgYnV0IGZvciBub3dcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICAgICAgaWYgKGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUnVuKSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJ1bkFsbE5vdENvbXBsZXRlZE1pZ3JhdGlvbnMoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUmV2ZXJ0VG9UaW1lc3RhbXApIHtcbiAgICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5kYk1pZ3JhdGlvbnMucmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAoXG4gICAgICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUmV2ZXJ0VG9UaW1lc3RhbXAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJ1bkFsbE5vdENvbXBsZXRlZE1pZ3JhdGlvbnMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXNvbHZlKGVuZHBvaW50Q29udGV4dFJlZik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlYWx0aW1lIGNvbW11bmljYXRpb24gd2l0aCBzZXJ2ZXJcbiAgICAgKiBVZHAgc29ja2V0LmlvIChvciBpcGMpIGJhc2VkLlxuICAgICAqL1xuICAgIGdldCByZWFsdGltZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldCBjbGllbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZUNsaWVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHNlcnZlcigpIHtcbiAgICAgICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmLnJlYWx0aW1lU2VydmVyO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gcmVzO1xufTtcblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvY3JlYXRlLWNvbnRleHQudHMiXX0=
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ClassHelpers } from '../../helpers/class-helpers';
|
|
2
2
|
import { Symbols } from '../../symbols';
|
|
3
3
|
import { Models } from '../../models';
|
|
4
|
+
/**
|
|
5
|
+
* Controller decorator
|
|
6
|
+
*/
|
|
4
7
|
export function TaonController(options) {
|
|
5
8
|
return function (constructor) {
|
|
6
9
|
ClassHelpers.setName(constructor, options?.className);
|
|
@@ -12,4 +15,4 @@ export class TaonControllerOptions extends Models.DecoratorAbstractOpt {
|
|
|
12
15
|
}
|
|
13
16
|
;
|
|
14
17
|
({}); // @--end-of-file-for-module=taon lib/decorators/classes/controller-decorator.ts
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL2NvbnRyb2xsZXItZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQStCO0lBQzVELE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQyxPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7UUFDRixPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUN0QyxXQUFXLENBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQVNyRTtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0ZBQWdGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIENvbnRyb2xsZXIgZGVjb3JhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYW9uQ29udHJvbGxlcihvcHRpb25zPzogVGFvbkNvbnRyb2xsZXJPcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5jb250cm9sbGVyLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvbkNvbnRyb2xsZXJPcHRpb25zIGV4dGVuZHMgTW9kZWxzLkRlY29yYXRvckFic3RyYWN0T3B0IHtcbiAgLyoqXG4gICAqIHR5cGVvcm0gcmVhbHRpbWUgc3Vic2NyaWJ0aW9uIC8vIFRPRE8gZGlzYWJsZWQgZm9yIG5vdywgZG9lcyBub3QgbWFrZSBzZW5zZSA/c1xuICAgKi9cbiAgcmVhbHRpbWU/OiBib29sZWFuO1xuICAvKipcbiAgICogb3ZlcnJpZGUgZGVmYXVsdCBwYXRoIGZvciBjb250cm9sbGVyIGFwaVxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvci50cyJdfQ==
|
|
@@ -5,6 +5,9 @@ import { Symbols } from '../../symbols';
|
|
|
5
5
|
import { _ } from 'tnp-core/websql';
|
|
6
6
|
import { Models } from '../../models';
|
|
7
7
|
import { Entity as TypeormEntity } from 'taon-typeorm/websql';
|
|
8
|
+
/**
|
|
9
|
+
* Entity decorator
|
|
10
|
+
*/
|
|
8
11
|
export function TaonEntity(options) {
|
|
9
12
|
return function (constructor) {
|
|
10
13
|
options = options || {};
|
|
@@ -22,4 +25,4 @@ export class TaonEntityOptions extends Models.DecoratorAbstractOpt {
|
|
|
22
25
|
}
|
|
23
26
|
;
|
|
24
27
|
({}); // @--end-of-file-for-module=taon lib/decorators/classes/entity-decorator.ts
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9kZWNvcmF0b3JzL2NsYXNzZXMvZW50aXR5LWRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxFQUFRLE1BQU0scUJBQXFCLENBQUM7QUFHcEU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFVLE9BQThCO0lBQ2hFLE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxPQUFPLEdBQUcsT0FBTyxJQUFLLEVBQVUsQ0FBQztRQUNqQyxPQUFPLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUssSUFBWSxDQUFDO1FBQy9ELFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV0RCxPQUFPLENBQUMsdUJBQXVCLENBQzdCLE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxFQUFFLEVBQ2pDLENBQUMsQ0FBQyxLQUFLLENBQ0wsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEVBQUUsRUFDbEMsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLElBQUksRUFBRSxDQUFRLENBQ2hELENBQ0YsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUdmLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1RCxPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQy9CLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztRQUNGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQ3RDLFdBQVcsQ0FDWixDQUFDO1FBRUYsYUFBYSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7SUFDaEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sT0FBTyxpQkFBMkIsU0FBUSxNQUFNLENBQUMsb0JBQW9CO0NBVTFFO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0RUFBNEUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgTWFwcGluZyB9IGZyb20gJ25nMi1yZXN0L3dlYnNxbCc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuaW1wb3J0IHsgRW50aXR5IGFzIFR5cGVvcm1FbnRpdHksIFRyZWUgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcblxuXG4vKipcbiAqIEVudGl0eSBkZWNvcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhb25FbnRpdHk8VCA9IGFueT4ob3B0aW9ucz86IFRhb25FbnRpdHlPcHRpb25zPFQ+KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwgKHt9IGFzIGFueSk7XG4gICAgb3B0aW9ucy51bmlxdWVLZXlQcm9wID0gb3B0aW9ucy51bmlxdWVLZXlQcm9wIHx8ICgnaWQnIGFzIGFueSk7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG5cbiAgICBNYXBwaW5nLkRlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQ+KFxuICAgICAgb3B0aW9ucz8uZGVmYXVsdE1vZGVsVmFsdWVzIHx8IHt9LFxuICAgICAgXy5tZXJnZShcbiAgICAgICAgb3B0aW9ucz8uZGVmYXVsdE1vZGVsTWFwcGluZyB8fCB7fSxcbiAgICAgICAgKG9wdGlvbnM/LmRlZmF1bHRNb2RlbE1hcHBpbmdEZWVwIHx8IHt9KSBhcyBhbnksXG4gICAgICApLFxuICAgICkoY29uc3RydWN0b3IpO1xuXG5cbiAgICBNYXBwaW5nLkRlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQ+KHZvaWQgMCwge30pKGNvbnN0cnVjdG9yKTtcblxuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMuZW50aXR5LFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuXG4gICAgVHlwZW9ybUVudGl0eShvcHRpb25zPy5jbGFzc05hbWUpKGNvbnN0cnVjdG9yKTtcblxuICAgIENMQVNTLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7IC8vIFRPRE8gUVVJQ0tfRklYIGZvciBuZzItcmVzdFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvbkVudGl0eU9wdGlvbnM8VCA9IGFueT4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICAvKipcbiAgICogZGVmYXVsdCB1bmlxdWUgcHJvcGVydHkgaXMgXCJpZFwiXG4gICAqIGZvciB5b3VyIGVudGl0eSBpdCBtYXkgYmUgc29tZXRoaW5nIGVsc2VcbiAgICovXG4gIHVuaXF1ZUtleVByb3A/OiBzdHJpbmc7XG4gIGNyZWF0ZVRhYmxlPzogYm9vbGVhbjtcbiAgZGVmYXVsdE1vZGVsVmFsdWVzPzogTWFwcGluZy5Nb2RlbFZhbHVlPFQ+O1xuICBkZWZhdWx0TW9kZWxNYXBwaW5nPzogTWFwcGluZy5NYXBwaW5nPFQ+O1xuICBkZWZhdWx0TW9kZWxNYXBwaW5nRGVlcD86IHsgW2xvZGFzaFBhdGhlczogc3RyaW5nXTogc3RyaW5nIHwgW3N0cmluZ10gfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9lbnRpdHktZGVjb3JhdG9yLnRzIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ClassHelpers } from '../../helpers/class-helpers';
|
|
2
|
+
import { Symbols } from '../../symbols';
|
|
3
|
+
import { Models } from '../../models';
|
|
4
|
+
/**
|
|
5
|
+
* Migration decorator
|
|
6
|
+
*/
|
|
7
|
+
export function TaonMigration(options) {
|
|
8
|
+
return function (constructor) {
|
|
9
|
+
Reflect.defineMetadata(Symbols.metadata.options.migration, options, constructor);
|
|
10
|
+
Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
|
|
11
|
+
ClassHelpers.setName(constructor, options?.className);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export class TaonMigrationOptions extends Models.DecoratorAbstractOpt {
|
|
15
|
+
}
|
|
16
|
+
;
|
|
17
|
+
({}); // @--end-of-file-for-module=taon lib/decorators/classes/migration-decorator.ts
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLWRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9kZWNvcmF0b3JzL2NsYXNzZXMvbWlncmF0aW9uLWRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUE2QjtJQUN6RCxPQUFPLFVBQVUsV0FBcUI7UUFDcEMsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUNsQyxPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7UUFDRixPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUN0QyxXQUFXLENBQ1osQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFRLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTSxPQUFPLG9CQUVYLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQUFHO0FBRXZDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0VBQStFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cbi8qKlxuICogTWlncmF0aW9uIGRlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFvbk1pZ3JhdGlvbihvcHRpb25zOiBUYW9uTWlncmF0aW9uT3B0aW9ucykge1xuICByZXR1cm4gZnVuY3Rpb24gKGNvbnN0cnVjdG9yOiBGdW5jdGlvbikge1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMubWlncmF0aW9uLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIENsYXNzSGVscGVycy5zZXROYW1lKGNvbnN0cnVjdG9yLCBvcHRpb25zPy5jbGFzc05hbWUpO1xuICB9IGFzIGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhb25NaWdyYXRpb25PcHRpb25zPFxuICBUID0gYW55LFxuPiBleHRlbmRzIE1vZGVscy5EZWNvcmF0b3JBYnN0cmFjdE9wdCB7fVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvZGVjb3JhdG9ycy9jbGFzc2VzL21pZ3JhdGlvbi1kZWNvcmF0b3IudHMiXX0=
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ClassHelpers } from '../../helpers/class-helpers';
|
|
2
2
|
import { Symbols } from '../../symbols';
|
|
3
3
|
import { Models } from '../../models';
|
|
4
|
+
/**
|
|
5
|
+
* Provider decorator
|
|
6
|
+
*/
|
|
4
7
|
export function TaonProvider(options) {
|
|
5
8
|
return function (constructor) {
|
|
6
9
|
Reflect.defineMetadata(Symbols.metadata.options.provider, options, constructor);
|
|
@@ -12,4 +15,4 @@ export class TaonProviderOptions extends Models.DecoratorAbstractOpt {
|
|
|
12
15
|
}
|
|
13
16
|
;
|
|
14
17
|
({}); // @--end-of-file-for-module=taon lib/decorators/classes/provider-decorator.ts
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9wcm92aWRlci1kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQVUsT0FBZ0M7SUFDcEUsT0FBTyxVQUFVLFdBQXFCO1FBQ3BDLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFDakMsT0FBTyxFQUNQLFdBQVcsQ0FDWixDQUFDO1FBQ0YsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQzFCLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxDQUFDLElBQUksRUFDdEMsV0FBVyxDQUNaLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxPQUFPLG1CQUVYLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQUVwQztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEVBQThFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIFByb3ZpZGVyIGRlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFvblByb3ZpZGVyPFQgPSBhbnk+KG9wdGlvbnM/OiBUYW9uUHJvdmlkZXJPcHRpb25zPFQ+KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5wcm92aWRlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLmNsYXNzTmFtZSxcbiAgICAgIG9wdGlvbnM/LmNsYXNzTmFtZSB8fCBjb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgY29uc3RydWN0b3IsXG4gICAgKTtcbiAgICBDbGFzc0hlbHBlcnMuc2V0TmFtZShjb25zdHJ1Y3Rvciwgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUpO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvblByb3ZpZGVyT3B0aW9uczxcbiAgVCA9IGFueSxcbj4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9kZWNvcmF0b3JzL2NsYXNzZXMvcHJvdmlkZXItZGVjb3JhdG9yLnRzIl19
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ClassHelpers } from '../../helpers/class-helpers';
|
|
2
2
|
import { Symbols } from '../../symbols';
|
|
3
3
|
import { Models } from '../../models';
|
|
4
|
+
/**
|
|
5
|
+
* Repository decorator
|
|
6
|
+
*/
|
|
4
7
|
export function TaonRepository(options) {
|
|
5
8
|
return function (constructor) {
|
|
6
9
|
Reflect.defineMetadata(Symbols.metadata.options.repository, options, constructor);
|
|
@@ -12,4 +15,4 @@ export class TaonRepositoryOptions extends Models.DecoratorAbstractOpt {
|
|
|
12
15
|
}
|
|
13
16
|
;
|
|
14
17
|
({}); // @--end-of-file-for-module=taon lib/decorators/classes/repository-decorator.ts
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL3JlcG9zaXRvcnktZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFPdEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQThCO0lBQzNELE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQ25DLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztRQUNGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQ3RDLFdBQVcsQ0FDWixDQUFDO1FBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8scUJBRVgsU0FBUSxNQUFNLENBQUMsb0JBQW9CO0NBQUc7QUFFdkMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyAgIFJlcG9zaXRvcnkgYXMgVHlwZW9ybVJlcG9zaXRvcnksICAgRW50aXR5UmVwb3NpdG9yeSwgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJzsvKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuXG4vKipcbiAqIFJlcG9zaXRvcnkgZGVjb3JhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYW9uUmVwb3NpdG9yeShvcHRpb25zOiBUYW9uUmVwb3NpdG9yeU9wdGlvbnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChjb25zdHJ1Y3RvcjogRnVuY3Rpb24pIHtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5vcHRpb25zLnJlcG9zaXRvcnksXG4gICAgICBvcHRpb25zLFxuICAgICAgY29uc3RydWN0b3IsXG4gICAgKTtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5jbGFzc05hbWUsXG4gICAgICBvcHRpb25zPy5jbGFzc05hbWUgfHwgY29uc3RydWN0b3IubmFtZSxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBUYW9uUmVwb3NpdG9yeU9wdGlvbnM8XG4gIFQgPSBhbnksXG4+IGV4dGVuZHMgTW9kZWxzLkRlY29yYXRvckFic3RyYWN0T3B0IHt9XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9kZWNvcmF0b3JzL2NsYXNzZXMvcmVwb3NpdG9yeS1kZWNvcmF0b3IudHMiXX0=
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { ClassHelpers } from '../../helpers/class-helpers';
|
|
2
2
|
import { Symbols } from '../../symbols';
|
|
3
3
|
import { Models } from '../../models';
|
|
4
|
+
/**
|
|
5
|
+
* Subscriber decorator
|
|
6
|
+
*/
|
|
4
7
|
export function TaonSubscriber(options) {
|
|
5
8
|
return function (constructor) {
|
|
6
|
-
Reflect.defineMetadata(Symbols.metadata.options.
|
|
9
|
+
Reflect.defineMetadata(Symbols.metadata.options.subscriber, options, constructor);
|
|
7
10
|
Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
|
|
8
11
|
ClassHelpers.setName(constructor, options?.className);
|
|
9
12
|
};
|
|
@@ -12,4 +15,4 @@ export class TaonSubscriberOptions extends Models.DecoratorAbstractOpt {
|
|
|
12
15
|
}
|
|
13
16
|
;
|
|
14
17
|
({}); // @--end-of-file-for-module=taon lib/decorators/classes/subscriber-decorator.ts
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaWJlci1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL3N1YnNjcmliZXItZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHdEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQThCO0lBQzNELE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQ25DLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztRQUNGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQ3RDLFdBQVcsQ0FDWixDQUFDO1FBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQVEsQ0FBQztBQUNYLENBQUM7QUFFRCxNQUFNLE9BQU8scUJBRVgsU0FBUSxNQUFNLENBQUMsb0JBQW9CO0NBRXBDO0FBR0EsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuLyoqXG4gKiBTdWJzY3JpYmVyIGRlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFvblN1YnNjcmliZXIob3B0aW9uczogVGFvblN1YnNjcmliZXJPcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5zdWJzY3JpYmVyLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIENsYXNzSGVscGVycy5zZXROYW1lKGNvbnN0cnVjdG9yLCBvcHRpb25zPy5jbGFzc05hbWUpO1xuICB9IGFzIGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhb25TdWJzY3JpYmVyT3B0aW9uczxcbiAgVCA9IGFueSxcbj4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICBhbGxvd2VkRXZlbnRzPzogKGtleW9mIFQpW107XG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9zdWJzY3JpYmVyLWRlY29yYXRvci50cyJdfQ==
|