@kaspernj/api-maker 1.0.2139 → 1.0.2142
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 +2 -2
- package/build/base-error.d.ts +112 -1
- package/build/base-error.d.ts.map +1 -1
- package/build/base-model.d.ts +328 -0
- package/build/base-model.d.ts.map +1 -0
- package/build/base-model.js +40 -53
- package/build/bootstrap/card.js +2 -2
- package/build/bootstrap/checkboxes.js +3 -3
- package/build/collection.d.ts +671 -5
- package/build/collection.d.ts.map +1 -1
- package/build/config.d.ts +8 -0
- package/build/config.d.ts.map +1 -1
- package/build/config.js +9 -1
- package/build/devise.d.ts.map +1 -1
- package/build/devise.js +18 -23
- package/build/draggable-sort/index.js +5 -1
- package/build/draggable-sort/item.js +7 -1
- package/build/inputs/input.js +3 -3
- package/build/inputs/money.js +5 -5
- package/build/link.js +4 -4
- package/build/model-class-require.d.ts +2 -2
- package/build/model-class-require.d.ts.map +1 -1
- package/build/model-class-require.js +2 -2
- package/build/model-events.d.ts +336 -3
- package/build/model-events.d.ts.map +1 -1
- package/build/model-recipes-model-loader.d.ts +1357 -67
- package/build/model-recipes-model-loader.d.ts.map +1 -1
- package/build/models-response-reader.d.ts +336 -3
- package/build/models-response-reader.d.ts.map +1 -1
- package/build/models.d.ts +1 -1
- package/build/models.d.ts.map +1 -1
- package/build/models.js +2 -1
- package/build/preloaded.d.ts +112 -1
- package/build/preloaded.d.ts.map +1 -1
- package/build/result.d.ts +336 -3
- package/build/result.d.ts.map +1 -1
- package/build/router/switch.d.ts +1 -1
- package/build/router/switch.d.ts.map +1 -1
- package/build/router/switch.js +2 -2
- package/build/routes-native.d.ts.map +1 -1
- package/build/routes-native.js +4 -3
- package/build/services.d.ts +2 -2
- package/build/services.d.ts.map +1 -1
- package/build/services.js +2 -2
- package/build/super-admin/config-reader.js +2 -2
- package/build/super-admin/edit-page/edit-attribute.js +2 -1
- package/build/super-admin/layout/header/index.js +6 -5
- package/build/super-admin/layout/index.js +6 -4
- package/build/super-admin/layout/menu/index.js +2 -2
- package/build/super-admin/models.d.ts.map +1 -1
- package/build/super-admin/models.js +2 -1
- package/build/table/column-content.d.ts +11 -2
- package/build/table/column-content.d.ts.map +1 -1
- package/build/table/column-content.js +10 -1
- package/build/table/components/flat-list.js +2 -2
- package/build/table/filters/filter-form.js +2 -2
- package/build/table/filters/index.js +2 -1
- package/build/table/filters/load-search-modal.js +4 -3
- package/build/table/filters/save-search-modal.js +2 -2
- package/build/table/settings/column-row.js +3 -3
- package/build/table/settings/download-action.js +2 -1
- package/build/table/settings/index.js +2 -2
- package/build/table/table.js +13 -12
- package/build/table/use-sorting.d.ts +2 -2
- package/build/table/use-sorting.d.ts.map +1 -1
- package/build/table/use-sorting.js +2 -2
- package/build/table/worker-plugins-check-all-checkbox.js +4 -4
- package/build/table/worker-plugins-checkbox.js +2 -2
- package/build/use-collection.d.ts +112 -1
- package/build/use-collection.d.ts.map +1 -1
- package/build/use-current-user.d.ts +113 -2
- package/build/use-current-user.d.ts.map +1 -1
- package/build/use-current-user.js +2 -2
- package/build/use-input.d.ts +8 -23
- package/build/use-input.d.ts.map +1 -1
- package/build/use-input.js +6 -12
- package/build/use-model.d.ts +112 -1
- package/build/use-model.d.ts.map +1 -1
- package/build/use-model.js +19 -5
- package/build/use-router.js +2 -2
- package/build/use-updated-event.d.ts +225 -3
- package/build/use-updated-event.d.ts.map +1 -1
- package/build/use-updated-event.js +2 -2
- package/build/utils/checkbox.js +2 -1
- package/build/utils/checkboxes.js +3 -3
- package/build/utils/default-style.d.ts +2 -4
- package/build/utils/default-style.d.ts.map +1 -1
- package/build/utils/default-style.js +4 -3
- package/build/utils/header.d.ts +1 -1
- package/build/utils/header.js +2 -2
- package/build/utils/text.js +2 -2
- package/build/with-api-maker.js +2 -2
- package/build/with-collection.d.ts.map +1 -1
- package/build/with-collection.js +4 -2
- package/package.json +2 -2
package/build/result.d.ts
CHANGED
|
@@ -8,12 +8,234 @@ export default class ApiMakerResult {
|
|
|
8
8
|
*/
|
|
9
9
|
constructor(data: {
|
|
10
10
|
collection: import("./collection.js").default<any>;
|
|
11
|
-
models: Array<
|
|
11
|
+
models: Array<{
|
|
12
|
+
changes: {};
|
|
13
|
+
newRecord: boolean;
|
|
14
|
+
relationshipsCache: {};
|
|
15
|
+
relationships: {};
|
|
16
|
+
abilities: Record<string, any>;
|
|
17
|
+
modelData: {};
|
|
18
|
+
assignAttributes(newAttributes: Record<string, any>): void;
|
|
19
|
+
attributes(): Record<string, any>;
|
|
20
|
+
can(givenAbilityName: string): boolean;
|
|
21
|
+
clone(): /*elided*/ any;
|
|
22
|
+
cacheKey(): number | string;
|
|
23
|
+
localCacheKey(): string;
|
|
24
|
+
fullCacheKey(): string;
|
|
25
|
+
create(attributes?: Record<string, any>, options?: object): Promise<{
|
|
26
|
+
model: /*elided*/ any;
|
|
27
|
+
response: object;
|
|
28
|
+
}>;
|
|
29
|
+
createRaw(rawData: FormData | Record<string, any>, options?: object): Promise<{
|
|
30
|
+
model: /*elided*/ any;
|
|
31
|
+
response: any;
|
|
32
|
+
}>;
|
|
33
|
+
destroy(): Promise<{
|
|
34
|
+
model: /*elided*/ any;
|
|
35
|
+
response: object;
|
|
36
|
+
}>;
|
|
37
|
+
ensureAbilities(listOfAbilities: string[]): Promise<void>;
|
|
38
|
+
getAttributes(): Record<string, any>;
|
|
39
|
+
handleResponseError(response: object): never;
|
|
40
|
+
identifierKey(): number | string;
|
|
41
|
+
_identifierKey: string | number;
|
|
42
|
+
isAssociationLoaded(associationName: string): boolean;
|
|
43
|
+
isAssociationLoadedUnderscore(associationNameUnderscore: string): boolean;
|
|
44
|
+
isAssociationPresent(associationName: string): boolean;
|
|
45
|
+
ensureAssociationLoaded(associationName: string): Promise<any>;
|
|
46
|
+
ensureAssociationLoadedUnderscore(associationNameUnderscore: string): Promise<any>;
|
|
47
|
+
isAttributeChanged(attributeName: string): boolean;
|
|
48
|
+
isChanged(): boolean;
|
|
49
|
+
isNewRecord(): boolean;
|
|
50
|
+
isPersisted(): boolean;
|
|
51
|
+
savedChangeToAttribute(attributeName: string): boolean;
|
|
52
|
+
setNewModel(model: /*elided*/ any): void;
|
|
53
|
+
setNewModelData(model: /*elided*/ any): void;
|
|
54
|
+
previousModelData: any;
|
|
55
|
+
_isDateChanged(oldValue: any, newValue: any): boolean | void;
|
|
56
|
+
_isIntegerChanged(oldValue: any, newValue: any): boolean | void;
|
|
57
|
+
_isStringChanged(oldValue: any, newValue: any): boolean | void;
|
|
58
|
+
modelClassData(): ModelClassDataType;
|
|
59
|
+
reload(): Promise<void>;
|
|
60
|
+
save(): Promise<{
|
|
61
|
+
model: /*elided*/ any;
|
|
62
|
+
response?: object;
|
|
63
|
+
}>;
|
|
64
|
+
saveRaw(rawData: any, options?: {}): Promise<{
|
|
65
|
+
model: /*elided*/ any;
|
|
66
|
+
response: object;
|
|
67
|
+
}>;
|
|
68
|
+
update(newAttributes?: Record<string, any>, options?: ParseValidationErrorsOptions): Promise<{
|
|
69
|
+
model: /*elided*/ any;
|
|
70
|
+
response?: object;
|
|
71
|
+
}>;
|
|
72
|
+
_refreshModelFromResponse(response: object): void;
|
|
73
|
+
_refreshModelDataFromResponse(response: object): void;
|
|
74
|
+
updateRaw(rawData: FormData | Record<string, any>, options?: ParseValidationErrorsOptions & {
|
|
75
|
+
simpleModelErrors?: boolean;
|
|
76
|
+
}): Promise<{
|
|
77
|
+
response: object;
|
|
78
|
+
model: /*elided*/ any;
|
|
79
|
+
}>;
|
|
80
|
+
isValid(): never;
|
|
81
|
+
isValidOnServer(): Promise<{
|
|
82
|
+
valid: boolean;
|
|
83
|
+
errors: Record<string, any>;
|
|
84
|
+
}>;
|
|
85
|
+
modelClass(): Record<string, any>;
|
|
86
|
+
preloadRelationship(relationshipName: string, model: /*elided*/ any | /*elided*/ any[] | null): void;
|
|
87
|
+
markForDestruction(): void;
|
|
88
|
+
_markedForDestruction: boolean;
|
|
89
|
+
markedForDestruction(): boolean;
|
|
90
|
+
uniqueKey(): number;
|
|
91
|
+
uniqueKeyValue: number;
|
|
92
|
+
_callMemberCommand(args: Record<string, any>, commandArgs: Record<string, any>): Promise<object>;
|
|
93
|
+
readAttribute(attributeName: string): any;
|
|
94
|
+
readAttributeUnderscore(attributeName: string): any;
|
|
95
|
+
isAttributeLoaded(attributeName: any): boolean;
|
|
96
|
+
_isPresent(value: any): boolean;
|
|
97
|
+
_loadBelongsToReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any | null>;
|
|
98
|
+
_readBelongsToReflection({ reflectionName }: {
|
|
99
|
+
modelClass: any;
|
|
100
|
+
reflectionName: string;
|
|
101
|
+
}): any | null;
|
|
102
|
+
_loadHasManyReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<Array<any>>;
|
|
103
|
+
_loadHasOneReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any>;
|
|
104
|
+
_readHasOneReflection({ reflectionName }: {
|
|
105
|
+
modelClass: any;
|
|
106
|
+
reflectionName: string;
|
|
107
|
+
}): any | null;
|
|
108
|
+
_readModelDataFromArgs(args?: {
|
|
109
|
+
data?: {
|
|
110
|
+
b?: Record<string, any>;
|
|
111
|
+
a?: Record<string, any>;
|
|
112
|
+
r?: any;
|
|
113
|
+
};
|
|
114
|
+
collection?: import("./collection.js").default<any>;
|
|
115
|
+
}): void;
|
|
116
|
+
collection: import("./collection.js").default<any>;
|
|
117
|
+
preloadedRelationships: any;
|
|
118
|
+
_readPreloadedRelationships(preloaded: {
|
|
119
|
+
getModel: (relationshipType: string, relationshipId: number | string) => /*elided*/ any;
|
|
120
|
+
}): void;
|
|
121
|
+
primaryKey(): number | string;
|
|
122
|
+
}>;
|
|
12
123
|
response: object;
|
|
13
124
|
});
|
|
14
125
|
data: {
|
|
15
126
|
collection: import("./collection.js").default<any>;
|
|
16
|
-
models: Array<
|
|
127
|
+
models: Array<{
|
|
128
|
+
changes: {};
|
|
129
|
+
newRecord: boolean;
|
|
130
|
+
relationshipsCache: {};
|
|
131
|
+
relationships: {};
|
|
132
|
+
abilities: Record<string, any>;
|
|
133
|
+
modelData: {};
|
|
134
|
+
assignAttributes(newAttributes: Record<string, any>): void;
|
|
135
|
+
attributes(): Record<string, any>;
|
|
136
|
+
can(givenAbilityName: string): boolean;
|
|
137
|
+
clone(): /*elided*/ any;
|
|
138
|
+
cacheKey(): number | string;
|
|
139
|
+
localCacheKey(): string;
|
|
140
|
+
fullCacheKey(): string;
|
|
141
|
+
create(attributes?: Record<string, any>, options?: object): Promise<{
|
|
142
|
+
model: /*elided*/ any;
|
|
143
|
+
response: object;
|
|
144
|
+
}>;
|
|
145
|
+
createRaw(rawData: FormData | Record<string, any>, options?: object): Promise<{
|
|
146
|
+
model: /*elided*/ any;
|
|
147
|
+
response: any;
|
|
148
|
+
}>;
|
|
149
|
+
destroy(): Promise<{
|
|
150
|
+
model: /*elided*/ any;
|
|
151
|
+
response: object;
|
|
152
|
+
}>;
|
|
153
|
+
ensureAbilities(listOfAbilities: string[]): Promise<void>;
|
|
154
|
+
getAttributes(): Record<string, any>;
|
|
155
|
+
handleResponseError(response: object): never;
|
|
156
|
+
identifierKey(): number | string;
|
|
157
|
+
_identifierKey: string | number;
|
|
158
|
+
isAssociationLoaded(associationName: string): boolean;
|
|
159
|
+
isAssociationLoadedUnderscore(associationNameUnderscore: string): boolean;
|
|
160
|
+
isAssociationPresent(associationName: string): boolean;
|
|
161
|
+
ensureAssociationLoaded(associationName: string): Promise<any>;
|
|
162
|
+
ensureAssociationLoadedUnderscore(associationNameUnderscore: string): Promise<any>;
|
|
163
|
+
isAttributeChanged(attributeName: string): boolean;
|
|
164
|
+
isChanged(): boolean;
|
|
165
|
+
isNewRecord(): boolean;
|
|
166
|
+
isPersisted(): boolean;
|
|
167
|
+
savedChangeToAttribute(attributeName: string): boolean;
|
|
168
|
+
setNewModel(model: /*elided*/ any): void;
|
|
169
|
+
setNewModelData(model: /*elided*/ any): void;
|
|
170
|
+
previousModelData: any;
|
|
171
|
+
_isDateChanged(oldValue: any, newValue: any): boolean | void;
|
|
172
|
+
_isIntegerChanged(oldValue: any, newValue: any): boolean | void;
|
|
173
|
+
_isStringChanged(oldValue: any, newValue: any): boolean | void;
|
|
174
|
+
modelClassData(): ModelClassDataType;
|
|
175
|
+
reload(): Promise<void>;
|
|
176
|
+
save(): Promise<{
|
|
177
|
+
model: /*elided*/ any;
|
|
178
|
+
response?: object;
|
|
179
|
+
}>;
|
|
180
|
+
saveRaw(rawData: any, options?: {}): Promise<{
|
|
181
|
+
model: /*elided*/ any;
|
|
182
|
+
response: object;
|
|
183
|
+
}>;
|
|
184
|
+
update(newAttributes?: Record<string, any>, options?: ParseValidationErrorsOptions): Promise<{
|
|
185
|
+
model: /*elided*/ any;
|
|
186
|
+
response?: object;
|
|
187
|
+
}>;
|
|
188
|
+
_refreshModelFromResponse(response: object): void;
|
|
189
|
+
_refreshModelDataFromResponse(response: object): void;
|
|
190
|
+
updateRaw(rawData: FormData | Record<string, any>, options?: ParseValidationErrorsOptions & {
|
|
191
|
+
simpleModelErrors?: boolean;
|
|
192
|
+
}): Promise<{
|
|
193
|
+
response: object;
|
|
194
|
+
model: /*elided*/ any;
|
|
195
|
+
}>;
|
|
196
|
+
isValid(): never;
|
|
197
|
+
isValidOnServer(): Promise<{
|
|
198
|
+
valid: boolean;
|
|
199
|
+
errors: Record<string, any>;
|
|
200
|
+
}>;
|
|
201
|
+
modelClass(): Record<string, any>;
|
|
202
|
+
preloadRelationship(relationshipName: string, model: /*elided*/ any | /*elided*/ any[] | null): void;
|
|
203
|
+
markForDestruction(): void;
|
|
204
|
+
_markedForDestruction: boolean;
|
|
205
|
+
markedForDestruction(): boolean;
|
|
206
|
+
uniqueKey(): number;
|
|
207
|
+
uniqueKeyValue: number;
|
|
208
|
+
_callMemberCommand(args: Record<string, any>, commandArgs: Record<string, any>): Promise<object>;
|
|
209
|
+
readAttribute(attributeName: string): any;
|
|
210
|
+
readAttributeUnderscore(attributeName: string): any;
|
|
211
|
+
isAttributeLoaded(attributeName: any): boolean;
|
|
212
|
+
_isPresent(value: any): boolean;
|
|
213
|
+
_loadBelongsToReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any | null>;
|
|
214
|
+
_readBelongsToReflection({ reflectionName }: {
|
|
215
|
+
modelClass: any;
|
|
216
|
+
reflectionName: string;
|
|
217
|
+
}): any | null;
|
|
218
|
+
_loadHasManyReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<Array<any>>;
|
|
219
|
+
_loadHasOneReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any>;
|
|
220
|
+
_readHasOneReflection({ reflectionName }: {
|
|
221
|
+
modelClass: any;
|
|
222
|
+
reflectionName: string;
|
|
223
|
+
}): any | null;
|
|
224
|
+
_readModelDataFromArgs(args?: {
|
|
225
|
+
data?: {
|
|
226
|
+
b?: Record<string, any>;
|
|
227
|
+
a?: Record<string, any>;
|
|
228
|
+
r?: any;
|
|
229
|
+
};
|
|
230
|
+
collection?: import("./collection.js").default<any>;
|
|
231
|
+
}): void;
|
|
232
|
+
collection: import("./collection.js").default<any>;
|
|
233
|
+
preloadedRelationships: any;
|
|
234
|
+
_readPreloadedRelationships(preloaded: {
|
|
235
|
+
getModel: (relationshipType: string, relationshipId: number | string) => /*elided*/ any;
|
|
236
|
+
}): void;
|
|
237
|
+
primaryKey(): number | string;
|
|
238
|
+
}>;
|
|
17
239
|
response: object;
|
|
18
240
|
};
|
|
19
241
|
/** @returns {number} */
|
|
@@ -21,7 +243,118 @@ export default class ApiMakerResult {
|
|
|
21
243
|
/** @returns {number} */
|
|
22
244
|
currentPage(): number;
|
|
23
245
|
/** @returns {Array<import("./base-model.js").default>} */
|
|
24
|
-
models(): Array<
|
|
246
|
+
models(): Array<{
|
|
247
|
+
changes: {};
|
|
248
|
+
newRecord: boolean;
|
|
249
|
+
relationshipsCache: {};
|
|
250
|
+
relationships: {};
|
|
251
|
+
abilities: Record<string, any>;
|
|
252
|
+
modelData: {};
|
|
253
|
+
assignAttributes(newAttributes: Record<string, any>): void;
|
|
254
|
+
attributes(): Record<string, any>;
|
|
255
|
+
can(givenAbilityName: string): boolean;
|
|
256
|
+
clone(): /*elided*/ any;
|
|
257
|
+
cacheKey(): number | string;
|
|
258
|
+
localCacheKey(): string;
|
|
259
|
+
fullCacheKey(): string;
|
|
260
|
+
create(attributes?: Record<string, any>, options?: object): Promise<{
|
|
261
|
+
model: /*elided*/ any;
|
|
262
|
+
response: object;
|
|
263
|
+
}>;
|
|
264
|
+
createRaw(rawData: FormData | Record<string, any>, options?: object): Promise<{
|
|
265
|
+
model: /*elided*/ any;
|
|
266
|
+
response: any;
|
|
267
|
+
}>;
|
|
268
|
+
destroy(): Promise<{
|
|
269
|
+
model: /*elided*/ any;
|
|
270
|
+
response: object;
|
|
271
|
+
}>;
|
|
272
|
+
ensureAbilities(listOfAbilities: string[]): Promise<void>;
|
|
273
|
+
getAttributes(): Record<string, any>;
|
|
274
|
+
handleResponseError(response: object): never;
|
|
275
|
+
identifierKey(): number | string;
|
|
276
|
+
_identifierKey: string | number;
|
|
277
|
+
isAssociationLoaded(associationName: string): boolean;
|
|
278
|
+
isAssociationLoadedUnderscore(associationNameUnderscore: string): boolean;
|
|
279
|
+
isAssociationPresent(associationName: string): boolean;
|
|
280
|
+
ensureAssociationLoaded(associationName: string): Promise<any>;
|
|
281
|
+
ensureAssociationLoadedUnderscore(associationNameUnderscore: string): Promise<any>;
|
|
282
|
+
isAttributeChanged(attributeName: string): boolean;
|
|
283
|
+
isChanged(): boolean;
|
|
284
|
+
isNewRecord(): boolean;
|
|
285
|
+
isPersisted(): boolean;
|
|
286
|
+
savedChangeToAttribute(attributeName: string): boolean;
|
|
287
|
+
setNewModel(model: /*elided*/ any): void;
|
|
288
|
+
setNewModelData(model: /*elided*/ any): void;
|
|
289
|
+
previousModelData: any;
|
|
290
|
+
_isDateChanged(oldValue: any, newValue: any): boolean | void;
|
|
291
|
+
_isIntegerChanged(oldValue: any, newValue: any): boolean | void;
|
|
292
|
+
_isStringChanged(oldValue: any, newValue: any): boolean | void;
|
|
293
|
+
modelClassData(): ModelClassDataType;
|
|
294
|
+
reload(): Promise<void>;
|
|
295
|
+
save(): Promise<{
|
|
296
|
+
model: /*elided*/ any;
|
|
297
|
+
response?: object;
|
|
298
|
+
}>;
|
|
299
|
+
saveRaw(rawData: any, options?: {}): Promise<{
|
|
300
|
+
model: /*elided*/ any;
|
|
301
|
+
response: object;
|
|
302
|
+
}>;
|
|
303
|
+
update(newAttributes?: Record<string, any>, options?: ParseValidationErrorsOptions): Promise<{
|
|
304
|
+
model: /*elided*/ any;
|
|
305
|
+
response?: object;
|
|
306
|
+
}>;
|
|
307
|
+
_refreshModelFromResponse(response: object): void;
|
|
308
|
+
_refreshModelDataFromResponse(response: object): void;
|
|
309
|
+
updateRaw(rawData: FormData | Record<string, any>, options?: ParseValidationErrorsOptions & {
|
|
310
|
+
simpleModelErrors?: boolean;
|
|
311
|
+
}): Promise<{
|
|
312
|
+
response: object;
|
|
313
|
+
model: /*elided*/ any;
|
|
314
|
+
}>;
|
|
315
|
+
isValid(): never;
|
|
316
|
+
isValidOnServer(): Promise<{
|
|
317
|
+
valid: boolean;
|
|
318
|
+
errors: Record<string, any>;
|
|
319
|
+
}>;
|
|
320
|
+
modelClass(): Record<string, any>;
|
|
321
|
+
preloadRelationship(relationshipName: string, model: /*elided*/ any | /*elided*/ any[] | null): void;
|
|
322
|
+
markForDestruction(): void;
|
|
323
|
+
_markedForDestruction: boolean;
|
|
324
|
+
markedForDestruction(): boolean;
|
|
325
|
+
uniqueKey(): number;
|
|
326
|
+
uniqueKeyValue: number;
|
|
327
|
+
_callMemberCommand(args: Record<string, any>, commandArgs: Record<string, any>): Promise<object>;
|
|
328
|
+
readAttribute(attributeName: string): any;
|
|
329
|
+
readAttributeUnderscore(attributeName: string): any;
|
|
330
|
+
isAttributeLoaded(attributeName: any): boolean;
|
|
331
|
+
_isPresent(value: any): boolean;
|
|
332
|
+
_loadBelongsToReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any | null>;
|
|
333
|
+
_readBelongsToReflection({ reflectionName }: {
|
|
334
|
+
modelClass: any;
|
|
335
|
+
reflectionName: string;
|
|
336
|
+
}): any | null;
|
|
337
|
+
_loadHasManyReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<Array<any>>;
|
|
338
|
+
_loadHasOneReflection(args: import("./collection.js").CollectionArgsType<any>, queryArgs?: import("./collection.js").QueryArgsType): Promise<any>;
|
|
339
|
+
_readHasOneReflection({ reflectionName }: {
|
|
340
|
+
modelClass: any;
|
|
341
|
+
reflectionName: string;
|
|
342
|
+
}): any | null;
|
|
343
|
+
_readModelDataFromArgs(args?: {
|
|
344
|
+
data?: {
|
|
345
|
+
b?: Record<string, any>;
|
|
346
|
+
a?: Record<string, any>;
|
|
347
|
+
r?: any;
|
|
348
|
+
};
|
|
349
|
+
collection?: import("./collection.js").default<any>;
|
|
350
|
+
}): void;
|
|
351
|
+
collection: import("./collection.js").default<any>;
|
|
352
|
+
preloadedRelationships: any;
|
|
353
|
+
_readPreloadedRelationships(preloaded: {
|
|
354
|
+
getModel: (relationshipType: string, relationshipId: number | string) => /*elided*/ any;
|
|
355
|
+
}): void;
|
|
356
|
+
primaryKey(): number | string;
|
|
357
|
+
}>;
|
|
25
358
|
/** @returns {typeof import("./base-model.js").default} */
|
|
26
359
|
modelClass(): typeof import("./base-model.js").default;
|
|
27
360
|
/** @returns {number} */
|
package/build/result.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"/src/","sources":["result.js"],"names":[],"mappings":"AAAA,sBAAsB;AACtB;IACE;;;;;OAKG;IACH,kBAJG;QAAgD,UAAU,EAAlD,sCAAiC;QACc,MAAM,EAArD,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"/src/","sources":["result.js"],"names":[],"mappings":"AAAA,sBAAsB;AACtB;IACE;;;;;OAKG;IACH,kBAJG;QAAgD,UAAU,EAAlD,sCAAiC;QACc,MAAM,EAArD,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4BqxsB,CAAC;;;;;;;;wBAA2iB,CAAC;;;;;iCAAypE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA5B37xB,CAAC;QAC3B,QAAQ,EAArB,MAAM;KAChB,EAGA;IADC;;gBAJS,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4BqxsB,CAAC;;;;;;;;wBAA2iB,CAAC;;;;;iCAAypE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA5B37xB,CAAC;kBACxC,MAAM;MAGC;IAGlB,wBAAwB;IACxB,SADc,MAAM,CAC4B;IAEhD,wBAAwB;IACxB,eADc,MAAM,CACwC;IAE5D,0DAA0D;IAC1D,UADc,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAekxsB,CAAC;;;;;;;;oBAA2iB,CAAC;;;;;6BAAypE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAfx7xB,CAAC,CAClB;IAEpC,0DAA0D;IAC1D,cADc,cAAc,iBAAiB,EAAE,OAAO,CACG;IAEzD,wBAAwB;IACxB,WADc,MAAM,CACgC;IAEpD,wBAAwB;IACxB,cADc,MAAM,CACsC;IAE1D,wBAAwB;IACxB,cADc,MAAM,CACsC;CAC3D"}
|
package/build/router/switch.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.ts","sourceRoot":"/src/","sources":["router/switch.jsx"],"names":[],"mappings":";AAQA,
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"/src/","sources":["router/switch.jsx"],"names":[],"mappings":";AAQA,sDAAmE;AAEnE,0BA+DG;kBAxEgC,OAAO"}
|
package/build/router/switch.js
CHANGED
|
@@ -6,7 +6,7 @@ import BaseComponent from "../base-component";
|
|
|
6
6
|
import PropTypes from "prop-types";
|
|
7
7
|
import memo from "set-state-compare/build/memo.js";
|
|
8
8
|
import propTypesExact from "prop-types-exact";
|
|
9
|
-
const CurrentSwitchContext = createContext(
|
|
9
|
+
const CurrentSwitchContext = createContext(/** @type {any} */ ({}));
|
|
10
10
|
const Switch = memo(shapeComponent(class Switch extends BaseComponent {
|
|
11
11
|
static defaultProps = {
|
|
12
12
|
name: "[no name]",
|
|
@@ -58,4 +58,4 @@ const Switch = memo(shapeComponent(class Switch extends BaseComponent {
|
|
|
58
58
|
}));
|
|
59
59
|
export { CurrentSwitchContext };
|
|
60
60
|
export default Switch;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJyb3V0ZXIvc3dpdGNoLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUNBQWlDO0FBQ2pDLE9BQU8sS0FBSyxFQUFFLEVBQUMsYUFBYSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQzFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN6RSxPQUFPLGFBQWEsTUFBTSxtQkFBbUIsQ0FBQTtBQUM3QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDbEQsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUE7QUFFN0MsTUFBTSxvQkFBb0IsR0FBRyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRW5FLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxNQUFPLFNBQVEsYUFBYTtJQUNuRSxNQUFNLENBQUMsWUFBWSxHQUFHO1FBQ3BCLElBQUksRUFBRSxXQUFXO1FBQ2pCLE1BQU0sRUFBRSxJQUFJO0tBQ2IsQ0FBQTtJQUVELE1BQU0sQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRztRQUN2QixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDdEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJO0tBQ3ZCLENBQUMsQ0FBQTtJQUVGLGdCQUFnQixHQUFHLEVBQUUsQ0FBQTtJQUVyQixLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRTtZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUV4QyxPQUFPLENBQ0wsS0FBQyxvQkFBb0IsQ0FBQyxRQUFRLElBQUMsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFDLFlBQy9FLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUNVLENBQ2pDLENBQUE7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLFlBQVk7UUFDcEIsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDbkQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBRS9DLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sV0FBVyxDQUFBO1lBQ3BCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTztRQUMxQixNQUFNLEVBQUMsZ0JBQWdCLEVBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO1FBQ2xDLE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRTdCLElBQUksQ0FBQyxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQzdDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU87WUFBRSxPQUFNO1FBRXpDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0IsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBQyxDQUFBO1FBRWhELGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUE7UUFFL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNaLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDaEQsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO1lBQzFDLFlBQVksRUFBRSxlQUFlO1NBQzlCLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQTtBQUVILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxDQUFBO0FBQzdCLGVBQWUsTUFBTSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgUmVhY3QsIHtjcmVhdGVDb250ZXh0fSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuXG5jb25zdCBDdXJyZW50U3dpdGNoQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoLyoqIEB0eXBlIHthbnl9ICovICh7fSkpXG5cbmNvbnN0IFN3aXRjaCA9IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgU3dpdGNoIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbmFtZTogXCJbbm8gbmFtZV1cIixcbiAgICBzaW5nbGU6IHRydWVcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzaW5nbGU6IFByb3BUeXBlcy5ib29sXG4gIH0pXG5cbiAgcGF0aHNNYXRjaGVkS2V5cyA9IFtdXG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy51c2VTdGF0ZXMoe1xuICAgICAgbGFzdFVwZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgIHBhdGhTaG93bjogdW5kZWZpbmVkLFxuICAgICAgcGF0aHNNYXRjaGVkOiB7fVxuICAgIH0pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3BhdGhTaG93biwgcGF0aHNNYXRjaGVkfSA9IHRoaXMuc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDdXJyZW50U3dpdGNoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17e3BhdGhTaG93biwgcGF0aHNNYXRjaGVkLCBzd2l0Y2hHcm91cDogdGhpc319PlxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvQ3VycmVudFN3aXRjaENvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuICB9XG5cbiAgcGF0aFNob3duKHBhdGhzTWF0Y2hlZCkge1xuICAgIGZvciAoY29uc3QgcGF0aE1hdGNoZWQgb2YgdGhpcy50dC5wYXRoc01hdGNoZWRLZXlzKSB7XG4gICAgICBjb25zdCBpc1BhdGhNYXRjaGVkID0gcGF0aHNNYXRjaGVkW3BhdGhNYXRjaGVkXVxuXG4gICAgICBpZiAoaXNQYXRoTWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4gcGF0aE1hdGNoZWRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRQYXRoTWF0Y2hlZChwYXRoLCBtYXRjaGVkKSB7XG4gICAgY29uc3Qge3BhdGhzTWF0Y2hlZEtleXN9ID0gdGhpcy50dFxuICAgIGNvbnN0IHtwYXRoc01hdGNoZWR9ID0gdGhpcy5zXG5cbiAgICBpZiAoIXBhdGgpIHRocm93IG5ldyBFcnJvcihcIk5vICdwYXRoJyBnaXZlblwiKVxuICAgIGlmIChwYXRoc01hdGNoZWRbcGF0aF0gPT0gbWF0Y2hlZCkgcmV0dXJuXG5cbiAgICBpZiAoIXBhdGhzTWF0Y2hlZEtleXMuaW5jbHVkZXMocGF0aCkpIHtcbiAgICAgIHBhdGhzTWF0Y2hlZEtleXMucHVzaChwYXRoKVxuICAgIH1cblxuICAgIGNvbnN0IG5ld1BhdGhzTWF0Y2hlZCA9IHsuLi50aGlzLnMucGF0aHNNYXRjaGVkfVxuXG4gICAgbmV3UGF0aHNNYXRjaGVkW3BhdGhdID0gbWF0Y2hlZFxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBsYXN0VXBkYXRlOiBNYXRoLnJhbmRvbSgpICsgbmV3IERhdGUoKS5nZXRUaW1lKCksXG4gICAgICBwYXRoU2hvd246IHRoaXMucGF0aFNob3duKG5ld1BhdGhzTWF0Y2hlZCksXG4gICAgICBwYXRoc01hdGNoZWQ6IG5ld1BhdGhzTWF0Y2hlZFxuICAgIH0pXG4gIH1cbn0pKVxuXG5leHBvcnQge0N1cnJlbnRTd2l0Y2hDb250ZXh0fVxuZXhwb3J0IGRlZmF1bHQgU3dpdGNoXG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-native.d.ts","sourceRoot":"/src/","sources":["routes-native.js"],"names":[],"mappings":"AAKA,+FAA+F;AAC/F,gJAAgJ;AAChJ,iHAAiH;AACjH,kIAAkI;AAElI;;GAEG;AACH;IACE,iDAAiD;IACjD,2BADY;QAAC,SAAS,EAAE,MAAM,MAAM,CAAA;KAAC,EAKpC;IAHC,iBAF4B,MAAM,CAER;IAC1B,wBAA0B;IAC1B,0BAA+B;IAGjC;;;;OAIG;IACH,uCAJW,MAAM,wBACN;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,YAAC,GACpB,IAAI,
|
|
1
|
+
{"version":3,"file":"routes-native.d.ts","sourceRoot":"/src/","sources":["routes-native.js"],"names":[],"mappings":"AAKA,+FAA+F;AAC/F,gJAAgJ;AAChJ,iHAAiH;AACjH,kIAAkI;AAElI;;GAEG;AACH;IACE,iDAAiD;IACjD,2BADY;QAAC,SAAS,EAAE,MAAM,MAAM,CAAA;KAAC,EAKpC;IAHC,iBAF4B,MAAM,CAER;IAC1B,wBAA0B;IAC1B,0BAA+B;IAGjC;;;;OAIG;IACH,uCAJW,MAAM,wBACN;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,YAAC,GACpB,IAAI,CAyDhB;IAED;;;OAGG;IACH,4BAHW,MAAM,GACJ,IAAI,CAiBhB;IAdC,UAAgB;IAgBlB;;;OAGG;IACH,0DAHW,kBAAkB,GAChB,MAAM,CAgElB;IAED;;;OAGG;IACH,0DAHW,aAAa,GACX,MAAM,CA8BlB;CACF;uBAxMa;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC;iCACpE;IAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAC;4BAC3G;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAC;2BACjF;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC"}
|
package/build/routes-native.js
CHANGED
|
@@ -28,10 +28,11 @@ export default class ApiMakerRoutesNative {
|
|
|
28
28
|
const pathMethodName = `${inflection.camelize(name, true)}Path`;
|
|
29
29
|
const urlMethodName = `${inflection.camelize(name, true)}Url`;
|
|
30
30
|
if (routeDefinitionArgs && routeDefinitionArgs.localized) {
|
|
31
|
-
const localizedRoutes = /** @type {Record<string, PathPart[]>} */ {};
|
|
31
|
+
const localizedRoutes = /** @type {Record<string, PathPart[]>} */ ({});
|
|
32
32
|
for (const locale in this.routeTranslationParts) {
|
|
33
33
|
let variableCount = 0;
|
|
34
|
-
|
|
34
|
+
/** @type {PathPart[]} */
|
|
35
|
+
const localizedPathParts = [
|
|
35
36
|
{ type: "pathPart", name: "" },
|
|
36
37
|
{ type: "pathPart", name: locale }
|
|
37
38
|
];
|
|
@@ -179,4 +180,4 @@ export default class ApiMakerRoutesNative {
|
|
|
179
180
|
return fullUrl;
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLW5hdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsicm91dGVzLW5hdGl2ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDekMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ25CLE9BQU8sU0FBUyxNQUFNLGlCQUFpQixDQUFBO0FBRXZDLCtGQUErRjtBQUMvRixnSkFBZ0o7QUFDaEosaUhBQWlIO0FBQ2pILGtJQUFrSTtBQUVsSTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0JBQW9CO0lBQ3ZDLGlEQUFpRDtJQUNqRCxZQUFhLEVBQUMsU0FBUyxFQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFFLGdCQUFnQixFQUFFLG1CQUFtQjtRQUN6RCxLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQy9ELE1BQU0sRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDMUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNwQyxNQUFNLGNBQWMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUE7WUFDL0QsTUFBTSxhQUFhLEdBQUcsR0FBRyxVQUFVLENB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SSxHQUFHLENBQUE7UUFFaEUsSUFBSSxTQUFTLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7WUFDakUsT0FBTyxJQUFJLElBQUksU0FBUyxFQUFFLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8sSUFBSSxlQUFlLENBQUE7UUFFMUIsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQge2RpZywgZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgcXMgZnJvbSBcInFzXCJcbmltcG9ydCB1cmxFbmNvZGUgZnJvbSBcIi4vdXJsLWVuY29kZS5qc1wiXG5cbi8qKiBAdHlwZWRlZiB7e3R5cGU6IFwicGF0aFBhcnRcIiwgbmFtZTogc3RyaW5nfSB8IHt0eXBlOiBcInZhcmlhYmxlXCIsIGNvdW50OiBudW1iZXJ9fSBQYXRoUGFydCAqL1xuLyoqIEB0eXBlZGVmIHt7YXJnczogQXJyYXk8dW5rbm93bj4sIGxvY2FsaXplZFJvdXRlcz86IFJlY29yZDxzdHJpbmcsIFBhdGhQYXJ0W10+LCBwYXRoUGFydHM/OiBQYXRoUGFydFtdLCB1cmw/OiBib29sZWFufX0gVHJhbnNsYXRlUm91dGVBcmdzICovXG4vKiogQHR5cGVkZWYge3tob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyfHN0cmluZywgcHJvdG9jb2w/OiBzdHJpbmcsIHRyYW5zbGF0ZWRSb3V0ZTogc3RyaW5nfX0gSG9zdFJvdXRlQXJncyAqL1xuLyoqIEB0eXBlZGVmIHt7bG9jYWxlPzogc3RyaW5nLCBob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyfHN0cmluZywgcHJvdG9jb2w/OiBzdHJpbmd9ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj59IFJvdXRlT3B0aW9ucyAqL1xuXG4vKipcbiAqIEJ1aWxkcyBwYXRocyBhbmQgVVJMcyBmcm9tIHJvdXRlIGRlZmluaXRpb25zIGZvciBuYXRpdmUgdXNhZ2UuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyUm91dGVzTmF0aXZlIHtcbiAgLyoqIEBwYXJhbSB7e2dldExvY2FsZTogKCkgPT4gc3RyaW5nfX0gb3B0aW9ucyAqL1xuICBjb25zdHJ1Y3RvciAoe2dldExvY2FsZX0pIHtcbiAgICB0aGlzLmdldExvY2FsZSA9IGdldExvY2FsZVxuICAgIHRoaXMucm91dGVEZWZpbml0aW9ucyA9IFtdXG4gICAgdGhpcy5yb3V0ZVRyYW5zbGF0aW9uUGFydHMgPSB7fVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByb3V0ZURlZmluaXRpb25zXG4gICAqIEBwYXJhbSB7e2xvY2FsaXplZD86IGJvb2xlYW59PX0gcm91dGVEZWZpbml0aW9uQXJnc1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGxvYWRSb3V0ZURlZmluaXRpb25zIChyb3V0ZURlZmluaXRpb25zLCByb3V0ZURlZmluaXRpb25BcmdzKSB7XG4gICAgZm9yIChjb25zdCByb3V0ZURlZmluaXRpb24gb2YgZGlnZyhyb3V0ZURlZmluaXRpb25zLCBcInJvdXRlc1wiKSkge1xuICAgICAgY29uc3Qge25hbWUsIHBhdGh9ID0gZGlncyhyb3V0ZURlZmluaXRpb24sIFwibmFtZVwiLCBcInBhdGhcIilcbiAgICAgIGNvbnN0IHJhd1BhdGhQYXJ0cyA9IHBhdGguc3BsaXQoXCIvXCIpXG4gICAgICBjb25zdCBwYXRoTWV0aG9kTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUobmFtZSwgdHJ1ZSl9UGF0aGBcbiAgICAgIGNvbnN0IHVybE1ldGhvZE5hbWUgPSBgJHtpbmZsZWN0aW9uLmNhbWVsaXplKG5hbWUsIHRydWUpfVVybGBcblxuICAgICAgaWYgKHJvdXRlRGVmaW5pdGlvbkFyZ3MgJiYgcm91dGVEZWZpbml0aW9uQXJncy5sb2NhbGl6ZWQpIHtcbiAgICAgICAgY29uc3QgbG9jYWxpemVkUm91dGVzID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBQYXRoUGFydFtdPn0gKi8ge31cblxuICAgICAgICBmb3IgKGNvbnN0IGxvY2FsZSBpbiB0aGlzLnJvdXRlVHJhbnNsYXRpb25QYXJ0cykge1xuICAgICAgICAgIGxldCB2YXJpYWJsZUNvdW50ID0gMFxuXG4gICAgICAgICAgY29uc3QgbG9jYWxpemVkUGF0aFBhcnRzID0gLyoqIEB0eXBlIHtQYXRoUGFydFtdfSAqLyBbXG4gICAgICAgICAgICB7dHlwZTogXCJwYXRoUGFydFwiLCBuYW1lOiBcIlwifSxcbiAgICAgICAgICAgIHt0eXBlOiBcInBhdGhQYXJ0XCIsIG5hbWU6IGxvY2FsZX1cbiAgICAgICAgICBdXG5cbiAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJhd1BhdGhQYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgcGF0aFBhcnQgPSByYXdQYXRoUGFydHNbaV1cbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTWF0Y2ggPSBwYXRoUGFydC5tYXRjaCgvXjooW0Etel9dKykkLylcblxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1kZXB0aFxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlTWF0Y2gpIHtcbiAgICAgICAgICAgICAgbG9jYWxpemVkUGF0aFBhcnRzLnB1c2goe3R5cGU6IFwidmFyaWFibGVcIiwgY291bnQ6IHZhcmlhYmxlQ291bnQrK30pXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhdGhQYXJ0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmkxOG4udChgcm91dGVzLiR7cGF0aFBhcnR9YCwgbnVsbCwge2RlZmF1bHQ6IHBhdGhQYXJ0LCBsb2NhbGV9KVxuXG4gICAgICAgICAgICAgIGxvY2FsaXplZFBhdGhQYXJ0cy5wdXNoKHt0eXBlOiBcInBhdGhQYXJ0XCIsIG5hbWV9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvY2FsaXplZFJvdXRlc1tsb2NhbGVdID0gbG9jYWxpemVkUGF0aFBhcnRzXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzW3BhdGhNZXRob2ROYW1lXSA9ICguLi5hcmdzKSA9PiB0aGlzLnRyYW5zbGF0ZVJvdXRlKHthcmdzLCBsb2NhbGl6ZWRSb3V0ZXN9KVxuICAgICAgICB0aGlzW3VybE1ldGhvZE5hbWVdID0gKC4uLmFyZ3MpID0+IHRoaXMudHJhbnNsYXRlUm91dGUoe2FyZ3MsIGxvY2FsaXplZFJvdXRlcywgdXJsOiB0cnVlfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCB2YXJpYWJsZUNvdW50ID0gMFxuXG4gICAgICAgIGNvbnN0IHBhdGhQYXJ0cyA9IC8qKiBAdHlwZSB7UGF0aFBhcnRbXX0gKi8gcmF3UGF0aFBhcnRzLm1hcCgocGF0aFBhcnQpID0+IHtcbiAgICAgICAgICBjb25zdCB2YXJpYWJsZU1hdGNoID0gcGF0aFBhcnQubWF0Y2goL146KFtBLXpfXSspJC8pXG5cbiAgICAgICAgICBpZiAodmFyaWFibGVNYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcInZhcmlhYmxlXCIsIGNvdW50OiB2YXJpYWJsZUNvdW50Kyt9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJwYXRoUGFydFwiLCBuYW1lOiBwYXRoUGFydH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgdGhpc1twYXRoTWV0aG9kTmFtZV0gPSAoLi4uYXJncykgPT4gdGhpcy50cmFuc2xhdGVSb3V0ZSh7YXJncywgcGF0aFBhcnRzfSlcbiAgICAgICAgdGhpc1t1cmxNZXRob2ROYW1lXSA9ICguLi5hcmdzKSA9PiB0aGlzLnRyYW5zbGF0ZVJvdXRlKHthcmdzLCBwYXRoUGFydHMsIHVybDogdHJ1ZX0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpMThuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgbG9hZFJvdXRlVHJhbnNsYXRpb25zIChpMThuKSB7XG4gICAgdGhpcy5pMThuID0gaTE4blxuICAgIGNvbnN0IGxvY2FsZXMgPSBkaWdnKGkxOG4sIFwibG9jYWxlc1wiKVxuXG4gICAgZm9yIChjb25zdCBsb2NhbGUgaW4gbG9jYWxlcykge1xuICAgICAgY29uc3Qgcm91dGVUcmFuc2xhdGlvbnMgPSBkaWcobG9jYWxlcywgbG9jYWxlLCBcInJvdXRlc1wiKVxuXG4gICAgICBpZiAocm91dGVUcmFuc2xhdGlvbnMpIHtcbiAgICAgICAgaWYgKCEobG9jYWxlIGluIHRoaXMucm91dGVUcmFuc2xhdGlvblBhcnRzKSkgdGhpcy5yb3V0ZVRyYW5zbGF0aW9uUGFydHNbbG9jYWxlXSA9IHt9XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcm91dGVUcmFuc2xhdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlVHJhbnNsYXRpb25QYXJ0c1tsb2NhbGVdW2tleV0gPSByb3V0ZVRyYW5zbGF0aW9uc1trZXldXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtUcmFuc2xhdGVSb3V0ZUFyZ3N9IG9wdGlvbnNcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIHRyYW5zbGF0ZVJvdXRlICh7YXJncywgbG9jYWxpemVkUm91dGVzLCBwYXRoUGFydHMsIHVybH0pIHtcbiAgICBsZXQgb3B0aW9ucyA9IC8qKiBAdHlwZSB7Um91dGVPcHRpb25zfSAqLyB7fVxuXG4gICAgLy8gRXh0cmFjdCBvcHRpb25zIGZyb20gYXJncyBpZiBhbnlcbiAgICBjb25zdCBsYXN0QXJnID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdXG5cbiAgICBpZiAobGFzdEFyZyAmJiB0eXBlb2YgbGFzdEFyZyA9PSBcIm9iamVjdFwiKSB7XG4gICAgICBvcHRpb25zID0gLyoqIEB0eXBlIHtSb3V0ZU9wdGlvbnN9ICovIGFyZ3MucG9wKClcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHt9XG4gICAgfVxuXG4gICAgLy8gVGFrZSBsb2NhbGUgZnJvbSBvcHRpb25zIGlmIGdpdmVuIG9yIGZhbGwgYmFjayB0byBmYWxsYmFja1xuICAgIGNvbnN0IHtsb2NhbGUsIGhvc3QsIHBvcnQsIHByb3RvY29sLCAuLi5yZXN0T3B0aW9uc30gPSBvcHRpb25zXG5cbiAgICBpZiAobG9jYWxpemVkUm91dGVzKSB7XG4gICAgICAvLyBQdXQgdG9nZXRoZXIgcm91dGUgd2l0aCB2YXJpYWJsZXMgYW5kIHN0YXRpYyB0cmFuc2xhdGVkIHBhcnRzICh3aGljaCB3ZXJlIHRyYW5zbGF0ZWQgYW5kIGNhY2hlZCBwcmV2aW91c2x5KVxuICAgICAgY29uc3QgdHJhbnNsYXRlZFBhdGhQYXJ0cyA9IC8qKiBAdHlwZSB7UGF0aFBhcnRbXX0gKi8gZGlnZyhsb2NhbGl6ZWRSb3V0ZXMsIGxvY2FsZSB8fCB0aGlzLmdldExvY2FsZSgpKVxuICAgICAgbGV0IHRyYW5zbGF0ZWRSb3V0ZSA9IHRyYW5zbGF0ZWRQYXRoUGFydHNcbiAgICAgICAgLm1hcCgocGF0aFBhcnQpID0+IHtcbiAgICAgICAgICBpZiAocGF0aFBhcnQudHlwZSA9PSBcInBhdGhQYXJ0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRoUGFydC5uYW1lXG4gICAgICAgICAgfSBlbHNlIGlmIChwYXRoUGFydC50eXBlID09IFwidmFyaWFibGVcIikge1xuICAgICAgICAgICAgLy8gQXJncyBtaWdodCBub3QgY29udGFpbiB0aGUgcmlnaHQgYW1vdW50IG9mIHZhcmlhYmxlcywgc28gZG9udCBjaGFuZ2UgdGhpcyB0byAnZGlnZydcbiAgICAgICAgICAgIHJldHVybiBkaWcoYXJncywgZGlnZyhwYXRoUGFydCwgXCJjb3VudFwiKSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5oYW5kbGVkIHBhdGggcGFydCB0eXBlXCIpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuam9pbihcIi9cIilcblxuICAgICAgaWYgKHJlc3RPcHRpb25zICYmIE9iamVjdC5rZXlzKHJlc3RPcHRpb25zKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRyYW5zbGF0ZWRSb3V0ZSArPSBgPyR7cXMuc3RyaW5naWZ5KHJlc3RPcHRpb25zLCB7ZW5jb2RlcjogdXJsRW5jb2RlfSl9YFxuICAgICAgfVxuXG4gICAgICBpZiAodXJsKSByZXR1cm4gdGhpcy5hZGRIb3N0VG9Sb3V0ZSh7aG9zdCwgcG9ydCwgcHJvdG9jb2wsIHRyYW5zbGF0ZWRSb3V0ZX0pXG5cbiAgICAgIHJldHVybiB0cmFuc2xhdGVkUm91dGVcbiAgICB9IGVsc2UgaWYgKHBhdGhQYXJ0cykge1xuICAgICAgLy8gUHV0IHRvZ2V0aGVyIHJvdXRlIHdpdGggdmFyaWFibGVzIGFuZCBzdGF0aWMgdHJhbnNsYXRlZCBwYXJ0cyAod2hpY2ggd2VyZSB0cmFuc2xhdGVkIGFuZCBjYWNoZWQgcHJldmlvdXNseSlcbiAgICAgIGxldCB0cmFuc2xhdGVkUm91dGUgPSBwYXRoUGFydHNcbiAgICAgICAgLm1hcCgocGF0aFBhcnQpID0+IHtcbiAgICAgICAgICBpZiAocGF0aFBhcnQudHlwZSA9PSBcInBhdGhQYXJ0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRoUGFydC5uYW1lXG4gICAgICAgICAgfSBlbHNlIGlmIChwYXRoUGFydC50eXBlID09IFwidmFyaWFibGVcIikge1xuICAgICAgICAgICAgcmV0dXJuIGRpZ2coYXJncywgZGlnZyhwYXRoUGFydCwgXCJjb3VudFwiKSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5oYW5kbGVkIHBhdGggcGFydCB0eXBlXCIpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuam9pbihcIi9cIilcblxuICAgICAgaWYgKHJlc3RPcHRpb25zICYmIE9iamVjdC5rZXlzKHJlc3RPcHRpb25zKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRyYW5zbGF0ZWRSb3V0ZSArPSBgPyR7cXMuc3RyaW5naWZ5KHJlc3RPcHRpb25zLCB7ZW5jb2RlcjogdXJsRW5jb2RlfSl9YFxuICAgICAgfVxuXG4gICAgICBpZiAodXJsKSByZXR1cm4gdGhpcy5hZGRIb3N0VG9Sb3V0ZSh7aG9zdCwgcG9ydCwgcHJvdG9jb2wsIHRyYW5zbGF0ZWRSb3V0ZX0pXG5cbiAgICAgIHJldHVybiB0cmFuc2xhdGVkUm91dGVcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmhhbmRsZWQgc3RhdGVcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0hvc3RSb3V0ZUFyZ3N9IG9wdGlvbnNcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGFkZEhvc3RUb1JvdXRlICh7aG9zdCwgcG9ydCwgcHJvdG9jb2wsIHRyYW5zbGF0ZWRSb3V0ZX0pIHtcbiAgICBsZXQgZnVsbFVybCA9IFwiXCJcblxuICAgIGNvbnN0IGhvc3RUb1VzZSA9IGhvc3QgfHwgKGdsb2JhbFRoaXMubG9jYXRpb24gPyBnbG9iYWxUaGlzLmxvY2F0aW9uLmhvc3QgOiB1bmRlZmluZWQpXG4gICAgY29uc3QgcG9ydFRvVXNlID0gcG9ydCB8fCAoZ2xvYmFsVGhpcy5sb2NhdGlvbiA/IGdsb2JhbFRoaXMubG9jYXRpb24ucG9ydCA6IHVuZGVmaW5lZClcblxuICAgIGlmICghaG9zdFRvVXNlKSB0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gZGV0ZWN0IGhvc3RcIilcblxuICAgIGlmIChwcm90b2NvbCkge1xuICAgICAgZnVsbFVybCArPSBgJHtwcm90b2NvbH06Ly9gXG4gICAgfSBlbHNlIGlmIChnbG9iYWxUaGlzLmxvY2F0aW9uICYmIGdsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2wpIHtcbiAgICAgIGZ1bGxVcmwgKz0gYCR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5wcm90b2NvbH0vL2BcbiAgICB9IGVsc2Uge1xuICAgICAgZnVsbFVybCArPSBcImh0dHBzOi8vXCJcbiAgICB9XG5cbiAgICBmdWxsVXJsICs9IGhvc3RUb1VzZVxuXG4gICAgY29uc3QgaXNIdHRwTm9uRGVmYXVsdFBvcnQgPSBwcm90b2NvbCA9PSBcImh0dHBcIiAmJiBwb3J0VG9Vc2UgIT0gODBcbiAgICBjb25zdCBpc0h0dHBzTm9uRGVmYXVsdFBvcnQgPSBwcm90b2NvbCA9PSBcImh0dHBzXCIgJiYgcG9ydCAhPSA0NDNcblxuICAgIGlmIChwb3J0VG9Vc2UgJiYgKGlzSHR0cE5vbkRlZmF1bHRQb3J0IHx8IGlzSHR0cHNOb25EZWZhdWx0UG9ydCkpIHtcbiAgICAgIGZ1bGxVcmwgKz0gYDoke3BvcnRUb1VzZX1gXG4gICAgfVxuXG4gICAgZnVsbFVybCArPSB0cmFuc2xhdGVkUm91dGVcblxuICAgIHJldHVybiBmdWxsVXJsXG4gIH1cbn1cbiJdfQ==
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLW5hdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsicm91dGVzLW5hdGl2ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDekMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ25CLE9BQU8sU0FBUyxNQUFNLGlCQUFpQixDQUFBO0FBRXZDLCtGQUErRjtBQUMvRixnSkFBZ0o7QUFDaEosaUhBQWlIO0FBQ2pILGtJQUFrSTtBQUVsSTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0JBQW9CO0lBQ3ZDLGlEQUFpRDtJQUNqRCxZQUFhLEVBQUMsU0FBUyxFQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFFLGdCQUFnQixFQUFFLG1CQUFtQjtRQUN6RCxLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQy9ELE1BQU0sRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDMUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNwQyxNQUFNLGNBQWMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUE7WUFDL0QsTUFBTSxhQUFhLEdBQUcsR0FBRyxVQUFVLENB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QUFJLElBQUksSUFBSSxHQUFHLENBQUE7UUFFaEUsSUFBSSxTQUFTLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7WUFDakUsT0FBTyxJQUFJLElBQUksU0FBUyxFQUFFLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8sSUFBSSxlQUFlLENBQUE7UUFFMUIsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQge2RpZywgZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgcXMgZnJvbSBcInFzXCJcbmltcG9ydCB1cmxFbmNvZGUgZnJvbSBcIi4vdXJsLWVuY29kZS5qc1wiXG5cbi8qKiBAdHlwZWRlZiB7e3R5cGU6IFwicGF0aFBhcnRcIiwgbmFtZTogc3RyaW5nfSB8IHt0eXBlOiBcInZhcmlhYmxlXCIsIGNvdW50OiBudW1iZXJ9fSBQYXRoUGFydCAqL1xuLyoqIEB0eXBlZGVmIHt7YXJnczogQXJyYXk8dW5rbm93bj4sIGxvY2FsaXplZFJvdXRlcz86IFJlY29yZDxzdHJpbmcsIFBhdGhQYXJ0W10+LCBwYXRoUGFydHM/OiBQYXRoUGFydFtdLCB1cmw/OiBib29sZWFufX0gVHJhbnNsYXRlUm91dGVBcmdzICovXG4vKiogQHR5cGVkZWYge3tob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyfHN0cmluZywgcHJvdG9jb2w/OiBzdHJpbmcsIHRyYW5zbGF0ZWRSb3V0ZTogc3RyaW5nfX0gSG9zdFJvdXRlQXJncyAqL1xuLyoqIEB0eXBlZGVmIHt7bG9jYWxlPzogc3RyaW5nLCBob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyfHN0cmluZywgcHJvdG9jb2w/OiBzdHJpbmd9ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj59IFJvdXRlT3B0aW9ucyAqL1xuXG4vKipcbiAqIEJ1aWxkcyBwYXRocyBhbmQgVVJMcyBmcm9tIHJvdXRlIGRlZmluaXRpb25zIGZvciBuYXRpdmUgdXNhZ2UuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyUm91dGVzTmF0aXZlIHtcbiAgLyoqIEBwYXJhbSB7e2dldExvY2FsZTogKCkgPT4gc3RyaW5nfX0gb3B0aW9ucyAqL1xuICBjb25zdHJ1Y3RvciAoe2dldExvY2FsZX0pIHtcbiAgICB0aGlzLmdldExvY2FsZSA9IGdldExvY2FsZVxuICAgIHRoaXMucm91dGVEZWZpbml0aW9ucyA9IFtdXG4gICAgdGhpcy5yb3V0ZVRyYW5zbGF0aW9uUGFydHMgPSB7fVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByb3V0ZURlZmluaXRpb25zXG4gICAqIEBwYXJhbSB7e2xvY2FsaXplZD86IGJvb2xlYW59PX0gcm91dGVEZWZpbml0aW9uQXJnc1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGxvYWRSb3V0ZURlZmluaXRpb25zIChyb3V0ZURlZmluaXRpb25zLCByb3V0ZURlZmluaXRpb25BcmdzKSB7XG4gICAgZm9yIChjb25zdCByb3V0ZURlZmluaXRpb24gb2YgZGlnZyhyb3V0ZURlZmluaXRpb25zLCBcInJvdXRlc1wiKSkge1xuICAgICAgY29uc3Qge25hbWUsIHBhdGh9ID0gZGlncyhyb3V0ZURlZmluaXRpb24sIFwibmFtZVwiLCBcInBhdGhcIilcbiAgICAgIGNvbnN0IHJhd1BhdGhQYXJ0cyA9IHBhdGguc3BsaXQoXCIvXCIpXG4gICAgICBjb25zdCBwYXRoTWV0aG9kTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUobmFtZSwgdHJ1ZSl9UGF0aGBcbiAgICAgIGNvbnN0IHVybE1ldGhvZE5hbWUgPSBgJHtpbmZsZWN0aW9uLmNhbWVsaXplKG5hbWUsIHRydWUpfVVybGBcblxuICAgICAgaWYgKHJvdXRlRGVmaW5pdGlvbkFyZ3MgJiYgcm91dGVEZWZpbml0aW9uQXJncy5sb2NhbGl6ZWQpIHtcbiAgICAgICAgY29uc3QgbG9jYWxpemVkUm91dGVzID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBQYXRoUGFydFtdPn0gKi8gKHt9KVxuXG4gICAgICAgIGZvciAoY29uc3QgbG9jYWxlIGluIHRoaXMucm91dGVUcmFuc2xhdGlvblBhcnRzKSB7XG4gICAgICAgICAgbGV0IHZhcmlhYmxlQ291bnQgPSAwXG5cbiAgICAgICAgICAvKiogQHR5cGUge1BhdGhQYXJ0W119ICovXG4gICAgICAgICAgY29uc3QgbG9jYWxpemVkUGF0aFBhcnRzID0gW1xuICAgICAgICAgICAge3R5cGU6IFwicGF0aFBhcnRcIiwgbmFtZTogXCJcIn0sXG4gICAgICAgICAgICB7dHlwZTogXCJwYXRoUGFydFwiLCBuYW1lOiBsb2NhbGV9XG4gICAgICAgICAgXVxuXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByYXdQYXRoUGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhQYXJ0ID0gcmF3UGF0aFBhcnRzW2ldXG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZU1hdGNoID0gcGF0aFBhcnQubWF0Y2goL146KFtBLXpfXSspJC8pXG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGlmICh2YXJpYWJsZU1hdGNoKSB7XG4gICAgICAgICAgICAgIGxvY2FsaXplZFBhdGhQYXJ0cy5wdXNoKHt0eXBlOiBcInZhcmlhYmxlXCIsIGNvdW50OiB2YXJpYWJsZUNvdW50Kyt9KVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXRoUGFydCkge1xuICAgICAgICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5pMThuLnQoYHJvdXRlcy4ke3BhdGhQYXJ0fWAsIG51bGwsIHtkZWZhdWx0OiBwYXRoUGFydCwgbG9jYWxlfSlcblxuICAgICAgICAgICAgICBsb2NhbGl6ZWRQYXRoUGFydHMucHVzaCh7dHlwZTogXCJwYXRoUGFydFwiLCBuYW1lfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsb2NhbGl6ZWRSb3V0ZXNbbG9jYWxlXSA9IGxvY2FsaXplZFBhdGhQYXJ0c1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpc1twYXRoTWV0aG9kTmFtZV0gPSAoLi4uYXJncykgPT4gdGhpcy50cmFuc2xhdGVSb3V0ZSh7YXJncywgbG9jYWxpemVkUm91dGVzfSlcbiAgICAgICAgdGhpc1t1cmxNZXRob2ROYW1lXSA9ICguLi5hcmdzKSA9PiB0aGlzLnRyYW5zbGF0ZVJvdXRlKHthcmdzLCBsb2NhbGl6ZWRSb3V0ZXMsIHVybDogdHJ1ZX0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgdmFyaWFibGVDb3VudCA9IDBcblxuICAgICAgICBjb25zdCBwYXRoUGFydHMgPSAvKiogQHR5cGUge1BhdGhQYXJ0W119ICovIHJhd1BhdGhQYXJ0cy5tYXAoKHBhdGhQYXJ0KSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFyaWFibGVNYXRjaCA9IHBhdGhQYXJ0Lm1hdGNoKC9eOihbQS16X10rKSQvKVxuXG4gICAgICAgICAgaWYgKHZhcmlhYmxlTWF0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJ2YXJpYWJsZVwiLCBjb3VudDogdmFyaWFibGVDb3VudCsrfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwicGF0aFBhcnRcIiwgbmFtZTogcGF0aFBhcnR9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXNbcGF0aE1ldGhvZE5hbWVdID0gKC4uLmFyZ3MpID0+IHRoaXMudHJhbnNsYXRlUm91dGUoe2FyZ3MsIHBhdGhQYXJ0c30pXG4gICAgICAgIHRoaXNbdXJsTWV0aG9kTmFtZV0gPSAoLi4uYXJncykgPT4gdGhpcy50cmFuc2xhdGVSb3V0ZSh7YXJncywgcGF0aFBhcnRzLCB1cmw6IHRydWV9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaTE4blxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGxvYWRSb3V0ZVRyYW5zbGF0aW9ucyAoaTE4bikge1xuICAgIHRoaXMuaTE4biA9IGkxOG5cbiAgICBjb25zdCBsb2NhbGVzID0gZGlnZyhpMThuLCBcImxvY2FsZXNcIilcblxuICAgIGZvciAoY29uc3QgbG9jYWxlIGluIGxvY2FsZXMpIHtcbiAgICAgIGNvbnN0IHJvdXRlVHJhbnNsYXRpb25zID0gZGlnKGxvY2FsZXMsIGxvY2FsZSwgXCJyb3V0ZXNcIilcblxuICAgICAgaWYgKHJvdXRlVHJhbnNsYXRpb25zKSB7XG4gICAgICAgIGlmICghKGxvY2FsZSBpbiB0aGlzLnJvdXRlVHJhbnNsYXRpb25QYXJ0cykpIHRoaXMucm91dGVUcmFuc2xhdGlvblBhcnRzW2xvY2FsZV0gPSB7fVxuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJvdXRlVHJhbnNsYXRpb25zKSB7XG4gICAgICAgICAgdGhpcy5yb3V0ZVRyYW5zbGF0aW9uUGFydHNbbG9jYWxlXVtrZXldID0gcm91dGVUcmFuc2xhdGlvbnNba2V5XVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VHJhbnNsYXRlUm91dGVBcmdzfSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICB0cmFuc2xhdGVSb3V0ZSAoe2FyZ3MsIGxvY2FsaXplZFJvdXRlcywgcGF0aFBhcnRzLCB1cmx9KSB7XG4gICAgbGV0IG9wdGlvbnMgPSAvKiogQHR5cGUge1JvdXRlT3B0aW9uc30gKi8ge31cblxuICAgIC8vIEV4dHJhY3Qgb3B0aW9ucyBmcm9tIGFyZ3MgaWYgYW55XG4gICAgY29uc3QgbGFzdEFyZyA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXVxuXG4gICAgaWYgKGxhc3RBcmcgJiYgdHlwZW9mIGxhc3RBcmcgPT0gXCJvYmplY3RcIikge1xuICAgICAgb3B0aW9ucyA9IC8qKiBAdHlwZSB7Um91dGVPcHRpb25zfSAqLyBhcmdzLnBvcCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgIH1cblxuICAgIC8vIFRha2UgbG9jYWxlIGZyb20gb3B0aW9ucyBpZiBnaXZlbiBvciBmYWxsIGJhY2sgdG8gZmFsbGJhY2tcbiAgICBjb25zdCB7bG9jYWxlLCBob3N0LCBwb3J0LCBwcm90b2NvbCwgLi4ucmVzdE9wdGlvbnN9ID0gb3B0aW9uc1xuXG4gICAgaWYgKGxvY2FsaXplZFJvdXRlcykge1xuICAgICAgLy8gUHV0IHRvZ2V0aGVyIHJvdXRlIHdpdGggdmFyaWFibGVzIGFuZCBzdGF0aWMgdHJhbnNsYXRlZCBwYXJ0cyAod2hpY2ggd2VyZSB0cmFuc2xhdGVkIGFuZCBjYWNoZWQgcHJldmlvdXNseSlcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWRQYXRoUGFydHMgPSAvKiogQHR5cGUge1BhdGhQYXJ0W119ICovIGRpZ2cobG9jYWxpemVkUm91dGVzLCBsb2NhbGUgfHwgdGhpcy5nZXRMb2NhbGUoKSlcbiAgICAgIGxldCB0cmFuc2xhdGVkUm91dGUgPSB0cmFuc2xhdGVkUGF0aFBhcnRzXG4gICAgICAgIC5tYXAoKHBhdGhQYXJ0KSA9PiB7XG4gICAgICAgICAgaWYgKHBhdGhQYXJ0LnR5cGUgPT0gXCJwYXRoUGFydFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aFBhcnQubmFtZVxuICAgICAgICAgIH0gZWxzZSBpZiAocGF0aFBhcnQudHlwZSA9PSBcInZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgIC8vIEFyZ3MgbWlnaHQgbm90IGNvbnRhaW4gdGhlIHJpZ2h0IGFtb3VudCBvZiB2YXJpYWJsZXMsIHNvIGRvbnQgY2hhbmdlIHRoaXMgdG8gJ2RpZ2cnXG4gICAgICAgICAgICByZXR1cm4gZGlnKGFyZ3MsIGRpZ2cocGF0aFBhcnQsIFwiY291bnRcIikpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuaGFuZGxlZCBwYXRoIHBhcnQgdHlwZVwiKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oXCIvXCIpXG5cbiAgICAgIGlmIChyZXN0T3B0aW9ucyAmJiBPYmplY3Qua2V5cyhyZXN0T3B0aW9ucykubGVuZ3RoID4gMCkge1xuICAgICAgICB0cmFuc2xhdGVkUm91dGUgKz0gYD8ke3FzLnN0cmluZ2lmeShyZXN0T3B0aW9ucywge2VuY29kZXI6IHVybEVuY29kZX0pfWBcbiAgICAgIH1cblxuICAgICAgaWYgKHVybCkgcmV0dXJuIHRoaXMuYWRkSG9zdFRvUm91dGUoe2hvc3QsIHBvcnQsIHByb3RvY29sLCB0cmFuc2xhdGVkUm91dGV9KVxuXG4gICAgICByZXR1cm4gdHJhbnNsYXRlZFJvdXRlXG4gICAgfSBlbHNlIGlmIChwYXRoUGFydHMpIHtcbiAgICAgIC8vIFB1dCB0b2dldGhlciByb3V0ZSB3aXRoIHZhcmlhYmxlcyBhbmQgc3RhdGljIHRyYW5zbGF0ZWQgcGFydHMgKHdoaWNoIHdlcmUgdHJhbnNsYXRlZCBhbmQgY2FjaGVkIHByZXZpb3VzbHkpXG4gICAgICBsZXQgdHJhbnNsYXRlZFJvdXRlID0gcGF0aFBhcnRzXG4gICAgICAgIC5tYXAoKHBhdGhQYXJ0KSA9PiB7XG4gICAgICAgICAgaWYgKHBhdGhQYXJ0LnR5cGUgPT0gXCJwYXRoUGFydFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aFBhcnQubmFtZVxuICAgICAgICAgIH0gZWxzZSBpZiAocGF0aFBhcnQudHlwZSA9PSBcInZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBkaWdnKGFyZ3MsIGRpZ2cocGF0aFBhcnQsIFwiY291bnRcIikpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuaGFuZGxlZCBwYXRoIHBhcnQgdHlwZVwiKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oXCIvXCIpXG5cbiAgICAgIGlmIChyZXN0T3B0aW9ucyAmJiBPYmplY3Qua2V5cyhyZXN0T3B0aW9ucykubGVuZ3RoID4gMCkge1xuICAgICAgICB0cmFuc2xhdGVkUm91dGUgKz0gYD8ke3FzLnN0cmluZ2lmeShyZXN0T3B0aW9ucywge2VuY29kZXI6IHVybEVuY29kZX0pfWBcbiAgICAgIH1cblxuICAgICAgaWYgKHVybCkgcmV0dXJuIHRoaXMuYWRkSG9zdFRvUm91dGUoe2hvc3QsIHBvcnQsIHByb3RvY29sLCB0cmFuc2xhdGVkUm91dGV9KVxuXG4gICAgICByZXR1cm4gdHJhbnNsYXRlZFJvdXRlXG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5oYW5kbGVkIHN0YXRlXCIpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtIb3N0Um91dGVBcmdzfSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBhZGRIb3N0VG9Sb3V0ZSAoe2hvc3QsIHBvcnQsIHByb3RvY29sLCB0cmFuc2xhdGVkUm91dGV9KSB7XG4gICAgbGV0IGZ1bGxVcmwgPSBcIlwiXG5cbiAgICBjb25zdCBob3N0VG9Vc2UgPSBob3N0IHx8IChnbG9iYWxUaGlzLmxvY2F0aW9uID8gZ2xvYmFsVGhpcy5sb2NhdGlvbi5ob3N0IDogdW5kZWZpbmVkKVxuICAgIGNvbnN0IHBvcnRUb1VzZSA9IHBvcnQgfHwgKGdsb2JhbFRoaXMubG9jYXRpb24gPyBnbG9iYWxUaGlzLmxvY2F0aW9uLnBvcnQgOiB1bmRlZmluZWQpXG5cbiAgICBpZiAoIWhvc3RUb1VzZSkgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGRldGVjdCBob3N0XCIpXG5cbiAgICBpZiAocHJvdG9jb2wpIHtcbiAgICAgIGZ1bGxVcmwgKz0gYCR7cHJvdG9jb2x9Oi8vYFxuICAgIH0gZWxzZSBpZiAoZ2xvYmFsVGhpcy5sb2NhdGlvbiAmJiBnbG9iYWxUaGlzLmxvY2F0aW9uLnByb3RvY29sKSB7XG4gICAgICBmdWxsVXJsICs9IGAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly9gXG4gICAgfSBlbHNlIHtcbiAgICAgIGZ1bGxVcmwgKz0gXCJodHRwczovL1wiXG4gICAgfVxuXG4gICAgZnVsbFVybCArPSBob3N0VG9Vc2VcblxuICAgIGNvbnN0IGlzSHR0cE5vbkRlZmF1bHRQb3J0ID0gcHJvdG9jb2wgPT0gXCJodHRwXCIgJiYgcG9ydFRvVXNlICE9IDgwXG4gICAgY29uc3QgaXNIdHRwc05vbkRlZmF1bHRQb3J0ID0gcHJvdG9jb2wgPT0gXCJodHRwc1wiICYmIHBvcnQgIT0gNDQzXG5cbiAgICBpZiAocG9ydFRvVXNlICYmIChpc0h0dHBOb25EZWZhdWx0UG9ydCB8fCBpc0h0dHBzTm9uRGVmYXVsdFBvcnQpKSB7XG4gICAgICBmdWxsVXJsICs9IGA6JHtwb3J0VG9Vc2V9YFxuICAgIH1cblxuICAgIGZ1bGxVcmwgKz0gdHJhbnNsYXRlZFJvdXRlXG5cbiAgICByZXR1cm4gZnVsbFVybFxuICB9XG59XG4iXX0=
|
package/build/services.d.ts
CHANGED
|
@@ -4,10 +4,10 @@ export default class ApiMakerServices {
|
|
|
4
4
|
static current(): ApiMakerServices;
|
|
5
5
|
/**
|
|
6
6
|
* @param {string} serviceName
|
|
7
|
-
* @param {Record<string, any>} args
|
|
7
|
+
* @param {Record<string, any>} [args]
|
|
8
8
|
* @param {Record<string, any>} [options]
|
|
9
9
|
* @returns {Promise<any>}
|
|
10
10
|
*/
|
|
11
|
-
sendRequest(serviceName: string, args
|
|
11
|
+
sendRequest(serviceName: string, args?: Record<string, any>, options?: Record<string, any>): Promise<any>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=services.d.ts.map
|
package/build/services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"/src/","sources":["services.js"],"names":[],"mappings":"AAIA,iCAAiC;AACjC;IACE,kCAAkC;IAClC,kBADc,gBAAgB,CAK7B;IAED;;;;;OAKG;IACH,yBALW,MAAM,
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"/src/","sources":["services.js"],"names":[],"mappings":"AAIA,iCAAiC;AACjC;IACE,kCAAkC;IAClC,kBADc,gBAAgB,CAK7B;IAED;;;;;OAKG;IACH,yBALW,MAAM,SACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,GAAG,CAAC,CAYxB;CACF"}
|
package/build/services.js
CHANGED
|
@@ -10,7 +10,7 @@ export default class ApiMakerServices {
|
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* @param {string} serviceName
|
|
13
|
-
* @param {Record<string, any>} args
|
|
13
|
+
* @param {Record<string, any>} [args]
|
|
14
14
|
* @param {Record<string, any>} [options]
|
|
15
15
|
* @returns {Promise<any>}
|
|
16
16
|
*/
|
|
@@ -26,4 +26,4 @@ export default class ApiMakerServices {
|
|
|
26
26
|
}, options);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBRTdDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQixpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE9BQU8sT0FBTyxnQkFBZ0I7SUFDbkMsa0NBQWtDO0lBQ2xDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0I7WUFBRSxNQUFNLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO1FBRTFGLE9BQU8sTUFBTSxDQUFDLHNCQUFzQixDQUFBO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sR0FBRyxFQUFFO1FBQzFDLE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUM3QixJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFlBQVksRUFBRSxXQUFXO2FBQzFCO1lBQ0QsT0FBTyxFQUFFLFVBQVU7WUFDbkIsY0FBYyxFQUFFLE9BQU87WUFDdkIsSUFBSSxFQUFFLFNBQVM7U0FDaEIsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tYW5kc1Bvb2wgZnJvbSBcIi4vY29tbWFuZHMtcG9vbC5qc1wiXG5cbmNvbnN0IHNoYXJlZCA9IHt9XG5cbi8qKiBBUEkgc2VydmljZSBjb21tYW5kIHByb3h5LiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJTZXJ2aWNlcyB7XG4gIC8qKiBAcmV0dXJucyB7QXBpTWFrZXJTZXJ2aWNlc30gKi9cbiAgc3RhdGljIGN1cnJlbnQgKCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRBcGlNYWtlclNlcnZpY2UpIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJTZXJ2aWNlID0gbmV3IEFwaU1ha2VyU2VydmljZXMoKVxuXG4gICAgcmV0dXJuIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJTZXJ2aWNlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZpY2VOYW1lXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW2FyZ3NdXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBzZW5kUmVxdWVzdCAoc2VydmljZU5hbWUsIGFyZ3MsIG9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiBDb21tYW5kc1Bvb2wuYWRkQ29tbWFuZCh7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIHNlcnZpY2VfYXJnczogYXJncyxcbiAgICAgICAgc2VydmljZV9uYW1lOiBzZXJ2aWNlTmFtZVxuICAgICAgfSxcbiAgICAgIGNvbW1hbmQ6IFwic2VydmljZXNcIixcbiAgICAgIGNvbGxlY3Rpb25OYW1lOiBcImNhbGxzXCIsXG4gICAgICB0eXBlOiBcInNlcnZpY2VcIlxuICAgIH0sIG9wdGlvbnMpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as inflection from "inflection";
|
|
2
2
|
import { digg, digs } from "diggerize";
|
|
3
|
-
const modelConfigRequireContext = import.meta.webpackContext("super-admin/model-configs", {
|
|
3
|
+
const modelConfigRequireContext = /** @type {any} */ (import.meta).webpackContext("super-admin/model-configs", {
|
|
4
4
|
recursive: true,
|
|
5
5
|
regExp: /\.(jsx|js)$/
|
|
6
6
|
});
|
|
@@ -80,4 +80,4 @@ export default class ApiMakerSuperAdminConfigReader {
|
|
|
80
80
|
return { columns, select };
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXJlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsic3VwZXItYWRtaW4vY29uZmlnLXJlYWRlci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFFcEMsTUFBTSx5QkFBeUIsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsMkJBQTJCLEVBQUU7SUFDN0csU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsYUFBYTtDQUN0QixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsT0FBTyxPQUFPLDhCQUE4QjtJQUNqRCxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVU7UUFDeEIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUE7UUFDOUUsSUFBSSxXQUFXLENBQUE7UUFFZixLQUFLLE1BQU0sVUFBVSxJQUFJLENBQUMsS0FBSyxrQkFBa0IsTUFBTSxFQUFFLEtBQUssa0JBQWtCLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkYsSUFBSSxDQUFDO2dCQUNILFdBQVcsR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUE7Z0JBQzNELE1BQUs7WUFDUCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO29CQUNsRCxNQUFNLEtBQUssQ0FBQTtnQkFDYixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIs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QTtZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUE7SUFDMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQge2RpZ2csIGRpZ3N9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5jb25zdCBtb2RlbENvbmZpZ1JlcXVpcmVDb250ZXh0ID0gLyoqIEB0eXBlIHthbnl9ICovIChpbXBvcnQubWV0YSkud2VicGFja0NvbnRleHQoXCJzdXBlci1hZG1pbi9tb2RlbC1jb25maWdzXCIsIHtcbiAgcmVjdXJzaXZlOiB0cnVlLFxuICByZWdFeHA6IC9cXC4oanN4fGpzKSQvXG59KVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlclN1cGVyQWRtaW5Db25maWdSZWFkZXIge1xuICBzdGF0aWMgZm9yTW9kZWwobW9kZWxDbGFzcykge1xuICAgIGNvbnN0IG1vZGVsTmFtZUNhbWVsaXplZCA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVEYXNoZXJpemVkXCIpXG4gICAgbGV0IG1vZGVsQ29uZmlnXG5cbiAgICBmb3IgKGNvbnN0IGNvbmZpZ1BhdGggb2YgW2AuLyR7bW9kZWxOYW1lQ2FtZWxpemVkfS5qc3hgLCBgLi8ke21vZGVsTmFtZUNhbWVsaXplZH0uanNgXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbW9kZWxDb25maWcgPSBtb2RlbENvbmZpZ1JlcXVpcmVDb250ZXh0KGNvbmZpZ1BhdGgpLmRlZmF1bHRcbiAgICAgICAgYnJlYWtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcIkNhbm5vdCBmaW5kIG1vZHVsZVwiKSkge1xuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW1vZGVsQ29uZmlnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBObyBtb2RlbC1jb25maWcgZm9yICR7bW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWV9YClcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEFwaU1ha2VyU3VwZXJBZG1pbkNvbmZpZ1JlYWRlcihtb2RlbENsYXNzLCBtb2RlbENvbmZpZylcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG1vZGVsQ2xhc3MsIG1vZGVsQ29uZmlnKSB7XG4gICAgdGhpcy5tb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuICAgIHRoaXMubW9kZWxDb25maWcgPSBtb2RlbENvbmZpZ1xuICB9XG5cbiAgYXR0cmlidXRlc1RvU2hvdygpIHtcbiAgICBjb25zdCB7bW9kZWxDb25maWd9ID0gZGlncyh0aGlzLCBcIm1vZGVsQ29uZmlnXCIpXG5cbiAgICBpZiAobW9kZWxDb25maWc/LnNob3c/LmF0dHJpYnV0ZXNUb1Nob3cpIHtcbiAgICAgIHJldHVybiBtb2RlbENvbmZpZy5zaG93LmF0dHJpYnV0ZXNUb1Nob3coKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzVG9TaG93KClcbiAgfVxuXG4gIGRlZmF1bHRBdHRyaWJ1dGVzVG9TaG93KCkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXNUb1Nob3cgPSBbXVxuICAgIGNvbnN0IHtjb2x1bW5zfSA9IHRoaXMuZGVmYXVsdFRhYmxlQ29sdW1ucygpXG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgICBhdHRyaWJ1dGVzVG9TaG93LnB1c2goZGlnZyhjb2x1bW4sIFwiYXR0cmlidXRlXCIpKVxuICAgIH1cblxuICAgIHJldHVybiBhdHRyaWJ1dGVzVG9TaG93XG4gIH1cblxuICB0YWJsZUNvbHVtbnMoKSB7XG4gICAgY29uc3Qge21vZGVsQ29uZmlnfSA9IGRpZ3ModGhpcywgXCJtb2RlbENvbmZpZ1wiKVxuXG4gICAgaWYgKG1vZGVsQ29uZmlnPy50YWJsZT8uY29sdW1ucykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sdW1uczogbW9kZWxDb25maWcudGFibGUuY29sdW1ucygpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRUYWJsZUNvbHVtbnMoKVxuICAgIH1cbiAgfVxuXG4gIGRlZmF1bHRUYWJsZUNvbHVtbnMoKSB7XG4gICAgY29uc3Qge21vZGVsQ2xhc3N9ID0gZGlncyh0aGlzLCBcIm1vZGVsQ2xhc3NcIilcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gbW9kZWxDbGFzcy5hdHRyaWJ1dGVzKClcbiAgICBjb25zdCBjb2x1bW5zID0gW11cbiAgICBjb25zdCBzZWxlY3QgPSB7fVxuICAgIGNvbnN0IG1vZGVsQ2xhc3NTZWxlY3QgPSBbXVxuXG4gICAgc2VsZWN0W21vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lXSA9IG1vZGVsQ2xhc3NTZWxlY3RcblxuICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgIGlmIChhdHRyaWJ1dGUuaXNTZWxlY3RlZEJ5RGVmYXVsdCgpIHx8IGF0dHJpYnV0ZS5uYW1lKCkgPT0gXCJuYW1lXCIpIHtcbiAgICAgICAgY29uc3QgY2FtZWxpemVkTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoYXR0cmlidXRlLm5hbWUoKSwgdHJ1ZSlcbiAgICAgICAgY29uc3QgY29sdW1uID0ge1xuICAgICAgICAgIGF0dHJpYnV0ZTogY2FtZWxpemVkTmFtZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGF0dHJpYnV0ZS5pc0NvbHVtbigpKSB7XG4gICAgICAgICAgY29sdW1uLnNvcnRLZXkgPSBjYW1lbGl6ZWROYW1lXG4gICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlLmlzVHJhbnNsYXRlZCgpKSB7XG4gICAgICAgICAgY29sdW1uLnNvcnRLZXkgPSBgY3VycmVudFRyYW5zbGF0aW9uJHtjYW1lbGl6ZWROYW1lfWBcbiAgICAgICAgfVxuXG4gICAgICAgIG1vZGVsQ2xhc3NTZWxlY3QucHVzaChjYW1lbGl6ZWROYW1lKVxuICAgICAgICBjb2x1bW5zLnB1c2goY29sdW1uKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7Y29sdW1ucywgc2VsZWN0fVxuICB9XG59XG4iXX0=
|