@standards-kit/conform 0.1.0
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/artifactregistry-QQWBMEQN.js +38 -0
- package/dist/artifactregistry-QQWBMEQN.js.map +1 -0
- package/dist/chunk-J5S6GRGW.js +314 -0
- package/dist/chunk-J5S6GRGW.js.map +1 -0
- package/dist/chunk-KHO6NIAI.js +1367 -0
- package/dist/chunk-KHO6NIAI.js.map +1 -0
- package/dist/chunk-M7G73Q6P.js +662 -0
- package/dist/chunk-M7G73Q6P.js.map +1 -0
- package/dist/chunk-P7TIZJ4C.js +85 -0
- package/dist/chunk-P7TIZJ4C.js.map +1 -0
- package/dist/chunk-RXA4FO7L.js +279 -0
- package/dist/chunk-RXA4FO7L.js.map +1 -0
- package/dist/cli.js +7432 -0
- package/dist/cli.js.map +1 -0
- package/dist/cloudrun-O36R23SH.js +31 -0
- package/dist/cloudrun-O36R23SH.js.map +1 -0
- package/dist/cloudwatch-KSZ4A256.js +56 -0
- package/dist/cloudwatch-KSZ4A256.js.map +1 -0
- package/dist/dynamodb-5KVESCVJ.js +51 -0
- package/dist/dynamodb-5KVESCVJ.js.map +1 -0
- package/dist/ec2-HKPE6GZV.js +151 -0
- package/dist/ec2-HKPE6GZV.js.map +1 -0
- package/dist/ecs-OS3NJZTA.js +141 -0
- package/dist/ecs-OS3NJZTA.js.map +1 -0
- package/dist/elasticache-7TCRHYYM.js +151 -0
- package/dist/elasticache-7TCRHYYM.js.map +1 -0
- package/dist/elb-PEDLXW5R.js +151 -0
- package/dist/elb-PEDLXW5R.js.map +1 -0
- package/dist/generate-D4MFMOHP.js +28 -0
- package/dist/generate-D4MFMOHP.js.map +1 -0
- package/dist/iam-7H5HFWVQ.js +96 -0
- package/dist/iam-7H5HFWVQ.js.map +1 -0
- package/dist/iam-DJI64AGK.js +39 -0
- package/dist/iam-DJI64AGK.js.map +1 -0
- package/dist/index.js +7980 -0
- package/dist/index.js.map +1 -0
- package/dist/infra-UXM5XQX3.js +566 -0
- package/dist/infra-UXM5XQX3.js.map +1 -0
- package/dist/lambda-NFB5UILT.js +60 -0
- package/dist/lambda-NFB5UILT.js.map +1 -0
- package/dist/manifest-7AIL2FK2.js +23 -0
- package/dist/manifest-7AIL2FK2.js.map +1 -0
- package/dist/mcp-O5O7XVFG.js +204 -0
- package/dist/mcp-O5O7XVFG.js.map +1 -0
- package/dist/rds-KLG5O5SI.js +151 -0
- package/dist/rds-KLG5O5SI.js.map +1 -0
- package/dist/registry-V65CC7IN.js +15 -0
- package/dist/registry-V65CC7IN.js.map +1 -0
- package/dist/s3-2DH7PRVR.js +49 -0
- package/dist/s3-2DH7PRVR.js.map +1 -0
- package/dist/scan-EELS42BP.js +593 -0
- package/dist/scan-EELS42BP.js.map +1 -0
- package/dist/secretmanager-RDL62EFW.js +31 -0
- package/dist/secretmanager-RDL62EFW.js.map +1 -0
- package/dist/secretsmanager-MOOIHLAO.js +50 -0
- package/dist/secretsmanager-MOOIHLAO.js.map +1 -0
- package/dist/sns-Y36LVTWA.js +50 -0
- package/dist/sns-Y36LVTWA.js.map +1 -0
- package/dist/sqs-RRS3GRHK.js +61 -0
- package/dist/sqs-RRS3GRHK.js.map +1 -0
- package/dist/src-KZRTG3EU.js +45 -0
- package/dist/src-KZRTG3EU.js.map +1 -0
- package/dist/standards-RXK5G4IG.js +37 -0
- package/dist/standards-RXK5G4IG.js.map +1 -0
- package/dist/sync-RLYBGYNY.js +877 -0
- package/dist/sync-RLYBGYNY.js.map +1 -0
- package/dist/validate-AABLVQJS.js +327 -0
- package/dist/validate-AABLVQJS.js.map +1 -0
- package/dist/validator-6PL5I5EC.js +156 -0
- package/dist/validator-6PL5I5EC.js.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// src/infra/checkers/gcp/secretmanager.ts
|
|
2
|
+
import { SecretManagerServiceClient } from "@google-cloud/secret-manager";
|
|
3
|
+
var client = null;
|
|
4
|
+
function getClient() {
|
|
5
|
+
client ??= new SecretManagerServiceClient();
|
|
6
|
+
return client;
|
|
7
|
+
}
|
|
8
|
+
function result(raw, resourceId, exists, error) {
|
|
9
|
+
return { arn: raw, exists, error, service: "secretmanager", resourceType: "secrets", resourceId };
|
|
10
|
+
}
|
|
11
|
+
var SecretManagerChecker = {
|
|
12
|
+
async check(resource) {
|
|
13
|
+
const { project, resourceId, raw } = resource;
|
|
14
|
+
const secretName = `projects/${project}/secrets/${resourceId}`;
|
|
15
|
+
try {
|
|
16
|
+
const smClient = getClient();
|
|
17
|
+
await smClient.getSecret({ name: secretName });
|
|
18
|
+
return result(raw, resourceId, true);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
const err = error;
|
|
21
|
+
if (err.code === 5 || err.message?.includes("NOT_FOUND")) {
|
|
22
|
+
return result(raw, resourceId, false);
|
|
23
|
+
}
|
|
24
|
+
return result(raw, resourceId, false, err.message ?? "Unknown error");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export {
|
|
29
|
+
SecretManagerChecker
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=secretmanager-RDL62EFW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/infra/checkers/gcp/secretmanager.ts"],"sourcesContent":["/**\n * GCP Secret Manager resource checker\n */\n\nimport { SecretManagerServiceClient } from \"@google-cloud/secret-manager\";\n\nimport type { ParsedGcpResource, ResourceCheckResult } from \"../../types.js\";\nimport type { GcpResourceChecker } from \"../types.js\";\n\nlet client: SecretManagerServiceClient | null = null;\n\nfunction getClient(): SecretManagerServiceClient {\n client ??= new SecretManagerServiceClient();\n return client;\n}\n\nfunction result(\n raw: string,\n resourceId: string,\n exists: boolean,\n error?: string\n): ResourceCheckResult {\n return { arn: raw, exists, error, service: \"secretmanager\", resourceType: \"secrets\", resourceId };\n}\n\nexport const SecretManagerChecker: GcpResourceChecker = {\n async check(resource: ParsedGcpResource): Promise<ResourceCheckResult> {\n const { project, resourceId, raw } = resource;\n const secretName = `projects/${project}/secrets/${resourceId}`;\n\n try {\n const smClient = getClient();\n await smClient.getSecret({ name: secretName });\n return result(raw, resourceId, true);\n } catch (error) {\n const err = error as { code?: number; message?: string };\n if (err.code === 5 || err.message?.includes(\"NOT_FOUND\")) {\n return result(raw, resourceId, false);\n }\n return result(raw, resourceId, false, err.message ?? \"Unknown error\");\n }\n },\n};\n"],"mappings":";AAIA,SAAS,kCAAkC;AAK3C,IAAI,SAA4C;AAEhD,SAAS,YAAwC;AAC/C,aAAW,IAAI,2BAA2B;AAC1C,SAAO;AACT;AAEA,SAAS,OACP,KACA,YACA,QACA,OACqB;AACrB,SAAO,EAAE,KAAK,KAAK,QAAQ,OAAO,SAAS,iBAAiB,cAAc,WAAW,WAAW;AAClG;AAEO,IAAM,uBAA2C;AAAA,EACtD,MAAM,MAAM,UAA2D;AACrE,UAAM,EAAE,SAAS,YAAY,IAAI,IAAI;AACrC,UAAM,aAAa,YAAY,OAAO,YAAY,UAAU;AAE5D,QAAI;AACF,YAAM,WAAW,UAAU;AAC3B,YAAM,SAAS,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,aAAO,OAAO,KAAK,YAAY,IAAI;AAAA,IACrC,SAAS,OAAO;AACd,YAAM,MAAM;AACZ,UAAI,IAAI,SAAS,KAAK,IAAI,SAAS,SAAS,WAAW,GAAG;AACxD,eAAO,OAAO,KAAK,YAAY,KAAK;AAAA,MACtC;AACA,aAAO,OAAO,KAAK,YAAY,OAAO,IAAI,WAAW,eAAe;AAAA,IACtE;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// src/infra/checkers/secretsmanager.ts
|
|
2
|
+
import { DescribeSecretCommand, SecretsManagerClient } from "@aws-sdk/client-secrets-manager";
|
|
3
|
+
var clientCache = /* @__PURE__ */ new Map();
|
|
4
|
+
function getClient(region) {
|
|
5
|
+
let client = clientCache.get(region);
|
|
6
|
+
if (!client) {
|
|
7
|
+
client = new SecretsManagerClient({ region });
|
|
8
|
+
clientCache.set(region, client);
|
|
9
|
+
}
|
|
10
|
+
return client;
|
|
11
|
+
}
|
|
12
|
+
var SecretsManagerChecker = {
|
|
13
|
+
async check(arn) {
|
|
14
|
+
const { resourceId, region, raw } = arn;
|
|
15
|
+
const client = getClient(region);
|
|
16
|
+
try {
|
|
17
|
+
await client.send(new DescribeSecretCommand({ SecretId: raw }));
|
|
18
|
+
return {
|
|
19
|
+
arn: raw,
|
|
20
|
+
exists: true,
|
|
21
|
+
service: "secretsmanager",
|
|
22
|
+
resourceType: "secret",
|
|
23
|
+
resourceId
|
|
24
|
+
};
|
|
25
|
+
} catch (error) {
|
|
26
|
+
const err = error;
|
|
27
|
+
if (err.name === "ResourceNotFoundException") {
|
|
28
|
+
return {
|
|
29
|
+
arn: raw,
|
|
30
|
+
exists: false,
|
|
31
|
+
service: "secretsmanager",
|
|
32
|
+
resourceType: "secret",
|
|
33
|
+
resourceId
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
arn: raw,
|
|
38
|
+
exists: false,
|
|
39
|
+
error: err.message || "Unknown error",
|
|
40
|
+
service: "secretsmanager",
|
|
41
|
+
resourceType: "secret",
|
|
42
|
+
resourceId
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
SecretsManagerChecker
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=secretsmanager-MOOIHLAO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/infra/checkers/secretsmanager.ts"],"sourcesContent":["/**\n * Secrets Manager resource checker\n */\n\nimport { DescribeSecretCommand, SecretsManagerClient } from \"@aws-sdk/client-secrets-manager\";\n\nimport type { ParsedArn, ResourceCheckResult } from \"../types.js\";\nimport type { ResourceChecker } from \"./types.js\";\n\n/**\n * Cache of Secrets Manager clients by region\n */\nconst clientCache = new Map<string, SecretsManagerClient>();\n\n/**\n * Get or create a Secrets Manager client for a region\n */\nfunction getClient(region: string): SecretsManagerClient {\n let client = clientCache.get(region);\n if (!client) {\n client = new SecretsManagerClient({ region });\n clientCache.set(region, client);\n }\n return client;\n}\n\n/**\n * Secrets Manager secret checker\n */\nexport const SecretsManagerChecker: ResourceChecker = {\n async check(arn: ParsedArn): Promise<ResourceCheckResult> {\n const { resourceId, region, raw } = arn;\n\n const client = getClient(region);\n\n try {\n // Use the full ARN to get the secret\n await client.send(new DescribeSecretCommand({ SecretId: raw }));\n\n return {\n arn: raw,\n exists: true,\n service: \"secretsmanager\",\n resourceType: \"secret\",\n resourceId,\n };\n } catch (error) {\n const err = error as Error & { name?: string };\n\n if (err.name === \"ResourceNotFoundException\") {\n return {\n arn: raw,\n exists: false,\n service: \"secretsmanager\",\n resourceType: \"secret\",\n resourceId,\n };\n }\n\n return {\n arn: raw,\n exists: false,\n error: err.message || \"Unknown error\",\n service: \"secretsmanager\",\n resourceType: \"secret\",\n resourceId,\n };\n }\n },\n};\n"],"mappings":";AAIA,SAAS,uBAAuB,4BAA4B;AAQ5D,IAAM,cAAc,oBAAI,IAAkC;AAK1D,SAAS,UAAU,QAAsC;AACvD,MAAI,SAAS,YAAY,IAAI,MAAM;AACnC,MAAI,CAAC,QAAQ;AACX,aAAS,IAAI,qBAAqB,EAAE,OAAO,CAAC;AAC5C,gBAAY,IAAI,QAAQ,MAAM;AAAA,EAChC;AACA,SAAO;AACT;AAKO,IAAM,wBAAyC;AAAA,EACpD,MAAM,MAAM,KAA8C;AACxD,UAAM,EAAE,YAAY,QAAQ,IAAI,IAAI;AAEpC,UAAM,SAAS,UAAU,MAAM;AAE/B,QAAI;AAEF,YAAM,OAAO,KAAK,IAAI,sBAAsB,EAAE,UAAU,IAAI,CAAC,CAAC;AAE9D,aAAO;AAAA,QACL,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,YAAM,MAAM;AAEZ,UAAI,IAAI,SAAS,6BAA6B;AAC5C,eAAO;AAAA,UACL,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,cAAc;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,QACL,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,OAAO,IAAI,WAAW;AAAA,QACtB,SAAS;AAAA,QACT,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// src/infra/checkers/sns.ts
|
|
2
|
+
import { GetTopicAttributesCommand, SNSClient } from "@aws-sdk/client-sns";
|
|
3
|
+
var clientCache = /* @__PURE__ */ new Map();
|
|
4
|
+
function getClient(region) {
|
|
5
|
+
let client = clientCache.get(region);
|
|
6
|
+
if (!client) {
|
|
7
|
+
client = new SNSClient({ region });
|
|
8
|
+
clientCache.set(region, client);
|
|
9
|
+
}
|
|
10
|
+
return client;
|
|
11
|
+
}
|
|
12
|
+
var SNSChecker = {
|
|
13
|
+
async check(arn) {
|
|
14
|
+
const { resourceId, region, raw } = arn;
|
|
15
|
+
const client = getClient(region);
|
|
16
|
+
try {
|
|
17
|
+
await client.send(new GetTopicAttributesCommand({ TopicArn: raw }));
|
|
18
|
+
return {
|
|
19
|
+
arn: raw,
|
|
20
|
+
exists: true,
|
|
21
|
+
service: "sns",
|
|
22
|
+
resourceType: "topic",
|
|
23
|
+
resourceId
|
|
24
|
+
};
|
|
25
|
+
} catch (error) {
|
|
26
|
+
const err = error;
|
|
27
|
+
if (err.name === "NotFoundException" || err.name === "NotFound") {
|
|
28
|
+
return {
|
|
29
|
+
arn: raw,
|
|
30
|
+
exists: false,
|
|
31
|
+
service: "sns",
|
|
32
|
+
resourceType: "topic",
|
|
33
|
+
resourceId
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
arn: raw,
|
|
38
|
+
exists: false,
|
|
39
|
+
error: err.message || "Unknown error",
|
|
40
|
+
service: "sns",
|
|
41
|
+
resourceType: "topic",
|
|
42
|
+
resourceId
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
SNSChecker
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=sns-Y36LVTWA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/infra/checkers/sns.ts"],"sourcesContent":["/**\n * SNS resource checker\n */\n\nimport { GetTopicAttributesCommand, SNSClient } from \"@aws-sdk/client-sns\";\n\nimport type { ParsedArn, ResourceCheckResult } from \"../types.js\";\nimport type { ResourceChecker } from \"./types.js\";\n\n/**\n * Cache of SNS clients by region\n */\nconst clientCache = new Map<string, SNSClient>();\n\n/**\n * Get or create an SNS client for a region\n */\nfunction getClient(region: string): SNSClient {\n let client = clientCache.get(region);\n if (!client) {\n client = new SNSClient({ region });\n clientCache.set(region, client);\n }\n return client;\n}\n\n/**\n * SNS topic checker\n */\nexport const SNSChecker: ResourceChecker = {\n async check(arn: ParsedArn): Promise<ResourceCheckResult> {\n const { resourceId, region, raw } = arn;\n\n const client = getClient(region);\n\n try {\n // Use the full ARN to get topic attributes\n await client.send(new GetTopicAttributesCommand({ TopicArn: raw }));\n\n return {\n arn: raw,\n exists: true,\n service: \"sns\",\n resourceType: \"topic\",\n resourceId,\n };\n } catch (error) {\n const err = error as Error & { name?: string };\n\n if (err.name === \"NotFoundException\" || err.name === \"NotFound\") {\n return {\n arn: raw,\n exists: false,\n service: \"sns\",\n resourceType: \"topic\",\n resourceId,\n };\n }\n\n return {\n arn: raw,\n exists: false,\n error: err.message || \"Unknown error\",\n service: \"sns\",\n resourceType: \"topic\",\n resourceId,\n };\n }\n },\n};\n"],"mappings":";AAIA,SAAS,2BAA2B,iBAAiB;AAQrD,IAAM,cAAc,oBAAI,IAAuB;AAK/C,SAAS,UAAU,QAA2B;AAC5C,MAAI,SAAS,YAAY,IAAI,MAAM;AACnC,MAAI,CAAC,QAAQ;AACX,aAAS,IAAI,UAAU,EAAE,OAAO,CAAC;AACjC,gBAAY,IAAI,QAAQ,MAAM;AAAA,EAChC;AACA,SAAO;AACT;AAKO,IAAM,aAA8B;AAAA,EACzC,MAAM,MAAM,KAA8C;AACxD,UAAM,EAAE,YAAY,QAAQ,IAAI,IAAI;AAEpC,UAAM,SAAS,UAAU,MAAM;AAE/B,QAAI;AAEF,YAAM,OAAO,KAAK,IAAI,0BAA0B,EAAE,UAAU,IAAI,CAAC,CAAC;AAElE,aAAO;AAAA,QACL,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,YAAM,MAAM;AAEZ,UAAI,IAAI,SAAS,uBAAuB,IAAI,SAAS,YAAY;AAC/D,eAAO;AAAA,UACL,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,cAAc;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,QACL,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,OAAO,IAAI,WAAW;AAAA,QACtB,SAAS;AAAA,QACT,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// src/infra/checkers/sqs.ts
|
|
2
|
+
import { GetQueueAttributesCommand, GetQueueUrlCommand, SQSClient } from "@aws-sdk/client-sqs";
|
|
3
|
+
var clientCache = /* @__PURE__ */ new Map();
|
|
4
|
+
function getClient(region) {
|
|
5
|
+
let client = clientCache.get(region);
|
|
6
|
+
if (!client) {
|
|
7
|
+
client = new SQSClient({ region });
|
|
8
|
+
clientCache.set(region, client);
|
|
9
|
+
}
|
|
10
|
+
return client;
|
|
11
|
+
}
|
|
12
|
+
var SQSChecker = {
|
|
13
|
+
async check(arn) {
|
|
14
|
+
const { resourceId, region, accountId, raw } = arn;
|
|
15
|
+
const client = getClient(region);
|
|
16
|
+
try {
|
|
17
|
+
const urlResponse = await client.send(
|
|
18
|
+
new GetQueueUrlCommand({
|
|
19
|
+
QueueName: resourceId,
|
|
20
|
+
QueueOwnerAWSAccountId: accountId || void 0
|
|
21
|
+
})
|
|
22
|
+
);
|
|
23
|
+
await client.send(
|
|
24
|
+
new GetQueueAttributesCommand({
|
|
25
|
+
QueueUrl: urlResponse.QueueUrl,
|
|
26
|
+
AttributeNames: ["QueueArn"]
|
|
27
|
+
})
|
|
28
|
+
);
|
|
29
|
+
return {
|
|
30
|
+
arn: raw,
|
|
31
|
+
exists: true,
|
|
32
|
+
service: "sqs",
|
|
33
|
+
resourceType: "queue",
|
|
34
|
+
resourceId
|
|
35
|
+
};
|
|
36
|
+
} catch (error) {
|
|
37
|
+
const err = error;
|
|
38
|
+
if (err.name === "QueueDoesNotExist" || err.name === "AWS.SimpleQueueService.NonExistentQueue") {
|
|
39
|
+
return {
|
|
40
|
+
arn: raw,
|
|
41
|
+
exists: false,
|
|
42
|
+
service: "sqs",
|
|
43
|
+
resourceType: "queue",
|
|
44
|
+
resourceId
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
arn: raw,
|
|
49
|
+
exists: false,
|
|
50
|
+
error: err.message || "Unknown error",
|
|
51
|
+
service: "sqs",
|
|
52
|
+
resourceType: "queue",
|
|
53
|
+
resourceId
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
export {
|
|
59
|
+
SQSChecker
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=sqs-RRS3GRHK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/infra/checkers/sqs.ts"],"sourcesContent":["/**\n * SQS resource checker\n */\n\nimport { GetQueueAttributesCommand, GetQueueUrlCommand, SQSClient } from \"@aws-sdk/client-sqs\";\n\nimport type { ParsedArn, ResourceCheckResult } from \"../types.js\";\nimport type { ResourceChecker } from \"./types.js\";\n\n/**\n * Cache of SQS clients by region\n */\nconst clientCache = new Map<string, SQSClient>();\n\n/**\n * Get or create an SQS client for a region\n */\nfunction getClient(region: string): SQSClient {\n let client = clientCache.get(region);\n if (!client) {\n client = new SQSClient({ region });\n clientCache.set(region, client);\n }\n return client;\n}\n\n/**\n * SQS queue checker\n */\nexport const SQSChecker: ResourceChecker = {\n async check(arn: ParsedArn): Promise<ResourceCheckResult> {\n const { resourceId, region, accountId, raw } = arn;\n\n const client = getClient(region);\n\n try {\n // First, get the queue URL from the queue name and account ID\n const urlResponse = await client.send(\n new GetQueueUrlCommand({\n QueueName: resourceId,\n QueueOwnerAWSAccountId: accountId || undefined,\n })\n );\n\n // Then verify the queue exists by getting its attributes\n await client.send(\n new GetQueueAttributesCommand({\n QueueUrl: urlResponse.QueueUrl,\n AttributeNames: [\"QueueArn\"],\n })\n );\n\n return {\n arn: raw,\n exists: true,\n service: \"sqs\",\n resourceType: \"queue\",\n resourceId,\n };\n } catch (error) {\n const err = error as Error & { name?: string };\n\n if (\n err.name === \"QueueDoesNotExist\" ||\n err.name === \"AWS.SimpleQueueService.NonExistentQueue\"\n ) {\n return {\n arn: raw,\n exists: false,\n service: \"sqs\",\n resourceType: \"queue\",\n resourceId,\n };\n }\n\n return {\n arn: raw,\n exists: false,\n error: err.message || \"Unknown error\",\n service: \"sqs\",\n resourceType: \"queue\",\n resourceId,\n };\n }\n },\n};\n"],"mappings":";AAIA,SAAS,2BAA2B,oBAAoB,iBAAiB;AAQzE,IAAM,cAAc,oBAAI,IAAuB;AAK/C,SAAS,UAAU,QAA2B;AAC5C,MAAI,SAAS,YAAY,IAAI,MAAM;AACnC,MAAI,CAAC,QAAQ;AACX,aAAS,IAAI,UAAU,EAAE,OAAO,CAAC;AACjC,gBAAY,IAAI,QAAQ,MAAM;AAAA,EAChC;AACA,SAAO;AACT;AAKO,IAAM,aAA8B;AAAA,EACzC,MAAM,MAAM,KAA8C;AACxD,UAAM,EAAE,YAAY,QAAQ,WAAW,IAAI,IAAI;AAE/C,UAAM,SAAS,UAAU,MAAM;AAE/B,QAAI;AAEF,YAAM,cAAc,MAAM,OAAO;AAAA,QAC/B,IAAI,mBAAmB;AAAA,UACrB,WAAW;AAAA,UACX,wBAAwB,aAAa;AAAA,QACvC,CAAC;AAAA,MACH;AAGA,YAAM,OAAO;AAAA,QACX,IAAI,0BAA0B;AAAA,UAC5B,UAAU,YAAY;AAAA,UACtB,gBAAgB,CAAC,UAAU;AAAA,QAC7B,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,QACL,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,YAAM,MAAM;AAEZ,UACE,IAAI,SAAS,uBACb,IAAI,SAAS,2CACb;AACA,eAAO;AAAA,UACL,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,cAAc;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,QACL,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,OAAO,IAAI,WAAW;AAAA,QACtB,SAAS;AAAA,QACT,cAAc;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CheckResultBuilder,
|
|
3
|
+
DomainResultBuilder,
|
|
4
|
+
ExitCode,
|
|
5
|
+
ViolationBuilder
|
|
6
|
+
} from "./chunk-P7TIZJ4C.js";
|
|
7
|
+
import {
|
|
8
|
+
CONFIG_FILE_NAME,
|
|
9
|
+
ConfigError,
|
|
10
|
+
DEFAULT_FORBIDDEN_FILES_IGNORE,
|
|
11
|
+
configSchema,
|
|
12
|
+
defaultConfig,
|
|
13
|
+
fetchRegistry,
|
|
14
|
+
findConfigFile,
|
|
15
|
+
getProjectRoot,
|
|
16
|
+
loadConfig,
|
|
17
|
+
loadConfigAsync,
|
|
18
|
+
loadConfigWithOverrides,
|
|
19
|
+
loadRuleset,
|
|
20
|
+
mergeConfigs,
|
|
21
|
+
parseRegistryUrl,
|
|
22
|
+
resolveExtends
|
|
23
|
+
} from "./chunk-KHO6NIAI.js";
|
|
24
|
+
export {
|
|
25
|
+
CONFIG_FILE_NAME,
|
|
26
|
+
CheckResultBuilder,
|
|
27
|
+
ConfigError,
|
|
28
|
+
DEFAULT_FORBIDDEN_FILES_IGNORE,
|
|
29
|
+
DomainResultBuilder,
|
|
30
|
+
ExitCode,
|
|
31
|
+
ViolationBuilder,
|
|
32
|
+
configSchema,
|
|
33
|
+
defaultConfig,
|
|
34
|
+
fetchRegistry,
|
|
35
|
+
findConfigFile,
|
|
36
|
+
getProjectRoot,
|
|
37
|
+
loadConfig,
|
|
38
|
+
loadConfigAsync,
|
|
39
|
+
loadConfigWithOverrides,
|
|
40
|
+
loadRuleset,
|
|
41
|
+
mergeConfigs,
|
|
42
|
+
parseRegistryUrl,
|
|
43
|
+
resolveExtends
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=src-KZRTG3EU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
StandardsError,
|
|
3
|
+
composeGuidelines,
|
|
4
|
+
fetchStandardsRepo,
|
|
5
|
+
fetchStandardsRepoFromSource,
|
|
6
|
+
frontmatterSchema,
|
|
7
|
+
getGuidelinesDir,
|
|
8
|
+
getRulesetsDir,
|
|
9
|
+
listRulesets,
|
|
10
|
+
loadAllGuidelines,
|
|
11
|
+
loadGuideline,
|
|
12
|
+
loadRuleset,
|
|
13
|
+
matchGuidelines,
|
|
14
|
+
parseContext,
|
|
15
|
+
parseGuideline,
|
|
16
|
+
scoreGuideline,
|
|
17
|
+
toListItems
|
|
18
|
+
} from "./chunk-RXA4FO7L.js";
|
|
19
|
+
export {
|
|
20
|
+
StandardsError,
|
|
21
|
+
composeGuidelines,
|
|
22
|
+
fetchStandardsRepo,
|
|
23
|
+
fetchStandardsRepoFromSource,
|
|
24
|
+
frontmatterSchema,
|
|
25
|
+
getGuidelinesDir,
|
|
26
|
+
getRulesetsDir,
|
|
27
|
+
listRulesets,
|
|
28
|
+
loadAllGuidelines,
|
|
29
|
+
loadGuideline,
|
|
30
|
+
loadRuleset,
|
|
31
|
+
matchGuidelines,
|
|
32
|
+
parseContext,
|
|
33
|
+
parseGuideline,
|
|
34
|
+
scoreGuideline,
|
|
35
|
+
toListItems
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=standards-RXK5G4IG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|