@go-to-k/cdkd 0.296.4 → 0.296.6

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.
Files changed (28) hide show
  1. package/dist/{asg-provider-BSdCtfW_.js → asg-provider-C1TlpooI.js} +4 -4
  2. package/dist/{asg-provider-BSdCtfW_.js.map → asg-provider-C1TlpooI.js.map} +1 -1
  3. package/dist/cli.js +2 -2
  4. package/dist/{deploy-engine-HCnNEpdp.js → deploy-engine-BPcBCyUE.js} +315 -140
  5. package/dist/deploy-engine-BPcBCyUE.js.map +1 -0
  6. package/dist/{iam-policy-targets-DSDSdxXz.js → iam-policy-targets-td1X_kKN.js} +2 -2
  7. package/dist/{iam-policy-targets-DSDSdxXz.js.map → iam-policy-targets-td1X_kKN.js.map} +1 -1
  8. package/dist/{iam-role-provider-Be0s-qBx.js → iam-role-provider-CVIClaZV.js} +4 -4
  9. package/dist/{iam-role-provider-Be0s-qBx.js.map → iam-role-provider-CVIClaZV.js.map} +1 -1
  10. package/dist/index.d.ts +9 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +4 -4
  13. package/dist/{logger-Dvc7ddKe.js → logger-DAaB7GFO.js} +2 -2
  14. package/dist/{logger-Dvc7ddKe.js.map → logger-DAaB7GFO.js.map} +1 -1
  15. package/dist/{neptune-provider-ChV-yRZP.js → neptune-provider-CvY6ekmg.js} +4 -4
  16. package/dist/{neptune-provider-ChV-yRZP.js.map → neptune-provider-CvY6ekmg.js.map} +1 -1
  17. package/dist/{program-CwSdIG3b.js → program-CAlg2KEF.js} +28 -23
  18. package/dist/program-CAlg2KEF.js.map +1 -0
  19. package/dist/{provider-classes-DXBYMcmp.js → provider-classes-oRTqcSCp.js} +287 -17
  20. package/dist/provider-classes-oRTqcSCp.js.map +1 -0
  21. package/dist/{rds-provider-DzPUon_U.js → rds-provider-DeGFzOUc.js} +4 -4
  22. package/dist/{rds-provider-DzPUon_U.js.map → rds-provider-DeGFzOUc.js.map} +1 -1
  23. package/dist/{version-D557_3cB.js → version-BgqcIKdb.js} +2 -2
  24. package/dist/{version-D557_3cB.js.map → version-BgqcIKdb.js.map} +1 -1
  25. package/package.json +1 -1
  26. package/dist/deploy-engine-HCnNEpdp.js.map +0 -1
  27. package/dist/program-CwSdIG3b.js.map +0 -1
  28. package/dist/provider-classes-DXBYMcmp.js.map +0 -1
@@ -1,13 +1,13 @@
1
1
  import { r as getAwsClients } from "./aws-clients-CnmtbrxD.js";
2
- import { A as displaySafe, F as safeMsg, M as isPasteableIdent, P as plainIdentOr, g as generateResourceNameWithFallback, h as generateResourceName, j as displayStackName, k as displayIdent, n as getLogger, v as getCurrentStackName, w as SECRET_REF_MAX_CODE_POINTS } from "./logger-Dvc7ddKe.js";
3
- import { $ as compositeIdFormatMessage, $n as markRedactedCause, A as isTerminalDeleteFailure, B as WITHHELD_AWS_COMMAND, C as refusalTypeShown, D as ProtectionFlipRegistry, Dn as shellQuote, H as pasteableAwsCommand, Ht as AccountIdUnavailableError, J as isInterruptedWaitError, Jn as safeStringify, Kn as describeAwsFailure, L as userPoolProtectionSite, Ln as markNameCollision, Lt as withPasteableAwsProfile, M as observeThenDisableProtection, Mt as injectiveKey, N as protectionFlipKey, Nt as injectiveKeyPrefix, On as withheldTargetClause, P as rdsFamilyProtectionSite, Q as canonicalizeRoute53QueryName, Qn as markNonRetryable, Rn as markReplayMayCollide, Rt as ambientClientDefaults, S as quotedRemedyLogicalId, Sn as pasteableCommand, T as resolveExplicitPhysicalId, U as protectedReplacementAdvice, Un as isRetryableTransientError, V as isAwsCliLiteral, Vn as isAmbiguousOutcomeError, Vt as credentialFingerprint, W as renderDisableCommand, Wn as isTransientServerError, Wt as CdkdError, X as ElapsedBudgetRegistry, Y as startInterruptWatch, Yn as THROTTLING_ERROR_NAMES, Zn as isThrottlingError, _ as VALUE_NOT_SHOWN, a as onlySecretDerived, at as segmentAfterAnchor, b as isQuotableImportValue, bn as hasClauseBreak, bt as markAuxiliaryFailure, c as recordedPrincipalsRepair, ct as createMaskedRetryLogger, dt as maskerOrIdentity, er as wrapMaskedAwsError, et as compositeIdSeparatorRefusal, ft as withDerivedNameMasks, g as assertRegionMatch, h as RESOURCE_NOT_FOUND, ht as clearCreatedBeforeFailure, i as holdsSecretDerivedEntry, in as ProvisioningError, j as logGroupProtectionSite, k as deleteWithProtectionCompensation, lt as isSecretDerivedValue, nt as logicalIdShown, o as readPrincipalLists, on as ResourceUpdateNotSupportedError, ot as stateOrphanRecordRemedy, p as withRemovalDefaults, qn as isAwsAuthoredFailure, r as SECRET_DERIVED_READ_LIVE, rt as packCompositeId, st as createMaskedLogSinks, tt as compositeIdSkipResult, u as clearOnUpdateRemoval, ut as maskDeep, v as isPlainImportJson, w as remedyLogicalId, wn as plainOrDescribed, x as normalizeAwsTagsToCfn, xn as isInertUnquoted, xt as markCreatedBeforeFailure, y as isPlainImportValue, yn as commandHole, z as UNNAMEABLE_ID_CLAUSE, zt as ambientCredentialConfig } from "./iam-policy-targets-DSDSdxXz.js";
2
+ import { A as displayIdent, F as plainIdentOr, I as safeMsg, M as displayStackName, N as isPasteableIdent, T as SECRET_REF_MAX_CODE_POINTS, _ as generateResourceNameWithFallback, g as generateResourceName, j as displaySafe, n as getLogger, y as getCurrentStackName } from "./logger-DAaB7GFO.js";
3
+ import { $ as compositeIdFormatMessage, $n as markRedactedCause, A as isTerminalDeleteFailure, B as WITHHELD_AWS_COMMAND, C as refusalTypeShown, D as ProtectionFlipRegistry, Dn as shellQuote, H as pasteableAwsCommand, Ht as AccountIdUnavailableError, J as isInterruptedWaitError, Jn as safeStringify, Kn as describeAwsFailure, L as userPoolProtectionSite, Ln as markNameCollision, Lt as withPasteableAwsProfile, M as observeThenDisableProtection, Mt as injectiveKey, N as protectionFlipKey, Nt as injectiveKeyPrefix, On as withheldTargetClause, P as rdsFamilyProtectionSite, Q as canonicalizeRoute53QueryName, Qn as markNonRetryable, Rn as markReplayMayCollide, Rt as ambientClientDefaults, S as quotedRemedyLogicalId, Sn as pasteableCommand, T as resolveExplicitPhysicalId, U as protectedReplacementAdvice, Un as isRetryableTransientError, V as isAwsCliLiteral, Vn as isAmbiguousOutcomeError, Vt as credentialFingerprint, W as renderDisableCommand, Wn as isTransientServerError, Wt as CdkdError, X as ElapsedBudgetRegistry, Xn as isMarkedNonRetryable, Y as startInterruptWatch, Yn as THROTTLING_ERROR_NAMES, Zn as isThrottlingError, _ as VALUE_NOT_SHOWN, a as onlySecretDerived, at as segmentAfterAnchor, b as isQuotableImportValue, bn as hasClauseBreak, bt as markAuxiliaryFailure, c as recordedPrincipalsRepair, ct as createMaskedRetryLogger, dt as maskerOrIdentity, er as wrapMaskedAwsError, et as compositeIdSeparatorRefusal, ft as withDerivedNameMasks, g as assertRegionMatch, h as RESOURCE_NOT_FOUND, ht as clearCreatedBeforeFailure, i as holdsSecretDerivedEntry, in as ProvisioningError, j as logGroupProtectionSite, k as deleteWithProtectionCompensation, lt as isSecretDerivedValue, nt as logicalIdShown, o as readPrincipalLists, on as ResourceUpdateNotSupportedError, ot as stateOrphanRecordRemedy, p as withRemovalDefaults, qn as isAwsAuthoredFailure, r as SECRET_DERIVED_READ_LIVE, rt as packCompositeId, st as createMaskedLogSinks, tt as compositeIdSkipResult, u as clearOnUpdateRemoval, ut as maskDeep, v as isPlainImportJson, w as remedyLogicalId, wn as plainOrDescribed, x as normalizeAwsTagsToCfn, xn as isInertUnquoted, xt as markCreatedBeforeFailure, y as isPlainImportValue, yn as commandHole, z as UNNAMEABLE_ID_CLAUSE, zt as ambientCredentialConfig } from "./iam-policy-targets-td1X_kKN.js";
4
4
  import { s as ambientRegion } from "./aws-client-defaults-D0q0z4dG.js";
5
- import { $a as markSameGenerationBag, A as resolveDynamoDbDeleteBudgetClock, An as readTagList, Ar as getAccountInfo, B as getPriorAttempts, Bo as stringifyValue, Br as parseWebACLArn, Ca as readConfigString, Ci as refuseMalformedNestedChildOutputs, Cr as s3BucketDomainName, Ct as awaitInFlightSibling, D as beginDeleteWait, Da as requireConfigString, Dn as DBPROXY_TAGS_WHAT, E as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Ea as requireConfigObject, En as acquireIdempotencyToken, Er as s3BucketWebsiteUrl, F as waitForIndexesSettled, Fn as stringifyIfAssigned, Go as rewriteTemplateAssetReferences, Gs as decodeListingKey, Ha as hasMaskableValues, I as ECR_AUTO_DELETE_IMAGES_TAG, It as getCurrentProducerRegions, Js as canonicalizeRegion, Jt as isRedactedRecordedValue, Kn as unchangedBehindSecretReference, L as S3_AUTO_DELETE_OBJECTS_TAG, M as DELETE_INDEX_WAIT_PROCEED_NOTE, Ma as canonicalLambdaFunctionName, Mn as tagMapAsList, N as INDEX_SETTLE_POLL_INTERVAL_MS, Na as lambdaFunctionNameForMask, Nn as tagPlanWarning, O as compensateRemovedDeletionProtection, On as DBPROXY_TAG_OPTIONS, P as deleteTableWithIndexBusyRetry, Pa as sameLambdaFunctionAddress, Pn as definedAttributes, Qn as markWaitAbandoned, R as hasCdkAutoDeleteTag, Sa as configStringRefusal, Sn as earliestDefined, Sr as s3BucketArn, T as DynamoDBGlobalTableProvider, Ta as requireConfigArray, Tr as s3BucketRegionalDomainName, Tt as getStackRecords, Ui as refuseMalformedResourcesForDestroy, Ur as passedParameterClassesOf, V as markRefusedBeforeApplying, Vn as getCurrentResourceSecrets, Wn as slowCcOperationTimeoutMs, Xn as withIndeterminateGuard, Xt as redactedDeleteAddressSkip, Yn as deleteSkipReason, Ys as derivePartitionAndUrlSuffix, Yt as redactedDeleteAddressFields, Zn as isWaitAbandonedError, _a as toFiniteNumber, a as findNestedTemplateTreeDefect, ac as describeFileReadFailure, ba as configBooleanRefusal, bt as withNestedStackContext, c as renderNestedTemplateTreeDefect, cc as resolveAssemblyPath, co as carriesSecretMask, eo as redactSecretsForState, er as ec2InstanceProtectionSite, ga as toCfnInteger, gt as revertNestedChildFromJournal, ha as isWarmThroughputDecrease, ia as withoutSilentDropProperties, io as dynamicReferenceTokens, ir as reEnableInstanceApiTermination, j as resolveDynamoDbDeleteBudgetMs, ja as withRetry, jn as refuseMalformedDesiredTags, k as deleteBudgetKey, kn as planTagDiff, ma as coerceWarmThroughput$1, na as findSilentDropProperties, no as recoverMaskedOutput, nr as observeThenDisableInstanceApiTermination, o as isAbsoluteAssetPath, oc as displayAssemblyPath, pa as WARM_THROUGHPUT_MEMBERS, pt as getNestedRevertRun, qt as REDACTED_DELETE_ADDRESS_SKIP_REASON, rr as reDisableInstanceApiTermination, s as listNestedTemplateRows, sc as renderAssemblyPathEscape, t as DeployEngine, tr as isTerminationProtectionPropagationError, va as coerceCfnBoolean, wa as replayWarn, wn as reserveStackCreateToken, wr as s3BucketDualStackDomainName, xa as configIntegerRefusal, xr as isSettledInstanceState, ya as coerceCfnInteger, yt as getCurrentNestedStackContext, z as isTruthyCfnBoolean } from "./deploy-engine-HCnNEpdp.js";
6
- import { n as collectInlinePolicyNamesManagedBySiblings, t as IAMRoleProvider } from "./iam-role-provider-Be0s-qBx.js";
7
- import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-CwSdIG3b.js";
8
- import { RDSProvider } from "./rds-provider-DzPUon_U.js";
9
- import { NeptuneProvider } from "./neptune-provider-ChV-yRZP.js";
10
- import { ASGProvider } from "./asg-provider-BSdCtfW_.js";
5
+ import { $n as deleteSkipReason, $s as derivePartitionAndUrlSuffix, A as resolveDynamoDbDeleteBudgetClock, Aa as requireConfigObject, An as acquireIdempotencyToken, Ar as s3BucketWebsiteUrl, B as getPriorAttempts, Ca as coerceCfnInteger, Ct as getStackRecords, D as beginDeleteWait, Da as readConfigString, Di as refuseMalformedNestedChildOutputs, Dr as s3BucketDomainName, E as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Ea as configStringRefusal, En as earliestDefined, Er as s3BucketArn, F as waitForIndexesSettled, Fa as withRetry, Fn as refuseMalformedDesiredTags, Gn as getCurrentResourceSecrets, I as ECR_AUTO_DELETE_IMAGES_TAG, Ia as canonicalLambdaFunctionName, In as tagMapAsList, It as REDACTED_DELETE_ADDRESS_SKIP_REASON, Jn as slowCcOperationTimeoutMs, Ka as hasMaskableValues, L as S3_AUTO_DELETE_OBJECTS_TAG, La as lambdaFunctionNameForMask, Ln as tagPlanWarning, Lt as isRedactedRecordedValue, M as DELETE_INDEX_WAIT_PROCEED_NOTE, Mn as DBPROXY_TAG_OPTIONS, N as INDEX_SETTLE_POLL_INTERVAL_MS, Nn as planTagDiff, O as compensateRemovedDeletionProtection, Oa as replayWarn, On as reserveStackCreateToken, Or as s3BucketDualStackDomainName, P as deleteTableWithIndexBusyRetry, Pn as readTagList, Pr as getAccountInfo, Pt as getCurrentProducerRegions, Qs as canonicalizeRegion, R as hasCdkAutoDeleteTag, Ra as sameLambdaFunctionAddress, Rn as definedAttributes, Rt as redactedDeleteAddressFields, Sa as coerceCfnBoolean, T as DynamoDBGlobalTableProvider, Ta as configIntegerRefusal, Tr as isSettledInstanceState, V as markRefusedBeforeApplying, Wo as stringifyValue, Wr as parseWebACLArn, Xn as unchangedBehindSecretReference, Yo as rewriteTemplateAssetReferences, Ys as decodeListingKey, _a as WARM_THROUGHPUT_MEMBERS, _t as getCurrentNestedStackContext, a as findNestedTemplateTreeDefect, ar as isTerminationProtectionPropagationError, ba as toCfnInteger, c as renderNestedTemplateTreeDefect, ca as withoutSilentDropProperties, co as dynamicReferenceTokens, cr as reEnableInstanceApiTermination, dc as renderAssemblyPathEscape, dt as getNestedRevertRun, er as withIndeterminateGuard, fc as resolveAssemblyPath, fo as carriesSecretMask, io as redactSecretsForState, ir as ec2InstanceProtectionSite, j as resolveDynamoDbDeleteBudgetMs, ja as requireConfigString, jn as DBPROXY_TAGS_WHAT, k as deleteBudgetKey, ka as requireConfigArray, kr as s3BucketRegionalDomainName, lc as describeFileReadFailure, mt as revertNestedChildFromJournal, nr as markWaitAbandoned, o as isAbsoluteAssetPath, oa as findSilentDropProperties, oo as recoverMaskedOutput, or as observeThenDisableInstanceApiTermination, qi as refuseMalformedResourcesForDestroy, qr as passedParameterClassesOf, ro as markSameGenerationBag, s as listNestedTemplateRows, sr as reDisableInstanceApiTermination, t as DeployEngine, tr as isWaitAbandonedError, uc as displayAssemblyPath, va as coerceWarmThroughput$1, vt as withNestedStackContext, wa as configBooleanRefusal, xa as toFiniteNumber, xt as awaitInFlightSibling, ya as isWarmThroughputDecrease, z as isTruthyCfnBoolean, zn as stringifyIfAssigned, zt as redactedDeleteAddressSkip } from "./deploy-engine-BPcBCyUE.js";
6
+ import { n as collectInlinePolicyNamesManagedBySiblings, t as IAMRoleProvider } from "./iam-role-provider-CVIClaZV.js";
7
+ import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-CAlg2KEF.js";
8
+ import { RDSProvider } from "./rds-provider-DeGFzOUc.js";
9
+ import { NeptuneProvider } from "./neptune-provider-CvY6ekmg.js";
10
+ import { ASGProvider } from "./asg-provider-C1TlpooI.js";
11
11
  import { createHash, randomUUID } from "node:crypto";
12
12
  import { CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client } from "@aws-sdk/client-s3";
13
13
  import { AddRoleToInstanceProfileCommand, AddUserToGroupCommand, AttachGroupPolicyCommand, AttachRolePolicyCommand, AttachUserPolicyCommand, CreateAccessKeyCommand, CreateGroupCommand, CreateInstanceProfileCommand, CreateLoginProfileCommand, CreatePolicyCommand, CreatePolicyVersionCommand, CreateUserCommand, DeleteAccessKeyCommand, DeleteGroupCommand, DeleteGroupPolicyCommand, DeleteInstanceProfileCommand, DeleteLoginProfileCommand, DeletePolicyCommand, DeletePolicyVersionCommand, DeleteRolePolicyCommand, DeleteUserCommand, DeleteUserPermissionsBoundaryCommand, DeleteUserPolicyCommand, DetachGroupPolicyCommand, DetachRolePolicyCommand, DetachUserPolicyCommand, GetAccessKeyLastUsedCommand, GetGroupCommand, GetGroupPolicyCommand, GetInstanceProfileCommand, GetPolicyCommand, GetPolicyVersionCommand, GetRolePolicyCommand, GetUserCommand, GetUserPolicyCommand, IAMClient, ListAccessKeysCommand, ListAttachedGroupPoliciesCommand, ListAttachedUserPoliciesCommand, ListEntitiesForPolicyCommand, ListGroupPoliciesCommand, ListGroupsForUserCommand, ListPoliciesCommand, ListPolicyTagsCommand, ListPolicyVersionsCommand, ListUserPoliciesCommand, NoSuchEntityException, PutGroupPolicyCommand, PutRolePolicyCommand, PutUserPermissionsBoundaryCommand, PutUserPolicyCommand, RemoveRoleFromInstanceProfileCommand, RemoveUserFromGroupCommand, TagPolicyCommand, TagUserCommand, UntagPolicyCommand, UntagUserCommand, UpdateAccessKeyCommand, UpdateLoginProfileCommand } from "@aws-sdk/client-iam";
@@ -5488,8 +5488,144 @@ var SQSQueueProvider = class {
5488
5488
  }
5489
5489
  };
5490
5490
 
5491
+ //#endregion
5492
+ //#region src/provisioning/policy-document-content.ts
5493
+ const MASK = "***";
5494
+ const PERMANENT_CDKD_CODES = /* @__PURE__ */ new Set(["ROLLBACK_SECRET_TOKEN_SCAN_MISMATCH"]);
5495
+ const MARKED_PERMANENT_CODE_PREFIXES = ["INTRINSIC_RESOLUTION_REFUSAL", "ROLLBACK_SECRET_REGION_AMBIGUOUS"];
5496
+ const NOT_FOUND_ERROR_NAMES = /* @__PURE__ */ new Set([
5497
+ "ResourceNotFoundException",
5498
+ "ParameterNotFound",
5499
+ "ParameterVersionNotFound"
5500
+ ]);
5501
+ function holdsUnresolvedValue(document) {
5502
+ let root = document;
5503
+ if (typeof document === "string") try {
5504
+ root = JSON.parse(document);
5505
+ } catch {
5506
+ root = document;
5507
+ }
5508
+ const walk = (v) => {
5509
+ if (typeof v === "string") return v === MASK || v.includes("{{resolve:");
5510
+ if (Array.isArray(v)) return v.some(walk);
5511
+ if (v !== null && typeof v === "object") return Object.values(v).some(walk);
5512
+ return false;
5513
+ };
5514
+ return walk(root);
5515
+ }
5516
+ function isPermanentResolutionError(error) {
5517
+ let current = error;
5518
+ for (let depth = 0; depth < 5 && current != null; depth++) {
5519
+ const e = current;
5520
+ if (typeof e.name === "string" && NOT_FOUND_ERROR_NAMES.has(e.name)) return true;
5521
+ if (typeof e.code === "string") {
5522
+ if (PERMANENT_CDKD_CODES.has(e.code)) return true;
5523
+ const code = e.code;
5524
+ if (MARKED_PERMANENT_CODE_PREFIXES.some((p) => code.startsWith(p)) && isMarkedNonRetryable(current)) return true;
5525
+ }
5526
+ if (typeof e.message === "string" && e.message.startsWith("Dynamic reference: ")) return true;
5527
+ current = e.cause;
5528
+ }
5529
+ return false;
5530
+ }
5531
+ function errorName(error) {
5532
+ const name = error?.name;
5533
+ return typeof name === "string" && /^[\w.-]{1,128}$/.test(name) ? name : "error";
5534
+ }
5535
+ async function attemptedPolicyDocument(recorded, resolve) {
5536
+ let document = recorded;
5537
+ if (resolve) try {
5538
+ document = await resolve();
5539
+ } catch (error) {
5540
+ return isPermanentResolutionError(error) ? {
5541
+ kind: "unusable",
5542
+ why: "a secret it references does not exist or cannot be used"
5543
+ } : {
5544
+ kind: "retry",
5545
+ errorName: errorName(error)
5546
+ };
5547
+ }
5548
+ if (!(typeof document === "string" && document.length > 0 || document !== null && typeof document === "object")) return {
5549
+ kind: "unusable",
5550
+ why: "no policy document it attempted is recorded"
5551
+ };
5552
+ if (holdsUnresolvedValue(document)) return {
5553
+ kind: "unusable",
5554
+ why: "its policy document still holds a secret reference or masked value"
5555
+ };
5556
+ return {
5557
+ kind: "document",
5558
+ document
5559
+ };
5560
+ }
5561
+ const ACCOUNT_ID = /^\d{12}$/;
5562
+ const ACCOUNT_ROOT_ARN = /^arn:[a-z-]+:iam::(\d{12}):root$/;
5563
+ const LIST_KEYS = [
5564
+ "Action",
5565
+ "NotAction",
5566
+ "Resource",
5567
+ "NotResource"
5568
+ ];
5569
+ const PRINCIPAL_KEYS = ["Principal", "NotPrincipal"];
5570
+ function unwrapSingle(value) {
5571
+ return Array.isArray(value) && value.length === 1 ? value[0] : value;
5572
+ }
5573
+ function accountKey(value) {
5574
+ if (typeof value !== "string") return value;
5575
+ if (ACCOUNT_ID.test(value)) return `account:${value}`;
5576
+ const m = ACCOUNT_ROOT_ARN.exec(value);
5577
+ return m ? `account:${m[1]}` : value;
5578
+ }
5579
+ const ANYONE = "anyone:*";
5580
+ function normalizePrincipal(principal) {
5581
+ if (principal === "*") return ANYONE;
5582
+ if (principal === null || typeof principal !== "object" || Array.isArray(principal)) return principal;
5583
+ const keys = Object.keys(principal);
5584
+ if (keys.length === 1 && keys[0] === "AWS" && unwrapSingle(principal["AWS"]) === "*") return ANYONE;
5585
+ const out = {};
5586
+ for (const [key, raw] of Object.entries(principal)) out[key] = unwrapSingle(key === "AWS" ? Array.isArray(raw) ? raw.map(accountKey) : accountKey(raw) : raw);
5587
+ return out;
5588
+ }
5589
+ function normalizeStatement(statement) {
5590
+ if (statement === null || typeof statement !== "object" || Array.isArray(statement)) return statement;
5591
+ const out = { ...statement };
5592
+ for (const key of LIST_KEYS) if (Object.prototype.hasOwnProperty.call(out, key)) out[key] = unwrapSingle(out[key]);
5593
+ for (const key of PRINCIPAL_KEYS) if (Object.prototype.hasOwnProperty.call(out, key)) out[key] = normalizePrincipal(out[key]);
5594
+ return out;
5595
+ }
5596
+ function canonicalJson$3(value) {
5597
+ const sortKeys = (v) => {
5598
+ if (Array.isArray(v)) return v.map(sortKeys);
5599
+ if (v !== null && typeof v === "object") {
5600
+ const out = Object.create(null);
5601
+ for (const key of Object.keys(v).sort()) out[key] = sortKeys(v[key]);
5602
+ return out;
5603
+ }
5604
+ return v;
5605
+ };
5606
+ return JSON.stringify(sortKeys(value));
5607
+ }
5608
+ function policyContentKey(document) {
5609
+ let value = document;
5610
+ if (typeof document === "string") try {
5611
+ value = JSON.parse(document);
5612
+ } catch {
5613
+ return `raw:${document}`;
5614
+ }
5615
+ if (value !== null && typeof value === "object" && !Array.isArray(value)) {
5616
+ const doc = { ...value };
5617
+ if (Object.prototype.hasOwnProperty.call(doc, "Statement")) doc["Statement"] = (Array.isArray(doc["Statement"]) ? doc["Statement"] : [doc["Statement"]]).map(normalizeStatement);
5618
+ value = doc;
5619
+ }
5620
+ return canonicalJson$3(value);
5621
+ }
5622
+
5491
5623
  //#endregion
5492
5624
  //#region src/provisioning/providers/sqs-queue-policy-provider.ts
5625
+ const QUEUE_POLICY_UNREADABLE_SKIP_REASON = "the policy of a queue it wrote could not be read, so whether that queue still carries it is unknown";
5626
+ const QUEUE_POLICY_UNRESOLVED_DOCUMENT_SKIP_REASON = "the policy document it attempted could not be resolved right now to compare its queues with";
5627
+ const QUEUE_POLICY_MISMATCH_LEFT_REASON = "a queue it wrote carries a policy that does not match the document it attempted, so that queue was not cleared";
5628
+ const QUEUE_POLICY_NOT_COMPARED_LEFT_REASON = "the document it attempted is missing, masked, or references a secret that does not exist or cannot be used, so none of its queues was cleared";
5493
5629
  var SQSQueuePolicyProvider = class {
5494
5630
  sqsClient;
5495
5631
  logger = getLogger().child("SQSQueuePolicyProvider");
@@ -5560,6 +5696,7 @@ var SQSQueuePolicyProvider = class {
5560
5696
  }
5561
5697
  async delete(logicalId, physicalId, resourceType, properties, context) {
5562
5698
  this.logger.debug(`Deleting SQS queue policy ${logicalId}: ${physicalId}`);
5699
+ if (context?.failedCreateOrphan === true) return this.deleteFailedCreateOrphan(logicalId, physicalId, resourceType, properties, context);
5563
5700
  const named = physicalId.includes(",") ? splitQueueUrls(physicalId) : recordedQueues(physicalId, context?.recordedAttributes);
5564
5701
  const queueUrls = [...physicalId.includes(",") ? [] : await this.queuesCarryingDocument(listedQueues(properties ?? {}).filter((url) => !named.includes(url)), properties?.["PolicyDocument"], logicalId), ...named];
5565
5702
  if (queueUrls.length === 0) throw new ProvisioningError(`Failed to delete SQS queue policy ${logicalId}: its physical id names no queue URL`, resourceType, logicalId, physicalId);
@@ -5572,6 +5709,63 @@ var SQSQueuePolicyProvider = class {
5572
5709
  }
5573
5710
  this.logger.debug(`Successfully deleted SQS queue policy ${logicalId}`);
5574
5711
  }
5712
+ async deleteFailedCreateOrphan(logicalId, physicalId, resourceType, properties, context) {
5713
+ const named = splitQueueUrls(physicalId);
5714
+ if (named.length === 0) throw new ProvisioningError(`Failed to delete SQS queue policy ${logicalId}: its physical id names no queue URL`, resourceType, logicalId, physicalId);
5715
+ const resolve = context.resolveAttemptedProperties;
5716
+ const attempted = await attemptedPolicyDocument(properties?.["PolicyDocument"], resolve && (async () => (await resolve())?.["PolicyDocument"]));
5717
+ if (attempted.kind === "retry") {
5718
+ this.logger.warn(safeMsg`The policy document ${logicalId} attempted could not be resolved (${attempted.errorName}), so no queue it wrote is cleared; the entry is kept for a re-run once that is fixed.`);
5719
+ return {
5720
+ outcome: "skipped",
5721
+ reason: QUEUE_POLICY_UNRESOLVED_DOCUMENT_SKIP_REASON
5722
+ };
5723
+ }
5724
+ if (attempted.kind === "unusable") {
5725
+ this.logger.warn(safeMsg`${logicalId} is not cleared from any queue it wrote (${attempted.why}); check each by hand and remove its policy where it still grants what ${logicalId} declared: ${named.join(", ")}.`);
5726
+ return {
5727
+ outcome: "deleted",
5728
+ leftInPlace: QUEUE_POLICY_NOT_COMPARED_LEFT_REASON
5729
+ };
5730
+ }
5731
+ const reference = policyContentKey(attempted.document);
5732
+ const fresh = new Set((context.writtenThisRun ?? []).flatMap((r) => r.resourceType === resourceType && typeof r.physicalId === "string" ? [...recordedQueues(r.physicalId, r.attributes !== null && typeof r.attributes === "object" ? r.attributes : void 0), ...listedQueues(r.properties !== null && typeof r.properties === "object" ? r.properties : {})] : []));
5733
+ let unreadable = false;
5734
+ let mismatched = false;
5735
+ for (const queueUrl of named) {
5736
+ if (fresh.has(queueUrl)) {
5737
+ mismatched = true;
5738
+ this.logger.warn(safeMsg`Queue ${queueUrl} was written by a QueuePolicy of this deploy, so it is not cleared: its policy may not read back current yet; if it still grants what ${logicalId} declared, remove it manually.`);
5739
+ continue;
5740
+ }
5741
+ const current = await this.readPolicyForWidening(queueUrl);
5742
+ if (current.kind === "gone") {
5743
+ const clientRegion = await this.sqsClient.config.region();
5744
+ assertRegionMatch(clientRegion, context.expectedRegion, resourceType, logicalId, queueUrl, "not-found");
5745
+ this.logger.debug(safeMsg`Queue ${queueUrl} does not exist; nothing to clear`);
5746
+ } else if (current.kind === "unreadable") {
5747
+ unreadable = true;
5748
+ this.logger.warn(safeMsg`Could not read the policy of queue ${queueUrl} (${current.reason}), so it is not cleared: it may still carry the policy of ${logicalId}.`);
5749
+ } else if (current.kind === "none" || policyContentKey(current.policy) === reference) try {
5750
+ await this.clearQueuePolicy(queueUrl, resourceType, logicalId, context.expectedRegion);
5751
+ } catch (error) {
5752
+ if (error instanceof ProvisioningError) throw error;
5753
+ throw new ProvisioningError(`Failed to delete SQS queue policy ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, error instanceof Error ? error : void 0);
5754
+ }
5755
+ else {
5756
+ mismatched = true;
5757
+ this.logger.warn(safeMsg`Queue ${queueUrl} carries a policy that does not match the document ${logicalId} attempted (a later write, or AWS stored it in another form), so it is not cleared; if it still grants what ${logicalId} declared, remove it manually.`);
5758
+ }
5759
+ }
5760
+ if (unreadable) return {
5761
+ outcome: "skipped",
5762
+ reason: QUEUE_POLICY_UNREADABLE_SKIP_REASON
5763
+ };
5764
+ if (mismatched) return {
5765
+ outcome: "deleted",
5766
+ leftInPlace: QUEUE_POLICY_MISMATCH_LEFT_REASON
5767
+ };
5768
+ }
5575
5769
  async clearQueuePolicy(queueUrl, resourceType, logicalId, expectedRegion, phase = "not-found") {
5576
5770
  try {
5577
5771
  await this.sqsClient.send(new SetQueueAttributesCommand({
@@ -5589,15 +5783,13 @@ var SQSQueuePolicyProvider = class {
5589
5783
  }
5590
5784
  }
5591
5785
  async queuesCarryingDocument(candidates, document, logicalId) {
5592
- if (candidates.length === 0) return [];
5593
- let reference;
5594
- if (typeof document === "string" && document.length > 0) reference = canonicalPolicy$1(document);
5595
- else if (document !== null && typeof document === "object") reference = canonicalJson$2(document);
5786
+ const carrying = [];
5787
+ if (candidates.length === 0) return carrying;
5788
+ const reference = policyReference(document);
5596
5789
  if (reference === void 0) {
5597
5790
  this.logger.warn(safeMsg`The queues ${candidates.join(", ")} listed by ${logicalId} were not checked (no policy document recorded to compare with) and may still carry its policy.`);
5598
- return [];
5791
+ return carrying;
5599
5792
  }
5600
- const carrying = [];
5601
5793
  for (const queueUrl of candidates) {
5602
5794
  const current = await this.readPolicyForWidening(queueUrl);
5603
5795
  if (current.kind === "policy" && canonicalPolicy$1(current.policy) === reference) carrying.push(queueUrl);
@@ -5618,7 +5810,7 @@ var SQSQueuePolicyProvider = class {
5618
5810
  } : { kind: "none" };
5619
5811
  } catch (err) {
5620
5812
  const name = err.name;
5621
- if (name === "QueueDoesNotExist" || name === "AWS.SimpleQueueService.NonExistentQueue") return { kind: "none" };
5813
+ if (name === "QueueDoesNotExist" || name === "AWS.SimpleQueueService.NonExistentQueue") return { kind: "gone" };
5622
5814
  return {
5623
5815
  kind: "unreadable",
5624
5816
  reason: name ?? "error"
@@ -5716,6 +5908,10 @@ function canonicalPolicy$1(text) {
5716
5908
  return `raw:${text}`;
5717
5909
  }
5718
5910
  }
5911
+ function policyReference(document) {
5912
+ if (typeof document === "string" && document.length > 0) return canonicalPolicy$1(document);
5913
+ if (document !== null && typeof document === "object") return canonicalJson$2(document);
5914
+ }
5719
5915
  function splitQueueUrls(physicalId) {
5720
5916
  return physicalId.split(",").filter((url) => url.length > 0);
5721
5917
  }
@@ -6440,6 +6636,10 @@ function isPendingConfirmationError(error) {
6440
6636
 
6441
6637
  //#endregion
6442
6638
  //#region src/provisioning/providers/sns-topic-policy-provider.ts
6639
+ const TOPIC_POLICY_UNREADABLE_SKIP_REASON = "the policy of a topic it wrote could not be read, so whether that topic still carries it is unknown";
6640
+ const TOPIC_POLICY_UNRESOLVED_DOCUMENT_SKIP_REASON = "the policy document it attempted could not be resolved right now to compare its topics with";
6641
+ const TOPIC_POLICY_MISMATCH_LEFT_REASON = "a topic it wrote carries a policy that does not match the document it attempted, so that topic was not reset";
6642
+ const TOPIC_POLICY_NOT_COMPARED_LEFT_REASON = "the document it attempted is missing, masked, or references a secret that does not exist or cannot be used, so none of its topics was reset";
6443
6643
  var SNSTopicPolicyProvider = class {
6444
6644
  logger = getLogger().child("SNSTopicPolicyProvider");
6445
6645
  handledProperties = /* @__PURE__ */ new Map([["AWS::SNS::TopicPolicy", /* @__PURE__ */ new Set(["Topics", "PolicyDocument"])]]);
@@ -6502,6 +6702,7 @@ var SNSTopicPolicyProvider = class {
6502
6702
  }
6503
6703
  async delete(logicalId, physicalId, resourceType, properties, context) {
6504
6704
  this.logger.debug(`Deleting SNS topic policy ${logicalId}: ${physicalId}`);
6705
+ if (context?.failedCreateOrphan === true) return this.deleteFailedCreateOrphan(logicalId, physicalId, resourceType, properties, context);
6505
6706
  const named = splitTopicArns(physicalId);
6506
6707
  if (named.length === 0) throw markNonRetryable(new ProvisioningError(`Failed to delete SNS topic policy ${logicalId}: its physical id is empty, so cdkd changed no topic. Set each topic the policy is attached to back to its default policy by hand, then drop the record with ${stateOrphanRecordRemedy(context, logicalId)}.`, resourceType, logicalId, physicalId));
6507
6708
  const topicArns = named.every((arn) => isSnsTopicArn(arn)) ? named : [.../* @__PURE__ */ new Set([...named.filter((arn) => isSnsTopicArn(arn)), ...listedTopics(properties ?? {})])];
@@ -6515,6 +6716,75 @@ var SNSTopicPolicyProvider = class {
6515
6716
  }
6516
6717
  this.logger.debug(`Successfully deleted SNS topic policy ${logicalId}`);
6517
6718
  }
6719
+ async deleteFailedCreateOrphan(logicalId, physicalId, resourceType, properties, context) {
6720
+ const named = splitTopicArns(physicalId);
6721
+ if (named.length === 0) throw markNonRetryable(new ProvisioningError(`Failed to delete SNS topic policy ${logicalId}: its physical id names no topic`, resourceType, logicalId, physicalId));
6722
+ const resolve = context.resolveAttemptedProperties;
6723
+ const attempted = await attemptedPolicyDocument(properties?.["PolicyDocument"], resolve && (async () => (await resolve())?.["PolicyDocument"]));
6724
+ if (attempted.kind === "retry") {
6725
+ this.logger.warn(safeMsg`The policy document ${logicalId} attempted could not be resolved (${attempted.errorName}), so no topic it wrote is reset; the entry is kept for a re-run once that is fixed.`);
6726
+ return {
6727
+ outcome: "skipped",
6728
+ reason: TOPIC_POLICY_UNRESOLVED_DOCUMENT_SKIP_REASON
6729
+ };
6730
+ }
6731
+ if (attempted.kind === "unusable") {
6732
+ this.logger.warn(safeMsg`${logicalId} is not reset on any topic it wrote (${attempted.why}); check each by hand and reset its policy where it still grants what ${logicalId} declared: ${named.join(", ")}.`);
6733
+ return {
6734
+ outcome: "deleted",
6735
+ leftInPlace: TOPIC_POLICY_NOT_COMPARED_LEFT_REASON
6736
+ };
6737
+ }
6738
+ const document = attempted.document;
6739
+ const reference = policyContentKey(document);
6740
+ const fresh = new Set((context.writtenThisRun ?? []).flatMap((r) => r.resourceType === resourceType && typeof r.physicalId === "string" ? [...splitTopicArns(r.physicalId), ...listedTopics(r.properties !== null && typeof r.properties === "object" ? r.properties : {})] : []));
6741
+ let unreadable = false;
6742
+ let mismatched = false;
6743
+ for (const topicArn of named) {
6744
+ if (fresh.has(topicArn)) {
6745
+ mismatched = true;
6746
+ this.logger.warn(safeMsg`Topic ${topicArn} was written by a TopicPolicy of this deploy, so it is not reset: its policy may not read back current yet; if it still grants what ${logicalId} declared, reset it manually.`);
6747
+ continue;
6748
+ }
6749
+ const current = await this.readPolicyForWidening(topicArn);
6750
+ if (current.kind === "gone") {
6751
+ const clientRegion = await getAwsClients().sns.config.region();
6752
+ assertRegionMatch(clientRegion, context.expectedRegion, resourceType, logicalId, topicArn, "not-found");
6753
+ this.logger.debug(safeMsg`Topic ${topicArn} does not exist; nothing to reset`);
6754
+ continue;
6755
+ }
6756
+ if (current.kind === "unreadable") {
6757
+ unreadable = true;
6758
+ this.logger.warn(safeMsg`Could not read the policy of topic ${topicArn} (${current.reason}), so it is not reset: it may still carry the policy of ${logicalId}.`);
6759
+ continue;
6760
+ }
6761
+ const live = current.kind === "none" ? void 0 : policyContentKey(current.policy);
6762
+ if (live === void 0 || live === reference) {
6763
+ try {
6764
+ await this.resetTopicPolicy(topicArn, resourceType, logicalId, context.expectedRegion);
6765
+ } catch (error) {
6766
+ if (error instanceof ProvisioningError) throw error;
6767
+ throw new ProvisioningError(`Failed to delete SNS topic policy ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, error instanceof Error ? error : void 0);
6768
+ }
6769
+ continue;
6770
+ }
6771
+ const defaultPolicy = defaultTopicPolicy(topicArn);
6772
+ if (defaultPolicy !== void 0 && live === policyContentKey(defaultPolicy)) {
6773
+ this.logger.debug(safeMsg`Topic ${topicArn} already carries its default policy`);
6774
+ continue;
6775
+ }
6776
+ mismatched = true;
6777
+ this.logger.warn(safeMsg`Topic ${topicArn} carries a policy that does not match the document ${logicalId} attempted (a later write, or AWS stored it in another form), so it is not reset; if it still grants what ${logicalId} declared, reset it manually.`);
6778
+ }
6779
+ if (unreadable) return {
6780
+ outcome: "skipped",
6781
+ reason: TOPIC_POLICY_UNREADABLE_SKIP_REASON
6782
+ };
6783
+ if (mismatched) return {
6784
+ outcome: "deleted",
6785
+ leftInPlace: TOPIC_POLICY_MISMATCH_LEFT_REASON
6786
+ };
6787
+ }
6518
6788
  async resetTopicPolicy(topicArn, resourceType, logicalId, expectedRegion, phase = "not-found", mask = (t) => t) {
6519
6789
  const defaultPolicy = defaultTopicPolicy(topicArn);
6520
6790
  if (defaultPolicy === void 0) throw new ProvisioningError(`Cannot remove SNS topic policy ${logicalId} from ${topicArn}: not an SNS topic ARN`, resourceType, logicalId, topicArn);
@@ -6559,7 +6829,7 @@ var SNSTopicPolicyProvider = class {
6559
6829
  } : { kind: "none" };
6560
6830
  } catch (err) {
6561
6831
  const name = err.name;
6562
- if (name === "NotFoundException" || name === "NotFound") return { kind: "none" };
6832
+ if (name === "NotFoundException" || name === "NotFound") return { kind: "gone" };
6563
6833
  return {
6564
6834
  kind: "unreadable",
6565
6835
  reason: name ?? "error"
@@ -43355,4 +43625,4 @@ var ACMCertificateProvider = class {
43355
43625
 
43356
43626
  //#endregion
43357
43627
  export { ACMCertificateProvider, ASGProvider, AgentCoreBrowserProvider, AgentCoreCodeInterpreterProvider, AgentCoreEvaluatorProvider, AgentCoreRuntimeProvider, ApiGatewayProvider, ApiGatewayV2Provider, AppSyncProvider, BudgetsBudgetProvider, CloudFrontDistributionProvider, CloudFrontOACProvider, CloudFrontOAIProvider, CloudTrailProvider, CloudWatchAlarmProvider, CloudWatchAnomalyDetectorProvider, CodeBuildProvider, CodeCommitRepositoryProvider, CognitoUserPoolProvider, DLMLifecyclePolicyProvider, DocDBProvider, DocDBSubnetGroupProvider, DynamoDBGlobalTableProvider, DynamoDBTableProvider, EC2Provider, ECRProvider, ECSProvider, EFSProvider, ELBv2Provider, EMRClusterProvider, EMRInstanceFleetConfigProvider, EMRInstanceGroupConfigProvider, ElastiCacheProvider, EventBridgeBusProvider, EventBridgeRuleProvider, FSxFileSystemProvider, FirehoseProvider, GlueConnectionProvider, GlueCrawlerProvider, GlueJobProvider, GlueProvider, GlueSecurityConfigurationProvider, GlueTriggerProvider, GlueWorkflowProvider, IAMAccessKeyProvider, IAMInstanceProfileProvider, IAMManagedPolicyProvider, IAMPolicyProvider, IAMRoleProvider, IAMUserGroupProvider, KMSProvider, KinesisStreamConsumerProvider, KinesisStreamProvider, LambdaEventInvokeConfigProvider, LambdaEventSourceMappingProvider, LambdaFunctionProvider, LambdaLayerVersionProvider, LambdaMicrovmImageProvider, LambdaPermissionProvider, LambdaUrlProvider, LogsLogGroupProvider, NeptuneProvider, NestedStackProvider, PipesPipeProvider, RDSDBProxyEndpointProvider, RDSDBProxyProvider, RDSDBProxyTargetGroupProvider, RDSProvider, Route53Provider, S3BucketPolicyProvider, S3BucketProvider, S3DirectoryBucketProvider, S3TablesProvider, S3VectorsProvider, SNSSubscriptionProvider, SNSTopicPolicyProvider, SNSTopicProvider, SQSQueuePolicyProvider, SQSQueueProvider, SSMParameterProvider, SchedulerScheduleProvider, SecretsManagerSecretProvider, ServiceDiscoveryProvider, StepFunctionsProvider, WAFv2WebACLProvider, WaitConditionHandleProvider };
43358
- //# sourceMappingURL=provider-classes-DXBYMcmp.js.map
43628
+ //# sourceMappingURL=provider-classes-oRTqcSCp.js.map