breeze-client 2.2.2 → 3.0.0
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/LICENSE +1 -1
- package/README.md +83 -63
- package/adapters/abstract-data-service-adapter.d.ts +120 -0
- package/adapters/abstract-data-service-adapter.js +395 -0
- package/adapters/abstract-data-service-adapter.js.map +1 -0
- package/adapters/adapter-ajax-fetch.d.ts +12 -0
- package/adapters/adapter-ajax-fetch.js +13 -0
- package/adapters/adapter-ajax-fetch.js.map +1 -0
- package/{adapter-ajax-post → adapters}/adapter-ajax-post.d.ts +40 -36
- package/{fesm2022/breeze-client-adapter-ajax-post.mjs → adapters/adapter-ajax-post.js} +80 -82
- package/adapters/adapter-ajax-post.js.map +1 -0
- package/{adapter-ajax-fetch → adapters}/adapter-core.d.ts +4 -4
- package/{fesm2022/breeze-client-adapter-uri-builder-json.mjs → adapters/adapter-core.js} +48 -91
- package/adapters/adapter-core.js.map +1 -0
- package/adapters/adapter-data-service-webapi.d.ts +9 -0
- package/{fesm2022/breeze-client-adapter-data-service-webapi.mjs → adapters/adapter-data-service-webapi.js} +105 -107
- package/adapters/adapter-data-service-webapi.js.map +1 -0
- package/adapters/adapter-model-library-backing-store.d.ts +32 -0
- package/adapters/adapter-model-library-backing-store.js +321 -0
- package/adapters/adapter-model-library-backing-store.js.map +1 -0
- package/adapters/adapter-uri-builder-json.d.ts +11 -0
- package/adapters/adapter-uri-builder-json.js +40 -0
- package/adapters/adapter-uri-builder-json.js.map +1 -0
- package/adapters/http.d.ts +52 -0
- package/adapters/http.js +202 -0
- package/adapters/http.js.map +1 -0
- package/angular/adapter-angular-httpclient.d.ts +21 -0
- package/angular/adapter-angular-httpclient.js +70 -0
- package/angular/adapter-angular-httpclient.js.map +1 -0
- package/breeze.d.ts +215 -0
- package/breeze.js +141 -0
- package/breeze.js.map +1 -0
- package/config/config.d.ts +212 -0
- package/config/config.js +392 -0
- package/config/config.js.map +1 -0
- package/config/configure.d.ts +66 -0
- package/config/configure.js +46 -0
- package/config/configure.js.map +1 -0
- package/config/default-adapters.d.ts +1 -0
- package/config/default-adapters.js +40 -0
- package/config/default-adapters.js.map +1 -0
- package/config/interface-registry.d.ts +191 -0
- package/config/interface-registry.js +5 -0
- package/config/interface-registry.js.map +1 -0
- package/{src → core}/assert-param.d.ts +52 -60
- package/core/assert-param.js +390 -0
- package/core/assert-param.js.map +1 -0
- package/core/core.d.ts +285 -0
- package/core/core.js +772 -0
- package/core/core.js.map +1 -0
- package/core/enum.d.ts +116 -0
- package/core/enum.js +167 -0
- package/core/enum.js.map +1 -0
- package/core/event.d.ts +169 -0
- package/core/event.js +338 -0
- package/core/event.js.map +1 -0
- package/entity/array.d.ts +3 -0
- package/entity/array.js +4 -0
- package/entity/array.js.map +1 -0
- package/entity/complex-array.d.ts +17 -0
- package/entity/complex-array.js +104 -0
- package/entity/complex-array.js.map +1 -0
- package/entity/default-property-interceptor.d.ts +1 -0
- package/entity/default-property-interceptor.js +496 -0
- package/entity/default-property-interceptor.js.map +1 -0
- package/{src → entity}/entity-action.d.ts +36 -42
- package/entity/entity-action.js +45 -0
- package/entity/entity-action.js.map +1 -0
- package/entity/entity-aspect.d.ts +457 -0
- package/entity/entity-aspect.js +1262 -0
- package/entity/entity-aspect.js.map +1 -0
- package/entity/entity-base.d.ts +55 -0
- package/entity/entity-base.js +41 -0
- package/entity/entity-base.js.map +1 -0
- package/entity/entity-group.d.ts +1 -0
- package/entity/entity-group.js +224 -0
- package/entity/entity-group.js.map +1 -0
- package/entity/entity-key.d.ts +95 -0
- package/entity/entity-key.js +189 -0
- package/entity/entity-key.js.map +1 -0
- package/{src → entity}/entity-state.d.ts +112 -84
- package/entity/entity-state.js +135 -0
- package/entity/entity-state.js.map +1 -0
- package/entity/key-generator.d.ts +57 -0
- package/entity/key-generator.js +155 -0
- package/entity/key-generator.js.map +1 -0
- package/entity/observable-array.d.ts +25 -0
- package/entity/observable-array.js +230 -0
- package/entity/observable-array.js.map +1 -0
- package/entity/primitive-array.d.ts +12 -0
- package/entity/primitive-array.js +71 -0
- package/entity/primitive-array.js.map +1 -0
- package/entity/relation-array.d.ts +24 -0
- package/entity/relation-array.js +176 -0
- package/entity/relation-array.js.map +1 -0
- package/entity/unattached-children-map.d.ts +1 -0
- package/entity/unattached-children-map.js +105 -0
- package/entity/unattached-children-map.js.map +1 -0
- package/generate-entity-classes.js +1176 -0
- package/manager/entity-manager.d.ts +801 -0
- package/manager/entity-manager.js +2395 -0
- package/manager/entity-manager.js.map +1 -0
- package/{src → manager}/save-options.d.ts +48 -42
- package/manager/save-options.js +51 -0
- package/manager/save-options.js.map +1 -0
- package/{src → metadata}/data-service.d.ts +229 -184
- package/metadata/data-service.js +246 -0
- package/metadata/data-service.js.map +1 -0
- package/metadata/data-type.d.ts +122 -0
- package/metadata/data-type.js +465 -0
- package/metadata/data-type.js.map +1 -0
- package/metadata/entity-metadata.d.ts +1193 -0
- package/metadata/entity-metadata.js +2502 -0
- package/metadata/entity-metadata.js.map +1 -0
- package/{src → metadata}/local-query-comparison-options.d.ts +65 -59
- package/metadata/local-query-comparison-options.js +69 -0
- package/metadata/local-query-comparison-options.js.map +1 -0
- package/{src → metadata}/naming-convention.d.ts +75 -72
- package/metadata/naming-convention.js +97 -0
- package/metadata/naming-convention.js.map +1 -0
- package/mixins/mixin-get-entity-graph.d.ts +63 -0
- package/{fesm2022/breeze-client-mixin-get-entity-graph.mjs → mixins/mixin-get-entity-graph.js} +331 -253
- package/mixins/mixin-get-entity-graph.js.map +1 -0
- package/mixins/mixin-save-queuing.d.ts +98 -0
- package/{fesm2022/breeze-client-mixin-save-queuing.mjs → mixins/mixin-save-queuing.js} +493 -365
- package/mixins/mixin-save-queuing.js.map +1 -0
- package/package.json +63 -94
- package/query/entity-query.d.ts +521 -0
- package/query/entity-query.js +1149 -0
- package/query/entity-query.js.map +1 -0
- package/{src → query}/mapping-context.d.ts +44 -46
- package/query/mapping-context.js +412 -0
- package/query/mapping-context.js.map +1 -0
- package/query/predicate.d.ts +394 -0
- package/query/predicate.js +1294 -0
- package/query/predicate.js.map +1 -0
- package/query/property-path.d.ts +252 -0
- package/query/property-path.js +2 -0
- package/query/property-path.js.map +1 -0
- package/{src → query}/query-options.d.ts +143 -119
- package/query/query-options.js +180 -0
- package/query/query-options.js.map +1 -0
- package/rxjs/breeze-rxjs.d.ts +72 -0
- package/rxjs/breeze-rxjs.js +117 -0
- package/rxjs/breeze-rxjs.js.map +1 -0
- package/validation/validate.d.ts +583 -0
- package/validation/validate.js +961 -0
- package/validation/validate.js.map +1 -0
- package/{src → validation}/validation-options.d.ts +67 -63
- package/validation/validation-options.js +70 -0
- package/validation/validation-options.js.map +1 -0
- package/adapter-ajax-angularjs/adapter-ajax-angularjs.d.ts +0 -17
- package/adapter-ajax-angularjs/adapter-core.d.ts +0 -4
- package/adapter-ajax-angularjs/index.d.ts +0 -5
- package/adapter-ajax-fetch/adapter-ajax-fetch.d.ts +0 -18
- package/adapter-ajax-fetch/index.d.ts +0 -5
- package/adapter-ajax-httpclient/adapter-ajax-httpclient.d.ts +0 -13
- package/adapter-ajax-httpclient/adapter-core.d.ts +0 -4
- package/adapter-ajax-httpclient/index.d.ts +0 -5
- package/adapter-ajax-jquery/adapter-ajax-jquery.d.ts +0 -15
- package/adapter-ajax-jquery/index.d.ts +0 -5
- package/adapter-ajax-post/index.d.ts +0 -5
- package/adapter-data-service-odata/adapter-core.d.ts +0 -4
- package/adapter-data-service-odata/adapter-data-service-odata.d.ts +0 -17
- package/adapter-data-service-odata/index.d.ts +0 -5
- package/adapter-data-service-webapi/adapter-data-service-webapi.d.ts +0 -15
- package/adapter-data-service-webapi/index.d.ts +0 -5
- package/adapter-model-library-backing-store/adapter-model-library-backing-store.d.ts +0 -10
- package/adapter-model-library-backing-store/index.d.ts +0 -5
- package/adapter-model-library-ko/adapter-model-library-ko.d.ts +0 -10
- package/adapter-model-library-ko/index.d.ts +0 -5
- package/adapter-uri-builder-json/adapter-core.d.ts +0 -4
- package/adapter-uri-builder-json/adapter-uri-builder-json.d.ts +0 -8
- package/adapter-uri-builder-json/index.d.ts +0 -5
- package/adapter-uri-builder-odata/adapter-core.d.ts +0 -4
- package/adapter-uri-builder-odata/adapter-uri-builder-odata.d.ts +0 -8
- package/adapter-uri-builder-odata/index.d.ts +0 -5
- package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -135
- package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
- package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -135
- package/esm2022/adapter-ajax-fetch/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
- package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -139
- package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
- package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -107
- package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
- package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
- package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
- package/esm2022/adapter-data-service-odata/adapter-core.mjs +0 -49
- package/esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs +0 -461
- package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
- package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -100
- package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
- package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -269
- package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
- package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -241
- package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
- package/esm2022/adapter-uri-builder-json/adapter-core.mjs +0 -49
- package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -37
- package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
- package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +0 -49
- package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -191
- package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
- package/esm2022/breeze-client.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
- package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
- package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
- package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +0 -421
- package/esm2022/src/abstract-data-service-adapter.mjs +0 -325
- package/esm2022/src/array.mjs +0 -4
- package/esm2022/src/assert-param.mjs +0 -330
- package/esm2022/src/breeze.mjs +0 -85
- package/esm2022/src/complex-array.mjs +0 -117
- package/esm2022/src/config.mjs +0 -232
- package/esm2022/src/core.mjs +0 -712
- package/esm2022/src/csdl-metadata-parser.mjs +0 -385
- package/esm2022/src/data-service.mjs +0 -221
- package/esm2022/src/data-type.mjs +0 -510
- package/esm2022/src/default-property-interceptor.mjs +0 -460
- package/esm2022/src/entity-action.mjs +0 -45
- package/esm2022/src/entity-aspect.mjs +0 -897
- package/esm2022/src/entity-group.mjs +0 -192
- package/esm2022/src/entity-key.mjs +0 -125
- package/esm2022/src/entity-manager.mjs +0 -2163
- package/esm2022/src/entity-metadata.mjs +0 -2242
- package/esm2022/src/entity-query.mjs +0 -1024
- package/esm2022/src/entity-state.mjs +0 -107
- package/esm2022/src/enum.mjs +0 -143
- package/esm2022/src/event.mjs +0 -264
- package/esm2022/src/interface-registry.mjs +0 -39
- package/esm2022/src/key-generator.mjs +0 -110
- package/esm2022/src/local-query-comparison-options.mjs +0 -65
- package/esm2022/src/mapping-context.mjs +0 -411
- package/esm2022/src/naming-convention.mjs +0 -92
- package/esm2022/src/observable-array.mjs +0 -183
- package/esm2022/src/predicate.mjs +0 -1259
- package/esm2022/src/primitive-array.mjs +0 -85
- package/esm2022/src/query-options.mjs +0 -152
- package/esm2022/src/relation-array.mjs +0 -173
- package/esm2022/src/save-options.mjs +0 -41
- package/esm2022/src/unattached-children-map.mjs +0 -56
- package/esm2022/src/validate.mjs +0 -995
- package/esm2022/src/validation-options.mjs +0 -64
- package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs +0 -190
- package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-fetch.mjs +0 -190
- package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs +0 -194
- package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-jquery.mjs +0 -114
- package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-data-service-odata.mjs +0 -516
- package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs +0 -276
- package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-model-library-ko.mjs +0 -248
- package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs +0 -246
- package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
- package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
- package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +0 -1
- package/fesm2022/breeze-client.mjs +0 -14144
- package/fesm2022/breeze-client.mjs.map +0 -1
- package/index.d.ts +0 -1
- package/mixin-get-entity-graph/index.d.ts +0 -5
- package/mixin-get-entity-graph/mixin-get-entity-graph.d.ts +0 -31
- package/mixin-save-queuing/index.d.ts +0 -5
- package/mixin-save-queuing/mixin-save-queuing.d.ts +0 -32
- package/src/abstract-data-service-adapter.d.ts +0 -84
- package/src/array.d.ts +0 -3
- package/src/breeze.d.ts +0 -139
- package/src/complex-array.d.ts +0 -13
- package/src/config.d.ts +0 -104
- package/src/core.d.ts +0 -164
- package/src/csdl-metadata-parser.d.ts +0 -7
- package/src/data-type.d.ts +0 -89
- package/src/default-property-interceptor.d.ts +0 -4
- package/src/entity-aspect.d.ts +0 -332
- package/src/entity-group.d.ts +0 -28
- package/src/entity-key.d.ts +0 -77
- package/src/entity-manager.d.ts +0 -680
- package/src/entity-metadata.d.ts +0 -988
- package/src/entity-query.d.ts +0 -444
- package/src/enum.d.ts +0 -100
- package/src/event.d.ts +0 -142
- package/src/interface-registry.d.ts +0 -150
- package/src/key-generator.d.ts +0 -12
- package/src/observable-array.d.ts +0 -52
- package/src/predicate.d.ts +0 -376
- package/src/primitive-array.d.ts +0 -7
- package/src/relation-array.d.ts +0 -18
- package/src/unattached-children-map.d.ts +0 -19
- package/src/validate.d.ts +0 -650
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
import * as breeze from 'breeze-client';
|
|
2
|
-
let core = breeze.core;
|
|
3
|
-
let canIsolateES5Props = core.isES5Supported;
|
|
4
|
-
let ko;
|
|
5
|
-
export class ModelLibraryKnockoutAdapter {
|
|
6
|
-
name;
|
|
7
|
-
constructor() {
|
|
8
|
-
this.name = "ko";
|
|
9
|
-
}
|
|
10
|
-
static register(config) {
|
|
11
|
-
config = config || breeze.config;
|
|
12
|
-
config.registerAdapter("modelLibrary", ModelLibraryKnockoutAdapter);
|
|
13
|
-
return config.initializeAdapterInstance("modelLibrary", "ko", true);
|
|
14
|
-
}
|
|
15
|
-
initialize() {
|
|
16
|
-
ko = core.requireLib("ko;knockout", "The Knockout library");
|
|
17
|
-
ko.extenders.intercept = function (target, interceptorOptions) {
|
|
18
|
-
let instance = interceptorOptions.instance;
|
|
19
|
-
let property = interceptorOptions.property;
|
|
20
|
-
// create a computed observable to intercept writes to our observable
|
|
21
|
-
let result;
|
|
22
|
-
if (target.splice) {
|
|
23
|
-
result = ko.computed({
|
|
24
|
-
read: target //always return the original observables value
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
result = ko.computed({
|
|
29
|
-
read: target,
|
|
30
|
-
write: function (newValue) {
|
|
31
|
-
instance._$interceptor(property, newValue, target);
|
|
32
|
-
return instance;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
//return the new computed observable
|
|
37
|
-
return result;
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
getTrackablePropertyNames(entity) {
|
|
41
|
-
let names = [];
|
|
42
|
-
for (let p in entity) {
|
|
43
|
-
if (p === "entityType")
|
|
44
|
-
continue;
|
|
45
|
-
if (p === "_$typeName")
|
|
46
|
-
continue;
|
|
47
|
-
let propDescr = getES5PropDescriptor(entity, p);
|
|
48
|
-
if (propDescr && propDescr.get) {
|
|
49
|
-
names.push(p);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
let val = entity[p];
|
|
53
|
-
if (ko.isObservable(val)) {
|
|
54
|
-
names.push(p);
|
|
55
|
-
}
|
|
56
|
-
else if (!core.isFunction(val)) {
|
|
57
|
-
names.push(p);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return names;
|
|
62
|
-
}
|
|
63
|
-
initializeEntityPrototype(proto) {
|
|
64
|
-
proto.getProperty = function (propertyName) {
|
|
65
|
-
return this[propertyName]();
|
|
66
|
-
};
|
|
67
|
-
proto.setProperty = function (propertyName, value) {
|
|
68
|
-
this[propertyName](value);
|
|
69
|
-
// allow set property chaining.
|
|
70
|
-
return this;
|
|
71
|
-
};
|
|
72
|
-
if (canIsolateES5Props) {
|
|
73
|
-
isolateES5Props(proto);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
startTracking(entity, proto) {
|
|
77
|
-
// create ko's for each property and assign defaultValues
|
|
78
|
-
let stype = (entity.entityType || entity.complexType);
|
|
79
|
-
let es5Descriptors = stype._extra.es5Descriptors || {};
|
|
80
|
-
// sort unmapped properties to the end
|
|
81
|
-
stype.getProperties().sort(function (p1, p2) {
|
|
82
|
-
let v1 = p1.isUnmapped ? 1 : 0;
|
|
83
|
-
let v2 = p2.isUnmapped ? 1 : 0;
|
|
84
|
-
return v1 - v2;
|
|
85
|
-
}).forEach(function (prop) {
|
|
86
|
-
let propName = prop.name;
|
|
87
|
-
let val = entity[propName];
|
|
88
|
-
let propDescr = es5Descriptors[propName];
|
|
89
|
-
let koObj;
|
|
90
|
-
// check if property is an ES5 property
|
|
91
|
-
if (propDescr) {
|
|
92
|
-
let getFn = propDescr.get.bind(entity);
|
|
93
|
-
if (propDescr.set) {
|
|
94
|
-
let setFn = propDescr.set.bind(entity);
|
|
95
|
-
let rawAccessorFn = function (newValue) {
|
|
96
|
-
if (arguments.length === 0) {
|
|
97
|
-
getFn();
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
setFn(newValue);
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
koObj = ko.computed({
|
|
105
|
-
read: function () {
|
|
106
|
-
stype._koDummy();
|
|
107
|
-
return getFn();
|
|
108
|
-
},
|
|
109
|
-
write: function (newValue) {
|
|
110
|
-
entity._$interceptor(prop, newValue, rawAccessorFn);
|
|
111
|
-
stype._koDummy.valueHasMutated();
|
|
112
|
-
return entity;
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
koObj = ko.computed({
|
|
118
|
-
read: getFn,
|
|
119
|
-
write: function () {
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
// check if property is already exposed as a ko object
|
|
124
|
-
}
|
|
125
|
-
else if (ko.isObservable(val)) {
|
|
126
|
-
if (prop.isNavigationProperty) {
|
|
127
|
-
throw new Error("Cannot assign a navigation property in an entity ctor.: " + propName);
|
|
128
|
-
}
|
|
129
|
-
koObj = val;
|
|
130
|
-
// otherwise
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
val = initializeValueForProp(entity, prop, val);
|
|
134
|
-
koObj = prop.isScalar ? ko.observable(val) : ko.observableArray(val);
|
|
135
|
-
}
|
|
136
|
-
if (prop.isScalar) {
|
|
137
|
-
if (propDescr) {
|
|
138
|
-
Object.defineProperty(entity, propName, {
|
|
139
|
-
enumerable: true,
|
|
140
|
-
configurable: true,
|
|
141
|
-
writable: true,
|
|
142
|
-
value: koObj
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
let koExt = koObj.extend({ intercept: { instance: entity, property: prop } });
|
|
147
|
-
entity[propName] = koExt;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
val._koObj = koObj;
|
|
152
|
-
// code to suppress extra breeze notification when
|
|
153
|
-
// ko's array methods are called.
|
|
154
|
-
koObj.subscribe(onBeforeChange, null, "beforeChange");
|
|
155
|
-
// code to insure that any direct breeze changes notify ko
|
|
156
|
-
val.arrayChanged.subscribe(onArrayChanged);
|
|
157
|
-
koObj.equalityComparer = function () {
|
|
158
|
-
throw new Error("Collection navigation properties may NOT be set.");
|
|
159
|
-
};
|
|
160
|
-
entity[propName] = koObj;
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
breeze.config.registerAdapter("modelLibrary", ModelLibraryKnockoutAdapter);
|
|
166
|
-
// private fns
|
|
167
|
-
function getES5PropDescriptor(proto, propName) {
|
|
168
|
-
if (!canIsolateES5Props) {
|
|
169
|
-
return null;
|
|
170
|
-
}
|
|
171
|
-
if (proto.hasOwnProperty(propName)) {
|
|
172
|
-
return Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(proto, propName);
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
let nextProto = Object.getPrototypeOf(proto);
|
|
176
|
-
return nextProto ? getES5PropDescriptor(nextProto, propName) : null;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
function initializeValueForProp(entity, prop, val) {
|
|
180
|
-
if (prop instanceof breeze.DataProperty) {
|
|
181
|
-
if (prop.isComplexProperty) {
|
|
182
|
-
// TODO: right now we create Empty complexObjects here - these should actually come from the entity
|
|
183
|
-
if (prop.isScalar) {
|
|
184
|
-
val = prop.dataType._createInstanceCore(entity, prop);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
val = breeze.makeComplexArray([], entity, prop);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
else if (!prop.isScalar) {
|
|
191
|
-
val = breeze.makePrimitiveArray([], entity, prop);
|
|
192
|
-
}
|
|
193
|
-
else if (val === undefined) {
|
|
194
|
-
val = prop.defaultValue;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
else if (prop instanceof breeze.NavigationProperty) {
|
|
198
|
-
if (val !== undefined) {
|
|
199
|
-
throw new Error("Cannot assign a navigation property in an entity ctor.: " + prop.name);
|
|
200
|
-
}
|
|
201
|
-
if (prop.isScalar) {
|
|
202
|
-
// TODO: change this to nullEntity later.
|
|
203
|
-
val = null;
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
val = breeze.makeRelationArray([], entity, prop);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
throw new Error("unknown property: " + prop.name);
|
|
211
|
-
}
|
|
212
|
-
return val;
|
|
213
|
-
}
|
|
214
|
-
function onBeforeChange(args) {
|
|
215
|
-
args._koObj._suppressBreeze = true;
|
|
216
|
-
}
|
|
217
|
-
function onArrayChanged(args) {
|
|
218
|
-
let koObj = args.array._koObj;
|
|
219
|
-
if (koObj._suppressBreeze) {
|
|
220
|
-
koObj._suppressBreeze = false;
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
koObj.valueHasMutated();
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
function isolateES5Props(proto) {
|
|
227
|
-
let stype = (proto.entityType || proto.complexType);
|
|
228
|
-
let es5Descriptors = {};
|
|
229
|
-
stype.getProperties().forEach(function (prop) {
|
|
230
|
-
let propDescr = getES5PropDescriptor(proto, prop.name);
|
|
231
|
-
if (propDescr) {
|
|
232
|
-
es5Descriptors[prop.name] = propDescr;
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
if (!core.isEmpty(es5Descriptors)) {
|
|
236
|
-
let extra = stype._extra;
|
|
237
|
-
extra.es5Descriptors = es5Descriptors;
|
|
238
|
-
stype._koDummy = ko.observable(null);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1tb2RlbC1saWJyYXJ5LWtvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkYXB0ZXItbW9kZWwtbGlicmFyeS1rby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBRXZCLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztBQUM3QyxJQUFJLEVBQU8sQ0FBQztBQUVaLE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsSUFBSSxDQUFTO0lBQ2I7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUE0QjtRQUMxQyxNQUFNLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDakMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUNwRSxPQUFPLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBZ0MsQ0FBQztJQUNyRyxDQUFDO0lBRUQsVUFBVTtRQUNSLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzVELEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLFVBQVUsTUFBVyxFQUFFLGtCQUF1QjtZQUNyRSxJQUFJLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7WUFDM0MsSUFBSSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1lBRTNDLHFFQUFxRTtZQUNyRSxJQUFJLE1BQVcsQ0FBQztZQUNoQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLE1BQU0sR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDO29CQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFFLDhDQUE4QztpQkFDN0QsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7b0JBQ25CLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxVQUFVLFFBQWE7d0JBQzVCLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQzt3QkFDbkQsT0FBTyxRQUFRLENBQUM7b0JBQ2xCLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxvQ0FBb0M7WUFDcEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBRUosQ0FBQztJQUVELHlCQUF5QixDQUFDLE1BQVc7UUFDbkMsSUFBSSxLQUFLLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLEtBQUssSUFBSSxDQUFDLElBQUksTUFBTSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLFlBQVk7Z0JBQUUsU0FBUztZQUNqQyxJQUFJLENBQUMsS0FBSyxZQUFZO2dCQUFFLFNBQVM7WUFFakMsSUFBSSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDZjtxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDZjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFVO1FBRWxDLEtBQUssQ0FBQyxXQUFXLEdBQUcsVUFBVSxZQUFvQjtZQUNoRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUVGLEtBQUssQ0FBQyxXQUFXLEdBQUcsVUFBVSxZQUFvQixFQUFFLEtBQVU7WUFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLCtCQUErQjtZQUMvQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGLElBQUksa0JBQWtCLEVBQUU7WUFDdEIsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBRUgsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFXLEVBQUUsS0FBVTtRQUNuQyx5REFBeUQ7UUFFekQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQTBCLENBQUM7UUFDL0UsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1FBRXZELHNDQUFzQztRQUN0QyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUU7WUFDekMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUk7WUFDdkIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0IsSUFBSSxTQUFTLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUksS0FBVSxDQUFDO1lBRWYsdUNBQXVDO1lBQ3ZDLElBQUksU0FBUyxFQUFFO2dCQUNiLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pCLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2QyxJQUFJLGFBQWEsR0FBRyxVQUFVLFFBQWE7d0JBQ3pDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQzFCLEtBQUssRUFBRSxDQUFDOzRCQUNSLE9BQU87eUJBQ1I7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3lCQUNqQjtvQkFDSCxDQUFDLENBQUM7b0JBQ0YsS0FBSyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBQ2xCLElBQUksRUFBRTs0QkFDSCxLQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7NEJBQzFCLE9BQU8sS0FBSyxFQUFFLENBQUM7d0JBQ2pCLENBQUM7d0JBQ0QsS0FBSyxFQUFFLFVBQVUsUUFBYTs0QkFDNUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDOzRCQUNuRCxLQUFhLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDOzRCQUMxQyxPQUFPLE1BQU0sQ0FBQzt3QkFDaEIsQ0FBQztxQkFDRixDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsS0FBSyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBQ2xCLElBQUksRUFBRSxLQUFLO3dCQUNYLEtBQUssRUFBRTt3QkFDUCxDQUFDO3FCQUVGLENBQUMsQ0FBQztpQkFDSjtnQkFDRCxzREFBc0Q7YUFDdkQ7aUJBQU0sSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsR0FBRyxRQUFRLENBQUMsQ0FBQztpQkFDeEY7Z0JBQ0QsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDWixZQUFZO2FBQ2I7aUJBQU07Z0JBQ0wsR0FBRyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2hELEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3RFO1lBR0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLFNBQVMsRUFBRTtvQkFDYixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7d0JBQ3RDLFVBQVUsRUFBRSxJQUFJO3dCQUNoQixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsUUFBUSxFQUFFLElBQUk7d0JBQ2QsS0FBSyxFQUFFLEtBQUs7cUJBQ2IsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzlFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7aUJBQzFCO2FBQ0Y7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ25CLGtEQUFrRDtnQkFDbEQsaUNBQWlDO2dCQUNqQyxLQUFLLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3RELDBEQUEwRDtnQkFDMUQsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRTNDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRztvQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQzthQUMxQjtRQUVILENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLDJCQUEyQixDQUFDLENBQUM7QUFHM0UsY0FBYztBQUVkLFNBQVMsb0JBQW9CLENBQUMsS0FBVSxFQUFFLFFBQWdCO0lBQ3hELElBQUksQ0FBQyxrQkFBa0IsRUFBRTtRQUN2QixPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xDLE9BQU8sTUFBTSxDQUFDLHdCQUF3QixJQUFJLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDNUY7U0FBTTtRQUNMLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0tBQ3JFO0FBQ0gsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBVyxFQUFFLElBQTJCLEVBQUUsR0FBUTtJQUNoRixJQUFJLElBQUksWUFBWSxNQUFNLENBQUMsWUFBWSxFQUFFO1FBQ3ZDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLG1HQUFtRztZQUNuRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLEdBQUcsR0FBSSxJQUFJLENBQUMsUUFBK0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDL0U7aUJBQU07Z0JBQ0wsR0FBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2pEO1NBQ0Y7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6QixHQUFHLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDbkQ7YUFBTSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDNUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDekI7S0FFRjtTQUFNLElBQUksSUFBSSxZQUFZLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtRQUNwRCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekY7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIseUNBQXlDO1lBQ3pDLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjthQUFNO1lBQ0wsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2xEO0tBQ0Y7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLEdBQUksSUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzVEO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBR0QsU0FBUyxjQUFjLENBQUMsSUFBUztJQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLElBQVM7SUFDL0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDOUIsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0tBQy9CO1NBQU07UUFDTCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7S0FDekI7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsS0FBVTtJQUNqQyxJQUFJLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBMEIsQ0FBQztJQUM3RSxJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDeEIsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUk7UUFDMUMsSUFBSSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLFNBQVMsRUFBRTtZQUNiLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUNqQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLEtBQWEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBicmVlemUgZnJvbSAnYnJlZXplLWNsaWVudCc7XHJcblxyXG5sZXQgY29yZSA9IGJyZWV6ZS5jb3JlO1xyXG5cclxubGV0IGNhbklzb2xhdGVFUzVQcm9wcyA9IGNvcmUuaXNFUzVTdXBwb3J0ZWQ7XHJcbmxldCBrbzogYW55O1xyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGVsTGlicmFyeUtub2Nrb3V0QWRhcHRlciBpbXBsZW1lbnRzIGJyZWV6ZS5Nb2RlbExpYnJhcnlBZGFwdGVyIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLm5hbWUgPSBcImtvXCI7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVnaXN0ZXIoY29uZmlnPzogYnJlZXplLkJyZWV6ZUNvbmZpZykge1xyXG4gICAgY29uZmlnID0gY29uZmlnIHx8IGJyZWV6ZS5jb25maWc7XHJcbiAgICBjb25maWcucmVnaXN0ZXJBZGFwdGVyKFwibW9kZWxMaWJyYXJ5XCIsIE1vZGVsTGlicmFyeUtub2Nrb3V0QWRhcHRlcik7XHJcbiAgICByZXR1cm4gY29uZmlnLmluaXRpYWxpemVBZGFwdGVySW5zdGFuY2UoXCJtb2RlbExpYnJhcnlcIiwgXCJrb1wiLCB0cnVlKSBhcyBNb2RlbExpYnJhcnlLbm9ja291dEFkYXB0ZXI7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplKCkge1xyXG4gICAga28gPSBjb3JlLnJlcXVpcmVMaWIoXCJrbztrbm9ja291dFwiLCBcIlRoZSBLbm9ja291dCBsaWJyYXJ5XCIpO1xyXG4gICAga28uZXh0ZW5kZXJzLmludGVyY2VwdCA9IGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgaW50ZXJjZXB0b3JPcHRpb25zOiBhbnkpIHtcclxuICAgICAgbGV0IGluc3RhbmNlID0gaW50ZXJjZXB0b3JPcHRpb25zLmluc3RhbmNlO1xyXG4gICAgICBsZXQgcHJvcGVydHkgPSBpbnRlcmNlcHRvck9wdGlvbnMucHJvcGVydHk7XHJcblxyXG4gICAgICAvLyBjcmVhdGUgYSBjb21wdXRlZCBvYnNlcnZhYmxlIHRvIGludGVyY2VwdCB3cml0ZXMgdG8gb3VyIG9ic2VydmFibGVcclxuICAgICAgbGV0IHJlc3VsdDogYW55O1xyXG4gICAgICBpZiAodGFyZ2V0LnNwbGljZSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGtvLmNvbXB1dGVkKHtcclxuICAgICAgICAgIHJlYWQ6IHRhcmdldCAgLy9hbHdheXMgcmV0dXJuIHRoZSBvcmlnaW5hbCBvYnNlcnZhYmxlcyB2YWx1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3VsdCA9IGtvLmNvbXB1dGVkKHtcclxuICAgICAgICAgIHJlYWQ6IHRhcmdldCwgIC8vYWx3YXlzIHJldHVybiB0aGUgb3JpZ2luYWwgb2JzZXJ2YWJsZXMgdmFsdWVcclxuICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbiAobmV3VmFsdWU6IGFueSkge1xyXG4gICAgICAgICAgICBpbnN0YW5jZS5fJGludGVyY2VwdG9yKHByb3BlcnR5LCBuZXdWYWx1ZSwgdGFyZ2V0KTtcclxuICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIC8vcmV0dXJuIHRoZSBuZXcgY29tcHV0ZWQgb2JzZXJ2YWJsZVxyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRUcmFja2FibGVQcm9wZXJ0eU5hbWVzKGVudGl0eTogYW55KSB7XHJcbiAgICBsZXQgbmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBmb3IgKGxldCBwIGluIGVudGl0eSkge1xyXG4gICAgICBpZiAocCA9PT0gXCJlbnRpdHlUeXBlXCIpIGNvbnRpbnVlO1xyXG4gICAgICBpZiAocCA9PT0gXCJfJHR5cGVOYW1lXCIpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgbGV0IHByb3BEZXNjciA9IGdldEVTNVByb3BEZXNjcmlwdG9yKGVudGl0eSwgcCk7XHJcbiAgICAgIGlmIChwcm9wRGVzY3IgJiYgcHJvcERlc2NyLmdldCkge1xyXG4gICAgICAgIG5hbWVzLnB1c2gocCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IHZhbCA9IGVudGl0eVtwXTtcclxuICAgICAgICBpZiAoa28uaXNPYnNlcnZhYmxlKHZhbCkpIHtcclxuICAgICAgICAgIG5hbWVzLnB1c2gocCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghY29yZS5pc0Z1bmN0aW9uKHZhbCkpIHtcclxuICAgICAgICAgIG5hbWVzLnB1c2gocCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmFtZXM7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplRW50aXR5UHJvdG90eXBlKHByb3RvOiBhbnkpIHtcclxuXHJcbiAgICBwcm90by5nZXRQcm9wZXJ0eSA9IGZ1bmN0aW9uIChwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gdGhpc1twcm9wZXJ0eU5hbWVdKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHByb3RvLnNldFByb3BlcnR5ID0gZnVuY3Rpb24gKHByb3BlcnR5TmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICAgIHRoaXNbcHJvcGVydHlOYW1lXSh2YWx1ZSk7XHJcbiAgICAgIC8vIGFsbG93IHNldCBwcm9wZXJ0eSBjaGFpbmluZy5cclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChjYW5Jc29sYXRlRVM1UHJvcHMpIHtcclxuICAgICAgaXNvbGF0ZUVTNVByb3BzKHByb3RvKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBzdGFydFRyYWNraW5nKGVudGl0eTogYW55LCBwcm90bzogYW55KSB7XHJcbiAgICAvLyBjcmVhdGUga28ncyBmb3IgZWFjaCBwcm9wZXJ0eSBhbmQgYXNzaWduIGRlZmF1bHRWYWx1ZXNcclxuXHJcbiAgICBsZXQgc3R5cGUgPSAoZW50aXR5LmVudGl0eVR5cGUgfHwgZW50aXR5LmNvbXBsZXhUeXBlKSBhcyBicmVlemUuU3RydWN0dXJhbFR5cGU7XHJcbiAgICBsZXQgZXM1RGVzY3JpcHRvcnMgPSBzdHlwZS5fZXh0cmEuZXM1RGVzY3JpcHRvcnMgfHwge307XHJcblxyXG4gICAgLy8gc29ydCB1bm1hcHBlZCBwcm9wZXJ0aWVzIHRvIHRoZSBlbmRcclxuICAgIHN0eXBlLmdldFByb3BlcnRpZXMoKS5zb3J0KGZ1bmN0aW9uIChwMSwgcDIpIHtcclxuICAgICAgbGV0IHYxID0gcDEuaXNVbm1hcHBlZCA/IDEgOiAwO1xyXG4gICAgICBsZXQgdjIgPSBwMi5pc1VubWFwcGVkID8gMSA6IDA7XHJcbiAgICAgIHJldHVybiB2MSAtIHYyO1xyXG4gICAgfSkuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xyXG4gICAgICBsZXQgcHJvcE5hbWUgPSBwcm9wLm5hbWU7XHJcbiAgICAgIGxldCB2YWwgPSBlbnRpdHlbcHJvcE5hbWVdO1xyXG4gICAgICBsZXQgcHJvcERlc2NyID0gZXM1RGVzY3JpcHRvcnNbcHJvcE5hbWVdO1xyXG4gICAgICBsZXQga29PYmo6IGFueTtcclxuXHJcbiAgICAgIC8vIGNoZWNrIGlmIHByb3BlcnR5IGlzIGFuIEVTNSBwcm9wZXJ0eVxyXG4gICAgICBpZiAocHJvcERlc2NyKSB7XHJcbiAgICAgICAgbGV0IGdldEZuID0gcHJvcERlc2NyLmdldC5iaW5kKGVudGl0eSk7XHJcbiAgICAgICAgaWYgKHByb3BEZXNjci5zZXQpIHtcclxuICAgICAgICAgIGxldCBzZXRGbiA9IHByb3BEZXNjci5zZXQuYmluZChlbnRpdHkpO1xyXG4gICAgICAgICAgbGV0IHJhd0FjY2Vzc29yRm4gPSBmdW5jdGlvbiAobmV3VmFsdWU6IGFueSkge1xyXG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIGdldEZuKCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHNldEZuKG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGtvT2JqID0ga28uY29tcHV0ZWQoe1xyXG4gICAgICAgICAgICByZWFkOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgKHN0eXBlIGFzIGFueSkuX2tvRHVtbXkoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZ2V0Rm4oKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uIChuZXdWYWx1ZTogYW55KSB7XHJcbiAgICAgICAgICAgICAgZW50aXR5Ll8kaW50ZXJjZXB0b3IocHJvcCwgbmV3VmFsdWUsIHJhd0FjY2Vzc29yRm4pO1xyXG4gICAgICAgICAgICAgIChzdHlwZSBhcyBhbnkpLl9rb0R1bW15LnZhbHVlSGFzTXV0YXRlZCgpO1xyXG4gICAgICAgICAgICAgIHJldHVybiBlbnRpdHk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBrb09iaiA9IGtvLmNvbXB1dGVkKHtcclxuICAgICAgICAgICAgcmVhZDogZ2V0Rm4sXHJcbiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY2hlY2sgaWYgcHJvcGVydHkgaXMgYWxyZWFkeSBleHBvc2VkIGFzIGEga28gb2JqZWN0XHJcbiAgICAgIH0gZWxzZSBpZiAoa28uaXNPYnNlcnZhYmxlKHZhbCkpIHtcclxuICAgICAgICBpZiAocHJvcC5pc05hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGFzc2lnbiBhIG5hdmlnYXRpb24gcHJvcGVydHkgaW4gYW4gZW50aXR5IGN0b3IuOiBcIiArIHByb3BOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAga29PYmogPSB2YWw7XHJcbiAgICAgICAgLy8gb3RoZXJ3aXNlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFsID0gaW5pdGlhbGl6ZVZhbHVlRm9yUHJvcChlbnRpdHksIHByb3AsIHZhbCk7XHJcbiAgICAgICAga29PYmogPSBwcm9wLmlzU2NhbGFyID8ga28ub2JzZXJ2YWJsZSh2YWwpIDoga28ub2JzZXJ2YWJsZUFycmF5KHZhbCk7XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICBpZiAocHJvcC5pc1NjYWxhcikge1xyXG4gICAgICAgIGlmIChwcm9wRGVzY3IpIHtcclxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbnRpdHksIHByb3BOYW1lLCB7XHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBrb09ialxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBrb0V4dCA9IGtvT2JqLmV4dGVuZCh7IGludGVyY2VwdDogeyBpbnN0YW5jZTogZW50aXR5LCBwcm9wZXJ0eTogcHJvcCB9IH0pO1xyXG4gICAgICAgICAgZW50aXR5W3Byb3BOYW1lXSA9IGtvRXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YWwuX2tvT2JqID0ga29PYmo7XHJcbiAgICAgICAgLy8gY29kZSB0byBzdXBwcmVzcyBleHRyYSBicmVlemUgbm90aWZpY2F0aW9uIHdoZW5cclxuICAgICAgICAvLyBrbydzIGFycmF5IG1ldGhvZHMgYXJlIGNhbGxlZC5cclxuICAgICAgICBrb09iai5zdWJzY3JpYmUob25CZWZvcmVDaGFuZ2UsIG51bGwsIFwiYmVmb3JlQ2hhbmdlXCIpO1xyXG4gICAgICAgIC8vIGNvZGUgdG8gaW5zdXJlIHRoYXQgYW55IGRpcmVjdCBicmVlemUgY2hhbmdlcyBub3RpZnkga29cclxuICAgICAgICB2YWwuYXJyYXlDaGFuZ2VkLnN1YnNjcmliZShvbkFycmF5Q2hhbmdlZCk7XHJcblxyXG4gICAgICAgIGtvT2JqLmVxdWFsaXR5Q29tcGFyZXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb2xsZWN0aW9uIG5hdmlnYXRpb24gcHJvcGVydGllcyBtYXkgTk9UIGJlIHNldC5cIik7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBlbnRpdHlbcHJvcE5hbWVdID0ga29PYmo7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG59XHJcblxyXG5icmVlemUuY29uZmlnLnJlZ2lzdGVyQWRhcHRlcihcIm1vZGVsTGlicmFyeVwiLCBNb2RlbExpYnJhcnlLbm9ja291dEFkYXB0ZXIpO1xyXG5cclxuXHJcbi8vIHByaXZhdGUgZm5zXHJcblxyXG5mdW5jdGlvbiBnZXRFUzVQcm9wRGVzY3JpcHRvcihwcm90bzogYW55LCBwcm9wTmFtZTogc3RyaW5nKTogYW55IHtcclxuICBpZiAoIWNhbklzb2xhdGVFUzVQcm9wcykge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGlmIChwcm90by5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcclxuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIHByb3BOYW1lKTtcclxuICB9IGVsc2Uge1xyXG4gICAgbGV0IG5leHRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XHJcbiAgICByZXR1cm4gbmV4dFByb3RvID8gZ2V0RVM1UHJvcERlc2NyaXB0b3IobmV4dFByb3RvLCBwcm9wTmFtZSkgOiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaW5pdGlhbGl6ZVZhbHVlRm9yUHJvcChlbnRpdHk6IGFueSwgcHJvcDogYnJlZXplLkVudGl0eVByb3BlcnR5LCB2YWw6IGFueSkge1xyXG4gIGlmIChwcm9wIGluc3RhbmNlb2YgYnJlZXplLkRhdGFQcm9wZXJ0eSkge1xyXG4gICAgaWYgKHByb3AuaXNDb21wbGV4UHJvcGVydHkpIHtcclxuICAgICAgLy8gVE9ETzogcmlnaHQgbm93IHdlIGNyZWF0ZSBFbXB0eSBjb21wbGV4T2JqZWN0cyBoZXJlIC0gdGhlc2Ugc2hvdWxkIGFjdHVhbGx5IGNvbWUgZnJvbSB0aGUgZW50aXR5XHJcbiAgICAgIGlmIChwcm9wLmlzU2NhbGFyKSB7XHJcbiAgICAgICAgdmFsID0gKHByb3AuZGF0YVR5cGUgYXMgYnJlZXplLkNvbXBsZXhUeXBlKS5fY3JlYXRlSW5zdGFuY2VDb3JlKGVudGl0eSwgcHJvcCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFsID0gYnJlZXplLm1ha2VDb21wbGV4QXJyYXkoW10sIGVudGl0eSwgcHJvcCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoIXByb3AuaXNTY2FsYXIpIHtcclxuICAgICAgdmFsID0gYnJlZXplLm1ha2VQcmltaXRpdmVBcnJheShbXSwgZW50aXR5LCBwcm9wKTtcclxuICAgIH0gZWxzZSBpZiAodmFsID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdmFsID0gcHJvcC5kZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gIH0gZWxzZSBpZiAocHJvcCBpbnN0YW5jZW9mIGJyZWV6ZS5OYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYXNzaWduIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eSBpbiBhbiBlbnRpdHkgY3Rvci46IFwiICsgcHJvcC5uYW1lKTtcclxuICAgIH1cclxuICAgIGlmIChwcm9wLmlzU2NhbGFyKSB7XHJcbiAgICAgIC8vIFRPRE86IGNoYW5nZSB0aGlzIHRvIG51bGxFbnRpdHkgbGF0ZXIuXHJcbiAgICAgIHZhbCA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWwgPSBicmVlemUubWFrZVJlbGF0aW9uQXJyYXkoW10sIGVudGl0eSwgcHJvcCk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcInVua25vd24gcHJvcGVydHk6IFwiICsgKHByb3AgYXMgYW55KS5uYW1lKTtcclxuICB9XHJcbiAgcmV0dXJuIHZhbDtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIG9uQmVmb3JlQ2hhbmdlKGFyZ3M6IGFueSkge1xyXG4gIGFyZ3MuX2tvT2JqLl9zdXBwcmVzc0JyZWV6ZSA9IHRydWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG9uQXJyYXlDaGFuZ2VkKGFyZ3M6IGFueSkge1xyXG4gIGxldCBrb09iaiA9IGFyZ3MuYXJyYXkuX2tvT2JqO1xyXG4gIGlmIChrb09iai5fc3VwcHJlc3NCcmVlemUpIHtcclxuICAgIGtvT2JqLl9zdXBwcmVzc0JyZWV6ZSA9IGZhbHNlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBrb09iai52YWx1ZUhhc011dGF0ZWQoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzb2xhdGVFUzVQcm9wcyhwcm90bzogYW55KSB7XHJcbiAgbGV0IHN0eXBlID0gKHByb3RvLmVudGl0eVR5cGUgfHwgcHJvdG8uY29tcGxleFR5cGUpIGFzIGJyZWV6ZS5TdHJ1Y3R1cmFsVHlwZTtcclxuICBsZXQgZXM1RGVzY3JpcHRvcnMgPSB7fTtcclxuICBzdHlwZS5nZXRQcm9wZXJ0aWVzKCkuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xyXG4gICAgbGV0IHByb3BEZXNjciA9IGdldEVTNVByb3BEZXNjcmlwdG9yKHByb3RvLCBwcm9wLm5hbWUpO1xyXG4gICAgaWYgKHByb3BEZXNjcikge1xyXG4gICAgICBlczVEZXNjcmlwdG9yc1twcm9wLm5hbWVdID0gcHJvcERlc2NyO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICghY29yZS5pc0VtcHR5KGVzNURlc2NyaXB0b3JzKSkge1xyXG4gICAgbGV0IGV4dHJhID0gc3R5cGUuX2V4dHJhO1xyXG4gICAgZXh0cmEuZXM1RGVzY3JpcHRvcnMgPSBlczVEZXNjcmlwdG9ycztcclxuICAgIChzdHlwZSBhcyBhbnkpLl9rb0R1bW15ID0ga28ub2JzZXJ2YWJsZShudWxsKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './adapter-model-library-ko';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1hZGFwdGVyLW1vZGVsLWxpYnJhcnkta28uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnJlZXplLWNsaWVudC1hZGFwdGVyLW1vZGVsLWxpYnJhcnkta28udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXItbW9kZWwtbGlicmFyeS1rbyc7XG4iXX0=
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/** Appends parameter to url, with appropriate delimiter */
|
|
2
|
-
export function appendQueryStringParameter(url, parameter) {
|
|
3
|
-
if (!parameter)
|
|
4
|
-
return url;
|
|
5
|
-
let separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
|
|
6
|
-
return url + separator + parameter;
|
|
7
|
-
}
|
|
8
|
-
/** Encodes the object into query string parameters */
|
|
9
|
-
export function encodeParams(obj) {
|
|
10
|
-
let query = '';
|
|
11
|
-
let subValue, innerObj, fullSubName;
|
|
12
|
-
for (let name in obj) {
|
|
13
|
-
if (!obj.hasOwnProperty(name)) {
|
|
14
|
-
continue;
|
|
15
|
-
}
|
|
16
|
-
let value = obj[name];
|
|
17
|
-
if (value instanceof Array) {
|
|
18
|
-
for (let i = 0; i < value.length; ++i) {
|
|
19
|
-
subValue = value[i];
|
|
20
|
-
fullSubName = name + '[' + i + ']';
|
|
21
|
-
innerObj = {};
|
|
22
|
-
innerObj[fullSubName] = subValue;
|
|
23
|
-
query += encodeParams(innerObj) + '&';
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
else if (value && value.toISOString) { // a feature of Date-like things
|
|
27
|
-
query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';
|
|
28
|
-
}
|
|
29
|
-
else if (value instanceof Object) {
|
|
30
|
-
for (let subName in value) {
|
|
31
|
-
if (obj.hasOwnProperty(name)) {
|
|
32
|
-
subValue = value[subName];
|
|
33
|
-
fullSubName = name + '[' + subName + ']';
|
|
34
|
-
innerObj = {};
|
|
35
|
-
innerObj[fullSubName] = subValue;
|
|
36
|
-
query += encodeParams(innerObj) + '&';
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else if (value === null) {
|
|
41
|
-
query += encodeURIComponent(name) + '=&';
|
|
42
|
-
}
|
|
43
|
-
else if (value !== undefined) {
|
|
44
|
-
query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return query.length ? query.substr(0, query.length - 1) : query;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkYXB0ZXItY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEdBQVcsRUFBRSxTQUFpQjtJQUN2RSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBRTNCLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFFdkUsT0FBTyxHQUFHLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsc0RBQXNEO0FBQ3RELE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBTztJQUNsQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDZixJQUFJLFFBQWEsRUFBRSxRQUFhLEVBQUUsV0FBZ0IsQ0FBQztJQUVuRCxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUFFLFNBQVM7U0FBRTtRQUU1QyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO1lBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixXQUFXLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNuQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNkLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBQ2pDLEtBQUssSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ3ZDO1NBQ0Y7YUFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsZ0NBQWdDO1lBQ3ZFLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3pGO2FBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFO1lBQ2xDLEtBQUssSUFBSSxPQUFPLElBQUksS0FBSyxFQUFFO2dCQUN6QixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzFCLFdBQVcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7b0JBQ3pDLFFBQVEsR0FBRyxFQUFFLENBQUM7b0JBQ2QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztvQkFDakMsS0FBSyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQ3ZDO2FBQ0Y7U0FDRjthQUFNLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUN6QixLQUFLLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFDO2FBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzNFO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEFwcGVuZHMgcGFyYW1ldGVyIHRvIHVybCwgd2l0aCBhcHByb3ByaWF0ZSBkZWxpbWl0ZXIgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZFF1ZXJ5U3RyaW5nUGFyYW1ldGVyKHVybDogc3RyaW5nLCBwYXJhbWV0ZXI6IHN0cmluZykge1xyXG4gIGlmICghcGFyYW1ldGVyKSByZXR1cm4gdXJsO1xyXG5cclxuICBsZXQgc2VwYXJhdG9yID0gdXJsLmVuZHNXaXRoKFwiP1wiKSA/IFwiXCIgOiB1cmwuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIjtcclxuXHJcbiAgcmV0dXJuIHVybCArIHNlcGFyYXRvciArIHBhcmFtZXRlcjtcclxufVxyXG5cclxuLyoqIEVuY29kZXMgdGhlIG9iamVjdCBpbnRvIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzICovXHJcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQYXJhbXMob2JqOiB7fSkge1xyXG4gIGxldCBxdWVyeSA9ICcnO1xyXG4gIGxldCBzdWJWYWx1ZTogYW55LCBpbm5lck9iajogYW55LCBmdWxsU3ViTmFtZTogYW55O1xyXG5cclxuICBmb3IgKGxldCBuYW1lIGluIG9iaikge1xyXG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkobmFtZSkpIHsgY29udGludWU7IH1cclxuXHJcbiAgICBsZXQgdmFsdWUgPSBvYmpbbmFtZV07XHJcblxyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkge1xyXG4gICAgICAgIHN1YlZhbHVlID0gdmFsdWVbaV07XHJcbiAgICAgICAgZnVsbFN1Yk5hbWUgPSBuYW1lICsgJ1snICsgaSArICddJztcclxuICAgICAgICBpbm5lck9iaiA9IHt9O1xyXG4gICAgICAgIGlubmVyT2JqW2Z1bGxTdWJOYW1lXSA9IHN1YlZhbHVlO1xyXG4gICAgICAgIHF1ZXJ5ICs9IGVuY29kZVBhcmFtcyhpbm5lck9iaikgKyAnJic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUudG9JU09TdHJpbmcpIHsgLy8gYSBmZWF0dXJlIG9mIERhdGUtbGlrZSB0aGluZ3NcclxuICAgICAgcXVlcnkgKz0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlLnRvSVNPU3RyaW5nKCkpICsgJyYnO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICBmb3IgKGxldCBzdWJOYW1lIGluIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xyXG4gICAgICAgICAgc3ViVmFsdWUgPSB2YWx1ZVtzdWJOYW1lXTtcclxuICAgICAgICAgIGZ1bGxTdWJOYW1lID0gbmFtZSArICdbJyArIHN1Yk5hbWUgKyAnXSc7XHJcbiAgICAgICAgICBpbm5lck9iaiA9IHt9O1xyXG4gICAgICAgICAgaW5uZXJPYmpbZnVsbFN1Yk5hbWVdID0gc3ViVmFsdWU7XHJcbiAgICAgICAgICBxdWVyeSArPSBlbmNvZGVQYXJhbXMoaW5uZXJPYmopICsgJyYnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICBxdWVyeSArPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyAnPSYnO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHF1ZXJ5ICs9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkgKyAnJic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcXVlcnkubGVuZ3RoID8gcXVlcnkuc3Vic3RyKDAsIHF1ZXJ5Lmxlbmd0aCAtIDEpIDogcXVlcnk7XHJcbn1cclxuIl19
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import * as breeze from 'breeze-client';
|
|
2
|
-
import { appendQueryStringParameter } from './adapter-core';
|
|
3
|
-
export class UriBuilderJsonAdapter {
|
|
4
|
-
name;
|
|
5
|
-
constructor() {
|
|
6
|
-
this.name = "json";
|
|
7
|
-
}
|
|
8
|
-
static register(config) {
|
|
9
|
-
config = config || breeze.config;
|
|
10
|
-
config.registerAdapter("uriBuilder", UriBuilderJsonAdapter);
|
|
11
|
-
return config.initializeAdapterInstance("uriBuilder", "json", true);
|
|
12
|
-
}
|
|
13
|
-
initialize() { }
|
|
14
|
-
buildUri(entityQuery, metadataStore) {
|
|
15
|
-
// force entityType validation;
|
|
16
|
-
let entityType = entityQuery._getFromEntityType(metadataStore, false);
|
|
17
|
-
if (!entityType)
|
|
18
|
-
entityType = new breeze.EntityType(metadataStore);
|
|
19
|
-
let json = entityQuery.toJSONExt({ entityType: entityType, toNameOnServer: true });
|
|
20
|
-
json.from = undefined;
|
|
21
|
-
json.queryOptions = undefined;
|
|
22
|
-
if (json.parameters && json.parameters.$data) {
|
|
23
|
-
// remove parameters if doing ajax post
|
|
24
|
-
json.parameters = undefined;
|
|
25
|
-
}
|
|
26
|
-
let jsonString = JSON.stringify(json);
|
|
27
|
-
if (jsonString.length > 2) {
|
|
28
|
-
let urlBody = encodeURIComponent(jsonString);
|
|
29
|
-
return appendQueryStringParameter(entityQuery.resourceName, urlBody);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
return entityQuery.resourceName;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
breeze.config.registerAdapter("uriBuilder", UriBuilderJsonAdapter);
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci11cmktYnVpbGRlci1qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkYXB0ZXItdXJpLWJ1aWxkZXItanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLElBQUksQ0FBUztJQUViO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBNEI7UUFDMUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDNUQsT0FBTyxNQUFNLENBQUMseUJBQXlCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQTBCLENBQUM7SUFDL0YsQ0FBQztJQUVELFVBQVUsS0FBSSxDQUFDO0lBRWYsUUFBUSxDQUFDLFdBQStCLEVBQUUsYUFBbUM7UUFDM0UsK0JBQStCO1FBQy9CLElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVU7WUFBRSxVQUFVLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUMsQ0FBUSxDQUFDO1FBQzFGLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUM1Qyx1Q0FBdUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7U0FDN0I7UUFFRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekIsSUFBSSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsT0FBTywwQkFBMEIsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3RFO2FBQU07WUFDTCxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUM7U0FDakM7SUFFSCxDQUFDO0NBRUY7QUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJyZWV6ZSBmcm9tICdicmVlemUtY2xpZW50JztcclxuaW1wb3J0IHsgYXBwZW5kUXVlcnlTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tICcuL2FkYXB0ZXItY29yZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgVXJpQnVpbGRlckpzb25BZGFwdGVyIGltcGxlbWVudHMgYnJlZXplLlVyaUJ1aWxkZXJBZGFwdGVyIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5uYW1lID0gXCJqc29uXCI7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVnaXN0ZXIoY29uZmlnPzogYnJlZXplLkJyZWV6ZUNvbmZpZykge1xyXG4gICAgY29uZmlnID0gY29uZmlnIHx8IGJyZWV6ZS5jb25maWc7XHJcbiAgICBjb25maWcucmVnaXN0ZXJBZGFwdGVyKFwidXJpQnVpbGRlclwiLCBVcmlCdWlsZGVySnNvbkFkYXB0ZXIpO1xyXG4gICAgcmV0dXJuIGNvbmZpZy5pbml0aWFsaXplQWRhcHRlckluc3RhbmNlKFwidXJpQnVpbGRlclwiLCBcImpzb25cIiwgdHJ1ZSkgYXMgVXJpQnVpbGRlckpzb25BZGFwdGVyO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpIHt9XHJcblxyXG4gIGJ1aWxkVXJpKGVudGl0eVF1ZXJ5OiBicmVlemUuRW50aXR5UXVlcnksIG1ldGFkYXRhU3RvcmU6IGJyZWV6ZS5NZXRhZGF0YVN0b3JlKSB7XHJcbiAgICAvLyBmb3JjZSBlbnRpdHlUeXBlIHZhbGlkYXRpb247XHJcbiAgICBsZXQgZW50aXR5VHlwZSA9IGVudGl0eVF1ZXJ5Ll9nZXRGcm9tRW50aXR5VHlwZShtZXRhZGF0YVN0b3JlLCBmYWxzZSk7XHJcbiAgICBpZiAoIWVudGl0eVR5cGUpIGVudGl0eVR5cGUgPSBuZXcgYnJlZXplLkVudGl0eVR5cGUobWV0YWRhdGFTdG9yZSk7XHJcbiAgICBsZXQganNvbiA9IGVudGl0eVF1ZXJ5LnRvSlNPTkV4dCggeyBlbnRpdHlUeXBlOiBlbnRpdHlUeXBlLCB0b05hbWVPblNlcnZlcjogdHJ1ZX0pIGFzIGFueTtcclxuICAgIGpzb24uZnJvbSA9IHVuZGVmaW5lZDtcclxuICAgIGpzb24ucXVlcnlPcHRpb25zID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKGpzb24ucGFyYW1ldGVycyAmJiBqc29uLnBhcmFtZXRlcnMuJGRhdGEpIHtcclxuICAgICAgLy8gcmVtb3ZlIHBhcmFtZXRlcnMgaWYgZG9pbmcgYWpheCBwb3N0XHJcbiAgICAgIGpzb24ucGFyYW1ldGVycyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xyXG4gICAgaWYgKGpzb25TdHJpbmcubGVuZ3RoID4gMikge1xyXG4gICAgICBsZXQgdXJsQm9keSA9IGVuY29kZVVSSUNvbXBvbmVudChqc29uU3RyaW5nKTtcclxuICAgICAgcmV0dXJuIGFwcGVuZFF1ZXJ5U3RyaW5nUGFyYW1ldGVyKGVudGl0eVF1ZXJ5LnJlc291cmNlTmFtZSwgdXJsQm9keSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZW50aXR5UXVlcnkucmVzb3VyY2VOYW1lO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG5icmVlemUuY29uZmlnLnJlZ2lzdGVyQWRhcHRlcihcInVyaUJ1aWxkZXJcIiwgVXJpQnVpbGRlckpzb25BZGFwdGVyKTtcclxuXHJcblxyXG5cclxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './adapter-uri-builder-json';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1hZGFwdGVyLXVyaS1idWlsZGVyLWpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnJlZXplLWNsaWVudC1hZGFwdGVyLXVyaS1idWlsZGVyLWpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXItdXJpLWJ1aWxkZXItanNvbic7XG4iXX0=
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/** Appends parameter to url, with appropriate delimiter */
|
|
2
|
-
export function appendQueryStringParameter(url, parameter) {
|
|
3
|
-
if (!parameter)
|
|
4
|
-
return url;
|
|
5
|
-
let separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
|
|
6
|
-
return url + separator + parameter;
|
|
7
|
-
}
|
|
8
|
-
/** Encodes the object into query string parameters */
|
|
9
|
-
export function encodeParams(obj) {
|
|
10
|
-
let query = '';
|
|
11
|
-
let subValue, innerObj, fullSubName;
|
|
12
|
-
for (let name in obj) {
|
|
13
|
-
if (!obj.hasOwnProperty(name)) {
|
|
14
|
-
continue;
|
|
15
|
-
}
|
|
16
|
-
let value = obj[name];
|
|
17
|
-
if (value instanceof Array) {
|
|
18
|
-
for (let i = 0; i < value.length; ++i) {
|
|
19
|
-
subValue = value[i];
|
|
20
|
-
fullSubName = name + '[' + i + ']';
|
|
21
|
-
innerObj = {};
|
|
22
|
-
innerObj[fullSubName] = subValue;
|
|
23
|
-
query += encodeParams(innerObj) + '&';
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
else if (value && value.toISOString) { // a feature of Date-like things
|
|
27
|
-
query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';
|
|
28
|
-
}
|
|
29
|
-
else if (value instanceof Object) {
|
|
30
|
-
for (let subName in value) {
|
|
31
|
-
if (obj.hasOwnProperty(name)) {
|
|
32
|
-
subValue = value[subName];
|
|
33
|
-
fullSubName = name + '[' + subName + ']';
|
|
34
|
-
innerObj = {};
|
|
35
|
-
innerObj[fullSubName] = subValue;
|
|
36
|
-
query += encodeParams(innerObj) + '&';
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else if (value === null) {
|
|
41
|
-
query += encodeURIComponent(name) + '=&';
|
|
42
|
-
}
|
|
43
|
-
else if (value !== undefined) {
|
|
44
|
-
query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return query.length ? query.substr(0, query.length - 1) : query;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkYXB0ZXItY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEdBQVcsRUFBRSxTQUFpQjtJQUN2RSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBRTNCLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFFdkUsT0FBTyxHQUFHLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsc0RBQXNEO0FBQ3RELE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBTztJQUNsQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDZixJQUFJLFFBQWEsRUFBRSxRQUFhLEVBQUUsV0FBZ0IsQ0FBQztJQUVuRCxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUFFLFNBQVM7U0FBRTtRQUU1QyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO1lBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixXQUFXLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNuQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNkLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBQ2pDLEtBQUssSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ3ZDO1NBQ0Y7YUFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsZ0NBQWdDO1lBQ3ZFLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3pGO2FBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFO1lBQ2xDLEtBQUssSUFBSSxPQUFPLElBQUksS0FBSyxFQUFFO2dCQUN6QixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzFCLFdBQVcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7b0JBQ3pDLFFBQVEsR0FBRyxFQUFFLENBQUM7b0JBQ2QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztvQkFDakMsS0FBSyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQ3ZDO2FBQ0Y7U0FDRjthQUFNLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUN6QixLQUFLLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFDO2FBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzNFO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEFwcGVuZHMgcGFyYW1ldGVyIHRvIHVybCwgd2l0aCBhcHByb3ByaWF0ZSBkZWxpbWl0ZXIgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZFF1ZXJ5U3RyaW5nUGFyYW1ldGVyKHVybDogc3RyaW5nLCBwYXJhbWV0ZXI6IHN0cmluZykge1xyXG4gIGlmICghcGFyYW1ldGVyKSByZXR1cm4gdXJsO1xyXG5cclxuICBsZXQgc2VwYXJhdG9yID0gdXJsLmVuZHNXaXRoKFwiP1wiKSA/IFwiXCIgOiB1cmwuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIjtcclxuXHJcbiAgcmV0dXJuIHVybCArIHNlcGFyYXRvciArIHBhcmFtZXRlcjtcclxufVxyXG5cclxuLyoqIEVuY29kZXMgdGhlIG9iamVjdCBpbnRvIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzICovXHJcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQYXJhbXMob2JqOiB7fSkge1xyXG4gIGxldCBxdWVyeSA9ICcnO1xyXG4gIGxldCBzdWJWYWx1ZTogYW55LCBpbm5lck9iajogYW55LCBmdWxsU3ViTmFtZTogYW55O1xyXG5cclxuICBmb3IgKGxldCBuYW1lIGluIG9iaikge1xyXG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkobmFtZSkpIHsgY29udGludWU7IH1cclxuXHJcbiAgICBsZXQgdmFsdWUgPSBvYmpbbmFtZV07XHJcblxyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkge1xyXG4gICAgICAgIHN1YlZhbHVlID0gdmFsdWVbaV07XHJcbiAgICAgICAgZnVsbFN1Yk5hbWUgPSBuYW1lICsgJ1snICsgaSArICddJztcclxuICAgICAgICBpbm5lck9iaiA9IHt9O1xyXG4gICAgICAgIGlubmVyT2JqW2Z1bGxTdWJOYW1lXSA9IHN1YlZhbHVlO1xyXG4gICAgICAgIHF1ZXJ5ICs9IGVuY29kZVBhcmFtcyhpbm5lck9iaikgKyAnJic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUudG9JU09TdHJpbmcpIHsgLy8gYSBmZWF0dXJlIG9mIERhdGUtbGlrZSB0aGluZ3NcclxuICAgICAgcXVlcnkgKz0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlLnRvSVNPU3RyaW5nKCkpICsgJyYnO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICBmb3IgKGxldCBzdWJOYW1lIGluIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xyXG4gICAgICAgICAgc3ViVmFsdWUgPSB2YWx1ZVtzdWJOYW1lXTtcclxuICAgICAgICAgIGZ1bGxTdWJOYW1lID0gbmFtZSArICdbJyArIHN1Yk5hbWUgKyAnXSc7XHJcbiAgICAgICAgICBpbm5lck9iaiA9IHt9O1xyXG4gICAgICAgICAgaW5uZXJPYmpbZnVsbFN1Yk5hbWVdID0gc3ViVmFsdWU7XHJcbiAgICAgICAgICBxdWVyeSArPSBlbmNvZGVQYXJhbXMoaW5uZXJPYmopICsgJyYnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICBxdWVyeSArPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyAnPSYnO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHF1ZXJ5ICs9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkgKyAnJic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcXVlcnkubGVuZ3RoID8gcXVlcnkuc3Vic3RyKDAsIHF1ZXJ5Lmxlbmd0aCAtIDEpIDogcXVlcnk7XHJcbn1cclxuIl19
|