velocious 1.0.593 → 1.0.595
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 -2
- package/build/configuration.js +109 -14
- package/build/database/drivers/base.js +30 -0
- package/build/database/migrator.js +90 -24
- package/build/database/operation.js +55 -4
- package/build/database/query/join-object.js +7 -4
- package/build/database/query/model-class-query.js +38 -7
- package/build/database/query/preloader/belongs-to.js +9 -6
- package/build/database/query/preloader/has-many.js +25 -14
- package/build/database/query/preloader/has-one.js +7 -4
- package/build/database/query/preloader/query-for-model.js +16 -1
- package/build/database/query/preloader.js +6 -4
- package/build/database/query/query-data.js +3 -3
- package/build/database/query/where-model-class-hash.js +8 -4
- package/build/database/query/with-count.js +4 -3
- package/build/database/record/index.js +148 -5
- package/build/database/record/instance-relationships/base.js +13 -0
- package/build/database/record/instance-relationships/belongs-to.js +1 -1
- package/build/database/record/instance-relationships/has-many.js +5 -2
- package/build/database/record/instance-relationships/has-one.js +1 -1
- package/build/database/record/relationships/base.js +17 -0
- package/build/database/use-database.js +81 -28
- package/build/src/configuration.d.ts +31 -4
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +88 -17
- package/build/src/database/drivers/base.d.ts +11 -0
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +28 -1
- package/build/src/database/migrator.d.ts +34 -0
- package/build/src/database/migrator.d.ts.map +1 -1
- package/build/src/database/migrator.js +83 -23
- package/build/src/database/operation.d.ts +15 -1
- package/build/src/database/operation.d.ts.map +1 -1
- package/build/src/database/operation.js +52 -5
- package/build/src/database/query/join-object.d.ts.map +1 -1
- package/build/src/database/query/join-object.js +7 -5
- package/build/src/database/query/model-class-query.d.ts +6 -0
- package/build/src/database/query/model-class-query.d.ts.map +1 -1
- package/build/src/database/query/model-class-query.js +33 -8
- package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
- package/build/src/database/query/preloader/belongs-to.js +9 -7
- package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-many.js +23 -16
- package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-one.js +7 -5
- package/build/src/database/query/preloader/query-for-model.d.ts +8 -0
- package/build/src/database/query/preloader/query-for-model.d.ts.map +1 -1
- package/build/src/database/query/preloader/query-for-model.js +15 -2
- package/build/src/database/query/preloader.d.ts.map +1 -1
- package/build/src/database/query/preloader.js +6 -5
- package/build/src/database/query/query-data.js +4 -4
- package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.js +7 -5
- package/build/src/database/query/with-count.js +5 -4
- package/build/src/database/record/index.d.ts +95 -0
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +126 -6
- package/build/src/database/record/instance-relationships/base.d.ts +6 -0
- package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/base.js +12 -1
- package/build/src/database/record/instance-relationships/belongs-to.js +2 -2
- package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-many.js +6 -3
- package/build/src/database/record/instance-relationships/has-one.js +2 -2
- package/build/src/database/record/relationships/base.d.ts +11 -0
- package/build/src/database/record/relationships/base.d.ts.map +1 -1
- package/build/src/database/record/relationships/base.js +15 -1
- package/build/src/database/use-database.d.ts +33 -5
- package/build/src/database/use-database.d.ts.map +1 -1
- package/build/src/database/use-database.js +81 -30
- package/build/src/sync/server-change-feed.d.ts +14 -2
- package/build/src/sync/server-change-feed.d.ts.map +1 -1
- package/build/src/sync/server-change-feed.js +50 -10
- package/build/src/sync/sync-scope-store.d.ts +13 -2
- package/build/src/sync/sync-scope-store.d.ts.map +1 -1
- package/build/src/sync/sync-scope-store.js +48 -7
- package/build/src/tenants/frontend-tenant-sqlite-lifecycle.d.ts +43 -1
- package/build/src/tenants/frontend-tenant-sqlite-lifecycle.d.ts.map +1 -1
- package/build/src/tenants/frontend-tenant-sqlite-lifecycle.js +141 -17
- package/build/src/tenants/tenant-handle.d.ts +36 -0
- package/build/src/tenants/tenant-handle.d.ts.map +1 -1
- package/build/src/tenants/tenant-handle.js +73 -3
- package/build/src/testing/browser-test-app.js +3 -1
- package/build/src/testing/browser-use-database-hook-scenarios.d.ts +16 -0
- package/build/src/testing/browser-use-database-hook-scenarios.d.ts.map +1 -0
- package/build/src/testing/browser-use-database-hook-scenarios.js +182 -0
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +9 -8
- package/build/src/utils/model-scope.d.ts +2 -2
- package/build/src/utils/model-scope.d.ts.map +1 -1
- package/build/src/utils/model-scope.js +5 -3
- package/build/src/utils/ransack.d.ts.map +1 -1
- package/build/src/utils/ransack.js +5 -3
- package/build/sync/server-change-feed.js +58 -8
- package/build/sync/sync-scope-store.js +55 -5
- package/build/tenants/frontend-tenant-sqlite-lifecycle.js +150 -15
- package/build/tenants/tenant-handle.js +90 -6
- package/build/testing/browser-test-app.js +2 -0
- package/build/testing/browser-use-database-hook-scenarios.js +204 -0
- package/build/testing/test-runner.js +8 -7
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/utils/model-scope.js +5 -2
- package/build/utils/ransack.js +5 -2
- package/package.json +2 -1
- package/scripts/browser-test-session.js +60 -0
- package/scripts/test-browser.js +7 -7
- package/src/configuration.js +109 -14
- package/src/database/drivers/base.js +30 -0
- package/src/database/migrator.js +90 -24
- package/src/database/operation.js +55 -4
- package/src/database/query/join-object.js +7 -4
- package/src/database/query/model-class-query.js +38 -7
- package/src/database/query/preloader/belongs-to.js +9 -6
- package/src/database/query/preloader/has-many.js +25 -14
- package/src/database/query/preloader/has-one.js +7 -4
- package/src/database/query/preloader/query-for-model.js +16 -1
- package/src/database/query/preloader.js +6 -4
- package/src/database/query/query-data.js +3 -3
- package/src/database/query/where-model-class-hash.js +8 -4
- package/src/database/query/with-count.js +4 -3
- package/src/database/record/index.js +148 -5
- package/src/database/record/instance-relationships/base.js +13 -0
- package/src/database/record/instance-relationships/belongs-to.js +1 -1
- package/src/database/record/instance-relationships/has-many.js +5 -2
- package/src/database/record/instance-relationships/has-one.js +1 -1
- package/src/database/record/relationships/base.js +17 -0
- package/src/database/use-database.js +81 -28
- package/src/sync/server-change-feed.js +58 -8
- package/src/sync/sync-scope-store.js +55 -5
- package/src/tenants/frontend-tenant-sqlite-lifecycle.js +150 -15
- package/src/tenants/tenant-handle.js +90 -6
- package/src/testing/browser-test-app.js +2 -0
- package/src/testing/browser-use-database-hook-scenarios.js +204 -0
- package/src/testing/test-runner.js +8 -7
- package/src/utils/model-scope.js +5 -2
- package/src/utils/ransack.js +5 -2
|
@@ -15,9 +15,10 @@ export default class VelociousDatabaseOperation {
|
|
|
15
15
|
* @param {import("./drivers/base.js").default} args.connection - Pinned physical connection.
|
|
16
16
|
* @param {string} args.databaseIdentifier - Singular database identifier.
|
|
17
17
|
* @param {symbol} args.owner - Opaque pool lease owner.
|
|
18
|
+
* @param {string} [args.schemaGeneration] - Tenant schema generation owning record metadata.
|
|
18
19
|
* @param {object | undefined} args.tenant - Tenant descriptor captured by the owning handle.
|
|
19
20
|
*/
|
|
20
|
-
constructor({ configuration, databaseConfiguration, configurationReuseKey, connection, databaseIdentifier, enforceCurrentTenantReuseKey = true, owner, tenant }) {
|
|
21
|
+
constructor({ configuration, databaseConfiguration, configurationReuseKey, connection, databaseIdentifier, enforceCurrentTenantReuseKey = true, owner, schemaGeneration, tenant }) {
|
|
21
22
|
this._active = true;
|
|
22
23
|
this._configuration = configuration;
|
|
23
24
|
this._databaseConfiguration = databaseConfiguration || configuration.resolveDatabaseConfiguration(databaseIdentifier, tenant);
|
|
@@ -25,7 +26,10 @@ export default class VelociousDatabaseOperation {
|
|
|
25
26
|
this._databaseIdentifier = databaseIdentifier;
|
|
26
27
|
this._enforceCurrentTenantReuseKey = enforceCurrentTenantReuseKey;
|
|
27
28
|
this._physicalConnection = connection;
|
|
29
|
+
this._schemaGeneration = schemaGeneration;
|
|
28
30
|
this._tenant = tenant;
|
|
31
|
+
/** @type {WeakMap<typeof import("./record/index.js").default, typeof import("./record/index.js").default>} */
|
|
32
|
+
this._boundModelClasses = new WeakMap();
|
|
29
33
|
this._connection = new OperationConnection({
|
|
30
34
|
connection,
|
|
31
35
|
operation: this,
|
|
@@ -41,11 +45,53 @@ export default class VelociousDatabaseOperation {
|
|
|
41
45
|
forModel(ModelClass) {
|
|
42
46
|
this.assertActive();
|
|
43
47
|
this.assertModel(ModelClass);
|
|
44
|
-
return ModelClass._newQuery({
|
|
48
|
+
return this.modelClass(ModelClass)._newQuery({
|
|
45
49
|
driver: this.connection(),
|
|
46
50
|
operation: this
|
|
47
51
|
});
|
|
48
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Returns a model-class view whose schema metadata is bound to this physical
|
|
55
|
+
* database generation. Construction still produces the application's original
|
|
56
|
+
* model class, so lifecycle callbacks and model registries retain class identity.
|
|
57
|
+
* @template {typeof import("./record/index.js").default} MC
|
|
58
|
+
* @param {MC} ModelClass - Canonical model class.
|
|
59
|
+
* @returns {MC} - Operation-bound model class.
|
|
60
|
+
*/
|
|
61
|
+
modelClass(ModelClass) {
|
|
62
|
+
if (!this._schemaGeneration)
|
|
63
|
+
return ModelClass;
|
|
64
|
+
const canonicalModelClass = /** @type {MC} */ (ModelClass._recordMetadataModelClass || ModelClass);
|
|
65
|
+
const existing = this._boundModelClasses.get(canonicalModelClass);
|
|
66
|
+
if (existing)
|
|
67
|
+
return /** @type {MC} */ (existing);
|
|
68
|
+
const databaseIdentity = this.databaseIdentity();
|
|
69
|
+
const metadataKey = `${databaseIdentity.length}:${databaseIdentity}:${this._schemaGeneration}`;
|
|
70
|
+
const metadataProperties = canonicalModelClass.recordMetadataPropertyNames();
|
|
71
|
+
const boundModelClass = new Proxy(canonicalModelClass, {
|
|
72
|
+
construct: (target, args, newTarget) => Reflect.construct(target, args, newTarget),
|
|
73
|
+
get: (target, property, receiver) => {
|
|
74
|
+
if (property === "_recordMetadataModelClass")
|
|
75
|
+
return target;
|
|
76
|
+
if (property === "_recordMetadataBinder")
|
|
77
|
+
return (/** @type {typeof import("./record/index.js").default} */ targetModelClass) => this.modelClass(targetModelClass);
|
|
78
|
+
if (property === "_recordMetadataOperation")
|
|
79
|
+
return this;
|
|
80
|
+
if (typeof property === "string" && metadataProperties.has(property))
|
|
81
|
+
return target.recordMetadataValue(metadataKey, property);
|
|
82
|
+
return Reflect.get(target, property, receiver);
|
|
83
|
+
},
|
|
84
|
+
set: (target, property, value, receiver) => {
|
|
85
|
+
if (typeof property === "string" && metadataProperties.has(property)) {
|
|
86
|
+
target.setRecordMetadataValue(metadataKey, property, value);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return Reflect.set(target, property, value, receiver);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
this._boundModelClasses.set(canonicalModelClass, boundModelClass);
|
|
93
|
+
return /** @type {MC} */ (boundModelClass);
|
|
94
|
+
}
|
|
49
95
|
/**
|
|
50
96
|
* Verifies that a model belongs to this operation's configuration and database.
|
|
51
97
|
* @param {typeof import("./record/index.js").default} ModelClass - Model class to verify.
|
|
@@ -141,9 +187,10 @@ export default class VelociousDatabaseOperation {
|
|
|
141
187
|
*/
|
|
142
188
|
async ensureModelInitialized(ModelClass) {
|
|
143
189
|
this.assertActive();
|
|
144
|
-
|
|
190
|
+
const boundModelClass = this.modelClass(ModelClass);
|
|
191
|
+
if (boundModelClass.isInitialized())
|
|
145
192
|
this.assertModel(ModelClass);
|
|
146
|
-
await
|
|
193
|
+
await boundModelClass.ensureInitialized({
|
|
147
194
|
configuration: this._configuration,
|
|
148
195
|
connection: this.connection()
|
|
149
196
|
});
|
|
@@ -176,4 +223,4 @@ export default class VelociousDatabaseOperation {
|
|
|
176
223
|
this._active = false;
|
|
177
224
|
}
|
|
178
225
|
}
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL29wZXJhdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxtQkFBbUIsTUFBTSwyQkFBMkIsQ0FBQTtBQUUzRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLDBCQUEwQjtJQUM3Qzs7Ozs7Ozs7Ozs7T0FXRztJQUNILFlBQVksRUFBQyxhQUFhLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLDRCQUE0QixHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDO1FBQzNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1FBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFBO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsSUFBSSxhQUFhLENBQUMsNEJBQTRCLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDN0gsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFBO1FBQ25ELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQTtRQUM3QyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsNEJBQTRCLENBQUE7UUFDakUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQTtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksbUJBQW1CLENBQUM7WUFDekMsVUFBVTtZQUNWLFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSztTQUNOLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxVQUFVO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRTVCLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQztZQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN6QixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxVQUFVO1FBQ3BCLElBQUksVUFBVSxDQUFDLGlCQUFpQixFQUFFLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsWUFBWSxFQUFFLDZDQUE2QyxDQUFDLENBQUE7UUFDNUYsQ0FBQztRQUVELE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFBO1FBRXhGLElBQUksdUJBQXVCLEtBQUssSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsNEJBQTRCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzlLLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsTUFBTTtRQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO1FBQ3hDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVsQyxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNuQixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVE7UUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ25CLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUTtRQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFbkIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFbkI7OztXQUdHO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyw0Q0FBNEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUV4RixPQUFPLGdCQUFnQixDQUFBO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNO1FBQ0osT0FBTyxrREFBa0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0I7UUFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO0lBQ3JFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFVBQVU7UUFDckMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBRW5CLElBQUksVUFBVSxDQUFDLGFBQWEsRUFBRTtZQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFNUQsTUFBTSxVQUFVLENBQUMsaUJBQWlCLENBQUM7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzlCLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7UUFFdEUsTUFBTSxJQUFJLEdBQUcsSUFBSTthQUNkLGNBQWM7YUFDZCxlQUFlLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUE7UUFDbkYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFNUYsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsc0JBQXNCLElBQUksa0JBQWtCLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDM0csTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsMkVBQTJFLENBQUMsQ0FBQTtRQUNoSyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsNkJBQTZCLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDMUcsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsMkVBQTJFLENBQUMsQ0FBQTtRQUNoSyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IE9wZXJhdGlvbkNvbm5lY3Rpb24gZnJvbSBcIi4vb3BlcmF0aW9uLWNvbm5lY3Rpb24uanNcIlxuXG4vKipcbiAqIEV4cGxpY2l0IG93bmVyIGZvciBtb2RlbCB3b3JrIHBlcmZvcm1lZCBvbiBvbmUgcGlubmVkIHRyYW5zYWN0aW9uYWxcbiAqIGNvbm5lY3Rpb24uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlT3BlcmF0aW9uIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3BlcmF0aW9uIG93bmVyc2hpcC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIE93bmluZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmVuZm9yY2VDdXJyZW50VGVuYW50UmV1c2VLZXldIC0gV2hldGhlciBhbWJpZW50IHRlbmFudCBjaGFuZ2VzIGludmFsaWRhdGUgdGhpcyBsZWdhY3kgb3BlcmF0aW9uLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuRGF0YWJhc2VDb25maWd1cmF0aW9uVHlwZX0gW2FyZ3MuZGF0YWJhc2VDb25maWd1cmF0aW9uXSAtIENhcHR1cmVkIHJlc29sdmVkIHBoeXNpY2FsIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNvbmZpZ3VyYXRpb25SZXVzZUtleSAtIFBoeXNpY2FsIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24ga2V5IGNhcHR1cmVkIGF0IGNoZWNrb3V0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29ubmVjdGlvbiAtIFBpbm5lZCBwaHlzaWNhbCBjb25uZWN0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kYXRhYmFzZUlkZW50aWZpZXIgLSBTaW5ndWxhciBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge3N5bWJvbH0gYXJncy5vd25lciAtIE9wYXF1ZSBwb29sIGxlYXNlIG93bmVyLlxuICAgKiBAcGFyYW0ge29iamVjdCB8IHVuZGVmaW5lZH0gYXJncy50ZW5hbnQgLSBUZW5hbnQgZGVzY3JpcHRvciBjYXB0dXJlZCBieSB0aGUgb3duaW5nIGhhbmRsZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCBkYXRhYmFzZUNvbmZpZ3VyYXRpb24sIGNvbmZpZ3VyYXRpb25SZXVzZUtleSwgY29ubmVjdGlvbiwgZGF0YWJhc2VJZGVudGlmaWVyLCBlbmZvcmNlQ3VycmVudFRlbmFudFJldXNlS2V5ID0gdHJ1ZSwgb3duZXIsIHRlbmFudH0pIHtcbiAgICB0aGlzLl9hY3RpdmUgPSB0cnVlXG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLl9kYXRhYmFzZUNvbmZpZ3VyYXRpb24gPSBkYXRhYmFzZUNvbmZpZ3VyYXRpb24gfHwgY29uZmlndXJhdGlvbi5yZXNvbHZlRGF0YWJhc2VDb25maWd1cmF0aW9uKGRhdGFiYXNlSWRlbnRpZmllciwgdGVuYW50KVxuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25SZXVzZUtleSA9IGNvbmZpZ3VyYXRpb25SZXVzZUtleVxuICAgIHRoaXMuX2RhdGFiYXNlSWRlbnRpZmllciA9IGRhdGFiYXNlSWRlbnRpZmllclxuICAgIHRoaXMuX2VuZm9yY2VDdXJyZW50VGVuYW50UmV1c2VLZXkgPSBlbmZvcmNlQ3VycmVudFRlbmFudFJldXNlS2V5XG4gICAgdGhpcy5fcGh5c2ljYWxDb25uZWN0aW9uID0gY29ubmVjdGlvblxuICAgIHRoaXMuX3RlbmFudCA9IHRlbmFudFxuICAgIHRoaXMuX2Nvbm5lY3Rpb24gPSBuZXcgT3BlcmF0aW9uQ29ubmVjdGlvbih7XG4gICAgICBjb25uZWN0aW9uLFxuICAgICAgb3BlcmF0aW9uOiB0aGlzLFxuICAgICAgb3duZXJcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb3BlcmF0aW9uLWJvdW5kIG1vZGVsIHF1ZXJ5L2NyZWF0ZSBzY29wZS5cbiAgICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gTUNcbiAgICogQHBhcmFtIHtNQ30gTW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzIHRvIGJpbmQuXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL3F1ZXJ5L21vZGVsLWNsYXNzLXF1ZXJ5LmpzXCIpLmRlZmF1bHQ8TUM+fSAtIE9wZXJhdGlvbi1ib3VuZCBzY29wZS5cbiAgICovXG4gIGZvck1vZGVsKE1vZGVsQ2xhc3MpIHtcbiAgICB0aGlzLmFzc2VydEFjdGl2ZSgpXG4gICAgdGhpcy5hc3NlcnRNb2RlbChNb2RlbENsYXNzKVxuXG4gICAgcmV0dXJuIE1vZGVsQ2xhc3MuX25ld1F1ZXJ5KHtcbiAgICAgIGRyaXZlcjogdGhpcy5jb25uZWN0aW9uKCksXG4gICAgICBvcGVyYXRpb246IHRoaXNcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoYXQgYSBtb2RlbCBiZWxvbmdzIHRvIHRoaXMgb3BlcmF0aW9uJ3MgY29uZmlndXJhdGlvbiBhbmQgZGF0YWJhc2UuXG4gICAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9IE1vZGVsQ2xhc3MgLSBNb2RlbCBjbGFzcyB0byB2ZXJpZnkuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgYXNzZXJ0TW9kZWwoTW9kZWxDbGFzcykge1xuICAgIGlmIChNb2RlbENsYXNzLl9nZXRDb25maWd1cmF0aW9uKCkgIT09IHRoaXMuX2NvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtNb2RlbENsYXNzLmdldE1vZGVsTmFtZSgpfSBiZWxvbmdzIHRvIGFub3RoZXIgVmVsb2Npb3VzIGNvbmZpZ3VyYXRpb25gKVxuICAgIH1cblxuICAgIGNvbnN0IG1vZGVsRGF0YWJhc2VJZGVudGlmaWVyID0gTW9kZWxDbGFzcy5nZXREYXRhYmFzZUlkZW50aWZpZXIoe3RlbmFudDogdGhpcy5fdGVuYW50fSlcblxuICAgIGlmIChtb2RlbERhdGFiYXNlSWRlbnRpZmllciAhPT0gdGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7TW9kZWxDbGFzcy5nZXRNb2RlbE5hbWUoKX0gdXNlcyBkYXRhYmFzZSAke0pTT04uc3RyaW5naWZ5KG1vZGVsRGF0YWJhc2VJZGVudGlmaWVyKX0sIG5vdCBvcGVyYXRpb24gZGF0YWJhc2UgJHtKU09OLnN0cmluZ2lmeSh0aGlzLl9kYXRhYmFzZUlkZW50aWZpZXIpfWApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIGEgbG9hZGVkIG9yIGJ1aWx0IHJlY29yZCB0byB0aGlzIG9wZXJhdGlvbi5cbiAgICogQHRlbXBsYXRlIHtpbXBvcnQoXCIuL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSBNb2RlbFxuICAgKiBAcGFyYW0ge01vZGVsfSByZWNvcmQgLSBSZWNvcmQgdG8gYmluZC5cbiAgICogQHJldHVybnMge01vZGVsfSAtIEJvdW5kIHJlY29yZC5cbiAgICovXG4gIGJpbmRSZWNvcmQocmVjb3JkKSB7XG4gICAgdGhpcy5hc3NlcnRBY3RpdmUoKVxuICAgIHRoaXMuYXNzZXJ0TW9kZWwocmVjb3JkLmdldE1vZGVsQ2xhc3MoKSlcbiAgICByZWNvcmQuYmluZERhdGFiYXNlT3BlcmF0aW9uKHRoaXMpXG5cbiAgICByZXR1cm4gcmVjb3JkXG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgb3duZWQgYnkgdGhlIGN1cnJlbnQgb3BlcmF0aW9uIHRyYW5zYWN0aW9uIGZyYW1lLlxuICAgKiBAcGFyYW0geygpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+fSBjYWxsYmFjayAtIENhbGxiYWNrLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciByZWdpc3RyYXRpb24gb3IgZXhlY3V0aW9uLlxuICAgKi9cbiAgYXN5bmMgYWZ0ZXJDb21taXQoY2FsbGJhY2spIHtcbiAgICB0aGlzLmFzc2VydEFjdGl2ZSgpXG4gICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uKCkuYWZ0ZXJDb21taXQoY2FsbGJhY2spXG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZ3VhcmQgb3duZWQgYnkgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24vc2F2ZXBvaW50IGZyYW1lLlxuICAgKiBAcGFyYW0geyhjb250ZXh0OiB7b3BlcmF0aW9uOiBWZWxvY2lvdXNEYXRhYmFzZU9wZXJhdGlvbn0pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+fSBjYWxsYmFjayAtIEd1YXJkIGNhbGxiYWNrLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciByZWdpc3RyYXRpb24uXG4gICAqL1xuICBhc3luYyBiZWZvcmVDb21taXQoY2FsbGJhY2spIHtcbiAgICB0aGlzLmFzc2VydEFjdGl2ZSgpXG4gICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uKCkuYmVmb3JlQ29tbWl0KCgpID0+IGNhbGxiYWNrKHtvcGVyYXRpb246IHRoaXN9KSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGEgbmVzdGVkIG9wZXJhdGlvbiB0cmFuc2FjdGlvbi9zYXZlcG9pbnQuXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7KCkgPT4gUHJvbWlzZTxUPn0gY2FsbGJhY2sgLSBDYWxsYmFjay5cbiAgICogQHJldHVybnMge1Byb21pc2U8VD59IC0gQ2FsbGJhY2sgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgdHJhbnNhY3Rpb24oY2FsbGJhY2spIHtcbiAgICB0aGlzLmFzc2VydEFjdGl2ZSgpXG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb25uZWN0aW9uKCkudHJhbnNhY3Rpb24oY2FsbGJhY2spXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGVsaWJlcmF0ZWx5IGV4cG9zZWQgb3BlcmF0aW9uIGNvbm5lY3Rpb24gZmFjYWRlIGZvciByYXcgU1FMLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gLSBPcGVyYXRpb24tYm91bmQgY29ubmVjdGlvbi5cbiAgICovXG4gIGNvbm5lY3Rpb24oKSB7XG4gICAgdGhpcy5hc3NlcnRBY3RpdmUoKVxuXG4gICAgLyoqXG4gICAgICogTmFycm93cyB0aGUgUHJveHkgZmFjYWRlIHRvIHRoZSBjb21wbGV0ZSBkcml2ZXIgc3VyZmFjZSB0aGF0IGl0IGZvcndhcmRzLlxuICAgICAqIEB0eXBlIHtpbXBvcnQoXCIuL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0fVxuICAgICAqL1xuICAgIGNvbnN0IGNvbm5lY3Rpb25GYWNhZGUgPSAvKiogQHR5cGUge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSAqLyAodGhpcy5fY29ubmVjdGlvbilcblxuICAgIHJldHVybiBjb25uZWN0aW9uRmFjYWRlXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdGVuYW50IGRlc2NyaXB0b3IgY2FwdHVyZWQgYnkgdGhlIGltbXV0YWJsZSBoYW5kbGUuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZH0gLSBDYXB0dXJlZCB0ZW5hbnQgZGVzY3JpcHRvci5cbiAgICovXG4gIHRlbmFudCgpIHtcbiAgICByZXR1cm4gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZH0gKi8gKHRoaXMuX3RlbmFudClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsb2dpY2FsIGRhdGFiYXNlIGlkZW50aWZpZXIgb3duZWQgYnkgdGhpcyBvcGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gRGF0YWJhc2UgaWRlbnRpZmllci5cbiAgICovXG4gIGRhdGFiYXNlSWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0YWJsZSBwaHlzaWNhbC1kYXRhYmFzZSBpZGVudGl0eSBzdWl0YWJsZSBmb3Igb3BlcmF0aW9uLWF3YXJlIGNhY2hlcy5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBQaHlzaWNhbCBkYXRhYmFzZSBpZGVudGl0eS5cbiAgICovXG4gIGRhdGFiYXNlSWRlbnRpdHkoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2RhdGFiYXNlSWRlbnRpZmllcn06JHt0aGlzLl9jb25maWd1cmF0aW9uUmV1c2VLZXl9YFxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgbW9kZWwgdGhyb3VnaCB0aGlzIG9wZXJhdGlvbidzIGNhcHR1cmVkIGNvbm5lY3Rpb24uXG4gICAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9IE1vZGVsQ2xhc3MgLSBNb2RlbCBjbGFzcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBpbml0aWFsaXplZC5cbiAgICovXG4gIGFzeW5jIGVuc3VyZU1vZGVsSW5pdGlhbGl6ZWQoTW9kZWxDbGFzcykge1xuICAgIHRoaXMuYXNzZXJ0QWN0aXZlKClcblxuICAgIGlmIChNb2RlbENsYXNzLmlzSW5pdGlhbGl6ZWQoKSkgdGhpcy5hc3NlcnRNb2RlbChNb2RlbENsYXNzKVxuXG4gICAgYXdhaXQgTW9kZWxDbGFzcy5lbnN1cmVJbml0aWFsaXplZCh7XG4gICAgICBjb25maWd1cmF0aW9uOiB0aGlzLl9jb25maWd1cmF0aW9uLFxuICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uKClcbiAgICB9KVxuICAgIHRoaXMuYXNzZXJ0TW9kZWwoTW9kZWxDbGFzcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSYWlzZXMgd2hlbiBhbiBvcGVyYXRpb24gaGFuZGxlIGhhcyBsZWZ0IGl0cyBjYWxsYmFjay5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBhc3NlcnRBY3RpdmUoKSB7XG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHRocm93IG5ldyBFcnJvcihcIkRhdGFiYXNlIG9wZXJhdGlvbiBoYXMgY29tcGxldGVkXCIpXG5cbiAgICBjb25zdCBwb29sID0gdGhpc1xuICAgICAgLl9jb25maWd1cmF0aW9uXG4gICAgICAuZ2V0RGF0YWJhc2VQb29sKHRoaXMuX2RhdGFiYXNlSWRlbnRpZmllcilcbiAgICBjb25zdCBjYXB0dXJlZFJldXNlS2V5ID0gcG9vbC5nZXRDb25maWd1cmF0aW9uUmV1c2VLZXkodGhpcy5fZGF0YWJhc2VDb25maWd1cmF0aW9uKVxuICAgIGNvbnN0IGNvbm5lY3Rpb25SZXVzZUtleSA9IHBvb2wuZ2V0Q29ubmVjdGlvbkNvbmZpZ3VyYXRpb25SZXVzZUtleSh0aGlzLl9waHlzaWNhbENvbm5lY3Rpb24pXG5cbiAgICBpZiAoY2FwdHVyZWRSZXVzZUtleSAhPT0gdGhpcy5fY29uZmlndXJhdGlvblJldXNlS2V5IHx8IGNvbm5lY3Rpb25SZXVzZUtleSAhPT0gdGhpcy5fY29uZmlndXJhdGlvblJldXNlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERhdGFiYXNlIG9wZXJhdGlvbiBmb3IgJHtKU09OLnN0cmluZ2lmeSh0aGlzLl9kYXRhYmFzZUlkZW50aWZpZXIpfSBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IHBoeXNpY2FsIGRhdGFiYXNlIHRoYW4gaXRzIGNhcHR1cmVkIHRlbmFudCBoYW5kbGVgKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9lbmZvcmNlQ3VycmVudFRlbmFudFJldXNlS2V5ICYmIHBvb2wuZ2V0Q29uZmlndXJhdGlvblJldXNlS2V5KCkgIT09IHRoaXMuX2NvbmZpZ3VyYXRpb25SZXVzZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEYXRhYmFzZSBvcGVyYXRpb24gZm9yICR7SlNPTi5zdHJpbmdpZnkodGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyKX0gYmVsb25ncyB0byBhIGRpZmZlcmVudCBwaHlzaWNhbCBkYXRhYmFzZSB0aGFuIHRoZSBjdXJyZW50IHRlbmFudCBjb250ZXh0YClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwaXJlcyB0aGUgb3BlcmF0aW9uIGFuZCBhbGwgc2NvcGVzL3JlY29yZHMgYm91bmQgdG8gaXQuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgY29tcGxldGUoKSB7XG4gICAgdGhpcy5fYWN0aXZlID0gZmFsc2VcbiAgfVxufVxuIl19
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL29wZXJhdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxtQkFBbUIsTUFBTSwyQkFBMkIsQ0FBQTtBQUUzRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLDBCQUEwQjtJQUM3Qzs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSw0QkFBNEIsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBQztRQUM3SyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQTtRQUNuQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLElBQUksYUFBYSxDQUFDLDRCQUE0QixDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQzdILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQTtRQUNuRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUE7UUFDN0MsSUFBSSxDQUFDLDZCQUE2QixHQUFHLDRCQUE0QixDQUFBO1FBQ2pFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUE7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFBO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO1FBQ3JCLDhHQUE4RztRQUM5RyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksbUJBQW1CLENBQUM7WUFDekMsVUFBVTtZQUNWLFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSztT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QUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgT3BlcmF0aW9uQ29ubmVjdGlvbiBmcm9tIFwiLi9vcGVyYXRpb24tY29ubmVjdGlvbi5qc1wiXG5cbi8qKlxuICogRXhwbGljaXQgb3duZXIgZm9yIG1vZGVsIHdvcmsgcGVyZm9ybWVkIG9uIG9uZSBwaW5uZWQgdHJhbnNhY3Rpb25hbFxuICogY29ubmVjdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VPcGVyYXRpb24ge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcGVyYXRpb24gb3duZXJzaGlwLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gT3duaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuZW5mb3JjZUN1cnJlbnRUZW5hbnRSZXVzZUtleV0gLSBXaGV0aGVyIGFtYmllbnQgdGVuYW50IGNoYW5nZXMgaW52YWxpZGF0ZSB0aGlzIGxlZ2FjeSBvcGVyYXRpb24uXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5EYXRhYmFzZUNvbmZpZ3VyYXRpb25UeXBlfSBbYXJncy5kYXRhYmFzZUNvbmZpZ3VyYXRpb25dIC0gQ2FwdHVyZWQgcmVzb2x2ZWQgcGh5c2ljYWwgZGF0YWJhc2UgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY29uZmlndXJhdGlvblJldXNlS2V5IC0gUGh5c2ljYWwgZGF0YWJhc2UgY29uZmlndXJhdGlvbiBrZXkgY2FwdHVyZWQgYXQgY2hlY2tvdXQuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gYXJncy5jb25uZWN0aW9uIC0gUGlubmVkIHBoeXNpY2FsIGNvbm5lY3Rpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmRhdGFiYXNlSWRlbnRpZmllciAtIFNpbmd1bGFyIGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqIEBwYXJhbSB7c3ltYm9sfSBhcmdzLm93bmVyIC0gT3BhcXVlIHBvb2wgbGVhc2Ugb3duZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5zY2hlbWFHZW5lcmF0aW9uXSAtIFRlbmFudCBzY2hlbWEgZ2VuZXJhdGlvbiBvd25pbmcgcmVjb3JkIG1ldGFkYXRhLlxuICAgKiBAcGFyYW0ge29iamVjdCB8IHVuZGVmaW5lZH0gYXJncy50ZW5hbnQgLSBUZW5hbnQgZGVzY3JpcHRvciBjYXB0dXJlZCBieSB0aGUgb3duaW5nIGhhbmRsZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCBkYXRhYmFzZUNvbmZpZ3VyYXRpb24sIGNvbmZpZ3VyYXRpb25SZXVzZUtleSwgY29ubmVjdGlvbiwgZGF0YWJhc2VJZGVudGlmaWVyLCBlbmZvcmNlQ3VycmVudFRlbmFudFJldXNlS2V5ID0gdHJ1ZSwgb3duZXIsIHNjaGVtYUdlbmVyYXRpb24sIHRlbmFudH0pIHtcbiAgICB0aGlzLl9hY3RpdmUgPSB0cnVlXG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLl9kYXRhYmFzZUNvbmZpZ3VyYXRpb24gPSBkYXRhYmFzZUNvbmZpZ3VyYXRpb24gfHwgY29uZmlndXJhdGlvbi5yZXNvbHZlRGF0YWJhc2VDb25maWd1cmF0aW9uKGRhdGFiYXNlSWRlbnRpZmllciwgdGVuYW50KVxuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25SZXVzZUtleSA9IGNvbmZpZ3VyYXRpb25SZXVzZUtleVxuICAgIHRoaXMuX2RhdGFiYXNlSWRlbnRpZmllciA9IGRhdGFiYXNlSWRlbnRpZmllclxuICAgIHRoaXMuX2VuZm9yY2VDdXJyZW50VGVuYW50UmV1c2VLZXkgPSBlbmZvcmNlQ3VycmVudFRlbmFudFJldXNlS2V5XG4gICAgdGhpcy5fcGh5c2ljYWxDb25uZWN0aW9uID0gY29ubmVjdGlvblxuICAgIHRoaXMuX3NjaGVtYUdlbmVyYXRpb24gPSBzY2hlbWFHZW5lcmF0aW9uXG4gICAgdGhpcy5fdGVuYW50ID0gdGVuYW50XG4gICAgLyoqIEB0eXBlIHtXZWFrTWFwPHR5cGVvZiBpbXBvcnQoXCIuL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0LCB0eXBlb2YgaW1wb3J0KFwiLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdD59ICovXG4gICAgdGhpcy5fYm91bmRNb2RlbENsYXNzZXMgPSBuZXcgV2Vha01hcCgpXG4gICAgdGhpcy5fY29ubmVjdGlvbiA9IG5ldyBPcGVyYXRpb25Db25uZWN0aW9uKHtcbiAgICAgIGNvbm5lY3Rpb24sXG4gICAgICBvcGVyYXRpb246IHRoaXMsXG4gICAgICBvd25lclxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvcGVyYXRpb24tYm91bmQgbW9kZWwgcXVlcnkvY3JlYXRlIHNjb3BlLlxuICAgKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSBNQ1xuICAgKiBAcGFyYW0ge01DfSBNb2RlbENsYXNzIC0gTW9kZWwgY2xhc3MgdG8gYmluZC5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vcXVlcnkvbW9kZWwtY2xhc3MtcXVlcnkuanNcIikuZGVmYXVsdDxNQz59IC0gT3BlcmF0aW9uLWJvdW5kIHNjb3BlLlxuICAgKi9cbiAgZm9yTW9kZWwoTW9kZWxDbGFzcykge1xuICAgIHRoaXMuYXNzZXJ0QWN0aXZlKClcbiAgICB0aGlzLmFzc2VydE1vZGVsKE1vZGVsQ2xhc3MpXG5cbiAgICByZXR1cm4gdGhpcy5tb2RlbENsYXNzKE1vZGVsQ2xhc3MpLl9uZXdRdWVyeSh7XG4gICAgICBkcml2ZXI6IHRoaXMuY29ubmVjdGlvbigpLFxuICAgICAgb3BlcmF0aW9uOiB0aGlzXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbW9kZWwtY2xhc3MgdmlldyB3aG9zZSBzY2hlbWEgbWV0YWRhdGEgaXMgYm91bmQgdG8gdGhpcyBwaHlzaWNhbFxuICAgKiBkYXRhYmFzZSBnZW5lcmF0aW9uLiBDb25zdHJ1Y3Rpb24gc3RpbGwgcHJvZHVjZXMgdGhlIGFwcGxpY2F0aW9uJ3Mgb3JpZ2luYWxcbiAgICogbW9kZWwgY2xhc3MsIHNvIGxpZmVjeWNsZSBjYWxsYmFja3MgYW5kIG1vZGVsIHJlZ2lzdHJpZXMgcmV0YWluIGNsYXNzIGlkZW50aXR5LlxuICAgKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSBNQ1xuICAgKiBAcGFyYW0ge01DfSBNb2RlbENsYXNzIC0gQ2Fub25pY2FsIG1vZGVsIGNsYXNzLlxuICAgKiBAcmV0dXJucyB7TUN9IC0gT3BlcmF0aW9uLWJvdW5kIG1vZGVsIGNsYXNzLlxuICAgKi9cbiAgbW9kZWxDbGFzcyhNb2RlbENsYXNzKSB7XG4gICAgaWYgKCF0aGlzLl9zY2hlbWFHZW5lcmF0aW9uKSByZXR1cm4gTW9kZWxDbGFzc1xuXG4gICAgY29uc3QgY2Fub25pY2FsTW9kZWxDbGFzcyA9IC8qKiBAdHlwZSB7TUN9ICovIChNb2RlbENsYXNzLl9yZWNvcmRNZXRhZGF0YU1vZGVsQ2xhc3MgfHwgTW9kZWxDbGFzcylcblxuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5fYm91bmRNb2RlbENsYXNzZXMuZ2V0KGNhbm9uaWNhbE1vZGVsQ2xhc3MpXG5cbiAgICBpZiAoZXhpc3RpbmcpIHJldHVybiAvKiogQHR5cGUge01DfSAqLyAoZXhpc3RpbmcpXG5cbiAgICBjb25zdCBkYXRhYmFzZUlkZW50aXR5ID0gdGhpcy5kYXRhYmFzZUlkZW50aXR5KClcbiAgICBjb25zdCBtZXRhZGF0YUtleSA9IGAke2RhdGFiYXNlSWRlbnRpdHkubGVuZ3RofToke2RhdGFiYXNlSWRlbnRpdHl9OiR7dGhpcy5fc2NoZW1hR2VuZXJhdGlvbn1gXG4gICAgY29uc3QgbWV0YWRhdGFQcm9wZXJ0aWVzID0gY2Fub25pY2FsTW9kZWxDbGFzcy5yZWNvcmRNZXRhZGF0YVByb3BlcnR5TmFtZXMoKVxuICAgIGNvbnN0IGJvdW5kTW9kZWxDbGFzcyA9IG5ldyBQcm94eShjYW5vbmljYWxNb2RlbENsYXNzLCB7XG4gICAgICBjb25zdHJ1Y3Q6ICh0YXJnZXQsIGFyZ3MsIG5ld1RhcmdldCkgPT4gUmVmbGVjdC5jb25zdHJ1Y3QodGFyZ2V0LCBhcmdzLCBuZXdUYXJnZXQpLFxuICAgICAgZ2V0OiAodGFyZ2V0LCBwcm9wZXJ0eSwgcmVjZWl2ZXIpID0+IHtcbiAgICAgICAgaWYgKHByb3BlcnR5ID09PSBcIl9yZWNvcmRNZXRhZGF0YU1vZGVsQ2xhc3NcIikgcmV0dXJuIHRhcmdldFxuICAgICAgICBpZiAocHJvcGVydHkgPT09IFwiX3JlY29yZE1ldGFkYXRhQmluZGVyXCIpIHJldHVybiAoLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KFwiLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gKi8gdGFyZ2V0TW9kZWxDbGFzcykgPT4gdGhpcy5tb2RlbENsYXNzKHRhcmdldE1vZGVsQ2xhc3MpXG4gICAgICAgIGlmIChwcm9wZXJ0eSA9PT0gXCJfcmVjb3JkTWV0YWRhdGFPcGVyYXRpb25cIikgcmV0dXJuIHRoaXNcbiAgICAgICAgaWYgKHR5cGVvZiBwcm9wZXJ0eSA9PT0gXCJzdHJpbmdcIiAmJiBtZXRhZGF0YVByb3BlcnRpZXMuaGFzKHByb3BlcnR5KSkgcmV0dXJuIHRhcmdldC5yZWNvcmRNZXRhZGF0YVZhbHVlKG1ldGFkYXRhS2V5LCBwcm9wZXJ0eSlcblxuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wZXJ0eSwgcmVjZWl2ZXIpXG4gICAgICB9LFxuICAgICAgc2V0OiAodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHJlY2VpdmVyKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgcHJvcGVydHkgPT09IFwic3RyaW5nXCIgJiYgbWV0YWRhdGFQcm9wZXJ0aWVzLmhhcyhwcm9wZXJ0eSkpIHtcbiAgICAgICAgICB0YXJnZXQuc2V0UmVjb3JkTWV0YWRhdGFWYWx1ZShtZXRhZGF0YUtleSwgcHJvcGVydHksIHZhbHVlKVxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUsIHJlY2VpdmVyKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB0aGlzLl9ib3VuZE1vZGVsQ2xhc3Nlcy5zZXQoY2Fub25pY2FsTW9kZWxDbGFzcywgYm91bmRNb2RlbENsYXNzKVxuXG4gICAgcmV0dXJuIC8qKiBAdHlwZSB7TUN9ICovIChib3VuZE1vZGVsQ2xhc3MpXG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgdGhhdCBhIG1vZGVsIGJlbG9uZ3MgdG8gdGhpcyBvcGVyYXRpb24ncyBjb25maWd1cmF0aW9uIGFuZCBkYXRhYmFzZS5cbiAgICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gTW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzIHRvIHZlcmlmeS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBhc3NlcnRNb2RlbChNb2RlbENsYXNzKSB7XG4gICAgaWYgKE1vZGVsQ2xhc3MuX2dldENvbmZpZ3VyYXRpb24oKSAhPT0gdGhpcy5fY29uZmlndXJhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke01vZGVsQ2xhc3MuZ2V0TW9kZWxOYW1lKCl9IGJlbG9uZ3MgdG8gYW5vdGhlciBWZWxvY2lvdXMgY29uZmlndXJhdGlvbmApXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxEYXRhYmFzZUlkZW50aWZpZXIgPSBNb2RlbENsYXNzLmdldERhdGFiYXNlSWRlbnRpZmllcih7dGVuYW50OiB0aGlzLl90ZW5hbnR9KVxuXG4gICAgaWYgKG1vZGVsRGF0YWJhc2VJZGVudGlmaWVyICE9PSB0aGlzLl9kYXRhYmFzZUlkZW50aWZpZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtNb2RlbENsYXNzLmdldE1vZGVsTmFtZSgpfSB1c2VzIGRhdGFiYXNlICR7SlNPTi5zdHJpbmdpZnkobW9kZWxEYXRhYmFzZUlkZW50aWZpZXIpfSwgbm90IG9wZXJhdGlvbiBkYXRhYmFzZSAke0pTT04uc3RyaW5naWZ5KHRoaXMuX2RhdGFiYXNlSWRlbnRpZmllcil9YClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgYSBsb2FkZWQgb3IgYnVpbHQgcmVjb3JkIHRvIHRoaXMgb3BlcmF0aW9uLlxuICAgKiBAdGVtcGxhdGUge2ltcG9ydChcIi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9IE1vZGVsXG4gICAqIEBwYXJhbSB7TW9kZWx9IHJlY29yZCAtIFJlY29yZCB0byBiaW5kLlxuICAgKiBAcmV0dXJucyB7TW9kZWx9IC0gQm91bmQgcmVjb3JkLlxuICAgKi9cbiAgYmluZFJlY29yZChyZWNvcmQpIHtcbiAgICB0aGlzLmFzc2VydEFjdGl2ZSgpXG4gICAgdGhpcy5hc3NlcnRNb2RlbChyZWNvcmQuZ2V0TW9kZWxDbGFzcygpKVxuICAgIHJlY29yZC5iaW5kRGF0YWJhc2VPcGVyYXRpb24odGhpcylcblxuICAgIHJldHVybiByZWNvcmRcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBvd25lZCBieSB0aGUgY3VycmVudCBvcGVyYXRpb24gdHJhbnNhY3Rpb24gZnJhbWUuXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gQ2FsbGJhY2suXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIHJlZ2lzdHJhdGlvbiBvciBleGVjdXRpb24uXG4gICAqL1xuICBhc3luYyBhZnRlckNvbW1pdChjYWxsYmFjaykge1xuICAgIHRoaXMuYXNzZXJ0QWN0aXZlKClcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24oKS5hZnRlckNvbW1pdChjYWxsYmFjaylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBndWFyZCBvd25lZCBieSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi9zYXZlcG9pbnQgZnJhbWUuXG4gICAqIEBwYXJhbSB7KGNvbnRleHQ6IHtvcGVyYXRpb246IFZlbG9jaW91c0RhdGFiYXNlT3BlcmF0aW9ufSkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gR3VhcmQgY2FsbGJhY2suXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIHJlZ2lzdHJhdGlvbi5cbiAgICovXG4gIGFzeW5jIGJlZm9yZUNvbW1pdChjYWxsYmFjaykge1xuICAgIHRoaXMuYXNzZXJ0QWN0aXZlKClcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24oKS5iZWZvcmVDb21taXQoKCkgPT4gY2FsbGJhY2soe29wZXJhdGlvbjogdGhpc30pKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYSBuZXN0ZWQgb3BlcmF0aW9uIHRyYW5zYWN0aW9uL3NhdmVwb2ludC5cbiAgICogQHRlbXBsYXRlIFRcbiAgICogQHBhcmFtIHsoKSA9PiBQcm9taXNlPFQ+fSBjYWxsYmFjayAtIENhbGxiYWNrLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn0gLSBDYWxsYmFjayByZXN1bHQuXG4gICAqL1xuICBhc3luYyB0cmFuc2FjdGlvbihjYWxsYmFjaykge1xuICAgIHRoaXMuYXNzZXJ0QWN0aXZlKClcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbm5lY3Rpb24oKS50cmFuc2FjdGlvbihjYWxsYmFjaylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkZWxpYmVyYXRlbHkgZXhwb3NlZCBvcGVyYXRpb24gY29ubmVjdGlvbiBmYWNhZGUgZm9yIHJhdyBTUUwuXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0fSAtIE9wZXJhdGlvbi1ib3VuZCBjb25uZWN0aW9uLlxuICAgKi9cbiAgY29ubmVjdGlvbigpIHtcbiAgICB0aGlzLmFzc2VydEFjdGl2ZSgpXG5cbiAgICAvKipcbiAgICAgKiBOYXJyb3dzIHRoZSBQcm94eSBmYWNhZGUgdG8gdGhlIGNvbXBsZXRlIGRyaXZlciBzdXJmYWNlIHRoYXQgaXQgZm9yd2FyZHMuXG4gICAgICogQHR5cGUge2ltcG9ydChcIi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHR9XG4gICAgICovXG4gICAgY29uc3QgY29ubmVjdGlvbkZhY2FkZSA9IC8qKiBAdHlwZSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59ICovICh0aGlzLl9jb25uZWN0aW9uKVxuXG4gICAgcmV0dXJuIGNvbm5lY3Rpb25GYWNhZGVcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB0ZW5hbnQgZGVzY3JpcHRvciBjYXB0dXJlZCBieSB0aGUgaW1tdXRhYmxlIGhhbmRsZS5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkfSAtIENhcHR1cmVkIHRlbmFudCBkZXNjcmlwdG9yLlxuICAgKi9cbiAgdGVuYW50KCkge1xuICAgIHJldHVybiAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkfSAqLyAodGhpcy5fdGVuYW50KVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxvZ2ljYWwgZGF0YWJhc2UgaWRlbnRpZmllciBvd25lZCBieSB0aGlzIG9wZXJhdGlvbi5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBEYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKi9cbiAgZGF0YWJhc2VJZGVudGlmaWVyKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhYmFzZUlkZW50aWZpZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RhYmxlIHBoeXNpY2FsLWRhdGFiYXNlIGlkZW50aXR5IHN1aXRhYmxlIGZvciBvcGVyYXRpb24tYXdhcmUgY2FjaGVzLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFBoeXNpY2FsIGRhdGFiYXNlIGlkZW50aXR5LlxuICAgKi9cbiAgZGF0YWJhc2VJZGVudGl0eSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyfToke3RoaXMuX2NvbmZpZ3VyYXRpb25SZXVzZUtleX1gXG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYSBtb2RlbCB0aHJvdWdoIHRoaXMgb3BlcmF0aW9uJ3MgY2FwdHVyZWQgY29ubmVjdGlvbi5cbiAgICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gTW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGluaXRpYWxpemVkLlxuICAgKi9cbiAgYXN5bmMgZW5zdXJlTW9kZWxJbml0aWFsaXplZChNb2RlbENsYXNzKSB7XG4gICAgdGhpcy5hc3NlcnRBY3RpdmUoKVxuXG4gICAgY29uc3QgYm91bmRNb2RlbENsYXNzID0gdGhpcy5tb2RlbENsYXNzKE1vZGVsQ2xhc3MpXG5cbiAgICBpZiAoYm91bmRNb2RlbENsYXNzLmlzSW5pdGlhbGl6ZWQoKSkgdGhpcy5hc3NlcnRNb2RlbChNb2RlbENsYXNzKVxuXG4gICAgYXdhaXQgYm91bmRNb2RlbENsYXNzLmVuc3VyZUluaXRpYWxpemVkKHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuX2NvbmZpZ3VyYXRpb24sXG4gICAgICBjb25uZWN0aW9uOiB0aGlzLmNvbm5lY3Rpb24oKVxuICAgIH0pXG4gICAgdGhpcy5hc3NlcnRNb2RlbChNb2RlbENsYXNzKVxuICB9XG5cbiAgLyoqXG4gICAqIFJhaXNlcyB3aGVuIGFuIG9wZXJhdGlvbiBoYW5kbGUgaGFzIGxlZnQgaXRzIGNhbGxiYWNrLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGFzc2VydEFjdGl2ZSgpIHtcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZSkgdGhyb3cgbmV3IEVycm9yKFwiRGF0YWJhc2Ugb3BlcmF0aW9uIGhhcyBjb21wbGV0ZWRcIilcblxuICAgIGNvbnN0IHBvb2wgPSB0aGlzXG4gICAgICAuX2NvbmZpZ3VyYXRpb25cbiAgICAgIC5nZXREYXRhYmFzZVBvb2wodGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyKVxuICAgIGNvbnN0IGNhcHR1cmVkUmV1c2VLZXkgPSBwb29sLmdldENvbmZpZ3VyYXRpb25SZXVzZUtleSh0aGlzLl9kYXRhYmFzZUNvbmZpZ3VyYXRpb24pXG4gICAgY29uc3QgY29ubmVjdGlvblJldXNlS2V5ID0gcG9vbC5nZXRDb25uZWN0aW9uQ29uZmlndXJhdGlvblJldXNlS2V5KHRoaXMuX3BoeXNpY2FsQ29ubmVjdGlvbilcblxuICAgIGlmIChjYXB0dXJlZFJldXNlS2V5ICE9PSB0aGlzLl9jb25maWd1cmF0aW9uUmV1c2VLZXkgfHwgY29ubmVjdGlvblJldXNlS2V5ICE9PSB0aGlzLl9jb25maWd1cmF0aW9uUmV1c2VLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRGF0YWJhc2Ugb3BlcmF0aW9uIGZvciAke0pTT04uc3RyaW5naWZ5KHRoaXMuX2RhdGFiYXNlSWRlbnRpZmllcil9IGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgcGh5c2ljYWwgZGF0YWJhc2UgdGhhbiBpdHMgY2FwdHVyZWQgdGVuYW50IGhhbmRsZWApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2VuZm9yY2VDdXJyZW50VGVuYW50UmV1c2VLZXkgJiYgcG9vbC5nZXRDb25maWd1cmF0aW9uUmV1c2VLZXkoKSAhPT0gdGhpcy5fY29uZmlndXJhdGlvblJldXNlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERhdGFiYXNlIG9wZXJhdGlvbiBmb3IgJHtKU09OLnN0cmluZ2lmeSh0aGlzLl9kYXRhYmFzZUlkZW50aWZpZXIpfSBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IHBoeXNpY2FsIGRhdGFiYXNlIHRoYW4gdGhlIGN1cnJlbnQgdGVuYW50IGNvbnRleHRgKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBpcmVzIHRoZSBvcGVyYXRpb24gYW5kIGFsbCBzY29wZXMvcmVjb3JkcyBib3VuZCB0byBpdC5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBjb21wbGV0ZSgpIHtcbiAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZVxuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join-object.d.ts","sourceRoot":"","sources":["../../../../src/database/query/join-object.js"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAMlC,YAA0E,eAAe,GAA/E;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,CAAA;CAAC,CAAiB;AACzF,YAAiD,UAAU,GAAjD;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAA;CAAC,CAAY;AAH9D;;;;GAIG;AAEH,MAAM,CAAC,OAAO,OAAO,gCAAiC,SAAQ,QAAQ;IAQ7D,MAAM;IACN,QAAQ;IARf;;;;OAIG;IACH,YAAY,MAAM,EAHP,UAGO,EAAE,QAAQ,AAFzB,CACF,EADU,MAAM,EAEgB,EAIhC;IAED,KAAK,WAaJ;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAI,EAPJ,UAOI,EAAE,UAAU,EANhB,cAAc,oBAAoB,EAAE,OAMpB,EAAE,GAAG,EALrB,MAKqB,EAAE,UAAU,EAJjC,MAIiC,EAAE,IAAI,EAHvC,MAAM,EAGiC,GAFrC,MAAM,
|
|
1
|
+
{"version":3,"file":"join-object.d.ts","sourceRoot":"","sources":["../../../../src/database/query/join-object.js"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAMlC,YAA0E,eAAe,GAA/E;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,CAAA;CAAC,CAAiB;AACzF,YAAiD,UAAU,GAAjD;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAA;CAAC,CAAY;AAH9D;;;;GAIG;AAEH,MAAM,CAAC,OAAO,OAAO,gCAAiC,SAAQ,QAAQ;IAQ7D,MAAM;IACN,QAAQ;IARf;;;;OAIG;IACH,YAAY,MAAM,EAHP,UAGO,EAAE,QAAQ,AAFzB,CACF,EADU,MAAM,EAEgB,EAIhC;IAED,KAAK,WAaJ;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAI,EAPJ,UAOI,EAAE,UAAU,EANhB,cAAc,oBAAoB,EAAE,OAMpB,EAAE,GAAG,EALrB,MAKqB,EAAE,UAAU,EAJjC,MAIiC,EAAE,IAAI,EAHvC,MAAM,EAGiC,GAFrC,MAAM,CA2DlB;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAC,EAPxE;QAAgE,YAAY,EAApE,OAAO,iCAAiC,EAAE,OAAO,CACzD;QAAuD,KAAK,EAApD,OAAO,wBAAwB,EAAE,OAAO,CAChD;QAA0D,gBAAgB,EAAlE,cAAc,oBAAoB,EAAE,OAAO,CACnD;QAAuB,QAAQ,EAAvB,MAAM,EAAE,CAChB;QAAqB,cAAc,EAA3B,MAAM,CACd;KAEwE,GAF9D,MAAM,CAkBlB;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAJZ,OAAO,iBAAiB,EAAE,OAId,EAAE,cAAc,EAH5B,MAG4B,GAF1B,MAAM,CAuBlB;CACF"}
|
|
@@ -43,10 +43,12 @@ export default class VelociousDatabaseQueryJoinObject extends JoinBase {
|
|
|
43
43
|
for (const joinKey in join) {
|
|
44
44
|
const joinValue = join[joinKey];
|
|
45
45
|
const relationship = modelClass.getRelationshipByName(joinKey);
|
|
46
|
-
const
|
|
47
|
-
if (!
|
|
46
|
+
const rawTargetModelClass = relationship.getTargetModelClass();
|
|
47
|
+
if (!rawTargetModelClass) {
|
|
48
48
|
throw new Error(`Relationship ${modelClass.name}#${joinKey} has no target model class`);
|
|
49
49
|
}
|
|
50
|
+
const targetModelClass = query.bindModelClass(rawTargetModelClass);
|
|
51
|
+
const foreignKey = relationship.getForeignKeyForModelClasses({ modelClass, targetModelClass });
|
|
50
52
|
const joinPath = path.concat([joinKey]);
|
|
51
53
|
const parentTableRef = query.getJoinTableReference(path);
|
|
52
54
|
const targetEntry = query._registerJoinPath(joinPath);
|
|
@@ -65,10 +67,10 @@ export default class VelociousDatabaseQueryJoinObject extends JoinBase {
|
|
|
65
67
|
sql += `LEFT JOIN ${joinTableSql} ON `;
|
|
66
68
|
if (relationship.getType() == "belongsTo") {
|
|
67
69
|
sql += `${conn.quoteTable(targetTableRef)}.${conn.quoteColumn(relationship.getPrimaryKey())} = `;
|
|
68
|
-
sql += `${conn.quoteTable(parentTableRef)}.${conn.quoteColumn(
|
|
70
|
+
sql += `${conn.quoteTable(parentTableRef)}.${conn.quoteColumn(foreignKey)}`;
|
|
69
71
|
}
|
|
70
72
|
else if (relationship.getType() == "hasMany" || relationship.getType() == "hasOne") {
|
|
71
|
-
sql += `${conn.quoteTable(targetTableRef)}.${conn.quoteColumn(
|
|
73
|
+
sql += `${conn.quoteTable(targetTableRef)}.${conn.quoteColumn(foreignKey)} = `;
|
|
72
74
|
sql += `${conn.quoteTable(parentTableRef)}.${conn.quoteColumn(relationship.getPrimaryKey())}`;
|
|
73
75
|
}
|
|
74
76
|
else {
|
|
@@ -133,4 +135,4 @@ export default class VelociousDatabaseQueryJoinObject extends JoinBase {
|
|
|
133
135
|
return where.toSql();
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9pbi1vYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvcXVlcnkvam9pbi1vYmplY3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JDLE9BQU8sU0FBUyxNQUFNLGlCQUFpQixDQUFBO0FBQ3ZDLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBRXJDOzs7O0dBSUc7QUFFSCxNQUFNLENBQUMsT0FBTyxPQUFPLGdDQUFpQyxTQUFRLFFBQVE7SUFDcEU7Ozs7T0FJRztJQUNILFlBQVksTUFBTSxFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQy9CLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDMUIsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFN0IsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSx1Q0FBdUMsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMxRixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsdURBQXVELENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsRixNQUFNLFVBQVUsR0FBRywwREFBMEQsQ0FBQyxDQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQzNHLENBQUE7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENB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LE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBQzNILE1BQU0sUUFBUSxHQUFHLFNBQVM7Z0JBQ3hCLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDckIsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQTtZQUU5RCxPQUFPLFFBQVEsUUFBUSxHQUFHLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgSm9pbkJhc2UgZnJvbSBcIi4vam9pbi1iYXNlLmpzXCJcbmltcG9ydCBXaGVyZUhhc2ggZnJvbSBcIi4vd2hlcmUtaGFzaC5qc1wiXG5pbXBvcnQgV2hlcmVOb3QgZnJvbSBcIi4vd2hlcmUtbm90LmpzXCJcblxuLyoqXG4gKiBWZWxvY2lvdXNEYXRhYmFzZVF1ZXJ5Sm9pbk9iamVjdCBjbGFzcy5cbiAqIEB0eXBlZGVmIHt7W2tleTogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB8IHN0cmluZ1tdIHwgSm9pbk9iamVjdElucHV0fX0gSm9pbk9iamVjdElucHV0XG4gKiBAdHlwZWRlZiB7e1trZXk6IHN0cmluZ106IGJvb2xlYW4gfCBKb2luT2JqZWN0fX0gSm9pbk9iamVjdFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUXVlcnlKb2luT2JqZWN0IGV4dGVuZHMgSm9pbkJhc2Uge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtKb2luT2JqZWN0fSBvYmplY3QgLSBPYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFtiYXNlUGF0aF0gLSBKb2luIGJhc2UgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBxdWVyeS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKG9iamVjdCwgYmFzZVBhdGggPSBbXSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLm9iamVjdCA9IG9iamVjdFxuICAgIHRoaXMuYmFzZVBhdGggPSBiYXNlUGF0aFxuICB9XG5cbiAgdG9TcWwoKSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmdldFF1ZXJ5KClcblxuICAgIGlmIChxdWVyeS5jb25zdHJ1Y3Rvci5uYW1lICE9IFwiVmVsb2Npb3VzRGF0YWJhc2VRdWVyeU1vZGVsQ2xhc3NRdWVyeVwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFF1ZXJ5IGhhcyB0byBiZSBhIE1vZGVsQ2xhc3NRdWVyeSBidXQgd2FzIGEgJHtxdWVyeS5jb25zdHJ1Y3Rvci5uYW1lfWApXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxRdWVyeSA9IC8qKiBAdHlwZSB7aW1wb3J0KFwiLi9tb2RlbC1jbGFzcy1xdWVyeS5qc1wiKS5kZWZhdWx0fSAqLyAocXVlcnkpXG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IC8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydChcIi4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSAqLyAoXG4gICAgICB0aGlzLmJhc2VQYXRoLmxlbmd0aCA+IDAgPyBtb2RlbFF1ZXJ5Ll9yZXNvbHZlTW9kZWxDbGFzc0ZvckpvaW5QYXRoKHRoaXMuYmFzZVBhdGgpIDogbW9kZWxRdWVyeS5tb2RlbENsYXNzXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMuam9pbk9iamVjdCh0aGlzLm9iamVjdCwgTW9kZWxDbGFzcywgXCJcIiwgMCwgbW9kZWxRdWVyeS5nZXRKb2luQmFzZVBhdGgoKS5jb25jYXQodGhpcy5iYXNlUGF0aCkpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBqb2luIG9iamVjdC5cbiAgICogQHBhcmFtIHtKb2luT2JqZWN0fSBqb2luIC0gSm9pbi5cbiAgICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9IG1vZGVsQ2xhc3MgLSBNb2RlbCBjbGFzcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNxbCAtIFNRTCBzdHJpbmcuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqb2luc0NvdW50IC0gSm9pbnMgY291bnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGggLSBKb2luIHBhdGguXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGpvaW4gb2JqZWN0LlxuICAgKi9cbiAgam9pbk9iamVjdChqb2luLCBtb2RlbENsYXNzLCBzcWwsIGpvaW5zQ291bnQsIHBhdGgpIHtcbiAgICBjb25zdCBwcmV0dHkgPSB0aGlzLnByZXR0eVxuICAgIGNvbnN0IGNvbm4gPSB0aGlzLmdldFF1ZXJ5KCkuZHJpdmVyXG4gICAgY29uc3QgcXVlcnkgPSAvKiogQHR5cGUge2ltcG9ydChcIi4vbW9kZWwtY2xhc3MtcXVlcnkuanNcIikuZGVmYXVsdH0gKi8gKHRoaXMuZ2V0UXVlcnkoKSlcblxuICAgIGZvciAoY29uc3Qgam9pbktleSBpbiBqb2luKSB7XG4gICAgICBjb25zdCBqb2luVmFsdWUgPSBqb2luW2pvaW5LZXldXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSBtb2RlbENsYXNzLmdldFJlbGF0aW9uc2hpcEJ5TmFtZShqb2luS2V5KVxuICAgICAgY29uc3QgdGFyZ2V0TW9kZWxDbGFzcyA9IHJlbGF0aW9uc2hpcC5nZXRUYXJnZXRNb2RlbENsYXNzKClcblxuICAgICAgaWYgKCF0YXJnZXRNb2RlbENsYXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUmVsYXRpb25zaGlwICR7bW9kZWxDbGFzcy5uYW1lfSMke2pvaW5LZXl9IGhhcyBubyB0YXJnZXQgbW9kZWwgY2xhc3NgKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBqb2luUGF0aCA9IHBhdGguY29uY2F0KFtqb2luS2V5XSlcbiAgICAgIGNvbnN0IHBhcmVudFRhYmxlUmVmID0gcXVlcnkuZ2V0Sm9pblRhYmxlUmVmZXJlbmNlKHBhdGgpXG4gICAgICBjb25zdCB0YXJnZXRFbnRyeSA9IHF1ZXJ5Ll9yZWdpc3RlckpvaW5QYXRoKGpvaW5QYXRoKVxuICAgICAgY29uc3QgdGFyZ2V0VGFibGVSZWYgPSB0YXJnZXRFbnRyeS5hbGlhcyB8fCB0YXJnZXRFbnRyeS50YWJsZU5hbWVcbiAgICAgIGNvbnN0IGpvaW5UYWJsZVNxbCA9IHRhcmdldEVudHJ5LmFsaWFzXG4gICAgICAgID8gYCR7Y29ubi5xdW90ZVRhYmxlKHRhcmdldEVudHJ5LnRhYmxlTmFtZSl9IEFTICR7Y29ubi5xdW90ZVRhYmxlKHRhcmdldEVudHJ5LmFsaWFzKX1gXG4gICAgICAgIDogY29ubi5xdW90ZVRhYmxlKHRhcmdldEVudHJ5LnRhYmxlTmFtZSlcblxuICAgICAgaWYgKGpvaW5zQ291bnQgPiAwKSB7XG4gICAgICAgIGlmIChwcmV0dHkpIHtcbiAgICAgICAgICBzcWwgKz0gXCJcXG5cXG5cIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNxbCArPSBcIiBcIlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNxbCArPSBgTEVGVCBKT0lOICR7am9pblRhYmxlU3FsfSBPTiBgXG5cbiAgICAgIGlmIChyZWxhdGlvbnNoaXAuZ2V0VHlwZSgpID09IFwiYmVsb25nc1RvXCIpIHtcbiAgICAgICAgc3FsICs9IGAke2Nvbm4ucXVvdGVUYWJsZSh0YXJnZXRUYWJsZVJlZil9LiR7Y29ubi5xdW90ZUNvbHVtbihyZWxhdGlvbnNoaXAuZ2V0UHJpbWFyeUtleSgpKX0gPSBgXG4gICAgICAgIHNxbCArPSBgJHtjb25uLnF1b3RlVGFibGUocGFyZW50VGFibGVSZWYpfS4ke2Nvbm4ucXVvdGVDb2x1bW4ocmVsYXRpb25zaGlwLmdldEZvcmVpZ25LZXkoKSl9YFxuICAgICAgfSBlbHNlIGlmIChyZWxhdGlvbnNoaXAuZ2V0VHlwZSgpID09IFwiaGFzTWFueVwiIHx8IHJlbGF0aW9uc2hpcC5nZXRUeXBlKCkgPT0gXCJoYXNPbmVcIikge1xuICAgICAgICBzcWwgKz0gYCR7Y29ubi5xdW90ZVRhYmxlKHRhcmdldFRhYmxlUmVmKX0uJHtjb25uLnF1b3RlQ29sdW1uKHJlbGF0aW9uc2hpcC5nZXRGb3JlaWduS2V5KCkpfSA9IGBcbiAgICAgICAgc3FsICs9IGAke2Nvbm4ucXVvdGVUYWJsZShwYXJlbnRUYWJsZVJlZil9LiR7Y29ubi5xdW90ZUNvbHVtbihyZWxhdGlvbnNoaXAuZ2V0UHJpbWFyeUtleSgpKX1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcmVsYXRpb25zaGlwIHR5cGU6ICR7cmVsYXRpb25zaGlwLmdldFR5cGUoKX1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBzY29wZVNxbCA9IHRoaXMuX3Njb3BlU3FsKHtyZWxhdGlvbnNoaXAsIHF1ZXJ5LCB0YXJnZXRNb2RlbENsYXNzLCBqb2luUGF0aCwgdGFyZ2V0VGFibGVSZWZ9KVxuXG4gICAgICBpZiAoc2NvcGVTcWwpIHtcbiAgICAgICAgc3FsICs9IGAgQU5EICR7c2NvcGVTcWx9YFxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGpvaW5WYWx1ZSA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHNxbCA9IHRoaXMuam9pbk9iamVjdChqb2luVmFsdWUsIHRhcmdldE1vZGVsQ2xhc3MsIHNxbCwgam9pbnNDb3VudCArIDEsIGpvaW5QYXRoKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzcWxcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNjb3BlIHNxbC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9yZWNvcmQvcmVsYXRpb25zaGlwcy9iYXNlLmpzXCIpLmRlZmF1bHR9IGFyZ3MucmVsYXRpb25zaGlwIC0gUmVsYXRpb25zaGlwIGRlZmluaXRpb24uXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9tb2RlbC1jbGFzcy1xdWVyeS5qc1wiKS5kZWZhdWx0fSBhcmdzLnF1ZXJ5IC0gTW9kZWwgY2xhc3MgcXVlcnkuXG4gICAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSBhcmdzLnRhcmdldE1vZGVsQ2xhc3MgLSBUYXJnZXQgbW9kZWwgY2xhc3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFyZ3Muam9pblBhdGggLSBKb2luIHBhdGguXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnRhcmdldFRhYmxlUmVmIC0gVGFyZ2V0IHRhYmxlIHJlZmVyZW5jZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBTY29wZSBTUUwuXG4gICAqL1xuICBfc2NvcGVTcWwoe3JlbGF0aW9uc2hpcCwgcXVlcnksIHRhcmdldE1vZGVsQ2xhc3MsIGpvaW5QYXRoLCB0YXJnZXRUYWJsZVJlZn0pIHtcbiAgICBpZiAoIXJlbGF0aW9uc2hpcC5nZXRTY29wZSgpKSByZXR1cm4gXCJcIlxuXG4gICAgY29uc3Qgc2NvcGVkUXVlcnkgPSBxdWVyeS5idWlsZEpvaW5TY29wZVF1ZXJ5KHRhcmdldE1vZGVsQ2xhc3MsIGpvaW5QYXRoKVxuICAgIGNvbnN0IGFwcGxpZWRRdWVyeSA9IHJlbGF0aW9uc2hpcC5hcHBseVNjb3BlKHNjb3BlZFF1ZXJ5KSB8fCBzY29wZWRRdWVyeVxuICAgIGNvbnN0IHdoZXJlcyA9IGFwcGxpZWRRdWVyeS5fd2hlcmVzXG5cbiAgICBpZiAoIXdoZXJlcyB8fCB3aGVyZXMubGVuZ3RoID09PSAwKSByZXR1cm4gXCJcIlxuXG4gICAgY29uc3QgcGFydHMgPSBbXVxuXG4gICAgZm9yIChjb25zdCB3aGVyZSBvZiB3aGVyZXMpIHtcbiAgICAgIHBhcnRzLnB1c2godGhpcy5fc2NvcGVTcWxGb3JXaGVyZSh3aGVyZSwgdGFyZ2V0VGFibGVSZWYpKVxuICAgIH1cblxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiIEFORCBcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNjb3BlIHNxbCBmb3Igd2hlcmUuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi93aGVyZS1iYXNlLmpzXCIpLmRlZmF1bHR9IHdoZXJlIC0gV2hlcmUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXRUYWJsZVJlZiAtIFRhcmdldCB0YWJsZSByZWZlcmVuY2UuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gU2NvcGUgd2hlcmUgU1FMLlxuICAgKi9cbiAgX3Njb3BlU3FsRm9yV2hlcmUod2hlcmUsIHRhcmdldFRhYmxlUmVmKSB7XG4gICAgaWYgKHdoZXJlIGluc3RhbmNlb2YgV2hlcmVIYXNoKSB7XG4gICAgICBjb25zdCBoYXNoID0gd2hlcmUuaGFzaFxuICAgICAgY29uc3QgaGFzTmVzdGVkID0gT2JqZWN0LnZhbHVlcyhoYXNoKS5zb21lKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSlcblxuICAgICAgcmV0dXJuIGhhc05lc3RlZFxuICAgICAgICA/IHdoZXJlLnRvU3FsKClcbiAgICAgICAgOiBgKCR7d2hlcmUuX3doZXJlU1FMRnJvbUhhc2goaGFzaCwgdGFyZ2V0VGFibGVSZWYpfSlgXG4gICAgfVxuXG4gICAgaWYgKHdoZXJlIGluc3RhbmNlb2YgV2hlcmVOb3QgJiYgd2hlcmUud2hlcmUgaW5zdGFuY2VvZiBXaGVyZUhhc2gpIHtcbiAgICAgIGNvbnN0IGhhc2ggPSB3aGVyZS53aGVyZS5oYXNoXG4gICAgICBjb25zdCBoYXNOZXN0ZWQgPSBPYmplY3QudmFsdWVzKGhhc2gpLnNvbWUoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgY29uc3QgaW5uZXJTcWwgPSBoYXNOZXN0ZWRcbiAgICAgICAgPyB3aGVyZS53aGVyZS50b1NxbCgpXG4gICAgICAgIDogYCgke3doZXJlLndoZXJlLl93aGVyZVNRTEZyb21IYXNoKGhhc2gsIHRhcmdldFRhYmxlUmVmKX0pYFxuXG4gICAgICByZXR1cm4gYE5PVCAoJHtpbm5lclNxbH0pYFxuICAgIH1cblxuICAgIHJldHVybiB3aGVyZS50b1NxbCgpXG4gIH1cbn1cbiJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9pbi1vYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvcXVlcnkvam9pbi1vYmplY3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JDLE9BQU8sU0FBUyxNQUFNLGlCQUFpQixDQUFBO0FBQ3ZDLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBRXJDOzs7O0dBSUc7QUFFSCxNQUFNLENBQUMsT0FBTyxPQUFPLGdDQUFpQyxTQUFRLFFBQVE7SUFDcEU7Ozs7T0FJRztJQUNILFlBQVksTUFBTSxFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQy9CLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDMUIsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFN0IsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSx1Q0FBdUMsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMxRixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsdURBQXVELENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsRixNQUFNLFVBQVUsR0FBRywwREFBMEQsQ0FBQyxDQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQzNHLENBQUE7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENB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QUFDLEtBQUssWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUNsRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQTtZQUM3QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDM0gsTUFBTSxRQUFRLEdBQUcsU0FBUztnQkFDeEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUNyQixDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFBO1lBRTlELE9BQU8sUUFBUSxRQUFRLEdBQUcsQ0FBQTtRQUM1QixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBKb2luQmFzZSBmcm9tIFwiLi9qb2luLWJhc2UuanNcIlxuaW1wb3J0IFdoZXJlSGFzaCBmcm9tIFwiLi93aGVyZS1oYXNoLmpzXCJcbmltcG9ydCBXaGVyZU5vdCBmcm9tIFwiLi93aGVyZS1ub3QuanNcIlxuXG4vKipcbiAqIFZlbG9jaW91c0RhdGFiYXNlUXVlcnlKb2luT2JqZWN0IGNsYXNzLlxuICogQHR5cGVkZWYge3tba2V5OiBzdHJpbmddOiBib29sZWFuIHwgc3RyaW5nIHwgc3RyaW5nW10gfCBKb2luT2JqZWN0SW5wdXR9fSBKb2luT2JqZWN0SW5wdXRcbiAqIEB0eXBlZGVmIHt7W2tleTogc3RyaW5nXTogYm9vbGVhbiB8IEpvaW5PYmplY3R9fSBKb2luT2JqZWN0XG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VRdWVyeUpvaW5PYmplY3QgZXh0ZW5kcyBKb2luQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge0pvaW5PYmplY3R9IG9iamVjdCAtIE9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gW2Jhc2VQYXRoXSAtIEpvaW4gYmFzZSBwYXRoIHJlbGF0aXZlIHRvIHRoZSByb290IHF1ZXJ5LlxuICAgKi9cbiAgY29uc3RydWN0b3Iob2JqZWN0LCBiYXNlUGF0aCA9IFtdKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMub2JqZWN0ID0gb2JqZWN0XG4gICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoXG4gIH1cblxuICB0b1NxbCgpIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZ2V0UXVlcnkoKVxuXG4gICAgaWYgKHF1ZXJ5LmNvbnN0cnVjdG9yLm5hbWUgIT0gXCJWZWxvY2lvdXNEYXRhYmFzZVF1ZXJ5TW9kZWxDbGFzc1F1ZXJ5XCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUXVlcnkgaGFzIHRvIGJlIGEgTW9kZWxDbGFzc1F1ZXJ5IGJ1dCB3YXMgYSAke3F1ZXJ5LmNvbnN0cnVjdG9yLm5hbWV9YClcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlbFF1ZXJ5ID0gLyoqIEB0eXBlIHtpbXBvcnQoXCIuL21vZGVsLWNsYXNzLXF1ZXJ5LmpzXCIpLmRlZmF1bHR9ICovIChxdWVyeSlcbiAgICBjb25zdCBNb2RlbENsYXNzID0gLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KFwiLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9ICovIChcbiAgICAgIHRoaXMuYmFzZVBhdGgubGVuZ3RoID4gMCA/IG1vZGVsUXVlcnkuX3Jlc29sdmVNb2RlbENsYXNzRm9ySm9pblBhdGgodGhpcy5iYXNlUGF0aCkgOiBtb2RlbFF1ZXJ5Lm1vZGVsQ2xhc3NcbiAgICApXG5cbiAgICByZXR1cm4gdGhpcy5qb2luT2JqZWN0KHRoaXMub2JqZWN0LCBNb2RlbENsYXNzLCBcIlwiLCAwLCBtb2RlbFF1ZXJ5LmdldEpvaW5CYXNlUGF0aCgpLmNvbmNhdCh0aGlzLmJhc2VQYXRoKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGpvaW4gb2JqZWN0LlxuICAgKiBAcGFyYW0ge0pvaW5PYmplY3R9IGpvaW4gLSBKb2luLlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gbW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3FsIC0gU1FMIHN0cmluZy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpvaW5zQ291bnQgLSBKb2lucyBjb3VudC5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aCAtIEpvaW4gcGF0aC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgam9pbiBvYmplY3QuXG4gICAqL1xuICBqb2luT2JqZWN0KGpvaW4sIG1vZGVsQ2xhc3MsIHNxbCwgam9pbnNDb3VudCwgcGF0aCkge1xuICAgIGNvbnN0IHByZXR0eSA9IHRoaXMucHJldHR5XG4gICAgY29uc3QgY29ubiA9IHRoaXMuZ2V0UXVlcnkoKS5kcml2ZXJcbiAgICBjb25zdCBxdWVyeSA9IC8qKiBAdHlwZSB7aW1wb3J0KFwiLi9tb2RlbC1jbGFzcy1xdWVyeS5qc1wiKS5kZWZhdWx0fSAqLyAodGhpcy5nZXRRdWVyeSgpKVxuXG4gICAgZm9yIChjb25zdCBqb2luS2V5IGluIGpvaW4pIHtcbiAgICAgIGNvbnN0IGpvaW5WYWx1ZSA9IGpvaW5bam9pbktleV1cbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcCA9IG1vZGVsQ2xhc3MuZ2V0UmVsYXRpb25zaGlwQnlOYW1lKGpvaW5LZXkpXG4gICAgICBjb25zdCByYXdUYXJnZXRNb2RlbENsYXNzID0gcmVsYXRpb25zaGlwLmdldFRhcmdldE1vZGVsQ2xhc3MoKVxuXG4gICAgICBpZiAoIXJhd1RhcmdldE1vZGVsQ2xhc3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZWxhdGlvbnNoaXAgJHttb2RlbENsYXNzLm5hbWV9IyR7am9pbktleX0gaGFzIG5vIHRhcmdldCBtb2RlbCBjbGFzc2ApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhcmdldE1vZGVsQ2xhc3MgPSBxdWVyeS5iaW5kTW9kZWxDbGFzcyhyYXdUYXJnZXRNb2RlbENsYXNzKVxuICAgICAgY29uc3QgZm9yZWlnbktleSA9IHJlbGF0aW9uc2hpcC5nZXRGb3JlaWduS2V5Rm9yTW9kZWxDbGFzc2VzKHttb2RlbENsYXNzLCB0YXJnZXRNb2RlbENsYXNzfSlcblxuICAgICAgY29uc3Qgam9pblBhdGggPSBwYXRoLmNvbmNhdChbam9pbktleV0pXG4gICAgICBjb25zdCBwYXJlbnRUYWJsZVJlZiA9IHF1ZXJ5LmdldEpvaW5UYWJsZVJlZmVyZW5jZShwYXRoKVxuICAgICAgY29uc3QgdGFyZ2V0RW50cnkgPSBxdWVyeS5fcmVnaXN0ZXJKb2luUGF0aChqb2luUGF0aClcbiAgICAgIGNvbnN0IHRhcmdldFRhYmxlUmVmID0gdGFyZ2V0RW50cnkuYWxpYXMgfHwgdGFyZ2V0RW50cnkudGFibGVOYW1lXG4gICAgICBjb25zdCBqb2luVGFibGVTcWwgPSB0YXJnZXRFbnRyeS5hbGlhc1xuICAgICAgICA/IGAke2Nvbm4ucXVvdGVUYWJsZSh0YXJnZXRFbnRyeS50YWJsZU5hbWUpfSBBUyAke2Nvbm4ucXVvdGVUYWJsZSh0YXJnZXRFbnRyeS5hbGlhcyl9YFxuICAgICAgICA6IGNvbm4ucXVvdGVUYWJsZSh0YXJnZXRFbnRyeS50YWJsZU5hbWUpXG5cbiAgICAgIGlmIChqb2luc0NvdW50ID4gMCkge1xuICAgICAgICBpZiAocHJldHR5KSB7XG4gICAgICAgICAgc3FsICs9IFwiXFxuXFxuXCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzcWwgKz0gXCIgXCJcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzcWwgKz0gYExFRlQgSk9JTiAke2pvaW5UYWJsZVNxbH0gT04gYFxuXG4gICAgICBpZiAocmVsYXRpb25zaGlwLmdldFR5cGUoKSA9PSBcImJlbG9uZ3NUb1wiKSB7XG4gICAgICAgIHNxbCArPSBgJHtjb25uLnF1b3RlVGFibGUodGFyZ2V0VGFibGVSZWYpfS4ke2Nvbm4ucXVvdGVDb2x1bW4ocmVsYXRpb25zaGlwLmdldFByaW1hcnlLZXkoKSl9ID0gYFxuICAgICAgICBzcWwgKz0gYCR7Y29ubi5xdW90ZVRhYmxlKHBhcmVudFRhYmxlUmVmKX0uJHtjb25uLnF1b3RlQ29sdW1uKGZvcmVpZ25LZXkpfWBcbiAgICAgIH0gZWxzZSBpZiAocmVsYXRpb25zaGlwLmdldFR5cGUoKSA9PSBcImhhc01hbnlcIiB8fCByZWxhdGlvbnNoaXAuZ2V0VHlwZSgpID09IFwiaGFzT25lXCIpIHtcbiAgICAgICAgc3FsICs9IGAke2Nvbm4ucXVvdGVUYWJsZSh0YXJnZXRUYWJsZVJlZil9LiR7Y29ubi5xdW90ZUNvbHVtbihmb3JlaWduS2V5KX0gPSBgXG4gICAgICAgIHNxbCArPSBgJHtjb25uLnF1b3RlVGFibGUocGFyZW50VGFibGVSZWYpfS4ke2Nvbm4ucXVvdGVDb2x1bW4ocmVsYXRpb25zaGlwLmdldFByaW1hcnlLZXkoKSl9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHJlbGF0aW9uc2hpcCB0eXBlOiAke3JlbGF0aW9uc2hpcC5nZXRUeXBlKCl9YClcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2NvcGVTcWwgPSB0aGlzLl9zY29wZVNxbCh7cmVsYXRpb25zaGlwLCBxdWVyeSwgdGFyZ2V0TW9kZWxDbGFzcywgam9pblBhdGgsIHRhcmdldFRhYmxlUmVmfSlcblxuICAgICAgaWYgKHNjb3BlU3FsKSB7XG4gICAgICAgIHNxbCArPSBgIEFORCAke3Njb3BlU3FsfWBcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBqb2luVmFsdWUgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBzcWwgPSB0aGlzLmpvaW5PYmplY3Qoam9pblZhbHVlLCB0YXJnZXRNb2RlbENsYXNzLCBzcWwsIGpvaW5zQ291bnQgKyAxLCBqb2luUGF0aClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3FsXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzY29wZSBzcWwuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vcmVjb3JkL3JlbGF0aW9uc2hpcHMvYmFzZS5qc1wiKS5kZWZhdWx0fSBhcmdzLnJlbGF0aW9uc2hpcCAtIFJlbGF0aW9uc2hpcCBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vbW9kZWwtY2xhc3MtcXVlcnkuanNcIikuZGVmYXVsdH0gYXJncy5xdWVyeSAtIE1vZGVsIGNsYXNzIHF1ZXJ5LlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gYXJncy50YXJnZXRNb2RlbENsYXNzIC0gVGFyZ2V0IG1vZGVsIGNsYXNzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzLmpvaW5QYXRoIC0gSm9pbiBwYXRoLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy50YXJnZXRUYWJsZVJlZiAtIFRhcmdldCB0YWJsZSByZWZlcmVuY2UuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gU2NvcGUgU1FMLlxuICAgKi9cbiAgX3Njb3BlU3FsKHtyZWxhdGlvbnNoaXAsIHF1ZXJ5LCB0YXJnZXRNb2RlbENsYXNzLCBqb2luUGF0aCwgdGFyZ2V0VGFibGVSZWZ9KSB7XG4gICAgaWYgKCFyZWxhdGlvbnNoaXAuZ2V0U2NvcGUoKSkgcmV0dXJuIFwiXCJcblxuICAgIGNvbnN0IHNjb3BlZFF1ZXJ5ID0gcXVlcnkuYnVpbGRKb2luU2NvcGVRdWVyeSh0YXJnZXRNb2RlbENsYXNzLCBqb2luUGF0aClcbiAgICBjb25zdCBhcHBsaWVkUXVlcnkgPSByZWxhdGlvbnNoaXAuYXBwbHlTY29wZShzY29wZWRRdWVyeSkgfHwgc2NvcGVkUXVlcnlcbiAgICBjb25zdCB3aGVyZXMgPSBhcHBsaWVkUXVlcnkuX3doZXJlc1xuXG4gICAgaWYgKCF3aGVyZXMgfHwgd2hlcmVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiXCJcblxuICAgIGNvbnN0IHBhcnRzID0gW11cblxuICAgIGZvciAoY29uc3Qgd2hlcmUgb2Ygd2hlcmVzKSB7XG4gICAgICBwYXJ0cy5wdXNoKHRoaXMuX3Njb3BlU3FsRm9yV2hlcmUod2hlcmUsIHRhcmdldFRhYmxlUmVmKSlcbiAgICB9XG5cbiAgICByZXR1cm4gcGFydHMuam9pbihcIiBBTkQgXCIpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzY29wZSBzcWwgZm9yIHdoZXJlLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vd2hlcmUtYmFzZS5qc1wiKS5kZWZhdWx0fSB3aGVyZSAtIFdoZXJlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFyZ2V0VGFibGVSZWYgLSBUYXJnZXQgdGFibGUgcmVmZXJlbmNlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFNjb3BlIHdoZXJlIFNRTC5cbiAgICovXG4gIF9zY29wZVNxbEZvcldoZXJlKHdoZXJlLCB0YXJnZXRUYWJsZVJlZikge1xuICAgIGlmICh3aGVyZSBpbnN0YW5jZW9mIFdoZXJlSGFzaCkge1xuICAgICAgY29uc3QgaGFzaCA9IHdoZXJlLmhhc2hcbiAgICAgIGNvbnN0IGhhc05lc3RlZCA9IE9iamVjdC52YWx1ZXMoaGFzaCkuc29tZSgodmFsdWUpID0+IHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG5cbiAgICAgIHJldHVybiBoYXNOZXN0ZWRcbiAgICAgICAgPyB3aGVyZS50b1NxbCgpXG4gICAgICAgIDogYCgke3doZXJlLl93aGVyZVNRTEZyb21IYXNoKGhhc2gsIHRhcmdldFRhYmxlUmVmKX0pYFxuICAgIH1cblxuICAgIGlmICh3aGVyZSBpbnN0YW5jZW9mIFdoZXJlTm90ICYmIHdoZXJlLndoZXJlIGluc3RhbmNlb2YgV2hlcmVIYXNoKSB7XG4gICAgICBjb25zdCBoYXNoID0gd2hlcmUud2hlcmUuaGFzaFxuICAgICAgY29uc3QgaGFzTmVzdGVkID0gT2JqZWN0LnZhbHVlcyhoYXNoKS5zb21lKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgIGNvbnN0IGlubmVyU3FsID0gaGFzTmVzdGVkXG4gICAgICAgID8gd2hlcmUud2hlcmUudG9TcWwoKVxuICAgICAgICA6IGAoJHt3aGVyZS53aGVyZS5fd2hlcmVTUUxGcm9tSGFzaChoYXNoLCB0YXJnZXRUYWJsZVJlZil9KWBcblxuICAgICAgcmV0dXJuIGBOT1QgKCR7aW5uZXJTcWx9KWBcbiAgICB9XG5cbiAgICByZXR1cm4gd2hlcmUudG9TcWwoKVxuICB9XG59XG4iXX0=
|
|
@@ -123,6 +123,12 @@ export default class VelociousDatabaseQueryModelClassQuery<MC extends typeof imp
|
|
|
123
123
|
* @returns {MC} - The model class.
|
|
124
124
|
*/
|
|
125
125
|
getModelClass(): MC;
|
|
126
|
+
/**
|
|
127
|
+
* Binds a relationship target to this query's physical database generation.
|
|
128
|
+
* @param {typeof import("../record/index.js").default} modelClass - Canonical relationship target.
|
|
129
|
+
* @returns {typeof import("../record/index.js").default} - Query-bound relationship target.
|
|
130
|
+
*/
|
|
131
|
+
bindModelClass(modelClass: typeof import("../record/index.js").default): typeof import("../record/index.js").default;
|
|
126
132
|
/**
|
|
127
133
|
* Runs get join base path.
|
|
128
134
|
* @returns {string[]} - The join base path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-class-query.d.ts","sourceRoot":"","sources":["../../../../src/database/query/model-class-query.js"],"names":[],"mappings":"AAUA,OAAO,aAAa,MAAM,YAAY,CAAA;AAGtC,OAAO,WAAW,MAAM,mBAAmB,CAAA;AAaxC,YAA6U,uBAAuB,CAD3S,EAAE,SAAhD,cAAc,oBAAoB,EAAE,OAAO,GAAM,cAAc,oBAAoB,EAAE,OAAQ,IAC9F,OAAO,YAAY,EAAE,aAAa,GAAG;IAAC,UAAU,EAAE,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,OAAO,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,iBAAiB,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,iBAAiB,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAA;CAAC,CAAyB;AA+
|
|
1
|
+
{"version":3,"file":"model-class-query.d.ts","sourceRoot":"","sources":["../../../../src/database/query/model-class-query.js"],"names":[],"mappings":"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"}
|