breeze-client 2.2.1-cjs → 2.2.2
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/{breeze-client-adapter-ajax-angularjs.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-fetch/{breeze-client-adapter-ajax-fetch.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-httpclient/{breeze-client-adapter-ajax-httpclient.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-jquery/{breeze-client-adapter-ajax-jquery.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-post/{breeze-client-adapter-ajax-post.d.ts → index.d.ts} +1 -0
- package/adapter-data-service-odata/{breeze-client-adapter-data-service-odata.d.ts → index.d.ts} +1 -0
- package/adapter-data-service-webapi/{breeze-client-adapter-data-service-webapi.d.ts → index.d.ts} +1 -0
- package/adapter-model-library-backing-store/{breeze-client-adapter-model-library-backing-store.d.ts → index.d.ts} +1 -0
- package/adapter-model-library-ko/{breeze-client-adapter-model-library-ko.d.ts → index.d.ts} +1 -0
- package/adapter-uri-builder-json/{breeze-client-adapter-uri-builder-json.d.ts → index.d.ts} +1 -0
- package/adapter-uri-builder-odata/{breeze-client-adapter-uri-builder-odata.d.ts → index.d.ts} +1 -0
- package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +135 -0
- package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +49 -0
- package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +5 -0
- package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +135 -0
- package/esm2022/adapter-ajax-fetch/adapter-core.mjs +49 -0
- package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +5 -0
- package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +139 -0
- package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +49 -0
- package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +5 -0
- package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +107 -0
- package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +5 -0
- package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +77 -0
- package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +5 -0
- package/esm2022/adapter-data-service-odata/adapter-core.mjs +49 -0
- package/{esm5/adapter-data-service-odata/adapter-data-service-odata.js → esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs} +138 -147
- package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +5 -0
- package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +100 -0
- package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +5 -0
- package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +269 -0
- package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +5 -0
- package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +241 -0
- package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +5 -0
- package/esm2022/adapter-uri-builder-json/adapter-core.mjs +49 -0
- package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +37 -0
- package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +5 -0
- package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +49 -0
- package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +191 -0
- package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +5 -0
- package/esm2022/breeze-client.mjs +5 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +5 -0
- package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +269 -0
- package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +5 -0
- package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +421 -0
- package/esm2022/src/abstract-data-service-adapter.mjs +325 -0
- package/esm2022/src/array.mjs +4 -0
- package/esm2022/src/assert-param.mjs +330 -0
- package/esm2022/src/breeze.mjs +85 -0
- package/esm2022/src/complex-array.mjs +117 -0
- package/esm2022/src/config.mjs +232 -0
- package/esm2022/src/core.mjs +712 -0
- package/esm2022/src/csdl-metadata-parser.mjs +385 -0
- package/esm2022/src/data-service.mjs +221 -0
- package/esm2022/src/data-type.mjs +510 -0
- package/esm2022/src/default-property-interceptor.mjs +460 -0
- package/{esm2015/src/entity-action.js → esm2022/src/entity-action.mjs} +25 -25
- package/esm2022/src/entity-aspect.mjs +897 -0
- package/esm2022/src/entity-group.mjs +192 -0
- package/esm2022/src/entity-key.mjs +125 -0
- package/esm2022/src/entity-manager.mjs +2163 -0
- package/esm2022/src/entity-metadata.mjs +2242 -0
- package/esm2022/src/entity-query.mjs +1024 -0
- package/esm2022/src/entity-state.mjs +107 -0
- package/esm2022/src/enum.mjs +143 -0
- package/esm2022/src/event.mjs +264 -0
- package/esm2022/src/interface-registry.mjs +39 -0
- package/esm2022/src/key-generator.mjs +110 -0
- package/esm2022/src/local-query-comparison-options.mjs +65 -0
- package/esm2022/src/mapping-context.mjs +411 -0
- package/esm2022/src/naming-convention.mjs +92 -0
- package/esm2022/src/observable-array.mjs +183 -0
- package/esm2022/src/predicate.mjs +1259 -0
- package/esm2022/src/primitive-array.mjs +85 -0
- package/esm2022/src/query-options.mjs +152 -0
- package/esm2022/src/relation-array.mjs +173 -0
- package/esm2022/src/save-options.mjs +41 -0
- package/esm2022/src/unattached-children-map.mjs +56 -0
- package/esm2022/src/validate.mjs +995 -0
- package/esm2022/src/validation-options.mjs +64 -0
- package/{fesm2015/breeze-client-adapter-ajax-angularjs.js → fesm2022/breeze-client-adapter-ajax-angularjs.mjs} +6 -1
- package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-fetch.js → fesm2022/breeze-client-adapter-ajax-fetch.mjs} +9 -4
- package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-httpclient.js → fesm2022/breeze-client-adapter-ajax-httpclient.mjs} +6 -4
- package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-jquery.js → fesm2022/breeze-client-adapter-ajax-jquery.mjs} +6 -2
- package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-post.js → fesm2022/breeze-client-adapter-ajax-post.mjs} +1 -1
- package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-data-service-odata.js → fesm2022/breeze-client-adapter-data-service-odata.mjs} +68 -69
- package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-data-service-webapi.js → fesm2022/breeze-client-adapter-data-service-webapi.mjs} +30 -30
- package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-model-library-backing-store.js → fesm2022/breeze-client-adapter-model-library-backing-store.mjs} +14 -13
- package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-model-library-ko.js → fesm2022/breeze-client-adapter-model-library-ko.mjs} +14 -13
- package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-uri-builder-json.js → fesm2022/breeze-client-adapter-uri-builder-json.mjs} +9 -8
- package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-uri-builder-odata.js → fesm2022/breeze-client-adapter-uri-builder-odata.mjs} +86 -86
- package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
- package/{fesm2015/breeze-client-mixin-get-entity-graph.js → fesm2022/breeze-client-mixin-get-entity-graph.mjs} +1 -1
- package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
- package/{fesm2015/breeze-client-mixin-save-queuing.js → fesm2022/breeze-client-mixin-save-queuing.mjs} +23 -2
- package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +1 -0
- package/{fesm2015/breeze-client.js → fesm2022/breeze-client.mjs} +1933 -1538
- package/fesm2022/breeze-client.mjs.map +1 -0
- package/mixin-get-entity-graph/{breeze-client-mixin-get-entity-graph.d.ts → index.d.ts} +1 -0
- package/mixin-save-queuing/{breeze-client-mixin-save-queuing.d.ts → index.d.ts} +1 -0
- package/package.json +94 -12
- 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 +8 -6
- package/src/entity-query.d.ts +1 -1
- package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +0 -1
- package/adapter-ajax-angularjs/package.json +0 -13
- package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +0 -1
- package/adapter-ajax-fetch/package.json +0 -13
- package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +0 -1
- package/adapter-ajax-httpclient/package.json +0 -13
- package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +0 -1
- package/adapter-ajax-jquery/package.json +0 -13
- package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +0 -1
- package/adapter-ajax-post/package.json +0 -13
- package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +0 -1
- package/adapter-data-service-odata/package.json +0 -13
- package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +0 -1
- package/adapter-data-service-webapi/package.json +0 -13
- package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +0 -1
- package/adapter-model-library-backing-store/package.json +0 -13
- package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +0 -1
- package/adapter-model-library-ko/package.json +0 -13
- package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +0 -1
- package/adapter-uri-builder-json/package.json +0 -13
- package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +0 -1
- package/adapter-uri-builder-odata/package.json +0 -13
- package/breeze-client.d.ts +0 -8
- package/breeze-client.metadata.json +0 -1
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +0 -190
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js +0 -190
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +0 -195
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js +0 -115
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-post.umd.js +0 -92
- package/bundles/breeze-client-adapter-ajax-post.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-odata.umd.js +0 -747
- package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +0 -16
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js +0 -333
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +0 -16
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +0 -280
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-ko.umd.js +0 -252
- package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js +0 -96
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +0 -262
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +0 -1
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js +0 -258
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +0 -1
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +0 -2
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +0 -1
- package/bundles/breeze-client-mixin-save-queuing.umd.js +0 -579
- package/bundles/breeze-client-mixin-save-queuing.umd.js.map +0 -1
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js +0 -16
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +0 -1
- package/bundles/breeze-client.umd.js +0 -14234
- package/bundles/breeze-client.umd.js.map +0 -1
- package/bundles/breeze-client.umd.min.js +0 -16
- package/bundles/breeze-client.umd.min.js.map +0 -1
- package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -130
- package/esm2015/adapter-ajax-angularjs/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
- package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -130
- package/esm2015/adapter-ajax-fetch/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
- package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -137
- package/esm2015/adapter-ajax-httpclient/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
- package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -103
- package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
- package/esm2015/adapter-ajax-post/adapter-ajax-post.js +0 -77
- package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
- package/esm2015/adapter-data-service-odata/adapter-core.js +0 -49
- package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +0 -463
- package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -100
- package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
- package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -268
- package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
- package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +0 -240
- package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
- package/esm2015/adapter-uri-builder-json/adapter-core.js +0 -49
- package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -36
- package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
- package/esm2015/adapter-uri-builder-odata/adapter-core.js +0 -49
- package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -192
- package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
- package/esm2015/breeze-client.js +0 -9
- package/esm2015/index.js +0 -2
- package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
- package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
- package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
- package/esm2015/mixin-save-queuing/mixin-save-queuing.js +0 -400
- package/esm2015/src/abstract-data-service-adapter.js +0 -327
- package/esm2015/src/array.js +0 -4
- package/esm2015/src/assert-param.js +0 -312
- package/esm2015/src/breeze.js +0 -85
- package/esm2015/src/complex-array.js +0 -119
- package/esm2015/src/config.js +0 -223
- package/esm2015/src/core.js +0 -714
- package/esm2015/src/csdl-metadata-parser.js +0 -385
- package/esm2015/src/data-service.js +0 -203
- package/esm2015/src/data-type.js +0 -506
- package/esm2015/src/default-property-interceptor.js +0 -460
- package/esm2015/src/entity-aspect.js +0 -804
- package/esm2015/src/entity-group.js +0 -187
- package/esm2015/src/entity-key.js +0 -116
- package/esm2015/src/entity-manager.js +0 -2094
- package/esm2015/src/entity-metadata.js +0 -2109
- package/esm2015/src/entity-query.js +0 -1015
- package/esm2015/src/entity-state.js +0 -107
- package/esm2015/src/enum.js +0 -141
- package/esm2015/src/event.js +0 -256
- package/esm2015/src/interface-registry.js +0 -41
- package/esm2015/src/key-generator.js +0 -108
- package/esm2015/src/local-query-comparison-options.js +0 -65
- package/esm2015/src/mapping-context.js +0 -411
- package/esm2015/src/naming-convention.js +0 -88
- package/esm2015/src/observable-array.js +0 -185
- package/esm2015/src/predicate.js +0 -1242
- package/esm2015/src/primitive-array.js +0 -87
- package/esm2015/src/query-options.js +0 -152
- package/esm2015/src/relation-array.js +0 -175
- package/esm2015/src/save-options.js +0 -41
- package/esm2015/src/unattached-children-map.js +0 -58
- package/esm2015/src/validate.js +0 -991
- package/esm2015/src/validation-options.js +0 -64
- package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -132
- package/esm5/adapter-ajax-angularjs/adapter-core.js +0 -49
- package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
- package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -132
- package/esm5/adapter-ajax-fetch/adapter-core.js +0 -49
- package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
- package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -139
- package/esm5/adapter-ajax-httpclient/adapter-core.js +0 -49
- package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
- package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -105
- package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
- package/esm5/adapter-ajax-post/adapter-ajax-post.js +0 -81
- package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
- package/esm5/adapter-data-service-odata/adapter-core.js +0 -49
- package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -105
- package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
- package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -270
- package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
- package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +0 -242
- package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
- package/esm5/adapter-uri-builder-json/adapter-core.js +0 -49
- package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -38
- package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
- package/esm5/adapter-uri-builder-odata/adapter-core.js +0 -49
- package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -197
- package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
- package/esm5/breeze-client.js +0 -9
- package/esm5/index.js +0 -2
- package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
- package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
- package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
- package/esm5/mixin-save-queuing/mixin-save-queuing.js +0 -412
- package/esm5/src/abstract-data-service-adapter.js +0 -333
- package/esm5/src/array.js +0 -4
- package/esm5/src/assert-param.js +0 -317
- package/esm5/src/breeze.js +0 -85
- package/esm5/src/complex-array.js +0 -119
- package/esm5/src/config.js +0 -228
- package/esm5/src/core.js +0 -722
- package/esm5/src/csdl-metadata-parser.js +0 -385
- package/esm5/src/data-service.js +0 -207
- package/esm5/src/data-type.js +0 -513
- package/esm5/src/default-property-interceptor.js +0 -460
- package/esm5/src/entity-action.js +0 -52
- package/esm5/src/entity-aspect.js +0 -810
- package/esm5/src/entity-group.js +0 -189
- package/esm5/src/entity-key.js +0 -118
- package/esm5/src/entity-manager.js +0 -2112
- package/esm5/src/entity-metadata.js +0 -2144
- package/esm5/src/entity-query.js +0 -1042
- package/esm5/src/entity-state.js +0 -114
- package/esm5/src/enum.js +0 -144
- package/esm5/src/event.js +0 -259
- package/esm5/src/interface-registry.js +0 -43
- package/esm5/src/key-generator.js +0 -111
- package/esm5/src/local-query-comparison-options.js +0 -67
- package/esm5/src/mapping-context.js +0 -413
- package/esm5/src/naming-convention.js +0 -90
- package/esm5/src/observable-array.js +0 -201
- package/esm5/src/predicate.js +0 -1307
- package/esm5/src/primitive-array.js +0 -87
- package/esm5/src/query-options.js +0 -167
- package/esm5/src/relation-array.js +0 -175
- package/esm5/src/save-options.js +0 -43
- package/esm5/src/unattached-children-map.js +0 -60
- package/esm5/src/validate.js +0 -996
- package/esm5/src/validation-options.js +0 -66
- package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-ko.js.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +0 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm2015/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm2015/breeze-client.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-angularjs.js +0 -186
- package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-fetch.js +0 -186
- package/fesm5/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-httpclient.js +0 -193
- package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-jquery.js +0 -111
- package/fesm5/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-post.js +0 -86
- package/fesm5/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-odata.js +0 -523
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-webapi.js +0 -111
- package/fesm5/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-backing-store.js +0 -276
- package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-ko.js +0 -248
- package/fesm5/breeze-client-adapter-model-library-ko.js.map +0 -1
- package/fesm5/breeze-client-adapter-uri-builder-json.js +0 -92
- package/fesm5/breeze-client-adapter-uri-builder-json.js.map +0 -1
- package/fesm5/breeze-client-adapter-uri-builder-odata.js +0 -250
- package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +0 -1
- package/fesm5/breeze-client-mixin-get-entity-graph.js +0 -254
- package/fesm5/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm5/breeze-client-mixin-save-queuing.js +0 -356
- package/fesm5/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm5/breeze-client.js +0 -13956
- package/fesm5/breeze-client.js.map +0 -1
- package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +0 -1
- package/mixin-get-entity-graph/package.json +0 -13
- package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +0 -1
- package/mixin-save-queuing/package.json +0 -13
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
import { core } from './core';
|
|
2
|
-
/** @hidden @internal */
|
|
3
|
-
export class Param {
|
|
4
|
-
constructor(v, name) {
|
|
5
|
-
/** @hidden @internal */
|
|
6
|
-
this._applyOne = function (instance) {
|
|
7
|
-
if (this.v !== undefined) {
|
|
8
|
-
instance[this.name] = this.v;
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
if (this.defaultValue !== undefined) {
|
|
12
|
-
instance[this.name] = this.defaultValue;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
this.MESSAGE_PREFIX = "The '%1' parameter ";
|
|
17
|
-
this.v = v;
|
|
18
|
-
this.name = name;
|
|
19
|
-
this._contexts = [null];
|
|
20
|
-
}
|
|
21
|
-
isObject() {
|
|
22
|
-
return this.isTypeOf('object');
|
|
23
|
-
}
|
|
24
|
-
isBoolean() {
|
|
25
|
-
return this.isTypeOf('boolean');
|
|
26
|
-
}
|
|
27
|
-
isString() {
|
|
28
|
-
return this.isTypeOf('string');
|
|
29
|
-
}
|
|
30
|
-
isNumber() {
|
|
31
|
-
return this.isTypeOf('number');
|
|
32
|
-
}
|
|
33
|
-
isFunction() {
|
|
34
|
-
return this.isTypeOf('function');
|
|
35
|
-
}
|
|
36
|
-
isNonEmptyString() {
|
|
37
|
-
return addContext(this, {
|
|
38
|
-
fn: isNonEmptyString,
|
|
39
|
-
msg: "must be a nonEmpty string"
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
isTypeOf(typeName) {
|
|
43
|
-
return addContext(this, {
|
|
44
|
-
fn: isTypeOf,
|
|
45
|
-
typeName: typeName,
|
|
46
|
-
msg: "must be a '" + typeName + "'"
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
isInstanceOf(type, typeName) {
|
|
50
|
-
typeName = typeName || type.prototype._$typeName;
|
|
51
|
-
return addContext(this, {
|
|
52
|
-
fn: isInstanceOf,
|
|
53
|
-
type: type,
|
|
54
|
-
typeName: typeName,
|
|
55
|
-
msg: "must be an instance of '" + typeName + "'"
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
hasProperty(propertyName) {
|
|
59
|
-
return addContext(this, {
|
|
60
|
-
fn: hasProperty,
|
|
61
|
-
propertyName: propertyName,
|
|
62
|
-
msg: "must have a '" + propertyName + "' property"
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
isEnumOf(enumType) {
|
|
66
|
-
return addContext(this, {
|
|
67
|
-
fn: isEnumOf,
|
|
68
|
-
enumType: enumType,
|
|
69
|
-
msg: "must be an instance of the '" + (enumType.name || 'unknown') + "' enumeration"
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
isRequired(allowNull = false) {
|
|
73
|
-
return addContext(this, {
|
|
74
|
-
fn: isRequired,
|
|
75
|
-
allowNull: allowNull,
|
|
76
|
-
msg: "is required"
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
isOptional() {
|
|
80
|
-
let context = {
|
|
81
|
-
fn: isOptional,
|
|
82
|
-
prevContext: null,
|
|
83
|
-
msg: isOptionalMessage
|
|
84
|
-
};
|
|
85
|
-
return addContext(this, context);
|
|
86
|
-
}
|
|
87
|
-
isNonEmptyArray() {
|
|
88
|
-
return this.isArray(true);
|
|
89
|
-
}
|
|
90
|
-
isArray(mustNotBeEmpty) {
|
|
91
|
-
let context = {
|
|
92
|
-
fn: isArray,
|
|
93
|
-
mustNotBeEmpty: mustNotBeEmpty,
|
|
94
|
-
prevContext: null,
|
|
95
|
-
msg: isArrayMessage
|
|
96
|
-
};
|
|
97
|
-
return addContext(this, context);
|
|
98
|
-
}
|
|
99
|
-
or() {
|
|
100
|
-
this._contexts.push(null);
|
|
101
|
-
this._context = null;
|
|
102
|
-
return this;
|
|
103
|
-
}
|
|
104
|
-
check(defaultValue) {
|
|
105
|
-
let ok = exec(this);
|
|
106
|
-
if (ok === undefined)
|
|
107
|
-
return;
|
|
108
|
-
if (!ok) {
|
|
109
|
-
throw new Error(this.getMessage());
|
|
110
|
-
}
|
|
111
|
-
if (this.v !== undefined) {
|
|
112
|
-
return this.v;
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
return defaultValue;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/** @hidden @internal */
|
|
119
|
-
// called from outside this file.
|
|
120
|
-
_addContext(context) {
|
|
121
|
-
return addContext(this, context);
|
|
122
|
-
}
|
|
123
|
-
getMessage() {
|
|
124
|
-
let that = this;
|
|
125
|
-
let message = this._contexts.map(function (context) {
|
|
126
|
-
return getMessage(context, that.v);
|
|
127
|
-
}).join(", or it ");
|
|
128
|
-
return core.formatString(this.MESSAGE_PREFIX, this.name) + " " + message;
|
|
129
|
-
}
|
|
130
|
-
withDefault(defaultValue) {
|
|
131
|
-
this.defaultValue = defaultValue;
|
|
132
|
-
return this;
|
|
133
|
-
}
|
|
134
|
-
whereParam(propName) {
|
|
135
|
-
return this.parent.whereParam(propName);
|
|
136
|
-
}
|
|
137
|
-
applyAll(instance, checkOnly = false) {
|
|
138
|
-
let parentTypeName = instance._$typeName;
|
|
139
|
-
let allowUnknownProperty = (parentTypeName && this.parent.config._$typeName === parentTypeName);
|
|
140
|
-
let clone = core.extend({}, this.parent.config);
|
|
141
|
-
this.parent.params.forEach(function (p) {
|
|
142
|
-
if (!allowUnknownProperty)
|
|
143
|
-
delete clone[p.name];
|
|
144
|
-
try {
|
|
145
|
-
p.check();
|
|
146
|
-
}
|
|
147
|
-
catch (e) {
|
|
148
|
-
throwConfigError(instance, e.message);
|
|
149
|
-
}
|
|
150
|
-
(!checkOnly) && p._applyOne(instance);
|
|
151
|
-
});
|
|
152
|
-
// should be no properties left in the clone
|
|
153
|
-
if (!allowUnknownProperty) {
|
|
154
|
-
for (let key in clone) {
|
|
155
|
-
// allow props with an undefined value
|
|
156
|
-
if (clone[key] !== undefined) {
|
|
157
|
-
throwConfigError(instance, core.formatString("Unknown property: '%1'.", key));
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
/** @hidden @internal */
|
|
164
|
-
export let assertParam = function (v, name) {
|
|
165
|
-
return new Param(v, name);
|
|
166
|
-
};
|
|
167
|
-
function isTypeOf(context, v) {
|
|
168
|
-
if (v == null)
|
|
169
|
-
return false;
|
|
170
|
-
if (typeof (v) === context.typeName)
|
|
171
|
-
return true;
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
function isNonEmptyString(context, v) {
|
|
175
|
-
if (v == null)
|
|
176
|
-
return false;
|
|
177
|
-
return (typeof (v) === 'string') && v.length > 0;
|
|
178
|
-
}
|
|
179
|
-
function isInstanceOf(context, v) {
|
|
180
|
-
if (v == null || context.type == null)
|
|
181
|
-
return false;
|
|
182
|
-
return (v instanceof context.type);
|
|
183
|
-
}
|
|
184
|
-
function isEnumOf(context, v) {
|
|
185
|
-
if (v == null || context.enumType == null)
|
|
186
|
-
return false;
|
|
187
|
-
return context.enumType.contains(v);
|
|
188
|
-
}
|
|
189
|
-
function hasProperty(context, v) {
|
|
190
|
-
if (v == null || context.propertyName == null)
|
|
191
|
-
return false;
|
|
192
|
-
return (v[context.propertyName] !== undefined);
|
|
193
|
-
}
|
|
194
|
-
function isRequired(context, v) {
|
|
195
|
-
if (context.allowNull) {
|
|
196
|
-
return v !== undefined;
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
return v != null;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
function isOptional(context, v) {
|
|
203
|
-
if (v == null)
|
|
204
|
-
return true;
|
|
205
|
-
let prevContext = context.prevContext;
|
|
206
|
-
if (prevContext && prevContext.fn) {
|
|
207
|
-
return prevContext.fn(prevContext, v);
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
return true;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
function isOptionalMessage(context, v) {
|
|
214
|
-
let prevContext = context.prevContext;
|
|
215
|
-
let element = prevContext ? " or it " + getMessage(prevContext, v) : "";
|
|
216
|
-
return "is optional" + element;
|
|
217
|
-
}
|
|
218
|
-
function isArray(context, v) {
|
|
219
|
-
if (!Array.isArray(v)) {
|
|
220
|
-
return false;
|
|
221
|
-
}
|
|
222
|
-
if (context.mustNotBeEmpty) {
|
|
223
|
-
if (v.length === 0)
|
|
224
|
-
return false;
|
|
225
|
-
}
|
|
226
|
-
// allow standalone is array call.
|
|
227
|
-
let prevContext = context.prevContext;
|
|
228
|
-
if (!prevContext)
|
|
229
|
-
return true;
|
|
230
|
-
let pc = prevContext;
|
|
231
|
-
return v.every(function (v1) {
|
|
232
|
-
return pc.fn && pc.fn(pc, v1);
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
function isArrayMessage(context, v) {
|
|
236
|
-
let arrayDescr = context.mustNotBeEmpty ? "a nonEmpty array" : "an array";
|
|
237
|
-
let prevContext = context.prevContext;
|
|
238
|
-
let element = prevContext ? " where each element " + getMessage(prevContext, v) : "";
|
|
239
|
-
return " must be " + arrayDescr + element;
|
|
240
|
-
}
|
|
241
|
-
function getMessage(context, v) {
|
|
242
|
-
let msg = context.msg;
|
|
243
|
-
if (typeof (msg) === "function") {
|
|
244
|
-
msg = msg(context, v);
|
|
245
|
-
}
|
|
246
|
-
return msg;
|
|
247
|
-
}
|
|
248
|
-
function addContext(that, context) {
|
|
249
|
-
if (that._context) {
|
|
250
|
-
let curContext = that._context;
|
|
251
|
-
while (curContext.prevContext != null) {
|
|
252
|
-
curContext = curContext.prevContext;
|
|
253
|
-
}
|
|
254
|
-
if (curContext.prevContext === null) {
|
|
255
|
-
curContext.prevContext = context;
|
|
256
|
-
// just update the prevContext but don't change the curContext.
|
|
257
|
-
return that;
|
|
258
|
-
}
|
|
259
|
-
else if (context.prevContext == null) {
|
|
260
|
-
context.prevContext = that._context;
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
throw new Error("Illegal construction - use 'or' to combine checks");
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
return setContext(that, context);
|
|
267
|
-
}
|
|
268
|
-
function setContext(that, context) {
|
|
269
|
-
that._contexts[that._contexts.length - 1] = context;
|
|
270
|
-
that._context = context;
|
|
271
|
-
return that;
|
|
272
|
-
}
|
|
273
|
-
function exec(self) {
|
|
274
|
-
// clear off last one if null
|
|
275
|
-
let contexts = self._contexts;
|
|
276
|
-
if (contexts[contexts.length - 1] == null) {
|
|
277
|
-
contexts.pop();
|
|
278
|
-
}
|
|
279
|
-
if (contexts.length === 0) {
|
|
280
|
-
return undefined;
|
|
281
|
-
}
|
|
282
|
-
return contexts.some(function (context) {
|
|
283
|
-
return context.fn ? context.fn(context, self.v) : false;
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
function throwConfigError(instance, message) {
|
|
287
|
-
throw new Error(core.formatString("Error configuring an instance of '%1'. %2", (instance && instance._$typeName) || "object", message));
|
|
288
|
-
}
|
|
289
|
-
class ConfigParam {
|
|
290
|
-
constructor(config) {
|
|
291
|
-
if (typeof (config) !== "object") {
|
|
292
|
-
throw new Error("Configuration parameter should be an object, instead it is a: " + typeof (config));
|
|
293
|
-
}
|
|
294
|
-
this.config = config;
|
|
295
|
-
this.params = [];
|
|
296
|
-
}
|
|
297
|
-
whereParam(propName) {
|
|
298
|
-
let param = new Param(this.config[propName], propName);
|
|
299
|
-
param.parent = this;
|
|
300
|
-
this.params.push(param);
|
|
301
|
-
return param;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
/** @hidden @internal */
|
|
305
|
-
export let assertConfig = function (config) {
|
|
306
|
-
return new ConfigParam(config);
|
|
307
|
-
};
|
|
308
|
-
// Param is exposed so that additional 'is' methods can be added to the prototype.
|
|
309
|
-
core.Param = Param;
|
|
310
|
-
core.assertParam = assertParam;
|
|
311
|
-
core.assertConfig = assertConfig;
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LXBhcmFtLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9hc3NlcnQtcGFyYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRyxNQUFNLFFBQVEsQ0FBQztBQXNCL0Isd0JBQXdCO0FBQ3hCLE1BQU0sT0FBTyxLQUFLO0lBbUJkLFlBQVksQ0FBTSxFQUFFLElBQVk7UUEwS2hDLHdCQUF3QjtRQUN4QixjQUFTLEdBQUcsVUFBdUIsUUFBYTtZQUM1QyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0gsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtvQkFDakMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO2lCQUMzQzthQUNKO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsbUJBQWMsR0FBRyxxQkFBcUIsQ0FBQztRQXBMbkMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQU0sSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FB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QUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVlemVFbnVtIH0gZnJvbSAnLi9lbnVtJztcclxuaW1wb3J0IHsgY29yZSAgfSBmcm9tICcuL2NvcmUnO1xyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBhcmFtQ29udGV4dCB7XHJcbiAgICB0eXBlTmFtZT86IHN0cmluZztcclxuICAgIHR5cGU/OiBGdW5jdGlvbjtcclxuICAgIHByZXZDb250ZXh0PzogSVBhcmFtQ29udGV4dDtcclxuICAgIG1zZz86IHN0cmluZyB8ICgoY29udGV4dDogSVBhcmFtQ29udGV4dCwgdjogYW55KSA9PiBzdHJpbmcpO1xyXG4gICAgbXVzdE5vdEJlRW1wdHk/OiBib29sZWFuO1xyXG4gICAgZW51bVR5cGU/OiBCcmVlemVFbnVtO1xyXG4gICAgcHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gICAgYWxsb3dOdWxsPzogYm9vbGVhbjtcclxuICAgIGZuPyhjb250ZXh0OiBJUGFyYW1Db250ZXh0LCB2OiBhbnkpOiBib29sZWFuO1xyXG59XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnUGFyYW0ge1xyXG4gICAgY29uZmlnOiBhbnk7XHJcbiAgICBwYXJhbXM6IFBhcmFtW107XHJcbiAgICB3aGVyZVBhcmFtOiAocHJvcE5hbWU6IHN0cmluZykgPT4gUGFyYW07XHJcbn1cclxuXHJcbi8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG5leHBvcnQgY2xhc3MgUGFyYW0ge1xyXG4gICAgLy8gVGhlICUxIHBhcmFtZXRlclxyXG4gICAgLy8gaXMgcmVxdWlyZWRcclxuICAgIC8vIG11c3QgYmUgYSAlMlxyXG4gICAgLy8gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiAlMlxyXG4gICAgLy8gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiB0aGUgJTIgZW51bWVyYXRpb25cclxuICAgIC8vIG11c3QgaGF2ZSBhICUyIHByb3BlcnR5XHJcbiAgICAvLyBtdXN0IGJlIGFuIGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudFxyXG4gICAgLy8gaXMgb3B0aW9uYWwgb3JcclxuXHJcbiAgICB2OiBhbnk7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0VmFsdWU6IGFueTtcclxuICAgIHBhcmVudDogSUNvbmZpZ1BhcmFtO1xyXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgICBfY29udGV4dDogSVBhcmFtQ29udGV4dDtcclxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gICAgX2NvbnRleHRzOiBJUGFyYW1Db250ZXh0W107XHJcblxyXG4gICAgY29uc3RydWN0b3IodjogYW55LCBuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnYgPSB2O1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5fY29udGV4dHMgPSBbPGFueT5udWxsXTtcclxuICAgIH1cclxuXHJcbiAgICBpc09iamVjdCgpOiBQYXJhbSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUeXBlT2YoJ29iamVjdCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQm9vbGVhbigpOiBQYXJhbSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUeXBlT2YoJ2Jvb2xlYW4nKTtcclxuICAgIH1cclxuXHJcbiAgICBpc1N0cmluZygpOiBQYXJhbSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUeXBlT2YoJ3N0cmluZycpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzTnVtYmVyKCk6IFBhcmFtIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1R5cGVPZignbnVtYmVyJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNGdW5jdGlvbigpOiBQYXJhbSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUeXBlT2YoJ2Z1bmN0aW9uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNOb25FbXB0eVN0cmluZygpOiBQYXJhbSB7XHJcbiAgICAgICAgcmV0dXJuIGFkZENvbnRleHQodGhpcywge1xyXG4gICAgICAgICAgICBmbjogaXNOb25FbXB0eVN0cmluZyxcclxuICAgICAgICAgICAgbXNnOiBcIm11c3QgYmUgYSBub25FbXB0eSBzdHJpbmdcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpc1R5cGVPZih0eXBlTmFtZTogc3RyaW5nKTogUGFyYW0ge1xyXG4gICAgICAgIHJldHVybiBhZGRDb250ZXh0KHRoaXMsIHtcclxuICAgICAgICAgICAgZm46IGlzVHlwZU9mLFxyXG4gICAgICAgICAgICB0eXBlTmFtZTogdHlwZU5hbWUsXHJcbiAgICAgICAgICAgIG1zZzogXCJtdXN0IGJlIGEgJ1wiICsgdHlwZU5hbWUgKyBcIidcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpc0luc3RhbmNlT2YodHlwZTogRnVuY3Rpb24sIHR5cGVOYW1lPzogc3RyaW5nKTogUGFyYW0ge1xyXG4gICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWUgfHwgdHlwZS5wcm90b3R5cGUuXyR0eXBlTmFtZTtcclxuICAgICAgICByZXR1cm4gYWRkQ29udGV4dCh0aGlzLCB7XHJcbiAgICAgICAgICAgIGZuOiBpc0luc3RhbmNlT2YsXHJcbiAgICAgICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgICAgICAgICAgIHR5cGVOYW1lOiB0eXBlTmFtZSxcclxuICAgICAgICAgICAgbXNnOiBcIm11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgJ1wiICsgdHlwZU5hbWUgKyBcIidcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBoYXNQcm9wZXJ0eShwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFBhcmFtIHtcclxuICAgICAgICByZXR1cm4gYWRkQ29udGV4dCh0aGlzLCB7XHJcbiAgICAgICAgICAgIGZuOiBoYXNQcm9wZXJ0eSxcclxuICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWUsXHJcbiAgICAgICAgICAgIG1zZzogXCJtdXN0IGhhdmUgYSAnXCIgKyBwcm9wZXJ0eU5hbWUgKyBcIicgcHJvcGVydHlcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpc0VudW1PZihlbnVtVHlwZTogYW55KTogUGFyYW0ge1xyXG4gICAgICAgIHJldHVybiBhZGRDb250ZXh0KHRoaXMsIHtcclxuICAgICAgICAgICAgZm46IGlzRW51bU9mLFxyXG4gICAgICAgICAgICBlbnVtVHlwZTogZW51bVR5cGUsXHJcbiAgICAgICAgICAgIG1zZzogXCJtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHRoZSAnXCIgKyAoZW51bVR5cGUubmFtZSB8fCAndW5rbm93bicpICsgXCInIGVudW1lcmF0aW9uXCJcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpc1JlcXVpcmVkKGFsbG93TnVsbDogYm9vbGVhbiA9IGZhbHNlKTogUGFyYW0ge1xyXG4gICAgICAgIHJldHVybiBhZGRDb250ZXh0KHRoaXMsIHtcclxuICAgICAgICAgICAgZm46IGlzUmVxdWlyZWQsXHJcbiAgICAgICAgICAgIGFsbG93TnVsbDogYWxsb3dOdWxsLFxyXG4gICAgICAgICAgICBtc2c6IFwiaXMgcmVxdWlyZWRcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlzT3B0aW9uYWwoKTogUGFyYW0ge1xyXG4gICAgICAgIGxldCBjb250ZXh0ID0ge1xyXG4gICAgICAgICAgICBmbjogaXNPcHRpb25hbCxcclxuICAgICAgICAgICAgcHJldkNvbnRleHQ6IDxhbnk+bnVsbCxcclxuICAgICAgICAgICAgbXNnOiBpc09wdGlvbmFsTWVzc2FnZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGFkZENvbnRleHQodGhpcywgY29udGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNOb25FbXB0eUFycmF5KCk6IFBhcmFtIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0FycmF5KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQXJyYXkobXVzdE5vdEJlRW1wdHk/OiBib29sZWFuKTogUGFyYW0ge1xyXG4gICAgICAgIGxldCBjb250ZXh0ID0ge1xyXG4gICAgICAgICAgICBmbjogaXNBcnJheSxcclxuICAgICAgICAgICAgbXVzdE5vdEJlRW1wdHk6IG11c3ROb3RCZUVtcHR5LFxyXG4gICAgICAgICAgICBwcmV2Q29udGV4dDogPGFueT5udWxsLFxyXG4gICAgICAgICAgICBtc2c6IGlzQXJyYXlNZXNzYWdlXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gYWRkQ29udGV4dCh0aGlzLCBjb250ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBvcigpIHtcclxuICAgICAgICB0aGlzLl9jb250ZXh0cy5wdXNoKDxhbnk+bnVsbCk7XHJcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IDxhbnk+bnVsbDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBjaGVjayhkZWZhdWx0VmFsdWU/OiBhbnkpIHtcclxuICAgICAgICBsZXQgb2sgPSBleGVjKHRoaXMpO1xyXG4gICAgICAgIGlmIChvayA9PT0gdW5kZWZpbmVkKSByZXR1cm47XHJcbiAgICAgICAgaWYgKCFvaykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5nZXRNZXNzYWdlKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnY7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgICAvLyBjYWxsZWQgZnJvbSBvdXRzaWRlIHRoaXMgZmlsZS5cclxuICAgIF9hZGRDb250ZXh0KGNvbnRleHQ6IElQYXJhbUNvbnRleHQpIHtcclxuICAgICAgICByZXR1cm4gYWRkQ29udGV4dCh0aGlzLCBjb250ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNZXNzYWdlKCkge1xyXG4gICAgICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMuX2NvbnRleHRzLm1hcChmdW5jdGlvbiAoY29udGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2V0TWVzc2FnZShjb250ZXh0LCB0aGF0LnYpO1xyXG4gICAgICAgIH0pLmpvaW4oXCIsIG9yIGl0IFwiKTtcclxuICAgICAgICByZXR1cm4gY29yZS5mb3JtYXRTdHJpbmcodGhpcy5NRVNTQUdFX1BSRUZJWCwgdGhpcy5uYW1lKSArIFwiIFwiICsgbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICB3aXRoRGVmYXVsdChkZWZhdWx0VmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHdoZXJlUGFyYW0ocHJvcE5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudC53aGVyZVBhcmFtKHByb3BOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBhcHBseUFsbChpbnN0YW5jZTogYW55LCBjaGVja09ubHk6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGxldCBwYXJlbnRUeXBlTmFtZSA9IGluc3RhbmNlLl8kdHlwZU5hbWU7XHJcbiAgICAgICAgbGV0IGFsbG93VW5rbm93blByb3BlcnR5ID0gKHBhcmVudFR5cGVOYW1lICYmIHRoaXMucGFyZW50LmNvbmZpZy5fJHR5cGVOYW1lID09PSBwYXJlbnRUeXBlTmFtZSk7XHJcblxyXG4gICAgICAgIGxldCBjbG9uZSA9IGNvcmUuZXh0ZW5kKHt9LCB0aGlzLnBhcmVudC5jb25maWcpO1xyXG4gICAgICAgIHRoaXMucGFyZW50LnBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7XHJcbiAgICAgICAgICAgIGlmICghYWxsb3dVbmtub3duUHJvcGVydHkpIGRlbGV0ZSBjbG9uZVtwLm5hbWVdO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcC5jaGVjaygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvd0NvbmZpZ0Vycm9yKGluc3RhbmNlLCBlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICghY2hlY2tPbmx5KSAmJiBwLl9hcHBseU9uZShpbnN0YW5jZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gc2hvdWxkIGJlIG5vIHByb3BlcnRpZXMgbGVmdCBpbiB0aGUgY2xvbmVcclxuICAgICAgICBpZiAoIWFsbG93VW5rbm93blByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBjbG9uZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gYWxsb3cgcHJvcHMgd2l0aCBhbiB1bmRlZmluZWQgdmFsdWVcclxuICAgICAgICAgICAgICAgIGlmIChjbG9uZVtrZXldICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvd0NvbmZpZ0Vycm9yKGluc3RhbmNlLCBjb3JlLmZvcm1hdFN0cmluZyhcIlVua25vd24gcHJvcGVydHk6ICclMScuXCIsIGtleSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gICAgX2FwcGx5T25lID0gZnVuY3Rpb24gKHRoaXM6IFBhcmFtLCBpbnN0YW5jZTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMudiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGluc3RhbmNlW3RoaXMubmFtZV0gPSB0aGlzLnY7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlW3RoaXMubmFtZV0gPSB0aGlzLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgTUVTU0FHRV9QUkVGSVggPSBcIlRoZSAnJTEnIHBhcmFtZXRlciBcIjtcclxuXHJcbn1cclxuXHJcbi8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG5leHBvcnQgbGV0IGFzc2VydFBhcmFtID0gZnVuY3Rpb24gKHY6IGFueSwgbmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IFBhcmFtKHYsIG5hbWUpO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gaXNUeXBlT2YoY29udGV4dDogSVBhcmFtQ29udGV4dCwgdjogYW55KSB7XHJcbiAgICBpZiAodiA9PSBudWxsKSByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAodHlwZW9mICh2KSA9PT0gY29udGV4dC50eXBlTmFtZSkgcmV0dXJuIHRydWU7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzTm9uRW1wdHlTdHJpbmcoY29udGV4dDogSVBhcmFtQ29udGV4dCwgdjogYW55KSB7XHJcbiAgICBpZiAodiA9PSBudWxsKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gKHR5cGVvZiAodikgPT09ICdzdHJpbmcnKSAmJiB2Lmxlbmd0aCA+IDA7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5zdGFuY2VPZihjb250ZXh0OiBJUGFyYW1Db250ZXh0LCB2OiBhbnkpIHtcclxuICAgIGlmICh2ID09IG51bGwgfHwgY29udGV4dC50eXBlID09IG51bGwpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiAodiBpbnN0YW5jZW9mIGNvbnRleHQudHlwZSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRW51bU9mKGNvbnRleHQ6IElQYXJhbUNvbnRleHQsIHY6IGFueSkge1xyXG4gICAgaWYgKHYgPT0gbnVsbCB8fCBjb250ZXh0LmVudW1UeXBlID09IG51bGwgKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gKGNvbnRleHQuZW51bVR5cGUgYXMgYW55KS5jb250YWlucyh2KTtcclxufVxyXG5cclxuZnVuY3Rpb24gaGFzUHJvcGVydHkoY29udGV4dDogSVBhcmFtQ29udGV4dCwgdjogYW55KSB7XHJcbiAgICBpZiAodiA9PSBudWxsIHx8IGNvbnRleHQucHJvcGVydHlOYW1lID09IG51bGwpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiAodltjb250ZXh0LnByb3BlcnR5TmFtZV0gIT09IHVuZGVmaW5lZCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUmVxdWlyZWQoY29udGV4dDogSVBhcmFtQ29udGV4dCwgdjogYW55KSB7XHJcbiAgICBpZiAoY29udGV4dC5hbGxvd051bGwpIHtcclxuICAgICAgICByZXR1cm4gdiAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdiAhPSBudWxsO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc09wdGlvbmFsKGNvbnRleHQ6IElQYXJhbUNvbnRleHQsIHY6IGFueSkge1xyXG4gICAgaWYgKHYgPT0gbnVsbCkgcmV0dXJuIHRydWU7XHJcbiAgICBsZXQgcHJldkNvbnRleHQgPSBjb250ZXh0LnByZXZDb250ZXh0O1xyXG4gICAgaWYgKHByZXZDb250ZXh0ICYmIHByZXZDb250ZXh0LmZuKSB7XHJcbiAgICAgICAgcmV0dXJuIHByZXZDb250ZXh0LmZuKHByZXZDb250ZXh0LCB2KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzT3B0aW9uYWxNZXNzYWdlKGNvbnRleHQ6IElQYXJhbUNvbnRleHQsIHY6IGFueSkge1xyXG4gICAgbGV0IHByZXZDb250ZXh0ID0gY29udGV4dC5wcmV2Q29udGV4dDtcclxuICAgIGxldCBlbGVtZW50ID0gcHJldkNvbnRleHQgPyBcIiBvciBpdCBcIiArIGdldE1lc3NhZ2UocHJldkNvbnRleHQsIHYpIDogXCJcIjtcclxuICAgIHJldHVybiBcImlzIG9wdGlvbmFsXCIgKyBlbGVtZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KGNvbnRleHQ6IElQYXJhbUNvbnRleHQsIHY6IGFueSkge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHYpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRleHQubXVzdE5vdEJlRW1wdHkpIHtcclxuICAgICAgICBpZiAodi5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIGFsbG93IHN0YW5kYWxvbmUgaXMgYXJyYXkgY2FsbC5cclxuICAgIGxldCBwcmV2Q29udGV4dCA9IGNvbnRleHQucHJldkNvbnRleHQ7XHJcbiAgICBpZiAoIXByZXZDb250ZXh0KSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICBsZXQgcGMgPSA8YW55PnByZXZDb250ZXh0O1xyXG4gICAgcmV0dXJuIHYuZXZlcnkoZnVuY3Rpb24gKHYxOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gcGMuZm4gJiYgcGMuZm4ocGMsIHYxKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5TWVzc2FnZShjb250ZXh0OiBJUGFyYW1Db250ZXh0LCB2OiBhbnkpIHtcclxuICAgIGxldCBhcnJheURlc2NyID0gY29udGV4dC5tdXN0Tm90QmVFbXB0eSA/IFwiYSBub25FbXB0eSBhcnJheVwiIDogXCJhbiBhcnJheVwiO1xyXG4gICAgbGV0IHByZXZDb250ZXh0ID0gY29udGV4dC5wcmV2Q29udGV4dDtcclxuICAgIGxldCBlbGVtZW50ID0gcHJldkNvbnRleHQgPyBcIiB3aGVyZSBlYWNoIGVsZW1lbnQgXCIgKyBnZXRNZXNzYWdlKHByZXZDb250ZXh0LCB2KSA6IFwiXCI7XHJcbiAgICByZXR1cm4gXCIgbXVzdCBiZSBcIiArIGFycmF5RGVzY3IgKyBlbGVtZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNZXNzYWdlKGNvbnRleHQ6IElQYXJhbUNvbnRleHQsIHY6IGFueSkge1xyXG4gICAgbGV0IG1zZyA9IGNvbnRleHQubXNnO1xyXG4gICAgaWYgKHR5cGVvZiAobXNnKSA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgbXNnID0gKDxhbnk+bXNnKShjb250ZXh0LCB2KTtcclxuICAgIH1cclxuICAgIHJldHVybiBtc2c7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFkZENvbnRleHQodGhhdDogUGFyYW0sIGNvbnRleHQ6IElQYXJhbUNvbnRleHQpIHtcclxuICAgIGlmICh0aGF0Ll9jb250ZXh0KSB7XHJcbiAgICAgICAgbGV0IGN1ckNvbnRleHQgPSB0aGF0Ll9jb250ZXh0O1xyXG5cclxuICAgICAgICB3aGlsZSAoY3VyQ29udGV4dC5wcmV2Q29udGV4dCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGN1ckNvbnRleHQgPSBjdXJDb250ZXh0LnByZXZDb250ZXh0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGN1ckNvbnRleHQucHJldkNvbnRleHQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgY3VyQ29udGV4dC5wcmV2Q29udGV4dCA9IGNvbnRleHQ7XHJcbiAgICAgICAgICAgIC8vIGp1c3QgdXBkYXRlIHRoZSBwcmV2Q29udGV4dCBidXQgZG9uJ3QgY2hhbmdlIHRoZSBjdXJDb250ZXh0LlxyXG4gICAgICAgICAgICByZXR1cm4gdGhhdDtcclxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQucHJldkNvbnRleHQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnByZXZDb250ZXh0ID0gdGhhdC5fY29udGV4dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbGxlZ2FsIGNvbnN0cnVjdGlvbiAtIHVzZSAnb3InIHRvIGNvbWJpbmUgY2hlY2tzXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzZXRDb250ZXh0KHRoYXQsIGNvbnRleHQpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRDb250ZXh0KHRoYXQ6IFBhcmFtLCBjb250ZXh0OiBJUGFyYW1Db250ZXh0KSB7XHJcbiAgICB0aGF0Ll9jb250ZXh0c1t0aGF0Ll9jb250ZXh0cy5sZW5ndGggLSAxXSA9IGNvbnRleHQ7XHJcbiAgICB0aGF0Ll9jb250ZXh0ID0gY29udGV4dDtcclxuICAgIHJldHVybiB0aGF0O1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gZXhlYyhzZWxmOiBQYXJhbSkge1xyXG4gICAgLy8gY2xlYXIgb2ZmIGxhc3Qgb25lIGlmIG51bGxcclxuICAgIGxldCBjb250ZXh0cyA9IHNlbGYuX2NvbnRleHRzO1xyXG4gICAgaWYgKGNvbnRleHRzW2NvbnRleHRzLmxlbmd0aCAtIDFdID09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0cy5wb3AoKTtcclxuICAgIH1cclxuICAgIGlmIChjb250ZXh0cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbnRleHRzLnNvbWUoZnVuY3Rpb24gKGNvbnRleHQ6IElQYXJhbUNvbnRleHQpIHtcclxuICAgICAgICByZXR1cm4gY29udGV4dC5mbiA/IGNvbnRleHQuZm4oY29udGV4dCwgc2VsZi52KSA6IGZhbHNlO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRocm93Q29uZmlnRXJyb3IoaW5zdGFuY2U6IGFueSwgbWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoY29yZS5mb3JtYXRTdHJpbmcoXCJFcnJvciBjb25maWd1cmluZyBhbiBpbnN0YW5jZSBvZiAnJTEnLiAlMlwiLCAoaW5zdGFuY2UgJiYgaW5zdGFuY2UuXyR0eXBlTmFtZSkgfHwgXCJvYmplY3RcIiwgbWVzc2FnZSkpO1xyXG59XHJcblxyXG5jbGFzcyBDb25maWdQYXJhbSB7XHJcbiAgICBjb25maWc6IGFueTtcclxuICAgIHBhcmFtczogUGFyYW1bXTtcclxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogT2JqZWN0KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiAoY29uZmlnKSAhPT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb25maWd1cmF0aW9uIHBhcmFtZXRlciBzaG91bGQgYmUgYW4gb2JqZWN0LCBpbnN0ZWFkIGl0IGlzIGE6IFwiICsgdHlwZW9mIChjb25maWcpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XHJcbiAgICAgICAgdGhpcy5wYXJhbXMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICB3aGVyZVBhcmFtKHByb3BOYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgcGFyYW0gPSBuZXcgUGFyYW0odGhpcy5jb25maWdbcHJvcE5hbWVdLCBwcm9wTmFtZSk7XHJcbiAgICAgICAgcGFyYW0ucGFyZW50ID0gdGhpcztcclxuICAgICAgICB0aGlzLnBhcmFtcy5wdXNoKHBhcmFtKTtcclxuICAgICAgICByZXR1cm4gcGFyYW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG5leHBvcnQgbGV0IGFzc2VydENvbmZpZyA9IGZ1bmN0aW9uIChjb25maWc6IE9iamVjdCkge1xyXG4gICAgcmV0dXJuIG5ldyBDb25maWdQYXJhbShjb25maWcpIGFzIElDb25maWdQYXJhbTtcclxufTtcclxuXHJcblxyXG4vLyBQYXJhbSBpcyBleHBvc2VkIHNvIHRoYXQgYWRkaXRpb25hbCAnaXMnIG1ldGhvZHMgY2FuIGJlIGFkZGVkIHRvIHRoZSBwcm90b3R5cGUuXHJcbihjb3JlIGFzIGFueSkuUGFyYW0gPSBQYXJhbTtcclxuKGNvcmUgYXMgYW55KS5hc3NlcnRQYXJhbSA9IGFzc2VydFBhcmFtO1xyXG4oY29yZSBhcyBhbnkpLmFzc2VydENvbmZpZyA9IGFzc2VydENvbmZpZztcclxuIl19
|
package/esm2015/src/breeze.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { AbstractDataServiceAdapter } from './abstract-data-service-adapter';
|
|
2
|
-
import { assertParam, assertConfig, Param } from './assert-param';
|
|
3
|
-
import { BreezeConfig } from './config';
|
|
4
|
-
import { BreezeEnum } from './enum';
|
|
5
|
-
import { BreezeEvent } from './event';
|
|
6
|
-
import { DataService, JsonResultsAdapter } from './data-service';
|
|
7
|
-
import { DataType } from './data-type';
|
|
8
|
-
import { EntityAction } from './entity-action';
|
|
9
|
-
import { EntityAspect, ComplexAspect } from './entity-aspect';
|
|
10
|
-
import { EntityKey } from './entity-key';
|
|
11
|
-
import { EntityManager } from './entity-manager';
|
|
12
|
-
import { EntityQuery, FilterQueryOp, BooleanQueryOp, OrderByClause, ExpandClause, SelectClause } from './entity-query';
|
|
13
|
-
import { EntityState } from './entity-state';
|
|
14
|
-
import { InterfaceRegistry } from './interface-registry';
|
|
15
|
-
import { KeyGenerator } from './key-generator';
|
|
16
|
-
import { LocalQueryComparisonOptions } from './local-query-comparison-options';
|
|
17
|
-
import { MappingContext } from './mapping-context';
|
|
18
|
-
import { MetadataStore, EntityType, ComplexType, DataProperty, NavigationProperty, AutoGeneratedKeyType } from './entity-metadata';
|
|
19
|
-
import { NamingConvention } from './naming-convention';
|
|
20
|
-
import { Predicate, UnaryPredicate, BinaryPredicate, AnyAllPredicate, AndOrPredicate, LitExpr, FnExpr, PropExpr } from './predicate';
|
|
21
|
-
import { QueryOptions, FetchStrategy, MergeStrategy } from './query-options';
|
|
22
|
-
import { SaveOptions } from './save-options';
|
|
23
|
-
import { ValidationError, Validator } from './validate';
|
|
24
|
-
import { ValidationOptions } from './validation-options';
|
|
25
|
-
import { config } from './config';
|
|
26
|
-
import { core } from './core';
|
|
27
|
-
import { makeRelationArray, makePrimitiveArray, makeComplexArray } from './array';
|
|
28
|
-
export { BreezeConfig };
|
|
29
|
-
export { AbstractDataServiceAdapter, AndOrPredicate, AnyAllPredicate, assertConfig, assertParam, AutoGeneratedKeyType, BinaryPredicate, BreezeEnum, BreezeEvent, ComplexAspect, ComplexType, config, core, DataProperty, DataService, DataType, EntityAction, EntityAspect, EntityKey, EntityManager, EntityQuery, EntityState, EntityType, ExpandClause, FetchStrategy, FilterQueryOp, FnExpr, InterfaceRegistry, JsonResultsAdapter, KeyGenerator, LitExpr, LocalQueryComparisonOptions, makeComplexArray, makePrimitiveArray, makeRelationArray, MappingContext, MergeStrategy, MetadataStore, NamingConvention, NavigationProperty, OrderByClause, Predicate, PropExpr, QueryOptions, SaveOptions, SelectClause, UnaryPredicate, ValidationError, ValidationOptions, Validator, };
|
|
30
|
-
// create a breeze variable here
|
|
31
|
-
export const breeze = {
|
|
32
|
-
AbstractDataServiceAdapter: AbstractDataServiceAdapter,
|
|
33
|
-
assertConfig: null,
|
|
34
|
-
assertParam: null,
|
|
35
|
-
AutoGeneratedKeyType: AutoGeneratedKeyType,
|
|
36
|
-
BooleanQueryOp: BooleanQueryOp,
|
|
37
|
-
ComplexAspect: ComplexAspect,
|
|
38
|
-
ComplexType: ComplexType,
|
|
39
|
-
config: config,
|
|
40
|
-
core: core,
|
|
41
|
-
DataProperty: DataProperty,
|
|
42
|
-
DataService: DataService,
|
|
43
|
-
DataType: DataType,
|
|
44
|
-
EntityAction: EntityAction,
|
|
45
|
-
EntityAspect: EntityAspect,
|
|
46
|
-
EntityKey: EntityKey,
|
|
47
|
-
EntityManager: EntityManager,
|
|
48
|
-
EntityQuery: EntityQuery,
|
|
49
|
-
EntityState: EntityState,
|
|
50
|
-
EntityType: EntityType,
|
|
51
|
-
Event: BreezeEvent,
|
|
52
|
-
FetchStrategy: FetchStrategy,
|
|
53
|
-
FilterQueryOp: FilterQueryOp,
|
|
54
|
-
InterfaceRegistry: InterfaceRegistry,
|
|
55
|
-
JsonResultsAdapter: JsonResultsAdapter,
|
|
56
|
-
KeyGenerator: KeyGenerator,
|
|
57
|
-
LocalQueryComparisonOptions: LocalQueryComparisonOptions,
|
|
58
|
-
makeComplexArray: makeComplexArray,
|
|
59
|
-
makePrimitiveArray: makePrimitiveArray,
|
|
60
|
-
makeRelationArray: makeRelationArray,
|
|
61
|
-
MergeStrategy: MergeStrategy,
|
|
62
|
-
MetadataStore: MetadataStore,
|
|
63
|
-
NamingConvention: NamingConvention,
|
|
64
|
-
NavigationProperty: NavigationProperty,
|
|
65
|
-
OrderByClause: OrderByClause,
|
|
66
|
-
Param,
|
|
67
|
-
Predicate: Predicate,
|
|
68
|
-
QueryOptions: QueryOptions,
|
|
69
|
-
SaveOptions: SaveOptions,
|
|
70
|
-
ValidationError: ValidationError,
|
|
71
|
-
ValidationOptions: ValidationOptions,
|
|
72
|
-
Validator: Validator,
|
|
73
|
-
version: "2.1.5"
|
|
74
|
-
};
|
|
75
|
-
/** @hidden @internal */
|
|
76
|
-
let win;
|
|
77
|
-
try {
|
|
78
|
-
win = window ? window : (global ? global.window : undefined);
|
|
79
|
-
}
|
|
80
|
-
catch (e) {
|
|
81
|
-
}
|
|
82
|
-
if (win) {
|
|
83
|
-
win.breeze = breeze;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9icmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQW1ELE1BQU0sZ0JBQWdCLENBQUM7QUFDckksT0FBTyxFQUFFLFFBQVEsRUFBRyxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQXFFLE1BQU0saUJBQWlCLENBQUM7QUFDakksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFtTixNQUFNLGtCQUFrQixDQUFDO0FBQ2xRLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQWtLLE1BQU0sc0JBQXNCLENBQUM7QUFDek4sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FB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QyxZQUFZLEVBQUUsWUFBWTtJQUMxQiwyQkFBMkIsRUFBRSwyQkFBMkI7SUFDeEQsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsYUFBYSxFQUFFLGFBQWE7SUFDNUIsYUFBYSxFQUFFLGFBQWE7SUFDNUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxhQUFhLEVBQUUsYUFBYTtJQUM1QixLQUFLO0lBQ0wsU0FBUyxFQUFFLFNBQVM7SUFDcEIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsV0FBVyxFQUFFLFdBQVc7SUFDeEIsZUFBZSxFQUFFLGVBQWU7SUFDaEMsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3BDLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQUM7QUFnQkYsd0JBQXdCO0FBQ3hCLElBQUksR0FBUSxDQUFDO0FBQ2IsSUFBSTtJQUNGLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0NBQzlEO0FBQUMsT0FBTyxDQUFDLEVBQUU7Q0FFWDtBQUNELElBQUksR0FBRyxFQUFFO0lBQ1AsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDckIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQWJzdHJhY3REYXRhU2VydmljZUFkYXB0ZXJ9IGZyb20gJy4vYWJzdHJhY3QtZGF0YS1zZXJ2aWNlLWFkYXB0ZXInO1xyXG5pbXBvcnQgeyBhc3NlcnRQYXJhbSwgYXNzZXJ0Q29uZmlnLCBQYXJhbSB9IGZyb20gJy4vYXNzZXJ0LXBhcmFtJztcclxuaW1wb3J0IHsgQnJlZXplQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBCcmVlemVFbnVtfSBmcm9tICcuL2VudW0nO1xyXG5pbXBvcnQgeyBCcmVlemVFdmVudCB9IGZyb20gJy4vZXZlbnQnO1xyXG5pbXBvcnQgeyBDb21wbGV4QXJyYXkgfSBmcm9tICcuL2NvbXBsZXgtYXJyYXknO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSwgRGF0YVNlcnZpY2VDb25maWcsIEpzb25SZXN1bHRzQWRhcHRlciwgSnNvblJlc3VsdHNBZGFwdGVyQ29uZmlnLCBOb2RlQ29udGV4dCwgTm9kZU1ldGEgfSBmcm9tICcuL2RhdGEtc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFUeXBlICB9IGZyb20gJy4vZGF0YS10eXBlJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uIH0gZnJvbSAnLi9lbnRpdHktYWN0aW9uJztcclxuaW1wb3J0IHsgRW50aXR5QXNwZWN0LCBDb21wbGV4QXNwZWN0LCBFbnRpdHksIENvbXBsZXhPYmplY3QsIFN0cnVjdHVyYWxPYmplY3QsIFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncyB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IEVudGl0eUtleSB9IGZyb20gJy4vZW50aXR5LWtleSc7XHJcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIEVudGl0eU1hbmFnZXJDb25maWcsIEVudGl0eUVycm9yLCBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzLCBTYXZlQ29udGV4dCwgU2F2ZUJ1bmRsZSwgSHR0cFJlc3BvbnNlLCBLZXlNYXBwaW5nLCBTZXJ2ZXJFcnJvciwgU2F2ZVJlc3VsdCwgUXVlcnlSZXN1bHQsIFZhbGlkYXRpb25FcnJvcnNDaGFuZ2VkRXZlbnRBcmdzLCBIYXNDaGFuZ2VzQ2hhbmdlZEV2ZW50QXJncyB9IGZyb20gJy4vZW50aXR5LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSwgRmlsdGVyUXVlcnlPcCwgQm9vbGVhblF1ZXJ5T3AsIE9yZGVyQnlDbGF1c2UsIEV4cGFuZENsYXVzZSwgU2VsZWN0Q2xhdXNlIH0gZnJvbSAnLi9lbnRpdHktcXVlcnknO1xyXG5pbXBvcnQgeyBFbnRpdHlTdGF0ZSB9IGZyb20gJy4vZW50aXR5LXN0YXRlJztcclxuaW1wb3J0IHsgSW50ZXJmYWNlUmVnaXN0cnksIEFqYXhBZGFwdGVyLCBBamF4Q29uZmlnLCBEYXRhU2VydmljZUFkYXB0ZXIsIE1vZGVsTGlicmFyeUFkYXB0ZXIsIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvciwgVXJpQnVpbGRlckFkYXB0ZXIsIEludGVyZmFjZVJlZ2lzdHJ5Q29uZmlnLCBBamF4UmVxdWVzdEludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmZhY2UtcmVnaXN0cnknO1xyXG5pbXBvcnQgeyBLZXlHZW5lcmF0b3IgfSBmcm9tICcuL2tleS1nZW5lcmF0b3InO1xyXG5pbXBvcnQgeyBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMgfSBmcm9tICcuL2xvY2FsLXF1ZXJ5LWNvbXBhcmlzb24tb3B0aW9ucyc7XHJcbmltcG9ydCB7IE1hcHBpbmdDb250ZXh0IH0gZnJvbSAnLi9tYXBwaW5nLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBNZXRhZGF0YVN0b3JlLCBFbnRpdHlUeXBlLCBDb21wbGV4VHlwZSwgU3RydWN0dXJhbFR5cGUsIERhdGFQcm9wZXJ0eSwgRW50aXR5UHJvcGVydHksIE5hdmlnYXRpb25Qcm9wZXJ0eSwgQXV0b0dlbmVyYXRlZEtleVR5cGUgICB9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgTmFtaW5nQ29udmVudGlvbiB9IGZyb20gJy4vbmFtaW5nLWNvbnZlbnRpb24nO1xyXG5pbXBvcnQgeyBQcmVkaWNhdGUsIFZpc2l0Q29udGV4dCwgVmlzaXRvciwgRXhwcmVzc2lvbkNvbnRleHQsIFVuYXJ5UHJlZGljYXRlLCBCaW5hcnlQcmVkaWNhdGUsIEFueUFsbFByZWRpY2F0ZSwgQW5kT3JQcmVkaWNhdGUsIExpdEV4cHIsIEZuRXhwciwgUHJvcEV4cHIgfSBmcm9tICcuL3ByZWRpY2F0ZSc7XHJcbmltcG9ydCB7IFF1ZXJ5T3B0aW9ucywgIEZldGNoU3RyYXRlZ3ksIE1lcmdlU3RyYXRlZ3kgfSBmcm9tICcuL3F1ZXJ5LW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBTYXZlT3B0aW9ucyB9IGZyb20gJy4vc2F2ZS1vcHRpb25zJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk9wdGlvbnMgfSBmcm9tICcuL3ZhbGlkYXRpb24tb3B0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBjb25maWcsIEJhc2VBZGFwdGVyIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBjb3JlLCBDYWxsYmFjaywgRXJyb3JDYWxsYmFjayB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IG1ha2VSZWxhdGlvbkFycmF5LCBtYWtlUHJpbWl0aXZlQXJyYXksIG1ha2VDb21wbGV4QXJyYXkgfSBmcm9tICcuL2FycmF5JztcclxuXHJcbmltcG9ydCB7IFJlbGF0aW9uQXJyYXkgfSBmcm9tICcuL3JlbGF0aW9uLWFycmF5JztcclxuaW1wb3J0IHsgQXJyYXlDaGFuZ2VkQXJncyB9IGZyb20gJy4vb2JzZXJ2YWJsZS1hcnJheSc7XHJcbmV4cG9ydCB7IEJyZWV6ZUNvbmZpZywgQ29tcGxleEFycmF5LCBSZWxhdGlvbkFycmF5IH07XHJcblxyXG5leHBvcnQge1xyXG4gIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyLFxyXG4gIEFqYXhBZGFwdGVyLFxyXG4gIEFqYXhDb25maWcsXHJcbiAgQWpheFJlcXVlc3RJbnRlcmNlcHRvcixcclxuICBBbmRPclByZWRpY2F0ZSxcclxuICBBbnlBbGxQcmVkaWNhdGUsXHJcbiAgQXJyYXlDaGFuZ2VkQXJncyxcclxuICBhc3NlcnRDb25maWcsXHJcbiAgYXNzZXJ0UGFyYW0sXHJcbiAgQXV0b0dlbmVyYXRlZEtleVR5cGUsXHJcbiAgQmFzZUFkYXB0ZXIsXHJcbiAgQmluYXJ5UHJlZGljYXRlLFxyXG4gIEJyZWV6ZUVudW0sXHJcbiAgQnJlZXplRXZlbnQsIFxyXG4gIENhbGxiYWNrLFxyXG4gIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvcixcclxuICBDb21wbGV4QXNwZWN0LFxyXG4gIENvbXBsZXhPYmplY3QsXHJcbiAgQ29tcGxleFR5cGUsXHJcbiAgY29uZmlnLFxyXG4gIGNvcmUsXHJcbiAgRGF0YVByb3BlcnR5LFxyXG4gIERhdGFTZXJ2aWNlLFxyXG4gIERhdGFTZXJ2aWNlQWRhcHRlcixcclxuICBEYXRhU2VydmljZUNvbmZpZyxcclxuICBEYXRhVHlwZSxcclxuICBFbnRpdHksXHJcbiAgRW50aXR5QWN0aW9uLFxyXG4gIEVudGl0eUFzcGVjdCxcclxuICBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIEVudGl0eUVycm9yLFxyXG4gIEVudGl0eUtleSxcclxuICBFbnRpdHlNYW5hZ2VyLFxyXG4gIEVudGl0eU1hbmFnZXJDb25maWcsXHJcbiAgRW50aXR5UHJvcGVydHksXHJcbiAgRW50aXR5UXVlcnksXHJcbiAgRW50aXR5U3RhdGUsXHJcbiAgRW50aXR5VHlwZSxcclxuICBFcnJvckNhbGxiYWNrLFxyXG4gIEV4cGFuZENsYXVzZSxcclxuICBFeHByZXNzaW9uQ29udGV4dCxcclxuICBGZXRjaFN0cmF0ZWd5LFxyXG4gIEZpbHRlclF1ZXJ5T3AsXHJcbiAgRm5FeHByLFxyXG4gIEhhc0NoYW5nZXNDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIEh0dHBSZXNwb25zZSxcclxuICBJbnRlcmZhY2VSZWdpc3RyeSxcclxuICBJbnRlcmZhY2VSZWdpc3RyeUNvbmZpZyxcclxuICBKc29uUmVzdWx0c0FkYXB0ZXIsXHJcbiAgSnNvblJlc3VsdHNBZGFwdGVyQ29uZmlnLFxyXG4gIEtleUdlbmVyYXRvcixcclxuICBLZXlNYXBwaW5nLFxyXG4gIExpdEV4cHIsXHJcbiAgTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zLFxyXG4gIG1ha2VDb21wbGV4QXJyYXksXHJcbiAgbWFrZVByaW1pdGl2ZUFycmF5LFxyXG4gIG1ha2VSZWxhdGlvbkFycmF5LFxyXG4gIE1hcHBpbmdDb250ZXh0LFxyXG4gIE1lcmdlU3RyYXRlZ3ksXHJcbiAgTWV0YWRhdGFTdG9yZSxcclxuICBNb2RlbExpYnJhcnlBZGFwdGVyLFxyXG4gIE5hbWluZ0NvbnZlbnRpb24sXHJcbiAgTmF2aWdhdGlvblByb3BlcnR5LFxyXG4gIE5vZGVDb250ZXh0LFxyXG4gIE5vZGVNZXRhLFxyXG4gIE9yZGVyQnlDbGF1c2UsXHJcbiAgUHJlZGljYXRlLFxyXG4gIFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncyxcclxuICBQcm9wRXhwcixcclxuICBRdWVyeU9wdGlvbnMsXHJcbiAgUXVlcnlSZXN1bHQsXHJcbiAgU2F2ZUJ1bmRsZSxcclxuICBTYXZlQ29udGV4dCxcclxuICBTYXZlT3B0aW9ucyxcclxuICBTYXZlUmVzdWx0LFxyXG4gIFNlbGVjdENsYXVzZSxcclxuICBTZXJ2ZXJFcnJvcixcclxuICBTdHJ1Y3R1cmFsT2JqZWN0LFxyXG4gIFN0cnVjdHVyYWxUeXBlLFxyXG4gIFVuYXJ5UHJlZGljYXRlLFxyXG4gIFVyaUJ1aWxkZXJBZGFwdGVyLFxyXG4gIFZhbGlkYXRpb25FcnJvcnNDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIFZhbGlkYXRpb25FcnJvcixcclxuICBWYWxpZGF0aW9uT3B0aW9ucyxcclxuICBWYWxpZGF0b3IsXHJcbiAgVmlzaXRDb250ZXh0LFxyXG4gIFZpc2l0b3IsXHJcbn07XHJcblxyXG4vLyBjcmVhdGUgYSBicmVlemUgdmFyaWFibGUgaGVyZVxyXG5leHBvcnQgY29uc3QgYnJlZXplID0ge1xyXG4gIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyOiBBYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlcixcclxuICBhc3NlcnRDb25maWc6IG51bGwgYXMgYW55LFxyXG4gIGFzc2VydFBhcmFtOiBudWxsIGFzIGFueSxcclxuICBBdXRvR2VuZXJhdGVkS2V5VHlwZTogQXV0b0dlbmVyYXRlZEtleVR5cGUsXHJcbiAgQm9vbGVhblF1ZXJ5T3A6IEJvb2xlYW5RdWVyeU9wLFxyXG4gIENvbXBsZXhBc3BlY3Q6IENvbXBsZXhBc3BlY3QsXHJcbiAgQ29tcGxleFR5cGU6IENvbXBsZXhUeXBlLFxyXG4gIGNvbmZpZzogY29uZmlnLFxyXG4gIGNvcmU6IGNvcmUsXHJcbiAgRGF0YVByb3BlcnR5OiBEYXRhUHJvcGVydHksXHJcbiAgRGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gIERhdGFUeXBlOiBEYXRhVHlwZSxcclxuICBFbnRpdHlBY3Rpb246IEVudGl0eUFjdGlvbixcclxuICBFbnRpdHlBc3BlY3Q6IEVudGl0eUFzcGVjdCxcclxuICBFbnRpdHlLZXk6IEVudGl0eUtleSxcclxuICBFbnRpdHlNYW5hZ2VyOiBFbnRpdHlNYW5hZ2VyLFxyXG4gIEVudGl0eVF1ZXJ5OiBFbnRpdHlRdWVyeSxcclxuICBFbnRpdHlTdGF0ZTogRW50aXR5U3RhdGUsXHJcbiAgRW50aXR5VHlwZTogRW50aXR5VHlwZSxcclxuICBFdmVudDogQnJlZXplRXZlbnQsXHJcbiAgRmV0Y2hTdHJhdGVneTogRmV0Y2hTdHJhdGVneSxcclxuICBGaWx0ZXJRdWVyeU9wOiBGaWx0ZXJRdWVyeU9wLFxyXG4gIEludGVyZmFjZVJlZ2lzdHJ5OiBJbnRlcmZhY2VSZWdpc3RyeSxcclxuICBKc29uUmVzdWx0c0FkYXB0ZXI6IEpzb25SZXN1bHRzQWRhcHRlcixcclxuICBLZXlHZW5lcmF0b3I6IEtleUdlbmVyYXRvcixcclxuICBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnM6IExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucyxcclxuICBtYWtlQ29tcGxleEFycmF5OiBtYWtlQ29tcGxleEFycmF5LFxyXG4gIG1ha2VQcmltaXRpdmVBcnJheTogbWFrZVByaW1pdGl2ZUFycmF5LFxyXG4gIG1ha2VSZWxhdGlvbkFycmF5OiBtYWtlUmVsYXRpb25BcnJheSxcclxuICBNZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5LFxyXG4gIE1ldGFkYXRhU3RvcmU6IE1ldGFkYXRhU3RvcmUsXHJcbiAgTmFtaW5nQ29udmVudGlvbjogTmFtaW5nQ29udmVudGlvbixcclxuICBOYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSxcclxuICBPcmRlckJ5Q2xhdXNlOiBPcmRlckJ5Q2xhdXNlLCAvLyBmb3IgdGVzdGluZyBvbmx5XHJcbiAgUGFyYW0sXHJcbiAgUHJlZGljYXRlOiBQcmVkaWNhdGUsXHJcbiAgUXVlcnlPcHRpb25zOiBRdWVyeU9wdGlvbnMsXHJcbiAgU2F2ZU9wdGlvbnM6IFNhdmVPcHRpb25zLFxyXG4gIFZhbGlkYXRpb25FcnJvcjogVmFsaWRhdGlvbkVycm9yLFxyXG4gIFZhbGlkYXRpb25PcHRpb25zOiBWYWxpZGF0aW9uT3B0aW9ucyxcclxuICBWYWxpZGF0b3I6IFZhbGlkYXRvcixcclxuICB2ZXJzaW9uOiBcIjIuMS41XCJcclxufTtcclxuXHJcbi8vIGJyZWV6ZS5hc3NlcnRDb25maWcgPSBhc3NlcnRDb25maWcgYXMgYW55O1xyXG4vLyBicmVlemUuYXNzZXJ0UGFyYW0gPSBhc3NlcnRQYXJhbSBhcyBhbnk7XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIHByb21pc2VzIHtcclxuICAvKiogbm8tb3AgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBicmVlemUtYnJpZGdlMi1hbmd1bGFyICovXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJUHJvbWlzZVNlcnZpY2Uge31cclxufVxyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmRlY2xhcmUgdmFyIHdpbmRvdzogYW55O1xyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmRlY2xhcmUgdmFyIGdsb2JhbDogYW55O1xyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmxldCB3aW46IGFueTtcclxudHJ5IHtcclxuICB3aW4gPSB3aW5kb3cgPyB3aW5kb3cgOiAoZ2xvYmFsID8gZ2xvYmFsLndpbmRvdyA6IHVuZGVmaW5lZCk7XHJcbn0gY2F0Y2ggKGUpIHtcclxuXHJcbn1cclxuaWYgKHdpbikge1xyXG4gIHdpbi5icmVlemUgPSBicmVlemU7XHJcbn1cclxuIl19
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { core } from './core';
|
|
2
|
-
import { observableArray } from './observable-array';
|
|
3
|
-
import { BreezeEvent } from './event';
|
|
4
|
-
const ɵ0 = function (adds) {
|
|
5
|
-
return getGoodAdds(this, adds);
|
|
6
|
-
}, ɵ1 = function () {
|
|
7
|
-
observableArray.updateEntityState(this);
|
|
8
|
-
}, ɵ2 = function (adds) {
|
|
9
|
-
processAdds(this, adds);
|
|
10
|
-
}, ɵ3 = function (removes) {
|
|
11
|
-
processRemoves(this, removes);
|
|
12
|
-
}, ɵ4 = function () {
|
|
13
|
-
if (!this._origValues)
|
|
14
|
-
return;
|
|
15
|
-
let that = this;
|
|
16
|
-
this.forEach(function (co) {
|
|
17
|
-
clearAspect(co, that);
|
|
18
|
-
});
|
|
19
|
-
this.length = 0;
|
|
20
|
-
this._origValues.forEach(function (co) {
|
|
21
|
-
that.push(co);
|
|
22
|
-
});
|
|
23
|
-
}, ɵ5 = function () {
|
|
24
|
-
this._origValues = null;
|
|
25
|
-
};
|
|
26
|
-
let complexArrayMixin = {
|
|
27
|
-
// complexArray will have the following props
|
|
28
|
-
// parent
|
|
29
|
-
// propertyPath
|
|
30
|
-
// parentProperty
|
|
31
|
-
// addedItems - only if modified
|
|
32
|
-
// removedItems - only if modified
|
|
33
|
-
// each complexAspect of any entity within a complexArray
|
|
34
|
-
// will have its own _complexState = "A/M";
|
|
35
|
-
/**
|
|
36
|
-
Complex arrays are not actually classes, they are objects that mimic arrays. A complex array is collection of
|
|
37
|
-
complexTypes associated with a data property on a single entity or other complex object. i.e. customer.orders or order.orderDetails.
|
|
38
|
-
This collection looks like an array in that the basic methods on arrays such as 'push', 'pop', 'shift', 'unshift', 'splice'
|
|
39
|
-
are all provided as well as several special purpose methods.
|
|
40
|
-
@class {complexArray}
|
|
41
|
-
**/
|
|
42
|
-
/**
|
|
43
|
-
An [[Event]] that fires whenever the contents of this array changed. This event
|
|
44
|
-
is fired any time a new entity is attached or added to the EntityManager and happens to belong to this collection.
|
|
45
|
-
Adds that occur as a result of query or import operations are batched so that all of the adds or removes to any individual
|
|
46
|
-
collections are collected into a single notification event for each relation array.
|
|
47
|
-
@example
|
|
48
|
-
// assume order is an order entity attached to an EntityManager.
|
|
49
|
-
orders.arrayChanged.subscribe(
|
|
50
|
-
function (arrayChangedArgs) {
|
|
51
|
-
var addedEntities = arrayChangedArgs.added;
|
|
52
|
-
var removedEntities = arrayChanged.removed;
|
|
53
|
-
});
|
|
54
|
-
@event arrayChanged
|
|
55
|
-
@param added {Array of Entity} An array of all of the entities added to this collection.
|
|
56
|
-
@param removed {Array of Entity} An array of all of the removed from this collection.
|
|
57
|
-
@readOnly
|
|
58
|
-
**/
|
|
59
|
-
// virtual impls
|
|
60
|
-
_getGoodAdds: ɵ0,
|
|
61
|
-
_beforeChange: ɵ1,
|
|
62
|
-
_processAdds: ɵ2,
|
|
63
|
-
_processRemoves: ɵ3,
|
|
64
|
-
_rejectChanges: ɵ4,
|
|
65
|
-
_acceptChanges: ɵ5
|
|
66
|
-
};
|
|
67
|
-
// local functions
|
|
68
|
-
function getGoodAdds(complexArray, adds) {
|
|
69
|
-
// remove any that are already added here
|
|
70
|
-
return adds.filter(function (a) {
|
|
71
|
-
// return a.parent !== complexArray.parent; // TODO: check if this is actually a bug in original breezejs ???
|
|
72
|
-
return a.complexAspect == null || a.complexAspect.parent !== complexArray.parent;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function processAdds(complexArray, adds) {
|
|
76
|
-
adds.forEach(function (a) {
|
|
77
|
-
// if (a.parent != null) { // TODO: check if this is actually a bug in original breezejs ???
|
|
78
|
-
if (a.complexAspect && a.complexAspect.parent != null) {
|
|
79
|
-
throw new Error("The complexObject is already attached. Either clone it or remove it from its current owner");
|
|
80
|
-
}
|
|
81
|
-
setAspect(a, complexArray);
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
function processRemoves(complexArray, removes) {
|
|
85
|
-
removes.forEach(function (a) {
|
|
86
|
-
clearAspect(a, complexArray);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
function clearAspect(co, arr) {
|
|
90
|
-
let coAspect = co.complexAspect;
|
|
91
|
-
// if not already attached - exit
|
|
92
|
-
if (coAspect.parent !== arr.parent)
|
|
93
|
-
return null;
|
|
94
|
-
coAspect.parent = undefined;
|
|
95
|
-
coAspect.parentProperty = undefined;
|
|
96
|
-
return coAspect;
|
|
97
|
-
}
|
|
98
|
-
function setAspect(co, arr) {
|
|
99
|
-
let coAspect = co.complexAspect;
|
|
100
|
-
// if already attached - exit
|
|
101
|
-
if (coAspect.parent === arr.parent)
|
|
102
|
-
return null;
|
|
103
|
-
coAspect.parent = arr.parent;
|
|
104
|
-
coAspect.parentProperty = arr.parentProperty;
|
|
105
|
-
return coAspect;
|
|
106
|
-
}
|
|
107
|
-
/** For use by breeze plugin authors only. The class is for use in building a [[IModelLibraryAdapter]] implementation.
|
|
108
|
-
@adapter (see [[IModelLibraryAdapter]])
|
|
109
|
-
@hidden
|
|
110
|
-
*/
|
|
111
|
-
export function makeComplexArray(arr, parent, parentProperty) {
|
|
112
|
-
let arrX = arr;
|
|
113
|
-
observableArray.initializeParent(arrX, parent, parentProperty);
|
|
114
|
-
arrX.arrayChanged = new BreezeEvent("arrayChanged", arrX);
|
|
115
|
-
core.extend(arrX, observableArray.mixin);
|
|
116
|
-
return core.extend(arrX, complexArrayMixin);
|
|
117
|
-
}
|
|
118
|
-
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5 };
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC1hcnJheS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvIiwic291cmNlcyI6WyJzcmMvY29tcGxleC1hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFHLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztXQWtEdEIsVUFBUyxJQUFXO0lBQ2hDLE9BQU8sV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDLE9BRWM7SUFDYixlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsQ0FBQyxPQUVhLFVBQVMsSUFBVztJQUNoQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUMsT0FFZ0IsVUFBUyxPQUFjO0lBQ3RDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxPQUVlO0lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1FBQUUsT0FBTztJQUM5QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7SUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQWlCO1FBQ3RDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQWlCO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLE9BRWU7SUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUMxQixD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QUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBaUIsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSAgfSBmcm9tICcuL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlQXJyYXksIG9ic2VydmFibGVBcnJheSB9IGZyb20gJy4vb2JzZXJ2YWJsZS1hcnJheSc7XHJcbmltcG9ydCB7IEJyZWV6ZUV2ZW50IH0gZnJvbSAnLi9ldmVudCc7XHJcbmltcG9ydCB7IENvbXBsZXhPYmplY3QsIFN0cnVjdHVyYWxPYmplY3QgfSBmcm9tICcuL2VudGl0eS1hc3BlY3QnO1xyXG5pbXBvcnQgeyBEYXRhUHJvcGVydHkgfSBmcm9tICcuL2VudGl0eS1tZXRhZGF0YSc7XHJcblxyXG4vLyBUT0RPOiBtaXhpbiBpbXBsIGlzIG5vdCB2ZXJ5IHR5cGVzYWZlXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXhBcnJheSBleHRlbmRzIE9ic2VydmFibGVBcnJheSB7XHJcbiAgW2luZGV4OiBudW1iZXJdOiBDb21wbGV4T2JqZWN0O1xyXG4gIHBhcmVudD86IFN0cnVjdHVyYWxPYmplY3Q7XHJcbiAgcGFyZW50UHJvcGVydHk/OiBEYXRhUHJvcGVydHk7XHJcbn1cclxuXHJcbmxldCBjb21wbGV4QXJyYXlNaXhpbiA9IHtcclxuXHJcbiAgLy8gY29tcGxleEFycmF5IHdpbGwgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BzXHJcbiAgLy8gICAgcGFyZW50XHJcbiAgLy8gICAgcHJvcGVydHlQYXRoXHJcbiAgLy8gICAgcGFyZW50UHJvcGVydHlcclxuICAvLyAgICBhZGRlZEl0ZW1zICAtIG9ubHkgaWYgbW9kaWZpZWRcclxuICAvLyAgICByZW1vdmVkSXRlbXMgIC0gb25seSBpZiBtb2RpZmllZFxyXG4gIC8vICBlYWNoIGNvbXBsZXhBc3BlY3Qgb2YgYW55IGVudGl0eSB3aXRoaW4gYSBjb21wbGV4QXJyYXlcclxuICAvLyAgd2lsbCBoYXZlIGl0cyBvd24gX2NvbXBsZXhTdGF0ZSA9IFwiQS9NXCI7XHJcblxyXG4gIC8qKlxyXG4gICBDb21wbGV4IGFycmF5cyBhcmUgbm90IGFjdHVhbGx5IGNsYXNzZXMsIHRoZXkgYXJlIG9iamVjdHMgdGhhdCBtaW1pYyBhcnJheXMuIEEgY29tcGxleCBhcnJheSBpcyBjb2xsZWN0aW9uIG9mXHJcbiAgIGNvbXBsZXhUeXBlcyBhc3NvY2lhdGVkIHdpdGggYSBkYXRhIHByb3BlcnR5IG9uIGEgc2luZ2xlIGVudGl0eSBvciBvdGhlciBjb21wbGV4IG9iamVjdC4gaS5lLiBjdXN0b21lci5vcmRlcnMgb3Igb3JkZXIub3JkZXJEZXRhaWxzLlxyXG4gICBUaGlzIGNvbGxlY3Rpb24gbG9va3MgbGlrZSBhbiBhcnJheSBpbiB0aGF0IHRoZSBiYXNpYyBtZXRob2RzIG9uIGFycmF5cyBzdWNoIGFzICdwdXNoJywgJ3BvcCcsICdzaGlmdCcsICd1bnNoaWZ0JywgJ3NwbGljZSdcclxuICAgYXJlIGFsbCBwcm92aWRlZCBhcyB3ZWxsIGFzIHNldmVyYWwgc3BlY2lhbCBwdXJwb3NlIG1ldGhvZHMuXHJcbiAgIEBjbGFzcyB7Y29tcGxleEFycmF5fVxyXG4gICAqKi9cclxuXHJcbiAgLyoqXHJcbiAgQW4gW1tFdmVudF1dIHRoYXQgZmlyZXMgd2hlbmV2ZXIgdGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgY2hhbmdlZC4gIFRoaXMgZXZlbnRcclxuICBpcyBmaXJlZCBhbnkgdGltZSBhIG5ldyBlbnRpdHkgaXMgYXR0YWNoZWQgb3IgYWRkZWQgdG8gdGhlIEVudGl0eU1hbmFnZXIgYW5kIGhhcHBlbnMgdG8gYmVsb25nIHRvIHRoaXMgY29sbGVjdGlvbi5cclxuICBBZGRzIHRoYXQgb2NjdXIgYXMgYSByZXN1bHQgb2YgcXVlcnkgb3IgaW1wb3J0IG9wZXJhdGlvbnMgYXJlIGJhdGNoZWQgc28gdGhhdCBhbGwgb2YgdGhlIGFkZHMgb3IgcmVtb3ZlcyB0byBhbnkgaW5kaXZpZHVhbFxyXG4gIGNvbGxlY3Rpb25zIGFyZSBjb2xsZWN0ZWQgaW50byBhIHNpbmdsZSBub3RpZmljYXRpb24gZXZlbnQgZm9yIGVhY2ggcmVsYXRpb24gYXJyYXkuXHJcbiAgQGV4YW1wbGVcclxuICAgICAgLy8gYXNzdW1lIG9yZGVyIGlzIGFuIG9yZGVyIGVudGl0eSBhdHRhY2hlZCB0byBhbiBFbnRpdHlNYW5hZ2VyLlxyXG4gICAgICBvcmRlcnMuYXJyYXlDaGFuZ2VkLnN1YnNjcmliZShcclxuICAgICAgZnVuY3Rpb24gKGFycmF5Q2hhbmdlZEFyZ3MpIHtcclxuICAgICAgICAgIHZhciBhZGRlZEVudGl0aWVzID0gYXJyYXlDaGFuZ2VkQXJncy5hZGRlZDtcclxuICAgICAgICAgIHZhciByZW1vdmVkRW50aXRpZXMgPSBhcnJheUNoYW5nZWQucmVtb3ZlZDtcclxuICAgICAgfSk7XHJcbiAgQGV2ZW50IGFycmF5Q2hhbmdlZFxyXG4gIEBwYXJhbSBhZGRlZCB7QXJyYXkgb2YgRW50aXR5fSBBbiBhcnJheSBvZiBhbGwgb2YgdGhlIGVudGl0aWVzIGFkZGVkIHRvIHRoaXMgY29sbGVjdGlvbi5cclxuICBAcGFyYW0gcmVtb3ZlZCB7QXJyYXkgb2YgRW50aXR5fSBBbiBhcnJheSBvZiBhbGwgb2YgdGhlIHJlbW92ZWQgZnJvbSB0aGlzIGNvbGxlY3Rpb24uXHJcbiAgQHJlYWRPbmx5XHJcbiAgKiovXHJcblxyXG4gICAgLy8gdmlydHVhbCBpbXBsc1xyXG4gIF9nZXRHb29kQWRkczogZnVuY3Rpb24oYWRkczogYW55W10pIHtcclxuICAgIHJldHVybiBnZXRHb29kQWRkcyh0aGlzLCBhZGRzKTtcclxuICB9LFxyXG5cclxuICBfYmVmb3JlQ2hhbmdlOiBmdW5jdGlvbigpIHtcclxuICAgIG9ic2VydmFibGVBcnJheS51cGRhdGVFbnRpdHlTdGF0ZSh0aGlzKTtcclxuICB9LFxyXG5cclxuICBfcHJvY2Vzc0FkZHM6IGZ1bmN0aW9uKGFkZHM6IGFueVtdKSB7XHJcbiAgICBwcm9jZXNzQWRkcyh0aGlzLCBhZGRzKTtcclxuICB9LFxyXG5cclxuICBfcHJvY2Vzc1JlbW92ZXM6IGZ1bmN0aW9uKHJlbW92ZXM6IGFueVtdKSB7XHJcbiAgICBwcm9jZXNzUmVtb3Zlcyh0aGlzLCByZW1vdmVzKTtcclxuICB9LFxyXG5cclxuICBfcmVqZWN0Q2hhbmdlczogZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXRoaXMuX29yaWdWYWx1ZXMpIHJldHVybjtcclxuICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbiAoY286IENvbXBsZXhPYmplY3QpIHtcclxuICAgICAgY2xlYXJBc3BlY3QoY28sIHRoYXQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxlbmd0aCA9IDA7XHJcbiAgICB0aGlzLl9vcmlnVmFsdWVzLmZvckVhY2goZnVuY3Rpb24gKGNvOiBDb21wbGV4T2JqZWN0KSB7XHJcbiAgICAgIHRoYXQucHVzaChjbyk7XHJcbiAgICB9KTtcclxuICB9LFxyXG5cclxuICBfYWNjZXB0Q2hhbmdlczogZnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLl9vcmlnVmFsdWVzID0gbnVsbDtcclxuICB9XHJcbn07XHJcblxyXG4vLyBsb2NhbCBmdW5jdGlvbnNcclxuXHJcblxyXG5mdW5jdGlvbiBnZXRHb29kQWRkcyhjb21wbGV4QXJyYXk6IENvbXBsZXhBcnJheSwgYWRkczogQ29tcGxleE9iamVjdFtdKSB7XHJcbiAgLy8gcmVtb3ZlIGFueSB0aGF0IGFyZSBhbHJlYWR5IGFkZGVkIGhlcmVcclxuICByZXR1cm4gYWRkcy5maWx0ZXIoZnVuY3Rpb24gKGEpIHtcclxuICAgIC8vIHJldHVybiBhLnBhcmVudCAhPT0gY29tcGxleEFycmF5LnBhcmVudDsgIC8vIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgYWN0dWFsbHkgYSBidWcgaW4gb3JpZ2luYWwgYnJlZXplanMgPz8/XHJcbiAgICByZXR1cm4gYS5jb21wbGV4QXNwZWN0ID09IG51bGwgfHwgYS5jb21wbGV4QXNwZWN0LnBhcmVudCAhPT0gY29tcGxleEFycmF5LnBhcmVudDtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc0FkZHMoY29tcGxleEFycmF5OiBDb21wbGV4QXJyYXksIGFkZHM6IENvbXBsZXhPYmplY3RbXSkge1xyXG4gIGFkZHMuZm9yRWFjaChmdW5jdGlvbiAoYSkge1xyXG4gICAgLy8gaWYgKGEucGFyZW50ICE9IG51bGwpIHsgLy8gVE9ETzogY2hlY2sgaWYgdGhpcyBpcyBhY3R1YWxseSBhIGJ1ZyBpbiBvcmlnaW5hbCBicmVlemVqcyA/Pz9cclxuICAgIGlmIChhLmNvbXBsZXhBc3BlY3QgJiYgYS5jb21wbGV4QXNwZWN0LnBhcmVudCAhPSBudWxsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBjb21wbGV4T2JqZWN0IGlzIGFscmVhZHkgYXR0YWNoZWQuIEVpdGhlciBjbG9uZSBpdCBvciByZW1vdmUgaXQgZnJvbSBpdHMgY3VycmVudCBvd25lclwiKTtcclxuICAgIH1cclxuICAgIHNldEFzcGVjdChhLCBjb21wbGV4QXJyYXkpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwcm9jZXNzUmVtb3Zlcyhjb21wbGV4QXJyYXk6IENvbXBsZXhBcnJheSwgcmVtb3ZlczogQ29tcGxleE9iamVjdFtdKSB7XHJcbiAgcmVtb3Zlcy5mb3JFYWNoKGZ1bmN0aW9uIChhKSB7XHJcbiAgICBjbGVhckFzcGVjdChhLCBjb21wbGV4QXJyYXkpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjbGVhckFzcGVjdChjbzogQ29tcGxleE9iamVjdCwgYXJyOiBDb21wbGV4QXJyYXkpIHtcclxuICBsZXQgY29Bc3BlY3QgPSBjby5jb21wbGV4QXNwZWN0O1xyXG4gIC8vIGlmIG5vdCBhbHJlYWR5IGF0dGFjaGVkIC0gZXhpdFxyXG4gIGlmIChjb0FzcGVjdC5wYXJlbnQgIT09IGFyci5wYXJlbnQpIHJldHVybiBudWxsO1xyXG5cclxuICBjb0FzcGVjdC5wYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgY29Bc3BlY3QucGFyZW50UHJvcGVydHkgPSB1bmRlZmluZWQ7XHJcbiAgcmV0dXJuIGNvQXNwZWN0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRBc3BlY3QoY286IENvbXBsZXhPYmplY3QsIGFycjogQ29tcGxleEFycmF5KSB7XHJcbiAgbGV0IGNvQXNwZWN0ID0gY28uY29tcGxleEFzcGVjdDtcclxuICAvLyBpZiBhbHJlYWR5IGF0dGFjaGVkIC0gZXhpdFxyXG4gIGlmIChjb0FzcGVjdC5wYXJlbnQgPT09IGFyci5wYXJlbnQpIHJldHVybiBudWxsO1xyXG4gIGNvQXNwZWN0LnBhcmVudCA9IGFyci5wYXJlbnQ7XHJcbiAgY29Bc3BlY3QucGFyZW50UHJvcGVydHkgPSBhcnIucGFyZW50UHJvcGVydHk7XHJcblxyXG4gIHJldHVybiBjb0FzcGVjdDtcclxufVxyXG5cclxuXHJcbi8qKiBGb3IgdXNlIGJ5IGJyZWV6ZSBwbHVnaW4gYXV0aG9ycyBvbmx5LiBUaGUgY2xhc3MgaXMgZm9yIHVzZSBpbiBidWlsZGluZyBhIFtbSU1vZGVsTGlicmFyeUFkYXB0ZXJdXSBpbXBsZW1lbnRhdGlvbi4gXHJcbkBhZGFwdGVyIChzZWUgW1tJTW9kZWxMaWJyYXJ5QWRhcHRlcl1dKSAgICBcclxuQGhpZGRlbiBcclxuKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDb21wbGV4QXJyYXkoYXJyOiBhbnlbXSwgcGFyZW50OiBTdHJ1Y3R1cmFsT2JqZWN0LCBwYXJlbnRQcm9wZXJ0eTogRGF0YVByb3BlcnR5KSB7XHJcbiAgbGV0IGFyclggPSBhcnIgYXMgYW55O1xyXG4gIG9ic2VydmFibGVBcnJheS5pbml0aWFsaXplUGFyZW50KGFyclgsIHBhcmVudCwgcGFyZW50UHJvcGVydHkpO1xyXG4gIGFyclguYXJyYXlDaGFuZ2VkID0gbmV3IEJyZWV6ZUV2ZW50KFwiYXJyYXlDaGFuZ2VkXCIsIGFyclgpO1xyXG4gIGNvcmUuZXh0ZW5kKGFyclgsIG9ic2VydmFibGVBcnJheS5taXhpbik7XHJcbiAgcmV0dXJuIGNvcmUuZXh0ZW5kKGFyclgsIGNvbXBsZXhBcnJheU1peGluKSBhcyBDb21wbGV4QXJyYXk7XHJcbn1cclxuXHJcbiJdfQ==
|