chore: import upstream snapshot with attribution
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
Publish CLI Package / publish-npm (push) Has been cancelled
Publish Python SDK / publish-pypi (push) Has been cancelled
Publish TypeScript SDK / publish-npm (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 13:20:55 +08:00
commit d25d482dc2
13754 changed files with 4996608 additions and 0 deletions
@@ -0,0 +1,78 @@
const RETRYABLE_DB_ERROR_CODES = new Set([
'08000',
'08001',
'08003',
'08004',
'08006',
'08007',
'53300',
'53400',
'57014',
'57P01',
'57P02',
'57P03',
'58000',
'58030',
])
const RETRYABLE_NETWORK_ERROR_CODES = new Set([
'ETIMEDOUT',
'ECONNRESET',
'ECONNREFUSED',
'EPIPE',
'ENETDOWN',
'ENETRESET',
'ENETUNREACH',
'UND_ERR_CONNECT_TIMEOUT',
'UND_ERR_SOCKET',
'UND_ERR_HEADERS_TIMEOUT',
'UND_ERR_BODY_TIMEOUT',
])
const RETRYABLE_APP_ERROR_CODES = new Set([
'SERVICE_OVERLOADED',
'RESOURCE_EXHAUSTED',
'CONNECTION_POOL_EXHAUSTED',
])
function getErrorChain(error: unknown): Array<Error & Record<string, unknown>> {
const chain: Array<Error & Record<string, unknown>> = []
let current: unknown = error
for (let depth = 0; depth < 10 && current instanceof Error; depth++) {
const candidate = current as Error & Record<string, unknown>
chain.push(candidate)
current = candidate.cause
}
return chain
}
export function describeRetryableInfrastructureError(
error: unknown
): Record<string, unknown> | undefined {
for (const candidate of getErrorChain(error)) {
const code = typeof candidate.code === 'string' ? candidate.code : undefined
const errno = typeof candidate.errno === 'string' ? candidate.errno : undefined
const syscall = typeof candidate.syscall === 'string' ? candidate.syscall : undefined
if (
(code && RETRYABLE_DB_ERROR_CODES.has(code)) ||
(code && RETRYABLE_NETWORK_ERROR_CODES.has(code)) ||
(code && RETRYABLE_APP_ERROR_CODES.has(code)) ||
(errno && RETRYABLE_NETWORK_ERROR_CODES.has(errno))
) {
return {
name: candidate.name,
message: candidate.message,
code,
errno,
syscall,
}
}
}
return undefined
}
export function isRetryableInfrastructureError(error: unknown): boolean {
return Boolean(describeRetryableInfrastructureError(error))
}