@checkdigit/eslint-plugin 7.15.0-PR.117-a0b1 → 7.15.0-PR.134-b6cb

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.
@@ -17,13 +17,13 @@ import noServeRuntime, { ruleId as noServeRuntimeRuleId } from "./no-serve-runti
17
17
  import requireServiceCallResponseDeclaration, {
18
18
  ruleId as requireServiceCallResponseDeclarationRuleId
19
19
  } from "./require-service-call-response-declaration.mjs";
20
+ import requireAwsConfig, { ruleId as requireAwsConfigRuleId } from "./require-aws-config.mjs";
20
21
  import filePathComment from "./file-path-comment.mjs";
21
22
  import noCardNumbers from "./no-card-numbers.mjs";
22
23
  import noEnum from "./no-enum.mjs";
23
24
  import noSideEffects from "./no-side-effects.mjs";
24
25
  import noRandomV4UUID from "./no-random-v4-uuid.mjs";
25
26
  import noTestImport from "./no-test-import.mjs";
26
- import noTypeAssertionAs from "./no-type-assertion-as.mjs";
27
27
  import noUtil from "./no-util.mjs";
28
28
  import noUuid from "./no-uuid.mjs";
29
29
  import noWallabyComment from "./no-wallaby-comment.mjs";
@@ -33,6 +33,7 @@ import requireAssertPredicateRejectsThrows from "./require-assert-predicate-reje
33
33
  import requireStrictAssert from "./require-strict-assert.mjs";
34
34
  import requireAssertMessage from "./require-assert-message.mjs";
35
35
  import requireTsExtensionImportsExports from "./require-ts-extension-imports-exports.mjs";
36
+ import { default as default2 } from "./is-aws-sdk-v3-used.mjs";
36
37
  var rules = {
37
38
  "file-path-comment": filePathComment,
38
39
  "no-card-numbers": noCardNumbers,
@@ -47,7 +48,6 @@ var rules = {
47
48
  "no-test-import": noTestImport,
48
49
  "no-wallaby-comment": noWallabyComment,
49
50
  "no-side-effects": noSideEffects,
50
- "no-type-assertion-as": noTypeAssertionAs,
51
51
  "regular-expression-comment": regexComment,
52
52
  "require-assert-predicate-rejects-throws": requireAssertPredicateRejectsThrows,
53
53
  "object-literal-response": objectLiteralResponse,
@@ -58,6 +58,7 @@ var rules = {
58
58
  [noDuplicatedImportsRuleId]: noDuplicatedImports,
59
59
  [noServeRuntimeRuleId]: noServeRuntime,
60
60
  [requireServiceCallResponseDeclarationRuleId]: requireServiceCallResponseDeclaration,
61
+ [requireAwsConfigRuleId]: requireAwsConfig,
61
62
  [requireFixedServicesImportRuleId]: requireFixedServicesImport,
62
63
  [requireTypeOutOfTypeOnlyImportsRuleId]: requireTypeOutOfTypeOnlyImports
63
64
  };
@@ -84,7 +85,6 @@ var configs = {
84
85
  "@checkdigit/require-ts-extension-imports-exports": "error",
85
86
  "@checkdigit/no-wallaby-comment": "error",
86
87
  "@checkdigit/no-side-effects": "error",
87
- "@checkdigit/no-type-assertion-as": "error",
88
88
  "@checkdigit/regular-expression-comment": "error",
89
89
  "@checkdigit/require-assert-predicate-rejects-throws": "error",
90
90
  "@checkdigit/object-literal-response": "error",
@@ -97,7 +97,8 @@ var configs = {
97
97
  [`@checkdigit/${requireFixedServicesImportRuleId}`]: "error",
98
98
  [`@checkdigit/${requireTypeOutOfTypeOnlyImportsRuleId}`]: "error",
99
99
  [`@checkdigit/${noServeRuntimeRuleId}`]: "error",
100
- [`@checkdigit/${requireServiceCallResponseDeclarationRuleId}`]: "error"
100
+ [`@checkdigit/${requireServiceCallResponseDeclarationRuleId}`]: "error",
101
+ [`@checkdigit/${requireAwsConfigRuleId}`]: "error"
101
102
  }
102
103
  }
103
104
  ],
@@ -120,7 +121,6 @@ var configs = {
120
121
  "@checkdigit/require-ts-extension-imports-exports": "error",
121
122
  "@checkdigit/no-wallaby-comment": "off",
122
123
  "@checkdigit/no-side-effects": "error",
123
- "@checkdigit/no-type-assertion-as": "error",
124
124
  "@checkdigit/regular-expression-comment": "error",
125
125
  "@checkdigit/require-assert-predicate-rejects-throws": "error",
126
126
  "@checkdigit/object-literal-response": "error",
@@ -133,7 +133,8 @@ var configs = {
133
133
  [`@checkdigit/${requireFixedServicesImportRuleId}`]: "off",
134
134
  [`@checkdigit/${requireTypeOutOfTypeOnlyImportsRuleId}`]: "error",
135
135
  [`@checkdigit/${noServeRuntimeRuleId}`]: "off",
136
- [`@checkdigit/${requireServiceCallResponseDeclarationRuleId}`]: "off"
136
+ [`@checkdigit/${requireServiceCallResponseDeclarationRuleId}`]: "off",
137
+ [`@checkdigit/${requireAwsConfigRuleId}`]: "off"
137
138
  }
138
139
  }
139
140
  ]
@@ -144,6 +145,7 @@ var defaultToExport = {
144
145
  };
145
146
  var index_default = defaultToExport;
146
147
  export {
147
- index_default as default
148
+ index_default as default,
149
+ default2 as isAwsSdkV3Used
148
150
  };
149
- //# sourceMappingURL=data:application/json;base64,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QUFHO0FBQUEsUUFDaEQsQ0FBQyxlQUFlLGdDQUFnQyxFQUFFLEdBQUc7QUFBQSxRQUNyRCxDQUFDLGVBQWUseUJBQXlCLEVBQUUsR0FBRztBQUFBLFFBQzlDLENBQUMsZUFBZSxnQ0FBZ0MsRUFBRSxHQUFHO0FBQUEsUUFDckQsQ0FBQyxlQUFlLHFDQUFxQyxFQUFFLEdBQUc7QUFBQSxRQUMxRCxDQUFDLGVBQWUsb0JBQW9CLEVBQUUsR0FBRztBQUFBLFFBQ3pDLENBQUMsZUFBZSwyQ0FBMkMsRUFBRSxHQUFHO0FBQUEsTUFDbEU7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1g7QUFBQSxNQUNFLE9BQU8sQ0FBQyxTQUFTO0FBQUEsTUFDakIsU0FBUztBQUFBLFFBQ1AsZUFBZTtBQUFBLE1BQ2pCO0FBQUEsTUFDQSxPQUFPO0FBQUEsUUFDTCwrQkFBK0I7QUFBQSxRQUMvQix1QkFBdUI7QUFBQSxRQUN2QixpQ0FBaUM7QUFBQSxRQUNqQyxpQ0FBaUM7QUFBQSxRQUNqQyxxQ0FBcUM7QUFBQSxRQUNyQyx1QkFBdUI7QUFBQSxRQUN2Qix1QkFBdUI7QUFBQSxRQUN2QixzQ0FBc0M7QUFBQSxRQUN0QyxxQ0FBcUM7QUFBQSxRQUNyQyxvREFBb0Q7QUFBQSxRQUNwRCxrQ0FBa0M7QUFBQSxRQUNsQywrQkFBK0I7QUFBQSxRQUMvQixvQ0FBb0M7QUFBQSxRQUNwQywwQ0FBMEM7QUFBQSxRQUMxQyx1REFBdUQ7QUFBQSxRQUN2RCx1Q0FBdUM7QUFBQSxRQUN2Qyw4QkFBOEI7QUFBQSxRQUM5QixDQUFDLGVBQWUsMEJBQTBCLEVBQUUsR0FBRztBQUFBLFFBQy9DLENBQUMsZUFBZSw2QkFBNkIsRUFBRSxHQUFHO0FBQUEsUUFDbEQsQ0FBQyxlQUFlLDJCQUEyQixFQUFFLEdBQUc7QUFBQSxRQUNoRCxDQUFDLGVBQWUsZ0NBQWdDLEVBQUUsR0FBRztBQUFBLFFBQ3JELENBQUMsZUFBZSx5QkFBeUIsRUFBRSxHQUFHO0FBQUEsUUFDOUMsQ0FBQyxlQUFlLGdDQUFnQyxFQUFFLEdBQUc7QUFBQSxRQUNyRCxDQUFDLGVBQWUscUNBQXFDLEVBQUUsR0FBRztBQUFBLFFBQzFELENBQUMsZUFBZSxvQkFBb0IsRUFBRSxHQUFHO0FBQUEsUUFDekMsQ0FBQyxlQUFlLDJDQUEyQyxFQUFFLEdBQUc7QUFBQSxNQUNsRTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxJQUFNLGtCQUVGO0FBQUEsRUFDRixHQUFHO0FBQUEsRUFDSDtBQUNGO0FBQ0EsSUFBTyxnQkFBUTsiLAogICJuYW1lcyI6IFtdCn0K
151
+ //# sourceMappingURL=data:application/json;base64,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UUFDbEQsQ0FBQyxlQUFlLDJCQUEyQixFQUFFLEdBQUc7QUFBQSxRQUNoRCxDQUFDLGVBQWUsZ0NBQWdDLEVBQUUsR0FBRztBQUFBLFFBQ3JELENBQUMsZUFBZSx5QkFBeUIsRUFBRSxHQUFHO0FBQUEsUUFDOUMsQ0FBQyxlQUFlLGdDQUFnQyxFQUFFLEdBQUc7QUFBQSxRQUNyRCxDQUFDLGVBQWUscUNBQXFDLEVBQUUsR0FBRztBQUFBLFFBQzFELENBQUMsZUFBZSxvQkFBb0IsRUFBRSxHQUFHO0FBQUEsUUFDekMsQ0FBQyxlQUFlLDJDQUEyQyxFQUFFLEdBQUc7QUFBQSxRQUNoRSxDQUFDLGVBQWUsc0JBQXNCLEVBQUUsR0FBRztBQUFBLE1BQzdDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLGFBQWE7QUFBQSxJQUNYO0FBQUEsTUFDRSxPQUFPLENBQUMsU0FBUztBQUFBLE1BQ2pCLFNBQVM7QUFBQSxRQUNQLGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0EsT0FBTztBQUFBLFFBQ0wsK0JBQStCO0FBQUEsUUFDL0IsdUJBQXVCO0FBQUEsUUFDdkIsaUNBQWlDO0FBQUEsUUFDakMsaUNBQWlDO0FBQUEsUUFDakMscUNBQXFDO0FBQUEsUUFDckMsdUJBQXVCO0FBQUEsUUFDdkIsdUJBQXVCO0FBQUEsUUFDdkIsc0NBQXNDO0FBQUEsUUFDdEMscUNBQXFDO0FBQUEsUUFDckMsb0RBQW9EO0FBQUEsUUFDcEQsa0NBQWtDO0FBQUEsUUFDbEMsK0JBQStCO0FBQUEsUUFDL0IsMENBQTBDO0FBQUEsUUFDMUMsdURBQXVEO0FBQUEsUUFDdkQsdUNBQXVDO0FBQUEsUUFDdkMsOEJBQThCO0FBQUEsUUFDOUIsQ0FBQyxlQUFlLDBCQUEwQixFQUFFLEdBQUc7QUFBQSxRQUMvQyxDQUFDLGVBQWUsNkJBQTZCLEVBQUUsR0FBRztBQUFBLFFBQ2xELENBQUMsZUFBZSwyQkFBMkIsRUFBRSxHQUFHO0FBQUEsUUFDaEQsQ0FBQyxlQUFlLGdDQUFnQyxFQUFFLEdBQUc7QUFBQSxRQUNyRCxDQUFDLGVBQWUseUJBQXlCLEVBQUUsR0FBRztBQUFBLFFBQzlDLENBQUMsZUFBZSxnQ0FBZ0MsRUFBRSxHQUFHO0FBQUEsUUFDckQsQ0FBQyxlQUFlLHFDQUFxQyxFQUFFLEdBQUc7QUFBQSxRQUMxRCxDQUFDLGVBQWUsb0JBQW9CLEVBQUUsR0FBRztBQUFBLFFBQ3pDLENBQUMsZUFBZSwyQ0FBMkMsRUFBRSxHQUFHO0FBQUEsUUFDaEUsQ0FBQyxlQUFlLHNCQUFzQixFQUFFLEdBQUc7QUFBQSxNQUM3QztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxJQUFNLGtCQUVGO0FBQUEsRUFDRixHQUFHO0FBQUEsRUFDSDtBQUNGO0FBQ0EsSUFBTyxnQkFBUTsiLAogICJuYW1lcyI6IFsiZGVmYXVsdCJdCn0K
@@ -0,0 +1,17 @@
1
+ // src/is-aws-sdk-v3-used.ts
2
+ import { promises as fs } from "node:fs";
3
+ async function isAwsSdkV3Used() {
4
+ const isService = process.env["SERVICE_NAME"] !== void 0;
5
+ if (!isService) {
6
+ return false;
7
+ }
8
+ const packageJson = JSON.parse(await fs.readFile("package.json", "utf-8"));
9
+ const dependencies = packageJson.dependencies ?? {};
10
+ const hasAwsSdkV3Dependency = Object.keys(dependencies).some((dependency) => dependency.startsWith("@aws-sdk/"));
11
+ const isAwsSdkV2Used = Object.keys(dependencies).some((dependency) => dependency === "@checkdigit/aws") || packageJson.service?.awsSdkV2 === true;
12
+ return !isAwsSdkV2Used && hasAwsSdkV3Dependency;
13
+ }
14
+ export {
15
+ isAwsSdkV3Used as default
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2lzLWF3cy1zZGstdjMtdXNlZC50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFFQSxTQUFTLFlBQVksVUFBVTtBQUUvQixlQUFPLGlCQUEwRDtBQUMvRCxRQUFNLFlBQVksUUFBUSxJQUFJLGNBQWMsTUFBTTtBQUNsRCxNQUFJLENBQUMsV0FBVztBQUNkLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxjQUFjLEtBQUssTUFBTSxNQUFNLEdBQUcsU0FBUyxnQkFBZ0IsT0FBTyxDQUFDO0FBTXpFLFFBQU0sZUFBZSxZQUFZLGdCQUFnQixDQUFDO0FBRWxELFFBQU0sd0JBQXdCLE9BQU8sS0FBSyxZQUFZLEVBQUUsS0FBSyxDQUFDLGVBQWUsV0FBVyxXQUFXLFdBQVcsQ0FBQztBQUMvRyxRQUFNLGlCQUNKLE9BQU8sS0FBSyxZQUFZLEVBQUUsS0FBSyxDQUFDLGVBQWUsZUFBZSxpQkFBaUIsS0FDL0UsWUFBWSxTQUFTLGFBQWE7QUFFcEMsU0FBTyxDQUFDLGtCQUFrQjtBQUM1QjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,53 @@
1
+ // src/require-aws-config.ts
2
+ import { AST_NODE_TYPES, ESLintUtils } from "@typescript-eslint/utils";
3
+ import getDocumentationUrl from "./get-documentation-url.mjs";
4
+ var ruleId = "require-aws-config";
5
+ var MESSAGE_ID_REQUIRE_AWS_CONFIG = "requireAwsConfig";
6
+ var createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
7
+ var rule = createRule({
8
+ name: ruleId,
9
+ meta: {
10
+ type: "problem",
11
+ docs: {
12
+ description: "Require to apply @checkdigit/aws-config along with qualifier instead of using aws client directly."
13
+ },
14
+ messages: {
15
+ [MESSAGE_ID_REQUIRE_AWS_CONFIG]: "Please apply @checkdigit/aws-config along with qualifier instead of using aws client {{awsClientName}} directly."
16
+ },
17
+ schema: []
18
+ },
19
+ defaultOptions: [],
20
+ create(context) {
21
+ const { isAwsSdkV3Used } = context.settings;
22
+ if (isAwsSdkV3Used !== true) {
23
+ return {};
24
+ }
25
+ return {
26
+ NewExpression(node) {
27
+ if (node.callee.type === AST_NODE_TYPES.Identifier && node.callee.name.endsWith("Client")) {
28
+ context.report({
29
+ node,
30
+ messageId: MESSAGE_ID_REQUIRE_AWS_CONFIG,
31
+ data: { awsClientName: node.callee.name }
32
+ });
33
+ } else if (node.callee.type === AST_NODE_TYPES.MemberExpression) {
34
+ const property = node.callee.property;
35
+ if (property.type === AST_NODE_TYPES.Identifier && property.name.endsWith("Client")) {
36
+ context.report({
37
+ node,
38
+ messageId: MESSAGE_ID_REQUIRE_AWS_CONFIG,
39
+ data: { awsClientName: property.name }
40
+ });
41
+ }
42
+ }
43
+ }
44
+ };
45
+ }
46
+ });
47
+ var require_aws_config_default = rule;
48
+ export {
49
+ MESSAGE_ID_REQUIRE_AWS_CONFIG,
50
+ require_aws_config_default as default,
51
+ ruleId
52
+ };
53
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3JlcXVpcmUtYXdzLWNvbmZpZy50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxTQUFTLGdCQUFnQixtQkFBbUI7QUFDNUMsT0FBTyx5QkFBeUI7QUFFekIsSUFBTSxTQUFTO0FBQ2YsSUFBTSxnQ0FBZ0M7QUFDN0MsSUFBTSxhQUFhLFlBQVksWUFBWSxDQUFDLFNBQVMsb0JBQW9CLElBQUksQ0FBQztBQUU5RSxJQUFNLE9BQXFFLFdBQVc7QUFBQSxFQUNwRixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyw2QkFBNkIsR0FDNUI7QUFBQSxJQUNKO0FBQUEsSUFDQSxRQUFRLENBQUM7QUFBQSxFQUNYO0FBQUEsRUFDQSxnQkFBZ0IsQ0FBQztBQUFBLEVBQ2pCLE9BQU8sU0FBUztBQUNkLFVBQU0sRUFBRSxlQUFlLElBQUksUUFBUTtBQUNuQyxRQUFJLG1CQUFtQixNQUFNO0FBQzNCLGFBQU8sQ0FBQztBQUFBLElBQ1Y7QUFFQSxXQUFPO0FBQUEsTUFDTCxjQUFjLE1BQU07QUFDbEIsWUFBSSxLQUFLLE9BQU8sU0FBUyxlQUFlLGNBQWMsS0FBSyxPQUFPLEtBQUssU0FBUyxRQUFRLEdBQUc7QUFDekYsa0JBQVEsT0FBTztBQUFBLFlBQ2I7QUFBQSxZQUNBLFdBQVc7QUFBQSxZQUNYLE1BQU0sRUFBRSxlQUFlLEtBQUssT0FBTyxLQUFLO0FBQUEsVUFDMUMsQ0FBQztBQUFBLFFBQ0gsV0FBVyxLQUFLLE9BQU8sU0FBUyxlQUFlLGtCQUFrQjtBQUUvRCxnQkFBTSxXQUFXLEtBQUssT0FBTztBQUM3QixjQUFJLFNBQVMsU0FBUyxlQUFlLGNBQWMsU0FBUyxLQUFLLFNBQVMsUUFBUSxHQUFHO0FBQ25GLG9CQUFRLE9BQU87QUFBQSxjQUNiO0FBQUEsY0FDQSxXQUFXO0FBQUEsY0FDWCxNQUFNLEVBQUUsZUFBZSxTQUFTLEtBQUs7QUFBQSxZQUN2QyxDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBRUQsSUFBTyw2QkFBUTsiLAogICJuYW1lcyI6IFtdCn0K
@@ -1,4 +1,5 @@
1
1
  import type { TSESLint } from '@typescript-eslint/utils';
2
+ export { default as isAwsSdkV3Used } from './is-aws-sdk-v3-used.ts';
2
3
  declare const defaultToExport: Exclude<TSESLint.FlatConfig.Plugin, 'config'> & {
3
4
  configs: Record<string, TSESLint.FlatConfig.Config[]>;
4
5
  };
@@ -0,0 +1 @@
1
+ export default function isAwsSdkV3Used(): Promise<boolean>;
@@ -0,0 +1,5 @@
1
+ import { ESLintUtils } from '@typescript-eslint/utils';
2
+ export declare const ruleId = "require-aws-config";
3
+ export declare const MESSAGE_ID_REQUIRE_AWS_CONFIG = "requireAwsConfig";
4
+ declare const rule: ESLintUtils.RuleModule<typeof MESSAGE_ID_REQUIRE_AWS_CONFIG>;
5
+ export default rule;
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@checkdigit/eslint-plugin","version":"7.15.0-PR.117-a0b1","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","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"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 .","lint:fix":"eslint --max-warnings 0 --fix .","prepare":"","prepublishOnly":"npm run build:dist-types && 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"},"dependencies":{"@typescript-eslint/type-utils":"^8.23.0","@typescript-eslint/utils":"^8.23.0","http-status-codes":"^2.3.0","ts-api-utils":"^2.0.1"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^6.1.0","@checkdigit/typescript-config":"^9.0.0","@eslint/js":"^9.19.0","@types/eslint":"^9.6.1","@types/eslint-config-prettier":"^6.11.3","@typescript-eslint/parser":"^8.23.0","@typescript-eslint/rule-tester":"^8.23.0","eslint":"^9.19.0","eslint-config-prettier":"^10.0.1","eslint-import-resolver-typescript":"^3.7.0","eslint-plugin-eslint-plugin":"^6.4.0","eslint-plugin-import":"^2.31.0","eslint-plugin-no-only-tests":"^3.3.0","eslint-plugin-no-secrets":"^2.2.1","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"1.0.4","rimraf":"^6.0.1","typescript-eslint":"^8.23.0"},"peerDependencies":{"eslint":">=9 <10"},"engines":{"node":">=22.14"}}
1
+ {"name":"@checkdigit/eslint-plugin","version":"7.15.0-PR.134-b6cb","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","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"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 .","lint:fix":"eslint --max-warnings 0 --fix .","prepare":"","prepublishOnly":"npm run build:dist-types && 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"},"dependencies":{"@typescript-eslint/type-utils":"^8.45.0","@typescript-eslint/utils":"^8.45.0","http-status-codes":"^2.3.0","ts-api-utils":"^2.1.0"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^6.1.0","@checkdigit/typescript-config":"^9.3.1","@eslint/js":"^9.36.0","@types/eslint":"^9.6.1","@types/eslint-config-prettier":"^6.11.3","@typescript-eslint/parser":"^8.45.0","@typescript-eslint/rule-tester":"^8.45.0","eslint":"^9.36.0","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-eslint-plugin":"^6.4.0","eslint-plugin-import":"^2.32.0","eslint-plugin-no-only-tests":"^3.3.0","eslint-plugin-no-secrets":"^2.2.1","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"1.0.4","rimraf":"^6.0.1","typescript-eslint":"^8.45.0"},"peerDependencies":{"eslint":">=9 <10"},"engines":{"node":">=22.15"}}
package/src/index.ts CHANGED
@@ -26,13 +26,13 @@ import noServeRuntime, { ruleId as noServeRuntimeRuleId } from './no-serve-runti
26
26
  import requireServiceCallResponseDeclaration, {
27
27
  ruleId as requireServiceCallResponseDeclarationRuleId,
28
28
  } from './require-service-call-response-declaration.ts';
29
+ import requireAwsConfig, { ruleId as requireAwsConfigRuleId } from './require-aws-config.ts';
29
30
  import filePathComment from './file-path-comment.ts';
30
31
  import noCardNumbers from './no-card-numbers.ts';
31
32
  import noEnum from './no-enum.ts';
32
33
  import noSideEffects from './no-side-effects.ts';
33
34
  import noRandomV4UUID from './no-random-v4-uuid.ts';
34
35
  import noTestImport from './no-test-import.ts';
35
- import noTypeAssertionAs from './no-type-assertion-as.ts';
36
36
  import noUtil from './no-util.ts';
37
37
  import noUuid from './no-uuid.ts';
38
38
  import noWallabyComment from './no-wallaby-comment.ts';
@@ -42,6 +42,7 @@ import requireAssertPredicateRejectsThrows from './require-assert-predicate-reje
42
42
  import requireStrictAssert from './require-strict-assert.ts';
43
43
  import requireAssertMessage from './require-assert-message';
44
44
  import requireTsExtensionImportsExports from './require-ts-extension-imports-exports.ts';
45
+ export { default as isAwsSdkV3Used } from './is-aws-sdk-v3-used.ts';
45
46
 
46
47
  const rules: Record<string, TSESLint.LooseRuleDefinition> = {
47
48
  'file-path-comment': filePathComment,
@@ -57,7 +58,6 @@ const rules: Record<string, TSESLint.LooseRuleDefinition> = {
57
58
  'no-test-import': noTestImport,
58
59
  'no-wallaby-comment': noWallabyComment,
59
60
  'no-side-effects': noSideEffects,
60
- 'no-type-assertion-as': noTypeAssertionAs,
61
61
  'regular-expression-comment': regexComment,
62
62
  'require-assert-predicate-rejects-throws': requireAssertPredicateRejectsThrows,
63
63
  'object-literal-response': objectLiteralResponse,
@@ -68,6 +68,7 @@ const rules: Record<string, TSESLint.LooseRuleDefinition> = {
68
68
  [noDuplicatedImportsRuleId]: noDuplicatedImports,
69
69
  [noServeRuntimeRuleId]: noServeRuntime,
70
70
  [requireServiceCallResponseDeclarationRuleId]: requireServiceCallResponseDeclaration,
71
+ [requireAwsConfigRuleId]: requireAwsConfig,
71
72
  [requireFixedServicesImportRuleId]: requireFixedServicesImport,
72
73
  [requireTypeOutOfTypeOnlyImportsRuleId]: requireTypeOutOfTypeOnlyImports,
73
74
  };
@@ -96,7 +97,6 @@ const configs: Record<string, TSESLint.FlatConfig.Config[]> = {
96
97
  '@checkdigit/require-ts-extension-imports-exports': 'error',
97
98
  '@checkdigit/no-wallaby-comment': 'error',
98
99
  '@checkdigit/no-side-effects': 'error',
99
- '@checkdigit/no-type-assertion-as': 'error',
100
100
  '@checkdigit/regular-expression-comment': 'error',
101
101
  '@checkdigit/require-assert-predicate-rejects-throws': 'error',
102
102
  '@checkdigit/object-literal-response': 'error',
@@ -110,6 +110,7 @@ const configs: Record<string, TSESLint.FlatConfig.Config[]> = {
110
110
  [`@checkdigit/${requireTypeOutOfTypeOnlyImportsRuleId}`]: 'error',
111
111
  [`@checkdigit/${noServeRuntimeRuleId}`]: 'error',
112
112
  [`@checkdigit/${requireServiceCallResponseDeclarationRuleId}`]: 'error',
113
+ [`@checkdigit/${requireAwsConfigRuleId}`]: 'error',
113
114
  },
114
115
  },
115
116
  ],
@@ -132,7 +133,6 @@ const configs: Record<string, TSESLint.FlatConfig.Config[]> = {
132
133
  '@checkdigit/require-ts-extension-imports-exports': 'error',
133
134
  '@checkdigit/no-wallaby-comment': 'off',
134
135
  '@checkdigit/no-side-effects': 'error',
135
- '@checkdigit/no-type-assertion-as': 'error',
136
136
  '@checkdigit/regular-expression-comment': 'error',
137
137
  '@checkdigit/require-assert-predicate-rejects-throws': 'error',
138
138
  '@checkdigit/object-literal-response': 'error',
@@ -146,6 +146,7 @@ const configs: Record<string, TSESLint.FlatConfig.Config[]> = {
146
146
  [`@checkdigit/${requireTypeOutOfTypeOnlyImportsRuleId}`]: 'error',
147
147
  [`@checkdigit/${noServeRuntimeRuleId}`]: 'off',
148
148
  [`@checkdigit/${requireServiceCallResponseDeclarationRuleId}`]: 'off',
149
+ [`@checkdigit/${requireAwsConfigRuleId}`]: 'off',
149
150
  },
150
151
  },
151
152
  ],
@@ -0,0 +1,25 @@
1
+ // is-aws-sdk-v3-used.ts
2
+
3
+ import { promises as fs } from 'node:fs';
4
+
5
+ export default async function isAwsSdkV3Used(): Promise<boolean> {
6
+ const isService = process.env['SERVICE_NAME'] !== undefined;
7
+ if (!isService) {
8
+ return false;
9
+ }
10
+
11
+ const packageJson = JSON.parse(await fs.readFile('package.json', 'utf-8')) as {
12
+ dependencies?: Record<string, string>;
13
+ service?: {
14
+ awsSdkV2?: boolean;
15
+ };
16
+ };
17
+ const dependencies = packageJson.dependencies ?? {};
18
+
19
+ const hasAwsSdkV3Dependency = Object.keys(dependencies).some((dependency) => dependency.startsWith('@aws-sdk/'));
20
+ const isAwsSdkV2Used =
21
+ Object.keys(dependencies).some((dependency) => dependency === '@checkdigit/aws') ||
22
+ packageJson.service?.awsSdkV2 === true;
23
+
24
+ return !isAwsSdkV2Used && hasAwsSdkV3Dependency;
25
+ }
@@ -0,0 +1,60 @@
1
+ // require-aws-config.ts
2
+
3
+ /*
4
+ * Copyright (c) 2021-2025 Check Digit, LLC
5
+ *
6
+ * This code is licensed under the MIT license (see LICENSE.txt for details).
7
+ */
8
+
9
+ import { AST_NODE_TYPES, ESLintUtils } from '@typescript-eslint/utils';
10
+ import getDocumentationUrl from './get-documentation-url.ts';
11
+
12
+ export const ruleId = 'require-aws-config';
13
+ export const MESSAGE_ID_REQUIRE_AWS_CONFIG = 'requireAwsConfig';
14
+ const createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
15
+
16
+ const rule: ESLintUtils.RuleModule<typeof MESSAGE_ID_REQUIRE_AWS_CONFIG> = createRule({
17
+ name: ruleId,
18
+ meta: {
19
+ type: 'problem',
20
+ docs: {
21
+ description: 'Require to apply @checkdigit/aws-config along with qualifier instead of using aws client directly.',
22
+ },
23
+ messages: {
24
+ [MESSAGE_ID_REQUIRE_AWS_CONFIG]:
25
+ 'Please apply @checkdigit/aws-config along with qualifier instead of using aws client {{awsClientName}} directly.',
26
+ },
27
+ schema: [],
28
+ },
29
+ defaultOptions: [],
30
+ create(context) {
31
+ const { isAwsSdkV3Used } = context.settings;
32
+ if (isAwsSdkV3Used !== true) {
33
+ return {};
34
+ }
35
+
36
+ return {
37
+ NewExpression(node) {
38
+ if (node.callee.type === AST_NODE_TYPES.Identifier && node.callee.name.endsWith('Client')) {
39
+ context.report({
40
+ node,
41
+ messageId: MESSAGE_ID_REQUIRE_AWS_CONFIG,
42
+ data: { awsClientName: node.callee.name },
43
+ });
44
+ } else if (node.callee.type === AST_NODE_TYPES.MemberExpression) {
45
+ // Handle `new AWS.DynamoDBClient()` style (MemberExpression)
46
+ const property = node.callee.property;
47
+ if (property.type === AST_NODE_TYPES.Identifier && property.name.endsWith('Client')) {
48
+ context.report({
49
+ node,
50
+ messageId: MESSAGE_ID_REQUIRE_AWS_CONFIG,
51
+ data: { awsClientName: property.name },
52
+ });
53
+ }
54
+ }
55
+ },
56
+ };
57
+ },
58
+ });
59
+
60
+ export default rule;
@@ -1,46 +0,0 @@
1
- // src/no-type-assertion-as.ts
2
- import { AST_NODE_TYPES, ESLintUtils } from "@typescript-eslint/utils";
3
- var ruleId = "no-as-type-assertion";
4
- var NO_AS_TYPE_ASSERTION = "NO_AS_TYPE_ASSERTION";
5
- var createRule = ESLintUtils.RuleCreator((name) => name);
6
- var rule = createRule({
7
- name: ruleId,
8
- meta: {
9
- type: "problem",
10
- docs: {
11
- description: "Disallow the use of `as` type assertions and suggest using `satisfies` instead"
12
- },
13
- schema: [],
14
- messages: {
15
- [NO_AS_TYPE_ASSERTION]: "Avoid using `as` type assertions. Use `satisfies` instead."
16
- }
17
- },
18
- defaultOptions: [],
19
- create(context) {
20
- const parserServices = ESLintUtils.getParserServices(context);
21
- const checker = parserServices.program.getTypeChecker();
22
- return {
23
- TSAsExpression(node) {
24
- if (node.parent.type === AST_NODE_TYPES.TSAsExpression) {
25
- return;
26
- }
27
- const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node.expression);
28
- const originalType = checker.getTypeAtLocation(tsNode);
29
- const targetType = checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node.typeAnnotation));
30
- if (!checker.isTypeAssignableTo(originalType, targetType)) {
31
- return;
32
- }
33
- context.report({
34
- node,
35
- messageId: NO_AS_TYPE_ASSERTION
36
- });
37
- }
38
- };
39
- }
40
- });
41
- var no_type_assertion_as_default = rule;
42
- export {
43
- no_type_assertion_as_default as default,
44
- ruleId
45
- };
46
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL25vLXR5cGUtYXNzZXJ0aW9uLWFzLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQVFBLFNBQVMsZ0JBQWdCLG1CQUE2QjtBQUUvQyxJQUFNLFNBQVM7QUFDdEIsSUFBTSx1QkFBdUI7QUFFN0IsSUFBTSxhQUFhLFlBQVksWUFBWSxDQUFDLFNBQVMsSUFBSTtBQUV6RCxJQUFNLE9BQTRELFdBQVc7QUFBQSxFQUMzRSxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsUUFBUSxDQUFDO0FBQUEsSUFDVCxVQUFVO0FBQUEsTUFDUixDQUFDLG9CQUFvQixHQUFHO0FBQUEsSUFDMUI7QUFBQSxFQUNGO0FBQUEsRUFDQSxnQkFBZ0IsQ0FBQztBQUFBLEVBQ2pCLE9BQU8sU0FBUztBQUNkLFVBQU0saUJBQWlCLFlBQVksa0JBQWtCLE9BQU87QUFDNUQsVUFBTSxVQUFVLGVBQWUsUUFBUSxlQUFlO0FBRXRELFdBQU87QUFBQSxNQUNMLGVBQWUsTUFBK0I7QUFDNUMsWUFBSSxLQUFLLE9BQU8sU0FBUyxlQUFlLGdCQUFnQjtBQUN0RDtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFNBQVMsZUFBZSxzQkFBc0IsSUFBSSxLQUFLLFVBQVU7QUFDdkUsY0FBTSxlQUFlLFFBQVEsa0JBQWtCLE1BQU07QUFDckQsY0FBTSxhQUFhLFFBQVEsa0JBQWtCLGVBQWUsc0JBQXNCLElBQUksS0FBSyxjQUFjLENBQUM7QUFHMUcsWUFBSSxDQUFDLFFBQVEsbUJBQW1CLGNBQWMsVUFBVSxHQUFHO0FBQ3pEO0FBQUEsUUFDRjtBQUVBLGdCQUFRLE9BQU87QUFBQSxVQUNiO0FBQUEsVUFDQSxXQUFXO0FBQUEsUUFDYixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUVELElBQU8sK0JBQVE7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,5 +0,0 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
2
- export declare const ruleId = "no-as-type-assertion";
3
- declare const NO_AS_TYPE_ASSERTION = "NO_AS_TYPE_ASSERTION";
4
- declare const rule: ESLintUtils.RuleModule<typeof NO_AS_TYPE_ASSERTION>;
5
- export default rule;
@@ -1,57 +0,0 @@
1
- // no-type-assertion-as.ts
2
-
3
- /*
4
- * Copyright (c) 2021-2025 Check Digit, LLC
5
- *
6
- * This code is licensed under the MIT license (see LICENSE.txt for details).
7
- */
8
-
9
- import { AST_NODE_TYPES, ESLintUtils, TSESTree } from '@typescript-eslint/utils';
10
-
11
- export const ruleId = 'no-as-type-assertion';
12
- const NO_AS_TYPE_ASSERTION = 'NO_AS_TYPE_ASSERTION';
13
-
14
- const createRule = ESLintUtils.RuleCreator((name) => name);
15
-
16
- const rule: ESLintUtils.RuleModule<typeof NO_AS_TYPE_ASSERTION> = createRule({
17
- name: ruleId,
18
- meta: {
19
- type: 'problem',
20
- docs: {
21
- description: 'Disallow the use of `as` type assertions and suggest using `satisfies` instead',
22
- },
23
- schema: [],
24
- messages: {
25
- [NO_AS_TYPE_ASSERTION]: 'Avoid using `as` type assertions. Use `satisfies` instead.',
26
- },
27
- },
28
- defaultOptions: [],
29
- create(context) {
30
- const parserServices = ESLintUtils.getParserServices(context);
31
- const checker = parserServices.program.getTypeChecker();
32
-
33
- return {
34
- TSAsExpression(node: TSESTree.TSAsExpression) {
35
- if (node.parent.type === AST_NODE_TYPES.TSAsExpression) {
36
- return;
37
- }
38
-
39
- const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node.expression);
40
- const originalType = checker.getTypeAtLocation(tsNode);
41
- const targetType = checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node.typeAnnotation));
42
-
43
- // Ensure the types are not assignable
44
- if (!checker.isTypeAssignableTo(originalType, targetType)) {
45
- return;
46
- }
47
-
48
- context.report({
49
- node,
50
- messageId: NO_AS_TYPE_ASSERTION,
51
- });
52
- },
53
- };
54
- },
55
- });
56
-
57
- export default rule;