@checkdigit/eslint-plugin 6.6.0-PR.75-fd90 → 6.6.0-PR.75-e80b
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/dist-cjs/index.cjs +55 -22
- package/dist-cjs/metafile.json +3 -3
- package/dist-mjs/no-fixture.mjs +54 -21
- package/package.json +1 -1
- package/src/no-fixture.ts +87 -35
package/dist-cjs/index.cjs
CHANGED
|
@@ -25,7 +25,7 @@ __export(src_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(src_exports);
|
|
26
26
|
|
|
27
27
|
// package.json
|
|
28
|
-
var package_default = { name: "@checkdigit/eslint-plugin", version: "6.6.0-PR.75-
|
|
28
|
+
var package_default = { name: "@checkdigit/eslint-plugin", version: "6.6.0-PR.75-e80b", description: "Check Digit eslint plugins", keywords: ["eslint", "eslintplugin"], homepage: "https://github.com/checkdigit/eslint-plugin#readme", bugs: { url: "https://github.com/checkdigit/eslint-plugin/issues" }, repository: { type: "git", url: "https://github.com/checkdigit/eslint-plugin" }, license: "MIT", author: "Check Digit, LLC", sideEffects: false, type: "module", exports: { ".": { types: "./dist-types/index.d.ts", require: "./dist-cjs/index.cjs", import: "./dist-mjs/index.mjs", default: "./dist-mjs/index.mjs" } }, files: ["src", "dist-types", "dist-cjs", "dist-mjs", "!src/**/*.test.ts", "!src/**/*.spec.ts", "!dist-types/**/*.test.d.ts", "!dist-types/**/*.spec.d.ts", "!dist-cjs/**/*.test.cjs", "!dist-cjs/**/*.spec.cjs", "!dist-mjs/**/*.test.mjs", "!dist-mjs/**/*.spec.mjs", "SECURITY.md"], scripts: { "build:dist-cjs": 'rimraf dist-cjs && npx builder --type=commonjs --sourceMap --entryPoint=index.ts --outDir=dist-cjs --outFile=index.cjs && echo "module.exports = module.exports.default;" >> dist-cjs/index.cjs && node dist-cjs/index.cjs', "build:dist-mjs": "rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs", "build:dist-types": "rimraf dist-types && npx builder --type=types --outDir=dist-types", "ci:compile": "tsc --noEmit", "ci:coverage": 'NODE_OPTIONS="--disable-warning ExperimentalWarning --experimental-vm-modules" jest --coverage=true', "ci:lint": "npm run lint", "ci:style": "npm run prettier", "ci:test": 'NODE_OPTIONS="--disable-warning ExperimentalWarning --experimental-vm-modules" jest --coverage=false', lint: "eslint --max-warnings 0 --ignore-path .gitignore .", "lint:fix": "eslint --ignore-path .gitignore . --fix", prepublishOnly: "npm run build:dist-types && npm run build:dist-cjs && npm run build:dist-mjs", prettier: "prettier --ignore-path .gitignore --list-different .", "prettier:fix": "prettier --ignore-path .gitignore --write .", test: "npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style" }, prettier: "@checkdigit/prettier-config", jest: { preset: "@checkdigit/jest-config" }, devDependencies: { "@checkdigit/jest-config": "^6.0.2", "@checkdigit/prettier-config": "^5.5.0", "@checkdigit/typescript-config": "6.0.0", "@types/eslint": "^8.56.10", "@typescript-eslint/eslint-plugin": "^7.16.1", "@typescript-eslint/parser": "^7.16.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-eslint-plugin": "^6.2.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-no-secrets": "^1.0.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-sonarjs": "0.24.0" }, peerDependencies: { eslint: ">=8 <9" }, engines: { node: ">=20.14" } };
|
|
29
29
|
|
|
30
30
|
// src/get-documentation-url.ts
|
|
31
31
|
function getDocumentationUrl(ruleId4) {
|
|
@@ -153,10 +153,10 @@ function appendAssertions(expects, sourceCode, variableName) {
|
|
|
153
153
|
assertions.push(`assert.ok(${sourceCode.getText(assertionArgument)})`);
|
|
154
154
|
} else if (assertionArgument.type === "Identifier") {
|
|
155
155
|
assertions.push(`assert.ok(${sourceCode.getText(assertionArgument)}(${variableName}))`);
|
|
156
|
-
} else if (assertionArgument.type === "ObjectExpression") {
|
|
157
|
-
assertions.push(`assert.deepEqual(${variableName}.
|
|
156
|
+
} else if (assertionArgument.type === "ObjectExpression" || assertionArgument.type === "CallExpression") {
|
|
157
|
+
assertions.push(`assert.deepEqual(await ${variableName}.json(), ${sourceCode.getText(assertionArgument)})`);
|
|
158
158
|
} else {
|
|
159
|
-
throw new Error(`Unexpected assertion argument: ${sourceCode.getText(assertionArgument)}`);
|
|
159
|
+
throw new Error(`Unexpected Supertest assertion argument: ".expect(${sourceCode.getText(assertionArgument)})`);
|
|
160
160
|
}
|
|
161
161
|
} else if (expectArguments.length === 2) {
|
|
162
162
|
const [headerName, headerValue] = expectArguments;
|
|
@@ -183,22 +183,33 @@ function getAncestor(node, matchType, quitType) {
|
|
|
183
183
|
}
|
|
184
184
|
return getAncestor(parent, matchType, quitType);
|
|
185
185
|
}
|
|
186
|
-
function analyzeReferences(
|
|
186
|
+
function analyzeReferences(fixtureCall, scopeManager) {
|
|
187
187
|
const results = {
|
|
188
188
|
responseBodyReferences: [],
|
|
189
189
|
responseHeadersReferences: []
|
|
190
190
|
};
|
|
191
|
-
const variableDeclaration = getAncestor(
|
|
191
|
+
const variableDeclaration = getAncestor(fixtureCall, "VariableDeclaration", "FunctionDeclaration");
|
|
192
192
|
if (variableDeclaration && variableDeclaration.type === "VariableDeclaration") {
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
193
|
+
const responseVariables = scopeManager.getDeclaredVariables(variableDeclaration);
|
|
194
|
+
for (const responseVariable of responseVariables) {
|
|
195
|
+
const identifier = responseVariable.identifiers[0];
|
|
196
|
+
import_node_assert.strict.ok(identifier);
|
|
197
|
+
const identifierParent = getParent(identifier);
|
|
198
|
+
import_node_assert.strict.ok(identifierParent);
|
|
199
|
+
if (identifierParent.type === "VariableDeclarator") {
|
|
200
|
+
results.responseVariable = responseVariable;
|
|
201
|
+
results.responseBodyReferences = responseVariable.references.map((responseBodyReference) => getParent(responseBodyReference.identifier)).filter(
|
|
202
|
+
(node) => node !== null && node !== void 0 && node.type === "MemberExpression" && node.property.type === "Identifier" && node.property.name === "body"
|
|
203
|
+
);
|
|
204
|
+
results.responseHeadersReferences = responseVariable.references.map((responseHeadersReference) => getParent(responseHeadersReference.identifier)).filter(
|
|
205
|
+
(node) => node !== null && node !== void 0 && node.type === "MemberExpression" && node.property.type === "Identifier" && (node.property.name === "header" || node.property.name === "headers" || node.property.name === "get")
|
|
206
|
+
);
|
|
207
|
+
} else if (identifierParent.type === "Property" && identifierParent.key.type === "Identifier" && identifierParent.key.name === "body") {
|
|
208
|
+
results.spreadResponseBodyVariable = responseVariable;
|
|
209
|
+
} else if (identifierParent.type === "Property" && identifierParent.key.type === "Identifier" && identifierParent.key.name === "headers") {
|
|
210
|
+
results.spreadResponseHeadersVariable = responseVariable;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
202
213
|
}
|
|
203
214
|
return results;
|
|
204
215
|
}
|
|
@@ -240,10 +251,13 @@ var rule = {
|
|
|
240
251
|
import_node_assert.strict.ok(urlArgumentNode !== void 0);
|
|
241
252
|
const fixtureCallInformation = {};
|
|
242
253
|
analyze(fixtureCall, fixtureCallInformation);
|
|
243
|
-
const {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
254
|
+
const {
|
|
255
|
+
responseVariable,
|
|
256
|
+
responseBodyReferences,
|
|
257
|
+
responseHeadersReferences,
|
|
258
|
+
spreadResponseBodyVariable,
|
|
259
|
+
spreadResponseHeadersVariable
|
|
260
|
+
} = analyzeReferences(fixtureCallInformation.root, scopeManager);
|
|
247
261
|
let variableNameToUse;
|
|
248
262
|
let isResponseVariableDeclared = false;
|
|
249
263
|
if (responseVariable === void 0) {
|
|
@@ -279,6 +293,15 @@ var rule = {
|
|
|
279
293
|
${indentation}`);
|
|
280
294
|
}
|
|
281
295
|
replacedText = replacedText.replace(fixtureArgumentText, fetchArgumentText);
|
|
296
|
+
const needVariableRedefine = spreadResponseBodyVariable !== void 0 || (responseVariable === void 0 && fixtureCallInformation.assertions) !== void 0;
|
|
297
|
+
if (needVariableRedefine) {
|
|
298
|
+
replacedText = [
|
|
299
|
+
replacedText,
|
|
300
|
+
...spreadResponseBodyVariable ? [`const ${spreadResponseBodyVariable.name} = await ${variableNameToUse}.json()`] : [],
|
|
301
|
+
...spreadResponseHeadersVariable ? [`const ${spreadResponseHeadersVariable.name} = ${variableNameToUse}.headers`] : []
|
|
302
|
+
].join(`;
|
|
303
|
+
${indentation}`);
|
|
304
|
+
}
|
|
282
305
|
if (fixtureCallInformation.assertions) {
|
|
283
306
|
if (!isResponseVariableDeclared) {
|
|
284
307
|
replacedText = `const ${variableNameToUse} = ${replacedText}`;
|
|
@@ -293,7 +316,17 @@ ${indentation}`);
|
|
|
293
316
|
node: fixtureCall,
|
|
294
317
|
messageId: "preferNativeFetch",
|
|
295
318
|
*fix(fixer) {
|
|
296
|
-
|
|
319
|
+
let replacementRootNode = fixtureCallInformation.root;
|
|
320
|
+
if (spreadResponseBodyVariable) {
|
|
321
|
+
const identifier = spreadResponseBodyVariable.identifiers[0];
|
|
322
|
+
import_node_assert.strict.ok(identifier);
|
|
323
|
+
const variableDeclaration = getAncestor(identifier, "VariableDeclaration", "FunctionDeclaration");
|
|
324
|
+
import_node_assert.strict.ok(variableDeclaration);
|
|
325
|
+
replacementRootNode = variableDeclaration;
|
|
326
|
+
} else if (fixtureCallInformation.assertions !== void 0 && responseVariable === void 0) {
|
|
327
|
+
replacementRootNode = getAncestor(fixtureCallInformation.root, "VariableDeclaration", "FunctionDeclaration") ?? fixtureCallInformation.root;
|
|
328
|
+
}
|
|
329
|
+
yield fixer.replaceText(replacementRootNode, replacedText);
|
|
297
330
|
for (const responseBodyReference of responseBodyReferences) {
|
|
298
331
|
yield fixer.replaceText(responseBodyReference, `await ${variableNameToUse}.json()`);
|
|
299
332
|
}
|
|
@@ -331,7 +364,7 @@ ${indentation}return ${variableNameToUse};`
|
|
|
331
364
|
}
|
|
332
365
|
});
|
|
333
366
|
} catch (error) {
|
|
334
|
-
console.
|
|
367
|
+
console.error(`Failed to apply ${ruleId2} rule. Error:`, error);
|
|
335
368
|
context.report({
|
|
336
369
|
node: fixtureCall,
|
|
337
370
|
messageId: "unknownError",
|
|
@@ -1089,5 +1122,5 @@ var src_default = {
|
|
|
1089
1122
|
}
|
|
1090
1123
|
}
|
|
1091
1124
|
};
|
|
1092
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3BhY2thZ2UuanNvbiIsICIuLi9zcmMvZ2V0LWRvY3VtZW50YXRpb24tdXJsLnRzIiwgIi4uL3NyYy9pbnZhbGlkLWpzb24tc3RyaW5naWZ5LnRzIiwgIi4uL3NyYy9uby1maXh0dXJlLnRzIiwgIi4uL3NyYy9uby1wcm9taXNlLWluc3RhbmNlLW1ldGhvZC50cyIsICIuLi9zcmMvZmlsZS1wYXRoLWNvbW1lbnQudHMiLCAiLi4vc3JjL25vLWNhcmQtbnVtYmVycy50cyIsICIuLi9zcmMvbm8tdGVzdC1pbXBvcnQudHMiLCAiLi4vc3JjL25vLXV1aWQudHMiLCAiLi4vc3JjL25vLXdhbGxhYnktY29tbWVudC50cyIsICIuLi9zcmMvb2JqZWN0LWxpdGVyYWwtcmVzcG9uc2UudHMiLCAiLi4vc3JjL3JlZ3VsYXItZXhwcmVzc2lvbi1jb21tZW50LnRzIiwgIi4uL3NyYy9yZXF1aXJlLWFzc2VydC1wcmVkaWNhdGUtcmVqZWN0cy10aHJvd3MudHMiLCAiLi4vc3JjL3JlcXVpcmUtc3RyaWN0LWFzc2VydC50cyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsd0JBQUMsTUFBTyw2QkFBNEIsU0FBVSxvQkFBbUIsYUFBYyw4QkFBNkIsVUFBVyxDQUFDLFVBQVMsY0FBYyxHQUFFLFVBQVcsc0RBQXFELE1BQU8sRUFBQyxLQUFNLHFEQUFvRCxHQUFFLFlBQWEsRUFBQyxNQUFPLE9BQU0sS0FBTSw4Q0FBNkMsR0FBRSxTQUFVLE9BQU0sUUFBUyxvQkFBbUIsYUFBYyxPQUFNLE1BQU8sVUFBUyxTQUFVLEVBQUMsS0FBSSxFQUFDLE9BQVEsMkJBQTBCLFNBQVUsd0JBQXVCLFFBQVMsd0JBQXVCLFNBQVUsdUJBQXNCLEVBQUMsR0FBRSxPQUFRLENBQUMsT0FBTSxjQUFhLFlBQVcsWUFBVyxxQkFBb0IscUJBQW9CLDhCQUE2Qiw4QkFBNkIsMkJBQTBCLDJCQUEwQiwyQkFBMEIsMkJBQTBCLGFBQWEsR0FBRSxTQUFVLEVBQUMsa0JBQWlCLDhOQUErTixrQkFBaUIseUdBQXdHLG9CQUFtQixxRUFBb0UsY0FBYSxnQkFBZSxlQUFjLHVHQUF3RyxXQUFVLGdCQUFlLFlBQVcsb0JBQW1CLFdBQVUsd0dBQXlHLE1BQU8sc0RBQXFELFlBQVcsMkNBQTBDLGdCQUFpQixnRkFBK0UsVUFBVyx3REFBdUQsZ0JBQWUsK0NBQThDLE1BQU8sK0VBQThFLEdBQUUsVUFBVywrQkFBOEIsTUFBTyxFQUFDLFFBQVMsMEJBQXlCLEdBQUUsaUJBQWtCLEVBQUMsMkJBQTBCLFVBQVMsK0JBQThCLFVBQVMsaUNBQWdDLFNBQVEsaUJBQWdCLFlBQVcsb0NBQW1DLFdBQVUsNkJBQTRCLFdBQVUsMEJBQXlCLFVBQVMsK0JBQThCLFVBQVMsd0JBQXVCLFdBQVUsK0JBQThCLFVBQVMsNEJBQTJCLFVBQVMsc0JBQXFCLFdBQVUseUJBQXdCLFNBQVEsR0FBRSxrQkFBbUIsRUFBQyxRQUFTLFNBQVEsR0FBRSxTQUFVLEVBQUMsTUFBTyxVQUFTLEVBQUM7OztBQ0l0bkYsU0FBUixvQkFBcUNBLFNBQXdCO0FBQ2xFLFNBQU8sR0FBRyxnQkFBWSxXQUFXLEdBQUcsVUFBVSxnQkFBWSxPQUFPLGVBQWVBLE9BQU07QUFDeEY7OztBQ0tPLElBQU0sU0FBUztBQUN0QixJQUFNLHlCQUF5QjtBQUMvQixJQUFNLGtCQUFrQixDQUFDLGVBQWU7QUFFeEMsSUFBTyxpQ0FBUTtBQUFBLEVBQ2IsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFDRTtBQUFBLE1BQ0YsS0FBSyxvQkFBb0IsTUFBTTtBQUFBLElBQ2pDO0FBQUEsSUFDQSxRQUFRO0FBQUEsTUFDTjtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sT0FBTztBQUFBLFVBQ0wsYUFBYTtBQUFBLFVBQ2IsTUFBTTtBQUFBLFVBQ04sVUFBVTtBQUFBLFFBQ1o7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxzQkFBc0IsR0FBRztBQUFBLElBQzVCO0FBQUEsSUFDQSxTQUFTO0FBQUEsSUFDVCxnQkFBZ0I7QUFBQSxFQUNsQjtBQUFBLEVBQ0EsT0FBTyxTQUFTO0FBQ2QsVUFBTSxVQUFXLFFBQVEsUUFBUSxDQUFDLEtBQUs7QUFDdkMsVUFBTSwrQkFBK0IsUUFBUSxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sUUFBUSxHQUFHLENBQUM7QUFFcEYsV0FBTztBQUFBLE1BQ0wsZUFBZSxNQUFNO0FBQ25CLFlBQ0UsS0FBSyxPQUFPLFNBQVMsc0JBQ3JCLEtBQUssT0FBTyxPQUFPLFNBQVMsZ0JBQzVCLEtBQUssT0FBTyxPQUFPLFNBQVMsVUFDNUIsS0FBSyxPQUFPLFNBQVMsU0FBUyxnQkFDOUIsS0FBSyxPQUFPLFNBQVMsU0FBUyxhQUM5QjtBQUNBLGdCQUFNLFdBQVcsS0FBSyxVQUFVLENBQUM7QUFDakMsY0FBSSxhQUFhLFVBQWEsU0FBUyxTQUFTLGNBQWM7QUFDNUQseUNBQTZCLEtBQUssQ0FBQyxnQ0FBZ0M7QUFDakUsa0JBQUksNEJBQTRCLEtBQUssU0FBUyxJQUFJLEdBQUc7QUFDbkQsd0JBQVEsT0FBTztBQUFBLGtCQUNiO0FBQUEsa0JBQ0EsV0FBVztBQUFBLGtCQUNYLE1BQU07QUFBQSxvQkFDSixlQUFlLFNBQVM7QUFBQSxrQkFDMUI7QUFBQSxrQkFDQSxTQUFTO0FBQUEsb0JBQ1A7QUFBQSxzQkFDRSxXQUFXO0FBQUEsc0JBQ1gsTUFBTTtBQUFBLHdCQUNKLGVBQWUsU0FBUztBQUFBLHNCQUMxQjtBQUFBLHNCQUNBLElBQUksT0FBTztBQUNULCtCQUFPLE1BQU0sWUFBWSxNQUFNLFVBQVUsU0FBUyxJQUFJLEdBQUc7QUFBQSxzQkFDM0Q7QUFBQSxvQkFDRjtBQUFBLGtCQUNGO0FBQUEsZ0JBQ0YsQ0FBQztBQUNELHVCQUFPO0FBQUEsY0FDVDtBQUNBLHFCQUFPO0FBQUEsWUFDVCxDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjs7O0FDaEVBLHlCQUFpQztBQUcxQixJQUFNQyxVQUFTO0FBZXRCLFNBQVMsVUFBVSxNQUFxQztBQUN0RCxTQUFRLEtBQXdDO0FBQ2xEO0FBRUEsU0FBUyxRQUFRLE1BQTRCLFNBQWlDO0FBQzVFLFFBQU0sU0FBUyxVQUFVLElBQUk7QUFDN0IscUJBQUFDLE9BQU8sR0FBRyxRQUFRLHFEQUFxRDtBQUV2RSxNQUFJO0FBQ0osTUFBSSxPQUFPLFNBQVMscUJBQXFCLE9BQU8sU0FBUyxtQkFBbUI7QUFFMUUsWUFBUSxPQUFPO0FBQUEsRUFDakIsV0FBVyxPQUFPLFNBQVMsc0JBQXNCLE9BQU8sU0FBUyxTQUFTLGNBQWM7QUFDdEYsUUFBSSxPQUFPLFNBQVMsU0FBUyxVQUFVO0FBQ3JDLFlBQU0sZ0JBQWdCLFVBQVUsTUFBTTtBQUN0Qyx5QkFBQUEsT0FBTyxHQUFHLGlCQUFpQixjQUFjLFNBQVMsZ0JBQWdCO0FBQ2xFLGNBQVEsYUFBYSxDQUFDLEdBQUksUUFBUSxjQUFjLENBQUMsR0FBSSxjQUFjLFNBQXlCO0FBQzVGLGlCQUFXO0FBQUEsSUFDYixXQUFXLE9BQU8sU0FBUyxTQUFTLFFBQVE7QUFDMUMsWUFBTSxzQkFBc0IsVUFBVSxNQUFNO0FBQzVDLHlCQUFBQSxPQUFPLEdBQUcsdUJBQXVCLG9CQUFvQixTQUFTLGdCQUFnQjtBQUM5RSxjQUFRLGNBQWMsb0JBQW9CLFVBQVUsQ0FBQztBQUNyRCxpQkFBVztBQUFBLElBQ2IsV0FBVyxPQUFPLFNBQVMsU0FBUyxPQUFPO0FBQ3pDLFlBQU0sdUJBQXVCLFVBQVUsTUFBTTtBQUM3Qyx5QkFBQUEsT0FBTyxHQUFHLHdCQUF3QixxQkFBcUIsU0FBUyxnQkFBZ0I7QUFDaEYsWUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLHFCQUFxQjtBQUMzQyxjQUFRLGlCQUFpQixDQUFDLEdBQUksUUFBUSxrQkFBa0IsQ0FBQyxHQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsaUJBQVc7QUFBQSxJQUNiO0FBQUEsRUFDRixPQUFPO0FBQ0wsVUFBTSxJQUFJLE1BQU0sbURBQW1ELE9BQU8sTUFBTSxDQUFDLEVBQUU7QUFBQSxFQUNyRjtBQUNBLE1BQUksVUFBVTtBQUNaLFlBQVEsVUFBVSxPQUFPO0FBQUEsRUFDM0I7QUFDRjtBQUVBLFNBQVMscUNBQXFDLEtBQWE7QUFFekQsU0FBTyxJQUFJLFFBQVEsa0NBQWtDLGdCQUFnQjtBQUN2RTtBQUVBLFNBQVMsb0JBQW9CLE1BQWU7QUFDMUMsU0FBTyxPQUFPLFNBQVMsWUFBWSw4QkFBOEIsS0FBSyxJQUFJO0FBQzVFO0FBRUEsU0FBUyxpQkFBaUIsU0FBeUIsWUFBd0IsY0FBc0I7QUFDL0YsUUFBTSxhQUF1QixDQUFDO0FBQzlCLGFBQVcsbUJBQW1CLFNBQVM7QUFDckMsUUFBSSxnQkFBZ0IsV0FBVyxHQUFHO0FBQ2hDLFlBQU0sQ0FBQyxpQkFBaUIsSUFBSTtBQUM1Qix5QkFBQUEsT0FBTyxHQUFHLGlCQUFpQjtBQUMzQixVQUNHLGtCQUFrQixTQUFTLHNCQUMxQixrQkFBa0IsT0FBTyxTQUFTLGdCQUNsQyxrQkFBa0IsT0FBTyxTQUFTLGlCQUNwQyxrQkFBa0IsU0FBUyxXQUMzQjtBQUVBLG1CQUFXLEtBQUssZ0JBQWdCLFlBQVksWUFBWSxXQUFXLFFBQVEsaUJBQWlCLENBQUMsR0FBRztBQUFBLE1BQ2xHLFdBQVcsa0JBQWtCLFNBQVMsMkJBQTJCO0FBRS9ELG1CQUFXLEtBQUssYUFBYSxXQUFXLFFBQVEsaUJBQWlCLENBQUMsR0FBRztBQUFBLE1BQ3ZFLFdBQVcsa0JBQWtCLFNBQVMsY0FBYztBQUVsRCxtQkFBVyxLQUFLLGFBQWEsV0FBVyxRQUFRLGlCQUFpQixDQUFDLElBQUksWUFBWSxJQUFJO0FBQUEsTUFDeEYsV0FBVyxrQkFBa0IsU0FBUyxvQkFBb0I7QUFFeEQsbUJBQVcsS0FBSyxvQkFBb0IsWUFBWSxVQUFVLFdBQVcsUUFBUSxpQkFBaUIsQ0FBQyxHQUFHO0FBQUEsTUFDcEcsT0FBTztBQUNMLGNBQU0sSUFBSSxNQUFNLGtDQUFrQyxXQUFXLFFBQVEsaUJBQWlCLENBQUMsRUFBRTtBQUFBLE1BQzNGO0FBQUEsSUFDRixXQUFXLGdCQUFnQixXQUFXLEdBQUc7QUFFdkMsWUFBTSxDQUFDLFlBQVksV0FBVyxJQUFJO0FBQ2xDLHlCQUFBQSxPQUFPLEdBQUcsY0FBYyxXQUFXO0FBQ25DLFVBQUksWUFBWSxTQUFTLGFBQWEsWUFBWSxpQkFBaUIsUUFBUTtBQUN6RSxtQkFBVztBQUFBLFVBQ1QsYUFBYSxZQUFZLGdCQUFnQixXQUFXLFFBQVEsVUFBVSxDQUFDLFdBQVcsV0FBVyxRQUFRLFdBQVcsQ0FBQztBQUFBLFFBQ25IO0FBQUEsTUFDRixPQUFPO0FBQ0wsbUJBQVc7QUFBQSxVQUNULGdCQUFnQixZQUFZLGdCQUFnQixXQUFXLFFBQVEsVUFBVSxDQUFDLE1BQU0sV0FBVyxRQUFRLFdBQVcsQ0FBQztBQUFBLFFBQ2pIO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUNUO0FBRUEsU0FBUyxZQUFZLE1BQVksV0FBbUIsVUFBa0I7QUFDcEUsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixNQUFJLENBQUMsVUFBVSxPQUFPLFNBQVMsVUFBVTtBQUN2QyxXQUFPO0FBQUEsRUFDVCxXQUFXLE9BQU8sU0FBUyxXQUFXO0FBQ3BDLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxZQUFZLFFBQVEsV0FBVyxRQUFRO0FBQ2hEO0FBRUEsU0FBUyxrQkFBa0Isa0JBQXFELGNBQWtDO0FBQ2hILFFBQU0sVUFJRjtBQUFBLElBQ0Ysd0JBQXdCLENBQUM7QUFBQSxJQUN6QiwyQkFBMkIsQ0FBQztBQUFBLEVBQzlCO0FBRUEsUUFBTSxzQkFBc0IsWUFBWSxrQkFBa0IsdUJBQXVCLHFCQUFxQjtBQUN0RyxNQUFJLHVCQUF1QixvQkFBb0IsU0FBUyx1QkFBdUI7QUFDN0UsVUFBTSxDQUFDLGdCQUFnQixJQUFJLGFBQWEscUJBQXFCLG1CQUFtQjtBQUNoRix1QkFBQUEsT0FBTyxHQUFHLGdCQUFnQjtBQUUxQixZQUFRLG1CQUFtQjtBQUMzQixZQUFRLHlCQUF5QixpQkFBaUIsV0FDL0MsSUFBSSxDQUFDLDBCQUEwQixVQUFVLHNCQUFzQixVQUFVLENBQUMsRUFDMUU7QUFBQSxNQUNDLENBQUMsU0FDQyxTQUFTLFFBQ1QsU0FBUyxVQUNULEtBQUssU0FBUyxzQkFDZCxLQUFLLFNBQVMsU0FBUyxnQkFDdkIsS0FBSyxTQUFTLFNBQVM7QUFBQSxJQUMzQjtBQUNGLFlBQVEsNEJBQTRCLGlCQUFpQixXQUNsRCxJQUFJLENBQUMsNkJBQTZCLFVBQVUseUJBQXlCLFVBQVUsQ0FBQyxFQUNoRjtBQUFBLE1BQ0MsQ0FBQyxTQUNDLFNBQVMsUUFDVCxTQUFTLFVBQ1QsS0FBSyxTQUFTLHNCQUNkLEtBQUssU0FBUyxTQUFTLGlCQUN0QixLQUFLLFNBQVMsU0FBUyxZQUFZLEtBQUssU0FBUyxTQUFTLGFBQWEsS0FBSyxTQUFTLFNBQVM7QUFBQSxJQUNuRztBQUFBLEVBQ0o7QUFDQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGVBQWUsTUFBWSxZQUF3QjtBQUMxRCxxQkFBQUEsT0FBTyxHQUFHLEtBQUssR0FBRztBQUNsQixRQUFNLE9BQU8sV0FBVyxNQUFNLEtBQUssSUFBSSxNQUFNLE9BQU8sQ0FBQztBQUNyRCxxQkFBQUEsT0FBTyxHQUFHLElBQUk7QUFDZCxRQUFNLGNBQWMsS0FBSyxNQUFNLE9BQU87QUFDdEMsU0FBTyxjQUFjLFlBQVksQ0FBQyxJQUFJO0FBQ3hDO0FBRUEsSUFBTSxPQUF3QjtBQUFBLEVBQzVCLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxNQUNiLEtBQUssb0JBQW9CRCxPQUFNO0FBQUEsSUFDakM7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLG1CQUFtQjtBQUFBLE1BQ25CLGNBQ0U7QUFBQSxJQUNKO0FBQUEsSUFDQSxTQUFTO0FBQUEsSUFDVCxRQUFRLENBQUM7QUFBQSxFQUNYO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxVQUFNLGFBQWEsUUFBUTtBQUMzQixVQUFNLGVBQWUsV0FBVztBQUNoQyxRQUFJLGtCQUFrQjtBQUV0QixXQUFPO0FBQUEsTUFDTCwwRkFBMEYsQ0FBQyxnQkFBc0I7QUFDL0csWUFBSTtBQUNGLDZCQUFBQyxPQUFPLEdBQUcsWUFBWSxTQUFTLGdCQUFnQjtBQUMvQyxnQkFBTSxrQkFBa0IsWUFBWTtBQUNwQyw2QkFBQUEsT0FBTyxHQUFHLGdCQUFnQixTQUFTLGtCQUFrQjtBQUNyRCxnQkFBTSxhQUFhLGdCQUFnQjtBQUNuQyw2QkFBQUEsT0FBTyxHQUFHLFdBQVcsU0FBUyxZQUFZO0FBQzFDLGdCQUFNLGNBQWMsZUFBZSxhQUFhLFVBQVU7QUFFMUQsZ0JBQU0sQ0FBQyxlQUFlLElBQUksWUFBWTtBQUN0Qyw2QkFBQUEsT0FBTyxHQUFHLG9CQUFvQixNQUFTO0FBRXZDLGdCQUFNLHlCQUF5QixDQUFDO0FBQ2hDLGtCQUFRLGFBQWEsc0JBQXNCO0FBRTNDLGdCQUFNLEVBQUUsa0JBQWtCLHdCQUF3QiwwQkFBMEIsSUFBSTtBQUFBLFlBQzlFLHVCQUF1QjtBQUFBLFlBQ3ZCO0FBQUEsVUFDRjtBQUNBLGNBQUk7QUFDSixjQUFJLDZCQUE2QjtBQUNqQyxjQUFJLHFCQUFxQixRQUFXO0FBQ2xDLGdDQUFvQixXQUFXLG9CQUFvQixJQUFJLEtBQUssZ0JBQWdCLFNBQVMsQ0FBQztBQUN0RjtBQUFBLFVBQ0YsT0FBTztBQUNMLHlDQUE2QjtBQUM3QixnQ0FBb0IsaUJBQWlCO0FBQUEsVUFDdkM7QUFHQSxnQkFBTSxxQkFBcUIsV0FBVyxRQUFRLFdBQVc7QUFDekQsZ0JBQU0sb0JBQW9CLFdBQVcsUUFBUSxlQUFlO0FBRTVELGdCQUFNLHNCQUNKLHVCQUF1QixLQUFLLFNBQVMscUJBQXFCLHVCQUF1QixlQUFlLFNBQzVGLFdBQ0E7QUFDTixjQUFJLGVBQWUsbUJBQW1CLFFBQVEsbUJBQW1CLEdBQUcsbUJBQW1CLFFBQVE7QUFHL0YsZ0JBQU0sc0JBQXNCLFdBQVcsUUFBUSxlQUFlO0FBQzlELGNBQUksb0JBQW9CLHFDQUFxQyxtQkFBbUI7QUFHaEYsY0FDRSxXQUFXLFNBQVMsU0FDcEIsdUJBQXVCLGdCQUFnQixVQUN2Qyx1QkFBdUIsbUJBQW1CLFFBQzFDO0FBQ0EsaUNBQXFCO0FBQUEsY0FDbkI7QUFBQSxjQUNBLGNBQWMsV0FBVyxLQUFLLFlBQVksQ0FBQztBQUFBLGNBQzNDLEdBQUksdUJBQXVCLGNBQ3ZCLENBQUMsMEJBQTBCLFdBQVcsUUFBUSx1QkFBdUIsV0FBVyxDQUFDLElBQUksSUFDckYsQ0FBQztBQUFBLGNBQ0wsR0FBSSx1QkFBdUIsaUJBQ3ZCO0FBQUEsZ0JBQ0U7QUFBQSxnQkFDQSxHQUFHLHVCQUF1QixlQUFlO0FBQUEsa0JBQ3ZDLENBQUMsRUFBRSxNQUFNLE1BQU07QUFBQTtBQUFBLG9CQUViLE9BQU8sS0FBSyxTQUFTLFlBQWEsb0JBQW9CLEtBQUssS0FBSyxJQUFJLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxNQUFPLElBQUksV0FBVyxRQUFRLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxRQUFRLEtBQUssQ0FBQztBQUFBO0FBQUEsZ0JBQ3ZLO0FBQUEsZ0JBQ0E7QUFBQSxjQUNGLElBQ0EsQ0FBQztBQUFBLGNBQ0w7QUFBQSxZQUNGLEVBQUUsS0FBSztBQUFBLEVBQUssV0FBVyxFQUFFO0FBQUEsVUFDM0I7QUFFQSx5QkFBZSxhQUFhLFFBQVEscUJBQXFCLGlCQUFpQjtBQUUxRSxjQUFJLHVCQUF1QixZQUFZO0FBRXJDLGdCQUFJLENBQUMsNEJBQTRCO0FBQy9CLDZCQUFlLFNBQVMsaUJBQWlCLE1BQU0sWUFBWTtBQUFBLFlBQzdEO0FBRUEsMkJBQWU7QUFBQSxjQUNiO0FBQUEsY0FDQSxHQUFHLGlCQUFpQix1QkFBdUIsWUFBWSxZQUFZLGlCQUFpQjtBQUFBLFlBQ3RGLEVBQUUsS0FBSztBQUFBLEVBQU0sV0FBVyxFQUFFO0FBQUEsVUFDNUI7QUFFQSxrQkFBUSxPQUFPO0FBQUEsWUFDYixNQUFNO0FBQUEsWUFDTixXQUFXO0FBQUEsWUFDWCxDQUFDLElBQUksT0FBTztBQUNWLG9CQUFNLE1BQU0sWUFBWSx1QkFBdUIsTUFBTSxZQUFZO0FBR2pFLHlCQUFXLHlCQUF5Qix3QkFBd0I7QUFDMUQsc0JBQU0sTUFBTSxZQUFZLHVCQUF1QixTQUFTLGlCQUFpQixTQUFTO0FBQUEsY0FDcEY7QUFHQSx5QkFBVyw0QkFBNEIsMkJBQTJCO0FBQ2hFLHNCQUFNLFNBQVMsVUFBVSx3QkFBd0I7QUFDakQsbUNBQUFBLE9BQU8sR0FBRyxNQUFNO0FBQ2hCLG9CQUFJO0FBQ0osb0JBQUksT0FBTyxTQUFTLG9CQUFvQjtBQUN0Qyx3QkFBTSxpQkFBaUIsT0FBTztBQUM5QjtBQUFBLGtCQUVFLE9BQU8sV0FBVyxXQUFXLFFBQVEsY0FBYyxJQUFJLElBQUksV0FBVyxRQUFRLGNBQWMsQ0FBQztBQUFBLGdCQUNqRyxXQUFXLE9BQU8sU0FBUyxrQkFBa0I7QUFDM0Msd0JBQU0saUJBQWlCLE9BQU8sVUFBVSxDQUFDO0FBQ3pDLCtCQUFhLFdBQVcsUUFBUSxjQUFjO0FBQUEsZ0JBQ2hEO0FBQ0EsbUNBQUFBLE9BQU8sR0FBRyxVQUFVO0FBQ3BCLHNCQUFNLE1BQU0sWUFBWSxRQUFRLEdBQUcsaUJBQWlCLGdCQUFnQixVQUFVLEdBQUc7QUFBQSxjQUNuRjtBQUdBLGtCQUNFLHVCQUF1QixLQUFLLFNBQVMscUJBQ3JDLHVCQUF1QixlQUFlLFFBQ3RDO0FBQ0Esc0JBQU0sTUFBTTtBQUFBLGtCQUNWLHVCQUF1QjtBQUFBLGtCQUN2QjtBQUFBLEVBQU0sV0FBVyxVQUFVLGlCQUFpQjtBQUFBLGdCQUM5QztBQUFBLGNBQ0Y7QUFHQSx3QkFBVSxtQkFBbUIsV0FBNEI7QUFDdkQsc0JBQU0sU0FBUyxVQUFVLFVBQVUsVUFBVTtBQUM3QyxvQkFDRSxRQUFRLFNBQVMsc0JBQ2pCLE9BQU8sU0FBUyxTQUFTLGdCQUN6QixPQUFPLFNBQVMsU0FBUyxjQUN6QjtBQUNBLHdCQUFNLE1BQU0sWUFBWSxPQUFPLFVBQVUsUUFBUTtBQUFBLGdCQUNuRDtBQUFBLGNBQ0Y7QUFDQSx5QkFBVyxhQUFhLGtCQUFrQixjQUFjLENBQUMsR0FBRztBQUMxRCx1QkFBTyxtQkFBbUIsU0FBUztBQUFBLGNBQ3JDO0FBQUEsWUFDRjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0gsU0FBUyxPQUFPO0FBQ2Qsa0JBQVEsSUFBSSxLQUFLO0FBQ2pCLGtCQUFRLE9BQU87QUFBQSxZQUNiLE1BQU07QUFBQSxZQUNOLFdBQVc7QUFBQSxZQUNYLE1BQU07QUFBQSxjQUNKLE9BQU8sT0FBTyxLQUFLO0FBQUEsWUFDckI7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNIO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7QUFDQSxJQUFPLHFCQUFROzs7QUM5VlIsSUFBTUMsVUFBUztBQUNmLElBQU0sa0NBQWtDO0FBQ3hDLElBQU0sMkNBQTJDO0FBRXhELElBQU8scUNBQVE7QUFBQSxFQUNiLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQ0U7QUFBQSxNQUNGLEtBQUssb0JBQW9CQSxPQUFNO0FBQUEsSUFDakM7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLENBQUMsK0JBQStCLEdBQUc7QUFBQSxNQUNuQyxDQUFDLHdDQUF3QyxHQUFHO0FBQUEsSUFDOUM7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxXQUFPO0FBQUEsTUFDTCxpQkFBaUIsTUFBTTtBQUNyQixZQUFJLEtBQUssU0FBUyxTQUFTLGdCQUFnQixDQUFDLFFBQVEsU0FBUyxTQUFTLEVBQUUsU0FBUyxLQUFLLFNBQVMsSUFBSSxHQUFHO0FBQ3BHLGtCQUFRLE9BQU87QUFBQSxZQUNiO0FBQUEsWUFDQSxXQUNFLEtBQUssU0FBUyxTQUFTLFNBQ25CLGtDQUNBO0FBQUEsVUFDUixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOzs7QUNqQ0EsSUFBTyw0QkFBUTtBQUFBLEVBQ2IsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLE1BQ2IsS0FBSztBQUFBLElBQ1A7QUFBQSxJQUNBLFNBQVM7QUFBQSxFQUNYO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxVQUFNLFlBQVksUUFBUSxXQUFXLFNBQVMsRUFBRSxDQUFDO0FBQ2pELFVBQU0sZUFBZSxRQUFRLFNBQVMsTUFBTSxNQUFNLEVBQUUsQ0FBQztBQUVyRCxRQUFJLGNBQWMsVUFBYSxpQkFBaUIsUUFBVztBQUN6RCxhQUFPLENBQUM7QUFBQSxJQUNWO0FBRUEsUUFBSSxDQUFDLFVBQVUsV0FBVyxJQUFJLEdBQUc7QUFDL0IsVUFBSSxVQUFVLFdBQVcsSUFBSSxHQUFHO0FBQzlCLGdCQUFRLE9BQU87QUFBQSxVQUNiLEtBQUs7QUFBQSxZQUNILE9BQU87QUFBQSxjQUNMLE1BQU07QUFBQSxjQUNOLFFBQVE7QUFBQSxZQUNWO0FBQUEsWUFDQSxLQUFLO0FBQUEsY0FDSCxNQUFNO0FBQUEsY0FDTixRQUFRO0FBQUEsWUFDVjtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNULElBQUksT0FBdUI7QUFDekIsbUJBQU8sTUFBTSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLFlBQVk7QUFBQTtBQUFBLENBQU07QUFBQSxVQUNyRTtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0gsT0FBTztBQUNMLGdCQUFRLE9BQU87QUFBQSxVQUNiLEtBQUs7QUFBQSxZQUNILE9BQU87QUFBQSxjQUNMLE1BQU07QUFBQSxjQUNOLFFBQVE7QUFBQSxZQUNWO0FBQUEsWUFDQSxLQUFLO0FBQUEsY0FDSCxNQUFNO0FBQUEsY0FDTixRQUFRO0FBQUEsWUFDVjtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNULElBQUksT0FBdUI7QUFDekIsbUJBQU8sTUFBTSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLFlBQVk7QUFBQTtBQUFBLENBQU07QUFBQSxVQUNyRTtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGLE9BQU87QUFDTCxZQUFNLGdCQUFnQixVQUFVLE1BQU0sS0FBSyxFQUFFLENBQUM7QUFDOUMsVUFBSSxpQkFBaUIsZUFBZTtBQUNsQyxnQkFBUSxPQUFPO0FBQUEsVUFDYixLQUFLO0FBQUEsWUFDSCxPQUFPO0FBQUEsY0FDTCxNQUFNO0FBQUEsY0FDTixRQUFRO0FBQUEsWUFDVjtBQUFBLFlBQ0EsS0FBSztBQUFBLGNBQ0gsTUFBTTtBQUFBLGNBQ04sUUFBUTtBQUFBLFlBQ1Y7QUFBQSxVQUNGO0FBQUEsVUFDQSxTQUFTO0FBQUEsVUFDVCxJQUFJLE9BQXVCO0FBQ3pCLG1CQUFPLE1BQU0saUJBQWlCLENBQUMsR0FBRyxVQUFVLE1BQU0sR0FBRyxNQUFNLFlBQVksRUFBRTtBQUFBLFVBQzNFO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0Y7QUFFQSxXQUFPLENBQUM7QUFBQSxFQUNWO0FBQ0Y7OztBQzVFQSxJQUFNLG9CQUFvQjtBQUMxQixJQUFNLHFCQUFxQjtBQUMzQixJQUFNLGtCQUFrQjtBQUN4QixJQUFNLG1CQUFtQjtBQUFBLEVBQ3ZCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFFQSxTQUFTLFVBQVUsWUFBb0I7QUFDckMsU0FDRSxXQUNHLE1BQU0sRUFBRSxFQUNSLFFBQVEsRUFDUixJQUFJLENBQUMsVUFBVSxTQUFTLE9BQU8sRUFBRSxDQUFDLEVBQ2xDLE9BQU8sQ0FBQyxlQUFlLGNBQWMsVUFBVTtBQUM5QyxRQUFJLFFBQVE7QUFDWixRQUFJLFFBQVEsTUFBTSxHQUFHO0FBQ25CLGVBQVM7QUFFVCxVQUFJLFFBQVEsR0FBRztBQUNiLGdCQUFTLFFBQVEsS0FBTTtBQUFBLE1BQ3pCO0FBQUEsSUFDRjtBQUNBLFdBQU8sZ0JBQWdCO0FBQUEsRUFDekIsR0FBRyxDQUFDLElBQ0osT0FDRjtBQUVKO0FBRUEsU0FBUyxvQkFBb0IsT0FBZSxTQUEyQixNQUFhLEtBQXNCO0FBQ3hHLFFBQU0sVUFBVSxNQUFNLE1BQU0sZUFBZTtBQUMzQyxNQUFJLFlBQVksTUFBTTtBQUNwQjtBQUFBLEVBQ0Y7QUFDQSxRQUFNLGNBQWMsUUFBUTtBQUFBLElBQzFCLENBQUMsVUFDQyxVQUFVLEtBQUssS0FDZixDQUFDLGlCQUFpQixTQUFTLEtBQUs7QUFBQSxJQUVoQyxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQ3JCLENBQUMsTUFBTSxXQUFXLEdBQUcsS0FDckIsQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUNyQixDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQ3JCLENBQUMsTUFBTSxXQUFXLEdBQUc7QUFBQSxFQUN6QjtBQUNBLE1BQUksWUFBWSxXQUFXLEdBQUc7QUFDNUIsVUFBTSxhQUFhLFlBQVksQ0FBQztBQUNoQyxRQUFJLGVBQWUsUUFBVztBQUM1QixVQUFJLFNBQVMsUUFBVztBQUN0QixnQkFBUSxPQUFPO0FBQUEsVUFDYixXQUFXO0FBQUEsVUFDWCxNQUFNO0FBQUEsWUFDSixRQUFRO0FBQUEsVUFDVjtBQUFBLFVBQ0E7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNILFdBQVcsUUFBUSxRQUFXO0FBQzVCLGdCQUFRLE9BQU87QUFBQSxVQUNiLFdBQVc7QUFBQSxVQUNYLE1BQU07QUFBQSxZQUNKLFFBQVE7QUFBQSxVQUNWO0FBQUEsVUFDQSxLQUFLO0FBQUEsWUFDSCxPQUFPLElBQUk7QUFBQSxZQUNYLEtBQUssSUFBSTtBQUFBLFVBQ1g7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUFBLEVBQ0YsV0FBVyxZQUFZLFNBQVMsR0FBRztBQUNqQyxRQUFJLFNBQVMsUUFBVztBQUN0QixjQUFRLE9BQU87QUFBQSxRQUNiLFdBQVc7QUFBQSxRQUNYLE1BQU07QUFBQSxVQUNKLFNBQVMsUUFBUSxLQUFLLElBQUk7QUFBQSxRQUM1QjtBQUFBLFFBQ0E7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNILFdBQVcsUUFBUSxRQUFXO0FBQzVCLGNBQVEsT0FBTztBQUFBLFFBQ2IsV0FBVztBQUFBLFFBQ1gsTUFBTTtBQUFBLFVBQ0osU0FBUyxRQUFRLEtBQUssSUFBSTtBQUFBLFFBQzVCO0FBQUEsUUFDQSxLQUFLO0FBQUEsVUFDSCxPQUFPLElBQUk7QUFBQSxVQUNYLEtBQUssSUFBSTtBQUFBLFFBQ1g7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGO0FBRUEsSUFBTywwQkFBUTtBQUFBLEVBQ2IsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLE1BQ2IsS0FBSztBQUFBLElBQ1A7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLENBQUMsaUJBQWlCLEdBQUc7QUFBQSxNQUNyQixDQUFDLGtCQUFrQixHQUFHO0FBQUEsSUFDeEI7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxVQUFNLGFBQWEsUUFBUTtBQUMzQixVQUFNLFdBQVcsV0FBVyxlQUFlO0FBRTNDLGFBQVMsUUFBUSxDQUFDLFlBQVk7QUFDNUIsVUFBSSxRQUFRLFFBQVEsVUFBYSxRQUFRLFFBQVEsTUFBTTtBQUNyRCw0QkFBb0IsUUFBUSxPQUFPLFNBQVMsUUFBVyxRQUFRLEdBQUc7QUFBQSxNQUNwRTtBQUFBLElBQ0YsQ0FBQztBQUNELFdBQU87QUFBQSxNQUNMLFFBQVEsTUFBTTtBQUNaLFlBQUksS0FBSyxVQUFVLFFBQVc7QUFDNUI7QUFBQSxRQUNGO0FBQ0EsWUFBSSxPQUFPLEtBQUssVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFVBQVU7QUFDcEU7QUFBQSxRQUNGO0FBQ0EsY0FBTSxRQUFRLE9BQU8sS0FBSyxLQUFLO0FBQy9CLDRCQUFvQixPQUFPLFNBQVMsSUFBSTtBQUFBLE1BQzFDO0FBQUEsTUFDQSxnQkFBZ0IsTUFBTTtBQUNwQixZQUFJLE9BQU8sS0FBSyxNQUFNLFdBQVcsVUFBVTtBQUN6QztBQUFBLFFBQ0Y7QUFDQSw0QkFBb0IsS0FBSyxNQUFNLFFBQVEsU0FBUyxJQUFJO0FBQUEsTUFDdEQ7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOzs7QUNySUEsSUFBTUMsbUJBQWtCLEVBQUUsaUJBQWlCLDRCQUE0QjtBQUNoRSxJQUFNLGlCQUFpQjtBQUU5QixJQUFPLHlCQUFRO0FBQUEsRUFDYixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUNFO0FBQUEsTUFDRixLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsUUFBUTtBQUFBLE1BQ047QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFlBQVk7QUFBQSxVQUNWLGlCQUFpQjtBQUFBLFlBQ2YsYUFBYTtBQUFBLFlBQ2IsTUFBTTtBQUFBLFVBQ1I7QUFBQSxRQUNGO0FBQUEsUUFDQSxzQkFBc0I7QUFBQSxNQUN4QjtBQUFBLElBQ0Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLENBQUMsY0FBYyxHQUFHO0FBQUEsSUFDcEI7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxVQUFNLFVBQVUsRUFBRSxHQUFHQSxrQkFBaUIsR0FBSSxRQUFRLFFBQVEsQ0FBQyxFQUE4QjtBQUN6RixVQUFNLGlCQUFpQixJQUFJLE9BQU8sUUFBUSxpQkFBaUIsR0FBRztBQUU5RCxXQUFPO0FBQUEsTUFDTCxrQkFBa0IsTUFBTTtBQUN0QixZQUFJLE9BQU8sS0FBSyxPQUFPLFVBQVUsWUFBWSxlQUFlLEtBQUssS0FBSyxPQUFPLEtBQUssR0FBRztBQUNuRixrQkFBUSxPQUFPO0FBQUEsWUFDYjtBQUFBLFlBQ0EsV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLGNBQ0osZ0JBQWdCLFFBQVE7QUFBQSxjQUN4QixtQkFBbUIsS0FBSyxPQUFPO0FBQUEsY0FDL0IsaUJBQWlCLFFBQVE7QUFBQSxZQUMzQjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjs7O0FDckRBLElBQU0sYUFBYTtBQUNuQixJQUFNLGNBQWM7QUFDcEIsSUFBTSxZQUFZO0FBRWxCLFNBQVMsYUFBYSxPQUFlLFNBQTJCLE1BQWEsS0FBc0I7QUFDakcsUUFBTSxVQUFVLE1BQU0sTUFBTSxTQUFTO0FBQ3JDLE1BQUksWUFBWSxNQUFNO0FBQ3BCO0FBQUEsRUFDRjtBQUNBLE1BQUksUUFBUSxXQUFXLEdBQUc7QUFDeEIsUUFBSSxTQUFTLFFBQVc7QUFDdEIsY0FBUSxPQUFPO0FBQUEsUUFDYixXQUFXO0FBQUEsUUFDWCxNQUFNO0FBQUEsVUFDSixNQUFNLFFBQVEsQ0FBQztBQUFBLFFBQ2pCO0FBQUEsUUFDQTtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0gsV0FBVyxRQUFRLFFBQVc7QUFDNUIsY0FBUSxPQUFPO0FBQUEsUUFDYixXQUFXO0FBQUEsUUFDWCxNQUFNO0FBQUEsVUFDSixNQUFNLFFBQVEsQ0FBQztBQUFBLFFBQ2pCO0FBQUEsUUFDQSxLQUFLO0FBQUEsVUFDSCxPQUFPLElBQUk7QUFBQSxVQUNYLEtBQUssSUFBSTtBQUFBLFFBQ1g7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRixXQUFXLFFBQVEsU0FBUyxHQUFHO0FBQzdCLFFBQUksU0FBUyxRQUFXO0FBQ3RCLGNBQVEsT0FBTztBQUFBLFFBQ2IsV0FBVztBQUFBLFFBQ1gsTUFBTTtBQUFBLFVBQ0osT0FBTyxRQUFRLEtBQUssSUFBSTtBQUFBLFFBQzFCO0FBQUEsUUFDQTtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0gsV0FBVyxRQUFRLFFBQVc7QUFDNUIsY0FBUSxPQUFPO0FBQUEsUUFDYixXQUFXO0FBQUEsUUFDWCxNQUFNO0FBQUEsVUFDSixPQUFPLFFBQVEsS0FBSyxJQUFJO0FBQUEsUUFDMUI7QUFBQSxRQUNBLEtBQUs7QUFBQSxVQUNILE9BQU8sSUFBSTtBQUFBLFVBQ1gsS0FBSyxJQUFJO0FBQUEsUUFDWDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxJQUFPLGtCQUFRO0FBQUEsRUFDYixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsTUFDYixLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxVQUFVLEdBQUc7QUFBQSxNQUNkLENBQUMsV0FBVyxHQUFHO0FBQUEsSUFDakI7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxVQUFNLGFBQWEsUUFBUTtBQUMzQixVQUFNLFdBQVcsV0FBVyxlQUFlO0FBRTNDLGFBQVMsUUFBUSxDQUFDLFlBQVk7QUFDNUIsVUFBSSxRQUFRLFFBQVEsVUFBYSxRQUFRLFFBQVEsTUFBTTtBQUNyRCxxQkFBYSxRQUFRLE9BQU8sU0FBUyxRQUFXLFFBQVEsR0FBRztBQUFBLE1BQzdEO0FBQUEsSUFDRixDQUFDO0FBQ0QsV0FBTztBQUFBLE1BQ0wsUUFBUSxNQUFNO0FBQ1osWUFBSSxLQUFLLFVBQVUsUUFBVztBQUM1QjtBQUFBLFFBQ0Y7QUFDQSxZQUFJLE9BQU8sS0FBSyxVQUFVLFVBQVU7QUFDbEM7QUFBQSxRQUNGO0FBQ0EsY0FBTSxRQUFRLEtBQUs7QUFDbkIscUJBQWEsT0FBTyxTQUFTLElBQUk7QUFBQSxNQUNuQztBQUFBLE1BQ0EsZ0JBQWdCLE1BQU07QUFDcEIsWUFBSSxPQUFPLEtBQUssTUFBTSxXQUFXLFVBQVU7QUFDekM7QUFBQSxRQUNGO0FBQ0EscUJBQWEsS0FBSyxNQUFNLFFBQVEsU0FBUyxJQUFJO0FBQUEsTUFDL0M7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOzs7QUM5RkEsSUFBTSxlQUFlO0FBQ3JCLElBQU0sZUFBZTtBQUNyQixTQUFTLHFCQUFxQixTQUEyQixZQUF3QixPQUFlLEtBQW1CO0FBQ2pILFVBQVEsT0FBTztBQUFBLElBQ2IsS0FBSztBQUFBLE1BQ0gsT0FBTyxXQUFXLGdCQUFnQixLQUFLO0FBQUEsTUFDdkMsS0FBSyxXQUFXLGdCQUFnQixHQUFHO0FBQUEsSUFDckM7QUFBQSxJQUNBLFNBQVM7QUFBQSxJQUNULEtBQUssQ0FBQyxVQUFVLE1BQU0sWUFBWSxDQUFDLE9BQU8sR0FBRyxDQUFDO0FBQUEsRUFDaEQsQ0FBQztBQUNIO0FBRUEsU0FBUyxtQkFBbUIsU0FBMkIsWUFBd0IsU0FBd0I7QUFDckcsTUFBSSxRQUFRLEtBQUs7QUFDZixVQUFNLE9BQU8sV0FBVyxTQUFTLEVBQUUsUUFBUSxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQzdELFFBQUksU0FBUyxRQUFXO0FBQ3RCLFVBQUk7QUFDSixjQUFRLFFBQVEsYUFBYSxLQUFLLElBQUksT0FBTyxNQUFNO0FBQ2pELGNBQU0sUUFBUSxXQUFXLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxJQUFJLE1BQU0sTUFBTSxRQUFRLE1BQU0sTUFBTSxDQUFDO0FBQzlGLGNBQU0sTUFBTSxXQUFXLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxJQUFJLE1BQU0sTUFBTSxRQUFRLFFBQVEsSUFBSSxJQUFJLE9BQU8sQ0FBQztBQUN2Ryw2QkFBcUIsU0FBUyxZQUFZLE9BQU8sR0FBRztBQUFBLE1BQ3REO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMsb0JBQW9CLFNBQTJCLFlBQXdCLFNBQXdCO0FBQ3RHLFFBQU0sZ0JBQWdCLFFBQVEsTUFBTSxNQUFNLElBQUk7QUFDOUMsUUFBTSxvQkFBb0I7QUFDMUIsZ0JBQWMsUUFBUSxDQUFDLGlCQUFpQjtBQUN0QyxRQUFJLFlBQVksUUFBUSxLQUFLLE1BQU0sUUFBUTtBQUMzQyxVQUFNLFVBQVUsUUFBUSxLQUFLLElBQUksUUFBUTtBQUN6QyxRQUFJO0FBQ0osV0FBTyxRQUFRLFFBQVEsUUFBUSxhQUFhLEtBQUssWUFBWSxPQUFPLE1BQU07QUFDeEUsVUFBSSxRQUFRO0FBQ1osVUFBSSxNQUFNO0FBQ1YsWUFBTSxzQkFBc0Isa0JBQWtCLEtBQUssUUFBUSxNQUFNLEtBQUssQ0FBQztBQUN2RSxVQUFJLHFCQUFxQjtBQUN2QixnQkFBUSxXQUFXLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxJQUFJLE1BQU0sTUFBTSxRQUFRLFFBQVEsSUFBSSxNQUFNLE9BQU8sQ0FBQztBQUNyRyxjQUFNLFdBQVcsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLElBQUksSUFBSSxNQUFNLFFBQVEsUUFBUSxJQUFJLElBQUksT0FBTyxDQUFDO0FBQUEsTUFDakcsT0FBTztBQUNMLFlBQUksYUFBYTtBQUNqQixlQUFPLGFBQWEsU0FBUztBQUMzQixnQkFBTSxPQUFPLFdBQVcsU0FBUyxFQUFFLFNBQVM7QUFDNUMsY0FBSSxNQUFNLFNBQVMsTUFBTSxLQUFLLEtBQUssT0FBTztBQUN4Qyx5QkFBYTtBQUNiO0FBQUEsVUFDRjtBQUNBO0FBQUEsUUFDRjtBQUNBLGdCQUFRLFdBQVcsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLEdBQUcsUUFBUSxRQUFRLElBQUksTUFBTSxPQUFPLENBQUM7QUFDN0YsY0FBTSxXQUFXLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxHQUFHLFFBQVEsRUFBRSxDQUFDO0FBQUEsTUFDdEU7QUFDQSwyQkFBcUIsU0FBUyxZQUFZLE9BQU8sR0FBRztBQUFBLElBQ3REO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFFQSxJQUFPLDZCQUFRO0FBQUEsRUFDYixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUNFO0FBQUEsTUFDRixLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsU0FBUztBQUFBLEVBQ1g7QUFBQSxFQUNBLE9BQU8sU0FBMkI7QUFDaEMsVUFBTSxhQUFhLFFBQVE7QUFDM0IsVUFBTSxXQUFXLFdBQVcsZUFBZTtBQUMzQyxhQUFTLFFBQVEsQ0FBQyxZQUFZO0FBQzVCLFVBQUksUUFBUSxTQUFTLFFBQVE7QUFDM0IsMkJBQW1CLFNBQVMsWUFBWSxPQUFPO0FBQUEsTUFDakQsT0FBTztBQUNMLDRCQUFvQixTQUFTLFlBQVksT0FBTztBQUFBLE1BQ2xEO0FBQUEsSUFDRixDQUFDO0FBRUQsV0FBTyxDQUFDO0FBQUEsRUFDVjtBQUNGOzs7QUNsRk8sSUFBTSxvQ0FBb0M7QUFDMUMsSUFBTSx1REFDWDtBQUNLLElBQU0sZ0RBQWdEO0FBRzdELElBQU0scUJBQXFCLENBQUMsS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHO0FBR2xFLElBQU0seUJBQXlCO0FBQUEsRUFDN0I7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFFQSxJQUFPLGtDQUFRO0FBQUEsRUFDYixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUNFO0FBQUEsTUFDRixLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxpQ0FBaUMsR0FBRztBQUFBLE1BQ3JDLENBQUMsb0RBQW9ELEdBQUc7QUFBQSxNQUN4RCxDQUFDLDZDQUE2QyxHQUFHO0FBQUEsSUFDbkQ7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxXQUFPO0FBQUE7QUFBQSxNQUVMLGVBQWUsTUFBc0I7QUFDbkMsWUFBSSxLQUFLLE9BQU8sU0FBUyxnQkFBZ0IsS0FBSyxPQUFPLFNBQVMsZUFBZTtBQUMzRSxnQkFBTSxrQkFBa0IsS0FBSyxVQUFVLENBQUM7QUFHeEMsY0FBSSxtQkFBbUIsZ0JBQWdCLFNBQVMsb0JBQW9CO0FBQ2xFLG9CQUFRLE9BQU87QUFBQSxjQUNiLE1BQU07QUFBQSxjQUNOLFdBQVc7QUFBQSxZQUNiLENBQUM7QUFBQSxVQUNIO0FBR0EsY0FBSSxtQkFBbUIsZ0JBQWdCLFNBQVMsb0JBQW9CO0FBQ2xFLGtCQUFNLFVBQVUsZ0JBQWdCLFdBQVc7QUFBQSxjQUN6QyxDQUFDLGFBQ0MsU0FBUyxTQUFTLGNBQWMsU0FBUyxJQUFJLFNBQVMsZ0JBQWdCLFNBQVMsSUFBSSxTQUFTO0FBQUEsWUFDaEc7QUFDQSxnQkFBSSxZQUFZLFVBQWEsUUFBUSxNQUFNLFNBQVMsb0JBQW9CO0FBQ3RFLHNCQUFRLE9BQU87QUFBQSxnQkFDYixNQUFNO0FBQUEsZ0JBQ04sV0FBVztBQUFBLGNBQ2IsQ0FBQztBQUFBLFlBQ0g7QUFBQSxVQUNGO0FBR0EsY0FBSSxtQkFBbUIsZ0JBQWdCLFNBQVMsb0JBQW9CO0FBQ2xFLGtCQUFNLFNBQVMsZ0JBQWdCLFdBQVc7QUFBQSxjQUN4QyxDQUFDLGFBQ0MsU0FBUyxTQUFTLGNBQWMsU0FBUyxJQUFJLFNBQVMsZ0JBQWdCLFNBQVMsSUFBSSxTQUFTO0FBQUEsWUFDaEc7QUFDQSxnQkFBSTtBQUNKLGdCQUFJLE9BQU8sTUFBTSxTQUFTLG9CQUFvQjtBQUM1QyxxQ0FDRSxPQUFPLE1BQU0sT0FBTyxTQUFTLGdCQUM3QixPQUFPLE1BQU0sT0FBTyxTQUFTLGlCQUM3QixPQUFPLE1BQU0sU0FBUyxTQUFTLGdCQUMvQix1QkFBdUIsU0FBUyxPQUFPLE1BQU0sU0FBUyxJQUFJO0FBQUEsWUFDOUQsV0FBVyxPQUFPLE1BQU0sU0FBUyxXQUFXO0FBQzFDLHFDQUNFLE9BQU8sT0FBTyxNQUFNLFVBQVUsWUFBWSxtQkFBbUIsU0FBUyxPQUFPLE1BQU0sS0FBSztBQUFBLFlBQzVGO0FBQ0EsZ0JBQUkseUJBQXlCLE9BQU87QUFFbEMsb0JBQU0sT0FBTyxnQkFBZ0IsV0FBVztBQUFBLGdCQUN0QyxDQUFDLGFBQ0MsU0FBUyxTQUFTLGNBQWMsU0FBUyxJQUFJLFNBQVMsZ0JBQWdCLFNBQVMsSUFBSSxTQUFTO0FBQUEsY0FDaEc7QUFDQSxrQkFBSSxTQUFTLFFBQVc7QUFDdEI7QUFBQSxjQUNGO0FBRUEsa0JBQUksS0FBSyxNQUFNLFNBQVMsb0JBQW9CO0FBQzFDLHdCQUFRLE9BQU87QUFBQSxrQkFDYixNQUFNO0FBQUEsa0JBQ04sV0FBVztBQUFBLGdCQUNiLENBQUM7QUFBQSxjQUNIO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7OztBQ3ZHQSxJQUFPLHFDQUFRO0FBQUEsRUFDYixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsTUFDYixLQUFLO0FBQUEsSUFDUDtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFVBQU0sV0FBVyxRQUFRLFdBQVcsZUFBZTtBQUNuRCxVQUFNLFFBQVEsUUFBUSxXQUFXLFNBQVM7QUFDMUMsV0FBTztBQUFBLE1BQ0wsUUFBUSxNQUFNO0FBQ1osWUFBSSxLQUFLLE9BQU8sS0FBSyxpQkFBaUIsUUFBUTtBQUM1QyxnQkFBTSx3QkFBd0IsS0FBSyxJQUFJLE1BQU07QUFDN0MsZ0JBQU0sZUFBZSx3QkFBd0I7QUFDN0MsZ0JBQU0sc0JBQXNCLE1BQU0sZUFBZSxDQUFDO0FBR2xELGdCQUFNLHNCQUFzQiwwQkFBMEIsS0FBSyxLQUFLLE1BQU0sTUFBTTtBQUM1RSxjQUFJLHFCQUFxQjtBQUN2QjtBQUFBLFVBQ0Y7QUFDQSxnQkFBTSwyQkFBMkIsU0FBUyxLQUFLLENBQUMsWUFBWTtBQUMxRCxnQkFBSSxDQUFDLFFBQVEsS0FBSztBQUNoQixxQkFBTztBQUFBLFlBQ1Q7QUFFQSxrQkFBTSxvQkFBb0I7QUFFMUIsa0JBQU0sK0JBQStCO0FBQ3JDLGtCQUFNLGFBQWEsa0JBQWtCLEtBQUssUUFBUSxNQUFNLEtBQUssQ0FBQztBQUM5RCxnQkFBSSxRQUFRLFNBQVMsVUFBVSxRQUFRLElBQUksTUFBTSxTQUFTLFFBQVEsSUFBSSxJQUFJLE1BQU07QUFDOUUscUJBQ0csUUFBUSxJQUFJLElBQUksU0FBUyxnQkFDeEIsd0JBQXdCLFVBQ3hCLDZCQUE2QixLQUFLLG1CQUFtQixLQUNyRCxjQUNELFFBQVEsSUFBSSxJQUFJLFNBQVMseUJBQXlCO0FBQUEsWUFFdkQ7QUFDQSxtQkFDRyxRQUFRLElBQUksSUFBSSxTQUFTLGdCQUFnQixjQUN6QyxRQUFRLElBQUksSUFBSSxTQUFTLHlCQUF5QjtBQUFBLFVBRXZELENBQUM7QUFFRCxjQUFJLENBQUMsMEJBQTBCO0FBQzdCLG9CQUFRLE9BQU87QUFBQSxjQUNiO0FBQUEsY0FDQSxTQUFTO0FBQUEsWUFDWCxDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjs7O0FDekRBLElBQU8sa0RBQVE7QUFBQSxFQUNiLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxNQUNiLEtBQUs7QUFBQSxJQUNQO0FBQUEsRUFDRjtBQUFBLEVBQ0EsT0FBTyxTQUFTO0FBQ2QsUUFBSSxtQkFBbUI7QUFDdkIsV0FBTztBQUFBLE1BQ0wsa0JBQWtCLE1BQU07QUFDdEIsWUFBSSxLQUFLLE9BQU8sVUFBVSxlQUFlO0FBQ3ZDLGdCQUFNLHdCQUF3QixLQUFLLFdBQVc7QUFBQSxZQUM1QyxDQUFDLGNBQWMsVUFBVSxTQUFTLHFCQUFxQixVQUFVLFNBQVMsU0FBUztBQUFBLFVBQ3JGLEVBQUUsQ0FBQztBQUNILGNBQUksMEJBQTBCLFFBQVc7QUFDdkMsK0JBQW1CLHNCQUFzQixNQUFNO0FBQUEsVUFDakQ7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLE1BQ0EsZUFBZSxNQUFNO0FBQ25CLGNBQU0sU0FBUyxLQUFLO0FBQ3BCLFlBQ0UsT0FBTyxTQUFTLHNCQUNoQixPQUFPLE9BQU8sU0FBUyxnQkFDdkIsT0FBTyxPQUFPLFNBQVMsb0JBQ3ZCLE9BQU8sU0FBUyxTQUFTLGlCQUN4QixPQUFPLFNBQVMsU0FBUyxhQUFhLE9BQU8sU0FBUyxTQUFTLGFBQ2hFLEtBQUssVUFBVSxVQUFVLEdBQ3pCO0FBQ0EsZ0JBQU0sa0JBQWtCLEtBQUssVUFBVSxDQUFDO0FBQ3hDLGNBQ0Usb0JBQW9CLFVBQ25CLGdCQUFnQixTQUFTLHdCQUN4QixnQkFBZ0IsU0FBUyw2QkFDekIsZ0JBQWdCLFNBQVMsc0JBQ3pCLGdCQUFnQixTQUFTLGdCQUN6QixnQkFBZ0IsU0FBUyxhQUN6QixPQUFPLGdCQUFnQixVQUFVLFVBQ25DO0FBQ0Esb0JBQVEsT0FBTztBQUFBLGNBQ2I7QUFBQSxjQUNBLFNBQVM7QUFBQSxjQUNULE1BQU07QUFBQSxnQkFDSixRQUFRLE9BQU8sU0FBUztBQUFBLGNBQzFCO0FBQUEsWUFDRixDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjs7O0FDckRBLElBQU0scUJBQXFCO0FBQzNCLElBQU0sY0FBYztBQUVwQixJQUFPLGdDQUFRO0FBQUEsRUFDYixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsTUFDYixLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsU0FBUztBQUFBLEVBQ1g7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFVBQU0sYUFBcUMsQ0FBQztBQUM1QyxXQUFPO0FBQUEsTUFDTCxRQUFRLE1BQU07QUFDWixZQUNFLE9BQU8sS0FBSyxVQUFVLFlBQ3RCLEtBQUssT0FBTyxTQUFTLHVCQUNyQixLQUFLLE9BQU8sV0FBVyxTQUFTLEdBQ2hDO0FBQ0EsZ0JBQU0sa0JBQWtCLEtBQUssT0FBTyxXQUFXLENBQUM7QUFDaEQsY0FBSSxpQkFBaUI7QUFDbkIsdUJBQVcsZ0JBQWdCLE1BQU0sSUFBSSxJQUFJLEtBQUs7QUFBQSxVQUNoRDtBQUNBLGNBQUksS0FBSyxVQUFVLGVBQWUsS0FBSyxVQUFVLG9CQUFvQjtBQUNuRSxrQkFBTSxvQkFBb0IsS0FBSztBQUMvQixrQkFBTSxtQkFBbUIsa0JBQWtCLFdBQVc7QUFBQSxjQUNwRCxDQUFDLGNBQ0MsVUFBVSxTQUFTLDRCQUE0QixVQUFVLFNBQVM7QUFBQSxZQUN0RTtBQUVBLGdCQUFJLHFCQUFxQixRQUFXO0FBQ2xDLG9CQUFNLHlCQUF5QixrQkFBa0IsU0FBUyxDQUFDLEdBQUcsQ0FBQztBQUMvRCxrQkFBSSxpQkFBaUIsaUJBQWlCLFNBQVM7QUFDL0Msa0JBQUksZ0JBQWdCLGVBQWUsaUJBQWlCLE1BQU0sSUFBSTtBQUU5RCxrQkFBSSxLQUFLLFVBQVUsc0JBQXNCLGlCQUFpQixTQUFTLGtCQUFrQixPQUFPLE9BQU87QUFDakcsaUNBQWlCLENBQUMsaUJBQWlCLE1BQU0sQ0FBQyxHQUFHLGtCQUFrQixPQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQzlFLGdDQUFnQixlQUFlLGlCQUFpQixNQUFNLElBQUksWUFBWSxXQUFXO0FBQUEsY0FDbkY7QUFFQSxzQkFBUSxPQUFPO0FBQUEsZ0JBQ2IsTUFBTTtBQUFBLGdCQUNOLFNBQVM7QUFBQSxnQkFDVCxLQUFLLENBQUMsVUFBVSxNQUFNLGlCQUFpQixnQkFBZ0IsYUFBYTtBQUFBLGNBQ3RFLENBQUM7QUFBQSxZQUNIO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFDQSxlQUFlLE1BQU07QUFDbkIsY0FBTSxTQUFTLEtBQUs7QUFDcEIsWUFDRSxPQUFPLFNBQVMsc0JBQ2hCLE9BQU8sT0FBTyxTQUFTLGdCQUN2QixPQUFPLE9BQU8sU0FBUyxNQUN2QixPQUFPLFNBQVMsU0FBUyxnQkFDekIsT0FBTyxTQUFTLFNBQVMsT0FDeEIsT0FBTyxTQUFTLEtBQUssU0FBUyxRQUFRLEtBQUssT0FBTyxTQUFTLEtBQUssU0FBUyxRQUFRLElBQ2xGO0FBQ0EsZ0JBQU0sWUFBWSxXQUFXLE9BQU8sT0FBTyxJQUFJO0FBQy9DLGNBQUksY0FBYyxlQUFlLGNBQWMsb0JBQW9CO0FBQ2pFLGdCQUFJLHdCQUF3QjtBQUM1QixrQkFBTSxxQkFBcUIsT0FBTyxTQUFTO0FBQzNDLGdCQUFJLHVCQUF1QixVQUFVO0FBQ25DLHNDQUF3QixHQUFHLE9BQU8sT0FBTyxJQUFJO0FBQUEsWUFDL0MsT0FBTztBQUNMLG9CQUFNLGVBQWUsbUJBQW1CLFNBQVMsUUFBUSxJQUNyRCxtQkFBbUIsTUFBTSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQzFDLG1CQUFtQixNQUFNLFFBQVEsRUFBRSxLQUFLLEVBQUU7QUFDOUMsb0JBQU0sb0JBQW9CLEdBQUcsYUFBYSxPQUFPLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxhQUFhLE1BQU0sQ0FBQyxDQUFDO0FBQ3pGLHNDQUF3QixHQUFHLE9BQU8sT0FBTyxJQUFJLElBQUksaUJBQWlCO0FBQUEsWUFDcEU7QUFDQSxvQkFBUSxPQUFPO0FBQUEsY0FDYjtBQUFBLGNBQ0EsU0FBUztBQUFBLGNBQ1QsS0FBSyxDQUFDLFVBQVUsTUFBTSxZQUFZLFFBQVEscUJBQXFCO0FBQUEsWUFDakUsQ0FBQztBQUFBLFVBQ0g7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7OztBZHpFQSxJQUFPLGNBQVE7QUFBQSxFQUNiLE9BQU87QUFBQSxJQUNMLHFCQUFxQjtBQUFBLElBQ3JCLG1CQUFtQjtBQUFBLElBQ25CLFdBQVc7QUFBQSxJQUNYLHlCQUF5QjtBQUFBLElBQ3pCLGtCQUFrQjtBQUFBLElBQ2xCLHNCQUFzQjtBQUFBLElBQ3RCLDhCQUE4QjtBQUFBLElBQzlCLDJDQUEyQztBQUFBLElBQzNDLDJCQUEyQjtBQUFBLElBQzNCLENBQUMsTUFBMEIsR0FBRztBQUFBLElBQzlCLENBQUNDLE9BQTZCLEdBQUc7QUFBQSxJQUNqQyxDQUFDQSxPQUFlLEdBQUc7QUFBQSxFQUNyQjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsS0FBSztBQUFBLE1BQ0gsT0FBTztBQUFBLFFBQ0wsK0JBQStCO0FBQUEsUUFDL0IsaUNBQWlDO0FBQUEsUUFDakMsdUJBQXVCO0FBQUEsUUFDdkIscUNBQXFDO0FBQUEsUUFDckMsa0NBQWtDO0FBQUEsUUFDbEMsMENBQTBDO0FBQUEsUUFDMUMsdURBQXVEO0FBQUEsUUFDdkQsdUNBQXVDO0FBQUEsUUFDdkMsOEJBQThCO0FBQUEsUUFDOUIsQ0FBQyxlQUFlLE1BQTBCLEVBQUUsR0FBRztBQUFBLFFBQy9DLENBQUMsZUFBZUEsT0FBNkIsRUFBRSxHQUFHO0FBQUEsUUFDbEQsQ0FBQyxlQUFlQSxPQUFlLEVBQUUsR0FBRztBQUFBLE1BQ3RDO0FBQUEsSUFDRjtBQUFBLElBQ0EsYUFBYTtBQUFBLE1BQ1gsT0FBTztBQUFBLFFBQ0wsK0JBQStCO0FBQUEsUUFDL0IsaUNBQWlDO0FBQUEsUUFDakMsdUJBQXVCO0FBQUEsUUFDdkIscUNBQXFDO0FBQUEsUUFDckMsa0NBQWtDO0FBQUEsUUFDbEMsMENBQTBDO0FBQUEsUUFDMUMsdURBQXVEO0FBQUEsUUFDdkQsdUNBQXVDO0FBQUEsUUFDdkMsOEJBQThCO0FBQUEsUUFDOUIsQ0FBQyxlQUFlLE1BQTBCLEVBQUUsR0FBRztBQUFBLFFBQy9DLENBQUMsZUFBZUEsT0FBNkIsRUFBRSxHQUFHO0FBQUEsUUFDbEQsQ0FBQyxlQUFlQSxPQUFlLEVBQUUsR0FBRztBQUFBLE1BQ3RDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFsicnVsZUlkIiwgInJ1bGVJZCIsICJhc3NlcnQiLCAicnVsZUlkIiwgIkRFRkFVTFRfT1BUSU9OUyIsICJydWxlSWQiXQp9Cg==
|
|
1125
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3BhY2thZ2UuanNvbiIsICIuLi9zcmMvZ2V0LWRvY3VtZW50YXRpb24tdXJsLnRzIiwgIi4uL3NyYy9pbnZhbGlkLWpzb24tc3RyaW5naWZ5LnRzIiwgIi4uL3NyYy9uby1maXh0dXJlLnRzIiwgIi4uL3NyYy9uby1wcm9taXNlLWluc3RhbmNlLW1ldGhvZC50cyIsICIuLi9zcmMvZmlsZS1wYXRoLWNvbW1lbnQudHMiLCAiLi4vc3JjL25vLWNhcmQtbnVtYmVycy50cyIsICIuLi9zcmMvbm8tdGVzdC1pbXBvcnQudHMiLCAiLi4vc3JjL25vLXV1aWQudHMiLCAiLi4vc3JjL25vLXdhbGxhYnktY29tbWVudC50cyIsICIuLi9zcmMvb2JqZWN0LWxpdGVyYWwtcmVzcG9uc2UudHMiLCAiLi4vc3JjL3JlZ3VsYXItZXhwcmVzc2lvbi1jb21tZW50LnRzIiwgIi4uL3NyYy9yZXF1aXJlLWFzc2VydC1wcmVkaWNhdGUtcmVqZWN0cy10aHJvd3MudHMiLCAiLi4vc3JjL3JlcXVpcmUtc3RyaWN0LWFzc2VydC50cyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsd0JBQUMsTUFBTyw2QkFBNEIsU0FBVSxvQkFBbUIsYUFBYyw4QkFBNkIsVUFBVyxDQUFDLFVBQVMsY0FBYyxHQUFFLFVBQVcsc0RBQXFELE1BQU8sRUFBQyxLQUFNLHFEQUFvRCxHQUFFLFlBQWEsRUFBQyxNQUFPLE9BQU0sS0FBTSw4Q0FBNkMsR0FBRSxTQUFVLE9BQU0sUUFBUyxvQkFBbUIsYUFBYyxPQUFNLE1BQU8sVUFBUyxTQUFVLEVBQUMsS0FBSSxFQUFDLE9BQVEsMkJBQTBCLFNBQVUsd0JBQXVCLFFBQVMsd0JBQXVCLFNBQVUsdUJBQXNCLEVBQUMsR0FBRSxPQUFRLENBQUMsT0FBTSxjQUFhLFlBQVcsWUFBVyxxQkFBb0IscUJBQW9CLDhCQUE2Qiw4QkFBNkIs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QUNGO0FBQ0Y7OztBZHpFQSxJQUFPLGNBQVE7QUFBQSxFQUNiLE9BQU87QUFBQSxJQUNMLHFCQUFxQjtBQUFBLElBQ3JCLG1CQUFtQjtBQUFBLElBQ25CLFdBQVc7QUFBQSxJQUNYLHlCQUF5QjtBQUFBLElBQ3pCLGtCQUFrQjtBQUFBLElBQ2xCLHNCQUFzQjtBQUFBLElBQ3RCLDhCQUE4QjtBQUFBLElBQzlCLDJDQUEyQztBQUFBLElBQzNDLDJCQUEyQjtBQUFBLElBQzNCLENBQUMsTUFBMEIsR0FBRztBQUFBLElBQzlCLENBQUNDLE9BQTZCLEdBQUc7QUFBQSxJQUNqQyxDQUFDQSxPQUFlLEdBQUc7QUFBQSxFQUNyQjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsS0FBSztBQUFBLE1BQ0gsT0FBTztBQUFBLFFBQ0wsK0JBQStCO0FBQUEsUUFDL0IsaUNBQWlDO0FBQUEsUUFDakMsdUJBQXVCO0FBQUEsUUFDdkIscUNBQXFDO0FBQUEsUUFDckMsa0NBQWtDO0FBQUEsUUFDbEMsMENBQTBDO0FBQUEsUUFDMUMsdURBQXVEO0FBQUEsUUFDdkQsdUNBQXVDO0FBQUEsUUFDdkMsOEJBQThCO0FBQUEsUUFDOUIsQ0FBQyxlQUFlLE1BQTBCLEVBQUUsR0FBRztBQUFBLFFBQy9DLENBQUMsZUFBZUEsT0FBNkIsRUFBRSxHQUFHO0FBQUEsUUFDbEQsQ0FBQyxlQUFlQSxPQUFlLEVBQUUsR0FBRztBQUFBLE1BQ3RDO0FBQUEsSUFDRjtBQUFBLElBQ0EsYUFBYTtBQUFBLE1BQ1gsT0FBTztBQUFBLFFBQ0wsK0JBQStCO0FBQUEsUUFDL0IsaUNBQWlDO0FBQUEsUUFDakMsdUJBQXVCO0FBQUEsUUFDdkIscUNBQXFDO0FBQUEsUUFDckMsa0NBQWtDO0FBQUEsUUFDbEMsMENBQTBDO0FBQUEsUUFDMUMsdURBQXVEO0FBQUEsUUFDdkQsdUNBQXVDO0FBQUEsUUFDdkMsOEJBQThCO0FBQUEsUUFDOUIsQ0FBQyxlQUFlLE1BQTBCLEVBQUUsR0FBRztBQUFBLFFBQy9DLENBQUMsZUFBZUEsT0FBNkIsRUFBRSxHQUFHO0FBQUEsUUFDbEQsQ0FBQyxlQUFlQSxPQUFlLEVBQUUsR0FBRztBQUFBLE1BQ3RDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFsicnVsZUlkIiwgInJ1bGVJZCIsICJhc3NlcnQiLCAicnVsZUlkIiwgIkRFRkFVTFRfT1BUSU9OUyIsICJydWxlSWQiXQp9Cg==
|
|
1093
1126
|
module.exports = module.exports.default;
|
package/dist-cjs/metafile.json
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"format": "esm"
|
|
35
35
|
},
|
|
36
36
|
"src/no-fixture.ts": {
|
|
37
|
-
"bytes":
|
|
37
|
+
"bytes": 17450,
|
|
38
38
|
"imports": [
|
|
39
39
|
{
|
|
40
40
|
"path": "node:assert",
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
"bytesInOutput": 2471
|
|
198
198
|
},
|
|
199
199
|
"src/no-fixture.ts": {
|
|
200
|
-
"bytesInOutput":
|
|
200
|
+
"bytesInOutput": 14478
|
|
201
201
|
},
|
|
202
202
|
"src/no-promise-instance-method.ts": {
|
|
203
203
|
"bytesInOutput": 1275
|
|
@@ -230,7 +230,7 @@
|
|
|
230
230
|
"bytesInOutput": 3362
|
|
231
231
|
}
|
|
232
232
|
},
|
|
233
|
-
"bytes":
|
|
233
|
+
"bytes": 81184
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
236
|
}
|
package/dist-mjs/no-fixture.mjs
CHANGED
|
@@ -54,10 +54,10 @@ function appendAssertions(expects, sourceCode, variableName) {
|
|
|
54
54
|
assertions.push(`assert.ok(${sourceCode.getText(assertionArgument)})`);
|
|
55
55
|
} else if (assertionArgument.type === "Identifier") {
|
|
56
56
|
assertions.push(`assert.ok(${sourceCode.getText(assertionArgument)}(${variableName}))`);
|
|
57
|
-
} else if (assertionArgument.type === "ObjectExpression") {
|
|
58
|
-
assertions.push(`assert.deepEqual(${variableName}.
|
|
57
|
+
} else if (assertionArgument.type === "ObjectExpression" || assertionArgument.type === "CallExpression") {
|
|
58
|
+
assertions.push(`assert.deepEqual(await ${variableName}.json(), ${sourceCode.getText(assertionArgument)})`);
|
|
59
59
|
} else {
|
|
60
|
-
throw new Error(`Unexpected assertion argument: ${sourceCode.getText(assertionArgument)}`);
|
|
60
|
+
throw new Error(`Unexpected Supertest assertion argument: ".expect(${sourceCode.getText(assertionArgument)})`);
|
|
61
61
|
}
|
|
62
62
|
} else if (expectArguments.length === 2) {
|
|
63
63
|
const [headerName, headerValue] = expectArguments;
|
|
@@ -84,22 +84,33 @@ function getAncestor(node, matchType, quitType) {
|
|
|
84
84
|
}
|
|
85
85
|
return getAncestor(parent, matchType, quitType);
|
|
86
86
|
}
|
|
87
|
-
function analyzeReferences(
|
|
87
|
+
function analyzeReferences(fixtureCall, scopeManager) {
|
|
88
88
|
const results = {
|
|
89
89
|
responseBodyReferences: [],
|
|
90
90
|
responseHeadersReferences: []
|
|
91
91
|
};
|
|
92
|
-
const variableDeclaration = getAncestor(
|
|
92
|
+
const variableDeclaration = getAncestor(fixtureCall, "VariableDeclaration", "FunctionDeclaration");
|
|
93
93
|
if (variableDeclaration && variableDeclaration.type === "VariableDeclaration") {
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
94
|
+
const responseVariables = scopeManager.getDeclaredVariables(variableDeclaration);
|
|
95
|
+
for (const responseVariable of responseVariables) {
|
|
96
|
+
const identifier = responseVariable.identifiers[0];
|
|
97
|
+
assert.ok(identifier);
|
|
98
|
+
const identifierParent = getParent(identifier);
|
|
99
|
+
assert.ok(identifierParent);
|
|
100
|
+
if (identifierParent.type === "VariableDeclarator") {
|
|
101
|
+
results.responseVariable = responseVariable;
|
|
102
|
+
results.responseBodyReferences = responseVariable.references.map((responseBodyReference) => getParent(responseBodyReference.identifier)).filter(
|
|
103
|
+
(node) => node !== null && node !== void 0 && node.type === "MemberExpression" && node.property.type === "Identifier" && node.property.name === "body"
|
|
104
|
+
);
|
|
105
|
+
results.responseHeadersReferences = responseVariable.references.map((responseHeadersReference) => getParent(responseHeadersReference.identifier)).filter(
|
|
106
|
+
(node) => node !== null && node !== void 0 && node.type === "MemberExpression" && node.property.type === "Identifier" && (node.property.name === "header" || node.property.name === "headers" || node.property.name === "get")
|
|
107
|
+
);
|
|
108
|
+
} else if (identifierParent.type === "Property" && identifierParent.key.type === "Identifier" && identifierParent.key.name === "body") {
|
|
109
|
+
results.spreadResponseBodyVariable = responseVariable;
|
|
110
|
+
} else if (identifierParent.type === "Property" && identifierParent.key.type === "Identifier" && identifierParent.key.name === "headers") {
|
|
111
|
+
results.spreadResponseHeadersVariable = responseVariable;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
103
114
|
}
|
|
104
115
|
return results;
|
|
105
116
|
}
|
|
@@ -141,10 +152,13 @@ var rule = {
|
|
|
141
152
|
assert.ok(urlArgumentNode !== void 0);
|
|
142
153
|
const fixtureCallInformation = {};
|
|
143
154
|
analyze(fixtureCall, fixtureCallInformation);
|
|
144
|
-
const {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
155
|
+
const {
|
|
156
|
+
responseVariable,
|
|
157
|
+
responseBodyReferences,
|
|
158
|
+
responseHeadersReferences,
|
|
159
|
+
spreadResponseBodyVariable,
|
|
160
|
+
spreadResponseHeadersVariable
|
|
161
|
+
} = analyzeReferences(fixtureCallInformation.root, scopeManager);
|
|
148
162
|
let variableNameToUse;
|
|
149
163
|
let isResponseVariableDeclared = false;
|
|
150
164
|
if (responseVariable === void 0) {
|
|
@@ -180,6 +194,15 @@ var rule = {
|
|
|
180
194
|
${indentation}`);
|
|
181
195
|
}
|
|
182
196
|
replacedText = replacedText.replace(fixtureArgumentText, fetchArgumentText);
|
|
197
|
+
const needVariableRedefine = spreadResponseBodyVariable !== void 0 || (responseVariable === void 0 && fixtureCallInformation.assertions) !== void 0;
|
|
198
|
+
if (needVariableRedefine) {
|
|
199
|
+
replacedText = [
|
|
200
|
+
replacedText,
|
|
201
|
+
...spreadResponseBodyVariable ? [`const ${spreadResponseBodyVariable.name} = await ${variableNameToUse}.json()`] : [],
|
|
202
|
+
...spreadResponseHeadersVariable ? [`const ${spreadResponseHeadersVariable.name} = ${variableNameToUse}.headers`] : []
|
|
203
|
+
].join(`;
|
|
204
|
+
${indentation}`);
|
|
205
|
+
}
|
|
183
206
|
if (fixtureCallInformation.assertions) {
|
|
184
207
|
if (!isResponseVariableDeclared) {
|
|
185
208
|
replacedText = `const ${variableNameToUse} = ${replacedText}`;
|
|
@@ -194,7 +217,17 @@ ${indentation}`);
|
|
|
194
217
|
node: fixtureCall,
|
|
195
218
|
messageId: "preferNativeFetch",
|
|
196
219
|
*fix(fixer) {
|
|
197
|
-
|
|
220
|
+
let replacementRootNode = fixtureCallInformation.root;
|
|
221
|
+
if (spreadResponseBodyVariable) {
|
|
222
|
+
const identifier = spreadResponseBodyVariable.identifiers[0];
|
|
223
|
+
assert.ok(identifier);
|
|
224
|
+
const variableDeclaration = getAncestor(identifier, "VariableDeclaration", "FunctionDeclaration");
|
|
225
|
+
assert.ok(variableDeclaration);
|
|
226
|
+
replacementRootNode = variableDeclaration;
|
|
227
|
+
} else if (fixtureCallInformation.assertions !== void 0 && responseVariable === void 0) {
|
|
228
|
+
replacementRootNode = getAncestor(fixtureCallInformation.root, "VariableDeclaration", "FunctionDeclaration") ?? fixtureCallInformation.root;
|
|
229
|
+
}
|
|
230
|
+
yield fixer.replaceText(replacementRootNode, replacedText);
|
|
198
231
|
for (const responseBodyReference of responseBodyReferences) {
|
|
199
232
|
yield fixer.replaceText(responseBodyReference, `await ${variableNameToUse}.json()`);
|
|
200
233
|
}
|
|
@@ -232,7 +265,7 @@ ${indentation}return ${variableNameToUse};`
|
|
|
232
265
|
}
|
|
233
266
|
});
|
|
234
267
|
} catch (error) {
|
|
235
|
-
console.
|
|
268
|
+
console.error(`Failed to apply ${ruleId} rule. Error:`, error);
|
|
236
269
|
context.report({
|
|
237
270
|
node: fixtureCall,
|
|
238
271
|
messageId: "unknownError",
|
|
@@ -250,4 +283,4 @@ export {
|
|
|
250
283
|
no_fixture_default as default,
|
|
251
284
|
ruleId
|
|
252
285
|
};
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL25vLWZpeHR1cmUudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBbUJBLFNBQVMsVUFBVSxjQUFjO0FBQ2pDLE9BQU8seUJBQXlCO0FBRXpCLElBQU0sU0FBUztBQWV0QixTQUFTLFVBQVUsTUFBcUM7QUFDdEQsU0FBUSxLQUF3QztBQUNsRDtBQUVBLFNBQVMsUUFBUSxNQUE0QixTQUFpQztBQUM1RSxRQUFNLFNBQVMsVUFBVSxJQUFJO0FBQzdCLFNBQU8sR0FBRyxRQUFRLHFEQUFxRDtBQUV2RSxNQUFJO0FBQ0osTUFBSSxPQUFPLFNBQVMscUJBQXFCLE9BQU8sU0FBUyxtQkFBbUI7QUFFMUUsWUFBUSxPQUFPO0FBQUEsRUFDakIsV0FBVyxPQUFPLFNBQVMsc0JBQXNCLE9BQU8sU0FBUyxTQUFTLGNBQWM7QUFDdEYsUUFBSSxPQUFPLFNBQVMsU0FBUyxVQUFVO0FBQ3JDLFlBQU0sZ0JBQWdCLFVBQVUsTUFBTTtBQUN0QyxhQUFPLEdBQUcsaUJBQWlCLGNBQWMsU0FBUyxnQkFBZ0I7QUFDbEUsY0FBUSxhQUFhLENBQUMsR0FBSSxRQUFRLGNBQWMsQ0FBQyxHQUFJLGNBQWMsU0FBeUI7QUFDNUYsaUJBQVc7QUFBQSxJQUNiLFdBQVcsT0FBTyxTQUFTLFNBQVMsUUFBUTtBQUMxQyxZQUFNLHNCQUFzQixVQUFVLE1BQU07QUFDNUMsYUFBTyxHQUFHLHVCQUF1QixvQkFBb0IsU0FBUyxnQkFBZ0I7QUFDOUUsY0FBUSxjQUFjLG9CQUFvQixVQUFVLENBQUM7QUFDckQsaUJBQVc7QUFBQSxJQUNiLFdBQVcsT0FBTyxTQUFTLFNBQVMsT0FBTztBQUN6QyxZQUFNLHVCQUF1QixVQUFVLE1BQU07QUFDN0MsYUFBTyxHQUFHLHdCQUF3QixxQkFBcUIsU0FBUyxnQkFBZ0I7QUFDaEYsWUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLHFCQUFxQjtBQUMzQyxjQUFRLGlCQUFpQixDQUFDLEdBQUksUUFBUSxrQkFBa0IsQ0FBQyxHQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsaUJBQVc7QUFBQSxJQUNiO0FBQUEsRUFDRixPQUFPO0FBQ0wsVUFBTSxJQUFJLE1BQU0sbURBQW1ELE9BQU8sTUFBTSxDQUFDLEVBQUU7QUFBQSxFQUNyRjtBQUNBLE1BQUksVUFBVTtBQUNaLFlBQVEsVUFBVSxPQUFPO0FBQUEsRUFDM0I7QUFDRjtBQUVBLFNBQVMscUNBQXFDLEtBQWE7QUFFekQsU0FBTyxJQUFJLFFBQVEsa0NBQWtDLGdCQUFnQjtBQUN2RTtBQUVBLFNBQVMsb0JBQW9CLE1BQWU7QUFDMUMsU0FBTyxPQUFPLFNBQVMsWUFBWSw4QkFBOEIsS0FBSyxJQUFJO0FBQzVFO0FBRUEsU0FBUyxpQkFBaUIsU0FBeUIsWUFBd0IsY0FBc0I7QUFDL0YsUUFBTSxhQUF1QixDQUFDO0FBQzlCLGFBQVcsbUJBQW1CLFNBQVM7QUFDckMsUUFBSSxnQkFBZ0IsV0FBVyxHQUFHO0FBQ2hDLFlBQU0sQ0FBQyxpQkFBaUIsSUFBSTtBQUM1QixhQUFPLEdBQUcsaUJBQWlCO0FBQzNCLFVBQ0csa0JBQWtCLFNBQVMsc0JBQzFCLGtCQUFrQixPQUFPLFNBQVMsZ0JBQ2xDLGtCQUFrQixPQUFPLFNBQVMsaUJBQ3BDLGtCQUFrQixTQUFTLFdBQzNCO0FBRUEsbUJBQVcsS0FBSyxnQkFBZ0IsWUFBWSxZQUFZLFdBQVcsUUFBUSxpQkFBaUIsQ0FBQyxHQUFHO0FBQUEsTUFDbEcsV0FBVyxrQkFBa0IsU0FBUywyQkFBMkI7QUFFL0QsbUJBQVcsS0FBSyxhQUFhLFdBQVcsUUFBUSxpQkFBaUIsQ0FBQyxHQUFHO0FBQUEsTUFDdkUsV0FBVyxrQkFBa0IsU0FBUyxjQUFjO0FBRWxELG1CQUFXLEtBQUssYUFBYSxXQUFXLFFBQVEsaUJBQWlCLENBQUMsSUFBSSxZQUFZLElBQUk7QUFBQSxNQUN4RixXQUFXLGtCQUFrQixTQUFTLG9CQUFvQjtBQUV4RCxtQkFBVyxLQUFLLG9CQUFvQixZQUFZLFVBQVUsV0FBVyxRQUFRLGlCQUFpQixDQUFDLEdBQUc7QUFBQSxNQUNwRyxPQUFPO0FBQ0wsY0FBTSxJQUFJLE1BQU0sa0NBQWtDLFdBQVcsUUFBUSxpQkFBaUIsQ0FBQyxFQUFFO0FBQUEsTUFDM0Y7QUFBQSxJQUNGLFdBQVcsZ0JBQWdCLFdBQVcsR0FBRztBQUV2QyxZQUFNLENBQUMsWUFBWSxXQUFXLElBQUk7QUFDbEMsYUFBTyxHQUFHLGNBQWMsV0FBVztBQUNuQyxVQUFJLFlBQVksU0FBUyxhQUFhLFlBQVksaUJBQWlCLFFBQVE7QUFDekUsbUJBQVc7QUFBQSxVQUNULGFBQWEsWUFBWSxnQkFBZ0IsV0FBVyxRQUFRLFVBQVUsQ0FBQyxXQUFXLFdBQVcsUUFBUSxXQUFXLENBQUM7QUFBQSxRQUNuSDtBQUFBLE1BQ0YsT0FBTztBQUNMLG1CQUFXO0FBQUEsVUFDVCxnQkFBZ0IsWUFBWSxnQkFBZ0IsV0FBVyxRQUFRLFVBQVUsQ0FBQyxNQUFNLFdBQVcsUUFBUSxXQUFXLENBQUM7QUFBQSxRQUNqSDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNBLFNBQU87QUFDVDtBQUVBLFNBQVMsWUFBWSxNQUFZLFdBQW1CLFVBQWtCO0FBQ3BFLFFBQU0sU0FBUyxVQUFVLElBQUk7QUFDN0IsTUFBSSxDQUFDLFVBQVUsT0FBTyxTQUFTLFVBQVU7QUFDdkMsV0FBTztBQUFBLEVBQ1QsV0FBVyxPQUFPLFNBQVMsV0FBVztBQUNwQyxXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU8sWUFBWSxRQUFRLFdBQVcsUUFBUTtBQUNoRDtBQUVBLFNBQVMsa0JBQWtCLGtCQUFxRCxjQUFrQztBQUNoSCxRQUFNLFVBSUY7QUFBQSxJQUNGLHdCQUF3QixDQUFDO0FBQUEsSUFDekIsMkJBQTJCLENBQUM7QUFBQSxFQUM5QjtBQUVBLFFBQU0sc0JBQXNCLFlBQVksa0JBQWtCLHVCQUF1QixxQkFBcUI7QUFDdEcsTUFBSSx1QkFBdUIsb0JBQW9CLFNBQVMsdUJBQXVCO0FBQzdFLFVBQU0sQ0FBQyxnQkFBZ0IsSUFBSSxhQUFhLHFCQUFxQixtQkFBbUI7QUFDaEYsV0FBTyxHQUFHLGdCQUFnQjtBQUUxQixZQUFRLG1CQUFtQjtBQUMzQixZQUFRLHlCQUF5QixpQkFBaUIsV0FDL0MsSUFBSSxDQUFDLDBCQUEwQixVQUFVLHNCQUFzQixVQUFVLENBQUMsRUFDMUU7QUFBQSxNQUNDLENBQUMsU0FDQyxTQUFTLFFBQ1QsU0FBUyxVQUNULEtBQUssU0FBUyxzQkFDZCxLQUFLLFNBQVMsU0FBUyxnQkFDdkIsS0FBSyxTQUFTLFNBQVM7QUFBQSxJQUMzQjtBQUNGLFlBQVEsNEJBQTRCLGlCQUFpQixXQUNsRCxJQUFJLENBQUMsNkJBQTZCLFVBQVUseUJBQXlCLFVBQVUsQ0FBQyxFQUNoRjtBQUFBLE1BQ0MsQ0FBQyxTQUNDLFNBQVMsUUFDVCxTQUFTLFVBQ1QsS0FBSyxTQUFTLHNCQUNkLEtBQUssU0FBUyxTQUFTLGlCQUN0QixLQUFLLFNBQVMsU0FBUyxZQUFZLEtBQUssU0FBUyxTQUFTLGFBQWEsS0FBSyxTQUFTLFNBQVM7QUFBQSxJQUNuRztBQUFBLEVBQ0o7QUFDQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGVBQWUsTUFBWSxZQUF3QjtBQUMxRCxTQUFPLEdBQUcsS0FBSyxHQUFHO0FBQ2xCLFFBQU0sT0FBTyxXQUFXLE1BQU0sS0FBSyxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQ3JELFNBQU8sR0FBRyxJQUFJO0FBQ2QsUUFBTSxjQUFjLEtBQUssTUFBTSxPQUFPO0FBQ3RDLFNBQU8sY0FBYyxZQUFZLENBQUMsSUFBSTtBQUN4QztBQUVBLElBQU0sT0FBd0I7QUFBQSxFQUM1QixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsTUFDYixLQUFLLG9CQUFvQixNQUFNO0FBQUEsSUFDakM7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLG1CQUFtQjtBQUFBLE1BQ25CLGNBQ0U7QUFBQSxJQUNKO0FBQUEsSUFDQSxTQUFTO0FBQUEsSUFDVCxRQUFRLENBQUM7QUFBQSxFQUNYO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxVQUFNLGFBQWEsUUFBUTtBQUMzQixVQUFNLGVBQWUsV0FBVztBQUNoQyxRQUFJLGtCQUFrQjtBQUV0QixXQUFPO0FBQUEsTUFDTCwwRkFBMEYsQ0FBQyxnQkFBc0I7QUFDL0csWUFBSTtBQUNGLGlCQUFPLEdBQUcsWUFBWSxTQUFTLGdCQUFnQjtBQUMvQyxnQkFBTSxrQkFBa0IsWUFBWTtBQUNwQyxpQkFBTyxHQUFHLGdCQUFnQixTQUFTLGtCQUFrQjtBQUNyRCxnQkFBTSxhQUFhLGdCQUFnQjtBQUNuQyxpQkFBTyxHQUFHLFdBQVcsU0FBUyxZQUFZO0FBQzFDLGdCQUFNLGNBQWMsZUFBZSxhQUFhLFVBQVU7QUFFMUQsZ0JBQU0sQ0FBQyxlQUFlLElBQUksWUFBWTtBQUN0QyxpQkFBTyxHQUFHLG9CQUFvQixNQUFTO0FBRXZDLGdCQUFNLHlCQUF5QixDQUFDO0FBQ2hDLGtCQUFRLGFBQWEsc0JBQXNCO0FBRTNDLGdCQUFNLEVBQUUsa0JBQWtCLHdCQUF3QiwwQkFBMEIsSUFBSTtBQUFBLFlBQzlFLHVCQUF1QjtBQUFBLFlBQ3ZCO0FBQUEsVUFDRjtBQUNBLGNBQUk7QUFDSixjQUFJLDZCQUE2QjtBQUNqQyxjQUFJLHFCQUFxQixRQUFXO0FBQ2xDLGdDQUFvQixXQUFXLG9CQUFvQixJQUFJLEtBQUssZ0JBQWdCLFNBQVMsQ0FBQztBQUN0RjtBQUFBLFVBQ0YsT0FBTztBQUNMLHlDQUE2QjtBQUM3QixnQ0FBb0IsaUJBQWlCO0FBQUEsVUFDdkM7QUFHQSxnQkFBTSxxQkFBcUIsV0FBVyxRQUFRLFdBQVc7QUFDekQsZ0JBQU0sb0JBQW9CLFdBQVcsUUFBUSxlQUFlO0FBRTVELGdCQUFNLHNCQUNKLHVCQUF1QixLQUFLLFNBQVMscUJBQXFCLHVCQUF1QixlQUFlLFNBQzVGLFdBQ0E7QUFDTixjQUFJLGVBQWUsbUJBQW1CLFFBQVEsbUJBQW1CLEdBQUcsbUJBQW1CLFFBQVE7QUFHL0YsZ0JBQU0sc0JBQXNCLFdBQVcsUUFBUSxlQUFlO0FBQzlELGNBQUksb0JBQW9CLHFDQUFxQyxtQkFBbUI7QUFHaEYsY0FDRSxXQUFXLFNBQVMsU0FDcEIsdUJBQXVCLGdCQUFnQixVQUN2Qyx1QkFBdUIsbUJBQW1CLFFBQzFDO0FBQ0EsaUNBQXFCO0FBQUEsY0FDbkI7QUFBQSxjQUNBLGNBQWMsV0FBVyxLQUFLLFlBQVksQ0FBQztBQUFBLGNBQzNDLEdBQUksdUJBQXVCLGNBQ3ZCLENBQUMsMEJBQTBCLFdBQVcsUUFBUSx1QkFBdUIsV0FBVyxDQUFDLElBQUksSUFDckYsQ0FBQztBQUFBLGNBQ0wsR0FBSSx1QkFBdUIsaUJBQ3ZCO0FBQUEsZ0JBQ0U7QUFBQSxnQkFDQSxHQUFHLHVCQUF1QixlQUFlO0FBQUEsa0JBQ3ZDLENBQUMsRUFBRSxNQUFNLE1BQU07QUFBQTtBQUFBLG9CQUViLE9BQU8sS0FBSyxTQUFTLFlBQWEsb0JBQW9CLEtBQUssS0FBSyxJQUFJLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxNQUFPLElBQUksV0FBVyxRQUFRLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxRQUFRLEtBQUssQ0FBQztBQUFBO0FBQUEsZ0JBQ3ZLO0FBQUEsZ0JBQ0E7QUFBQSxjQUNGLElBQ0EsQ0FBQztBQUFBLGNBQ0w7QUFBQSxZQUNGLEVBQUUsS0FBSztBQUFBLEVBQUssV0FBVyxFQUFFO0FBQUEsVUFDM0I7QUFFQSx5QkFBZSxhQUFhLFFBQVEscUJBQXFCLGlCQUFpQjtBQUUxRSxjQUFJLHVCQUF1QixZQUFZO0FBRXJDLGdCQUFJLENBQUMsNEJBQTRCO0FBQy9CLDZCQUFlLFNBQVMsaUJBQWlCLE1BQU0sWUFBWTtBQUFBLFlBQzdEO0FBRUEsMkJBQWU7QUFBQSxjQUNiO0FBQUEsY0FDQSxHQUFHLGlCQUFpQix1QkFBdUIsWUFBWSxZQUFZLGlCQUFpQjtBQUFBLFlBQ3RGLEVBQUUsS0FBSztBQUFBLEVBQU0sV0FBVyxFQUFFO0FBQUEsVUFDNUI7QUFFQSxrQkFBUSxPQUFPO0FBQUEsWUFDYixNQUFNO0FBQUEsWUFDTixXQUFXO0FBQUEsWUFDWCxDQUFDLElBQUksT0FBTztBQUNWLG9CQUFNLE1BQU0sWUFBWSx1QkFBdUIsTUFBTSxZQUFZO0FBR2pFLHlCQUFXLHlCQUF5Qix3QkFBd0I7QUFDMUQsc0JBQU0sTUFBTSxZQUFZLHVCQUF1QixTQUFTLGlCQUFpQixTQUFTO0FBQUEsY0FDcEY7QUFHQSx5QkFBVyw0QkFBNEIsMkJBQTJCO0FBQ2hFLHNCQUFNLFNBQVMsVUFBVSx3QkFBd0I7QUFDakQsdUJBQU8sR0FBRyxNQUFNO0FBQ2hCLG9CQUFJO0FBQ0osb0JBQUksT0FBTyxTQUFTLG9CQUFvQjtBQUN0Qyx3QkFBTSxpQkFBaUIsT0FBTztBQUM5QjtBQUFBLGtCQUVFLE9BQU8sV0FBVyxXQUFXLFFBQVEsY0FBYyxJQUFJLElBQUksV0FBVyxRQUFRLGNBQWMsQ0FBQztBQUFBLGdCQUNqRyxXQUFXLE9BQU8sU0FBUyxrQkFBa0I7QUFDM0Msd0JBQU0saUJBQWlCLE9BQU8sVUFBVSxDQUFDO0FBQ3pDLCtCQUFhLFdBQVcsUUFBUSxjQUFjO0FBQUEsZ0JBQ2hEO0FBQ0EsdUJBQU8sR0FBRyxVQUFVO0FBQ3BCLHNCQUFNLE1BQU0sWUFBWSxRQUFRLEdBQUcsaUJBQWlCLGdCQUFnQixVQUFVLEdBQUc7QUFBQSxjQUNuRjtBQUdBLGtCQUNFLHVCQUF1QixLQUFLLFNBQVMscUJBQ3JDLHVCQUF1QixlQUFlLFFBQ3RDO0FBQ0Esc0JBQU0sTUFBTTtBQUFBLGtCQUNWLHVCQUF1QjtBQUFBLGtCQUN2QjtBQUFBLEVBQU0sV0FBVyxVQUFVLGlCQUFpQjtBQUFBLGdCQUM5QztBQUFBLGNBQ0Y7QUFHQSx3QkFBVSxtQkFBbUIsV0FBNEI7QUFDdkQsc0JBQU0sU0FBUyxVQUFVLFVBQVUsVUFBVTtBQUM3QyxvQkFDRSxRQUFRLFNBQVMsc0JBQ2pCLE9BQU8sU0FBUyxTQUFTLGdCQUN6QixPQUFPLFNBQVMsU0FBUyxjQUN6QjtBQUNBLHdCQUFNLE1BQU0sWUFBWSxPQUFPLFVBQVUsUUFBUTtBQUFBLGdCQUNuRDtBQUFBLGNBQ0Y7QUFDQSx5QkFBVyxhQUFhLGtCQUFrQixjQUFjLENBQUMsR0FBRztBQUMxRCx1QkFBTyxtQkFBbUIsU0FBUztBQUFBLGNBQ3JDO0FBQUEsWUFDRjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0gsU0FBUyxPQUFPO0FBQ2Qsa0JBQVEsSUFBSSxLQUFLO0FBQ2pCLGtCQUFRLE9BQU87QUFBQSxZQUNiLE1BQU07QUFBQSxZQUNOLFdBQVc7QUFBQSxZQUNYLE1BQU07QUFBQSxjQUNKLE9BQU8sT0FBTyxLQUFLO0FBQUEsWUFDckI7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNIO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7QUFDQSxJQUFPLHFCQUFROyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL25vLWZpeHR1cmUudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBbUJBLFNBQVMsVUFBVSxjQUFjO0FBQ2pDLE9BQU8seUJBQXlCO0FBRXpCLElBQU0sU0FBUztBQWV0QixTQUFTLFVBQVUsTUFBcUM7QUFDdEQsU0FBUSxLQUF3QztBQUNsRDtBQUVBLFNBQVMsUUFBUSxNQUE0QixTQUFpQztBQUM1RSxRQUFNLFNBQVMsVUFBVSxJQUFJO0FBQzdCLFNBQU8sR0FBRyxRQUFRLHFEQUFxRDtBQUV2RSxNQUFJO0FBQ0osTUFBSSxPQUFPLFNBQVMscUJBQXFCLE9BQU8sU0FBUyxtQkFBbUI7QUFFMUUsWUFBUSxPQUFPO0FBQUEsRUFDakIsV0FBVyxPQUFPLFNBQVMsc0JBQXNCLE9BQU8sU0FBUyxTQUFTLGNBQWM7QUFDdEYsUUFBSSxPQUFPLFNBQVMsU0FBUyxVQUFVO0FBQ3JDLFlBQU0sZ0JBQWdCLFVBQVUsTUFBTTtBQUN0QyxhQUFPLEdBQUcsaUJBQWlCLGNBQWMsU0FBUyxnQkFBZ0I7QUFDbEUsY0FBUSxhQUFhLENBQUMsR0FBSSxRQUFRLGNBQWMsQ0FBQyxHQUFJLGNBQWMsU0FBeUI7QUFDNUYsaUJBQVc7QUFBQSxJQUNiLFdBQVcsT0FBTyxTQUFTLFNBQVMsUUFBUTtBQUMxQyxZQUFNLHNCQUFzQixVQUFVLE1BQU07QUFDNUMsYUFBTyxHQUFHLHVCQUF1QixvQkFBb0IsU0FBUyxnQkFBZ0I7QUFDOUUsY0FBUSxjQUFjLG9CQUFvQixVQUFVLENBQUM7QUFDckQsaUJBQVc7QUFBQSxJQUNiLFdBQVcsT0FBTyxTQUFTLFNBQVMsT0FBTztBQUN6QyxZQUFNLHVCQUF1QixVQUFVLE1BQU07QUFDN0MsYUFBTyxHQUFHLHdCQUF3QixxQkFBcUIsU0FBUyxnQkFBZ0I7QUFDaEYsWUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLHFCQUFxQjtBQUMzQyxjQUFRLGlCQUFpQixDQUFDLEdBQUksUUFBUSxrQkFBa0IsQ0FBQyxHQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsaUJBQVc7QUFBQSxJQUNiO0FBQUEsRUFDRixPQUFPO0FBQ0wsVUFBTSxJQUFJLE1BQU0sbURBQW1ELE9BQU8sTUFBTSxDQUFDLEVBQUU7QUFBQSxFQUNyRjtBQUNBLE1BQUksVUFBVTtBQUNaLFlBQVEsVUFBVSxPQUFPO0FBQUEsRUFDM0I7QUFDRjtBQUVBLFNBQVMscUNBQXFDLEtBQWE7QUFFekQsU0FBTyxJQUFJLFFBQVEsa0NBQWtDLGdCQUFnQjtBQUN2RTtBQUVBLFNBQVMsb0JBQW9CLE1BQWU7QUFDMUMsU0FBTyxPQUFPLFNBQVMsWUFBWSw4QkFBOEIsS0FBSyxJQUFJO0FBQzVFO0FBRUEsU0FBUyxpQkFBaUIsU0FBeUIsWUFBd0IsY0FBc0I7QUFDL0YsUUFBTSxhQUF1QixDQUFDO0FBQzlCLGFBQVcsbUJBQW1CLFNBQVM7QUFDckMsUUFBSSxnQkFBZ0IsV0FBVyxHQUFHO0FBQ2hDLFlBQU0sQ0FBQyxpQkFBaUIsSUFBSTtBQUM1QixhQUFPLEdBQUcsaUJBQWlCO0FBQzNCLFVBQ0csa0JBQWtCLFNBQVMsc0JBQzFCLGtCQUFrQixPQUFPLFNBQVMsZ0JBQ2xDLGtCQUFrQixPQUFPLFNBQVMsaUJBQ3BDLGtCQUFrQixTQUFTLFdBQzNCO0FBRUEsbUJBQVcsS0FBSyxnQkFBZ0IsWUFBWSxZQUFZLFdBQVcsUUFBUSxpQkFBaUIsQ0FBQyxHQUFHO0FBQUEsTUFDbEcsV0FBVyxrQkFBa0IsU0FBUywyQkFBMkI7QUFFL0QsbUJBQVcsS0FBSyxhQUFhLFdBQVcsUUFBUSxpQkFBaUIsQ0FBQyxHQUFHO0FBQUEsTUFDdkUsV0FBVyxrQkFBa0IsU0FBUyxjQUFjO0FBRWxELG1CQUFXLEtBQUssYUFBYSxXQUFXLFFBQVEsaUJBQWlCLENBQUMsSUFBSSxZQUFZLElBQUk7QUFBQSxNQUN4RixXQUFXLGtCQUFrQixTQUFTLHNCQUFzQixrQkFBa0IsU0FBUyxrQkFBa0I7QUFFdkcsbUJBQVcsS0FBSywwQkFBMEIsWUFBWSxZQUFZLFdBQVcsUUFBUSxpQkFBaUIsQ0FBQyxHQUFHO0FBQUEsTUFDNUcsT0FBTztBQUNMLGNBQU0sSUFBSSxNQUFNLHFEQUFxRCxXQUFXLFFBQVEsaUJBQWlCLENBQUMsR0FBRztBQUFBLE1BQy9HO0FBQUEsSUFDRixXQUFXLGdCQUFnQixXQUFXLEdBQUc7QUFFdkMsWUFBTSxDQUFDLFlBQVksV0FBVyxJQUFJO0FBQ2xDLGFBQU8sR0FBRyxjQUFjLFdBQVc7QUFDbkMsVUFBSSxZQUFZLFNBQVMsYUFBYSxZQUFZLGlCQUFpQixRQUFRO0FBQ3pFLG1CQUFXO0FBQUEsVUFDVCxhQUFhLFlBQVksZ0JBQWdCLFdBQVcsUUFBUSxVQUFVLENBQUMsV0FBVyxXQUFXLFFBQVEsV0FBVyxDQUFDO0FBQUEsUUFDbkg7QUFBQSxNQUNGLE9BQU87QUFDTCxtQkFBVztBQUFBLFVBQ1QsZ0JBQWdCLFlBQVksZ0JBQWdCLFdBQVcsUUFBUSxVQUFVLENBQUMsTUFBTSxXQUFXLFFBQVEsV0FBVyxDQUFDO0FBQUEsUUFDakg7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLFlBQVksTUFBWSxXQUFtQixVQUFrQjtBQUNwRSxRQUFNLFNBQVMsVUFBVSxJQUFJO0FBQzdCLE1BQUksQ0FBQyxVQUFVLE9BQU8sU0FBUyxVQUFVO0FBQ3ZDLFdBQU87QUFBQSxFQUNULFdBQVcsT0FBTyxTQUFTLFdBQVc7QUFDcEMsV0FBTztBQUFBLEVBQ1Q7QUFDQSxTQUFPLFlBQVksUUFBUSxXQUFXLFFBQVE7QUFDaEQ7QUFFQSxTQUFTLGtCQUFrQixhQUFnRCxjQUFrQztBQUMzRyxRQUFNLFVBTUY7QUFBQSxJQUNGLHdCQUF3QixDQUFDO0FBQUEsSUFDekIsMkJBQTJCLENBQUM7QUFBQSxFQUM5QjtBQUVBLFFBQU0sc0JBQXNCLFlBQVksYUFBYSx1QkFBdUIscUJBQXFCO0FBQ2pHLE1BQUksdUJBQXVCLG9CQUFvQixTQUFTLHVCQUF1QjtBQUM3RSxVQUFNLG9CQUFvQixhQUFhLHFCQUFxQixtQkFBbUI7QUFDL0UsZUFBVyxvQkFBb0IsbUJBQW1CO0FBQ2hELFlBQU0sYUFBYSxpQkFBaUIsWUFBWSxDQUFDO0FBQ2pELGFBQU8sR0FBRyxVQUFVO0FBQ3BCLFlBQU0sbUJBQW1CLFVBQVUsVUFBVTtBQUM3QyxhQUFPLEdBQUcsZ0JBQWdCO0FBQzFCLFVBQUksaUJBQWlCLFNBQVMsc0JBQXNCO0FBRWxELGdCQUFRLG1CQUFtQjtBQUMzQixnQkFBUSx5QkFBeUIsaUJBQWlCLFdBQy9DLElBQUksQ0FBQywwQkFBMEIsVUFBVSxzQkFBc0IsVUFBVSxDQUFDLEVBQzFFO0FBQUEsVUFDQyxDQUFDLFNBQ0MsU0FBUyxRQUNULFNBQVMsVUFDVCxLQUFLLFNBQVMsc0JBQ2QsS0FBSyxTQUFTLFNBQVMsZ0JBQ3ZCLEtBQUssU0FBUyxTQUFTO0FBQUEsUUFDM0I7QUFDRixnQkFBUSw0QkFBNEIsaUJBQWlCLFdBQ2xELElBQUksQ0FBQyw2QkFBNkIsVUFBVSx5QkFBeUIsVUFBVSxDQUFDLEVBQ2hGO0FBQUEsVUFDQyxDQUFDLFNBQ0MsU0FBUyxRQUNULFNBQVMsVUFDVCxLQUFLLFNBQVMsc0JBQ2QsS0FBSyxTQUFTLFNBQVMsaUJBQ3RCLEtBQUssU0FBUyxTQUFTLFlBQVksS0FBSyxTQUFTLFNBQVMsYUFBYSxLQUFLLFNBQVMsU0FBUztBQUFBLFFBQ25HO0FBQUEsTUFDSixXQUNFLGlCQUFpQixTQUFTLGNBQzFCLGlCQUFpQixJQUFJLFNBQVMsZ0JBQzlCLGlCQUFpQixJQUFJLFNBQVMsUUFDOUI7QUFDQSxnQkFBUSw2QkFBNkI7QUFBQSxNQUN2QyxXQUNFLGlCQUFpQixTQUFTLGNBQzFCLGlCQUFpQixJQUFJLFNBQVMsZ0JBQzlCLGlCQUFpQixJQUFJLFNBQVMsV0FDOUI7QUFDQSxnQkFBUSxnQ0FBZ0M7QUFBQSxNQUMxQztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUNUO0FBRUEsU0FBUyxlQUFlLE1BQVksWUFBd0I7QUFDMUQsU0FBTyxHQUFHLEtBQUssR0FBRztBQUNsQixRQUFNLE9BQU8sV0FBVyxNQUFNLEtBQUssSUFBSSxNQUFNLE9BQU8sQ0FBQztBQUNyRCxTQUFPLEdBQUcsSUFBSTtBQUNkLFFBQU0sY0FBYyxLQUFLLE1BQU0sT0FBTztBQUN0QyxTQUFPLGNBQWMsWUFBWSxDQUFDLElBQUk7QUFDeEM7QUFFQSxJQUFNLE9BQXdCO0FBQUEsRUFDNUIsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLE1BQ2IsS0FBSyxvQkFBb0IsTUFBTTtBQUFBLElBQ2pDO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixtQkFBbUI7QUFBQSxNQUNuQixjQUNFO0FBQUEsSUFDSjtBQUFBLElBQ0EsU0FBUztBQUFBLElBQ1QsUUFBUSxDQUFDO0FBQUEsRUFDWDtBQUFBLEVBQ0EsT0FBTyxTQUFTO0FBQ2QsVUFBTSxhQUFhLFFBQVE7QUFDM0IsVUFBTSxlQUFlLFdBQVc7QUFDaEMsUUFBSSxrQkFBa0I7QUFFdEIsV0FBTztBQUFBLE1BQ0wsMEZBQTBGLENBQUMsZ0JBQXNCO0FBQy9HLFlBQUk7QUFDRixpQkFBTyxHQUFHLFlBQVksU0FBUyxnQkFBZ0I7QUFDL0MsZ0JBQU0sa0JBQWtCLFlBQVk7QUFDcEMsaUJBQU8sR0FBRyxnQkFBZ0IsU0FBUyxrQkFBa0I7QUFDckQsZ0JBQU0sYUFBYSxnQkFBZ0I7QUFDbkMsaUJBQU8sR0FBRyxXQUFXLFNBQVMsWUFBWTtBQUMxQyxnQkFBTSxjQUFjLGVBQWUsYUFBYSxVQUFVO0FBRTFELGdCQUFNLENBQUMsZUFBZSxJQUFJLFlBQVk7QUFDdEMsaUJBQU8sR0FBRyxvQkFBb0IsTUFBUztBQUV2QyxnQkFBTSx5QkFBeUIsQ0FBQztBQUNoQyxrQkFBUSxhQUFhLHNCQUFzQjtBQUUzQyxnQkFBTTtBQUFBLFlBQ0o7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRixJQUFJLGtCQUFrQix1QkFBdUIsTUFBTSxZQUFZO0FBQy9ELGNBQUk7QUFDSixjQUFJLDZCQUE2QjtBQUNqQyxjQUFJLHFCQUFxQixRQUFXO0FBQ2xDLGdDQUFvQixXQUFXLG9CQUFvQixJQUFJLEtBQUssZ0JBQWdCLFNBQVMsQ0FBQztBQUN0RjtBQUFBLFVBQ0YsT0FBTztBQUNMLHlDQUE2QjtBQUM3QixnQ0FBb0IsaUJBQWlCO0FBQUEsVUFDdkM7QUFHQSxnQkFBTSxxQkFBcUIsV0FBVyxRQUFRLFdBQVc7QUFDekQsZ0JBQU0sb0JBQW9CLFdBQVcsUUFBUSxlQUFlO0FBRTVELGdCQUFNLHNCQUNKLHVCQUF1QixLQUFLLFNBQVMscUJBQXFCLHVCQUF1QixlQUFlLFNBQzVGLFdBQ0E7QUFDTixjQUFJLGVBQWUsbUJBQW1CLFFBQVEsbUJBQW1CLEdBQUcsbUJBQW1CLFFBQVE7QUFHL0YsZ0JBQU0sc0JBQXNCLFdBQVcsUUFBUSxlQUFlO0FBQzlELGNBQUksb0JBQW9CLHFDQUFxQyxtQkFBbUI7QUFHaEYsY0FDRSxXQUFXLFNBQVMsU0FDcEIsdUJBQXVCLGdCQUFnQixVQUN2Qyx1QkFBdUIsbUJBQW1CLFFBQzFDO0FBQ0EsaUNBQXFCO0FBQUEsY0FDbkI7QUFBQSxjQUNBLGNBQWMsV0FBVyxLQUFLLFlBQVksQ0FBQztBQUFBLGNBQzNDLEdBQUksdUJBQXVCLGNBQ3ZCLENBQUMsMEJBQTBCLFdBQVcsUUFBUSx1QkFBdUIsV0FBVyxDQUFDLElBQUksSUFDckYsQ0FBQztBQUFBLGNBQ0wsR0FBSSx1QkFBdUIsaUJBQ3ZCO0FBQUEsZ0JBQ0U7QUFBQSxnQkFDQSxHQUFHLHVCQUF1QixlQUFlO0FBQUEsa0JBQ3ZDLENBQUMsRUFBRSxNQUFNLE1BQU07QUFBQTtBQUFBLG9CQUViLE9BQU8sS0FBSyxTQUFTLFlBQWEsb0JBQW9CLEtBQUssS0FBSyxJQUFJLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxNQUFPLElBQUksV0FBVyxRQUFRLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxRQUFRLEtBQUssQ0FBQztBQUFBO0FBQUEsZ0JBQ3ZLO0FBQUEsZ0JBQ0E7QUFBQSxjQUNGLElBQ0EsQ0FBQztBQUFBLGNBQ0w7QUFBQSxZQUNGLEVBQUUsS0FBSztBQUFBLEVBQUssV0FBVyxFQUFFO0FBQUEsVUFDM0I7QUFFQSx5QkFBZSxhQUFhLFFBQVEscUJBQXFCLGlCQUFpQjtBQUUxRSxnQkFBTSx1QkFDSiwrQkFBK0IsV0FDOUIscUJBQXFCLFVBQWEsdUJBQXVCLGdCQUFnQjtBQUU1RSxjQUFJLHNCQUFzQjtBQUN4QiwyQkFBZTtBQUFBLGNBQ2I7QUFBQSxjQUNBLEdBQUksNkJBQ0EsQ0FBQyxTQUFTLDJCQUEyQixJQUFJLFlBQVksaUJBQWlCLFNBQVMsSUFDL0UsQ0FBQztBQUFBLGNBQ0wsR0FBSSxnQ0FDQSxDQUFDLFNBQVMsOEJBQThCLElBQUksTUFBTSxpQkFBaUIsVUFBVSxJQUM3RSxDQUFDO0FBQUEsWUFDUCxFQUFFLEtBQUs7QUFBQSxFQUFNLFdBQVcsRUFBRTtBQUFBLFVBQzVCO0FBRUEsY0FBSSx1QkFBdUIsWUFBWTtBQUVyQyxnQkFBSSxDQUFDLDRCQUE0QjtBQUMvQiw2QkFBZSxTQUFTLGlCQUFpQixNQUFNLFlBQVk7QUFBQSxZQUM3RDtBQUVBLDJCQUFlO0FBQUEsY0FDYjtBQUFBLGNBQ0EsR0FBRyxpQkFBaUIsdUJBQXVCLFlBQVksWUFBWSxpQkFBaUI7QUFBQSxZQUN0RixFQUFFLEtBQUs7QUFBQSxFQUFNLFdBQVcsRUFBRTtBQUFBLFVBQzVCO0FBRUEsa0JBQVEsT0FBTztBQUFBLFlBQ2IsTUFBTTtBQUFBLFlBQ04sV0FBVztBQUFBLFlBQ1gsQ0FBQyxJQUFJLE9BQU87QUFDVixrQkFBSSxzQkFBZ0UsdUJBQXVCO0FBQzNGLGtCQUFJLDRCQUE0QjtBQUM5QixzQkFBTSxhQUFhLDJCQUEyQixZQUFZLENBQUM7QUFDM0QsdUJBQU8sR0FBRyxVQUFVO0FBQ3BCLHNCQUFNLHNCQUFzQixZQUFZLFlBQVksdUJBQXVCLHFCQUFxQjtBQUNoRyx1QkFBTyxHQUFHLG1CQUFtQjtBQUM3QixzQ0FBc0I7QUFBQSxjQUN4QixXQUFXLHVCQUF1QixlQUFlLFVBQWEscUJBQXFCLFFBQVc7QUFDNUYsc0NBQ0UsWUFBWSx1QkFBdUIsTUFBTSx1QkFBdUIscUJBQXFCLEtBQ3JGLHVCQUF1QjtBQUFBLGNBQzNCO0FBQ0Esb0JBQU0sTUFBTSxZQUFZLHFCQUFxQixZQUFZO0FBR3pELHlCQUFXLHlCQUF5Qix3QkFBd0I7QUFDMUQsc0JBQU0sTUFBTSxZQUFZLHVCQUF1QixTQUFTLGlCQUFpQixTQUFTO0FBQUEsY0FDcEY7QUFHQSx5QkFBVyw0QkFBNEIsMkJBQTJCO0FBQ2hFLHNCQUFNLFNBQVMsVUFBVSx3QkFBd0I7QUFDakQsdUJBQU8sR0FBRyxNQUFNO0FBQ2hCLG9CQUFJO0FBQ0osb0JBQUksT0FBTyxTQUFTLG9CQUFvQjtBQUN0Qyx3QkFBTSxpQkFBaUIsT0FBTztBQUM5QjtBQUFBLGtCQUVFLE9BQU8sV0FBVyxXQUFXLFFBQVEsY0FBYyxJQUFJLElBQUksV0FBVyxRQUFRLGNBQWMsQ0FBQztBQUFBLGdCQUNqRyxXQUFXLE9BQU8sU0FBUyxrQkFBa0I7QUFDM0Msd0JBQU0saUJBQWlCLE9BQU8sVUFBVSxDQUFDO0FBQ3pDLCtCQUFhLFdBQVcsUUFBUSxjQUFjO0FBQUEsZ0JBQ2hEO0FBQ0EsdUJBQU8sR0FBRyxVQUFVO0FBQ3BCLHNCQUFNLE1BQU0sWUFBWSxRQUFRLEdBQUcsaUJBQWlCLGdCQUFnQixVQUFVLEdBQUc7QUFBQSxjQUNuRjtBQUdBLGtCQUNFLHVCQUF1QixLQUFLLFNBQVMscUJBQ3JDLHVCQUF1QixlQUFlLFFBQ3RDO0FBQ0Esc0JBQU0sTUFBTTtBQUFBLGtCQUNWLHVCQUF1QjtBQUFBLGtCQUN2QjtBQUFBLEVBQU0sV0FBVyxVQUFVLGlCQUFpQjtBQUFBLGdCQUM5QztBQUFBLGNBQ0Y7QUFHQSx3QkFBVSxtQkFBbUIsV0FBNEI7QUFDdkQsc0JBQU0sU0FBUyxVQUFVLFVBQVUsVUFBVTtBQUM3QyxvQkFDRSxRQUFRLFNBQVMsc0JBQ2pCLE9BQU8sU0FBUyxTQUFTLGdCQUN6QixPQUFPLFNBQVMsU0FBUyxjQUN6QjtBQUNBLHdCQUFNLE1BQU0sWUFBWSxPQUFPLFVBQVUsUUFBUTtBQUFBLGdCQUNuRDtBQUFBLGNBQ0Y7QUFDQSx5QkFBVyxhQUFhLGtCQUFrQixjQUFjLENBQUMsR0FBRztBQUMxRCx1QkFBTyxtQkFBbUIsU0FBUztBQUFBLGNBQ3JDO0FBQUEsWUFDRjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0gsU0FBUyxPQUFPO0FBQ2Qsa0JBQVEsTUFBTSxtQkFBbUIsTUFBTSxpQkFBaUIsS0FBSztBQUM3RCxrQkFBUSxPQUFPO0FBQUEsWUFDYixNQUFNO0FBQUEsWUFDTixXQUFXO0FBQUEsWUFDWCxNQUFNO0FBQUEsY0FDSixPQUFPLE9BQU8sS0FBSztBQUFBLFlBQ3JCO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGO0FBQ0EsSUFBTyxxQkFBUTsiLAogICJuYW1lcyI6IFtdCn0K
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@checkdigit/eslint-plugin","version":"6.6.0-PR.75-
|
|
1
|
+
{"name":"@checkdigit/eslint-plugin","version":"6.6.0-PR.75-e80b","description":"Check Digit eslint plugins","keywords":["eslint","eslintplugin"],"homepage":"https://github.com/checkdigit/eslint-plugin#readme","bugs":{"url":"https://github.com/checkdigit/eslint-plugin/issues"},"repository":{"type":"git","url":"https://github.com/checkdigit/eslint-plugin"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","require":"./dist-cjs/index.cjs","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-cjs","dist-mjs","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-cjs/**/*.test.cjs","!dist-cjs/**/*.spec.cjs","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-cjs":"rimraf dist-cjs && npx builder --type=commonjs --sourceMap --entryPoint=index.ts --outDir=dist-cjs --outFile=index.cjs && echo \"module.exports = module.exports.default;\" >> dist-cjs/index.cjs && node dist-cjs/index.cjs","build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=true","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false","lint":"eslint --max-warnings 0 --ignore-path .gitignore .","lint:fix":"eslint --ignore-path .gitignore . --fix","prepublishOnly":"npm run build:dist-types && npm run build:dist-cjs && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","jest":{"preset":"@checkdigit/jest-config"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^5.5.0","@checkdigit/typescript-config":"6.0.0","@types/eslint":"^8.56.10","@typescript-eslint/eslint-plugin":"^7.16.1","@typescript-eslint/parser":"^7.16.1","eslint-config-prettier":"^9.1.0","eslint-plugin-eslint-plugin":"^6.2.0","eslint-plugin-import":"^2.29.1","eslint-plugin-no-only-tests":"^3.1.0","eslint-plugin-no-secrets":"^1.0.2","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"0.24.0"},"peerDependencies":{"eslint":">=8 <9"},"engines":{"node":">=20.14"}}
|
package/src/no-fixture.ts
CHANGED
|
@@ -102,11 +102,11 @@ function appendAssertions(expects: Expression[][], sourceCode: SourceCode, varia
|
|
|
102
102
|
} else if (assertionArgument.type === 'Identifier') {
|
|
103
103
|
// callback assertion
|
|
104
104
|
assertions.push(`assert.ok(${sourceCode.getText(assertionArgument)}(${variableName}))`);
|
|
105
|
-
} else if (assertionArgument.type === 'ObjectExpression') {
|
|
105
|
+
} else if (assertionArgument.type === 'ObjectExpression' || assertionArgument.type === 'CallExpression') {
|
|
106
106
|
// body deep equal assertion
|
|
107
|
-
assertions.push(`assert.deepEqual(${variableName}.
|
|
107
|
+
assertions.push(`assert.deepEqual(await ${variableName}.json(), ${sourceCode.getText(assertionArgument)})`);
|
|
108
108
|
} else {
|
|
109
|
-
throw new Error(`Unexpected assertion argument: ${sourceCode.getText(assertionArgument)}`);
|
|
109
|
+
throw new Error(`Unexpected Supertest assertion argument: ".expect(${sourceCode.getText(assertionArgument)})`);
|
|
110
110
|
}
|
|
111
111
|
} else if (expectArguments.length === 2) {
|
|
112
112
|
// header assertion
|
|
@@ -136,42 +136,63 @@ function getAncestor(node: Node, matchType: string, quitType: string) {
|
|
|
136
136
|
return getAncestor(parent, matchType, quitType);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
function analyzeReferences(
|
|
139
|
+
function analyzeReferences(fixtureCall: AwaitExpression | ReturnStatement, scopeManager: Scope.ScopeManager) {
|
|
140
140
|
const results: {
|
|
141
141
|
responseVariable?: Scope.Variable;
|
|
142
142
|
responseBodyReferences: MemberExpression[];
|
|
143
143
|
responseHeadersReferences: MemberExpression[];
|
|
144
|
+
spreadResponseBodyVariable?: Scope.Variable;
|
|
145
|
+
spreadResponseHeadersVariable?: Scope.Variable;
|
|
144
146
|
} = {
|
|
145
147
|
responseBodyReferences: [],
|
|
146
148
|
responseHeadersReferences: [],
|
|
147
149
|
};
|
|
148
150
|
|
|
149
|
-
const variableDeclaration = getAncestor(
|
|
151
|
+
const variableDeclaration = getAncestor(fixtureCall, 'VariableDeclaration', 'FunctionDeclaration');
|
|
150
152
|
if (variableDeclaration && variableDeclaration.type === 'VariableDeclaration') {
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
.
|
|
157
|
-
.
|
|
158
|
-
(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
153
|
+
const responseVariables = scopeManager.getDeclaredVariables(variableDeclaration);
|
|
154
|
+
for (const responseVariable of responseVariables) {
|
|
155
|
+
const identifier = responseVariable.identifiers[0];
|
|
156
|
+
assert.ok(identifier);
|
|
157
|
+
const identifierParent = getParent(identifier);
|
|
158
|
+
assert.ok(identifierParent);
|
|
159
|
+
if (identifierParent.type === 'VariableDeclarator') {
|
|
160
|
+
// if (declarator.id.type === 'Identifier') {
|
|
161
|
+
results.responseVariable = responseVariable;
|
|
162
|
+
results.responseBodyReferences = responseVariable.references
|
|
163
|
+
.map((responseBodyReference) => getParent(responseBodyReference.identifier))
|
|
164
|
+
.filter(
|
|
165
|
+
(node): node is MemberExpression =>
|
|
166
|
+
node !== null &&
|
|
167
|
+
node !== undefined &&
|
|
168
|
+
node.type === 'MemberExpression' &&
|
|
169
|
+
node.property.type === 'Identifier' &&
|
|
170
|
+
node.property.name === 'body',
|
|
171
|
+
);
|
|
172
|
+
results.responseHeadersReferences = responseVariable.references
|
|
173
|
+
.map((responseHeadersReference) => getParent(responseHeadersReference.identifier))
|
|
174
|
+
.filter(
|
|
175
|
+
(node): node is MemberExpression =>
|
|
176
|
+
node !== null &&
|
|
177
|
+
node !== undefined &&
|
|
178
|
+
node.type === 'MemberExpression' &&
|
|
179
|
+
node.property.type === 'Identifier' &&
|
|
180
|
+
(node.property.name === 'header' || node.property.name === 'headers' || node.property.name === 'get'),
|
|
181
|
+
);
|
|
182
|
+
} else if (
|
|
183
|
+
identifierParent.type === 'Property' &&
|
|
184
|
+
identifierParent.key.type === 'Identifier' &&
|
|
185
|
+
identifierParent.key.name === 'body'
|
|
186
|
+
) {
|
|
187
|
+
results.spreadResponseBodyVariable = responseVariable;
|
|
188
|
+
} else if (
|
|
189
|
+
identifierParent.type === 'Property' &&
|
|
190
|
+
identifierParent.key.type === 'Identifier' &&
|
|
191
|
+
identifierParent.key.name === 'headers'
|
|
192
|
+
) {
|
|
193
|
+
results.spreadResponseHeadersVariable = responseVariable;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
175
196
|
}
|
|
176
197
|
return results;
|
|
177
198
|
}
|
|
@@ -220,10 +241,13 @@ const rule: Rule.RuleModule = {
|
|
|
220
241
|
const fixtureCallInformation = {} as FixtureCallInformation;
|
|
221
242
|
analyze(fixtureCall, fixtureCallInformation);
|
|
222
243
|
|
|
223
|
-
const {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
244
|
+
const {
|
|
245
|
+
responseVariable,
|
|
246
|
+
responseBodyReferences,
|
|
247
|
+
responseHeadersReferences,
|
|
248
|
+
spreadResponseBodyVariable,
|
|
249
|
+
spreadResponseHeadersVariable,
|
|
250
|
+
} = analyzeReferences(fixtureCallInformation.root, scopeManager);
|
|
227
251
|
let variableNameToUse: string;
|
|
228
252
|
let isResponseVariableDeclared = false;
|
|
229
253
|
if (responseVariable === undefined) {
|
|
@@ -277,6 +301,22 @@ const rule: Rule.RuleModule = {
|
|
|
277
301
|
|
|
278
302
|
replacedText = replacedText.replace(fixtureArgumentText, fetchArgumentText);
|
|
279
303
|
|
|
304
|
+
const needVariableRedefine =
|
|
305
|
+
spreadResponseBodyVariable !== undefined ||
|
|
306
|
+
(responseVariable === undefined && fixtureCallInformation.assertions) !== undefined;
|
|
307
|
+
|
|
308
|
+
if (needVariableRedefine) {
|
|
309
|
+
replacedText = [
|
|
310
|
+
replacedText,
|
|
311
|
+
...(spreadResponseBodyVariable
|
|
312
|
+
? [`const ${spreadResponseBodyVariable.name} = await ${variableNameToUse}.json()`]
|
|
313
|
+
: []),
|
|
314
|
+
...(spreadResponseHeadersVariable
|
|
315
|
+
? [`const ${spreadResponseHeadersVariable.name} = ${variableNameToUse}.headers`]
|
|
316
|
+
: []),
|
|
317
|
+
].join(`;\n${indentation}`);
|
|
318
|
+
}
|
|
319
|
+
|
|
280
320
|
if (fixtureCallInformation.assertions) {
|
|
281
321
|
// add variable declaration if needed
|
|
282
322
|
if (!isResponseVariableDeclared) {
|
|
@@ -293,7 +333,19 @@ const rule: Rule.RuleModule = {
|
|
|
293
333
|
node: fixtureCall,
|
|
294
334
|
messageId: 'preferNativeFetch',
|
|
295
335
|
*fix(fixer) {
|
|
296
|
-
|
|
336
|
+
let replacementRootNode: AwaitExpression | ReturnStatement | Node = fixtureCallInformation.root;
|
|
337
|
+
if (spreadResponseBodyVariable) {
|
|
338
|
+
const identifier = spreadResponseBodyVariable.identifiers[0];
|
|
339
|
+
assert.ok(identifier);
|
|
340
|
+
const variableDeclaration = getAncestor(identifier, 'VariableDeclaration', 'FunctionDeclaration');
|
|
341
|
+
assert.ok(variableDeclaration);
|
|
342
|
+
replacementRootNode = variableDeclaration;
|
|
343
|
+
} else if (fixtureCallInformation.assertions !== undefined && responseVariable === undefined) {
|
|
344
|
+
replacementRootNode =
|
|
345
|
+
getAncestor(fixtureCallInformation.root, 'VariableDeclaration', 'FunctionDeclaration') ??
|
|
346
|
+
fixtureCallInformation.root;
|
|
347
|
+
}
|
|
348
|
+
yield fixer.replaceText(replacementRootNode, replacedText);
|
|
297
349
|
|
|
298
350
|
// handle response body
|
|
299
351
|
for (const responseBodyReference of responseBodyReferences) {
|
|
@@ -346,7 +398,7 @@ const rule: Rule.RuleModule = {
|
|
|
346
398
|
},
|
|
347
399
|
});
|
|
348
400
|
} catch (error) {
|
|
349
|
-
console.
|
|
401
|
+
console.error(`Failed to apply ${ruleId} rule. Error:`, error);
|
|
350
402
|
context.report({
|
|
351
403
|
node: fixtureCall,
|
|
352
404
|
messageId: 'unknownError',
|