breeze-client 2.1.7-mjs → 2.2.0-cjs
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/adapter-ajax-angularjs/{index.d.ts → breeze-client-adapter-ajax-angularjs.d.ts} +0 -1
- package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +1 -0
- package/adapter-ajax-angularjs/package.json +13 -0
- package/adapter-ajax-fetch/{index.d.ts → breeze-client-adapter-ajax-fetch.d.ts} +0 -1
- package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +1 -0
- package/adapter-ajax-fetch/package.json +13 -0
- package/adapter-ajax-httpclient/{index.d.ts → breeze-client-adapter-ajax-httpclient.d.ts} +0 -1
- package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +1 -0
- package/adapter-ajax-httpclient/package.json +13 -0
- package/adapter-ajax-jquery/{index.d.ts → breeze-client-adapter-ajax-jquery.d.ts} +0 -1
- package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +1 -0
- package/adapter-ajax-jquery/package.json +13 -0
- package/adapter-ajax-post/{index.d.ts → breeze-client-adapter-ajax-post.d.ts} +0 -1
- package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +1 -0
- package/adapter-ajax-post/package.json +13 -0
- package/adapter-data-service-odata/{index.d.ts → breeze-client-adapter-data-service-odata.d.ts} +0 -1
- package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +1 -0
- package/adapter-data-service-odata/package.json +13 -0
- package/adapter-data-service-webapi/{index.d.ts → breeze-client-adapter-data-service-webapi.d.ts} +0 -1
- package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +1 -0
- package/adapter-data-service-webapi/package.json +13 -0
- package/adapter-model-library-backing-store/{index.d.ts → breeze-client-adapter-model-library-backing-store.d.ts} +0 -1
- package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +1 -0
- package/adapter-model-library-backing-store/package.json +13 -0
- package/adapter-model-library-ko/{index.d.ts → breeze-client-adapter-model-library-ko.d.ts} +0 -1
- package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +1 -0
- package/adapter-model-library-ko/package.json +13 -0
- package/adapter-uri-builder-json/{index.d.ts → breeze-client-adapter-uri-builder-json.d.ts} +0 -1
- package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +1 -0
- package/adapter-uri-builder-json/package.json +13 -0
- package/adapter-uri-builder-odata/{index.d.ts → breeze-client-adapter-uri-builder-odata.d.ts} +0 -1
- package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +1 -0
- package/adapter-uri-builder-odata/package.json +13 -0
- package/breeze-client.d.ts +8 -0
- package/breeze-client.metadata.json +1 -0
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +190 -0
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js +190 -0
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +195 -0
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js +115 -0
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-post.umd.js +92 -0
- package/bundles/breeze-client-adapter-ajax-post.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-data-service-odata.umd.js +747 -0
- package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +16 -0
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js +333 -0
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +16 -0
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +280 -0
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-model-library-ko.umd.js +252 -0
- package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js +96 -0
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +1 -0
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +262 -0
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +1 -0
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +2 -0
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +1 -0
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js +258 -0
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +1 -0
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +2 -0
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +1 -0
- package/bundles/breeze-client-mixin-save-queuing.umd.js +579 -0
- package/bundles/breeze-client-mixin-save-queuing.umd.js.map +1 -0
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js +16 -0
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +1 -0
- package/bundles/breeze-client.umd.js +14234 -0
- package/bundles/breeze-client.umd.js.map +1 -0
- package/bundles/breeze-client.umd.min.js +16 -0
- package/bundles/breeze-client.umd.min.js.map +1 -0
- package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +130 -0
- package/esm2015/adapter-ajax-angularjs/adapter-core.js +49 -0
- package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +5 -0
- package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +130 -0
- package/esm2015/adapter-ajax-fetch/adapter-core.js +49 -0
- package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +5 -0
- package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +137 -0
- package/esm2015/adapter-ajax-httpclient/adapter-core.js +49 -0
- package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +5 -0
- package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +103 -0
- package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +5 -0
- package/esm2015/adapter-ajax-post/adapter-ajax-post.js +77 -0
- package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +5 -0
- package/esm2015/adapter-data-service-odata/adapter-core.js +49 -0
- package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +463 -0
- package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +5 -0
- package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +100 -0
- package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +5 -0
- package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +268 -0
- package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +5 -0
- package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +240 -0
- package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +5 -0
- package/esm2015/adapter-uri-builder-json/adapter-core.js +49 -0
- package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +36 -0
- package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +5 -0
- package/esm2015/adapter-uri-builder-odata/adapter-core.js +49 -0
- package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +192 -0
- package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +5 -0
- package/esm2015/breeze-client.js +9 -0
- package/esm2015/index.js +2 -0
- package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +5 -0
- package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +269 -0
- package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +5 -0
- package/esm2015/mixin-save-queuing/mixin-save-queuing.js +400 -0
- package/esm2015/src/abstract-data-service-adapter.js +327 -0
- package/esm2015/src/array.js +4 -0
- package/esm2015/src/assert-param.js +312 -0
- package/esm2015/src/breeze.js +85 -0
- package/esm2015/src/complex-array.js +119 -0
- package/esm2015/src/config.js +223 -0
- package/esm2015/src/core.js +714 -0
- package/esm2015/src/csdl-metadata-parser.js +385 -0
- package/esm2015/src/data-service.js +203 -0
- package/esm2015/src/data-type.js +506 -0
- package/esm2015/src/default-property-interceptor.js +460 -0
- package/{esm2022/src/entity-action.mjs → esm2015/src/entity-action.js} +25 -25
- package/esm2015/src/entity-aspect.js +804 -0
- package/esm2015/src/entity-group.js +187 -0
- package/esm2015/src/entity-key.js +116 -0
- package/esm2015/src/entity-manager.js +2094 -0
- package/esm2015/src/entity-metadata.js +2109 -0
- package/esm2015/src/entity-query.js +1015 -0
- package/esm2015/src/entity-state.js +107 -0
- package/esm2015/src/enum.js +141 -0
- package/esm2015/src/event.js +256 -0
- package/esm2015/src/interface-registry.js +41 -0
- package/esm2015/src/key-generator.js +108 -0
- package/esm2015/src/local-query-comparison-options.js +65 -0
- package/esm2015/src/mapping-context.js +411 -0
- package/esm2015/src/naming-convention.js +88 -0
- package/esm2015/src/observable-array.js +185 -0
- package/esm2015/src/predicate.js +1242 -0
- package/esm2015/src/primitive-array.js +87 -0
- package/esm2015/src/query-options.js +152 -0
- package/esm2015/src/relation-array.js +175 -0
- package/esm2015/src/save-options.js +41 -0
- package/esm2015/src/unattached-children-map.js +58 -0
- package/esm2015/src/validate.js +991 -0
- package/esm2015/src/validation-options.js +64 -0
- package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +132 -0
- package/esm5/adapter-ajax-angularjs/adapter-core.js +49 -0
- package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +5 -0
- package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +132 -0
- package/esm5/adapter-ajax-fetch/adapter-core.js +49 -0
- package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +5 -0
- package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +139 -0
- package/esm5/adapter-ajax-httpclient/adapter-core.js +49 -0
- package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +5 -0
- package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +105 -0
- package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +5 -0
- package/esm5/adapter-ajax-post/adapter-ajax-post.js +81 -0
- package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +5 -0
- package/esm5/adapter-data-service-odata/adapter-core.js +49 -0
- package/{esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs → esm5/adapter-data-service-odata/adapter-data-service-odata.js} +147 -138
- package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +5 -0
- package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +105 -0
- package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +5 -0
- package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +270 -0
- package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +5 -0
- package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +242 -0
- package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +5 -0
- package/esm5/adapter-uri-builder-json/adapter-core.js +49 -0
- package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +38 -0
- package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +5 -0
- package/esm5/adapter-uri-builder-odata/adapter-core.js +49 -0
- package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +197 -0
- package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +5 -0
- package/esm5/breeze-client.js +9 -0
- package/esm5/index.js +2 -0
- package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +5 -0
- package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +269 -0
- package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +5 -0
- package/esm5/mixin-save-queuing/mixin-save-queuing.js +412 -0
- package/esm5/src/abstract-data-service-adapter.js +333 -0
- package/esm5/src/array.js +4 -0
- package/esm5/src/assert-param.js +317 -0
- package/esm5/src/breeze.js +85 -0
- package/esm5/src/complex-array.js +119 -0
- package/esm5/src/config.js +228 -0
- package/esm5/src/core.js +722 -0
- package/esm5/src/csdl-metadata-parser.js +385 -0
- package/esm5/src/data-service.js +207 -0
- package/esm5/src/data-type.js +513 -0
- package/esm5/src/default-property-interceptor.js +460 -0
- package/esm5/src/entity-action.js +52 -0
- package/esm5/src/entity-aspect.js +810 -0
- package/esm5/src/entity-group.js +189 -0
- package/esm5/src/entity-key.js +118 -0
- package/esm5/src/entity-manager.js +2112 -0
- package/esm5/src/entity-metadata.js +2144 -0
- package/esm5/src/entity-query.js +1042 -0
- package/esm5/src/entity-state.js +114 -0
- package/esm5/src/enum.js +144 -0
- package/esm5/src/event.js +259 -0
- package/esm5/src/interface-registry.js +43 -0
- package/esm5/src/key-generator.js +111 -0
- package/esm5/src/local-query-comparison-options.js +67 -0
- package/esm5/src/mapping-context.js +413 -0
- package/{esm2022/src/naming-convention.mjs → esm5/src/naming-convention.js} +29 -35
- package/esm5/src/observable-array.js +201 -0
- package/esm5/src/predicate.js +1307 -0
- package/esm5/src/primitive-array.js +87 -0
- package/esm5/src/query-options.js +167 -0
- package/esm5/src/relation-array.js +175 -0
- package/esm5/src/save-options.js +43 -0
- package/esm5/src/unattached-children-map.js +60 -0
- package/{esm2022/src/validate.mjs → esm5/src/validate.js} +110 -116
- package/esm5/src/validation-options.js +66 -0
- package/{fesm2022/breeze-client-adapter-ajax-angularjs.mjs → fesm2015/breeze-client-adapter-ajax-angularjs.js} +1 -6
- package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-ajax-fetch.mjs → fesm2015/breeze-client-adapter-ajax-fetch.js} +4 -9
- package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-ajax-httpclient.mjs → fesm2015/breeze-client-adapter-ajax-httpclient.js} +4 -6
- package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-ajax-jquery.mjs → fesm2015/breeze-client-adapter-ajax-jquery.js} +2 -6
- package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-ajax-post.mjs → fesm2015/breeze-client-adapter-ajax-post.js} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-post.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-data-service-odata.mjs → fesm2015/breeze-client-adapter-data-service-odata.js} +69 -68
- package/fesm2015/breeze-client-adapter-data-service-odata.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-data-service-webapi.mjs → fesm2015/breeze-client-adapter-data-service-webapi.js} +30 -30
- package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-model-library-backing-store.mjs → fesm2015/breeze-client-adapter-model-library-backing-store.js} +13 -14
- package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-model-library-ko.mjs → fesm2015/breeze-client-adapter-model-library-ko.js} +13 -14
- package/fesm2015/breeze-client-adapter-model-library-ko.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-uri-builder-json.mjs → fesm2015/breeze-client-adapter-uri-builder-json.js} +8 -9
- package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +1 -0
- package/{fesm2022/breeze-client-adapter-uri-builder-odata.mjs → fesm2015/breeze-client-adapter-uri-builder-odata.js} +86 -86
- package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +1 -0
- package/{fesm2022/breeze-client-mixin-get-entity-graph.mjs → fesm2015/breeze-client-mixin-get-entity-graph.js} +1 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +1 -0
- package/{fesm2022/breeze-client-mixin-save-queuing.mjs → fesm2015/breeze-client-mixin-save-queuing.js} +2 -23
- package/fesm2015/breeze-client-mixin-save-queuing.js.map +1 -0
- package/{fesm2022/breeze-client.mjs → fesm2015/breeze-client.js} +1543 -2039
- package/fesm2015/breeze-client.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-angularjs.js +186 -0
- package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-fetch.js +186 -0
- package/fesm5/breeze-client-adapter-ajax-fetch.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-httpclient.js +193 -0
- package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-jquery.js +111 -0
- package/fesm5/breeze-client-adapter-ajax-jquery.js.map +1 -0
- package/fesm5/breeze-client-adapter-ajax-post.js +86 -0
- package/fesm5/breeze-client-adapter-ajax-post.js.map +1 -0
- package/fesm5/breeze-client-adapter-data-service-odata.js +523 -0
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +1 -0
- package/fesm5/breeze-client-adapter-data-service-webapi.js +111 -0
- package/fesm5/breeze-client-adapter-data-service-webapi.js.map +1 -0
- package/fesm5/breeze-client-adapter-model-library-backing-store.js +276 -0
- package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +1 -0
- package/fesm5/breeze-client-adapter-model-library-ko.js +248 -0
- package/fesm5/breeze-client-adapter-model-library-ko.js.map +1 -0
- package/fesm5/breeze-client-adapter-uri-builder-json.js +92 -0
- package/fesm5/breeze-client-adapter-uri-builder-json.js.map +1 -0
- package/fesm5/breeze-client-adapter-uri-builder-odata.js +250 -0
- package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +1 -0
- package/fesm5/breeze-client-mixin-get-entity-graph.js +254 -0
- package/fesm5/breeze-client-mixin-get-entity-graph.js.map +1 -0
- package/fesm5/breeze-client-mixin-save-queuing.js +356 -0
- package/fesm5/breeze-client-mixin-save-queuing.js.map +1 -0
- package/fesm5/breeze-client.js +13956 -0
- package/fesm5/breeze-client.js.map +1 -0
- package/mixin-get-entity-graph/{index.d.ts → breeze-client-mixin-get-entity-graph.d.ts} +0 -1
- package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +1 -0
- package/mixin-get-entity-graph/package.json +13 -0
- package/mixin-save-queuing/{index.d.ts → breeze-client-mixin-save-queuing.d.ts} +0 -1
- package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +1 -0
- package/mixin-save-queuing/package.json +13 -0
- package/package.json +11 -93
- package/src/config.d.ts +1 -1
- package/src/core.d.ts +1 -1
- package/src/entity-aspect.d.ts +1 -1
- package/src/entity-metadata.d.ts +6 -8
- package/src/entity-query.d.ts +1 -1
- 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/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 -239
- package/esm2022/src/data-type.mjs +0 -507
- package/esm2022/src/default-property-interceptor.mjs +0 -460
- package/esm2022/src/entity-aspect.mjs +0 -897
- package/esm2022/src/entity-group.mjs +0 -192
- package/esm2022/src/entity-key.mjs +0 -127
- package/esm2022/src/entity-manager.mjs +0 -2183
- 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 -75
- package/esm2022/src/mapping-context.mjs +0 -422
- 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 -160
- package/esm2022/src/relation-array.mjs +0 -173
- package/esm2022/src/save-options.mjs +0 -51
- package/esm2022/src/unattached-children-map.mjs +0 -56
- package/esm2022/src/validation-options.mjs +0 -78
- package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
- 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.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.map +0 -1
- 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.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.map +0 -1
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { core } from './core';
|
|
2
|
-
import { observableArray } from './observable-array';
|
|
3
|
-
import { BreezeEvent } from './event';
|
|
4
|
-
// TODO: mixin impl is not very typesafe
|
|
5
|
-
// Not needed
|
|
6
|
-
// interface IPrimitiveArray extends IObservableArray {
|
|
7
|
-
// [index: number]: any;
|
|
8
|
-
// parent?: IStructuralObject;
|
|
9
|
-
// parentProperty?: DataProperty;
|
|
10
|
-
// }
|
|
11
|
-
let primitiveArrayMixin = {
|
|
12
|
-
// complexArray will have the following props
|
|
13
|
-
// parent
|
|
14
|
-
// propertyPath
|
|
15
|
-
// parentProperty
|
|
16
|
-
// addedItems - only if modified
|
|
17
|
-
// removedItems - only if modified
|
|
18
|
-
// each complexAspect of any entity within a complexArray
|
|
19
|
-
// will have its own _complexState = "A/M";
|
|
20
|
-
/**
|
|
21
|
-
Primitive arrays are not actually classes, they are objects that mimic arrays. A primitive array is collection of
|
|
22
|
-
primitive types associated with a data property on a single entity or complex object. i.e. customer.invoiceNumbers.
|
|
23
|
-
This collection looks like an array in that the basic methods on arrays such as 'push', 'pop', 'shift', 'unshift', 'splice'
|
|
24
|
-
are all provided as well as several special purpose methods.
|
|
25
|
-
@class {primitiveArray}
|
|
26
|
-
**/
|
|
27
|
-
/**
|
|
28
|
-
An [[Event]] that fires whenever the contents of this array changed. This event
|
|
29
|
-
is fired any time a new entity is attached or added to the EntityManager and happens to belong to this collection.
|
|
30
|
-
Adds that occur as a result of query or import operations are batched so that all of the adds or removes to any individual
|
|
31
|
-
collections are collected into a single notification event for each relation array.
|
|
32
|
-
@example
|
|
33
|
-
// assume order is an order entity attached to an EntityManager.
|
|
34
|
-
orders.arrayChanged.subscribe(
|
|
35
|
-
function (arrayChangedArgs) {
|
|
36
|
-
let addedEntities = arrayChangedArgs.added;
|
|
37
|
-
let removedEntities = arrayChanged.removed;
|
|
38
|
-
});
|
|
39
|
-
@event arrayChanged
|
|
40
|
-
@param added {Array of Primitives} An array of all of the items added to this collection.
|
|
41
|
-
@param removed {Array of Primitives} An array of all of the items removed from this collection.
|
|
42
|
-
@readOnly
|
|
43
|
-
**/
|
|
44
|
-
// virtual impls
|
|
45
|
-
_getGoodAdds: function (adds) {
|
|
46
|
-
return adds;
|
|
47
|
-
},
|
|
48
|
-
_beforeChange: function () {
|
|
49
|
-
let entityAspect = this.getEntityAspect();
|
|
50
|
-
if (entityAspect.entityState.isUnchanged()) {
|
|
51
|
-
entityAspect.setModified();
|
|
52
|
-
}
|
|
53
|
-
if (entityAspect.entityState.isModified() && !this._origValues) {
|
|
54
|
-
this._origValues = this.slice(0);
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
_processAdds: function (adds) {
|
|
58
|
-
// nothing needed
|
|
59
|
-
},
|
|
60
|
-
_processRemoves: function (removes) {
|
|
61
|
-
// nothing needed;
|
|
62
|
-
},
|
|
63
|
-
_rejectChanges: function () {
|
|
64
|
-
if (!this._origValues)
|
|
65
|
-
return;
|
|
66
|
-
this.length = 0;
|
|
67
|
-
Array.prototype.push.apply(this, this._origValues);
|
|
68
|
-
},
|
|
69
|
-
_acceptChanges: function () {
|
|
70
|
-
this._origValues = null;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
// local functions
|
|
74
|
-
/** For use by breeze plugin authors only. The class is for use in building a [[IModelLibraryAdapter]] implementation.
|
|
75
|
-
@adapter (see [[IModelLibraryAdapter]])
|
|
76
|
-
@hidden
|
|
77
|
-
*/
|
|
78
|
-
export function makePrimitiveArray(arr, parent, parentProperty) {
|
|
79
|
-
let arrX = arr;
|
|
80
|
-
observableArray.initializeParent(arrX, parent, parentProperty);
|
|
81
|
-
arrX.arrayChanged = new BreezeEvent("arrayChanged", arrX);
|
|
82
|
-
core.extend(arrX, observableArray.mixin);
|
|
83
|
-
return core.extend(arrX, primitiveArrayMixin);
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ByaW1pdGl2ZS1hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFHLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBSXRDLHdDQUF3QztBQUV4QyxhQUFhO0FBQ2IsdURBQXVEO0FBQ3ZELDBCQUEwQjtBQUMxQixnQ0FBZ0M7QUFDaEMsbUNBQW1DO0FBQ25DLElBQUk7QUFFSixJQUFJLG1CQUFtQixHQUFHO0lBRXhCLDZDQUE2QztJQUM3QyxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixvQ0FBb0M7SUFDcEMsc0NBQXNDO0lBQ3RDLDBEQUEwRDtJQUMxRCw0Q0FBNEM7SUFFNUM7Ozs7OztPQU1HO0lBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFFRCxnQkFBZ0I7SUFDbEIsWUFBWSxFQUFHLFVBQVMsSUFBVztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxhQUFhLEVBQUU7UUFDYixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUMsSUFBSSxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QjtRQUNELElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELFlBQVksRUFBRSxVQUFTLElBQVc7UUFDaEMsaUJBQWlCO0lBQ25CLENBQUM7SUFFRCxlQUFlLEVBQUUsVUFBUyxPQUFjO1FBQ3RDLGtCQUFrQjtJQUNwQixDQUFDO0lBR0QsY0FBYyxFQUFFO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsY0FBYyxFQUFFO1FBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztDQUNGLENBQUM7QUFDQSxrQkFBa0I7QUFFcEI7OztFQUdFO0FBQ0YsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQVUsRUFBRSxNQUF3QixFQUFFLGNBQTRCO0lBQ25HLElBQUksSUFBSSxHQUFHLEdBQVUsQ0FBQztJQUN0QixlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb3JlICB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IG9ic2VydmFibGVBcnJheSB9IGZyb20gJy4vb2JzZXJ2YWJsZS1hcnJheSc7XHJcbmltcG9ydCB7IEJyZWV6ZUV2ZW50IH0gZnJvbSAnLi9ldmVudCc7XHJcbmltcG9ydCB7IFN0cnVjdHVyYWxPYmplY3QgfSBmcm9tICcuL2VudGl0eS1hc3BlY3QnO1xyXG5pbXBvcnQgeyBEYXRhUHJvcGVydHkgfSBmcm9tICcuL2VudGl0eS1tZXRhZGF0YSc7XHJcblxyXG4vLyBUT0RPOiBtaXhpbiBpbXBsIGlzIG5vdCB2ZXJ5IHR5cGVzYWZlXHJcblxyXG4vLyBOb3QgbmVlZGVkXHJcbi8vIGludGVyZmFjZSBJUHJpbWl0aXZlQXJyYXkgZXh0ZW5kcyBJT2JzZXJ2YWJsZUFycmF5IHtcclxuLy8gICBbaW5kZXg6IG51bWJlcl06IGFueTtcclxuLy8gICBwYXJlbnQ/OiBJU3RydWN0dXJhbE9iamVjdDtcclxuLy8gICBwYXJlbnRQcm9wZXJ0eT86IERhdGFQcm9wZXJ0eTtcclxuLy8gfVxyXG5cclxubGV0IHByaW1pdGl2ZUFycmF5TWl4aW4gPSB7XHJcblxyXG4gIC8vIGNvbXBsZXhBcnJheSB3aWxsIGhhdmUgdGhlIGZvbGxvd2luZyBwcm9wc1xyXG4gIC8vICAgIHBhcmVudFxyXG4gIC8vICAgIHByb3BlcnR5UGF0aFxyXG4gIC8vICAgIHBhcmVudFByb3BlcnR5XHJcbiAgLy8gICAgYWRkZWRJdGVtcyAgLSBvbmx5IGlmIG1vZGlmaWVkXHJcbiAgLy8gICAgcmVtb3ZlZEl0ZW1zICAtIG9ubHkgaWYgbW9kaWZpZWRcclxuICAvLyAgZWFjaCBjb21wbGV4QXNwZWN0IG9mIGFueSBlbnRpdHkgd2l0aGluIGEgY29tcGxleEFycmF5XHJcbiAgLy8gIHdpbGwgaGF2ZSBpdHMgb3duIF9jb21wbGV4U3RhdGUgPSBcIkEvTVwiO1xyXG5cclxuICAvKipcclxuICBQcmltaXRpdmUgYXJyYXlzIGFyZSBub3QgYWN0dWFsbHkgY2xhc3NlcywgdGhleSBhcmUgb2JqZWN0cyB0aGF0IG1pbWljIGFycmF5cy4gQSBwcmltaXRpdmUgYXJyYXkgaXMgY29sbGVjdGlvbiBvZlxyXG4gIHByaW1pdGl2ZSB0eXBlcyBhc3NvY2lhdGVkIHdpdGggYSBkYXRhIHByb3BlcnR5IG9uIGEgc2luZ2xlIGVudGl0eSBvciBjb21wbGV4IG9iamVjdC4gaS5lLiBjdXN0b21lci5pbnZvaWNlTnVtYmVycy5cclxuICBUaGlzIGNvbGxlY3Rpb24gbG9va3MgbGlrZSBhbiBhcnJheSBpbiB0aGF0IHRoZSBiYXNpYyBtZXRob2RzIG9uIGFycmF5cyBzdWNoIGFzICdwdXNoJywgJ3BvcCcsICdzaGlmdCcsICd1bnNoaWZ0JywgJ3NwbGljZSdcclxuICBhcmUgYWxsIHByb3ZpZGVkIGFzIHdlbGwgYXMgc2V2ZXJhbCBzcGVjaWFsIHB1cnBvc2UgbWV0aG9kcy5cclxuICBAY2xhc3Mge3ByaW1pdGl2ZUFycmF5fVxyXG4gICoqL1xyXG5cclxuICAvKipcclxuICBBbiBbW0V2ZW50XV0gdGhhdCBmaXJlcyB3aGVuZXZlciB0aGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBjaGFuZ2VkLiAgVGhpcyBldmVudFxyXG4gIGlzIGZpcmVkIGFueSB0aW1lIGEgbmV3IGVudGl0eSBpcyBhdHRhY2hlZCBvciBhZGRlZCB0byB0aGUgRW50aXR5TWFuYWdlciBhbmQgaGFwcGVucyB0byBiZWxvbmcgdG8gdGhpcyBjb2xsZWN0aW9uLlxyXG4gIEFkZHMgdGhhdCBvY2N1ciBhcyBhIHJlc3VsdCBvZiBxdWVyeSBvciBpbXBvcnQgb3BlcmF0aW9ucyBhcmUgYmF0Y2hlZCBzbyB0aGF0IGFsbCBvZiB0aGUgYWRkcyBvciByZW1vdmVzIHRvIGFueSBpbmRpdmlkdWFsXHJcbiAgY29sbGVjdGlvbnMgYXJlIGNvbGxlY3RlZCBpbnRvIGEgc2luZ2xlIG5vdGlmaWNhdGlvbiBldmVudCBmb3IgZWFjaCByZWxhdGlvbiBhcnJheS5cclxuICBAZXhhbXBsZVxyXG4gICAgICAvLyBhc3N1bWUgb3JkZXIgaXMgYW4gb3JkZXIgZW50aXR5IGF0dGFjaGVkIHRvIGFuIEVudGl0eU1hbmFnZXIuXHJcbiAgICAgIG9yZGVycy5hcnJheUNoYW5nZWQuc3Vic2NyaWJlKFxyXG4gICAgICBmdW5jdGlvbiAoYXJyYXlDaGFuZ2VkQXJncykge1xyXG4gICAgICAgICAgbGV0IGFkZGVkRW50aXRpZXMgPSBhcnJheUNoYW5nZWRBcmdzLmFkZGVkO1xyXG4gICAgICAgICAgbGV0IHJlbW92ZWRFbnRpdGllcyA9IGFycmF5Q2hhbmdlZC5yZW1vdmVkO1xyXG4gICAgICB9KTtcclxuICBAZXZlbnQgYXJyYXlDaGFuZ2VkXHJcbiAgQHBhcmFtIGFkZGVkIHtBcnJheSBvZiBQcmltaXRpdmVzfSBBbiBhcnJheSBvZiBhbGwgb2YgdGhlIGl0ZW1zIGFkZGVkIHRvIHRoaXMgY29sbGVjdGlvbi5cclxuICBAcGFyYW0gcmVtb3ZlZCB7QXJyYXkgb2YgUHJpbWl0aXZlc30gQW4gYXJyYXkgb2YgYWxsIG9mIHRoZSBpdGVtcyByZW1vdmVkIGZyb20gdGhpcyBjb2xsZWN0aW9uLlxyXG4gIEByZWFkT25seVxyXG4gICoqL1xyXG5cclxuICAgIC8vIHZpcnR1YWwgaW1wbHNcclxuICBfZ2V0R29vZEFkZHM6ICBmdW5jdGlvbihhZGRzOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIGFkZHM7XHJcbiAgfSxcclxuXHJcbiAgX2JlZm9yZUNoYW5nZTogZnVuY3Rpb24oKSB7XHJcbiAgICBsZXQgZW50aXR5QXNwZWN0ID0gdGhpcy5nZXRFbnRpdHlBc3BlY3QoKTtcclxuICAgIGlmIChlbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNVbmNoYW5nZWQoKSkge1xyXG4gICAgICBlbnRpdHlBc3BlY3Quc2V0TW9kaWZpZWQoKTtcclxuICAgIH1cclxuICAgIGlmIChlbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNNb2RpZmllZCgpICYmICF0aGlzLl9vcmlnVmFsdWVzKSB7XHJcbiAgICAgIHRoaXMuX29yaWdWYWx1ZXMgPSB0aGlzLnNsaWNlKDApO1xyXG4gICAgfVxyXG4gIH0sXHJcblxyXG4gIF9wcm9jZXNzQWRkczogZnVuY3Rpb24oYWRkczogYW55W10pIHtcclxuICAgIC8vIG5vdGhpbmcgbmVlZGVkXHJcbiAgfSxcclxuXHJcbiAgX3Byb2Nlc3NSZW1vdmVzOiBmdW5jdGlvbihyZW1vdmVzOiBhbnlbXSkge1xyXG4gICAgLy8gbm90aGluZyBuZWVkZWQ7XHJcbiAgfSxcclxuXHJcblxyXG4gIF9yZWplY3RDaGFuZ2VzOiBmdW5jdGlvbigpIHtcclxuICAgIGlmICghdGhpcy5fb3JpZ1ZhbHVlcykgcmV0dXJuO1xyXG4gICAgdGhpcy5sZW5ndGggPSAwO1xyXG4gICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcywgdGhpcy5fb3JpZ1ZhbHVlcyk7XHJcbiAgfSxcclxuXHJcbiAgX2FjY2VwdENoYW5nZXM6IGZ1bmN0aW9uKCkge1xyXG4gICAgdGhpcy5fb3JpZ1ZhbHVlcyA9IG51bGw7XHJcbiAgfVxyXG59O1xyXG4gIC8vIGxvY2FsIGZ1bmN0aW9uc1xyXG5cclxuLyoqIEZvciB1c2UgYnkgYnJlZXplIHBsdWdpbiBhdXRob3JzIG9ubHkuIFRoZSBjbGFzcyBpcyBmb3IgdXNlIGluIGJ1aWxkaW5nIGEgW1tJTW9kZWxMaWJyYXJ5QWRhcHRlcl1dIGltcGxlbWVudGF0aW9uLiBcclxuQGFkYXB0ZXIgKHNlZSBbW0lNb2RlbExpYnJhcnlBZGFwdGVyXV0pICAgIFxyXG5AaGlkZGVuIFxyXG4qL1xyXG5leHBvcnQgZnVuY3Rpb24gbWFrZVByaW1pdGl2ZUFycmF5KGFycjogYW55W10sIHBhcmVudDogU3RydWN0dXJhbE9iamVjdCwgcGFyZW50UHJvcGVydHk6IERhdGFQcm9wZXJ0eSkge1xyXG4gIGxldCBhcnJYID0gYXJyIGFzIGFueTtcclxuICBvYnNlcnZhYmxlQXJyYXkuaW5pdGlhbGl6ZVBhcmVudChhcnJYLCBwYXJlbnQsIHBhcmVudFByb3BlcnR5KTtcclxuICBhcnJYLmFycmF5Q2hhbmdlZCA9IG5ldyBCcmVlemVFdmVudChcImFycmF5Q2hhbmdlZFwiLCBhcnJYKTtcclxuICBjb3JlLmV4dGVuZChhcnJYLCBvYnNlcnZhYmxlQXJyYXkubWl4aW4pO1xyXG4gIHJldHVybiBjb3JlLmV4dGVuZChhcnJYLCBwcmltaXRpdmVBcnJheU1peGluKTtcclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { core } from './core';
|
|
2
|
-
import { BreezeEnum } from './enum';
|
|
3
|
-
import { assertConfig } from './assert-param';
|
|
4
|
-
/**
|
|
5
|
-
MergeStrategy is an 'Enum' that determines how entities are merged into an EntityManager.
|
|
6
|
-
|
|
7
|
-
@class MergeStrategy
|
|
8
|
-
@static
|
|
9
|
-
**/
|
|
10
|
-
export class MergeStrategy extends BreezeEnum {
|
|
11
|
-
/**
|
|
12
|
-
MergeStrategy.PreserveChanges updates the cached entity with the incoming values unless the cached entity is in a changed
|
|
13
|
-
state (added, modified, deleted) in which case the incoming values are ignored. The updated cached entity’s EntityState will
|
|
14
|
-
remain [[EntityState.Unchanged]] unless you’re importing entities in which case the new EntityState will
|
|
15
|
-
be that of the imported entities.
|
|
16
|
-
**/
|
|
17
|
-
static PreserveChanges = new MergeStrategy();
|
|
18
|
-
/**
|
|
19
|
-
MergeStrategy.OverwriteChanges always updates the cached entity with incoming values even if the entity is in
|
|
20
|
-
a changed state (added, modified, deleted). After the merge, the pending changes are lost.
|
|
21
|
-
The new EntityState will be [[EntityState/Unchanged]] unless you’re importing entities
|
|
22
|
-
in which case the new EntityState will be that of the imported entities.
|
|
23
|
-
**/
|
|
24
|
-
static OverwriteChanges = new MergeStrategy();
|
|
25
|
-
/**
|
|
26
|
-
SkipMerge is used to ignore incoming values. Adds the incoming entity to the cache only if there is no cached entity with the same key.
|
|
27
|
-
This is the fastest merge strategy but your existing cached data will remain “stale”.
|
|
28
|
-
**/
|
|
29
|
-
static SkipMerge = new MergeStrategy();
|
|
30
|
-
/**
|
|
31
|
-
Disallowed is used to throw an exception if there is an incoming entity with the same key as an entity already in the cache.
|
|
32
|
-
Use this strategy when you want to be sure that the incoming entity is not already in cache.
|
|
33
|
-
This is the default strategy for EntityManager.attachEntity.
|
|
34
|
-
**/
|
|
35
|
-
static Disallowed = new MergeStrategy();
|
|
36
|
-
}
|
|
37
|
-
MergeStrategy.prototype._$typeName = "MergeStrategy";
|
|
38
|
-
Error['x'] = MergeStrategy.resolveSymbols();
|
|
39
|
-
/**
|
|
40
|
-
FetchStrategy is an 'Enum' that determines how and where entities are retrieved from as a result of a query.
|
|
41
|
-
**/
|
|
42
|
-
export class FetchStrategy extends BreezeEnum {
|
|
43
|
-
/**
|
|
44
|
-
FromServer is used to tell the query to execute the query against a remote data source on the server.
|
|
45
|
-
**/
|
|
46
|
-
static FromServer = new FetchStrategy();
|
|
47
|
-
/**
|
|
48
|
-
FromLocalCache is used to tell the query to execute the query against a local EntityManager instead of going to a remote server.
|
|
49
|
-
**/
|
|
50
|
-
static FromLocalCache = new FetchStrategy();
|
|
51
|
-
}
|
|
52
|
-
FetchStrategy.prototype._$typeName = "FetchStrategy";
|
|
53
|
-
Error['x'] = FetchStrategy.resolveSymbols();
|
|
54
|
-
/**
|
|
55
|
-
A QueryOptions instance is used to specify the 'options' under which a query will occur.
|
|
56
|
-
**/
|
|
57
|
-
export class QueryOptions {
|
|
58
|
-
/** @hidden @internal */
|
|
59
|
-
_$typeName;
|
|
60
|
-
/** The [[FetchStrategy]] to use with any queries. __Read Only__ */
|
|
61
|
-
fetchStrategy;
|
|
62
|
-
/** The [[MergeStrategy]] to use with any queries. __Read Only__ */
|
|
63
|
-
mergeStrategy;
|
|
64
|
-
/** Whether to include cached deleted entities in a query result (false by default). __Read Only__ */
|
|
65
|
-
includeDeleted;
|
|
66
|
-
/**
|
|
67
|
-
The default instance for use whenever QueryOptions are not specified.
|
|
68
|
-
**/
|
|
69
|
-
static defaultInstance = new QueryOptions({
|
|
70
|
-
fetchStrategy: FetchStrategy.FromServer,
|
|
71
|
-
mergeStrategy: MergeStrategy.PreserveChanges,
|
|
72
|
-
includeDeleted: false
|
|
73
|
-
});
|
|
74
|
-
/**
|
|
75
|
-
QueryOptions constructor
|
|
76
|
-
> var newQo = new QueryOptions( { mergeStrategy: MergeStrategy.OverwriteChanges });
|
|
77
|
-
> // assume em1 is a preexisting EntityManager
|
|
78
|
-
> em1.setProperties( { queryOptions: newQo });
|
|
79
|
-
Any QueryOptions property that is not defined will be defaulted from any QueryOptions defined at a higher level in the breeze hierarchy, i.e.
|
|
80
|
-
- from query.queryOptions
|
|
81
|
-
- to entityManager.queryOptions
|
|
82
|
-
- to QueryOptions.defaultInstance;
|
|
83
|
-
|
|
84
|
-
@param config - A configuration object.
|
|
85
|
-
**/
|
|
86
|
-
constructor(config) {
|
|
87
|
-
QueryOptions._updateWithConfig(this, config);
|
|
88
|
-
}
|
|
89
|
-
static resolve(queryOptionsArray) {
|
|
90
|
-
return new QueryOptions(core.resolveProperties(queryOptionsArray, ["fetchStrategy", "mergeStrategy", "includeDeleted"]));
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
Returns a copy of this QueryOptions with the specified [[MergeStrategy]],
|
|
94
|
-
[[FetchStrategy]], or 'includeDeleted' option applied.
|
|
95
|
-
> // Given an EntityManager instance, em
|
|
96
|
-
> var queryOptions = em.queryOptions.using(MergeStrategy.PreserveChanges);
|
|
97
|
-
|
|
98
|
-
or
|
|
99
|
-
> var queryOptions = em.queryOptions.using(FetchStrategy.FromLocalCache);
|
|
100
|
-
|
|
101
|
-
or
|
|
102
|
-
> var queryOptions = em.queryOptions.using({ mergeStrategy: MergeStrategy.OverwriteChanges });
|
|
103
|
-
|
|
104
|
-
or
|
|
105
|
-
> var queryOptions = em.queryOptions.using({
|
|
106
|
-
> includeDeleted: true,
|
|
107
|
-
> fetchStrategy: FetchStrategy.FromLocalCache
|
|
108
|
-
> });
|
|
109
|
-
@param config - A configuration object or a standalone [[MergeStrategy]] or [[FetchStrategy]]
|
|
110
|
-
@return A new QueryOptions instance.
|
|
111
|
-
**/
|
|
112
|
-
using(qoConfig) {
|
|
113
|
-
if (!qoConfig)
|
|
114
|
-
return this;
|
|
115
|
-
let result = new QueryOptions(this);
|
|
116
|
-
if (qoConfig instanceof MergeStrategy) {
|
|
117
|
-
qoConfig = { mergeStrategy: qoConfig };
|
|
118
|
-
}
|
|
119
|
-
else if (qoConfig instanceof FetchStrategy) {
|
|
120
|
-
qoConfig = { fetchStrategy: qoConfig };
|
|
121
|
-
}
|
|
122
|
-
return QueryOptions._updateWithConfig(result, qoConfig);
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance.
|
|
126
|
-
The current instance is returned unchanged.
|
|
127
|
-
> var newQo = new QueryOptions( { mergeStrategy: MergeStrategy.OverwriteChanges });
|
|
128
|
-
> newQo.setAsDefault();
|
|
129
|
-
**/
|
|
130
|
-
setAsDefault() {
|
|
131
|
-
return core.setAsDefault(this, QueryOptions);
|
|
132
|
-
}
|
|
133
|
-
toJSON() {
|
|
134
|
-
return core.toJson(this, {
|
|
135
|
-
fetchStrategy: null,
|
|
136
|
-
mergeStrategy: null,
|
|
137
|
-
includeDeleted: false
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
static fromJSON(json) {
|
|
141
|
-
return new QueryOptions({
|
|
142
|
-
fetchStrategy: FetchStrategy.fromName(json.fetchStrategy),
|
|
143
|
-
mergeStrategy: MergeStrategy.fromName(json.mergeStrategy),
|
|
144
|
-
includeDeleted: json.includeDeleted === true
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
/** @hidden @internal */
|
|
148
|
-
static _updateWithConfig(obj, config) {
|
|
149
|
-
if (config) {
|
|
150
|
-
assertConfig(config)
|
|
151
|
-
.whereParam("fetchStrategy").isEnumOf(FetchStrategy).isOptional()
|
|
152
|
-
.whereParam("mergeStrategy").isEnumOf(MergeStrategy).isOptional()
|
|
153
|
-
.whereParam("includeDeleted").isBoolean().isOptional()
|
|
154
|
-
.applyAll(obj);
|
|
155
|
-
}
|
|
156
|
-
return obj;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
QueryOptions.prototype._$typeName = "QueryOptions";
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyeS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUM7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVU7SUFFM0M7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFDN0M7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUU5Qzs7O09BR0c7SUFDSCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFFdkM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQzs7QUFJMUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDO0FBQ3JELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVU7SUFFM0M7O09BRUc7SUFDSCxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFDeEM7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7O0FBRzlDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQztBQUNyRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDO0FBWTVDOztH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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb3JlIH0gZnJvbSAnLi9jb3JlJztcclxuaW1wb3J0IHsgQnJlZXplRW51bSB9IGZyb20gJy4vZW51bSc7XHJcbmltcG9ydCB7IGFzc2VydENvbmZpZyB9IGZyb20gJy4vYXNzZXJ0LXBhcmFtJztcclxuXHJcbi8qKlxyXG5NZXJnZVN0cmF0ZWd5IGlzIGFuICdFbnVtJyB0aGF0IGRldGVybWluZXMgaG93IGVudGl0aWVzIGFyZSBtZXJnZWQgaW50byBhbiBFbnRpdHlNYW5hZ2VyLlxyXG5cclxuQGNsYXNzIE1lcmdlU3RyYXRlZ3lcclxuQHN0YXRpY1xyXG4qKi9cclxuZXhwb3J0IGNsYXNzIE1lcmdlU3RyYXRlZ3kgZXh0ZW5kcyBCcmVlemVFbnVtIHtcclxuXHJcbiAgLyoqXHJcbiAgTWVyZ2VTdHJhdGVneS5QcmVzZXJ2ZUNoYW5nZXMgdXBkYXRlcyB0aGUgY2FjaGVkIGVudGl0eSB3aXRoIHRoZSBpbmNvbWluZyB2YWx1ZXMgdW5sZXNzIHRoZSBjYWNoZWQgZW50aXR5IGlzIGluIGEgY2hhbmdlZFxyXG4gIHN0YXRlIChhZGRlZCwgbW9kaWZpZWQsIGRlbGV0ZWQpIGluIHdoaWNoIGNhc2UgdGhlIGluY29taW5nIHZhbHVlcyBhcmUgaWdub3JlZC4gVGhlIHVwZGF0ZWQgY2FjaGVkIGVudGl0eeKAmXMgRW50aXR5U3RhdGUgd2lsbFxyXG4gIHJlbWFpbiBbW0VudGl0eVN0YXRlLlVuY2hhbmdlZF1dIHVubGVzcyB5b3XigJlyZSBpbXBvcnRpbmcgZW50aXRpZXMgaW4gd2hpY2ggY2FzZSB0aGUgbmV3IEVudGl0eVN0YXRlIHdpbGxcclxuICBiZSB0aGF0IG9mIHRoZSBpbXBvcnRlZCBlbnRpdGllcy5cclxuICAqKi9cclxuICBzdGF0aWMgUHJlc2VydmVDaGFuZ2VzID0gbmV3IE1lcmdlU3RyYXRlZ3koKTtcclxuICAvKipcclxuICBNZXJnZVN0cmF0ZWd5Lk92ZXJ3cml0ZUNoYW5nZXMgYWx3YXlzIHVwZGF0ZXMgdGhlIGNhY2hlZCBlbnRpdHkgd2l0aCBpbmNvbWluZyB2YWx1ZXMgZXZlbiBpZiB0aGUgZW50aXR5IGlzIGluXHJcbiAgYSBjaGFuZ2VkIHN0YXRlIChhZGRlZCwgbW9kaWZpZWQsIGRlbGV0ZWQpLiBBZnRlciB0aGUgbWVyZ2UsIHRoZSBwZW5kaW5nIGNoYW5nZXMgYXJlIGxvc3QuXHJcbiAgVGhlIG5ldyBFbnRpdHlTdGF0ZSB3aWxsIGJlICBbW0VudGl0eVN0YXRlL1VuY2hhbmdlZF1dIHVubGVzcyB5b3XigJlyZSBpbXBvcnRpbmcgZW50aXRpZXNcclxuICBpbiB3aGljaCBjYXNlIHRoZSBuZXcgRW50aXR5U3RhdGUgd2lsbCBiZSB0aGF0IG9mIHRoZSBpbXBvcnRlZCBlbnRpdGllcy5cclxuICAqKi9cclxuICBzdGF0aWMgT3ZlcndyaXRlQ2hhbmdlcyA9IG5ldyBNZXJnZVN0cmF0ZWd5KCk7XHJcblxyXG4gIC8qKlxyXG4gIFNraXBNZXJnZSBpcyB1c2VkIHRvIGlnbm9yZSBpbmNvbWluZyB2YWx1ZXMuIEFkZHMgdGhlIGluY29taW5nIGVudGl0eSB0byB0aGUgY2FjaGUgb25seSBpZiB0aGVyZSBpcyBubyBjYWNoZWQgZW50aXR5IHdpdGggdGhlIHNhbWUga2V5LlxyXG4gIFRoaXMgaXMgdGhlIGZhc3Rlc3QgbWVyZ2Ugc3RyYXRlZ3kgYnV0IHlvdXIgZXhpc3RpbmcgY2FjaGVkIGRhdGEgd2lsbCByZW1haW4g4oCcc3RhbGXigJ0uXHJcbiAgKiovXHJcbiAgc3RhdGljIFNraXBNZXJnZSA9IG5ldyBNZXJnZVN0cmF0ZWd5KCk7XHJcblxyXG4gIC8qKlxyXG4gIERpc2FsbG93ZWQgaXMgdXNlZCB0byB0aHJvdyBhbiBleGNlcHRpb24gaWYgdGhlcmUgaXMgYW4gaW5jb21pbmcgZW50aXR5IHdpdGggdGhlIHNhbWUga2V5IGFzIGFuIGVudGl0eSBhbHJlYWR5IGluIHRoZSBjYWNoZS5cclxuICBVc2UgdGhpcyBzdHJhdGVneSB3aGVuIHlvdSB3YW50IHRvIGJlIHN1cmUgdGhhdCB0aGUgaW5jb21pbmcgZW50aXR5IGlzIG5vdCBhbHJlYWR5IGluIGNhY2hlLlxyXG4gIFRoaXMgaXMgdGhlIGRlZmF1bHQgc3RyYXRlZ3kgZm9yIEVudGl0eU1hbmFnZXIuYXR0YWNoRW50aXR5LlxyXG4gICoqL1xyXG4gIHN0YXRpYyBEaXNhbGxvd2VkID0gbmV3IE1lcmdlU3RyYXRlZ3koKTtcclxuXHJcblxyXG59XHJcbk1lcmdlU3RyYXRlZ3kucHJvdG90eXBlLl8kdHlwZU5hbWUgPSBcIk1lcmdlU3RyYXRlZ3lcIjtcclxuRXJyb3JbJ3gnXSA9IE1lcmdlU3RyYXRlZ3kucmVzb2x2ZVN5bWJvbHMoKTtcclxuXHJcbi8qKlxyXG5GZXRjaFN0cmF0ZWd5IGlzIGFuICdFbnVtJyB0aGF0IGRldGVybWluZXMgaG93IGFuZCB3aGVyZSBlbnRpdGllcyBhcmUgcmV0cmlldmVkIGZyb20gYXMgYSByZXN1bHQgb2YgYSBxdWVyeS5cclxuKiovXHJcbmV4cG9ydCBjbGFzcyBGZXRjaFN0cmF0ZWd5IGV4dGVuZHMgQnJlZXplRW51bSB7XHJcblxyXG4gIC8qKlxyXG4gIEZyb21TZXJ2ZXIgaXMgdXNlZCB0byB0ZWxsIHRoZSBxdWVyeSB0byBleGVjdXRlIHRoZSBxdWVyeSBhZ2FpbnN0IGEgcmVtb3RlIGRhdGEgc291cmNlIG9uIHRoZSBzZXJ2ZXIuXHJcbiAgKiovXHJcbiAgc3RhdGljIEZyb21TZXJ2ZXIgPSBuZXcgRmV0Y2hTdHJhdGVneSgpO1xyXG4gIC8qKlxyXG4gIEZyb21Mb2NhbENhY2hlIGlzIHVzZWQgdG8gdGVsbCB0aGUgcXVlcnkgdG8gZXhlY3V0ZSB0aGUgcXVlcnkgYWdhaW5zdCBhIGxvY2FsIEVudGl0eU1hbmFnZXIgaW5zdGVhZCBvZiBnb2luZyB0byBhIHJlbW90ZSBzZXJ2ZXIuXHJcbiAgKiovXHJcbiAgc3RhdGljIEZyb21Mb2NhbENhY2hlID0gbmV3IEZldGNoU3RyYXRlZ3koKTtcclxuXHJcbn1cclxuRmV0Y2hTdHJhdGVneS5wcm90b3R5cGUuXyR0eXBlTmFtZSA9IFwiRmV0Y2hTdHJhdGVneVwiO1xyXG5FcnJvclsneCddID0gRmV0Y2hTdHJhdGVneS5yZXNvbHZlU3ltYm9scygpO1xyXG5cclxuLyoqIENvbmZpZ3VyYXRpb24gaW5mbyB0byBiZSBwYXNzZWQgdG8gdGhlIFtbUXVlcnlPcHRpb25zXV0gY29uc3RydWN0b3IuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlPcHRpb25zQ29uZmlnIHtcclxuICAvKiogVGhlIFtbRmV0Y2hTdHJhdGVneV1dIHRvIHVzZSB3aXRoIGFueSBxdWVyaWVzLiovXHJcbiAgZmV0Y2hTdHJhdGVneT86IEZldGNoU3RyYXRlZ3k7XHJcbiAgLyoqIFRoZSBbW01lcmdlU3RyYXRlZ3ldXSB0byB1c2Ugd2l0aCBhbnkgcXVlcmllcy4qL1xyXG4gIG1lcmdlU3RyYXRlZ3k/OiBNZXJnZVN0cmF0ZWd5O1xyXG4gIC8qKiBXaGV0aGVyIHRvIGluY2x1ZGUgY2FjaGVkIGRlbGV0ZWQgZW50aXRpZXMgaW4gYSBxdWVyeSByZXN1bHQgKGZhbHNlIGJ5IGRlZmF1bHQpLiBfX1JlYWQgT25seV9fICovXHJcbiAgaW5jbHVkZURlbGV0ZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuQSBRdWVyeU9wdGlvbnMgaW5zdGFuY2UgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAnb3B0aW9ucycgdW5kZXIgd2hpY2ggYSBxdWVyeSB3aWxsIG9jY3VyLlxyXG4qKi9cclxuZXhwb3J0IGNsYXNzIFF1ZXJ5T3B0aW9ucyB7XHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgXyR0eXBlTmFtZTogc3RyaW5nO1xyXG4gIC8qKiBUaGUgW1tGZXRjaFN0cmF0ZWd5XV0gdG8gdXNlIHdpdGggYW55IHF1ZXJpZXMuIF9fUmVhZCBPbmx5X18gKi9cclxuICBmZXRjaFN0cmF0ZWd5OiBGZXRjaFN0cmF0ZWd5O1xyXG4gIC8qKiBUaGUgW1tNZXJnZVN0cmF0ZWd5XV0gdG8gdXNlIHdpdGggYW55IHF1ZXJpZXMuIF9fUmVhZCBPbmx5X18gKi9cclxuICBtZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5O1xyXG4gIC8qKiBXaGV0aGVyIHRvIGluY2x1ZGUgY2FjaGVkIGRlbGV0ZWQgZW50aXRpZXMgaW4gYSBxdWVyeSByZXN1bHQgKGZhbHNlIGJ5IGRlZmF1bHQpLiBfX1JlYWQgT25seV9fICovXHJcbiAgaW5jbHVkZURlbGV0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gIFRoZSBkZWZhdWx0IGluc3RhbmNlIGZvciB1c2Ugd2hlbmV2ZXIgUXVlcnlPcHRpb25zIGFyZSBub3Qgc3BlY2lmaWVkLlxyXG4gICoqL1xyXG4gIHN0YXRpYyBkZWZhdWx0SW5zdGFuY2UgPSBuZXcgUXVlcnlPcHRpb25zKHtcclxuICAgIGZldGNoU3RyYXRlZ3k6IEZldGNoU3RyYXRlZ3kuRnJvbVNlcnZlcixcclxuICAgIG1lcmdlU3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3kuUHJlc2VydmVDaGFuZ2VzLFxyXG4gICAgaW5jbHVkZURlbGV0ZWQ6IGZhbHNlXHJcbiAgfSk7XHJcblxyXG4gIC8qKlxyXG4gIFF1ZXJ5T3B0aW9ucyBjb25zdHJ1Y3RvclxyXG4gID4gICAgIHZhciBuZXdRbyA9IG5ldyBRdWVyeU9wdGlvbnMoIHsgbWVyZ2VTdHJhdGVneTogTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGVDaGFuZ2VzIH0pO1xyXG4gID4gICAgIC8vIGFzc3VtZSBlbTEgaXMgYSBwcmVleGlzdGluZyBFbnRpdHlNYW5hZ2VyXHJcbiAgPiAgICAgZW0xLnNldFByb3BlcnRpZXMoIHsgcXVlcnlPcHRpb25zOiBuZXdRbyB9KTtcclxuICBBbnkgUXVlcnlPcHRpb25zIHByb3BlcnR5IHRoYXQgaXMgbm90IGRlZmluZWQgd2lsbCBiZSBkZWZhdWx0ZWQgZnJvbSBhbnkgUXVlcnlPcHRpb25zIGRlZmluZWQgYXQgYSBoaWdoZXIgbGV2ZWwgaW4gdGhlIGJyZWV6ZSBoaWVyYXJjaHksIGkuZS5cclxuICAtICBmcm9tIHF1ZXJ5LnF1ZXJ5T3B0aW9uc1xyXG4gIC0gIHRvICAgZW50aXR5TWFuYWdlci5xdWVyeU9wdGlvbnNcclxuICAtICB0byAgIFF1ZXJ5T3B0aW9ucy5kZWZhdWx0SW5zdGFuY2U7XHJcblxyXG4gIEBwYXJhbSBjb25maWcgLSBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxyXG4gICoqL1xyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IFF1ZXJ5T3B0aW9uc0NvbmZpZykge1xyXG4gICAgUXVlcnlPcHRpb25zLl91cGRhdGVXaXRoQ29uZmlnKHRoaXMsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVzb2x2ZShxdWVyeU9wdGlvbnNBcnJheTogYW55W10pIHtcclxuICAgIHJldHVybiBuZXcgUXVlcnlPcHRpb25zKGNvcmUucmVzb2x2ZVByb3BlcnRpZXMocXVlcnlPcHRpb25zQXJyYXksIFtcImZldGNoU3RyYXRlZ3lcIiwgXCJtZXJnZVN0cmF0ZWd5XCIsIFwiaW5jbHVkZURlbGV0ZWRcIl0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFJldHVybnMgYSBjb3B5IG9mIHRoaXMgUXVlcnlPcHRpb25zIHdpdGggdGhlIHNwZWNpZmllZCBbW01lcmdlU3RyYXRlZ3ldXSxcclxuICBbW0ZldGNoU3RyYXRlZ3ldXSwgb3IgJ2luY2x1ZGVEZWxldGVkJyBvcHRpb24gYXBwbGllZC5cclxuICA+ICAgICAvLyBHaXZlbiBhbiBFbnRpdHlNYW5hZ2VyIGluc3RhbmNlLCBlbVxyXG4gID4gICAgIHZhciBxdWVyeU9wdGlvbnMgPSBlbS5xdWVyeU9wdGlvbnMudXNpbmcoTWVyZ2VTdHJhdGVneS5QcmVzZXJ2ZUNoYW5nZXMpO1xyXG5cclxuICBvclxyXG4gID4gICAgIHZhciBxdWVyeU9wdGlvbnMgPSBlbS5xdWVyeU9wdGlvbnMudXNpbmcoRmV0Y2hTdHJhdGVneS5Gcm9tTG9jYWxDYWNoZSk7XHJcblxyXG4gIG9yXHJcbiAgPiAgICAgdmFyIHF1ZXJ5T3B0aW9ucyA9IGVtLnF1ZXJ5T3B0aW9ucy51c2luZyh7IG1lcmdlU3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3kuT3ZlcndyaXRlQ2hhbmdlcyB9KTtcclxuXHJcbiAgb3JcclxuICA+ICAgICB2YXIgcXVlcnlPcHRpb25zID0gZW0ucXVlcnlPcHRpb25zLnVzaW5nKHtcclxuICA+ICAgICAgICBpbmNsdWRlRGVsZXRlZDogdHJ1ZSxcclxuICA+ICAgICAgICBmZXRjaFN0cmF0ZWd5OiAgRmV0Y2hTdHJhdGVneS5Gcm9tTG9jYWxDYWNoZSBcclxuICA+ICAgICB9KTtcclxuICBAcGFyYW0gY29uZmlnIC0gQSBjb25maWd1cmF0aW9uIG9iamVjdCBvciBhIHN0YW5kYWxvbmUgW1tNZXJnZVN0cmF0ZWd5XV0gb3IgW1tGZXRjaFN0cmF0ZWd5XV0gXHJcbiAgQHJldHVybiBBIG5ldyBRdWVyeU9wdGlvbnMgaW5zdGFuY2UuXHJcbiAgKiovXHJcbiAgdXNpbmcocW9Db25maWc6IFF1ZXJ5T3B0aW9uc0NvbmZpZyB8IE1lcmdlU3RyYXRlZ3kgfCBGZXRjaFN0cmF0ZWd5KSB7XHJcbiAgICBpZiAoIXFvQ29uZmlnKSByZXR1cm4gdGhpcztcclxuICAgIGxldCByZXN1bHQgPSBuZXcgUXVlcnlPcHRpb25zKHRoaXMpO1xyXG4gICAgaWYgKCBxb0NvbmZpZyBpbnN0YW5jZW9mIE1lcmdlU3RyYXRlZ3kpIHtcclxuICAgICAgcW9Db25maWcgPSB7IG1lcmdlU3RyYXRlZ3k6IHFvQ29uZmlnIH07XHJcbiAgICB9IGVsc2UgaWYgKCBxb0NvbmZpZyBpbnN0YW5jZW9mIEZldGNoU3RyYXRlZ3kpIHtcclxuICAgICAgcW9Db25maWcgPSB7IGZldGNoU3RyYXRlZ3k6IHFvQ29uZmlnIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUXVlcnlPcHRpb25zLl91cGRhdGVXaXRoQ29uZmlnKHJlc3VsdCwgcW9Db25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgU2V0cyB0aGUgJ2RlZmF1bHRJbnN0YW5jZScgYnkgY3JlYXRpbmcgYSBjb3B5IG9mIHRoZSBjdXJyZW50ICdkZWZhdWx0SW5zdGFuY2UnIGFuZCB0aGVuIGFwcGx5aW5nIGFsbCBvZiB0aGUgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBpbnN0YW5jZS5cclxuICBUaGUgY3VycmVudCBpbnN0YW5jZSBpcyByZXR1cm5lZCB1bmNoYW5nZWQuXHJcbiAgPiAgICAgdmFyIG5ld1FvID0gbmV3IFF1ZXJ5T3B0aW9ucyggeyBtZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5Lk92ZXJ3cml0ZUNoYW5nZXMgfSk7XHJcbiAgPiAgICAgbmV3UW8uc2V0QXNEZWZhdWx0KCk7XHJcbiAgKiovXHJcbiAgc2V0QXNEZWZhdWx0KCkge1xyXG4gICAgcmV0dXJuIGNvcmUuc2V0QXNEZWZhdWx0KHRoaXMsIFF1ZXJ5T3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICB0b0pTT04oKSB7XHJcbiAgICByZXR1cm4gY29yZS50b0pzb24odGhpcywge1xyXG4gICAgICBmZXRjaFN0cmF0ZWd5OiBudWxsLFxyXG4gICAgICBtZXJnZVN0cmF0ZWd5OiBudWxsLFxyXG4gICAgICBpbmNsdWRlRGVsZXRlZDogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZyb21KU09OKGpzb246IGFueSkge1xyXG4gICAgcmV0dXJuIG5ldyBRdWVyeU9wdGlvbnMoe1xyXG4gICAgICBmZXRjaFN0cmF0ZWd5OiBGZXRjaFN0cmF0ZWd5LmZyb21OYW1lKGpzb24uZmV0Y2hTdHJhdGVneSksXHJcbiAgICAgIG1lcmdlU3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3kuZnJvbU5hbWUoanNvbi5tZXJnZVN0cmF0ZWd5KSxcclxuICAgICAgaW5jbHVkZURlbGV0ZWQ6IGpzb24uaW5jbHVkZURlbGV0ZWQgPT09IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgX3VwZGF0ZVdpdGhDb25maWcob2JqOiBRdWVyeU9wdGlvbnMsIGNvbmZpZz86IFF1ZXJ5T3B0aW9uc0NvbmZpZykge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBhc3NlcnRDb25maWcoY29uZmlnKVxyXG4gICAgICAgIC53aGVyZVBhcmFtKFwiZmV0Y2hTdHJhdGVneVwiKS5pc0VudW1PZihGZXRjaFN0cmF0ZWd5KS5pc09wdGlvbmFsKClcclxuICAgICAgICAud2hlcmVQYXJhbShcIm1lcmdlU3RyYXRlZ3lcIikuaXNFbnVtT2YoTWVyZ2VTdHJhdGVneSkuaXNPcHRpb25hbCgpXHJcbiAgICAgICAgLndoZXJlUGFyYW0oXCJpbmNsdWRlRGVsZXRlZFwiKS5pc0Jvb2xlYW4oKS5pc09wdGlvbmFsKClcclxuICAgICAgICAuYXBwbHlBbGwob2JqKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG5cclxufVxyXG5RdWVyeU9wdGlvbnMucHJvdG90eXBlLl8kdHlwZU5hbWUgPSBcIlF1ZXJ5T3B0aW9uc1wiO1xyXG4iXX0=
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { core } from './core';
|
|
2
|
-
import { EntityQuery } from './entity-query';
|
|
3
|
-
import { EntityState } from './entity-state';
|
|
4
|
-
import { BreezeEvent } from './event';
|
|
5
|
-
import { observableArray } from './observable-array';
|
|
6
|
-
let relationArrayMixin = {
|
|
7
|
-
/**
|
|
8
|
-
Relation arrays are not actually classes, they are objects that mimic arrays. A relation array is collection of
|
|
9
|
-
entities associated with a navigation property on a single entity. i.e. customer.orders or order.orderDetails.
|
|
10
|
-
This collection looks like an array in that the basic methods on arrays such as 'push', 'pop', 'shift', 'unshift', 'splice'
|
|
11
|
-
are all provided as well as several special purpose methods.
|
|
12
|
-
@class {relationArray}
|
|
13
|
-
**/
|
|
14
|
-
/**
|
|
15
|
-
An [[Event]] that fires whenever the contents of this array changed. This event
|
|
16
|
-
is fired any time a new entity is attached or added to the EntityManager and happens to belong to this collection.
|
|
17
|
-
Adds that occur as a result of query or import operations are batched so that all of the adds or removes to any individual
|
|
18
|
-
collections are collected into a single notification event for each relation array.
|
|
19
|
-
@example
|
|
20
|
-
// assume order is an order entity attached to an EntityManager.
|
|
21
|
-
orders.arrayChanged.subscribe(
|
|
22
|
-
function (arrayChangedArgs) {
|
|
23
|
-
let addedEntities = arrayChangedArgs.added;
|
|
24
|
-
let removedEntities = arrayChanged.removed;
|
|
25
|
-
});
|
|
26
|
-
@event arrayChanged
|
|
27
|
-
@param added {Array of Entity} An array of all of the entities added to this collection.
|
|
28
|
-
@param removed {Array of Entity} An array of all of the removed from this collection.
|
|
29
|
-
@readOnly
|
|
30
|
-
**/
|
|
31
|
-
/**
|
|
32
|
-
Performs an asynchronous load of all other the entities associated with this relationArray.
|
|
33
|
-
@example
|
|
34
|
-
// assume orders is an empty, as yet unpopulated, relation array of orders
|
|
35
|
-
// associated with a specific customer.
|
|
36
|
-
orders.load().then(...)
|
|
37
|
-
@method load
|
|
38
|
-
@param [callback] {Function}
|
|
39
|
-
@param [errorCallback] {Function}
|
|
40
|
-
@return {Promise}
|
|
41
|
-
**/
|
|
42
|
-
load: function (callback, errorCallback) {
|
|
43
|
-
let parent = this.parentEntity;
|
|
44
|
-
let query = EntityQuery.fromEntityNavigation(this.parentEntity, this.navigationProperty);
|
|
45
|
-
let em = parent.entityAspect.entityManager;
|
|
46
|
-
return em.executeQuery(query, callback, errorCallback);
|
|
47
|
-
},
|
|
48
|
-
_getEventParent: function () {
|
|
49
|
-
return this.parentEntity.entityAspect;
|
|
50
|
-
},
|
|
51
|
-
_getPendingPubs: function () {
|
|
52
|
-
let em = this.parentEntity.entityAspect.entityManager;
|
|
53
|
-
return em && em._pendingPubs;
|
|
54
|
-
},
|
|
55
|
-
// virtual impls
|
|
56
|
-
_getGoodAdds: function (adds) {
|
|
57
|
-
return getGoodAdds(this, adds);
|
|
58
|
-
},
|
|
59
|
-
_processAdds: function (adds) {
|
|
60
|
-
processAdds(this, adds);
|
|
61
|
-
},
|
|
62
|
-
_processRemoves: function (removes) {
|
|
63
|
-
processRemoves(this, removes);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
function getGoodAdds(relationArray, adds) {
|
|
67
|
-
let goodAdds = checkForDups(relationArray, adds);
|
|
68
|
-
if (!goodAdds.length) {
|
|
69
|
-
return goodAdds;
|
|
70
|
-
}
|
|
71
|
-
let parentEntity = relationArray.parentEntity;
|
|
72
|
-
let entityManager = parentEntity.entityAspect.entityManager;
|
|
73
|
-
// we do not want to attach an entity during loading
|
|
74
|
-
// because these will all be 'attached' at a later step.
|
|
75
|
-
if (entityManager && !entityManager.isLoading) {
|
|
76
|
-
goodAdds.forEach(function (add) {
|
|
77
|
-
if (add.entityAspect.entityState.isDetached()) {
|
|
78
|
-
relationArray._inProgress = true;
|
|
79
|
-
try {
|
|
80
|
-
entityManager.attachEntity(add, EntityState.Added);
|
|
81
|
-
}
|
|
82
|
-
finally {
|
|
83
|
-
relationArray._inProgress = false;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
return goodAdds;
|
|
89
|
-
}
|
|
90
|
-
function processAdds(relationArray, adds) {
|
|
91
|
-
let parentEntity = relationArray.parentEntity;
|
|
92
|
-
let np = relationArray.navigationProperty;
|
|
93
|
-
let addsInProcess = relationArray._addsInProcess;
|
|
94
|
-
let invNp = np.inverse;
|
|
95
|
-
let startIx = addsInProcess.length;
|
|
96
|
-
try {
|
|
97
|
-
adds.forEach(function (childEntity) {
|
|
98
|
-
addsInProcess.push(childEntity);
|
|
99
|
-
if (invNp) {
|
|
100
|
-
childEntity.setProperty(invNp.name, parentEntity);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
// This occurs with a unidirectional 1-n navigation - in this case
|
|
104
|
-
// we need to update the fks instead of the navProp
|
|
105
|
-
let pks = parentEntity.entityType.keyProperties;
|
|
106
|
-
np.invForeignKeyNames.forEach(function (fk, i) {
|
|
107
|
-
childEntity.setProperty(fk, parentEntity.getProperty(pks[i].name));
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
finally {
|
|
113
|
-
addsInProcess.splice(startIx, adds.length);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
function processRemoves(relationArray, removes) {
|
|
117
|
-
let inp = relationArray.navigationProperty.inverse;
|
|
118
|
-
if (inp) {
|
|
119
|
-
removes.forEach(function (childEntity) {
|
|
120
|
-
childEntity.setProperty(inp.name, null);
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
function checkForDups(relationArray, adds) {
|
|
125
|
-
// don't allow dups in this array. - also prevents recursion
|
|
126
|
-
let parentEntity = relationArray.parentEntity;
|
|
127
|
-
let navProp = relationArray.navigationProperty;
|
|
128
|
-
let inverseProp = navProp.inverse;
|
|
129
|
-
let goodAdds;
|
|
130
|
-
if (inverseProp) {
|
|
131
|
-
goodAdds = adds.filter(function (a) {
|
|
132
|
-
if (relationArray._addsInProcess.indexOf(a) >= 0) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
let inverseValue = a.getProperty(inverseProp.name);
|
|
136
|
-
return inverseValue !== parentEntity;
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
// This occurs with a unidirectional 1->N relation ( where there is no n -> 1)
|
|
141
|
-
// in this case we compare fks.
|
|
142
|
-
let fkPropNames = navProp.invForeignKeyNames;
|
|
143
|
-
let keyProps = parentEntity.entityType.keyProperties;
|
|
144
|
-
goodAdds = adds.filter(function (a) {
|
|
145
|
-
if (relationArray._addsInProcess.indexOf(a) >= 0) {
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
return fkPropNames.some(function (fk, i) {
|
|
149
|
-
let keyProp = keyProps[i].name;
|
|
150
|
-
let keyVal = parentEntity.getProperty(keyProp);
|
|
151
|
-
let fkVal = a.getProperty(fk);
|
|
152
|
-
return keyVal !== fkVal;
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
return goodAdds;
|
|
157
|
-
}
|
|
158
|
-
/** For use by breeze plugin authors only. The class is for use in building a [[IModelLibraryAdapter]] implementation.
|
|
159
|
-
@adapter (see [[IModelLibraryAdapter]])
|
|
160
|
-
@hidden
|
|
161
|
-
*/
|
|
162
|
-
export function makeRelationArray(arr, parentEntity, navigationProperty) {
|
|
163
|
-
let arrX = arr;
|
|
164
|
-
arrX.parentEntity = parentEntity;
|
|
165
|
-
arrX.navigationProperty = navigationProperty;
|
|
166
|
-
arrX.arrayChanged = new BreezeEvent("arrayChanged", arrX);
|
|
167
|
-
// array of pushes currently in process on this relation array - used to prevent recursion.
|
|
168
|
-
arrX._addsInProcess = [];
|
|
169
|
-
// need to use mixins here instead of inheritance because we are starting from an existing array object.
|
|
170
|
-
core.extend(arrX, observableArray.mixin);
|
|
171
|
-
return core.extend(arrX, relationArrayMixin);
|
|
172
|
-
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVsYXRpb24tYXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUk5QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWN0RSxJQUFJLGtCQUFrQixHQUFHO0lBRXZCOzs7Ozs7T0FNRztJQUVIOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBR0g7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQUksRUFBRSxVQUFTLFFBQStCLEVBQUUsYUFBa0M7UUFDaEYsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMvQixJQUFJLEtBQUssR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN6RixJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztRQUMzQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZUFBZSxFQUFFO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDO0lBRUQsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO1FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFD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Q0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDL0IsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxNQUFNLEtBQUssS0FBSyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7O0VBR0U7QUFDRixNQUFNLFVBQVUsaUJBQWlCLENBQUMsR0FBVSxFQUFFLFlBQW9CLEVBQUUsa0JBQXNDO0lBQ3hHLElBQUksSUFBSSxHQUFHLEdBQVUsQ0FBQztJQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNqQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7SUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsMkZBQTJGO0lBQzNGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLHdHQUF3RztJQUN4RyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBa0IsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IFF1ZXJ5RXJyb3JDYWxsYmFjaywgUXVlcnlSZXN1bHQsIFF1ZXJ5U3VjY2Vzc0NhbGxiYWNrIH0gZnJvbSAnLi9lbnRpdHktbWFuYWdlcic7XHJcbmltcG9ydCB7IERhdGFQcm9wZXJ0eSwgTmF2aWdhdGlvblByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSB9IGZyb20gJy4vZW50aXR5LXF1ZXJ5JztcclxuaW1wb3J0IHsgRW50aXR5U3RhdGUgfSBmcm9tICcuL2VudGl0eS1zdGF0ZSc7XHJcbmltcG9ydCB7IEJyZWV6ZUV2ZW50IH0gZnJvbSAnLi9ldmVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGVBcnJheSwgb2JzZXJ2YWJsZUFycmF5IH0gZnJvbSAnLi9vYnNlcnZhYmxlLWFycmF5JztcclxuXHJcbi8vIFRPRE86IG1peGluIGltcGwgaXMgbm90IHZlcnkgdHlwZXNhZmVcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVsYXRpb25BcnJheSBleHRlbmRzIE9ic2VydmFibGVBcnJheSB7XHJcbiAgW2luZGV4OiBudW1iZXJdOiBFbnRpdHk7XHJcbiAgcGFyZW50RW50aXR5OiBFbnRpdHk7XHJcbiAgcGFyZW50UHJvcGVydHk/OiBEYXRhUHJvcGVydHk7XHJcbiAgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHk7XHJcbiAgX2luUHJvZ3Jlc3M/OiBib29sZWFuO1xyXG4gIF9hZGRzSW5Qcm9jZXNzOiBFbnRpdHlbXTtcclxuICBsb2FkKHF1ZXJ5U3VjY2Vzc0NhbGxiYWNrPzogUXVlcnlTdWNjZXNzQ2FsbGJhY2ssIHF1ZXJ5RXJyb3JDYWxsYmFjaz86IFF1ZXJ5RXJyb3JDYWxsYmFjayk6IFByb21pc2U8UXVlcnlSZXN1bHQ+OyBcclxufVxyXG5cclxubGV0IHJlbGF0aW9uQXJyYXlNaXhpbiA9IHtcclxuXHJcbiAgLyoqXHJcbiAgUmVsYXRpb24gYXJyYXlzIGFyZSBub3QgYWN0dWFsbHkgY2xhc3NlcywgdGhleSBhcmUgb2JqZWN0cyB0aGF0IG1pbWljIGFycmF5cy4gQSByZWxhdGlvbiBhcnJheSBpcyBjb2xsZWN0aW9uIG9mXHJcbiAgZW50aXRpZXMgYXNzb2NpYXRlZCB3aXRoIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eSBvbiBhIHNpbmdsZSBlbnRpdHkuIGkuZS4gY3VzdG9tZXIub3JkZXJzIG9yIG9yZGVyLm9yZGVyRGV0YWlscy5cclxuICBUaGlzIGNvbGxlY3Rpb24gbG9va3MgbGlrZSBhbiBhcnJheSBpbiB0aGF0IHRoZSBiYXNpYyBtZXRob2RzIG9uIGFycmF5cyBzdWNoIGFzICdwdXNoJywgJ3BvcCcsICdzaGlmdCcsICd1bnNoaWZ0JywgJ3NwbGljZSdcclxuICBhcmUgYWxsIHByb3ZpZGVkIGFzIHdlbGwgYXMgc2V2ZXJhbCBzcGVjaWFsIHB1cnBvc2UgbWV0aG9kcy5cclxuICBAY2xhc3Mge3JlbGF0aW9uQXJyYXl9XHJcbiAgKiovXHJcblxyXG4gIC8qKlxyXG4gIEFuIFtbRXZlbnRdXSB0aGF0IGZpcmVzIHdoZW5ldmVyIHRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGNoYW5nZWQuICBUaGlzIGV2ZW50XHJcbiAgaXMgZmlyZWQgYW55IHRpbWUgYSBuZXcgZW50aXR5IGlzIGF0dGFjaGVkIG9yIGFkZGVkIHRvIHRoZSBFbnRpdHlNYW5hZ2VyIGFuZCBoYXBwZW5zIHRvIGJlbG9uZyB0byB0aGlzIGNvbGxlY3Rpb24uXHJcbiAgQWRkcyB0aGF0IG9jY3VyIGFzIGEgcmVzdWx0IG9mIHF1ZXJ5IG9yIGltcG9ydCBvcGVyYXRpb25zIGFyZSBiYXRjaGVkIHNvIHRoYXQgYWxsIG9mIHRoZSBhZGRzIG9yIHJlbW92ZXMgdG8gYW55IGluZGl2aWR1YWxcclxuICBjb2xsZWN0aW9ucyBhcmUgY29sbGVjdGVkIGludG8gYSBzaW5nbGUgbm90aWZpY2F0aW9uIGV2ZW50IGZvciBlYWNoIHJlbGF0aW9uIGFycmF5LlxyXG4gIEBleGFtcGxlXHJcbiAgICAgIC8vIGFzc3VtZSBvcmRlciBpcyBhbiBvcmRlciBlbnRpdHkgYXR0YWNoZWQgdG8gYW4gRW50aXR5TWFuYWdlci5cclxuICAgICAgb3JkZXJzLmFycmF5Q2hhbmdlZC5zdWJzY3JpYmUoXHJcbiAgICAgIGZ1bmN0aW9uIChhcnJheUNoYW5nZWRBcmdzKSB7XHJcbiAgICAgICAgICBsZXQgYWRkZWRFbnRpdGllcyA9IGFycmF5Q2hhbmdlZEFyZ3MuYWRkZWQ7XHJcbiAgICAgICAgICBsZXQgcmVtb3ZlZEVudGl0aWVzID0gYXJyYXlDaGFuZ2VkLnJlbW92ZWQ7XHJcbiAgICAgIH0pO1xyXG4gIEBldmVudCBhcnJheUNoYW5nZWRcclxuICBAcGFyYW0gYWRkZWQge0FycmF5IG9mIEVudGl0eX0gQW4gYXJyYXkgb2YgYWxsIG9mIHRoZSBlbnRpdGllcyBhZGRlZCB0byB0aGlzIGNvbGxlY3Rpb24uXHJcbiAgQHBhcmFtIHJlbW92ZWQge0FycmF5IG9mIEVudGl0eX0gQW4gYXJyYXkgb2YgYWxsIG9mIHRoZSByZW1vdmVkIGZyb20gdGhpcyBjb2xsZWN0aW9uLlxyXG4gIEByZWFkT25seVxyXG4gICoqL1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgUGVyZm9ybXMgYW4gYXN5bmNocm9ub3VzIGxvYWQgb2YgYWxsIG90aGVyIHRoZSBlbnRpdGllcyBhc3NvY2lhdGVkIHdpdGggdGhpcyByZWxhdGlvbkFycmF5LlxyXG4gIEBleGFtcGxlXHJcbiAgICAgIC8vIGFzc3VtZSBvcmRlcnMgaXMgYW4gZW1wdHksIGFzIHlldCB1bnBvcHVsYXRlZCwgcmVsYXRpb24gYXJyYXkgb2Ygb3JkZXJzXHJcbiAgICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGN1c3RvbWVyLlxyXG4gICAgICBvcmRlcnMubG9hZCgpLnRoZW4oLi4uKVxyXG4gIEBtZXRob2QgbG9hZFxyXG4gIEBwYXJhbSBbY2FsbGJhY2tdIHtGdW5jdGlvbn1cclxuICBAcGFyYW0gW2Vycm9yQ2FsbGJhY2tdIHtGdW5jdGlvbn1cclxuICBAcmV0dXJuIHtQcm9taXNlfVxyXG4gICoqL1xyXG4gIGxvYWQ6IGZ1bmN0aW9uKGNhbGxiYWNrPzogUXVlcnlTdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2s/OiBRdWVyeUVycm9yQ2FsbGJhY2spOiBQcm9taXNlPFF1ZXJ5UmVzdWx0PiB7XHJcbiAgICBsZXQgcGFyZW50ID0gdGhpcy5wYXJlbnRFbnRpdHk7XHJcbiAgICBsZXQgcXVlcnkgPSBFbnRpdHlRdWVyeS5mcm9tRW50aXR5TmF2aWdhdGlvbih0aGlzLnBhcmVudEVudGl0eSwgdGhpcy5uYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gICAgbGV0IGVtID0gcGFyZW50LmVudGl0eUFzcGVjdC5lbnRpdHlNYW5hZ2VyO1xyXG4gICAgcmV0dXJuIGVtLmV4ZWN1dGVRdWVyeShxdWVyeSwgY2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spO1xyXG4gIH0sXHJcblxyXG4gIF9nZXRFdmVudFBhcmVudDogZnVuY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRFbnRpdHkuZW50aXR5QXNwZWN0O1xyXG4gIH0sXHJcblxyXG4gIF9nZXRQZW5kaW5nUHViczogZnVuY3Rpb24oKSB7XHJcbiAgICBsZXQgZW0gPSB0aGlzLnBhcmVudEVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5TWFuYWdlcjtcclxuICAgIHJldHVybiBlbSAmJiBlbS5fcGVuZGluZ1B1YnM7XHJcbiAgfSxcclxuXHJcbiAgLy8gdmlydHVhbCBpbXBsc1xyXG4gIF9nZXRHb29kQWRkczogZnVuY3Rpb24oYWRkczogRW50aXR5W10pIHtcclxuICAgIHJldHVybiBnZXRHb29kQWRkcyh0aGlzLCBhZGRzKTtcclxuICB9LFxyXG5cclxuICBfcHJvY2Vzc0FkZHM6IGZ1bmN0aW9uKGFkZHM6IEVudGl0eVtdKSB7XHJcbiAgICBwcm9jZXNzQWRkcyh0aGlzLCBhZGRzKTtcclxuICB9LFxyXG5cclxuICBfcHJvY2Vzc1JlbW92ZXM6IGZ1bmN0aW9uKHJlbW92ZXM6IEVudGl0eVtdKSB7XHJcbiAgICBwcm9jZXNzUmVtb3Zlcyh0aGlzLCByZW1vdmVzKTtcclxuICB9XHJcblxyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0R29vZEFkZHMocmVsYXRpb25BcnJheTogUmVsYXRpb25BcnJheSwgYWRkczogRW50aXR5W10pIHtcclxuICBsZXQgZ29vZEFkZHMgPSBjaGVja0ZvckR1cHMocmVsYXRpb25BcnJheSwgYWRkcyk7XHJcbiAgaWYgKCFnb29kQWRkcy5sZW5ndGgpIHtcclxuICAgIHJldHVybiBnb29kQWRkcztcclxuICB9XHJcbiAgbGV0IHBhcmVudEVudGl0eSA9IHJlbGF0aW9uQXJyYXkucGFyZW50RW50aXR5O1xyXG4gIGxldCBlbnRpdHlNYW5hZ2VyID0gcGFyZW50RW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlNYW5hZ2VyO1xyXG4gIC8vIHdlIGRvIG5vdCB3YW50IHRvIGF0dGFjaCBhbiBlbnRpdHkgZHVyaW5nIGxvYWRpbmdcclxuICAvLyBiZWNhdXNlIHRoZXNlIHdpbGwgYWxsIGJlICdhdHRhY2hlZCcgYXQgYSBsYXRlciBzdGVwLlxyXG4gIGlmIChlbnRpdHlNYW5hZ2VyICYmICFlbnRpdHlNYW5hZ2VyLmlzTG9hZGluZykge1xyXG4gICAgZ29vZEFkZHMuZm9yRWFjaChmdW5jdGlvbiAoYWRkKSB7XHJcbiAgICAgIGlmIChhZGQuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzRGV0YWNoZWQoKSkge1xyXG4gICAgICAgIHJlbGF0aW9uQXJyYXkuX2luUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBlbnRpdHlNYW5hZ2VyIS5hdHRhY2hFbnRpdHkoYWRkLCBFbnRpdHlTdGF0ZS5BZGRlZCk7XHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgIHJlbGF0aW9uQXJyYXkuX2luUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gZ29vZEFkZHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NBZGRzKHJlbGF0aW9uQXJyYXk6IFJlbGF0aW9uQXJyYXksIGFkZHM6IEVudGl0eVtdKSB7XHJcbiAgbGV0IHBhcmVudEVudGl0eSA9IHJlbGF0aW9uQXJyYXkucGFyZW50RW50aXR5O1xyXG4gIGxldCBucCA9IHJlbGF0aW9uQXJyYXkubmF2aWdhdGlvblByb3BlcnR5O1xyXG4gIGxldCBhZGRzSW5Qcm9jZXNzID0gcmVsYXRpb25BcnJheS5fYWRkc0luUHJvY2VzcztcclxuXHJcbiAgbGV0IGludk5wID0gbnAuaW52ZXJzZTtcclxuICBsZXQgc3RhcnRJeCA9IGFkZHNJblByb2Nlc3MubGVuZ3RoO1xyXG4gIHRyeSB7XHJcbiAgICBhZGRzLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkRW50aXR5KSB7XHJcbiAgICAgIGFkZHNJblByb2Nlc3MucHVzaChjaGlsZEVudGl0eSk7XHJcbiAgICAgIGlmIChpbnZOcCkge1xyXG4gICAgICAgIGNoaWxkRW50aXR5LnNldFByb3BlcnR5KGludk5wLm5hbWUsIHBhcmVudEVudGl0eSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVGhpcyBvY2N1cnMgd2l0aCBhIHVuaWRpcmVjdGlvbmFsIDEtbiBuYXZpZ2F0aW9uIC0gaW4gdGhpcyBjYXNlXHJcbiAgICAgICAgLy8gd2UgbmVlZCB0byB1cGRhdGUgdGhlIGZrcyBpbnN0ZWFkIG9mIHRoZSBuYXZQcm9wXHJcbiAgICAgICAgbGV0IHBrcyA9IHBhcmVudEVudGl0eS5lbnRpdHlUeXBlLmtleVByb3BlcnRpZXM7XHJcbiAgICAgICAgbnAuaW52Rm9yZWlnbktleU5hbWVzLmZvckVhY2goZnVuY3Rpb24gKGZrLCBpKSB7XHJcbiAgICAgICAgICBjaGlsZEVudGl0eS5zZXRQcm9wZXJ0eShmaywgcGFyZW50RW50aXR5LmdldFByb3BlcnR5KHBrc1tpXS5uYW1lKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZmluYWxseSB7XHJcbiAgICBhZGRzSW5Qcm9jZXNzLnNwbGljZShzdGFydEl4LCBhZGRzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc1JlbW92ZXMocmVsYXRpb25BcnJheTogUmVsYXRpb25BcnJheSwgcmVtb3ZlczogRW50aXR5W10pIHtcclxuICBsZXQgaW5wID0gcmVsYXRpb25BcnJheS5uYXZpZ2F0aW9uUHJvcGVydHkuaW52ZXJzZTtcclxuICBpZiAoaW5wKSB7XHJcbiAgICByZW1vdmVzLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkRW50aXR5KSB7XHJcbiAgICAgIGNoaWxkRW50aXR5LnNldFByb3BlcnR5KGlucCEubmFtZSwgbnVsbCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNoZWNrRm9yRHVwcyhyZWxhdGlvbkFycmF5OiBSZWxhdGlvbkFycmF5LCBhZGRzOiBFbnRpdHlbXSkge1xyXG4gIC8vIGRvbid0IGFsbG93IGR1cHMgaW4gdGhpcyBhcnJheS4gLSBhbHNvIHByZXZlbnRzIHJlY3Vyc2lvblxyXG4gIGxldCBwYXJlbnRFbnRpdHkgPSByZWxhdGlvbkFycmF5LnBhcmVudEVudGl0eTtcclxuICBsZXQgbmF2UHJvcCA9IHJlbGF0aW9uQXJyYXkubmF2aWdhdGlvblByb3BlcnR5O1xyXG4gIGxldCBpbnZlcnNlUHJvcCA9IG5hdlByb3AuaW52ZXJzZTtcclxuICBsZXQgZ29vZEFkZHM6IEVudGl0eVtdO1xyXG4gIGlmIChpbnZlcnNlUHJvcCkge1xyXG4gICAgZ29vZEFkZHMgPSBhZGRzLmZpbHRlcihmdW5jdGlvbiAoYSkge1xyXG4gICAgICBpZiAocmVsYXRpb25BcnJheS5fYWRkc0luUHJvY2Vzcy5pbmRleE9mKGEpID49IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGludmVyc2VWYWx1ZSA9IGEuZ2V0UHJvcGVydHkoaW52ZXJzZVByb3AhLm5hbWUpO1xyXG4gICAgICByZXR1cm4gaW52ZXJzZVZhbHVlICE9PSBwYXJlbnRFbnRpdHk7XHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgLy8gVGhpcyBvY2N1cnMgd2l0aCBhIHVuaWRpcmVjdGlvbmFsIDEtPk4gcmVsYXRpb24gKCB3aGVyZSB0aGVyZSBpcyBubyBuIC0+IDEpXHJcbiAgICAvLyBpbiB0aGlzIGNhc2Ugd2UgY29tcGFyZSBma3MuXHJcbiAgICBsZXQgZmtQcm9wTmFtZXMgPSBuYXZQcm9wLmludkZvcmVpZ25LZXlOYW1lcztcclxuICAgIGxldCBrZXlQcm9wcyA9IHBhcmVudEVudGl0eS5lbnRpdHlUeXBlLmtleVByb3BlcnRpZXM7XHJcbiAgICBnb29kQWRkcyA9IGFkZHMuZmlsdGVyKGZ1bmN0aW9uIChhKSB7XHJcbiAgICAgIGlmIChyZWxhdGlvbkFycmF5Ll9hZGRzSW5Qcm9jZXNzLmluZGV4T2YoYSkgPj0gMCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmtQcm9wTmFtZXMuc29tZShmdW5jdGlvbiAoZmssIGkpIHtcclxuICAgICAgICBsZXQga2V5UHJvcCA9IGtleVByb3BzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IGtleVZhbCA9IHBhcmVudEVudGl0eS5nZXRQcm9wZXJ0eShrZXlQcm9wKTtcclxuICAgICAgICBsZXQgZmtWYWwgPSBhLmdldFByb3BlcnR5KGZrKTtcclxuICAgICAgICByZXR1cm4ga2V5VmFsICE9PSBma1ZhbDtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIGdvb2RBZGRzO1xyXG59XHJcblxyXG4vKiogRm9yIHVzZSBieSBicmVlemUgcGx1Z2luIGF1dGhvcnMgb25seS4gVGhlIGNsYXNzIGlzIGZvciB1c2UgaW4gYnVpbGRpbmcgYSBbW0lNb2RlbExpYnJhcnlBZGFwdGVyXV0gaW1wbGVtZW50YXRpb24uIFxyXG5AYWRhcHRlciAoc2VlIFtbSU1vZGVsTGlicmFyeUFkYXB0ZXJdXSkgICAgXHJcbkBoaWRkZW4gXHJcbiovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlUmVsYXRpb25BcnJheShhcnI6IGFueVtdLCBwYXJlbnRFbnRpdHk6IEVudGl0eSwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpOiBSZWxhdGlvbkFycmF5IHtcclxuICBsZXQgYXJyWCA9IGFyciBhcyBhbnk7XHJcbiAgYXJyWC5wYXJlbnRFbnRpdHkgPSBwYXJlbnRFbnRpdHk7XHJcbiAgYXJyWC5uYXZpZ2F0aW9uUHJvcGVydHkgPSBuYXZpZ2F0aW9uUHJvcGVydHk7XHJcbiAgYXJyWC5hcnJheUNoYW5nZWQgPSBuZXcgQnJlZXplRXZlbnQoXCJhcnJheUNoYW5nZWRcIiwgYXJyWCk7XHJcbiAgLy8gYXJyYXkgb2YgcHVzaGVzIGN1cnJlbnRseSBpbiBwcm9jZXNzIG9uIHRoaXMgcmVsYXRpb24gYXJyYXkgLSB1c2VkIHRvIHByZXZlbnQgcmVjdXJzaW9uLlxyXG4gIGFyclguX2FkZHNJblByb2Nlc3MgPSBbXTtcclxuICAvLyBuZWVkIHRvIHVzZSBtaXhpbnMgaGVyZSBpbnN0ZWFkIG9mIGluaGVyaXRhbmNlIGJlY2F1c2Ugd2UgYXJlIHN0YXJ0aW5nIGZyb20gYW4gZXhpc3RpbmcgYXJyYXkgb2JqZWN0LlxyXG4gIGNvcmUuZXh0ZW5kKGFyclgsIG9ic2VydmFibGVBcnJheS5taXhpbik7XHJcbiAgcmV0dXJuIGNvcmUuZXh0ZW5kKGFyclgsIHJlbGF0aW9uQXJyYXlNaXhpbikgYXMgUmVsYXRpb25BcnJheTtcclxufVxyXG4iXX0=
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { core } from './core';
|
|
2
|
-
import { assertConfig } from './assert-param';
|
|
3
|
-
import { DataService } from './data-service';
|
|
4
|
-
/**
|
|
5
|
-
A SaveOptions instance is used to specify the 'options' under which a save will occur.
|
|
6
|
-
**/
|
|
7
|
-
export class SaveOptions {
|
|
8
|
-
/** @hidden @internal */
|
|
9
|
-
_$typeName; // on proto
|
|
10
|
-
/** Resource name to be used during the save - this defaults to "SaveChanges". __Read Only__ */
|
|
11
|
-
resourceName;
|
|
12
|
-
/** The DataService to be used for this save. __Read Only__ */
|
|
13
|
-
dataService;
|
|
14
|
-
/** Whether multiple saves can be in-flight at the same time. The default is false. __Read Only__ */
|
|
15
|
-
allowConcurrentSaves;
|
|
16
|
-
/** Free form value that will be sent to the server during the save. __Read Only__ */
|
|
17
|
-
tag;
|
|
18
|
-
/** The default value whenever SaveOptions are not specified. */
|
|
19
|
-
static defaultInstance = new SaveOptions({ allowConcurrentSaves: false });
|
|
20
|
-
constructor(config) {
|
|
21
|
-
SaveOptions._updateWithConfig(this, config);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance.
|
|
25
|
-
The current instance is returned unchanged.
|
|
26
|
-
**/
|
|
27
|
-
setAsDefault() {
|
|
28
|
-
return core.setAsDefault(this, SaveOptions);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
Returns a copy of this SaveOptions with the specified config options applied.
|
|
32
|
-
> var saveOptions = em1.saveOptions.using( {resourceName: "anotherResource" });
|
|
33
|
-
**/
|
|
34
|
-
using(config) {
|
|
35
|
-
return SaveOptions._updateWithConfig(this, config);
|
|
36
|
-
}
|
|
37
|
-
/** @hidden @internal */
|
|
38
|
-
static _updateWithConfig(obj, config) {
|
|
39
|
-
if (config) {
|
|
40
|
-
assertConfig(config)
|
|
41
|
-
.whereParam("resourceName").isOptional().isString()
|
|
42
|
-
.whereParam("dataService").isOptional().isInstanceOf(DataService)
|
|
43
|
-
.whereParam("allowConcurrentSaves").isBoolean().isOptional()
|
|
44
|
-
.whereParam("tag").isOptional()
|
|
45
|
-
.applyAll(obj);
|
|
46
|
-
}
|
|
47
|
-
return obj;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
SaveOptions.prototype._$typeName = "SaveOptions";
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NhdmUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFjN0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUN0Qix3QkFBd0I7SUFDeEIsVUFBVSxDQUFTLENBQUMsV0FBVztJQUMvQiwrRkFBK0Y7SUFDL0YsWUFBWSxDQUFTO0lBQ3JCLDhEQUE4RDtJQUM5RCxXQUFXLENBQWM7SUFDekIsb0dBQW9HO0lBQ3BHLG9CQUFvQixDQUFVO0lBQzlCLHFGQUFxRjtJQUNyRixHQUFHLENBQU07SUFFVCxnRUFBZ0U7SUFDaEUsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFFekUsWUFBWSxNQUEwQjtRQUNwQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFHRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE1BQXlCO1FBQzdCLE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsd0JBQXdCO0lBQ2hCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFnQixFQUFFLE1BQXlCO1FBQzFFLElBQUksTUFBTSxFQUFFO1lBQ1YsWUFBWSxDQUFDLE1BQU0sQ0FBQztpQkFDZixVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFO2lCQUNsRCxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztpQkFDaEUsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFO2lCQUMzRCxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFO2lCQUM5QixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7O0FBR0gsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IGFzc2VydENvbmZpZyB9IGZyb20gJy4vYXNzZXJ0LXBhcmFtJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEtc2VydmljZSc7XHJcblxyXG4vKiogQ29uZmlndXJhdGlvbiBpbmZvIHRvIGJlIHBhc3NlZCB0byB0aGUgW1tTYXZlT3B0aW9uc11dIGNvbnN0cnVjdG9yICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2F2ZU9wdGlvbnNDb25maWcge1xyXG4gIC8qKiBSZXNvdXJjZSBuYW1lIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBzYXZlIC0gdGhpcyBkZWZhdWx0cyB0byBcIlNhdmVDaGFuZ2VzXCIgKi9cclxuICByZXNvdXJjZU5hbWU/OiBzdHJpbmc7XHJcbiAgLyoqIFRoZSBEYXRhU2VydmljZSB0byBiZSB1c2VkIGZvciB0aGlzIHNhdmUuICovXHJcbiAgZGF0YVNlcnZpY2U/OiBEYXRhU2VydmljZTtcclxuICAvKiogV2hldGhlciBtdWx0aXBsZSBzYXZlcyBjYW4gYmUgaW4tZmxpZ2h0IGF0IHRoZSBzYW1lIHRpbWUuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiAqL1xyXG4gIGFsbG93Q29uY3VycmVudFNhdmVzPzogYm9vbGVhbjtcclxuICAvKiogRnJlZSBmb3JtIHZhbHVlIHRoYXQgd2lsbCBiZSBzZW50IHRvIHRoZSBzZXJ2ZXIgZHVyaW5nIHRoZSBzYXZlLiAqL1xyXG4gIHRhZz86IGFueTtcclxufVxyXG5cclxuLyoqXHJcbkEgU2F2ZU9wdGlvbnMgaW5zdGFuY2UgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAnb3B0aW9ucycgdW5kZXIgd2hpY2ggYSBzYXZlIHdpbGwgb2NjdXIuXHJcbioqL1xyXG5leHBvcnQgY2xhc3MgU2F2ZU9wdGlvbnMge1xyXG4gIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gIF8kdHlwZU5hbWU6IHN0cmluZzsgLy8gb24gcHJvdG9cclxuICAvKiogUmVzb3VyY2UgbmFtZSB0byBiZSB1c2VkIGR1cmluZyB0aGUgc2F2ZSAtIHRoaXMgZGVmYXVsdHMgdG8gXCJTYXZlQ2hhbmdlc1wiLiBfX1JlYWQgT25seV9fICovXHJcbiAgcmVzb3VyY2VOYW1lOiBzdHJpbmc7XHJcbiAgLyoqIFRoZSBEYXRhU2VydmljZSB0byBiZSB1c2VkIGZvciB0aGlzIHNhdmUuIF9fUmVhZCBPbmx5X18gKi9cclxuICBkYXRhU2VydmljZTogRGF0YVNlcnZpY2U7XHJcbiAgLyoqIFdoZXRoZXIgbXVsdGlwbGUgc2F2ZXMgY2FuIGJlIGluLWZsaWdodCBhdCB0aGUgc2FtZSB0aW1lLiBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gX19SZWFkIE9ubHlfXyAqL1xyXG4gIGFsbG93Q29uY3VycmVudFNhdmVzOiBib29sZWFuO1xyXG4gIC8qKiBGcmVlIGZvcm0gdmFsdWUgdGhhdCB3aWxsIGJlIHNlbnQgdG8gdGhlIHNlcnZlciBkdXJpbmcgdGhlIHNhdmUuIF9fUmVhZCBPbmx5X18gKi9cclxuICB0YWc6IGFueTtcclxuXHJcbiAgLyoqIFRoZSBkZWZhdWx0IHZhbHVlIHdoZW5ldmVyIFNhdmVPcHRpb25zIGFyZSBub3Qgc3BlY2lmaWVkLiAqL1xyXG4gIHN0YXRpYyBkZWZhdWx0SW5zdGFuY2UgPSBuZXcgU2F2ZU9wdGlvbnMoeyBhbGxvd0NvbmN1cnJlbnRTYXZlczogZmFsc2V9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoY29uZmlnPzogU2F2ZU9wdGlvbnNDb25maWcpIHtcclxuICAgIFNhdmVPcHRpb25zLl91cGRhdGVXaXRoQ29uZmlnKHRoaXMsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgU2V0cyB0aGUgJ2RlZmF1bHRJbnN0YW5jZScgYnkgY3JlYXRpbmcgYSBjb3B5IG9mIHRoZSBjdXJyZW50ICdkZWZhdWx0SW5zdGFuY2UnIGFuZCB0aGVuIGFwcGx5aW5nIGFsbCBvZiB0aGUgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBpbnN0YW5jZS5cclxuICBUaGUgY3VycmVudCBpbnN0YW5jZSBpcyByZXR1cm5lZCB1bmNoYW5nZWQuXHJcbiAgKiovXHJcbiAgc2V0QXNEZWZhdWx0KCkge1xyXG4gICAgcmV0dXJuIGNvcmUuc2V0QXNEZWZhdWx0KHRoaXMsIFNhdmVPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gIFJldHVybnMgYSBjb3B5IG9mIHRoaXMgU2F2ZU9wdGlvbnMgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmZpZyBvcHRpb25zIGFwcGxpZWQuXHJcbiAgPiAgICAgdmFyIHNhdmVPcHRpb25zID0gZW0xLnNhdmVPcHRpb25zLnVzaW5nKCB7cmVzb3VyY2VOYW1lOiBcImFub3RoZXJSZXNvdXJjZVwiIH0pO1xyXG4gICoqL1xyXG4gIHVzaW5nKGNvbmZpZzogU2F2ZU9wdGlvbnNDb25maWcpIHtcclxuICAgIHJldHVybiBTYXZlT3B0aW9ucy5fdXBkYXRlV2l0aENvbmZpZyh0aGlzLCBjb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgX3VwZGF0ZVdpdGhDb25maWcob2JqOiBTYXZlT3B0aW9ucywgY29uZmlnOiBTYXZlT3B0aW9uc0NvbmZpZykge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBhc3NlcnRDb25maWcoY29uZmlnKVxyXG4gICAgICAgICAgLndoZXJlUGFyYW0oXCJyZXNvdXJjZU5hbWVcIikuaXNPcHRpb25hbCgpLmlzU3RyaW5nKClcclxuICAgICAgICAgIC53aGVyZVBhcmFtKFwiZGF0YVNlcnZpY2VcIikuaXNPcHRpb25hbCgpLmlzSW5zdGFuY2VPZihEYXRhU2VydmljZSlcclxuICAgICAgICAgIC53aGVyZVBhcmFtKFwiYWxsb3dDb25jdXJyZW50U2F2ZXNcIikuaXNCb29sZWFuKCkuaXNPcHRpb25hbCgpXHJcbiAgICAgICAgICAud2hlcmVQYXJhbShcInRhZ1wiKS5pc09wdGlvbmFsKClcclxuICAgICAgICAgIC5hcHBseUFsbChvYmopO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG59XHJcblNhdmVPcHRpb25zLnByb3RvdHlwZS5fJHR5cGVOYW1lID0gXCJTYXZlT3B0aW9uc1wiO1xyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { core } from './core';
|
|
2
|
-
/** @hidden @internal */
|
|
3
|
-
// Represents entities not yet attached to navigationProperties.
|
|
4
|
-
export class UnattachedChildrenMap {
|
|
5
|
-
// key is EntityKey.toString(), value is array of { navigationProperty, children }
|
|
6
|
-
map = {};
|
|
7
|
-
addChild(parentEntityKey, navigationProperty, child) {
|
|
8
|
-
let tuple = this.getTuple(parentEntityKey, navigationProperty);
|
|
9
|
-
if (!tuple) {
|
|
10
|
-
tuple = { navigationProperty: navigationProperty, children: [] };
|
|
11
|
-
core.getArray(this.map, parentEntityKey.toString()).push(tuple);
|
|
12
|
-
}
|
|
13
|
-
tuple.children.push(child);
|
|
14
|
-
}
|
|
15
|
-
removeChildren(parentEntityKeyString, navigationProperty) {
|
|
16
|
-
let tuples = this.map[parentEntityKeyString];
|
|
17
|
-
if (!tuples)
|
|
18
|
-
return;
|
|
19
|
-
core.arrayRemoveItem(tuples, (t) => {
|
|
20
|
-
return t.navigationProperty === navigationProperty;
|
|
21
|
-
});
|
|
22
|
-
if (!tuples.length) {
|
|
23
|
-
delete this.map[parentEntityKeyString];
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
getTuple(parentEntityKey, navigationProperty) {
|
|
27
|
-
let tuples = this.getTuples(parentEntityKey);
|
|
28
|
-
if (!tuples)
|
|
29
|
-
return null;
|
|
30
|
-
let tuple = core.arrayFirst(tuples, function (t) {
|
|
31
|
-
return t.navigationProperty === navigationProperty;
|
|
32
|
-
});
|
|
33
|
-
return tuple;
|
|
34
|
-
}
|
|
35
|
-
getTuples(parentEntityKey) {
|
|
36
|
-
let allTuples = [];
|
|
37
|
-
let tuples = this.map[parentEntityKey.toString()];
|
|
38
|
-
if (tuples) {
|
|
39
|
-
allTuples = allTuples.concat(tuples);
|
|
40
|
-
}
|
|
41
|
-
let entityType = parentEntityKey.entityType;
|
|
42
|
-
while (entityType.baseEntityType) {
|
|
43
|
-
entityType = entityType.baseEntityType;
|
|
44
|
-
let baseKey = parentEntityKey.toString(entityType);
|
|
45
|
-
tuples = this.map[baseKey];
|
|
46
|
-
if (tuples) {
|
|
47
|
-
allTuples = allTuples.concat(tuples);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return (allTuples.length) ? allTuples : undefined;
|
|
51
|
-
}
|
|
52
|
-
getTuplesByString(parentEntityKeyString) {
|
|
53
|
-
return this.map[parentEntityKeyString];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdHRhY2hlZC1jaGlsZHJlbi1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5hdHRhY2hlZC1jaGlsZHJlbi1tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVc5Qix3QkFBd0I7QUFDeEIsaUVBQWlFO0FBQ2pFLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsa0ZBQWtGO0lBQ2xGLEdBQUcsR0FBcUMsRUFBRSxDQUFDO0lBRzNDLFFBQVEsQ0FBQyxlQUEwQixFQUFFLGtCQUFzQyxFQUFFLEtBQWE7UUFDeEYsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsS0FBSyxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakU7UUFDRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsY0FBYyxDQUFDLHFCQUE2QixFQUFFLGtCQUFzQztRQUNsRixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDdEMsT0FBTyxDQUFDLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsZUFBMEIsRUFBRSxrQkFBc0M7UUFDekUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztZQUM3QyxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFNBQVMsQ0FBQyxlQUEwQjtRQUNsQyxJQUFJLFNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxNQUFNLEVBQUU7WUFDVixTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksVUFBVSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFDNUMsT0FBTyxVQUFVLENBQUMsY0FBYyxFQUFFO1lBQ2hDLFVBQVUsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLElBQUksT0FBTyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEM7U0FDRjtRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxxQkFBNkI7UUFDN0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25Qcm9wZXJ0eSB9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgRW50aXR5S2V5IH0gZnJvbSAnLi9lbnRpdHkta2V5JztcclxuXHJcbi8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElOYXZUdXBsZSB7XHJcbiAgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHk7XHJcbiAgY2hpbGRyZW46IEVudGl0eVtdO1xyXG59XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuLy8gUmVwcmVzZW50cyBlbnRpdGllcyBub3QgeWV0IGF0dGFjaGVkIHRvIG5hdmlnYXRpb25Qcm9wZXJ0aWVzLiBcclxuZXhwb3J0IGNsYXNzIFVuYXR0YWNoZWRDaGlsZHJlbk1hcCB7XHJcbiAgLy8ga2V5IGlzIEVudGl0eUtleS50b1N0cmluZygpLCB2YWx1ZSBpcyBhcnJheSBvZiB7IG5hdmlnYXRpb25Qcm9wZXJ0eSwgY2hpbGRyZW4gfVxyXG4gIG1hcDogeyBbaW5kZXg6IHN0cmluZ106IElOYXZUdXBsZVtdIH0gPSB7fTtcclxuXHJcblxyXG4gIGFkZENoaWxkKHBhcmVudEVudGl0eUtleTogRW50aXR5S2V5LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSwgY2hpbGQ6IEVudGl0eSkge1xyXG4gICAgbGV0IHR1cGxlID0gdGhpcy5nZXRUdXBsZShwYXJlbnRFbnRpdHlLZXksIG5hdmlnYXRpb25Qcm9wZXJ0eSk7XHJcbiAgICBpZiAoIXR1cGxlKSB7XHJcbiAgICAgIHR1cGxlID0geyBuYXZpZ2F0aW9uUHJvcGVydHk6IG5hdmlnYXRpb25Qcm9wZXJ0eSwgY2hpbGRyZW46IFtdIH07XHJcbiAgICAgIGNvcmUuZ2V0QXJyYXkodGhpcy5tYXAsIHBhcmVudEVudGl0eUtleS50b1N0cmluZygpKS5wdXNoKHR1cGxlKTtcclxuICAgIH1cclxuICAgIHR1cGxlLmNoaWxkcmVuLnB1c2goY2hpbGQpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2hpbGRyZW4ocGFyZW50RW50aXR5S2V5U3RyaW5nOiBzdHJpbmcsIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5KSB7XHJcbiAgICBsZXQgdHVwbGVzID0gdGhpcy5tYXBbcGFyZW50RW50aXR5S2V5U3RyaW5nXTtcclxuICAgIGlmICghdHVwbGVzKSByZXR1cm47XHJcbiAgICBjb3JlLmFycmF5UmVtb3ZlSXRlbSh0dXBsZXMsICh0OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHQubmF2aWdhdGlvblByb3BlcnR5ID09PSBuYXZpZ2F0aW9uUHJvcGVydHk7XHJcbiAgICB9KTtcclxuICAgIGlmICghdHVwbGVzLmxlbmd0aCkge1xyXG4gICAgICBkZWxldGUgdGhpcy5tYXBbcGFyZW50RW50aXR5S2V5U3RyaW5nXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFR1cGxlKHBhcmVudEVudGl0eUtleTogRW50aXR5S2V5LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gICAgbGV0IHR1cGxlcyA9IHRoaXMuZ2V0VHVwbGVzKHBhcmVudEVudGl0eUtleSk7XHJcbiAgICBpZiAoIXR1cGxlcykgcmV0dXJuIG51bGw7XHJcbiAgICBsZXQgdHVwbGUgPSBjb3JlLmFycmF5Rmlyc3QodHVwbGVzLCBmdW5jdGlvbiAodCkge1xyXG4gICAgICByZXR1cm4gdC5uYXZpZ2F0aW9uUHJvcGVydHkgPT09IG5hdmlnYXRpb25Qcm9wZXJ0eTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHR1cGxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHVwbGVzKHBhcmVudEVudGl0eUtleTogRW50aXR5S2V5KSB7XHJcbiAgICBsZXQgYWxsVHVwbGVzOiBJTmF2VHVwbGVbXSA9IFtdO1xyXG4gICAgbGV0IHR1cGxlcyA9IHRoaXMubWFwW3BhcmVudEVudGl0eUtleS50b1N0cmluZygpXTtcclxuICAgIGlmICh0dXBsZXMpIHtcclxuICAgICAgYWxsVHVwbGVzID0gYWxsVHVwbGVzLmNvbmNhdCh0dXBsZXMpO1xyXG4gICAgfVxyXG4gICAgbGV0IGVudGl0eVR5cGUgPSBwYXJlbnRFbnRpdHlLZXkuZW50aXR5VHlwZTtcclxuICAgIHdoaWxlIChlbnRpdHlUeXBlLmJhc2VFbnRpdHlUeXBlKSB7XHJcbiAgICAgIGVudGl0eVR5cGUgPSBlbnRpdHlUeXBlLmJhc2VFbnRpdHlUeXBlO1xyXG4gICAgICBsZXQgYmFzZUtleSA9IHBhcmVudEVudGl0eUtleS50b1N0cmluZyhlbnRpdHlUeXBlKTtcclxuICAgICAgdHVwbGVzID0gdGhpcy5tYXBbYmFzZUtleV07XHJcbiAgICAgIGlmICh0dXBsZXMpIHtcclxuICAgICAgICBhbGxUdXBsZXMgPSBhbGxUdXBsZXMuY29uY2F0KHR1cGxlcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAoYWxsVHVwbGVzLmxlbmd0aCkgPyBhbGxUdXBsZXMgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRUdXBsZXNCeVN0cmluZyhwYXJlbnRFbnRpdHlLZXlTdHJpbmc6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwW3BhcmVudEVudGl0eUtleVN0cmluZ107XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|