From d930f9a0b0fe099893247133e57db5925c8bb94e Mon Sep 17 00:00:00 2001 From: kang-heewon Date: Thu, 24 Sep 2026 22:20:17 +0900 Subject: [PATCH 1/5] fix(docs): require package README and spine example coverage --- docs/doc-examples-baseline.json | 3118 +++++++++++++++++++++- docs/doc-examples-coverage-baseline.json | 12 + docs/typechecked-examples.md | 6 + packages/cli/README.md | 2 +- packages/idempotency-core/README.md | 2 +- packages/telemetry-sdk-node/README.md | 2 +- scripts/doc-examples-check.mts | 110 +- scripts/release-gate-maintenance.mts | 1 + scripts/tests/doc-examples-check.spec.ts | 110 + 9 files changed, 3356 insertions(+), 7 deletions(-) create mode 100644 docs/doc-examples-coverage-baseline.json diff --git a/docs/doc-examples-baseline.json b/docs/doc-examples-baseline.json index e45ed6024d..b9c55dc8bd 100644 --- a/docs/doc-examples-baseline.json +++ b/docs/doc-examples-baseline.json @@ -1,4 +1,3120 @@ { "schemaVersion": 1, - "skippedBlocks": [] + "skippedBlocks": [ + { + "file": "packages/access-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/access-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 26, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/access-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 38, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/access-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 46, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/access-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 58, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/access-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 68, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/access-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 81, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/access-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 162, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/access-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 64, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 105, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-generated/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-ops/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 14, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-ops/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 44, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 1, + "language": "tsx", + "openingLine": 14, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 2, + "language": "tsx", + "openingLine": 54, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 3, + "language": "tsx", + "openingLine": 96, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 4, + "language": "tsx", + "openingLine": 151, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 5, + "language": "tsx", + "openingLine": 196, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 6, + "language": "tsx", + "openingLine": 220, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 7, + "language": "tsx", + "openingLine": 246, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 8, + "language": "tsx", + "openingLine": 286, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 9, + "language": "tsx", + "openingLine": 345, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/admin-react/README.md", + "blockIndex": 10, + "language": "tsx", + "openingLine": 405, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/ai-usage/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 8, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/analytics-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 18, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/analytics-posthog/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 19, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/analytics-posthog/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 33, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/analytics-posthog/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 44, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/analytics-posthog/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 55, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/analytics-posthog/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 87, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/analytics-posthog/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 102, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/analytics-posthog/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 120, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/audit-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/audit-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 44, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/audit-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 55, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/audit-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 40, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 54, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 70, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 81, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 122, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 139, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 168, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-better-auth/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 179, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-clerk/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 19, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-clerk/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 43, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-clerk/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 56, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-clerk/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 69, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-clerk/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 95, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-clerk/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 110, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-clerk/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 140, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 55, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/auth-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/batch-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 31, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/batch-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 64, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/batch-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 85, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/batch-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 113, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/batch-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 140, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/batch-qstash/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/batch-qstash/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 39, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/batch-qstash/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 63, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 42, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 79, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-core/README.md", + "blockIndex": 4, + "language": "ts", + "openingLine": 153, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-core/README.md", + "blockIndex": 5, + "language": "ts", + "openingLine": 208, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-core/README.md", + "blockIndex": 6, + "language": "ts", + "openingLine": 278, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 21, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 74, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 92, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 104, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 145, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 232, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 250, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 278, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 291, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/billing-polar/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 334, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/cache-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 30, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/cache-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 50, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/cache-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 68, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/cache-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 83, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/cache-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 129, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/create-croco-app/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 22, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/create-croco-app/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 40, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/credits-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 18, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/credits-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 30, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/credits-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 107, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/credits-core/README.md", + "blockIndex": 4, + "language": "ts", + "openingLine": 162, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/credits-drizzle/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 14, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 35, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 72, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 130, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 159, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 185, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 239, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 248, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 276, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-core/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 289, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/customer-health-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 22, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 41, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 63, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 81, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 100, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 113, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 126, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 175, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 191, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/dataloader-core/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 212, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/diagnostics-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 30, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/engagement-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 5, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/engagement-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 60, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/engagement-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 110, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/engagement-drizzle/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 24, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/entitlements-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/entitlements-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 66, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/entitlements-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/esbuild-plugin/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/esbuild-plugin/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 28, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/esbuild-plugin/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 70, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 37, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 61, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 78, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-inmemory/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-inmemory/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 39, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-tx/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 17, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-tx/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 39, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-tx/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 59, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-tx/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 69, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/events-tx/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 86, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 61, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 124, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 158, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 176, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 199, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 220, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 239, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 262, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 283, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 294, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 11, + "language": "typescript", + "openingLine": 310, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 12, + "language": "typescript", + "openingLine": 328, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 13, + "language": "typescript", + "openingLine": 389, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 14, + "language": "typescript", + "openingLine": 449, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-core/README.md", + "blockIndex": 15, + "language": "typescript", + "openingLine": 467, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/execution-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/features-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 16, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/features-posthog/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 25, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/features-posthog/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 43, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-config/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 23, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-config/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 44, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-config/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 68, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-config/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 88, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-config/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 105, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-config/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 120, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-config/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 155, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-config/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 171, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-context/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-context/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 34, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-context/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 62, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-context/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 72, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-context/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 127, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-logger/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-logger/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 39, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-logger/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 46, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-logger/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 112, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-logger/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 136, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-module/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 9, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-module/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 53, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-module/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 106, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-module/README.md", + "blockIndex": 4, + "language": "ts", + "openingLine": 180, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-module/README.md", + "blockIndex": 5, + "language": "ts", + "openingLine": 215, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-module/README.md", + "blockIndex": 6, + "language": "ts", + "openingLine": 269, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-module/README.md", + "blockIndex": 7, + "language": "ts", + "openingLine": 295, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-module/README.md", + "blockIndex": 8, + "language": "ts", + "openingLine": 346, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-preset/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 25, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/framework-routes/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 21, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-cloudflare/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 47, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-cloudflare/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 62, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-cloudflare/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 101, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-cloudflare/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 138, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-problems/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 17, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-problems/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 53, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 34, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 45, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 60, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 78, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 91, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 150, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 198, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 249, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 326, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 340, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-react/README.md", + "blockIndex": 11, + "language": "typescript", + "openingLine": 346, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-vite/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 48, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-vite/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 58, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-vite/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 89, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-vite/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 100, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-vite/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 110, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-vite/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 121, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/frontend-vite/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 132, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 22, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 40, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 68, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 91, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 113, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 127, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 140, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 184, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/gid-core/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 200, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/governance-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 10, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 22, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 66, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 77, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 89, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 99, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 113, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 162, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 172, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 204, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 236, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/health-core/README.md", + "blockIndex": 11, + "language": "typescript", + "openingLine": 273, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/idempotency-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 72, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/idempotency-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 106, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 17, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 42, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 52, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 72, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 83, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 96, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 118, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 130, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 138, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/impersonation-core/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 223, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/integrations-posthog/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 24, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/integrations-posthog/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 44, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/integrations-posthog/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 58, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/invitation-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/invitation-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 45, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/invitation-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/lifecycle-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 7, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/lifecycle-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 62, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/lifecycle-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 70, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/lifecycle-core/README.md", + "blockIndex": 4, + "language": "ts", + "openingLine": 120, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/lifecycle-core/README.md", + "blockIndex": 5, + "language": "ts", + "openingLine": 144, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/lifecycle-core/README.md", + "blockIndex": 6, + "language": "ts", + "openingLine": 191, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/membership-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/membership-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 36, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 52, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 59, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 73, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 130, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 157, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 177, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 240, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 308, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/meta-vite/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 356, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 59, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 85, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-core/README.md", + "blockIndex": 4, + "language": "ts", + "openingLine": 114, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-drizzle/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 82, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-drizzle/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 99, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-upstash/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metering-upstash/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 28, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metrics-billing/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 25, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metrics-billing/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 40, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metrics-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/metrics-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 30, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/migration-runner/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 47, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/migration-runner/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 185, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/notifications-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 28, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/notifications-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 48, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/notifications-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 86, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/notifications-react-email/README.md", + "blockIndex": 1, + "language": "tsx", + "openingLine": 5, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/notifications-resend/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/notifications-resend/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 38, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/notifications-resend/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 74, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/onboarding-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 21, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/onboarding-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 47, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/onboarding-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 89, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/onboarding-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 111, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/onboarding-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 168, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/onboarding-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 225, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/onboarding-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 244, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/onboarding-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/openapi-spec/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 17, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/outbox-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 9, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 25, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 54, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 74, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 84, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 111, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 122, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 146, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 171, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 187, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 207, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 11, + "language": "typescript", + "openingLine": 250, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 12, + "language": "typescript", + "openingLine": 260, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 13, + "language": "typescript", + "openingLine": 282, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 14, + "language": "typescript", + "openingLine": 295, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 15, + "language": "typescript", + "openingLine": 304, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 16, + "language": "typescript", + "openingLine": 348, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/pagination-core/README.md", + "blockIndex": 17, + "language": "typescript", + "openingLine": 359, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/preset-cloudflare/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 23, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/preset-cloudflare/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 33, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/preset-cloudflare/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 49, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/preset-lambda/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 20, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/preset-lambda/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 30, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/preset-node/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 28, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/preset-node/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 37, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/problems-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 16, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/problems-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 28, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/problems-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 36, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocol-codegen/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 7, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocol-codegen/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 28, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 23, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 54, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-graphql/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 27, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-graphql/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 46, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-graphql/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 70, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-graphql/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 114, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-rest/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-rest/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 35, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-rest/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 60, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-rest/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 90, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-rest/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 131, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-trpc/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-trpc/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 30, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/protocols-trpc/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 45, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/ratelimit-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/ratelimit-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 26, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/ratelimit-upstash/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/repository-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 98, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/repository-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 172, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/repository-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 197, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/repository-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 214, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/repository-core/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 240, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/repository-core/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 265, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/repository-core/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 299, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/retry-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 16, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/retry-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 29, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/retry-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 45, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/retry-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 67, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/retry-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 86, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/rpc-codegen/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 20, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/rpc-codegen/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 68, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/rpc-codegen/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 101, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/rpc-codegen/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 135, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/rpc-codegen/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 180, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/rpc-codegen/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 188, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/search-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/search-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 57, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/search-drizzle/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/search-meilisearch/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/search-meilisearch/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 117, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-cloudflare/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-cloudflare/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 65, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-cloudinary/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-cloudinary/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 37, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-cloudinary/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 79, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-cloudinary/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 137, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 23, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 39, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 56, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-r2/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/storage-r2/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 48, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 23, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 42, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 53, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-core/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 74, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-core/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 102, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-core/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 118, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-qstash/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-qstash/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 47, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-api/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-api/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 26, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-api/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 37, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-api/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 45, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-sdk-node/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 18, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-sdk-node/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 78, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-sdk-node/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 104, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-sdk-node/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 118, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/telemetry-sdk-node/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 134, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tenant-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 13, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tenant-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 24, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tenant-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 31, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/testing-resources/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 34, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/testing/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 5, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/testing/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 14, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/testing/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 36, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/testing/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 51, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/testing/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 326, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-cloudflare-workers/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 39, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-cloudflare-workers/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 77, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-graphql/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 19, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 32, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 122, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 162, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 4, + "language": "ts", + "openingLine": 194, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 5, + "language": "typescript", + "openingLine": 246, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 6, + "language": "typescript", + "openingLine": 262, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 303, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 8, + "language": "typescript", + "openingLine": 396, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 9, + "language": "typescript", + "openingLine": 435, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 10, + "language": "typescript", + "openingLine": 478, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 11, + "language": "typescript", + "openingLine": 492, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 12, + "language": "typescript", + "openingLine": 514, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/transports-http/README.md", + "blockIndex": 13, + "language": "typescript", + "openingLine": 529, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/triggers-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 23, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/triggers-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 50, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/triggers-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 82, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/triggers-qstash/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 16, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 44, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 75, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 18, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 53, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 72, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 4, + "language": "ts", + "openingLine": 97, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 5, + "language": "ts", + "openingLine": 125, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 6, + "language": "ts", + "openingLine": 141, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 7, + "language": "ts", + "openingLine": 149, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 8, + "language": "ts", + "openingLine": 169, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tx-drizzle/README.md", + "blockIndex": 9, + "language": "ts", + "openingLine": 198, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/ui-astryx/README.md", + "blockIndex": 1, + "language": "tsx", + "openingLine": 18, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/ui-astryx/README.md", + "blockIndex": 2, + "language": "tsx", + "openingLine": 32, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/ui-astryx/README.md", + "blockIndex": 3, + "language": "tsx", + "openingLine": 51, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/ui-astryx/README.md", + "blockIndex": 4, + "language": "tsx", + "openingLine": 75, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/warehouse-postgres/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 15, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/warehouse-postgres/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 39, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/webhooks-core/README.md", + "blockIndex": 1, + "language": "ts", + "openingLine": 14, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/webhooks-core/README.md", + "blockIndex": 2, + "language": "ts", + "openingLine": 104, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/webhooks-core/README.md", + "blockIndex": 3, + "language": "ts", + "openingLine": 121, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/workflow-core/README.md", + "blockIndex": 1, + "language": "typescript", + "openingLine": 24, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/workflow-core/README.md", + "blockIndex": 2, + "language": "typescript", + "openingLine": 84, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/workflow-core/README.md", + "blockIndex": 3, + "language": "typescript", + "openingLine": 111, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + } + ] } diff --git a/docs/doc-examples-coverage-baseline.json b/docs/doc-examples-coverage-baseline.json new file mode 100644 index 0000000000..7105714057 --- /dev/null +++ b/docs/doc-examples-coverage-baseline.json @@ -0,0 +1,12 @@ +{ + "schemaVersion": 1, + "uncoveredPackages": { + "protocols-core": "README examples depend on an application controller and undeclared contract types.", + "openapi-spec": "README example requires a contract graph supplied by the application.", + "rpc-codegen": "README examples require an application graph, action registry, or generated client files.", + "tx-drizzle": "README examples require a live Drizzle database and application schema symbols.", + "events-tx": "README examples require an application-owned store, transaction manager, and event types.", + "testing": "README examples require an application bootstrap, controller, or test-runner context.", + "create-croco-app": "README programmatic examples use published subpath entrypoints unavailable to the source-based docs checker." + } +} diff --git a/docs/typechecked-examples.md b/docs/typechecked-examples.md index 7fe93ef782..5e7a3ca7d0 100644 --- a/docs/typechecked-examples.md +++ b/docs/typechecked-examples.md @@ -10,6 +10,7 @@ marked as non-executable example text. - `README.md` - `docs/**/*.md` +- `packages/*/README.md` for public packages (`private` packages are excluded) - `packages/docs/src/content/docs/en/guides/**/*.{md,mdx}` - `packages/docs/src/content/docs/en/reference/**/*.{md,mdx}` - `packages/docs/src/content/docs/ko/**/*.{md,mdx}` @@ -39,6 +40,11 @@ Untyped TypeScript fences are not allowed for new documentation. Existing unmark tracked in `docs/doc-examples-baseline.json` with a reason so drift is visible. Do not add new baseline entries for new docs; either make the fence `typecheck` or mark it `no-check`. +The check also requires each package in `docs/package-catalog.json`'s 1.0 spine to appear in an +import from a `typecheck` fence. Imports through a package's public subpath count. Packages without +such an example must have a non-empty reason in `docs/doc-examples-coverage-baseline.json`. Remove +the reason when a checked example is added; stale coverage exceptions fail the check. + ## Authoring Workflow 1. Write complete copyable TypeScript as `typescript typecheck`. diff --git a/packages/cli/README.md b/packages/cli/README.md index b71feaf20b..d6bebfc435 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -21,7 +21,7 @@ Run from any directory inside a Croco workspace. The CLI automatically detects ` `argv` contains only Croco arguments; omit the Node executable and script path. -```typescript +```typescript typecheck import { createCrocoCommand, runCroco } from "@croco/cli"; const output: string[] = []; diff --git a/packages/idempotency-core/README.md b/packages/idempotency-core/README.md index e77ef067c2..82a4f2951a 100644 --- a/packages/idempotency-core/README.md +++ b/packages/idempotency-core/README.md @@ -10,7 +10,7 @@ pnpm add @croco/idempotency-core ## 사용법 -```ts +```ts typecheck import { IdempotencyCoordinator, InMemoryIdempotencyStore, diff --git a/packages/telemetry-sdk-node/README.md b/packages/telemetry-sdk-node/README.md index 49cbd34f52..b2f639e7c6 100644 --- a/packages/telemetry-sdk-node/README.md +++ b/packages/telemetry-sdk-node/README.md @@ -48,7 +48,7 @@ runtime rejects conflicting configuration rather than selecting a lifecycle owne ### 기본 초기화 -```typescript +```typescript typecheck import { TelemetryRuntime } from "@croco/telemetry-sdk-node"; const telemetry = TelemetryRuntime.getInstance(); diff --git a/scripts/doc-examples-check.mts b/scripts/doc-examples-check.mts index 268ace28ee..f893a1cf62 100644 --- a/scripts/doc-examples-check.mts +++ b/scripts/doc-examples-check.mts @@ -37,6 +37,8 @@ type Baseline = { }; const baselinePath = join("docs", "doc-examples-baseline.json"); +const coverageBaselinePath = join("docs", "doc-examples-coverage-baseline.json"); +const packageCatalogPath = join("docs", "package-catalog.json"); const defaultSkippedReason = "Legacy authored docs block is not yet isolated for documentation typechecking."; const docsRoots = [ @@ -165,6 +167,7 @@ function run(options: Options): { violations.push(...typecheckBlocks(options.rootDir, typecheckedBlocks)); } + violations.push(...validateCoverageBaseline(options.rootDir, typecheckedBlocks)); violations.push(...validateRootEnvironmentTemplate(options.rootDir)); return { @@ -567,7 +570,35 @@ function parseArgs(args: readonly string[]): Options { } function collectMarkdownFiles(rootDir: string): string[] { - return collectMarkdownFilesFromRoots(rootDir, docsRoots); + return [ + ...collectMarkdownFilesFromRoots(rootDir, docsRoots), + ...collectPublicPackageReadmes(rootDir), + ].sort((left, right) => relative(rootDir, left).localeCompare(relative(rootDir, right))); +} + +function collectPublicPackageReadmes(rootDir: string): string[] { + const packagesDir = join(rootDir, "packages"); + if (!existsSync(packagesDir)) { + return []; + } + + return readdirSync(packagesDir, { withFileTypes: true }) + .filter((entry) => entry.isDirectory()) + .flatMap((entry) => { + const packageDir = join(packagesDir, entry.name); + const manifestPath = join(packageDir, "package.json"); + const readmePath = join(packageDir, "README.md"); + if (!existsSync(manifestPath) || !existsSync(readmePath)) { + return []; + } + + const manifest = JSON.parse(readFileSync(manifestPath, "utf-8")) as unknown; + if (!isRecord(manifest) || typeof manifest.name !== "string") { + throw new Error(`${normalizeRelativePath(rootDir, manifestPath)} must have a package name`); + } + + return manifest.private === true ? [] : [readmePath]; + }); } function collectMarkdownFilesFromRoots(rootDir: string, roots: readonly string[]): string[] { @@ -730,6 +761,79 @@ function validateBaseline(rootDir: string, unmarkedBlocks: readonly MarkdownCode return violations; } +function validateCoverageBaseline(rootDir: string, blocks: readonly MarkdownCodeBlock[]): string[] { + const catalog = JSON.parse(readFileSync(join(rootDir, packageCatalogPath), "utf-8")) as unknown; + if (!isRecord(catalog) || !isRecord(catalog.spine) || !Array.isArray(catalog.spine.packages)) { + throw new Error(`${packageCatalogPath} spine.packages must be an array`); + } + + const spinePackages = catalog.spine.packages; + if (!spinePackages.every((name): name is string => typeof name === "string" && name.length > 0)) { + throw new Error(`${packageCatalogPath} spine.packages must contain package names`); + } + + const packageNames = new Map(); + for (const slug of spinePackages) { + const manifestPath = join(rootDir, "packages", slug, "package.json"); + const manifest = JSON.parse(readFileSync(manifestPath, "utf-8")) as unknown; + if (!isRecord(manifest) || typeof manifest.name !== "string") { + throw new Error(`${normalizeRelativePath(rootDir, manifestPath)} must have a package name`); + } + packageNames.set(slug, manifest.name); + } + + const baseline = JSON.parse( + readFileSync(join(rootDir, coverageBaselinePath), "utf-8"), + ) as unknown; + if ( + !isRecord(baseline) || + baseline.schemaVersion !== 1 || + !isRecord(baseline.uncoveredPackages) + ) { + throw new Error(`${coverageBaselinePath} must have schemaVersion 1 and uncoveredPackages`); + } + + const covered = new Set(); + for (const block of blocks) { + const source = ts.createSourceFile(block.file, block.code, ts.ScriptTarget.Latest, true); + for (const statement of source.statements) { + if (!ts.isImportDeclaration(statement) || !ts.isStringLiteral(statement.moduleSpecifier)) { + continue; + } + + for (const [slug, packageName] of packageNames) { + const importedName = statement.moduleSpecifier.text; + if (importedName === packageName || importedName.startsWith(`${packageName}/`)) { + covered.add(slug); + } + } + } + } + + const violations: string[] = []; + const spineSet = new Set(spinePackages); + for (const [name, reason] of Object.entries(baseline.uncoveredPackages)) { + if (!spineSet.has(name)) { + violations.push(`${coverageBaselinePath} ${name} is not a spine package`); + } else if (covered.has(name)) { + violations.push(`${coverageBaselinePath} ${name} is already covered by a typechecked import`); + } + if (typeof reason !== "string" || reason.trim().length === 0) { + violations.push(`${coverageBaselinePath} ${name} must include a reason`); + } + } + + for (const name of spinePackages) { + if (!covered.has(name) && !(name in baseline.uncoveredPackages)) { + violations.push( + `${packageNames.get(name)} has no typechecked documentation import or reason in ${coverageBaselinePath}`, + ); + } + } + + return violations; +} + function loadBaseline(rootDir: string): Baseline { const path = join(rootDir, baselinePath); if (!existsSync(path)) { @@ -849,8 +953,8 @@ function createCompilerOptions(rootDir: string): ts.CompilerOptions { forceConsistentCasingInFileNames: true, isolatedModules: true, jsx: ts.JsxEmit.ReactJSX, - module: ts.ModuleKind.NodeNext, - moduleResolution: ts.ModuleResolutionKind.NodeNext, + module: ts.ModuleKind.ESNext, + moduleResolution: ts.ModuleResolutionKind.Bundler, noEmit: true, noUnusedLocals: false, noUnusedParameters: false, diff --git a/scripts/release-gate-maintenance.mts b/scripts/release-gate-maintenance.mts index 224cbd43ef..13a5dc5876 100644 --- a/scripts/release-gate-maintenance.mts +++ b/scripts/release-gate-maintenance.mts @@ -187,6 +187,7 @@ export const RELEASE_GATE_POLICY_INPUT_PATHS = [ "config/live-test-resources.json", "croco.arch.json", "docs/doc-examples-baseline.json", + "docs/doc-examples-coverage-baseline.json", "docs/package-catalog.json", "docs/package-docs-baseline.json", "docs/problem-code-registry.json", diff --git a/scripts/tests/doc-examples-check.spec.ts b/scripts/tests/doc-examples-check.spec.ts index 478f73bedc..6e5cf41429 100644 --- a/scripts/tests/doc-examples-check.spec.ts +++ b/scripts/tests/doc-examples-check.spec.ts @@ -68,6 +68,25 @@ describe("doc-examples-check.mts", () => { scriptTestTimeout, ); + it( + "resolves extensionless imports in workspace package source", + () => { + const root = createTempRoot(); + writeFileSync( + join(root, "packages", "alpha", "src", "index.ts"), + 'export { value } from "./value";\n', + ); + writeFileSync( + join(root, "packages", "alpha", "src", "value.ts"), + "export const value = 1;\n", + ); + writeValidDocs(root); + + expect(runScript(root, "--check").status).toBe(0); + }, + scriptTestTimeout, + ); + it( "requires untypechecked TypeScript fences to be explicitly marked or recorded", () => { @@ -103,6 +122,90 @@ describe("doc-examples-check.mts", () => { scriptTestTimeout, ); + it( + "checks unmarked fences in public package READMEs and skips private packages", + () => { + const root = createTempRoot(); + writeValidDocs(root); + writeFileSync( + join(root, "packages", "alpha", "README.md"), + "```typescript\nconst missing = 1;\n```\n", + ); + writePackage(root, "private-tool", { name: "@croco/private-tool", private: true }); + writeFileSync( + join(root, "packages", "private-tool", "README.md"), + "```typescript\nconst ignored = 1;\n```\n", + ); + + const result = runScript(root, "--check"); + + expect(result.status).toBe(1); + expect(result.stdout).toContain("packages/alpha/README.md:1"); + expect(result.stdout).not.toContain("packages/private-tool/README.md"); + }, + scriptTestTimeout, + ); + + it( + "requires a reason for every spine package without a checked import", + () => { + const root = createTempRoot(); + writeValidDocs(root); + writePackage(root, "beta", { name: "@croco/beta" }); + writeJson(join(root, "docs", "package-catalog.json"), { + spine: { packages: ["alpha", "beta"] }, + }); + + const missing = runScript(root, "--check"); + expect(missing.status).toBe(1); + expect(missing.stdout).toContain("@croco/beta has no typechecked documentation import"); + + writeJson(join(root, "docs", "doc-examples-coverage-baseline.json"), { + schemaVersion: 1, + uncoveredPackages: { beta: "Its current README uses generated runtime context." }, + }); + expect(runScript(root, "--check").status).toBe(0); + + writeJson(join(root, "docs", "doc-examples-coverage-baseline.json"), { + schemaVersion: 1, + uncoveredPackages: { beta: " " }, + }); + const emptyReason = runScript(root, "--check"); + expect(emptyReason.status).toBe(1); + expect(emptyReason.stdout).toContain("beta must include a reason"); + }, + scriptTestTimeout, + ); + + it( + "counts checked imports from unscoped package entrypoints and rejects stale reasons", + () => { + const root = createTempRoot(); + writePackage(root, "generator", { name: "create-croco-app" }); + writeJson(join(root, "docs", "package-catalog.json"), { + spine: { packages: ["alpha", "generator"] }, + }); + writeDocs(root, [ + "```ts typecheck", + 'import { value } from "@croco/alpha";', + 'import { greet } from "create-croco-app";', + "void value;", + 'void greet("docs");', + "```", + ]); + expect(runScript(root, "--check").status).toBe(0); + + writeJson(join(root, "docs", "doc-examples-coverage-baseline.json"), { + schemaVersion: 1, + uncoveredPackages: { generator: "Old exception." }, + }); + const stale = runScript(root, "--check"); + expect(stale.status).toBe(1); + expect(stale.stdout).toContain("generator is already covered by a typechecked import"); + }, + scriptTestTimeout, + ); + it( "skips pseudo-code fences marked with skip markers without adding them to the baseline", () => { @@ -415,6 +518,13 @@ function createTempRoot(): string { writePackage(root, "alpha", { name: "@croco/alpha", }); + writeJson(join(root, "docs", "package-catalog.json"), { + spine: { packages: ["alpha"] }, + }); + writeJson(join(root, "docs", "doc-examples-coverage-baseline.json"), { + schemaVersion: 1, + uncoveredPackages: {}, + }); return root; } From 671f464320a99bc9d9f2a02c24c6e6983b413cb2 Mon Sep 17 00:00:00 2001 From: kang-heewon Date: Thu, 24 Sep 2026 22:33:58 +0900 Subject: [PATCH 2/5] fix(docs): keep package README example baseline aligned with trunk --- docs/doc-examples-baseline.json | 92 ++++++++++++++++----------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/docs/doc-examples-baseline.json b/docs/doc-examples-baseline.json index b9c55dc8bd..082d94e1ce 100644 --- a/docs/doc-examples-baseline.json +++ b/docs/doc-examples-baseline.json @@ -236,7 +236,7 @@ "file": "packages/analytics-posthog/README.md", "blockIndex": 7, "language": "typescript", - "openingLine": 120, + "openingLine": 136, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -250,14 +250,14 @@ "file": "packages/audit-core/README.md", "blockIndex": 2, "language": "ts", - "openingLine": 44, + "openingLine": 56, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/audit-core/README.md", "blockIndex": 3, "language": "ts", - "openingLine": 55, + "openingLine": 67, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -852,14 +852,14 @@ "file": "packages/esbuild-plugin/README.md", "blockIndex": 1, "language": "typescript", - "openingLine": 15, + "openingLine": 13, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/esbuild-plugin/README.md", "blockIndex": 2, "language": "typescript", - "openingLine": 28, + "openingLine": 39, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -869,6 +869,13 @@ "openingLine": 70, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, + { + "file": "packages/esbuild-plugin/README.md", + "blockIndex": 4, + "language": "typescript", + "openingLine": 141, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, { "file": "packages/events-core/README.md", "blockIndex": 1, @@ -887,14 +894,14 @@ "file": "packages/events-core/README.md", "blockIndex": 3, "language": "typescript", - "openingLine": 61, + "openingLine": 70, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/events-core/README.md", "blockIndex": 4, "language": "typescript", - "openingLine": 78, + "openingLine": 87, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -908,7 +915,7 @@ "file": "packages/events-inmemory/README.md", "blockIndex": 2, "language": "typescript", - "openingLine": 39, + "openingLine": 45, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -1076,7 +1083,7 @@ "file": "packages/features-posthog/README.md", "blockIndex": 2, "language": "typescript", - "openingLine": 43, + "openingLine": 48, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -1146,28 +1153,28 @@ "file": "packages/framework-context/README.md", "blockIndex": 2, "language": "typescript", - "openingLine": 34, + "openingLine": 39, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/framework-context/README.md", "blockIndex": 3, "language": "typescript", - "openingLine": 62, + "openingLine": 67, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/framework-context/README.md", "blockIndex": 4, "language": "typescript", - "openingLine": 72, + "openingLine": 77, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/framework-context/README.md", "blockIndex": 5, "language": "typescript", - "openingLine": 127, + "openingLine": 132, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -1685,14 +1692,14 @@ "file": "packages/integrations-posthog/README.md", "blockIndex": 2, "language": "typescript", - "openingLine": 44, + "openingLine": 66, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/integrations-posthog/README.md", "blockIndex": 3, "language": "typescript", - "openingLine": 58, + "openingLine": 80, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -2399,42 +2406,42 @@ "file": "packages/repository-core/README.md", "blockIndex": 5, "language": "typescript", - "openingLine": 172, + "openingLine": 179, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/repository-core/README.md", "blockIndex": 6, "language": "typescript", - "openingLine": 197, + "openingLine": 206, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/repository-core/README.md", "blockIndex": 7, "language": "typescript", - "openingLine": 214, + "openingLine": 226, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/repository-core/README.md", "blockIndex": 8, "language": "typescript", - "openingLine": 240, + "openingLine": 255, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/repository-core/README.md", "blockIndex": 9, "language": "typescript", - "openingLine": 265, + "openingLine": 280, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/repository-core/README.md", "blockIndex": 10, "language": "typescript", - "openingLine": 299, + "openingLine": 314, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -2651,21 +2658,28 @@ "file": "packages/tasks-core/README.md", "blockIndex": 4, "language": "typescript", - "openingLine": 74, + "openingLine": 71, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/tasks-core/README.md", "blockIndex": 5, "language": "typescript", - "openingLine": 102, + "openingLine": 83, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/tasks-core/README.md", "blockIndex": 6, "language": "typescript", - "openingLine": 118, + "openingLine": 111, + "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." + }, + { + "file": "packages/tasks-core/README.md", + "blockIndex": 7, + "language": "typescript", + "openingLine": 127, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -2980,56 +2994,42 @@ "file": "packages/tx-drizzle/README.md", "blockIndex": 2, "language": "ts", - "openingLine": 53, + "openingLine": 52, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/tx-drizzle/README.md", "blockIndex": 3, "language": "ts", - "openingLine": 72, + "openingLine": 86, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/tx-drizzle/README.md", "blockIndex": 4, "language": "ts", - "openingLine": 97, + "openingLine": 102, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/tx-drizzle/README.md", "blockIndex": 5, "language": "ts", - "openingLine": 125, + "openingLine": 110, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/tx-drizzle/README.md", "blockIndex": 6, "language": "ts", - "openingLine": 141, + "openingLine": 130, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/tx-drizzle/README.md", "blockIndex": 7, "language": "ts", - "openingLine": 149, - "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." - }, - { - "file": "packages/tx-drizzle/README.md", - "blockIndex": 8, - "language": "ts", - "openingLine": 169, - "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." - }, - { - "file": "packages/tx-drizzle/README.md", - "blockIndex": 9, - "language": "ts", - "openingLine": 198, + "openingLine": 159, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { @@ -3106,14 +3106,14 @@ "file": "packages/workflow-core/README.md", "blockIndex": 2, "language": "typescript", - "openingLine": 84, + "openingLine": 94, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." }, { "file": "packages/workflow-core/README.md", "blockIndex": 3, "language": "typescript", - "openingLine": 111, + "openingLine": 121, "reason": "Legacy authored docs block is not yet isolated for documentation typechecking." } ] From d17264cac12f99f1d86694682962689b3cbfbcb5 Mon Sep 17 00:00:00 2001 From: kang-heewon Date: Thu, 24 Sep 2026 23:30:50 +0900 Subject: [PATCH 3/5] chore: add changeset --- .changeset/b9220168.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/b9220168.md diff --git a/.changeset/b9220168.md b/.changeset/b9220168.md new file mode 100644 index 0000000000..32fcd6b10c --- /dev/null +++ b/.changeset/b9220168.md @@ -0,0 +1,7 @@ +--- +'@croco/cli': patch +'@croco/idempotency-core': patch +'@croco/telemetry-sdk-node': patch +--- + +Package README examples for CLI, idempotency, and telemetry are checked by the documentation gate before release. From 451ee6ad742f3a980536fa81bb609bbaf7a1e5a5 Mon Sep 17 00:00:00 2001 From: kang-heewon Date: Fri, 25 Sep 2026 01:04:32 +0900 Subject: [PATCH 4/5] fix(docs): keep README example changeset format valid --- .changeset/b9220168.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.changeset/b9220168.md b/.changeset/b9220168.md index 32fcd6b10c..236fc336d8 100644 --- a/.changeset/b9220168.md +++ b/.changeset/b9220168.md @@ -1,7 +1,7 @@ --- -'@croco/cli': patch -'@croco/idempotency-core': patch -'@croco/telemetry-sdk-node': patch +"@croco/cli": patch +"@croco/idempotency-core": patch +"@croco/telemetry-sdk-node": patch --- Package README examples for CLI, idempotency, and telemetry are checked by the documentation gate before release. From fe1b107d44d8e5cba5d2f383feedf310f88747ae Mon Sep 17 00:00:00 2001 From: kang-heewon Date: Fri, 25 Sep 2026 01:32:34 +0900 Subject: [PATCH 5/5] fix(docs): skip unnamed private package READMEs --- scripts/doc-examples-check.mts | 5 ++++- scripts/tests/doc-examples-check.spec.ts | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/scripts/doc-examples-check.mts b/scripts/doc-examples-check.mts index f893a1cf62..089dada986 100644 --- a/scripts/doc-examples-check.mts +++ b/scripts/doc-examples-check.mts @@ -593,11 +593,14 @@ function collectPublicPackageReadmes(rootDir: string): string[] { } const manifest = JSON.parse(readFileSync(manifestPath, "utf-8")) as unknown; + if (isRecord(manifest) && manifest.private === true) { + return []; + } if (!isRecord(manifest) || typeof manifest.name !== "string") { throw new Error(`${normalizeRelativePath(rootDir, manifestPath)} must have a package name`); } - return manifest.private === true ? [] : [readmePath]; + return [readmePath]; }); } diff --git a/scripts/tests/doc-examples-check.spec.ts b/scripts/tests/doc-examples-check.spec.ts index 6e5cf41429..62e167ced0 100644 --- a/scripts/tests/doc-examples-check.spec.ts +++ b/scripts/tests/doc-examples-check.spec.ts @@ -146,6 +146,25 @@ describe("doc-examples-check.mts", () => { scriptTestTimeout, ); + it( + "skips private package READMEs without a package name", + () => { + const root = createTempRoot(); + writeValidDocs(root); + writePackage(root, "private-tool", { private: true }); + writeFileSync( + join(root, "packages", "private-tool", "README.md"), + "```typescript\nconst ignored = 1;\n```\n", + ); + + const result = runScript(root, "--check"); + + expect(result.status).toBe(0); + expect(result.stdout).toContain("checked 1 TypeScript documentation example"); + }, + scriptTestTimeout, + ); + it( "requires a reason for every spine package without a checked import", () => {