@checkdigit/eslint-plugin 6.6.0-PR.75-a2cc → 6.6.0-PR.75-5dd8

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.
@@ -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-a2cc", 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" } };
28
+ var package_default = { name: "@checkdigit/eslint-plugin", version: "6.6.0-PR.75-5dd8", 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) {
@@ -108,7 +108,7 @@ function analyze(call, results) {
108
108
  const parent = getParent(call);
109
109
  import_node_assert.strict.ok(parent, "parent should exist for fixture/supertest call node");
110
110
  let nextCall;
111
- if (parent.type === "AwaitExpression") {
111
+ if (parent.type === "AwaitExpression" || parent.type === "ReturnStatement") {
112
112
  results.root = parent;
113
113
  } else if (parent.type === "MemberExpression" && parent.property.type === "Identifier") {
114
114
  if (parent.property.name === "expect") {
@@ -192,7 +192,7 @@ function analyzeReferences(fixtureCallAwait, scopeManager) {
192
192
  if (variableDeclaration && variableDeclaration.type === "VariableDeclaration") {
193
193
  const [responseVariable] = scopeManager.getDeclaredVariables(variableDeclaration);
194
194
  import_node_assert.strict.ok(responseVariable);
195
- results.responseVariableName = responseVariable.name;
195
+ results.responseVariable = responseVariable;
196
196
  results.responseBodyReferences = responseVariable.references.map((responseBodyReference) => getParent(responseBodyReference.identifier)).filter(
197
197
  (node) => node !== null && node !== void 0 && node.type === "MemberExpression" && node.property.type === "Identifier" && node.property.name === "body"
198
198
  );
@@ -240,22 +240,23 @@ var rule = {
240
240
  import_node_assert.strict.ok(urlArgumentNode !== void 0);
241
241
  const fixtureCallInformation = {};
242
242
  analyze(fixtureCall, fixtureCallInformation);
243
- const { responseVariableName, responseBodyReferences, responseHeadersReferences } = analyzeReferences(
243
+ const { responseVariable, responseBodyReferences, responseHeadersReferences } = analyzeReferences(
244
244
  fixtureCallInformation.root,
245
245
  scopeManager
246
246
  );
247
247
  let variableNameToUse;
248
248
  let isResponseVariableDeclared = false;
249
- if (responseVariableName === void 0) {
249
+ if (responseVariable === void 0) {
250
250
  variableNameToUse = `response${variableCounter === 0 ? "" : variableCounter.toString()}`;
251
251
  variableCounter++;
252
252
  } else {
253
253
  isResponseVariableDeclared = true;
254
- variableNameToUse = responseVariableName;
254
+ variableNameToUse = responseVariable.name;
255
255
  }
256
256
  const fixtureApiCallText = sourceCode.getText(fixtureCall);
257
257
  const fixtureMethodText = sourceCode.getText(fixtureFunction);
258
- let replacedText = fixtureApiCallText.replace(fixtureMethodText, "await fetch");
258
+ const fetchStatementStart = fixtureCallInformation.root.type === "ReturnStatement" && fixtureCallInformation.assertions === void 0 ? "return" : "await";
259
+ let replacedText = fixtureApiCallText.replace(fixtureMethodText, `${fetchStatementStart} fetch`);
259
260
  const fixtureArgumentText = sourceCode.getText(urlArgumentNode);
260
261
  let fetchArgumentText = replaceEndpointUrlPrefixWithBasePath(fixtureArgumentText);
261
262
  if (methodNode.name !== "get" || fixtureCallInformation.requestBody !== void 0 || fixtureCallInformation.requestHeaders !== void 0) {
@@ -307,6 +308,22 @@ ${indentation}`);
307
308
  import_node_assert.strict.ok(headerName);
308
309
  yield fixer.replaceText(parent, `${variableNameToUse}.headers.get(${headerName})`);
309
310
  }
311
+ if (fixtureCallInformation.root.type === "ReturnStatement" && fixtureCallInformation.assertions !== void 0) {
312
+ yield fixer.insertTextAfter(
313
+ fixtureCallInformation.root,
314
+ `;
315
+ ${indentation}return ${variableNameToUse};`
316
+ );
317
+ }
318
+ function* statusCodeReplacer(reference) {
319
+ const parent = getParent(reference.identifier);
320
+ if (parent?.type === "MemberExpression" && parent.property.type === "Identifier" && parent.property.name === "statusCode") {
321
+ yield fixer.replaceText(parent.property, "status");
322
+ }
323
+ }
324
+ for (const reference of responseVariable?.references ?? []) {
325
+ yield* statusCodeReplacer(reference);
326
+ }
310
327
  }
311
328
  });
312
329
  } catch (error) {
@@ -1067,5 +1084,5 @@ var src_default = {
1067
1084
  }
1068
1085
  }
1069
1086
  };
1070
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3BhY2thZ2UuanNvbiIsICIuLi9zcmMvZ2V0LWRvY3VtZW50YXRpb24tdXJsLnRzIiwgIi4uL3NyYy9pbnZhbGlkLWpzb24tc3RyaW5naWZ5LnRzIiwgIi4uL3NyYy9uby1maXh0dXJlLnRzIiwgIi4uL3NyYy9uby1wcm9taXNlLWluc3RhbmNlLW1ldGhvZC50cyIsICIuLi9zcmMvZmlsZS1wYXRoLWNvbW1lbnQudHMiLCAiLi4vc3JjL25vLWNhcmQtbnVtYmVycy50cyIsICIuLi9zcmMvbm8tdGVzdC1pbXBvcnQudHMiLCAiLi4vc3JjL25vLXV1aWQudHMiLCAiLi4vc3JjL25vLXdhbGxhYnktY29tbWVudC50cyIsICIuLi9zcmMvb2JqZWN0LWxpdGVyYWwtcmVzcG9uc2UudHMiLCAiLi4vc3JjL3JlZ3VsYXItZXhwcmVzc2lvbi1jb21tZW50LnRzIiwgIi4uL3NyYy9yZXF1aXJlLWFzc2VydC1wcmVkaWNhdGUtcmVqZWN0cy10aHJvd3MudHMiLCAiLi4vc3JjL3JlcXVpcmUtc3RyaWN0LWFzc2VydC50cyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsd0JBQUMsTUFBTyw2QkFBNEIsU0FBVSxvQkFBbUIsYUFBYyw4QkFBNkIsVUFBVyxDQUFDLFVBQVMsY0FBYyxHQUFFLFVBQVcsc0RBQXFELE1BQU8sRUFBQyxLQUFNLHFEQUFvRCxHQUFFLFlBQWEsRUFBQyxNQUFPLE9BQU0sS0FBTSw4Q0FBNkMsR0FBRSxTQUFVLE9BQU0sUUFBUyxvQkFBbUIsYUFBYyxPQUFNLE1BQU8sVUFBUyxTQUFVLEVBQUMsS0FBSSxFQUFDLE9BQVEsMkJBQTBCLFNBQVUsd0JBQXVCLFFBQVMsd0JBQXVCLFNBQVUsdUJBQXNCLEVBQUMsR0FBRSxPQUFRLENBQUMsT0FBTSxjQUFhLFlBQVcsWUFBVyxxQkFBb0IscUJBQW9CLDhCQUE2Qiw4QkFBNkIsMkJBQTBCLDJCQUEwQiwyQkFBMEIsMkJBQTBCLGFBQWEsR0FBRSxTQUFVLEVBQUMsa0JBQWlCLDhOQUErTixrQkFBaUIseUdBQXdHLG9CQUFtQixxRUFBb0UsY0FBYSxnQkFBZSxlQUFjLHVHQUF3RyxXQUFVLGdCQUFlLFlBQVcsb0JBQW1CLFdBQVUsd0dBQXlHLE1BQU8sc0RBQXFELFlBQVcsMkNBQTBDLGdCQUFpQixnRkFBK0UsVUFBVyx3REFBdUQsZ0JBQWUsK0NBQThDLE1BQU8sK0VBQThFLEdBQUUsVUFBVywrQkFBOEIsTUFBTyxFQUFDLFFBQVMsMEJBQXlCLEdBQUUsaUJBQWtCLEVBQUMsMkJBQTBCLFVBQVMsK0JBQThCLFVBQVMsaUNBQWdDLFNBQVEsaUJBQWdCLFlBQVcsb0NBQW1DLFdBQVUsNkJBQTRCLFdBQVUsMEJBQXlCLFVBQVMsK0JBQThCLFVBQVMsd0JBQXVCLFdBQVUsK0JBQThCLFVBQVMsNEJBQTJCLFVBQVMsc0JBQXFCLFdBQVUseUJBQXdCLFNBQVEsR0FBRSxrQkFBbUIsRUFBQyxRQUFTLFNBQVEsR0FBRSxTQUFVLEVBQUMsTUFBTyxVQUFTLEVBQUM7OztBQ0l0bkYsU0FBUixvQkFBcUNBLFNBQXdCO0FBQ2xFLFNBQU8sR0FBRyxnQkFBWSxXQUFXLEdBQUcsVUFBVSxnQkFBWSxPQUFPLGVBQWVBLE9BQU07QUFDeEY7OztBQ0tPLElBQU0sU0FBUztBQUN0QixJQUFNLHlCQUF5QjtBQUMvQixJQUFNLGtCQUFrQixDQUFDLGVBQWU7QUFFeEMsSUFBTyxpQ0FBUTtBQUFBLEVBQ2IsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFDRTtBQUFBLE1BQ0YsS0FBSyxvQkFBb0IsTUFBTTtBQUFBLElBQ2pDO0FBQUEsSUFDQSxRQUFRO0FBQUEsTUFDTjtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sT0FBTztBQUFBLFVBQ0wsYUFBYTtBQUFBLFVBQ2IsTUFBTTtBQUFBLFVBQ04sVUFBVTtBQUFBLFFBQ1o7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxzQkFBc0IsR0FBRztBQUFBLElBQzVCO0FBQUEsSUFDQSxTQUFTO0FBQUEsSUFDVCxnQkFBZ0I7QUFBQSxFQUNsQjtBQUFBLEVBQ0EsT0FBTyxTQUFTO0FBQ2QsVUFBTSxVQUFXLFFBQVEsUUFBUSxDQUFDLEtBQUs7QUFDdkMsVUFBTSwrQkFBK0IsUUFBUSxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sUUFBUSxHQUFHLENBQUM7QUFFcEYsV0FBTztBQUFBLE1BQ0wsZUFBZSxNQUFNO0FBQ25CLFlBQ0UsS0FBSyxPQUFPLFNBQVMsc0JBQ3JCLEtBQUssT0FBTyxPQUFPLFNBQVMsZ0JBQzVCLEtBQUssT0FBTyxPQUFPLFNBQVMsVUFDNUIsS0FBSyxPQUFPLFNBQVMsU0FBUyxnQkFDOUIsS0FBSyxPQUFPLFNBQVMsU0FBUyxhQUM5QjtBQUNBLGdCQUFNLFdBQVcsS0FBSyxVQUFVLENBQUM7QUFDakMsY0FBSSxhQUFhLFVBQWEsU0FBUyxTQUFTLGNBQWM7QUFDNUQseUNBQTZCLEtBQUssQ0FBQyxnQ0FBZ0M7QUFDakUsa0JBQUksNEJBQTRCLEtBQUssU0FBUyxJQUFJLEdBQUc7QUFDbkQsd0JBQVEsT0FBTztBQUFBLGtCQUNiO0FBQUEsa0JBQ0EsV0FBVztBQUFBLGtCQUNYLE1BQU07QUFBQSxvQkFDSixlQUFlLFNBQVM7QUFBQSxrQkFDMUI7QUFBQSxrQkFDQSxTQUFTO0FBQUEsb0JBQ1A7QUFBQSxzQkFDRSxXQUFXO0FBQUEsc0JBQ1gsTUFBTTtBQUFBLHdCQUNKLGVBQWUsU0FBUztBQUFBLHNCQUMxQjtBQUFBLHNCQUNBLElBQUksT0FBTztBQUNULCtCQUFPLE1BQU0sWUFBWSxNQUFNLFVBQVUsU0FBUyxJQUFJLEdBQUc7QUFBQSxzQkFDM0Q7QUFBQSxvQkFDRjtBQUFBLGtCQUNGO0FBQUEsZ0JBQ0YsQ0FBQztBQUNELHVCQUFPO0FBQUEsY0FDVDtBQUNBLHFCQUFPO0FBQUEsWUFDVCxDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjs7O0FDdkVBLHlCQUFpQztBQUcxQixJQUFNQyxVQUFTO0FBZXRCLFNBQVMsVUFBVSxNQUFxQztBQUN0RCxTQUFRLEtBQXdDO0FBQ2xEO0FBRUEsU0FBUyxRQUFRLE1BQTRCLFNBQWlDO0FBQzVFLFFBQU0sU0FBUyxVQUFVLElBQUk7QUFDN0IscUJBQUFDLE9BQU8sR0FBRyxRQUFRLHFEQUFxRDtBQUV2RSxNQUFJO0FBQ0osTUFBSSxPQUFPLFNBQVMsbUJBQW1CO0FBRXJDLFlBQVEsT0FBTztBQUFBLEVBQ2pCLFdBQVcsT0FBTyxTQUFTLHNCQUFzQixPQUFPLFNBQVMsU0FBUyxjQUFjO0FBQ3RGLFFBQUksT0FBTyxTQUFTLFNBQVMsVUFBVTtBQUNyQyxZQUFNLGdCQUFnQixVQUFVLE1BQU07QUFDdEMseUJBQUFBLE9BQU8sR0FBRyxpQkFBaUIsY0FBYyxTQUFTLGdCQUFnQjtBQUNsRSxjQUFRLGFBQWEsQ0FBQyxHQUFJLFFBQVEsY0FBYyxDQUFDLEdBQUksY0FBYyxTQUF5QjtBQUM1RixpQkFBVztBQUFBLElBQ2IsV0FBVyxPQUFPLFNBQVMsU0FBUyxRQUFRO0FBQzFDLFlBQU0sc0JBQXNCLFVBQVUsTUFBTTtBQUM1Qyx5QkFBQUEsT0FBTyxHQUFHLHVCQUF1QixvQkFBb0IsU0FBUyxnQkFBZ0I7QUFDOUUsY0FBUSxjQUFjLG9CQUFvQixVQUFVLENBQUM7QUFDckQsaUJBQVc7QUFBQSxJQUNiLFdBQVcsT0FBTyxTQUFTLFNBQVMsT0FBTztBQUN6QyxZQUFNLHVCQUF1QixVQUFVLE1BQU07QUFDN0MseUJBQUFBLE9BQU8sR0FBRyx3QkFBd0IscUJBQXFCLFNBQVMsZ0JBQWdCO0FBQ2hGLFlBQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxxQkFBcUI7QUFDM0MsY0FBUSxpQkFBaUIsQ0FBQyxHQUFJLFFBQVEsa0JBQWtCLENBQUMsR0FBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLGlCQUFXO0FBQUEsSUFDYjtBQUFBLEVBQ0YsT0FBTztBQUNMLFVBQU0sSUFBSSxNQUFNLG1EQUFtRCxPQUFPLE1BQU0sQ0FBQyxFQUFFO0FBQUEsRUFDckY7QUFDQSxNQUFJLFVBQVU7QUFDWixZQUFRLFVBQVUsT0FBTztBQUFBLEVBQzNCO0FBQ0Y7QUFFQSxTQUFTLHFDQUFxQyxLQUFhO0FBRXpELFNBQU8sSUFBSSxRQUFRLGtDQUFrQyxnQkFBZ0I7QUFDdkU7QUFFQSxTQUFTLG9CQUFvQixNQUFlO0FBQzFDLFNBQU8sT0FBTyxTQUFTLFlBQVksOEJBQThCLEtBQUssSUFBSTtBQUM1RTtBQUVBLFNBQVMsaUJBQWlCLFNBQXlCLFlBQXdCLGNBQXNCO0FBQy9GLFFBQU0sYUFBdUIsQ0FBQztBQUM5QixhQUFXLG1CQUFtQixTQUFTO0FBQ3JDLFFBQUksZ0JBQWdCLFdBQVcsR0FBRztBQUNoQyxZQUFNLENBQUMsaUJBQWlCLElBQUk7QUFDNUIseUJBQUFBLE9BQU8sR0FBRyxpQkFBaUI7QUFDM0IsVUFDRSxrQkFBa0IsU0FBUyxzQkFDM0Isa0JBQWtCLE9BQU8sU0FBUyxnQkFDbEMsa0JBQWtCLE9BQU8sU0FBUyxlQUNsQztBQUVBLG1CQUFXLEtBQUssZ0JBQWdCLFlBQVksWUFBWSxXQUFXLFFBQVEsaUJBQWlCLENBQUMsR0FBRztBQUFBLE1BQ2xHLFdBQVcsa0JBQWtCLFNBQVMsMkJBQTJCO0FBRS9ELG1CQUFXLEtBQUssYUFBYSxXQUFXLFFBQVEsaUJBQWlCLENBQUMsR0FBRztBQUFBLE1BQ3ZFLFdBQVcsa0JBQWtCLFNBQVMsY0FBYztBQUVsRCxtQkFBVyxLQUFLLGFBQWEsV0FBVyxRQUFRLGlCQUFpQixDQUFDLElBQUksWUFBWSxJQUFJO0FBQUEsTUFDeEYsV0FBVyxrQkFBa0IsU0FBUyxvQkFBb0I7QUFFeEQsbUJBQVcsS0FBSyxvQkFBb0IsWUFBWSxVQUFVLFdBQVcsUUFBUSxpQkFBaUIsQ0FBQyxHQUFHO0FBQUEsTUFDcEcsT0FBTztBQUNMLGNBQU0sSUFBSSxNQUFNLGtDQUFrQyxXQUFXLFFBQVEsaUJBQWlCLENBQUMsRUFBRTtBQUFBLE1BQzNGO0FBQUEsSUFDRixXQUFXLGdCQUFnQixXQUFXLEdBQUc7QUFFdkMsWUFBTSxDQUFDLFlBQVksV0FBVyxJQUFJO0FBQ2xDLHlCQUFBQSxPQUFPLEdBQUcsY0FBYyxXQUFXO0FBQ25DLFVBQUksWUFBWSxTQUFTLGFBQWEsWUFBWSxpQkFBaUIsUUFBUTtBQUN6RSxtQkFBVztBQUFBLFVBQ1QsYUFBYSxZQUFZLGdCQUFnQixXQUFXLFFBQVEsVUFBVSxDQUFDLFdBQVcsV0FBVyxRQUFRLFdBQVcsQ0FBQztBQUFBLFFBQ25IO0FBQUEsTUFDRixPQUFPO0FBQ0wsbUJBQVc7QUFBQSxVQUNULGdCQUFnQixZQUFZLGdCQUFnQixXQUFXLFFBQVEsVUFBVSxDQUFDLE1BQU0sV0FBVyxRQUFRLFdBQVcsQ0FBQztBQUFBLFFBQ2pIO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUNUO0FBRUEsU0FBUyxZQUFZLE1BQVksV0FBbUIsVUFBa0I7QUFDcEUsUUFBTSxTQUFTLFVBQVUsSUFBSTtBQUM3QixNQUFJLENBQUMsVUFBVSxPQUFPLFNBQVMsVUFBVTtBQUN2QyxXQUFPO0FBQUEsRUFDVCxXQUFXLE9BQU8sU0FBUyxXQUFXO0FBQ3BDLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxZQUFZLFFBQVEsV0FBVyxRQUFRO0FBQ2hEO0FBRUEsU0FBUyxrQkFBa0Isa0JBQW1DLGNBQWtDO0FBQzlGLFFBQU0sVUFJRjtBQUFBLElBQ0Ysd0JBQXdCLENBQUM7QUFBQSxJQUN6QiwyQkFBMkIsQ0FBQztBQUFBLEVBQzlCO0FBRUEsUUFBTSxzQkFBc0IsWUFBWSxrQkFBa0IsdUJBQXVCLHFCQUFxQjtBQUN0RyxNQUFJLHVCQUF1QixvQkFBb0IsU0FBUyx1QkFBdUI7QUFDN0UsVUFBTSxDQUFDLGdCQUFnQixJQUFJLGFBQWEscUJBQXFCLG1CQUFtQjtBQUNoRix1QkFBQUEsT0FBTyxHQUFHLGdCQUFnQjtBQUUxQixZQUFRLHVCQUF1QixpQkFBaUI7QUFDaEQsWUFBUSx5QkFBeUIsaUJBQWlCLFdBQy9DLElBQUksQ0FBQywwQkFBMEIsVUFBVSxzQkFBc0IsVUFBVSxDQUFDLEVBQzFFO0FBQUEsTUFDQyxDQUFDLFNBQ0MsU0FBUyxRQUNULFNBQVMsVUFDVCxLQUFLLFNBQVMsc0JBQ2QsS0FBSyxTQUFTLFNBQVMsZ0JBQ3ZCLEtBQUssU0FBUyxTQUFTO0FBQUEsSUFDM0I7QUFDRixZQUFRLDRCQUE0QixpQkFBaUIsV0FDbEQsSUFBSSxDQUFDLDZCQUE2QixVQUFVLHlCQUF5QixVQUFVLENBQUMsRUFDaEY7QUFBQSxNQUNDLENBQUMsU0FDQyxTQUFTLFFBQ1QsU0FBUyxVQUNULEtBQUssU0FBUyxzQkFDZCxLQUFLLFNBQVMsU0FBUyxpQkFDdEIsS0FBSyxTQUFTLFNBQVMsWUFBWSxLQUFLLFNBQVMsU0FBUztBQUFBLElBQy9EO0FBQUEsRUFDSjtBQUNBLFNBQU87QUFDVDtBQUVBLFNBQVMsZUFBZSxNQUFZLFlBQXdCO0FBQzFELHFCQUFBQSxPQUFPLEdBQUcsS0FBSyxHQUFHO0FBQ2xCLFFBQU0sT0FBTyxXQUFXLE1BQU0sS0FBSyxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQ3JELHFCQUFBQSxPQUFPLEdBQUcsSUFBSTtBQUNkLFFBQU0sY0FBYyxLQUFLLE1BQU0sT0FBTztBQUN0QyxTQUFPLGNBQWMsWUFBWSxDQUFDLElBQUk7QUFDeEM7QUFFQSxJQUFNLE9BQXdCO0FBQUEsRUFDNUIsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLE1BQ2IsS0FBSyxvQkFBb0JELE9BQU07QUFBQSxJQUNqQztBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsbUJBQW1CO0FBQUEsTUFDbkIsY0FDRTtBQUFBLElBQ0o7QUFBQSxJQUNBLFNBQVM7QUFBQSxJQUNULFFBQVEsQ0FBQztBQUFBLEVBQ1g7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFVBQU0sYUFBYSxRQUFRO0FBQzNCLFVBQU0sZUFBZSxXQUFXO0FBQ2hDLFFBQUksa0JBQWtCO0FBRXRCLFdBQU87QUFBQSxNQUNMLDBGQUEwRixDQUFDLGdCQUFzQjtBQUMvRyxZQUFJO0FBQ0YsNkJBQUFDLE9BQU8sR0FBRyxZQUFZLFNBQVMsZ0JBQWdCO0FBQy9DLGdCQUFNLGtCQUFrQixZQUFZO0FBQ3BDLDZCQUFBQSxPQUFPLEdBQUcsZ0JBQWdCLFNBQVMsa0JBQWtCO0FBQ3JELGdCQUFNLGFBQWEsZ0JBQWdCO0FBQ25DLDZCQUFBQSxPQUFPLEdBQUcsV0FBVyxTQUFTLFlBQVk7QUFDMUMsZ0JBQU0sY0FBYyxlQUFlLGFBQWEsVUFBVTtBQUUxRCxnQkFBTSxDQUFDLGVBQWUsSUFBSSxZQUFZO0FBQ3RDLDZCQUFBQSxPQUFPLEdBQUcsb0JBQW9CLE1BQVM7QUFFdkMsZ0JBQU0seUJBQXlCLENBQUM7QUFDaEMsa0JBQVEsYUFBYSxzQkFBc0I7QUFFM0MsZ0JBQU0sRUFBRSxzQkFBc0Isd0JBQXdCLDBCQUEwQixJQUFJO0FBQUEsWUFDbEYsdUJBQXVCO0FBQUEsWUFDdkI7QUFBQSxVQUNGO0FBQ0EsY0FBSTtBQUNKLGNBQUksNkJBQTZCO0FBQ2pDLGNBQUkseUJBQXlCLFFBQVc7QUFDdEMsZ0NBQW9CLFdBQVcsb0JBQW9CLElBQUksS0FBSyxnQkFBZ0IsU0FBUyxDQUFDO0FBQ3RGO0FBQUEsVUFDRixPQUFPO0FBQ0wseUNBQTZCO0FBQzdCLGdDQUFvQjtBQUFBLFVBQ3RCO0FBR0EsZ0JBQU0scUJBQXFCLFdBQVcsUUFBUSxXQUFXO0FBQ3pELGdCQUFNLG9CQUFvQixXQUFXLFFBQVEsZUFBZTtBQUM1RCxjQUFJLGVBQWUsbUJBQW1CLFFBQVEsbUJBQW1CLGFBQWE7QUFHOUUsZ0JBQU0sc0JBQXNCLFdBQVcsUUFBUSxlQUFlO0FBQzlELGNBQUksb0JBQW9CLHFDQUFxQyxtQkFBbUI7QUFHaEYsY0FDRSxXQUFXLFNBQVMsU0FDcEIsdUJBQXVCLGdCQUFnQixVQUN2Qyx1QkFBdUIsbUJBQW1CLFFBQzFDO0FBQ0EsaUNBQXFCO0FBQUEsY0FDbkI7QUFBQSxjQUNBLGNBQWMsV0FBVyxLQUFLLFlBQVksQ0FBQztBQUFBLGNBQzNDLEdBQUksdUJBQXVCLGNBQ3ZCLENBQUMsMEJBQTBCLFdBQVcsUUFBUSx1QkFBdUIsV0FBVyxDQUFDLElBQUksSUFDckYsQ0FBQztBQUFBLGNBQ0wsR0FBSSx1QkFBdUIsaUJBQ3ZCO0FBQUEsZ0JBQ0U7QUFBQSxnQkFDQSxHQUFHLHVCQUF1QixlQUFlO0FBQUEsa0JBQ3ZDLENBQUMsRUFBRSxNQUFNLE1BQU07QUFBQTtBQUFBLG9CQUViLE9BQU8sS0FBSyxTQUFTLFlBQWEsb0JBQW9CLEtBQUssS0FBSyxJQUFJLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxNQUFPLElBQUksV0FBVyxRQUFRLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxRQUFRLEtBQUssQ0FBQztBQUFBO0FBQUEsZ0JBQ3ZLO0FBQUEsZ0JBQ0E7QUFBQSxjQUNGLElBQ0EsQ0FBQztBQUFBLGNBQ0w7QUFBQSxZQUNGLEVBQUUsS0FBSztBQUFBLEVBQUssV0FBVyxFQUFFO0FBQUEsVUFDM0I7QUFFQSx5QkFBZSxhQUFhLFFBQVEscUJBQXFCLGlCQUFpQjtBQUUxRSxjQUFJLHVCQUF1QixZQUFZO0FBRXJDLGdCQUFJLENBQUMsNEJBQTRCO0FBQy9CLDZCQUFlLFNBQVMsaUJBQWlCLE1BQU0sWUFBWTtBQUFBLFlBQzdEO0FBRUEsMkJBQWU7QUFBQSxjQUNiO0FBQUEsY0FDQSxHQUFHLGlCQUFpQix1QkFBdUIsWUFBWSxZQUFZLGlCQUFpQjtBQUFBLFlBQ3RGLEVBQUUsS0FBSztBQUFBLEVBQU0sV0FBVyxFQUFFO0FBQUEsVUFDNUI7QUFFQSxrQkFBUSxPQUFPO0FBQUEsWUFDYixNQUFNO0FBQUEsWUFDTixXQUFXO0FBQUEsWUFDWCxDQUFDLElBQUksT0FBTztBQUNWLG9CQUFNLE1BQU0sWUFBWSx1QkFBdUIsTUFBTSxZQUFZO0FBRWpFLHlCQUFXLHlCQUF5Qix3QkFBd0I7QUFDMUQsc0JBQU0sTUFBTSxZQUFZLHVCQUF1QixTQUFTLGlCQUFpQixTQUFTO0FBQUEsY0FDcEY7QUFDQSx5QkFBVyw0QkFBNEIsMkJBQTJCO0FBQ2hFLHNCQUFNLFNBQVMsVUFBVSx3QkFBd0I7QUFDakQsbUNBQUFBLE9BQU8sR0FBRyxRQUFRLFNBQVMsa0JBQWtCO0FBQzdDLHNCQUFNLGlCQUFpQixPQUFPO0FBQzlCLHNCQUFNO0FBQUE7QUFBQSxrQkFFSixPQUFPLFdBQVcsV0FBVyxRQUFRLGNBQWMsSUFBSSxJQUFJLFdBQVcsUUFBUSxjQUFjLENBQUM7QUFBQTtBQUMvRixtQ0FBQUEsT0FBTyxHQUFHLFVBQVU7QUFDcEIsc0JBQU0sTUFBTSxZQUFZLFFBQVEsR0FBRyxpQkFBaUIsZ0JBQWdCLFVBQVUsR0FBRztBQUFBLGNBQ25GO0FBQUEsWUFDRjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0gsU0FBUyxPQUFPO0FBQ2Qsa0JBQVEsT0FBTztBQUFBLFlBQ2IsTUFBTTtBQUFBLFlBQ04sV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLGNBQ0osT0FBTyxPQUFPLEtBQUs7QUFBQSxZQUNyQjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQUNBLElBQU8scUJBQVE7OztBQzdTUixJQUFNQyxVQUFTO0FBQ2YsSUFBTSxrQ0FBa0M7QUFDeEMsSUFBTSwyQ0FBMkM7QUFFeEQsSUFBTyxxQ0FBUTtBQUFBLEVBQ2IsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFDRTtBQUFBLE1BQ0YsS0FBSyxvQkFBb0JBLE9BQU07QUFBQSxJQUNqQztBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQywrQkFBK0IsR0FBRztBQUFBLE1BQ25DLENBQUMsd0NBQXdDLEdBQUc7QUFBQSxJQUM5QztBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFdBQU87QUFBQSxNQUNMLGlCQUFpQixNQUFNO0FBQ3JCLFlBQUksS0FBSyxTQUFTLFNBQVMsZ0JBQWdCLENBQUMsUUFBUSxTQUFTLFNBQVMsRUFBRSxTQUFTLEtBQUssU0FBUyxJQUFJLEdBQUc7QUFDcEcsa0JBQVEsT0FBTztBQUFBLFlBQ2I7QUFBQSxZQUNBLFdBQ0UsS0FBSyxTQUFTLFNBQVMsU0FDbkIsa0NBQ0E7QUFBQSxVQUNSLENBQUM7QUFBQSxRQUNIO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7OztBQ2pDQSxJQUFPLDRCQUFRO0FBQUEsRUFDYixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsTUFDYixLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsU0FBUztBQUFBLEVBQ1g7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFVBQU0sWUFBWSxRQUFRLFdBQVcsU0FBUyxFQUFFLENBQUM7QUFDakQsVUFBTSxlQUFlLFFBQVEsU0FBUyxNQUFNLE1BQU0sRUFBRSxDQUFDO0FBRXJELFFBQUksY0FBYyxVQUFhLGlCQUFpQixRQUFXO0FBQ3pELGFBQU8sQ0FBQztBQUFBLElBQ1Y7QUFFQSxRQUFJLENBQUMsVUFBVSxXQUFXLElBQUksR0FBRztBQUMvQixVQUFJLFVBQVUsV0FBVyxJQUFJLEdBQUc7QUFDOUIsZ0JBQVEsT0FBTztBQUFBLFVBQ2IsS0FBSztBQUFBLFlBQ0gsT0FBTztBQUFBLGNBQ0wsTUFBTTtBQUFBLGNBQ04sUUFBUTtBQUFBLFlBQ1Y7QUFBQSxZQUNBLEtBQUs7QUFBQSxjQUNILE1BQU07QUFBQSxjQUNOLFFBQVE7QUFBQSxZQUNWO0FBQUEsVUFDRjtBQUFBLFVBQ0EsU0FBUztBQUFBLFVBQ1QsSUFBSSxPQUF1QjtBQUN6QixtQkFBTyxNQUFNLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sWUFBWTtBQUFBO0FBQUEsQ0FBTTtBQUFBLFVBQ3JFO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSCxPQUFPO0FBQ0wsZ0JBQVEsT0FBTztBQUFBLFVBQ2IsS0FBSztBQUFBLFlBQ0gsT0FBTztBQUFBLGNBQ0wsTUFBTTtBQUFBLGNBQ04sUUFBUTtBQUFBLFlBQ1Y7QUFBQSxZQUNBLEtBQUs7QUFBQSxjQUNILE1BQU07QUFBQSxjQUNOLFFBQVE7QUFBQSxZQUNWO0FBQUEsVUFDRjtBQUFBLFVBQ0EsU0FBUztBQUFBLFVBQ1QsSUFBSSxPQUF1QjtBQUN6QixtQkFBTyxNQUFNLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sWUFBWTtBQUFBO0FBQUEsQ0FBTTtBQUFBLFVBQ3JFO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0YsT0FBTztBQUNMLFlBQU0sZ0JBQWdCLFVBQVUsTUFBTSxLQUFLLEVBQUUsQ0FBQztBQUM5QyxVQUFJLGlCQUFpQixlQUFlO0FBQ2xDLGdCQUFRLE9BQU87QUFBQSxVQUNiLEtBQUs7QUFBQSxZQUNILE9BQU87QUFBQSxjQUNMLE1BQU07QUFBQSxjQUNOLFFBQVE7QUFBQSxZQUNWO0FBQUEsWUFDQSxLQUFLO0FBQUEsY0FDSCxNQUFNO0FBQUEsY0FDTixRQUFRO0FBQUEsWUFDVjtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNULElBQUksT0FBdUI7QUFDekIsbUJBQU8sTUFBTSxpQkFBaUIsQ0FBQyxHQUFHLFVBQVUsTUFBTSxHQUFHLE1BQU0sWUFBWSxFQUFFO0FBQUEsVUFDM0U7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUVBLFdBQU8sQ0FBQztBQUFBLEVBQ1Y7QUFDRjs7O0FDNUVBLElBQU0sb0JBQW9CO0FBQzFCLElBQU0scUJBQXFCO0FBQzNCLElBQU0sa0JBQWtCO0FBQ3hCLElBQU0sbUJBQW1CO0FBQUEsRUFDdkI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjtBQUVBLFNBQVMsVUFBVSxZQUFvQjtBQUNyQyxTQUNFLFdBQ0csTUFBTSxFQUFFLEVBQ1IsUUFBUSxFQUNSLElBQUksQ0FBQyxVQUFVLFNBQVMsT0FBTyxFQUFFLENBQUMsRUFDbEMsT0FBTyxDQUFDLGVBQWUsY0FBYyxVQUFVO0FBQzlDLFFBQUksUUFBUTtBQUNaLFFBQUksUUFBUSxNQUFNLEdBQUc7QUFDbkIsZUFBUztBQUVULFVBQUksUUFBUSxHQUFHO0FBQ2IsZ0JBQVMsUUFBUSxLQUFNO0FBQUEsTUFDekI7QUFBQSxJQUNGO0FBQ0EsV0FBTyxnQkFBZ0I7QUFBQSxFQUN6QixHQUFHLENBQUMsSUFDSixPQUNGO0FBRUo7QUFFQSxTQUFTLG9CQUFvQixPQUFlLFNBQTJCLE1BQWEsS0FBc0I7QUFDeEcsUUFBTSxVQUFVLE1BQU0sTUFBTSxlQUFlO0FBQzNDLE1BQUksWUFBWSxNQUFNO0FBQ3BCO0FBQUEsRUFDRjtBQUNBLFFBQU0sY0FBYyxRQUFRO0FBQUEsSUFDMUIsQ0FBQyxVQUNDLFVBQVUsS0FBSyxLQUNmLENBQUMsaUJBQWlCLFNBQVMsS0FBSztBQUFBLElBRWhDLENBQUMsTUFBTSxXQUFXLEdBQUcsS0FDckIsQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUNyQixDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQ3JCLENBQUMsTUFBTSxXQUFXLEdBQUcsS0FDckIsQ0FBQyxNQUFNLFdBQVcsR0FBRztBQUFBLEVBQ3pCO0FBQ0EsTUFBSSxZQUFZLFdBQVcsR0FBRztBQUM1QixVQUFNLGFBQWEsWUFBWSxDQUFDO0FBQ2hDLFFBQUksZUFBZSxRQUFXO0FBQzVCLFVBQUksU0FBUyxRQUFXO0FBQ3RCLGdCQUFRLE9BQU87QUFBQSxVQUNiLFdBQVc7QUFBQSxVQUNYLE1BQU07QUFBQSxZQUNKLFFBQVE7QUFBQSxVQUNWO0FBQUEsVUFDQTtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0gsV0FBVyxRQUFRLFFBQVc7QUFDNUIsZ0JBQVEsT0FBTztBQUFBLFVBQ2IsV0FBVztBQUFBLFVBQ1gsTUFBTTtBQUFBLFlBQ0osUUFBUTtBQUFBLFVBQ1Y7QUFBQSxVQUNBLEtBQUs7QUFBQSxZQUNILE9BQU8sSUFBSTtBQUFBLFlBQ1gsS0FBSyxJQUFJO0FBQUEsVUFDWDtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBQUEsRUFDRixXQUFXLFlBQVksU0FBUyxHQUFHO0FBQ2pDLFFBQUksU0FBUyxRQUFXO0FBQ3RCLGNBQVEsT0FBTztBQUFBLFFBQ2IsV0FBVztBQUFBLFFBQ1gsTUFBTTtBQUFBLFVBQ0osU0FBUyxRQUFRLEtBQUssSUFBSTtBQUFBLFFBQzVCO0FBQUEsUUFDQTtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0gsV0FBVyxRQUFRLFFBQVc7QUFDNUIsY0FBUSxPQUFPO0FBQUEsUUFDYixXQUFXO0FBQUEsUUFDWCxNQUFNO0FBQUEsVUFDSixTQUFTLFFBQVEsS0FBSyxJQUFJO0FBQUEsUUFDNUI7QUFBQSxRQUNBLEtBQUs7QUFBQSxVQUNILE9BQU8sSUFBSTtBQUFBLFVBQ1gsS0FBSyxJQUFJO0FBQUEsUUFDWDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxJQUFPLDBCQUFRO0FBQUEsRUFDYixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsTUFDYixLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxpQkFBaUIsR0FBRztBQUFBLE1BQ3JCLENBQUMsa0JBQWtCLEdBQUc7QUFBQSxJQUN4QjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFVBQU0sYUFBYSxRQUFRO0FBQzNCLFVBQU0sV0FBVyxXQUFXLGVBQWU7QUFFM0MsYUFBUyxRQUFRLENBQUMsWUFBWTtBQUM1QixVQUFJLFFBQVEsUUFBUSxVQUFhLFFBQVEsUUFBUSxNQUFNO0FBQ3JELDRCQUFvQixRQUFRLE9BQU8sU0FBUyxRQUFXLFFBQVEsR0FBRztBQUFBLE1BQ3BFO0FBQUEsSUFDRixDQUFDO0FBQ0QsV0FBTztBQUFBLE1BQ0wsUUFBUSxNQUFNO0FBQ1osWUFBSSxLQUFLLFVBQVUsUUFBVztBQUM1QjtBQUFBLFFBQ0Y7QUFDQSxZQUFJLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsVUFBVTtBQUNwRTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFFBQVEsT0FBTyxLQUFLLEtBQUs7QUFDL0IsNEJBQW9CLE9BQU8sU0FBUyxJQUFJO0FBQUEsTUFDMUM7QUFBQSxNQUNBLGdCQUFnQixNQUFNO0FBQ3BCLFlBQUksT0FBTyxLQUFLLE1BQU0sV0FBVyxVQUFVO0FBQ3pDO0FBQUEsUUFDRjtBQUNBLDRCQUFvQixLQUFLLE1BQU0sUUFBUSxTQUFTLElBQUk7QUFBQSxNQUN0RDtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7OztBQ3JJQSxJQUFNQyxtQkFBa0IsRUFBRSxpQkFBaUIsNEJBQTRCO0FBQ2hFLElBQU0saUJBQWlCO0FBRTlCLElBQU8seUJBQVE7QUFBQSxFQUNiLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQ0U7QUFBQSxNQUNGLEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxRQUFRO0FBQUEsTUFDTjtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sWUFBWTtBQUFBLFVBQ1YsaUJBQWlCO0FBQUEsWUFDZixhQUFhO0FBQUEsWUFDYixNQUFNO0FBQUEsVUFDUjtBQUFBLFFBQ0Y7QUFBQSxRQUNBLHNCQUFzQjtBQUFBLE1BQ3hCO0FBQUEsSUFDRjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxjQUFjLEdBQUc7QUFBQSxJQUNwQjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFVBQU0sVUFBVSxFQUFFLEdBQUdBLGtCQUFpQixHQUFJLFFBQVEsUUFBUSxDQUFDLEVBQThCO0FBQ3pGLFVBQU0saUJBQWlCLElBQUksT0FBTyxRQUFRLGlCQUFpQixHQUFHO0FBRTlELFdBQU87QUFBQSxNQUNMLGtCQUFrQixNQUFNO0FBQ3RCLFlBQUksT0FBTyxLQUFLLE9BQU8sVUFBVSxZQUFZLGVBQWUsS0FBSyxLQUFLLE9BQU8sS0FBSyxHQUFHO0FBQ25GLGtCQUFRLE9BQU87QUFBQSxZQUNiO0FBQUEsWUFDQSxXQUFXO0FBQUEsWUFDWCxNQUFNO0FBQUEsY0FDSixnQkFBZ0IsUUFBUTtBQUFBLGNBQ3hCLG1CQUFtQixLQUFLLE9BQU87QUFBQSxjQUMvQixpQkFBaUIsUUFBUTtBQUFBLFlBQzNCO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOzs7QUNyREEsSUFBTSxhQUFhO0FBQ25CLElBQU0sY0FBYztBQUNwQixJQUFNLFlBQVk7QUFFbEIsU0FBUyxhQUFhLE9BQWUsU0FBMkIsTUFBYSxLQUFzQjtBQUNqRyxRQUFNLFVBQVUsTUFBTSxNQUFNLFNBQVM7QUFDckMsTUFBSSxZQUFZLE1BQU07QUFDcEI7QUFBQSxFQUNGO0FBQ0EsTUFBSSxRQUFRLFdBQVcsR0FBRztBQUN4QixRQUFJLFNBQVMsUUFBVztBQUN0QixjQUFRLE9BQU87QUFBQSxRQUNiLFdBQVc7QUFBQSxRQUNYLE1BQU07QUFBQSxVQUNKLE1BQU0sUUFBUSxDQUFDO0FBQUEsUUFDakI7QUFBQSxRQUNBO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSCxXQUFXLFFBQVEsUUFBVztBQUM1QixjQUFRLE9BQU87QUFBQSxRQUNiLFdBQVc7QUFBQSxRQUNYLE1BQU07QUFBQSxVQUNKLE1BQU0sUUFBUSxDQUFDO0FBQUEsUUFDakI7QUFBQSxRQUNBLEtBQUs7QUFBQSxVQUNILE9BQU8sSUFBSTtBQUFBLFVBQ1gsS0FBSyxJQUFJO0FBQUEsUUFDWDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGLFdBQVcsUUFBUSxTQUFTLEdBQUc7QUFDN0IsUUFBSSxTQUFTLFFBQVc7QUFDdEIsY0FBUSxPQUFPO0FBQUEsUUFDYixXQUFXO0FBQUEsUUFDWCxNQUFNO0FBQUEsVUFDSixPQUFPLFFBQVEsS0FBSyxJQUFJO0FBQUEsUUFDMUI7QUFBQSxRQUNBO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSCxXQUFXLFFBQVEsUUFBVztBQUM1QixjQUFRLE9BQU87QUFBQSxRQUNiLFdBQVc7QUFBQSxRQUNYLE1BQU07QUFBQSxVQUNKLE9BQU8sUUFBUSxLQUFLLElBQUk7QUFBQSxRQUMxQjtBQUFBLFFBQ0EsS0FBSztBQUFBLFVBQ0gsT0FBTyxJQUFJO0FBQUEsVUFDWCxLQUFLLElBQUk7QUFBQSxRQUNYO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQUVBLElBQU8sa0JBQVE7QUFBQSxFQUNiLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxNQUNiLEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixDQUFDLFVBQVUsR0FBRztBQUFBLE1BQ2QsQ0FBQyxXQUFXLEdBQUc7QUFBQSxJQUNqQjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFVBQU0sYUFBYSxRQUFRO0FBQzNCLFVBQU0sV0FBVyxXQUFXLGVBQWU7QUFFM0MsYUFBUyxRQUFRLENBQUMsWUFBWTtBQUM1QixVQUFJLFFBQVEsUUFBUSxVQUFhLFFBQVEsUUFBUSxNQUFNO0FBQ3JELHFCQUFhLFFBQVEsT0FBTyxTQUFTLFFBQVcsUUFBUSxHQUFHO0FBQUEsTUFDN0Q7QUFBQSxJQUNGLENBQUM7QUFDRCxXQUFPO0FBQUEsTUFDTCxRQUFRLE1BQU07QUFDWixZQUFJLEtBQUssVUFBVSxRQUFXO0FBQzVCO0FBQUEsUUFDRjtBQUNBLFlBQUksT0FBTyxLQUFLLFVBQVUsVUFBVTtBQUNsQztBQUFBLFFBQ0Y7QUFDQSxjQUFNLFFBQVEsS0FBSztBQUNuQixxQkFBYSxPQUFPLFNBQVMsSUFBSTtBQUFBLE1BQ25DO0FBQUEsTUFDQSxnQkFBZ0IsTUFBTTtBQUNwQixZQUFJLE9BQU8sS0FBSyxNQUFNLFdBQVcsVUFBVTtBQUN6QztBQUFBLFFBQ0Y7QUFDQSxxQkFBYSxLQUFLLE1BQU0sUUFBUSxTQUFTLElBQUk7QUFBQSxNQUMvQztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7OztBQzlGQSxJQUFNLGVBQWU7QUFDckIsSUFBTSxlQUFlO0FBQ3JCLFNBQVMscUJBQXFCLFNBQTJCLFlBQXdCLE9BQWUsS0FBbUI7QUFDakgsVUFBUSxPQUFPO0FBQUEsSUFDYixLQUFLO0FBQUEsTUFDSCxPQUFPLFdBQVcsZ0JBQWdCLEtBQUs7QUFBQSxNQUN2QyxLQUFLLFdBQVcsZ0JBQWdCLEdBQUc7QUFBQSxJQUNyQztBQUFBLElBQ0EsU0FBUztBQUFBLElBQ1QsS0FBSyxDQUFDLFVBQVUsTUFBTSxZQUFZLENBQUMsT0FBTyxHQUFHLENBQUM7QUFBQSxFQUNoRCxDQUFDO0FBQ0g7QUFFQSxTQUFTLG1CQUFtQixTQUEyQixZQUF3QixTQUF3QjtBQUNyRyxNQUFJLFFBQVEsS0FBSztBQUNmLFVBQU0sT0FBTyxXQUFXLFNBQVMsRUFBRSxRQUFRLElBQUksTUFBTSxPQUFPLENBQUM7QUFDN0QsUUFBSSxTQUFTLFFBQVc7QUFDdEIsVUFBSTtBQUNKLGNBQVEsUUFBUSxhQUFhLEtBQUssSUFBSSxPQUFPLE1BQU07QUFDakQsY0FBTSxRQUFRLFdBQVcsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLElBQUksTUFBTSxNQUFNLFFBQVEsTUFBTSxNQUFNLENBQUM7QUFDOUYsY0FBTSxNQUFNLFdBQVcsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLElBQUksTUFBTSxNQUFNLFFBQVEsUUFBUSxJQUFJLElBQUksT0FBTyxDQUFDO0FBQ3ZHLDZCQUFxQixTQUFTLFlBQVksT0FBTyxHQUFHO0FBQUEsTUFDdEQ7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGO0FBRUEsU0FBUyxvQkFBb0IsU0FBMkIsWUFBd0IsU0FBd0I7QUFDdEcsUUFBTSxnQkFBZ0IsUUFBUSxNQUFNLE1BQU0sSUFBSTtBQUM5QyxRQUFNLG9CQUFvQjtBQUMxQixnQkFBYyxRQUFRLENBQUMsaUJBQWlCO0FBQ3RDLFFBQUksWUFBWSxRQUFRLEtBQUssTUFBTSxRQUFRO0FBQzNDLFVBQU0sVUFBVSxRQUFRLEtBQUssSUFBSSxRQUFRO0FBQ3pDLFFBQUk7QUFDSixXQUFPLFFBQVEsUUFBUSxRQUFRLGFBQWEsS0FBSyxZQUFZLE9BQU8sTUFBTTtBQUN4RSxVQUFJLFFBQVE7QUFDWixVQUFJLE1BQU07QUFDVixZQUFNLHNCQUFzQixrQkFBa0IsS0FBSyxRQUFRLE1BQU0sS0FBSyxDQUFDO0FBQ3ZFLFVBQUkscUJBQXFCO0FBQ3ZCLGdCQUFRLFdBQVcsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLElBQUksTUFBTSxNQUFNLFFBQVEsUUFBUSxJQUFJLE1BQU0sT0FBTyxDQUFDO0FBQ3JHLGNBQU0sV0FBVyxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsSUFBSSxJQUFJLE1BQU0sUUFBUSxRQUFRLElBQUksSUFBSSxPQUFPLENBQUM7QUFBQSxNQUNqRyxPQUFPO0FBQ0wsWUFBSSxhQUFhO0FBQ2pCLGVBQU8sYUFBYSxTQUFTO0FBQzNCLGdCQUFNLE9BQU8sV0FBVyxTQUFTLEVBQUUsU0FBUztBQUM1QyxjQUFJLE1BQU0sU0FBUyxNQUFNLEtBQUssS0FBSyxPQUFPO0FBQ3hDLHlCQUFhO0FBQ2I7QUFBQSxVQUNGO0FBQ0E7QUFBQSxRQUNGO0FBQ0EsZ0JBQVEsV0FBVyxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsR0FBRyxRQUFRLFFBQVEsSUFBSSxNQUFNLE9BQU8sQ0FBQztBQUM3RixjQUFNLFdBQVcsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLEdBQUcsUUFBUSxFQUFFLENBQUM7QUFBQSxNQUN0RTtBQUNBLDJCQUFxQixTQUFTLFlBQVksT0FBTyxHQUFHO0FBQUEsSUFDdEQ7QUFBQSxFQUNGLENBQUM7QUFDSDtBQUVBLElBQU8sNkJBQVE7QUFBQSxFQUNiLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQ0U7QUFBQSxNQUNGLEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxTQUFTO0FBQUEsRUFDWDtBQUFBLEVBQ0EsT0FBTyxTQUEyQjtBQUNoQyxVQUFNLGFBQWEsUUFBUTtBQUMzQixVQUFNLFdBQVcsV0FBVyxlQUFlO0FBQzNDLGFBQVMsUUFBUSxDQUFDLFlBQVk7QUFDNUIsVUFBSSxRQUFRLFNBQVMsUUFBUTtBQUMzQiwyQkFBbUIsU0FBUyxZQUFZLE9BQU87QUFBQSxNQUNqRCxPQUFPO0FBQ0wsNEJBQW9CLFNBQVMsWUFBWSxPQUFPO0FBQUEsTUFDbEQ7QUFBQSxJQUNGLENBQUM7QUFFRCxXQUFPLENBQUM7QUFBQSxFQUNWO0FBQ0Y7OztBQ2xGTyxJQUFNLG9DQUFvQztBQUMxQyxJQUFNLHVEQUNYO0FBQ0ssSUFBTSxnREFBZ0Q7QUFHN0QsSUFBTSxxQkFBcUIsQ0FBQyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUc7QUFHbEUsSUFBTSx5QkFBeUI7QUFBQSxFQUM3QjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjtBQUVBLElBQU8sa0NBQVE7QUFBQSxFQUNiLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQ0U7QUFBQSxNQUNGLEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixDQUFDLGlDQUFpQyxHQUFHO0FBQUEsTUFDckMsQ0FBQyxvREFBb0QsR0FBRztBQUFBLE1BQ3hELENBQUMsNkNBQTZDLEdBQUc7QUFBQSxJQUNuRDtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU8sU0FBUztBQUNkLFdBQU87QUFBQTtBQUFBLE1BRUwsZUFBZSxNQUFzQjtBQUNuQyxZQUFJLEtBQUssT0FBTyxTQUFTLGdCQUFnQixLQUFLLE9BQU8sU0FBUyxlQUFlO0FBQzNFLGdCQUFNLGtCQUFrQixLQUFLLFVBQVUsQ0FBQztBQUd4QyxjQUFJLG1CQUFtQixnQkFBZ0IsU0FBUyxvQkFBb0I7QUFDbEUsb0JBQVEsT0FBTztBQUFBLGNBQ2IsTUFBTTtBQUFBLGNBQ04sV0FBVztBQUFBLFlBQ2IsQ0FBQztBQUFBLFVBQ0g7QUFHQSxjQUFJLG1CQUFtQixnQkFBZ0IsU0FBUyxvQkFBb0I7QUFDbEUsa0JBQU0sVUFBVSxnQkFBZ0IsV0FBVztBQUFBLGNBQ3pDLENBQUMsYUFDQyxTQUFTLFNBQVMsY0FBYyxTQUFTLElBQUksU0FBUyxnQkFBZ0IsU0FBUyxJQUFJLFNBQVM7QUFBQSxZQUNoRztBQUNBLGdCQUFJLFlBQVksVUFBYSxRQUFRLE1BQU0sU0FBUyxvQkFBb0I7QUFDdEUsc0JBQVEsT0FBTztBQUFBLGdCQUNiLE1BQU07QUFBQSxnQkFDTixXQUFXO0FBQUEsY0FDYixDQUFDO0FBQUEsWUFDSDtBQUFBLFVBQ0Y7QUFHQSxjQUFJLG1CQUFtQixnQkFBZ0IsU0FBUyxvQkFBb0I7QUFDbEUsa0JBQU0sU0FBUyxnQkFBZ0IsV0FBVztBQUFBLGNBQ3hDLENBQUMsYUFDQyxTQUFTLFNBQVMsY0FBYyxTQUFTLElBQUksU0FBUyxnQkFBZ0IsU0FBUyxJQUFJLFNBQVM7QUFBQSxZQUNoRztBQUNBLGdCQUFJO0FBQ0osZ0JBQUksT0FBTyxNQUFNLFNBQVMsb0JBQW9CO0FBQzVDLHFDQUNFLE9BQU8sTUFBTSxPQUFPLFNBQVMsZ0JBQzdCLE9BQU8sTUFBTSxPQUFPLFNBQVMsaUJBQzdCLE9BQU8sTUFBTSxTQUFTLFNBQVMsZ0JBQy9CLHVCQUF1QixTQUFTLE9BQU8sTUFBTSxTQUFTLElBQUk7QUFBQSxZQUM5RCxXQUFXLE9BQU8sTUFBTSxTQUFTLFdBQVc7QUFDMUMscUNBQ0UsT0FBTyxPQUFPLE1BQU0sVUFBVSxZQUFZLG1CQUFtQixTQUFTLE9BQU8sTUFBTSxLQUFLO0FBQUEsWUFDNUY7QUFDQSxnQkFBSSx5QkFBeUIsT0FBTztBQUVsQyxvQkFBTSxPQUFPLGdCQUFnQixXQUFXO0FBQUEsZ0JBQ3RDLENBQUMsYUFDQyxTQUFTLFNBQVMsY0FBYyxTQUFTLElBQUksU0FBUyxnQkFBZ0IsU0FBUyxJQUFJLFNBQVM7QUFBQSxjQUNoRztBQUNBLGtCQUFJLFNBQVMsUUFBVztBQUN0QjtBQUFBLGNBQ0Y7QUFFQSxrQkFBSSxLQUFLLE1BQU0sU0FBUyxvQkFBb0I7QUFDMUMsd0JBQVEsT0FBTztBQUFBLGtCQUNiLE1BQU07QUFBQSxrQkFDTixXQUFXO0FBQUEsZ0JBQ2IsQ0FBQztBQUFBLGNBQ0g7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjs7O0FDdkdBLElBQU8scUNBQVE7QUFBQSxFQUNiLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxNQUNiLEtBQUs7QUFBQSxJQUNQO0FBQUEsRUFDRjtBQUFBLEVBQ0EsT0FBTyxTQUFTO0FBQ2QsVUFBTSxXQUFXLFFBQVEsV0FBVyxlQUFlO0FBQ25ELFVBQU0sUUFBUSxRQUFRLFdBQVcsU0FBUztBQUMxQyxXQUFPO0FBQUEsTUFDTCxRQUFRLE1BQU07QUFDWixZQUFJLEtBQUssT0FBTyxLQUFLLGlCQUFpQixRQUFRO0FBQzVDLGdCQUFNLHdCQUF3QixLQUFLLElBQUksTUFBTTtBQUM3QyxnQkFBTSxlQUFlLHdCQUF3QjtBQUM3QyxnQkFBTSxzQkFBc0IsTUFBTSxlQUFlLENBQUM7QUFHbEQsZ0JBQU0sc0JBQXNCLDBCQUEwQixLQUFLLEtBQUssTUFBTSxNQUFNO0FBQzVFLGNBQUkscUJBQXFCO0FBQ3ZCO0FBQUEsVUFDRjtBQUNBLGdCQUFNLDJCQUEyQixTQUFTLEtBQUssQ0FBQyxZQUFZO0FBQzFELGdCQUFJLENBQUMsUUFBUSxLQUFLO0FBQ2hCLHFCQUFPO0FBQUEsWUFDVDtBQUVBLGtCQUFNLG9CQUFvQjtBQUUxQixrQkFBTSwrQkFBK0I7QUFDckMsa0JBQU0sYUFBYSxrQkFBa0IsS0FBSyxRQUFRLE1BQU0sS0FBSyxDQUFDO0FBQzlELGdCQUFJLFFBQVEsU0FBUyxVQUFVLFFBQVEsSUFBSSxNQUFNLFNBQVMsUUFBUSxJQUFJLElBQUksTUFBTTtBQUM5RSxxQkFDRyxRQUFRLElBQUksSUFBSSxTQUFTLGdCQUN4Qix3QkFBd0IsVUFDeEIsNkJBQTZCLEtBQUssbUJBQW1CLEtBQ3JELGNBQ0QsUUFBUSxJQUFJLElBQUksU0FBUyx5QkFBeUI7QUFBQSxZQUV2RDtBQUNBLG1CQUNHLFFBQVEsSUFBSSxJQUFJLFNBQVMsZ0JBQWdCLGNBQ3pDLFFBQVEsSUFBSSxJQUFJLFNBQVMseUJBQXlCO0FBQUEsVUFFdkQsQ0FBQztBQUVELGNBQUksQ0FBQywwQkFBMEI7QUFDN0Isb0JBQVEsT0FBTztBQUFBLGNBQ2I7QUFBQSxjQUNBLFNBQVM7QUFBQSxZQUNYLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOzs7QUN6REEsSUFBTyxrREFBUTtBQUFBLEVBQ2IsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLE1BQ2IsS0FBSztBQUFBLElBQ1A7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPLFNBQVM7QUFDZCxRQUFJLG1CQUFtQjtBQUN2QixXQUFPO0FBQUEsTUFDTCxrQkFBa0IsTUFBTTtBQUN0QixZQUFJLEtBQUssT0FBTyxVQUFVLGVBQWU7QUFDdkMsZ0JBQU0sd0JBQXdCLEtBQUssV0FBVztBQUFBLFlBQzVDLENBQUMsY0FBYyxVQUFVLFNBQVMscUJBQXFCLFVBQVUsU0FBUyxTQUFTO0FBQUEsVUFDckYsRUFBRSxDQUFDO0FBQ0gsY0FBSSwwQkFBMEIsUUFBVztBQUN2QywrQkFBbUIsc0JBQXNCLE1BQU07QUFBQSxVQUNqRDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFDQSxlQUFlLE1BQU07QUFDbkIsY0FBTSxTQUFTLEtBQUs7QUFDcEIsWUFDRSxPQUFPLFNBQVMsc0JBQ2hCLE9BQU8sT0FBTyxTQUFTLGdCQUN2QixPQUFPLE9BQU8sU0FBUyxvQkFDdkIsT0FBTyxTQUFTLFNBQVMsaUJBQ3hCLE9BQU8sU0FBUyxTQUFTLGFBQWEsT0FBTyxTQUFTLFNBQVMsYUFDaEUsS0FBSyxVQUFVLFVBQVUsR0FDekI7QUFDQSxnQkFBTSxrQkFBa0IsS0FBSyxVQUFVLENBQUM7QUFDeEMsY0FDRSxvQkFBb0IsVUFDbkIsZ0JBQWdCLFNBQVMsd0JBQ3hCLGdCQUFnQixTQUFTLDZCQUN6QixnQkFBZ0IsU0FBUyxzQkFDekIsZ0JBQWdCLFNBQVMsZ0JBQ3pCLGdCQUFnQixTQUFTLGFBQ3pCLE9BQU8sZ0JBQWdCLFVBQVUsVUFDbkM7QUFDQSxvQkFBUSxPQUFPO0FBQUEsY0FDYjtBQUFBLGNBQ0EsU0FBUztBQUFBLGNBQ1QsTUFBTTtBQUFBLGdCQUNKLFFBQVEsT0FBTyxTQUFTO0FBQUEsY0FDMUI7QUFBQSxZQUNGLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOzs7QUNyREEsSUFBTSxxQkFBcUI7QUFDM0IsSUFBTSxjQUFjO0FBRXBCLElBQU8sZ0NBQVE7QUFBQSxFQUNiLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxNQUNiLEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxTQUFTO0FBQUEsRUFDWDtBQUFBLEVBQ0EsT0FBTyxTQUFTO0FBQ2QsVUFBTSxhQUFxQyxDQUFDO0FBQzVDLFdBQU87QUFBQSxNQUNMLFFBQVEsTUFBTTtBQUNaLFlBQ0UsT0FBTyxLQUFLLFVBQVUsWUFDdEIsS0FBSyxPQUFPLFNBQVMsdUJBQ3JCLEtBQUssT0FBTyxXQUFXLFNBQVMsR0FDaEM7QUFDQSxnQkFBTSxrQkFBa0IsS0FBSyxPQUFPLFdBQVcsQ0FBQztBQUNoRCxjQUFJLGlCQUFpQjtBQUNuQix1QkFBVyxnQkFBZ0IsTUFBTSxJQUFJLElBQUksS0FBSztBQUFBLFVBQ2hEO0FBQ0EsY0FBSSxLQUFLLFVBQVUsZUFBZSxLQUFLLFVBQVUsb0JBQW9CO0FBQ25FLGtCQUFNLG9CQUFvQixLQUFLO0FBQy9CLGtCQUFNLG1CQUFtQixrQkFBa0IsV0FBVztBQUFBLGNBQ3BELENBQUMsY0FDQyxVQUFVLFNBQVMsNEJBQTRCLFVBQVUsU0FBUztBQUFBLFlBQ3RFO0FBRUEsZ0JBQUkscUJBQXFCLFFBQVc7QUFDbEMsb0JBQU0seUJBQXlCLGtCQUFrQixTQUFTLENBQUMsR0FBRyxDQUFDO0FBQy9ELGtCQUFJLGlCQUFpQixpQkFBaUIsU0FBUztBQUMvQyxrQkFBSSxnQkFBZ0IsZUFBZSxpQkFBaUIsTUFBTSxJQUFJO0FBRTlELGtCQUFJLEtBQUssVUFBVSxzQkFBc0IsaUJBQWlCLFNBQVMsa0JBQWtCLE9BQU8sT0FBTztBQUNqRyxpQ0FBaUIsQ0FBQyxpQkFBaUIsTUFBTSxDQUFDLEdBQUcsa0JBQWtCLE9BQU8sTUFBTSxDQUFDLENBQUM7QUFDOUUsZ0NBQWdCLGVBQWUsaUJBQWlCLE1BQU0sSUFBSSxZQUFZLFdBQVc7QUFBQSxjQUNuRjtBQUVBLHNCQUFRLE9BQU87QUFBQSxnQkFDYixNQUFNO0FBQUEsZ0JBQ04sU0FBUztBQUFBLGdCQUNULEtBQUssQ0FBQyxVQUFVLE1BQU0saUJBQWlCLGdCQUFnQixhQUFhO0FBQUEsY0FDdEUsQ0FBQztBQUFBLFlBQ0g7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLGVBQWUsTUFBTTtBQUNuQixjQUFNLFNBQVMsS0FBSztBQUNwQixZQUNFLE9BQU8sU0FBUyxzQkFDaEIsT0FBTyxPQUFPLFNBQVMsZ0JBQ3ZCLE9BQU8sT0FBTyxTQUFTLE1BQ3ZCLE9BQU8sU0FBUyxTQUFTLGdCQUN6QixPQUFPLFNBQVMsU0FBUyxPQUN4QixPQUFPLFNBQVMsS0FBSyxTQUFTLFFBQVEsS0FBSyxPQUFPLFNBQVMsS0FBSyxTQUFTLFFBQVEsSUFDbEY7QUFDQSxnQkFBTSxZQUFZLFdBQVcsT0FBTyxPQUFPLElBQUk7QUFDL0MsY0FBSSxjQUFjLGVBQWUsY0FBYyxvQkFBb0I7QUFDakUsZ0JBQUksd0JBQXdCO0FBQzVCLGtCQUFNLHFCQUFxQixPQUFPLFNBQVM7QUFDM0MsZ0JBQUksdUJBQXVCLFVBQVU7QUFDbkMsc0NBQXdCLEdBQUcsT0FBTyxPQUFPLElBQUk7QUFBQSxZQUMvQyxPQUFPO0FBQ0wsb0JBQU0sZUFBZSxtQkFBbUIsU0FBUyxRQUFRLElBQ3JELG1CQUFtQixNQUFNLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFDMUMsbUJBQW1CLE1BQU0sUUFBUSxFQUFFLEtBQUssRUFBRTtBQUM5QyxvQkFBTSxvQkFBb0IsR0FBRyxhQUFhLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLGFBQWEsTUFBTSxDQUFDLENBQUM7QUFDekYsc0NBQXdCLEdBQUcsT0FBTyxPQUFPLElBQUksSUFBSSxpQkFBaUI7QUFBQSxZQUNwRTtBQUNBLG9CQUFRLE9BQU87QUFBQSxjQUNiO0FBQUEsY0FDQSxTQUFTO0FBQUEsY0FDVCxLQUFLLENBQUMsVUFBVSxNQUFNLFlBQVksUUFBUSxxQkFBcUI7QUFBQSxZQUNqRSxDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjs7O0FkekVBLElBQU8sY0FBUTtBQUFBLEVBQ2IsT0FBTztBQUFBLElBQ0wscUJBQXFCO0FBQUEsSUFDckIsbUJBQW1CO0FBQUEsSUFDbkIsV0FBVztBQUFBLElBQ1gseUJBQXlCO0FBQUEsSUFDekIsa0JBQWtCO0FBQUEsSUFDbEIsc0JBQXNCO0FBQUEsSUFDdEIsOEJBQThCO0FBQUEsSUFDOUIsMkNBQTJDO0FBQUEsSUFDM0MsMkJBQTJCO0FBQUEsSUFDM0IsQ0FBQyxNQUEwQixHQUFHO0FBQUEsSUFDOUIsQ0FBQ0MsT0FBNkIsR0FBRztBQUFBLElBQ2pDLENBQUNBLE9BQWUsR0FBRztBQUFBLEVBQ3JCO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxLQUFLO0FBQUEsTUFDSCxPQUFPO0FBQUEsUUFDTCwrQkFBK0I7QUFBQSxRQUMvQixpQ0FBaUM7QUFBQSxRQUNqQyx1QkFBdUI7QUFBQSxRQUN2QixxQ0FBcUM7QUFBQSxRQUNyQyxrQ0FBa0M7QUFBQSxRQUNsQywwQ0FBMEM7QUFBQSxRQUMxQyx1REFBdUQ7QUFBQSxRQUN2RCx1Q0FBdUM7QUFBQSxRQUN2Qyw4QkFBOEI7QUFBQSxRQUM5QixDQUFDLGVBQWUsTUFBMEIsRUFBRSxHQUFHO0FBQUEsUUFDL0MsQ0FBQyxlQUFlQSxPQUE2QixFQUFFLEdBQUc7QUFBQSxRQUNsRCxDQUFDLGVBQWVBLE9BQWUsRUFBRSxHQUFHO0FBQUEsTUFDdEM7QUFBQSxJQUNGO0FBQUEsSUFDQSxhQUFhO0FBQUEsTUFDWCxPQUFPO0FBQUEsUUFDTCwrQkFBK0I7QUFBQSxRQUMvQixpQ0FBaUM7QUFBQSxRQUNqQyx1QkFBdUI7QUFBQSxRQUN2QixxQ0FBcUM7QUFBQSxRQUNyQyxrQ0FBa0M7QUFBQSxRQUNsQywwQ0FBMEM7QUFBQSxRQUMxQyx1REFBdUQ7QUFBQSxRQUN2RCx1Q0FBdUM7QUFBQSxRQUN2Qyw4QkFBOEI7QUFBQSxRQUM5QixDQUFDLGVBQWUsTUFBMEIsRUFBRSxHQUFHO0FBQUEsUUFDL0MsQ0FBQyxlQUFlQSxPQUE2QixFQUFFLEdBQUc7QUFBQSxRQUNsRCxDQUFDLGVBQWVBLE9BQWUsRUFBRSxHQUFHO0FBQUEsTUFDdEM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogWyJydWxlSWQiLCAicnVsZUlkIiwgImFzc2VydCIsICJydWxlSWQiLCAiREVGQVVMVF9PUFRJT05TIiwgInJ1bGVJZCJdCn0K
1087
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3BhY2thZ2UuanNvbiIsICIuLi9zcmMvZ2V0LWRvY3VtZW50YXRpb24tdXJsLnRzIiwgIi4uL3NyYy9pbnZhbGlkLWpzb24tc3RyaW5naWZ5LnRzIiwgIi4uL3NyYy9uby1maXh0dXJlLnRzIiwgIi4uL3NyYy9uby1wcm9taXNlLWluc3RhbmNlLW1ldGhvZC50cyIsICIuLi9zcmMvZmlsZS1wYXRoLWNvbW1lbnQudHMiLCAiLi4vc3JjL25vLWNhcmQtbnVtYmVycy50cyIsICIuLi9zcmMvbm8tdGVzdC1pbXBvcnQudHMiLCAiLi4vc3JjL25vLXV1aWQudHMiLCAiLi4vc3JjL25vLXdhbGxhYnktY29tbWVudC50cyIsICIuLi9zcmMvb2JqZWN0LWxpdGVyYWwtcmVzcG9uc2UudHMiLCAiLi4vc3JjL3JlZ3VsYXItZXhwcmVzc2lvbi1jb21tZW50LnRzIiwgIi4uL3NyYy9yZXF1aXJlLWFzc2VydC1wcmVkaWNhdGUtcmVqZWN0cy10aHJvd3MudHMiLCAiLi4vc3JjL3JlcXVpcmUtc3RyaWN0LWFzc2VydC50cyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsd0JBQUMsTUFBTyw2QkFBNEIsU0FBVSxvQkFBbUIsYUFBYyw4QkFBNkIsVUFBVyxDQUFDLFVBQVMsY0FBYyxHQUFFLFVBQVcsc0RBQXFELE1BQU8sRUFBQyxLQUFNLHFEQUFvRCxHQUFFLFlBQWEsRUFBQyxNQUFPLE9BQU0sS0FBTSw4Q0FBNkMsR0FBRSxTQUFVLE9BQU0sUUFBUyxvQkFBbUIsYUFBYyxPQUFNLE1BQU8sVUFBUyxTQUFVLEVBQUMsS0FBSSxFQUFDLE9BQVEsMkJBQTBCLFNBQVUsd0JBQXVCLFFBQVMsd0JBQXVCLFNBQVUsdUJBQXNCLEVBQUMsR0FBRSxPQUFRLENBQUMsT0FBTSxjQUFhLFlBQVcsWUFBVyxxQkFBb0IscUJBQW9CLDhCQUE2Qiw4QkFBNkIs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QUFHO0FBQUEsRUFDckI7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNQLEtBQUs7QUFBQSxNQUNILE9BQU87QUFBQSxRQUNMLCtCQUErQjtBQUFBLFFBQy9CLGlDQUFpQztBQUFBLFFBQ2pDLHVCQUF1QjtBQUFBLFFBQ3ZCLHFDQUFxQztBQUFBLFFBQ3JDLGtDQUFrQztBQUFBLFFBQ2xDLDBDQUEwQztBQUFBLFFBQzFDLHVEQUF1RDtBQUFBLFFBQ3ZELHVDQUF1QztBQUFBLFFBQ3ZDLDhCQUE4QjtBQUFBLFFBQzlCLENBQUMsZUFBZSxNQUEwQixFQUFFLEdBQUc7QUFBQSxRQUMvQyxDQUFDLGVBQWVBLE9BQTZCLEVBQUUsR0FBRztBQUFBLFFBQ2xELENBQUMsZUFBZUEsT0FBZSxFQUFFLEdBQUc7QUFBQSxNQUN0QztBQUFBLElBQ0Y7QUFBQSxJQUNBLGFBQWE7QUFBQSxNQUNYLE9BQU87QUFBQSxRQUNMLCtCQUErQjtBQUFBLFFBQy9CLGlDQUFpQztBQUFBLFFBQ2pDLHVCQUF1QjtBQUFBLFFBQ3ZCLHFDQUFxQztBQUFBLFFBQ3JDLGtDQUFrQztBQUFBLFFBQ2xDLDBDQUEwQztBQUFBLFFBQzFDLHVEQUF1RDtBQUFBLFFBQ3ZELHVDQUF1QztBQUFBLFFBQ3ZDLDhCQUE4QjtBQUFBLFFBQzlCLENBQUMsZUFBZSxNQUEwQixFQUFFLEdBQUc7QUFBQSxRQUMvQyxDQUFDLGVBQWVBLE9BQTZCLEVBQUUsR0FBRztBQUFBLFFBQ2xELENBQUMsZUFBZUEsT0FBZSxFQUFFLEdBQUc7QUFBQSxNQUN0QztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbInJ1bGVJZCIsICJydWxlSWQiLCAiYXNzZXJ0IiwgInJ1bGVJZCIsICJERUZBVUxUX09QVElPTlMiLCAicnVsZUlkIl0KfQo=
1071
1088
  module.exports = module.exports.default;
@@ -34,7 +34,7 @@
34
34
  "format": "esm"
35
35
  },
36
36
  "src/no-fixture.ts": {
37
- "bytes": 12917,
37
+ "bytes": 14381,
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": 10842
200
+ "bytesInOutput": 11870
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": 75308
233
+ "bytes": 77004
234
234
  }
235
235
  }
236
236
  }
@@ -9,7 +9,7 @@ function analyze(call, results) {
9
9
  const parent = getParent(call);
10
10
  assert.ok(parent, "parent should exist for fixture/supertest call node");
11
11
  let nextCall;
12
- if (parent.type === "AwaitExpression") {
12
+ if (parent.type === "AwaitExpression" || parent.type === "ReturnStatement") {
13
13
  results.root = parent;
14
14
  } else if (parent.type === "MemberExpression" && parent.property.type === "Identifier") {
15
15
  if (parent.property.name === "expect") {
@@ -93,7 +93,7 @@ function analyzeReferences(fixtureCallAwait, scopeManager) {
93
93
  if (variableDeclaration && variableDeclaration.type === "VariableDeclaration") {
94
94
  const [responseVariable] = scopeManager.getDeclaredVariables(variableDeclaration);
95
95
  assert.ok(responseVariable);
96
- results.responseVariableName = responseVariable.name;
96
+ results.responseVariable = responseVariable;
97
97
  results.responseBodyReferences = responseVariable.references.map((responseBodyReference) => getParent(responseBodyReference.identifier)).filter(
98
98
  (node) => node !== null && node !== void 0 && node.type === "MemberExpression" && node.property.type === "Identifier" && node.property.name === "body"
99
99
  );
@@ -141,22 +141,23 @@ var rule = {
141
141
  assert.ok(urlArgumentNode !== void 0);
142
142
  const fixtureCallInformation = {};
143
143
  analyze(fixtureCall, fixtureCallInformation);
144
- const { responseVariableName, responseBodyReferences, responseHeadersReferences } = analyzeReferences(
144
+ const { responseVariable, responseBodyReferences, responseHeadersReferences } = analyzeReferences(
145
145
  fixtureCallInformation.root,
146
146
  scopeManager
147
147
  );
148
148
  let variableNameToUse;
149
149
  let isResponseVariableDeclared = false;
150
- if (responseVariableName === void 0) {
150
+ if (responseVariable === void 0) {
151
151
  variableNameToUse = `response${variableCounter === 0 ? "" : variableCounter.toString()}`;
152
152
  variableCounter++;
153
153
  } else {
154
154
  isResponseVariableDeclared = true;
155
- variableNameToUse = responseVariableName;
155
+ variableNameToUse = responseVariable.name;
156
156
  }
157
157
  const fixtureApiCallText = sourceCode.getText(fixtureCall);
158
158
  const fixtureMethodText = sourceCode.getText(fixtureFunction);
159
- let replacedText = fixtureApiCallText.replace(fixtureMethodText, "await fetch");
159
+ const fetchStatementStart = fixtureCallInformation.root.type === "ReturnStatement" && fixtureCallInformation.assertions === void 0 ? "return" : "await";
160
+ let replacedText = fixtureApiCallText.replace(fixtureMethodText, `${fetchStatementStart} fetch`);
160
161
  const fixtureArgumentText = sourceCode.getText(urlArgumentNode);
161
162
  let fetchArgumentText = replaceEndpointUrlPrefixWithBasePath(fixtureArgumentText);
162
163
  if (methodNode.name !== "get" || fixtureCallInformation.requestBody !== void 0 || fixtureCallInformation.requestHeaders !== void 0) {
@@ -208,6 +209,22 @@ ${indentation}`);
208
209
  assert.ok(headerName);
209
210
  yield fixer.replaceText(parent, `${variableNameToUse}.headers.get(${headerName})`);
210
211
  }
212
+ if (fixtureCallInformation.root.type === "ReturnStatement" && fixtureCallInformation.assertions !== void 0) {
213
+ yield fixer.insertTextAfter(
214
+ fixtureCallInformation.root,
215
+ `;
216
+ ${indentation}return ${variableNameToUse};`
217
+ );
218
+ }
219
+ function* statusCodeReplacer(reference) {
220
+ const parent = getParent(reference.identifier);
221
+ if (parent?.type === "MemberExpression" && parent.property.type === "Identifier" && parent.property.name === "statusCode") {
222
+ yield fixer.replaceText(parent.property, "status");
223
+ }
224
+ }
225
+ for (const reference of responseVariable?.references ?? []) {
226
+ yield* statusCodeReplacer(reference);
227
+ }
211
228
  }
212
229
  });
213
230
  } catch (error) {
@@ -228,4 +245,4 @@ export {
228
245
  no_fixture_default as default,
229
246
  ruleId
230
247
  };
231
- //# sourceMappingURL=data:application/json;base64,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
248
+ //# sourceMappingURL=data:application/json;base64,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
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@checkdigit/eslint-plugin","version":"6.6.0-PR.75-a2cc","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"}}
1
+ {"name":"@checkdigit/eslint-plugin","version":"6.6.0-PR.75-5dd8","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
@@ -8,7 +8,14 @@
8
8
 
9
9
  /* eslint-disable no-console */
10
10
 
11
- import type { AwaitExpression, Expression, MemberExpression, Node, SimpleCallExpression } from 'estree';
11
+ import type {
12
+ AwaitExpression,
13
+ Expression,
14
+ MemberExpression,
15
+ Node,
16
+ ReturnStatement,
17
+ SimpleCallExpression,
18
+ } from 'estree';
12
19
  import type { Rule, Scope, SourceCode } from 'eslint';
13
20
  import { strict as assert } from 'node:assert';
14
21
  import getDocumentationUrl from './get-documentation-url';
@@ -22,7 +29,7 @@ interface NodeParentExtension {
22
29
  }
23
30
 
24
31
  interface FixtureCallInformation {
25
- root: AwaitExpression;
32
+ root: AwaitExpression | ReturnStatement;
26
33
  requestBody?: Expression;
27
34
  requestHeaders?: { name: Expression; value: Expression }[];
28
35
  assertions?: Expression[][];
@@ -37,7 +44,7 @@ function analyze(call: SimpleCallExpression, results: FixtureCallInformation) {
37
44
  assert.ok(parent, 'parent should exist for fixture/supertest call node');
38
45
 
39
46
  let nextCall;
40
- if (parent.type === 'AwaitExpression') {
47
+ if (parent.type === 'AwaitExpression' || parent.type === 'ReturnStatement') {
41
48
  // no more assertions, return the await expression of the fixture call
42
49
  results.root = parent;
43
50
  } else if (parent.type === 'MemberExpression' && parent.property.type === 'Identifier') {
@@ -128,9 +135,9 @@ function getAncestor(node: Node, matchType: string, quitType: string) {
128
135
  return getAncestor(parent, matchType, quitType);
129
136
  }
130
137
 
131
- function analyzeReferences(fixtureCallAwait: AwaitExpression, scopeManager: Scope.ScopeManager) {
138
+ function analyzeReferences(fixtureCallAwait: AwaitExpression | ReturnStatement, scopeManager: Scope.ScopeManager) {
132
139
  const results: {
133
- responseVariableName?: string;
140
+ responseVariable?: Scope.Variable;
134
141
  responseBodyReferences: MemberExpression[];
135
142
  responseHeadersReferences: MemberExpression[];
136
143
  } = {
@@ -143,7 +150,7 @@ function analyzeReferences(fixtureCallAwait: AwaitExpression, scopeManager: Scop
143
150
  const [responseVariable] = scopeManager.getDeclaredVariables(variableDeclaration);
144
151
  assert.ok(responseVariable);
145
152
 
146
- results.responseVariableName = responseVariable.name;
153
+ results.responseVariable = responseVariable;
147
154
  results.responseBodyReferences = responseVariable.references
148
155
  .map((responseBodyReference) => getParent(responseBodyReference.identifier))
149
156
  .filter(
@@ -212,24 +219,29 @@ const rule: Rule.RuleModule = {
212
219
  const fixtureCallInformation = {} as FixtureCallInformation;
213
220
  analyze(fixtureCall, fixtureCallInformation);
214
221
 
215
- const { responseVariableName, responseBodyReferences, responseHeadersReferences } = analyzeReferences(
222
+ const { responseVariable, responseBodyReferences, responseHeadersReferences } = analyzeReferences(
216
223
  fixtureCallInformation.root,
217
224
  scopeManager,
218
225
  );
219
226
  let variableNameToUse: string;
220
227
  let isResponseVariableDeclared = false;
221
- if (responseVariableName === undefined) {
228
+ if (responseVariable === undefined) {
222
229
  variableNameToUse = `response${variableCounter === 0 ? '' : variableCounter.toString()}`;
223
230
  variableCounter++;
224
231
  } else {
225
232
  isResponseVariableDeclared = true;
226
- variableNameToUse = responseVariableName;
233
+ variableNameToUse = responseVariable.name;
227
234
  }
228
235
 
229
236
  // convert fixture.api.get to fetch
230
237
  const fixtureApiCallText = sourceCode.getText(fixtureCall); // e.g. "fixture.api.get(`/smartdata/v1/ping`)""
231
238
  const fixtureMethodText = sourceCode.getText(fixtureFunction); // e.g. "fixture.api.get"
232
- let replacedText = fixtureApiCallText.replace(fixtureMethodText, 'await fetch');
239
+
240
+ const fetchStatementStart =
241
+ fixtureCallInformation.root.type === 'ReturnStatement' && fixtureCallInformation.assertions === undefined
242
+ ? 'return'
243
+ : 'await';
244
+ let replacedText = fixtureApiCallText.replace(fixtureMethodText, `${fetchStatementStart} fetch`);
233
245
 
234
246
  // convert `/smartdata/v1/ping` to `${BASE_PATH}/ping`
235
247
  const fixtureArgumentText = sourceCode.getText(urlArgumentNode); // text - e.g. `/smartdata/v1/ping`
@@ -282,9 +294,12 @@ const rule: Rule.RuleModule = {
282
294
  *fix(fixer) {
283
295
  yield fixer.replaceText(fixtureCallInformation.root, replacedText);
284
296
 
297
+ // handle response body
285
298
  for (const responseBodyReference of responseBodyReferences) {
286
299
  yield fixer.replaceText(responseBodyReference, `await ${variableNameToUse}.json()`);
287
300
  }
301
+
302
+ // handle response headers
288
303
  for (const responseHeadersReference of responseHeadersReferences) {
289
304
  const parent = getParent(responseHeadersReference);
290
305
  assert.ok(parent?.type === 'MemberExpression');
@@ -295,6 +310,32 @@ const rule: Rule.RuleModule = {
295
310
  assert.ok(headerName);
296
311
  yield fixer.replaceText(parent, `${variableNameToUse}.headers.get(${headerName})`);
297
312
  }
313
+
314
+ // handle direct return without await
315
+ if (
316
+ fixtureCallInformation.root.type === 'ReturnStatement' &&
317
+ fixtureCallInformation.assertions !== undefined
318
+ ) {
319
+ yield fixer.insertTextAfter(
320
+ fixtureCallInformation.root,
321
+ `;\n${indentation}return ${variableNameToUse};`,
322
+ );
323
+ }
324
+
325
+ // convert statusCode to status
326
+ function* statusCodeReplacer(reference: Scope.Reference) {
327
+ const parent = getParent(reference.identifier);
328
+ if (
329
+ parent?.type === 'MemberExpression' &&
330
+ parent.property.type === 'Identifier' &&
331
+ parent.property.name === 'statusCode'
332
+ ) {
333
+ yield fixer.replaceText(parent.property, 'status');
334
+ }
335
+ }
336
+ for (const reference of responseVariable?.references ?? []) {
337
+ yield* statusCodeReplacer(reference);
338
+ }
298
339
  },
299
340
  });
300
341
  } catch (error) {