@beiguancyc/parse-server 9.10.0-ruixiang.2 → 9.10.0-ruixiang.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/lib/ClientSDK.js +39 -0
- package/lib/Config.js +31 -4
- package/lib/Deprecator/Deprecations.js +3 -6
- package/lib/FileUrlValidator.js +63 -3
- package/lib/Options/Definitions.js +3 -4
- package/lib/Options/docs.js +2 -2
- package/lib/Options/index.js +1 -1
- package/package.json +1 -1
|
@@ -23,10 +23,6 @@
|
|
|
23
23
|
* If there are no deprecations, this must return an empty array.
|
|
24
24
|
*/
|
|
25
25
|
module.exports = [{
|
|
26
|
-
optionKey: 'fileUpload.allowedFileUrlDomains',
|
|
27
|
-
changeNewDefault: '[]',
|
|
28
|
-
solution: "Set 'fileUpload.allowedFileUrlDomains' to the domains you want to allow, or to '[]' to block all file URLs."
|
|
29
|
-
}, {
|
|
30
26
|
optionKey: 'pages.encodePageParamHeaders',
|
|
31
27
|
changeNewDefault: 'true',
|
|
32
28
|
solution: "Set 'pages.encodePageParamHeaders' to 'true' to URI-encode non-ASCII characters in page parameter headers."
|
|
@@ -37,7 +33,8 @@ module.exports = [{
|
|
|
37
33
|
}, {
|
|
38
34
|
optionKey: 'mountPlayground',
|
|
39
35
|
changeNewKey: '',
|
|
40
|
-
|
|
36
|
+
resolvedValue: false,
|
|
37
|
+
solution: "Use Parse Dashboard as GraphQL IDE or configure a third-party GraphQL client such as Apollo Sandbox, GraphiQL, or Insomnia with custom request headers. Set 'mountPlayground' to 'false' or remove the option to accept the future removal."
|
|
41
38
|
}, {
|
|
42
39
|
optionKey: 'playgroundPath',
|
|
43
40
|
changeNewKey: '',
|
|
@@ -101,4 +98,4 @@ module.exports = [{
|
|
|
101
98
|
changeNewDefault: 'false',
|
|
102
99
|
solution: "Set 'allowAggregationForReadOnlyMasterKey' to 'false' to prevent the read-only master key from running aggregation pipelines, which can include write-capable stages (e.g. '$out', '$merge'). Set to 'true' to keep the current behavior where the read-only master key can run aggregation pipelines."
|
|
103
100
|
}];
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwib3B0aW9uS2V5IiwiY2hhbmdlTmV3RGVmYXVsdCIsInNvbHV0aW9uIiwiY2hhbmdlTmV3S2V5IiwicmVzb2x2ZWRWYWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EZXByZWNhdG9yL0RlcHJlY2F0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBkZXByZWNhdGlvbnMuXG4gKlxuICogQWRkIGRlcHJlY2F0aW9ucyB0byB0aGUgYXJyYXkgdXNpbmcgdGhlIGZvbGxvd2luZyBrZXlzOlxuICogLSBgb3B0aW9uS2V5YCB7U3RyaW5nfTogVGhlIG9wdGlvbiBrZXkgaW5jbC4gaXRzIHBhdGgsIGUuZy4gYHNlY3VyaXR5LmVuYWJsZUNoZWNrYC5cbiAqIC0gYGVudktleWAge1N0cmluZ306IFRoZSBlbnZpcm9ubWVudCBrZXksIGUuZy4gYFBBUlNFX1NFUlZFUl9TRUNVUklUWWAuXG4gKiAtIGBjaGFuZ2VOZXdLZXlgIHtTdHJpbmd9OiBTZXQgdGhlIG5ldyBrZXkgbmFtZSBpZiB0aGUgY3VycmVudCBrZXkgd2lsbCBiZSByZXBsYWNlZCxcbiAqIG9yIHNldCB0byBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGN1cnJlbnQga2V5IHdpbGwgYmUgcmVtb3ZlZCB3aXRob3V0IHJlcGxhY2VtZW50LlxuICogLSBgY2hhbmdlTmV3RGVmYXVsdGAge1N0cmluZ306IFNldCB0aGUgbmV3IGRlZmF1bHQgdmFsdWUgaWYgdGhlIGtleSdzIGRlZmF1bHQgdmFsdWVcbiAqIHdpbGwgY2hhbmdlIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gKiAtIGByZXNvbHZlZFZhbHVlYCB7YW55fTogVGhlIG9wdGlvbiB2YWx1ZSB0aGF0IHN1cHByZXNzZXMgdGhlIGRlcHJlY2F0aW9uIHdhcm5pbmcsXG4gKiBpbmRpY2F0aW5nIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGFkb3B0ZWQgdGhlIGZ1dHVyZSBiZWhhdmlvci4gT25seSBhcHBsaWNhYmxlIHdoZW5cbiAqIGBjaGFuZ2VOZXdLZXlgIGlzIGFuIGVtcHR5IHN0cmluZyAob3B0aW9uIHdpbGwgYmUgcmVtb3ZlZCB3aXRob3V0IHJlcGxhY2VtZW50KS5cbiAqIEZvciBleGFtcGxlLCBgZmFsc2VgIGZvciBhbiBvcHRpb24gdGhhdCB3aWxsIGJlIHJlbW92ZWQsIGlmIHNldHRpbmcgaXQgdG8gYGZhbHNlYFxuICogZGlzYWJsZXMgdGhlIGRlcHJlY2F0ZWQgZmVhdHVyZS5cbiAqIC0gYHNvbHV0aW9uYDogVGhlIGluc3RydWN0aW9uIHRvIHJlc29sdmUgdGhpcyBkZXByZWNhdGlvbiB3YXJuaW5nLiBPcHRpb25hbC4gVGhpc1xuICogaW5zdHJ1Y3Rpb24gbXVzdCBub3QgaW5jbHVkZSB0aGUgZGVwcmVjYXRpb24gd2FybmluZyB3aGljaCBpcyBhdXRvLWdlbmVyYXRlZC5cbiAqIEl0IHNob3VsZCBvbmx5IGNvbnRhaW4gYWRkaXRpb25hbCBpbnN0cnVjdGlvbiByZWdhcmRpbmcgdGhlIGRlcHJlY2F0aW9uIGlmXG4gKiBuZWNlc3NhcnkuXG4gKlxuICogSWYgdGhlcmUgYXJlIG5vIGRlcHJlY2F0aW9ucywgdGhpcyBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheS5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBbXG4gIHtcbiAgICBvcHRpb25LZXk6ICdmaWxlVXBsb2FkLmFsbG93ZWRGaWxlVXJsRG9tYWlucycsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJ1tdJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ2ZpbGVVcGxvYWQuYWxsb3dlZEZpbGVVcmxEb21haW5zJyB0byB0aGUgZG9tYWlucyB5b3Ugd2FudCB0byBhbGxvdywgb3IgdG8gJ1tdJyB0byBibG9jayBhbGwgZmlsZSBVUkxzLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncGFnZXMuZW5jb2RlUGFnZVBhcmFtSGVhZGVycycsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJ3RydWUnLFxuICAgIHNvbHV0aW9uOiBcIlNldCAncGFnZXMuZW5jb2RlUGFnZVBhcmFtSGVhZGVycycgdG8gJ3RydWUnIHRvIFVSSS1lbmNvZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gcGFnZSBwYXJhbWV0ZXIgaGVhZGVycy5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ3JlYWRPbmx5TWFzdGVyS2V5SXBzJyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAnW1wiMTI3LjAuMC4xXCIsIFwiOjoxXCJdJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3JlYWRPbmx5TWFzdGVyS2V5SXBzJyB0byB0aGUgSVAgYWRkcmVzc2VzIHRoYXQgc2hvdWxkIGJlIGFsbG93ZWQgdG8gdXNlIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleSwgb3IgdG8gJ1tcXFwiMTI3LjAuMC4xXFxcIiwgXFxcIjo6MVxcXCJdJyB0byByZXN0cmljdCBhY2Nlc3MgdG8gbG9jYWxob3N0LlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAnbW91bnRQbGF5Z3JvdW5kJyxcbiAgICBjaGFuZ2VOZXdLZXk6ICcnLFxuICAgIHNvbHV0aW9uOiBcIlVzZSBQYXJzZSBEYXNoYm9hcmQgYXMgR3JhcGhRTCBJREUgb3IgY29uZmlndXJlIGEgdGhpcmQtcGFydHkgR3JhcGhRTCBjbGllbnQgc3VjaCBhcyBBcG9sbG8gU2FuZGJveCwgR3JhcGhpUUwsIG9yIEluc29tbmlhIHdpdGggY3VzdG9tIHJlcXVlc3QgaGVhZGVycy5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ3BsYXlncm91bmRQYXRoJyxcbiAgICBjaGFuZ2VOZXdLZXk6ICcnLFxuICAgIHNvbHV0aW9uOiBcIlVzZSBQYXJzZSBEYXNoYm9hcmQgYXMgR3JhcGhRTCBJREUgb3IgY29uZmlndXJlIGEgdGhpcmQtcGFydHkgR3JhcGhRTCBjbGllbnQgc3VjaCBhcyBBcG9sbG8gU2FuZGJveCwgR3JhcGhpUUwsIG9yIEluc29tbmlhIHdpdGggY3VzdG9tIHJlcXVlc3QgaGVhZGVycy5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ3JlcXVlc3RDb21wbGV4aXR5LmluY2x1ZGVEZXB0aCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJzEwJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3JlcXVlc3RDb21wbGV4aXR5LmluY2x1ZGVEZXB0aCcgdG8gYSBwb3NpdGl2ZSBpbnRlZ2VyIGFwcHJvcHJpYXRlIGZvciB5b3VyIGFwcCB0byBsaW1pdCBpbmNsdWRlIHBvaW50ZXIgY2hhaW4gZGVwdGgsIG9yIHRvICctMScgdG8gZGlzYWJsZS5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ3JlcXVlc3RDb21wbGV4aXR5LmluY2x1ZGVDb3VudCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJzEwMCcsXG4gICAgc29sdXRpb246IFwiU2V0ICdyZXF1ZXN0Q29tcGxleGl0eS5pbmNsdWRlQ291bnQnIHRvIGEgcG9zaXRpdmUgaW50ZWdlciBhcHByb3ByaWF0ZSBmb3IgeW91ciBhcHAgdG8gbGltaXQgdGhlIG51bWJlciBvZiBpbmNsdWRlIHBhdGhzIHBlciBxdWVyeSwgb3IgdG8gJy0xJyB0byBkaXNhYmxlLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncmVxdWVzdENvbXBsZXhpdHkuc3VicXVlcnlEZXB0aCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJzEwJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3JlcXVlc3RDb21wbGV4aXR5LnN1YnF1ZXJ5RGVwdGgnIHRvIGEgcG9zaXRpdmUgaW50ZWdlciBhcHByb3ByaWF0ZSBmb3IgeW91ciBhcHAgdG8gbGltaXQgc3VicXVlcnkgbmVzdGluZyBkZXB0aCwgb3IgdG8gJy0xJyB0byBkaXNhYmxlLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncmVxdWVzdENvbXBsZXhpdHkucXVlcnlEZXB0aCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJzEwJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3JlcXVlc3RDb21wbGV4aXR5LnF1ZXJ5RGVwdGgnIHRvIGEgcG9zaXRpdmUgaW50ZWdlciBhcHByb3ByaWF0ZSBmb3IgeW91ciBhcHAgdG8gbGltaXQgcXVlcnkgY29uZGl0aW9uIG5lc3RpbmcgZGVwdGgsIG9yIHRvICctMScgdG8gZGlzYWJsZS5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ3JlcXVlc3RDb21wbGV4aXR5LmdyYXBoUUxEZXB0aCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJzIwJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3JlcXVlc3RDb21wbGV4aXR5LmdyYXBoUUxEZXB0aCcgdG8gYSBwb3NpdGl2ZSBpbnRlZ2VyIGFwcHJvcHJpYXRlIGZvciB5b3VyIGFwcCB0byBsaW1pdCBHcmFwaFFMIGZpZWxkIHNlbGVjdGlvbiBkZXB0aCwgb3IgdG8gJy0xJyB0byBkaXNhYmxlLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncmVxdWVzdENvbXBsZXhpdHkuZ3JhcGhRTEZpZWxkcycsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJzIwMCcsXG4gICAgc29sdXRpb246IFwiU2V0ICdyZXF1ZXN0Q29tcGxleGl0eS5ncmFwaFFMRmllbGRzJyB0byBhIHBvc2l0aXZlIGludGVnZXIgYXBwcm9wcmlhdGUgZm9yIHlvdXIgYXBwIHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgR3JhcGhRTCBmaWVsZCBzZWxlY3Rpb25zLCBvciB0byAnLTEnIHRvIGRpc2FibGUuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdyZXF1ZXN0Q29tcGxleGl0eS5iYXRjaFJlcXVlc3RMaW1pdCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJzEwMCcsXG4gICAgc29sdXRpb246IFwiU2V0ICdyZXF1ZXN0Q29tcGxleGl0eS5iYXRjaFJlcXVlc3RMaW1pdCcgdG8gYSBwb3NpdGl2ZSBpbnRlZ2VyIGFwcHJvcHJpYXRlIGZvciB5b3VyIGFwcCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIHN1Yi1yZXF1ZXN0cyBwZXIgYmF0Y2ggcmVxdWVzdCwgb3IgdG8gJy0xJyB0byBkaXNhYmxlLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAnZW5hYmxlUHJvZHVjdFB1cmNoYXNlTGVnYWN5QXBpJyxcbiAgICBjaGFuZ2VOZXdLZXk6ICcnLFxuICAgIHJlc29sdmVkVmFsdWU6IGZhbHNlLFxuICAgIHNvbHV0aW9uOiBcIlRoZSBwcm9kdWN0IHB1cmNoYXNlIEFQSSBpcyBhbiB1bmRvY3VtZW50ZWQsIHVubWFpbnRhaW5lZCBsZWdhY3kgZmVhdHVyZSB0aGF0IG1heSBub3QgZnVuY3Rpb24gYXMgZXhwZWN0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciB2ZXJzaW9uLiBXZSBzdHJvbmdseSBhZHZpc2UgYWdhaW5zdCB1c2luZyBpdC4gU2V0ICdlbmFibGVQcm9kdWN0UHVyY2hhc2VMZWdhY3lBcGknIHRvICdmYWxzZScgdG8gZGlzYWJsZSBpdCwgb3IgcmVtb3ZlIHRoZSBvcHRpb24gdG8gYWNjZXB0IHRoZSBmdXR1cmUgcmVtb3ZhbC5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ2FsbG93RXhwaXJlZEF1dGhEYXRhVG9rZW4nLFxuICAgIGNoYW5nZU5ld0tleTogJycsXG4gICAgcmVzb2x2ZWRWYWx1ZTogZmFsc2UsXG4gICAgc29sdXRpb246IFwiQXV0aCBwcm92aWRlcnMgYXJlIGFsd2F5cyB2YWxpZGF0ZWQgb24gbG9naW4gcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcuIFNldCAnYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbicgdG8gJ2ZhbHNlJyBvciByZW1vdmUgdGhlIG9wdGlvbiB0byBhY2NlcHQgdGhlIGZ1dHVyZSByZW1vdmFsLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncHJvdGVjdGVkRmllbGRzT3duZXJFeGVtcHQnLFxuICAgIGNoYW5nZU5ld0RlZmF1bHQ6ICdmYWxzZScsXG4gICAgc29sdXRpb246IFwiU2V0ICdwcm90ZWN0ZWRGaWVsZHNPd25lckV4ZW1wdCcgdG8gJ2ZhbHNlJyB0byBhcHBseSBwcm90ZWN0ZWRGaWVsZHMgY29uc2lzdGVudGx5IHRvIHRoZSB1c2VyJ3Mgb3duIF9Vc2VyIG9iamVjdCAoc2FtZSBhcyBhbGwgb3RoZXIgY2xhc3NlcyksIG9yIHRvICd0cnVlJyB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yIHdoZXJlIGEgdXNlciBjYW4gc2VlIGFsbCB0aGVpciBvd24gZmllbGRzLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncHJvdGVjdGVkRmllbGRzVHJpZ2dlckV4ZW1wdCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJ3RydWUnLFxuICAgIHNvbHV0aW9uOiBcIlNldCAncHJvdGVjdGVkRmllbGRzVHJpZ2dlckV4ZW1wdCcgdG8gJ3RydWUnIHRvIG1ha2UgQ2xvdWQgQ29kZSB0cmlnZ2VycyAoZS5nLiBiZWZvcmVTYXZlLCBhZnRlclNhdmUpIHJlY2VpdmUgdGhlIGZ1bGwgb2JqZWN0IGluY2x1ZGluZyBwcm90ZWN0ZWQgZmllbGRzLCBvciB0byAnZmFsc2UnIHRvIGtlZXAgdGhlIGN1cnJlbnQgYmVoYXZpb3Igd2hlcmUgcHJvdGVjdGVkIGZpZWxkcyBhcmUgc3RyaXBwZWQgZnJvbSB0cmlnZ2VyIG9iamVjdHMuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdwcm90ZWN0ZWRGaWVsZHNTYXZlUmVzcG9uc2VFeGVtcHQnLFxuICAgIGNoYW5nZU5ld0RlZmF1bHQ6ICdmYWxzZScsXG4gICAgc29sdXRpb246IFwiU2V0ICdwcm90ZWN0ZWRGaWVsZHNTYXZlUmVzcG9uc2VFeGVtcHQnIHRvICdmYWxzZScgdG8gc3RyaXAgcHJvdGVjdGVkIGZpZWxkcyBmcm9tIHdyaXRlIG9wZXJhdGlvbiByZXNwb25zZXMgKGNyZWF0ZSwgdXBkYXRlKSwgY29uc2lzdGVudCB3aXRoIGhvdyB0aGV5IGFyZSBzdHJpcHBlZCBmcm9tIHF1ZXJ5IHJlc3VsdHMuIFNldCB0byAndHJ1ZScgdG8ga2VlcCB0aGUgY3VycmVudCBiZWhhdmlvciB3aGVyZSBwcm90ZWN0ZWQgZmllbGRzIGFyZSBpbmNsdWRlZCBpbiB3cml0ZSByZXNwb25zZXMuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdpbnN0YWxsYXRpb24uZHVwbGljYXRlRGV2aWNlVG9rZW5BY3Rpb25FbmZvcmNlQXV0aCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJ3RydWUnLFxuICAgIHNvbHV0aW9uOiBcIlNldCAnaW5zdGFsbGF0aW9uLmR1cGxpY2F0ZURldmljZVRva2VuQWN0aW9uRW5mb3JjZUF1dGgnIHRvICd0cnVlJyB0byBlbmZvcmNlIHRoZSBjYWxsZXIncyBhdXRoIGNvbnRleHQgKGFuZCB0aGUgcmVzdWx0aW5nIEFDTCBhbmQgQ0xQKSB3aGVuIFBhcnNlIFNlcnZlciBkZWR1cGxpY2F0ZXMgX0luc3RhbGxhdGlvbiByZWNvcmRzIHNoYXJpbmcgdGhlIHNhbWUgZGV2aWNlVG9rZW4uIFNldCB0byAnZmFsc2UnIHRvIGtlZXAgdGhlIGN1cnJlbnQgYmVoYXZpb3Igb2YgYnlwYXNzaW5nIHBlcm1pc3Npb25zIG9uIHRoZSBkZWR1cCBvcGVyYXRpb24uXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdhbGxvd0FnZ3JlZ2F0aW9uRm9yUmVhZE9ubHlNYXN0ZXJLZXknLFxuICAgIGNoYW5nZU5ld0RlZmF1bHQ6ICdmYWxzZScsXG4gICAgc29sdXRpb246IFwiU2V0ICdhbGxvd0FnZ3JlZ2F0aW9uRm9yUmVhZE9ubHlNYXN0ZXJLZXknIHRvICdmYWxzZScgdG8gcHJldmVudCB0aGUgcmVhZC1vbmx5IG1hc3RlciBrZXkgZnJvbSBydW5uaW5nIGFnZ3JlZ2F0aW9uIHBpcGVsaW5lcywgd2hpY2ggY2FuIGluY2x1ZGUgd3JpdGUtY2FwYWJsZSBzdGFnZXMgKGUuZy4gJyRvdXQnLCAnJG1lcmdlJykuIFNldCB0byAndHJ1ZScgdG8ga2VlcCB0aGUgY3VycmVudCBiZWhhdmlvciB3aGVyZSB0aGUgcmVhZC1vbmx5IG1hc3RlciBrZXkgY2FuIHJ1biBhZ2dyZWdhdGlvbiBwaXBl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
|
|
101
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwib3B0aW9uS2V5IiwiY2hhbmdlTmV3RGVmYXVsdCIsInNvbHV0aW9uIiwiY2hhbmdlTmV3S2V5IiwicmVzb2x2ZWRWYWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EZXByZWNhdG9yL0RlcHJlY2F0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBkZXByZWNhdGlvbnMuXG4gKlxuICogQWRkIGRlcHJlY2F0aW9ucyB0byB0aGUgYXJyYXkgdXNpbmcgdGhlIGZvbGxvd2luZyBrZXlzOlxuICogLSBgb3B0aW9uS2V5YCB7U3RyaW5nfTogVGhlIG9wdGlvbiBrZXkgaW5jbC4gaXRzIHBhdGgsIGUuZy4gYHNlY3VyaXR5LmVuYWJsZUNoZWNrYC5cbiAqIC0gYGVudktleWAge1N0cmluZ306IFRoZSBlbnZpcm9ubWVudCBrZXksIGUuZy4gYFBBUlNFX1NFUlZFUl9TRUNVUklUWWAuXG4gKiAtIGBjaGFuZ2VOZXdLZXlgIHtTdHJpbmd9OiBTZXQgdGhlIG5ldyBrZXkgbmFtZSBpZiB0aGUgY3VycmVudCBrZXkgd2lsbCBiZSByZXBsYWNlZCxcbiAqIG9yIHNldCB0byBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGN1cnJlbnQga2V5IHdpbGwgYmUgcmVtb3ZlZCB3aXRob3V0IHJlcGxhY2VtZW50LlxuICogLSBgY2hhbmdlTmV3RGVmYXVsdGAge1N0cmluZ306IFNldCB0aGUgbmV3IGRlZmF1bHQgdmFsdWUgaWYgdGhlIGtleSdzIGRlZmF1bHQgdmFsdWVcbiAqIHdpbGwgY2hhbmdlIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gKiAtIGByZXNvbHZlZFZhbHVlYCB7YW55fTogVGhlIG9wdGlvbiB2YWx1ZSB0aGF0IHN1cHByZXNzZXMgdGhlIGRlcHJlY2F0aW9uIHdhcm5pbmcsXG4gKiBpbmRpY2F0aW5nIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGFkb3B0ZWQgdGhlIGZ1dHVyZSBiZWhhdmlvci4gT25seSBhcHBsaWNhYmxlIHdoZW5cbiAqIGBjaGFuZ2VOZXdLZXlgIGlzIGFuIGVtcHR5IHN0cmluZyAob3B0aW9uIHdpbGwgYmUgcmVtb3ZlZCB3aXRob3V0IHJlcGxhY2VtZW50KS5cbiAqIEZvciBleGFtcGxlLCBgZmFsc2VgIGZvciBhbiBvcHRpb24gdGhhdCB3aWxsIGJlIHJlbW92ZWQsIGlmIHNldHRpbmcgaXQgdG8gYGZhbHNlYFxuICogZGlzYWJsZXMgdGhlIGRlcHJlY2F0ZWQgZmVhdHVyZS5cbiAqIC0gYHNvbHV0aW9uYDogVGhlIGluc3RydWN0aW9uIHRvIHJlc29sdmUgdGhpcyBkZXByZWNhdGlvbiB3YXJuaW5nLiBPcHRpb25hbC4gVGhpc1xuICogaW5zdHJ1Y3Rpb24gbXVzdCBub3QgaW5jbHVkZSB0aGUgZGVwcmVjYXRpb24gd2FybmluZyB3aGljaCBpcyBhdXRvLWdlbmVyYXRlZC5cbiAqIEl0IHNob3VsZCBvbmx5IGNvbnRhaW4gYWRkaXRpb25hbCBpbnN0cnVjdGlvbiByZWdhcmRpbmcgdGhlIGRlcHJlY2F0aW9uIGlmXG4gKiBuZWNlc3NhcnkuXG4gKlxuICogSWYgdGhlcmUgYXJlIG5vIGRlcHJlY2F0aW9ucywgdGhpcyBtdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheS5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBbXG4gIHtcbiAgICBvcHRpb25LZXk6ICdwYWdlcy5lbmNvZGVQYWdlUGFyYW1IZWFkZXJzJyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAndHJ1ZScsXG4gICAgc29sdXRpb246IFwiU2V0ICdwYWdlcy5lbmNvZGVQYWdlUGFyYW1IZWFkZXJzJyB0byAndHJ1ZScgdG8gVVJJLWVuY29kZSBub24tQVNDSUkgY2hhcmFjdGVycyBpbiBwYWdlIHBhcmFtZXRlciBoZWFkZXJzLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncmVhZE9ubHlNYXN0ZXJLZXlJcHMnLFxuICAgIGNoYW5nZU5ld0RlZmF1bHQ6ICdbXCIxMjcuMC4wLjFcIiwgXCI6OjFcIl0nLFxuICAgIHNvbHV0aW9uOiBcIlNldCAncmVhZE9ubHlNYXN0ZXJLZXlJcHMnIHRvIHRoZSBJUCBhZGRyZXNzZXMgdGhhdCBzaG91bGQgYmUgYWxsb3dlZCB0byB1c2UgdGhlIHJlYWQtb25seSBtYXN0ZXIga2V5LCBvciB0byAnW1xcXCIxMjcuMC4wLjFcXFwiLCBcXFwiOjoxXFxcIl0nIHRvIHJlc3RyaWN0IGFjY2VzcyB0byBsb2NhbGhvc3QuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdtb3VudFBsYXlncm91bmQnLFxuICAgIGNoYW5nZU5ld0tleTogJycsXG4gICAgcmVzb2x2ZWRWYWx1ZTogZmFsc2UsXG4gICAgc29sdXRpb246IFwiVXNlIFBhcnNlIERhc2hib2FyZCBhcyBHcmFwaFFMIElERSBvciBjb25maWd1cmUgYSB0aGlyZC1wYXJ0eSBHcmFwaFFMIGNsaWVudCBzdWNoIGFzIEFwb2xsbyBTYW5kYm94LCBHcmFwaGlRTCwgb3IgSW5zb21uaWEgd2l0aCBjdXN0b20gcmVxdWVzdCBoZWFkZXJzLiBTZXQgJ21vdW50UGxheWdyb3VuZCcgdG8gJ2ZhbHNlJyBvciByZW1vdmUgdGhlIG9wdGlvbiB0byBhY2NlcHQgdGhlIGZ1dHVyZSByZW1vdmFsLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncGxheWdyb3VuZFBhdGgnLFxuICAgIGNoYW5nZU5ld0tleTogJycsXG4gICAgc29sdXRpb246IFwiVXNlIFBhcnNlIERhc2hib2FyZCBhcyBHcmFwaFFMIElERSBvciBjb25maWd1cmUgYSB0aGlyZC1wYXJ0eSBHcmFwaFFMIGNsaWVudCBzdWNoIGFzIEFwb2xsbyBTYW5kYm94LCBHcmFwaGlRTCwgb3IgSW5zb21uaWEgd2l0aCBjdXN0b20gcmVxdWVzdCBoZWFkZXJzLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncmVxdWVzdENvbXBsZXhpdHkuaW5jbHVkZURlcHRoJyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAnMTAnLFxuICAgIHNvbHV0aW9uOiBcIlNldCAncmVxdWVzdENvbXBsZXhpdHkuaW5jbHVkZURlcHRoJyB0byBhIHBvc2l0aXZlIGludGVnZXIgYXBwcm9wcmlhdGUgZm9yIHlvdXIgYXBwIHRvIGxpbWl0IGluY2x1ZGUgcG9pbnRlciBjaGFpbiBkZXB0aCwgb3IgdG8gJy0xJyB0byBkaXNhYmxlLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncmVxdWVzdENvbXBsZXhpdHkuaW5jbHVkZUNvdW50JyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAnMTAwJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3JlcXVlc3RDb21wbGV4aXR5LmluY2x1ZGVDb3VudCcgdG8gYSBwb3NpdGl2ZSBpbnRlZ2VyIGFwcHJvcHJpYXRlIGZvciB5b3VyIGFwcCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGluY2x1ZGUgcGF0aHMgcGVyIHF1ZXJ5LCBvciB0byAnLTEnIHRvIGRpc2FibGUuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdyZXF1ZXN0Q29tcGxleGl0eS5zdWJxdWVyeURlcHRoJyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAnMTAnLFxuICAgIHNvbHV0aW9uOiBcIlNldCAncmVxdWVzdENvbXBsZXhpdHkuc3VicXVlcnlEZXB0aCcgdG8gYSBwb3NpdGl2ZSBpbnRlZ2VyIGFwcHJvcHJpYXRlIGZvciB5b3VyIGFwcCB0byBsaW1pdCBzdWJxdWVyeSBuZXN0aW5nIGRlcHRoLCBvciB0byAnLTEnIHRvIGRpc2FibGUuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdyZXF1ZXN0Q29tcGxleGl0eS5xdWVyeURlcHRoJyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAnMTAnLFxuICAgIHNvbHV0aW9uOiBcIlNldCAncmVxdWVzdENvbXBsZXhpdHkucXVlcnlEZXB0aCcgdG8gYSBwb3NpdGl2ZSBpbnRlZ2VyIGFwcHJvcHJpYXRlIGZvciB5b3VyIGFwcCB0byBsaW1pdCBxdWVyeSBjb25kaXRpb24gbmVzdGluZyBkZXB0aCwgb3IgdG8gJy0xJyB0byBkaXNhYmxlLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAncmVxdWVzdENvbXBsZXhpdHkuZ3JhcGhRTERlcHRoJyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAnMjAnLFxuICAgIHNvbHV0aW9uOiBcIlNldCAncmVxdWVzdENvbXBsZXhpdHkuZ3JhcGhRTERlcHRoJyB0byBhIHBvc2l0aXZlIGludGVnZXIgYXBwcm9wcmlhdGUgZm9yIHlvdXIgYXBwIHRvIGxpbWl0IEdyYXBoUUwgZmllbGQgc2VsZWN0aW9uIGRlcHRoLCBvciB0byAnLTEnIHRvIGRpc2FibGUuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdyZXF1ZXN0Q29tcGxleGl0eS5ncmFwaFFMRmllbGRzJyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAnMjAwJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3JlcXVlc3RDb21wbGV4aXR5LmdyYXBoUUxGaWVsZHMnIHRvIGEgcG9zaXRpdmUgaW50ZWdlciBhcHByb3ByaWF0ZSBmb3IgeW91ciBhcHAgdG8gbGltaXQgdGhlIG51bWJlciBvZiBHcmFwaFFMIGZpZWxkIHNlbGVjdGlvbnMsIG9yIHRvICctMScgdG8gZGlzYWJsZS5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ3JlcXVlc3RDb21wbGV4aXR5LmJhdGNoUmVxdWVzdExpbWl0JyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAnMTAwJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3JlcXVlc3RDb21wbGV4aXR5LmJhdGNoUmVxdWVzdExpbWl0JyB0byBhIHBvc2l0aXZlIGludGVnZXIgYXBwcm9wcmlhdGUgZm9yIHlvdXIgYXBwIHRvIGxpbWl0IHRoZSBudW1iZXIgb2Ygc3ViLXJlcXVlc3RzIHBlciBiYXRjaCByZXF1ZXN0LCBvciB0byAnLTEnIHRvIGRpc2FibGUuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdlbmFibGVQcm9kdWN0UHVyY2hhc2VMZWdhY3lBcGknLFxuICAgIGNoYW5nZU5ld0tleTogJycsXG4gICAgcmVzb2x2ZWRWYWx1ZTogZmFsc2UsXG4gICAgc29sdXRpb246IFwiVGhlIHByb2R1Y3QgcHVyY2hhc2UgQVBJIGlzIGFuIHVuZG9jdW1lbnRlZCwgdW5tYWludGFpbmVkIGxlZ2FjeSBmZWF0dXJlIHRoYXQgbWF5IG5vdCBmdW5jdGlvbiBhcyBleHBlY3RlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHZlcnNpb24uIFdlIHN0cm9uZ2x5IGFkdmlzZSBhZ2FpbnN0IHVzaW5nIGl0LiBTZXQgJ2VuYWJsZVByb2R1Y3RQdXJjaGFzZUxlZ2FjeUFwaScgdG8gJ2ZhbHNlJyB0byBkaXNhYmxlIGl0LCBvciByZW1vdmUgdGhlIG9wdGlvbiB0byBhY2NlcHQgdGhlIGZ1dHVyZSByZW1vdmFsLlwiLFxuICB9LFxuICB7XG4gICAgb3B0aW9uS2V5OiAnYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbicsXG4gICAgY2hhbmdlTmV3S2V5OiAnJyxcbiAgICByZXNvbHZlZFZhbHVlOiBmYWxzZSxcbiAgICBzb2x1dGlvbjogXCJBdXRoIHByb3ZpZGVycyBhcmUgYWx3YXlzIHZhbGlkYXRlZCBvbiBsb2dpbiByZWdhcmRsZXNzIG9mIHRoaXMgc2V0dGluZy4gU2V0ICdhbGxvd0V4cGlyZWRBdXRoRGF0YVRva2VuJyB0byAnZmFsc2UnIG9yIHJlbW92ZSB0aGUgb3B0aW9uIHRvIGFjY2VwdCB0aGUgZnV0dXJlIHJlbW92YWwuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdwcm90ZWN0ZWRGaWVsZHNPd25lckV4ZW1wdCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJ2ZhbHNlJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3Byb3RlY3RlZEZpZWxkc093bmVyRXhlbXB0JyB0byAnZmFsc2UnIHRvIGFwcGx5IHByb3RlY3RlZEZpZWxkcyBjb25zaXN0ZW50bHkgdG8gdGhlIHVzZXIncyBvd24gX1VzZXIgb2JqZWN0IChzYW1lIGFzIGFsbCBvdGhlciBjbGFzc2VzKSwgb3IgdG8gJ3RydWUnIHRvIGtlZXAgdGhlIGN1cnJlbnQgYmVoYXZpb3Igd2hlcmUgYSB1c2VyIGNhbiBzZWUgYWxsIHRoZWlyIG93biBmaWVsZHMuXCIsXG4gIH0sXG4gIHtcbiAgICBvcHRpb25LZXk6ICdwcm90ZWN0ZWRGaWVsZHNUcmlnZ2VyRXhlbXB0JyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAndHJ1ZScsXG4gICAgc29sdXRpb246IFwiU2V0ICdwcm90ZWN0ZWRGaWVsZHNUcmlnZ2VyRXhlbXB0JyB0byAndHJ1ZScgdG8gbWFrZSBDbG91ZCBDb2RlIHRyaWdnZXJzIChlLmcuIGJlZm9yZVNhdmUsIGFmdGVyU2F2ZSkgcmVjZWl2ZSB0aGUgZnVsbCBvYmplY3QgaW5jbHVkaW5nIHByb3RlY3RlZCBmaWVsZHMsIG9yIHRvICdmYWxzZScgdG8ga2VlcCB0aGUgY3VycmVudCBiZWhhdmlvciB3aGVyZSBwcm90ZWN0ZWQgZmllbGRzIGFyZSBzdHJpcHBlZCBmcm9tIHRyaWdnZXIgb2JqZWN0cy5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ3Byb3RlY3RlZEZpZWxkc1NhdmVSZXNwb25zZUV4ZW1wdCcsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJ2ZhbHNlJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ3Byb3RlY3RlZEZpZWxkc1NhdmVSZXNwb25zZUV4ZW1wdCcgdG8gJ2ZhbHNlJyB0byBzdHJpcCBwcm90ZWN0ZWQgZmllbGRzIGZyb20gd3JpdGUgb3BlcmF0aW9uIHJlc3BvbnNlcyAoY3JlYXRlLCB1cGRhdGUpLCBjb25zaXN0ZW50IHdpdGggaG93IHRoZXkgYXJlIHN0cmlwcGVkIGZyb20gcXVlcnkgcmVzdWx0cy4gU2V0IHRvICd0cnVlJyB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yIHdoZXJlIHByb3RlY3RlZCBmaWVsZHMgYXJlIGluY2x1ZGVkIGluIHdyaXRlIHJlc3BvbnNlcy5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ2luc3RhbGxhdGlvbi5kdXBsaWNhdGVEZXZpY2VUb2tlbkFjdGlvbkVuZm9yY2VBdXRoJyxcbiAgICBjaGFuZ2VOZXdEZWZhdWx0OiAndHJ1ZScsXG4gICAgc29sdXRpb246IFwiU2V0ICdpbnN0YWxsYXRpb24uZHVwbGljYXRlRGV2aWNlVG9rZW5BY3Rpb25FbmZvcmNlQXV0aCcgdG8gJ3RydWUnIHRvIGVuZm9yY2UgdGhlIGNhbGxlcidzIGF1dGggY29udGV4dCAoYW5kIHRoZSByZXN1bHRpbmcgQUNMIGFuZCBDTFApIHdoZW4gUGFyc2UgU2VydmVyIGRlZHVwbGljYXRlcyBfSW5zdGFsbGF0aW9uIHJlY29yZHMgc2hhcmluZyB0aGUgc2FtZSBkZXZpY2VUb2tlbi4gU2V0IHRvICdmYWxzZScgdG8ga2VlcCB0aGUgY3VycmVudCBiZWhhdmlvciBvZiBieXBhc3NpbmcgcGVybWlzc2lvbnMgb24gdGhlIGRlZHVwIG9wZXJhdGlvbi5cIixcbiAgfSxcbiAge1xuICAgIG9wdGlvbktleTogJ2FsbG93QWdncmVnYXRpb25Gb3JSZWFkT25seU1hc3RlcktleScsXG4gICAgY2hhbmdlTmV3RGVmYXVsdDogJ2ZhbHNlJyxcbiAgICBzb2x1dGlvbjogXCJTZXQgJ2FsbG93QWdncmVnYXRpb25Gb3JSZWFkT25seU1hc3RlcktleScgdG8gJ2ZhbHNlJyB0byBwcmV2ZW50IHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleSBmcm9tIHJ1bm5pbmcgYWdncmVnYXRpb24gcGlwZWxpbmVzLCB3aGljaCBjYW4gaW5jbHVkZSB3cml0ZS1jYXBhYmxlIHN0YWdlcyAoZS5nLiAnJG91dCcsICckbWVyZ2UnKS4gU2V0IHRvICd0cnVlJyB0byBrZWVwIHRoZSBjdXJyZW50IGJlaGF2aW9yIHdoZXJlIHRoZSByZWFkLW9ubHkgbWFzdGVyIGtleSBjYW4gcnVuIGFnZ3JlZ2F0aW9uIHBpcGVsaW5lcy5cIixcbiAgfSxcbl07XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFPLEdBQUcsQ0FDZjtFQUNFQyxTQUFTLEVBQUUsOEJBQThCO0VBQ3pDQyxnQkFBZ0IsRUFBRSxNQUFNO0VBQ3hCQyxRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLHNCQUFzQjtFQUNqQ0MsZ0JBQWdCLEVBQUUsc0JBQXNCO0VBQ3hDQyxRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLGlCQUFpQjtFQUM1QkcsWUFBWSxFQUFFLEVBQUU7RUFDaEJDLGFBQWEsRUFBRSxLQUFLO0VBQ3BCRixRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLGdCQUFnQjtFQUMzQkcsWUFBWSxFQUFFLEVBQUU7RUFDaEJELFFBQVEsRUFBRTtBQUNaLENBQUMsRUFDRDtFQUNFRixTQUFTLEVBQUUsZ0NBQWdDO0VBQzNDQyxnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCQyxRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLGdDQUFnQztFQUMzQ0MsZ0JBQWdCLEVBQUUsS0FBSztFQUN2QkMsUUFBUSxFQUFFO0FBQ1osQ0FBQyxFQUNEO0VBQ0VGLFNBQVMsRUFBRSxpQ0FBaUM7RUFDNUNDLGdCQUFnQixFQUFFLElBQUk7RUFDdEJDLFFBQVEsRUFBRTtBQUNaLENBQUMsRUFDRDtFQUNFRixTQUFTLEVBQUUsOEJBQThCO0VBQ3pDQyxnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCQyxRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLGdDQUFnQztFQUMzQ0MsZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QkMsUUFBUSxFQUFFO0FBQ1osQ0FBQyxFQUNEO0VBQ0VGLFNBQVMsRUFBRSxpQ0FBaUM7RUFDNUNDLGdCQUFnQixFQUFFLEtBQUs7RUFDdkJDLFFBQVEsRUFBRTtBQUNaLENBQUMsRUFDRDtFQUNFRixTQUFTLEVBQUUscUNBQXFDO0VBQ2hEQyxnQkFBZ0IsRUFBRSxLQUFLO0VBQ3ZCQyxRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLGdDQUFnQztFQUMzQ0csWUFBWSxFQUFFLEVBQUU7RUFDaEJDLGFBQWEsRUFBRSxLQUFLO0VBQ3BCRixRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLDJCQUEyQjtFQUN0Q0csWUFBWSxFQUFFLEVBQUU7RUFDaEJDLGFBQWEsRUFBRSxLQUFLO0VBQ3BCRixRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLDRCQUE0QjtFQUN2Q0MsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QkMsUUFBUSxFQUFFO0FBQ1osQ0FBQyxFQUNEO0VBQ0VGLFNBQVMsRUFBRSw4QkFBOEI7RUFDekNDLGdCQUFnQixFQUFFLE1BQU07RUFDeEJDLFFBQVEsRUFBRTtBQUNaLENBQUMsRUFDRDtFQUNFRixTQUFTLEVBQUUsbUNBQW1DO0VBQzlDQyxnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCQyxRQUFRLEVBQUU7QUFDWixDQUFDLEVBQ0Q7RUFDRUYsU0FBUyxFQUFFLG9EQUFvRDtFQUMvREMsZ0JBQWdCLEVBQUUsTUFBTTtFQUN4QkMsUUFBUSxFQUFFO0FBQ1osQ0FBQyxFQUNEO0VBQ0VGLFNBQVMsRUFBRSxzQ0FBc0M7RUFDakRDLGdCQUFnQixFQUFFLE9BQU87RUFDekJDLFFBQVEsRUFBRTtBQUNaLENBQUMsQ0FDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/FileUrlValidator.js
CHANGED
|
@@ -2,6 +2,65 @@
|
|
|
2
2
|
|
|
3
3
|
const Parse = require('parse/node').Parse;
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Extract a hostname from a server URL string.
|
|
7
|
+
* Functions (async publicServerURL) and invalid URLs are skipped.
|
|
8
|
+
*/
|
|
9
|
+
function hostnameFromUrl(url) {
|
|
10
|
+
if (typeof url !== 'string' || url === '') {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
const hostname = new URL(url).hostname;
|
|
15
|
+
return hostname ? hostname.toLowerCase() : undefined;
|
|
16
|
+
} catch {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Build the default file-URL allowlist from Parse Server's own URLs.
|
|
23
|
+
* Unconfigured allowedFileUrlDomains should trust the server's public host,
|
|
24
|
+
* not every domain on the internet.
|
|
25
|
+
*/
|
|
26
|
+
function defaultAllowedFileUrlDomains(urls = []) {
|
|
27
|
+
const seen = new Set();
|
|
28
|
+
const hostnames = [];
|
|
29
|
+
for (const url of urls) {
|
|
30
|
+
const hostname = hostnameFromUrl(url);
|
|
31
|
+
if (hostname && !seen.has(hostname)) {
|
|
32
|
+
seen.add(hostname);
|
|
33
|
+
hostnames.push(hostname);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return hostnames;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* When the allowlist was defaulted (not set by the operator), also include
|
|
41
|
+
* hostnames from the current publicServerURL / serverURL. publicServerURL can
|
|
42
|
+
* be a function resolved later via loadKeys, so the stored array may be stale.
|
|
43
|
+
*/
|
|
44
|
+
function resolveAllowedFileUrlDomains(config) {
|
|
45
|
+
const domains = config?.fileUpload?.allowedFileUrlDomains;
|
|
46
|
+
if (!Array.isArray(domains) || !config?._allowedFileUrlDomainsIsDefault) {
|
|
47
|
+
return domains;
|
|
48
|
+
}
|
|
49
|
+
const derived = defaultAllowedFileUrlDomains([config.publicServerURL, config.serverURL]);
|
|
50
|
+
if (derived.length === 0) {
|
|
51
|
+
return domains;
|
|
52
|
+
}
|
|
53
|
+
const seen = new Set(domains.map(domain => domain.toLowerCase()));
|
|
54
|
+
const merged = domains.slice();
|
|
55
|
+
for (const hostname of derived) {
|
|
56
|
+
if (!seen.has(hostname)) {
|
|
57
|
+
seen.add(hostname);
|
|
58
|
+
merged.push(hostname);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return merged;
|
|
62
|
+
}
|
|
63
|
+
|
|
5
64
|
/**
|
|
6
65
|
* Validates whether a File URL is allowed based on the configured allowed domains.
|
|
7
66
|
* @param {string} fileUrl - The URL to validate.
|
|
@@ -12,7 +71,7 @@ function validateFileUrl(fileUrl, config) {
|
|
|
12
71
|
if (fileUrl == null || fileUrl === '') {
|
|
13
72
|
return;
|
|
14
73
|
}
|
|
15
|
-
const domains = config
|
|
74
|
+
const domains = resolveAllowedFileUrlDomains(config);
|
|
16
75
|
if (!Array.isArray(domains) || domains.includes('*')) {
|
|
17
76
|
return;
|
|
18
77
|
}
|
|
@@ -64,6 +123,7 @@ function validateFileUrlsInObject(obj, config) {
|
|
|
64
123
|
}
|
|
65
124
|
module.exports = {
|
|
66
125
|
validateFileUrl,
|
|
67
|
-
validateFileUrlsInObject
|
|
126
|
+
validateFileUrlsInObject,
|
|
127
|
+
defaultAllowedFileUrlDomains
|
|
68
128
|
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJ2YWxpZGF0ZUZpbGVVcmwiLCJmaWxlVXJsIiwiY29uZmlnIiwiZG9tYWlucyIsImZpbGVVcGxvYWQiLCJhbGxvd2VkRmlsZVVybERvbWFpbnMiLCJBcnJheSIsImlzQXJyYXkiLCJpbmNsdWRlcyIsInBhcnNlZFVybCIsIlVSTCIsIkVycm9yIiwiRklMRV9TQVZFX0VSUk9SIiwiZmlsZUhvc3RuYW1lIiwiaG9zdG5hbWUiLCJ0b0xvd2VyQ2FzZSIsImRvbWFpbiIsImQiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInZhbGlkYXRlRmlsZVVybHNJbk9iamVjdCIsIm9iaiIsIml0ZW0iLCJfX3R5cGUiLCJ1cmwiLCJrZXkiLCJPYmplY3QiLCJrZXlzIiwidmFsdWUiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL0ZpbGVVcmxWYWxpZGF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2U7XG5cbi8qKlxuICogVmFsaWRhdGVzIHdoZXRoZXIgYSBGaWxlIFVSTCBpcyBhbGxvd2VkIGJhc2VkIG9uIHRoZSBjb25maWd1cmVkIGFsbG93ZWQgZG9tYWlucy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlVXJsIC0gVGhlIFVSTCB0byB2YWxpZGF0ZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBUaGUgUGFyc2UgU2VydmVyIGNvbmZpZyBvYmplY3QuXG4gKiBAdGhyb3dzIHtQYXJzZS5FcnJvcn0gSWYgdGhlIFVSTCBpcyBub3QgYWxsb3dlZC5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVGaWxlVXJsKGZpbGVVcmwsIGNvbmZpZykge1xuICBpZiAoZmlsZVVybCA9PSBudWxsIHx8IGZpbGVVcmwgPT09ICcnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZG9tYWlucyA9IGNvbmZpZz8uZmlsZVVwbG9hZD8uYWxsb3dlZEZpbGVVcmxEb21haW5zO1xuICBpZiAoIUFycmF5LmlzQXJyYXkoZG9tYWlucykgfHwgZG9tYWlucy5pbmNsdWRlcygnKicpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IHBhcnNlZFVybDtcbiAgdHJ5IHtcbiAgICBwYXJzZWRVcmwgPSBuZXcgVVJMKGZpbGVVcmwpO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuRklMRV9TQVZFX0VSUk9SLCBgSW52YWxpZCBmaWxlIFVSTC5gKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGVIb3N0bmFtZSA9IHBhcnNlZFVybC5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGNvbnN0IGRvbWFpbiBvZiBkb21haW5zKSB7XG4gICAgY29uc3QgZCA9IGRvbWFpbi50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChmaWxlSG9zdG5hbWUgPT09IGQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGQuc3RhcnRzV2l0aCgnKi4nKSAmJiBmaWxlSG9zdG5hbWUuZW5kc1dpdGgoZC5zbGljZSgxKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuRklMRV9TQVZFX0VSUk9SLCBgRmlsZSBVUkwgZG9tYWluICcke3BhcnNlZFVybC5ob3N0bmFtZX0nIGlzIG5vdCBhbGxvd2VkLmApO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IHNjYW5zIGFuIG9iamVjdCBmb3IgRmlsZSB0eXBlIGZpZWxkcyBhbmQgdmFsaWRhdGVzIHRoZWlyIFVSTHMuXG4gKiBAcGFyYW0ge2FueX0gb2JqIC0gVGhlIG9iamVjdCB0byBzY2FuLlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIFRoZSBQYXJzZSBTZXJ2ZXIgY29uZmlnIG9iamVjdC5cbiAqIEB0aHJvd3Mge1BhcnNlLkVycm9yfSBJZiBhbnkgRmlsZSBVUkwgaXMgbm90IGFsbG93ZWQuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlRmlsZVVybHNJbk9iamVjdChvYmosIGNvbmZpZykge1xuICBpZiAob2JqID09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBvYmopIHtcbiAgICAgIHZhbGlkYXRlRmlsZVVybHNJbk9iamVjdChpdGVtLCBjb25maWcpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG9iai5fX3R5cGUgPT09ICdGaWxlJyAmJiBvYmoudXJsKSB7XG4gICAgdmFsaWRhdGVGaWxlVXJsKG9iai51cmwsIGNvbmZpZyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9ialtrZXldO1xuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICB2YWxpZGF0ZUZpbGVVcmxzSW5PYmplY3QodmFsdWUsIGNvbmZpZyk7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0geyB2YWxpZGF0ZUZpbGVVcmwsIHZhbGlkYXRlRmlsZVVybHNJbk9iamVjdCB9O1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDRCxLQUFLOztBQUV6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTRSxlQUFlQSxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sRUFBRTtFQUN4QyxJQUFJRCxPQUFPLElBQUksSUFBSSxJQUFJQSxPQUFPLEtBQUssRUFBRSxFQUFFO0lBQ3JDO0VBQ0Y7RUFFQSxNQUFNRSxPQUFPLEdBQUdELE1BQU0sRUFBRUUsVUFBVSxFQUFFQyxxQkFBcUI7RUFDekQsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osT0FBTyxDQUFDLElBQUlBLE9BQU8sQ0FBQ0ssUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0lBQ3BEO0VBQ0Y7RUFFQSxJQUFJQyxTQUFTO0VBQ2IsSUFBSTtJQUNGQSxTQUFTLEdBQUcsSUFBSUMsR0FBRyxDQUFDVCxPQUFPLENBQUM7RUFDOUIsQ0FBQyxDQUFDLE1BQU07SUFDTixNQUFNLElBQUlILEtBQUssQ0FBQ2EsS0FBSyxDQUFDYixLQUFLLENBQUNhLEtBQUssQ0FBQ0MsZUFBZSxFQUFFLG1CQUFtQixDQUFDO0VBQ3pFO0VBRUEsTUFBTUMsWUFBWSxHQUFHSixTQUFTLENBQUNLLFFBQVEsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7RUFDckQsS0FBSyxNQUFNQyxNQUFNLElBQUliLE9BQU8sRUFBRTtJQUM1QixNQUFNYyxDQUFDLEdBQUdELE1BQU0sQ0FBQ0QsV0FBVyxDQUFDLENBQUM7SUFDOUIsSUFBSUYsWUFBWSxLQUFLSSxDQUFDLEVBQUU7TUFDdEI7SUFDRjtJQUNBLElBQUlBLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJTCxZQUFZLENBQUNNLFFBQVEsQ0FBQ0YsQ0FBQyxDQUFDRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtNQUMzRDtJQUNGO0VBQ0Y7RUFFQSxNQUFNLElBQUl0QixLQUFLLENBQUNhLEtBQUssQ0FBQ2IsS0FBSyxDQUFDYSxLQUFLLENBQUNDLGVBQWUsRUFBRSxvQkFBb0JILFNBQVMsQ0FBQ0ssUUFBUSxtQkFBbUIsQ0FBQztBQUMvRzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTTyx3QkFBd0JBLENBQUNDLEdBQUcsRUFBRXBCLE1BQU0sRUFBRTtFQUM3QyxJQUFJb0IsR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQzFDO0VBQ0Y7RUFDQSxJQUFJaEIsS0FBSyxDQUFDQyxPQUFPLENBQUNlLEdBQUcsQ0FBQyxFQUFFO0lBQ3RCLEtBQUssTUFBTUMsSUFBSSxJQUFJRCxHQUFHLEVBQUU7TUFDdEJELHdCQUF3QixDQUFDRSxJQUFJLEVBQUVyQixNQUFNLENBQUM7SUFDeEM7SUFDQTtFQUNGO0VBQ0EsSUFBSW9CLEdBQUcsQ0FBQ0UsTUFBTSxLQUFLLE1BQU0sSUFBSUYsR0FBRyxDQUFDRyxHQUFHLEVBQUU7SUFDcEN6QixlQUFlLENBQUNzQixHQUFHLENBQUNHLEdBQUcsRUFBRXZCLE1BQU0sQ0FBQztJQUNoQztFQUNGO0VBQ0EsS0FBSyxNQUFNd0IsR0FBRyxJQUFJQyxNQUFNLENBQUNDLElBQUksQ0FBQ04sR0FBRyxDQUFDLEVBQUU7SUFDbEMsTUFBTU8sS0FBSyxHQUFHUCxHQUFHLENBQUNJLEdBQUcsQ0FBQztJQUN0QixJQUFJRyxLQUFLLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsRUFBRTtNQUN0Q1Isd0JBQXdCLENBQUNRLEtBQUssRUFBRTNCLE1BQU0sQ0FBQztJQUN6QztFQUNGO0FBQ0Y7QUFFQTRCLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHO0VBQUUvQixlQUFlO0VBQUVxQjtBQUF5QixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
129
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJob3N0bmFtZUZyb21VcmwiLCJ1cmwiLCJob3N0bmFtZSIsIlVSTCIsInRvTG93ZXJDYXNlIiwidW5kZWZpbmVkIiwiZGVmYXVsdEFsbG93ZWRGaWxlVXJsRG9tYWlucyIsInVybHMiLCJzZWVuIiwiU2V0IiwiaG9zdG5hbWVzIiwiaGFzIiwiYWRkIiwicHVzaCIsInJlc29sdmVBbGxvd2VkRmlsZVVybERvbWFpbnMiLCJjb25maWciLCJkb21haW5zIiwiZmlsZVVwbG9hZCIsImFsbG93ZWRGaWxlVXJsRG9tYWlucyIsIkFycmF5IiwiaXNBcnJheSIsIl9hbGxvd2VkRmlsZVVybERvbWFpbnNJc0RlZmF1bHQiLCJkZXJpdmVkIiwicHVibGljU2VydmVyVVJMIiwic2VydmVyVVJMIiwibGVuZ3RoIiwibWFwIiwiZG9tYWluIiwibWVyZ2VkIiwic2xpY2UiLCJ2YWxpZGF0ZUZpbGVVcmwiLCJmaWxlVXJsIiwiaW5jbHVkZXMiLCJwYXJzZWRVcmwiLCJFcnJvciIsIkZJTEVfU0FWRV9FUlJPUiIsImZpbGVIb3N0bmFtZSIsImQiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJ2YWxpZGF0ZUZpbGVVcmxzSW5PYmplY3QiLCJvYmoiLCJpdGVtIiwiX190eXBlIiwia2V5IiwiT2JqZWN0Iiwia2V5cyIsInZhbHVlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9GaWxlVXJsVmFsaWRhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuXG4vKipcbiAqIEV4dHJhY3QgYSBob3N0bmFtZSBmcm9tIGEgc2VydmVyIFVSTCBzdHJpbmcuXG4gKiBGdW5jdGlvbnMgKGFzeW5jIHB1YmxpY1NlcnZlclVSTCkgYW5kIGludmFsaWQgVVJMcyBhcmUgc2tpcHBlZC5cbiAqL1xuZnVuY3Rpb24gaG9zdG5hbWVGcm9tVXJsKHVybCkge1xuICBpZiAodHlwZW9mIHVybCAhPT0gJ3N0cmluZycgfHwgdXJsID09PSAnJykge1xuICAgIHJldHVybjtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IGhvc3RuYW1lID0gbmV3IFVSTCh1cmwpLmhvc3RuYW1lO1xuICAgIHJldHVybiBob3N0bmFtZSA/IGhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgOiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybjtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBkZWZhdWx0IGZpbGUtVVJMIGFsbG93bGlzdCBmcm9tIFBhcnNlIFNlcnZlcidzIG93biBVUkxzLlxuICogVW5jb25maWd1cmVkIGFsbG93ZWRGaWxlVXJsRG9tYWlucyBzaG91bGQgdHJ1c3QgdGhlIHNlcnZlcidzIHB1YmxpYyBob3N0LFxuICogbm90IGV2ZXJ5IGRvbWFpbiBvbiB0aGUgaW50ZXJuZXQuXG4gKi9cbmZ1bmN0aW9uIGRlZmF1bHRBbGxvd2VkRmlsZVVybERvbWFpbnModXJscyA9IFtdKSB7XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0KCk7XG4gIGNvbnN0IGhvc3RuYW1lcyA9IFtdO1xuICBmb3IgKGNvbnN0IHVybCBvZiB1cmxzKSB7XG4gICAgY29uc3QgaG9zdG5hbWUgPSBob3N0bmFtZUZyb21VcmwodXJsKTtcbiAgICBpZiAoaG9zdG5hbWUgJiYgIXNlZW4uaGFzKGhvc3RuYW1lKSkge1xuICAgICAgc2Vlbi5hZGQoaG9zdG5hbWUpO1xuICAgICAgaG9zdG5hbWVzLnB1c2goaG9zdG5hbWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaG9zdG5hbWVzO1xufVxuXG4vKipcbiAqIFdoZW4gdGhlIGFsbG93bGlzdCB3YXMgZGVmYXVsdGVkIChub3Qgc2V0IGJ5IHRoZSBvcGVyYXRvciksIGFsc28gaW5jbHVkZVxuICogaG9zdG5hbWVzIGZyb20gdGhlIGN1cnJlbnQgcHVibGljU2VydmVyVVJMIC8gc2VydmVyVVJMLiBwdWJsaWNTZXJ2ZXJVUkwgY2FuXG4gKiBiZSBhIGZ1bmN0aW9uIHJlc29sdmVkIGxhdGVyIHZpYSBsb2FkS2V5cywgc28gdGhlIHN0b3JlZCBhcnJheSBtYXkgYmUgc3RhbGUuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVBbGxvd2VkRmlsZVVybERvbWFpbnMoY29uZmlnKSB7XG4gIGNvbnN0IGRvbWFpbnMgPSBjb25maWc/LmZpbGVVcGxvYWQ/LmFsbG93ZWRGaWxlVXJsRG9tYWlucztcbiAgaWYgKCFBcnJheS5pc0FycmF5KGRvbWFpbnMpIHx8ICFjb25maWc/Ll9hbGxvd2VkRmlsZVVybERvbWFpbnNJc0RlZmF1bHQpIHtcbiAgICByZXR1cm4gZG9tYWlucztcbiAgfVxuICBjb25zdCBkZXJpdmVkID0gZGVmYXVsdEFsbG93ZWRGaWxlVXJsRG9tYWlucyhbY29uZmlnLnB1YmxpY1NlcnZlclVSTCwgY29uZmlnLnNlcnZlclVSTF0pO1xuICBpZiAoZGVyaXZlZC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZG9tYWlucztcbiAgfVxuICBjb25zdCBzZWVuID0gbmV3IFNldChkb21haW5zLm1hcChkb21haW4gPT4gZG9tYWluLnRvTG93ZXJDYXNlKCkpKTtcbiAgY29uc3QgbWVyZ2VkID0gZG9tYWlucy5zbGljZSgpO1xuICBmb3IgKGNvbnN0IGhvc3RuYW1lIG9mIGRlcml2ZWQpIHtcbiAgICBpZiAoIXNlZW4uaGFzKGhvc3RuYW1lKSkge1xuICAgICAgc2Vlbi5hZGQoaG9zdG5hbWUpO1xuICAgICAgbWVyZ2VkLnB1c2goaG9zdG5hbWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWVyZ2VkO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgRmlsZSBVUkwgaXMgYWxsb3dlZCBiYXNlZCBvbiB0aGUgY29uZmlndXJlZCBhbGxvd2VkIGRvbWFpbnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZVVybCAtIFRoZSBVUkwgdG8gdmFsaWRhdGUuXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gVGhlIFBhcnNlIFNlcnZlciBjb25maWcgb2JqZWN0LlxuICogQHRocm93cyB7UGFyc2UuRXJyb3J9IElmIHRoZSBVUkwgaXMgbm90IGFsbG93ZWQuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlRmlsZVVybChmaWxlVXJsLCBjb25maWcpIHtcbiAgaWYgKGZpbGVVcmwgPT0gbnVsbCB8fCBmaWxlVXJsID09PSAnJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGRvbWFpbnMgPSByZXNvbHZlQWxsb3dlZEZpbGVVcmxEb21haW5zKGNvbmZpZyk7XG4gIGlmICghQXJyYXkuaXNBcnJheShkb21haW5zKSB8fCBkb21haW5zLmluY2x1ZGVzKCcqJykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgcGFyc2VkVXJsO1xuICB0cnkge1xuICAgIHBhcnNlZFVybCA9IG5ldyBVUkwoZmlsZVVybCk7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5GSUxFX1NBVkVfRVJST1IsIGBJbnZhbGlkIGZpbGUgVVJMLmApO1xuICB9XG5cbiAgY29uc3QgZmlsZUhvc3RuYW1lID0gcGFyc2VkVXJsLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCk7XG4gIGZvciAoY29uc3QgZG9tYWluIG9mIGRvbWFpbnMpIHtcbiAgICBjb25zdCBkID0gZG9tYWluLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGZpbGVIb3N0bmFtZSA9PT0gZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZC5zdGFydHNXaXRoKCcqLicpICYmIGZpbGVIb3N0bmFtZS5lbmRzV2l0aChkLnNsaWNlKDEpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5GSUxFX1NBVkVfRVJST1IsIGBGaWxlIFVSTCBkb21haW4gJyR7cGFyc2VkVXJsLmhvc3RuYW1lfScgaXMgbm90IGFsbG93ZWQuYCk7XG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgc2NhbnMgYW4gb2JqZWN0IGZvciBGaWxlIHR5cGUgZmllbGRzIGFuZCB2YWxpZGF0ZXMgdGhlaXIgVVJMcy5cbiAqIEBwYXJhbSB7YW55fSBvYmogLSBUaGUgb2JqZWN0IHRvIHNjYW4uXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gVGhlIFBhcnNlIFNlcnZlciBjb25maWcgb2JqZWN0LlxuICogQHRocm93cyB7UGFyc2UuRXJyb3J9IElmIGFueSBGaWxlIFVSTCBpcyBub3QgYWxsb3dlZC5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVGaWxlVXJsc0luT2JqZWN0KG9iaiwgY29uZmlnKSB7XG4gIGlmIChvYmogPT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIG9iaikge1xuICAgICAgdmFsaWRhdGVGaWxlVXJsc0luT2JqZWN0KGl0ZW0sIGNvbmZpZyk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBpZiAob2JqLl9fdHlwZSA9PT0gJ0ZpbGUnICYmIG9iai51cmwpIHtcbiAgICB2YWxpZGF0ZUZpbGVVcmwob2JqLnVybCwgY29uZmlnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbGlkYXRlRmlsZVVybHNJbk9iamVjdCh2YWx1ZSwgY29uZmlnKTtcbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHZhbGlkYXRlRmlsZVVybCxcbiAgdmFsaWRhdGVGaWxlVXJsc0luT2JqZWN0LFxuICBkZWZhdWx0QWxsb3dlZEZpbGVVcmxEb21haW5zLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8s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
|