@kubb/agent 5.0.0-alpha.35 → 5.0.0-alpha.38
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/.output/nitro.json +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +1451 -20711
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +3 -14
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/index.mjs +3 -14
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/package.json +2 -77
- package/package.json +6 -20
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/ajv.js +0 -50
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/codegen/code.js +0 -156
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/codegen/index.js +0 -697
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/codegen/scope.js +0 -143
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/errors.js +0 -123
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/index.js +0 -249
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/names.js +0 -29
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/ref_error.js +0 -12
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/resolve.js +0 -155
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/rules.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/util.js +0 -178
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/validate/applicability.js +0 -19
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/validate/boolSchema.js +0 -50
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/validate/dataType.js +0 -203
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/validate/defaults.js +0 -35
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/validate/index.js +0 -534
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/validate/keyword.js +0 -124
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/compile/validate/subschema.js +0 -81
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/core.js +0 -632
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/refs/data.json +0 -13
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/refs/json-schema-draft-07.json +0 -151
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/runtime/equal.js +0 -7
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/runtime/ucs2length.js +0 -24
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/runtime/uri.js +0 -6
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/runtime/validation_error.js +0 -11
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/additionalItems.js +0 -49
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/additionalProperties.js +0 -107
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/allOf.js +0 -23
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/anyOf.js +0 -12
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/contains.js +0 -95
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/dependencies.js +0 -85
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/if.js +0 -66
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/index.js +0 -44
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/items.js +0 -52
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/items2020.js +0 -30
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/not.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/oneOf.js +0 -60
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/patternProperties.js +0 -75
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/prefixItems.js +0 -12
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/properties.js +0 -55
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/propertyNames.js +0 -38
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/applicator/thenElse.js +0 -13
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/code.js +0 -138
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/core/id.js +0 -10
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/core/index.js +0 -16
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/core/ref.js +0 -132
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/discriminator/index.js +0 -139
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/discriminator/types.js +0 -9
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/draft7.js +0 -17
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/format/format.js +0 -92
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/format/index.js +0 -6
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/metadata.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/oasContext.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/const.js +0 -25
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/enum.js +0 -48
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/index.js +0 -37
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/limitItems.js +0 -24
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/limitLength.js +0 -27
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/limitNumber.js +0 -27
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/limitProperties.js +0 -24
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/multipleOf.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/pattern.js +0 -33
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/readOnly.js +0 -20
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/required.js +0 -86
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/uniqueItems.js +0 -64
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/dist/vocabularies/validation/writeOnly.js +0 -20
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.0/package.json +0 -130
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/2020.js +0 -55
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/codegen/code.js +0 -156
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/codegen/index.js +0 -697
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/codegen/scope.js +0 -143
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/errors.js +0 -123
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/index.js +0 -249
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/names.js +0 -29
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/ref_error.js +0 -12
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/resolve.js +0 -155
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/rules.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/util.js +0 -178
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/validate/applicability.js +0 -19
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/validate/boolSchema.js +0 -50
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/validate/dataType.js +0 -203
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/validate/defaults.js +0 -35
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/validate/index.js +0 -534
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/validate/keyword.js +0 -124
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/compile/validate/subschema.js +0 -81
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/core.js +0 -632
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/draft4.js +0 -57
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/data.json +0 -13
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/index.js +0 -30
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/meta/applicator.json +0 -48
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/meta/content.json +0 -17
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/meta/core.json +0 -51
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/meta/format-annotation.json +0 -14
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/meta/meta-data.json +0 -37
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/meta/unevaluated.json +0 -15
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/meta/validation.json +0 -90
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-2020-12/schema.json +0 -55
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/refs/json-schema-draft-04.json +0 -138
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/runtime/equal.js +0 -7
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/runtime/ucs2length.js +0 -24
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/runtime/uri.js +0 -6
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/runtime/validation_error.js +0 -11
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/additionalItems.js +0 -49
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/additionalProperties.js +0 -107
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/allOf.js +0 -23
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/anyOf.js +0 -12
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/contains.js +0 -95
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/dependencies.js +0 -85
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/dependentSchemas.js +0 -11
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/if.js +0 -66
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/index.js +0 -44
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/items.js +0 -52
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/items2020.js +0 -30
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/not.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/oneOf.js +0 -60
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/patternProperties.js +0 -75
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/prefixItems.js +0 -12
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/properties.js +0 -55
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/propertyNames.js +0 -38
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/applicator/thenElse.js +0 -13
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/code.js +0 -138
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/core/id.js +0 -10
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/core/index.js +0 -16
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/core/ref.js +0 -132
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/discriminator/index.js +0 -139
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/discriminator/types.js +0 -9
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/draft2020.js +0 -23
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/draft4.js +0 -29
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/dynamic/dynamicAnchor.js +0 -30
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/dynamic/dynamicRef.js +0 -51
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/dynamic/index.js +0 -9
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/dynamic/recursiveAnchor.js +0 -16
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/dynamic/recursiveRef.js +0 -10
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/format/format.js +0 -92
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/format/index.js +0 -6
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/metadata.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/next.js +0 -8
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/oasContext.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/unevaluated/index.js +0 -7
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/unevaluated/unevaluatedItems.js +0 -40
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/unevaluated/unevaluatedProperties.js +0 -84
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/const.js +0 -25
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/dependentRequired.js +0 -12
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/draft04/limitNumber.js +0 -43
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/draft04/limitNumberExclusive.js +0 -19
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/enum.js +0 -48
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/index.js +0 -37
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/limitContains.js +0 -15
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/limitItems.js +0 -24
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/limitLength.js +0 -27
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/limitNumber.js +0 -27
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/limitProperties.js +0 -24
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/multipleOf.js +0 -26
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/pattern.js +0 -33
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/readOnly.js +0 -20
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/required.js +0 -86
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/uniqueItems.js +0 -64
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/dist/vocabularies/validation/writeOnly.js +0 -20
- package/.output/server/node_modules/.nitro/@redocly/ajv@8.18.3/package.json +0 -130
- package/.output/server/node_modules/.nitro/picomatch@4.0.4/index.js +0 -17
- package/.output/server/node_modules/.nitro/picomatch@4.0.4/lib/constants.js +0 -184
- package/.output/server/node_modules/.nitro/picomatch@4.0.4/lib/parse.js +0 -1386
- package/.output/server/node_modules/.nitro/picomatch@4.0.4/lib/picomatch.js +0 -349
- package/.output/server/node_modules/.nitro/picomatch@4.0.4/lib/scan.js +0 -391
- package/.output/server/node_modules/.nitro/picomatch@4.0.4/lib/utils.js +0 -72
- package/.output/server/node_modules/.nitro/picomatch@4.0.4/package.json +0 -82
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/bundle.js +0 -302
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/dereference.js +0 -289
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/index.js +0 -216
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/normalize-args.js +0 -55
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/options.js +0 -135
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/parse.js +0 -178
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/parsers/binary.js +0 -35
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/parsers/json.js +0 -62
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/parsers/text.js +0 -42
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/parsers/yaml.js +0 -58
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/pointer.js +0 -334
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/ref.js +0 -308
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/refs.js +0 -244
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/resolve-external.js +0 -143
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/resolvers/file.js +0 -81
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/resolvers/http.js +0 -158
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/util/convert-path-to-posix.js +0 -14
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/util/errors.js +0 -170
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/util/is-windows.js +0 -6
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/util/maybe.js +0 -24
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/util/next.js +0 -16
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/util/plugins.js +0 -132
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/dist/lib/util/url.js +0 -491
- package/.output/server/node_modules/@apidevtools/json-schema-ref-parser/package.json +0 -112
- package/.output/server/node_modules/@babel/code-frame/lib/index.js +0 -217
- package/.output/server/node_modules/@babel/code-frame/package.json +0 -32
- package/.output/server/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -70
- package/.output/server/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -57
- package/.output/server/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -35
- package/.output/server/node_modules/@babel/helper-validator-identifier/package.json +0 -31
- package/.output/server/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +0 -6
- package/.output/server/node_modules/@babel/runtime/helpers/arrayWithHoles.js +0 -4
- package/.output/server/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +0 -5
- package/.output/server/node_modules/@babel/runtime/helpers/assertThisInitialized.js +0 -5
- package/.output/server/node_modules/@babel/runtime/helpers/classCallCheck.js +0 -4
- package/.output/server/node_modules/@babel/runtime/helpers/createClass.js +0 -13
- package/.output/server/node_modules/@babel/runtime/helpers/defineProperty.js +0 -10
- package/.output/server/node_modules/@babel/runtime/helpers/get.js +0 -11
- package/.output/server/node_modules/@babel/runtime/helpers/getPrototypeOf.js +0 -6
- package/.output/server/node_modules/@babel/runtime/helpers/inherits.js +0 -14
- package/.output/server/node_modules/@babel/runtime/helpers/interopRequireDefault.js +0 -6
- package/.output/server/node_modules/@babel/runtime/helpers/iterableToArray.js +0 -4
- package/.output/server/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +0 -28
- package/.output/server/node_modules/@babel/runtime/helpers/nonIterableRest.js +0 -4
- package/.output/server/node_modules/@babel/runtime/helpers/nonIterableSpread.js +0 -4
- package/.output/server/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +0 -8
- package/.output/server/node_modules/@babel/runtime/helpers/setPrototypeOf.js +0 -6
- package/.output/server/node_modules/@babel/runtime/helpers/slicedToArray.js +0 -8
- package/.output/server/node_modules/@babel/runtime/helpers/superPropBase.js +0 -6
- package/.output/server/node_modules/@babel/runtime/helpers/toConsumableArray.js +0 -8
- package/.output/server/node_modules/@babel/runtime/helpers/toPrimitive.js +0 -12
- package/.output/server/node_modules/@babel/runtime/helpers/toPropertyKey.js +0 -7
- package/.output/server/node_modules/@babel/runtime/helpers/typeof.js +0 -10
- package/.output/server/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +0 -9
- package/.output/server/node_modules/@babel/runtime/package.json +0 -1107
- package/.output/server/node_modules/@humanwhocodes/momoa/api.js +0 -1144
- package/.output/server/node_modules/@humanwhocodes/momoa/package.json +0 -49
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/helpers.js +0 -129
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/index.js +0 -46
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/json/get-decorated-data-path.js +0 -47
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/json/get-meta-from-path.js +0 -33
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/json/index.js +0 -20
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/json/utils.js +0 -14
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/utils.js +0 -57
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/validation-errors/additional-prop.js +0 -53
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/validation-errors/base.js +0 -109
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/validation-errors/default.js +0 -55
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/validation-errors/enum.js +0 -81
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/validation-errors/index.js +0 -48
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/validation-errors/pattern.js +0 -56
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/validation-errors/required.js +0 -64
- package/.output/server/node_modules/@readme/better-ajv-errors/lib/validation-errors/unevaluated-prop.js +0 -53
- package/.output/server/node_modules/@readme/better-ajv-errors/package.json +0 -68
- package/.output/server/node_modules/@readme/http-status-codes/package.json +0 -25
- package/.output/server/node_modules/@readme/http-status-codes/src/index.js +0 -142
- package/.output/server/node_modules/@readme/openapi-parser/dist/chunk-IYQ77VVR.js +0 -25
- package/.output/server/node_modules/@readme/openapi-parser/dist/index.js +0 -923
- package/.output/server/node_modules/@readme/openapi-parser/dist/lib/assertions.js +0 -15
- package/.output/server/node_modules/@readme/openapi-parser/package.json +0 -84
- package/.output/server/node_modules/@readme/openapi-schemas/dist/index.mjs +0 -6153
- package/.output/server/node_modules/@readme/openapi-schemas/package.json +0 -67
- package/.output/server/node_modules/@readme/postman-to-openapi/package.json +0 -70
- package/.output/server/node_modules/@readme/postman-to-openapi/src/index.js +0 -714
- package/.output/server/node_modules/@readme/postman-to-openapi/src/md-utils.js +0 -38
- package/.output/server/node_modules/@readme/postman-to-openapi/src/var-replacer.js +0 -25
- package/.output/server/node_modules/@redocly/config/lib/asyncapi-config-schema.js +0 -53
- package/.output/server/node_modules/@redocly/config/lib/common.js +0 -103
- package/.output/server/node_modules/@redocly/config/lib/constants/config.js +0 -17
- package/.output/server/node_modules/@redocly/config/lib/constants/entities.js +0 -58
- package/.output/server/node_modules/@redocly/config/lib/constants/enum.js +0 -6
- package/.output/server/node_modules/@redocly/config/lib/constants/shared.js +0 -22
- package/.output/server/node_modules/@redocly/config/lib/default-theme-config-schema.js +0 -57
- package/.output/server/node_modules/@redocly/config/lib/entities-catalog-config-schema.js +0 -186
- package/.output/server/node_modules/@redocly/config/lib/entities-catalog-entity-file-schema.js +0 -283
- package/.output/server/node_modules/@redocly/config/lib/ex-theme-config-schemas.js +0 -687
- package/.output/server/node_modules/@redocly/config/lib/feedback-config-schema.js +0 -88
- package/.output/server/node_modules/@redocly/config/lib/graphql-config-schema.js +0 -157
- package/.output/server/node_modules/@redocly/config/lib/index.js +0 -41
- package/.output/server/node_modules/@redocly/config/lib/product-override-schema.js +0 -44
- package/.output/server/node_modules/@redocly/config/lib/redoc-config-schema.js +0 -120
- package/.output/server/node_modules/@redocly/config/lib/reference-docs-config-schema.js +0 -518
- package/.output/server/node_modules/@redocly/config/lib/remove-property-recursively.js +0 -28
- package/.output/server/node_modules/@redocly/config/lib/reunite-config-schema.js +0 -103
- package/.output/server/node_modules/@redocly/config/lib/root-config-schema.js +0 -588
- package/.output/server/node_modules/@redocly/config/lib/scorecards-config-schema.js +0 -242
- package/.output/server/node_modules/@redocly/config/lib/types/api-functions-types.js +0 -3
- package/.output/server/node_modules/@redocly/config/lib/types/catalog-entity-types.js +0 -3
- package/.output/server/node_modules/@redocly/config/lib/types/code-walkthrough-types.js +0 -3
- package/.output/server/node_modules/@redocly/config/lib/types/config-types.js +0 -3
- package/.output/server/node_modules/@redocly/config/lib/types/index.js +0 -21
- package/.output/server/node_modules/@redocly/config/lib/types/portal-shared-types.js +0 -18
- package/.output/server/node_modules/@redocly/config/package.json +0 -28
- package/.output/server/node_modules/@redocly/openapi-core/lib/bundle/bundle-document.js +0 -100
- package/.output/server/node_modules/@redocly/openapi-core/lib/bundle/bundle-visitor.js +0 -260
- package/.output/server/node_modules/@redocly/openapi-core/lib/bundle/bundle.js +0 -74
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/all.js +0 -315
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/builtIn.js +0 -58
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/bundle-extends.js +0 -28
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/config-resolvers.js +0 -344
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/config.js +0 -343
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/constants.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/get-resolve-config.js +0 -9
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/group-assertion-rules.js +0 -51
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/index.js +0 -8
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/load.js +0 -98
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/minimal.js +0 -294
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/recommended-strict.js +0 -294
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/recommended.js +0 -294
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/rules.js +0 -35
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/spec.js +0 -294
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/types.js +0 -2
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/utils.js +0 -129
- package/.output/server/node_modules/@redocly/openapi-core/lib/config/visitors.js +0 -99
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/arazzo/index.js +0 -2
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/async2/index.js +0 -2
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/async3/index.js +0 -2
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/filters/filter-helper.js +0 -65
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/filters/filter-in.js +0 -67
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/filters/filter-out.js +0 -67
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/info-description-override.js +0 -21
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/info-override.js +0 -14
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/media-type-examples-override.js +0 -58
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/operation-description-override.js +0 -27
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/remove-x-internal.js +0 -68
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/common/tag-description-override.js +0 -23
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/oas2/index.js +0 -19
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/oas2/remove-unused-components.js +0 -97
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/oas3/index.js +0 -21
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/oas3/remove-unused-components.js +0 -120
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/openrpc/index.js +0 -2
- package/.output/server/node_modules/@redocly/openapi-core/lib/decorators/overlay1/index.js +0 -2
- package/.output/server/node_modules/@redocly/openapi-core/lib/detect-spec.js +0 -79
- package/.output/server/node_modules/@redocly/openapi-core/lib/env.js +0 -5
- package/.output/server/node_modules/@redocly/openapi-core/lib/errors/yaml-parse-error.js +0 -14
- package/.output/server/node_modules/@redocly/openapi-core/lib/format/codeframes.js +0 -177
- package/.output/server/node_modules/@redocly/openapi-core/lib/format/format.js +0 -365
- package/.output/server/node_modules/@redocly/openapi-core/lib/index.js +0 -50
- package/.output/server/node_modules/@redocly/openapi-core/lib/js-yaml/index.js +0 -11
- package/.output/server/node_modules/@redocly/openapi-core/lib/lint-entity.js +0 -171
- package/.output/server/node_modules/@redocly/openapi-core/lib/lint.js +0 -123
- package/.output/server/node_modules/@redocly/openapi-core/lib/logger.js +0 -56
- package/.output/server/node_modules/@redocly/openapi-core/lib/oas-types.js +0 -35
- package/.output/server/node_modules/@redocly/openapi-core/lib/ref-utils.js +0 -110
- package/.output/server/node_modules/@redocly/openapi-core/lib/resolve.js +0 -326
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/ajv.js +0 -106
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/criteria-unique.js +0 -68
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/index.js +0 -54
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/outputs-defined.js +0 -139
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/parameters-unique.js +0 -27
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/requestBody-replacements-unique.js +0 -30
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/sourceDescription-type.js +0 -19
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/sourceDescriptions-name-unique.js +0 -21
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/sourceDescriptions-not-empty.js +0 -15
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/step-onFailure-unique.js +0 -27
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/step-onSuccess-unique.js +0 -27
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/stepId-unique.js +0 -23
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/workflow-dependsOn.js +0 -53
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/arazzo/workflowId-unique.js +0 -19
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/async2/channels-kebab-case.js +0 -16
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/async2/index.js +0 -34
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/async2/no-channel-trailing-slash.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/async3/channels-kebab-case.js +0 -16
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/async3/index.js +0 -34
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/async3/no-channel-trailing-slash.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/catalog-entity/entity-key-valid.js +0 -39
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/assertions/asserts.js +0 -272
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/assertions/index.js +0 -22
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/assertions/utils.js +0 -215
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/info-contact.js +0 -14
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/info-license-strict.js +0 -23
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/info-license.js +0 -14
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-ambiguous-paths.js +0 -42
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-duplicated-tag-names.js +0 -21
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-enum-type-mismatch.js +0 -38
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-http-verbs-in-paths.js +0 -33
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-identical-paths.js +0 -21
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-invalid-parameter-examples.js +0 -32
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-invalid-schema-examples.js +0 -34
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-mixed-number-range-constraints.js +0 -19
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-path-trailing-slash.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-required-schema-properties-undefined.js +0 -64
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-schema-type-mismatch.js +0 -19
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/no-unresolved-refs.js +0 -42
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-2xx-response.js +0 -20
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-4xx-response.js +0 -20
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-description.js +0 -9
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-operationId-unique.js +0 -17
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-operationId-url-safe.js +0 -15
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-operationId.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-parameters-unique.js +0 -37
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-singular-tag.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-summary.js +0 -9
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/operation-tag-defined.js +0 -27
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/parameter-description.js +0 -19
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/path-declaration-must-exist.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/path-http-verbs-order.js +0 -23
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/path-not-include-query.js +0 -15
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/path-params-defined.js +0 -145
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/path-segment-plural.js +0 -30
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/paths-kebab-case.js +0 -17
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/required-string-property-missing-min-length.js +0 -34
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/response-contains-header.js +0 -26
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/scalar-property-missing-example.js +0 -39
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/security-defined.js +0 -62
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/spec-strict-refs.js +0 -27
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/struct.js +0 -150
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/tag-description.js +0 -9
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/common/tags-alphabetical.js +0 -18
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas2/boolean-parameter-prefixes.js +0 -19
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas2/index.js +0 -93
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas2/request-mime-type.js +0 -14
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas2/response-contains-property.js +0 -34
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas2/response-mime-type.js +0 -14
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/array-parameter-serialization.js +0 -26
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/boolean-parameter-prefixes.js +0 -21
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/component-name-unique.js +0 -130
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/index.js +0 -131
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/no-empty-servers.js +0 -20
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/no-example-value-and-externalValue.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/no-invalid-media-type-examples.js +0 -59
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/no-server-example.com.js +0 -15
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/no-server-trailing-slash.js +0 -15
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/no-server-variables-empty-enum.js +0 -58
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/no-undefined-server-variable.js +0 -28
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/no-unused-components.js +0 -83
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/nullable-type-sibling.js +0 -15
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/operation-4xx-problem-details-rfc7807.js +0 -33
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/request-mime-type.js +0 -28
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/response-contains-property.js +0 -36
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/response-mime-type.js +0 -28
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/spec-components-invalid-map-name.js +0 -59
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/spec-discriminator-defaultMapping.js +0 -53
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/spec-example-values.js +0 -31
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/spec-no-invalid-encoding-combinations.js +0 -16
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/spec-no-invalid-tag-parents.js +0 -38
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/oas3/spec-querystring-parameters.js +0 -65
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/openrpc/index.js +0 -20
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/openrpc/no-unused-components.js +0 -82
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/openrpc/spec-no-duplicated-method-params.js +0 -28
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/openrpc/spec-no-required-params-after-optional.js +0 -31
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/other/stats.js +0 -190
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/overlay1/index.js +0 -12
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/respect/no-criteria-xpath.js +0 -20
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/respect/no-x-security-both-scheme-and-scheme-name.js +0 -30
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/respect/no-x-security-scheme-name-without-openapi.js +0 -25
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/respect/respect-supported-versions.js +0 -18
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/respect/x-security-scheme-name-reference.js +0 -35
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/respect/x-security-scheme-required-values.js +0 -60
- package/.output/server/node_modules/@redocly/openapi-core/lib/rules/utils.js +0 -181
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/arazzo.js +0 -482
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/asyncapi2.js +0 -1157
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/asyncapi3.js +0 -511
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/entity.js +0 -32
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/index.js +0 -90
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/json-schema-adapter.js +0 -181
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/json-schema-draft7.shared.js +0 -101
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/oas2.js +0 -454
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/oas3.js +0 -828
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/oas3_1.js +0 -292
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/oas3_2.js +0 -312
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/openrpc.js +0 -360
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/overlay.js +0 -61
- package/.output/server/node_modules/@redocly/openapi-core/lib/types/redocly-yaml.js +0 -577
- package/.output/server/node_modules/@redocly/openapi-core/lib/typings/arazzo.js +0 -3
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/assign-config.js +0 -28
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/dequal.js +0 -36
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/does-yaml-file-exist.js +0 -7
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/error.js +0 -3
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/get-intersection-length.js +0 -11
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/get-matching-status-code-range.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/get-own.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/identity.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-custom-rule-id.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-defined.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-empty-array.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-empty-object.js +0 -5
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-not-empty-array.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-not-empty-object.js +0 -6
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-not-string.js +0 -5
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-ordered.js +0 -27
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-path-parameter.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-plain-object.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-string.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/is-truthy.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/keys-of.js +0 -6
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/make-ref-id.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/next-tick.js +0 -6
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/oas-has-component.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/omit.js +0 -8
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/pause.js +0 -4
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/pluralize.js +0 -8
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/read-file-from-url.js +0 -26
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/regex-from-string.js +0 -5
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/scorecards.js +0 -99
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/slash.js +0 -11
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/split-camel-case-into-words.js +0 -13
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/stack.js +0 -7
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/validate-mime-type.js +0 -31
- package/.output/server/node_modules/@redocly/openapi-core/lib/utils/yaml-fs-helper.js +0 -23
- package/.output/server/node_modules/@redocly/openapi-core/lib/visitors.js +0 -177
- package/.output/server/node_modules/@redocly/openapi-core/lib/walk.js +0 -315
- package/.output/server/node_modules/@redocly/openapi-core/package.json +0 -74
- package/.output/server/node_modules/@stoplight/ordered-object-literal/package.json +0 -53
- package/.output/server/node_modules/@stoplight/ordered-object-literal/src/index.cjs +0 -221
- package/.output/server/node_modules/@stoplight/types/dist/index.js +0 -129
- package/.output/server/node_modules/@stoplight/types/package.json +0 -81
- package/.output/server/node_modules/@stoplight/yaml/buildJsonPath.js +0 -41
- package/.output/server/node_modules/@stoplight/yaml/dereferenceAnchor.js +0 -38
- package/.output/server/node_modules/@stoplight/yaml/getJsonPathForPosition.js +0 -98
- package/.output/server/node_modules/@stoplight/yaml/getLocationForJsonPath.js +0 -145
- package/.output/server/node_modules/@stoplight/yaml/index.js +0 -16
- package/.output/server/node_modules/@stoplight/yaml/lineForPosition.js +0 -31
- package/.output/server/node_modules/@stoplight/yaml/package.json +0 -33
- package/.output/server/node_modules/@stoplight/yaml/parse.js +0 -5
- package/.output/server/node_modules/@stoplight/yaml/parseWithPointers.js +0 -456
- package/.output/server/node_modules/@stoplight/yaml/safeStringify.js +0 -5
- package/.output/server/node_modules/@stoplight/yaml/trapAccess.js +0 -11
- package/.output/server/node_modules/@stoplight/yaml/types.js +0 -6
- package/.output/server/node_modules/@stoplight/yaml/utils.js +0 -4
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/common.js +0 -45
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/dumper.js +0 -710
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/exception.js +0 -35
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/index.js +0 -22
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/loader.js +0 -1414
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/mark.js +0 -58
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/scalarInference.js +0 -90
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/schema/core.js +0 -8
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/schema/default_full.js +0 -14
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/schema/default_safe.js +0 -19
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/schema/failsafe.js +0 -10
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/schema/json.js +0 -14
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/schema.js +0 -77
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/binary.js +0 -92
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/bool.js +0 -32
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/float.js +0 -94
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/int.js +0 -159
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/js/regexp.js +0 -64
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/js/undefined.js +0 -22
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/map.js +0 -7
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/merge.js +0 -10
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/null.js +0 -30
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/omap.js +0 -46
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/pairs.js +0 -55
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/seq.js +0 -7
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/set.js +0 -22
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/str.js +0 -7
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type/timestamp.js +0 -70
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/type.js +0 -53
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/dist/src/yamlAST.js +0 -81
- package/.output/server/node_modules/@stoplight/yaml-ast-parser/package.json +0 -38
- package/.output/server/node_modules/ajv-draft-04/dist/index.js +0 -50
- package/.output/server/node_modules/ajv-draft-04/dist/refs/json-schema-draft-04.json +0 -138
- package/.output/server/node_modules/ajv-draft-04/dist/vocabulary/core.js +0 -13
- package/.output/server/node_modules/ajv-draft-04/dist/vocabulary/draft4.js +0 -16
- package/.output/server/node_modules/ajv-draft-04/dist/vocabulary/validation/index.js +0 -35
- package/.output/server/node_modules/ajv-draft-04/dist/vocabulary/validation/limitNumber.js +0 -44
- package/.output/server/node_modules/ajv-draft-04/dist/vocabulary/validation/limitNumberExclusive.js +0 -19
- package/.output/server/node_modules/ajv-draft-04/package.json +0 -74
- package/.output/server/node_modules/ajv-formats/dist/formats.js +0 -208
- package/.output/server/node_modules/ajv-formats/dist/index.js +0 -37
- package/.output/server/node_modules/ajv-formats/dist/limit.js +0 -69
- package/.output/server/node_modules/ajv-formats/package.json +0 -74
- package/.output/server/node_modules/call-me-maybe/package.json +0 -45
- package/.output/server/node_modules/call-me-maybe/src/maybe.js +0 -18
- package/.output/server/node_modules/call-me-maybe/src/next.js +0 -15
- package/.output/server/node_modules/colorette/index.js +0 -82
- package/.output/server/node_modules/colorette/package.json +0 -39
- package/.output/server/node_modules/compute-gcd/lib/index.js +0 -212
- package/.output/server/node_modules/compute-gcd/package.json +0 -73
- package/.output/server/node_modules/compute-lcm/lib/index.js +0 -111
- package/.output/server/node_modules/compute-lcm/package.json +0 -71
- package/.output/server/node_modules/d/index.js +0 -62
- package/.output/server/node_modules/d/package.json +0 -92
- package/.output/server/node_modules/es5-ext/array/#/e-index-of.js +0 -28
- package/.output/server/node_modules/es5-ext/array/from/index.js +0 -3
- package/.output/server/node_modules/es5-ext/array/from/is-implemented.js +0 -9
- package/.output/server/node_modules/es5-ext/array/from/shim.js +0 -119
- package/.output/server/node_modules/es5-ext/array/to-array.js +0 -6
- package/.output/server/node_modules/es5-ext/error/custom.js +0 -20
- package/.output/server/node_modules/es5-ext/function/_define-length.js +0 -54
- package/.output/server/node_modules/es5-ext/function/is-arguments.js +0 -6
- package/.output/server/node_modules/es5-ext/function/is-function.js +0 -8
- package/.output/server/node_modules/es5-ext/function/noop.js +0 -4
- package/.output/server/node_modules/es5-ext/math/sign/index.js +0 -3
- package/.output/server/node_modules/es5-ext/math/sign/is-implemented.js +0 -7
- package/.output/server/node_modules/es5-ext/math/sign/shim.js +0 -7
- package/.output/server/node_modules/es5-ext/number/is-nan/index.js +0 -3
- package/.output/server/node_modules/es5-ext/number/is-nan/is-implemented.js +0 -7
- package/.output/server/node_modules/es5-ext/number/is-nan/shim.js +0 -6
- package/.output/server/node_modules/es5-ext/number/to-integer.js +0 -12
- package/.output/server/node_modules/es5-ext/number/to-pos-integer.js +0 -6
- package/.output/server/node_modules/es5-ext/object/_iterate.js +0 -30
- package/.output/server/node_modules/es5-ext/object/assign/index.js +0 -3
- package/.output/server/node_modules/es5-ext/object/assign/is-implemented.js +0 -9
- package/.output/server/node_modules/es5-ext/object/assign/shim.js +0 -23
- package/.output/server/node_modules/es5-ext/object/for-each.js +0 -3
- package/.output/server/node_modules/es5-ext/object/is-callable.js +0 -5
- package/.output/server/node_modules/es5-ext/object/is-object.js +0 -7
- package/.output/server/node_modules/es5-ext/object/is-value.js +0 -5
- package/.output/server/node_modules/es5-ext/object/keys/index.js +0 -3
- package/.output/server/node_modules/es5-ext/object/keys/is-implemented.js +0 -10
- package/.output/server/node_modules/es5-ext/object/keys/shim.js +0 -7
- package/.output/server/node_modules/es5-ext/object/map.js +0 -14
- package/.output/server/node_modules/es5-ext/object/mixin.js +0 -26
- package/.output/server/node_modules/es5-ext/object/normalize-options.js +0 -20
- package/.output/server/node_modules/es5-ext/object/primitive-set.js +0 -10
- package/.output/server/node_modules/es5-ext/object/valid-callable.js +0 -6
- package/.output/server/node_modules/es5-ext/object/valid-value.js +0 -8
- package/.output/server/node_modules/es5-ext/object/validate-stringifiable-value.js +0 -6
- package/.output/server/node_modules/es5-ext/object/validate-stringifiable.js +0 -12
- package/.output/server/node_modules/es5-ext/package.json +0 -127
- package/.output/server/node_modules/es5-ext/safe-to-string.js +0 -12
- package/.output/server/node_modules/es5-ext/string/#/contains/index.js +0 -3
- package/.output/server/node_modules/es5-ext/string/#/contains/is-implemented.js +0 -8
- package/.output/server/node_modules/es5-ext/string/#/contains/shim.js +0 -7
- package/.output/server/node_modules/es5-ext/string/is-string.js +0 -13
- package/.output/server/node_modules/es5-ext/to-short-string-representation.js +0 -16
- package/.output/server/node_modules/es6-symbol/index.js +0 -5
- package/.output/server/node_modules/es6-symbol/is-implemented.js +0 -20
- package/.output/server/node_modules/es6-symbol/is-symbol.js +0 -9
- package/.output/server/node_modules/es6-symbol/lib/private/generate-name.js +0 -28
- package/.output/server/node_modules/es6-symbol/lib/private/setup/standard-symbols.js +0 -34
- package/.output/server/node_modules/es6-symbol/lib/private/setup/symbol-registry.js +0 -23
- package/.output/server/node_modules/es6-symbol/package.json +0 -107
- package/.output/server/node_modules/es6-symbol/polyfill.js +0 -86
- package/.output/server/node_modules/es6-symbol/validate-symbol.js +0 -8
- package/.output/server/node_modules/event-emitter/index.js +0 -132
- package/.output/server/node_modules/event-emitter/package.json +0 -34
- package/.output/server/node_modules/ext/global-this/implementation.js +0 -31
- package/.output/server/node_modules/ext/global-this/index.js +0 -3
- package/.output/server/node_modules/ext/global-this/is-implemented.js +0 -7
- package/.output/server/node_modules/ext/package.json +0 -152
- package/.output/server/node_modules/fast-deep-equal/index.js +0 -46
- package/.output/server/node_modules/fast-deep-equal/package.json +0 -61
- package/.output/server/node_modules/fast-safe-stringify/index.js +0 -229
- package/.output/server/node_modules/fast-safe-stringify/package.json +0 -46
- package/.output/server/node_modules/fast-uri/index.js +0 -340
- package/.output/server/node_modules/fast-uri/lib/schemes.js +0 -267
- package/.output/server/node_modules/fast-uri/lib/utils.js +0 -336
- package/.output/server/node_modules/fast-uri/package.json +0 -69
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/base.js +0 -116
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/ast.js +0 -31
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js +0 -116
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js +0 -168
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js +0 -566
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js +0 -228
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js +0 -1166
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js +0 -737
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js +0 -186
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js +0 -140
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js +0 -221
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js +0 -29
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/decorators.js +0 -16
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/exception.js +0 -64
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js +0 -39
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js +0 -104
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js +0 -25
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js +0 -46
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js +0 -26
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js +0 -16
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js +0 -43
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/helpers.js +0 -57
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js +0 -78
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js +0 -19
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/logger.js +0 -47
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js +0 -30
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/runtime.js +0 -379
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/safe-string.js +0 -15
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars/utils.js +0 -124
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars.js +0 -66
- package/.output/server/node_modules/handlebars/dist/cjs/handlebars.runtime.js +0 -66
- package/.output/server/node_modules/handlebars/lib/index.js +0 -26
- package/.output/server/node_modules/handlebars/package.json +0 -134
- package/.output/server/node_modules/http2-client/lib/http.js +0 -17
- package/.output/server/node_modules/http2-client/lib/https.js +0 -18
- package/.output/server/node_modules/http2-client/lib/index.js +0 -21
- package/.output/server/node_modules/http2-client/lib/request-options.js +0 -38
- package/.output/server/node_modules/http2-client/lib/request.js +0 -586
- package/.output/server/node_modules/http2-client/lib/utils.js +0 -67
- package/.output/server/node_modules/http2-client/package.json +0 -38
- package/.output/server/node_modules/is-promise/index.js +0 -6
- package/.output/server/node_modules/is-promise/package.json +0 -23
- package/.output/server/node_modules/js-levenshtein/index.js +0 -105
- package/.output/server/node_modules/js-levenshtein/package.json +0 -49
- package/.output/server/node_modules/js-tokens/index.js +0 -23
- package/.output/server/node_modules/js-tokens/package.json +0 -30
- package/.output/server/node_modules/js-yaml/dist/js-yaml.mjs +0 -3856
- package/.output/server/node_modules/js-yaml/index.js +0 -47
- package/.output/server/node_modules/js-yaml/lib/common.js +0 -59
- package/.output/server/node_modules/js-yaml/lib/dumper.js +0 -965
- package/.output/server/node_modules/js-yaml/lib/exception.js +0 -55
- package/.output/server/node_modules/js-yaml/lib/loader.js +0 -1733
- package/.output/server/node_modules/js-yaml/lib/schema/core.js +0 -11
- package/.output/server/node_modules/js-yaml/lib/schema/default.js +0 -22
- package/.output/server/node_modules/js-yaml/lib/schema/failsafe.js +0 -17
- package/.output/server/node_modules/js-yaml/lib/schema/json.js +0 -19
- package/.output/server/node_modules/js-yaml/lib/schema.js +0 -121
- package/.output/server/node_modules/js-yaml/lib/snippet.js +0 -101
- package/.output/server/node_modules/js-yaml/lib/type/binary.js +0 -125
- package/.output/server/node_modules/js-yaml/lib/type/bool.js +0 -35
- package/.output/server/node_modules/js-yaml/lib/type/float.js +0 -97
- package/.output/server/node_modules/js-yaml/lib/type/int.js +0 -156
- package/.output/server/node_modules/js-yaml/lib/type/map.js +0 -8
- package/.output/server/node_modules/js-yaml/lib/type/merge.js +0 -12
- package/.output/server/node_modules/js-yaml/lib/type/null.js +0 -35
- package/.output/server/node_modules/js-yaml/lib/type/omap.js +0 -44
- package/.output/server/node_modules/js-yaml/lib/type/pairs.js +0 -53
- package/.output/server/node_modules/js-yaml/lib/type/seq.js +0 -8
- package/.output/server/node_modules/js-yaml/lib/type/set.js +0 -29
- package/.output/server/node_modules/js-yaml/lib/type/str.js +0 -8
- package/.output/server/node_modules/js-yaml/lib/type/timestamp.js +0 -88
- package/.output/server/node_modules/js-yaml/lib/type.js +0 -66
- package/.output/server/node_modules/js-yaml/package.json +0 -66
- package/.output/server/node_modules/json-schema-compare/package.json +0 -52
- package/.output/server/node_modules/json-schema-compare/src/index.js +0 -184
- package/.output/server/node_modules/json-schema-merge-allof/package.json +0 -57
- package/.output/server/node_modules/json-schema-merge-allof/src/common.js +0 -45
- package/.output/server/node_modules/json-schema-merge-allof/src/complex-resolvers/items.js +0 -98
- package/.output/server/node_modules/json-schema-merge-allof/src/complex-resolvers/properties.js +0 -80
- package/.output/server/node_modules/json-schema-merge-allof/src/index.js +0 -343
- package/.output/server/node_modules/json-schema-traverse/index.js +0 -93
- package/.output/server/node_modules/json-schema-traverse/package.json +0 -43
- package/.output/server/node_modules/jsonc-parser/lib/umd/impl/edit.js +0 -201
- package/.output/server/node_modules/jsonc-parser/lib/umd/impl/format.js +0 -265
- package/.output/server/node_modules/jsonc-parser/lib/umd/impl/parser.js +0 -655
- package/.output/server/node_modules/jsonc-parser/lib/umd/impl/scanner.js +0 -456
- package/.output/server/node_modules/jsonc-parser/lib/umd/main.js +0 -194
- package/.output/server/node_modules/jsonc-parser/package.json +0 -40
- package/.output/server/node_modules/jsonpointer/jsonpointer.js +0 -100
- package/.output/server/node_modules/jsonpointer/package.json +0 -48
- package/.output/server/node_modules/leven/index.js +0 -77
- package/.output/server/node_modules/leven/package.json +0 -57
- package/.output/server/node_modules/lodash/_DataView.js +0 -7
- package/.output/server/node_modules/lodash/_Hash.js +0 -32
- package/.output/server/node_modules/lodash/_ListCache.js +0 -32
- package/.output/server/node_modules/lodash/_Map.js +0 -7
- package/.output/server/node_modules/lodash/_MapCache.js +0 -32
- package/.output/server/node_modules/lodash/_Promise.js +0 -7
- package/.output/server/node_modules/lodash/_Set.js +0 -7
- package/.output/server/node_modules/lodash/_SetCache.js +0 -27
- package/.output/server/node_modules/lodash/_Stack.js +0 -27
- package/.output/server/node_modules/lodash/_Symbol.js +0 -6
- package/.output/server/node_modules/lodash/_Uint8Array.js +0 -6
- package/.output/server/node_modules/lodash/_WeakMap.js +0 -7
- package/.output/server/node_modules/lodash/_apply.js +0 -21
- package/.output/server/node_modules/lodash/_arrayEach.js +0 -22
- package/.output/server/node_modules/lodash/_arrayFilter.js +0 -25
- package/.output/server/node_modules/lodash/_arrayIncludes.js +0 -17
- package/.output/server/node_modules/lodash/_arrayIncludesWith.js +0 -22
- package/.output/server/node_modules/lodash/_arrayLikeKeys.js +0 -49
- package/.output/server/node_modules/lodash/_arrayMap.js +0 -21
- package/.output/server/node_modules/lodash/_arrayPush.js +0 -20
- package/.output/server/node_modules/lodash/_arraySome.js +0 -23
- package/.output/server/node_modules/lodash/_assignMergeValue.js +0 -20
- package/.output/server/node_modules/lodash/_assignValue.js +0 -28
- package/.output/server/node_modules/lodash/_assocIndexOf.js +0 -21
- package/.output/server/node_modules/lodash/_baseAssign.js +0 -17
- package/.output/server/node_modules/lodash/_baseAssignIn.js +0 -17
- package/.output/server/node_modules/lodash/_baseAssignValue.js +0 -25
- package/.output/server/node_modules/lodash/_baseClone.js +0 -166
- package/.output/server/node_modules/lodash/_baseCreate.js +0 -30
- package/.output/server/node_modules/lodash/_baseDifference.js +0 -67
- package/.output/server/node_modules/lodash/_baseEach.js +0 -14
- package/.output/server/node_modules/lodash/_baseFindIndex.js +0 -24
- package/.output/server/node_modules/lodash/_baseFlatten.js +0 -38
- package/.output/server/node_modules/lodash/_baseFor.js +0 -16
- package/.output/server/node_modules/lodash/_baseForOwn.js +0 -16
- package/.output/server/node_modules/lodash/_baseGet.js +0 -24
- package/.output/server/node_modules/lodash/_baseGetAllKeys.js +0 -20
- package/.output/server/node_modules/lodash/_baseGetTag.js +0 -28
- package/.output/server/node_modules/lodash/_baseHasIn.js +0 -13
- package/.output/server/node_modules/lodash/_baseIndexOf.js +0 -20
- package/.output/server/node_modules/lodash/_baseIndexOfWith.js +0 -23
- package/.output/server/node_modules/lodash/_baseIntersection.js +0 -74
- package/.output/server/node_modules/lodash/_baseIsArguments.js +0 -18
- package/.output/server/node_modules/lodash/_baseIsEqual.js +0 -28
- package/.output/server/node_modules/lodash/_baseIsEqualDeep.js +0 -83
- package/.output/server/node_modules/lodash/_baseIsMap.js +0 -18
- package/.output/server/node_modules/lodash/_baseIsMatch.js +0 -62
- package/.output/server/node_modules/lodash/_baseIsNaN.js +0 -12
- package/.output/server/node_modules/lodash/_baseIsNative.js +0 -47
- package/.output/server/node_modules/lodash/_baseIsSet.js +0 -18
- package/.output/server/node_modules/lodash/_baseIsTypedArray.js +0 -60
- package/.output/server/node_modules/lodash/_baseIteratee.js +0 -31
- package/.output/server/node_modules/lodash/_baseKeys.js +0 -30
- package/.output/server/node_modules/lodash/_baseKeysIn.js +0 -33
- package/.output/server/node_modules/lodash/_baseMap.js +0 -22
- package/.output/server/node_modules/lodash/_baseMatches.js +0 -22
- package/.output/server/node_modules/lodash/_baseMatchesProperty.js +0 -33
- package/.output/server/node_modules/lodash/_baseMerge.js +0 -42
- package/.output/server/node_modules/lodash/_baseMergeDeep.js +0 -94
- package/.output/server/node_modules/lodash/_baseOrderBy.js +0 -49
- package/.output/server/node_modules/lodash/_baseProperty.js +0 -14
- package/.output/server/node_modules/lodash/_basePropertyDeep.js +0 -16
- package/.output/server/node_modules/lodash/_basePullAll.js +0 -51
- package/.output/server/node_modules/lodash/_baseRest.js +0 -17
- package/.output/server/node_modules/lodash/_baseSetToString.js +0 -22
- package/.output/server/node_modules/lodash/_baseSortBy.js +0 -21
- package/.output/server/node_modules/lodash/_baseTimes.js +0 -20
- package/.output/server/node_modules/lodash/_baseToString.js +0 -37
- package/.output/server/node_modules/lodash/_baseUnary.js +0 -14
- package/.output/server/node_modules/lodash/_baseUniq.js +0 -72
- package/.output/server/node_modules/lodash/_cacheHas.js +0 -13
- package/.output/server/node_modules/lodash/_castArrayLikeObject.js +0 -14
- package/.output/server/node_modules/lodash/_castFunction.js +0 -14
- package/.output/server/node_modules/lodash/_castPath.js +0 -21
- package/.output/server/node_modules/lodash/_cloneArrayBuffer.js +0 -16
- package/.output/server/node_modules/lodash/_cloneBuffer.js +0 -35
- package/.output/server/node_modules/lodash/_cloneDataView.js +0 -16
- package/.output/server/node_modules/lodash/_cloneRegExp.js +0 -17
- package/.output/server/node_modules/lodash/_cloneSymbol.js +0 -18
- package/.output/server/node_modules/lodash/_cloneTypedArray.js +0 -16
- package/.output/server/node_modules/lodash/_compareAscending.js +0 -41
- package/.output/server/node_modules/lodash/_compareMultiple.js +0 -44
- package/.output/server/node_modules/lodash/_copyArray.js +0 -20
- package/.output/server/node_modules/lodash/_copyObject.js +0 -40
- package/.output/server/node_modules/lodash/_copySymbols.js +0 -16
- package/.output/server/node_modules/lodash/_copySymbolsIn.js +0 -16
- package/.output/server/node_modules/lodash/_coreJsData.js +0 -6
- package/.output/server/node_modules/lodash/_createAssigner.js +0 -37
- package/.output/server/node_modules/lodash/_createBaseEach.js +0 -32
- package/.output/server/node_modules/lodash/_createBaseFor.js +0 -25
- package/.output/server/node_modules/lodash/_createSet.js +0 -19
- package/.output/server/node_modules/lodash/_customDefaultsMerge.js +0 -28
- package/.output/server/node_modules/lodash/_defineProperty.js +0 -11
- package/.output/server/node_modules/lodash/_equalArrays.js +0 -84
- package/.output/server/node_modules/lodash/_equalByTag.js +0 -112
- package/.output/server/node_modules/lodash/_equalObjects.js +0 -90
- package/.output/server/node_modules/lodash/_freeGlobal.js +0 -4
- package/.output/server/node_modules/lodash/_getAllKeys.js +0 -16
- package/.output/server/node_modules/lodash/_getAllKeysIn.js +0 -17
- package/.output/server/node_modules/lodash/_getMapData.js +0 -18
- package/.output/server/node_modules/lodash/_getMatchData.js +0 -24
- package/.output/server/node_modules/lodash/_getNative.js +0 -17
- package/.output/server/node_modules/lodash/_getPrototype.js +0 -6
- package/.output/server/node_modules/lodash/_getRawTag.js +0 -46
- package/.output/server/node_modules/lodash/_getSymbols.js +0 -30
- package/.output/server/node_modules/lodash/_getSymbolsIn.js +0 -25
- package/.output/server/node_modules/lodash/_getTag.js +0 -58
- package/.output/server/node_modules/lodash/_getValue.js +0 -13
- package/.output/server/node_modules/lodash/_hasPath.js +0 -39
- package/.output/server/node_modules/lodash/_hashClear.js +0 -15
- package/.output/server/node_modules/lodash/_hashDelete.js +0 -17
- package/.output/server/node_modules/lodash/_hashGet.js +0 -30
- package/.output/server/node_modules/lodash/_hashHas.js +0 -23
- package/.output/server/node_modules/lodash/_hashSet.js +0 -23
- package/.output/server/node_modules/lodash/_initCloneArray.js +0 -26
- package/.output/server/node_modules/lodash/_initCloneByTag.js +0 -77
- package/.output/server/node_modules/lodash/_initCloneObject.js +0 -18
- package/.output/server/node_modules/lodash/_isFlattenable.js +0 -20
- package/.output/server/node_modules/lodash/_isIndex.js +0 -25
- package/.output/server/node_modules/lodash/_isIterateeCall.js +0 -30
- package/.output/server/node_modules/lodash/_isKey.js +0 -29
- package/.output/server/node_modules/lodash/_isKeyable.js +0 -15
- package/.output/server/node_modules/lodash/_isMasked.js +0 -20
- package/.output/server/node_modules/lodash/_isPrototype.js +0 -18
- package/.output/server/node_modules/lodash/_isStrictComparable.js +0 -15
- package/.output/server/node_modules/lodash/_listCacheClear.js +0 -13
- package/.output/server/node_modules/lodash/_listCacheDelete.js +0 -35
- package/.output/server/node_modules/lodash/_listCacheGet.js +0 -19
- package/.output/server/node_modules/lodash/_listCacheHas.js +0 -16
- package/.output/server/node_modules/lodash/_listCacheSet.js +0 -26
- package/.output/server/node_modules/lodash/_mapCacheClear.js +0 -21
- package/.output/server/node_modules/lodash/_mapCacheDelete.js +0 -18
- package/.output/server/node_modules/lodash/_mapCacheGet.js +0 -16
- package/.output/server/node_modules/lodash/_mapCacheHas.js +0 -16
- package/.output/server/node_modules/lodash/_mapCacheSet.js +0 -22
- package/.output/server/node_modules/lodash/_mapToArray.js +0 -18
- package/.output/server/node_modules/lodash/_matchesStrictComparable.js +0 -20
- package/.output/server/node_modules/lodash/_memoizeCapped.js +0 -26
- package/.output/server/node_modules/lodash/_nativeCreate.js +0 -6
- package/.output/server/node_modules/lodash/_nativeKeys.js +0 -6
- package/.output/server/node_modules/lodash/_nativeKeysIn.js +0 -20
- package/.output/server/node_modules/lodash/_nodeUtil.js +0 -30
- package/.output/server/node_modules/lodash/_objectToString.js +0 -22
- package/.output/server/node_modules/lodash/_overArg.js +0 -15
- package/.output/server/node_modules/lodash/_overRest.js +0 -36
- package/.output/server/node_modules/lodash/_root.js +0 -9
- package/.output/server/node_modules/lodash/_safeGet.js +0 -21
- package/.output/server/node_modules/lodash/_setCacheAdd.js +0 -19
- package/.output/server/node_modules/lodash/_setCacheHas.js +0 -14
- package/.output/server/node_modules/lodash/_setToArray.js +0 -18
- package/.output/server/node_modules/lodash/_setToString.js +0 -14
- package/.output/server/node_modules/lodash/_shortOut.js +0 -37
- package/.output/server/node_modules/lodash/_stackClear.js +0 -15
- package/.output/server/node_modules/lodash/_stackDelete.js +0 -18
- package/.output/server/node_modules/lodash/_stackGet.js +0 -14
- package/.output/server/node_modules/lodash/_stackHas.js +0 -14
- package/.output/server/node_modules/lodash/_stackSet.js +0 -34
- package/.output/server/node_modules/lodash/_strictIndexOf.js +0 -23
- package/.output/server/node_modules/lodash/_stringToPath.js +0 -27
- package/.output/server/node_modules/lodash/_toKey.js +0 -21
- package/.output/server/node_modules/lodash/_toSource.js +0 -26
- package/.output/server/node_modules/lodash/cloneDeep.js +0 -29
- package/.output/server/node_modules/lodash/constant.js +0 -26
- package/.output/server/node_modules/lodash/defaults.js +0 -64
- package/.output/server/node_modules/lodash/defaultsDeep.js +0 -30
- package/.output/server/node_modules/lodash/eq.js +0 -37
- package/.output/server/node_modules/lodash/flatten.js +0 -22
- package/.output/server/node_modules/lodash/flattenDeep.js +0 -25
- package/.output/server/node_modules/lodash/forEach.js +0 -41
- package/.output/server/node_modules/lodash/get.js +0 -33
- package/.output/server/node_modules/lodash/hasIn.js +0 -34
- package/.output/server/node_modules/lodash/identity.js +0 -21
- package/.output/server/node_modules/lodash/intersection.js +0 -30
- package/.output/server/node_modules/lodash/intersectionWith.js +0 -41
- package/.output/server/node_modules/lodash/isArguments.js +0 -36
- package/.output/server/node_modules/lodash/isArray.js +0 -26
- package/.output/server/node_modules/lodash/isArrayLike.js +0 -33
- package/.output/server/node_modules/lodash/isArrayLikeObject.js +0 -33
- package/.output/server/node_modules/lodash/isBoolean.js +0 -29
- package/.output/server/node_modules/lodash/isBuffer.js +0 -38
- package/.output/server/node_modules/lodash/isEqual.js +0 -35
- package/.output/server/node_modules/lodash/isFunction.js +0 -37
- package/.output/server/node_modules/lodash/isLength.js +0 -35
- package/.output/server/node_modules/lodash/isMap.js +0 -27
- package/.output/server/node_modules/lodash/isObject.js +0 -31
- package/.output/server/node_modules/lodash/isObjectLike.js +0 -29
- package/.output/server/node_modules/lodash/isPlainObject.js +0 -62
- package/.output/server/node_modules/lodash/isSet.js +0 -27
- package/.output/server/node_modules/lodash/isSymbol.js +0 -29
- package/.output/server/node_modules/lodash/isTypedArray.js +0 -27
- package/.output/server/node_modules/lodash/keys.js +0 -37
- package/.output/server/node_modules/lodash/keysIn.js +0 -32
- package/.output/server/node_modules/lodash/last.js +0 -20
- package/.output/server/node_modules/lodash/memoize.js +0 -73
- package/.output/server/node_modules/lodash/mergeWith.js +0 -39
- package/.output/server/node_modules/lodash/noop.js +0 -17
- package/.output/server/node_modules/lodash/package.json +0 -19
- package/.output/server/node_modules/lodash/property.js +0 -32
- package/.output/server/node_modules/lodash/pullAll.js +0 -29
- package/.output/server/node_modules/lodash/sortBy.js +0 -48
- package/.output/server/node_modules/lodash/stubArray.js +0 -23
- package/.output/server/node_modules/lodash/stubFalse.js +0 -18
- package/.output/server/node_modules/lodash/toPlainObject.js +0 -32
- package/.output/server/node_modules/lodash/toString.js +0 -28
- package/.output/server/node_modules/lodash/uniq.js +0 -25
- package/.output/server/node_modules/lodash/uniqWith.js +0 -28
- package/.output/server/node_modules/lodash/without.js +0 -31
- package/.output/server/node_modules/lodash.camelcase/index.js +0 -599
- package/.output/server/node_modules/lodash.camelcase/package.json +0 -19
- package/.output/server/node_modules/lru-queue/index.js +0 -48
- package/.output/server/node_modules/lru-queue/package.json +0 -25
- package/.output/server/node_modules/marked/lib/marked.cjs +0 -2811
- package/.output/server/node_modules/marked/package.json +0 -93
- package/.output/server/node_modules/memoizee/ext/async.js +0 -154
- package/.output/server/node_modules/memoizee/ext/dispose.js +0 -27
- package/.output/server/node_modules/memoizee/ext/max-age.js +0 -90
- package/.output/server/node_modules/memoizee/ext/max.js +0 -32
- package/.output/server/node_modules/memoizee/ext/promise.js +0 -147
- package/.output/server/node_modules/memoizee/ext/ref-counter.js +0 -42
- package/.output/server/node_modules/memoizee/index.js +0 -34
- package/.output/server/node_modules/memoizee/lib/configure-map.js +0 -182
- package/.output/server/node_modules/memoizee/lib/registered-extensions.js +0 -1
- package/.output/server/node_modules/memoizee/lib/resolve-length.js +0 -15
- package/.output/server/node_modules/memoizee/lib/resolve-normalize.js +0 -17
- package/.output/server/node_modules/memoizee/lib/resolve-resolve.js +0 -19
- package/.output/server/node_modules/memoizee/normalizers/get-1.js +0 -29
- package/.output/server/node_modules/memoizee/normalizers/get-fixed.js +0 -71
- package/.output/server/node_modules/memoizee/normalizers/get-primitive-fixed.js +0 -14
- package/.output/server/node_modules/memoizee/normalizers/get.js +0 -90
- package/.output/server/node_modules/memoizee/normalizers/primitive.js +0 -9
- package/.output/server/node_modules/memoizee/package.json +0 -114
- package/.output/server/node_modules/memoizee/plain.js +0 -37
- package/.output/server/node_modules/mustache/mustache.js +0 -772
- package/.output/server/node_modules/mustache/package.json +0 -67
- package/.output/server/node_modules/next-tick/index.js +0 -74
- package/.output/server/node_modules/next-tick/package.json +0 -27
- package/.output/server/node_modules/node-fetch-h2/lib/index.js +0 -1585
- package/.output/server/node_modules/node-fetch-h2/package.json +0 -68
- package/.output/server/node_modules/oas/dist/chunk-5EP6HY2E.js +0 -943
- package/.output/server/node_modules/oas/dist/chunk-7MARUOFZ.js +0 -24
- package/.output/server/node_modules/oas/dist/chunk-HGVFNEKW.js +0 -1684
- package/.output/server/node_modules/oas/dist/chunk-LSH3X5NA.js +0 -822
- package/.output/server/node_modules/oas/dist/chunk-S27IGTVG.js +0 -95
- package/.output/server/node_modules/oas/dist/chunk-VA3NKXX7.js +0 -9
- package/.output/server/node_modules/oas/dist/index.js +0 -12
- package/.output/server/node_modules/oas/dist/types.js +0 -15
- package/.output/server/node_modules/oas/dist/utils.js +0 -19
- package/.output/server/node_modules/oas/package.json +0 -113
- package/.output/server/node_modules/oas-kit-common/index.js +0 -137
- package/.output/server/node_modules/oas-kit-common/package.json +0 -28
- package/.output/server/node_modules/oas-normalize/dist/chunk-45XXAYDL.js +0 -19
- package/.output/server/node_modules/oas-normalize/dist/chunk-SZISBDLH.js +0 -86
- package/.output/server/node_modules/oas-normalize/dist/index.js +0 -248
- package/.output/server/node_modules/oas-normalize/package.json +0 -87
- package/.output/server/node_modules/oas-resolver/index.js +0 -535
- package/.output/server/node_modules/oas-resolver/package.json +0 -40
- package/.output/server/node_modules/oas-schema-walker/index.js +0 -125
- package/.output/server/node_modules/oas-schema-walker/package.json +0 -27
- package/.output/server/node_modules/path-to-regexp/dist/index.js +0 -431
- package/.output/server/node_modules/path-to-regexp/package.json +0 -64
- package/.output/server/node_modules/picocolors/package.json +0 -25
- package/.output/server/node_modules/picocolors/picocolors.js +0 -75
- package/.output/server/node_modules/pluralize/package.json +0 -40
- package/.output/server/node_modules/pluralize/pluralize.js +0 -503
- package/.output/server/node_modules/reftools/lib/clone.js +0 -102
- package/.output/server/node_modules/reftools/lib/dereference.js +0 -105
- package/.output/server/node_modules/reftools/lib/isref.js +0 -10
- package/.output/server/node_modules/reftools/lib/jptr.js +0 -97
- package/.output/server/node_modules/reftools/lib/recurse.js +0 -62
- package/.output/server/node_modules/reftools/package.json +0 -37
- package/.output/server/node_modules/remove-undefined-objects/dist/index.mjs +0 -94
- package/.output/server/node_modules/remove-undefined-objects/package.json +0 -47
- package/.output/server/node_modules/semver/classes/comparator.js +0 -143
- package/.output/server/node_modules/semver/classes/range.js +0 -557
- package/.output/server/node_modules/semver/classes/semver.js +0 -333
- package/.output/server/node_modules/semver/functions/clean.js +0 -8
- package/.output/server/node_modules/semver/functions/cmp.js +0 -54
- package/.output/server/node_modules/semver/functions/coerce.js +0 -62
- package/.output/server/node_modules/semver/functions/compare-build.js +0 -9
- package/.output/server/node_modules/semver/functions/compare-loose.js +0 -5
- package/.output/server/node_modules/semver/functions/compare.js +0 -7
- package/.output/server/node_modules/semver/functions/diff.js +0 -60
- package/.output/server/node_modules/semver/functions/eq.js +0 -5
- package/.output/server/node_modules/semver/functions/gt.js +0 -5
- package/.output/server/node_modules/semver/functions/gte.js +0 -5
- package/.output/server/node_modules/semver/functions/inc.js +0 -21
- package/.output/server/node_modules/semver/functions/lt.js +0 -5
- package/.output/server/node_modules/semver/functions/lte.js +0 -5
- package/.output/server/node_modules/semver/functions/major.js +0 -5
- package/.output/server/node_modules/semver/functions/minor.js +0 -5
- package/.output/server/node_modules/semver/functions/neq.js +0 -5
- package/.output/server/node_modules/semver/functions/parse.js +0 -18
- package/.output/server/node_modules/semver/functions/patch.js +0 -5
- package/.output/server/node_modules/semver/functions/prerelease.js +0 -8
- package/.output/server/node_modules/semver/functions/rcompare.js +0 -5
- package/.output/server/node_modules/semver/functions/rsort.js +0 -5
- package/.output/server/node_modules/semver/functions/satisfies.js +0 -12
- package/.output/server/node_modules/semver/functions/sort.js +0 -5
- package/.output/server/node_modules/semver/functions/valid.js +0 -8
- package/.output/server/node_modules/semver/index.js +0 -91
- package/.output/server/node_modules/semver/internal/constants.js +0 -37
- package/.output/server/node_modules/semver/internal/debug.js +0 -11
- package/.output/server/node_modules/semver/internal/identifiers.js +0 -29
- package/.output/server/node_modules/semver/internal/lrucache.js +0 -42
- package/.output/server/node_modules/semver/internal/parse-options.js +0 -17
- package/.output/server/node_modules/semver/internal/re.js +0 -223
- package/.output/server/node_modules/semver/package.json +0 -78
- package/.output/server/node_modules/semver/preload.js +0 -4
- package/.output/server/node_modules/semver/ranges/gtr.js +0 -6
- package/.output/server/node_modules/semver/ranges/intersects.js +0 -9
- package/.output/server/node_modules/semver/ranges/ltr.js +0 -6
- package/.output/server/node_modules/semver/ranges/max-satisfying.js +0 -27
- package/.output/server/node_modules/semver/ranges/min-satisfying.js +0 -26
- package/.output/server/node_modules/semver/ranges/min-version.js +0 -63
- package/.output/server/node_modules/semver/ranges/outside.js +0 -82
- package/.output/server/node_modules/semver/ranges/simplify.js +0 -49
- package/.output/server/node_modules/semver/ranges/subset.js +0 -249
- package/.output/server/node_modules/semver/ranges/to-comparators.js +0 -10
- package/.output/server/node_modules/semver/ranges/valid.js +0 -13
- package/.output/server/node_modules/source-map/lib/array-set.js +0 -121
- package/.output/server/node_modules/source-map/lib/base64-vlq.js +0 -140
- package/.output/server/node_modules/source-map/lib/base64.js +0 -67
- package/.output/server/node_modules/source-map/lib/binary-search.js +0 -111
- package/.output/server/node_modules/source-map/lib/mapping-list.js +0 -79
- package/.output/server/node_modules/source-map/lib/quick-sort.js +0 -114
- package/.output/server/node_modules/source-map/lib/source-map-consumer.js +0 -1145
- package/.output/server/node_modules/source-map/lib/source-map-generator.js +0 -425
- package/.output/server/node_modules/source-map/lib/source-node.js +0 -413
- package/.output/server/node_modules/source-map/lib/util.js +0 -488
- package/.output/server/node_modules/source-map/package.json +0 -73
- package/.output/server/node_modules/source-map/source-map.js +0 -8
- package/.output/server/node_modules/swagger2openapi/index.js +0 -1666
- package/.output/server/node_modules/swagger2openapi/lib/statusCodes.js +0 -19
- package/.output/server/node_modules/swagger2openapi/package.json +0 -63
- package/.output/server/node_modules/timers-ext/max-timeout.js +0 -3
- package/.output/server/node_modules/timers-ext/package.json +0 -97
- package/.output/server/node_modules/timers-ext/valid-timeout.js +0 -10
- package/.output/server/node_modules/tslib/package.json +0 -47
- package/.output/server/node_modules/tslib/tslib.js +0 -484
- package/.output/server/node_modules/type/function/is.js +0 -19
- package/.output/server/node_modules/type/object/is.js +0 -11
- package/.output/server/node_modules/type/package.json +0 -121
- package/.output/server/node_modules/type/plain-function/is.js +0 -11
- package/.output/server/node_modules/type/prototype/is.js +0 -13
- package/.output/server/node_modules/type/value/is.js +0 -6
- package/.output/server/node_modules/validate.io-array/lib/index.js +0 -16
- package/.output/server/node_modules/validate.io-array/package.json +0 -51
- package/.output/server/node_modules/validate.io-function/lib/index.js +0 -45
- package/.output/server/node_modules/validate.io-function/package.json +0 -53
- package/.output/server/node_modules/validate.io-integer/lib/index.js +0 -52
- package/.output/server/node_modules/validate.io-integer/package.json +0 -58
- package/.output/server/node_modules/validate.io-integer-array/lib/index.js +0 -66
- package/.output/server/node_modules/validate.io-integer-array/package.json +0 -58
- package/.output/server/node_modules/validate.io-number/lib/index.js +0 -45
- package/.output/server/node_modules/validate.io-number/package.json +0 -55
- package/.output/server/node_modules/yaml/dist/Document-a8d0fbf9.js +0 -637
- package/.output/server/node_modules/yaml/dist/PlainValue-516d5bc2.js +0 -765
- package/.output/server/node_modules/yaml/dist/Schema-bcc6c2d7.js +0 -469
- package/.output/server/node_modules/yaml/dist/index.js +0 -67
- package/.output/server/node_modules/yaml/dist/parse-cst.js +0 -1507
- package/.output/server/node_modules/yaml/dist/resolveSeq-95613e94.js +0 -1859
- package/.output/server/node_modules/yaml/dist/warnings-793925ce.js +0 -359
- package/.output/server/node_modules/yaml/index.js +0 -1
- package/.output/server/node_modules/yaml/package.json +0 -105
- package/.output/server/node_modules/yaml-ast-parser/dist/src/common.js +0 -45
- package/.output/server/node_modules/yaml-ast-parser/dist/src/dumper.js +0 -644
- package/.output/server/node_modules/yaml-ast-parser/dist/src/exception.js +0 -40
- package/.output/server/node_modules/yaml-ast-parser/dist/src/index.js +0 -22
- package/.output/server/node_modules/yaml-ast-parser/dist/src/loader.js +0 -1416
- package/.output/server/node_modules/yaml-ast-parser/dist/src/mark.js +0 -62
- package/.output/server/node_modules/yaml-ast-parser/dist/src/scalarInference.js +0 -82
- package/.output/server/node_modules/yaml-ast-parser/dist/src/schema/core.js +0 -8
- package/.output/server/node_modules/yaml-ast-parser/dist/src/schema/default_full.js +0 -14
- package/.output/server/node_modules/yaml-ast-parser/dist/src/schema/default_safe.js +0 -19
- package/.output/server/node_modules/yaml-ast-parser/dist/src/schema/failsafe.js +0 -10
- package/.output/server/node_modules/yaml-ast-parser/dist/src/schema/json.js +0 -14
- package/.output/server/node_modules/yaml-ast-parser/dist/src/schema.js +0 -78
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/binary.js +0 -92
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/bool.js +0 -32
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/float.js +0 -95
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/int.js +0 -155
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/js/regexp.js +0 -64
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/js/undefined.js +0 -22
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/map.js +0 -7
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/merge.js +0 -10
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/null.js +0 -30
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/omap.js +0 -46
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/pairs.js +0 -55
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/seq.js +0 -7
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/set.js +0 -22
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/str.js +0 -7
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type/timestamp.js +0 -70
- package/.output/server/node_modules/yaml-ast-parser/dist/src/type.js +0 -54
- package/.output/server/node_modules/yaml-ast-parser/dist/src/yamlAST.js +0 -82
- package/.output/server/node_modules/yaml-ast-parser/package.json +0 -39
- /package/.output/server/node_modules/{.nitro/picomatch@2.3.2 → picomatch}/index.js +0 -0
- /package/.output/server/node_modules/{.nitro/picomatch@2.3.2 → picomatch}/lib/constants.js +0 -0
- /package/.output/server/node_modules/{.nitro/picomatch@2.3.2 → picomatch}/lib/parse.js +0 -0
- /package/.output/server/node_modules/{.nitro/picomatch@2.3.2 → picomatch}/lib/picomatch.js +0 -0
- /package/.output/server/node_modules/{.nitro/picomatch@2.3.2 → picomatch}/lib/scan.js +0 -0
- /package/.output/server/node_modules/{.nitro/picomatch@2.3.2 → picomatch}/lib/utils.js +0 -0
- /package/.output/server/node_modules/{.nitro/picomatch@2.3.2 → picomatch}/package.json +0 -0
package/.output/server/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js
DELETED
|
@@ -1,1166 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
// istanbul ignore next
|
|
5
|
-
|
|
6
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
|
7
|
-
|
|
8
|
-
var _base = require('../base');
|
|
9
|
-
|
|
10
|
-
var _exception = require('../exception');
|
|
11
|
-
|
|
12
|
-
var _exception2 = _interopRequireDefault(_exception);
|
|
13
|
-
|
|
14
|
-
var _utils = require('../utils');
|
|
15
|
-
|
|
16
|
-
var _codeGen = require('./code-gen');
|
|
17
|
-
|
|
18
|
-
var _codeGen2 = _interopRequireDefault(_codeGen);
|
|
19
|
-
|
|
20
|
-
function Literal(value) {
|
|
21
|
-
this.value = value;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function JavaScriptCompiler() {}
|
|
25
|
-
|
|
26
|
-
JavaScriptCompiler.prototype = {
|
|
27
|
-
// PUBLIC API: You can override these methods in a subclass to provide
|
|
28
|
-
// alternative compiled forms for name lookup and buffering semantics
|
|
29
|
-
nameLookup: function nameLookup(parent, name /*, type */) {
|
|
30
|
-
return this.internalNameLookup(parent, name);
|
|
31
|
-
},
|
|
32
|
-
depthedLookup: function depthedLookup(name) {
|
|
33
|
-
return [this.aliasable('container.lookup'), '(depths, ', JSON.stringify(name), ')'];
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
compilerInfo: function compilerInfo() {
|
|
37
|
-
var revision = _base.COMPILER_REVISION,
|
|
38
|
-
versions = _base.REVISION_CHANGES[revision];
|
|
39
|
-
return [revision, versions];
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
appendToBuffer: function appendToBuffer(source, location, explicit) {
|
|
43
|
-
// Force a source as this simplifies the merge logic.
|
|
44
|
-
if (!_utils.isArray(source)) {
|
|
45
|
-
source = [source];
|
|
46
|
-
}
|
|
47
|
-
source = this.source.wrap(source, location);
|
|
48
|
-
|
|
49
|
-
if (this.environment.isSimple) {
|
|
50
|
-
return ['return ', source, ';'];
|
|
51
|
-
} else if (explicit) {
|
|
52
|
-
// This is a case where the buffer operation occurs as a child of another
|
|
53
|
-
// construct, generally braces. We have to explicitly output these buffer
|
|
54
|
-
// operations to ensure that the emitted code goes in the correct location.
|
|
55
|
-
return ['buffer += ', source, ';'];
|
|
56
|
-
} else {
|
|
57
|
-
source.appendToBuffer = true;
|
|
58
|
-
return source;
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
|
|
62
|
-
initializeBuffer: function initializeBuffer() {
|
|
63
|
-
return this.quotedString('');
|
|
64
|
-
},
|
|
65
|
-
// END PUBLIC API
|
|
66
|
-
internalNameLookup: function internalNameLookup(parent, name) {
|
|
67
|
-
this.lookupPropertyFunctionIsUsed = true;
|
|
68
|
-
return ['lookupProperty(', parent, ',', JSON.stringify(name), ')'];
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
lookupPropertyFunctionIsUsed: false,
|
|
72
|
-
|
|
73
|
-
compile: function compile(environment, options, context, asObject) {
|
|
74
|
-
this.environment = environment;
|
|
75
|
-
this.options = options;
|
|
76
|
-
this.stringParams = this.options.stringParams;
|
|
77
|
-
this.trackIds = this.options.trackIds;
|
|
78
|
-
this.precompile = !asObject;
|
|
79
|
-
|
|
80
|
-
this.name = this.environment.name;
|
|
81
|
-
this.isChild = !!context;
|
|
82
|
-
this.context = context || {
|
|
83
|
-
decorators: [],
|
|
84
|
-
programs: [],
|
|
85
|
-
environments: []
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
this.preamble();
|
|
89
|
-
|
|
90
|
-
this.stackSlot = 0;
|
|
91
|
-
this.stackVars = [];
|
|
92
|
-
this.aliases = {};
|
|
93
|
-
this.registers = { list: [] };
|
|
94
|
-
this.hashes = [];
|
|
95
|
-
this.compileStack = [];
|
|
96
|
-
this.inlineStack = [];
|
|
97
|
-
this.blockParams = [];
|
|
98
|
-
|
|
99
|
-
this.compileChildren(environment, options);
|
|
100
|
-
|
|
101
|
-
this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat;
|
|
102
|
-
this.useBlockParams = this.useBlockParams || environment.useBlockParams;
|
|
103
|
-
|
|
104
|
-
var opcodes = environment.opcodes,
|
|
105
|
-
opcode = undefined,
|
|
106
|
-
firstLoc = undefined,
|
|
107
|
-
i = undefined,
|
|
108
|
-
l = undefined;
|
|
109
|
-
|
|
110
|
-
for (i = 0, l = opcodes.length; i < l; i++) {
|
|
111
|
-
opcode = opcodes[i];
|
|
112
|
-
|
|
113
|
-
this.source.currentLocation = opcode.loc;
|
|
114
|
-
firstLoc = firstLoc || opcode.loc;
|
|
115
|
-
this[opcode.opcode].apply(this, opcode.args);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Flush any trailing content that might be pending.
|
|
119
|
-
this.source.currentLocation = firstLoc;
|
|
120
|
-
this.pushSource('');
|
|
121
|
-
|
|
122
|
-
/* istanbul ignore next */
|
|
123
|
-
if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {
|
|
124
|
-
throw new _exception2['default']('Compile completed with content left on stack');
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (!this.decorators.isEmpty()) {
|
|
128
|
-
this.useDecorators = true;
|
|
129
|
-
|
|
130
|
-
this.decorators.prepend(['var decorators = container.decorators, ', this.lookupPropertyFunctionVarDeclaration(), ';\n']);
|
|
131
|
-
this.decorators.push('return fn;');
|
|
132
|
-
|
|
133
|
-
if (asObject) {
|
|
134
|
-
this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]);
|
|
135
|
-
} else {
|
|
136
|
-
this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\n');
|
|
137
|
-
this.decorators.push('}\n');
|
|
138
|
-
this.decorators = this.decorators.merge();
|
|
139
|
-
}
|
|
140
|
-
} else {
|
|
141
|
-
this.decorators = undefined;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
var fn = this.createFunctionContext(asObject);
|
|
145
|
-
if (!this.isChild) {
|
|
146
|
-
var ret = {
|
|
147
|
-
compiler: this.compilerInfo(),
|
|
148
|
-
main: fn
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
if (this.decorators) {
|
|
152
|
-
ret.main_d = this.decorators; // eslint-disable-line camelcase
|
|
153
|
-
ret.useDecorators = true;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
var _context = this.context;
|
|
157
|
-
var programs = _context.programs;
|
|
158
|
-
var decorators = _context.decorators;
|
|
159
|
-
|
|
160
|
-
for (i = 0, l = programs.length; i < l; i++) {
|
|
161
|
-
ret[i] = programs[i];
|
|
162
|
-
if (decorators[i]) {
|
|
163
|
-
ret[i + '_d'] = decorators[i];
|
|
164
|
-
ret.useDecorators = true;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if (this.environment.usePartial) {
|
|
169
|
-
ret.usePartial = true;
|
|
170
|
-
}
|
|
171
|
-
if (this.options.data) {
|
|
172
|
-
ret.useData = true;
|
|
173
|
-
}
|
|
174
|
-
if (this.useDepths) {
|
|
175
|
-
ret.useDepths = true;
|
|
176
|
-
}
|
|
177
|
-
if (this.useBlockParams) {
|
|
178
|
-
ret.useBlockParams = true;
|
|
179
|
-
}
|
|
180
|
-
if (this.options.compat) {
|
|
181
|
-
ret.compat = true;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
if (!asObject) {
|
|
185
|
-
ret.compiler = JSON.stringify(ret.compiler);
|
|
186
|
-
|
|
187
|
-
this.source.currentLocation = { start: { line: 1, column: 0 } };
|
|
188
|
-
ret = this.objectLiteral(ret);
|
|
189
|
-
|
|
190
|
-
if (options.srcName) {
|
|
191
|
-
ret = ret.toStringWithSourceMap({ file: options.destName });
|
|
192
|
-
ret.map = ret.map && ret.map.toString();
|
|
193
|
-
} else {
|
|
194
|
-
ret = ret.toString();
|
|
195
|
-
}
|
|
196
|
-
} else {
|
|
197
|
-
ret.compilerOptions = this.options;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return ret;
|
|
201
|
-
} else {
|
|
202
|
-
return fn;
|
|
203
|
-
}
|
|
204
|
-
},
|
|
205
|
-
|
|
206
|
-
preamble: function preamble() {
|
|
207
|
-
// track the last context pushed into place to allow skipping the
|
|
208
|
-
// getContext opcode when it would be a noop
|
|
209
|
-
this.lastContext = 0;
|
|
210
|
-
this.source = new _codeGen2['default'](this.options.srcName);
|
|
211
|
-
this.decorators = new _codeGen2['default'](this.options.srcName);
|
|
212
|
-
},
|
|
213
|
-
|
|
214
|
-
createFunctionContext: function createFunctionContext(asObject) {
|
|
215
|
-
// istanbul ignore next
|
|
216
|
-
|
|
217
|
-
var _this = this;
|
|
218
|
-
|
|
219
|
-
var varDeclarations = '';
|
|
220
|
-
|
|
221
|
-
var locals = this.stackVars.concat(this.registers.list);
|
|
222
|
-
if (locals.length > 0) {
|
|
223
|
-
varDeclarations += ', ' + locals.join(', ');
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// Generate minimizer alias mappings
|
|
227
|
-
//
|
|
228
|
-
// When using true SourceNodes, this will update all references to the given alias
|
|
229
|
-
// as the source nodes are reused in situ. For the non-source node compilation mode,
|
|
230
|
-
// aliases will not be used, but this case is already being run on the client and
|
|
231
|
-
// we aren't concern about minimizing the template size.
|
|
232
|
-
var aliasCount = 0;
|
|
233
|
-
Object.keys(this.aliases).forEach(function (alias) {
|
|
234
|
-
var node = _this.aliases[alias];
|
|
235
|
-
if (node.children && node.referenceCount > 1) {
|
|
236
|
-
varDeclarations += ', alias' + ++aliasCount + '=' + alias;
|
|
237
|
-
node.children[0] = 'alias' + aliasCount;
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
|
|
241
|
-
if (this.lookupPropertyFunctionIsUsed) {
|
|
242
|
-
varDeclarations += ', ' + this.lookupPropertyFunctionVarDeclaration();
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
var params = ['container', 'depth0', 'helpers', 'partials', 'data'];
|
|
246
|
-
|
|
247
|
-
if (this.useBlockParams || this.useDepths) {
|
|
248
|
-
params.push('blockParams');
|
|
249
|
-
}
|
|
250
|
-
if (this.useDepths) {
|
|
251
|
-
params.push('depths');
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
// Perform a second pass over the output to merge content when possible
|
|
255
|
-
var source = this.mergeSource(varDeclarations);
|
|
256
|
-
|
|
257
|
-
if (asObject) {
|
|
258
|
-
params.push(source);
|
|
259
|
-
|
|
260
|
-
return Function.apply(this, params);
|
|
261
|
-
} else {
|
|
262
|
-
return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']);
|
|
263
|
-
}
|
|
264
|
-
},
|
|
265
|
-
mergeSource: function mergeSource(varDeclarations) {
|
|
266
|
-
var isSimple = this.environment.isSimple,
|
|
267
|
-
appendOnly = !this.forceBuffer,
|
|
268
|
-
appendFirst = undefined,
|
|
269
|
-
sourceSeen = undefined,
|
|
270
|
-
bufferStart = undefined,
|
|
271
|
-
bufferEnd = undefined;
|
|
272
|
-
this.source.each(function (line) {
|
|
273
|
-
if (line.appendToBuffer) {
|
|
274
|
-
if (bufferStart) {
|
|
275
|
-
line.prepend(' + ');
|
|
276
|
-
} else {
|
|
277
|
-
bufferStart = line;
|
|
278
|
-
}
|
|
279
|
-
bufferEnd = line;
|
|
280
|
-
} else {
|
|
281
|
-
if (bufferStart) {
|
|
282
|
-
if (!sourceSeen) {
|
|
283
|
-
appendFirst = true;
|
|
284
|
-
} else {
|
|
285
|
-
bufferStart.prepend('buffer += ');
|
|
286
|
-
}
|
|
287
|
-
bufferEnd.add(';');
|
|
288
|
-
bufferStart = bufferEnd = undefined;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
sourceSeen = true;
|
|
292
|
-
if (!isSimple) {
|
|
293
|
-
appendOnly = false;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
});
|
|
297
|
-
|
|
298
|
-
if (appendOnly) {
|
|
299
|
-
if (bufferStart) {
|
|
300
|
-
bufferStart.prepend('return ');
|
|
301
|
-
bufferEnd.add(';');
|
|
302
|
-
} else if (!sourceSeen) {
|
|
303
|
-
this.source.push('return "";');
|
|
304
|
-
}
|
|
305
|
-
} else {
|
|
306
|
-
varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer());
|
|
307
|
-
|
|
308
|
-
if (bufferStart) {
|
|
309
|
-
bufferStart.prepend('return buffer + ');
|
|
310
|
-
bufferEnd.add(';');
|
|
311
|
-
} else {
|
|
312
|
-
this.source.push('return buffer;');
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
if (varDeclarations) {
|
|
317
|
-
this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n'));
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
return this.source.merge();
|
|
321
|
-
},
|
|
322
|
-
|
|
323
|
-
lookupPropertyFunctionVarDeclaration: function lookupPropertyFunctionVarDeclaration() {
|
|
324
|
-
return '\n lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }\n '.trim();
|
|
325
|
-
},
|
|
326
|
-
|
|
327
|
-
// [blockValue]
|
|
328
|
-
//
|
|
329
|
-
// On stack, before: hash, inverse, program, value
|
|
330
|
-
// On stack, after: return value of blockHelperMissing
|
|
331
|
-
//
|
|
332
|
-
// The purpose of this opcode is to take a block of the form
|
|
333
|
-
// `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and
|
|
334
|
-
// replace it on the stack with the result of properly
|
|
335
|
-
// invoking blockHelperMissing.
|
|
336
|
-
blockValue: function blockValue(name) {
|
|
337
|
-
var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'),
|
|
338
|
-
params = [this.contextName(0)];
|
|
339
|
-
this.setupHelperArgs(name, 0, params);
|
|
340
|
-
|
|
341
|
-
var blockName = this.popStack();
|
|
342
|
-
params.splice(1, 0, blockName);
|
|
343
|
-
|
|
344
|
-
this.push(this.source.functionCall(blockHelperMissing, 'call', params));
|
|
345
|
-
},
|
|
346
|
-
|
|
347
|
-
// [ambiguousBlockValue]
|
|
348
|
-
//
|
|
349
|
-
// On stack, before: hash, inverse, program, value
|
|
350
|
-
// Compiler value, before: lastHelper=value of last found helper, if any
|
|
351
|
-
// On stack, after, if no lastHelper: same as [blockValue]
|
|
352
|
-
// On stack, after, if lastHelper: value
|
|
353
|
-
ambiguousBlockValue: function ambiguousBlockValue() {
|
|
354
|
-
// We're being a bit cheeky and reusing the options value from the prior exec
|
|
355
|
-
var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'),
|
|
356
|
-
params = [this.contextName(0)];
|
|
357
|
-
this.setupHelperArgs('', 0, params, true);
|
|
358
|
-
|
|
359
|
-
this.flushInline();
|
|
360
|
-
|
|
361
|
-
var current = this.topStack();
|
|
362
|
-
params.splice(1, 0, current);
|
|
363
|
-
|
|
364
|
-
this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']);
|
|
365
|
-
},
|
|
366
|
-
|
|
367
|
-
// [appendContent]
|
|
368
|
-
//
|
|
369
|
-
// On stack, before: ...
|
|
370
|
-
// On stack, after: ...
|
|
371
|
-
//
|
|
372
|
-
// Appends the string value of `content` to the current buffer
|
|
373
|
-
appendContent: function appendContent(content) {
|
|
374
|
-
if (this.pendingContent) {
|
|
375
|
-
content = this.pendingContent + content;
|
|
376
|
-
} else {
|
|
377
|
-
this.pendingLocation = this.source.currentLocation;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
this.pendingContent = content;
|
|
381
|
-
},
|
|
382
|
-
|
|
383
|
-
// [append]
|
|
384
|
-
//
|
|
385
|
-
// On stack, before: value, ...
|
|
386
|
-
// On stack, after: ...
|
|
387
|
-
//
|
|
388
|
-
// Coerces `value` to a String and appends it to the current buffer.
|
|
389
|
-
//
|
|
390
|
-
// If `value` is truthy, or 0, it is coerced into a string and appended
|
|
391
|
-
// Otherwise, the empty string is appended
|
|
392
|
-
append: function append() {
|
|
393
|
-
if (this.isInline()) {
|
|
394
|
-
this.replaceStack(function (current) {
|
|
395
|
-
return [' != null ? ', current, ' : ""'];
|
|
396
|
-
});
|
|
397
|
-
|
|
398
|
-
this.pushSource(this.appendToBuffer(this.popStack()));
|
|
399
|
-
} else {
|
|
400
|
-
var local = this.popStack();
|
|
401
|
-
this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']);
|
|
402
|
-
if (this.environment.isSimple) {
|
|
403
|
-
this.pushSource(['else { ', this.appendToBuffer("''", undefined, true), ' }']);
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
},
|
|
407
|
-
|
|
408
|
-
// [appendEscaped]
|
|
409
|
-
//
|
|
410
|
-
// On stack, before: value, ...
|
|
411
|
-
// On stack, after: ...
|
|
412
|
-
//
|
|
413
|
-
// Escape `value` and append it to the buffer
|
|
414
|
-
appendEscaped: function appendEscaped() {
|
|
415
|
-
this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')']));
|
|
416
|
-
},
|
|
417
|
-
|
|
418
|
-
// [getContext]
|
|
419
|
-
//
|
|
420
|
-
// On stack, before: ...
|
|
421
|
-
// On stack, after: ...
|
|
422
|
-
// Compiler value, after: lastContext=depth
|
|
423
|
-
//
|
|
424
|
-
// Set the value of the `lastContext` compiler value to the depth
|
|
425
|
-
getContext: function getContext(depth) {
|
|
426
|
-
this.lastContext = depth;
|
|
427
|
-
},
|
|
428
|
-
|
|
429
|
-
// [pushContext]
|
|
430
|
-
//
|
|
431
|
-
// On stack, before: ...
|
|
432
|
-
// On stack, after: currentContext, ...
|
|
433
|
-
//
|
|
434
|
-
// Pushes the value of the current context onto the stack.
|
|
435
|
-
pushContext: function pushContext() {
|
|
436
|
-
this.pushStackLiteral(this.contextName(this.lastContext));
|
|
437
|
-
},
|
|
438
|
-
|
|
439
|
-
// [lookupOnContext]
|
|
440
|
-
//
|
|
441
|
-
// On stack, before: ...
|
|
442
|
-
// On stack, after: currentContext[name], ...
|
|
443
|
-
//
|
|
444
|
-
// Looks up the value of `name` on the current context and pushes
|
|
445
|
-
// it onto the stack.
|
|
446
|
-
lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) {
|
|
447
|
-
var i = 0;
|
|
448
|
-
|
|
449
|
-
if (!scoped && this.options.compat && !this.lastContext) {
|
|
450
|
-
// The depthed query is expected to handle the undefined logic for the root level that
|
|
451
|
-
// is implemented below, so we evaluate that directly in compat mode
|
|
452
|
-
this.push(this.depthedLookup(parts[i++]));
|
|
453
|
-
} else {
|
|
454
|
-
this.pushContext();
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
this.resolvePath('context', parts, i, falsy, strict);
|
|
458
|
-
},
|
|
459
|
-
|
|
460
|
-
// [lookupBlockParam]
|
|
461
|
-
//
|
|
462
|
-
// On stack, before: ...
|
|
463
|
-
// On stack, after: blockParam[name], ...
|
|
464
|
-
//
|
|
465
|
-
// Looks up the value of `parts` on the given block param and pushes
|
|
466
|
-
// it onto the stack.
|
|
467
|
-
lookupBlockParam: function lookupBlockParam(blockParamId, parts) {
|
|
468
|
-
this.useBlockParams = true;
|
|
469
|
-
|
|
470
|
-
this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']);
|
|
471
|
-
this.resolvePath('context', parts, 1);
|
|
472
|
-
},
|
|
473
|
-
|
|
474
|
-
// [lookupData]
|
|
475
|
-
//
|
|
476
|
-
// On stack, before: ...
|
|
477
|
-
// On stack, after: data, ...
|
|
478
|
-
//
|
|
479
|
-
// Push the data lookup operator
|
|
480
|
-
lookupData: function lookupData(depth, parts, strict) {
|
|
481
|
-
if (!depth) {
|
|
482
|
-
this.pushStackLiteral('data');
|
|
483
|
-
} else {
|
|
484
|
-
this.pushStackLiteral('container.data(data, ' + depth + ')');
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
this.resolvePath('data', parts, 0, true, strict);
|
|
488
|
-
},
|
|
489
|
-
|
|
490
|
-
resolvePath: function resolvePath(type, parts, startPartIndex, falsy, strict) {
|
|
491
|
-
// istanbul ignore next
|
|
492
|
-
|
|
493
|
-
var _this2 = this;
|
|
494
|
-
|
|
495
|
-
if (this.options.strict || this.options.assumeObjects) {
|
|
496
|
-
this.push(strictLookup(this.options.strict && strict, this, parts, startPartIndex, type));
|
|
497
|
-
return;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
var len = parts.length;
|
|
501
|
-
|
|
502
|
-
var _loop = function (i) {
|
|
503
|
-
/* eslint-disable no-loop-func */
|
|
504
|
-
_this2.replaceStack(function (current) {
|
|
505
|
-
var lookup = _this2.nameLookup(current, parts[i], type);
|
|
506
|
-
// We want to ensure that zero and false are handled properly if the context (falsy flag)
|
|
507
|
-
// needs to have the special handling for these values.
|
|
508
|
-
if (!falsy) {
|
|
509
|
-
return [' != null ? ', lookup, ' : ', current];
|
|
510
|
-
} else {
|
|
511
|
-
// Otherwise we can use generic falsy handling
|
|
512
|
-
return [' && ', lookup];
|
|
513
|
-
}
|
|
514
|
-
});
|
|
515
|
-
/* eslint-enable no-loop-func */
|
|
516
|
-
};
|
|
517
|
-
|
|
518
|
-
for (var i = startPartIndex; i < len; i++) {
|
|
519
|
-
_loop(i);
|
|
520
|
-
}
|
|
521
|
-
},
|
|
522
|
-
|
|
523
|
-
// [resolvePossibleLambda]
|
|
524
|
-
//
|
|
525
|
-
// On stack, before: value, ...
|
|
526
|
-
// On stack, after: resolved value, ...
|
|
527
|
-
//
|
|
528
|
-
// If the `value` is a lambda, replace it on the stack by
|
|
529
|
-
// the return value of the lambda
|
|
530
|
-
resolvePossibleLambda: function resolvePossibleLambda() {
|
|
531
|
-
this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']);
|
|
532
|
-
},
|
|
533
|
-
|
|
534
|
-
// [pushStringParam]
|
|
535
|
-
//
|
|
536
|
-
// On stack, before: ...
|
|
537
|
-
// On stack, after: string, currentContext, ...
|
|
538
|
-
//
|
|
539
|
-
// This opcode is designed for use in string mode, which
|
|
540
|
-
// provides the string value of a parameter along with its
|
|
541
|
-
// depth rather than resolving it immediately.
|
|
542
|
-
pushStringParam: function pushStringParam(string, type) {
|
|
543
|
-
this.pushContext();
|
|
544
|
-
this.pushString(type);
|
|
545
|
-
|
|
546
|
-
// If it's a subexpression, the string result
|
|
547
|
-
// will be pushed after this opcode.
|
|
548
|
-
if (type !== 'SubExpression') {
|
|
549
|
-
if (typeof string === 'string') {
|
|
550
|
-
this.pushString(string);
|
|
551
|
-
} else {
|
|
552
|
-
this.pushStackLiteral(string);
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
},
|
|
556
|
-
|
|
557
|
-
emptyHash: function emptyHash(omitEmpty) {
|
|
558
|
-
if (this.trackIds) {
|
|
559
|
-
this.push('{}'); // hashIds
|
|
560
|
-
}
|
|
561
|
-
if (this.stringParams) {
|
|
562
|
-
this.push('{}'); // hashContexts
|
|
563
|
-
this.push('{}'); // hashTypes
|
|
564
|
-
}
|
|
565
|
-
this.pushStackLiteral(omitEmpty ? 'undefined' : '{}');
|
|
566
|
-
},
|
|
567
|
-
pushHash: function pushHash() {
|
|
568
|
-
if (this.hash) {
|
|
569
|
-
this.hashes.push(this.hash);
|
|
570
|
-
}
|
|
571
|
-
this.hash = { values: {}, types: [], contexts: [], ids: [] };
|
|
572
|
-
},
|
|
573
|
-
popHash: function popHash() {
|
|
574
|
-
var hash = this.hash;
|
|
575
|
-
this.hash = this.hashes.pop();
|
|
576
|
-
|
|
577
|
-
if (this.trackIds) {
|
|
578
|
-
this.push(this.objectLiteral(hash.ids));
|
|
579
|
-
}
|
|
580
|
-
if (this.stringParams) {
|
|
581
|
-
this.push(this.objectLiteral(hash.contexts));
|
|
582
|
-
this.push(this.objectLiteral(hash.types));
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
this.push(this.objectLiteral(hash.values));
|
|
586
|
-
},
|
|
587
|
-
|
|
588
|
-
// [pushString]
|
|
589
|
-
//
|
|
590
|
-
// On stack, before: ...
|
|
591
|
-
// On stack, after: quotedString(string), ...
|
|
592
|
-
//
|
|
593
|
-
// Push a quoted version of `string` onto the stack
|
|
594
|
-
pushString: function pushString(string) {
|
|
595
|
-
this.pushStackLiteral(this.quotedString(string));
|
|
596
|
-
},
|
|
597
|
-
|
|
598
|
-
// [pushLiteral]
|
|
599
|
-
//
|
|
600
|
-
// On stack, before: ...
|
|
601
|
-
// On stack, after: value, ...
|
|
602
|
-
//
|
|
603
|
-
// Pushes a value onto the stack. This operation prevents
|
|
604
|
-
// the compiler from creating a temporary variable to hold
|
|
605
|
-
// it.
|
|
606
|
-
pushLiteral: function pushLiteral(value) {
|
|
607
|
-
this.pushStackLiteral(value);
|
|
608
|
-
},
|
|
609
|
-
|
|
610
|
-
// [pushProgram]
|
|
611
|
-
//
|
|
612
|
-
// On stack, before: ...
|
|
613
|
-
// On stack, after: program(guid), ...
|
|
614
|
-
//
|
|
615
|
-
// Push a program expression onto the stack. This takes
|
|
616
|
-
// a compile-time guid and converts it into a runtime-accessible
|
|
617
|
-
// expression.
|
|
618
|
-
pushProgram: function pushProgram(guid) {
|
|
619
|
-
if (guid != null) {
|
|
620
|
-
this.pushStackLiteral(this.programExpression(guid));
|
|
621
|
-
} else {
|
|
622
|
-
this.pushStackLiteral(null);
|
|
623
|
-
}
|
|
624
|
-
},
|
|
625
|
-
|
|
626
|
-
// [registerDecorator]
|
|
627
|
-
//
|
|
628
|
-
// On stack, before: hash, program, params..., ...
|
|
629
|
-
// On stack, after: ...
|
|
630
|
-
//
|
|
631
|
-
// Pops off the decorator's parameters, invokes the decorator,
|
|
632
|
-
// and inserts the decorator into the decorators list.
|
|
633
|
-
registerDecorator: function registerDecorator(paramSize, name) {
|
|
634
|
-
var foundDecorator = this.nameLookup('decorators', name, 'decorator'),
|
|
635
|
-
options = this.setupHelperArgs(name, paramSize);
|
|
636
|
-
|
|
637
|
-
// Store the resolved decorator in a variable and verify it is a function before
|
|
638
|
-
// calling it. Without this, unregistered decorators can cause an unhandled TypeError
|
|
639
|
-
// (calling undefined), which crashes the process — enabling Denial of Service.
|
|
640
|
-
this.decorators.push(['var decorator = ', foundDecorator, ';']);
|
|
641
|
-
this.decorators.push(['if (typeof decorator !== "function") { throw new Error(', this.quotedString('Missing decorator: "' + name + '"'), '); }']);
|
|
642
|
-
this.decorators.push(['fn = ', this.decorators.functionCall('decorator', '', ['fn', 'props', 'container', options]), ' || fn;']);
|
|
643
|
-
},
|
|
644
|
-
|
|
645
|
-
// [invokeHelper]
|
|
646
|
-
//
|
|
647
|
-
// On stack, before: hash, inverse, program, params..., ...
|
|
648
|
-
// On stack, after: result of helper invocation
|
|
649
|
-
//
|
|
650
|
-
// Pops off the helper's parameters, invokes the helper,
|
|
651
|
-
// and pushes the helper's return value onto the stack.
|
|
652
|
-
//
|
|
653
|
-
// If the helper is not found, `helperMissing` is called.
|
|
654
|
-
invokeHelper: function invokeHelper(paramSize, name, isSimple) {
|
|
655
|
-
var nonHelper = this.popStack(),
|
|
656
|
-
helper = this.setupHelper(paramSize, name);
|
|
657
|
-
|
|
658
|
-
var possibleFunctionCalls = [];
|
|
659
|
-
|
|
660
|
-
if (isSimple) {
|
|
661
|
-
// direct call to helper
|
|
662
|
-
possibleFunctionCalls.push(helper.name);
|
|
663
|
-
}
|
|
664
|
-
// call a function from the input object
|
|
665
|
-
possibleFunctionCalls.push(nonHelper);
|
|
666
|
-
if (!this.options.strict) {
|
|
667
|
-
possibleFunctionCalls.push(this.aliasable('container.hooks.helperMissing'));
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
var functionLookupCode = ['(', this.itemsSeparatedBy(possibleFunctionCalls, '||'), ')'];
|
|
671
|
-
var functionCall = this.source.functionCall(functionLookupCode, 'call', helper.callParams);
|
|
672
|
-
this.push(functionCall);
|
|
673
|
-
},
|
|
674
|
-
|
|
675
|
-
itemsSeparatedBy: function itemsSeparatedBy(items, separator) {
|
|
676
|
-
var result = [];
|
|
677
|
-
result.push(items[0]);
|
|
678
|
-
for (var i = 1; i < items.length; i++) {
|
|
679
|
-
result.push(separator, items[i]);
|
|
680
|
-
}
|
|
681
|
-
return result;
|
|
682
|
-
},
|
|
683
|
-
// [invokeKnownHelper]
|
|
684
|
-
//
|
|
685
|
-
// On stack, before: hash, inverse, program, params..., ...
|
|
686
|
-
// On stack, after: result of helper invocation
|
|
687
|
-
//
|
|
688
|
-
// This operation is used when the helper is known to exist,
|
|
689
|
-
// so a `helperMissing` fallback is not required.
|
|
690
|
-
invokeKnownHelper: function invokeKnownHelper(paramSize, name) {
|
|
691
|
-
var helper = this.setupHelper(paramSize, name);
|
|
692
|
-
this.push(this.source.functionCall(helper.name, 'call', helper.callParams));
|
|
693
|
-
},
|
|
694
|
-
|
|
695
|
-
// [invokeAmbiguous]
|
|
696
|
-
//
|
|
697
|
-
// On stack, before: hash, inverse, program, params..., ...
|
|
698
|
-
// On stack, after: result of disambiguation
|
|
699
|
-
//
|
|
700
|
-
// This operation is used when an expression like `{{foo}}`
|
|
701
|
-
// is provided, but we don't know at compile-time whether it
|
|
702
|
-
// is a helper or a path.
|
|
703
|
-
//
|
|
704
|
-
// This operation emits more code than the other options,
|
|
705
|
-
// and can be avoided by passing the `knownHelpers` and
|
|
706
|
-
// `knownHelpersOnly` flags at compile-time.
|
|
707
|
-
invokeAmbiguous: function invokeAmbiguous(name, helperCall) {
|
|
708
|
-
this.useRegister('helper');
|
|
709
|
-
|
|
710
|
-
var nonHelper = this.popStack();
|
|
711
|
-
|
|
712
|
-
this.emptyHash();
|
|
713
|
-
var helper = this.setupHelper(0, name, helperCall);
|
|
714
|
-
|
|
715
|
-
var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
|
|
716
|
-
|
|
717
|
-
var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];
|
|
718
|
-
if (!this.options.strict) {
|
|
719
|
-
lookup[0] = '(helper = ';
|
|
720
|
-
lookup.push(' != null ? helper : ', this.aliasable('container.hooks.helperMissing'));
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);
|
|
724
|
-
},
|
|
725
|
-
|
|
726
|
-
// [invokePartial]
|
|
727
|
-
//
|
|
728
|
-
// On stack, before: context, ...
|
|
729
|
-
// On stack after: result of partial invocation
|
|
730
|
-
//
|
|
731
|
-
// This operation pops off a context, invokes a partial with that context,
|
|
732
|
-
// and pushes the result of the invocation back.
|
|
733
|
-
invokePartial: function invokePartial(isDynamic, name, indent) {
|
|
734
|
-
var params = [],
|
|
735
|
-
options = this.setupParams(name, 1, params);
|
|
736
|
-
|
|
737
|
-
if (isDynamic) {
|
|
738
|
-
name = this.popStack();
|
|
739
|
-
delete options.name;
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
if (indent) {
|
|
743
|
-
options.indent = JSON.stringify(indent);
|
|
744
|
-
}
|
|
745
|
-
options.helpers = 'helpers';
|
|
746
|
-
options.partials = 'partials';
|
|
747
|
-
options.decorators = 'container.decorators';
|
|
748
|
-
|
|
749
|
-
if (!isDynamic) {
|
|
750
|
-
params.unshift(this.nameLookup('partials', name, 'partial'));
|
|
751
|
-
} else {
|
|
752
|
-
params.unshift(name);
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
if (this.options.compat) {
|
|
756
|
-
options.depths = 'depths';
|
|
757
|
-
}
|
|
758
|
-
options = this.objectLiteral(options);
|
|
759
|
-
params.push(options);
|
|
760
|
-
|
|
761
|
-
this.push(this.source.functionCall('container.invokePartial', '', params));
|
|
762
|
-
},
|
|
763
|
-
|
|
764
|
-
// [assignToHash]
|
|
765
|
-
//
|
|
766
|
-
// On stack, before: value, ..., hash, ...
|
|
767
|
-
// On stack, after: ..., hash, ...
|
|
768
|
-
//
|
|
769
|
-
// Pops a value off the stack and assigns it to the current hash
|
|
770
|
-
assignToHash: function assignToHash(key) {
|
|
771
|
-
var value = this.popStack(),
|
|
772
|
-
context = undefined,
|
|
773
|
-
type = undefined,
|
|
774
|
-
id = undefined;
|
|
775
|
-
|
|
776
|
-
if (this.trackIds) {
|
|
777
|
-
id = this.popStack();
|
|
778
|
-
}
|
|
779
|
-
if (this.stringParams) {
|
|
780
|
-
type = this.popStack();
|
|
781
|
-
context = this.popStack();
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
var hash = this.hash;
|
|
785
|
-
if (context) {
|
|
786
|
-
hash.contexts[key] = context;
|
|
787
|
-
}
|
|
788
|
-
if (type) {
|
|
789
|
-
hash.types[key] = type;
|
|
790
|
-
}
|
|
791
|
-
if (id) {
|
|
792
|
-
hash.ids[key] = id;
|
|
793
|
-
}
|
|
794
|
-
hash.values[key] = value;
|
|
795
|
-
},
|
|
796
|
-
|
|
797
|
-
pushId: function pushId(type, name, child) {
|
|
798
|
-
if (type === 'BlockParam') {
|
|
799
|
-
this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : ''));
|
|
800
|
-
} else if (type === 'PathExpression') {
|
|
801
|
-
this.pushString(name);
|
|
802
|
-
} else if (type === 'SubExpression') {
|
|
803
|
-
this.pushStackLiteral('true');
|
|
804
|
-
} else {
|
|
805
|
-
this.pushStackLiteral('null');
|
|
806
|
-
}
|
|
807
|
-
},
|
|
808
|
-
|
|
809
|
-
// HELPERS
|
|
810
|
-
|
|
811
|
-
compiler: JavaScriptCompiler,
|
|
812
|
-
|
|
813
|
-
compileChildren: function compileChildren(environment, options) {
|
|
814
|
-
var children = environment.children,
|
|
815
|
-
child = undefined,
|
|
816
|
-
compiler = undefined;
|
|
817
|
-
|
|
818
|
-
for (var i = 0, l = children.length; i < l; i++) {
|
|
819
|
-
child = children[i];
|
|
820
|
-
compiler = new this.compiler(); // eslint-disable-line new-cap
|
|
821
|
-
|
|
822
|
-
var existing = this.matchExistingProgram(child);
|
|
823
|
-
|
|
824
|
-
if (existing == null) {
|
|
825
|
-
// Placeholder to prevent name conflicts for nested children
|
|
826
|
-
var index = this.context.programs.push('') - 1;
|
|
827
|
-
child.index = index;
|
|
828
|
-
child.name = 'program' + index;
|
|
829
|
-
this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);
|
|
830
|
-
this.context.decorators[index] = compiler.decorators;
|
|
831
|
-
this.context.environments[index] = child;
|
|
832
|
-
|
|
833
|
-
this.useDepths = this.useDepths || compiler.useDepths;
|
|
834
|
-
this.useBlockParams = this.useBlockParams || compiler.useBlockParams;
|
|
835
|
-
child.useDepths = this.useDepths;
|
|
836
|
-
child.useBlockParams = this.useBlockParams;
|
|
837
|
-
} else {
|
|
838
|
-
child.index = existing.index;
|
|
839
|
-
child.name = 'program' + existing.index;
|
|
840
|
-
|
|
841
|
-
this.useDepths = this.useDepths || existing.useDepths;
|
|
842
|
-
this.useBlockParams = this.useBlockParams || existing.useBlockParams;
|
|
843
|
-
}
|
|
844
|
-
}
|
|
845
|
-
},
|
|
846
|
-
matchExistingProgram: function matchExistingProgram(child) {
|
|
847
|
-
for (var i = 0, len = this.context.environments.length; i < len; i++) {
|
|
848
|
-
var environment = this.context.environments[i];
|
|
849
|
-
if (environment && environment.equals(child)) {
|
|
850
|
-
return environment;
|
|
851
|
-
}
|
|
852
|
-
}
|
|
853
|
-
},
|
|
854
|
-
|
|
855
|
-
programExpression: function programExpression(guid) {
|
|
856
|
-
var child = this.environment.children[guid],
|
|
857
|
-
programParams = [child.index, 'data', child.blockParams];
|
|
858
|
-
|
|
859
|
-
if (this.useBlockParams || this.useDepths) {
|
|
860
|
-
programParams.push('blockParams');
|
|
861
|
-
}
|
|
862
|
-
if (this.useDepths) {
|
|
863
|
-
programParams.push('depths');
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
return 'container.program(' + programParams.join(', ') + ')';
|
|
867
|
-
},
|
|
868
|
-
|
|
869
|
-
useRegister: function useRegister(name) {
|
|
870
|
-
if (!this.registers[name]) {
|
|
871
|
-
this.registers[name] = true;
|
|
872
|
-
this.registers.list.push(name);
|
|
873
|
-
}
|
|
874
|
-
},
|
|
875
|
-
|
|
876
|
-
push: function push(expr) {
|
|
877
|
-
if (!(expr instanceof Literal)) {
|
|
878
|
-
expr = this.source.wrap(expr);
|
|
879
|
-
}
|
|
880
|
-
|
|
881
|
-
this.inlineStack.push(expr);
|
|
882
|
-
return expr;
|
|
883
|
-
},
|
|
884
|
-
|
|
885
|
-
pushStackLiteral: function pushStackLiteral(item) {
|
|
886
|
-
this.push(new Literal(item));
|
|
887
|
-
},
|
|
888
|
-
|
|
889
|
-
pushSource: function pushSource(source) {
|
|
890
|
-
if (this.pendingContent) {
|
|
891
|
-
this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation));
|
|
892
|
-
this.pendingContent = undefined;
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
if (source) {
|
|
896
|
-
this.source.push(source);
|
|
897
|
-
}
|
|
898
|
-
},
|
|
899
|
-
|
|
900
|
-
replaceStack: function replaceStack(callback) {
|
|
901
|
-
var prefix = ['('],
|
|
902
|
-
stack = undefined,
|
|
903
|
-
createdStack = undefined,
|
|
904
|
-
usedLiteral = undefined;
|
|
905
|
-
|
|
906
|
-
/* istanbul ignore next */
|
|
907
|
-
if (!this.isInline()) {
|
|
908
|
-
throw new _exception2['default']('replaceStack on non-inline');
|
|
909
|
-
}
|
|
910
|
-
|
|
911
|
-
// We want to merge the inline statement into the replacement statement via ','
|
|
912
|
-
var top = this.popStack(true);
|
|
913
|
-
|
|
914
|
-
if (top instanceof Literal) {
|
|
915
|
-
// Literals do not need to be inlined
|
|
916
|
-
stack = [top.value];
|
|
917
|
-
prefix = ['(', stack];
|
|
918
|
-
usedLiteral = true;
|
|
919
|
-
} else {
|
|
920
|
-
// Get or create the current stack name for use by the inline
|
|
921
|
-
createdStack = true;
|
|
922
|
-
var _name = this.incrStack();
|
|
923
|
-
|
|
924
|
-
prefix = ['((', this.push(_name), ' = ', top, ')'];
|
|
925
|
-
stack = this.topStack();
|
|
926
|
-
}
|
|
927
|
-
|
|
928
|
-
var item = callback.call(this, stack);
|
|
929
|
-
|
|
930
|
-
if (!usedLiteral) {
|
|
931
|
-
this.popStack();
|
|
932
|
-
}
|
|
933
|
-
if (createdStack) {
|
|
934
|
-
this.stackSlot--;
|
|
935
|
-
}
|
|
936
|
-
this.push(prefix.concat(item, ')'));
|
|
937
|
-
},
|
|
938
|
-
|
|
939
|
-
incrStack: function incrStack() {
|
|
940
|
-
this.stackSlot++;
|
|
941
|
-
if (this.stackSlot > this.stackVars.length) {
|
|
942
|
-
this.stackVars.push('stack' + this.stackSlot);
|
|
943
|
-
}
|
|
944
|
-
return this.topStackName();
|
|
945
|
-
},
|
|
946
|
-
topStackName: function topStackName() {
|
|
947
|
-
return 'stack' + this.stackSlot;
|
|
948
|
-
},
|
|
949
|
-
flushInline: function flushInline() {
|
|
950
|
-
var inlineStack = this.inlineStack;
|
|
951
|
-
this.inlineStack = [];
|
|
952
|
-
for (var i = 0, len = inlineStack.length; i < len; i++) {
|
|
953
|
-
var entry = inlineStack[i];
|
|
954
|
-
/* istanbul ignore if */
|
|
955
|
-
if (entry instanceof Literal) {
|
|
956
|
-
this.compileStack.push(entry);
|
|
957
|
-
} else {
|
|
958
|
-
var stack = this.incrStack();
|
|
959
|
-
this.pushSource([stack, ' = ', entry, ';']);
|
|
960
|
-
this.compileStack.push(stack);
|
|
961
|
-
}
|
|
962
|
-
}
|
|
963
|
-
},
|
|
964
|
-
isInline: function isInline() {
|
|
965
|
-
return this.inlineStack.length;
|
|
966
|
-
},
|
|
967
|
-
|
|
968
|
-
popStack: function popStack(wrapped) {
|
|
969
|
-
var inline = this.isInline(),
|
|
970
|
-
item = (inline ? this.inlineStack : this.compileStack).pop();
|
|
971
|
-
|
|
972
|
-
if (!wrapped && item instanceof Literal) {
|
|
973
|
-
return item.value;
|
|
974
|
-
} else {
|
|
975
|
-
if (!inline) {
|
|
976
|
-
/* istanbul ignore next */
|
|
977
|
-
if (!this.stackSlot) {
|
|
978
|
-
throw new _exception2['default']('Invalid stack pop');
|
|
979
|
-
}
|
|
980
|
-
this.stackSlot--;
|
|
981
|
-
}
|
|
982
|
-
return item;
|
|
983
|
-
}
|
|
984
|
-
},
|
|
985
|
-
|
|
986
|
-
topStack: function topStack() {
|
|
987
|
-
var stack = this.isInline() ? this.inlineStack : this.compileStack,
|
|
988
|
-
item = stack[stack.length - 1];
|
|
989
|
-
|
|
990
|
-
/* istanbul ignore if */
|
|
991
|
-
if (item instanceof Literal) {
|
|
992
|
-
return item.value;
|
|
993
|
-
} else {
|
|
994
|
-
return item;
|
|
995
|
-
}
|
|
996
|
-
},
|
|
997
|
-
|
|
998
|
-
contextName: function contextName(context) {
|
|
999
|
-
if (this.useDepths && context) {
|
|
1000
|
-
return 'depths[' + context + ']';
|
|
1001
|
-
} else {
|
|
1002
|
-
return 'depth' + context;
|
|
1003
|
-
}
|
|
1004
|
-
},
|
|
1005
|
-
|
|
1006
|
-
quotedString: function quotedString(str) {
|
|
1007
|
-
return this.source.quotedString(str);
|
|
1008
|
-
},
|
|
1009
|
-
|
|
1010
|
-
objectLiteral: function objectLiteral(obj) {
|
|
1011
|
-
return this.source.objectLiteral(obj);
|
|
1012
|
-
},
|
|
1013
|
-
|
|
1014
|
-
aliasable: function aliasable(name) {
|
|
1015
|
-
var ret = this.aliases[name];
|
|
1016
|
-
if (ret) {
|
|
1017
|
-
ret.referenceCount++;
|
|
1018
|
-
return ret;
|
|
1019
|
-
}
|
|
1020
|
-
|
|
1021
|
-
ret = this.aliases[name] = this.source.wrap(name);
|
|
1022
|
-
ret.aliasable = true;
|
|
1023
|
-
ret.referenceCount = 1;
|
|
1024
|
-
|
|
1025
|
-
return ret;
|
|
1026
|
-
},
|
|
1027
|
-
|
|
1028
|
-
setupHelper: function setupHelper(paramSize, name, blockHelper) {
|
|
1029
|
-
var params = [],
|
|
1030
|
-
paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);
|
|
1031
|
-
var foundHelper = this.nameLookup('helpers', name, 'helper'),
|
|
1032
|
-
callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})');
|
|
1033
|
-
|
|
1034
|
-
return {
|
|
1035
|
-
params: params,
|
|
1036
|
-
paramsInit: paramsInit,
|
|
1037
|
-
name: foundHelper,
|
|
1038
|
-
callParams: [callContext].concat(params)
|
|
1039
|
-
};
|
|
1040
|
-
},
|
|
1041
|
-
|
|
1042
|
-
setupParams: function setupParams(helper, paramSize, params) {
|
|
1043
|
-
var options = {},
|
|
1044
|
-
contexts = [],
|
|
1045
|
-
types = [],
|
|
1046
|
-
ids = [],
|
|
1047
|
-
objectArgs = !params,
|
|
1048
|
-
param = undefined;
|
|
1049
|
-
|
|
1050
|
-
if (objectArgs) {
|
|
1051
|
-
params = [];
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
|
-
options.name = this.quotedString(helper);
|
|
1055
|
-
options.hash = this.popStack();
|
|
1056
|
-
|
|
1057
|
-
if (this.trackIds) {
|
|
1058
|
-
options.hashIds = this.popStack();
|
|
1059
|
-
}
|
|
1060
|
-
if (this.stringParams) {
|
|
1061
|
-
options.hashTypes = this.popStack();
|
|
1062
|
-
options.hashContexts = this.popStack();
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
var inverse = this.popStack(),
|
|
1066
|
-
program = this.popStack();
|
|
1067
|
-
|
|
1068
|
-
// Avoid setting fn and inverse if neither are set. This allows
|
|
1069
|
-
// helpers to do a check for `if (options.fn)`
|
|
1070
|
-
if (program || inverse) {
|
|
1071
|
-
options.fn = program || 'container.noop';
|
|
1072
|
-
options.inverse = inverse || 'container.noop';
|
|
1073
|
-
}
|
|
1074
|
-
|
|
1075
|
-
// The parameters go on to the stack in order (making sure that they are evaluated in order)
|
|
1076
|
-
// so we need to pop them off the stack in reverse order
|
|
1077
|
-
var i = paramSize;
|
|
1078
|
-
while (i--) {
|
|
1079
|
-
param = this.popStack();
|
|
1080
|
-
params[i] = param;
|
|
1081
|
-
|
|
1082
|
-
if (this.trackIds) {
|
|
1083
|
-
ids[i] = this.popStack();
|
|
1084
|
-
}
|
|
1085
|
-
if (this.stringParams) {
|
|
1086
|
-
types[i] = this.popStack();
|
|
1087
|
-
contexts[i] = this.popStack();
|
|
1088
|
-
}
|
|
1089
|
-
}
|
|
1090
|
-
|
|
1091
|
-
if (objectArgs) {
|
|
1092
|
-
options.args = this.source.generateArray(params);
|
|
1093
|
-
}
|
|
1094
|
-
|
|
1095
|
-
if (this.trackIds) {
|
|
1096
|
-
options.ids = this.source.generateArray(ids);
|
|
1097
|
-
}
|
|
1098
|
-
if (this.stringParams) {
|
|
1099
|
-
options.types = this.source.generateArray(types);
|
|
1100
|
-
options.contexts = this.source.generateArray(contexts);
|
|
1101
|
-
}
|
|
1102
|
-
|
|
1103
|
-
if (this.options.data) {
|
|
1104
|
-
options.data = 'data';
|
|
1105
|
-
}
|
|
1106
|
-
if (this.useBlockParams) {
|
|
1107
|
-
options.blockParams = 'blockParams';
|
|
1108
|
-
}
|
|
1109
|
-
return options;
|
|
1110
|
-
},
|
|
1111
|
-
|
|
1112
|
-
setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) {
|
|
1113
|
-
var options = this.setupParams(helper, paramSize, params);
|
|
1114
|
-
options.loc = JSON.stringify(this.source.currentLocation);
|
|
1115
|
-
options = this.objectLiteral(options);
|
|
1116
|
-
if (useRegister) {
|
|
1117
|
-
this.useRegister('options');
|
|
1118
|
-
params.push('options');
|
|
1119
|
-
return ['options=', options];
|
|
1120
|
-
} else if (params) {
|
|
1121
|
-
params.push(options);
|
|
1122
|
-
return '';
|
|
1123
|
-
} else {
|
|
1124
|
-
return options;
|
|
1125
|
-
}
|
|
1126
|
-
}
|
|
1127
|
-
};
|
|
1128
|
-
|
|
1129
|
-
(function () {
|
|
1130
|
-
var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' ');
|
|
1131
|
-
|
|
1132
|
-
var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
|
|
1133
|
-
|
|
1134
|
-
for (var i = 0, l = reservedWords.length; i < l; i++) {
|
|
1135
|
-
compilerWords[reservedWords[i]] = true;
|
|
1136
|
-
}
|
|
1137
|
-
})();
|
|
1138
|
-
|
|
1139
|
-
/**
|
|
1140
|
-
* @deprecated May be removed in the next major version
|
|
1141
|
-
*/
|
|
1142
|
-
JavaScriptCompiler.isValidJavaScriptVariableName = function (name) {
|
|
1143
|
-
return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
|
|
1144
|
-
};
|
|
1145
|
-
|
|
1146
|
-
function strictLookup(requireTerminal, compiler, parts, startPartIndex, type) {
|
|
1147
|
-
var stack = compiler.popStack(),
|
|
1148
|
-
len = parts.length;
|
|
1149
|
-
if (requireTerminal) {
|
|
1150
|
-
len--;
|
|
1151
|
-
}
|
|
1152
|
-
|
|
1153
|
-
for (var i = startPartIndex; i < len; i++) {
|
|
1154
|
-
stack = compiler.nameLookup(stack, parts[i], type);
|
|
1155
|
-
}
|
|
1156
|
-
|
|
1157
|
-
if (requireTerminal) {
|
|
1158
|
-
return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[len]), ', ', JSON.stringify(compiler.source.currentLocation), ' )'];
|
|
1159
|
-
} else {
|
|
1160
|
-
return stack;
|
|
1161
|
-
}
|
|
1162
|
-
}
|
|
1163
|
-
|
|
1164
|
-
exports['default'] = JavaScriptCompiler;
|
|
1165
|
-
module.exports = exports['default'];
|
|
1166
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2phdmFzY3JpcHQtY29tcGlsZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztvQkFBb0QsU0FBUzs7eUJBQ3ZDLGNBQWM7Ozs7cUJBQ1osVUFBVTs7dUJBQ2QsWUFBWTs7OztBQUVoQyxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDdEIsTUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Q0FDcEI7O0FBRUQsU0FBUyxrQkFBa0IsR0FBRyxFQUFFOztBQUVoQyxrQkFBa0IsQ0FBQyxTQUFTLEdBQUc7OztBQUc3QixZQUFVLEVBQUUsb0JBQVMsTUFBTSxFQUFFLElBQUksZUFBZTtBQUM5QyxXQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDOUM7QUFDRCxlQUFhLEVBQUUsdUJBQVMsSUFBSSxFQUFFO0FBQzVCLFdBQU8sQ0FDTCxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEVBQ2xDLFdBQVcsRUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNwQixHQUFHLENBQ0osQ0FBQztHQUNIOztBQUVELGNBQVksRUFBRSx3QkFBVztBQUN2QixRQUFNLFFBQVEsMEJBQW9CO1FBQ2hDLFFBQVEsR0FBRyx1QkFBaUIsUUFBUSxDQUFDLENBQUM7QUFDeEMsV0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztHQUM3Qjs7QUFFRCxnQkFBYyxFQUFFLHdCQUFTLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFOztBQUVuRCxRQUFJLENBQUMsZUFBUSxNQUFNLENBQUMsRUFBRTtBQUNwQixZQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNuQjtBQUNELFVBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7O0FBRTVDLFFB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RSxjQUFjLEVBQUUsSUFBSSxFQUFFO0FBQzVFLE1BQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUU7TUFDN0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDckIsTUFBSSxlQUFlLEVBQUU7QUFDbkIsT0FBRyxFQUFFLENBQUM7R0FDUDs7QUFFRCxPQUFLLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3pDLFNBQUssR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDcEQ7O0FBRUQsTUFBSSxlQUFlLEVBQUU7QUFDbkIsV0FBTyxDQUNMLFFBQVEsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFDdEMsR0FBRyxFQUNILEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDakMsSUFBSSxFQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFDL0MsSUFBSSxDQUNMLENBQUM7R0FDSCxNQUFNO0FBQ0wsV0FBTyxLQUFLLENBQUM7R0FDZDtDQUNGOztxQkFFYyxrQkFBa0IiLCJmaWxlIjoiamF2YXNjcmlwdC1jb21waWxlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTVBJTEVSX1JFVklTSU9OLCBSRVZJU0lPTl9DSEFOR0VTIH0gZnJvbSAnLi4vYmFzZSc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IENvZGVHZW4gZnJvbSAnLi9jb2RlLWdlbic7XG5cbmZ1bmN0aW9uIExpdGVyYWwodmFsdWUpIHtcbiAgdGhpcy52YWx1ZSA9IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBKYXZhU2NyaXB0Q29tcGlsZXIoKSB7fVxuXG5KYXZhU2NyaXB0Q29tcGlsZXIucHJvdG90eXBlID0ge1xuICAvLyBQVUJMSUMgQVBJOiBZb3UgY2FuIG92ZXJyaWRlIHRoZXNlIG1ldGhvZHMgaW4gYSBzdWJjbGFzcyB0byBwcm92aWRlXG4gIC8vIGFsdGVybmF0aXZlIGNvbXBpbGVkIGZvcm1zIGZvciBuYW1lIGxvb2t1cCBhbmQgYnVmZmVyaW5nIHNlbWFudGljc1xuICBuYW1lTG9va3VwOiBmdW5jdGlvbihwYXJlbnQsIG5hbWUgLyosICB0eXBlICovKSB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxOYW1lTG9va3VwKHBhcmVudCwgbmFtZSk7XG4gIH0sXG4gIGRlcHRoZWRMb29rdXA6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICByZXR1cm4gW1xuICAgICAgdGhpcy5hbGlhc2FibGUoJ2NvbnRhaW5lci5sb29rdXAnKSxcbiAgICAgICcoZGVwdGhzLCAnLFxuICAgICAgSlNPTi5zdHJpbmdpZnkobmFtZSksXG4gICAgICAnKSdcbiAgICBdO1xuICB9LFxuXG4gIGNvbXBpbGVySW5mbzogZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgcmV2aXNpb24gPSBDT01QSUxFUl9SRVZJU0lPTixcbiAgICAgIHZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tyZXZpc2lvbl07XG4gICAgcmV0dXJuIFtyZXZpc2lvbiwgdmVyc2lvbnNdO1xuICB9LFxuXG4gIGFwcGVuZFRvQnVmZmVyOiBmdW5jdGlvbihzb3VyY2UsIGxvY2F0aW9uLCBleHBsaWNpdCkge1xuICAgIC8vIEZvcmNlIGEgc291cmNlIGFzIHRoaXMgc2ltcGxpZmllcyB0aGUgbWVyZ2UgbG9naWMuXG4gICAgaWYgKCFpc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgIHNvdXJjZSA9IFtzb3VyY2VdO1xuICAgIH1cbiAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZS53cmFwKHNvdXJjZSwgbG9jYXRpb24pO1xuXG4gICAgaWYgKHRoaXMuZW52aXJvbm1lbnQuaXNTaW1wbGUpIHtcbiAgICAgIHJldHVybiBbJ3JldHVybiAnLCBzb3VyY2UsICc7J107XG4gICAgfSBlbHNlIGlmIChleHBsaWNpdCkge1xuICAgICAgLy8gVGhpcyBpcyBhIGNhc2Ugd2hlcmUgdGhlIGJ1ZmZlciBvcGVyYXRpb24gb2NjdXJzIGFzIGEgY2hpbGQgb2YgYW5vdGhlclxuICAgICAgLy8gY29uc3RydWN0LCBnZW5lcmFsbHkgYnJhY2VzLiBXZSBoYXZlIHRvIGV4cGxpY2l0bHkgb3V0cHV0IHRoZXNlIGJ1ZmZlclxuICAgICAgLy8gb3BlcmF0aW9ucyB0byBlbnN1cmUgdGhhdCB0aGUgZW1pdHRlZCBjb2RlIGdvZXMgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24uXG4gICAgICByZXR1cm4gWydidWZmZXIgKz0gJywgc291cmNlLCAnOyddO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2UuYXBwZW5kVG9CdWZmZXIgPSB0cnVlO1xuICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICB9XG4gIH0sXG5cbiAgaW5pdGlhbGl6ZUJ1ZmZlcjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVkU3RyaW5nKCcnKTtcbiAgfSxcbiAgLy8gRU5EIFBVQkxJQyBBUElcbiAgaW50ZXJuYWxOYW1lTG9va3VwOiBmdW5jdGlvbihwYXJlbnQsIG5hbWUpIHtcbiAgICB0aGlzLmxvb2t1cFByb3BlcnR5RnVuY3Rpb25Jc1VzZWQgPSB0cnVlO1xuICAgIHJldHVybiBbJ2xvb2t1cFByb3BlcnR5KCcsIHBhcmVudCwgJywnLCBKU09OLnN0cmluZ2lmeShuYW1lKSwgJyknXTtcbiAgfSxcblxuICBsb29rdXBQcm9wZXJ0eUZ1bmN0aW9uSXNVc2VkOiBmYWxzZSxcblxuICBjb21waWxlOiBmdW5jdGlvbihlbnZpcm9ubWVudCwgb3B0aW9ucywgY29udGV4dCwgYXNPYmplY3QpIHtcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnN0cmluZ1BhcmFtcyA9IHRoaXMub3B0aW9ucy5zdHJpbmdQYXJhbXM7XG4gICAgdGhpcy50cmFja0lkcyA9IHRoaXMub3B0aW9ucy50cmFja0lkcztcbiAgICB0aGlzLnByZWNvbXBpbGUgPSAhYXNPYmplY3Q7XG5cbiAgICB0aGlzLm5hbWUgPSB0aGlzLmVudmlyb25tZW50Lm5hbWU7XG4gICAgdGhpcy5pc0NoaWxkID0gISFjb250ZXh0O1xuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQgfHwge1xuICAgICAgZGVjb3JhdG9yczogW10sXG4gICAgICBwcm9ncmFtczogW10sXG4gICAgICBlbnZpcm9ubWVudHM6IFtdXG4gICAgfTtcblxuICAgIHRoaXMucHJlYW1ibGUoKTtcblxuICAgIHRoaXMuc3RhY2tTbG90ID0gMDtcbiAgICB0aGlzLnN0YWNrVmFycyA9IFtdO1xuICAgIHRoaXMuYWxpYXNlcyA9IHt9O1xuICAgIHRoaXMucmVnaXN0ZXJzID0geyBsaXN0OiBbXSB9O1xuICAgIHRoaXMuaGFzaGVzID0gW107XG4gICAgdGhpcy5jb21waWxlU3RhY2sgPSBbXTtcbiAgICB0aGlzLmlubGluZVN0YWNrID0gW107XG4gICAgdGhpcy5ibG9ja1BhcmFtcyA9IFtdO1xuXG4gICAgdGhpcy5jb21waWxlQ2hpbGRyZW4oZW52aXJvbm1lbnQsIG9wdGlvbnMpO1xuXG4gICAgdGhpcy51c2VEZXB0aHMgPVxuICAgICAgdGhpcy51c2VEZXB0aHMgfHxcbiAgICAgIGVudmlyb25tZW50LnVzZURlcHRocyB8fFxuICAgICAgZW52aXJvbm1lbnQudXNlRGVjb3JhdG9ycyB8fFxuICAgICAgdGhpcy5vcHRpb25zLmNvbXBhdDtcbiAgICB0aGlzLnVzZUJsb2NrUGFyYW1zID0gdGhpcy51c2VCbG9ja1BhcmFtcyB8fCBlbnZpcm9ubWVudC51c2VCbG9ja1BhcmFtcztcblxuICAgIGxldCBvcGNvZGVzID0gZW52aXJvbm1lbnQub3Bjb2RlcyxcbiAgICAgIG9wY29kZSxcbiAgICAgIGZpcnN0TG9jLFxuICAgICAgaSxcbiAgICAgIGw7XG5cbiAgICBmb3IgKGkgPSAwLCBsID0gb3Bjb2Rlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIG9wY29kZSA9IG9wY29kZXNbaV07XG5cbiAgICAgIHRoaXMuc291cmNlLmN1cnJlbnRMb2NhdGlvbiA9IG9wY29kZS5sb2M7XG4gICAgICBmaXJzdExvYyA9IGZpcnN0TG9jIHx8IG9wY29kZS5sb2M7XG4gICAgICB0aGlzW29wY29kZS5vcGNvZGVdLmFwcGx5KHRoaXMsIG9wY29kZS5hcmdzKTtcbiAgICB9XG5cbiAgICAvLyBGbHVzaCBhbnkgdHJhaWxpbmcgY29udGVudCB0aGF0IG1pZ2h0IGJlIHBlbmRpbmcuXG4gICAgdGhpcy5zb3VyY2UuY3VycmVudExvY2F0aW9uID0gZmlyc3RMb2M7XG4gICAgdGhpcy5wdXNoU291cmNlKCcnKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuc3RhY2tTbG90IHx8IHRoaXMuaW5saW5lU3RhY2subGVuZ3RoIHx8IHRoaXMuY29tcGlsZVN0YWNrLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ29tcGlsZSBjb21wbGV0ZWQgd2l0aCBjb250ZW50IGxlZnQgb24gc3RhY2snKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGVjb3JhdG9ycy5pc0VtcHR5KCkpIHtcbiAgICAgIHRoaXMudXNlRGVjb3JhdG9ycyA9IHRydWU7XG5cbiAgICAgIHRoaXMuZGVjb3JhdG9ycy5wcmVwZW5kKFtcbiAgICAgICAgJ3ZhciBkZWNvcmF0b3JzID0gY29udGFpbmVyLmRlY29yYXRvcnMsICcsXG4gICAgICAgIHRoaXMubG9va3VwUHJvcGVydHlGdW5jdGlvblZhckRlY2xhcmF0aW9uKCksXG4gICAgICAgICc7XFxuJ1xuICAgICAgXSk7XG4gICAgICB0aGlzLmRlY29yYXRvcnMucHVzaCgncmV0dXJuIGZuOycpO1xuXG4gICAgICBpZiAoYXNPYmplY3QpIHtcbiAgICAgICAgdGhpcy5kZWNvcmF0b3JzID0gRnVuY3Rpb24uYXBwbHkodGhpcywgW1xuICAgICAgICAgICdmbicsXG4gICAgICAgICAgJ3Byb3BzJyxcbiAgICAgICAgICAnY29udGFpbmVyJyxcbiAgICAgICAgICAnZGVwdGgwJyxcbiAgICAgICAgICAnZGF0YScsXG4gICAgICAgICAgJ2Jsb2NrUGFyYW1zJyxcbiAgICAgICAgICAnZGVwdGhzJyxcbiAgICAgICAgICB0aGlzLmRlY29yYXRvcnMubWVyZ2UoKVxuICAgICAgICBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVjb3JhdG9ycy5wcmVwZW5kKFxuICAgICAgICAgICdmdW5jdGlvbihmbiwgcHJvcHMsIGNvbnRhaW5lciwgZGVwdGgwLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XFxuJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmRlY29yYXRvcnMucHVzaCgnfVxcbicpO1xuICAgICAgICB0aGlzLmRlY29yYXRvcnMgPSB0aGlzLmRlY29yYXRvcnMubWVyZ2UoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWNvcmF0b3JzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCBmbiA9IHRoaXMuY3JlYXRlRnVuY3Rpb25Db250ZXh0KGFzT2JqZWN0KTtcbiAgICBpZiAoIXRoaXMuaXNDaGlsZCkge1xuICAgICAgbGV0IHJldCA9IHtcbiAgICAgICAgY29tcGlsZXI6IHRoaXMuY29tcGlsZXJJbmZvKCksXG4gICAgICAgIG1haW46IGZuXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5kZWNvcmF0b3JzKSB7XG4gICAgICAgIHJldC5tYWluX2QgPSB0aGlzLmRlY29yYXRvcnM7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FtZWxjYXNlXG4gICAgICAgIHJldC51c2VEZWNvcmF0b3JzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IHsgcHJvZ3JhbXMsIGRlY29yYXRvcnMgfSA9IHRoaXMuY29udGV4dDtcbiAgICAgIGZvciAoaSA9IDAsIGwgPSBwcm9ncmFtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgcmV0W2ldID0gcHJvZ3JhbXNbaV07XG4gICAgICAgIGlmIChkZWNvcmF0b3JzW2ldKSB7XG4gICAgICAgICAgcmV0W2kgKyAnX2QnXSA9IGRlY29yYXRvcnNbaV07XG4gICAgICAgICAgcmV0LnVzZURlY29yYXRvcnMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LnVzZVBhcnRpYWwpIHtcbiAgICAgICAgcmV0LnVzZVBhcnRpYWwgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5kYXRhKSB7XG4gICAgICAgIHJldC51c2VEYXRhID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnVzZURlcHRocykge1xuICAgICAgICByZXQudXNlRGVwdGhzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnVzZUJsb2NrUGFyYW1zKSB7XG4gICAgICAgIHJldC51c2VCbG9ja1BhcmFtcyA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhdCkge1xuICAgICAgICByZXQuY29tcGF0ID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFhc09iamVjdCkge1xuICAgICAgICByZXQuY29tcGlsZXIgPSBKU09OLnN0cmluZ2lmeShyZXQuY29tcGlsZXIpO1xuXG4gICAgICAgIHRoaXMuc291cmNlLmN1cnJlbnRMb2NhdGlvbiA9IHsgc3RhcnQ6IHsgbGluZTogMSwgY29sdW1uOiAwIH0gfTtcbiAgICAgICAgcmV0ID0gdGhpcy5vYmplY3RMaXRlcmFsKHJldCk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuc3JjTmFtZSkge1xuICAgICAgICAgIHJldCA9IHJldC50b1N0cmluZ1dpdGhTb3VyY2VNYXAoeyBmaWxlOiBvcHRpb25zLmRlc3ROYW1lIH0pO1xuICAgICAgICAgIHJldC5tYXAgPSByZXQubWFwICYmIHJldC5tYXAudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXQgPSByZXQudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0LmNvbXBpbGVyT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZuO1xuICAgIH1cbiAgfSxcblxuICBwcmVhbWJsZTogZnVuY3Rpb24oKSB7XG4gICAgLy8gdHJhY2sgdGhlIGxhc3QgY29udGV4dCBwdXNoZWQgaW50byBwbGFjZSB0byBhbGxvdyBza2lwcGluZyB0aGVcbiAgICAvLyBnZXRDb250ZXh0IG9wY29kZSB3aGVuIGl0IHdvdWxkIGJlIGEgbm9vcFxuICAgIHRoaXMubGFzdENvbnRleHQgPSAwO1xuICAgIHRoaXMuc291cmNlID0gbmV3IENvZGVHZW4odGhpcy5vcHRpb25zLnNyY05hbWUpO1xuICAgIHRoaXMuZGVjb3JhdG9ycyA9IG5ldyBDb2RlR2VuKHRoaXMub3B0aW9ucy5zcmNOYW1lKTtcbiAgfSxcblxuICBjcmVhdGVGdW5jdGlvbkNvbnRleHQ6IGZ1bmN0aW9uKGFzT2JqZWN0KSB7XG4gICAgbGV0IHZhckRlY2xhcmF0aW9ucyA9ICcnO1xuXG4gICAgbGV0IGxvY2FscyA9IHRoaXMuc3RhY2tWYXJzLmNvbmNhdCh0aGlzLnJlZ2lzdGVycy5saXN0KTtcbiAgICBpZiAobG9jYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhckRlY2xhcmF0aW9ucyArPSAnLCAnICsgbG9jYWxzLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgbWluaW1pemVyIGFsaWFzIG1hcHBpbmdzXG4gICAgLy9cbiAgICAvLyBXaGVuIHVzaW5nIHRydWUgU291cmNlTm9kZXMsIHRoaXMgd2lsbCB1cGRhdGUgYWxsIHJlZmVyZW5jZXMgdG8gdGhlIGdpdmVuIGFsaWFzXG4gICAgLy8gYXMgdGhlIHNvdXJjZSBub2RlcyBhcmUgcmV1c2VkIGluIHNpdHUuIEZvciB0aGUgbm9uLXNvdXJjZSBub2RlIGNvbXBpbGF0aW9uIG1vZGUsXG4gICAgLy8gYWxpYXNlcyB3aWxsIG5vdCBiZSB1c2VkLCBidXQgdGhpcyBjYXNlIGlzIGFscmVhZHkgYmVpbmcgcnVuIG9uIHRoZSBjbGllbnQgYW5kXG4gICAgLy8gd2UgYXJlbid0IGNvbmNlcm4gYWJvdXQgbWluaW1pemluZyB0aGUgdGVtcGxhdGUgc2l6ZS5cbiAgICBsZXQgYWxpYXNDb3VudCA9IDA7XG4gICAgT2JqZWN0LmtleXModGhpcy5hbGlhc2VzKS5mb3JFYWNoKGFsaWFzID0+IHtcbiAgICAgIGxldCBub2RlID0gdGhpcy5hbGlhc2VzW2FsaWFzXTtcbiAgICAgIGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUucmVmZXJlbmNlQ291bnQgPiAxKSB7XG4gICAgICAgIHZhckRlY2xhcmF0aW9ucyArPSAnLCBhbGlhcycgKyArK2FsaWFzQ291bnQgKyAnPScgKyBhbGlhcztcbiAgICAgICAgbm9kZS5jaGlsZHJlblswXSA9ICdhbGlhcycgKyBhbGlhc0NvdW50O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubG9va3VwUHJvcGVydHlGdW5jdGlvbklzVXNlZCkge1xuICAgICAgdmFyRGVjbGFyYXRpb25zICs9ICcsICcgKyB0aGlzLmxvb2t1cFByb3BlcnR5RnVuY3Rpb25WYXJEZWNsYXJhdGlvbigpO1xuICAgIH1cblxuICAgIGxldCBwYXJhbXMgPSBbJ2NvbnRhaW5lcicsICdkZXB0aDAnLCAnaGVscGVycycsICdwYXJ0aWFscycsICdkYXRhJ107XG5cbiAgICBpZiAodGhpcy51c2VCbG9ja1BhcmFtcyB8fCB0aGlzLnVzZURlcHRocykge1xuICAgICAgcGFyYW1zLnB1c2goJ2Jsb2NrUGFyYW1zJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnVzZURlcHRocykge1xuICAgICAgcGFyYW1zLnB1c2goJ2RlcHRocycpO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm0gYSBzZWNvbmQgcGFzcyBvdmVyIHRoZSBvdXRwdXQgdG8gbWVyZ2UgY29udGVudCB3aGVuIHBvc3NpYmxlXG4gICAgbGV0IHNvdXJjZSA9IHRoaXMubWVyZ2VTb3VyY2UodmFyRGVjbGFyYXRpb25zKTtcblxuICAgIGlmIChhc09iamVjdCkge1xuICAgICAgcGFyYW1zLnB1c2goc291cmNlKTtcblxuICAgICAgcmV0dXJuIEZ1bmN0aW9uLmFwcGx5KHRoaXMsIHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnNvdXJjZS53cmFwKFtcbiAgICAgICAgJ2Z1bmN0aW9uKCcsXG4gICAgICAgIHBhcmFtcy5qb2luKCcsJyksXG4gICAgICAgICcpIHtcXG4gICcsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgJ30nXG4gICAgICBdKTtcbiAgICB9XG4gIH0sXG4gIG1lcmdlU291cmNlOiBmdW5jdGlvbih2YXJEZWNsYXJhdGlvbnMpIHtcbiAgICBsZXQgaXNTaW1wbGUgPSB0aGlzLmVudmlyb25tZW50LmlzU2ltcGxlLFxuICAgICAgYXBwZW5kT25seSA9ICF0aGlzLmZvcmNlQnVmZmVyLFxuICAgICAgYXBwZW5kRmlyc3QsXG4gICAgICBzb3VyY2VTZWVuLFxuICAgICAgYnVmZmVyU3RhcnQsXG4gICAgICBidWZmZXJFbmQ7XG4gICAgdGhpcy5zb3VyY2UuZWFjaChsaW5lID0+IHtcbiAgICAgIGlmIChsaW5lLmFwcGVuZFRvQnVmZmVyKSB7XG4gICAgICAgIGlmIChidWZmZXJTdGFydCkge1xuICAgICAgICAgIGxpbmUucHJlcGVuZCgnICArICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1ZmZlclN0YXJ0ID0gbGluZTtcbiAgICAgICAgfVxuICAgICAgICBidWZmZXJFbmQgPSBsaW5lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGJ1ZmZlclN0YXJ0KSB7XG4gICAgICAgICAgaWYgKCFzb3VyY2VTZWVuKSB7XG4gICAgICAgICAgICBhcHBlbmRGaXJzdCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJ1ZmZlclN0YXJ0LnByZXBlbmQoJ2J1ZmZlciArPSAnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnVmZmVyRW5kLmFkZCgnOycpO1xuICAgICAgICAgIGJ1ZmZlclN0YXJ0ID0gYnVmZmVyRW5kID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc291cmNlU2VlbiA9IHRydWU7XG4gICAgICAgIGlmICghaXNTaW1wbGUpIHtcbiAgICAgICAgICBhcHBlbmRPbmx5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChhcHBlbmRPbmx5KSB7XG4gICAgICBpZiAoYnVmZmVyU3RhcnQpIHtcbiAgICAgICAgYnVmZmVyU3RhcnQucHJlcGVuZCgncmV0dXJuICcpO1xuICAgICAgICBidWZmZXJFbmQuYWRkKCc7Jyk7XG4gICAgICB9IGVsc2UgaWYgKCFzb3VyY2VTZWVuKSB7XG4gICAgICAgIHRoaXMuc291cmNlLnB1c2goJ3JldHVybiBcIlwiOycpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXJEZWNsYXJhdGlvbnMgKz1cbiAgICAgICAgJywgYnVmZmVyID0gJyArIChhcHBlbmRGaXJzdCA/ICcnIDogdGhpcy5pbml0aWFsaXplQnVmZmVyKCkpO1xuXG4gICAgICBpZiAoYnVmZmVyU3RhcnQpIHtcbiAgICAgICAgYnVmZmVyU3RhcnQucHJlcGVuZCgncmV0dXJuIGJ1ZmZlciArICcpO1xuICAgICAgICBidWZmZXJFbmQuYWRkKCc7Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvdXJjZS5wdXNoKCdyZXR1cm4gYnVmZmVyOycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YXJEZWNsYXJhdGlvbnMpIHtcbiAgICAgIHRoaXMuc291cmNlLnByZXBlbmQoXG4gICAgICAgICd2YXIgJyArIHZhckRlY2xhcmF0aW9ucy5zdWJzdHJpbmcoMikgKyAoYXBwZW5kRmlyc3QgPyAnJyA6ICc7XFxuJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc291cmNlLm1lcmdlKCk7XG4gIH0sXG5cbiAgbG9va3VwUHJvcGVydHlGdW5jdGlvblZhckRlY2xhcmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gYFxuICAgICAgbG9va3VwUHJvcGVydHkgPSBjb250YWluZXIubG9va3VwUHJvcGVydHkgfHwgZnVuY3Rpb24ocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gcGFyZW50W3Byb3BlcnR5TmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgICBgLnRyaW0oKTtcbiAgfSxcblxuICAvLyBbYmxvY2tWYWx1ZV1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogaGFzaCwgaW52ZXJzZSwgcHJvZ3JhbSwgdmFsdWVcbiAgLy8gT24gc3RhY2ssIGFmdGVyOiByZXR1cm4gdmFsdWUgb2YgYmxvY2tIZWxwZXJNaXNzaW5nXG4gIC8vXG4gIC8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgb3Bjb2RlIGlzIHRvIHRha2UgYSBibG9jayBvZiB0aGUgZm9ybVxuICAvLyBge3sjdGhpcy5mb299fS4uLnt7L3RoaXMuZm9vfX1gLCByZXNvbHZlIHRoZSB2YWx1ZSBvZiBgZm9vYCwgYW5kXG4gIC8vIHJlcGxhY2UgaXQgb24gdGhlIHN0YWNrIHdpdGggdGhlIHJlc3VsdCBvZiBwcm9wZXJseVxuICAvLyBpbnZva2luZyBibG9ja0hlbHBlck1pc3NpbmcuXG4gIGJsb2NrVmFsdWU6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBsZXQgYmxvY2tIZWxwZXJNaXNzaW5nID0gdGhpcy5hbGlhc2FibGUoXG4gICAgICAgICdjb250YWluZXIuaG9va3MuYmxvY2tIZWxwZXJNaXNzaW5nJ1xuICAgICAgKSxcbiAgICAgIHBhcmFtcyA9IFt0aGlzLmNvbnRleHROYW1lKDApXTtcbiAgICB0aGlzLnNldHVwSGVscGVyQXJncyhuYW1lLCAwLCBwYXJhbXMpO1xuXG4gICAgbGV0IGJsb2NrTmFtZSA9IHRoaXMucG9wU3RhY2soKTtcbiAgICBwYXJhbXMuc3BsaWNlKDEsIDAsIGJsb2NrTmFtZSk7XG5cbiAgICB0aGlzLnB1c2godGhpcy5zb3VyY2UuZnVuY3Rpb25DYWxsKGJsb2NrSGVscGVyTWlzc2luZywgJ2NhbGwnLCBwYXJhbXMpKTtcbiAgfSxcblxuICAvLyBbYW1iaWd1b3VzQmxvY2tWYWx1ZV1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogaGFzaCwgaW52ZXJzZSwgcHJvZ3JhbSwgdmFsdWVcbiAgLy8gQ29tcGlsZXIgdmFsdWUsIGJlZm9yZTogbGFzdEhlbHBlcj12YWx1ZSBvZiBsYXN0IGZvdW5kIGhlbHBlciwgaWYgYW55XG4gIC8vIE9uIHN0YWNrLCBhZnRlciwgaWYgbm8gbGFzdEhlbHBlcjogc2FtZSBhcyBbYmxvY2tWYWx1ZV1cbiAgLy8gT24gc3RhY2ssIGFmdGVyLCBpZiBsYXN0SGVscGVyOiB2YWx1ZVxuICBhbWJpZ3VvdXNCbG9ja1ZhbHVlOiBmdW5jdGlvbigpIHtcbiAgICAvLyBXZSdyZSBiZWluZyBhIGJpdCBjaGVla3kgYW5kIHJldXNpbmcgdGhlIG9wdGlvbnMgdmFsdWUgZnJvbSB0aGUgcHJpb3IgZXhlY1xuICAgIGxldCBibG9ja0hlbHBlck1pc3NpbmcgPSB0aGlzLmFsaWFzYWJsZShcbiAgICAgICAgJ2NvbnRhaW5lci5ob29rcy5ibG9ja0hlbHBlck1pc3NpbmcnXG4gICAgICApLFxuICAgICAgcGFyYW1zID0gW3RoaXMuY29udGV4dE5hbWUoMCldO1xuICAgIHRoaXMuc2V0dXBIZWxwZXJBcmdzKCcnLCAwLCBwYXJhbXMsIHRydWUpO1xuXG4gICAgdGhpcy5mbHVzaElubGluZSgpO1xuXG4gICAgbGV0IGN1cnJlbnQgPSB0aGlzLnRvcFN0YWNrKCk7XG4gICAgcGFyYW1zLnNwbGljZSgxLCAwLCBjdXJyZW50KTtcblxuICAgIHRoaXMucHVzaFNvdXJjZShbXG4gICAgICAnaWYgKCEnLFxuICAgICAgdGhpcy5sYXN0SGVscGVyLFxuICAgICAgJykgeyAnLFxuICAgICAgY3VycmVudCxcbiAgICAgICcgPSAnLFxuICAgICAgdGhpcy5zb3VyY2UuZnVuY3Rpb25DYWxsKGJsb2NrSGVscGVyTWlzc2luZywgJ2NhbGwnLCBwYXJhbXMpLFxuICAgICAgJ30nXG4gICAgXSk7XG4gIH0sXG5cbiAgLy8gW2FwcGVuZENvbnRlbnRdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IC4uLlxuICAvL1xuICAvLyBBcHBlbmRzIHRoZSBzdHJpbmcgdmFsdWUgb2YgYGNvbnRlbnRgIHRvIHRoZSBjdXJyZW50IGJ1ZmZlclxuICBhcHBlbmRDb250ZW50OiBmdW5jdGlvbihjb250ZW50KSB7XG4gICAgaWYgKHRoaXMucGVuZGluZ0NvbnRlbnQpIHtcbiAgICAgIGNvbnRlbnQgPSB0aGlzLnBlbmRpbmdDb250ZW50ICsgY29udGVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wZW5kaW5nTG9jYXRpb24gPSB0aGlzLnNvdXJjZS5jdXJyZW50TG9jYXRpb247XG4gICAgfVxuXG4gICAgdGhpcy5wZW5kaW5nQ29udGVudCA9IGNvbnRlbnQ7XG4gIH0sXG5cbiAgLy8gW2FwcGVuZF1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogdmFsdWUsIC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IC4uLlxuICAvL1xuICAvLyBDb2VyY2VzIGB2YWx1ZWAgdG8gYSBTdHJpbmcgYW5kIGFwcGVuZHMgaXQgdG8gdGhlIGN1cnJlbnQgYnVmZmVyLlxuICAvL1xuICAvLyBJZiBgdmFsdWVgIGlzIHRydXRoeSwgb3IgMCwgaXQgaXMgY29lcmNlZCBpbnRvIGEgc3RyaW5nIGFuZCBhcHBlbmRlZFxuICAvLyBPdGhlcndpc2UsIHRoZSBlbXB0eSBzdHJpbmcgaXMgYXBwZW5kZWRcbiAgYXBwZW5kOiBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5pc0lubGluZSgpKSB7XG4gICAgICB0aGlzLnJlcGxhY2VTdGFjayhjdXJyZW50ID0+IFsnICE9IG51bGwgPyAnLCBjdXJyZW50LCAnIDogXCJcIiddKTtcblxuICAgICAgdGhpcy5wdXNoU291cmNlKHRoaXMuYXBwZW5kVG9CdWZmZXIodGhpcy5wb3BTdGFjaygpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBsb2NhbCA9IHRoaXMucG9wU3RhY2soKTtcbiAgICAgIHRoaXMucHVzaFNvdXJjZShbXG4gICAgICAgICdpZiAoJyxcbiAgICAgICAgbG9jYWwsXG4gICAgICAgICcgIT0gbnVsbCkgeyAnLFxuICAgICAgICB0aGlzLmFwcGVuZFRvQnVmZmVyKGxvY2FsLCB1bmRlZmluZWQsIHRydWUpLFxuICAgICAgICAnIH0nXG4gICAgICBdKTtcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LmlzU2ltcGxlKSB7XG4gICAgICAgIHRoaXMucHVzaFNvdXJjZShbXG4gICAgICAgICAgJ2Vsc2UgeyAnLFxuICAgICAgICAgIHRoaXMuYXBwZW5kVG9CdWZmZXIoXCInJ1wiLCB1bmRlZmluZWQsIHRydWUpLFxuICAgICAgICAgICcgfSdcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8vIFthcHBlbmRFc2NhcGVkXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiB2YWx1ZSwgLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogLi4uXG4gIC8vXG4gIC8vIEVzY2FwZSBgdmFsdWVgIGFuZCBhcHBlbmQgaXQgdG8gdGhlIGJ1ZmZlclxuICBhcHBlbmRFc2NhcGVkOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnB1c2hTb3VyY2UoXG4gICAgICB0aGlzLmFwcGVuZFRvQnVmZmVyKFtcbiAgICAgICAgdGhpcy5hbGlhc2FibGUoJ2NvbnRhaW5lci5lc2NhcGVFeHByZXNzaW9uJyksXG4gICAgICAgICcoJyxcbiAgICAgICAgdGhpcy5wb3BTdGFjaygpLFxuICAgICAgICAnKSdcbiAgICAgIF0pXG4gICAgKTtcbiAgfSxcblxuICAvLyBbZ2V0Q29udGV4dF1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogLi4uXG4gIC8vIENvbXBpbGVyIHZhbHVlLCBhZnRlcjogbGFzdENvbnRleHQ9ZGVwdGhcbiAgLy9cbiAgLy8gU2V0IHRoZSB2YWx1ZSBvZiB0aGUgYGxhc3RDb250ZXh0YCBjb21waWxlciB2YWx1ZSB0byB0aGUgZGVwdGhcbiAgZ2V0Q29udGV4dDogZnVuY3Rpb24oZGVwdGgpIHtcbiAgICB0aGlzLmxhc3RDb250ZXh0ID0gZGVwdGg7XG4gIH0sXG5cbiAgLy8gW3B1c2hDb250ZXh0XVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiBjdXJyZW50Q29udGV4dCwgLi4uXG4gIC8vXG4gIC8vIFB1c2hlcyB0aGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQgY29udGV4dCBvbnRvIHRoZSBzdGFjay5cbiAgcHVzaENvbnRleHQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbCh0aGlzLmNvbnRleHROYW1lKHRoaXMubGFzdENvbnRleHQpKTtcbiAgfSxcblxuICAvLyBbbG9va3VwT25Db250ZXh0XVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiBjdXJyZW50Q29udGV4dFtuYW1lXSwgLi4uXG4gIC8vXG4gIC8vIExvb2tzIHVwIHRoZSB2YWx1ZSBvZiBgbmFtZWAgb24gdGhlIGN1cnJlbnQgY29udGV4dCBhbmQgcHVzaGVzXG4gIC8vIGl0IG9udG8gdGhlIHN0YWNrLlxuICBsb29rdXBPbkNvbnRleHQ6IGZ1bmN0aW9uKHBhcnRzLCBmYWxzeSwgc3RyaWN0LCBzY29wZWQpIHtcbiAgICBsZXQgaSA9IDA7XG5cbiAgICBpZiAoIXNjb3BlZCAmJiB0aGlzLm9wdGlvbnMuY29tcGF0ICYmICF0aGlzLmxhc3RDb250ZXh0KSB7XG4gICAgICAvLyBUaGUgZGVwdGhlZCBxdWVyeSBpcyBleHBlY3RlZCB0byBoYW5kbGUgdGhlIHVuZGVmaW5lZCBsb2dpYyBmb3IgdGhlIHJvb3QgbGV2ZWwgdGhhdFxuICAgICAgLy8gaXMgaW1wbGVtZW50ZWQgYmVsb3csIHNvIHdlIGV2YWx1YXRlIHRoYXQgZGlyZWN0bHkgaW4gY29tcGF0IG1vZGVcbiAgICAgIHRoaXMucHVzaCh0aGlzLmRlcHRoZWRMb29rdXAocGFydHNbaSsrXSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnB1c2hDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvbHZlUGF0aCgnY29udGV4dCcsIHBhcnRzLCBpLCBmYWxzeSwgc3RyaWN0KTtcbiAgfSxcblxuICAvLyBbbG9va3VwQmxvY2tQYXJhbV1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogYmxvY2tQYXJhbVtuYW1lXSwgLi4uXG4gIC8vXG4gIC8vIExvb2tzIHVwIHRoZSB2YWx1ZSBvZiBgcGFydHNgIG9uIHRoZSBnaXZlbiBibG9jayBwYXJhbSBhbmQgcHVzaGVzXG4gIC8vIGl0IG9udG8gdGhlIHN0YWNrLlxuICBsb29rdXBCbG9ja1BhcmFtOiBmdW5jdGlvbihibG9ja1BhcmFtSWQsIHBhcnRzKSB7XG4gICAgdGhpcy51c2VCbG9ja1BhcmFtcyA9IHRydWU7XG5cbiAgICB0aGlzLnB1c2goWydibG9ja1BhcmFtc1snLCBibG9ja1BhcmFtSWRbMF0sICddWycsIGJsb2NrUGFyYW1JZFsxXSwgJ10nXSk7XG4gICAgdGhpcy5yZXNvbHZlUGF0aCgnY29udGV4dCcsIHBhcnRzLCAxKTtcbiAgfSxcblxuICAvLyBbbG9va3VwRGF0YV1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogZGF0YSwgLi4uXG4gIC8vXG4gIC8vIFB1c2ggdGhlIGRhdGEgbG9va3VwIG9wZXJhdG9yXG4gIGxvb2t1cERhdGE6IGZ1bmN0aW9uKGRlcHRoLCBwYXJ0cywgc3RyaWN0KSB7XG4gICAgaWYgKCFkZXB0aCkge1xuICAgICAgdGhpcy5wdXNoU3RhY2tMaXRlcmFsKCdkYXRhJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbCgnY29udGFpbmVyLmRhdGEoZGF0YSwgJyArIGRlcHRoICsgJyknKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc29sdmVQYXRoKCdkYXRhJywgcGFydHMsIDAsIHRydWUsIHN0cmljdCk7XG4gIH0sXG5cbiAgcmVzb2x2ZVBhdGg6IGZ1bmN0aW9uKHR5cGUsIHBhcnRzLCBzdGFydFBhcnRJbmRleCwgZmFsc3ksIHN0cmljdCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuc3RyaWN0IHx8IHRoaXMub3B0aW9ucy5hc3N1bWVPYmplY3RzKSB7XG4gICAgICB0aGlzLnB1c2goXG4gICAgICAgIHN0cmljdExvb2t1cChcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuc3RyaWN0ICYmIHN0cmljdCxcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHBhcnRzLFxuICAgICAgICAgIHN0YXJ0UGFydEluZGV4LFxuICAgICAgICAgIHR5cGVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgbGVuID0gcGFydHMubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSBzdGFydFBhcnRJbmRleDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1sb29wLWZ1bmMgKi9cbiAgICAgIHRoaXMucmVwbGFjZVN0YWNrKGN1cnJlbnQgPT4ge1xuICAgICAgICBsZXQgbG9va3VwID0gdGhpcy5uYW1lTG9va3VwKGN1cnJlbnQsIHBhcnRzW2ldLCB0eXBlKTtcbiAgICAgICAgLy8gV2Ugd2FudCB0byBlbnN1cmUgdGhhdCB6ZXJvIGFuZCBmYWxzZSBhcmUgaGFuZGxlZCBwcm9wZXJseSBpZiB0aGUgY29udGV4dCAoZmFsc3kgZmxhZylcbiAgICAgICAgLy8gbmVlZHMgdG8gaGF2ZSB0aGUgc3BlY2lhbCBoYW5kbGluZyBmb3IgdGhlc2UgdmFsdWVzLlxuICAgICAgICBpZiAoIWZhbHN5KSB7XG4gICAgICAgICAgcmV0dXJuIFsnICE9IG51bGwgPyAnLCBsb29rdXAsICcgOiAnLCBjdXJyZW50XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBPdGhlcndpc2Ugd2UgY2FuIHVzZSBnZW5lcmljIGZhbHN5IGhhbmRsaW5nXG4gICAgICAgICAgcmV0dXJuIFsnICYmICcsIGxvb2t1cF07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSBuby1sb29wLWZ1bmMgKi9cbiAgICB9XG4gIH0sXG5cbiAgLy8gW3Jlc29sdmVQb3NzaWJsZUxhbWJkYV1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogdmFsdWUsIC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IHJlc29sdmVkIHZhbHVlLCAuLi5cbiAgLy9cbiAgLy8gSWYgdGhlIGB2YWx1ZWAgaXMgYSBsYW1iZGEsIHJlcGxhY2UgaXQgb24gdGhlIHN0YWNrIGJ5XG4gIC8vIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGxhbWJkYVxuICByZXNvbHZlUG9zc2libGVMYW1iZGE6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMucHVzaChbXG4gICAgICB0aGlzLmFsaWFzYWJsZSgnY29udGFpbmVyLmxhbWJkYScpLFxuICAgICAgJygnLFxuICAgICAgdGhpcy5wb3BTdGFjaygpLFxuICAgICAgJywgJyxcbiAgICAgIHRoaXMuY29udGV4dE5hbWUoMCksXG4gICAgICAnKSdcbiAgICBdKTtcbiAgfSxcblxuICAvLyBbcHVzaFN0cmluZ1BhcmFtXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiBzdHJpbmcsIGN1cnJlbnRDb250ZXh0LCAuLi5cbiAgLy9cbiAgLy8gVGhpcyBvcGNvZGUgaXMgZGVzaWduZWQgZm9yIHVzZSBpbiBzdHJpbmcgbW9kZSwgd2hpY2hcbiAgLy8gcHJvdmlkZXMgdGhlIHN0cmluZyB2YWx1ZSBvZiBhIHBhcmFtZXRlciBhbG9uZyB3aXRoIGl0c1xuICAvLyBkZXB0aCByYXRoZXIgdGhhbiByZXNvbHZpbmcgaXQgaW1tZWRpYXRlbHkuXG4gIHB1c2hTdHJpbmdQYXJhbTogZnVuY3Rpb24oc3RyaW5nLCB0eXBlKSB7XG4gICAgdGhpcy5wdXNoQ29udGV4dCgpO1xuICAgIHRoaXMucHVzaFN0cmluZyh0eXBlKTtcblxuICAgIC8vIElmIGl0J3MgYSBzdWJleHByZXNzaW9uLCB0aGUgc3RyaW5nIHJlc3VsdFxuICAgIC8vIHdpbGwgYmUgcHVzaGVkIGFmdGVyIHRoaXMgb3Bjb2RlLlxuICAgIGlmICh0eXBlICE9PSAnU3ViRXhwcmVzc2lvbicpIHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyaW5nID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnB1c2hTdHJpbmcoc3RyaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbChzdHJpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBlbXB0eUhhc2g6IGZ1bmN0aW9uKG9taXRFbXB0eSkge1xuICAgIGlmICh0aGlzLnRyYWNrSWRzKSB7XG4gICAgICB0aGlzLnB1c2goJ3t9Jyk7IC8vIGhhc2hJZHNcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICB0aGlzLnB1c2goJ3t9Jyk7IC8vIGhhc2hDb250ZXh0c1xuICAgICAgdGhpcy5wdXNoKCd7fScpOyAvLyBoYXNoVHlwZXNcbiAgICB9XG4gICAgdGhpcy5wdXNoU3RhY2tMaXRlcmFsKG9taXRFbXB0eSA/ICd1bmRlZmluZWQnIDogJ3t9Jyk7XG4gIH0sXG4gIHB1c2hIYXNoOiBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5oYXNoKSB7XG4gICAgICB0aGlzLmhhc2hlcy5wdXNoKHRoaXMuaGFzaCk7XG4gICAgfVxuICAgIHRoaXMuaGFzaCA9IHsgdmFsdWVzOiB7fSwgdHlwZXM6IFtdLCBjb250ZXh0czogW10sIGlkczogW10gfTtcbiAgfSxcbiAgcG9wSGFzaDogZnVuY3Rpb24oKSB7XG4gICAgbGV0IGhhc2ggPSB0aGlzLmhhc2g7XG4gICAgdGhpcy5oYXNoID0gdGhpcy5oYXNoZXMucG9wKCk7XG5cbiAgICBpZiAodGhpcy50cmFja0lkcykge1xuICAgICAgdGhpcy5wdXNoKHRoaXMub2JqZWN0TGl0ZXJhbChoYXNoLmlkcykpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdHJpbmdQYXJhbXMpIHtcbiAgICAgIHRoaXMucHVzaCh0aGlzLm9iamVjdExpdGVyYWwoaGFzaC5jb250ZXh0cykpO1xuICAgICAgdGhpcy5wdXNoKHRoaXMub2JqZWN0TGl0ZXJhbChoYXNoLnR5cGVzKSk7XG4gICAgfVxuXG4gICAgdGhpcy5wdXNoKHRoaXMub2JqZWN0TGl0ZXJhbChoYXNoLnZhbHVlcykpO1xuICB9LFxuXG4gIC8vIFtwdXNoU3RyaW5nXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiBxdW90ZWRTdHJpbmcoc3RyaW5nKSwgLi4uXG4gIC8vXG4gIC8vIFB1c2ggYSBxdW90ZWQgdmVyc2lvbiBvZiBgc3RyaW5nYCBvbnRvIHRoZSBzdGFja1xuICBwdXNoU3RyaW5nOiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICB0aGlzLnB1c2hTdGFja0xpdGVyYWwodGhpcy5xdW90ZWRTdHJpbmcoc3RyaW5nKSk7XG4gIH0sXG5cbiAgLy8gW3B1c2hMaXRlcmFsXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiB2YWx1ZSwgLi4uXG4gIC8vXG4gIC8vIFB1c2hlcyBhIHZhbHVlIG9udG8gdGhlIHN0YWNrLiBUaGlzIG9wZXJhdGlvbiBwcmV2ZW50c1xuICAvLyB0aGUgY29tcGlsZXIgZnJvbSBjcmVhdGluZyBhIHRlbXBvcmFyeSB2YXJpYWJsZSB0byBob2xkXG4gIC8vIGl0LlxuICBwdXNoTGl0ZXJhbDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICB0aGlzLnB1c2hTdGFja0xpdGVyYWwodmFsdWUpO1xuICB9LFxuXG4gIC8vIFtwdXNoUHJvZ3JhbV1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogcHJvZ3JhbShndWlkKSwgLi4uXG4gIC8vXG4gIC8vIFB1c2ggYSBwcm9ncmFtIGV4cHJlc3Npb24gb250byB0aGUgc3RhY2suIFRoaXMgdGFrZXNcbiAgLy8gYSBjb21waWxlLXRpbWUgZ3VpZCBhbmQgY29udmVydHMgaXQgaW50byBhIHJ1bnRpbWUtYWNjZXNzaWJsZVxuICAvLyBleHByZXNzaW9uLlxuICBwdXNoUHJvZ3JhbTogZnVuY3Rpb24oZ3VpZCkge1xuICAgIGlmIChndWlkICE9IG51bGwpIHtcbiAgICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbCh0aGlzLnByb2dyYW1FeHByZXNzaW9uKGd1aWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wdXNoU3RhY2tMaXRlcmFsKG51bGwpO1xuICAgIH1cbiAgfSxcblxuICAvLyBbcmVnaXN0ZXJEZWNvcmF0b3JdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IGhhc2gsIHByb2dyYW0sIHBhcmFtcy4uLiwgLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogLi4uXG4gIC8vXG4gIC8vIFBvcHMgb2ZmIHRoZSBkZWNvcmF0b3IncyBwYXJhbWV0ZXJzLCBpbnZva2VzIHRoZSBkZWNvcmF0b3IsXG4gIC8vIGFuZCBpbnNlcnRzIHRoZSBkZWNvcmF0b3IgaW50byB0aGUgZGVjb3JhdG9ycyBsaXN0LlxuICByZWdpc3RlckRlY29yYXRvcihwYXJhbVNpemUsIG5hbWUpIHtcbiAgICBsZXQgZm91bmREZWNvcmF0b3IgPSB0aGlzLm5hbWVMb29rdXAoJ2RlY29yYXRvcnMnLCBuYW1lLCAnZGVjb3JhdG9yJyksXG4gICAgICBvcHRpb25zID0gdGhpcy5zZXR1cEhlbHBlckFyZ3MobmFtZSwgcGFyYW1TaXplKTtcblxuICAgIC8vIFN0b3JlIHRoZSByZXNvbHZlZCBkZWNvcmF0b3IgaW4gYSB2YXJpYWJsZSBhbmQgdmVyaWZ5IGl0IGlzIGEgZnVuY3Rpb24gYmVmb3JlXG4gICAgLy8gY2FsbGluZyBpdC4gV2l0aG91dCB0aGlzLCB1bnJlZ2lzdGVyZWQgZGVjb3JhdG9ycyBjYW4gY2F1c2UgYW4gdW5oYW5kbGVkIFR5cGVFcnJvclxuICAgIC8vIChjYWxsaW5nIHVuZGVmaW5lZCksIHdoaWNoIGNyYXNoZXMgdGhlIHByb2Nlc3Mg4oCUIGVuYWJsaW5nIERlbmlhbCBvZiBTZXJ2aWNlLlxuICAgIHRoaXMuZGVjb3JhdG9ycy5wdXNoKFsndmFyIGRlY29yYXRvciA9ICcsIGZvdW5kRGVjb3JhdG9yLCAnOyddKTtcbiAgICB0aGlzLmRlY29yYXRvcnMucHVzaChbXG4gICAgICAnaWYgKHR5cGVvZiBkZWNvcmF0b3IgIT09IFwiZnVuY3Rpb25cIikgeyB0aHJvdyBuZXcgRXJyb3IoJyxcbiAgICAgIHRoaXMucXVvdGVkU3RyaW5nKCdNaXNzaW5nIGRlY29yYXRvcjogXCInICsgbmFtZSArICdcIicpLFxuICAgICAgJyk7IH0nXG4gICAgXSk7XG4gICAgdGhpcy5kZWNvcmF0b3JzLnB1c2goW1xuICAgICAgJ2ZuID0gJyxcbiAgICAgIHRoaXMuZGVjb3JhdG9ycy5mdW5jdGlvbkNhbGwoJ2RlY29yYXRvcicsICcnLCBbXG4gICAgICAgICdmbicsXG4gICAgICAgICdwcm9wcycsXG4gICAgICAgICdjb250YWluZXInLFxuICAgICAgICBvcHRpb25zXG4gICAgICBdKSxcbiAgICAgICcgfHwgZm47J1xuICAgIF0pO1xuICB9LFxuXG4gIC8vIFtpbnZva2VIZWxwZXJdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IGhhc2gsIGludmVyc2UsIHByb2dyYW0sIHBhcmFtcy4uLiwgLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogcmVzdWx0IG9mIGhlbHBlciBpbnZvY2F0aW9uXG4gIC8vXG4gIC8vIFBvcHMgb2ZmIHRoZSBoZWxwZXIncyBwYXJhbWV0ZXJzLCBpbnZva2VzIHRoZSBoZWxwZXIsXG4gIC8vIGFuZCBwdXNoZXMgdGhlIGhlbHBlcidzIHJldHVybiB2YWx1ZSBvbnRvIHRoZSBzdGFjay5cbiAgLy9cbiAgLy8gSWYgdGhlIGhlbHBlciBpcyBub3QgZm91bmQsIGBoZWxwZXJNaXNzaW5nYCBpcyBjYWxsZWQuXG4gIGludm9rZUhlbHBlcjogZnVuY3Rpb24ocGFyYW1TaXplLCBuYW1lLCBpc1NpbXBsZSkge1xuICAgIGxldCBub25IZWxwZXIgPSB0aGlzLnBvcFN0YWNrKCksXG4gICAgICBoZWxwZXIgPSB0aGlzLnNldHVwSGVscGVyKHBhcmFtU2l6ZSwgbmFtZSk7XG5cbiAgICBsZXQgcG9zc2libGVGdW5jdGlvbkNhbGxzID0gW107XG5cbiAgICBpZiAoaXNTaW1wbGUpIHtcbiAgICAgIC8vIGRpcmVjdCBjYWxsIHRvIGhlbHBlclxuICAgICAgcG9zc2libGVGdW5jdGlvbkNhbGxzLnB1c2goaGVscGVyLm5hbWUpO1xuICAgIH1cbiAgICAvLyBjYWxsIGEgZnVuY3Rpb24gZnJvbSB0aGUgaW5wdXQgb2JqZWN0XG4gICAgcG9zc2libGVGdW5jdGlvbkNhbGxzLnB1c2gobm9uSGVscGVyKTtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgIHBvc3NpYmxlRnVuY3Rpb25DYWxscy5wdXNoKFxuICAgICAgICB0aGlzLmFsaWFzYWJsZSgnY29udGFpbmVyLmhvb2tzLmhlbHBlck1pc3NpbmcnKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgZnVuY3Rpb25Mb29rdXBDb2RlID0gW1xuICAgICAgJygnLFxuICAgICAgdGhpcy5pdGVtc1NlcGFyYXRlZEJ5KHBvc3NpYmxlRnVuY3Rpb25DYWxscywgJ3x8JyksXG4gICAgICAnKSdcbiAgICBdO1xuICAgIGxldCBmdW5jdGlvbkNhbGwgPSB0aGlzLnNvdXJjZS5mdW5jdGlvbkNhbGwoXG4gICAgICBmdW5jdGlvbkxvb2t1cENvZGUsXG4gICAgICAnY2FsbCcsXG4gICAgICBoZWxwZXIuY2FsbFBhcmFtc1xuICAgICk7XG4gICAgdGhpcy5wdXNoKGZ1bmN0aW9uQ2FsbCk7XG4gIH0sXG5cbiAgaXRlbXNTZXBhcmF0ZWRCeTogZnVuY3Rpb24oaXRlbXMsIHNlcGFyYXRvcikge1xuICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICByZXN1bHQucHVzaChpdGVtc1swXSk7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzdWx0LnB1c2goc2VwYXJhdG9yLCBpdGVtc1tpXSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sXG4gIC8vIFtpbnZva2VLbm93bkhlbHBlcl1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogaGFzaCwgaW52ZXJzZSwgcHJvZ3JhbSwgcGFyYW1zLi4uLCAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiByZXN1bHQgb2YgaGVscGVyIGludm9jYXRpb25cbiAgLy9cbiAgLy8gVGhpcyBvcGVyYXRpb24gaXMgdXNlZCB3aGVuIHRoZSBoZWxwZXIgaXMga25vd24gdG8gZXhpc3QsXG4gIC8vIHNvIGEgYGhlbHBlck1pc3NpbmdgIGZhbGxiYWNrIGlzIG5vdCByZXF1aXJlZC5cbiAgaW52b2tlS25vd25IZWxwZXI6IGZ1bmN0aW9uKHBhcmFtU2l6ZSwgbmFtZSkge1xuICAgIGxldCBoZWxwZXIgPSB0aGlzLnNldHVwSGVscGVyKHBhcmFtU2l6ZSwgbmFtZSk7XG4gICAgdGhpcy5wdXNoKHRoaXMuc291cmNlLmZ1bmN0aW9uQ2FsbChoZWxwZXIubmFtZSwgJ2NhbGwnLCBoZWxwZXIuY2FsbFBhcmFtcykpO1xuICB9LFxuXG4gIC8vIFtpbnZva2VBbWJpZ3VvdXNdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IGhhc2gsIGludmVyc2UsIHByb2dyYW0sIHBhcmFtcy4uLiwgLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogcmVzdWx0IG9mIGRpc2FtYmlndWF0aW9uXG4gIC8vXG4gIC8vIFRoaXMgb3BlcmF0aW9uIGlzIHVzZWQgd2hlbiBhbiBleHByZXNzaW9uIGxpa2UgYHt7Zm9vfX1gXG4gIC8vIGlzIHByb3ZpZGVkLCBidXQgd2UgZG9uJ3Qga25vdyBhdCBjb21waWxlLXRpbWUgd2hldGhlciBpdFxuICAvLyBpcyBhIGhlbHBlciBvciBhIHBhdGguXG4gIC8vXG4gIC8vIFRoaXMgb3BlcmF0aW9uIGVtaXRzIG1vcmUgY29kZSB0aGFuIHRoZSBvdGhlciBvcHRpb25zLFxuICAvLyBhbmQgY2FuIGJlIGF2b2lkZWQgYnkgcGFzc2luZyB0aGUgYGtub3duSGVscGVyc2AgYW5kXG4gIC8vIGBrbm93bkhlbHBlcnNPbmx5YCBmbGFncyBhdCBjb21waWxlLXRpbWUuXG4gIGludm9rZUFtYmlndW91czogZnVuY3Rpb24obmFtZSwgaGVscGVyQ2FsbCkge1xuICAgIHRoaXMudXNlUmVnaXN0ZXIoJ2hlbHBlcicpO1xuXG4gICAgbGV0IG5vbkhlbHBlciA9IHRoaXMucG9wU3RhY2soKTtcblxuICAgIHRoaXMuZW1wdHlIYXNoKCk7XG4gICAgbGV0IGhlbHBlciA9IHRoaXMuc2V0dXBIZWxwZXIoMCwgbmFtZSwgaGVscGVyQ2FsbCk7XG5cbiAgICBsZXQgaGVscGVyTmFtZSA9ICh0aGlzLmxhc3RIZWxwZXIgPSB0aGlzLm5hbWVMb29rdXAoXG4gICAgICAnaGVscGVycycsXG4gICAgICBuYW1lLFxuICAgICAgJ2hlbHBlcidcbiAgICApKTtcblxuICAgIGxldCBsb29rdXAgPSBbJygnLCAnKGhlbHBlciA9ICcsIGhlbHBlck5hbWUsICcgfHwgJywgbm9uSGVscGVyLCAnKSddO1xuICAgIGlmICghdGhpcy5vcHRpb25zLnN0cmljdCkge1xuICAgICAgbG9va3VwWzBdID0gJyhoZWxwZXIgPSAnO1xuICAgICAgbG9va3VwLnB1c2goXG4gICAgICAgICcgIT0gbnVsbCA/IGhlbHBlciA6ICcsXG4gICAgICAgIHRoaXMuYWxpYXNhYmxlKCdjb250YWluZXIuaG9va3MuaGVscGVyTWlzc2luZycpXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucHVzaChbXG4gICAgICAnKCcsXG4gICAgICBsb29rdXAsXG4gICAgICBoZWxwZXIucGFyYW1zSW5pdCA/IFsnKSwoJywgaGVscGVyLnBhcmFtc0luaXRdIDogW10sXG4gICAgICAnKSwnLFxuICAgICAgJyh0eXBlb2YgaGVscGVyID09PSAnLFxuICAgICAgdGhpcy5hbGlhc2FibGUoJ1wiZnVuY3Rpb25cIicpLFxuICAgICAgJyA/ICcsXG4gICAgICB0aGlzLnNvdXJjZS5mdW5jdGlvbkNhbGwoJ2hlbHBlcicsICdjYWxsJywgaGVscGVyLmNhbGxQYXJhbXMpLFxuICAgICAgJyA6IGhlbHBlcikpJ1xuICAgIF0pO1xuICB9LFxuXG4gIC8vIFtpbnZva2VQYXJ0aWFsXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiBjb250ZXh0LCAuLi5cbiAgLy8gT24gc3RhY2sgYWZ0ZXI6IHJlc3VsdCBvZiBwYXJ0aWFsIGludm9jYXRpb25cbiAgLy9cbiAgLy8gVGhpcyBvcGVyYXRpb24gcG9wcyBvZmYgYSBjb250ZXh0LCBpbnZva2VzIGEgcGFydGlhbCB3aXRoIHRoYXQgY29udGV4dCxcbiAgLy8gYW5kIHB1c2hlcyB0aGUgcmVzdWx0IG9mIHRoZSBpbnZvY2F0aW9uIGJhY2suXG4gIGludm9rZVBhcnRpYWw6IGZ1bmN0aW9uKGlzRHluYW1pYywgbmFtZSwgaW5kZW50KSB7XG4gICAgbGV0IHBhcmFtcyA9IFtdLFxuICAgICAgb3B0aW9ucyA9IHRoaXMuc2V0dXBQYXJhbXMobmFtZSwgMSwgcGFyYW1zKTtcblxuICAgIGlmIChpc0R5bmFtaWMpIHtcbiAgICAgIG5hbWUgPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgICBkZWxldGUgb3B0aW9ucy5uYW1lO1xuICAgIH1cblxuICAgIGlmIChpbmRlbnQpIHtcbiAgICAgIG9wdGlvbnMuaW5kZW50ID0gSlNPTi5zdHJpbmdpZnkoaW5kZW50KTtcbiAgICB9XG4gICAgb3B0aW9ucy5oZWxwZXJzID0gJ2hlbHBlcnMnO1xuICAgIG9wdGlvbnMucGFydGlhbHMgPSAncGFydGlhbHMnO1xuICAgIG9wdGlvbnMuZGVjb3JhdG9ycyA9ICdjb250YWluZXIuZGVjb3JhdG9ycyc7XG5cbiAgICBpZiAoIWlzRHluYW1pYykge1xuICAgICAgcGFyYW1zLnVuc2hpZnQodGhpcy5uYW1lTG9va3VwKCdwYXJ0aWFscycsIG5hbWUsICdwYXJ0aWFsJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMudW5zaGlmdChuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhdCkge1xuICAgICAgb3B0aW9ucy5kZXB0aHMgPSAnZGVwdGhzJztcbiAgICB9XG4gICAgb3B0aW9ucyA9IHRoaXMub2JqZWN0TGl0ZXJhbChvcHRpb25zKTtcbiAgICBwYXJhbXMucHVzaChvcHRpb25zKTtcblxuICAgIHRoaXMucHVzaCh0aGlzLnNvdXJjZS5mdW5jdGlvbkNhbGwoJ2NvbnRhaW5lci5pbnZva2VQYXJ0aWFsJywgJycsIHBhcmFtcykpO1xuICB9LFxuXG4gIC8vIFthc3NpZ25Ub0hhc2hdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IHZhbHVlLCAuLi4sIGhhc2gsIC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IC4uLiwgaGFzaCwgLi4uXG4gIC8vXG4gIC8vIFBvcHMgYSB2YWx1ZSBvZmYgdGhlIHN0YWNrIGFuZCBhc3NpZ25zIGl0IHRvIHRoZSBjdXJyZW50IGhhc2hcbiAgYXNzaWduVG9IYXNoOiBmdW5jdGlvbihrZXkpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLnBvcFN0YWNrKCksXG4gICAgICBjb250ZXh0LFxuICAgICAgdHlwZSxcbiAgICAgIGlkO1xuXG4gICAgaWYgKHRoaXMudHJhY2tJZHMpIHtcbiAgICAgIGlkID0gdGhpcy5wb3BTdGFjaygpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdHJpbmdQYXJhbXMpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgICBjb250ZXh0ID0gdGhpcy5wb3BTdGFjaygpO1xuICAgIH1cblxuICAgIGxldCBoYXNoID0gdGhpcy5oYXNoO1xuICAgIGlmIChjb250ZXh0KSB7XG4gICAgICBoYXNoLmNvbnRleHRzW2tleV0gPSBjb250ZXh0O1xuICAgIH1cbiAgICBpZiAodHlwZSkge1xuICAgICAgaGFzaC50eXBlc1trZXldID0gdHlwZTtcbiAgICB9XG4gICAgaWYgKGlkKSB7XG4gICAgICBoYXNoLmlkc1trZXldID0gaWQ7XG4gICAgfVxuICAgIGhhc2gudmFsdWVzW2tleV0gPSB2YWx1ZTtcbiAgfSxcblxuICBwdXNoSWQ6IGZ1bmN0aW9uKHR5cGUsIG5hbWUsIGNoaWxkKSB7XG4gICAgaWYgKHR5cGUgPT09ICdCbG9ja1BhcmFtJykge1xuICAgICAgdGhpcy5wdXNoU3RhY2tMaXRlcmFsKFxuICAgICAgICAnYmxvY2tQYXJhbXNbJyArXG4gICAgICAgICAgbmFtZVswXSArXG4gICAgICAgICAgJ10ucGF0aFsnICtcbiAgICAgICAgICBuYW1lWzFdICtcbiAgICAgICAgICAnXScgK1xuICAgICAgICAgIChjaGlsZCA/ICcgKyAnICsgSlNPTi5zdHJpbmdpZnkoJy4nICsgY2hpbGQpIDogJycpXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1BhdGhFeHByZXNzaW9uJykge1xuICAgICAgdGhpcy5wdXNoU3RyaW5nKG5hbWUpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1N1YkV4cHJlc3Npb24nKSB7XG4gICAgICB0aGlzLnB1c2hTdGFja0xpdGVyYWwoJ3RydWUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wdXNoU3RhY2tMaXRlcmFsKCdudWxsJyk7XG4gICAgfVxuICB9LFxuXG4gIC8vIEhFTFBFUlNcblxuICBjb21waWxlcjogSmF2YVNjcmlwdENvbXBpbGVyLFxuXG4gIGNvbXBpbGVDaGlsZHJlbjogZnVuY3Rpb24oZW52aXJvbm1lbnQsIG9wdGlvbnMpIHtcbiAgICBsZXQgY2hpbGRyZW4gPSBlbnZpcm9ubWVudC5jaGlsZHJlbixcbiAgICAgIGNoaWxkLFxuICAgICAgY29tcGlsZXI7XG5cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IGNoaWxkcmVuLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIGNvbXBpbGVyID0gbmV3IHRoaXMuY29tcGlsZXIoKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuZXctY2FwXG5cbiAgICAgIGxldCBleGlzdGluZyA9IHRoaXMubWF0Y2hFeGlzdGluZ1Byb2dyYW0oY2hpbGQpO1xuXG4gICAgICBpZiAoZXhpc3RpbmcgPT0gbnVsbCkge1xuICAgICAgICAvLyBQbGFjZWhvbGRlciB0byBwcmV2ZW50IG5hbWUgY29uZmxpY3RzIGZvciBuZXN0ZWQgY2hpbGRyZW5cbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5jb250ZXh0LnByb2dyYW1zLnB1c2goJycpIC0gMTtcbiAgICAgICAgY2hpbGQuaW5kZXggPSBpbmRleDtcbiAgICAgICAgY2hpbGQubmFtZSA9ICdwcm9ncmFtJyArIGluZGV4O1xuICAgICAgICB0aGlzLmNvbnRleHQucHJvZ3JhbXNbaW5kZXhdID0gY29tcGlsZXIuY29tcGlsZShcbiAgICAgICAgICBjaGlsZCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAhdGhpcy5wcmVjb21waWxlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29udGV4dC5kZWNvcmF0b3JzW2luZGV4XSA9IGNvbXBpbGVyLmRlY29yYXRvcnM7XG4gICAgICAgIHRoaXMuY29udGV4dC5lbnZpcm9ubWVudHNbaW5kZXhdID0gY2hpbGQ7XG5cbiAgICAgICAgdGhpcy51c2VEZXB0aHMgPSB0aGlzLnVzZURlcHRocyB8fCBjb21waWxlci51c2VEZXB0aHM7XG4gICAgICAgIHRoaXMudXNlQmxvY2tQYXJhbXMgPSB0aGlzLnVzZUJsb2NrUGFyYW1zIHx8IGNvbXBpbGVyLnVzZUJsb2NrUGFyYW1zO1xuICAgICAgICBjaGlsZC51c2VEZXB0aHMgPSB0aGlzLnVzZURlcHRocztcbiAgICAgICAgY2hpbGQudXNlQmxvY2tQYXJhbXMgPSB0aGlzLnVzZUJsb2NrUGFyYW1zO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGQuaW5kZXggPSBleGlzdGluZy5pbmRleDtcbiAgICAgICAgY2hpbGQubmFtZSA9ICdwcm9ncmFtJyArIGV4aXN0aW5nLmluZGV4O1xuXG4gICAgICAgIHRoaXMudXNlRGVwdGhzID0gdGhpcy51c2VEZXB0aHMgfHwgZXhpc3RpbmcudXNlRGVwdGhzO1xuICAgICAgICB0aGlzLnVzZUJsb2NrUGFyYW1zID0gdGhpcy51c2VCbG9ja1BhcmFtcyB8fCBleGlzdGluZy51c2VCbG9ja1BhcmFtcztcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIG1hdGNoRXhpc3RpbmdQcm9ncmFtOiBmdW5jdGlvbihjaGlsZCkge1xuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLmNvbnRleHQuZW52aXJvbm1lbnRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBsZXQgZW52aXJvbm1lbnQgPSB0aGlzLmNvbnRleHQuZW52aXJvbm1lbnRzW2ldO1xuICAgICAgaWYgKGVudmlyb25tZW50ICYmIGVudmlyb25tZW50LmVxdWFscyhjaGlsZCkpIHtcbiAgICAgICAgcmV0dXJuIGVudmlyb25tZW50O1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBwcm9ncmFtRXhwcmVzc2lvbjogZnVuY3Rpb24oZ3VpZCkge1xuICAgIGxldCBjaGlsZCA9IHRoaXMuZW52aXJvbm1lbnQuY2hpbGRyZW5bZ3VpZF0sXG4gICAgICBwcm9ncmFtUGFyYW1zID0gW2NoaWxkLmluZGV4LCAnZGF0YScsIGNoaWxkLmJsb2NrUGFyYW1zXTtcblxuICAgIGlmICh0aGlzLnVzZUJsb2NrUGFyYW1zIHx8IHRoaXMudXNlRGVwdGhzKSB7XG4gICAgICBwcm9ncmFtUGFyYW1zLnB1c2goJ2Jsb2NrUGFyYW1zJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnVzZURlcHRocykge1xuICAgICAgcHJvZ3JhbVBhcmFtcy5wdXNoKCdkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJ2NvbnRhaW5lci5wcm9ncmFtKCcgKyBwcm9ncmFtUGFyYW1zLmpvaW4oJywgJykgKyAnKSc7XG4gIH0sXG5cbiAgdXNlUmVnaXN0ZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBpZiAoIXRoaXMucmVnaXN0ZXJzW25hbWVdKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyc1tuYW1lXSA9IHRydWU7XG4gICAgICB0aGlzLnJlZ2lzdGVycy5saXN0LnB1c2gobmFtZSk7XG4gICAgfVxuICB9LFxuXG4gIHB1c2g6IGZ1bmN0aW9uKGV4cHIpIHtcbiAgICBpZiAoIShleHByIGluc3RhbmNlb2YgTGl0ZXJhbCkpIHtcbiAgICAgIGV4cHIgPSB0aGlzLnNvdXJjZS53cmFwKGV4cHIpO1xuICAgIH1cblxuICAgIHRoaXMuaW5saW5lU3RhY2sucHVzaChleHByKTtcbiAgICByZXR1cm4gZXhwcjtcbiAgfSxcblxuICBwdXNoU3RhY2tMaXRlcmFsOiBmdW5jdGlvbihpdGVtKSB7XG4gICAgdGhpcy5wdXNoKG5ldyBMaXRlcmFsKGl0ZW0pKTtcbiAgfSxcblxuICBwdXNoU291cmNlOiBmdW5jdGlvbihzb3VyY2UpIHtcbiAgICBpZiAodGhpcy5wZW5kaW5nQ29udGVudCkge1xuICAgICAgdGhpcy5zb3VyY2UucHVzaChcbiAgICAgICAgdGhpcy5hcHBlbmRUb0J1ZmZlcihcbiAgICAgICAgICB0aGlzLnNvdXJjZS5xdW90ZWRTdHJpbmcodGhpcy5wZW5kaW5nQ29udGVudCksXG4gICAgICAgICAgdGhpcy5wZW5kaW5nTG9jYXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHRoaXMucGVuZGluZ0NvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHNvdXJjZSkge1xuICAgICAgdGhpcy5zb3VyY2UucHVzaChzb3VyY2UpO1xuICAgIH1cbiAgfSxcblxuICByZXBsYWNlU3RhY2s6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgbGV0IHByZWZpeCA9IFsnKCddLFxuICAgICAgc3RhY2ssXG4gICAgICBjcmVhdGVkU3RhY2ssXG4gICAgICB1c2VkTGl0ZXJhbDtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKCF0aGlzLmlzSW5saW5lKCkpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ3JlcGxhY2VTdGFjayBvbiBub24taW5saW5lJyk7XG4gICAgfVxuXG4gICAgLy8gV2Ugd2FudCB0byBtZXJnZSB0aGUgaW5saW5lIHN0YXRlbWVudCBpbnRvIHRoZSByZXBsYWNlbWVudCBzdGF0ZW1lbnQgdmlhICcsJ1xuICAgIGxldCB0b3AgPSB0aGlzLnBvcFN0YWNrKHRydWUpO1xuXG4gICAgaWYgKHRvcCBpbnN0YW5jZW9mIExpdGVyYWwpIHtcbiAgICAgIC8vIExpdGVyYWxzIGRvIG5vdCBuZWVkIHRvIGJlIGlubGluZWRcbiAgICAgIHN0YWNrID0gW3RvcC52YWx1ZV07XG4gICAgICBwcmVmaXggPSBbJygnLCBzdGFja107XG4gICAgICB1c2VkTGl0ZXJhbCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEdldCBvciBjcmVhdGUgdGhlIGN1cnJlbnQgc3RhY2sgbmFtZSBmb3IgdXNlIGJ5IHRoZSBpbmxpbmVcbiAgICAgIGNyZWF0ZWRTdGFjayA9IHRydWU7XG4gICAgICBsZXQgbmFtZSA9IHRoaXMuaW5jclN0YWNrKCk7XG5cbiAgICAgIHByZWZpeCA9IFsnKCgnLCB0aGlzLnB1c2gobmFtZSksICcgPSAnLCB0b3AsICcpJ107XG4gICAgICBzdGFjayA9IHRoaXMudG9wU3RhY2soKTtcbiAgICB9XG5cbiAgICBsZXQgaXRlbSA9IGNhbGxiYWNrLmNhbGwodGhpcywgc3RhY2spO1xuXG4gICAgaWYgKCF1c2VkTGl0ZXJhbCkge1xuICAgICAgdGhpcy5wb3BTdGFjaygpO1xuICAgIH1cbiAgICBpZiAoY3JlYXRlZFN0YWNrKSB7XG4gICAgICB0aGlzLnN0YWNrU2xvdC0tO1xuICAgIH1cbiAgICB0aGlzLnB1c2gocHJlZml4LmNvbmNhdChpdGVtLCAnKScpKTtcbiAgfSxcblxuICBpbmNyU3RhY2s6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc3RhY2tTbG90Kys7XG4gICAgaWYgKHRoaXMuc3RhY2tTbG90ID4gdGhpcy5zdGFja1ZhcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnN0YWNrVmFycy5wdXNoKCdzdGFjaycgKyB0aGlzLnN0YWNrU2xvdCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnRvcFN0YWNrTmFtZSgpO1xuICB9LFxuICB0b3BTdGFja05hbWU6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnc3RhY2snICsgdGhpcy5zdGFja1Nsb3Q7XG4gIH0sXG4gIGZsdXNoSW5saW5lOiBmdW5jdGlvbigpIHtcbiAgICBsZXQgaW5saW5lU3RhY2sgPSB0aGlzLmlubGluZVN0YWNrO1xuICAgIHRoaXMuaW5saW5lU3RhY2sgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5saW5lU3RhY2subGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGxldCBlbnRyeSA9IGlubGluZVN0YWNrW2ldO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoZW50cnkgaW5zdGFuY2VvZiBMaXRlcmFsKSB7XG4gICAgICAgIHRoaXMuY29tcGlsZVN0YWNrLnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHN0YWNrID0gdGhpcy5pbmNyU3RhY2soKTtcbiAgICAgICAgdGhpcy5wdXNoU291cmNlKFtzdGFjaywgJyA9ICcsIGVudHJ5LCAnOyddKTtcbiAgICAgICAgdGhpcy5jb21waWxlU3RhY2sucHVzaChzdGFjayk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBpc0lubGluZTogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5saW5lU3RhY2subGVuZ3RoO1xuICB9LFxuXG4gIHBvcFN0YWNrOiBmdW5jdGlvbih3cmFwcGVkKSB7XG4gICAgbGV0IGlubGluZSA9IHRoaXMuaXNJbmxpbmUoKSxcbiAgICAgIGl0ZW0gPSAoaW5saW5lID8gdGhpcy5pbmxpbmVTdGFjayA6IHRoaXMuY29tcGlsZVN0YWNrKS5wb3AoKTtcblxuICAgIGlmICghd3JhcHBlZCAmJiBpdGVtIGluc3RhbmNlb2YgTGl0ZXJhbCkge1xuICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghaW5saW5lKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGlmICghdGhpcy5zdGFja1Nsb3QpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHN0YWNrIHBvcCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhY2tTbG90LS07XG4gICAgICB9XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG4gIH0sXG5cbiAgdG9wU3RhY2s6IGZ1bmN0aW9uKCkge1xuICAgIGxldCBzdGFjayA9IHRoaXMuaXNJbmxpbmUoKSA/IHRoaXMuaW5saW5lU3RhY2sgOiB0aGlzLmNvbXBpbGVTdGFjayxcbiAgICAgIGl0ZW0gPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgTGl0ZXJhbCkge1xuICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgfSxcblxuICBjb250ZXh0TmFtZTogZnVuY3Rpb24oY29udGV4dCkge1xuICAgIGlmICh0aGlzLnVzZURlcHRocyAmJiBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gJ2RlcHRoc1snICsgY29udGV4dCArICddJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdkZXB0aCcgKyBjb250ZXh0O1xuICAgIH1cbiAgfSxcblxuICBxdW90ZWRTdHJpbmc6IGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZS5xdW90ZWRTdHJpbmcoc3RyKTtcbiAgfSxcblxuICBvYmplY3RMaXRlcmFsOiBmdW5jdGlvbihvYmopIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2Uub2JqZWN0TGl0ZXJhbChvYmopO1xuICB9LFxuXG4gIGFsaWFzYWJsZTogZnVuY3Rpb24obmFtZSkge1xuICAgIGxldCByZXQgPSB0aGlzLmFsaWFzZXNbbmFtZV07XG4gICAgaWYgKHJldCkge1xuICAgICAgcmV0LnJlZmVyZW5jZUNvdW50Kys7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIHJldCA9IHRoaXMuYWxpYXNlc1tuYW1lXSA9IHRoaXMuc291cmNlLndyYXAobmFtZSk7XG4gICAgcmV0LmFsaWFzYWJsZSA9IHRydWU7XG4gICAgcmV0LnJlZmVyZW5jZUNvdW50ID0gMTtcblxuICAgIHJldHVybiByZXQ7XG4gIH0sXG5cbiAgc2V0dXBIZWxwZXI6IGZ1bmN0aW9uKHBhcmFtU2l6ZSwgbmFtZSwgYmxvY2tIZWxwZXIpIHtcbiAgICBsZXQgcGFyYW1zID0gW10sXG4gICAgICBwYXJhbXNJbml0ID0gdGhpcy5zZXR1cEhlbHBlckFyZ3MobmFtZSwgcGFyYW1TaXplLCBwYXJhbXMsIGJsb2NrSGVscGVyKTtcbiAgICBsZXQgZm91bmRIZWxwZXIgPSB0aGlzLm5hbWVMb29rdXAoJ2hlbHBlcnMnLCBuYW1lLCAnaGVscGVyJyksXG4gICAgICBjYWxsQ29udGV4dCA9IHRoaXMuYWxpYXNhYmxlKFxuICAgICAgICBgJHt0aGlzLmNvbnRleHROYW1lKDApfSAhPSBudWxsID8gJHt0aGlzLmNvbnRleHROYW1lKFxuICAgICAgICAgIDBcbiAgICAgICAgKX0gOiAoY29udGFpbmVyLm51bGxDb250ZXh0IHx8IHt9KWBcbiAgICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICBwYXJhbXNJbml0OiBwYXJhbXNJbml0LFxuICAgICAgbmFtZTogZm91bmRIZWxwZXIsXG4gICAgICBjYWxsUGFyYW1zOiBbY2FsbENvbnRleHRdLmNvbmNhdChwYXJhbXMpXG4gICAgfTtcbiAgfSxcblxuICBzZXR1cFBhcmFtczogZnVuY3Rpb24oaGVscGVyLCBwYXJhbVNpemUsIHBhcmFtcykge1xuICAgIGxldCBvcHRpb25zID0ge30sXG4gICAgICBjb250ZXh0cyA9IFtdLFxuICAgICAgdHlwZXMgPSBbXSxcbiAgICAgIGlkcyA9IFtdLFxuICAgICAgb2JqZWN0QXJncyA9ICFwYXJhbXMsXG4gICAgICBwYXJhbTtcblxuICAgIGlmIChvYmplY3RBcmdzKSB7XG4gICAgICBwYXJhbXMgPSBbXTtcbiAgICB9XG5cbiAgICBvcHRpb25zLm5hbWUgPSB0aGlzLnF1b3RlZFN0cmluZyhoZWxwZXIpO1xuICAgIG9wdGlvbnMuaGFzaCA9IHRoaXMucG9wU3RhY2soKTtcblxuICAgIGlmICh0aGlzLnRyYWNrSWRzKSB7XG4gICAgICBvcHRpb25zLmhhc2hJZHMgPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0cmluZ1BhcmFtcykge1xuICAgICAgb3B0aW9ucy5oYXNoVHlwZXMgPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgICBvcHRpb25zLmhhc2hDb250ZXh0cyA9IHRoaXMucG9wU3RhY2soKTtcbiAgICB9XG5cbiAgICBsZXQgaW52ZXJzZSA9IHRoaXMucG9wU3RhY2soKSxcbiAgICAgIHByb2dyYW0gPSB0aGlzLnBvcFN0YWNrKCk7XG5cbiAgICAvLyBBdm9pZCBzZXR0aW5nIGZuIGFuZCBpbnZlcnNlIGlmIG5laXRoZXIgYXJlIHNldC4gVGhpcyBhbGxvd3NcbiAgICAvLyBoZWxwZXJzIHRvIGRvIGEgY2hlY2sgZm9yIGBpZiAob3B0aW9ucy5mbilgXG4gICAgaWYgKHByb2dyYW0gfHwgaW52ZXJzZSkge1xuICAgICAgb3B0aW9ucy5mbiA9IHByb2dyYW0gfHwgJ2NvbnRhaW5lci5ub29wJztcbiAgICAgIG9wdGlvbnMuaW52ZXJzZSA9IGludmVyc2UgfHwgJ2NvbnRhaW5lci5ub29wJztcbiAgICB9XG5cbiAgICAvLyBUaGUgcGFyYW1ldGVycyBnbyBvbiB0byB0aGUgc3RhY2sgaW4gb3JkZXIgKG1ha2luZyBzdXJlIHRoYXQgdGhleSBhcmUgZXZhbHVhdGVkIGluIG9yZGVyKVxuICAgIC8vIHNvIHdlIG5lZWQgdG8gcG9wIHRoZW0gb2ZmIHRoZSBzdGFjayBpbiByZXZlcnNlIG9yZGVyXG4gICAgbGV0IGkgPSBwYXJhbVNpemU7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgcGFyYW0gPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgICBwYXJhbXNbaV0gPSBwYXJhbTtcblxuICAgICAgaWYgKHRoaXMudHJhY2tJZHMpIHtcbiAgICAgICAgaWRzW2ldID0gdGhpcy5wb3BTdGFjaygpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICAgIHR5cGVzW2ldID0gdGhpcy5wb3BTdGFjaygpO1xuICAgICAgICBjb250ZXh0c1tpXSA9IHRoaXMucG9wU3RhY2soKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob2JqZWN0QXJncykge1xuICAgICAgb3B0aW9ucy5hcmdzID0gdGhpcy5zb3VyY2UuZ2VuZXJhdGVBcnJheShwYXJhbXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRyYWNrSWRzKSB7XG4gICAgICBvcHRpb25zLmlkcyA9IHRoaXMuc291cmNlLmdlbmVyYXRlQXJyYXkoaWRzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICBvcHRpb25zLnR5cGVzID0gdGhpcy5zb3VyY2UuZ2VuZXJhdGVBcnJheSh0eXBlcyk7XG4gICAgICBvcHRpb25zLmNvbnRleHRzID0gdGhpcy5zb3VyY2UuZ2VuZXJhdGVBcnJheShjb250ZXh0cyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5kYXRhKSB7XG4gICAgICBvcHRpb25zLmRhdGEgPSAnZGF0YSc7XG4gICAgfVxuICAgIGlmICh0aGlzLnVzZUJsb2NrUGFyYW1zKSB7XG4gICAgICBvcHRpb25zLmJsb2NrUGFyYW1zID0gJ2Jsb2NrUGFyYW1zJztcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH0sXG5cbiAgc2V0dXBIZWxwZXJBcmdzOiBmdW5jdGlvbihoZWxwZXIsIHBhcmFtU2l6ZSwgcGFyYW1zLCB1c2VSZWdpc3Rlcikge1xuICAgIGxldCBvcHRpb25zID0gdGhpcy5zZXR1cFBhcmFtcyhoZWxwZXIsIHBhcmFtU2l6ZSwgcGFyYW1zKTtcbiAgICBvcHRpb25zLmxvYyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuc291cmNlLmN1cnJlbnRMb2NhdGlvbik7XG4gICAgb3B0aW9ucyA9IHRoaXMub2JqZWN0TGl0ZXJhbChvcHRpb25zKTtcbiAgICBpZiAodXNlUmVnaXN0ZXIpIHtcbiAgICAgIHRoaXMudXNlUmVnaXN0ZXIoJ29wdGlvbnMnKTtcbiAgICAgIHBhcmFtcy5wdXNoKCdvcHRpb25zJyk7XG4gICAgICByZXR1cm4gWydvcHRpb25zPScsIG9wdGlvbnNdO1xuICAgIH0gZWxzZSBpZiAocGFyYW1zKSB7XG4gICAgICBwYXJhbXMucHVzaChvcHRpb25zKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxuICB9XG59O1xuXG4oZnVuY3Rpb24oKSB7XG4gIGNvbnN0IHJlc2VydmVkV29yZHMgPSAoXG4gICAgJ2JyZWFrIGVsc2UgbmV3IHZhcicgK1xuICAgICcgY2FzZSBmaW5hbGx5IHJldHVybiB2b2lkJyArXG4gICAgJyBjYXRjaCBmb3Igc3dpdGNoIHdoaWxlJyArXG4gICAgJyBjb250aW51ZSBmdW5jdGlvbiB0aGlzIHdpdGgnICtcbiAgICAnIGRlZmF1bHQgaWYgdGhyb3cnICtcbiAgICAnIGRlbGV0ZSBpbiB0cnknICtcbiAgICAnIGRvIGluc3RhbmNlb2YgdHlwZW9mJyArXG4gICAgJyBhYnN0cmFjdCBlbnVtIGludCBzaG9ydCcgK1xuICAgICcgYm9vbGVhbiBleHBvcnQgaW50ZXJmYWNlIHN0YXRpYycgK1xuICAgICcgYnl0ZSBleHRlbmRzIGxvbmcgc3VwZXInICtcbiAgICAnIGNoYXIgZmluYWwgbmF0aXZlIHN5bmNocm9uaXplZCcgK1xuICAgICcgY2xhc3MgZmxvYXQgcGFja2FnZSB0aHJvd3MnICtcbiAgICAnIGNvbnN0IGdvdG8gcHJpdmF0ZSB0cmFuc2llbnQnICtcbiAgICAnIGRlYnVnZ2VyIGltcGxlbWVudHMgcHJvdGVjdGVkIHZvbGF0aWxlJyArXG4gICAgJyBkb3VibGUgaW1wb3J0IHB1YmxpYyBsZXQgeWllbGQgYXdhaXQnICtcbiAgICAnIG51bGwgdHJ1ZSBmYWxzZSdcbiAgKS5zcGxpdCgnICcpO1xuXG4gIGNvbnN0IGNvbXBpbGVyV29yZHMgPSAoSmF2YVNjcmlwdENvbXBpbGVyLlJFU0VSVkVEX1dPUkRTID0ge30pO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsID0gcmVzZXJ2ZWRXb3Jkcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb21waWxlcldvcmRzW3Jlc2VydmVkV29yZHNbaV1dID0gdHJ1ZTtcbiAgfVxufSkoKTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBNYXkgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uXG4gKi9cbkphdmFTY3JpcHRDb21waWxlci5pc1ZhbGlkSmF2YVNjcmlwdFZhcmlhYmxlTmFtZSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgcmV0dXJuIChcbiAgICAhSmF2YVNjcmlwdENvbXBpbGVyLlJFU0VSVkVEX1dPUkRTW25hbWVdICYmXG4gICAgL15bYS16QS1aXyRdWzAtOWEtekEtWl8kXSokLy50ZXN0KG5hbWUpXG4gICk7XG59O1xuXG5mdW5jdGlvbiBzdHJpY3RMb29rdXAocmVxdWlyZVRlcm1pbmFsLCBjb21waWxlciwgcGFydHMsIHN0YXJ0UGFydEluZGV4LCB0eXBlKSB7XG4gIGxldCBzdGFjayA9IGNvbXBpbGVyLnBvcFN0YWNrKCksXG4gICAgbGVuID0gcGFydHMubGVuZ3RoO1xuICBpZiAocmVxdWlyZVRlcm1pbmFsKSB7XG4gICAgbGVuLS07XG4gIH1cblxuICBmb3IgKGxldCBpID0gc3RhcnRQYXJ0SW5kZXg7IGkgPCBsZW47IGkrKykge1xuICAgIHN0YWNrID0gY29tcGlsZXIubmFtZUxvb2t1cChzdGFjaywgcGFydHNbaV0sIHR5cGUpO1xuICB9XG5cbiAgaWYgKHJlcXVpcmVUZXJtaW5hbCkge1xuICAgIHJldHVybiBbXG4gICAgICBjb21waWxlci5hbGlhc2FibGUoJ2NvbnRhaW5lci5zdHJpY3QnKSxcbiAgICAgICcoJyxcbiAgICAgIHN0YWNrLFxuICAgICAgJywgJyxcbiAgICAgIGNvbXBpbGVyLnF1b3RlZFN0cmluZyhwYXJ0c1tsZW5dKSxcbiAgICAgICcsICcsXG4gICAgICBKU09OLnN0cmluZ2lmeShjb21waWxlci5zb3VyY2UuY3VycmVudExvY2F0aW9uKSxcbiAgICAgICcgKSdcbiAgICBdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzdGFjaztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBKYXZhU2NyaXB0Q29tcGlsZXI7XG4iXX0=
|