breeze-client 2.2.0 → 2.2.1-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/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/esm5/src/naming-convention.js +90 -0
- 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 -2042
- 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 +12 -94
- 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 -510
- 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/naming-convention.mjs +0 -96
- 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
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
var ɵ0 = function () {
|
|
3
|
+
var args = [];
|
|
4
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
5
|
+
args[_i] = arguments[_i];
|
|
6
|
+
}
|
|
7
|
+
if (this._inProgress) {
|
|
8
|
+
return -1;
|
|
9
|
+
}
|
|
10
|
+
var goodAdds = this._getGoodAdds(args);
|
|
11
|
+
if (!goodAdds.length) {
|
|
12
|
+
return this.length;
|
|
13
|
+
}
|
|
14
|
+
this._beforeChange();
|
|
15
|
+
var result;
|
|
16
|
+
var objPrototype = Object.getPrototypeOf(this);
|
|
17
|
+
if (objPrototype.push) {
|
|
18
|
+
result = objPrototype.push.apply(this, goodAdds);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
result = Array.prototype.push.apply(this, goodAdds);
|
|
22
|
+
}
|
|
23
|
+
processAdds(this, goodAdds);
|
|
24
|
+
return result;
|
|
25
|
+
}, ɵ1 = function () {
|
|
26
|
+
var args = [];
|
|
27
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
28
|
+
args[_i] = arguments[_i];
|
|
29
|
+
}
|
|
30
|
+
if (this._inProgress) {
|
|
31
|
+
return -1;
|
|
32
|
+
}
|
|
33
|
+
var goodAdds = args;
|
|
34
|
+
this._beforeChange();
|
|
35
|
+
var result;
|
|
36
|
+
var objPrototype = Object.getPrototypeOf(this);
|
|
37
|
+
if (objPrototype.push) {
|
|
38
|
+
result = objPrototype.push.apply(this, goodAdds);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
result = Array.prototype.push.apply(this, goodAdds);
|
|
42
|
+
}
|
|
43
|
+
processAdds(this, goodAdds);
|
|
44
|
+
return result;
|
|
45
|
+
}, ɵ2 = function () {
|
|
46
|
+
var args = [];
|
|
47
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
48
|
+
args[_i] = arguments[_i];
|
|
49
|
+
}
|
|
50
|
+
var goodAdds = this._getGoodAdds(args);
|
|
51
|
+
if (!goodAdds.length) {
|
|
52
|
+
return this.length;
|
|
53
|
+
}
|
|
54
|
+
this._beforeChange();
|
|
55
|
+
var result;
|
|
56
|
+
var objPrototype = Object.getPrototypeOf(this);
|
|
57
|
+
if (objPrototype.unshift) {
|
|
58
|
+
result = objPrototype.unshift.apply(this, goodAdds);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
result = Array.prototype.unshift.apply(this, goodAdds);
|
|
62
|
+
}
|
|
63
|
+
processAdds(this, goodAdds);
|
|
64
|
+
return result;
|
|
65
|
+
}, ɵ3 = function () {
|
|
66
|
+
this._beforeChange();
|
|
67
|
+
var result;
|
|
68
|
+
var objPrototype = Object.getPrototypeOf(this);
|
|
69
|
+
if (objPrototype.pop) {
|
|
70
|
+
result = objPrototype.pop.apply(this);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
result = Array.prototype.pop.apply(this);
|
|
74
|
+
}
|
|
75
|
+
processRemoves(this, [result]);
|
|
76
|
+
return result;
|
|
77
|
+
}, ɵ4 = function () {
|
|
78
|
+
this._beforeChange();
|
|
79
|
+
var result;
|
|
80
|
+
var objPrototype = Object.getPrototypeOf(this);
|
|
81
|
+
if (objPrototype.shift) {
|
|
82
|
+
result = objPrototype.shift.apply(this);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
result = Array.prototype.shift.apply(this);
|
|
86
|
+
}
|
|
87
|
+
processRemoves(this, [result]);
|
|
88
|
+
return result;
|
|
89
|
+
}, ɵ5 = function () {
|
|
90
|
+
var args = [];
|
|
91
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
92
|
+
args[_i] = arguments[_i];
|
|
93
|
+
}
|
|
94
|
+
var goodAdds = this._getGoodAdds(core.arraySlice(args, 2));
|
|
95
|
+
var newArgs = core.arraySlice(args, 0, 2).concat(goodAdds);
|
|
96
|
+
this._beforeChange();
|
|
97
|
+
var result;
|
|
98
|
+
var objPrototype = Object.getPrototypeOf(this);
|
|
99
|
+
if (objPrototype.splice) {
|
|
100
|
+
result = objPrototype.splice.apply(this, newArgs);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
result = Array.prototype.splice.apply(this, newArgs);
|
|
104
|
+
}
|
|
105
|
+
processRemoves(this, result);
|
|
106
|
+
if (goodAdds.length) {
|
|
107
|
+
processAdds(this, goodAdds);
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}, ɵ6 = function () {
|
|
111
|
+
return this.parent.entityAspect || this.parent.complexAspect.getEntityAspect();
|
|
112
|
+
}, ɵ7 = function () {
|
|
113
|
+
return this.getEntityAspect();
|
|
114
|
+
}, ɵ8 = function () {
|
|
115
|
+
var em = this.getEntityAspect().entityManager;
|
|
116
|
+
return em && em._pendingPubs;
|
|
117
|
+
}, ɵ9 = function () {
|
|
118
|
+
// default is to do nothing
|
|
119
|
+
};
|
|
120
|
+
var mixin = {
|
|
121
|
+
push: ɵ0,
|
|
122
|
+
_push: ɵ1,
|
|
123
|
+
unshift: ɵ2,
|
|
124
|
+
pop: ɵ3,
|
|
125
|
+
shift: ɵ4,
|
|
126
|
+
splice: ɵ5,
|
|
127
|
+
getEntityAspect: ɵ6,
|
|
128
|
+
_getEventParent: ɵ7,
|
|
129
|
+
_getPendingPubs: ɵ8,
|
|
130
|
+
_beforeChange: ɵ9
|
|
131
|
+
};
|
|
132
|
+
function updateEntityState(obsArray) {
|
|
133
|
+
var entityAspect = obsArray.getEntityAspect();
|
|
134
|
+
if (entityAspect.entityState.isUnchanged()) {
|
|
135
|
+
entityAspect.setModified();
|
|
136
|
+
}
|
|
137
|
+
if (entityAspect.entityState.isModified() && !obsArray._origValues) {
|
|
138
|
+
obsArray._origValues = obsArray.slice(0);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function publish(publisher, eventName, eventArgs) {
|
|
142
|
+
var pendingPubs = publisher._getPendingPubs();
|
|
143
|
+
if (pendingPubs) {
|
|
144
|
+
if (!publisher._pendingArgs) {
|
|
145
|
+
publisher._pendingArgs = eventArgs;
|
|
146
|
+
pendingPubs.push(function () {
|
|
147
|
+
publisher[eventName].publish(publisher._pendingArgs);
|
|
148
|
+
publisher._pendingArgs = null;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
combineArgs(publisher._pendingArgs, eventArgs);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
publisher[eventName].publish(eventArgs);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function initializeParent(obsArray, parent, parentProperty) {
|
|
160
|
+
obsArray.parent = parent;
|
|
161
|
+
obsArray.parentProperty = parentProperty;
|
|
162
|
+
}
|
|
163
|
+
function processAdds(obsArray, adds) {
|
|
164
|
+
obsArray._processAdds(adds);
|
|
165
|
+
// this is referencing the name of the method on the complexArray not the name of the event
|
|
166
|
+
//var args = { added: adds };
|
|
167
|
+
//args[obsArray._typeName] = obsArray;
|
|
168
|
+
publish(obsArray, "arrayChanged", { array: obsArray, added: adds });
|
|
169
|
+
}
|
|
170
|
+
function processRemoves(obsArray, removes) {
|
|
171
|
+
obsArray._processRemoves(removes);
|
|
172
|
+
// this is referencing the name of the method on the array not the name of the event
|
|
173
|
+
publish(obsArray, "arrayChanged", { array: obsArray, removed: removes });
|
|
174
|
+
}
|
|
175
|
+
// TODO: see if this function already exists in core and can be imported.
|
|
176
|
+
function combineArgs(target, source) {
|
|
177
|
+
for (var key in source) {
|
|
178
|
+
if (key !== "array" && target.hasOwnProperty(key)) {
|
|
179
|
+
var sourceValue = source[key];
|
|
180
|
+
var targetValue = target[key];
|
|
181
|
+
if (targetValue) {
|
|
182
|
+
if (!Array.isArray(targetValue)) {
|
|
183
|
+
throw new Error("Cannot combine non array args");
|
|
184
|
+
}
|
|
185
|
+
Array.prototype.push.apply(targetValue, sourceValue);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
target[key] = sourceValue;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** @hidden @internal */
|
|
194
|
+
export var observableArray = {
|
|
195
|
+
mixin: mixin,
|
|
196
|
+
updateEntityState: updateEntityState,
|
|
197
|
+
publish: publish,
|
|
198
|
+
initializeParent: initializeParent
|
|
199
|
+
};
|
|
200
|
+
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9 };
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1hcnJheS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZS1hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO1NBb0N0QjtJQUFTLGNBQWM7U0FBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO1FBQWQseUJBQWM7O0lBQzNCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNwQixPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQ1g7SUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUNwQjtJQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNyQixJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFO1FBQ25CLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDcEQ7U0FBTTtRQUNILE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQ3ZEO0lBQ0QsV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLE9BRU07SUFBUyxjQUFjO1NBQWQsVUFBYyxFQUFkLHFCQUFjLEVBQWQsSUFBYztRQUFkLHlCQUFjOztJQUM1QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDcEIs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QUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2lCQUNsRDtnQkFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO2FBQ3REO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7YUFDM0I7U0FDRjtLQUNGO0FBQ0gsQ0FBQztBQUNELHdCQUF3QjtBQUN4QixNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUc7SUFDN0IsS0FBSyxFQUFFLEtBQUs7SUFDWixpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb3JlIH0gZnJvbSAnLi9jb3JlJztcclxuaW1wb3J0IHsgQnJlZXplRXZlbnQgfSBmcm9tICcuL2V2ZW50JztcclxuaW1wb3J0IHsgRW50aXR5QXNwZWN0IH0gZnJvbSAnLi9lbnRpdHktYXNwZWN0JztcclxuaW1wb3J0IHsgRGF0YVByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5cclxuLyoqIEBoaWRkZW4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZhYmxlQXJyYXkge1xyXG4gIHB1c2g6ICguLi5hcmdzOiBhbnlbXSkgPT4gbnVtYmVyO1xyXG4gIF9wdXNoOiAoLi4uYXJnczogYW55W10pID0+IG51bWJlcjtcclxuICB1bnNoaWZ0OiAoLi4uYXJnczogYW55W10pID0+ICBudW1iZXI7XHJcbiAgcG9wOiAoKSA9PiBhbnk7XHJcbiAgc2hpZnQ6ICgpID0+IGFueTtcclxuICBzcGxpY2U6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55W107XHJcbiAgc2xpY2U6IChhOiBudW1iZXIsIGI/OiBudW1iZXIpID0+IGFueVtdOyAvLyBpbXBsZW1lbnRlZCBvbiB0aGUgbmF0aXZlIGFycmF5XHJcbiAgbGVuZ3RoOiBudW1iZXI7XHJcbiAgXHJcbiAgZ2V0RW50aXR5QXNwZWN0OiAoKSA9PiBFbnRpdHlBc3BlY3Q7XHJcbiAgYXJyYXlDaGFuZ2VkOiBCcmVlemVFdmVudDxBcnJheUNoYW5nZWRBcmdzPjtcclxuICBwYXJlbnQ/OiBPYmplY3Q7XHJcbiAgcGFyZW50UHJvcGVydHk/OiBEYXRhUHJvcGVydHk7XHJcbiAgX2dldEV2ZW50UGFyZW50OiAoKSA9PiBPYmplY3Q7XHJcbiAgX2dldFBlbmRpbmdQdWJzOiAoKSA9PiBhbnlbXTsgLy8gVE9ETzogUHViW11cclxuICBfYmVmb3JlQ2hhbmdlOiAoKSA9PiB2b2lkO1xyXG4gIF9wcm9jZXNzQWRkcyhpdGVtczogYW55W10pOiB2b2lkO1xyXG4gIF9wcm9jZXNzUmVtb3ZlcyhpdGVtczogYW55W10pOiB2b2lkO1xyXG4gIF9vcmlnVmFsdWVzOiBhbnlbXTtcclxuICBfcGVuZGluZ0FyZ3M6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUNoYW5nZWRBcmdzIHtcclxuICBhcnJheTogYW55W107XHJcbiAgYWRkZWQ/OiBhbnlbXTsgXHJcbiAgcmVtb3ZlZD86IGFueVtdO1xyXG59XHJcblxyXG5sZXQgbWl4aW4gPSB7XHJcbiAgcHVzaDogZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcclxuICAgIGlmICh0aGlzLl9pblByb2dyZXNzKSB7XHJcbiAgICAgIHJldHVybiAtMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZ29vZEFkZHMgPSB0aGlzLl9nZXRHb29kQWRkcyhhcmdzKTtcclxuICAgIGlmICghZ29vZEFkZHMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxlbmd0aDtcclxuICAgIH1cclxuICAgIHRoaXMuX2JlZm9yZUNoYW5nZSgpO1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGxldCBvYmpQcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7XHJcbiAgICBpZiAob2JqUHJvdG90eXBlLnB1c2gpIHtcclxuICAgICAgICByZXN1bHQgPSBvYmpQcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIH1cclxuICAgIHByb2Nlc3NBZGRzKHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgX3B1c2g6IGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICBpZiAodGhpcy5faW5Qcm9ncmVzcykge1xyXG4gICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcbiAgICBsZXQgZ29vZEFkZHMgPSBhcmdzO1xyXG4gICAgdGhpcy5fYmVmb3JlQ2hhbmdlKCk7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgbGV0IG9ialByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtcclxuICAgIGlmIChvYmpQcm90b3R5cGUucHVzaCkge1xyXG4gICAgICAgIHJlc3VsdCA9IG9ialByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcywgZ29vZEFkZHMpO1xyXG4gICAgfVxyXG4gICAgcHJvY2Vzc0FkZHModGhpcywgZ29vZEFkZHMpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9LFxyXG5cclxuICB1bnNoaWZ0OiBmdW5jdGlvbiguLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgbGV0IGdvb2RBZGRzID0gdGhpcy5fZ2V0R29vZEFkZHMoYXJncyk7XHJcbiAgICBpZiAoIWdvb2RBZGRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS51bnNoaWZ0KSB7XHJcbiAgICAgICAgcmVzdWx0ID0gb2JqUHJvdG90eXBlLnVuc2hpZnQuYXBwbHkodGhpcywgZ29vZEFkZHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseSh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICB9XHJcbiAgICBwcm9jZXNzQWRkcyh0aGlzLCBnb29kQWRkcyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH0sXHJcblxyXG4gIHBvcDogZnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS5wb3ApIHtcclxuICAgICAgICByZXN1bHQgPSBvYmpQcm90b3R5cGUucG9wLmFwcGx5KHRoaXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUucG9wLmFwcGx5KHRoaXMpO1xyXG4gICAgfVxyXG4gICAgcHJvY2Vzc1JlbW92ZXModGhpcywgW3Jlc3VsdF0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9LFxyXG5cclxuICBzaGlmdDogZnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS5zaGlmdCkge1xyXG4gICAgICAgIHJlc3VsdCA9IG9ialByb3RvdHlwZS5zaGlmdC5hcHBseSh0aGlzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLnNoaWZ0LmFwcGx5KHRoaXMpO1xyXG4gICAgfSAgICBcclxuICAgIHByb2Nlc3NSZW1vdmVzKHRoaXMsIFtyZXN1bHRdKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgc3BsaWNlOiBmdW5jdGlvbiguLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgbGV0IGdvb2RBZGRzID0gdGhpcy5fZ2V0R29vZEFkZHMoY29yZS5hcnJheVNsaWNlKGFyZ3MsIDIpKTtcclxuICAgIGxldCBuZXdBcmdzID0gY29yZS5hcnJheVNsaWNlKGFyZ3MsIDAsIDIpLmNvbmNhdChnb29kQWRkcyk7XHJcbiAgICB0aGlzLl9iZWZvcmVDaGFuZ2UoKTtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBsZXQgb2JqUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xyXG4gICAgaWYgKG9ialByb3RvdHlwZS5zcGxpY2UpIHtcclxuICAgICAgICByZXN1bHQgPSBvYmpQcm90b3R5cGUuc3BsaWNlLmFwcGx5KHRoaXMsIG5ld0FyZ3MpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KHRoaXMsIG5ld0FyZ3MpO1xyXG4gICAgfVxyXG4gICAgcHJvY2Vzc1JlbW92ZXModGhpcywgcmVzdWx0KTtcclxuXHJcbiAgICBpZiAoZ29vZEFkZHMubGVuZ3RoKSB7XHJcbiAgICAgIHByb2Nlc3NBZGRzKHRoaXMsIGdvb2RBZGRzKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgZ2V0RW50aXR5QXNwZWN0OiBmdW5jdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmVudC5lbnRpdHlBc3BlY3QgfHwgdGhpcy5wYXJlbnQuY29tcGxleEFzcGVjdC5nZXRFbnRpdHlBc3BlY3QoKTtcclxuICB9LFxyXG5cclxuICBfZ2V0RXZlbnRQYXJlbnQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5QXNwZWN0KCk7XHJcbiAgfSxcclxuXHJcbiAgX2dldFBlbmRpbmdQdWJzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICBsZXQgZW0gPSB0aGlzLmdldEVudGl0eUFzcGVjdCgpLmVudGl0eU1hbmFnZXI7XHJcbiAgICByZXR1cm4gZW0gJiYgZW0uX3BlbmRpbmdQdWJzO1xyXG4gIH0sXHJcblxyXG4gIF9iZWZvcmVDaGFuZ2U6ICBmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBkZWZhdWx0IGlzIHRvIGRvIG5vdGhpbmdcclxuICB9XHJcbn07XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVFbnRpdHlTdGF0ZShvYnNBcnJheTogT2JzZXJ2YWJsZUFycmF5KSB7XHJcbiAgbGV0IGVudGl0eUFzcGVjdCA9IG9ic0FycmF5LmdldEVudGl0eUFzcGVjdCgpO1xyXG4gIGlmIChlbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNVbmNoYW5nZWQoKSkge1xyXG4gICAgZW50aXR5QXNwZWN0LnNldE1vZGlmaWVkKCk7XHJcbiAgfVxyXG4gIGlmIChlbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNNb2RpZmllZCgpICYmICFvYnNBcnJheS5fb3JpZ1ZhbHVlcykge1xyXG4gICAgb2JzQXJyYXkuX29yaWdWYWx1ZXMgPSBvYnNBcnJheS5zbGljZSgwKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHB1Ymxpc2gocHVibGlzaGVyOiBPYnNlcnZhYmxlQXJyYXksIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudEFyZ3M6IGFueSkge1xyXG4gIGxldCBwZW5kaW5nUHVicyA9IHB1Ymxpc2hlci5fZ2V0UGVuZGluZ1B1YnMoKTtcclxuICBpZiAocGVuZGluZ1B1YnMpIHtcclxuICAgIGlmICghcHVibGlzaGVyLl9wZW5kaW5nQXJncykge1xyXG4gICAgICBwdWJsaXNoZXIuX3BlbmRpbmdBcmdzID0gZXZlbnRBcmdzO1xyXG4gICAgICBwZW5kaW5nUHVicy5wdXNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBwdWJsaXNoZXJbZXZlbnROYW1lXS5wdWJsaXNoKHB1Ymxpc2hlci5fcGVuZGluZ0FyZ3MpO1xyXG4gICAgICAgIHB1Ymxpc2hlci5fcGVuZGluZ0FyZ3MgPSBudWxsO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbWJpbmVBcmdzKHB1Ymxpc2hlci5fcGVuZGluZ0FyZ3MsIGV2ZW50QXJncyk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHB1Ymxpc2hlcltldmVudE5hbWVdLnB1Ymxpc2goZXZlbnRBcmdzKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluaXRpYWxpemVQYXJlbnQob2JzQXJyYXk6IGFueSwgcGFyZW50OiBPYmplY3QsIHBhcmVudFByb3BlcnR5OiBEYXRhUHJvcGVydHkpIHtcclxuICBvYnNBcnJheS5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgb2JzQXJyYXkucGFyZW50UHJvcGVydHkgPSBwYXJlbnRQcm9wZXJ0eTtcclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc0FkZHMob2JzQXJyYXk6IE9ic2VydmFibGVBcnJheSwgYWRkczogYW55W10pIHtcclxuICBvYnNBcnJheS5fcHJvY2Vzc0FkZHMoYWRkcyk7XHJcbiAgLy8gdGhpcyBpcyByZWZlcmVuY2luZyB0aGUgbmFtZSBvZiB0aGUgbWV0aG9kIG9uIHRoZSBjb21wbGV4QXJyYXkgbm90IHRoZSBuYW1lIG9mIHRoZSBldmVudFxyXG4gIC8vdmFyIGFyZ3MgPSB7IGFkZGVkOiBhZGRzIH07XHJcbiAgLy9hcmdzW29ic0FycmF5Ll90eXBlTmFtZV0gPSBvYnNBcnJheTtcclxuICBwdWJsaXNoKG9ic0FycmF5LCBcImFycmF5Q2hhbmdlZFwiLCB7IGFycmF5OiBvYnNBcnJheSwgYWRkZWQ6IGFkZHMgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NSZW1vdmVzKG9ic0FycmF5OiBPYnNlcnZhYmxlQXJyYXksIHJlbW92ZXM6IGFueVtdKSB7XHJcbiAgb2JzQXJyYXkuX3Byb2Nlc3NSZW1vdmVzKHJlbW92ZXMpO1xyXG4gIC8vIHRoaXMgaXMgcmVmZXJlbmNpbmcgdGhlIG5hbWUgb2YgdGhlIG1ldGhvZCBvbiB0aGUgYXJyYXkgbm90IHRoZSBuYW1lIG9mIHRoZSBldmVudFxyXG4gIHB1Ymxpc2gob2JzQXJyYXksIFwiYXJyYXlDaGFuZ2VkXCIsIHsgYXJyYXk6IG9ic0FycmF5LCByZW1vdmVkOiByZW1vdmVzIH0pO1xyXG59XHJcblxyXG4vLyBUT0RPOiBzZWUgaWYgdGhpcyBmdW5jdGlvbiBhbHJlYWR5IGV4aXN0cyBpbiBjb3JlIGFuZCBjYW4gYmUgaW1wb3J0ZWQuXHJcbmZ1bmN0aW9uIGNvbWJpbmVBcmdzKHRhcmdldDogT2JqZWN0LCBzb3VyY2U6IE9iamVjdCkge1xyXG4gIGZvciAobGV0IGtleSBpbiBzb3VyY2UpIHtcclxuICAgIGlmIChrZXkgIT09IFwiYXJyYXlcIiAmJiB0YXJnZXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICBsZXQgc291cmNlVmFsdWUgPSBzb3VyY2Vba2V5XTtcclxuICAgICAgbGV0IHRhcmdldFZhbHVlID0gdGFyZ2V0W2tleV07XHJcbiAgICAgIGlmICh0YXJnZXRWYWx1ZSkge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh0YXJnZXRWYWx1ZSkpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjb21iaW5lIG5vbiBhcnJheSBhcmdzXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0YXJnZXRWYWx1ZSwgc291cmNlVmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRhcmdldFtrZXldID0gc291cmNlVmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmV4cG9ydCBjb25zdCBvYnNlcnZhYmxlQXJyYXkgPSB7XHJcbiAgbWl4aW46IG1peGluLFxyXG4gIHVwZGF0ZUVudGl0eVN0YXRlOiB1cGRhdGVFbnRpdHlTdGF0ZSxcclxuICBwdWJsaXNoOiBwdWJsaXNoLFxyXG4gIGluaXRpYWxpemVQYXJlbnQ6IGluaXRpYWxpemVQYXJlbnRcclxufTtcclxuIl19
|