@kaspernj/api-maker 1.0.2056 → 1.0.2057
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/build/api.js +22 -16
- package/build/attribute-not-loaded-error.js +5 -2
- package/build/base-component.js +6 -3
- package/build/base-error.js +15 -9
- package/build/base-model/attribute.js +10 -4
- package/build/base-model/column.js +5 -2
- package/build/base-model/reflection.js +49 -10
- package/build/base-model/scope.js +41 -5
- package/build/base-model.js +115 -76
- package/build/bootstrap/attribute-row.js +71 -33
- package/build/bootstrap/attribute-rows.js +20 -15
- package/build/bootstrap/card.js +72 -34
- package/build/bootstrap/checkbox.js +35 -30
- package/build/bootstrap/checkboxes.js +69 -31
- package/build/bootstrap/index.d.ts +1 -0
- package/build/bootstrap/index.js +2 -0
- package/build/bootstrap/input.js +48 -43
- package/build/bootstrap/invalid-feedback.js +17 -11
- package/build/bootstrap/paginate.js +73 -35
- package/build/bootstrap/radio-buttons.js +33 -28
- package/build/bootstrap/select.js +34 -29
- package/build/bootstrap/sort-link.js +68 -30
- package/build/cable-connection-pool.js +18 -12
- package/build/cable-subscription-pool.js +58 -19
- package/build/cable-subscription.d.ts +2 -2
- package/build/cable-subscription.d.ts.map +1 -1
- package/build/cable-subscription.js +12 -6
- package/build/cache-key-generator.js +11 -5
- package/build/can-can.d.ts +2 -2
- package/build/can-can.d.ts.map +1 -1
- package/build/can-can.js +56 -17
- package/build/channels-consumer.js +10 -5
- package/build/collection-loader.js +36 -31
- package/build/collection.js +58 -19
- package/build/command-submit-data.d.ts +1 -1
- package/build/command-submit-data.d.ts.map +1 -1
- package/build/command-submit-data.js +10 -4
- package/build/commands-pool.js +39 -33
- package/build/compose.js +5 -2
- package/build/config.d.ts +3 -3
- package/build/config.d.ts.map +1 -1
- package/build/config.js +40 -6
- package/build/custom-error.js +9 -4
- package/build/data-set-to-attributes.js +39 -3
- package/build/deserializer.js +57 -18
- package/build/destroy-error.js +9 -4
- package/build/devise.d.ts +1 -1
- package/build/devise.d.ts.map +1 -1
- package/build/devise.js +55 -16
- package/build/draggable-sort/controller.js +14 -11
- package/build/draggable-sort/index.js +69 -31
- package/build/draggable-sort/item.js +70 -32
- package/build/error-logger.js +14 -8
- package/build/error-messages.js +8 -5
- package/build/event-connection.js +18 -12
- package/build/event-emitter-listener.js +9 -4
- package/build/event-model-class.js +17 -11
- package/build/events.d.ts +2 -2
- package/build/events.d.ts.map +1 -1
- package/build/events.js +6 -5
- package/build/form.js +69 -27
- package/build/history-expo.js +11 -6
- package/build/history-react-native.js +14 -9
- package/build/history.js +5 -3
- package/build/index.js +5 -2
- package/build/inputs/attachment.js +29 -24
- package/build/inputs/auto-submit.js +42 -6
- package/build/inputs/checkbox.js +73 -35
- package/build/inputs/checkboxes.js +68 -30
- package/build/inputs/id-for-component.js +39 -3
- package/build/inputs/input-wrapper.js +12 -7
- package/build/inputs/input.js +101 -62
- package/build/inputs/money.js +85 -47
- package/build/inputs/name-for-component.js +39 -3
- package/build/inputs/select.js +32 -26
- package/build/instance-of-class-name.js +7 -5
- package/build/is-expo.js +8 -6
- package/build/key-value-store.js +10 -4
- package/build/link.js +21 -16
- package/build/logger.js +5 -2
- package/build/merge-styles.js +7 -4
- package/build/modal.js +15 -10
- package/build/model-class-require.js +39 -4
- package/build/model-events.js +20 -14
- package/build/model-name.js +44 -5
- package/build/model-prop-type.js +15 -9
- package/build/model-recipes-loader.js +14 -8
- package/build/model-recipes-model-loader.d.ts +1 -1
- package/build/model-recipes-model-loader.js +57 -18
- package/build/models-response-reader.js +46 -7
- package/build/models.js +10 -5
- package/build/money-formatter.d.ts +2 -2
- package/build/money-formatter.d.ts.map +1 -1
- package/build/money-formatter.js +19 -13
- package/build/not-loaded-error.js +5 -2
- package/build/params.js +19 -13
- package/build/preloaded.js +44 -5
- package/build/resize-observer.js +11 -6
- package/build/rest-props-validator.js +4 -2
- package/build/result.js +5 -2
- package/build/router/route.js +82 -40
- package/build/router/switch.js +56 -17
- package/build/router.js +59 -21
- package/build/routes-native.js +54 -15
- package/build/routes.js +49 -13
- package/build/run-last.js +5 -2
- package/build/serializer.js +8 -5
- package/build/services.js +10 -4
- package/build/session-status-updater.js +53 -14
- package/build/source-maps-loader.js +50 -11
- package/build/super-admin/config-reader.d.ts +2 -2
- package/build/super-admin/config-reader.js +45 -9
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +61 -23
- package/build/super-admin/edit-page/edit-attribute-content.js +21 -16
- package/build/super-admin/edit-page/edit-attribute-input.js +59 -21
- package/build/super-admin/edit-page/edit-attribute.js +65 -27
- package/build/super-admin/edit-page.js +72 -34
- package/build/super-admin/has-edit-config.js +9 -4
- package/build/super-admin/index-page.js +17 -12
- package/build/super-admin/index.js +84 -46
- package/build/super-admin/layout/header/index.js +63 -25
- package/build/super-admin/layout/index.js +78 -40
- package/build/super-admin/layout/menu/index.js +47 -42
- package/build/super-admin/layout/menu/menu-content.js +60 -22
- package/build/super-admin/layout/menu/menu-item.js +23 -18
- package/build/super-admin/layout/no-access.js +20 -15
- package/build/super-admin/model-class-table.js +64 -26
- package/build/super-admin/models.js +38 -3
- package/build/super-admin/show-nav.js +61 -23
- package/build/super-admin/show-page/belongs-to-attribute-row.js +52 -14
- package/build/super-admin/show-page/index.js +63 -25
- package/build/super-admin/show-reflection-actions.js +62 -24
- package/build/super-admin/show-reflection-link.js +19 -14
- package/build/super-admin/show-reflection-page.js +63 -25
- package/build/table/column-content.js +54 -15
- package/build/table/column-identifier.js +5 -2
- package/build/table/column-visible.js +5 -2
- package/build/table/components/column.js +14 -9
- package/build/table/components/flat-list.js +14 -9
- package/build/table/components/header.js +16 -11
- package/build/table/components/row.js +16 -11
- package/build/table/filters/attribute-element.js +26 -21
- package/build/table/filters/filter-form.js +109 -71
- package/build/table/filters/filter.js +29 -24
- package/build/table/filters/index.js +43 -38
- package/build/table/filters/load-search-modal.js +64 -26
- package/build/table/filters/reflection-element.js +22 -17
- package/build/table/filters/save-search-modal.js +27 -22
- package/build/table/filters/scope-element.js +19 -14
- package/build/table/header-column-content.js +27 -22
- package/build/table/header-column.js +71 -33
- package/build/table/header-select.js +29 -24
- package/build/table/model-callback-args.js +39 -3
- package/build/table/model-column.js +75 -37
- package/build/table/model-row.js +79 -41
- package/build/table/select-calculator.js +52 -13
- package/build/table/settings/column-row.js +57 -19
- package/build/table/settings/download-action.js +31 -26
- package/build/table/settings/index.js +61 -23
- package/build/table/table-settings.js +70 -31
- package/build/table/table.js +196 -158
- package/build/table/use-sorting.js +12 -6
- package/build/table/widths.js +12 -9
- package/build/table/worker-plugins-check-all-checkbox.js +64 -26
- package/build/table/worker-plugins-checkbox.js +61 -23
- package/build/translated-attributes.js +5 -2
- package/build/translated-collections.js +14 -8
- package/build/updated-attribute.js +21 -15
- package/build/url-encode.js +10 -4
- package/build/use-breakpoint.js +58 -20
- package/build/use-can-can.js +21 -15
- package/build/use-collection.js +70 -32
- package/build/use-created-event.js +27 -22
- package/build/use-current-user-context.js +74 -36
- package/build/use-current-user.d.ts +2 -2
- package/build/use-current-user.d.ts.map +1 -1
- package/build/use-current-user.js +17 -11
- package/build/use-destroyed-event.js +18 -13
- package/build/use-event-emitter.js +13 -7
- package/build/use-event-listener.js +12 -7
- package/build/use-input.js +33 -28
- package/build/use-model-event.js +18 -13
- package/build/use-model.js +65 -27
- package/build/use-resize-observer.js +13 -8
- package/build/use-router.js +62 -24
- package/build/use-screen-layout.js +7 -5
- package/build/use-styles.js +52 -13
- package/build/use-updated-event.js +18 -13
- package/build/use-validation-errors.js +14 -9
- package/build/utils/button.js +33 -28
- package/build/utils/card.js +61 -23
- package/build/utils/checkbox.js +60 -22
- package/build/utils/checkboxes.js +78 -40
- package/build/utils/default-style.js +56 -15
- package/build/utils/header.js +12 -7
- package/build/utils/icon.js +61 -23
- package/build/utils/invalid-feedback.js +17 -12
- package/build/utils/modal.js +55 -17
- package/build/utils/text.js +14 -9
- package/build/validation-error.js +45 -6
- package/build/validation-errors.js +59 -19
- package/build/with-api-maker.js +52 -12
- package/build/with-collection.js +50 -12
- package/build/with-current-user.js +12 -7
- package/build/with-model.js +14 -9
- package/build/with-router.js +12 -7
- package/package.json +2 -1
- package/build/source-maps-loader.d.ts +0 -37
- package/build/source-maps-loader.d.ts.map +0 -1
package/build/can-can.js
CHANGED
|
@@ -1,15 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const diggerize_1 = require("diggerize");
|
|
40
|
+
const eventemitter3_1 = require("eventemitter3");
|
|
41
|
+
const inflection = __importStar(require("inflection"));
|
|
42
|
+
const epic_locks_1 = require("epic-locks");
|
|
43
|
+
const services_js_1 = __importDefault(require("./services.js"));
|
|
6
44
|
const shared = {};
|
|
7
|
-
|
|
45
|
+
class ApiMakerCanCan {
|
|
8
46
|
abilities = [];
|
|
9
47
|
abilitiesToLoad = [];
|
|
10
48
|
abilitiesToLoadData = [];
|
|
11
|
-
events = new EventEmitter();
|
|
12
|
-
lock = new ReadersWriterLock();
|
|
49
|
+
events = new eventemitter3_1.EventEmitter();
|
|
50
|
+
lock = new epic_locks_1.ReadersWriterLock();
|
|
13
51
|
static current() {
|
|
14
52
|
if (!shared.currentApiMakerCanCan)
|
|
15
53
|
shared.currentApiMakerCanCan = new ApiMakerCanCan();
|
|
@@ -22,19 +60,19 @@ export default class ApiMakerCanCan {
|
|
|
22
60
|
let subjectLabel = subject;
|
|
23
61
|
// Translate resource-models into class name strings
|
|
24
62
|
if (typeof subject == "function" && subject.modelClassData) {
|
|
25
|
-
subjectLabel = digg(subject.modelClassData(), "name");
|
|
63
|
+
subjectLabel = (0, diggerize_1.digg)(subject.modelClassData(), "name");
|
|
26
64
|
}
|
|
27
65
|
console.error(`Ability not loaded ${subjectLabel}#${abilityToUse}`, { abilities: this.abilities, ability, subject });
|
|
28
66
|
return false;
|
|
29
67
|
}
|
|
30
68
|
else {
|
|
31
|
-
return digg(foundAbility, "can");
|
|
69
|
+
return (0, diggerize_1.digg)(foundAbility, "can");
|
|
32
70
|
}
|
|
33
71
|
}
|
|
34
72
|
findAbility(ability, subject) {
|
|
35
73
|
return this.abilities.find((abilityData) => {
|
|
36
|
-
const abilityDataSubject = digg(abilityData, "subject");
|
|
37
|
-
const abilityDataAbility = digg(abilityData, "ability");
|
|
74
|
+
const abilityDataSubject = (0, diggerize_1.digg)(abilityData, "subject");
|
|
75
|
+
const abilityDataAbility = (0, diggerize_1.digg)(abilityData, "ability");
|
|
38
76
|
if (abilityDataAbility == ability) {
|
|
39
77
|
// If actually same class
|
|
40
78
|
if (abilityDataSubject == subject)
|
|
@@ -44,7 +82,7 @@ export default class ApiMakerCanCan {
|
|
|
44
82
|
subject.modelClassData &&
|
|
45
83
|
typeof abilityDataSubject == "function" &&
|
|
46
84
|
abilityDataSubject.modelClassData &&
|
|
47
|
-
digg(subject.modelClassData(), "name") == digg(abilityDataSubject.modelClassData(), "name")) {
|
|
85
|
+
(0, diggerize_1.digg)(subject.modelClassData(), "name") == (0, diggerize_1.digg)(abilityDataSubject.modelClassData(), "name")) {
|
|
48
86
|
return true;
|
|
49
87
|
}
|
|
50
88
|
}
|
|
@@ -82,7 +120,7 @@ export default class ApiMakerCanCan {
|
|
|
82
120
|
resolve();
|
|
83
121
|
return;
|
|
84
122
|
}
|
|
85
|
-
const foundAbility = this.abilitiesToLoad.find((abilityToLoad) => digg(abilityToLoad, "ability") == ability && digg(abilityToLoad, "subject") == subject);
|
|
123
|
+
const foundAbility = this.abilitiesToLoad.find((abilityToLoad) => (0, diggerize_1.digg)(abilityToLoad, "ability") == ability && (0, diggerize_1.digg)(abilityToLoad, "subject") == subject);
|
|
86
124
|
if (foundAbility) {
|
|
87
125
|
foundAbility.callbacks.push(resolve);
|
|
88
126
|
}
|
|
@@ -111,10 +149,10 @@ export default class ApiMakerCanCan {
|
|
|
111
149
|
this.abilitiesToLoad = [];
|
|
112
150
|
this.abilitiesToLoadData = [];
|
|
113
151
|
// Load abilities from backend
|
|
114
|
-
const result = await
|
|
152
|
+
const result = await services_js_1.default.current().sendRequest("CanCan::LoadAbilities", {
|
|
115
153
|
request: abilitiesToLoadData
|
|
116
154
|
});
|
|
117
|
-
const abilities = digg(result, "abilities");
|
|
155
|
+
const abilities = (0, diggerize_1.digg)(result, "abilities");
|
|
118
156
|
// Set the loaded abilities
|
|
119
157
|
this.abilities = this.abilities.concat(abilities);
|
|
120
158
|
// Call the callbacks that are waiting for the ability to have been loaded
|
|
@@ -125,4 +163,5 @@ export default class ApiMakerCanCan {
|
|
|
125
163
|
}
|
|
126
164
|
};
|
|
127
165
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWNhbi5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY2FuLWNhbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQTtBQUNqQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFBO0FBRXBDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQixNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDakMsU0FBUyxHQUFHLEVBQUUsQ0FBQTtJQUNkLGVBQWUsR0FBRyxFQUFFLENBQUE7SUFDcEIsbUJBQW1CLEdBQUcsRUFBRSxDQUFBO0lBQ3hCLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBQzNCLElBQUksR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUE7SUFFOUIsTUFBTSxDQUFDLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQjtZQUFFLE1BQU0sQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO1FBRXRGLE9BQU8sTUFBTSxDQUFDLHFCQUFxQixDQUFBO0lBQ3JDLENBQUM7SUFFRCxHQUFHLENBQUUsT0FBTyxFQUFFLE9BQU87UUFDbkIsSUFBSSxZQUFZLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUU1RCxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLFlBQVksR0FBRyxPQUFPLENBQUE7WUFFMUIsb0RBQW9EO1lBQ3BELElBQUksT0FBTyxPQUFPLElBQUks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QUM7Z0JBQzdDLFFBQVEsRUFBRSxDQUFBO1lBQ1osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gXCJldmVudHNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQge1JlYWRlcnNXcml0ZXJMb2NrfSBmcm9tIFwiZXBpYy1sb2Nrc1wiXG5pbXBvcnQgU2VydmljZXMgZnJvbSBcIi4vc2VydmljZXMuanNcIlxuXG5jb25zdCBzaGFyZWQgPSB7fVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhbkNhbiB7XG4gIGFiaWxpdGllcyA9IFtdXG4gIGFiaWxpdGllc1RvTG9hZCA9IFtdXG4gIGFiaWxpdGllc1RvTG9hZERhdGEgPSBbXVxuICBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgbG9jayA9IG5ldyBSZWFkZXJzV3JpdGVyTG9jaygpXG5cbiAgc3RhdGljIGN1cnJlbnQgKCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNhbkNhbikgc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNhbkNhbiA9IG5ldyBBcGlNYWtlckNhbkNhbigpXG5cbiAgICByZXR1cm4gc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNhbkNhblxuICB9XG5cbiAgY2FuIChhYmlsaXR5LCBzdWJqZWN0KSB7XG4gICAgbGV0IGFiaWxpdHlUb1VzZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShhYmlsaXR5KVxuICAgIGNvbnN0IGZvdW5kQWJpbGl0eSA9IHRoaXMuZmluZEFiaWxpdHkoYWJpbGl0eVRvVXNlLCBzdWJqZWN0KVxuXG4gICAgaWYgKGZvdW5kQWJpbGl0eSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgc3ViamVjdExhYmVsID0gc3ViamVjdFxuXG4gICAgICAvLyBUcmFuc2xhdGUgcmVzb3VyY2UtbW9kZWxzIGludG8gY2xhc3MgbmFtZSBzdHJpbmdzXG4gICAgICBpZiAodHlwZW9mIHN1YmplY3QgPT0gXCJmdW5jdGlvblwiICYmIHN1YmplY3QubW9kZWxDbGFzc0RhdGEpIHtcbiAgICAgICAgc3ViamVjdExhYmVsID0gZGlnZyhzdWJqZWN0Lm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmVycm9yKGBBYmlsaXR5IG5vdCBsb2FkZWQgJHtzdWJqZWN0TGFiZWx9IyR7YWJpbGl0eVRvVXNlfWAsIHthYmlsaXRpZXM6IHRoaXMuYWJpbGl0aWVzLCBhYmlsaXR5LCBzdWJqZWN0fSlcblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkaWdnKGZvdW5kQWJpbGl0eSwgXCJjYW5cIilcbiAgICB9XG4gIH1cblxuICBmaW5kQWJpbGl0eSAoYWJpbGl0eSwgc3ViamVjdCkge1xuICAgIHJldHVybiB0aGlzLmFiaWxpdGllcy5maW5kKChhYmlsaXR5RGF0YSkgPT4ge1xuICAgICAgY29uc3QgYWJpbGl0eURhdGFTdWJqZWN0ID0gZGlnZyhhYmlsaXR5RGF0YSwgXCJzdWJqZWN0XCIpXG4gICAgICBjb25zdCBhYmlsaXR5RGF0YUFiaWxpdHkgPSBkaWdnKGFiaWxpdHlEYXRhLCBcImFiaWxpdHlcIilcblxuICAgICAgaWYgKGFiaWxpdHlEYXRhQWJpbGl0eSA9PSBhYmlsaXR5KSB7XG4gICAgICAgIC8vIElmIGFjdHVhbGx5IHNhbWUgY2xhc3NcbiAgICAgICAgaWYgKGFiaWxpdHlEYXRhU3ViamVjdCA9PSBzdWJqZWN0KSByZXR1cm4gdHJ1ZVxuXG4gICAgICAgIC8vIFNvbWV0aW1lcyBpbiBkZXYgd2hlbiB1c2luZyBsaW5raW5nIGl0IHdpbGwgYWN0dWFsbHkgYmUgdHdvIGRpZmZlcmVudCBidXQgaWRlbnRpY2FsIHJlc291cmNlIGNsYXNzZXNcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGVvZiBzdWJqZWN0ID09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIHN1YmplY3QubW9kZWxDbGFzc0RhdGEgJiZcbiAgICAgICAgICB0eXBlb2YgYWJpbGl0eURhdGFTdWJqZWN0ID09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIGFiaWxpdHlEYXRhU3ViamVjdC5tb2RlbENsYXNzRGF0YSAmJlxuICAgICAgICAgIGRpZ2coc3ViamVjdC5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIikgPT0gZGlnZyhhYmlsaXR5RGF0YVN1YmplY3QubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIGlzQWJpbGl0eUxvYWRlZCAoYWJpbGl0eSwgc3ViamVjdCkge1xuICAgIGNvbnN0IGZvdW5kQWJpbGl0eSA9IHRoaXMuZmluZEFiaWxpdHkoYWJpbGl0eSwgc3ViamVjdClcblxuICAgIGlmIChmb3VuZEFiaWxpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGFzeW5jIGxvYWRBYmlsaXRpZXMgKGFiaWxpdGllcykge1xuICAgIGF3YWl0IHRoaXMubG9jay5yZWFkKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByb21pc2VzID0gW11cblxuICAgICAgZm9yIChjb25zdCBhYmlsaXR5RGF0YSBvZiBhYmlsaXRpZXMpIHtcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IGFiaWxpdHlEYXRhWzBdXG5cbiAgICAgICAgaWYgKCFzdWJqZWN0KSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc3ViamVjdCBnaXZlbiBpbiBhYmlsaXRpZXM6ICR7c3ViamVjdH0gLSAke0pTT04uc3RyaW5naWZ5KGFiaWxpdGllcyl9YClcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFiaWxpdHlEYXRhWzFdKSkgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhbiBhcnJheSBvZiBhYmlsaXRpZXMgYnV0IGdvdDogJHt0eXBlb2YgYWJpbGl0eURhdGFbMV19OiAke2FiaWxpdHlEYXRhWzFdfWApXG5cbiAgICAgICAgZm9yIChjb25zdCBhYmlsaXR5IG9mIGFiaWxpdHlEYXRhWzFdKSB7XG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMubG9hZEFiaWxpdHkoYWJpbGl0eSwgc3ViamVjdClcblxuICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICB9KVxuICB9XG5cbiAgbG9hZEFiaWxpdHkgKGFiaWxpdHksIHN1YmplY3QpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGFiaWxpdHkgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYWJpbGl0eSlcblxuICAgICAgaWYgKHRoaXMuaXNBYmlsaXR5TG9hZGVkKGFiaWxpdHksIHN1YmplY3QpKSB7XG4gICAgICAgIHJlc29sdmUoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmRBYmlsaXR5ID0gdGhpcy5hYmlsaXRpZXNUb0xvYWQuZmluZCgoYWJpbGl0eVRvTG9hZCkgPT4gZGlnZyhhYmlsaXR5VG9Mb2FkLCBcImFiaWxpdHlcIikgPT0gYWJpbGl0eSAmJiBkaWdnKGFiaWxpdHlUb0xvYWQsIFwic3ViamVjdFwiKSA9PSBzdWJqZWN0KVxuXG4gICAgICBpZiAoZm91bmRBYmlsaXR5KSB7XG4gICAgICAgIGZvdW5kQWJpbGl0eS5jYWxsYmFja3MucHVzaChyZXNvbHZlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hYmlsaXRpZXNUb0xvYWQucHVzaCh7YWJpbGl0eSwgY2FsbGJhY2tzOiBbcmVzb2x2ZV0sIHN1YmplY3R9KVxuICAgICAgICB0aGlzLmFiaWxpdGllc1RvTG9hZERhdGEucHVzaCh7YWJpbGl0eSwgc3ViamVjdH0pXG5cbiAgICAgICAgdGhpcy5xdWV1ZUFiaWxpdGllc1JlcXVlc3QoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBxdWV1ZUFiaWxpdGllc1JlcXVlc3QgKCkge1xuICAgIGlmICh0aGlzLnF1ZXVlQWJpbGl0aWVzUmVxdWVzdFRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnF1ZXVlQWJpbGl0aWVzUmVxdWVzdFRpbWVvdXQpXG4gICAgfVxuXG4gICAgdGhpcy5xdWV1ZUFiaWxpdGllc1JlcXVlc3RUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLnNlbmRBYmlsaXRpZXNSZXF1ZXN0LCAwKVxuICB9XG5cbiAgYXN5bmMgcmVzZXRBYmlsaXRpZXMgKCkge1xuICAgIGF3YWl0IHRoaXMubG9jay53cml0ZSgoKSA9PiB7XG4gICAgICB0aGlzLmFiaWxpdGllcyA9IFtdXG4gICAgfSlcbiAgICB0aGlzLmV2ZW50cy5lbWl0KFwib25SZXNldEFiaWxpdGllc1wiKVxuICB9XG5cbiAgc2VuZEFiaWxpdGllc1JlcXVlc3QgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzVG9Mb2FkID0gdGhpcy5hYmlsaXRpZXNUb0xvYWRcbiAgICBjb25zdCBhYmlsaXRpZXNUb0xvYWREYXRhID0gdGhpcy5hYmlsaXRpZXNUb0xvYWREYXRhXG5cbiAgICB0aGlzLmFiaWxpdGllc1RvTG9hZCA9IFtdXG4gICAgdGhpcy5hYmlsaXRpZXNUb0xvYWREYXRhID0gW11cblxuICAgIC8vIExvYWQgYWJpbGl0aWVzIGZyb20gYmFja2VuZFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkNhbkNhbjo6TG9hZEFiaWxpdGllc1wiLCB7XG4gICAgICByZXF1ZXN0OiBhYmlsaXRpZXNUb0xvYWREYXRhXG4gICAgfSlcbiAgICBjb25zdCBhYmlsaXRpZXMgPSBkaWdnKHJlc3VsdCwgXCJhYmlsaXRpZXNcIilcblxuICAgIC8vIFNldCB0aGUgbG9hZGVkIGFiaWxpdGllc1xuICAgIHRoaXMuYWJpbGl0aWVzID0gdGhpcy5hYmlsaXRpZXMuY29uY2F0KGFiaWxpdGllcylcblxuICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrcyB0aGF0IGFyZSB3YWl0aW5nIGZvciB0aGUgYWJpbGl0eSB0byBoYXZlIGJlZW4gbG9hZGVkXG4gICAgZm9yIChjb25zdCBhYmlsaXR5RGF0YSBvZiBhYmlsaXRpZXNUb0xvYWQpIHtcbiAgICAgIGZvciAoY29uc3QgY2FsbGJhY2sgb2YgYWJpbGl0eURhdGEuY2FsbGJhY2tzKSB7XG4gICAgICAgIGNhbGxiYWNrKClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
166
|
+
exports.default = ApiMakerCanCan;
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWNhbi5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY2FuLWNhbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUE4QjtBQUM5QixpREFBMEM7QUFDMUMsdURBQXdDO0FBQ3hDLDJDQUE0QztBQUM1QyxnRUFBb0M7QUFFcEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO0FBRWpCLE1BQXFCLGNBQWM7SUFDakMsU0FBUyxHQUFHLEVBQUUsQ0FBQTtJQUNkLGVBQWUsR0FBRyxFQUFFLENBQUE7SUFDcEIsbUJBQW1CLEdBQUcsRUFBRSxDQUFBO0lBQ3hCLE1BQU0sR0FBRyxJQUFJLDRCQUFZLEVBQUUsQ0FBQTtJQUMzQixJQUFJLEdBQUcsSUFBSSw4QkFBaUIsRUFBRSxDQUFBO0lBRTlCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUI7WUFBRSxNQUFNLENBQUMscUJBQXFCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQTtRQUV0RixPQUFPLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsR0FBRyxDQUFFLE9BQU8sRUFBRSxPQUFPO1FBQ25CLElBQUksWUFBWSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDakQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFFNUQsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFBO1lBRTFCLG9EQUFvRDtZQUNwRCxJQUFJLE9BQU8sT0FBTyxJQUFJLFVBQVUsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzNELFlBQVksR0FBRyxJQUFBLGdCQUFJLEVBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFF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Q0gsQ0FBQztJQUNILENBQUMsQ0FBQTtDQUNGO0FBckpELGlDQXFKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSBcImV2ZW50ZW1pdHRlcjNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQge1JlYWRlcnNXcml0ZXJMb2NrfSBmcm9tIFwiZXBpYy1sb2Nrc1wiXG5pbXBvcnQgU2VydmljZXMgZnJvbSBcIi4vc2VydmljZXMuanNcIlxuXG5jb25zdCBzaGFyZWQgPSB7fVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNhbkNhbiB7XG4gIGFiaWxpdGllcyA9IFtdXG4gIGFiaWxpdGllc1RvTG9hZCA9IFtdXG4gIGFiaWxpdGllc1RvTG9hZERhdGEgPSBbXVxuICBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgbG9jayA9IG5ldyBSZWFkZXJzV3JpdGVyTG9jaygpXG5cbiAgc3RhdGljIGN1cnJlbnQgKCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNhbkNhbikgc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNhbkNhbiA9IG5ldyBBcGlNYWtlckNhbkNhbigpXG5cbiAgICByZXR1cm4gc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNhbkNhblxuICB9XG5cbiAgY2FuIChhYmlsaXR5LCBzdWJqZWN0KSB7XG4gICAgbGV0IGFiaWxpdHlUb1VzZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShhYmlsaXR5KVxuICAgIGNvbnN0IGZvdW5kQWJpbGl0eSA9IHRoaXMuZmluZEFiaWxpdHkoYWJpbGl0eVRvVXNlLCBzdWJqZWN0KVxuXG4gICAgaWYgKGZvdW5kQWJpbGl0eSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgc3ViamVjdExhYmVsID0gc3ViamVjdFxuXG4gICAgICAvLyBUcmFuc2xhdGUgcmVzb3VyY2UtbW9kZWxzIGludG8gY2xhc3MgbmFtZSBzdHJpbmdzXG4gICAgICBpZiAodHlwZW9mIHN1YmplY3QgPT0gXCJmdW5jdGlvblwiICYmIHN1YmplY3QubW9kZWxDbGFzc0RhdGEpIHtcbiAgICAgICAgc3ViamVjdExhYmVsID0gZGlnZyhzdWJqZWN0Lm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmVycm9yKGBBYmlsaXR5IG5vdCBsb2FkZWQgJHtzdWJqZWN0TGFiZWx9IyR7YWJpbGl0eVRvVXNlfWAsIHthYmlsaXRpZXM6IHRoaXMuYWJpbGl0aWVzLCBhYmlsaXR5LCBzdWJqZWN0fSlcblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkaWdnKGZvdW5kQWJpbGl0eSwgXCJjYW5cIilcbiAgICB9XG4gIH1cblxuICBmaW5kQWJpbGl0eSAoYWJpbGl0eSwgc3ViamVjdCkge1xuICAgIHJldHVybiB0aGlzLmFiaWxpdGllcy5maW5kKChhYmlsaXR5RGF0YSkgPT4ge1xuICAgICAgY29uc3QgYWJpbGl0eURhdGFTdWJqZWN0ID0gZGlnZyhhYmlsaXR5RGF0YSwgXCJzdWJqZWN0XCIpXG4gICAgICBjb25zdCBhYmlsaXR5RGF0YUFiaWxpdHkgPSBkaWdnKGFiaWxpdHlEYXRhLCBcImFiaWxpdHlcIilcblxuICAgICAgaWYgKGFiaWxpdHlEYXRhQWJpbGl0eSA9PSBhYmlsaXR5KSB7XG4gICAgICAgIC8vIElmIGFjdHVhbGx5IHNhbWUgY2xhc3NcbiAgICAgICAgaWYgKGFiaWxpdHlEYXRhU3ViamVjdCA9PSBzdWJqZWN0KSByZXR1cm4gdHJ1ZVxuXG4gICAgICAgIC8vIFNvbWV0aW1lcyBpbiBkZXYgd2hlbiB1c2luZyBsaW5raW5nIGl0IHdpbGwgYWN0dWFsbHkgYmUgdHdvIGRpZmZlcmVudCBidXQgaWRlbnRpY2FsIHJlc291cmNlIGNsYXNzZXNcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGVvZiBzdWJqZWN0ID09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIHN1YmplY3QubW9kZWxDbGFzc0RhdGEgJiZcbiAgICAgICAgICB0eXBlb2YgYWJpbGl0eURhdGFTdWJqZWN0ID09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIGFiaWxpdHlEYXRhU3ViamVjdC5tb2RlbENsYXNzRGF0YSAmJlxuICAgICAgICAgIGRpZ2coc3ViamVjdC5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIikgPT0gZGlnZyhhYmlsaXR5RGF0YVN1YmplY3QubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIGlzQWJpbGl0eUxvYWRlZCAoYWJpbGl0eSwgc3ViamVjdCkge1xuICAgIGNvbnN0IGZvdW5kQWJpbGl0eSA9IHRoaXMuZmluZEFiaWxpdHkoYWJpbGl0eSwgc3ViamVjdClcblxuICAgIGlmIChmb3VuZEFiaWxpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGFzeW5jIGxvYWRBYmlsaXRpZXMgKGFiaWxpdGllcykge1xuICAgIGF3YWl0IHRoaXMubG9jay5yZWFkKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByb21pc2VzID0gW11cblxuICAgICAgZm9yIChjb25zdCBhYmlsaXR5RGF0YSBvZiBhYmlsaXRpZXMpIHtcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IGFiaWxpdHlEYXRhWzBdXG5cbiAgICAgICAgaWYgKCFzdWJqZWN0KSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc3ViamVjdCBnaXZlbiBpbiBhYmlsaXRpZXM6ICR7c3ViamVjdH0gLSAke0pTT04uc3RyaW5naWZ5KGFiaWxpdGllcyl9YClcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFiaWxpdHlEYXRhWzFdKSkgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhbiBhcnJheSBvZiBhYmlsaXRpZXMgYnV0IGdvdDogJHt0eXBlb2YgYWJpbGl0eURhdGFbMV19OiAke2FiaWxpdHlEYXRhWzFdfWApXG5cbiAgICAgICAgZm9yIChjb25zdCBhYmlsaXR5IG9mIGFiaWxpdHlEYXRhWzFdKSB7XG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMubG9hZEFiaWxpdHkoYWJpbGl0eSwgc3ViamVjdClcblxuICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICB9KVxuICB9XG5cbiAgbG9hZEFiaWxpdHkgKGFiaWxpdHksIHN1YmplY3QpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGFiaWxpdHkgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYWJpbGl0eSlcblxuICAgICAgaWYgKHRoaXMuaXNBYmlsaXR5TG9hZGVkKGFiaWxpdHksIHN1YmplY3QpKSB7XG4gICAgICAgIHJlc29sdmUoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmRBYmlsaXR5ID0gdGhpcy5hYmlsaXRpZXNUb0xvYWQuZmluZCgoYWJpbGl0eVRvTG9hZCkgPT4gZGlnZyhhYmlsaXR5VG9Mb2FkLCBcImFiaWxpdHlcIikgPT0gYWJpbGl0eSAmJiBkaWdnKGFiaWxpdHlUb0xvYWQsIFwic3ViamVjdFwiKSA9PSBzdWJqZWN0KVxuXG4gICAgICBpZiAoZm91bmRBYmlsaXR5KSB7XG4gICAgICAgIGZvdW5kQWJpbGl0eS5jYWxsYmFja3MucHVzaChyZXNvbHZlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hYmlsaXRpZXNUb0xvYWQucHVzaCh7YWJpbGl0eSwgY2FsbGJhY2tzOiBbcmVzb2x2ZV0sIHN1YmplY3R9KVxuICAgICAgICB0aGlzLmFiaWxpdGllc1RvTG9hZERhdGEucHVzaCh7YWJpbGl0eSwgc3ViamVjdH0pXG5cbiAgICAgICAgdGhpcy5xdWV1ZUFiaWxpdGllc1JlcXVlc3QoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBxdWV1ZUFiaWxpdGllc1JlcXVlc3QgKCkge1xuICAgIGlmICh0aGlzLnF1ZXVlQWJpbGl0aWVzUmVxdWVzdFRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnF1ZXVlQWJpbGl0aWVzUmVxdWVzdFRpbWVvdXQpXG4gICAgfVxuXG4gICAgdGhpcy5xdWV1ZUFiaWxpdGllc1JlcXVlc3RUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLnNlbmRBYmlsaXRpZXNSZXF1ZXN0LCAwKVxuICB9XG5cbiAgYXN5bmMgcmVzZXRBYmlsaXRpZXMgKCkge1xuICAgIGF3YWl0IHRoaXMubG9jay53cml0ZSgoKSA9PiB7XG4gICAgICB0aGlzLmFiaWxpdGllcyA9IFtdXG4gICAgfSlcbiAgICB0aGlzLmV2ZW50cy5lbWl0KFwib25SZXNldEFiaWxpdGllc1wiKVxuICB9XG5cbiAgc2VuZEFiaWxpdGllc1JlcXVlc3QgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzVG9Mb2FkID0gdGhpcy5hYmlsaXRpZXNUb0xvYWRcbiAgICBjb25zdCBhYmlsaXRpZXNUb0xvYWREYXRhID0gdGhpcy5hYmlsaXRpZXNUb0xvYWREYXRhXG5cbiAgICB0aGlzLmFiaWxpdGllc1RvTG9hZCA9IFtdXG4gICAgdGhpcy5hYmlsaXRpZXNUb0xvYWREYXRhID0gW11cblxuICAgIC8vIExvYWQgYWJpbGl0aWVzIGZyb20gYmFja2VuZFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkNhbkNhbjo6TG9hZEFiaWxpdGllc1wiLCB7XG4gICAgICByZXF1ZXN0OiBhYmlsaXRpZXNUb0xvYWREYXRhXG4gICAgfSlcbiAgICBjb25zdCBhYmlsaXRpZXMgPSBkaWdnKHJlc3VsdCwgXCJhYmlsaXRpZXNcIilcblxuICAgIC8vIFNldCB0aGUgbG9hZGVkIGFiaWxpdGllc1xuICAgIHRoaXMuYWJpbGl0aWVzID0gdGhpcy5hYmlsaXRpZXMuY29uY2F0KGFiaWxpdGllcylcblxuICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrcyB0aGF0IGFyZSB3YWl0aW5nIGZvciB0aGUgYWJpbGl0eSB0byBoYXZlIGJlZW4gbG9hZGVkXG4gICAgZm9yIChjb25zdCBhYmlsaXR5RGF0YSBvZiBhYmlsaXRpZXNUb0xvYWQpIHtcbiAgICAgIGZvciAoY29uc3QgY2FsbGJhY2sgb2YgYWJpbGl0eURhdGEuY2FsbGJhY2tzKSB7XG4gICAgICAgIGNhbGxiYWNrKClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const config_js_1 = __importDefault(require("./config.js"));
|
|
7
|
+
const actioncable_1 = require("@rails/actioncable");
|
|
8
|
+
exports.default = () => {
|
|
4
9
|
if (!globalThis.apiMakerChannelsConsumer) {
|
|
5
|
-
globalThis.apiMakerChannelsConsumer = createConsumer(
|
|
10
|
+
globalThis.apiMakerChannelsConsumer = (0, actioncable_1.createConsumer)(config_js_1.default.getCableUrl());
|
|
6
11
|
}
|
|
7
12
|
return globalThis.apiMakerChannelsConsumer;
|
|
8
13
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbHMtY29uc3VtZXIuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImNoYW5uZWxzLWNvbnN1bWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNERBQWdDO0FBQ2hDLG9EQUFpRDtBQUVqRCxrQkFBZSxHQUFHLEVBQUU7SUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3pDLFVBQVUsQ0FBQyx3QkFBd0IsR0FBRyxJQUFBLDRCQUFjLEVBQUMsbUJBQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQTtBQUM1QyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQge2NyZWF0ZUNvbnN1bWVyfSBmcm9tIFwiQHJhaWxzL2FjdGlvbmNhYmxlXCJcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xuICBpZiAoIWdsb2JhbFRoaXMuYXBpTWFrZXJDaGFubmVsc0NvbnN1bWVyKSB7XG4gICAgZ2xvYmFsVGhpcy5hcGlNYWtlckNoYW5uZWxzQ29uc3VtZXIgPSBjcmVhdGVDb25zdW1lcihDb25maWcuZ2V0Q2FibGVVcmwoKSlcbiAgfVxuXG4gIHJldHVybiBnbG9iYWxUaGlzLmFwaU1ha2VyQ2hhbm5lbHNDb25zdW1lclxufVxuIl19
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const collection_js_1 = __importDefault(require("./collection.js"));
|
|
7
|
+
const diggerize_1 = require("diggerize");
|
|
8
|
+
const memo_js_1 = __importDefault(require("set-state-compare/build/memo.js"));
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const prop_types_1 = __importDefault(require("prop-types"));
|
|
11
|
+
const prop_types_exact_1 = __importDefault(require("prop-types-exact"));
|
|
12
|
+
const use_collection_js_1 = __importDefault(require("./use-collection.js"));
|
|
13
|
+
const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
|
|
9
14
|
const CollectionLoader = ({ component, ...restProps }) => {
|
|
10
|
-
const s =
|
|
11
|
-
const useCollectionResult =
|
|
15
|
+
const s = (0, use_shape_js_1.default)(restProps);
|
|
16
|
+
const useCollectionResult = (0, use_collection_js_1.default)(restProps);
|
|
12
17
|
const cachePartsKeys = [
|
|
13
18
|
"modelIdsCacheString",
|
|
14
19
|
"overallCount",
|
|
@@ -24,31 +29,31 @@ const CollectionLoader = ({ component, ...restProps }) => {
|
|
|
24
29
|
];
|
|
25
30
|
const cacheParts = [];
|
|
26
31
|
for (const cachePartsKey of cachePartsKeys) {
|
|
27
|
-
cacheParts.push(digg(useCollectionResult, cachePartsKey));
|
|
32
|
+
cacheParts.push((0, diggerize_1.digg)(useCollectionResult, cachePartsKey));
|
|
28
33
|
}
|
|
29
34
|
s.updateMeta({ component, useCollectionResult });
|
|
30
|
-
useMemo(() => {
|
|
35
|
+
(0, react_1.useMemo)(() => {
|
|
31
36
|
s.m.component.setState(s.m.useCollectionResult);
|
|
32
37
|
}, cacheParts);
|
|
33
38
|
return null;
|
|
34
39
|
};
|
|
35
|
-
CollectionLoader.propTypes =
|
|
36
|
-
abilities:
|
|
37
|
-
collection:
|
|
38
|
-
component:
|
|
39
|
-
defaultParams:
|
|
40
|
-
groupBy:
|
|
41
|
-
modelClass:
|
|
42
|
-
noRecordsAvailableContent:
|
|
43
|
-
noRecordsFoundContent:
|
|
44
|
-
onModelsLoaded:
|
|
45
|
-
pagination:
|
|
46
|
-
preloads:
|
|
47
|
-
queryMethod:
|
|
48
|
-
queryName:
|
|
49
|
-
ransack:
|
|
50
|
-
select:
|
|
51
|
-
selectColumns:
|
|
40
|
+
CollectionLoader.propTypes = (0, prop_types_exact_1.default)({
|
|
41
|
+
abilities: prop_types_1.default.object,
|
|
42
|
+
collection: prop_types_1.default.instanceOf(collection_js_1.default),
|
|
43
|
+
component: prop_types_1.default.object.isRequired,
|
|
44
|
+
defaultParams: prop_types_1.default.object,
|
|
45
|
+
groupBy: prop_types_1.default.array,
|
|
46
|
+
modelClass: prop_types_1.default.func.isRequired,
|
|
47
|
+
noRecordsAvailableContent: prop_types_1.default.func,
|
|
48
|
+
noRecordsFoundContent: prop_types_1.default.func,
|
|
49
|
+
onModelsLoaded: prop_types_1.default.func,
|
|
50
|
+
pagination: prop_types_1.default.bool,
|
|
51
|
+
preloads: prop_types_1.default.array,
|
|
52
|
+
queryMethod: prop_types_1.default.func,
|
|
53
|
+
queryName: prop_types_1.default.string,
|
|
54
|
+
ransack: prop_types_1.default.object,
|
|
55
|
+
select: prop_types_1.default.object,
|
|
56
|
+
selectColumns: prop_types_1.default.object
|
|
52
57
|
});
|
|
53
|
-
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
exports.default = (0, memo_js_1.default)(CollectionLoader);
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImNvbGxlY3Rpb24tbG9hZGVyLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9FQUF3QztBQUN4Qyx5Q0FBOEI7QUFDOUIsOEVBQWtEO0FBQ2xELGlDQUE2QjtBQUM3Qiw0REFBa0M7QUFDbEMsd0VBQTZDO0FBQzdDLDRFQUErQztBQUMvQyx3RkFBMkQ7QUFFM0QsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQUMsU0FBUyxFQUFFLEdBQUcsU0FBUyxFQUFDLEVBQUUsRUFBRTtJQUNyRCxNQUFNLENBQUMsR0FBRyxJQUFBLHNCQUFRLEVBQUMsU0FBUyxDQUFDLENBQUE7SUFDN0IsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLDJCQUFhLEVBQUMsU0FBUyxDQUFDLENBQUE7SUFDcEQsTUFBTSxjQUFjLEdBQUc7UUFDckIscUJBQXFCO1FBQ3JCLGNBQWM7UUFDZCxTQUFTO1FBQ1QsV0FBVztRQUNYLGFBQWE7UUFDYixZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWU7UUFDZixjQUFjO1FBQ2QsK0JBQStCO1FBQy9CLDJCQUEyQjtLQUM1QixDQUFBO0lBQ0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO0lBRXJCLEtBQUksTUFBTSxhQUFhLElBQUksY0FBYyxFQUFFLENBQUM7UUFDMUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFBLGdCQUFJLEVBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBRUQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBQyxDQUFDLENBQUE7SUFFOUMsSUFBQSxlQUFPLEVBQUMsR0FBRyxFQUFFO1FBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNqRCxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFFZCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQUVELGdCQUFnQixDQUFDLFNBQVMsR0FBRyxJQUFBLDBCQUFjLEVBQUM7SUFDMUMsU0FBUyxFQUFFLG9CQUFTLENBQUMsTUFBTTtJQUMzQixVQUFVLEVBQUUsb0JBQVMsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQztJQUM1QyxTQUFTLEVBQUUsb0JBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtJQUN0QyxhQUFhLEVBQUUsb0JBQVMsQ0FBQyxNQUFNO0lBQy9CLE9BQU8sRUFBRSxvQkFBUyxDQUFDLEtBQUs7SUFDeEIsVUFBVSxFQUFFLG9CQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7SUFDckMseUJBQXlCLEVBQUUsb0JBQVMsQ0FBQyxJQUFJO0lBQ3pDLHFCQUFxQixFQUFFLG9CQUFTLENBQUMsSUFBSTtJQUNyQyxjQUFjLEVBQUUsb0JBQVMsQ0FBQyxJQUFJO0lBQzlCLFVBQVUsRUFBRSxvQkFBUyxDQUFDLElBQUk7SUFDMUIsUUFBUSxFQUFFLG9CQUFTLENBQUMsS0FBSztJQUN6QixXQUFXLEVBQUUsb0JBQVMsQ0FBQyxJQUFJO0lBQzNCLFNBQVMsRUFBRSxvQkFBUyxDQUFDLE1BQU07SUFDM0IsT0FBTyxFQUFFLG9CQUFTLENBQUMsTUFBTTtJQUN6QixNQUFNLEVBQUUsb0JBQVMsQ0FBQyxNQUFNO0lBQ3hCLGFBQWEsRUFBRSxvQkFBUyxDQUFDLE1BQU07Q0FDaEMsQ0FBQyxDQUFBO0FBRUYsa0JBQWUsSUFBQSxpQkFBSSxFQUFDLGdCQUFnQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sbGVjdGlvbiBmcm9tIFwiLi9jb2xsZWN0aW9uLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5pbXBvcnQge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBQcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgdXNlQ29sbGVjdGlvbiBmcm9tIFwiLi91c2UtY29sbGVjdGlvbi5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3VzZS1zaGFwZS5qc1wiXG5cbmNvbnN0IENvbGxlY3Rpb25Mb2FkZXIgPSAoe2NvbXBvbmVudCwgLi4ucmVzdFByb3BzfSkgPT4ge1xuICBjb25zdCBzID0gdXNlU2hhcGUocmVzdFByb3BzKVxuICBjb25zdCB1c2VDb2xsZWN0aW9uUmVzdWx0ID0gdXNlQ29sbGVjdGlvbihyZXN0UHJvcHMpXG4gIGNvbnN0IGNhY2hlUGFydHNLZXlzID0gW1xuICAgIFwibW9kZWxJZHNDYWNoZVN0cmluZ1wiLFxuICAgIFwib3ZlcmFsbENvdW50XCIsXG4gICAgXCJxUGFyYW1zXCIsXG4gICAgXCJxdWVyeU5hbWVcIixcbiAgICBcInF1ZXJ5UGVyS2V5XCIsXG4gICAgXCJxdWVyeVFOYW1lXCIsXG4gICAgXCJxdWVyeVNOYW1lXCIsXG4gICAgXCJxdWVyeVBhZ2VOYW1lXCIsXG4gICAgXCJzZWFyY2hQYXJhbXNcIixcbiAgICBcInNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50XCIsXG4gICAgXCJzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50XCJcbiAgXVxuICBjb25zdCBjYWNoZVBhcnRzID0gW11cblxuICBmb3IoY29uc3QgY2FjaGVQYXJ0c0tleSBvZiBjYWNoZVBhcnRzS2V5cykge1xuICAgIGNhY2hlUGFydHMucHVzaChkaWdnKHVzZUNvbGxlY3Rpb25SZXN1bHQsIGNhY2hlUGFydHNLZXkpKVxuICB9XG5cbiAgcy51cGRhdGVNZXRhKHtjb21wb25lbnQsIHVzZUNvbGxlY3Rpb25SZXN1bHR9KVxuXG4gIHVzZU1lbW8oKCkgPT4ge1xuICAgIHMubS5jb21wb25lbnQuc2V0U3RhdGUocy5tLnVzZUNvbGxlY3Rpb25SZXN1bHQpXG4gIH0sIGNhY2hlUGFydHMpXG5cbiAgcmV0dXJuIG51bGxcbn1cblxuQ29sbGVjdGlvbkxvYWRlci5wcm9wVHlwZXMgPSBQcm9wVHlwZXNFeGFjdCh7XG4gIGFiaWxpdGllczogUHJvcFR5cGVzLm9iamVjdCxcbiAgY29sbGVjdGlvbjogUHJvcFR5cGVzLmluc3RhbmNlT2YoQ29sbGVjdGlvbiksXG4gIGNvbXBvbmVudDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBkZWZhdWx0UGFyYW1zOiBQcm9wVHlwZXMub2JqZWN0LFxuICBncm91cEJ5OiBQcm9wVHlwZXMuYXJyYXksXG4gIG1vZGVsQ2xhc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IFByb3BUeXBlcy5mdW5jLFxuICBub1JlY29yZHNGb3VuZENvbnRlbnQ6IFByb3BUeXBlcy5mdW5jLFxuICBvbk1vZGVsc0xvYWRlZDogUHJvcFR5cGVzLmZ1bmMsXG4gIHBhZ2luYXRpb246IFByb3BUeXBlcy5ib29sLFxuICBwcmVsb2FkczogUHJvcFR5cGVzLmFycmF5LFxuICBxdWVyeU1ldGhvZDogUHJvcFR5cGVzLmZ1bmMsXG4gIHF1ZXJ5TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgcmFuc2FjazogUHJvcFR5cGVzLm9iamVjdCxcbiAgc2VsZWN0OiBQcm9wVHlwZXMub2JqZWN0LFxuICBzZWxlY3RDb2x1bW5zOiBQcm9wVHlwZXMub2JqZWN0XG59KVxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKENvbGxlY3Rpb25Mb2FkZXIpXG4iXX0=
|
package/build/collection.js
CHANGED
|
@@ -1,10 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const clone_deep_1 = __importDefault(require("clone-deep"));
|
|
40
|
+
const commands_pool_js_1 = __importDefault(require("./commands-pool.js"));
|
|
41
|
+
const diggerize_1 = require("diggerize");
|
|
42
|
+
const inflection = __importStar(require("inflection"));
|
|
43
|
+
const incorporator_1 = require("incorporator");
|
|
44
|
+
const result_js_1 = __importDefault(require("./result.js"));
|
|
45
|
+
const uniqunize_1 = __importDefault(require("uniqunize"));
|
|
8
46
|
/**
|
|
9
47
|
* @template {typeof import("./base-model.js").default} MC
|
|
10
48
|
* @typedef {InstanceType<MC>} ModelOf
|
|
@@ -36,7 +74,7 @@ import uniqunize from "uniqunize";
|
|
|
36
74
|
/**
|
|
37
75
|
* @template {typeof import("./base-model.js").default} MC
|
|
38
76
|
*/
|
|
39
|
-
|
|
77
|
+
class ApiMakerCollection {
|
|
40
78
|
static apiMakerType = "Collection";
|
|
41
79
|
/**
|
|
42
80
|
* @param {CollectionArgsType<MC>} args
|
|
@@ -74,7 +112,7 @@ export default class ApiMakerCollection {
|
|
|
74
112
|
*/
|
|
75
113
|
async count() {
|
|
76
114
|
const response = await this.clone()._merge({ count: true })._response();
|
|
77
|
-
return digg(response, "count");
|
|
115
|
+
return (0, diggerize_1.digg)(response, "count");
|
|
78
116
|
}
|
|
79
117
|
/**
|
|
80
118
|
* @returns {this}
|
|
@@ -180,10 +218,10 @@ export default class ApiMakerCollection {
|
|
|
180
218
|
const reflectionNameUnderscore = inflection.underscore(reflectionName);
|
|
181
219
|
// Initialize as empty and try again to return the empty result
|
|
182
220
|
this.set([]);
|
|
183
|
-
return digg(model.relationships, reflectionNameUnderscore);
|
|
221
|
+
return (0, diggerize_1.digg)(model.relationships, reflectionNameUnderscore);
|
|
184
222
|
}
|
|
185
223
|
else {
|
|
186
|
-
const relationshipsLoaded =
|
|
224
|
+
const relationshipsLoaded = (0, uniqunize_1.default)(Object.keys(model.relationships).concat(Object.keys(model.relationshipsCache)));
|
|
187
225
|
throw new Error(`${reflectionName} hasnt been loaded yet on ${model.modelClassData().name}. Loaded was: ${relationshipsLoaded.join(", ")}`);
|
|
188
226
|
}
|
|
189
227
|
}
|
|
@@ -273,7 +311,7 @@ export default class ApiMakerCollection {
|
|
|
273
311
|
params() {
|
|
274
312
|
let params = {};
|
|
275
313
|
if (this.queryArgs.params)
|
|
276
|
-
params = incorporate(params, this.queryArgs.params);
|
|
314
|
+
params = (0, incorporator_1.incorporate)(params, this.queryArgs.params);
|
|
277
315
|
if (this.queryArgs.abilities)
|
|
278
316
|
params.abilities = this.queryArgs.abilities;
|
|
279
317
|
if (this.queryArgs.accessibleBy)
|
|
@@ -330,9 +368,9 @@ export default class ApiMakerCollection {
|
|
|
330
368
|
*/
|
|
331
369
|
async result() {
|
|
332
370
|
const response = await this._response();
|
|
333
|
-
const models = digg(response, "collection");
|
|
371
|
+
const models = (0, diggerize_1.digg)(response, "collection");
|
|
334
372
|
this._addQueryToModels(models);
|
|
335
|
-
const result = new
|
|
373
|
+
const result = new result_js_1.default({ collection: this, models, response });
|
|
336
374
|
return result;
|
|
337
375
|
}
|
|
338
376
|
/**
|
|
@@ -399,7 +437,7 @@ export default class ApiMakerCollection {
|
|
|
399
437
|
*/
|
|
400
438
|
async toArray() {
|
|
401
439
|
const response = await this._response();
|
|
402
|
-
const models = digg(response, "collection");
|
|
440
|
+
const models = (0, diggerize_1.digg)(response, "collection");
|
|
403
441
|
this._addQueryToModels(models);
|
|
404
442
|
return models;
|
|
405
443
|
}
|
|
@@ -416,7 +454,7 @@ export default class ApiMakerCollection {
|
|
|
416
454
|
* @returns {ApiMakerCollection}
|
|
417
455
|
*/
|
|
418
456
|
clone() {
|
|
419
|
-
const clonedQueryArgs =
|
|
457
|
+
const clonedQueryArgs = (0, clone_deep_1.default)(this.queryArgs);
|
|
420
458
|
return new ApiMakerCollection(this.args, clonedQueryArgs);
|
|
421
459
|
}
|
|
422
460
|
// This is needed when reloading a version of the model with the same selected attributes and preloads
|
|
@@ -426,7 +464,7 @@ export default class ApiMakerCollection {
|
|
|
426
464
|
}
|
|
427
465
|
}
|
|
428
466
|
_merge(newQueryArgs) {
|
|
429
|
-
incorporate(this.queryArgs, newQueryArgs);
|
|
467
|
+
(0, incorporator_1.incorporate)(this.queryArgs, newQueryArgs);
|
|
430
468
|
return this;
|
|
431
469
|
}
|
|
432
470
|
_response() {
|
|
@@ -437,7 +475,7 @@ export default class ApiMakerCollection {
|
|
|
437
475
|
if (!this.args.modelClass.modelClassData)
|
|
438
476
|
throw new Error(`No modelClassData on modelClass ${this.args.modelClass?.name} (${typeof this.args.modelClass})`);
|
|
439
477
|
const modelClassData = this.args.modelClass.modelClassData();
|
|
440
|
-
return
|
|
478
|
+
return commands_pool_js_1.default.addCommand({
|
|
441
479
|
args: this.params(),
|
|
442
480
|
command: `${modelClassData.collectionName}-index`,
|
|
443
481
|
collectionName: modelClassData.collectionName,
|
|
@@ -445,4 +483,5 @@ export default class ApiMakerCollection {
|
|
|
445
483
|
}, {});
|
|
446
484
|
}
|
|
447
485
|
}
|
|
448
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY29sbGVjdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ3hDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUE7QUFFakM7OztHQUdHO0FBRUg7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sa0JBQWtCO0lBQ3JDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO0lBRWxDOzs7T0FHRztJQUNILFlBQVksSUFBSSxFQUFFLFNBQVMsR0FBRyxFQUFFO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUUvRixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtJQUNsQixDQUFDO0lBRUQsU0FBUyxDQUFDLGlCQUFpQjtRQUN6QixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUE7UUFFdkIsS0FBSyxNQUFNLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDcEQsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxD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SSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07WUFBRSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzlFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTO1lBQUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQTtRQUN6RSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWTtZQUFFLE1BQU0sQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQTtRQUM3RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUE7UUFDdEUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87WUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFBO1FBQ3BFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQTtRQUM3RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUE7UUFDN0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87WUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFBO1FBQ25FLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJO1lBQUUsTUFBTSxDQUFD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QUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtRQUUzSixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUU1RCxPQUFPLFlBQVksQ0FBQyxVQUFVLENBQzVCO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbkIsT0FBTyxFQUFFLEdBQUcsY0FBYyxDQUFDLGNBQWMsUUFBUTtZQUNqRCxjQUFjLEVBQUUsY0FBYyxDQUFDLGNBQWM7WUFDN0MsSUFBSSxFQUFFLE9BQU87U0FDZCxFQUNELEVBQUUsQ0FDSCxDQUFBO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjbG9uZURlZXAgZnJvbSBcImNsb25lLWRlZXBcIlxuaW1wb3J0IENvbW1hbmRzUG9vbCBmcm9tIFwiLi9jb21tYW5kcy1wb29sLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7aW5jb3Jwb3JhdGV9IGZyb20gXCJpbmNvcnBvcmF0b3JcIlxuaW1wb3J0IFJlc3VsdCBmcm9tIFwiLi9yZXN1bHQuanNcIlxuaW1wb3J0IHVuaXF1bml6ZSBmcm9tIFwidW5pcXVuaXplXCJcblxuLyoqXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdH0gTUNcbiAqIEB0eXBlZGVmIHtJbnN0YW5jZVR5cGU8TUM+fSBNb2RlbE9mXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdH0gTUNcbiAqIEB0eXBlZGVmIHtvYmplY3R9IENvbGxlY3Rpb25BcmdzVHlwZVxuICogQHByb3BlcnR5IHtNb2RlbE9mPE1DPn0gW21vZGVsXVxuICogQHByb3BlcnR5IHtNQ30gbW9kZWxDbGFzc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZWZsZWN0aW9uTmFtZV1cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFF1ZXJ5QXJnc1R5cGVcbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBbYWJpbGl0aWVzXVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFthY2Nlc3NpYmxlQnldXG4gKiBAcHJvcGVydHkge251bWJlcn0gW2NvdW50XVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtkaXN0aW5jdF1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IFtncm91cEJ5XVxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtsaW1pdF1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbcGFnZV1cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3BhcmFtc11cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbcGVyXVxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW3ByZWxvYWRdXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIGFueT59IFtyYW5zYWNrXVxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbc2VhcmNoXVxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT59IFtzZWxlY3RdXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gW3NlbGVjdENvbHVtbnNdXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdH0gTUNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJDb2xsZWN0aW9uIHtcbiAgc3RhdGljIGFwaU1ha2VyVHlwZSA9IFwiQ29sbGVjdGlvblwiXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Q29sbGVjdGlvbkFyZ3NUeXBlPE1DPn0gYXJnc1xuICAgKiBAcGFyYW0ge1F1ZXJ5QXJnc1R5cGV9IHF1ZXJ5QXJnc1xuICAgKi9cbiAgY29uc3RydWN0b3IoYXJncywgcXVlcnlBcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3MubW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKGBObyBtb2RlbENsYXNzIGdpdmVuIGluICR7T2JqZWN0LmtleXMoYXJncykuam9pbihcIiwgXCIpfWApXG5cbiAgICB0aGlzLnF1ZXJ5QXJncyA9IHF1ZXJ5QXJnc1xuICAgIHRoaXMuYXJncyA9IGFyZ3NcbiAgfVxuXG4gIGFiaWxpdGllcyhvcmlnaW5hbEFiaWxpdGllcykge1xuICAgIGNvbnN0IG5ld0FiaWxpdGllcyA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IG9yaWdpbmFsQWJpbGl0eU5hbWUgaW4gb3JpZ2luYWxBYmlsaXRpZXMpIHtcbiAgICAgIGNvbnN0IG5ld01vZGVsTmFtZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShvcmlnaW5hbEFiaWxpdHlOYW1lKVxuICAgICAgY29uc3QgbmV3VmFsdWVzID0gW11cbiAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWVzID0gb3JpZ2luYWxBYmlsaXRpZXNbb3JpZ2luYWxBYmlsaXR5TmFtZV1cblxuICAgICAgZm9yIChjb25zdCBvcmlnaW5hbEFiaWxpdHlOYW1lIG9mIG9yaWdpbmFsVmFsdWVzKSB7XG4gICAgICAgIGNvbnN0IG5ld0FiaWxpdHlOYW1lID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKG9yaWdpbmFsQWJpbGl0eU5hbWUpXG4gICAgICAgIG5ld1ZhbHVlcy5wdXNoKG5ld0FiaWxpdHlOYW1lKVxuICAgICAgfVxuXG4gICAgICBuZXdBYmlsaXRpZXNbbmV3TW9kZWxOYW1lXSA9IG5ld1ZhbHVlc1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7YWJpbGl0aWVzOiBuZXdBYmlsaXRpZXN9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhYmlsaXR5TmFtZVxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIGFjY2Vzc2libGVCeShhYmlsaXR5TmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7YWNjZXNzaWJsZUJ5OiBpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYWJpbGl0eU5hbWUpfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fVxuICAgKi9cbiAgYXN5bmMgY291bnQoKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsb25lKCkuX21lcmdlKHtjb3VudDogdHJ1ZX0pLl9yZXNwb25zZSgpXG5cbiAgICByZXR1cm4gZGlnZyhyZXNwb25zZSwgXCJjb3VudFwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgZGlzdGluY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtkaXN0aW5jdDogdHJ1ZX0pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtmdW5jdGlvbihpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCkgOiB2b2lkfSBjYWxsYmFja1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGVhY2goY2FsbGJhY2spIHtcbiAgICBjb25zdCBhcnJheSA9IGF3YWl0IHRoaXMudG9BcnJheSgpXG5cbiAgICBmb3IgKGNvbnN0IG1vZGVsIGluIGFycmF5KSB7XG4gICAgICBjYWxsYmFjay5jYWxsKG1vZGVsKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gey4uLnN0cmluZ30ga2V5c1xuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIGV4Y2VwdCguLi5rZXlzKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKGtleSA9PSBcInBhZ2VcIikge1xuICAgICAgICBkZWxldGUgdGhpcy5xdWVyeUFyZ3Nba2V5XVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQga2V5OiAke2tleX1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8TW9kZWxPZjxNQz4+fVxuICAgKi9cbiAgYXN5bmMgZmlyc3QoKSB7XG4gICAgY29uc3QgbW9kZWxzID0gYXdhaXQgdGhpcy50b0FycmF5KClcbiAgICByZXR1cm4gbW9kZWxzWzBdXG4gIH1cblxuICBncm91cEJ5KC4uLmFycmF5T2ZUYWJsZXNBbmRDb2x1bW5zKSB7XG4gICAgY29uc3QgYXJyYXlPZlRhYmxlc0FuZENvbHVtbnNXaXRoTG93ZXJjYXNlQ29sdW1ucyA9IGFycmF5T2ZUYWJsZXNBbmRDb2x1bW5zLm1hcCgodGFibGVBbmRDb2x1bW4pID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhYmxlQW5kQ29sdW1uKSkge1xuICAgICAgICByZXR1cm4gW3RhYmxlQW5kQ29sdW1uWzBdLCB0YWJsZUFuZENvbHVtblsxXS50b0xvd2VyQ2FzZSgpXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlQW5kQ29sdW1uLnRvTG93ZXJDYXNlKClcbiAgICAgIH1cbiAgICB9KVxuICAgIGNvbnN0IGN1cnJlbnRHcm91cEJ5ID0gdGhpcy5xdWVyeUFyZ3MuZ3JvdXBCeSB8fCBbXVxuICAgIGNvbnN0IG5ld0dyb3VwQnkgPSBjdXJyZW50R3JvdXBCeS5jb25jYXQoYXJyYXlPZlRhYmxlc0FuZENvbHVtbnNXaXRoTG93ZXJjYXNlQ29sdW1ucylcblxuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7XG4gICAgICBncm91cEJ5OiBuZXdHcm91cEJ5XG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGVuc3VyZUxvYWRlZCgpIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkZWQoKSkge1xuICAgICAgY29uc3QgbW9kZWxzID0gYXdhaXQgdGhpcy50b0FycmF5KClcblxuICAgICAgdGhpcy5zZXQobW9kZWxzKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxvYWRlZCgpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBpc0xvYWRlZCgpIHtcbiAgICBjb25zdCB7bW9kZWwsIHJlZmxlY3Rpb25OYW1lfSA9IHRoaXMuYXJnc1xuXG4gICAgaWYgKHJlZmxlY3Rpb25OYW1lIGluIG1vZGVsLnJlbGF0aW9uc2hpcHNDYWNoZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGVsc2UgaWYgKHJlZmxlY3Rpb25OYW1lIGluIG1vZGVsLnJlbGF0aW9uc2hpcHMpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudFxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIGxpbWl0KGFtb3VudCkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7bGltaXQ6IGFtb3VudH0pXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0FycmF5PE1vZGVsT2Y8TUM+Pn1cbiAgICovXG4gIHByZWxvYWRlZCgpIHtcbiAgICBpZiAoISh0aGlzLmFyZ3MucmVmbGVjdGlvbk5hbWUgaW4gdGhpcy5hcmdzLm1vZGVsLnJlbGF0aW9uc2hpcHNDYWNoZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmFyZ3MucmVmbGVjdGlvbk5hbWV9IGhhc250IGJlZW4gbG9hZGVkIHlldGApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJncy5tb2RlbC5yZWxhdGlvbnNoaXBzQ2FjaGVbdGhpcy5hcmdzLnJlZmxlY3Rpb25OYW1lXVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtNb2RlbE9mPE1DPiB8IEFycmF5PE1vZGVsT2Y8TUM+Pn1cbiAgICovXG4gIGxvYWRlZCgpIHtcbiAgICBjb25zdCB7bW9kZWwsIHJlZmxlY3Rpb25OYW1lfSA9IHRoaXMuYXJnc1xuXG4gICAgaWYgKHJlZmxlY3Rpb25OYW1lIGluIG1vZGVsLnJlbGF0aW9uc2hpcHMpIHtcbiAgICAgIHJldHVybiBtb2RlbC5yZWxhdGlvbnNoaXBzW3JlZmxlY3Rpb25OYW1lXVxuICAgIH0gZWxzZSBpZiAocmVmbGVjdGlvbk5hbWUgaW4gbW9kZWwucmVsYXRpb25zaGlwc0NhY2hlKSB7XG4gICAgICByZXR1cm4gbW9kZWwucmVsYXRpb25zaGlwc0NhY2hlW3JlZmxlY3Rpb25OYW1lXVxuICAgIH0gZWxzZSBpZiAobW9kZWwuaXNOZXdSZWNvcmQoKSkge1xuICAgICAgY29uc3QgcmVmbGVjdGlvbk5hbWVVbmRlcnNjb3JlID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKHJlZmxlY3Rpb25OYW1lKVxuXG4gICAgICAvLyBJbml0aWFsaXplIGFzIGVtcHR5IGFuZCB0cnkgYWdhaW4gdG8gcmV0dXJuIHRoZSBlbXB0eSByZXN1bHRcbiAgICAgIHRoaXMuc2V0KFtdKVxuXG4gICAgICByZXR1cm4gZGlnZyhtb2RlbC5yZWxhdGlvbnNoaXBzLCByZWZsZWN0aW9uTmFtZVVuZGVyc2NvcmUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcHNMb2FkZWQgPSB1bmlxdW5pemUoT2JqZWN0LmtleXMobW9kZWwucmVsYXRpb25zaGlwcykuY29uY2F0KE9iamVjdC5rZXlzKG1vZGVsLnJlbGF0aW9uc2hpcHNDYWNoZSkpKVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7cmVmbGVjdGlvbk5hbWV9IGhhc250IGJlZW4gbG9hZGVkIHlldCBvbiAke21vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX0uIExvYWRlZCB3YXM6ICR7cmVsYXRpb25zaGlwc0xvYWRlZC5qb2luKFwiLCBcIil9YClcbiAgICB9XG4gIH1cblxuICAvKiogQHJldHVybnMge0FycmF5PE1vZGVsT2Y8TUM+Pn0gKi9cbiAgbG9hZGVkQXJyYXkoKSB7XG4gICAgY29uc3QgbG9hZGVkID0gdGhpcy5sb2FkZWQoKVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobG9hZGVkKSkge1xuICAgICAgcmV0dXJuIGxvYWRlZFxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCInbG9hZGVkJyB3YXNuJ3QgYW4gYXJyYXlcIilcbiAgICB9XG4gIH1cblxuICAvLyBSZXBsYWNlcyB0aGUgcmVsYXRpb25zaGlwcyB3aXRoIHRoZSBnaXZlbiBuZXcgY29sbGVjdGlvbi5cbiAgc2V0KG5ld0NvbGxlY3Rpb24pIHtcbiAgICB0aGlzLmFyZ3MubW9kZWwucmVsYXRpb25zaGlwc1t0aGlzLmFyZ3MucmVmbGVjdGlvbk5hbWVdID0gbmV3Q29sbGVjdGlvblxuICB9XG5cbiAgLy8gUHVzaGVzIGFub3RoZXIgbW9kZWwgb250byB0aGUgZ2l2ZW4gY29sbGVjdGlvbi5cbiAgcHVzaChuZXdNb2RlbCkge1xuICAgIGNvbnN0IHttb2RlbCwgcmVmbGVjdGlvbk5hbWV9ID0gdGhpcy5hcmdzXG5cbiAgICBpZiAoIShyZWZsZWN0aW9uTmFtZSBpbiBtb2RlbC5yZWxhdGlvbnNoaXBzKSkge1xuICAgICAgbW9kZWwucmVsYXRpb25zaGlwc1tyZWZsZWN0aW9uTmFtZV0gPSBbXVxuICAgIH1cblxuICAgIGlmICghbW9kZWwucmVsYXRpb25zaGlwc1tyZWZsZWN0aW9uTmFtZV0uaW5jbHVkZXMobmV3TW9kZWwpKSB7XG4gICAgICBtb2RlbC5yZWxhdGlvbnNoaXBzW3JlZmxlY3Rpb25OYW1lXS5wdXNoKG5ld01vZGVsKVxuICAgIH1cbiAgfVxuXG4gIC8vIEFycmF5IHNob3J0Y3V0c1xuICAvKipcbiAgICogQHBhcmFtIHtmdW5jdGlvbihpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCk6IGJvb2xlYW59IGNhbGxiYWNrXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdH1cbiAgICovXG4gIGZpbmQoY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMubG9hZGVkQXJyYXkoKS5maW5kKGNhbGxiYWNrKSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQpOiB2b2lkfSBjYWxsYmFja1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGZvckVhY2goY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMubG9hZGVkQXJyYXkoKS5mb3JFYWNoKGNhbGxiYWNrKSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQpOiB2b2lkfSBjYWxsYmFja1xuICAgKiBAcmV0dXJucyB7YW55W119XG4gICAqL1xuICBtYXAoY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMubG9hZGVkQXJyYXkoKS5tYXAoY2FsbGJhY2spIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gcHJlbG9hZFZhbHVlXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcHJlbG9hZChwcmVsb2FkVmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe3ByZWxvYWQ6IHByZWxvYWRWYWx1ZX0pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBhZ2VcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBwYWdlKHBhZ2UpIHtcbiAgICBpZiAoIXBhZ2UpIHBhZ2UgPSAxXG5cbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe3BhZ2V9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYWdlS2V5XG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcGFnZUtleShwYWdlS2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtwYWdlS2V5fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGlzRmlsdGVyZWQoKSB7XG4gICAgY29uc3Qge3F1ZXJ5QXJnc30gPSB0aGlzXG5cbiAgICBpZiAoXG4gICAgICBxdWVyeUFyZ3MuYWNjZXNzaWJsZUJ5IHx8XG4gICAgICBxdWVyeUFyZ3MuY291bnQgfHxcbiAgICAgIHF1ZXJ5QXJncy5saW1pdCB8fFxuICAgICAgcXVlcnlBcmdzLnBhZ2UgfHxcbiAgICAgIHF1ZXJ5QXJncy5wYXJhbXMgfHxcbiAgICAgIHF1ZXJ5QXJncy5wZXIgfHxcbiAgICAgIHF1ZXJ5QXJncy5yYW5zYWNrIHx8XG4gICAgICBxdWVyeUFyZ3Muc2VhcmNoXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fVxuICAgKi9cbiAgcGFyYW1zKCkge1xuICAgIGxldCBwYXJhbXMgPSB7fVxuXG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLnBhcmFtcykgcGFyYW1zID0gaW5jb3Jwb3JhdGUocGFyYW1zLCB0aGlzLnF1ZXJ5QXJncy5wYXJhbXMpXG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLmFiaWxpdGllcykgcGFyYW1zLmFiaWxpdGllcyA9IHRoaXMucXVlcnlBcmdzLmFiaWxpdGllc1xuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5hY2Nlc3NpYmxlQnkpIHBhcmFtcy5hY2Nlc3NpYmxlX2J5ID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKHRoaXMucXVlcnlBcmdzLmFjY2Vzc2libGVCeSlcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MuY291bnQpIHBhcmFtcy5jb3VudCA9IHRoaXMucXVlcnlBcmdzLmNvdW50XG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLmRpc3RpbmN0KSBwYXJhbXMuZGlzdGluY3QgPSB0aGlzLnF1ZXJ5QXJncy5kaXN0aW5jdFxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5ncm91cEJ5KSBwYXJhbXMuZ3JvdXBfYnkgPSB0aGlzLnF1ZXJ5QXJncy5ncm91cEJ5XG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLnJhbnNhY2spIHBhcmFtcy5xID0gdGhpcy5xdWVyeUFyZ3MucmFuc2Fja1xuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5saW1pdCkgcGFyYW1zLmxpbWl0ID0gdGhpcy5xdWVyeUFyZ3MubGltaXRcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MucHJlbG9hZCkgcGFyYW1zLnByZWxvYWQgPSB0aGlzLnF1ZXJ5QXJncy5wcmVsb2FkXG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLnBhZ2UpIHBhcmFtcy5wYWdlID0gdGhpcy5xdWVyeUFyZ3MucGFnZVxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5wZXIpIHBhcmFtcy5wZXIgPSB0aGlzLnF1ZXJ5QXJncy5wZXJcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3Muc2VhcmNoKSBwYXJhbXMuc2VhcmNoID0gdGhpcy5xdWVyeUFyZ3Muc2VhcmNoXG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLnNlbGVjdCkgcGFyYW1zLnNlbGVjdCA9IHRoaXMucXVlcnlBcmdzLnNlbGVjdFxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5zZWxlY3RDb2x1bW5zKSBwYXJhbXMuc2VsZWN0X2NvbHVtbnMgPSB0aGlzLnF1ZXJ5QXJncy5zZWxlY3RDb2x1bW5zXG5cbiAgICByZXR1cm4gcGFyYW1zXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBlclxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHBlcihwZXIpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe3Blcn0pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBlcktleVxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHBlcktleShwZXJLZXkpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe3BlcktleX0pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBwYXJhbXNcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICByYW5zYWNrKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMpIHRoaXMuX21lcmdlKHtyYW5zYWNrOiBwYXJhbXN9KVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8UmVzdWx0Pn1cbiAgICovXG4gIGFzeW5jIHJlc3VsdCgpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuX3Jlc3BvbnNlKClcbiAgICBjb25zdCBtb2RlbHMgPSBkaWdnKHJlc3BvbnNlLCBcImNvbGxlY3Rpb25cIilcblxuICAgIHRoaXMuX2FkZFF1ZXJ5VG9Nb2RlbHMobW9kZWxzKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFJlc3VsdCh7Y29sbGVjdGlvbjogdGhpcywgbW9kZWxzLCByZXNwb25zZX0pXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBwYXJhbXNcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBzZWFyY2gocGFyYW1zKSB7XG4gICAgaWYgKHBhcmFtcykgdGhpcy5fbWVyZ2Uoe3NlYXJjaDogcGFyYW1zfSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hLZXlcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBzZWFyY2hLZXkoc2VhcmNoS2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtzZWFyY2hLZXl9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBvcmlnaW5hbFNlbGVjdFxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHNlbGVjdChvcmlnaW5hbFNlbGVjdCkge1xuICAgIGNvbnN0IG5ld1NlbGVjdCA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IG9yaWdpbmFsTW9kZWxOYW1lIGluIG9yaWdpbmFsU2VsZWN0KSB7XG4gICAgICBjb25zdCBuZXdNb2RlbE5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUob3JpZ2luYWxNb2RlbE5hbWUpXG4gICAgICBjb25zdCBuZXdWYWx1ZXMgPSBbXVxuICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZXMgPSBvcmlnaW5hbFNlbGVjdFtvcmlnaW5hbE1vZGVsTmFtZV1cblxuICAgICAgZm9yIChjb25zdCBvcmlnaW5hbEF0dHJpYnV0ZU5hbWUgb2Ygb3JpZ2luYWxWYWx1ZXMpIHtcbiAgICAgICAgY29uc3QgbmV3QXR0cmlidXRlTmFtZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShvcmlnaW5hbEF0dHJpYnV0ZU5hbWUpXG4gICAgICAgIG5ld1ZhbHVlcy5wdXNoKG5ld0F0dHJpYnV0ZU5hbWUpXG4gICAgICB9XG5cbiAgICAgIG5ld1NlbGVjdFtuZXdNb2RlbE5hbWVdID0gbmV3VmFsdWVzXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtzZWxlY3Q6IG5ld1NlbGVjdH0pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT59IG9yaWdpbmFsU2VsZWN0XG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgc2VsZWN0Q29sdW1ucyhvcmlnaW5hbFNlbGVjdCkge1xuICAgIGNvbnN0IG5ld1NlbGVjdCA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IG9yaWdpbmFsTW9kZWxOYW1lIGluIG9yaWdpbmFsU2VsZWN0KSB7XG4gICAgICBjb25zdCBuZXdNb2RlbE5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUoaW5mbGVjdGlvbi51bmRlcnNjb3JlKG9yaWdpbmFsTW9kZWxOYW1lKSlcbiAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IFtdXG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlcyA9IG9yaWdpbmFsU2VsZWN0W29yaWdpbmFsTW9kZWxOYW1lXVxuXG4gICAgICBmb3IgKGNvbnN0IG9yaWdpbmFsQXR0cmlidXRlTmFtZSBvZiBvcmlnaW5hbFZhbHVlcykge1xuICAgICAgICBjb25zdCBuZXdBdHRyaWJ1dGVOYW1lID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKG9yaWdpbmFsQXR0cmlidXRlTmFtZSlcbiAgICAgICAgbmV3VmFsdWVzLnB1c2gobmV3QXR0cmlidXRlTmFtZSlcbiAgICAgIH1cblxuICAgICAgbmV3U2VsZWN0W25ld01vZGVsTmFtZV0gPSBuZXdWYWx1ZXNcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe3NlbGVjdENvbHVtbnM6IG5ld1NlbGVjdH0pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNvcnRCeVxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHNvcnQoc29ydEJ5KSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtyYW5zYWNrOiB7czogc29ydEJ5fX0pXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8TW9kZWxPZjxNQz4+Pn1cbiAgICovXG4gIGFzeW5jIHRvQXJyYXkoKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9yZXNwb25zZSgpXG4gICAgY29uc3QgbW9kZWxzID0gZGlnZyhyZXNwb25zZSwgXCJjb2xsZWN0aW9uXCIpXG5cbiAgICB0aGlzLl9hZGRRdWVyeVRvTW9kZWxzKG1vZGVscylcblxuICAgIHJldHVybiBtb2RlbHNcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7TUN9XG4gICAqL1xuICBtb2RlbENsYXNzKCkge1xuICAgIGlmICghdGhpcy5hcmdzLm1vZGVsQ2xhc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIG1vZGVsIGNsYXNzIGdpdmVuIGluIGFyZ3NcIilcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcmdzLm1vZGVsQ2xhc3NcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7QXBpTWFrZXJDb2xsZWN0aW9ufVxuICAgKi9cbiAgY2xvbmUoKSB7XG4gICAgY29uc3QgY2xvbmVkUXVlcnlBcmdzID0gY2xvbmVEZWVwKHRoaXMucXVlcnlBcmdzKVxuXG4gICAgcmV0dXJuIG5ldyBBcGlNYWtlckNvbGxlY3Rpb24odGhpcy5hcmdzLCBjbG9uZWRRdWVyeUFyZ3MpXG4gIH1cblxuICAvLyBUaGlzIGlzIG5lZWRlZCB3aGVuIHJlbG9hZGluZyBhIHZlcnNpb24gb2YgdGhlIG1vZGVsIHdpdGggdGhlIHNhbWUgc2VsZWN0ZWQgYXR0cmlidXRlcyBhbmQgcHJlbG9hZHNcbiAgX2FkZFF1ZXJ5VG9Nb2RlbHMobW9kZWxzKSB7XG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiBtb2RlbHMpIHtcbiAgICAgIG1vZGVsLmNvbGxlY3Rpb24gPSB0aGlzXG4gICAgfVxuICB9XG5cbiAgX21lcmdlKG5ld1F1ZXJ5QXJncykge1xuICAgIGluY29ycG9yYXRlKHRoaXMucXVlcnlBcmdzLCBuZXdRdWVyeUFyZ3MpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgX3Jlc3BvbnNlKCkge1xuICAgIGlmICghdGhpcy5hcmdzKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBhcmdzP1wiKVxuICAgIGlmICghdGhpcy5hcmdzLm1vZGVsQ2xhc3MpIHRocm93IG5ldyBFcnJvcihcIk5vIG1vZGVsQ2xhc3MgaW4gYXJnc1wiKVxuICAgIGlmICghdGhpcy5hcmdzLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEpIHRocm93IG5ldyBFcnJvcihgTm8gbW9kZWxDbGFzc0RhdGEgb24gbW9kZWxDbGFzcyAke3RoaXMuYXJncy5tb2RlbENsYXNzPy5uYW1lfSAoJHt0eXBlb2YgdGhpcy5hcmdzLm1vZGVsQ2xhc3N9KWApXG5cbiAgICBjb25zdCBtb2RlbENsYXNzRGF0YSA9IHRoaXMuYXJncy5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKClcblxuICAgIHJldHVybiBDb21tYW5kc1Bvb2wuYWRkQ29tbWFuZChcbiAgICAgIHtcbiAgICAgICAgYXJnczogdGhpcy5wYXJhbXMoKSxcbiAgICAgICAgY29tbWFuZDogYCR7bW9kZWxDbGFzc0RhdGEuY29sbGVjdGlvbk5hbWV9LWluZGV4YCxcbiAgICAgICAgY29sbGVjdGlvbk5hbWU6IG1vZGVsQ2xhc3NEYXRhLmNvbGxlY3Rpb25OYW1lLFxuICAgICAgICB0eXBlOiBcImluZGV4XCJcbiAgICAgIH0sXG4gICAgICB7fVxuICAgIClcbiAgfVxufVxuIl19
|
|
486
|
+
exports.default = ApiMakerCollection;
|
|
487
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY29sbGVjdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUFrQztBQUNsQywwRUFBNkM7QUFDN0MseUNBQThCO0FBQzlCLHVEQUF3QztBQUN4QywrQ0FBd0M7QUFDeEMsNERBQWdDO0FBQ2hDLDBEQUFpQztBQUVqQzs7O0dBR0c7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUVIOztHQUVHO0FBQ0gsTUFBcUIsa0JBQWtCO0lBQ3JDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO0lBRWxDOzs7T0FHRztJQUNILFlBQVksSUFBSSxFQUFFLFNBQVMsR0FBRyxFQUFFO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUUvRixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtJQUNsQixDQUFDO0lBRUQsU0FBUyxDQUFDLGlCQUFpQjtRQUN6QixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUE7UUFFdkIsS0FBSyxNQUFNLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDcEQsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1lBQy9ELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQTtZQUNwQixNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1lBRTdELEtBQUssTUFBTSxtQkFBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO2dCQUNqRSxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1lBQ2hDLENBQUM7WUFFRCxZQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsU0FBUyxDQUFBO1FBQ3hDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLFdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFckUsT0FBTyxJQUFBLGdCQUFJLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRWxDLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxFQUFFLENBQUM7WUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxHQUFHLElBQUk7UUFDWixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDNUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDLENBQUE7WUFDMUMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDbkMsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLHVCQUF1QjtRQUNoQyxNQUFNLDJDQUEyQyxHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ2pHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1lBQzdELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUNyQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUE7UUFDbkQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO1FBRXJGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNqQixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBRW5DLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixNQUFNLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFFekMsSUFBSSxjQUFjLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDL0MsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO2FBQU0sSUFBSSxjQUFjLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFNO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUztRQUNQLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUN0RSxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLHdCQUF3QixDQUFDLENBQUE7UUFDdEUsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osTUFBTSxFQUFDLEtBQUssRUFBRSxjQUFjLEVBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBRXpDLElBQUksY0FBYyxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQyxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDNUMsQ0FBQzthQUFNLElBQUksY0FBYyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3RELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ2pELENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQy9CLE1BQU0sd0JBQXdCLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUV0RSwrREFBK0Q7WUFDL0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUVaLE9BQU8sSUFBQSxnQkFBSSxFQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsQ0FBQTtRQUM1RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sbUJBQW1CLEdBQUcsSUFBQSxtQkFBUyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUVySCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsY0FBYyw2QkFBNkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksaUJBQWlCLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDN0ksQ0FBQztJQUNILENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsV0FBVztRQUNULE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUU1QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsNERBQTREO0lBQzVELEdBQUcsQ0FBQyxhQUFhO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsYUFBYSxDQUFBO0lBQ3pFLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLFFBQVE7UUFDWCxNQUFNLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFFekMsSUFBSSxDQUFDLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQzdDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQzFDLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1RCxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQjs7O09BR0c7SUFDSCxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFM0Q7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRWpFOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxRQUFRLElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUV6RDs7O09BR0c7SUFDSCxPQUFPLENBQUMsWUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLElBQUk7UUFDUCxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksR0FBRyxDQUFDLENBQUE7UUFFbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixNQUFNLEVBQUMsU0FBUyxFQUFDLEdBQUcsSUFBSSxDQUFBO1FBRXhCLElBQ0UsU0FBUyxDQUFDLFlBQVk7WUFDdEIsU0FBUyxDQUFDLEtBQUs7WUFDZixTQUFTLENBQUMsS0FBSztZQUNmLFNBQVMsQ0FBQyxJQUFJO1lBQ2QsU0FBUyxDQUFDLE1BQU07WUFDaEIsU0FBUyxDQUFDLEdBQUc7WUFDYixTQUFTLENBQUMsT0FBTztZQUNqQixTQUFTLENBQUMsTUFBTSxFQUNoQixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBRWYsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07WUFBRSxNQUFNLEdBQUcsSUFBQSwwQkFBVyxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzlFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTO1lBQUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQTtRQUN6RSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWTtZQUFFLE1BQU0sQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQUUsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQTtRQUM3RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUFFLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUE7UUFDdEUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87WUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFBO1FBQ3BFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQTtRQUM3RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUE7UUFDN0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87WUFBRSxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFBO1FBQ25FLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJO1lBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQTtRQUMxRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRztZQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFB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QUFFLENBQUE7UUFFNUQsT0FBTywwQkFBWSxDQUFDLFVBQVUsQ0FDNUI7WUFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQixPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsY0FBYyxRQUFRO1lBQ2pELGNBQWMsRUFBRSxjQUFjLENBQUMsY0FBYztZQUM3QyxJQUFJLEVBQUUsT0FBTztTQUNkLEVBQ0QsRUFBRSxDQUNILENBQUE7SUFDSCxDQUFDOztBQXBkSCxxQ0FxZEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xvbmVEZWVwIGZyb20gXCJjbG9uZS1kZWVwXCJcbmltcG9ydCBDb21tYW5kc1Bvb2wgZnJvbSBcIi4vY29tbWFuZHMtcG9vbC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCBSZXN1bHQgZnJvbSBcIi4vcmVzdWx0LmpzXCJcbmltcG9ydCB1bmlxdW5pemUgZnJvbSBcInVuaXF1bml6ZVwiXG5cbi8qKlxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IE1DXG4gKiBAdHlwZWRlZiB7SW5zdGFuY2VUeXBlPE1DPn0gTW9kZWxPZlxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IE1DXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBDb2xsZWN0aW9uQXJnc1R5cGVcbiAqIEBwcm9wZXJ0eSB7TW9kZWxPZjxNQz59IFttb2RlbF1cbiAqIEBwcm9wZXJ0eSB7TUN9IG1vZGVsQ2xhc3NcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcmVmbGVjdGlvbk5hbWVdXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBRdWVyeUFyZ3NUeXBlXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gW2FiaWxpdGllc11cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbYWNjZXNzaWJsZUJ5XVxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtjb3VudF1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGlzdGluY3RdXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbZ3JvdXBCeV1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbbGltaXRdXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3BhZ2VdXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIGFueT59IFtwYXJhbXNdXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3Blcl1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IFtwcmVsb2FkXVxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbcmFuc2Fja11cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3NlYXJjaF1cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBbc2VsZWN0XVxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT59IFtzZWxlY3RDb2x1bW5zXVxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IE1DXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyQ29sbGVjdGlvbiB7XG4gIHN0YXRpYyBhcGlNYWtlclR5cGUgPSBcIkNvbGxlY3Rpb25cIlxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0NvbGxlY3Rpb25BcmdzVHlwZTxNQz59IGFyZ3NcbiAgICogQHBhcmFtIHtRdWVyeUFyZ3NUeXBlfSBxdWVyeUFyZ3NcbiAgICovXG4gIGNvbnN0cnVjdG9yKGFyZ3MsIHF1ZXJ5QXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLm1vZGVsQ2xhc3MpIHRocm93IG5ldyBFcnJvcihgTm8gbW9kZWxDbGFzcyBnaXZlbiBpbiAke09iamVjdC5rZXlzKGFyZ3MpLmpvaW4oXCIsIFwiKX1gKVxuXG4gICAgdGhpcy5xdWVyeUFyZ3MgPSBxdWVyeUFyZ3NcbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gIH1cblxuICBhYmlsaXRpZXMob3JpZ2luYWxBYmlsaXRpZXMpIHtcbiAgICBjb25zdCBuZXdBYmlsaXRpZXMgPSB7fVxuXG4gICAgZm9yIChjb25zdCBvcmlnaW5hbEFiaWxpdHlOYW1lIGluIG9yaWdpbmFsQWJpbGl0aWVzKSB7XG4gICAgICBjb25zdCBuZXdNb2RlbE5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUob3JpZ2luYWxBYmlsaXR5TmFtZSlcbiAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IFtdXG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlcyA9IG9yaWdpbmFsQWJpbGl0aWVzW29yaWdpbmFsQWJpbGl0eU5hbWVdXG5cbiAgICAgIGZvciAoY29uc3Qgb3JpZ2luYWxBYmlsaXR5TmFtZSBvZiBvcmlnaW5hbFZhbHVlcykge1xuICAgICAgICBjb25zdCBuZXdBYmlsaXR5TmFtZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShvcmlnaW5hbEFiaWxpdHlOYW1lKVxuICAgICAgICBuZXdWYWx1ZXMucHVzaChuZXdBYmlsaXR5TmFtZSlcbiAgICAgIH1cblxuICAgICAgbmV3QWJpbGl0aWVzW25ld01vZGVsTmFtZV0gPSBuZXdWYWx1ZXNcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe2FiaWxpdGllczogbmV3QWJpbGl0aWVzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWJpbGl0eU5hbWVcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBhY2Nlc3NpYmxlQnkoYWJpbGl0eU5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe2FjY2Vzc2libGVCeTogaW5mbGVjdGlvbi51bmRlcnNjb3JlKGFiaWxpdHlOYW1lKX0pXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn1cbiAgICovXG4gIGFzeW5jIGNvdW50KCkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbG9uZSgpLl9tZXJnZSh7Y291bnQ6IHRydWV9KS5fcmVzcG9uc2UoKVxuXG4gICAgcmV0dXJuIGRpZ2cocmVzcG9uc2UsIFwiY291bnRcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIGRpc3RpbmN0KCkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7ZGlzdGluY3Q6IHRydWV9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQpIDogdm9pZH0gY2FsbGJhY2tcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBlYWNoKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYXJyYXkgPSBhd2FpdCB0aGlzLnRvQXJyYXkoKVxuXG4gICAgZm9yIChjb25zdCBtb2RlbCBpbiBhcnJheSkge1xuICAgICAgY2FsbGJhY2suY2FsbChtb2RlbClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHsuLi5zdHJpbmd9IGtleXNcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBleGNlcHQoLi4ua2V5cykge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGlmIChrZXkgPT0gXCJwYWdlXCIpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMucXVlcnlBcmdzW2tleV1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIGtleTogJHtrZXl9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPE1vZGVsT2Y8TUM+Pn1cbiAgICovXG4gIGFzeW5jIGZpcnN0KCkge1xuICAgIGNvbnN0IG1vZGVscyA9IGF3YWl0IHRoaXMudG9BcnJheSgpXG4gICAgcmV0dXJuIG1vZGVsc1swXVxuICB9XG5cbiAgZ3JvdXBCeSguLi5hcnJheU9mVGFibGVzQW5kQ29sdW1ucykge1xuICAgIGNvbnN0IGFycmF5T2ZUYWJsZXNBbmRDb2x1bW5zV2l0aExvd2VyY2FzZUNvbHVtbnMgPSBhcnJheU9mVGFibGVzQW5kQ29sdW1ucy5tYXAoKHRhYmxlQW5kQ29sdW1uKSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YWJsZUFuZENvbHVtbikpIHtcbiAgICAgICAgcmV0dXJuIFt0YWJsZUFuZENvbHVtblswXSwgdGFibGVBbmRDb2x1bW5bMV0udG9Mb3dlckNhc2UoKV1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0YWJsZUFuZENvbHVtbi50b0xvd2VyQ2FzZSgpXG4gICAgICB9XG4gICAgfSlcbiAgICBjb25zdCBjdXJyZW50R3JvdXBCeSA9IHRoaXMucXVlcnlBcmdzLmdyb3VwQnkgfHwgW11cbiAgICBjb25zdCBuZXdHcm91cEJ5ID0gY3VycmVudEdyb3VwQnkuY29uY2F0KGFycmF5T2ZUYWJsZXNBbmRDb2x1bW5zV2l0aExvd2VyY2FzZUNvbHVtbnMpXG5cbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe1xuICAgICAgZ3JvdXBCeTogbmV3R3JvdXBCeVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBlbnN1cmVMb2FkZWQoKSB7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGVkKCkpIHtcbiAgICAgIGNvbnN0IG1vZGVscyA9IGF3YWl0IHRoaXMudG9BcnJheSgpXG5cbiAgICAgIHRoaXMuc2V0KG1vZGVscylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkZWQoKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgaXNMb2FkZWQoKSB7XG4gICAgY29uc3Qge21vZGVsLCByZWZsZWN0aW9uTmFtZX0gPSB0aGlzLmFyZ3NcblxuICAgIGlmIChyZWZsZWN0aW9uTmFtZSBpbiBtb2RlbC5yZWxhdGlvbnNoaXBzQ2FjaGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBlbHNlIGlmIChyZWZsZWN0aW9uTmFtZSBpbiBtb2RlbC5yZWxhdGlvbnNoaXBzKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnRcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBsaW1pdChhbW91bnQpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVyZ2Uoe2xpbWl0OiBhbW91bnR9KVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtBcnJheTxNb2RlbE9mPE1DPj59XG4gICAqL1xuICBwcmVsb2FkZWQoKSB7XG4gICAgaWYgKCEodGhpcy5hcmdzLnJlZmxlY3Rpb25OYW1lIGluIHRoaXMuYXJncy5tb2RlbC5yZWxhdGlvbnNoaXBzQ2FjaGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5hcmdzLnJlZmxlY3Rpb25OYW1lfSBoYXNudCBiZWVuIGxvYWRlZCB5ZXRgKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFyZ3MubW9kZWwucmVsYXRpb25zaGlwc0NhY2hlW3RoaXMuYXJncy5yZWZsZWN0aW9uTmFtZV1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7TW9kZWxPZjxNQz4gfCBBcnJheTxNb2RlbE9mPE1DPj59XG4gICAqL1xuICBsb2FkZWQoKSB7XG4gICAgY29uc3Qge21vZGVsLCByZWZsZWN0aW9uTmFtZX0gPSB0aGlzLmFyZ3NcblxuICAgIGlmIChyZWZsZWN0aW9uTmFtZSBpbiBtb2RlbC5yZWxhdGlvbnNoaXBzKSB7XG4gICAgICByZXR1cm4gbW9kZWwucmVsYXRpb25zaGlwc1tyZWZsZWN0aW9uTmFtZV1cbiAgICB9IGVsc2UgaWYgKHJlZmxlY3Rpb25OYW1lIGluIG1vZGVsLnJlbGF0aW9uc2hpcHNDYWNoZSkge1xuICAgICAgcmV0dXJuIG1vZGVsLnJlbGF0aW9uc2hpcHNDYWNoZVtyZWZsZWN0aW9uTmFtZV1cbiAgICB9IGVsc2UgaWYgKG1vZGVsLmlzTmV3UmVjb3JkKCkpIHtcbiAgICAgIGNvbnN0IHJlZmxlY3Rpb25OYW1lVW5kZXJzY29yZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShyZWZsZWN0aW9uTmFtZSlcblxuICAgICAgLy8gSW5pdGlhbGl6ZSBhcyBlbXB0eSBhbmQgdHJ5IGFnYWluIHRvIHJldHVybiB0aGUgZW1wdHkgcmVzdWx0XG4gICAgICB0aGlzLnNldChbXSlcblxuICAgICAgcmV0dXJuIGRpZ2cobW9kZWwucmVsYXRpb25zaGlwcywgcmVmbGVjdGlvbk5hbWVVbmRlcnNjb3JlKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBzTG9hZGVkID0gdW5pcXVuaXplKE9iamVjdC5rZXlzKG1vZGVsLnJlbGF0aW9uc2hpcHMpLmNvbmNhdChPYmplY3Qua2V5cyhtb2RlbC5yZWxhdGlvbnNoaXBzQ2FjaGUpKSlcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3JlZmxlY3Rpb25OYW1lfSBoYXNudCBiZWVuIGxvYWRlZCB5ZXQgb24gJHttb2RlbC5tb2RlbENsYXNzRGF0YSgpLm5hbWV9LiBMb2FkZWQgd2FzOiAke3JlbGF0aW9uc2hpcHNMb2FkZWQuam9pbihcIiwgXCIpfWApXG4gICAgfVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtBcnJheTxNb2RlbE9mPE1DPj59ICovXG4gIGxvYWRlZEFycmF5KCkge1xuICAgIGNvbnN0IGxvYWRlZCA9IHRoaXMubG9hZGVkKClcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGxvYWRlZCkpIHtcbiAgICAgIHJldHVybiBsb2FkZWRcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiJ2xvYWRlZCcgd2Fzbid0IGFuIGFycmF5XCIpXG4gICAgfVxuICB9XG5cbiAgLy8gUmVwbGFjZXMgdGhlIHJlbGF0aW9uc2hpcHMgd2l0aCB0aGUgZ2l2ZW4gbmV3IGNvbGxlY3Rpb24uXG4gIHNldChuZXdDb2xsZWN0aW9uKSB7XG4gICAgdGhpcy5hcmdzLm1vZGVsLnJlbGF0aW9uc2hpcHNbdGhpcy5hcmdzLnJlZmxlY3Rpb25OYW1lXSA9IG5ld0NvbGxlY3Rpb25cbiAgfVxuXG4gIC8vIFB1c2hlcyBhbm90aGVyIG1vZGVsIG9udG8gdGhlIGdpdmVuIGNvbGxlY3Rpb24uXG4gIHB1c2gobmV3TW9kZWwpIHtcbiAgICBjb25zdCB7bW9kZWwsIHJlZmxlY3Rpb25OYW1lfSA9IHRoaXMuYXJnc1xuXG4gICAgaWYgKCEocmVmbGVjdGlvbk5hbWUgaW4gbW9kZWwucmVsYXRpb25zaGlwcykpIHtcbiAgICAgIG1vZGVsLnJlbGF0aW9uc2hpcHNbcmVmbGVjdGlvbk5hbWVdID0gW11cbiAgICB9XG5cbiAgICBpZiAoIW1vZGVsLnJlbGF0aW9uc2hpcHNbcmVmbGVjdGlvbk5hbWVdLmluY2x1ZGVzKG5ld01vZGVsKSkge1xuICAgICAgbW9kZWwucmVsYXRpb25zaGlwc1tyZWZsZWN0aW9uTmFtZV0ucHVzaChuZXdNb2RlbClcbiAgICB9XG4gIH1cblxuICAvLyBBcnJheSBzaG9ydGN1dHNcbiAgLyoqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQpOiBib29sZWFufSBjYWxsYmFja1xuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9XG4gICAqL1xuICBmaW5kKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmxvYWRlZEFycmF5KCkuZmluZChjYWxsYmFjaykgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0KTogdm9pZH0gY2FsbGJhY2tcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBmb3JFYWNoKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmxvYWRlZEFycmF5KCkuZm9yRWFjaChjYWxsYmFjaykgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0KTogdm9pZH0gY2FsbGJhY2tcbiAgICogQHJldHVybnMge2FueVtdfVxuICAgKi9cbiAgbWFwKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmxvYWRlZEFycmF5KCkubWFwKGNhbGxiYWNrKSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHByZWxvYWRWYWx1ZVxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHByZWxvYWQocHJlbG9hZFZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtwcmVsb2FkOiBwcmVsb2FkVmFsdWV9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcGFnZShwYWdlKSB7XG4gICAgaWYgKCFwYWdlKSBwYWdlID0gMVxuXG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtwYWdlfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFnZUtleVxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHBhZ2VLZXkocGFnZUtleSkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7cGFnZUtleX0pXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBpc0ZpbHRlcmVkKCkge1xuICAgIGNvbnN0IHtxdWVyeUFyZ3N9ID0gdGhpc1xuXG4gICAgaWYgKFxuICAgICAgcXVlcnlBcmdzLmFjY2Vzc2libGVCeSB8fFxuICAgICAgcXVlcnlBcmdzLmNvdW50IHx8XG4gICAgICBxdWVyeUFyZ3MubGltaXQgfHxcbiAgICAgIHF1ZXJ5QXJncy5wYWdlIHx8XG4gICAgICBxdWVyeUFyZ3MucGFyYW1zIHx8XG4gICAgICBxdWVyeUFyZ3MucGVyIHx8XG4gICAgICBxdWVyeUFyZ3MucmFuc2FjayB8fFxuICAgICAgcXVlcnlBcmdzLnNlYXJjaFxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgYW55Pn1cbiAgICovXG4gIHBhcmFtcygpIHtcbiAgICBsZXQgcGFyYW1zID0ge31cblxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5wYXJhbXMpIHBhcmFtcyA9IGluY29ycG9yYXRlKHBhcmFtcywgdGhpcy5xdWVyeUFyZ3MucGFyYW1zKVxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5hYmlsaXRpZXMpIHBhcmFtcy5hYmlsaXRpZXMgPSB0aGlzLnF1ZXJ5QXJncy5hYmlsaXRpZXNcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MuYWNjZXNzaWJsZUJ5KSBwYXJhbXMuYWNjZXNzaWJsZV9ieSA9IGluZmxlY3Rpb24udW5kZXJzY29yZSh0aGlzLnF1ZXJ5QXJncy5hY2Nlc3NpYmxlQnkpXG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLmNvdW50KSBwYXJhbXMuY291bnQgPSB0aGlzLnF1ZXJ5QXJncy5jb3VudFxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5kaXN0aW5jdCkgcGFyYW1zLmRpc3RpbmN0ID0gdGhpcy5xdWVyeUFyZ3MuZGlzdGluY3RcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MuZ3JvdXBCeSkgcGFyYW1zLmdyb3VwX2J5ID0gdGhpcy5xdWVyeUFyZ3MuZ3JvdXBCeVxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5yYW5zYWNrKSBwYXJhbXMucSA9IHRoaXMucXVlcnlBcmdzLnJhbnNhY2tcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MubGltaXQpIHBhcmFtcy5saW1pdCA9IHRoaXMucXVlcnlBcmdzLmxpbWl0XG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLnByZWxvYWQpIHBhcmFtcy5wcmVsb2FkID0gdGhpcy5xdWVyeUFyZ3MucHJlbG9hZFxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5wYWdlKSBwYXJhbXMucGFnZSA9IHRoaXMucXVlcnlBcmdzLnBhZ2VcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3MucGVyKSBwYXJhbXMucGVyID0gdGhpcy5xdWVyeUFyZ3MucGVyXG4gICAgaWYgKHRoaXMucXVlcnlBcmdzLnNlYXJjaCkgcGFyYW1zLnNlYXJjaCA9IHRoaXMucXVlcnlBcmdzLnNlYXJjaFxuICAgIGlmICh0aGlzLnF1ZXJ5QXJncy5zZWxlY3QpIHBhcmFtcy5zZWxlY3QgPSB0aGlzLnF1ZXJ5QXJncy5zZWxlY3RcbiAgICBpZiAodGhpcy5xdWVyeUFyZ3Muc2VsZWN0Q29sdW1ucykgcGFyYW1zLnNlbGVjdF9jb2x1bW5zID0gdGhpcy5xdWVyeUFyZ3Muc2VsZWN0Q29sdW1uc1xuXG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBwZXJcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBwZXIocGVyKSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtwZXJ9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwZXJLZXlcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBwZXJLZXkocGVyS2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtwZXJLZXl9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgcmFuc2FjayhwYXJhbXMpIHtcbiAgICBpZiAocGFyYW1zKSB0aGlzLl9tZXJnZSh7cmFuc2FjazogcGFyYW1zfSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFJlc3VsdD59XG4gICAqL1xuICBhc3luYyByZXN1bHQoKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9yZXNwb25zZSgpXG4gICAgY29uc3QgbW9kZWxzID0gZGlnZyhyZXNwb25zZSwgXCJjb2xsZWN0aW9uXCIpXG5cbiAgICB0aGlzLl9hZGRRdWVyeVRvTW9kZWxzKG1vZGVscylcblxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBSZXN1bHQoe2NvbGxlY3Rpb246IHRoaXMsIG1vZGVscywgcmVzcG9uc2V9KVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgc2VhcmNoKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMpIHRoaXMuX21lcmdlKHtzZWFyY2g6IHBhcmFtc30pXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoS2V5XG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgc2VhcmNoS2V5KHNlYXJjaEtleSkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7c2VhcmNoS2V5fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gb3JpZ2luYWxTZWxlY3RcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBzZWxlY3Qob3JpZ2luYWxTZWxlY3QpIHtcbiAgICBjb25zdCBuZXdTZWxlY3QgPSB7fVxuXG4gICAgZm9yIChjb25zdCBvcmlnaW5hbE1vZGVsTmFtZSBpbiBvcmlnaW5hbFNlbGVjdCkge1xuICAgICAgY29uc3QgbmV3TW9kZWxOYW1lID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKG9yaWdpbmFsTW9kZWxOYW1lKVxuICAgICAgY29uc3QgbmV3VmFsdWVzID0gW11cbiAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWVzID0gb3JpZ2luYWxTZWxlY3Rbb3JpZ2luYWxNb2RlbE5hbWVdXG5cbiAgICAgIGZvciAoY29uc3Qgb3JpZ2luYWxBdHRyaWJ1dGVOYW1lIG9mIG9yaWdpbmFsVmFsdWVzKSB7XG4gICAgICAgIGNvbnN0IG5ld0F0dHJpYnV0ZU5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUob3JpZ2luYWxBdHRyaWJ1dGVOYW1lKVxuICAgICAgICBuZXdWYWx1ZXMucHVzaChuZXdBdHRyaWJ1dGVOYW1lKVxuICAgICAgfVxuXG4gICAgICBuZXdTZWxlY3RbbmV3TW9kZWxOYW1lXSA9IG5ld1ZhbHVlc1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7c2VsZWN0OiBuZXdTZWxlY3R9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBvcmlnaW5hbFNlbGVjdFxuICAgKiBAcmV0dXJucyB7dGhpc31cbiAgICovXG4gIHNlbGVjdENvbHVtbnMob3JpZ2luYWxTZWxlY3QpIHtcbiAgICBjb25zdCBuZXdTZWxlY3QgPSB7fVxuXG4gICAgZm9yIChjb25zdCBvcmlnaW5hbE1vZGVsTmFtZSBpbiBvcmlnaW5hbFNlbGVjdCkge1xuICAgICAgY29uc3QgbmV3TW9kZWxOYW1lID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKGluZmxlY3Rpb24udW5kZXJzY29yZShvcmlnaW5hbE1vZGVsTmFtZSkpXG4gICAgICBjb25zdCBuZXdWYWx1ZXMgPSBbXVxuICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZXMgPSBvcmlnaW5hbFNlbGVjdFtvcmlnaW5hbE1vZGVsTmFtZV1cblxuICAgICAgZm9yIChjb25zdCBvcmlnaW5hbEF0dHJpYnV0ZU5hbWUgb2Ygb3JpZ2luYWxWYWx1ZXMpIHtcbiAgICAgICAgY29uc3QgbmV3QXR0cmlidXRlTmFtZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShvcmlnaW5hbEF0dHJpYnV0ZU5hbWUpXG4gICAgICAgIG5ld1ZhbHVlcy5wdXNoKG5ld0F0dHJpYnV0ZU5hbWUpXG4gICAgICB9XG5cbiAgICAgIG5ld1NlbGVjdFtuZXdNb2RlbE5hbWVdID0gbmV3VmFsdWVzXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX21lcmdlKHtzZWxlY3RDb2x1bW5zOiBuZXdTZWxlY3R9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzb3J0QnlcbiAgICogQHJldHVybnMge3RoaXN9XG4gICAqL1xuICBzb3J0KHNvcnRCeSkge1xuICAgIHJldHVybiB0aGlzLl9tZXJnZSh7cmFuc2Fjazoge3M6IHNvcnRCeX19KVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PE1vZGVsT2Y8TUM+Pj59XG4gICAqL1xuICBhc3luYyB0b0FycmF5KCkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5fcmVzcG9uc2UoKVxuICAgIGNvbnN0IG1vZGVscyA9IGRpZ2cocmVzcG9uc2UsIFwiY29sbGVjdGlvblwiKVxuXG4gICAgdGhpcy5fYWRkUXVlcnlUb01vZGVscyhtb2RlbHMpXG5cbiAgICByZXR1cm4gbW9kZWxzXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge01DfVxuICAgKi9cbiAgbW9kZWxDbGFzcygpIHtcbiAgICBpZiAoIXRoaXMuYXJncy5tb2RlbENsYXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBtb2RlbCBjbGFzcyBnaXZlbiBpbiBhcmdzXCIpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJncy5tb2RlbENsYXNzXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0FwaU1ha2VyQ29sbGVjdGlvbn1cbiAgICovXG4gIGNsb25lKCkge1xuICAgIGNvbnN0IGNsb25lZFF1ZXJ5QXJncyA9IGNsb25lRGVlcCh0aGlzLnF1ZXJ5QXJncylcblxuICAgIHJldHVybiBuZXcgQXBpTWFrZXJDb2xsZWN0aW9uKHRoaXMuYXJncywgY2xvbmVkUXVlcnlBcmdzKVxuICB9XG5cbiAgLy8gVGhpcyBpcyBuZWVkZWQgd2hlbiByZWxvYWRpbmcgYSB2ZXJzaW9uIG9mIHRoZSBtb2RlbCB3aXRoIHRoZSBzYW1lIHNlbGVjdGVkIGF0dHJpYnV0ZXMgYW5kIHByZWxvYWRzXG4gIF9hZGRRdWVyeVRvTW9kZWxzKG1vZGVscykge1xuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgICBtb2RlbC5jb2xsZWN0aW9uID0gdGhpc1xuICAgIH1cbiAgfVxuXG4gIF9tZXJnZShuZXdRdWVyeUFyZ3MpIHtcbiAgICBpbmNvcnBvcmF0ZSh0aGlzLnF1ZXJ5QXJncywgbmV3UXVlcnlBcmdzKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIF9yZXNwb25zZSgpIHtcbiAgICBpZiAoIXRoaXMuYXJncykgdGhyb3cgbmV3IEVycm9yKFwiTm8gYXJncz9cIilcbiAgICBpZiAoIXRoaXMuYXJncy5tb2RlbENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBtb2RlbENsYXNzIGluIGFyZ3NcIilcbiAgICBpZiAoIXRoaXMuYXJncy5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKSB0aHJvdyBuZXcgRXJyb3IoYE5vIG1vZGVsQ2xhc3NEYXRhIG9uIG1vZGVsQ2xhc3MgJHt0aGlzLmFyZ3MubW9kZWxDbGFzcz8ubmFtZX0gKCR7dHlwZW9mIHRoaXMuYXJncy5tb2RlbENsYXNzfSlgKVxuXG4gICAgY29uc3QgbW9kZWxDbGFzc0RhdGEgPSB0aGlzLmFyZ3MubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpXG5cbiAgICByZXR1cm4gQ29tbWFuZHNQb29sLmFkZENvbW1hbmQoXG4gICAgICB7XG4gICAgICAgIGFyZ3M6IHRoaXMucGFyYW1zKCksXG4gICAgICAgIGNvbW1hbmQ6IGAke21vZGVsQ2xhc3NEYXRhLmNvbGxlY3Rpb25OYW1lfS1pbmRleGAsXG4gICAgICAgIGNvbGxlY3Rpb25OYW1lOiBtb2RlbENsYXNzRGF0YS5jb2xsZWN0aW9uTmFtZSxcbiAgICAgICAgdHlwZTogXCJpbmRleFwiXG4gICAgICB9LFxuICAgICAge31cbiAgICApXG4gIH1cbn1cbiJdfQ==
|
|
@@ -20,7 +20,7 @@ export default class ApiMakerCommandSubmitData {
|
|
|
20
20
|
getJsonData: () => Record<string, object>;
|
|
21
21
|
getRawData(): Record<any, any>;
|
|
22
22
|
rawData: Record<any, any>;
|
|
23
|
-
getFormData():
|
|
23
|
+
getFormData(): FormData;
|
|
24
24
|
/**
|
|
25
25
|
* @param {any} value
|
|
26
26
|
* @param {string} type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-submit-data.d.ts","sourceRoot":"/src/","sources":["command-submit-data.js"],"names":[],"mappings":"AAEA;IACE;;;;OAIG;IACH,kBAHG;QAAmC,MAAM,GAAjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QAC6B,IAAI,EAApD,OAAO,oBAAoB,EAAE,YAAY;KACnD,EAKA;IAHC;iBAJS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;cACnB,OAAO,oBAAoB,EAAE,YAAY;MAGlC;IAChB,mBAAmB;IACnB,2BAAsD;IAGxD,wBAAwB;IACxB,qBADc,MAAM,CACiB;IAErC,wCAAwC;IACxC,mBADc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACH;IAEjC,+BAMC;IAJG,0BAAoD;IAMxD,
|
|
1
|
+
{"version":3,"file":"command-submit-data.d.ts","sourceRoot":"/src/","sources":["command-submit-data.js"],"names":[],"mappings":"AAEA;IACE;;;;OAIG;IACH,kBAHG;QAAmC,MAAM,GAAjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QAC6B,IAAI,EAApD,OAAO,oBAAoB,EAAE,YAAY;KACnD,EAKA;IAHC;iBAJS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;cACnB,OAAO,oBAAoB,EAAE,YAAY;MAGlC;IAChB,mBAAmB;IACnB,2BAAsD;IAGxD,wBAAwB;IACxB,qBADc,MAAM,CACiB;IAErC,wCAAwC;IACxC,mBADc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACH;IAEjC,+BAMC;IAJG,0BAAoD;IAMxD,wBAQC;IAED;;;;OAIG;IACH,sBAJW,GAAG,QACH,MAAM,OAWhB;IAED;;;;OAIG;IACH,mBAJW,GAAG,QACH,MAAM,GACJ,OAAO,CAanB;IAED;;;OAGG;IACH,gBAHW,GAAG,GACD,OAAO,CAQnB;IAED;;;;OAIG;IACH,qBAJW,KAAK,CAAC,GAAG,CAAC,QACV,MAAM,GACJ,KAAK,CAAC,GAAG,CAAC,CAoBtB;IAED;;;;OAIG;IACH,uBAJW,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,QAChB,MAAM,GACJ,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAsB5B;CACF"}
|