breeze-client 2.1.5-mjs → 2.1.5
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/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 +743 -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 +326 -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 +14098 -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 +459 -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 +93 -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 +296 -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 +709 -0
- package/esm2015/src/csdl-metadata-parser.js +385 -0
- package/esm2015/src/data-service.js +203 -0
- package/esm2015/src/data-type.js +444 -0
- package/esm2015/src/default-property-interceptor.js +460 -0
- package/esm2015/src/entity-action.js +45 -0
- package/esm2015/src/entity-aspect.js +806 -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 +996 -0
- package/esm2015/src/entity-state.js +99 -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 +405 -0
- package/esm2015/src/naming-convention.js +88 -0
- package/esm2015/src/observable-array.js +185 -0
- package/esm2015/src/predicate.js +1235 -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/esm5/adapter-data-service-odata/adapter-data-service-odata.js +466 -0
- 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 +98 -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 +302 -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 +717 -0
- package/esm5/src/csdl-metadata-parser.js +385 -0
- package/esm5/src/data-service.js +207 -0
- package/esm5/src/data-type.js +451 -0
- package/esm5/src/default-property-interceptor.js +460 -0
- package/esm5/src/entity-action.js +52 -0
- package/esm5/src/entity-aspect.js +812 -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 +1023 -0
- package/esm5/src/entity-state.js +106 -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 +407 -0
- package/esm5/src/naming-convention.js +90 -0
- package/esm5/src/observable-array.js +201 -0
- package/esm5/src/predicate.js +1300 -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/esm5/src/validate.js +996 -0
- package/esm5/src/validation-options.js +66 -0
- package/fesm2015/{breeze-client-adapter-ajax-angularjs.mjs → breeze-client-adapter-ajax-angularjs.js} +1 -2
- package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-fetch.mjs → breeze-client-adapter-ajax-fetch.js} +3 -6
- package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-httpclient.mjs → breeze-client-adapter-ajax-httpclient.js} +1 -2
- package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-jquery.mjs → breeze-client-adapter-ajax-jquery.js} +2 -3
- package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +1 -0
- package/{fesm2020/breeze-client-adapter-ajax-post.mjs → fesm2015/breeze-client-adapter-ajax-post.js} +1 -2
- package/fesm2015/breeze-client-adapter-ajax-post.js.map +1 -0
- package/fesm2015/{breeze-client-adapter-data-service-odata.mjs → breeze-client-adapter-data-service-odata.js} +22 -21
- package/fesm2015/breeze-client-adapter-data-service-odata.js.map +1 -0
- package/fesm2015/{breeze-client-adapter-data-service-webapi.mjs → breeze-client-adapter-data-service-webapi.js} +13 -14
- package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +1 -0
- package/{fesm2020/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/{fesm2020/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/{fesm2020/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/{fesm2020/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/fesm2015/{breeze-client-mixin-get-entity-graph.mjs → breeze-client-mixin-get-entity-graph.js} +1 -2
- package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +1 -0
- package/fesm2015/{breeze-client-mixin-save-queuing.mjs → breeze-client-mixin-save-queuing.js} +1 -2
- package/fesm2015/breeze-client-mixin-save-queuing.js.map +1 -0
- package/fesm2015/{breeze-client.mjs → breeze-client.js} +417 -408
- package/fesm2015/breeze-client.js.map +1 -0
- package/{fesm2020/breeze-client-adapter-ajax-angularjs.mjs → fesm5/breeze-client-adapter-ajax-angularjs.js} +42 -42
- package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +1 -0
- package/{fesm2020/breeze-client-adapter-ajax-fetch.mjs → fesm5/breeze-client-adapter-ajax-fetch.js} +43 -45
- package/fesm5/breeze-client-adapter-ajax-fetch.js.map +1 -0
- package/{fesm2020/breeze-client-adapter-ajax-httpclient.mjs → fesm5/breeze-client-adapter-ajax-httpclient.js} +44 -44
- package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +1 -0
- package/{fesm2020/breeze-client-adapter-ajax-jquery.mjs → fesm5/breeze-client-adapter-ajax-jquery.js} +19 -19
- package/fesm5/breeze-client-adapter-ajax-jquery.js.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-post.mjs → fesm5/breeze-client-adapter-ajax-post.js} +11 -9
- package/fesm5/breeze-client-adapter-ajax-post.js.map +1 -0
- package/{fesm2020/breeze-client-adapter-data-service-odata.mjs → fesm5/breeze-client-adapter-data-service-odata.js} +134 -127
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +1 -0
- package/{fesm2020/breeze-client-adapter-data-service-webapi.mjs → fesm5/breeze-client-adapter-data-service-webapi.js} +42 -39
- package/fesm5/breeze-client-adapter-data-service-webapi.js.map +1 -0
- package/{fesm2015/breeze-client-adapter-model-library-backing-store.mjs → fesm5/breeze-client-adapter-model-library-backing-store.js} +64 -64
- package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +1 -0
- package/{fesm2015/breeze-client-adapter-model-library-ko.mjs → fesm5/breeze-client-adapter-model-library-ko.js} +58 -58
- 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/{fesm2020/breeze-client-mixin-get-entity-graph.mjs → fesm5/breeze-client-mixin-get-entity-graph.js} +45 -46
- package/fesm5/breeze-client-mixin-get-entity-graph.js.map +1 -0
- package/{fesm2020/breeze-client-mixin-save-queuing.mjs → fesm5/breeze-client-mixin-save-queuing.js} +126 -117
- package/fesm5/breeze-client-mixin-save-queuing.js.map +1 -0
- package/{fesm2020/breeze-client.mjs → fesm5/breeze-client.js} +3629 -3413
- 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 -125
- package/src/entity-metadata.d.ts +4 -6
- package/src/entity-query.d.ts +1 -1
- package/esm2020/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -130
- package/esm2020/adapter-ajax-angularjs/adapter-core.mjs +0 -49
- package/esm2020/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
- package/esm2020/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -132
- package/esm2020/adapter-ajax-fetch/adapter-core.mjs +0 -49
- package/esm2020/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
- package/esm2020/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -137
- package/esm2020/adapter-ajax-httpclient/adapter-core.mjs +0 -49
- package/esm2020/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
- package/esm2020/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -103
- package/esm2020/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
- package/esm2020/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
- package/esm2020/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
- package/esm2020/adapter-data-service-odata/adapter-core.mjs +0 -49
- package/esm2020/adapter-data-service-odata/adapter-data-service-odata.mjs +0 -456
- package/esm2020/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
- package/esm2020/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -93
- package/esm2020/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
- package/esm2020/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -268
- package/esm2020/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
- package/esm2020/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -240
- package/esm2020/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
- package/esm2020/adapter-uri-builder-json/adapter-core.mjs +0 -49
- package/esm2020/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -36
- package/esm2020/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
- package/esm2020/adapter-uri-builder-odata/adapter-core.mjs +0 -49
- package/esm2020/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -190
- package/esm2020/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
- package/esm2020/breeze-client.mjs +0 -5
- package/esm2020/index.mjs +0 -2
- package/esm2020/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
- package/esm2020/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
- package/esm2020/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
- package/esm2020/mixin-save-queuing/mixin-save-queuing.mjs +0 -400
- package/esm2020/src/abstract-data-service-adapter.mjs +0 -296
- package/esm2020/src/array.mjs +0 -4
- package/esm2020/src/assert-param.mjs +0 -312
- package/esm2020/src/breeze.mjs +0 -85
- package/esm2020/src/complex-array.mjs +0 -117
- package/esm2020/src/config.mjs +0 -223
- package/esm2020/src/core.mjs +0 -707
- package/esm2020/src/csdl-metadata-parser.mjs +0 -385
- package/esm2020/src/data-service.mjs +0 -203
- package/esm2020/src/data-type.mjs +0 -444
- package/esm2020/src/default-property-interceptor.mjs +0 -460
- package/esm2020/src/entity-action.mjs +0 -45
- package/esm2020/src/entity-aspect.mjs +0 -806
- package/esm2020/src/entity-group.mjs +0 -187
- package/esm2020/src/entity-key.mjs +0 -116
- package/esm2020/src/entity-manager.mjs +0 -2094
- package/esm2020/src/entity-metadata.mjs +0 -2109
- package/esm2020/src/entity-query.mjs +0 -996
- package/esm2020/src/entity-state.mjs +0 -99
- package/esm2020/src/enum.mjs +0 -141
- package/esm2020/src/event.mjs +0 -256
- package/esm2020/src/interface-registry.mjs +0 -41
- package/esm2020/src/key-generator.mjs +0 -108
- package/esm2020/src/local-query-comparison-options.mjs +0 -65
- package/esm2020/src/mapping-context.mjs +0 -405
- package/esm2020/src/naming-convention.mjs +0 -88
- package/esm2020/src/observable-array.mjs +0 -183
- package/esm2020/src/predicate.mjs +0 -1232
- package/esm2020/src/primitive-array.mjs +0 -85
- package/esm2020/src/query-options.mjs +0 -152
- package/esm2020/src/relation-array.mjs +0 -173
- package/esm2020/src/save-options.mjs +0 -41
- package/esm2020/src/unattached-children-map.mjs +0 -58
- package/esm2020/src/validate.mjs +0 -988
- package/esm2020/src/validation-options.mjs +0 -64
- package/fesm2015/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-post.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-odata.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-ko.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-json.mjs +0 -92
- package/fesm2015/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-odata.mjs +0 -246
- package/fesm2015/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
- package/fesm2015/breeze-client-mixin-save-queuing.mjs.map +0 -1
- package/fesm2015/breeze-client.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-ajax-post.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-data-service-odata.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-model-library-ko.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
- package/fesm2020/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
- package/fesm2020/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
- package/fesm2020/breeze-client-mixin-save-queuing.mjs.map +0 -1
- package/fesm2020/breeze-client.mjs.map +0 -1
- package/mjs/README.md +0 -17
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
const ɵ0 = function (...args) {
|
|
3
|
+
if (this._inProgress) {
|
|
4
|
+
return -1;
|
|
5
|
+
}
|
|
6
|
+
let goodAdds = this._getGoodAdds(args);
|
|
7
|
+
if (!goodAdds.length) {
|
|
8
|
+
return this.length;
|
|
9
|
+
}
|
|
10
|
+
this._beforeChange();
|
|
11
|
+
let result;
|
|
12
|
+
let objPrototype = Object.getPrototypeOf(this);
|
|
13
|
+
if (objPrototype.push) {
|
|
14
|
+
result = objPrototype.push.apply(this, goodAdds);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
result = Array.prototype.push.apply(this, goodAdds);
|
|
18
|
+
}
|
|
19
|
+
processAdds(this, goodAdds);
|
|
20
|
+
return result;
|
|
21
|
+
}, ɵ1 = function (...args) {
|
|
22
|
+
if (this._inProgress) {
|
|
23
|
+
return -1;
|
|
24
|
+
}
|
|
25
|
+
let goodAdds = args;
|
|
26
|
+
this._beforeChange();
|
|
27
|
+
let result;
|
|
28
|
+
let objPrototype = Object.getPrototypeOf(this);
|
|
29
|
+
if (objPrototype.push) {
|
|
30
|
+
result = objPrototype.push.apply(this, goodAdds);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
result = Array.prototype.push.apply(this, goodAdds);
|
|
34
|
+
}
|
|
35
|
+
processAdds(this, goodAdds);
|
|
36
|
+
return result;
|
|
37
|
+
}, ɵ2 = function (...args) {
|
|
38
|
+
let goodAdds = this._getGoodAdds(args);
|
|
39
|
+
if (!goodAdds.length) {
|
|
40
|
+
return this.length;
|
|
41
|
+
}
|
|
42
|
+
this._beforeChange();
|
|
43
|
+
let result;
|
|
44
|
+
let objPrototype = Object.getPrototypeOf(this);
|
|
45
|
+
if (objPrototype.unshift) {
|
|
46
|
+
result = objPrototype.unshift.apply(this, goodAdds);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
result = Array.prototype.unshift.apply(this, goodAdds);
|
|
50
|
+
}
|
|
51
|
+
processAdds(this, goodAdds);
|
|
52
|
+
return result;
|
|
53
|
+
}, ɵ3 = function () {
|
|
54
|
+
this._beforeChange();
|
|
55
|
+
let result;
|
|
56
|
+
let objPrototype = Object.getPrototypeOf(this);
|
|
57
|
+
if (objPrototype.pop) {
|
|
58
|
+
result = objPrototype.pop.apply(this);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
result = Array.prototype.pop.apply(this);
|
|
62
|
+
}
|
|
63
|
+
processRemoves(this, [result]);
|
|
64
|
+
return result;
|
|
65
|
+
}, ɵ4 = function () {
|
|
66
|
+
this._beforeChange();
|
|
67
|
+
let result;
|
|
68
|
+
let objPrototype = Object.getPrototypeOf(this);
|
|
69
|
+
if (objPrototype.shift) {
|
|
70
|
+
result = objPrototype.shift.apply(this);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
result = Array.prototype.shift.apply(this);
|
|
74
|
+
}
|
|
75
|
+
processRemoves(this, [result]);
|
|
76
|
+
return result;
|
|
77
|
+
}, ɵ5 = function (...args) {
|
|
78
|
+
let goodAdds = this._getGoodAdds(core.arraySlice(args, 2));
|
|
79
|
+
let newArgs = core.arraySlice(args, 0, 2).concat(goodAdds);
|
|
80
|
+
this._beforeChange();
|
|
81
|
+
let result;
|
|
82
|
+
let objPrototype = Object.getPrototypeOf(this);
|
|
83
|
+
if (objPrototype.splice) {
|
|
84
|
+
result = objPrototype.splice.apply(this, newArgs);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
result = Array.prototype.splice.apply(this, newArgs);
|
|
88
|
+
}
|
|
89
|
+
processRemoves(this, result);
|
|
90
|
+
if (goodAdds.length) {
|
|
91
|
+
processAdds(this, goodAdds);
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}, ɵ6 = function () {
|
|
95
|
+
return this.parent.entityAspect || this.parent.complexAspect.getEntityAspect();
|
|
96
|
+
}, ɵ7 = function () {
|
|
97
|
+
return this.getEntityAspect();
|
|
98
|
+
}, ɵ8 = function () {
|
|
99
|
+
let em = this.getEntityAspect().entityManager;
|
|
100
|
+
return em && em._pendingPubs;
|
|
101
|
+
}, ɵ9 = function () {
|
|
102
|
+
// default is to do nothing
|
|
103
|
+
};
|
|
104
|
+
let mixin = {
|
|
105
|
+
push: ɵ0,
|
|
106
|
+
_push: ɵ1,
|
|
107
|
+
unshift: ɵ2,
|
|
108
|
+
pop: ɵ3,
|
|
109
|
+
shift: ɵ4,
|
|
110
|
+
splice: ɵ5,
|
|
111
|
+
getEntityAspect: ɵ6,
|
|
112
|
+
_getEventParent: ɵ7,
|
|
113
|
+
_getPendingPubs: ɵ8,
|
|
114
|
+
_beforeChange: ɵ9
|
|
115
|
+
};
|
|
116
|
+
function updateEntityState(obsArray) {
|
|
117
|
+
let entityAspect = obsArray.getEntityAspect();
|
|
118
|
+
if (entityAspect.entityState.isUnchanged()) {
|
|
119
|
+
entityAspect.setModified();
|
|
120
|
+
}
|
|
121
|
+
if (entityAspect.entityState.isModified() && !obsArray._origValues) {
|
|
122
|
+
obsArray._origValues = obsArray.slice(0);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function publish(publisher, eventName, eventArgs) {
|
|
126
|
+
let pendingPubs = publisher._getPendingPubs();
|
|
127
|
+
if (pendingPubs) {
|
|
128
|
+
if (!publisher._pendingArgs) {
|
|
129
|
+
publisher._pendingArgs = eventArgs;
|
|
130
|
+
pendingPubs.push(function () {
|
|
131
|
+
publisher[eventName].publish(publisher._pendingArgs);
|
|
132
|
+
publisher._pendingArgs = null;
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
combineArgs(publisher._pendingArgs, eventArgs);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
publisher[eventName].publish(eventArgs);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function initializeParent(obsArray, parent, parentProperty) {
|
|
144
|
+
obsArray.parent = parent;
|
|
145
|
+
obsArray.parentProperty = parentProperty;
|
|
146
|
+
}
|
|
147
|
+
function processAdds(obsArray, adds) {
|
|
148
|
+
obsArray._processAdds(adds);
|
|
149
|
+
// this is referencing the name of the method on the complexArray not the name of the event
|
|
150
|
+
//var args = { added: adds };
|
|
151
|
+
//args[obsArray._typeName] = obsArray;
|
|
152
|
+
publish(obsArray, "arrayChanged", { array: obsArray, added: adds });
|
|
153
|
+
}
|
|
154
|
+
function processRemoves(obsArray, removes) {
|
|
155
|
+
obsArray._processRemoves(removes);
|
|
156
|
+
// this is referencing the name of the method on the array not the name of the event
|
|
157
|
+
publish(obsArray, "arrayChanged", { array: obsArray, removed: removes });
|
|
158
|
+
}
|
|
159
|
+
// TODO: see if this function already exists in core and can be imported.
|
|
160
|
+
function combineArgs(target, source) {
|
|
161
|
+
for (let key in source) {
|
|
162
|
+
if (key !== "array" && target.hasOwnProperty(key)) {
|
|
163
|
+
let sourceValue = source[key];
|
|
164
|
+
let targetValue = target[key];
|
|
165
|
+
if (targetValue) {
|
|
166
|
+
if (!Array.isArray(targetValue)) {
|
|
167
|
+
throw new Error("Cannot combine non array args");
|
|
168
|
+
}
|
|
169
|
+
Array.prototype.push.apply(targetValue, sourceValue);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
target[key] = sourceValue;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/** @hidden @internal */
|
|
178
|
+
export const observableArray = {
|
|
179
|
+
mixin: mixin,
|
|
180
|
+
updateEntityState: updateEntityState,
|
|
181
|
+
publish: publish,
|
|
182
|
+
initializeParent: initializeParent
|
|
183
|
+
};
|
|
184
|
+
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9 };
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1hcnJheS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZS1hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO1dBb0N0QixVQUFTLEdBQUcsSUFBVztJQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDcEIsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUNYO0lBRUQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDcEI7SUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDckIsSUFBSSxNQUFNLENBQUM7SUFDWCxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLElBQUksWUFBWSxDQUFDLElBQUksRUFBRTtRQUNuQixNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQ3BEO1NBQU07UUFDSCxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztLQUN2RDtJQUNELFdBQVcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxPQUVNLFVBQVMsR0FBRyxJQUFXO0lBQzVCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNwQixPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQ1g7SUFDRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDcEIsSUFBSSxDQUFDLGFBQWEs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S0FBSyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQzthQUN0RDtpQkFBTTtnQkFDTCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO2FBQzNCO1NBQ0Y7S0FDRjtBQUNILENBQUM7QUFDRCx3QkFBd0I7QUFDeEIsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLEtBQUssRUFBRSxLQUFLO0lBQ1osaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3BDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLGdCQUFnQixFQUFFLGdCQUFnQjtDQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IEJyZWV6ZUV2ZW50IH0gZnJvbSAnLi9ldmVudCc7XHJcbmltcG9ydCB7IEVudGl0eUFzcGVjdCB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IERhdGFQcm9wZXJ0eSB9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhJztcclxuXHJcbi8qKiBAaGlkZGVuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJsZUFycmF5IHtcclxuICBwdXNoOiAoLi4uYXJnczogYW55W10pID0+IG51bWJlcjtcclxuICBfcHVzaDogKC4uLmFyZ3M6IGFueVtdKSA9PiBudW1iZXI7XHJcbiAgdW5zaGlmdDogKC4uLmFyZ3M6IGFueVtdKSA9PiAgbnVtYmVyO1xyXG4gIHBvcDogKCkgPT4gYW55O1xyXG4gIHNoaWZ0OiAoKSA9PiBhbnk7XHJcbiAgc3BsaWNlOiAoLi4uYXJnczogYW55W10pID0+IGFueVtdO1xyXG4gIHNsaWNlOiAoYTogbnVtYmVyLCBiPzogbnVtYmVyKSA9PiBhbnlbXTsgLy8gaW1wbGVtZW50ZWQgb24gdGhlIG5hdGl2ZSBhcnJheVxyXG4gIGxlbmd0aDogbnVtYmVyO1xyXG4gIFxyXG4gIGdldEVudGl0eUFzcGVjdDogKCkgPT4gRW50aXR5QXNwZWN0O1xyXG4gIGFycmF5Q2hhbmdlZDogQnJlZXplRXZlbnQ8QXJyYXlDaGFuZ2VkQXJncz47XHJcbiAgcGFyZW50PzogT2JqZWN0O1xyXG4gIHBhcmVudFByb3BlcnR5PzogRGF0YVByb3BlcnR5O1xyXG4gIF9nZXRFdmVudFBhcmVudDogKCkgPT4gT2JqZWN0O1xyXG4gIF9nZXRQZW5kaW5nUHViczogKCkgPT4gYW55W107IC8vIFRPRE86IFB1YltdXHJcbiAgX2JlZm9yZUNoYW5nZTogKCkgPT4gdm9pZDtcclxuICBfcHJvY2Vzc0FkZHMoaXRlbXM6IGFueVtdKTogdm9pZDtcclxuICBfcHJvY2Vzc1JlbW92ZXMoaXRlbXM6IGFueVtdKTogdm9pZDtcclxuICBfb3JpZ1ZhbHVlczogYW55W107XHJcbiAgX3BlbmRpbmdBcmdzOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlDaGFuZ2VkQXJncyB7XHJcbiAgYXJyYXk6IGFueVtdO1xyXG4gIGFkZGVkPzogYW55W107IFxyXG4gIHJlbW92ZWQ/OiBhbnlbXTtcclxufVxyXG5cclxubGV0IG1peGluID0ge1xyXG4gIHB1c2g6IGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICBpZiAodGhpcy5faW5Qcm9ncmVzcykge1xyXG4gICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGdvb2RBZGRzID0gdGhpcy5fZ2V0R29vZEFkZHMoYXJncyk7XHJcbiAgICBpZiAoIWdvb2RBZGRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS5wdXNoKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gb2JqUHJvdG90eXBlLnB1c2guYXBwbHkodGhpcywgZ29vZEFkZHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICB9XHJcbiAgICBwcm9jZXNzQWRkcyh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH0sXHJcblxyXG4gIF9wdXNoOiBmdW5jdGlvbiguLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMuX2luUHJvZ3Jlc3MpIHtcclxuICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfVxyXG4gICAgbGV0IGdvb2RBZGRzID0gYXJncztcclxuICAgIHRoaXMuX2JlZm9yZUNoYW5nZSgpO1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGxldCBvYmpQcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7XHJcbiAgICBpZiAob2JqUHJvdG90eXBlLnB1c2gpIHtcclxuICAgICAgICByZXN1bHQgPSBvYmpQcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIH1cclxuICAgIHByb2Nlc3NBZGRzKHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgdW5zaGlmdDogZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcclxuICAgIGxldCBnb29kQWRkcyA9IHRoaXMuX2dldEdvb2RBZGRzKGFyZ3MpO1xyXG4gICAgaWYgKCFnb29kQWRkcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fYmVmb3JlQ2hhbmdlKCk7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgbGV0IG9ialByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtcclxuICAgIGlmIChvYmpQcm90b3R5cGUudW5zaGlmdCkge1xyXG4gICAgICAgIHJlc3VsdCA9IG9ialByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkodGhpcywgZ29vZEFkZHMpO1xyXG4gICAgfVxyXG4gICAgcHJvY2Vzc0FkZHModGhpcywgZ29vZEFkZHMpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9LFxyXG5cclxuICBwb3A6IGZ1bmN0aW9uKCkge1xyXG4gICAgdGhpcy5fYmVmb3JlQ2hhbmdlKCk7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgbGV0IG9ialByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtcclxuICAgIGlmIChvYmpQcm90b3R5cGUucG9wKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gb2JqUHJvdG90eXBlLnBvcC5hcHBseSh0aGlzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLnBvcC5hcHBseSh0aGlzKTtcclxuICAgIH1cclxuICAgIHByb2Nlc3NSZW1vdmVzKHRoaXMsIFtyZXN1bHRdKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgc2hpZnQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgdGhpcy5fYmVmb3JlQ2hhbmdlKCk7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgbGV0IG9ialByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtcclxuICAgIGlmIChvYmpQcm90b3R5cGUuc2hpZnQpIHtcclxuICAgICAgICByZXN1bHQgPSBvYmpQcm90b3R5cGUuc2hpZnQuYXBwbHkodGhpcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5zaGlmdC5hcHBseSh0aGlzKTtcclxuICAgIH0gICAgXHJcbiAgICBwcm9jZXNzUmVtb3Zlcyh0aGlzLCBbcmVzdWx0XSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH0sXHJcblxyXG4gIHNwbGljZTogZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcclxuICAgIGxldCBnb29kQWRkcyA9IHRoaXMuX2dldEdvb2RBZGRzKGNvcmUuYXJyYXlTbGljZShhcmdzLCAyKSk7XHJcbiAgICBsZXQgbmV3QXJncyA9IGNvcmUuYXJyYXlTbGljZShhcmdzLCAwLCAyKS5jb25jYXQoZ29vZEFkZHMpO1xyXG4gICAgdGhpcy5fYmVmb3JlQ2hhbmdlKCk7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgbGV0IG9ialByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtcclxuICAgIGlmIChvYmpQcm90b3R5cGUuc3BsaWNlKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gb2JqUHJvdG90eXBlLnNwbGljZS5hcHBseSh0aGlzLCBuZXdBcmdzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseSh0aGlzLCBuZXdBcmdzKTtcclxuICAgIH1cclxuICAgIHByb2Nlc3NSZW1vdmVzKHRoaXMsIHJlc3VsdCk7XHJcblxyXG4gICAgaWYgKGdvb2RBZGRzLmxlbmd0aCkge1xyXG4gICAgICBwcm9jZXNzQWRkcyh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH0sXHJcblxyXG4gIGdldEVudGl0eUFzcGVjdDogZnVuY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZW50aXR5QXNwZWN0IHx8IHRoaXMucGFyZW50LmNvbXBsZXhBc3BlY3QuZ2V0RW50aXR5QXNwZWN0KCk7XHJcbiAgfSxcclxuXHJcbiAgX2dldEV2ZW50UGFyZW50OiBmdW5jdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEVudGl0eUFzcGVjdCgpO1xyXG4gIH0sXHJcblxyXG4gIF9nZXRQZW5kaW5nUHViczogZnVuY3Rpb24gKCkge1xyXG4gICAgbGV0IGVtID0gdGhpcy5nZXRFbnRpdHlBc3BlY3QoKS5lbnRpdHlNYW5hZ2VyO1xyXG4gICAgcmV0dXJuIGVtICYmIGVtLl9wZW5kaW5nUHVicztcclxuICB9LFxyXG5cclxuICBfYmVmb3JlQ2hhbmdlOiAgZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gZGVmYXVsdCBpcyB0byBkbyBub3RoaW5nXHJcbiAgfVxyXG59O1xyXG5cclxuZnVuY3Rpb24gdXBkYXRlRW50aXR5U3RhdGUob2JzQXJyYXk6IE9ic2VydmFibGVBcnJheSkge1xyXG4gIGxldCBlbnRpdHlBc3BlY3QgPSBvYnNBcnJheS5nZXRFbnRpdHlBc3BlY3QoKTtcclxuICBpZiAoZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzVW5jaGFuZ2VkKCkpIHtcclxuICAgIGVudGl0eUFzcGVjdC5zZXRNb2RpZmllZCgpO1xyXG4gIH1cclxuICBpZiAoZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzTW9kaWZpZWQoKSAmJiAhb2JzQXJyYXkuX29yaWdWYWx1ZXMpIHtcclxuICAgIG9ic0FycmF5Ll9vcmlnVmFsdWVzID0gb2JzQXJyYXkuc2xpY2UoMCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBwdWJsaXNoKHB1Ymxpc2hlcjogT2JzZXJ2YWJsZUFycmF5LCBldmVudE5hbWU6IHN0cmluZywgZXZlbnRBcmdzOiBhbnkpIHtcclxuICBsZXQgcGVuZGluZ1B1YnMgPSBwdWJsaXNoZXIuX2dldFBlbmRpbmdQdWJzKCk7XHJcbiAgaWYgKHBlbmRpbmdQdWJzKSB7XHJcbiAgICBpZiAoIXB1Ymxpc2hlci5fcGVuZGluZ0FyZ3MpIHtcclxuICAgICAgcHVibGlzaGVyLl9wZW5kaW5nQXJncyA9IGV2ZW50QXJncztcclxuICAgICAgcGVuZGluZ1B1YnMucHVzaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcHVibGlzaGVyW2V2ZW50TmFtZV0ucHVibGlzaChwdWJsaXNoZXIuX3BlbmRpbmdBcmdzKTtcclxuICAgICAgICBwdWJsaXNoZXIuX3BlbmRpbmdBcmdzID0gbnVsbDtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21iaW5lQXJncyhwdWJsaXNoZXIuX3BlbmRpbmdBcmdzLCBldmVudEFyZ3MpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBwdWJsaXNoZXJbZXZlbnROYW1lXS5wdWJsaXNoKGV2ZW50QXJncyk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBpbml0aWFsaXplUGFyZW50KG9ic0FycmF5OiBhbnksIHBhcmVudDogT2JqZWN0LCBwYXJlbnRQcm9wZXJ0eTogRGF0YVByb3BlcnR5KSB7XHJcbiAgb2JzQXJyYXkucGFyZW50ID0gcGFyZW50O1xyXG4gIG9ic0FycmF5LnBhcmVudFByb3BlcnR5ID0gcGFyZW50UHJvcGVydHk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NBZGRzKG9ic0FycmF5OiBPYnNlcnZhYmxlQXJyYXksIGFkZHM6IGFueVtdKSB7XHJcbiAgb2JzQXJyYXkuX3Byb2Nlc3NBZGRzKGFkZHMpO1xyXG4gIC8vIHRoaXMgaXMgcmVmZXJlbmNpbmcgdGhlIG5hbWUgb2YgdGhlIG1ldGhvZCBvbiB0aGUgY29tcGxleEFycmF5IG5vdCB0aGUgbmFtZSBvZiB0aGUgZXZlbnRcclxuICAvL3ZhciBhcmdzID0geyBhZGRlZDogYWRkcyB9O1xyXG4gIC8vYXJnc1tvYnNBcnJheS5fdHlwZU5hbWVdID0gb2JzQXJyYXk7XHJcbiAgcHVibGlzaChvYnNBcnJheSwgXCJhcnJheUNoYW5nZWRcIiwgeyBhcnJheTogb2JzQXJyYXksIGFkZGVkOiBhZGRzIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwcm9jZXNzUmVtb3ZlcyhvYnNBcnJheTogT2JzZXJ2YWJsZUFycmF5LCByZW1vdmVzOiBhbnlbXSkge1xyXG4gIG9ic0FycmF5Ll9wcm9jZXNzUmVtb3ZlcyhyZW1vdmVzKTtcclxuICAvLyB0aGlzIGlzIHJlZmVyZW5jaW5nIHRoZSBuYW1lIG9mIHRoZSBtZXRob2Qgb24gdGhlIGFycmF5IG5vdCB0aGUgbmFtZSBvZiB0aGUgZXZlbnRcclxuICBwdWJsaXNoKG9ic0FycmF5LCBcImFycmF5Q2hhbmdlZFwiLCB7IGFycmF5OiBvYnNBcnJheSwgcmVtb3ZlZDogcmVtb3ZlcyB9KTtcclxufVxyXG5cclxuLy8gVE9ETzogc2VlIGlmIHRoaXMgZnVuY3Rpb24gYWxyZWFkeSBleGlzdHMgaW4gY29yZSBhbmQgY2FuIGJlIGltcG9ydGVkLlxyXG5mdW5jdGlvbiBjb21iaW5lQXJncyh0YXJnZXQ6IE9iamVjdCwgc291cmNlOiBPYmplY3QpIHtcclxuICBmb3IgKGxldCBrZXkgaW4gc291cmNlKSB7XHJcbiAgICBpZiAoa2V5ICE9PSBcImFycmF5XCIgJiYgdGFyZ2V0Lmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgbGV0IHNvdXJjZVZhbHVlID0gc291cmNlW2tleV07XHJcbiAgICAgIGxldCB0YXJnZXRWYWx1ZSA9IHRhcmdldFtrZXldO1xyXG4gICAgICBpZiAodGFyZ2V0VmFsdWUpIHtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodGFyZ2V0VmFsdWUpKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY29tYmluZSBub24gYXJyYXkgYXJnc1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGFyZ2V0VmFsdWUsIHNvdXJjZVZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG5leHBvcnQgY29uc3Qgb2JzZXJ2YWJsZUFycmF5ID0ge1xyXG4gIG1peGluOiBtaXhpbixcclxuICB1cGRhdGVFbnRpdHlTdGF0ZTogdXBkYXRlRW50aXR5U3RhdGUsXHJcbiAgcHVibGlzaDogcHVibGlzaCxcclxuICBpbml0aWFsaXplUGFyZW50OiBpbml0aWFsaXplUGFyZW50XHJcbn07XHJcbiJdfQ==
|