@fjall/util 31.0.0 → 32.0.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.
@@ -9,7 +9,7 @@
9
9
  "package.json",
10
10
  "tsconfig.json"
11
11
  ],
12
- "hash": "e245fbc1ecd86b0221c4922ff4692165210972cb6acd1fbc07046a80a75ee683",
12
+ "hash": "6f342faf735304bf30905e9380cc583c652a4c68bd81ad9295f900ff246085c3",
13
13
  "files": {
14
14
  "src/async/concurrency.ts": "3c7ebe0222a720f9",
15
15
  "src/async/singleton.ts": "7bcc21b0fb920561",
@@ -73,14 +73,14 @@
73
73
  "src/fsHelpers.ts": "4dd3877b3953c6a9",
74
74
  "src/fsScan.ts": "feb187758481443f",
75
75
  "src/httpKeepAlive.ts": "c8fe4b118ef4c79f",
76
- "src/index.ts": "78ff2b177eeb8374",
76
+ "src/index.ts": "d2ad475845d22746",
77
77
  "src/infra/backupVault.ts": "661678a6dfb0b648",
78
78
  "src/infra/connectionsWire.ts": "e3afa3ba95a531d8",
79
79
  "src/infra/deployArtefacts.ts": "235ac21dd3ccf0b2",
80
80
  "src/infra/deriveContentHashTag.ts": "115fbe6588794027",
81
81
  "src/infra/domainExports.ts": "18de5b8668633aaf",
82
82
  "src/infra/imageTags.ts": "82d14f3dfd6ca68f",
83
- "src/infra/regions.ts": "26b80d7cea05454c",
83
+ "src/infra/regions.ts": "982acfd56adf04c2",
84
84
  "src/infra/tokenScopes.ts": "68f0152394fb416e",
85
85
  "src/insights/computePatternFingerprint.ts": "b5d3a4704f42cc1f",
86
86
  "src/logRotation.ts": "5ea989894082107b",
@@ -102,7 +102,7 @@
102
102
  "src/migration/verifyExpectedSchemaVersion.ts": "cd583329d771a047",
103
103
  "src/naming/accountNameCollision.ts": "2dc8b278ff039220",
104
104
  "src/naming/caseConversion.ts": "8b8984f2b58b8ab7",
105
- "src/naming/connectedAccountName.ts": "3cd3bc7dba0a2f0b",
105
+ "src/naming/connectedAccountName.ts": "664596ca0a0c3f82",
106
106
  "src/naming/reservedAppNames.ts": "7f63dd0b84c1972e",
107
107
  "src/naming/targetExportNames.ts": "da78a19d8b2d4a6f",
108
108
  "src/onboarding/index.ts": "7999117c5a7a18d1",
@@ -132,11 +132,11 @@
132
132
  "src/secrets.ts": "50258d463e4e67c3",
133
133
  "src/securityHelpers.ts": "1e68e1330c6da971",
134
134
  "src/staticSiteOutput.ts": "cc81ed32acc597f1",
135
- "src/targets.ts": "126280f0a5762e21",
135
+ "src/targets.ts": "b4bdf07f06755374",
136
136
  "../scripts/minify-dist.mjs": "6b2e4b0df8aec601",
137
- "package.json": "1976c21a05591af7",
137
+ "package.json": "4f46b151940a4220",
138
138
  "tsconfig.json": "db759831ad95f396"
139
139
  },
140
- "outputHash": "34f3e34410fa32b9cd928c6b14a219b4fca0d3ccba6c56f29de451b291cbf660",
140
+ "outputHash": "d208f1929cba3466d7532dd64a67eaabe65092481c1cd36d921779ae5025184b",
141
141
  "outputFileCount": 253
142
142
  }
package/dist/.minified CHANGED
@@ -1 +1 @@
1
- 126 files minified at 2026-09-03T09:13:46.689Z
1
+ 126 files minified at 2026-09-05T02:09:25.839Z
package/dist/index.d.ts CHANGED
@@ -16,13 +16,13 @@ export { mapSettledWithConcurrency } from "./async/concurrency.js";
16
16
  export { ACCOUNT_STAGES_WITH_ROOT, STRUCTURAL_ENVIRONMENTS, ACCOUNT_STAGES, ACCOUNT_STAGE_LABELS, isAccountStage, ACCOUNT_TIERS, type AccountTier, AccountTierSchema, isAccountTier, GOVERNANCE_ACCOUNT_TIERS, isGovernanceTier, environmentToTier, type AccountStageEffect, accountStageEffect, ACCOUNT_STAGE_EFFECTS, formatAccountStageList, stageFromWireEnvironment, accountTier, resolveSynthEnvironment, type AccountStageWithRoot, type AccountStage, getEnvironmentLabel, ACCOUNT_ROLES } from "./environments.js";
17
17
  export { RESOURCE_CATEGORIES, type ResourceCategory, categoriseResource, getExpectedDuration, getFriendlyResourceType } from "./resourceCategorisation.js";
18
18
  export { parseGitRemoteUrl, type GitProvider, type ParsedGitRemote } from "./repo/gitRemoteParser.js";
19
- export { abbreviateRegion, AWS_REGIONS_METADATA, DEFAULT_REGION, getRegionInfo, MAX_SECONDARY_REGIONS, OPT_IN_REGION_CODES, optInRegionWarning, regions, suggestRegionForTimezone, type RegionCode, type RegionInfo } from "./infra/regions.js";
19
+ export { abbreviateRegion, AWS_REGIONS_METADATA, DEFAULT_REGION, getRegionInfo, MAX_SECONDARY_REGIONS, OPT_IN_REGION_CODES, optInRegionWarning, regions, RETIRED_REGION_ABBREVIATIONS, suggestRegionForTimezone, type RegionCode, type RegionInfo } from "./infra/regions.js";
20
20
  export { SCOPE_VALUES, MACHINE_ONLY_SCOPES, USER_GRANTABLE_SCOPES, GOVERNANCE_SCOPE_REQUIRED_CODE, type TokenScope } from "./infra/tokenScopes.js";
21
21
  export { SECRET_NAME_PATTERN, SECRET_NAME_ERROR, SSM_COMPONENT_PATTERN, SSM_COMPONENT_ERROR, SSM_STANDARD_MAX_VALUE_BYTES, SecretNamespaceSchema, type SecretNamespace, buildNamespaceParts, buildParameterPath, parseParameterPath, isManageablePath, parseDotEnv, escapeDotEnvValue } from "./secrets.js";
22
22
  export { ConnectionWireSchema, type ConnectionWire, ConnectionsListResponseSchema, type ConnectionsListResponse, CONNECTION_PHASES, type ConnectionPhase, CONNECTION_TERMINAL_FAILURE_PHASES, type ConnectionTerminalFailurePhase, CONNECTION_FAILURE_REASONS, type ConnectionFailureReason, EXTERNAL_ID_PATTERN } from "./infra/connectionsWire.js";
23
23
  export { COMPLIANCE_ISSUE_STATUSES, type ComplianceIssueStatus, isComplianceIssueStatus } from "./complianceIssue.js";
24
24
  export { PUBLIC_PACKAGE_NAME, INSTALL_SOURCES, type InstallSource, SETUP_COMMANDS, type SetupCommandId, upgradeCommand, SETUP_MODES, type SetupMode, SETUP_STEP_IDS, type SetupStepId, type SetupStep, type SetupStepSequence, SETUP_STEPS, AGENT_SETUP_PROMPTS, AGENT_INSTALL_COMMAND, SKILL_INSTALL_SEGMENTS, SKILL_INSTALL_FILENAME, SKILL_INSTALL_PATH } from "./onboarding/index.js";
25
- export { deriveRegionsFromOrgConfig, deriveTargets, deriveAllTargets, environmentOrTier, findTarget, generateTargetName, type OrgConfigRegions, type TargetAccount, type DerivedTarget } from "./targets.js";
25
+ export { deriveRegionsFromOrgConfig, deriveTargets, deriveAllTargets, environmentOrTier, explainRetiredTargetName, findTarget, generateTargetName, type OrgConfigRegions, type TargetAccount, type DerivedTarget, type ResolvedTargetAccount } from "./targets.js";
26
26
  export { buildAppConfigPath } from "./repo/appPath.js";
27
27
  export { type ScanPath } from "./repo/scanTypes.js";
28
28
  export { findInfrastructurePaths, findBoundaryPath, isInfrastructureFile, type MarkerEntry, type FindInfrastructurePathsOptions } from "./repo/findInfrastructurePaths.js";
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{DNS_APEX as _,getDomainExportNames as r,getDomainStackName as T,getDomainUsEast1CertificatesStackName as A,hostsExportPartName as S,serialiseHostsChunks as t,HOSTS_OUTPUT_MAX_BYTES as o,isManagedDomainBinding as a,DOMAIN_DEPLOY_DEFAULT_PHASE as N}from"./infra/domainExports.js";import{BACKUP_VAULT_NAME as I}from"./infra/backupVault.js";import{APPROVAL_TOKEN_OUTPUT_PREFIX as C,TOKEN_STDERR_PREFIX as i}from"./deploy/approvalTokenOutput.js";import{imageTagParameterName as m}from"./infra/imageTags.js";import{toPascalCase as L,toKebab as s,toValidDatabaseName as D,toScreamingSnake as p,capitalise as M,getSafeZoneName as c,accountConstructKey as f,hasAsciiStableConstructKey as F}from"./naming/caseConversion.js";import{albDnsExportName as l,albHostedZoneIdExportName as u,cdnDomainExportName as x,bucketWebsiteEndpointExportName as G,bucketWebsiteHostedZoneIdExportName as d}from"./naming/targetExportNames.js";import{CAPACITY_SLOT_PATTERN as h,CAPACITY_SLOT_MAX_LENGTH as H,DEFAULT_CAPACITY_SLOT as V,CAPACITY_ANCHOR_PATTERN as Y,CAPACITY_ANCHOR_MAX_LENGTH as y,CAPACITY_IDENTITY_CONTEXT_KEY as K,CapacityIdentityPinSchema as v,CapacityIdentityWireSchema as X,CapacityIdentityConfigSchema as b,projectCapacityIdentityToTarget as B}from"./capacityIdentity.js";import{findAccountNameCollision as J}from"./naming/accountNameCollision.js";import{defaultConnectedAccountName as j,suffixedAccountName as w,REGION_SHORT_CODES as Z,findTrailingRegionShortCode as q,regionSuffixRejectionMessage as z}from"./naming/connectedAccountName.js";import{normaliseError as $,getErrorMessage as EE,hasErrorCode as eE,getErrorCode as _E,getErrorStack as rE,formatErrorString as TE}from"./errorUtils.js";import{FJALL_CONFIG_DIR_ENV as SE,FJALL_CREDENTIALS_FILENAME as tE,FJALL_HOME_DIRNAME as oE,FJALL_LOG_DIR_ENV as aE,fjallCredentialsPath as NE,fjallHomeDir as RE,fjallLogDir as IE,fjallStatePath as OE}from"./fjallHome.js";import{singleton as iE}from"./async/singleton.js";import{DANGEROUS_ENV_VARS as mE,filterDangerousEnvVars as PE,MASKED_VALUE_MARKER as LE,maskSensitiveOutput as sE,parseShellArgs as DE,REDACTED_KEY_SENTINEL as pE,SCOPED_TOKEN_REGEX as ME}from"./securityHelpers.js";import{sleep as fE}from"./async/sleep.js";import{mapSettledWithConcurrency as UE}from"./async/concurrency.js";import{ACCOUNT_STAGES_WITH_ROOT as uE,STRUCTURAL_ENVIRONMENTS as xE,ACCOUNT_STAGES as GE,ACCOUNT_STAGE_LABELS as dE,isAccountStage as gE,ACCOUNT_TIERS as hE,AccountTierSchema as HE,isAccountTier as VE,GOVERNANCE_ACCOUNT_TIERS as YE,isGovernanceTier as yE,environmentToTier as KE,accountStageEffect as vE,ACCOUNT_STAGE_EFFECTS as XE,formatAccountStageList as bE,stageFromWireEnvironment as BE,accountTier as WE,resolveSynthEnvironment as JE,getEnvironmentLabel as kE,ACCOUNT_ROLES as jE}from"./environments.js";import{RESOURCE_CATEGORIES as ZE,categoriseResource as qE,getExpectedDuration as zE,getFriendlyResourceType as QE}from"./resourceCategorisation.js";import{parseGitRemoteUrl as Ee}from"./repo/gitRemoteParser.js";import{abbreviateRegion as _e,AWS_REGIONS_METADATA as re,DEFAULT_REGION as Te,getRegionInfo as Ae,MAX_SECONDARY_REGIONS as Se,OPT_IN_REGION_CODES as te,optInRegionWarning as oe,regions as ae,suggestRegionForTimezone as Ne}from"./infra/regions.js";import{SCOPE_VALUES as Ie,MACHINE_ONLY_SCOPES as Oe,USER_GRANTABLE_SCOPES as Ce,GOVERNANCE_SCOPE_REQUIRED_CODE as ie}from"./infra/tokenScopes.js";import{SECRET_NAME_PATTERN as me,SECRET_NAME_ERROR as Pe,SSM_COMPONENT_PATTERN as Le,SSM_COMPONENT_ERROR as se,SSM_STANDARD_MAX_VALUE_BYTES as De,SecretNamespaceSchema as pe,buildNamespaceParts as Me,buildParameterPath as ce,parseParameterPath as fe,isManageablePath as Fe,parseDotEnv as Ue,escapeDotEnvValue as le}from"./secrets.js";import{ConnectionWireSchema as xe,ConnectionsListResponseSchema as Ge,CONNECTION_PHASES as de,CONNECTION_TERMINAL_FAILURE_PHASES as ge,CONNECTION_FAILURE_REASONS as he,EXTERNAL_ID_PATTERN as He}from"./infra/connectionsWire.js";import{COMPLIANCE_ISSUE_STATUSES as Ye,isComplianceIssueStatus as ye}from"./complianceIssue.js";import{PUBLIC_PACKAGE_NAME as ve,INSTALL_SOURCES as Xe,SETUP_COMMANDS as be,upgradeCommand as Be,SETUP_MODES as We,SETUP_STEP_IDS as Je,SETUP_STEPS as ke,AGENT_SETUP_PROMPTS as je,AGENT_INSTALL_COMMAND as we,SKILL_INSTALL_SEGMENTS as Ze,SKILL_INSTALL_FILENAME as qe,SKILL_INSTALL_PATH as ze}from"./onboarding/index.js";import{deriveRegionsFromOrgConfig as $e,deriveTargets as E_,deriveAllTargets as e_,environmentOrTier as __,findTarget as r_,generateTargetName as T_}from"./targets.js";import{buildAppConfigPath as S_}from"./repo/appPath.js";import{findInfrastructurePaths as o_,findBoundaryPath as a_,isInfrastructureFile as N_}from"./repo/findInfrastructurePaths.js";import{inferContainerFromCandidates as I_}from"./repo/inferContainerFromCandidates.js";import{RESERVED_APP_NAMES as C_,RESERVED_APP_NAME_MESSAGE as i_,isReservedAppName as n_,RESERVED_APP_NAME_SUFFIX as m_,RESERVED_APP_NAME_SUFFIX_MESSAGE as P_,hasReservedAppNameSuffix as L_}from"./naming/reservedAppNames.js";import{deriveContentHashTag as D_,CONTENT_HASH_TAG_PATTERN as p_}from"./infra/deriveContentHashTag.js";import{DEPLOY_MODES as c_,DeployModeSchema as f_,IMAGE_TAG_PATTERN as F_,ImageTagSchema as U_,ServiceArtefactSchema as l_,ServiceArtefactsSchema as u_,ARTEFACT_OUTPUT_FIELDS as x_,artefactOutputKey as G_}from"./infra/deployArtefacts.js";import{MIGRATION_SNAPSHOT_NAME_PREFIX as g_,MIGRATION_SNAPSHOT_RETENTION_DAYS_ENV as h_,MIGRATION_SNAPSHOT_KIND_TAG_KEY as H_,MIGRATION_SNAPSHOT_KIND_PREMIGRATE as V_,EXPECTED_SCHEMA_VERSION_ENV as Y_,EXPECTED_SCHEMA_VERSION_TOOL_ENV as y_,EXPECTED_CH_SCHEMA_VERSION_ENV as K_,SCHEMA_ADMIN_USER_ENV as v_,SCHEMA_ADMIN_PASSWORD_ENV as X_,PRISMA_MIGRATION_DIR_RE as b_,CLICKHOUSE_MIGRATION_SKIP_RE as B_}from"./migration/constants.js";import{SCHEMA_GATE_EXIT as J_,SCHEMA_GATE_EXIT_HINTS as k_,schemaGateExitKind as j_}from"./migration/schemaGateExit.js";import{FJALL_SCHEMA_GATE_USER as Z_,FJALL_MAINTENANCE_USER as q_,FJALL_CLICKHOUSE_USERS as z_}from"./migration/clickhouseFrameworkUsers.js";import{PHYSICAL_NAME_FALLBACK_PROPERTIES as $_}from"./cfn/physicalNameProperties.js";import{PATTERN_TYPE_VALUES as er,PATTERN_TYPES as _r,isPatternType as rr,PATTERN_REGISTRY as Tr,patternConstructId as Ar,DEPLOYABLE_PATTERN_TYPES as Sr,OPENNEXT_PATTERN_TYPES as tr,isOpenNextPatternType as or,CLOUDFRONT_PRICE_CLASS_VALUES as ar,STATIC_SITE_CONFIG_KEYS as Nr,STATIC_SITE_DEPLOY_INJECTED_KEYS as Rr,STATIC_SITE_CDN_CONFIG_KEYS as Ir,STATIC_SITE_ROUTING_VALUES as Or,STATIC_SITE_ROUTING_INFO as Cr,PATTERN_CREATE_INPUT_VALUES as ir,PATTERN_CREATE_INPUT_FLAGS as nr}from"./patterns/patternTypes.js";import{FRAMEWORK_VALUES as Pr,FRAMEWORKS as Lr,isFramework as sr,FRAMEWORK_PATTERN_RECOMMENDATIONS as Dr,recommendPatternForFramework as pr,CREATABLE_FRAMEWORKS as Mr,requiredInputsForFramework as cr}from"./patterns/frameworkPatterns.js";import{DEFAULT_FORMS_FROM_LOCAL_PART as Fr,defaultFormsFromAddress as Ur,defaultFormsCorsOrigin as lr,isAddressAtDomain as ur}from"./patterns/staticSiteForms.js";import{DEV_SUBSTRATE_PARAMS_SCHEMA_VERSION as Gr,DEV_SUBSTRATE_PARAMS_FILENAME as dr,DevSubstrateSynthPropsSchema as gr,DevSubstrateParamsSchema as hr}from"./devSubstrate/params.js";import{DEV_SUBSTRATE_ENTRYPOINT_SOURCE as Vr}from"./devSubstrate/entrypoint.js";import{BLESSED_CDK_TOOLCHAIN as yr}from"./cdkToolchain.js";import{DEPLOYMENT_FAILURE_PHASES as vr,DeploymentFailurePhaseSchema as Xr,DEPLOYMENT_FAULT_ATTRIBUTIONS as br,DeploymentFaultAttributionSchema as Br,DEPLOYMENT_FAILURE_PROVIDER_SOURCES as Wr,DeploymentFailureProviderSourceSchema as Jr,DEPLOYMENT_FAILURE_CODE_PATTERN as kr,DEPLOYMENT_FAILURE_SCHEMA_VERSION as jr,DEPLOYMENT_FAILURE_LIMITS as wr,DeploymentFailureAnalysisSchema as Zr,DeploymentFailureProviderSchema as qr,DeploymentFailureResourceSchema as zr,DeploymentFailureSchema as Qr,parseDeploymentFailure as $r,DEPLOYMENT_FAILURE_DOCS_BASE_URL as ET,deploymentFailureDocsUrl as eT,DEPLOYMENT_FAULT_COPY as _T,DEPLOYMENT_PROVIDER_LABELS as rT,deriveErrorMessageFromFailure as TT,toDeploymentFailureAnalysis as AT}from"./failure/deploymentFailure.js";import{extractErrorWindow as tT,ERROR_WINDOW_CONTEXT_LINES as oT}from"./failure/extractErrorWindow.js";import{FJALL_COMPONENT_GITIGNORE as NT,FJALL_PROJECT_GITIGNORE as RT,FJALL_STATE_GITIGNORE_ENTRIES as IT,FJALL_MANAGED_STATE_DIR_ENTRIES as OT,LOCAL_CONFIG_GITIGNORE_ENTRY as CT}from"./scaffold/gitignore.js";import{ensureGitignoreEntries as nT}from"./scaffold/ensureGitignore.js";export{jE as ACCOUNT_ROLES,GE as ACCOUNT_STAGES,uE as ACCOUNT_STAGES_WITH_ROOT,XE as ACCOUNT_STAGE_EFFECTS,dE as ACCOUNT_STAGE_LABELS,hE as ACCOUNT_TIERS,we as AGENT_INSTALL_COMMAND,je as AGENT_SETUP_PROMPTS,C as APPROVAL_TOKEN_OUTPUT_PREFIX,x_ as ARTEFACT_OUTPUT_FIELDS,re as AWS_REGIONS_METADATA,HE as AccountTierSchema,I as BACKUP_VAULT_NAME,yr as BLESSED_CDK_TOOLCHAIN,y as CAPACITY_ANCHOR_MAX_LENGTH,Y as CAPACITY_ANCHOR_PATTERN,K as CAPACITY_IDENTITY_CONTEXT_KEY,H as CAPACITY_SLOT_MAX_LENGTH,h as CAPACITY_SLOT_PATTERN,B_ as CLICKHOUSE_MIGRATION_SKIP_RE,ar as CLOUDFRONT_PRICE_CLASS_VALUES,Ye as COMPLIANCE_ISSUE_STATUSES,he as CONNECTION_FAILURE_REASONS,de as CONNECTION_PHASES,ge as CONNECTION_TERMINAL_FAILURE_PHASES,p_ as CONTENT_HASH_TAG_PATTERN,Mr as CREATABLE_FRAMEWORKS,b as CapacityIdentityConfigSchema,v as CapacityIdentityPinSchema,X as CapacityIdentityWireSchema,xe as ConnectionWireSchema,Ge as ConnectionsListResponseSchema,mE as DANGEROUS_ENV_VARS,V as DEFAULT_CAPACITY_SLOT,Fr as DEFAULT_FORMS_FROM_LOCAL_PART,Te as DEFAULT_REGION,Sr as DEPLOYABLE_PATTERN_TYPES,kr as DEPLOYMENT_FAILURE_CODE_PATTERN,ET as DEPLOYMENT_FAILURE_DOCS_BASE_URL,wr as DEPLOYMENT_FAILURE_LIMITS,vr as DEPLOYMENT_FAILURE_PHASES,Wr as DEPLOYMENT_FAILURE_PROVIDER_SOURCES,jr as DEPLOYMENT_FAILURE_SCHEMA_VERSION,br as DEPLOYMENT_FAULT_ATTRIBUTIONS,_T as DEPLOYMENT_FAULT_COPY,rT as DEPLOYMENT_PROVIDER_LABELS,c_ as DEPLOY_MODES,Vr as DEV_SUBSTRATE_ENTRYPOINT_SOURCE,dr as DEV_SUBSTRATE_PARAMS_FILENAME,Gr as DEV_SUBSTRATE_PARAMS_SCHEMA_VERSION,_ as DNS_APEX,N as DOMAIN_DEPLOY_DEFAULT_PHASE,f_ as DeployModeSchema,Zr as DeploymentFailureAnalysisSchema,Xr as DeploymentFailurePhaseSchema,qr as DeploymentFailureProviderSchema,Jr as DeploymentFailureProviderSourceSchema,zr as DeploymentFailureResourceSchema,Qr as DeploymentFailureSchema,Br as DeploymentFaultAttributionSchema,hr as DevSubstrateParamsSchema,gr as DevSubstrateSynthPropsSchema,oT as ERROR_WINDOW_CONTEXT_LINES,K_ as EXPECTED_CH_SCHEMA_VERSION_ENV,Y_ as EXPECTED_SCHEMA_VERSION_ENV,y_ as EXPECTED_SCHEMA_VERSION_TOOL_ENV,He as EXTERNAL_ID_PATTERN,z_ as FJALL_CLICKHOUSE_USERS,NT as FJALL_COMPONENT_GITIGNORE,SE as FJALL_CONFIG_DIR_ENV,tE as FJALL_CREDENTIALS_FILENAME,oE as FJALL_HOME_DIRNAME,aE as FJALL_LOG_DIR_ENV,q_ as FJALL_MAINTENANCE_USER,OT as FJALL_MANAGED_STATE_DIR_ENTRIES,RT as FJALL_PROJECT_GITIGNORE,Z_ as FJALL_SCHEMA_GATE_USER,IT as FJALL_STATE_GITIGNORE_ENTRIES,Lr as FRAMEWORKS,Dr as FRAMEWORK_PATTERN_RECOMMENDATIONS,Pr as FRAMEWORK_VALUES,YE as GOVERNANCE_ACCOUNT_TIERS,ie as GOVERNANCE_SCOPE_REQUIRED_CODE,o as HOSTS_OUTPUT_MAX_BYTES,F_ as IMAGE_TAG_PATTERN,Xe as INSTALL_SOURCES,U_ as ImageTagSchema,CT as LOCAL_CONFIG_GITIGNORE_ENTRY,Oe as MACHINE_ONLY_SCOPES,LE as MASKED_VALUE_MARKER,Se as MAX_SECONDARY_REGIONS,V_ as MIGRATION_SNAPSHOT_KIND_PREMIGRATE,H_ as MIGRATION_SNAPSHOT_KIND_TAG_KEY,g_ as MIGRATION_SNAPSHOT_NAME_PREFIX,h_ as MIGRATION_SNAPSHOT_RETENTION_DAYS_ENV,tr as OPENNEXT_PATTERN_TYPES,te as OPT_IN_REGION_CODES,nr as PATTERN_CREATE_INPUT_FLAGS,ir as PATTERN_CREATE_INPUT_VALUES,Tr as PATTERN_REGISTRY,_r as PATTERN_TYPES,er as PATTERN_TYPE_VALUES,$_ as PHYSICAL_NAME_FALLBACK_PROPERTIES,b_ as PRISMA_MIGRATION_DIR_RE,ve as PUBLIC_PACKAGE_NAME,pE as REDACTED_KEY_SENTINEL,Z as REGION_SHORT_CODES,C_ as RESERVED_APP_NAMES,i_ as RESERVED_APP_NAME_MESSAGE,m_ as RESERVED_APP_NAME_SUFFIX,P_ as RESERVED_APP_NAME_SUFFIX_MESSAGE,ZE as RESOURCE_CATEGORIES,X_ as SCHEMA_ADMIN_PASSWORD_ENV,v_ as SCHEMA_ADMIN_USER_ENV,J_ as SCHEMA_GATE_EXIT,k_ as SCHEMA_GATE_EXIT_HINTS,ME as SCOPED_TOKEN_REGEX,Ie as SCOPE_VALUES,Pe as SECRET_NAME_ERROR,me as SECRET_NAME_PATTERN,be as SETUP_COMMANDS,We as SETUP_MODES,ke as SETUP_STEPS,Je as SETUP_STEP_IDS,qe as SKILL_INSTALL_FILENAME,ze as SKILL_INSTALL_PATH,Ze as SKILL_INSTALL_SEGMENTS,se as SSM_COMPONENT_ERROR,Le as SSM_COMPONENT_PATTERN,De as SSM_STANDARD_MAX_VALUE_BYTES,Ir as STATIC_SITE_CDN_CONFIG_KEYS,Nr as STATIC_SITE_CONFIG_KEYS,Rr as STATIC_SITE_DEPLOY_INJECTED_KEYS,Cr as STATIC_SITE_ROUTING_INFO,Or as STATIC_SITE_ROUTING_VALUES,xE as STRUCTURAL_ENVIRONMENTS,pe as SecretNamespaceSchema,l_ as ServiceArtefactSchema,u_ as ServiceArtefactsSchema,i as TOKEN_STDERR_PREFIX,Ce as USER_GRANTABLE_SCOPES,_e as abbreviateRegion,f as accountConstructKey,vE as accountStageEffect,WE as accountTier,l as albDnsExportName,u as albHostedZoneIdExportName,G_ as artefactOutputKey,G as bucketWebsiteEndpointExportName,d as bucketWebsiteHostedZoneIdExportName,S_ as buildAppConfigPath,Me as buildNamespaceParts,ce as buildParameterPath,M as capitalise,qE as categoriseResource,x as cdnDomainExportName,j as defaultConnectedAccountName,lr as defaultFormsCorsOrigin,Ur as defaultFormsFromAddress,eT as deploymentFailureDocsUrl,e_ as deriveAllTargets,D_ as deriveContentHashTag,TT as deriveErrorMessageFromFailure,$e as deriveRegionsFromOrgConfig,E_ as deriveTargets,nT as ensureGitignoreEntries,__ as environmentOrTier,KE as environmentToTier,le as escapeDotEnvValue,tT as extractErrorWindow,PE as filterDangerousEnvVars,J as findAccountNameCollision,a_ as findBoundaryPath,o_ as findInfrastructurePaths,r_ as findTarget,q as findTrailingRegionShortCode,NE as fjallCredentialsPath,RE as fjallHomeDir,IE as fjallLogDir,OE as fjallStatePath,bE as formatAccountStageList,TE as formatErrorString,T_ as generateTargetName,r as getDomainExportNames,T as getDomainStackName,A as getDomainUsEast1CertificatesStackName,kE as getEnvironmentLabel,_E as getErrorCode,EE as getErrorMessage,rE as getErrorStack,zE as getExpectedDuration,QE as getFriendlyResourceType,Ae as getRegionInfo,c as getSafeZoneName,F as hasAsciiStableConstructKey,eE as hasErrorCode,L_ as hasReservedAppNameSuffix,S as hostsExportPartName,m as imageTagParameterName,I_ as inferContainerFromCandidates,gE as isAccountStage,VE as isAccountTier,ur as isAddressAtDomain,ye as isComplianceIssueStatus,sr as isFramework,yE as isGovernanceTier,N_ as isInfrastructureFile,Fe as isManageablePath,a as isManagedDomainBinding,or as isOpenNextPatternType,rr as isPatternType,n_ as isReservedAppName,UE as mapSettledWithConcurrency,sE as maskSensitiveOutput,$ as normaliseError,oe as optInRegionWarning,$r as parseDeploymentFailure,Ue as parseDotEnv,Ee as parseGitRemoteUrl,fe as parseParameterPath,DE as parseShellArgs,Ar as patternConstructId,B as projectCapacityIdentityToTarget,pr as recommendPatternForFramework,z as regionSuffixRejectionMessage,ae as regions,cr as requiredInputsForFramework,JE as resolveSynthEnvironment,j_ as schemaGateExitKind,t as serialiseHostsChunks,iE as singleton,fE as sleep,BE as stageFromWireEnvironment,w as suffixedAccountName,Ne as suggestRegionForTimezone,AT as toDeploymentFailureAnalysis,s as toKebab,L as toPascalCase,p as toScreamingSnake,D as toValidDatabaseName,Be as upgradeCommand};
1
+ import{DNS_APEX as _,getDomainExportNames as r,getDomainStackName as T,getDomainUsEast1CertificatesStackName as A,hostsExportPartName as S,serialiseHostsChunks as t,HOSTS_OUTPUT_MAX_BYTES as o,isManagedDomainBinding as a,DOMAIN_DEPLOY_DEFAULT_PHASE as N}from"./infra/domainExports.js";import{BACKUP_VAULT_NAME as I}from"./infra/backupVault.js";import{APPROVAL_TOKEN_OUTPUT_PREFIX as C,TOKEN_STDERR_PREFIX as i}from"./deploy/approvalTokenOutput.js";import{imageTagParameterName as m}from"./infra/imageTags.js";import{toPascalCase as L,toKebab as s,toValidDatabaseName as D,toScreamingSnake as p,capitalise as M,getSafeZoneName as c,accountConstructKey as f,hasAsciiStableConstructKey as F}from"./naming/caseConversion.js";import{albDnsExportName as l,albHostedZoneIdExportName as u,cdnDomainExportName as x,bucketWebsiteEndpointExportName as G,bucketWebsiteHostedZoneIdExportName as d}from"./naming/targetExportNames.js";import{CAPACITY_SLOT_PATTERN as h,CAPACITY_SLOT_MAX_LENGTH as H,DEFAULT_CAPACITY_SLOT as V,CAPACITY_ANCHOR_PATTERN as Y,CAPACITY_ANCHOR_MAX_LENGTH as y,CAPACITY_IDENTITY_CONTEXT_KEY as K,CapacityIdentityPinSchema as v,CapacityIdentityWireSchema as X,CapacityIdentityConfigSchema as b,projectCapacityIdentityToTarget as B}from"./capacityIdentity.js";import{findAccountNameCollision as J}from"./naming/accountNameCollision.js";import{defaultConnectedAccountName as j,suffixedAccountName as w,REGION_SHORT_CODES as Z,findTrailingRegionShortCode as q,regionSuffixRejectionMessage as z}from"./naming/connectedAccountName.js";import{normaliseError as $,getErrorMessage as ee,hasErrorCode as Ee,getErrorCode as _e,getErrorStack as re,formatErrorString as Te}from"./errorUtils.js";import{FJALL_CONFIG_DIR_ENV as Se,FJALL_CREDENTIALS_FILENAME as te,FJALL_HOME_DIRNAME as oe,FJALL_LOG_DIR_ENV as ae,fjallCredentialsPath as Ne,fjallHomeDir as Re,fjallLogDir as Ie,fjallStatePath as Oe}from"./fjallHome.js";import{singleton as ie}from"./async/singleton.js";import{DANGEROUS_ENV_VARS as me,filterDangerousEnvVars as Pe,MASKED_VALUE_MARKER as Le,maskSensitiveOutput as se,parseShellArgs as De,REDACTED_KEY_SENTINEL as pe,SCOPED_TOKEN_REGEX as Me}from"./securityHelpers.js";import{sleep as fe}from"./async/sleep.js";import{mapSettledWithConcurrency as Ue}from"./async/concurrency.js";import{ACCOUNT_STAGES_WITH_ROOT as ue,STRUCTURAL_ENVIRONMENTS as xe,ACCOUNT_STAGES as Ge,ACCOUNT_STAGE_LABELS as de,isAccountStage as ge,ACCOUNT_TIERS as he,AccountTierSchema as He,isAccountTier as Ve,GOVERNANCE_ACCOUNT_TIERS as Ye,isGovernanceTier as ye,environmentToTier as Ke,accountStageEffect as ve,ACCOUNT_STAGE_EFFECTS as Xe,formatAccountStageList as be,stageFromWireEnvironment as Be,accountTier as We,resolveSynthEnvironment as Je,getEnvironmentLabel as ke,ACCOUNT_ROLES as je}from"./environments.js";import{RESOURCE_CATEGORIES as Ze,categoriseResource as qe,getExpectedDuration as ze,getFriendlyResourceType as Qe}from"./resourceCategorisation.js";import{parseGitRemoteUrl as eE}from"./repo/gitRemoteParser.js";import{abbreviateRegion as _E,AWS_REGIONS_METADATA as rE,DEFAULT_REGION as TE,getRegionInfo as AE,MAX_SECONDARY_REGIONS as SE,OPT_IN_REGION_CODES as tE,optInRegionWarning as oE,regions as aE,RETIRED_REGION_ABBREVIATIONS as NE,suggestRegionForTimezone as RE}from"./infra/regions.js";import{SCOPE_VALUES as OE,MACHINE_ONLY_SCOPES as CE,USER_GRANTABLE_SCOPES as iE,GOVERNANCE_SCOPE_REQUIRED_CODE as nE}from"./infra/tokenScopes.js";import{SECRET_NAME_PATTERN as PE,SECRET_NAME_ERROR as LE,SSM_COMPONENT_PATTERN as sE,SSM_COMPONENT_ERROR as DE,SSM_STANDARD_MAX_VALUE_BYTES as pE,SecretNamespaceSchema as ME,buildNamespaceParts as cE,buildParameterPath as fE,parseParameterPath as FE,isManageablePath as UE,parseDotEnv as lE,escapeDotEnvValue as uE}from"./secrets.js";import{ConnectionWireSchema as GE,ConnectionsListResponseSchema as dE,CONNECTION_PHASES as gE,CONNECTION_TERMINAL_FAILURE_PHASES as hE,CONNECTION_FAILURE_REASONS as HE,EXTERNAL_ID_PATTERN as VE}from"./infra/connectionsWire.js";import{COMPLIANCE_ISSUE_STATUSES as yE,isComplianceIssueStatus as KE}from"./complianceIssue.js";import{PUBLIC_PACKAGE_NAME as XE,INSTALL_SOURCES as bE,SETUP_COMMANDS as BE,upgradeCommand as WE,SETUP_MODES as JE,SETUP_STEP_IDS as kE,SETUP_STEPS as jE,AGENT_SETUP_PROMPTS as wE,AGENT_INSTALL_COMMAND as ZE,SKILL_INSTALL_SEGMENTS as qE,SKILL_INSTALL_FILENAME as zE,SKILL_INSTALL_PATH as QE}from"./onboarding/index.js";import{deriveRegionsFromOrgConfig as e_,deriveTargets as E_,deriveAllTargets as __,environmentOrTier as r_,explainRetiredTargetName as T_,findTarget as A_,generateTargetName as S_}from"./targets.js";import{buildAppConfigPath as o_}from"./repo/appPath.js";import{findInfrastructurePaths as N_,findBoundaryPath as R_,isInfrastructureFile as I_}from"./repo/findInfrastructurePaths.js";import{inferContainerFromCandidates as C_}from"./repo/inferContainerFromCandidates.js";import{RESERVED_APP_NAMES as n_,RESERVED_APP_NAME_MESSAGE as m_,isReservedAppName as P_,RESERVED_APP_NAME_SUFFIX as L_,RESERVED_APP_NAME_SUFFIX_MESSAGE as s_,hasReservedAppNameSuffix as D_}from"./naming/reservedAppNames.js";import{deriveContentHashTag as M_,CONTENT_HASH_TAG_PATTERN as c_}from"./infra/deriveContentHashTag.js";import{DEPLOY_MODES as F_,DeployModeSchema as U_,IMAGE_TAG_PATTERN as l_,ImageTagSchema as u_,ServiceArtefactSchema as x_,ServiceArtefactsSchema as G_,ARTEFACT_OUTPUT_FIELDS as d_,artefactOutputKey as g_}from"./infra/deployArtefacts.js";import{MIGRATION_SNAPSHOT_NAME_PREFIX as H_,MIGRATION_SNAPSHOT_RETENTION_DAYS_ENV as V_,MIGRATION_SNAPSHOT_KIND_TAG_KEY as Y_,MIGRATION_SNAPSHOT_KIND_PREMIGRATE as y_,EXPECTED_SCHEMA_VERSION_ENV as K_,EXPECTED_SCHEMA_VERSION_TOOL_ENV as v_,EXPECTED_CH_SCHEMA_VERSION_ENV as X_,SCHEMA_ADMIN_USER_ENV as b_,SCHEMA_ADMIN_PASSWORD_ENV as B_,PRISMA_MIGRATION_DIR_RE as W_,CLICKHOUSE_MIGRATION_SKIP_RE as J_}from"./migration/constants.js";import{SCHEMA_GATE_EXIT as j_,SCHEMA_GATE_EXIT_HINTS as w_,schemaGateExitKind as Z_}from"./migration/schemaGateExit.js";import{FJALL_SCHEMA_GATE_USER as z_,FJALL_MAINTENANCE_USER as Q_,FJALL_CLICKHOUSE_USERS as $_}from"./migration/clickhouseFrameworkUsers.js";import{PHYSICAL_NAME_FALLBACK_PROPERTIES as Er}from"./cfn/physicalNameProperties.js";import{PATTERN_TYPE_VALUES as rr,PATTERN_TYPES as Tr,isPatternType as Ar,PATTERN_REGISTRY as Sr,patternConstructId as tr,DEPLOYABLE_PATTERN_TYPES as or,OPENNEXT_PATTERN_TYPES as ar,isOpenNextPatternType as Nr,CLOUDFRONT_PRICE_CLASS_VALUES as Rr,STATIC_SITE_CONFIG_KEYS as Ir,STATIC_SITE_DEPLOY_INJECTED_KEYS as Or,STATIC_SITE_CDN_CONFIG_KEYS as Cr,STATIC_SITE_ROUTING_VALUES as ir,STATIC_SITE_ROUTING_INFO as nr,PATTERN_CREATE_INPUT_VALUES as mr,PATTERN_CREATE_INPUT_FLAGS as Pr}from"./patterns/patternTypes.js";import{FRAMEWORK_VALUES as sr,FRAMEWORKS as Dr,isFramework as pr,FRAMEWORK_PATTERN_RECOMMENDATIONS as Mr,recommendPatternForFramework as cr,CREATABLE_FRAMEWORKS as fr,requiredInputsForFramework as Fr}from"./patterns/frameworkPatterns.js";import{DEFAULT_FORMS_FROM_LOCAL_PART as lr,defaultFormsFromAddress as ur,defaultFormsCorsOrigin as xr,isAddressAtDomain as Gr}from"./patterns/staticSiteForms.js";import{DEV_SUBSTRATE_PARAMS_SCHEMA_VERSION as gr,DEV_SUBSTRATE_PARAMS_FILENAME as hr,DevSubstrateSynthPropsSchema as Hr,DevSubstrateParamsSchema as Vr}from"./devSubstrate/params.js";import{DEV_SUBSTRATE_ENTRYPOINT_SOURCE as yr}from"./devSubstrate/entrypoint.js";import{BLESSED_CDK_TOOLCHAIN as vr}from"./cdkToolchain.js";import{DEPLOYMENT_FAILURE_PHASES as br,DeploymentFailurePhaseSchema as Br,DEPLOYMENT_FAULT_ATTRIBUTIONS as Wr,DeploymentFaultAttributionSchema as Jr,DEPLOYMENT_FAILURE_PROVIDER_SOURCES as kr,DeploymentFailureProviderSourceSchema as jr,DEPLOYMENT_FAILURE_CODE_PATTERN as wr,DEPLOYMENT_FAILURE_SCHEMA_VERSION as Zr,DEPLOYMENT_FAILURE_LIMITS as qr,DeploymentFailureAnalysisSchema as zr,DeploymentFailureProviderSchema as Qr,DeploymentFailureResourceSchema as $r,DeploymentFailureSchema as eT,parseDeploymentFailure as ET,DEPLOYMENT_FAILURE_DOCS_BASE_URL as _T,deploymentFailureDocsUrl as rT,DEPLOYMENT_FAULT_COPY as TT,DEPLOYMENT_PROVIDER_LABELS as AT,deriveErrorMessageFromFailure as ST,toDeploymentFailureAnalysis as tT}from"./failure/deploymentFailure.js";import{extractErrorWindow as aT,ERROR_WINDOW_CONTEXT_LINES as NT}from"./failure/extractErrorWindow.js";import{FJALL_COMPONENT_GITIGNORE as IT,FJALL_PROJECT_GITIGNORE as OT,FJALL_STATE_GITIGNORE_ENTRIES as CT,FJALL_MANAGED_STATE_DIR_ENTRIES as iT,LOCAL_CONFIG_GITIGNORE_ENTRY as nT}from"./scaffold/gitignore.js";import{ensureGitignoreEntries as PT}from"./scaffold/ensureGitignore.js";export{je as ACCOUNT_ROLES,Ge as ACCOUNT_STAGES,ue as ACCOUNT_STAGES_WITH_ROOT,Xe as ACCOUNT_STAGE_EFFECTS,de as ACCOUNT_STAGE_LABELS,he as ACCOUNT_TIERS,ZE as AGENT_INSTALL_COMMAND,wE as AGENT_SETUP_PROMPTS,C as APPROVAL_TOKEN_OUTPUT_PREFIX,d_ as ARTEFACT_OUTPUT_FIELDS,rE as AWS_REGIONS_METADATA,He as AccountTierSchema,I as BACKUP_VAULT_NAME,vr as BLESSED_CDK_TOOLCHAIN,y as CAPACITY_ANCHOR_MAX_LENGTH,Y as CAPACITY_ANCHOR_PATTERN,K as CAPACITY_IDENTITY_CONTEXT_KEY,H as CAPACITY_SLOT_MAX_LENGTH,h as CAPACITY_SLOT_PATTERN,J_ as CLICKHOUSE_MIGRATION_SKIP_RE,Rr as CLOUDFRONT_PRICE_CLASS_VALUES,yE as COMPLIANCE_ISSUE_STATUSES,HE as CONNECTION_FAILURE_REASONS,gE as CONNECTION_PHASES,hE as CONNECTION_TERMINAL_FAILURE_PHASES,c_ as CONTENT_HASH_TAG_PATTERN,fr as CREATABLE_FRAMEWORKS,b as CapacityIdentityConfigSchema,v as CapacityIdentityPinSchema,X as CapacityIdentityWireSchema,GE as ConnectionWireSchema,dE as ConnectionsListResponseSchema,me as DANGEROUS_ENV_VARS,V as DEFAULT_CAPACITY_SLOT,lr as DEFAULT_FORMS_FROM_LOCAL_PART,TE as DEFAULT_REGION,or as DEPLOYABLE_PATTERN_TYPES,wr as DEPLOYMENT_FAILURE_CODE_PATTERN,_T as DEPLOYMENT_FAILURE_DOCS_BASE_URL,qr as DEPLOYMENT_FAILURE_LIMITS,br as DEPLOYMENT_FAILURE_PHASES,kr as DEPLOYMENT_FAILURE_PROVIDER_SOURCES,Zr as DEPLOYMENT_FAILURE_SCHEMA_VERSION,Wr as DEPLOYMENT_FAULT_ATTRIBUTIONS,TT as DEPLOYMENT_FAULT_COPY,AT as DEPLOYMENT_PROVIDER_LABELS,F_ as DEPLOY_MODES,yr as DEV_SUBSTRATE_ENTRYPOINT_SOURCE,hr as DEV_SUBSTRATE_PARAMS_FILENAME,gr as DEV_SUBSTRATE_PARAMS_SCHEMA_VERSION,_ as DNS_APEX,N as DOMAIN_DEPLOY_DEFAULT_PHASE,U_ as DeployModeSchema,zr as DeploymentFailureAnalysisSchema,Br as DeploymentFailurePhaseSchema,Qr as DeploymentFailureProviderSchema,jr as DeploymentFailureProviderSourceSchema,$r as DeploymentFailureResourceSchema,eT as DeploymentFailureSchema,Jr as DeploymentFaultAttributionSchema,Vr as DevSubstrateParamsSchema,Hr as DevSubstrateSynthPropsSchema,NT as ERROR_WINDOW_CONTEXT_LINES,X_ as EXPECTED_CH_SCHEMA_VERSION_ENV,K_ as EXPECTED_SCHEMA_VERSION_ENV,v_ as EXPECTED_SCHEMA_VERSION_TOOL_ENV,VE as EXTERNAL_ID_PATTERN,$_ as FJALL_CLICKHOUSE_USERS,IT as FJALL_COMPONENT_GITIGNORE,Se as FJALL_CONFIG_DIR_ENV,te as FJALL_CREDENTIALS_FILENAME,oe as FJALL_HOME_DIRNAME,ae as FJALL_LOG_DIR_ENV,Q_ as FJALL_MAINTENANCE_USER,iT as FJALL_MANAGED_STATE_DIR_ENTRIES,OT as FJALL_PROJECT_GITIGNORE,z_ as FJALL_SCHEMA_GATE_USER,CT as FJALL_STATE_GITIGNORE_ENTRIES,Dr as FRAMEWORKS,Mr as FRAMEWORK_PATTERN_RECOMMENDATIONS,sr as FRAMEWORK_VALUES,Ye as GOVERNANCE_ACCOUNT_TIERS,nE as GOVERNANCE_SCOPE_REQUIRED_CODE,o as HOSTS_OUTPUT_MAX_BYTES,l_ as IMAGE_TAG_PATTERN,bE as INSTALL_SOURCES,u_ as ImageTagSchema,nT as LOCAL_CONFIG_GITIGNORE_ENTRY,CE as MACHINE_ONLY_SCOPES,Le as MASKED_VALUE_MARKER,SE as MAX_SECONDARY_REGIONS,y_ as MIGRATION_SNAPSHOT_KIND_PREMIGRATE,Y_ as MIGRATION_SNAPSHOT_KIND_TAG_KEY,H_ as MIGRATION_SNAPSHOT_NAME_PREFIX,V_ as MIGRATION_SNAPSHOT_RETENTION_DAYS_ENV,ar as OPENNEXT_PATTERN_TYPES,tE as OPT_IN_REGION_CODES,Pr as PATTERN_CREATE_INPUT_FLAGS,mr as PATTERN_CREATE_INPUT_VALUES,Sr as PATTERN_REGISTRY,Tr as PATTERN_TYPES,rr as PATTERN_TYPE_VALUES,Er as PHYSICAL_NAME_FALLBACK_PROPERTIES,W_ as PRISMA_MIGRATION_DIR_RE,XE as PUBLIC_PACKAGE_NAME,pe as REDACTED_KEY_SENTINEL,Z as REGION_SHORT_CODES,n_ as RESERVED_APP_NAMES,m_ as RESERVED_APP_NAME_MESSAGE,L_ as RESERVED_APP_NAME_SUFFIX,s_ as RESERVED_APP_NAME_SUFFIX_MESSAGE,Ze as RESOURCE_CATEGORIES,NE as RETIRED_REGION_ABBREVIATIONS,B_ as SCHEMA_ADMIN_PASSWORD_ENV,b_ as SCHEMA_ADMIN_USER_ENV,j_ as SCHEMA_GATE_EXIT,w_ as SCHEMA_GATE_EXIT_HINTS,Me as SCOPED_TOKEN_REGEX,OE as SCOPE_VALUES,LE as SECRET_NAME_ERROR,PE as SECRET_NAME_PATTERN,BE as SETUP_COMMANDS,JE as SETUP_MODES,jE as SETUP_STEPS,kE as SETUP_STEP_IDS,zE as SKILL_INSTALL_FILENAME,QE as SKILL_INSTALL_PATH,qE as SKILL_INSTALL_SEGMENTS,DE as SSM_COMPONENT_ERROR,sE as SSM_COMPONENT_PATTERN,pE as SSM_STANDARD_MAX_VALUE_BYTES,Cr as STATIC_SITE_CDN_CONFIG_KEYS,Ir as STATIC_SITE_CONFIG_KEYS,Or as STATIC_SITE_DEPLOY_INJECTED_KEYS,nr as STATIC_SITE_ROUTING_INFO,ir as STATIC_SITE_ROUTING_VALUES,xe as STRUCTURAL_ENVIRONMENTS,ME as SecretNamespaceSchema,x_ as ServiceArtefactSchema,G_ as ServiceArtefactsSchema,i as TOKEN_STDERR_PREFIX,iE as USER_GRANTABLE_SCOPES,_E as abbreviateRegion,f as accountConstructKey,ve as accountStageEffect,We as accountTier,l as albDnsExportName,u as albHostedZoneIdExportName,g_ as artefactOutputKey,G as bucketWebsiteEndpointExportName,d as bucketWebsiteHostedZoneIdExportName,o_ as buildAppConfigPath,cE as buildNamespaceParts,fE as buildParameterPath,M as capitalise,qe as categoriseResource,x as cdnDomainExportName,j as defaultConnectedAccountName,xr as defaultFormsCorsOrigin,ur as defaultFormsFromAddress,rT as deploymentFailureDocsUrl,__ as deriveAllTargets,M_ as deriveContentHashTag,ST as deriveErrorMessageFromFailure,e_ as deriveRegionsFromOrgConfig,E_ as deriveTargets,PT as ensureGitignoreEntries,r_ as environmentOrTier,Ke as environmentToTier,uE as escapeDotEnvValue,T_ as explainRetiredTargetName,aT as extractErrorWindow,Pe as filterDangerousEnvVars,J as findAccountNameCollision,R_ as findBoundaryPath,N_ as findInfrastructurePaths,A_ as findTarget,q as findTrailingRegionShortCode,Ne as fjallCredentialsPath,Re as fjallHomeDir,Ie as fjallLogDir,Oe as fjallStatePath,be as formatAccountStageList,Te as formatErrorString,S_ as generateTargetName,r as getDomainExportNames,T as getDomainStackName,A as getDomainUsEast1CertificatesStackName,ke as getEnvironmentLabel,_e as getErrorCode,ee as getErrorMessage,re as getErrorStack,ze as getExpectedDuration,Qe as getFriendlyResourceType,AE as getRegionInfo,c as getSafeZoneName,F as hasAsciiStableConstructKey,Ee as hasErrorCode,D_ as hasReservedAppNameSuffix,S as hostsExportPartName,m as imageTagParameterName,C_ as inferContainerFromCandidates,ge as isAccountStage,Ve as isAccountTier,Gr as isAddressAtDomain,KE as isComplianceIssueStatus,pr as isFramework,ye as isGovernanceTier,I_ as isInfrastructureFile,UE as isManageablePath,a as isManagedDomainBinding,Nr as isOpenNextPatternType,Ar as isPatternType,P_ as isReservedAppName,Ue as mapSettledWithConcurrency,se as maskSensitiveOutput,$ as normaliseError,oE as optInRegionWarning,ET as parseDeploymentFailure,lE as parseDotEnv,eE as parseGitRemoteUrl,FE as parseParameterPath,De as parseShellArgs,tr as patternConstructId,B as projectCapacityIdentityToTarget,cr as recommendPatternForFramework,z as regionSuffixRejectionMessage,aE as regions,Fr as requiredInputsForFramework,Je as resolveSynthEnvironment,Z_ as schemaGateExitKind,t as serialiseHostsChunks,ie as singleton,fe as sleep,Be as stageFromWireEnvironment,w as suffixedAccountName,RE as suggestRegionForTimezone,tT as toDeploymentFailureAnalysis,s as toKebab,L as toPascalCase,p as toScreamingSnake,D as toValidDatabaseName,WE as upgradeCommand};
@@ -239,9 +239,22 @@ export declare function optInRegionWarning(regionCode: string): string;
239
239
  export declare function getRegionInfo(code: string): RegionInfo | undefined;
240
240
  /**
241
241
  * Abbreviate an AWS region name to a compact form.
242
- * e.g. "us-east-1" → "use1", "eu-west-1" → "euw1"
242
+ * e.g. "us-east-1" → "use1", "eu-west-1" → "euw1", "ap-south-1" → "apso1"
243
243
  */
244
244
  export declare function abbreviateRegion(region: string): string;
245
+ /**
246
+ * Region short codes Fjall used to emit and no longer does, mapped to the
247
+ * region(s) each one named. Derived by diffing the legacy derivation against
248
+ * the current one over the live metadata, so it extends itself.
249
+ *
250
+ * A code lands here for one of two reasons, and the guards treat them the same:
251
+ * it was ambiguous (`aps1` named both ap-southeast-1 and ap-south-1), or it was
252
+ * unambiguous but has moved (`apn1` named ap-northeast-1, now `apne1`). Either
253
+ * way a name carrying it is refused rather than resolved — an operator who
254
+ * typed it meant the region it used to mean, and quietly delivering a different
255
+ * one is precisely the failure the rename exists to end.
256
+ */
257
+ export declare const RETIRED_REGION_ABBREVIATIONS: ReadonlyMap<string, readonly string[]>;
245
258
  /**
246
259
  * Suggest the geographically nearest *deployable* AWS region for an IANA
247
260
  * timezone (e.g. from Intl.DateTimeFormat().resolvedOptions().timeZone). Never
@@ -1 +1 @@
1
- var i=Object.defineProperty;var t=(e,a)=>i(e,"name",{value:a,configurable:!0});const r="us-east-2",d=10,o=Object.freeze([{code:"us-east-2",name:"US East",city:"Ohio",country:"USA",optIn:!1},{code:"us-west-2",name:"US West",city:"Oregon",country:"USA",optIn:!1},{code:"us-east-1",name:"US East",city:"N. Virginia",country:"USA",optIn:!1},{code:"eu-west-1",name:"EU West",city:"Ireland",country:"Ireland",optIn:!1},{code:"eu-central-1",name:"EU Central",city:"Frankfurt",country:"Germany",optIn:!1},{code:"ap-southeast-1",name:"Asia Pacific",city:"Singapore",country:"Singapore",optIn:!1},{code:"ap-northeast-1",name:"Asia Pacific",city:"Tokyo",country:"Japan",optIn:!1},{code:"ap-southeast-2",name:"Asia Pacific",city:"Sydney",country:"Australia",optIn:!1},{code:"us-west-1",name:"US West",city:"N. California",country:"USA",optIn:!1},{code:"ca-central-1",name:"Canada",city:"Central",country:"Canada",optIn:!1},{code:"af-south-1",name:"Africa",city:"Cape Town",country:"South Africa",optIn:!0},{code:"ap-east-1",name:"Asia Pacific",city:"Hong Kong",country:"Hong Kong",optIn:!0},{code:"ap-northeast-2",name:"Asia Pacific",city:"Seoul",country:"South Korea",optIn:!1},{code:"ap-northeast-3",name:"Asia Pacific",city:"Osaka",country:"Japan",optIn:!1},{code:"ap-south-1",name:"Asia Pacific",city:"Mumbai",country:"India",optIn:!1},{code:"ap-south-2",name:"Asia Pacific",city:"Hyderabad",country:"India",optIn:!0},{code:"ap-southeast-3",name:"Asia Pacific",city:"Jakarta",country:"Indonesia",optIn:!0},{code:"ap-southeast-4",name:"Asia Pacific",city:"Melbourne",country:"Australia",optIn:!0},{code:"eu-central-2",name:"EU Central",city:"Zurich",country:"Switzerland",optIn:!0},{code:"eu-north-1",name:"EU North",city:"Stockholm",country:"Sweden",optIn:!1},{code:"eu-south-1",name:"EU South",city:"Milan",country:"Italy",optIn:!0},{code:"eu-south-2",name:"EU South",city:"Spain",country:"Spain",optIn:!0},{code:"eu-west-2",name:"EU West",city:"London",country:"UK",optIn:!1},{code:"eu-west-3",name:"EU West",city:"Paris",country:"France",optIn:!1},{code:"me-central-1",name:"Middle East",city:"UAE",country:"UAE",optIn:!0},{code:"me-south-1",name:"Middle East",city:"Bahrain",country:"Bahrain",optIn:!0},{code:"sa-east-1",name:"South America",city:"S\xE3o Paulo",country:"Brazil",optIn:!1},{code:"ap-southeast-5",name:"Asia Pacific",city:"Kuala Lumpur",country:"Malaysia",optIn:!0},{code:"ap-southeast-6",name:"Asia Pacific",city:"Auckland",country:"New Zealand",optIn:!0},{code:"ap-southeast-7",name:"Asia Pacific",city:"Bangkok",country:"Thailand",optIn:!0},{code:"ap-east-2",name:"Asia Pacific",city:"Taipei",country:"Taiwan",optIn:!0},{code:"ca-west-1",name:"Canada West",city:"Calgary",country:"Canada",optIn:!0},{code:"il-central-1",name:"Israel",city:"Tel Aviv",country:"Israel",optIn:!0},{code:"mx-central-1",name:"Mexico",city:"Central",country:"Mexico",optIn:!0}]),m=Object.freeze(o.map(e=>e.code)),c=new Set(o.filter(e=>e.optIn).map(e=>e.code));function y(e){return`${e} is an opt-in region: it must be enabled in the AWS account (Account settings \u2192 Regions) before deployment will succeed.`}t(y,"optInRegionWarning");function f(e){return o.find(a=>a.code===e)}t(f,"getRegionInfo");function I(e){const a=e.split("-");return a.length===3&&a[0]&&a[1]&&a[2]?`${a[0]}${a[1][0]}${a[2]}`:e}t(I,"abbreviateRegion");const p=Object.freeze({"Europe/London":"eu-west-2","Europe/Jersey":"eu-west-2","Europe/Guernsey":"eu-west-2","Europe/Isle_of_Man":"eu-west-2","Europe/Dublin":"eu-west-1","Europe/Paris":"eu-west-3","Europe/Berlin":"eu-central-1","Europe/Amsterdam":"eu-central-1","Europe/Brussels":"eu-central-1","Europe/Luxembourg":"eu-central-1","Europe/Vienna":"eu-central-1","Europe/Prague":"eu-central-1","Europe/Warsaw":"eu-central-1","Europe/Budapest":"eu-central-1","Europe/Zurich":"eu-central-2","Europe/Stockholm":"eu-north-1","Europe/Oslo":"eu-north-1","Europe/Copenhagen":"eu-north-1","Europe/Helsinki":"eu-north-1","Europe/Tallinn":"eu-north-1","Europe/Riga":"eu-north-1","Europe/Vilnius":"eu-north-1","Europe/Rome":"eu-south-1","Europe/Malta":"eu-south-1","Europe/Athens":"eu-south-1","Europe/Madrid":"eu-south-2","Europe/Lisbon":"eu-south-2","America/New_York":"us-east-1","America/Detroit":"us-east-1","America/Toronto":"ca-central-1","America/Montreal":"ca-central-1","America/Halifax":"ca-central-1","America/Winnipeg":"ca-central-1","America/Chicago":"us-east-2","America/Indiana/Indianapolis":"us-east-2","America/Mexico_City":"us-east-2","America/Denver":"us-west-2","America/Phoenix":"us-west-2","America/Edmonton":"us-west-2","America/Vancouver":"us-west-2","America/Los_Angeles":"us-west-1","America/Tijuana":"us-west-1","America/Sao_Paulo":"sa-east-1","America/Argentina/Buenos_Aires":"sa-east-1","America/Santiago":"sa-east-1","America/Montevideo":"sa-east-1","America/Lima":"sa-east-1","America/Bogota":"us-east-1","Asia/Tokyo":"ap-northeast-1","Asia/Seoul":"ap-northeast-2","Asia/Hong_Kong":"ap-east-1","Asia/Shanghai":"ap-east-1","Asia/Taipei":"ap-east-1","Asia/Macau":"ap-east-1","Asia/Singapore":"ap-southeast-1","Asia/Kuala_Lumpur":"ap-southeast-1","Asia/Bangkok":"ap-southeast-1","Asia/Ho_Chi_Minh":"ap-southeast-1","Asia/Manila":"ap-southeast-1","Asia/Jakarta":"ap-southeast-3","Asia/Kolkata":"ap-south-1","Asia/Calcutta":"ap-south-1","Asia/Karachi":"ap-south-1","Asia/Dhaka":"ap-south-1","Asia/Colombo":"ap-south-1","Asia/Dubai":"me-central-1","Asia/Muscat":"me-central-1","Asia/Qatar":"me-south-1","Asia/Bahrain":"me-south-1","Asia/Riyadh":"me-south-1","Asia/Kuwait":"me-south-1","Asia/Jerusalem":"me-south-1","Australia/Sydney":"ap-southeast-2","Australia/Brisbane":"ap-southeast-2","Australia/Canberra":"ap-southeast-2","Australia/Melbourne":"ap-southeast-4","Australia/Hobart":"ap-southeast-4","Australia/Adelaide":"ap-southeast-4","Pacific/Auckland":"ap-southeast-2","Pacific/Honolulu":"us-west-1","Africa/Johannesburg":"af-south-1","Africa/Casablanca":"eu-south-2","Africa/Cairo":"me-south-1","Indian/Maldives":"ap-south-1"}),l=Object.freeze({Europe:"eu-central-1",America:"us-east-1",Asia:"ap-southeast-1",Australia:"ap-southeast-2",Pacific:"ap-southeast-2",Africa:"af-south-1",Atlantic:"eu-west-1",Indian:"ap-south-1"}),A=Object.freeze({"af-south-1":"eu-west-1","ap-east-1":"ap-southeast-1","ap-southeast-3":"ap-southeast-1","ap-southeast-4":"ap-southeast-2","eu-central-2":"eu-central-1","eu-south-1":"eu-central-1","eu-south-2":"eu-west-3","me-central-1":"ap-south-1","me-south-1":"ap-south-1"});function u(e){return c.has(e)?A[e]??r:e}t(u,"toDeployableRegion");function E(e){if(!e)return;const a=p[e];if(a!==void 0)return u(a);const n=e.split("/")[0];if(n===void 0)return;const s=l[n];return s===void 0?void 0:u(s)}t(E,"suggestRegionForTimezone");export{o as AWS_REGIONS_METADATA,r as DEFAULT_REGION,d as MAX_SECONDARY_REGIONS,c as OPT_IN_REGION_CODES,I as abbreviateRegion,f as getRegionInfo,y as optInRegionWarning,m as regions,E as suggestRegionForTimezone};
1
+ var i=Object.defineProperty;var o=(e,a)=>i(e,"name",{value:a,configurable:!0});const c="us-east-2",I=10,s=Object.freeze([{code:"us-east-2",name:"US East",city:"Ohio",country:"USA",optIn:!1},{code:"us-west-2",name:"US West",city:"Oregon",country:"USA",optIn:!1},{code:"us-east-1",name:"US East",city:"N. Virginia",country:"USA",optIn:!1},{code:"eu-west-1",name:"EU West",city:"Ireland",country:"Ireland",optIn:!1},{code:"eu-central-1",name:"EU Central",city:"Frankfurt",country:"Germany",optIn:!1},{code:"ap-southeast-1",name:"Asia Pacific",city:"Singapore",country:"Singapore",optIn:!1},{code:"ap-northeast-1",name:"Asia Pacific",city:"Tokyo",country:"Japan",optIn:!1},{code:"ap-southeast-2",name:"Asia Pacific",city:"Sydney",country:"Australia",optIn:!1},{code:"us-west-1",name:"US West",city:"N. California",country:"USA",optIn:!1},{code:"ca-central-1",name:"Canada",city:"Central",country:"Canada",optIn:!1},{code:"af-south-1",name:"Africa",city:"Cape Town",country:"South Africa",optIn:!0},{code:"ap-east-1",name:"Asia Pacific",city:"Hong Kong",country:"Hong Kong",optIn:!0},{code:"ap-northeast-2",name:"Asia Pacific",city:"Seoul",country:"South Korea",optIn:!1},{code:"ap-northeast-3",name:"Asia Pacific",city:"Osaka",country:"Japan",optIn:!1},{code:"ap-south-1",name:"Asia Pacific",city:"Mumbai",country:"India",optIn:!1},{code:"ap-south-2",name:"Asia Pacific",city:"Hyderabad",country:"India",optIn:!0},{code:"ap-southeast-3",name:"Asia Pacific",city:"Jakarta",country:"Indonesia",optIn:!0},{code:"ap-southeast-4",name:"Asia Pacific",city:"Melbourne",country:"Australia",optIn:!0},{code:"eu-central-2",name:"EU Central",city:"Zurich",country:"Switzerland",optIn:!0},{code:"eu-north-1",name:"EU North",city:"Stockholm",country:"Sweden",optIn:!1},{code:"eu-south-1",name:"EU South",city:"Milan",country:"Italy",optIn:!0},{code:"eu-south-2",name:"EU South",city:"Spain",country:"Spain",optIn:!0},{code:"eu-west-2",name:"EU West",city:"London",country:"UK",optIn:!1},{code:"eu-west-3",name:"EU West",city:"Paris",country:"France",optIn:!1},{code:"me-central-1",name:"Middle East",city:"UAE",country:"UAE",optIn:!0},{code:"me-south-1",name:"Middle East",city:"Bahrain",country:"Bahrain",optIn:!0},{code:"sa-east-1",name:"South America",city:"S\xE3o Paulo",country:"Brazil",optIn:!1},{code:"ap-southeast-5",name:"Asia Pacific",city:"Kuala Lumpur",country:"Malaysia",optIn:!0},{code:"ap-southeast-6",name:"Asia Pacific",city:"Auckland",country:"New Zealand",optIn:!0},{code:"ap-southeast-7",name:"Asia Pacific",city:"Bangkok",country:"Thailand",optIn:!0},{code:"ap-east-2",name:"Asia Pacific",city:"Taipei",country:"Taiwan",optIn:!0},{code:"ca-west-1",name:"Canada West",city:"Calgary",country:"Canada",optIn:!0},{code:"il-central-1",name:"Israel",city:"Tel Aviv",country:"Israel",optIn:!0},{code:"mx-central-1",name:"Mexico",city:"Central",country:"Mexico",optIn:!0}]),E=Object.freeze(s.map(e=>e.code)),p=new Set(s.filter(e=>e.optIn).map(e=>e.code));function g(e){return`${e} is an opt-in region: it must be enabled in the AWS account (Account settings \u2192 Regions) before deployment will succeed.`}o(g,"optInRegionWarning");function S(e){return s.find(a=>a.code===e)}o(S,"getRegionInfo");const l=Object.freeze({southeast:"se",northeast:"ne",south:"so",north:"n",east:"e",west:"w",central:"c"});function h(e){const a=e.split("-");if(a.length===3&&a[0]&&a[1]&&a[2]){const t=l[a[1]]??a[1][0];return`${a[0]}${t}${a[2]}`}return e}o(h,"abbreviateRegion");function A(e){const a=e.split("-");return a.length===3&&a[0]&&a[1]&&a[2]?`${a[0]}${a[1][0]}${a[2]}`:e}o(A,"legacyAbbreviateRegion");const w=(()=>{const e=new Set(s.map(t=>h(t.code))),a=new Map;for(const t of s){const n=A(t.code);if(e.has(n))continue;const u=a.get(n);u===void 0?a.set(n,[t.code]):u.push(t.code)}return a})(),d=Object.freeze({"Europe/London":"eu-west-2","Europe/Jersey":"eu-west-2","Europe/Guernsey":"eu-west-2","Europe/Isle_of_Man":"eu-west-2","Europe/Dublin":"eu-west-1","Europe/Paris":"eu-west-3","Europe/Berlin":"eu-central-1","Europe/Amsterdam":"eu-central-1","Europe/Brussels":"eu-central-1","Europe/Luxembourg":"eu-central-1","Europe/Vienna":"eu-central-1","Europe/Prague":"eu-central-1","Europe/Warsaw":"eu-central-1","Europe/Budapest":"eu-central-1","Europe/Zurich":"eu-central-2","Europe/Stockholm":"eu-north-1","Europe/Oslo":"eu-north-1","Europe/Copenhagen":"eu-north-1","Europe/Helsinki":"eu-north-1","Europe/Tallinn":"eu-north-1","Europe/Riga":"eu-north-1","Europe/Vilnius":"eu-north-1","Europe/Rome":"eu-south-1","Europe/Malta":"eu-south-1","Europe/Athens":"eu-south-1","Europe/Madrid":"eu-south-2","Europe/Lisbon":"eu-south-2","America/New_York":"us-east-1","America/Detroit":"us-east-1","America/Toronto":"ca-central-1","America/Montreal":"ca-central-1","America/Halifax":"ca-central-1","America/Winnipeg":"ca-central-1","America/Chicago":"us-east-2","America/Indiana/Indianapolis":"us-east-2","America/Mexico_City":"us-east-2","America/Denver":"us-west-2","America/Phoenix":"us-west-2","America/Edmonton":"us-west-2","America/Vancouver":"us-west-2","America/Los_Angeles":"us-west-1","America/Tijuana":"us-west-1","America/Sao_Paulo":"sa-east-1","America/Argentina/Buenos_Aires":"sa-east-1","America/Santiago":"sa-east-1","America/Montevideo":"sa-east-1","America/Lima":"sa-east-1","America/Bogota":"us-east-1","Asia/Tokyo":"ap-northeast-1","Asia/Seoul":"ap-northeast-2","Asia/Hong_Kong":"ap-east-1","Asia/Shanghai":"ap-east-1","Asia/Taipei":"ap-east-1","Asia/Macau":"ap-east-1","Asia/Singapore":"ap-southeast-1","Asia/Kuala_Lumpur":"ap-southeast-1","Asia/Bangkok":"ap-southeast-1","Asia/Ho_Chi_Minh":"ap-southeast-1","Asia/Manila":"ap-southeast-1","Asia/Jakarta":"ap-southeast-3","Asia/Kolkata":"ap-south-1","Asia/Calcutta":"ap-south-1","Asia/Karachi":"ap-south-1","Asia/Dhaka":"ap-south-1","Asia/Colombo":"ap-south-1","Asia/Dubai":"me-central-1","Asia/Muscat":"me-central-1","Asia/Qatar":"me-south-1","Asia/Bahrain":"me-south-1","Asia/Riyadh":"me-south-1","Asia/Kuwait":"me-south-1","Asia/Jerusalem":"me-south-1","Australia/Sydney":"ap-southeast-2","Australia/Brisbane":"ap-southeast-2","Australia/Canberra":"ap-southeast-2","Australia/Melbourne":"ap-southeast-4","Australia/Hobart":"ap-southeast-4","Australia/Adelaide":"ap-southeast-4","Pacific/Auckland":"ap-southeast-2","Pacific/Honolulu":"us-west-1","Africa/Johannesburg":"af-south-1","Africa/Casablanca":"eu-south-2","Africa/Cairo":"me-south-1","Indian/Maldives":"ap-south-1"}),m=Object.freeze({Europe:"eu-central-1",America:"us-east-1",Asia:"ap-southeast-1",Australia:"ap-southeast-2",Pacific:"ap-southeast-2",Africa:"af-south-1",Atlantic:"eu-west-1",Indian:"ap-south-1"}),y=Object.freeze({"af-south-1":"eu-west-1","ap-east-1":"ap-southeast-1","ap-southeast-3":"ap-southeast-1","ap-southeast-4":"ap-southeast-2","eu-central-2":"eu-central-1","eu-south-1":"eu-central-1","eu-south-2":"eu-west-3","me-central-1":"ap-south-1","me-south-1":"ap-south-1"});function r(e){return p.has(e)?y[e]??c:e}o(r,"toDeployableRegion");function _(e){if(!e)return;const a=d[e];if(a!==void 0)return r(a);const t=e.split("/")[0];if(t===void 0)return;const n=m[t];return n===void 0?void 0:r(n)}o(_,"suggestRegionForTimezone");export{s as AWS_REGIONS_METADATA,c as DEFAULT_REGION,I as MAX_SECONDARY_REGIONS,p as OPT_IN_REGION_CODES,w as RETIRED_REGION_ABBREVIATIONS,h as abbreviateRegion,S as getRegionInfo,g as optInRegionWarning,E as regions,_ as suggestRegionForTimezone};
@@ -23,11 +23,15 @@ export declare function defaultConnectedAccountName(orgName: string, stage: stri
23
23
  */
24
24
  export declare function suffixedAccountName(base: string, shortId: string): string;
25
25
  /**
26
- * Every region short code an account name could be mistakenly suffixed with,
27
- * derived from the region metadata via `abbreviateRegion` (the same derivation
28
- * `generateTargetName` appends). Deduplicated — distinct regions can abbreviate
29
- * to the same code (e.g. ap-south-1 and ap-southeast-1 both → "aps1"), which is
30
- * harmless for membership testing.
26
+ * Every region short code an account name could be mistakenly suffixed with:
27
+ * the codes `abbreviateRegion` emits today (the same derivation
28
+ * `generateTargetName` appends), plus the retired ones it used to emit.
29
+ *
30
+ * The retired half matters because this set only ever answers "would appending
31
+ * a region to this name read as a doubled region?" — and it would, for a name a
32
+ * customer picked while an older Fjall was emitting the old codes. Deriving the
33
+ * set from the live codes alone would quietly start accepting `acme-aps1` as an
34
+ * account name the day the abbreviations changed.
31
35
  */
32
36
  export declare const REGION_SHORT_CODES: ReadonlySet<string>;
33
37
  /**
@@ -1 +1 @@
1
- var u=Object.defineProperty;var o=(e,t)=>u(e,"name",{value:t,configurable:!0});import{abbreviateRegion as c,AWS_REGIONS_METADATA as a}from"../infra/regions.js";import{toKebab as f}from"./caseConversion.js";function r(e){return f(e).replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}o(r,"slugifyAccountName");function m(e,t){const n=r(e),i=r(t);return n===""?i:i===""?n:`${n}-${i}`}o(m,"defaultConnectedAccountName");function p(e,t){const n=r(t);return n===""?e:`${e}-${n}`}o(p,"suffixedAccountName");const s=new Set(a.map(e=>c(e.code)));function x(e){const t=e.toLowerCase().split(/[-\s_]+/).filter(i=>i.length>0),n=t[t.length-1];if(n!==void 0&&s.has(n))return n}o(x,"findTrailingRegionShortCode");function A(e){return`Account name must not end with a region code ("-${e}") \u2014 the region is added automatically when deploying. Remove the "-${e}" suffix.`}o(A,"regionSuffixRejectionMessage");export{s as REGION_SHORT_CODES,m as defaultConnectedAccountName,x as findTrailingRegionShortCode,A as regionSuffixRejectionMessage,p as suffixedAccountName};
1
+ var u=Object.defineProperty;var o=(e,t)=>u(e,"name",{value:t,configurable:!0});import{abbreviateRegion as c,AWS_REGIONS_METADATA as a,RETIRED_REGION_ABBREVIATIONS as f}from"../infra/regions.js";import{toKebab as s}from"./caseConversion.js";function r(e){return s(e).replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}o(r,"slugifyAccountName");function p(e,t){const n=r(e),i=r(t);return n===""?i:i===""?n:`${n}-${i}`}o(p,"defaultConnectedAccountName");function R(e,t){const n=r(t);return n===""?e:`${e}-${n}`}o(R,"suffixedAccountName");const g=new Set([...a.map(e=>c(e.code)),...f.keys()]);function A(e){const t=e.toLowerCase().split(/[-\s_]+/).filter(i=>i.length>0),n=t[t.length-1];if(n!==void 0&&g.has(n))return n}o(A,"findTrailingRegionShortCode");function x(e){return`Account name must not end with a region code ("-${e}") \u2014 the region is added automatically when deploying. Remove the "-${e}" suffix.`}o(x,"regionSuffixRejectionMessage");export{g as REGION_SHORT_CODES,p as defaultConnectedAccountName,A as findTrailingRegionShortCode,x as regionSuffixRejectionMessage,R as suffixedAccountName};
package/dist/targets.d.ts CHANGED
@@ -23,13 +23,24 @@ export interface TargetAccount {
23
23
  environment: string | null;
24
24
  tier?: AccountTier;
25
25
  }
26
- export interface DerivedTarget {
27
- name: string;
26
+ /**
27
+ * The account and region a deployment target names.
28
+ *
29
+ * Split out from `DerivedTarget` because it is the half that carries meaning:
30
+ * the name is a derived encoding of this pair, and the encoding is not
31
+ * reversible in general (account names contain hyphens; two regions abbreviated
32
+ * to one code until 2026-09-04). Code that has resolved the pair passes it
33
+ * along as this type rather than composing a name for a callee to take apart.
34
+ */
35
+ export interface ResolvedTargetAccount {
28
36
  accountName: string;
29
37
  accountId: string;
30
38
  environment: string;
31
39
  region: string;
32
40
  }
41
+ export interface DerivedTarget extends ResolvedTargetAccount {
42
+ name: string;
43
+ }
33
44
  /**
34
45
  * Canonical stage-or-tier fallback. Structural accounts carry a null workload
35
46
  * stage, so display/naming/OU derivation fall back to the structural tier to
@@ -44,6 +55,19 @@ export declare function environmentOrTier(account: {
44
55
  * e.g. ("Production-US", "us-east-1") → "production-us-use1"
45
56
  */
46
57
  export declare function generateTargetName(accountName: string, region: string): string;
58
+ /**
59
+ * The refusal for a target name whose region code Fjall no longer emits, or
60
+ * `undefined` when the name carries no retired code.
61
+ *
62
+ * Every guard that turns a target name back into an account and region consumes
63
+ * this before searching, so a stale name is refused with the same explanation
64
+ * wherever it is typed. Without it the searches fail open in the worst
65
+ * direction: they scan every AWS region for a name match, so a retired code
66
+ * either finds nothing (a bare "not found" that teaches the operator nothing
67
+ * about why a name that worked last week does not now) or — for the codes that
68
+ * were ambiguous — finds the wrong region and deploys there.
69
+ */
70
+ export declare function explainRetiredTargetName(targetName: string): string | undefined;
47
71
  /**
48
72
  * Derive all deployment targets from org config accounts and regions.
49
73
  * Excludes root accounts (organisation management accounts).
package/dist/targets.js CHANGED
@@ -1 +1 @@
1
- var s=Object.defineProperty;var o=(e,n)=>s(e,"name",{value:n,configurable:!0});import{abbreviateRegion as u}from"./infra/regions.js";import{accountTier as m}from"./environments.js";function f(e){const n=[e.primaryRegion,...e.secondaryRegions??[],e.disasterRecoveryRegion].filter(t=>t!==void 0);return[...new Set(n)]}o(f,"deriveRegionsFromOrgConfig");function p(e){return e.environment??m(e)}o(p,"environmentOrTier");function d(e,n){return`${e.toLowerCase()}-${u(n)}`}o(d,"generateTargetName");function g(e,n){const t=[];for(const r of e){if(m(r)==="organisation")continue;const i=p(r);for(const a of n)t.push({name:d(r.name,a),accountName:r.name,accountId:r.id,environment:i,region:a})}return t.sort((r,i)=>{const a=r.environment.localeCompare(i.environment);if(a!==0)return a;const c=r.accountName.localeCompare(i.accountName);return c!==0?c:r.region.localeCompare(i.region)})}o(g,"deriveTargets");function x(e){return g(e.providerAccounts,f(e))}o(x,"deriveAllTargets");function y(e,n){if(n.length===0)return e;const t=new Set([e.primaryRegion,e.disasterRecoveryRegion].filter(Boolean)),r=n.filter(i=>!t.has(i));return{...e,secondaryRegions:r.length>0?r:void 0}}o(y,"mergeSecondaryRegions");function T(e,n){return e.find(t=>t.name===n)}o(T,"findTarget");export{x as deriveAllTargets,f as deriveRegionsFromOrgConfig,g as deriveTargets,p as environmentOrTier,T as findTarget,d as generateTargetName,y as mergeSecondaryRegions};
1
+ var l=Object.defineProperty;var i=(e,n)=>l(e,"name",{value:n,configurable:!0});import{abbreviateRegion as u,RETIRED_REGION_ABBREVIATIONS as g}from"./infra/regions.js";import{accountTier as m}from"./environments.js";function p(e){const n=[e.primaryRegion,...e.secondaryRegions??[],e.disasterRecoveryRegion].filter(o=>o!==void 0);return[...new Set(n)]}i(p,"deriveRegionsFromOrgConfig");function R(e){return e.environment??m(e)}i(R,"environmentOrTier");function v(e,n){return`${e.toLowerCase()}-${u(n)}`}i(v,"generateTargetName");function y(e){const n=e.toLowerCase(),o=n.lastIndexOf("-");if(o<=0)return;const r=n.slice(o+1),t=g.get(r);if(t===void 0||t.length===0)return;const s=n.slice(0,o),a=t.map(c=>`'${s}-${u(c)}' (${c})`),d=t.length>1?`"${r}" named ${t.join(" and ")}, so it could not say which`:`"${r}" named ${t[0]}`,f=a.length>1?`Use ${a.slice(0,-1).join(", ")} or ${a[a.length-1]}`:`Use ${a[0]}`;return`Target '${e}' uses a retired region code. ${d}. ${f}. Run 'fjall target list' to see every current target name.`}i(y,"explainRetiredTargetName");function $(e,n){const o=[];for(const r of e){if(m(r)==="organisation")continue;const t=R(r);for(const s of n)o.push({name:v(r.name,s),accountName:r.name,accountId:r.id,environment:t,region:s})}return o.sort((r,t)=>{const s=r.environment.localeCompare(t.environment);if(s!==0)return s;const a=r.accountName.localeCompare(t.accountName);return a!==0?a:r.region.localeCompare(t.region)})}i($,"deriveTargets");function w(e){return $(e.providerAccounts,p(e))}i(w,"deriveAllTargets");function I(e,n){if(n.length===0)return e;const o=new Set([e.primaryRegion,e.disasterRecoveryRegion].filter(Boolean)),r=n.filter(t=>!o.has(t));return{...e,secondaryRegions:r.length>0?r:void 0}}i(I,"mergeSecondaryRegions");function N(e,n){return e.find(o=>o.name===n)}i(N,"findTarget");export{w as deriveAllTargets,p as deriveRegionsFromOrgConfig,$ as deriveTargets,R as environmentOrTier,y as explainRetiredTargetName,N as findTarget,v as generateTargetName,I as mergeSecondaryRegions};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/util",
3
- "version": "31.0.0",
3
+ "version": "32.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/fjall-tech/fjall.git",