angular-odata 0.80.0 → 0.99.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -34
- package/{esm2015/angular-odata.js → esm2020/angular-odata.mjs} +0 -0
- package/esm2020/lib/api.mjs +303 -0
- package/{esm2015/lib/cache/cache.js → esm2020/lib/cache/cache.mjs} +3 -3
- package/{esm2015/lib/cache/index.js → esm2020/lib/cache/index.mjs} +0 -0
- package/{esm2015/lib/cache/memory.js → esm2020/lib/cache/memory.mjs} +1 -1
- package/{esm2015/lib/cache/storage.js → esm2020/lib/cache/storage.mjs} +2 -2
- package/esm2020/lib/client.mjs +271 -0
- package/{esm2015/lib/constants.js → esm2020/lib/constants.mjs} +8 -3
- package/esm2020/lib/helper.mjs +268 -0
- package/esm2020/lib/index.mjs +19 -0
- package/esm2020/lib/models/collection.mjs +741 -0
- package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
- package/esm2020/lib/models/model.mjs +453 -0
- package/esm2020/lib/models/options.mjs +945 -0
- package/{esm2015/lib/module.js → esm2020/lib/module.mjs} +7 -7
- package/esm2020/lib/options.mjs +32 -0
- package/esm2020/lib/resources/index.mjs +7 -0
- package/esm2020/lib/resources/path/handlers.mjs +69 -0
- package/esm2020/lib/resources/path/index.mjs +3 -0
- package/esm2020/lib/resources/path/segments.mjs +124 -0
- package/esm2020/lib/resources/query/builder.mjs +590 -0
- package/esm2020/lib/resources/query/expressions/base.mjs +20 -0
- package/esm2020/lib/resources/query/expressions/compute.mjs +38 -0
- package/esm2020/lib/resources/query/expressions/expand.mjs +57 -0
- package/esm2020/lib/resources/query/expressions/filter.mjs +154 -0
- package/esm2020/lib/resources/query/expressions/index.mjs +7 -0
- package/esm2020/lib/resources/query/expressions/orderby.mjs +54 -0
- package/esm2020/lib/resources/query/expressions/search.mjs +113 -0
- package/esm2020/lib/resources/query/expressions/select.mjs +32 -0
- package/esm2020/lib/resources/query/expressions/syntax.mjs +371 -0
- package/esm2020/lib/resources/query/handlers.mjs +188 -0
- package/esm2020/lib/resources/query/index.mjs +4 -0
- package/esm2020/lib/resources/query/options.mjs +103 -0
- package/esm2020/lib/resources/request.mjs +167 -0
- package/esm2020/lib/resources/resource.mjs +326 -0
- package/esm2020/lib/resources/responses/annotations.mjs +119 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-annotation.js → esm2020/lib/resources/responses/csdl/csdl-annotation.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-entity-container.js → esm2020/lib/resources/responses/csdl/csdl-entity-container.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-entity-set.js → esm2020/lib/resources/responses/csdl/csdl-entity-set.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-enum-type.js → esm2020/lib/resources/responses/csdl/csdl-enum-type.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-function-action.js → esm2020/lib/resources/responses/csdl/csdl-function-action.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-navigation-property-binding.js → esm2020/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-reference.js → esm2020/lib/resources/responses/csdl/csdl-reference.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-schema.js → esm2020/lib/resources/responses/csdl/csdl-schema.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-singleton.js → esm2020/lib/resources/responses/csdl/csdl-singleton.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-structural-property.js → esm2020/lib/resources/responses/csdl/csdl-structural-property.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-structured-type.js → esm2020/lib/resources/responses/csdl/csdl-structured-type.mjs} +0 -0
- package/{esm2015/lib/resources/responses/csdl/csdl-type-definition.js → esm2020/lib/resources/responses/csdl/csdl-type-definition.mjs} +0 -0
- package/{esm2015/lib/resources/responses/index.js → esm2020/lib/resources/responses/index.mjs} +0 -0
- package/esm2020/lib/resources/responses/metadata.mjs +547 -0
- package/{esm2015/lib/resources/responses/options.js → esm2020/lib/resources/responses/options.mjs} +0 -0
- package/{esm2015/lib/resources/responses/response.js → esm2020/lib/resources/responses/response.mjs} +0 -0
- package/{esm2015/lib/resources/responses/types.js → esm2020/lib/resources/responses/types.mjs} +0 -0
- package/esm2020/lib/resources/types/action.mjs +101 -0
- package/esm2020/lib/resources/types/batch.mjs +309 -0
- package/esm2020/lib/resources/types/count.mjs +27 -0
- package/esm2020/lib/resources/types/entity-set.mjs +94 -0
- package/esm2020/lib/resources/types/entity.mjs +106 -0
- package/esm2020/lib/resources/types/function.mjs +137 -0
- package/{esm2015/lib/resources/types/index.js → esm2020/lib/resources/types/index.mjs} +0 -0
- package/esm2020/lib/resources/types/media.mjs +41 -0
- package/esm2020/lib/resources/types/metadata.mjs +30 -0
- package/esm2020/lib/resources/types/navigation-property.mjs +226 -0
- package/esm2020/lib/resources/types/options.mjs +2 -0
- package/esm2020/lib/resources/types/property.mjs +183 -0
- package/esm2020/lib/resources/types/reference.mjs +85 -0
- package/esm2020/lib/resources/types/singleton.mjs +126 -0
- package/esm2020/lib/resources/types/value.mjs +41 -0
- package/esm2020/lib/schema/annotation.mjs +37 -0
- package/esm2020/lib/schema/callable.mjs +62 -0
- package/esm2020/lib/schema/element.mjs +51 -0
- package/esm2020/lib/schema/entity-container.mjs +9 -0
- package/esm2020/lib/schema/entity-set.mjs +9 -0
- package/esm2020/lib/schema/enum-type.mjs +71 -0
- package/{esm2015/lib/schema/index.js → esm2020/lib/schema/index.mjs} +2 -1
- package/esm2020/lib/schema/parsers/callable.mjs +113 -0
- package/esm2020/lib/schema/parsers/edm.mjs +95 -0
- package/esm2020/lib/schema/parsers/enum-type.mjs +107 -0
- package/esm2020/lib/schema/parsers/index.mjs +5 -0
- package/esm2020/lib/schema/parsers/structured-type.mjs +412 -0
- package/esm2020/lib/schema/schema.mjs +61 -0
- package/esm2020/lib/schema/structured-type.mjs +198 -0
- package/esm2020/lib/services/base.mjs +29 -0
- package/esm2020/lib/services/entity-set.mjs +143 -0
- package/esm2020/lib/services/entity.mjs +12 -0
- package/{esm2015/lib/services/factory.js → esm2020/lib/services/factory.mjs} +3 -3
- package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
- package/esm2020/lib/services/singleton.mjs +48 -0
- package/{esm2015/lib/settings.js → esm2020/lib/settings.mjs} +1 -1
- package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
- package/esm2020/lib/types.mjs +37 -0
- package/esm2020/lib/utils/arraybuffers.mjs +46 -0
- package/{esm2015/lib/utils/dates.js → esm2020/lib/utils/dates.mjs} +0 -0
- package/esm2020/lib/utils/durations.mjs +40 -0
- package/{esm2015/lib/utils/enums.js → esm2020/lib/utils/enums.mjs} +0 -0
- package/esm2020/lib/utils/http.mjs +93 -0
- package/esm2020/lib/utils/index.mjs +10 -0
- package/esm2020/lib/utils/objects.mjs +195 -0
- package/esm2020/lib/utils/odata.mjs +22 -0
- package/esm2020/lib/utils/strings.mjs +20 -0
- package/esm2020/lib/utils/types.mjs +134 -0
- package/{esm2015/lib/utils/urls.js → esm2020/lib/utils/urls.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{angular-odata.js → angular-odata.mjs} +4508 -3427
- package/fesm2015/angular-odata.mjs.map +1 -0
- package/fesm2020/angular-odata.mjs +10510 -0
- package/fesm2020/angular-odata.mjs.map +1 -0
- package/lib/api.d.ts +14 -14
- package/lib/cache/cache.d.ts +2 -2
- package/lib/cache/storage.d.ts +1 -1
- package/lib/client.d.ts +60 -9
- package/lib/constants.d.ts +5 -2
- package/lib/index.d.ts +0 -1
- package/lib/models/collection.d.ts +30 -42
- package/lib/models/model.d.ts +37 -30
- package/lib/models/options.d.ts +30 -38
- package/lib/module.d.ts +1 -1
- package/lib/options.d.ts +47 -0
- package/lib/resources/index.d.ts +2 -3
- package/lib/resources/path/handlers.d.ts +27 -0
- package/lib/resources/path/index.d.ts +2 -0
- package/lib/resources/{path-segments.d.ts → path/segments.d.ts} +4 -16
- package/lib/resources/{builder.d.ts → query/builder.d.ts} +12 -7
- package/lib/resources/query/expressions/base.d.ts +19 -0
- package/lib/resources/query/expressions/compute.d.ts +26 -0
- package/lib/resources/query/expressions/expand.d.ts +40 -0
- package/lib/resources/query/expressions/filter.d.ts +58 -0
- package/lib/resources/query/expressions/index.d.ts +6 -0
- package/lib/resources/query/expressions/orderby.d.ts +37 -0
- package/lib/resources/query/expressions/search.d.ts +47 -0
- package/lib/resources/query/expressions/select.d.ts +21 -0
- package/lib/resources/query/expressions/syntax.d.ts +177 -0
- package/lib/resources/query/handlers.d.ts +104 -0
- package/lib/resources/query/index.d.ts +3 -0
- package/lib/resources/query/options.d.ts +38 -0
- package/lib/resources/request.d.ts +4 -3
- package/lib/resources/resource.d.ts +42 -48
- package/lib/resources/types/action.d.ts +14 -61
- package/lib/resources/types/batch.d.ts +16 -3
- package/lib/resources/types/count.d.ts +9 -17
- package/lib/resources/types/entity-set.d.ts +12 -51
- package/lib/resources/types/entity.d.ts +13 -31
- package/lib/resources/types/function.d.ts +13 -60
- package/lib/resources/types/media.d.ts +9 -8
- package/lib/resources/types/metadata.d.ts +3 -5
- package/lib/resources/types/navigation-property.d.ts +74 -65
- package/lib/resources/types/options.d.ts +1 -1
- package/lib/resources/types/property.d.ts +49 -57
- package/lib/resources/types/reference.d.ts +65 -9
- package/lib/resources/types/singleton.d.ts +53 -31
- package/lib/resources/types/value.d.ts +16 -7
- package/lib/schema/annotation.d.ts +18 -0
- package/lib/schema/callable.d.ts +4 -20
- package/lib/schema/element.d.ts +39 -0
- package/lib/schema/entity-container.d.ts +2 -12
- package/lib/schema/entity-set.d.ts +2 -18
- package/lib/schema/enum-type.d.ts +19 -25
- package/lib/schema/index.d.ts +1 -0
- package/lib/{parsers → schema/parsers}/callable.d.ts +2 -2
- package/lib/schema/parsers/edm.d.ts +4 -0
- package/lib/{parsers → schema/parsers}/enum-type.d.ts +12 -11
- package/lib/{parsers → schema/parsers}/index.d.ts +0 -0
- package/lib/{parsers → schema/parsers}/structured-type.d.ts +12 -12
- package/lib/schema/schema.d.ts +3 -10
- package/lib/schema/structured-type.d.ts +65 -27
- package/lib/services/base.d.ts +2 -2
- package/lib/services/entity-set.d.ts +5 -2
- package/lib/services/entity.d.ts +4 -1
- package/lib/services/singleton.d.ts +5 -2
- package/lib/settings.d.ts +5 -5
- package/lib/types.d.ts +1 -0
- package/lib/utils/arraybuffers.d.ts +4 -0
- package/lib/{parsers/edm.d.ts → utils/durations.d.ts} +3 -3
- package/lib/utils/http.d.ts +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/objects.d.ts +1 -0
- package/lib/utils/strings.d.ts +1 -0
- package/lib/utils/types.d.ts +2 -0
- package/package.json +21 -8
- package/bundles/angular-odata.umd.js +0 -11048
- package/bundles/angular-odata.umd.js.map +0 -1
- package/esm2015/lib/api.js +0 -297
- package/esm2015/lib/client.js +0 -221
- package/esm2015/lib/helper.js +0 -271
- package/esm2015/lib/index.js +0 -21
- package/esm2015/lib/models/collection.js +0 -687
- package/esm2015/lib/models/model.js +0 -423
- package/esm2015/lib/models/options.js +0 -909
- package/esm2015/lib/options.js +0 -31
- package/esm2015/lib/parsers/callable.js +0 -107
- package/esm2015/lib/parsers/edm.js +0 -192
- package/esm2015/lib/parsers/enum-type.js +0 -102
- package/esm2015/lib/parsers/index.js +0 -5
- package/esm2015/lib/parsers/structured-type.js +0 -389
- package/esm2015/lib/resources/builder.js +0 -537
- package/esm2015/lib/resources/index.js +0 -8
- package/esm2015/lib/resources/path-segments.js +0 -156
- package/esm2015/lib/resources/query-options.js +0 -157
- package/esm2015/lib/resources/request.js +0 -149
- package/esm2015/lib/resources/resource.js +0 -337
- package/esm2015/lib/resources/responses/annotations.js +0 -121
- package/esm2015/lib/resources/responses/metadata.js +0 -548
- package/esm2015/lib/resources/types/action.js +0 -180
- package/esm2015/lib/resources/types/batch.js +0 -288
- package/esm2015/lib/resources/types/count.js +0 -55
- package/esm2015/lib/resources/types/entity-set.js +0 -169
- package/esm2015/lib/resources/types/entity.js +0 -170
- package/esm2015/lib/resources/types/function.js +0 -205
- package/esm2015/lib/resources/types/media.js +0 -47
- package/esm2015/lib/resources/types/metadata.js +0 -36
- package/esm2015/lib/resources/types/navigation-property.js +0 -232
- package/esm2015/lib/resources/types/options.js +0 -2
- package/esm2015/lib/resources/types/property.js +0 -195
- package/esm2015/lib/resources/types/reference.js +0 -50
- package/esm2015/lib/resources/types/singleton.js +0 -159
- package/esm2015/lib/resources/types/value.js +0 -30
- package/esm2015/lib/schema/annotation.js +0 -7
- package/esm2015/lib/schema/callable.js +0 -82
- package/esm2015/lib/schema/entity-container.js +0 -22
- package/esm2015/lib/schema/entity-set.js +0 -33
- package/esm2015/lib/schema/enum-type.js +0 -101
- package/esm2015/lib/schema/schema.js +0 -60
- package/esm2015/lib/schema/structured-type.js +0 -148
- package/esm2015/lib/services/base.js +0 -23
- package/esm2015/lib/services/entity-set.js +0 -143
- package/esm2015/lib/services/entity.js +0 -10
- package/esm2015/lib/services/singleton.js +0 -46
- package/esm2015/lib/types.js +0 -37
- package/esm2015/lib/utils/http.js +0 -89
- package/esm2015/lib/utils/index.js +0 -9
- package/esm2015/lib/utils/objects.js +0 -139
- package/esm2015/lib/utils/odata.js +0 -21
- package/esm2015/lib/utils/strings.js +0 -13
- package/esm2015/lib/utils/types.js +0 -103
- package/fesm2015/angular-odata.js.map +0 -1
- package/lib/resources/query-options.d.ts +0 -57
|
@@ -201,4 +201,4 @@ export class ODataSettings {
|
|
|
201
201
|
return values[0];
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUtqQyxNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUFZLEdBQUcsT0FBb0I7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO2dCQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7U0FDaEU7UUFDRCxtREFBbUQ7UUFDbkQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsUUFFVDtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FB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QUM7YUFDekMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNyQixNQUFNLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNuQixNQUFNLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBOEIsQ0FBQztJQUNoRCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlDb25maWcsIFBhcnNlciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgT0RhdGFDYWxsYWJsZSxcbiAgT0RhdGFFbnRpdHlTZXQsXG4gIE9EYXRhRW51bVR5cGUsXG4gIE9EYXRhU3RydWN0dXJlZFR5cGUsXG59IGZyb20gJy4vc2NoZW1hJztcbmltcG9ydCB7IE9EYXRhQ29sbGVjdGlvbiwgT0RhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcblxuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2VudGl0eSc7XG5pbXBvcnQgeyBPRGF0YVJlcXVlc3QgfSBmcm9tICcuL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YVNldHRpbmdzIHtcbiAgYXBpczogT0RhdGFBcGlbXTtcbiAgY29uc3RydWN0b3IoLi4uY29uZmlnczogQXBpQ29uZmlnW10pIHtcbiAgICB0aGlzLmFwaXMgPSBjb25maWdzLm1hcCgoY29uZmlnKSA9PiBuZXcgT0RhdGFBcGkoY29uZmlnKSk7XG4gICAgaWYgKHRoaXMuYXBpcy5sZW5ndGggPiAxKSB7XG4gICAgICBpZiAodGhpcy5hcGlzLnNvbWUoKGMpID0+IGMubmFtZSA9PT0gdW5kZWZpbmVkKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdWx0aXBsZSBBUElzOiBOZWVkcyBjb25maWd1cmF0aW9uIG5hbWVzJyk7XG4gICAgICBpZiAodGhpcy5hcGlzLmZpbHRlcigoYykgPT4gYy5kZWZhdWx0KS5sZW5ndGggPiAxKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE5lZWRzIG9ubHkgb25lIGRlZmF1bHQgYXBpJyk7XG4gICAgfVxuICAgIC8vIElmIG5vdCBkZWZhdWx0IHNldHVwIGZpcnN0IGNvbmZpZyBhcyBkZWZhdWx0IGFwaVxuICAgIGlmICh0aGlzLmFwaXMuZXZlcnkoKGMpID0+ICFjLmRlZmF1bHQpKSB0aGlzLmFwaXNbMF0uZGVmYXVsdCA9IHRydWU7XG4gIH1cblxuICBjb25maWd1cmUoc2V0dGluZ3M6IHtcbiAgICByZXF1ZXN0ZXI/OiAocmVxdWVzdDogT0RhdGFSZXF1ZXN0PGFueT4pID0+IE9ic2VydmFibGU8YW55PjtcbiAgfSkge1xuICAgIHRoaXMuYXBpcy5mb3JFYWNoKChhcGkpID0+IGFwaS5jb25maWd1cmUoc2V0dGluZ3MpKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWZhdWx0QXBpKCkge1xuICAgIHJldHVybiB0aGlzLmFwaXMuZmluZCgoYykgPT4gYy5kZWZhdWx0KSBhcyBPRGF0YUFwaTtcbiAgfVxuICBwdWJsaWMgZmluZEFwaUJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlzLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gbmFtZSk7XG4gIH1cbiAgcHVibGljIGFwaUJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhcGkgPSB0aGlzLmZpbmRBcGlCeU5hbWUobmFtZSk7XG4gICAgaWYgKGFwaSA9PT0gdW5kZWZpbmVkKSB0aHJvdyBuZXcgRXJyb3IoYE5vIEFQSSBmb3IgbmFtZTogJHtuYW1lfWApO1xuICAgIHJldHVybiBhcGk7XG4gIH1cbiAgcHVibGljIGZpbmRBcGlGb3JUeXBlcyh0eXBlczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlzLmZpbmQoKGMpID0+XG4gICAgICBjLnNjaGVtYXMuc29tZSgocykgPT4gdHlwZXMuc29tZSgodHlwZSkgPT4gcy5pc05hbWVzcGFjZU9mKHR5cGUpKSlcbiAgICApO1xuICB9XG4gIHB1YmxpYyBmaW5kQXBpRm9yVHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5maW5kQXBpRm9yVHlwZXMoW3R5cGVdKTtcbiAgfVxuICBwdWJsaWMgYXBpRm9yVHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhcGkgPSB0aGlzLmZpbmRBcGlGb3JUeXBlKHR5cGUpO1xuICAgIGlmIChhcGkgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKGBObyBBUEkgZm9yIHR5cGU6ICR7dHlwZX1gKTtcbiAgICByZXR1cm4gYXBpO1xuICB9XG5cbiAgLy8jcmVnaW9uIENvbmZpZ3Mgc2hvcnRjdXRzXG4gIHB1YmxpYyBlbnVtVHlwZUZvclR5cGU8VD4odHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZEVudW1UeXBlRm9yVHlwZTxUPih0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB0aHJvdyBFcnJvcihgTm8gRW51bSBmb3IgdHlwZSAke3R5cGV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFFbnVtVHlwZTxUPjtcbiAgfVxuXG4gIHB1YmxpYyBzdHJ1Y3R1cmVkVHlwZUZvclR5cGU8VD4odHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZFN0cnVjdHVyZWRUeXBlRm9yVHlwZTxUPih0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFN0cnVjdHVyZWQgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhU3RydWN0dXJlZFR5cGU8VD47XG4gIH1cblxuICBwdWJsaWMgY2FsbGFibGVGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZywgYmluZGluZ1R5cGU/OiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kQ2FsbGFibGVGb3JUeXBlPFQ+KHR5cGUsIGJpbmRpbmdUeXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIENhbGxhYmxlIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YUNhbGxhYmxlPFQ+O1xuICB9XG5cbiAgcHVibGljIGVudGl0eVNldEZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZEVudGl0eVNldEZvclR5cGUodHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBFbnRpdHlTZXQgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhRW50aXR5U2V0O1xuICB9XG5cbiAgcHVibGljIHBhcnNlckZvclR5cGU8VD4odHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkucGFyc2VyRm9yVHlwZTxUPih0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFBhcnNlciBmb3IgdHlwZSAke3R5cGV9IHdhcyBmb3VuZGApO1xuICAgIGlmICghdHlwZS5zdGFydHNXaXRoKCdFZG0uJykgJiYgdmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIFBhcnNlcjxUPjtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbEZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZE1vZGVsRm9yVHlwZSh0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB0aHJvdyBFcnJvcihgTm8gTW9kZWwgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YU1vZGVsO1xuICB9XG5cbiAgcHVibGljIGNvbGxlY3Rpb25Gb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRDb2xsZWN0aW9uRm9yVHlwZSh0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIENvbGxlY3Rpb24gZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUNvbGxlY3Rpb247XG4gIH1cblxuICBwdWJsaWMgc2VydmljZUZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZFNlcnZpY2VGb3JUeXBlKHR5cGUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBFcnJvcihgTm8gU2VydmljZSBmb3IgdHlwZSAke3R5cGV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgdHlwZW9mIE9EYXRhRW50aXR5U2VydmljZTtcbiAgfVxuICBwdWJsaWMgc2VydmljZUZvckVudGl0eVR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZFNlcnZpY2VGb3JFbnRpdHlUeXBlKHR5cGUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBFcnJvcihgTm8gU2VydmljZSBmb3IgdHlwZSAke3R5cGV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgdHlwZW9mIE9EYXRhRW50aXR5U2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBlbnVtVHlwZUJ5TmFtZTxUPihuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kRW51bVR5cGVCeU5hbWU8VD4obmFtZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgdGhyb3cgRXJyb3IoYE5vIEVudW0gZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhRW51bVR5cGU8VD47XG4gIH1cblxuICBwdWJsaWMgc3RydWN0dXJlZFR5cGVCeU5hbWU8VD4obmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZFN0cnVjdHVyZWRUeXBlQnlOYW1lPFQ+KG5hbWUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBFcnJvcihgTm8gU3RydWN0dXJlZCBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBTdHJ1Y3R1cmVkOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFTdHJ1Y3R1cmVkVHlwZTxUPjtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsYWJsZUJ5TmFtZTxUPihuYW1lOiBzdHJpbmcsIGJpbmRpbmdUeXBlPzogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZENhbGxhYmxlQnlOYW1lPFQ+KG5hbWUsIGJpbmRpbmdUeXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIENhbGxhYmxlIGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIENhbGxhYmxlOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFDYWxsYWJsZTxUPjtcbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlTZXRCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZEVudGl0eVNldEJ5TmFtZShuYW1lKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIEVudGl0eVNldCBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBFbnRpdHlTZXQ6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YUVudGl0eVNldDtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbEJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kTW9kZWxCeU5hbWUobmFtZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgdGhyb3cgRXJyb3IoYE5vIE1vZGVsIGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFNb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsZWN0aW9uQnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRDb2xsZWN0aW9uQnlOYW1lKG5hbWUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBFcnJvcihgTm8gQ29sbGVjdGlvbiBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgdHlwZW9mIE9EYXRhQ29sbGVjdGlvbjtcbiAgfVxuICBwdWJsaWMgc2VydmljZUJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kU2VydmljZUJ5TmFtZShuYW1lKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFNlcnZpY2UgZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUVudGl0eVNlcnZpY2U7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQVlqQyxNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUFZLEdBQUcsT0FBb0I7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO2dCQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7U0FDaEU7UUFDRCxtREFBbUQ7UUFDbkQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsUUFFVDtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FB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QUM7YUFDekMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNyQixNQUFNLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNuQixNQUFNLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBOEIsQ0FBQztJQUNoRCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4vYXBpJztcbmltcG9ydCB7IE9EYXRhQ29sbGVjdGlvbiwgT0RhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IE9EYXRhUmVxdWVzdCB9IGZyb20gJy4vcmVzb3VyY2VzJztcbmltcG9ydCB7XG4gIE9EYXRhQ2FsbGFibGUsXG4gIE9EYXRhRW50aXR5U2V0LFxuICBPRGF0YUVudW1UeXBlLFxuICBPRGF0YVN0cnVjdHVyZWRUeXBlLFxufSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2VudGl0eSc7XG5pbXBvcnQgeyBBcGlDb25maWcsIFBhcnNlciB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFTZXR0aW5ncyB7XG4gIGFwaXM6IE9EYXRhQXBpW107XG4gIGNvbnN0cnVjdG9yKC4uLmNvbmZpZ3M6IEFwaUNvbmZpZ1tdKSB7XG4gICAgdGhpcy5hcGlzID0gY29uZmlncy5tYXAoKGNvbmZpZykgPT4gbmV3IE9EYXRhQXBpKGNvbmZpZykpO1xuICAgIGlmICh0aGlzLmFwaXMubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuYXBpcy5zb21lKChjKSA9PiBjLm5hbWUgPT09IHVuZGVmaW5lZCkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTXVsdGlwbGUgQVBJczogTmVlZHMgY29uZmlndXJhdGlvbiBuYW1lcycpO1xuICAgICAgaWYgKHRoaXMuYXBpcy5maWx0ZXIoKGMpID0+IGMuZGVmYXVsdCkubGVuZ3RoID4gMSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdWx0aXBsZSBBUElzOiBOZWVkcyBvbmx5IG9uZSBkZWZhdWx0IGFwaScpO1xuICAgIH1cbiAgICAvLyBJZiBub3QgZGVmYXVsdCBzZXR1cCBmaXJzdCBjb25maWcgYXMgZGVmYXVsdCBhcGlcbiAgICBpZiAodGhpcy5hcGlzLmV2ZXJ5KChjKSA9PiAhYy5kZWZhdWx0KSkgdGhpcy5hcGlzWzBdLmRlZmF1bHQgPSB0cnVlO1xuICB9XG5cbiAgY29uZmlndXJlKHNldHRpbmdzOiB7XG4gICAgcmVxdWVzdGVyPzogKHJlcXVlc3Q6IE9EYXRhUmVxdWVzdDxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIH0pIHtcbiAgICB0aGlzLmFwaXMuZm9yRWFjaCgoYXBpKSA9PiBhcGkuY29uZmlndXJlKHNldHRpbmdzKSk7XG4gIH1cblxuICBwdWJsaWMgZGVmYXVsdEFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlzLmZpbmQoKGMpID0+IGMuZGVmYXVsdCkgYXMgT0RhdGFBcGk7XG4gIH1cbiAgcHVibGljIGZpbmRBcGlCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpcy5maW5kKChjKSA9PiBjLm5hbWUgPT09IG5hbWUpO1xuICB9XG4gIHB1YmxpYyBhcGlCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXBpID0gdGhpcy5maW5kQXBpQnlOYW1lKG5hbWUpO1xuICAgIGlmIChhcGkgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKGBObyBBUEkgZm9yIG5hbWU6ICR7bmFtZX1gKTtcbiAgICByZXR1cm4gYXBpO1xuICB9XG4gIHB1YmxpYyBmaW5kQXBpRm9yVHlwZXModHlwZXM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpcy5maW5kKChjKSA9PlxuICAgICAgYy5zY2hlbWFzLnNvbWUoKHMpID0+IHR5cGVzLnNvbWUoKHR5cGUpID0+IHMuaXNOYW1lc3BhY2VPZih0eXBlKSkpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZmluZEFwaUZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFwaUZvclR5cGVzKFt0eXBlXSk7XG4gIH1cbiAgcHVibGljIGFwaUZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXBpID0gdGhpcy5maW5kQXBpRm9yVHlwZSh0eXBlKTtcbiAgICBpZiAoYXBpID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcihgTm8gQVBJIGZvciB0eXBlOiAke3R5cGV9YCk7XG4gICAgcmV0dXJuIGFwaTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBDb25maWdzIHNob3J0Y3V0c1xuICBwdWJsaWMgZW51bVR5cGVGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnVtVHlwZUZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgdGhyb3cgRXJyb3IoYE5vIEVudW0gZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhRW51bVR5cGU8VD47XG4gIH1cblxuICBwdWJsaWMgc3RydWN0dXJlZFR5cGVGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBTdHJ1Y3R1cmVkIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YVN0cnVjdHVyZWRUeXBlPFQ+O1xuICB9XG5cbiAgcHVibGljIGNhbGxhYmxlRm9yVHlwZTxUPih0eXBlOiBzdHJpbmcsIGJpbmRpbmdUeXBlPzogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZENhbGxhYmxlRm9yVHlwZTxUPih0eXBlLCBiaW5kaW5nVHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDYWxsYWJsZSBmb3IgdHlwZSAke3R5cGV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFDYWxsYWJsZTxUPjtcbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlTZXRGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnRpdHlTZXRGb3JUeXBlKHR5cGUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBFcnJvcihgTm8gRW50aXR5U2V0IGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YUVudGl0eVNldDtcbiAgfVxuXG4gIHB1YmxpYyBwYXJzZXJGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLnBhcnNlckZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBQYXJzZXIgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAoIXR5cGUuc3RhcnRzV2l0aCgnRWRtLicpICYmIHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBQYXJzZXI8VD47XG4gIH1cblxuICBwdWJsaWMgbW9kZWxGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRNb2RlbEZvclR5cGUodHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgdGhyb3cgRXJyb3IoYE5vIE1vZGVsIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFNb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsZWN0aW9uRm9yVHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kQ29sbGVjdGlvbkZvclR5cGUodHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDb2xsZWN0aW9uIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFDb2xsZWN0aW9uO1xuICB9XG5cbiAgcHVibGljIHNlcnZpY2VGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTZXJ2aWNlRm9yVHlwZSh0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFNlcnZpY2UgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUVudGl0eVNlcnZpY2U7XG4gIH1cbiAgcHVibGljIHNlcnZpY2VGb3JFbnRpdHlUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTZXJ2aWNlRm9yRW50aXR5VHlwZSh0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFNlcnZpY2UgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUVudGl0eVNlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgZW51bVR5cGVCeU5hbWU8VD4obmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZEVudW1UeXBlQnlOYW1lPFQ+KG5hbWUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHRocm93IEVycm9yKGBObyBFbnVtIGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YUVudW1UeXBlPFQ+O1xuICB9XG5cbiAgcHVibGljIHN0cnVjdHVyZWRUeXBlQnlOYW1lPFQ+KG5hbWU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUJ5TmFtZTxUPihuYW1lKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFN0cnVjdHVyZWQgZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgU3RydWN0dXJlZDogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhU3RydWN0dXJlZFR5cGU8VD47XG4gIH1cblxuICBwdWJsaWMgY2FsbGFibGVCeU5hbWU8VD4obmFtZTogc3RyaW5nLCBiaW5kaW5nVHlwZT86IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRDYWxsYWJsZUJ5TmFtZTxUPihuYW1lLCBiaW5kaW5nVHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDYWxsYWJsZSBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBDYWxsYWJsZTogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhQ2FsbGFibGU8VD47XG4gIH1cblxuICBwdWJsaWMgZW50aXR5U2V0QnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnRpdHlTZXRCeU5hbWUobmFtZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBFbnRpdHlTZXQgZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgRW50aXR5U2V0OiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFFbnRpdHlTZXQ7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZE1vZGVsQnlOYW1lKG5hbWUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHRocm93IEVycm9yKGBObyBNb2RlbCBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgdHlwZW9mIE9EYXRhTW9kZWw7XG4gIH1cblxuICBwdWJsaWMgY29sbGVjdGlvbkJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kQ29sbGVjdGlvbkJ5TmFtZShuYW1lKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIENvbGxlY3Rpb24gZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUNvbGxlY3Rpb247XG4gIH1cbiAgcHVibGljIHNlcnZpY2VCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZFNlcnZpY2VCeU5hbWUobmFtZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBTZXJ2aWNlIGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFFbnRpdHlTZXJ2aWNlO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export var PathSegmentNames;
|
|
2
|
+
(function (PathSegmentNames) {
|
|
3
|
+
PathSegmentNames["batch"] = "batch";
|
|
4
|
+
PathSegmentNames["metadata"] = "metadata";
|
|
5
|
+
PathSegmentNames["entitySet"] = "entitySet";
|
|
6
|
+
PathSegmentNames["singleton"] = "singleton";
|
|
7
|
+
PathSegmentNames["type"] = "type";
|
|
8
|
+
PathSegmentNames["property"] = "property";
|
|
9
|
+
PathSegmentNames["navigationProperty"] = "navigationProperty";
|
|
10
|
+
PathSegmentNames["reference"] = "reference";
|
|
11
|
+
PathSegmentNames["value"] = "value";
|
|
12
|
+
PathSegmentNames["count"] = "count";
|
|
13
|
+
PathSegmentNames["function"] = "function";
|
|
14
|
+
PathSegmentNames["action"] = "action";
|
|
15
|
+
})(PathSegmentNames || (PathSegmentNames = {}));
|
|
16
|
+
export var QueryOptionNames;
|
|
17
|
+
(function (QueryOptionNames) {
|
|
18
|
+
QueryOptionNames["select"] = "select";
|
|
19
|
+
QueryOptionNames["expand"] = "expand";
|
|
20
|
+
QueryOptionNames["compute"] = "compute";
|
|
21
|
+
QueryOptionNames["filter"] = "filter";
|
|
22
|
+
QueryOptionNames["search"] = "search";
|
|
23
|
+
QueryOptionNames["transform"] = "transform";
|
|
24
|
+
QueryOptionNames["orderBy"] = "orderBy";
|
|
25
|
+
QueryOptionNames["top"] = "top";
|
|
26
|
+
QueryOptionNames["skip"] = "skip";
|
|
27
|
+
QueryOptionNames["skiptoken"] = "skiptoken";
|
|
28
|
+
QueryOptionNames["format"] = "format";
|
|
29
|
+
QueryOptionNames["count"] = "count";
|
|
30
|
+
})(QueryOptionNames || (QueryOptionNames = {}));
|
|
31
|
+
export const NONE_PARSER = {
|
|
32
|
+
deserialize: (value) => value,
|
|
33
|
+
serialize: (value) => value,
|
|
34
|
+
encode: (value) => value,
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxDQUFOLElBQVksZ0JBYVg7QUFiRCxXQUFZLGdCQUFnQjtJQUMxQixtQ0FBZSxDQUFBO0lBQ2YseUNBQXFCLENBQUE7SUFDckIsMkNBQXVCLENBQUE7SUFDdkIsMkNBQXVCLENBQUE7SUFDdkIsaUNBQWEsQ0FBQTtJQUNiLHlDQUFxQixDQUFBO0lBQ3JCLDZEQUF5QyxDQUFBO0lBQ3pDLDJDQUF1QixDQUFBO0lBQ3ZCLG1DQUFlLENBQUE7SUFDZixtQ0FBZSxDQUFBO0lBQ2YseUNBQXFCLENBQUE7SUFDckIscUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFhM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFhWDtBQWJELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLHVDQUFtQixDQUFBO0lBQ25CLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLDJDQUF1QixDQUFBO0lBQ3ZCLHVDQUFtQixDQUFBO0lBQ25CLCtCQUFXLENBQUE7SUFDWCxpQ0FBYSxDQUFBO0lBQ2IsMkNBQXVCLENBQUE7SUFDdkIscUNBQWlCLENBQUE7SUFDakIsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBYlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQWEzQjtBQW9FRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLO0lBQ2xDLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSztJQUNoQyxNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUs7Q0FDZixDQUFDO0FBd0dqQixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT0RhdGFWZXJzaW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBPRGF0YVZlcnNpb24gPSAnMi4wJyB8ICczLjAnIHwgJzQuMCc7XG5leHBvcnQgdHlwZSBGZXRjaFBvbGljeSA9XG4gIHwgJ2NhY2hlLWZpcnN0J1xuICB8ICdjYWNoZS1hbmQtbmV0d29yaydcbiAgfCAnbmV0d29yay1vbmx5J1xuICB8ICduby1jYWNoZSdcbiAgfCAnY2FjaGUtb25seSc7XG5leHBvcnQgdHlwZSBPRGF0YU1ldGFkYXRhVHlwZSA9ICdtaW5pbWFsJyB8ICdmdWxsJyB8ICdub25lJztcbmV4cG9ydCB0eXBlIENhY2hlQ2FjaGVhYmlsaXR5ID0gJ3B1YmxpYycgfCAncHJpdmF0ZScgfCAnbm8tY2FjaGUnIHwgJ25vLXN0b3JlJztcblxuZXhwb3J0IGVudW0gUGF0aFNlZ21lbnROYW1lcyB7XG4gIGJhdGNoID0gJ2JhdGNoJyxcbiAgbWV0YWRhdGEgPSAnbWV0YWRhdGEnLFxuICBlbnRpdHlTZXQgPSAnZW50aXR5U2V0JyxcbiAgc2luZ2xldG9uID0gJ3NpbmdsZXRvbicsXG4gIHR5cGUgPSAndHlwZScsXG4gIHByb3BlcnR5ID0gJ3Byb3BlcnR5JyxcbiAgbmF2aWdhdGlvblByb3BlcnR5ID0gJ25hdmlnYXRpb25Qcm9wZXJ0eScsXG4gIHJlZmVyZW5jZSA9ICdyZWZlcmVuY2UnLFxuICB2YWx1ZSA9ICd2YWx1ZScsXG4gIGNvdW50ID0gJ2NvdW50JyxcbiAgZnVuY3Rpb24gPSAnZnVuY3Rpb24nLFxuICBhY3Rpb24gPSAnYWN0aW9uJyxcbn1cblxuZXhwb3J0IGVudW0gUXVlcnlPcHRpb25OYW1lcyB7XG4gIHNlbGVjdCA9ICdzZWxlY3QnLFxuICBleHBhbmQgPSAnZXhwYW5kJyxcbiAgY29tcHV0ZSA9ICdjb21wdXRlJyxcbiAgZmlsdGVyID0gJ2ZpbHRlcicsXG4gIHNlYXJjaCA9ICdzZWFyY2gnLFxuICB0cmFuc2Zvcm0gPSAndHJhbnNmb3JtJyxcbiAgb3JkZXJCeSA9ICdvcmRlckJ5JyxcbiAgdG9wID0gJ3RvcCcsXG4gIHNraXAgPSAnc2tpcCcsXG4gIHNraXB0b2tlbiA9ICdza2lwdG9rZW4nLFxuICBmb3JtYXQgPSAnZm9ybWF0JyxcbiAgY291bnQgPSAnY291bnQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICB2ZXJzaW9uPzogT0RhdGFWZXJzaW9uO1xuICBzdHJpbmdBc0VudW0/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9wdGlvbnMgZXh0ZW5kcyBPcHRpb25zIHtcbiAgcGFyYW1zPzogeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG4gIGhlYWRlcnM/OiB7IFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfTtcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgLy9IZWFkZXJzXG4gIGFjY2VwdD86IHtcbiAgICBleHBvbmVudGlhbERlY2ltYWxzPzogYm9vbGVhbjtcbiAgICBtZXRhZGF0YT86IE9EYXRhTWV0YWRhdGFUeXBlO1xuICAgIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgICBzdHJlYW1pbmc/OiBib29sZWFuO1xuICB9O1xuICBldGFnPzoge1xuICAgIGlmTWF0Y2g/OiBib29sZWFuO1xuICAgIGlmTm9uZU1hdGNoPzogYm9vbGVhbjtcbiAgfTtcbiAgcHJlZmVyPzoge1xuICAgIG1heFBhZ2VTaXplPzogbnVtYmVyO1xuICAgIHJldHVybj86ICdyZXByZXNlbnRhdGlvbicgfCAnbWluaW1hbCc7XG4gICAgY29udGludWVPbkVycm9yPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlQW5ub3RhdGlvbnM/OiBzdHJpbmc7XG4gIH07XG4gIHN0cmlwTWV0YWRhdGE/OiBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uTmFtZXNbXTtcbiAgLy9odHRwczovL2dpdGh1Yi5jb20vT0RhdGEvV2ViQXBpL2lzc3Vlcy8xOTc0XG4gIC8vaHR0cHM6Ly9naXRodWIuY29tL09EYXRhL1dlYkFwaS9pc3N1ZXMvMTY0N1xuICBkZWxldGVSZWZCeT86ICdwYXRoJyB8ICdpZCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uc0hlbHBlciBleHRlbmRzIE9wdGlvbnMge1xuICBoZWxwZXI6IE9EYXRhVmVyc2lvbkhlbHBlcjtcbiAgZXhwb25lbnRpYWxEZWNpbWFscz86IGJvb2xlYW47XG4gIG1ldGFkYXRhPzogT0RhdGFNZXRhZGF0YVR5cGU7XG4gIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgc3RyZWFtaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZU9wdGlvbnMgZXh0ZW5kcyBPcHRpb25zSGVscGVyIHtcbiAgY2FjaGVhYmlsaXR5PzogQ2FjaGVDYWNoZWFiaWxpdHk7XG4gIG1heEFnZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucyBleHRlbmRzIE9wdGlvbnNIZWxwZXIge1xuICBmaWVsZDogU3RydWN0dXJlZFR5cGVGaWVsZENvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZXI8VD4ge1xuICAvLyBEZXNlcmlhbGl6ZSB2YWx1ZS9zIGZyb20gcmVxdWVzdCBib2R5LlxuICBkZXNlcmlhbGl6ZShcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM/OiBPcHRpb25zSGVscGVyIHwgU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnNcbiAgKTogVDtcbiAgLy8gU2VyaWFsaXplIHZhbHVlL3MgZm9yIHJlcXVlc3QgYm9keS5cbiAgc2VyaWFsaXplKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9ucz86IE9wdGlvbnNIZWxwZXIgfCBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9uc1xuICApOiBhbnk7XG4gIC8vRW5jb2RlIHZhbHVlL3MgZm9yIFVSTCBwYXJhbWV0ZXIgb3IgcXVlcnktc3RyaW5nLlxuICBlbmNvZGUodmFsdWU6IGFueSwgb3B0aW9ucz86IE9wdGlvbnNIZWxwZXIgfCBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucyk6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PTkVfUEFSU0VSID0ge1xuICBkZXNlcmlhbGl6ZTogKHZhbHVlOiBhbnkpID0+IHZhbHVlLFxuICBzZXJpYWxpemU6ICh2YWx1ZTogYW55KSA9PiB2YWx1ZSxcbiAgZW5jb2RlOiAodmFsdWU6IGFueSkgPT4gdmFsdWUsXG59IGFzIFBhcnNlcjxhbnk+O1xuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlIHtcbiAgcHV0PFQ+KGtleTogc3RyaW5nLCBwYXlsb2FkOiBULCAuLi5vcHRzOiBhbnlbXSk6IHZvaWQ7XG4gIGdldDxUPihrZXk6IHN0cmluZywgLi4ub3B0czogYW55W10pOiBUIHwgdW5kZWZpbmVkO1xufVxuXG4vLyNyZWdpb24gQ29uZmlnc1xuZXhwb3J0IHR5cGUgQXBpQ29uZmlnID0ge1xuICBzZXJ2aWNlUm9vdFVybDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogT0RhdGFWZXJzaW9uO1xuICBkZWZhdWx0PzogYm9vbGVhbjtcbiAgY3JlYXRpb24/OiBEYXRlO1xuICBjYWNoZT86IENhY2hlO1xuICBlcnJvckhhbmRsZXI/OiAoZXJyb3I6IGFueSwgY2F1Z2h0OiBPYnNlcnZhYmxlPGFueT4pID0+IE9ic2VydmFibGU8bmV2ZXI+O1xuICBvcHRpb25zPzogQXBpT3B0aW9ucztcbiAgcGFyc2Vycz86IHsgW3R5cGU6IHN0cmluZ106IFBhcnNlcjxhbnk+IH07XG4gIHNjaGVtYXM/OiBTY2hlbWFDb25maWdbXTtcbn07XG5leHBvcnQgdHlwZSBBbm5vdGF0aW9uQ29uZmlnID0ge1xuICB0ZXJtOiBzdHJpbmc7XG4gIHN0cmluZz86IHN0cmluZztcbiAgYm9vbD86IGJvb2xlYW47XG4gIGludD86IG51bWJlcjtcbiAgcGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbiAgcHJvcGVydGllcz86IHN0cmluZ1tdO1xufTtcbmV4cG9ydCB0eXBlIFNjaGVtYUNvbmZpZyA9IHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAgZW51bXM/OiBFbnVtVHlwZUNvbmZpZzxhbnk+W107XG4gIGVudGl0aWVzPzogU3RydWN0dXJlZFR5cGVDb25maWc8YW55PltdO1xuICBjYWxsYWJsZXM/OiBDYWxsYWJsZUNvbmZpZ1tdO1xuICBjb250YWluZXJzPzogRW50aXR5Q29udGFpbmVyQ29uZmlnW107XG59O1xuXG5leHBvcnQgdHlwZSBFbnRpdHlDb250YWluZXJDb25maWcgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIGVudGl0eVNldHM/OiBFbnRpdHlTZXRDb25maWdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudW1UeXBlRmllbGRDb25maWcgPSB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbkNvbmZpZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgRW51bVR5cGVDb25maWc8VD4gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZmxhZ3M/OiBib29sZWFuO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAgbWVtYmVyczogeyBbbmFtZTogc3RyaW5nXTogbnVtYmVyIH0gfCB7IFt2YWx1ZTogbnVtYmVyXTogc3RyaW5nIH07XG4gIGZpZWxkczogeyBbbWVtYmVyOiBzdHJpbmddOiBFbnVtVHlwZUZpZWxkQ29uZmlnIH07XG59O1xuXG5leHBvcnQgdHlwZSBTdHJ1Y3R1cmVkVHlwZUZpZWxkQ29uZmlnID0ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlZmF1bHQ/OiBhbnk7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAga2V5PzogYm9vbGVhbjtcbiAgY29sbGVjdGlvbj86IGJvb2xlYW47XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgbmF2aWdhdGlvbj86IGJvb2xlYW47XG4gIHByZWNpc2lvbj86IG51bWJlcjtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIHNjYWxlPzogbnVtYmVyO1xuICByZWZlcmVudGlhbHM/OiB7IHByb3BlcnR5OiBzdHJpbmc7IHJlZmVyZW5jZWRQcm9wZXJ0eTogc3RyaW5nIH1bXTtcbiAgcmVmZXJlbnRpYWw/OiBzdHJpbmc7XG4gIHJlZmVyZW5jZWQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTdHJ1Y3R1cmVkVHlwZUNvbmZpZzxUPiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYXNlPzogc3RyaW5nO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgbW9kZWw/OiB7IG5ldyAoLi4ucGFyYW1zOiBhbnlbXSk6IGFueSB9O1xuICBjb2xsZWN0aW9uPzogeyBuZXcgKC4uLnBhcmFtczogYW55W10pOiBhbnkgfTtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIGtleXM/OiB7IG5hbWU6IHN0cmluZzsgYWxpYXM/OiBzdHJpbmcgfVtdO1xuICBmaWVsZHM6IHsgW1AgaW4ga2V5b2YgVF0/OiBTdHJ1Y3R1cmVkVHlwZUZpZWxkQ29uZmlnIH07XG59O1xuXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXIgPSB7XG4gIHR5cGU6IHN0cmluZztcbiAgbnVsbGFibGU/OiBib29sZWFuO1xuICBjb2xsZWN0aW9uPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGxhYmxlQ29uZmlnID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eVNldFBhdGg/OiBzdHJpbmc7XG4gIGJvdW5kPzogYm9vbGVhbjtcbiAgY29tcG9zYWJsZT86IGJvb2xlYW47XG4gIHBhcmFtZXRlcnM/OiB7IFtuYW1lOiBzdHJpbmddOiBQYXJhbWV0ZXIgfTtcbiAgcmV0dXJuPzogeyB0eXBlOiBzdHJpbmc7IGNvbGxlY3Rpb24/OiBib29sZWFuIH07XG59O1xuZXhwb3J0IHR5cGUgRW50aXR5U2V0Q29uZmlnID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgc2VydmljZTogeyBuZXcgKC4uLnBhcmFtczogYW55W10pOiBhbnkgfTtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG59O1xuLy8jZW5kcmVnaW9uXG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//https://github.com/niklasvh/base64-arraybuffer
|
|
2
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
3
|
+
// Use a lookup table to find the index.
|
|
4
|
+
const lookup = new Uint8Array(256);
|
|
5
|
+
for (var i = 0; i < chars.length; i++) {
|
|
6
|
+
lookup[chars.charCodeAt(i)] = i;
|
|
7
|
+
}
|
|
8
|
+
export const ArrayBuffers = {
|
|
9
|
+
toArrayBuffer(v) {
|
|
10
|
+
var bufferLength = v.length * 0.75, len = v.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
|
|
11
|
+
if (v[v.length - 1] === '=') {
|
|
12
|
+
bufferLength--;
|
|
13
|
+
if (v[v.length - 2] === '=') {
|
|
14
|
+
bufferLength--;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
|
|
18
|
+
for (i = 0; i < len; i += 4) {
|
|
19
|
+
encoded1 = lookup[v.charCodeAt(i)];
|
|
20
|
+
encoded2 = lookup[v.charCodeAt(i + 1)];
|
|
21
|
+
encoded3 = lookup[v.charCodeAt(i + 2)];
|
|
22
|
+
encoded4 = lookup[v.charCodeAt(i + 3)];
|
|
23
|
+
bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
|
|
24
|
+
bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
|
|
25
|
+
bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
|
|
26
|
+
}
|
|
27
|
+
return arraybuffer;
|
|
28
|
+
},
|
|
29
|
+
toString(v) {
|
|
30
|
+
var bytes = new Uint8Array(v), i, len = bytes.length, base64 = '';
|
|
31
|
+
for (i = 0; i < len; i += 3) {
|
|
32
|
+
base64 += chars[bytes[i] >> 2];
|
|
33
|
+
base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
|
|
34
|
+
base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
|
|
35
|
+
base64 += chars[bytes[i + 2] & 63];
|
|
36
|
+
}
|
|
37
|
+
if (len % 3 === 2) {
|
|
38
|
+
base64 = base64.substring(0, base64.length - 1) + '=';
|
|
39
|
+
}
|
|
40
|
+
else if (len % 3 === 1) {
|
|
41
|
+
base64 = base64.substring(0, base64.length - 2) + '==';
|
|
42
|
+
}
|
|
43
|
+
return base64;
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlidWZmZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3V0aWxzL2FycmF5YnVmZmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnREFBZ0Q7QUFDaEQsTUFBTSxLQUFLLEdBQ1Qsa0VBQWtFLENBQUM7QUFFckUsd0NBQXdDO0FBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0NBQ2pDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLGFBQWEsQ0FBQyxDQUFTO1FBQ3JCLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUNoQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFDZCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLENBQUMsRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLENBQUM7UUFFWCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUMzQixZQUFZLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO2dCQUMzQixZQUFZLEVBQUUsQ0FBQzthQUNoQjtTQUNGO1FBRUQsSUFBSSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQzdDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0QyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNCLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXZDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEQsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUN0RDtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBYztRQUNyQixJQUFJLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDM0IsQ0FBQyxFQUNELEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUNsQixNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDcEM7UUFFRCxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN2RDthQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvL2h0dHBzOi8vZ2l0aHViLmNvbS9uaWtsYXN2aC9iYXNlNjQtYXJyYXlidWZmZXJcbmNvbnN0IGNoYXJzID1cbiAgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuXG4vLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguXG5jb25zdCBsb29rdXAgPSBuZXcgVWludDhBcnJheSgyNTYpO1xuZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykge1xuICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpO1xufVxuXG5leHBvcnQgY29uc3QgQXJyYXlCdWZmZXJzID0ge1xuICB0b0FycmF5QnVmZmVyKHY6IHN0cmluZyk6IEFycmF5QnVmZmVyIHtcbiAgICB2YXIgYnVmZmVyTGVuZ3RoID0gdi5sZW5ndGggKiAwLjc1LFxuICAgICAgbGVuID0gdi5sZW5ndGgsXG4gICAgICBpLFxuICAgICAgcCA9IDAsXG4gICAgICBlbmNvZGVkMSxcbiAgICAgIGVuY29kZWQyLFxuICAgICAgZW5jb2RlZDMsXG4gICAgICBlbmNvZGVkNDtcblxuICAgIGlmICh2W3YubGVuZ3RoIC0gMV0gPT09ICc9Jykge1xuICAgICAgYnVmZmVyTGVuZ3RoLS07XG4gICAgICBpZiAodlt2Lmxlbmd0aCAtIDJdID09PSAnPScpIHtcbiAgICAgICAgYnVmZmVyTGVuZ3RoLS07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGFycmF5YnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ1ZmZlckxlbmd0aCksXG4gICAgICBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gNCkge1xuICAgICAgZW5jb2RlZDEgPSBsb29rdXBbdi5jaGFyQ29kZUF0KGkpXTtcbiAgICAgIGVuY29kZWQyID0gbG9va3VwW3YuY2hhckNvZGVBdChpICsgMSldO1xuICAgICAgZW5jb2RlZDMgPSBsb29rdXBbdi5jaGFyQ29kZUF0KGkgKyAyKV07XG4gICAgICBlbmNvZGVkNCA9IGxvb2t1cFt2LmNoYXJDb2RlQXQoaSArIDMpXTtcblxuICAgICAgYnl0ZXNbcCsrXSA9IChlbmNvZGVkMSA8PCAyKSB8IChlbmNvZGVkMiA+PiA0KTtcbiAgICAgIGJ5dGVzW3ArK10gPSAoKGVuY29kZWQyICYgMTUpIDw8IDQpIHwgKGVuY29kZWQzID4+IDIpO1xuICAgICAgYnl0ZXNbcCsrXSA9ICgoZW5jb2RlZDMgJiAzKSA8PCA2KSB8IChlbmNvZGVkNCAmIDYzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyYXlidWZmZXI7XG4gIH0sXG4gIHRvU3RyaW5nKHY6IEFycmF5QnVmZmVyKTogc3RyaW5nIHtcbiAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheSh2KSxcbiAgICAgIGksXG4gICAgICBsZW4gPSBieXRlcy5sZW5ndGgsXG4gICAgICBiYXNlNjQgPSAnJztcblxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMykge1xuICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2ldID4+IDJdO1xuICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaV0gJiAzKSA8PCA0KSB8IChieXRlc1tpICsgMV0gPj4gNCldO1xuICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07XG4gICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaSArIDJdICYgNjNdO1xuICAgIH1cblxuICAgIGlmIChsZW4gJSAzID09PSAyKSB7XG4gICAgICBiYXNlNjQgPSBiYXNlNjQuc3Vic3RyaW5nKDAsIGJhc2U2NC5sZW5ndGggLSAxKSArICc9JztcbiAgICB9IGVsc2UgaWYgKGxlbiAlIDMgPT09IDEpIHtcbiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgJz09JztcbiAgICB9XG4gICAgcmV0dXJuIGJhc2U2NDtcbiAgfSxcbn07XG4iXX0=
|
|
File without changes
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const DURATION_REGEX = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
|
|
2
|
+
export const Durations = {
|
|
3
|
+
toDuration(v) {
|
|
4
|
+
const matches = DURATION_REGEX.exec(v);
|
|
5
|
+
if (!matches || v.length < 3) {
|
|
6
|
+
throw new TypeError(`duration invalid: "${v}". Must be a ISO 8601 duration. See https://en.wikipedia.org/wiki/ISO_8601#Durations`);
|
|
7
|
+
}
|
|
8
|
+
let duration = {};
|
|
9
|
+
duration.sign = matches[1] === '-' ? -1 : 1;
|
|
10
|
+
return [
|
|
11
|
+
'years',
|
|
12
|
+
'months',
|
|
13
|
+
'weeks',
|
|
14
|
+
'days',
|
|
15
|
+
'hours',
|
|
16
|
+
'minutes',
|
|
17
|
+
'seconds',
|
|
18
|
+
].reduce((acc, name, index) => {
|
|
19
|
+
const v = parseFloat(matches[index + 2]);
|
|
20
|
+
if (!Number.isNaN(v))
|
|
21
|
+
acc[name] = v;
|
|
22
|
+
return acc;
|
|
23
|
+
}, duration);
|
|
24
|
+
},
|
|
25
|
+
toString(v) {
|
|
26
|
+
return [
|
|
27
|
+
v.sign === -1 ? '-' : '',
|
|
28
|
+
'P',
|
|
29
|
+
v.years ? v.years + 'Y' : '',
|
|
30
|
+
v.months ? v.months + 'M' : '',
|
|
31
|
+
v.weeks ? v.weeks + 'W' : '',
|
|
32
|
+
v.days ? v.days + 'D' : '',
|
|
33
|
+
'T',
|
|
34
|
+
v.hours ? v.hours + 'H' : '',
|
|
35
|
+
v.minutes ? v.minutes + 'M' : '',
|
|
36
|
+
v.seconds ? v.seconds + 'S' : '',
|
|
37
|
+
].join('');
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3V0aWxzL2R1cmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGNBQWMsR0FDbEIscUtBQXFLLENBQUM7QUFjeEssTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLFVBQVUsQ0FBQyxDQUFTO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksU0FBUyxDQUNqQixzQkFBc0IsQ0FBQyxzRkFBc0YsQ0FDOUcsQ0FBQztTQUNIO1FBQ0QsSUFBSSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxPQUFPO1lBQ0wsT0FBTztZQUNQLFFBQVE7WUFDUixPQUFPO1lBQ1AsTUFBTTtZQUNOLE9BQU87WUFDUCxTQUFTO1lBQ1QsU0FBUztTQUNWLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqQyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLFFBQVEsQ0FBYSxDQUFDO0lBQzNCLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBVztRQUNsQixPQUFPO1lBQ0wsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLEdBQUc7WUFDSCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixHQUFHO1lBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDakMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERVUkFUSU9OX1JFR0VYID1cbiAgL14oLXxcXCspP1AoPzooWy0rXT9bMC05LC5dKilZKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilXKT8oPzooWy0rXT9bMC05LC5dKilEKT8oPzpUKD86KFstK10/WzAtOSwuXSopSCk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopUyk/KT8kLztcblxuLy9odHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnNcbmV4cG9ydCB0eXBlIER1cmF0aW9uID0ge1xuICBzaWduPzogMSB8IC0xO1xuICB5ZWFycz86IG51bWJlcjtcbiAgbW9udGhzPzogbnVtYmVyO1xuICB3ZWVrcz86IG51bWJlcjtcbiAgZGF5cz86IG51bWJlcjtcbiAgaG91cnM/OiBudW1iZXI7XG4gIG1pbnV0ZXM/OiBudW1iZXI7XG4gIHNlY29uZHM/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgRHVyYXRpb25zID0ge1xuICB0b0R1cmF0aW9uKHY6IHN0cmluZyk6IER1cmF0aW9uIHtcbiAgICBjb25zdCBtYXRjaGVzID0gRFVSQVRJT05fUkVHRVguZXhlYyh2KTtcbiAgICBpZiAoIW1hdGNoZXMgfHwgdi5sZW5ndGggPCAzKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICBgZHVyYXRpb24gaW52YWxpZDogXCIke3Z9XCIuIE11c3QgYmUgYSBJU08gODYwMSBkdXJhdGlvbi4gU2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI0R1cmF0aW9uc2BcbiAgICAgICk7XG4gICAgfVxuICAgIGxldCBkdXJhdGlvbjogRHVyYXRpb24gPSB7fTtcbiAgICBkdXJhdGlvbi5zaWduID0gbWF0Y2hlc1sxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgIHJldHVybiBbXG4gICAgICAneWVhcnMnLFxuICAgICAgJ21vbnRocycsXG4gICAgICAnd2Vla3MnLFxuICAgICAgJ2RheXMnLFxuICAgICAgJ2hvdXJzJyxcbiAgICAgICdtaW51dGVzJyxcbiAgICAgICdzZWNvbmRzJyxcbiAgICBdLnJlZHVjZSgoYWNjOiBhbnksIG5hbWUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB2ID0gcGFyc2VGbG9hdChtYXRjaGVzW2luZGV4ICsgMl0pO1xuICAgICAgaWYgKCFOdW1iZXIuaXNOYU4odikpIGFjY1tuYW1lXSA9IHY7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIGR1cmF0aW9uKSBhcyBEdXJhdGlvbjtcbiAgfSxcbiAgdG9TdHJpbmcodjogRHVyYXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICB2LnNpZ24gPT09IC0xID8gJy0nIDogJycsXG4gICAgICAnUCcsXG4gICAgICB2LnllYXJzID8gdi55ZWFycyArICdZJyA6ICcnLFxuICAgICAgdi5tb250aHMgPyB2Lm1vbnRocyArICdNJyA6ICcnLFxuICAgICAgdi53ZWVrcyA/IHYud2Vla3MgKyAnVycgOiAnJyxcbiAgICAgIHYuZGF5cyA/IHYuZGF5cyArICdEJyA6ICcnLFxuICAgICAgJ1QnLFxuICAgICAgdi5ob3VycyA/IHYuaG91cnMgKyAnSCcgOiAnJyxcbiAgICAgIHYubWludXRlcyA/IHYubWludXRlcyArICdNJyA6ICcnLFxuICAgICAgdi5zZWNvbmRzID8gdi5zZWNvbmRzICsgJ1MnIDogJycsXG4gICAgXS5qb2luKCcnKTtcbiAgfSxcbn07XG4iXX0=
|
|
File without changes
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { HttpHeaders, HttpParams } from '@angular/common/http';
|
|
2
|
+
import { BOUNDARY_PREFIX_SUFFIX } from '../constants';
|
|
3
|
+
import { Types } from './types';
|
|
4
|
+
export const Http = {
|
|
5
|
+
//Merge Headers
|
|
6
|
+
mergeHttpHeaders(...values) {
|
|
7
|
+
let headers = new HttpHeaders();
|
|
8
|
+
values.forEach((value) => {
|
|
9
|
+
if (value instanceof HttpHeaders) {
|
|
10
|
+
value.keys().forEach((key) => {
|
|
11
|
+
headers = (value.getAll(key) || []).reduce((acc, v) => acc.append(key, v), headers);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
else if (Types.isPlainObject(value)) {
|
|
15
|
+
Object.entries(value).forEach(([key, value]) => {
|
|
16
|
+
headers = (Array.isArray(value) ? value : [value]).reduce((acc, v) => acc.append(key, v), headers);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
return headers;
|
|
21
|
+
},
|
|
22
|
+
// Merge Params
|
|
23
|
+
mergeHttpParams(...values) {
|
|
24
|
+
let params = new HttpParams();
|
|
25
|
+
values.forEach((value) => {
|
|
26
|
+
if (value instanceof HttpParams) {
|
|
27
|
+
value.keys().forEach((key) => {
|
|
28
|
+
params = (value.getAll(key) || []).reduce((acc, v) => acc.append(key, v), params);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else if (Types.isPlainObject(value)) {
|
|
32
|
+
Object.entries(value).forEach(([key, value]) => {
|
|
33
|
+
params = (Array.isArray(value) ? value : [value]).reduce((acc, v) => acc.append(key, v), params);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return params;
|
|
38
|
+
},
|
|
39
|
+
// Split Params
|
|
40
|
+
splitHttpParams(params, keys) {
|
|
41
|
+
let other = new HttpParams();
|
|
42
|
+
params.keys().forEach((key) => {
|
|
43
|
+
if (keys.includes(key)) {
|
|
44
|
+
other = (params.getAll(key) || []).reduce((acc, v) => acc.append(key, v), other);
|
|
45
|
+
params = params.delete(key);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return [params, other];
|
|
49
|
+
},
|
|
50
|
+
// Without Params
|
|
51
|
+
withoutHttpParams(params, keys) {
|
|
52
|
+
return keys.reduce((acc, key) => acc.delete(key), params);
|
|
53
|
+
},
|
|
54
|
+
resolveHeaderKey(headers, options) {
|
|
55
|
+
if (headers instanceof HttpHeaders) {
|
|
56
|
+
return headers.keys().find((k) => options.indexOf(k) !== -1);
|
|
57
|
+
}
|
|
58
|
+
else if (Types.isPlainObject(headers)) {
|
|
59
|
+
return Object.keys(headers).find((k) => options.indexOf(k) !== -1);
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
},
|
|
63
|
+
headerValue(header) {
|
|
64
|
+
let res = header.split(';')[0].trim();
|
|
65
|
+
res = res.split(':')[1].trim();
|
|
66
|
+
return res;
|
|
67
|
+
},
|
|
68
|
+
parseResponseStatus(statusLine) {
|
|
69
|
+
const status = statusLine.split(' ')[0];
|
|
70
|
+
const code = parseInt(statusLine.split(' ')[1], 10);
|
|
71
|
+
const message = statusLine.split(' ')[2];
|
|
72
|
+
return { status, code, message };
|
|
73
|
+
},
|
|
74
|
+
boundaryDelimiter(contentType) {
|
|
75
|
+
const contentTypeParts = contentType.split(';');
|
|
76
|
+
if (contentTypeParts.length === 2) {
|
|
77
|
+
const boundary = contentType.split(';')[1].trim();
|
|
78
|
+
const boundaryDelimiter = BOUNDARY_PREFIX_SUFFIX + boundary.split('=')[1];
|
|
79
|
+
return boundaryDelimiter;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
return '';
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
boundaryEnd(boundaryDelimiter) {
|
|
86
|
+
if (!boundaryDelimiter.length) {
|
|
87
|
+
return '';
|
|
88
|
+
}
|
|
89
|
+
const boundaryEnd = boundaryDelimiter + BOUNDARY_PREFIX_SUFFIX;
|
|
90
|
+
return boundaryEnd;
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi91dGlscy9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO0lBQ2xCLGVBQWU7SUFDZixnQkFBZ0IsQ0FDZCxHQUFHLE1BQWlFO1FBRXBFLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRTtnQkFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUMzQixPQUFPLEdBQUcsQ0FBRSxLQUFxQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQzlCLE9BQU8sQ0FDUixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7b0JBQzdDLE9BQU8sR0FBRyxDQUFDLEtBQUss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RUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQjtRQUNuQyxNQUFNLGdCQUFnQixHQUFhLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFXLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUQsTUFBTSxpQkFBaUIsR0FDckIsc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRCxPQUFPLGlCQUFpQixDQUFDO1NBQzFCO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxpQkFBeUI7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUM3QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsTUFBTSxXQUFXLEdBQVcsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7UUFDdkUsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgQk9VTkRBUllfUFJFRklYX1NVRkZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUeXBlcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgSHR0cCA9IHtcbiAgLy9NZXJnZSBIZWFkZXJzXG4gIG1lcmdlSHR0cEhlYWRlcnMoXG4gICAgLi4udmFsdWVzOiAoSHR0cEhlYWRlcnMgfCB7IFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0pW11cbiAgKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBIdHRwSGVhZGVycykge1xuICAgICAgICB2YWx1ZS5rZXlzKCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaGVhZGVycyA9ICgodmFsdWUgYXMgSHR0cEhlYWRlcnMpLmdldEFsbChrZXkpIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKFR5cGVzLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBoZWFkZXJzID0gKEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH0sXG5cbiAgLy8gTWVyZ2UgUGFyYW1zXG4gIG1lcmdlSHR0cFBhcmFtcyhcbiAgICAuLi52YWx1ZXM6IChIdHRwUGFyYW1zIHwgeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0pW11cbiAgKTogSHR0cFBhcmFtcyB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKSB7XG4gICAgICAgIHZhbHVlLmtleXMoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBwYXJhbXMgPSAoKHZhbHVlIGFzIEh0dHBQYXJhbXMpLmdldEFsbChrZXkpIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoVHlwZXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIHBhcmFtcyA9IChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSkucmVkdWNlKFxuICAgICAgICAgICAgKGFjYywgdikgPT4gYWNjLmFwcGVuZChrZXksIHYpLFxuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfSxcblxuICAvLyBTcGxpdCBQYXJhbXNcbiAgc3BsaXRIdHRwUGFyYW1zKFxuICAgIHBhcmFtczogSHR0cFBhcmFtcyxcbiAgICBrZXlzOiBzdHJpbmdbXVxuICApOiBbSHR0cFBhcmFtcywgSHR0cFBhcmFtc10ge1xuICAgIGxldCBvdGhlciA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zLmtleXMoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmIChrZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgb3RoZXIgPSAocGFyYW1zLmdldEFsbChrZXkpIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgdikgPT4gYWNjLmFwcGVuZChrZXksIHYpLFxuICAgICAgICAgIG90aGVyXG4gICAgICAgICk7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5kZWxldGUoa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gW3BhcmFtcywgb3RoZXJdO1xuICB9LFxuXG4gIC8vIFdpdGhvdXQgUGFyYW1zXG4gIHdpdGhvdXRIdHRwUGFyYW1zKHBhcmFtczogSHR0cFBhcmFtcywga2V5czogc3RyaW5nW10pOiBIdHRwUGFyYW1zIHtcbiAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiBhY2MuZGVsZXRlKGtleSksIHBhcmFtcyk7XG4gIH0sXG5cbiAgcmVzb2x2ZUhlYWRlcktleShcbiAgICBoZWFkZXJzOiBIdHRwSGVhZGVycyB8IHsgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9LFxuICAgIG9wdGlvbnM6IHN0cmluZ1tdXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBIdHRwSGVhZGVycykge1xuICAgICAgcmV0dXJuIGhlYWRlcnMua2V5cygpLmZpbmQoKGspID0+IG9wdGlvbnMuaW5kZXhPZihrKSAhPT0gLTEpO1xuICAgIH0gZWxzZSBpZiAoVHlwZXMuaXNQbGFpbk9iamVjdChoZWFkZXJzKSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKGspID0+IG9wdGlvbnMuaW5kZXhPZihrKSAhPT0gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9LFxuXG4gIGhlYWRlclZhbHVlKGhlYWRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzOiBzdHJpbmcgPSBoZWFkZXIuc3BsaXQoJzsnKVswXS50cmltKCk7XG4gICAgcmVzID0gcmVzLnNwbGl0KCc6JylbMV0udHJpbSgpO1xuICAgIHJldHVybiByZXM7XG4gIH0sXG5cbiAgcGFyc2VSZXNwb25zZVN0YXR1cyhzdGF0dXNMaW5lOiBzdHJpbmcpOiB7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgY29kZTogbnVtYmVyO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgfSB7XG4gICAgY29uc3Qgc3RhdHVzID0gc3RhdHVzTGluZS5zcGxpdCgnICcpWzBdO1xuICAgIGNvbnN0IGNvZGUgPSBwYXJzZUludChzdGF0dXNMaW5lLnNwbGl0KCcgJylbMV0sIDEwKTtcbiAgICBjb25zdCBtZXNzYWdlID0gc3RhdHVzTGluZS5zcGxpdCgnICcpWzJdO1xuICAgIHJldHVybiB7IHN0YXR1cywgY29kZSwgbWVzc2FnZSB9O1xuICB9LFxuXG4gIGJvdW5kYXJ5RGVsaW1pdGVyKGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlUGFydHM6IHN0cmluZ1tdID0gY29udGVudFR5cGUuc3BsaXQoJzsnKTtcbiAgICBpZiAoY29udGVudFR5cGVQYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIGNvbnN0IGJvdW5kYXJ5OiBzdHJpbmcgPSBjb250ZW50VHlwZS5zcGxpdCgnOycpWzFdLnRyaW0oKTtcbiAgICAgIGNvbnN0IGJvdW5kYXJ5RGVsaW1pdGVyOiBzdHJpbmcgPVxuICAgICAgICBCT1VOREFSWV9QUkVGSVhfU1VGRklYICsgYm91bmRhcnkuc3BsaXQoJz0nKVsxXTtcbiAgICAgIHJldHVybiBib3VuZGFyeURlbGltaXRlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfSxcblxuICBib3VuZGFyeUVuZChib3VuZGFyeURlbGltaXRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWJvdW5kYXJ5RGVsaW1pdGVyLmxlbmd0aCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBib3VuZGFyeUVuZDogc3RyaW5nID0gYm91bmRhcnlEZWxpbWl0ZXIgKyBCT1VOREFSWV9QUkVGSVhfU1VGRklYO1xuICAgIHJldHVybiBib3VuZGFyeUVuZDtcbiAgfSxcbn07XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './dates';
|
|
2
|
+
export * from './durations';
|
|
3
|
+
export * from './enums';
|
|
4
|
+
export * from './http';
|
|
5
|
+
export * from './objects';
|
|
6
|
+
export * from './odata';
|
|
7
|
+
export * from './strings';
|
|
8
|
+
export * from './types';
|
|
9
|
+
export * from './urls';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGVzJztcbmV4cG9ydCAqIGZyb20gJy4vZHVyYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwJztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL29kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5ncyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXJscyc7XG4iXX0=
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { Types } from './types';
|
|
2
|
+
function forEach(array, iteratee) {
|
|
3
|
+
let index = -1;
|
|
4
|
+
const length = array.length;
|
|
5
|
+
while (++index < length) {
|
|
6
|
+
iteratee(array[index], index);
|
|
7
|
+
}
|
|
8
|
+
return array;
|
|
9
|
+
}
|
|
10
|
+
export const Objects = {
|
|
11
|
+
set(obj, path, value) {
|
|
12
|
+
// Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
|
|
13
|
+
const pathArray = (Types.isArray(path) ? path : path.match(/([^[.\]])+/g));
|
|
14
|
+
pathArray.reduce((acc, key, i) => {
|
|
15
|
+
if (acc[key] === undefined)
|
|
16
|
+
acc[key] = {};
|
|
17
|
+
if (i === pathArray.length - 1)
|
|
18
|
+
acc[key] = value;
|
|
19
|
+
return acc[key];
|
|
20
|
+
}, obj);
|
|
21
|
+
},
|
|
22
|
+
get(obj, path, def) {
|
|
23
|
+
// Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
|
|
24
|
+
const pathArray = (Types.isArray(path) ? path : path.match(/([^[.\]])+/g));
|
|
25
|
+
// Find value if exist return otherwise return undefined value;
|
|
26
|
+
return (pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) || def);
|
|
27
|
+
},
|
|
28
|
+
unset(obj, path) {
|
|
29
|
+
// Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
|
|
30
|
+
const pathArray = (Types.isArray(path) ? path : path.match(/([^[.\]])+/g));
|
|
31
|
+
pathArray.reduce((acc, key, i) => {
|
|
32
|
+
if (i === pathArray.length - 1)
|
|
33
|
+
delete acc[key];
|
|
34
|
+
return acc[key];
|
|
35
|
+
}, obj);
|
|
36
|
+
},
|
|
37
|
+
has(obj, path) {
|
|
38
|
+
// Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
|
|
39
|
+
const pathArray = (Types.isArray(path) ? path : path.match(/([^[.\]])+/g));
|
|
40
|
+
return !!pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj);
|
|
41
|
+
},
|
|
42
|
+
merge(target, source) {
|
|
43
|
+
const merge = (target, source) => {
|
|
44
|
+
for (let attr in source) {
|
|
45
|
+
let value = source[attr];
|
|
46
|
+
if (value !== null && Types.isPlainObject(value) && attr in target) {
|
|
47
|
+
merge(target[attr], value);
|
|
48
|
+
}
|
|
49
|
+
else if (target[attr] !== value) {
|
|
50
|
+
target[attr] = value;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
merge(target, source);
|
|
55
|
+
return target;
|
|
56
|
+
},
|
|
57
|
+
equal(object1, object2) {
|
|
58
|
+
const keys1 = Object.keys(object1);
|
|
59
|
+
const keys2 = Object.keys(object2);
|
|
60
|
+
if (keys1.length !== keys2.length) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
for (const key of keys1) {
|
|
64
|
+
const val1 = object1[key];
|
|
65
|
+
const val2 = object2[key];
|
|
66
|
+
const areObjects = Types.isPlainObject(val1) && Types.isPlainObject(val2);
|
|
67
|
+
if ((areObjects && !Objects.equal(val1, val2)) ||
|
|
68
|
+
(!areObjects && val1 !== val2)) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
},
|
|
74
|
+
difference(object1, object2) {
|
|
75
|
+
if (!object2 || !Types.isPlainObject(object2)) {
|
|
76
|
+
return object1;
|
|
77
|
+
}
|
|
78
|
+
var diffs = {};
|
|
79
|
+
var key;
|
|
80
|
+
var arraysMatch = function (arr1, arr2) {
|
|
81
|
+
if (arr1.length !== arr2.length)
|
|
82
|
+
return false;
|
|
83
|
+
for (var i = 0; i < arr1.length; i++) {
|
|
84
|
+
if (arr1[i] !== arr2[i])
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
return true;
|
|
88
|
+
};
|
|
89
|
+
var compare = function (item1, item2, key) {
|
|
90
|
+
if (item2 === undefined) {
|
|
91
|
+
diffs[key] = null;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (typeof item1 !== typeof item2) {
|
|
95
|
+
diffs[key] = item2;
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (Types.isPlainObject(item1)) {
|
|
99
|
+
var objDiff = Objects.difference(item1, item2);
|
|
100
|
+
if (Object.keys(objDiff).length > 0) {
|
|
101
|
+
diffs[key] = objDiff;
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (Array.isArray(item1)) {
|
|
106
|
+
if (!arraysMatch(item1, item2)) {
|
|
107
|
+
diffs[key] = item2;
|
|
108
|
+
}
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (item1 !== item2) {
|
|
112
|
+
diffs[key] = item2;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
for (key in object1) {
|
|
116
|
+
if (object1.hasOwnProperty(key)) {
|
|
117
|
+
compare(object1[key], object2[key], key);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
for (key in object2) {
|
|
121
|
+
if (object2.hasOwnProperty(key)) {
|
|
122
|
+
if (!object1[key] && object1[key] !== object2[key]) {
|
|
123
|
+
diffs[key] = object2[key];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return diffs;
|
|
128
|
+
},
|
|
129
|
+
resolveKey(key, { single = true } = {}) {
|
|
130
|
+
if (['number', 'string'].indexOf(typeof key) !== -1)
|
|
131
|
+
return key;
|
|
132
|
+
if (!Types.isPlainObject(key)) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
const values = Object.values(key);
|
|
136
|
+
if (values.length === 1 && single) {
|
|
137
|
+
// Single primitive key value
|
|
138
|
+
key = values[0];
|
|
139
|
+
}
|
|
140
|
+
else if (values.some((v) => v === undefined)) {
|
|
141
|
+
// Compose key, needs all values
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
return !Types.isEmpty(key) ? key : undefined;
|
|
145
|
+
},
|
|
146
|
+
clone(target, map) {
|
|
147
|
+
if (map === undefined)
|
|
148
|
+
map = new WeakMap();
|
|
149
|
+
// clone primitive types
|
|
150
|
+
if (typeof target != 'object' || target == null) {
|
|
151
|
+
return target;
|
|
152
|
+
}
|
|
153
|
+
const type = Types.rawType(target);
|
|
154
|
+
let cloneTarget = null;
|
|
155
|
+
if (map.get(target)) {
|
|
156
|
+
return map.get(target);
|
|
157
|
+
}
|
|
158
|
+
map.set(target, cloneTarget);
|
|
159
|
+
if (type != 'Set' && type != 'Map' && type != 'Array' && type != 'Object') {
|
|
160
|
+
return Types.clone(target);
|
|
161
|
+
}
|
|
162
|
+
// clone Set
|
|
163
|
+
if (type == 'Set') {
|
|
164
|
+
cloneTarget = new Set();
|
|
165
|
+
target.forEach((value) => {
|
|
166
|
+
cloneTarget.add(this.clone(value, map));
|
|
167
|
+
});
|
|
168
|
+
return cloneTarget;
|
|
169
|
+
}
|
|
170
|
+
// clone Map
|
|
171
|
+
if (type == 'Map') {
|
|
172
|
+
cloneTarget = new Map();
|
|
173
|
+
target.forEach((value, key) => {
|
|
174
|
+
cloneTarget.set(key, this.clone(value, map));
|
|
175
|
+
});
|
|
176
|
+
return cloneTarget;
|
|
177
|
+
}
|
|
178
|
+
// clone Array
|
|
179
|
+
if (type == 'Array') {
|
|
180
|
+
cloneTarget = new Array();
|
|
181
|
+
forEach(target, (value, index) => {
|
|
182
|
+
cloneTarget[index] = this.clone(value, map);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// clone normal Object
|
|
186
|
+
if (type == 'Object') {
|
|
187
|
+
cloneTarget = new Object();
|
|
188
|
+
forEach(Object.keys(target), (key, index) => {
|
|
189
|
+
cloneTarget[key] = this.clone(target[key], map);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
return cloneTarget;
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi91dGlscy9vYmplY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsU0FBUyxPQUFPLENBQUMsS0FBWSxFQUFFLFFBQTZDO0lBQzFFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2YsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QixPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtRQUN2QixRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQy9CO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBWSxFQUFFLEtBQVU7UUFDdkMseUZBQXlGO1FBQ3pGLE1BQU0sU0FBUyxHQUFHLENBQ2hCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FDOUMsQ0FBQztRQUVYLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7Z0JBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNqRCxPQUFPLEdBQUcsQ0FB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SUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEdBQVEsRUFBRSxFQUFFO2dCQUN0QyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxXQUFXLENBQUM7U0FDcEI7UUFFRCxjQUFjO1FBQ2QsSUFBSSxJQUFJLElBQUksT0FBTyxFQUFFO1lBQ25CLFdBQVcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQy9CLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsc0JBQXNCO1FBQ3RCLElBQUksSUFBSSxJQUFJLFFBQVEsRUFBRTtZQUNwQixXQUFXLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmZ1bmN0aW9uIGZvckVhY2goYXJyYXk6IGFueVtdLCBpdGVyYXRlZTogKHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHZvaWQpIHtcbiAgbGV0IGluZGV4ID0gLTE7XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4KTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbmV4cG9ydCBjb25zdCBPYmplY3RzID0ge1xuICBzZXQob2JqOiBPYmplY3QsIHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIC8vIENoZWNrIGlmIHBhdGggaXMgc3RyaW5nIG9yIGFycmF5LiBSZWdleCA6IGVuc3VyZSB0aGF0IHdlIGRvIG5vdCBoYXZlICcuJyBhbmQgYnJhY2tldHMuXG4gICAgY29uc3QgcGF0aEFycmF5ID0gKFxuICAgICAgVHlwZXMuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLm1hdGNoKC8oW15bLlxcXV0pKy9nKVxuICAgICkgYXMgYW55W107XG5cbiAgICBwYXRoQXJyYXkucmVkdWNlKChhY2MsIGtleSwgaSkgPT4ge1xuICAgICAgaWYgKGFjY1trZXldID09PSB1bmRlZmluZWQpIGFjY1trZXldID0ge307XG4gICAgICBpZiAoaSA9PT0gcGF0aEFycmF5Lmxlbmd0aCAtIDEpIGFjY1trZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gYWNjW2tleV07XG4gICAgfSwgb2JqKTtcbiAgfSxcblxuICBnZXQob2JqOiBPYmplY3QsIHBhdGg6IHN0cmluZywgZGVmPzogYW55KTogYW55IHtcbiAgICAvLyBDaGVjayBpZiBwYXRoIGlzIHN0cmluZyBvciBhcnJheS4gUmVnZXggOiBlbnN1cmUgdGhhdCB3ZSBkbyBub3QgaGF2ZSAnLicgYW5kIGJyYWNrZXRzLlxuICAgIGNvbnN0IHBhdGhBcnJheSA9IChcbiAgICAgIFR5cGVzLmlzQXJyYXkocGF0aCkgPyBwYXRoIDogcGF0aC5tYXRjaCgvKFteWy5cXF1dKSsvZylcbiAgICApIGFzIGFueVtdO1xuICAgIC8vIEZpbmQgdmFsdWUgaWYgZXhpc3QgcmV0dXJuIG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkIHZhbHVlO1xuICAgIHJldHVybiAoXG4gICAgICBwYXRoQXJyYXkucmVkdWNlKChwcmV2T2JqLCBrZXkpID0+IHByZXZPYmogJiYgcHJldk9ialtrZXldLCBvYmopIHx8IGRlZlxuICAgICk7XG4gIH0sXG5cbiAgdW5zZXQob2JqOiBPYmplY3QsIHBhdGg6IHN0cmluZykge1xuICAgIC8vIENoZWNrIGlmIHBhdGggaXMgc3RyaW5nIG9yIGFycmF5LiBSZWdleCA6IGVuc3VyZSB0aGF0IHdlIGRvIG5vdCBoYXZlICcuJyBhbmQgYnJhY2tldHMuXG4gICAgY29uc3QgcGF0aEFycmF5ID0gKFxuICAgICAgVHlwZXMuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLm1hdGNoKC8oW15bLlxcXV0pKy9nKVxuICAgICkgYXMgYW55W107XG5cbiAgICBwYXRoQXJyYXkucmVkdWNlKChhY2MsIGtleSwgaSkgPT4ge1xuICAgICAgaWYgKGkgPT09IHBhdGhBcnJheS5sZW5ndGggLSAxKSBkZWxldGUgYWNjW2tleV07XG4gICAgICByZXR1cm4gYWNjW2tleV07XG4gICAgfSwgb2JqKTtcbiAgfSxcblxuICBoYXMob2JqOiBPYmplY3QsIHBhdGg6IHN0cmluZykge1xuICAgIC8vIENoZWNrIGlmIHBhdGggaXMgc3RyaW5nIG9yIGFycmF5LiBSZWdleCA6IGVuc3VyZSB0aGF0IHdlIGRvIG5vdCBoYXZlICcuJyBhbmQgYnJhY2tldHMuXG4gICAgY29uc3QgcGF0aEFycmF5ID0gKFxuICAgICAgVHlwZXMuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLm1hdGNoKC8oW15bLlxcXV0pKy9nKVxuICAgICkgYXMgYW55W107XG5cbiAgICByZXR1cm4gISFwYXRoQXJyYXkucmVkdWNlKChwcmV2T2JqLCBrZXkpID0+IHByZXZPYmogJiYgcHJldk9ialtrZXldLCBvYmopO1xuICB9LFxuXG4gIG1lcmdlKHRhcmdldDogT2JqZWN0LCBzb3VyY2U6IE9iamVjdCkge1xuICAgIGNvbnN0IG1lcmdlID0gKHRhcmdldDogYW55LCBzb3VyY2U6IHsgW2F0dHI6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICBmb3IgKGxldCBhdHRyIGluIHNvdXJjZSkge1xuICAgICAgICBsZXQgdmFsdWUgPSBzb3VyY2VbYXR0cl07XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KHZhbHVlKSAmJiBhdHRyIGluIHRhcmdldCkge1xuICAgICAgICAgIG1lcmdlKHRhcmdldFthdHRyXSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRhcmdldFthdHRyXSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICB0YXJnZXRbYXR0cl0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgbWVyZ2UodGFyZ2V0LCBzb3VyY2UpO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH0sXG5cbiAgZXF1YWwob2JqZWN0MTogeyBbYXR0cjogc3RyaW5nXTogYW55IH0sIG9iamVjdDI6IHsgW2F0dHI6IHN0cmluZ106IGFueSB9KSB7XG4gICAgY29uc3Qga2V5czEgPSBPYmplY3Qua2V5cyhvYmplY3QxKTtcbiAgICBjb25zdCBrZXlzMiA9IE9iamVjdC5rZXlzKG9iamVjdDIpO1xuXG4gICAgaWYgKGtleXMxLmxlbmd0aCAhPT0ga2V5czIubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5czEpIHtcbiAgICAgIGNvbnN0IHZhbDEgPSBvYmplY3QxW2tleV07XG4gICAgICBjb25zdCB2YWwyID0gb2JqZWN0MltrZXldO1xuICAgICAgY29uc3QgYXJlT2JqZWN0cyA9IFR5cGVzLmlzUGxhaW5PYmplY3QodmFsMSkgJiYgVHlwZXMuaXNQbGFpbk9iamVjdCh2YWwyKTtcbiAgICAgIGlmIChcbiAgICAgICAgKGFyZU9iamVjdHMgJiYgIU9iamVjdHMuZXF1YWwodmFsMSwgdmFsMikpIHx8XG4gICAgICAgICghYXJlT2JqZWN0cyAmJiB2YWwxICE9PSB2YWwyKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG5cbiAgZGlmZmVyZW5jZShcbiAgICBvYmplY3QxOiB7IFthdHRyOiBzdHJpbmddOiBhbnkgfSxcbiAgICBvYmplY3QyOiB7IFthdHRyOiBzdHJpbmddOiBhbnkgfVxuICApIHtcbiAgICBpZiAoIW9iamVjdDIgfHwgIVR5cGVzLmlzUGxhaW5PYmplY3Qob2JqZWN0MikpIHtcbiAgICAgIHJldHVybiBvYmplY3QxO1xuICAgIH1cbiAgICB2YXIgZGlmZnM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgdmFyIGtleTtcbiAgICB2YXIgYXJyYXlzTWF0Y2ggPSBmdW5jdGlvbiAoYXJyMTogYW55W10sIGFycjI6IGFueVtdKSB7XG4gICAgICBpZiAoYXJyMS5sZW5ndGggIT09IGFycjIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoYXJyMVtpXSAhPT0gYXJyMltpXSkgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdmFyIGNvbXBhcmUgPSBmdW5jdGlvbiAoaXRlbTE6IGFueSwgaXRlbTI6IGFueSB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpIHtcbiAgICAgIGlmIChpdGVtMiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRpZmZzW2tleV0gPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlbTEgIT09IHR5cGVvZiBpdGVtMikge1xuICAgICAgICBkaWZmc1trZXldID0gaXRlbTI7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKFR5cGVzLmlzUGxhaW5PYmplY3QoaXRlbTEpKSB7XG4gICAgICAgIHZhciBvYmpEaWZmID0gT2JqZWN0cy5kaWZmZXJlbmNlKGl0ZW0xLCBpdGVtMik7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmpEaWZmKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZGlmZnNba2V5XSA9IG9iakRpZmY7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtMSkpIHtcbiAgICAgICAgaWYgKCFhcnJheXNNYXRjaChpdGVtMSwgaXRlbTIpKSB7XG4gICAgICAgICAgZGlmZnNba2V5XSA9IGl0ZW0yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW0xICE9PSBpdGVtMikge1xuICAgICAgICBkaWZmc1trZXldID0gaXRlbTI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZvciAoa2V5IGluIG9iamVjdDEpIHtcbiAgICAgIGlmIChvYmplY3QxLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29tcGFyZShvYmplY3QxW2tleV0sIG9iamVjdDJba2V5XSwga2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGtleSBpbiBvYmplY3QyKSB7XG4gICAgICBpZiAob2JqZWN0Mi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmICghb2JqZWN0MVtrZXldICYmIG9iamVjdDFba2V5XSAhPT0gb2JqZWN0MltrZXldKSB7XG4gICAgICAgICAgZGlmZnNba2V5XSA9IG9iamVjdDJba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlmZnM7XG4gIH0sXG5cbiAgcmVzb2x2ZUtleShrZXk6IGFueSwgeyBzaW5nbGUgPSB0cnVlIH06IHsgc2luZ2xlPzogYm9vbGVhbiB9ID0ge30pIHtcbiAgICBpZiAoWydudW1iZXInLCAnc3RyaW5nJ10uaW5kZXhPZih0eXBlb2Yga2V5KSAhPT0gLTEpIHJldHVybiBrZXk7XG4gICAgaWYgKCFUeXBlcy5pc1BsYWluT2JqZWN0KGtleSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC52YWx1ZXMoa2V5KTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSAmJiBzaW5nbGUpIHtcbiAgICAgIC8vIFNpbmdsZSBwcmltaXRpdmUga2V5IHZhbHVlXG4gICAgICBrZXkgPSB2YWx1ZXNbMF07XG4gICAgfSBlbHNlIGlmICh2YWx1ZXMuc29tZSgodikgPT4gdiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgLy8gQ29tcG9zZSBrZXksIG5lZWRzIGFsbCB2YWx1ZXNcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiAhVHlwZXMuaXNFbXB0eShrZXkpID8ga2V5IDogdW5kZWZpbmVkO1xuICB9LFxuXG4gIGNsb25lKHRhcmdldDogYW55LCBtYXA/OiBXZWFrTWFwPG9iamVjdCwgYW55Pikge1xuICAgIGlmIChtYXAgPT09IHVuZGVmaW5lZCkgbWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICAvLyBjbG9uZSBwcmltaXRpdmUgdHlwZXNcbiAgICBpZiAodHlwZW9mIHRhcmdldCAhPSAnb2JqZWN0JyB8fCB0YXJnZXQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlID0gVHlwZXMucmF3VHlwZSh0YXJnZXQpO1xuICAgIGxldCBjbG9uZVRhcmdldDogYW55ID0gbnVsbDtcblxuICAgIGlmIChtYXAuZ2V0KHRhcmdldCkpIHtcbiAgICAgIHJldHVybiBtYXAuZ2V0KHRhcmdldCk7XG4gICAgfVxuICAgIG1hcC5zZXQodGFyZ2V0LCBjbG9uZVRhcmdldCk7XG5cbiAgICBpZiAodHlwZSAhPSAnU2V0JyAmJiB0eXBlICE9ICdNYXAnICYmIHR5cGUgIT0gJ0FycmF5JyAmJiB0eXBlICE9ICdPYmplY3QnKSB7XG4gICAgICByZXR1cm4gVHlwZXMuY2xvbmUodGFyZ2V0KTtcbiAgICB9XG5cbiAgICAvLyBjbG9uZSBTZXRcbiAgICBpZiAodHlwZSA9PSAnU2V0Jykge1xuICAgICAgY2xvbmVUYXJnZXQgPSBuZXcgU2V0KCk7XG4gICAgICB0YXJnZXQuZm9yRWFjaCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICBjbG9uZVRhcmdldC5hZGQodGhpcy5jbG9uZSh2YWx1ZSwgbWFwKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjbG9uZVRhcmdldDtcbiAgICB9XG5cbiAgICAvLyBjbG9uZSBNYXBcbiAgICBpZiAodHlwZSA9PSAnTWFwJykge1xuICAgICAgY2xvbmVUYXJnZXQgPSBuZXcgTWFwKCk7XG4gICAgICB0YXJnZXQuZm9yRWFjaCgodmFsdWU6IGFueSwga2V5OiBhbnkpID0+IHtcbiAgICAgICAgY2xvbmVUYXJnZXQuc2V0KGtleSwgdGhpcy5jbG9uZSh2YWx1ZSwgbWFwKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjbG9uZVRhcmdldDtcbiAgICB9XG5cbiAgICAvLyBjbG9uZSBBcnJheVxuICAgIGlmICh0eXBlID09ICdBcnJheScpIHtcbiAgICAgIGNsb25lVGFyZ2V0ID0gbmV3IEFycmF5KCk7XG4gICAgICBmb3JFYWNoKHRhcmdldCwgKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICBjbG9uZVRhcmdldFtpbmRleF0gPSB0aGlzLmNsb25lKHZhbHVlLCBtYXApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gY2xvbmUgbm9ybWFsIE9iamVjdFxuICAgIGlmICh0eXBlID09ICdPYmplY3QnKSB7XG4gICAgICBjbG9uZVRhcmdldCA9IG5ldyBPYmplY3QoKTtcbiAgICAgIGZvckVhY2goT2JqZWN0LmtleXModGFyZ2V0KSwgKGtleSwgaW5kZXgpID0+IHtcbiAgICAgICAgY2xvbmVUYXJnZXRba2V5XSA9IHRoaXMuY2xvbmUodGFyZ2V0W2tleV0sIG1hcCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmVUYXJnZXQ7XG4gIH0sXG59O1xuIl19
|