angular-odata 0.127.0 → 0.130.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 +27 -244
- package/esm2022/lib/annotations.mjs +146 -0
- package/esm2022/lib/api.mjs +238 -173
- package/esm2022/lib/cache/cache.mjs +3 -1
- package/esm2022/lib/cache/memory.mjs +1 -1
- package/esm2022/lib/cache/storage.mjs +3 -1
- package/esm2022/lib/client.mjs +10 -47
- package/esm2022/lib/constants.mjs +4 -1
- package/esm2022/lib/helper.mjs +9 -1
- package/esm2022/lib/index.mjs +4 -1
- package/esm2022/lib/loaders.mjs +27 -17
- package/esm2022/lib/metadata/csdl/csdl-annotation.mjs +273 -0
- package/esm2022/lib/metadata/csdl/csdl-entity-container.mjs +59 -0
- package/esm2022/lib/metadata/csdl/csdl-entity-set.mjs +50 -0
- package/esm2022/lib/metadata/csdl/csdl-enum-type.mjs +74 -0
- package/esm2022/lib/metadata/csdl/csdl-function-action.mjs +204 -0
- package/esm2022/lib/metadata/csdl/csdl-navigation-property-binding.mjs +15 -0
- package/esm2022/lib/metadata/csdl/csdl-reference.mjs +76 -0
- package/esm2022/lib/metadata/csdl/csdl-schema.mjs +87 -0
- package/esm2022/lib/metadata/csdl/csdl-singleton.mjs +37 -0
- package/esm2022/lib/metadata/csdl/csdl-structural-property.mjs +145 -0
- package/esm2022/lib/metadata/csdl/csdl-structured-type.mjs +159 -0
- package/esm2022/lib/metadata/csdl/csdl-type-definition.mjs +46 -0
- package/esm2022/lib/metadata/index.mjs +3 -0
- package/esm2022/lib/metadata/metadata.mjs +41 -0
- package/esm2022/lib/metadata/parser.mjs +564 -0
- package/esm2022/lib/models/collection.mjs +115 -155
- package/esm2022/lib/models/model.mjs +71 -54
- package/esm2022/lib/models/options.mjs +194 -136
- package/esm2022/lib/module.mjs +7 -7
- package/esm2022/lib/options.mjs +57 -2
- package/esm2022/lib/resources/index.mjs +2 -2
- package/esm2022/lib/resources/options.mjs +66 -0
- package/esm2022/lib/resources/path/handlers.mjs +16 -4
- package/esm2022/lib/resources/path/segments.mjs +7 -4
- package/esm2022/lib/resources/query/builder.mjs +17 -8
- package/esm2022/lib/resources/query/expressions/apply.mjs +83 -14
- package/esm2022/lib/resources/query/expressions/base.mjs +2 -1
- package/esm2022/lib/resources/query/expressions/compute.mjs +3 -2
- package/esm2022/lib/resources/query/expressions/count.mjs +3 -1
- package/esm2022/lib/resources/query/expressions/expand.mjs +8 -1
- package/esm2022/lib/resources/query/expressions/filter.mjs +3 -1
- package/esm2022/lib/resources/query/expressions/orderby.mjs +4 -2
- package/esm2022/lib/resources/query/expressions/search.mjs +4 -1
- package/esm2022/lib/resources/query/expressions/select.mjs +8 -2
- package/esm2022/lib/resources/query/expressions/syntax.mjs +37 -7
- package/esm2022/lib/resources/query/handlers.mjs +4 -1
- package/esm2022/lib/resources/query/options.mjs +2 -1
- package/esm2022/lib/resources/request.mjs +19 -5
- package/esm2022/lib/resources/resource.mjs +115 -85
- package/esm2022/lib/resources/response.mjs +180 -0
- package/esm2022/lib/resources/types/action.mjs +31 -26
- package/esm2022/lib/resources/types/batch.mjs +7 -7
- package/esm2022/lib/resources/types/count.mjs +7 -7
- package/esm2022/lib/resources/types/entity-set.mjs +37 -24
- package/esm2022/lib/resources/types/entity.mjs +14 -11
- package/esm2022/lib/resources/types/function.mjs +28 -28
- package/esm2022/lib/resources/types/metadata.mjs +9 -5
- package/esm2022/lib/resources/types/navigation-property.mjs +36 -40
- package/esm2022/lib/resources/types/property.mjs +31 -59
- package/esm2022/lib/resources/types/reference.mjs +3 -4
- package/esm2022/lib/resources/types/singleton.mjs +11 -12
- package/esm2022/lib/resources/types/value.mjs +16 -12
- package/esm2022/lib/schema/annotation.mjs +8 -1
- package/esm2022/lib/schema/callable.mjs +13 -10
- package/esm2022/lib/schema/element.mjs +18 -9
- package/esm2022/lib/schema/entity-container.mjs +6 -2
- package/esm2022/lib/schema/entity-set.mjs +3 -1
- package/esm2022/lib/schema/enum-type.mjs +11 -11
- package/esm2022/lib/schema/index.mjs +2 -1
- package/esm2022/lib/schema/parsers/callable.mjs +23 -7
- package/esm2022/lib/schema/parsers/edm.mjs +6 -4
- package/esm2022/lib/schema/parsers/enum-type.mjs +48 -30
- package/esm2022/lib/schema/parsers/structured-type.mjs +61 -27
- package/esm2022/lib/schema/schema.mjs +25 -34
- package/esm2022/lib/schema/singleton.mjs +11 -0
- package/esm2022/lib/schema/structured-type.mjs +27 -25
- package/esm2022/lib/services/base.mjs +4 -1
- package/esm2022/lib/services/entity-set.mjs +18 -2
- package/esm2022/lib/services/entity.mjs +2 -2
- package/esm2022/lib/services/factory.mjs +16 -10
- package/esm2022/lib/services/singleton.mjs +9 -2
- package/esm2022/lib/settings.mjs +8 -99
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/utils/arraybuffers.mjs +1 -1
- package/esm2022/lib/utils/dates.mjs +1 -1
- package/esm2022/lib/utils/durations.mjs +1 -1
- package/esm2022/lib/utils/enums.mjs +1 -1
- package/esm2022/lib/utils/http.mjs +1 -1
- package/esm2022/lib/utils/objects.mjs +1 -1
- package/esm2022/lib/utils/odata.mjs +1 -1
- package/esm2022/lib/utils/types.mjs +1 -1
- package/fesm2022/angular-odata.mjs +3476 -2075
- package/fesm2022/angular-odata.mjs.map +1 -1
- package/lib/{resources/responses/annotations.d.ts → annotations.d.ts} +2 -2
- package/lib/api.d.ts +29 -26
- package/lib/cache/memory.d.ts +1 -1
- package/lib/client.d.ts +0 -20
- package/lib/constants.d.ts +3 -0
- package/lib/index.d.ts +2 -0
- package/lib/loaders.d.ts +7 -1
- package/lib/metadata/csdl/csdl-annotation.d.ts +159 -0
- package/lib/metadata/csdl/csdl-entity-container.d.ts +31 -0
- package/lib/metadata/csdl/csdl-entity-set.d.ts +25 -0
- package/lib/metadata/csdl/csdl-enum-type.d.ts +37 -0
- package/lib/metadata/csdl/csdl-function-action.d.ts +148 -0
- package/lib/metadata/csdl/csdl-navigation-property-binding.d.ts +12 -0
- package/lib/metadata/csdl/csdl-reference.d.ts +53 -0
- package/lib/metadata/csdl/csdl-schema.d.ts +37 -0
- package/lib/metadata/csdl/csdl-singleton.d.ts +21 -0
- package/lib/metadata/csdl/csdl-structural-property.d.ts +86 -0
- package/lib/metadata/csdl/csdl-structured-type.d.ts +94 -0
- package/lib/metadata/csdl/csdl-type-definition.d.ts +25 -0
- package/lib/metadata/index.d.ts +2 -0
- package/lib/metadata/metadata.d.ts +23 -0
- package/lib/{resources/responses/metadata.d.ts → metadata/parser.d.ts} +19 -7
- package/lib/models/collection.d.ts +6 -4
- package/lib/models/model.d.ts +20 -27
- package/lib/models/options.d.ts +46 -25
- package/lib/resources/index.d.ts +1 -1
- package/lib/resources/{responses/options.d.ts → options.d.ts} +2 -2
- package/lib/resources/path/handlers.d.ts +4 -2
- package/lib/resources/path/segments.d.ts +6 -4
- package/lib/resources/query/builder.d.ts +3 -2
- package/lib/resources/query/expressions/apply.d.ts +37 -15
- package/lib/resources/query/expressions/base.d.ts +1 -1
- package/lib/resources/query/expressions/compute.d.ts +2 -2
- package/lib/resources/query/expressions/count.d.ts +1 -1
- package/lib/resources/query/expressions/expand.d.ts +3 -1
- package/lib/resources/query/expressions/filter.d.ts +1 -1
- package/lib/resources/query/expressions/orderby.d.ts +5 -4
- package/lib/resources/query/expressions/search.d.ts +1 -1
- package/lib/resources/query/expressions/select.d.ts +2 -1
- package/lib/resources/query/expressions/syntax.d.ts +8 -5
- package/lib/resources/query/options.d.ts +3 -3
- package/lib/resources/resource.d.ts +56 -16
- package/lib/resources/{responses/response.d.ts → response.d.ts} +17 -5
- package/lib/resources/types/action.d.ts +12 -10
- package/lib/resources/types/batch.d.ts +3 -2
- package/lib/resources/types/count.d.ts +1 -5
- package/lib/resources/types/entity-set.d.ts +25 -11
- package/lib/resources/types/entity.d.ts +8 -5
- package/lib/resources/types/function.d.ts +12 -12
- package/lib/resources/types/metadata.d.ts +1 -1
- package/lib/resources/types/navigation-property.d.ts +23 -8
- package/lib/resources/types/property.d.ts +27 -9
- package/lib/resources/types/reference.d.ts +2 -4
- package/lib/resources/types/singleton.d.ts +9 -7
- package/lib/resources/types/value.d.ts +2 -6
- package/lib/schema/callable.d.ts +5 -7
- package/lib/schema/element.d.ts +11 -4
- package/lib/schema/entity-container.d.ts +2 -0
- package/lib/schema/enum-type.d.ts +13 -16
- package/lib/schema/index.d.ts +1 -0
- package/lib/schema/parsers/callable.d.ts +7 -8
- package/lib/schema/parsers/enum-type.d.ts +16 -18
- package/lib/schema/parsers/structured-type.d.ts +11 -10
- package/lib/schema/schema.d.ts +6 -9
- package/lib/schema/singleton.d.ts +10 -0
- package/lib/schema/structured-type.d.ts +10 -10
- package/lib/services/entity-set.d.ts +11 -4
- package/lib/services/factory.d.ts +14 -2
- package/lib/services/singleton.d.ts +4 -2
- package/lib/settings.d.ts +0 -10
- package/lib/types.d.ts +32 -12
- package/lib/utils/enums.d.ts +12 -12
- package/lib/utils/http.d.ts +1 -1
- package/lib/utils/objects.d.ts +1 -1
- package/lib/utils/strings.d.ts +2 -2
- package/package.json +5 -1
- package/schematics/apigen/angular/api-config.d.ts +15 -0
- package/schematics/apigen/angular/api-config.js +40 -0
- package/schematics/apigen/angular/api-config.js.map +1 -0
- package/schematics/apigen/angular/base.d.ts +71 -0
- package/schematics/apigen/angular/base.js +240 -0
- package/schematics/apigen/angular/base.js.map +1 -0
- package/schematics/apigen/angular/entity.d.ts +24 -0
- package/schematics/apigen/angular/entity.js +77 -0
- package/schematics/apigen/angular/entity.js.map +1 -0
- package/schematics/apigen/angular/enum.d.ts +25 -0
- package/schematics/apigen/angular/enum.js +57 -0
- package/schematics/apigen/angular/enum.js.map +1 -0
- package/schematics/apigen/angular/import.d.ts +6 -0
- package/schematics/apigen/angular/import.js +18 -0
- package/schematics/apigen/angular/import.js.map +1 -0
- package/schematics/apigen/angular/module.d.ts +18 -0
- package/schematics/apigen/angular/module.js +41 -0
- package/schematics/apigen/angular/module.js.map +1 -0
- package/schematics/apigen/angular/service.d.ts +20 -0
- package/schematics/apigen/angular/service.js +77 -0
- package/schematics/apigen/angular/service.js.map +1 -0
- package/schematics/apigen/files/api-config/__fileName__.ts +11 -0
- package/schematics/apigen/files/entity/__fileName__.ts +7 -0
- package/schematics/apigen/files/entitycontainer-service/__fileName__.ts +18 -0
- package/schematics/apigen/files/entityset-service/__fileName__.ts +27 -0
- package/schematics/apigen/files/enum/__fileName__.ts +4 -0
- package/schematics/apigen/files/index/__fileName__.ts +2 -0
- package/schematics/apigen/files/metadata/metadata.json +1 -0
- package/schematics/apigen/files/module/__fileName__.ts +9 -0
- package/schematics/apigen/files/singleton-service/__fileName__.ts +18 -0
- package/schematics/apigen/index.d.ts +3 -0
- package/schematics/apigen/index.js +150 -0
- package/schematics/apigen/index.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.d.ts +153 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.js +228 -0
- package/schematics/apigen/metadata/csdl/csdl-annotation.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.d.ts +29 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.js +49 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-container.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.d.ts +23 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.js +37 -0
- package/schematics/apigen/metadata/csdl/csdl-entity-set.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.d.ts +34 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.js +50 -0
- package/schematics/apigen/metadata/csdl/csdl-enum-type.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.d.ts +140 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.js +136 -0
- package/schematics/apigen/metadata/csdl/csdl-function-action.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.d.ts +12 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js +17 -0
- package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.d.ts +42 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.js +53 -0
- package/schematics/apigen/metadata/csdl/csdl-reference.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.d.ts +35 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.js +63 -0
- package/schematics/apigen/metadata/csdl/csdl-schema.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.d.ts +21 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.js +33 -0
- package/schematics/apigen/metadata/csdl/csdl-singleton.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.d.ts +79 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.js +103 -0
- package/schematics/apigen/metadata/csdl/csdl-structural-property.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.d.ts +83 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.js +116 -0
- package/schematics/apigen/metadata/csdl/csdl-structured-type.js.map +1 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.d.ts +25 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.js +38 -0
- package/schematics/apigen/metadata/csdl/csdl-type-definition.js.map +1 -0
- package/schematics/apigen/metadata/index.d.ts +1 -0
- package/schematics/apigen/metadata/index.js +18 -0
- package/schematics/apigen/metadata/index.js.map +1 -0
- package/schematics/apigen/metadata/metadata.d.ts +21 -0
- package/schematics/apigen/metadata/metadata.js +36 -0
- package/schematics/apigen/metadata/metadata.js.map +1 -0
- package/schematics/apigen/metadata/parser.d.ts +110 -0
- package/schematics/apigen/metadata/parser.js +568 -0
- package/schematics/apigen/metadata/parser.js.map +1 -0
- package/schematics/apigen/schema.d.ts +9 -0
- package/schematics/apigen/schema.js +3 -0
- package/schematics/apigen/schema.js.map +1 -0
- package/schematics/apigen/schema.json +37 -0
- package/schematics/apigen/utils.d.ts +2 -0
- package/schematics/apigen/utils.js +99 -0
- package/schematics/apigen/utils.js.map +1 -0
- package/schematics/collection.json +14 -0
- package/schematics/ng-add/index.d.ts +2 -0
- package/schematics/ng-add/index.js +12 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/random.d.ts +1 -0
- package/schematics/random.js +604 -0
- package/schematics/random.js.map +1 -0
- package/esm2022/lib/resources/responses/annotations.mjs +0 -140
- package/esm2022/lib/resources/responses/csdl/csdl-annotation.mjs +0 -33
- package/esm2022/lib/resources/responses/csdl/csdl-entity-container.mjs +0 -11
- package/esm2022/lib/resources/responses/csdl/csdl-entity-set.mjs +0 -9
- package/esm2022/lib/resources/responses/csdl/csdl-enum-type.mjs +0 -15
- package/esm2022/lib/resources/responses/csdl/csdl-function-action.mjs +0 -56
- package/esm2022/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs +0 -7
- package/esm2022/lib/resources/responses/csdl/csdl-reference.mjs +0 -23
- package/esm2022/lib/resources/responses/csdl/csdl-schema.mjs +0 -18
- package/esm2022/lib/resources/responses/csdl/csdl-singleton.mjs +0 -8
- package/esm2022/lib/resources/responses/csdl/csdl-structural-property.mjs +0 -39
- package/esm2022/lib/resources/responses/csdl/csdl-structured-type.mjs +0 -34
- package/esm2022/lib/resources/responses/csdl/csdl-type-definition.mjs +0 -14
- package/esm2022/lib/resources/responses/index.mjs +0 -5
- package/esm2022/lib/resources/responses/metadata.mjs +0 -547
- package/esm2022/lib/resources/responses/options.mjs +0 -56
- package/esm2022/lib/resources/responses/response.mjs +0 -174
- package/esm2022/lib/resources/responses/types.mjs +0 -2
- package/lib/resources/responses/csdl/csdl-annotation.d.ts +0 -27
- package/lib/resources/responses/csdl/csdl-entity-container.d.ts +0 -12
- package/lib/resources/responses/csdl/csdl-entity-set.d.ts +0 -8
- package/lib/resources/responses/csdl/csdl-enum-type.d.ts +0 -12
- package/lib/resources/responses/csdl/csdl-function-action.d.ts +0 -49
- package/lib/resources/responses/csdl/csdl-navigation-property-binding.d.ts +0 -5
- package/lib/resources/responses/csdl/csdl-reference.d.ts +0 -18
- package/lib/resources/responses/csdl/csdl-schema.d.ts +0 -20
- package/lib/resources/responses/csdl/csdl-singleton.d.ts +0 -7
- package/lib/resources/responses/csdl/csdl-structural-property.d.ts +0 -31
- package/lib/resources/responses/csdl/csdl-structured-type.d.ts +0 -27
- package/lib/resources/responses/csdl/csdl-type-definition.d.ts +0 -11
- package/lib/resources/responses/index.d.ts +0 -4
- package/lib/resources/responses/types.d.ts +0 -13
|
@@ -133,4 +133,4 @@ export const Types = {
|
|
|
133
133
|
}
|
|
134
134
|
},
|
|
135
135
|
};
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdXRpbHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxXQUFXLENBQUMsS0FBVTtJQUM3QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBVTtJQUMxQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUNuQyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUNwQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxL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cmV0dXJuIE9iamVjdChTeW1ib2wucHJvdG90eXBlLnZhbHVlT2YuY2FsbCh0YXJnZSkpO1xufVxuXG5mdW5jdGlvbiBjbG9uZVJlZyh0YXJnZTogYW55KSB7XG4gIGNvbnN0IHJlRmxhZ3MgPSAvXFx3KiQvO1xuICBjb25zdCByZXN1bHQgPSBuZXcgdGFyZ2UuY29uc3RydWN0b3IodGFyZ2Uuc291cmNlLCByZUZsYWdzLmV4ZWModGFyZ2UpKTtcbiAgcmVzdWx0Lmxhc3RJbmRleCA9IHRhcmdlLmxhc3RJbmRleDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGNvbnN0IFR5cGVzID0ge1xuICByYXdUeXBlKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKS5zbGljZSg4LCAtMSk7XG4gIH0sXG5cbiAgaXNPYmplY3QodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsO1xuICB9LFxuXG4gIGlzUGxhaW5PYmplY3QodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLnJhd1R5cGUodmFsdWUpICE9PSAnT2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gICAgcmV0dXJuIHByb3RvdHlwZSA9PT0gbnVsbCB8fCBwcm90b3R5cGUgPT09IE9iamVjdC5wcm90b3R5cGU7XG4gIH0sXG5cbiAgaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgfSxcblxuICBpc0FycmF5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gIH0sXG5cbiAgaXNNYXAodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJhd1R5cGUodmFsdWUpID09PSAnTWFwJztcbiAgfSxcblxuICBpc0VtcHR5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICAgICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF2YWx1ZS5sZW5ndGgpIHx8XG4gICAgICAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIGlzTmFOKHZhbHVlLnZhbHVlT2YoKSkpIHx8XG4gICAgICAoVHlwZXMuaXNNYXAodmFsdWUpICYmICF2YWx1ZS5zaXplKSB8fFxuICAgICAgKFR5cGVzLmlzQXJyYXkodmFsdWUpICYmICF2YWx1ZS5sZW5ndGgpIHx8XG4gICAgICAoVHlwZXMuaXNGdW5jdGlvbih2YWx1ZS5pc0VtcHR5KSAmJiB2YWx1ZS5pc0VtcHR5KCkpIHx8XG4gICAgICAoVHlwZXMuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICAgICAgKHZhbHVlIGFzIGFueVtdKS5ldmVyeSgodikgPT4gVHlwZXMuaXNFbXB0eSh2KSkpIHx8XG4gICAgICAoVHlwZXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkgJiZcbiAgICAgICAgIU9iamVjdC5rZXlzKHZhbHVlKS5maWx0ZXIoKGspID0+IHZhbHVlLmhhc093blByb3BlcnR5KGspKS5sZW5ndGgpXG4gICAgKTtcbiAgfSxcblxuICBpc0VxdWFsKHZhbHVlMTogYW55LCB2YWx1ZTI6IGFueSkge1xuICAgIGZ1bmN0aW9uIGdldFR5cGUob2JqOiBhbnkpIHtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcmVEYXRlc0VxdWFsKCkge1xuICAgICAgcmV0dXJuIHZhbHVlMS5nZXRUaW1lKCkgPT09IHZhbHVlMi5nZXRUaW1lKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXJlQXJyYXlzQnVmZmVyRXF1YWwoKSB7XG4gICAgICBpZiAodmFsdWUxLmJ5dGVMZW5ndGggIT09IHZhbHVlMi5ieXRlTGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHZpZXcxID0gbmV3IERhdGFWaWV3KHZhbHVlMSk7XG4gICAgICB2YXIgdmlldzIgPSBuZXcgRGF0YVZpZXcodmFsdWUyKTtcblxuICAgICAgdmFyIGkgPSB2YWx1ZTEuYnl0ZUxlbmd0aDtcbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgaWYgKHZpZXcxLmdldFVpbnQ4KGkpICE9PSB2aWV3Mi5nZXRVaW50OChpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcmVBcnJheXNFcXVhbCgpIHtcbiAgICAgIC8vIENoZWNrIGxlbmd0aFxuICAgICAgaWYgKHZhbHVlMS5sZW5ndGggIT09IHZhbHVlMi5sZW5ndGgpIHJldHVybiBmYWxzZTtcblxuICAgICAgLy8gQ2hlY2sgZWFjaCBpdGVtIGluIHRoZSBhcnJheVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZTEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFUeXBlcy5pc0VxdWFsKHZhbHVlMVtpXSwgdmFsdWUyW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcmVPYmplY3RzRXF1YWwoKSB7XG4gICAgICBpZiAoT2JqZWN0LmtleXModmFsdWUxKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHZhbHVlMikubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgIC8vIENoZWNrIGVhY2ggaXRlbSBpbiB0aGUgb2JqZWN0XG4gICAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWUxKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUxLCBrZXkpKSB7XG4gICAgICAgICAgaWYgKCFUeXBlcy5pc0VxdWFsKHZhbHVlMVtrZXldLCB2YWx1ZTJba2V5XSkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcmVGdW5jdGlvbnNFcXVhbCgpIHtcbiAgICAgIHJldHVybiB2YWx1ZTEudG9TdHJpbmcoKSA9PT0gdmFsdWUyLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXJlUHJpbWF0aXZlc0VxdWFsKCkge1xuICAgICAgcmV0dXJuIHZhbHVlMSA9PT0gdmFsdWUyO1xuICAgIH1cblxuICAgIC8vIEdldCB0aGUgb2JqZWN0IHR5cGVcbiAgICBsZXQgdHlwZSA9IGdldFR5cGUodmFsdWUxKTtcblxuICAgIC8vIElmIHRoZSB0d28gaXRlbXMgYXJlIG5vdCB0aGUgc2FtZSB0eXBlLCByZXR1cm4gZmFsc2VcbiAgICBpZiAodHlwZSAhPT0gZ2V0VHlwZSh2YWx1ZTIpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBDb21wYXJlIGJhc2VkIG9uIHR5cGVcbiAgICBpZiAodHlwZSA9PT0gJ2RhdGUnKSByZXR1cm4gYXJlRGF0ZXNFcXVhbCgpO1xuICAgIGlmICh0eXBlID09PSAnYXJyYXlidWZmZXInKSByZXR1cm4gYXJlQXJyYXlzQnVmZmVyRXF1YWwoKTtcbiAgICBpZiAodHlwZSA9PT0gJ2FycmF5JykgcmV0dXJuIGFyZUFycmF5c0VxdWFsKCk7XG4gICAgaWYgKHR5cGUgPT09ICdvYmplY3QnKSByZXR1cm4gYXJlT2JqZWN0c0VxdWFsKCk7XG4gICAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHJldHVybiBhcmVGdW5jdGlvbnNFcXVhbCgpO1xuICAgIHJldHVybiBhcmVQcmltYXRpdmVzRXF1YWwoKTtcbiAgfSxcbiAgY2xvbmUodGFyZ2V0OiBhbnkpIHtcbiAgICBjb25zdCBjb25zdHJGdW4gPSB0YXJnZXQuY29uc3RydWN0b3I7XG4gICAgc3dpdGNoICh0aGlzLnJhd1R5cGUodGFyZ2V0KSkge1xuICAgICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICBjYXNlICdOdW1iZXInOlxuICAgICAgY2FzZSAnU3RyaW5nJzpcbiAgICAgIGNhc2UgJ0Vycm9yJzpcbiAgICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgICByZXR1cm4gbmV3IGNvbnN0ckZ1bih0YXJnZXQpO1xuICAgICAgY2FzZSAnUmVnRXhwJzpcbiAgICAgICAgcmV0dXJuIGNsb25lUmVnKHRhcmdldCk7XG4gICAgICBjYXNlICdTeW1ib2wnOlxuICAgICAgICByZXR1cm4gY2xvbmVTeW1ib2wodGFyZ2V0KTtcbiAgICAgIGNhc2UgJ0Z1bmN0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSxcbn07XG4iXX0=
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdXRpbHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxXQUFXLENBQUMsS0FBVTtJQUM3QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBVTtJQUMxQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUNuQyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxj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QUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGNsb25lU3ltYm9sKHRhcmdlOiBhbnkpIHtcbiAgcmV0dXJuIE9iamVjdChTeW1ib2wucHJvdG90eXBlLnZhbHVlT2YuY2FsbCh0YXJnZSkpO1xufVxuXG5mdW5jdGlvbiBjbG9uZVJlZyh0YXJnZTogYW55KSB7XG4gIGNvbnN0IHJlRmxhZ3MgPSAvXFx3KiQvO1xuICBjb25zdCByZXN1bHQgPSBuZXcgdGFyZ2UuY29uc3RydWN0b3IodGFyZ2Uuc291cmNlLCByZUZsYWdzLmV4ZWModGFyZ2UpKTtcbiAgcmVzdWx0Lmxhc3RJbmRleCA9IHRhcmdlLmxhc3RJbmRleDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGNvbnN0IFR5cGVzID0ge1xuICByYXdUeXBlKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKS5zbGljZSg4LCAtMSk7XG4gIH0sXG5cbiAgaXNPYmplY3QodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsO1xuICB9LFxuXG4gIGlzUGxhaW5PYmplY3QodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLnJhd1R5cGUodmFsdWUpICE9PSAnT2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gICAgcmV0dXJuIHByb3RvdHlwZSA9PT0gbnVsbCB8fCBwcm90b3R5cGUgPT09IE9iamVjdC5wcm90b3R5cGU7XG4gIH0sXG5cbiAgaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgfSxcblxuICBpc0FycmF5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gIH0sXG5cbiAgaXNNYXAodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJhd1R5cGUodmFsdWUpID09PSAnTWFwJztcbiAgfSxcblxuICBpc0VtcHR5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICAgICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF2YWx1ZS5sZW5ndGgpIHx8XG4gICAgICAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIGlzTmFOKHZhbHVlLnZhbHVlT2YoKSkpIHx8XG4gICAgICAoVHlwZXMuaXNNYXAodmFsdWUpICYmICF2YWx1ZS5zaXplKSB8fFxuICAgICAgKFR5cGVzLmlzQXJyYXkodmFsdWUpICYmICF2YWx1ZS5sZW5ndGgpIHx8XG4gICAgICAoVHlwZXMuaXNGdW5jdGlvbih2YWx1ZS5pc0VtcHR5KSAmJiB2YWx1ZS5pc0VtcHR5KCkpIHx8XG4gICAgICAoVHlwZXMuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICAgICAgKHZhbHVlIGFzIGFueVtdKS5ldmVyeSgodikgPT4gVHlwZXMuaXNFbXB0eSh2KSkpIHx8XG4gICAgICAoVHlwZXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkgJiZcbiAgICAgICAgIU9iamVjdC5rZXlzKHZhbHVlKS5maWx0ZXIoKGspID0+IHZhbHVlLmhhc093blByb3BlcnR5KGspKS5sZW5ndGgpXG4gICAgKTtcbiAgfSxcblxuICBpc0VxdWFsKHZhbHVlMTogYW55LCB2YWx1ZTI6IGFueSkge1xuICAgIGZ1bmN0aW9uIGdldFR5cGUob2JqOiBhbnkpIHtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcmVEYXRlc0VxdWFsKCkge1xuICAgICAgcmV0dXJuIHZhbHVlMS5nZXRUaW1lKCkgPT09IHZhbHVlMi5nZXRUaW1lKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXJlQXJyYXlzQnVmZmVyRXF1YWwoKSB7XG4gICAgICBpZiAodmFsdWUxLmJ5dGVMZW5ndGggIT09IHZhbHVlMi5ieXRlTGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHZpZXcxID0gbmV3IERhdGFWaWV3KHZhbHVlMSk7XG4gICAgICB2YXIgdmlldzIgPSBuZXcgRGF0YVZpZXcodmFsdWUyKTtcblxuICAgICAgdmFyIGkgPSB2YWx1ZTEuYnl0ZUxlbmd0aDtcbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgaWYgKHZpZXcxLmdldFVpbnQ4KGkpICE9PSB2aWV3Mi5nZXRVaW50OChpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcmVBcnJheXNFcXVhbCgpIHtcbiAgICAgIC8vIENoZWNrIGxlbmd0aFxuICAgICAgaWYgKHZhbHVlMS5sZW5ndGggIT09IHZhbHVlMi5sZW5ndGgpIHJldHVybiBmYWxzZTtcblxuICAgICAgLy8gQ2hlY2sgZWFjaCBpdGVtIGluIHRoZSBhcnJheVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZTEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFUeXBlcy5pc0VxdWFsKHZhbHVlMVtpXSwgdmFsdWUyW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcmVPYmplY3RzRXF1YWwoKSB7XG4gICAgICBpZiAoT2JqZWN0LmtleXModmFsdWUxKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKHZhbHVlMikubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgIC8vIENoZWNrIGVhY2ggaXRlbSBpbiB0aGUgb2JqZWN0XG4gICAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWUxKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUxLCBrZXkpKSB7XG4gICAgICAgICAgaWYgKCFUeXBlcy5pc0VxdWFsKHZhbHVlMVtrZXldLCB2YWx1ZTJba2V5XSkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiB0cnVlXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcmVGdW5jdGlvbnNFcXVhbCgpIHtcbiAgICAgIHJldHVybiB2YWx1ZTEudG9TdHJpbmcoKSA9PT0gdmFsdWUyLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXJlUHJpbWF0aXZlc0VxdWFsKCkge1xuICAgICAgcmV0dXJuIHZhbHVlMSA9PT0gdmFsdWUyO1xuICAgIH1cblxuICAgIC8vIEdldCB0aGUgb2JqZWN0IHR5cGVcbiAgICBsZXQgdHlwZSA9IGdldFR5cGUodmFsdWUxKTtcblxuICAgIC8vIElmIHRoZSB0d28gaXRlbXMgYXJlIG5vdCB0aGUgc2FtZSB0eXBlLCByZXR1cm4gZmFsc2VcbiAgICBpZiAodHlwZSAhPT0gZ2V0VHlwZSh2YWx1ZTIpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBDb21wYXJlIGJhc2VkIG9uIHR5cGVcbiAgICBpZiAodHlwZSA9PT0gJ2RhdGUnKSByZXR1cm4gYXJlRGF0ZXNFcXVhbCgpO1xuICAgIGlmICh0eXBlID09PSAnYXJyYXlidWZmZXInKSByZXR1cm4gYXJlQXJyYXlzQnVmZmVyRXF1YWwoKTtcbiAgICBpZiAodHlwZSA9PT0gJ2FycmF5JykgcmV0dXJuIGFyZUFycmF5c0VxdWFsKCk7XG4gICAgaWYgKHR5cGUgPT09ICdvYmplY3QnKSByZXR1cm4gYXJlT2JqZWN0c0VxdWFsKCk7XG4gICAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHJldHVybiBhcmVGdW5jdGlvbnNFcXVhbCgpO1xuICAgIHJldHVybiBhcmVQcmltYXRpdmVzRXF1YWwoKTtcbiAgfSxcbiAgY2xvbmUodGFyZ2V0OiBhbnkpIHtcbiAgICBjb25zdCBjb25zdHJGdW4gPSB0YXJnZXQuY29uc3RydWN0b3I7XG4gICAgc3dpdGNoICh0aGlzLnJhd1R5cGUodGFyZ2V0KSkge1xuICAgICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICBjYXNlICdOdW1iZXInOlxuICAgICAgY2FzZSAnU3RyaW5nJzpcbiAgICAgIGNhc2UgJ0Vycm9yJzpcbiAgICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgICByZXR1cm4gbmV3IGNvbnN0ckZ1bih0YXJnZXQpO1xuICAgICAgY2FzZSAnUmVnRXhwJzpcbiAgICAgICAgcmV0dXJuIGNsb25lUmVnKHRhcmdldCk7XG4gICAgICBjYXNlICdTeW1ib2wnOlxuICAgICAgICByZXR1cm4gY2xvbmVTeW1ib2wodGFyZ2V0KTtcbiAgICAgIGNhc2UgJ0Z1bmN0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSxcbn07XG4iXX0=
|