@_linked/translation 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/archive.js.map +1 -1
- package/lib/esm/authorization.js.map +1 -1
- package/lib/esm/backend.js.map +1 -1
- package/lib/esm/cdn-loader.js.map +1 -1
- package/lib/esm/checks.js.map +1 -1
- package/lib/esm/compile.js.map +1 -1
- package/lib/esm/core/messages.js.map +1 -1
- package/lib/esm/discovery.js.map +1 -1
- package/lib/esm/exchange.js.map +1 -1
- package/lib/esm/export.js.map +1 -1
- package/lib/esm/formats/csv.js.map +1 -1
- package/lib/esm/formats/json.js.map +1 -1
- package/lib/esm/formats/xliff.js.map +1 -1
- package/lib/esm/import.js.map +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/key-sync-node.js.map +1 -1
- package/lib/esm/key-sync.js.map +1 -1
- package/lib/esm/key-version.js.map +1 -1
- package/lib/esm/languages.js.map +1 -1
- package/lib/esm/linked-discovery.js.map +1 -1
- package/lib/esm/message-format.js.map +1 -1
- package/lib/esm/mt.js.map +1 -1
- package/lib/esm/ontologies/translation.js.map +1 -1
- package/lib/esm/ontologies/translation.register.js.map +1 -1
- package/lib/esm/package.js.map +1 -1
- package/lib/esm/react.js.map +1 -1
- package/lib/esm/records.js.map +1 -1
- package/lib/esm/release.js.map +1 -1
- package/lib/esm/shape-catalog.js.map +1 -1
- package/lib/esm/shapes/GlossaryTerm.js.map +1 -1
- package/lib/esm/shapes/TranslationInventoryOrigin.js.map +1 -1
- package/lib/esm/shapes/TranslationKey.js.map +1 -1
- package/lib/esm/shapes/TranslationKeyVersion.js.map +1 -1
- package/lib/esm/shapes/TranslationLanguage.js.map +1 -1
- package/lib/esm/shapes/TranslationProvider.js.map +1 -1
- package/lib/esm/shapes/TranslationRelease.js.map +1 -1
- package/lib/esm/shapes/TranslationRevision.js.map +1 -1
- package/lib/esm/shapes/TranslationUnit.js.map +1 -1
- package/package.json +1 -1
package/lib/esm/archive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/archive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/archive.ts"],"names":[],"mappings":"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","sourcesContent":["import { zipSync, type Zippable } from 'fflate';\n\nimport { canonicalJson } from './release.js';\nimport {\n DEFAULT_TRANSLATION_JSON_ARCHIVE_LIMITS,\n safeUnzipTranslationZip,\n translationZipLimits,\n type TranslationJsonArchiveLimits,\n} from './formats/json.js';\n\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder('utf-8', { fatal: true });\n\n/** Full backups include every language and its revision history. CAT-file\n * imports retain their smaller defaults; native backups remain bounded too. */\nexport const DEFAULT_TRANSLATION_ARCHIVE_LIMITS: TranslationJsonArchiveLimits =\n Object.freeze({\n ...DEFAULT_TRANSLATION_JSON_ARCHIVE_LIMITS,\n maxArchiveBytes: 64 * 1024 * 1024,\n maxEntryCompressedBytes: 32 * 1024 * 1024,\n maxEntryUncompressedBytes: 128 * 1024 * 1024,\n maxTotalUncompressedBytes: 256 * 1024 * 1024,\n });\n\nexport const TRANSLATION_ARCHIVE_MANIFEST_PATH =\n 'linked.translation-archive.json';\n\n/**\n * Archives written before 0.3.0 named the manifest — and the archive format\n * itself — after Create Now. Both spellings are read; only the current one is\n * written. The format id is inside `archiveContentHash`'s input, so a legacy\n * manifest keeps the value it was hashed with.\n */\nexport const LEGACY_TRANSLATION_ARCHIVE_MANIFEST_PATH =\n 'create-now.translation-archive.json';\n\nexport const TRANSLATION_ARCHIVE_FORMAT = 'linked-translation-archive';\nexport const LEGACY_TRANSLATION_ARCHIVE_FORMAT = 'create-now-translation-archive';\n\nexport type TranslationArchiveCollection =\n | 'configuration'\n | 'keys'\n | 'keyVersions'\n | 'units'\n | 'glossary'\n | 'style'\n | 'revisions'\n | 'provenance'\n | 'content'\n | 'releases'\n | 'buildPins';\n\nexport const TRANSLATION_ARCHIVE_COLLECTIONS:\n readonly TranslationArchiveCollection[] = Object.freeze([\n 'configuration',\n 'keys',\n 'keyVersions',\n 'units',\n 'glossary',\n 'style',\n 'revisions',\n 'provenance',\n 'content',\n 'releases',\n 'buildPins',\n ]);\n\nexport const TRANSLATION_ARCHIVE_EXCLUSIONS = Object.freeze([\n 'provider secrets and API keys',\n 'import/export sessions',\n 'collaborators, assignments, and invitations',\n 'workspace entitlements',\n 'identity and authentication records',\n 'unrelated application graph data',\n]);\n\nexport type TranslationArchiveJson =\n | null\n | boolean\n | number\n | string\n | TranslationArchiveJson[]\n | { [key: string]: TranslationArchiveJson };\n\nexport interface TranslationArchiveEntityInput {\n id: string;\n data: Record<string, TranslationArchiveJson>;\n}\n\nexport interface TranslationArchiveEntity extends TranslationArchiveEntityInput {\n contentHash: string;\n}\n\nexport interface TranslationArchiveObjectInput {\n hash: string;\n body?: Uint8Array;\n mediaType?: string;\n}\n\nexport interface TranslationArchiveSnapshot {\n appId: string;\n branchId: string;\n revisionWatermark: string;\n createdAt?: string;\n collections: Partial<\n Record<TranslationArchiveCollection, TranslationArchiveEntityInput[]>\n >;\n /** Immutable release catalog objects; omitted bodies remain references only. */\n objects?: TranslationArchiveObjectInput[];\n}\n\nexport interface TranslationArchiveFileInventory {\n path: string;\n collection: TranslationArchiveCollection;\n hash: string;\n bytes: number;\n records: number;\n}\n\nexport interface TranslationArchiveObjectInventory {\n path: string;\n hash: string;\n bytes?: number;\n mediaType?: string;\n included: boolean;\n}\n\nexport interface TranslationArchiveManifest {\n schemaVersion: 1;\n format:\n | typeof TRANSLATION_ARCHIVE_FORMAT\n | typeof LEGACY_TRANSLATION_ARCHIVE_FORMAT;\n appId: string;\n branchId: string;\n revisionWatermark: string;\n createdAt?: string;\n files: TranslationArchiveFileInventory[];\n objects: TranslationArchiveObjectInventory[];\n exclusions: string[];\n archiveContentHash: string;\n}\n\nexport interface SerializedTranslationArchive {\n fileName: string;\n mediaType: 'application/zip';\n body: Uint8Array;\n manifest: TranslationArchiveManifest;\n}\n\nexport interface ParsedTranslationArchive {\n manifest: TranslationArchiveManifest;\n collections: Record<\n TranslationArchiveCollection,\n TranslationArchiveEntity[]\n >;\n objects: Array<{\n hash: string;\n body?: Uint8Array;\n mediaType?: string;\n }>;\n}\n\nexport interface TranslationArchiveTargetRecord {\n id: string;\n contentHash: string;\n}\n\nexport interface TranslationArchiveContentMapping {\n sourceNodeIri: string;\n sourceFieldIri: string;\n targetNodeIri: string;\n targetFieldIri: string;\n}\n\nexport interface PlanTranslationArchiveRestoreOptions {\n mode: 'same-app' | 'cross-app';\n targetAppId: string;\n targetRecords?: TranslationArchiveTargetRecord[];\n contentMappings?: TranslationArchiveContentMapping[];\n targetRevisionWatermark?: string;\n}\n\nexport interface TranslationArchiveRestoreDecision {\n collection: TranslationArchiveCollection;\n sourceId: string;\n targetId: string;\n action: 'create' | 'skip' | 'collision' | 'unmapped';\n expectedTargetContentHash?: string;\n record?: TranslationArchiveEntity;\n reason?: string;\n retryKey: string;\n}\n\nexport interface TranslationArchiveRestorePlan {\n schemaVersion: 1;\n mode: 'same-app' | 'cross-app';\n sourceAppId: string;\n targetAppId: string;\n sourceBranchId: string;\n archiveContentHash: string;\n archiveRevisionWatermark: string;\n expectedTargetRevisionWatermark?: string;\n blocked: boolean;\n decisions: TranslationArchiveRestoreDecision[];\n iriMappings: Record<string, string>;\n creates: number;\n skips: number;\n collisions: number;\n unresolvedContent: number;\n historicalReleases: number;\n identityWrites: 0;\n assignmentWrites: 0;\n}\n\nconst COLLECTION_PATHS: Record<TranslationArchiveCollection, string> = {\n configuration: 'content/configuration.json',\n keys: 'content/keys.json',\n keyVersions: 'content/key-versions.json',\n units: 'content/units.json',\n glossary: 'content/glossary.json',\n style: 'content/style.json',\n revisions: 'content/revisions.json',\n provenance: 'content/provenance.json',\n content: 'content/content-translations.json',\n releases: 'content/releases.json',\n buildPins: 'content/build-pins.json',\n};\n\nconst FORBIDDEN_ARCHIVE_FIELDS = new Set([\n 'apikey',\n 'api_key',\n 'secret',\n 'clientsecret',\n 'accesstoken',\n 'refreshtoken',\n 'password',\n 'credential',\n 'credentials',\n 'session',\n 'sessionid',\n 'collaborator',\n 'collaborators',\n 'invite',\n 'invites',\n 'assignment',\n 'assignments',\n 'entitlement',\n 'entitlements',\n]);\n\nfunction requiredString(value: unknown, label: string): string {\n if (typeof value !== 'string' || !value.trim()) {\n throw new Error(`${label} is required.`);\n }\n return value.trim();\n}\n\nfunction record(value: unknown, label: string): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error(`${label} must be an object.`);\n }\n return value as Record<string, unknown>;\n}\n\nfunction assertArchiveSafeValue(value: unknown, path = 'data'): void {\n if (\n value === null ||\n typeof value === 'string' ||\n typeof value === 'boolean'\n ) {\n return;\n }\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) {\n throw new Error(`${path} contains a non-finite number.`);\n }\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((item, index) =>\n assertArchiveSafeValue(item, `${path}[${index}]`),\n );\n return;\n }\n if (!value || typeof value !== 'object') {\n throw new Error(`${path} contains an unsupported value.`);\n }\n for (const [key, item] of Object.entries(value)) {\n if (FORBIDDEN_ARCHIVE_FIELDS.has(key.toLowerCase())) {\n throw new Error(\n `Archive field \"${path}.${key}\" contains excluded security or control-plane data.`,\n );\n }\n assertArchiveSafeValue(item, `${path}.${key}`);\n }\n}\n\nfunction decodeJson(input: Uint8Array, label: string): unknown {\n try {\n return JSON.parse(decoder.decode(input)) as unknown;\n } catch {\n throw new Error(`${label} must contain valid UTF-8 JSON.`);\n }\n}\n\nasync function sha256Bytes(value: Uint8Array): Promise<string> {\n const digest = await globalThis.crypto.subtle.digest(\n 'SHA-256',\n value as unknown as BufferSource,\n );\n return [...new Uint8Array(digest)]\n .map((byte) => byte.toString(16).padStart(2, '0'))\n .join('');\n}\n\nfunction canonicalBytes(value: unknown): Uint8Array {\n return encoder.encode(canonicalJson(value));\n}\n\nfunction normalizeEntityInput(\n value: TranslationArchiveEntityInput,\n label: string,\n): TranslationArchiveEntityInput {\n const id = requiredString(value?.id, `${label}.id`);\n const data = record(value?.data, `${label}.data`) as Record<\n string,\n TranslationArchiveJson\n >;\n assertArchiveSafeValue(data, `${label}.data`);\n return { id, data };\n}\n\nasync function archiveEntity(\n value: TranslationArchiveEntityInput,\n label: string,\n): Promise<TranslationArchiveEntity> {\n const normalized = normalizeEntityInput(value, label);\n return {\n ...normalized,\n contentHash: await sha256Bytes(canonicalBytes(normalized)),\n };\n}\n\nfunction archiveContentHashInput(\n manifest: Omit<TranslationArchiveManifest, 'archiveContentHash'>,\n): unknown {\n return {\n schemaVersion: manifest.schemaVersion,\n format: manifest.format,\n appId: manifest.appId,\n branchId: manifest.branchId,\n revisionWatermark: manifest.revisionWatermark,\n ...(manifest.createdAt ? { createdAt: manifest.createdAt } : {}),\n files: manifest.files,\n objects: manifest.objects,\n exclusions: manifest.exclusions,\n };\n}\n\nfunction objectPath(hash: string): string {\n return `objects/catalog/${hash}.json`;\n}\n\nfunction normalizeHash(value: unknown, label: string): string {\n const hash = requiredString(value, label).toLowerCase();\n if (!/^[a-f0-9]{64}$/.test(hash)) {\n throw new Error(`${label} must be a SHA-256 hex digest.`);\n }\n return hash;\n}\n\n/** Create a deterministic, full-fidelity translation archive. */\nexport async function createTranslationArchive(\n snapshot: TranslationArchiveSnapshot,\n options: { limits?: Partial<TranslationJsonArchiveLimits> } = {},\n): Promise<SerializedTranslationArchive> {\n const appId = requiredString(snapshot?.appId, 'snapshot.appId');\n const branchId = requiredString(snapshot?.branchId, 'snapshot.branchId');\n const revisionWatermark = requiredString(\n snapshot?.revisionWatermark,\n 'snapshot.revisionWatermark',\n );\n const limits = translationZipLimits({\n ...DEFAULT_TRANSLATION_ARCHIVE_LIMITS,\n ...options.limits,\n });\n const files: Zippable = Object.create(null);\n const fileInventory: TranslationArchiveFileInventory[] = [];\n for (const collection of TRANSLATION_ARCHIVE_COLLECTIONS) {\n const values = snapshot.collections?.[collection] ?? [];\n const entities = await Promise.all(\n values.map((value, index) =>\n archiveEntity(value, `${collection}[${index}]`),\n ),\n );\n entities.sort((left, right) => left.id.localeCompare(right.id));\n const duplicate = entities.find(\n (entity, index) => index > 0 && entity.id === entities[index - 1].id,\n );\n if (duplicate) {\n throw new Error(\n `Archive collection \"${collection}\" contains duplicate id \"${duplicate.id}\".`,\n );\n }\n const path = COLLECTION_PATHS[collection];\n const body = canonicalBytes(entities);\n files[path] = body;\n fileInventory.push({\n path,\n collection,\n hash: await sha256Bytes(body),\n bytes: body.byteLength,\n records: entities.length,\n });\n }\n\n const objectInventory: TranslationArchiveObjectInventory[] = [];\n const seenObjects = new Set<string>();\n for (const [index, object] of [...(snapshot.objects ?? [])]\n .sort((left, right) => left.hash.localeCompare(right.hash))\n .entries()) {\n const hash = normalizeHash(object.hash, `objects[${index}].hash`);\n if (seenObjects.has(hash)) {\n throw new Error(`Archive contains duplicate object hash \"${hash}\".`);\n }\n seenObjects.add(hash);\n const path = objectPath(hash);\n if (object.body) {\n const actual = await sha256Bytes(object.body);\n if (actual !== hash) {\n throw new Error(\n `Archive object \"${hash}\" does not match its content hash.`,\n );\n }\n files[path] = object.body;\n }\n objectInventory.push({\n path,\n hash,\n included: Boolean(object.body),\n ...(object.body ? { bytes: object.body.byteLength } : {}),\n ...(object.mediaType ? { mediaType: object.mediaType } : {}),\n });\n }\n\n const unsignedManifest: Omit<\n TranslationArchiveManifest,\n 'archiveContentHash'\n > = {\n schemaVersion: 1,\n format: TRANSLATION_ARCHIVE_FORMAT,\n appId,\n branchId,\n revisionWatermark,\n ...(snapshot.createdAt\n ? { createdAt: requiredString(snapshot.createdAt, 'snapshot.createdAt') }\n : {}),\n files: fileInventory,\n objects: objectInventory,\n exclusions: [...TRANSLATION_ARCHIVE_EXCLUSIONS],\n };\n const manifest: TranslationArchiveManifest = {\n ...unsignedManifest,\n archiveContentHash: await sha256Bytes(\n canonicalBytes(archiveContentHashInput(unsignedManifest)),\n ),\n };\n files[TRANSLATION_ARCHIVE_MANIFEST_PATH] = canonicalBytes(manifest);\n if (Object.keys(files).length > limits.maxEntries) {\n throw new Error('ZIP archive exceeds the entry-count limit.');\n }\n const body = zipSync(files, {\n level: 6,\n mtime: new Date('1980-01-01T00:00:00.000Z'),\n });\n safeUnzipTranslationZip(body, limits);\n return {\n fileName: 'linked-translations.backup.zip',\n mediaType: 'application/zip',\n body,\n manifest,\n };\n}\n\nfunction parseManifest(value: unknown): TranslationArchiveManifest {\n const raw = record(value, 'manifest');\n if (raw.schemaVersion !== 1) {\n throw new Error(\n `Unsupported translation archive schemaVersion \"${String(raw.schemaVersion)}\".`,\n );\n }\n if (\n raw.format !== TRANSLATION_ARCHIVE_FORMAT &&\n raw.format !== LEGACY_TRANSLATION_ARCHIVE_FORMAT\n ) {\n throw new Error('Unsupported translation archive format.');\n }\n if (!Array.isArray(raw.files) || !Array.isArray(raw.objects)) {\n throw new Error('Translation archive manifest inventory is invalid.');\n }\n if (\n !Array.isArray(raw.exclusions) ||\n raw.exclusions.some((item) => typeof item !== 'string')\n ) {\n throw new Error('Translation archive exclusions are invalid.');\n }\n const collectionSet = new Set(TRANSLATION_ARCHIVE_COLLECTIONS);\n const files = raw.files.map((value, index) => {\n const item = record(value, `manifest.files[${index}]`);\n const collection = item.collection as TranslationArchiveCollection;\n if (!collectionSet.has(collection)) {\n throw new Error(`manifest.files[${index}].collection is invalid.`);\n }\n if (item.path !== COLLECTION_PATHS[collection]) {\n throw new Error(`manifest.files[${index}].path is invalid.`);\n }\n if (\n !Number.isSafeInteger(item.bytes) ||\n (item.bytes as number) < 0 ||\n !Number.isSafeInteger(item.records) ||\n (item.records as number) < 0\n ) {\n throw new Error(`manifest.files[${index}] counts are invalid.`);\n }\n return {\n path: item.path as string,\n collection,\n hash: normalizeHash(item.hash, `manifest.files[${index}].hash`),\n bytes: item.bytes as number,\n records: item.records as number,\n };\n });\n const objects = raw.objects.map((value, index) => {\n const item = record(value, `manifest.objects[${index}]`);\n const hash = normalizeHash(item.hash, `manifest.objects[${index}].hash`);\n if (item.path !== objectPath(hash) || typeof item.included !== 'boolean') {\n throw new Error(`manifest.objects[${index}] is invalid.`);\n }\n if (\n item.bytes !== undefined &&\n (!Number.isSafeInteger(item.bytes) || (item.bytes as number) < 0)\n ) {\n throw new Error(`manifest.objects[${index}].bytes is invalid.`);\n }\n return {\n path: item.path as string,\n hash,\n included: item.included,\n ...(item.bytes === undefined ? {} : { bytes: item.bytes as number }),\n ...(item.mediaType === undefined\n ? {}\n : { mediaType: requiredString(item.mediaType, `manifest.objects[${index}].mediaType`) }),\n };\n });\n return {\n schemaVersion: 1,\n // Echoed back, not normalized: it is part of the content hash input.\n format: raw.format,\n appId: requiredString(raw.appId, 'manifest.appId'),\n branchId: requiredString(raw.branchId, 'manifest.branchId'),\n revisionWatermark: requiredString(\n raw.revisionWatermark,\n 'manifest.revisionWatermark',\n ),\n ...(raw.createdAt === undefined\n ? {}\n : { createdAt: requiredString(raw.createdAt, 'manifest.createdAt') }),\n files,\n objects,\n exclusions: raw.exclusions as string[],\n archiveContentHash: normalizeHash(\n raw.archiveContentHash,\n 'manifest.archiveContentHash',\n ),\n };\n}\n\nasync function parseEntities(\n value: unknown,\n collection: TranslationArchiveCollection,\n): Promise<TranslationArchiveEntity[]> {\n if (!Array.isArray(value)) {\n throw new Error(`Archive ${collection} file must contain an array.`);\n }\n const entities: TranslationArchiveEntity[] = [];\n const ids = new Set<string>();\n for (const [index, rawValue] of value.entries()) {\n const raw = record(rawValue, `${collection}[${index}]`);\n const normalized = normalizeEntityInput(\n {\n id: raw.id as string,\n data: raw.data as Record<string, TranslationArchiveJson>,\n },\n `${collection}[${index}]`,\n );\n const contentHash = normalizeHash(\n raw.contentHash,\n `${collection}[${index}].contentHash`,\n );\n const actual = await sha256Bytes(canonicalBytes(normalized));\n if (actual !== contentHash) {\n throw new Error(\n `Archive ${collection} record \"${normalized.id}\" has an invalid content hash.`,\n );\n }\n if (ids.has(normalized.id)) {\n throw new Error(\n `Archive collection \"${collection}\" contains duplicate id \"${normalized.id}\".`,\n );\n }\n ids.add(normalized.id);\n entities.push({ ...normalized, contentHash });\n }\n return entities.sort((left, right) => left.id.localeCompare(right.id));\n}\n\n/** Parse and verify every declared content file and optional catalog object. */\nexport async function parseTranslationArchive(\n input: Uint8Array,\n options: { limits?: Partial<TranslationJsonArchiveLimits> } = {},\n): Promise<ParsedTranslationArchive> {\n const files = safeUnzipTranslationZip(input, {\n ...DEFAULT_TRANSLATION_ARCHIVE_LIMITS,\n ...options.limits,\n });\n const manifestPath =\n files[TRANSLATION_ARCHIVE_MANIFEST_PATH] !== undefined\n ? TRANSLATION_ARCHIVE_MANIFEST_PATH\n : LEGACY_TRANSLATION_ARCHIVE_MANIFEST_PATH;\n const manifestBody = files[manifestPath];\n if (!manifestBody) {\n throw new Error('Translation archive manifest is missing.');\n }\n const manifest = parseManifest(decodeJson(manifestBody, manifestPath));\n const actualArchiveHash = await sha256Bytes(\n canonicalBytes(\n archiveContentHashInput(\n manifest as Omit<TranslationArchiveManifest, 'archiveContentHash'>,\n ),\n ),\n );\n if (actualArchiveHash !== manifest.archiveContentHash) {\n throw new Error('Translation archive manifest content hash is invalid.');\n }\n\n const allowedPaths = new Set<string>([\n manifestPath,\n ...manifest.files.map(({ path }) => path),\n ...manifest.objects.filter(({ included }) => included).map(({ path }) => path),\n ]);\n const unexpected = Object.keys(files).find((path) => !allowedPaths.has(path));\n if (unexpected) {\n throw new Error(`Translation archive contains undeclared file \"${unexpected}\".`);\n }\n if (manifest.files.length !== TRANSLATION_ARCHIVE_COLLECTIONS.length) {\n throw new Error('Translation archive must inventory every content collection.');\n }\n\n const collections = Object.create(null) as Record<\n TranslationArchiveCollection,\n TranslationArchiveEntity[]\n >;\n for (const item of manifest.files) {\n const body = files[item.path];\n if (!body) throw new Error(`Translation archive is missing \"${item.path}\".`);\n if (\n body.byteLength !== item.bytes ||\n (await sha256Bytes(body)) !== item.hash\n ) {\n throw new Error(`Translation archive file \"${item.path}\" failed verification.`);\n }\n const entities = await parseEntities(\n decodeJson(body, item.path),\n item.collection,\n );\n if (entities.length !== item.records) {\n throw new Error(`Translation archive file \"${item.path}\" count is invalid.`);\n }\n collections[item.collection] = entities;\n }\n\n const objects = await Promise.all(\n manifest.objects.map(async (item) => {\n const body = files[item.path];\n if (item.included) {\n if (!body) {\n throw new Error(`Translation archive object \"${item.hash}\" is missing.`);\n }\n if (\n (item.bytes !== undefined && body.byteLength !== item.bytes) ||\n (await sha256Bytes(body)) !== item.hash\n ) {\n throw new Error(\n `Translation archive object \"${item.hash}\" failed verification.`,\n );\n }\n } else if (body) {\n throw new Error(\n `Translation archive reference-only object \"${item.hash}\" unexpectedly has a body.`,\n );\n }\n return {\n hash: item.hash,\n ...(body ? { body } : {}),\n ...(item.mediaType ? { mediaType: item.mediaType } : {}),\n };\n }),\n );\n return { manifest, collections, objects };\n}\n\nfunction rebaseValue(\n value: TranslationArchiveJson,\n sourceAppId: string,\n targetAppId: string,\n mappings: Record<string, string>,\n): TranslationArchiveJson {\n if (typeof value === 'string') {\n if (value === sourceAppId || value.startsWith(`${sourceAppId}/`)) {\n const target = `${targetAppId}${value.slice(sourceAppId.length)}`;\n mappings[value] = target;\n return target;\n }\n return value;\n }\n if (Array.isArray(value)) {\n return value.map((item) =>\n rebaseValue(item, sourceAppId, targetAppId, mappings),\n );\n }\n if (value && typeof value === 'object') {\n const output: Record<string, TranslationArchiveJson> = {};\n for (const [key, item] of Object.entries(value)) {\n output[key] = rebaseValue(\n item,\n sourceAppId,\n targetAppId,\n mappings,\n );\n }\n return output;\n }\n return value;\n}\n\nfunction contentIdentity(\n nodeIri: string,\n fieldIri: string,\n): string {\n return JSON.stringify([nodeIri, fieldIri]);\n}\n\n/**\n * Build a pure, conditional restore plan. A blocked plan is never executable:\n * collisions and unresolved cross-app content mappings must be resolved first.\n */\nexport async function planTranslationArchiveRestore(\n archive: ParsedTranslationArchive,\n options: PlanTranslationArchiveRestoreOptions,\n): Promise<TranslationArchiveRestorePlan> {\n const sourceAppId = archive.manifest.appId;\n const targetAppId = requiredString(options.targetAppId, 'targetAppId');\n if (options.mode === 'same-app' && sourceAppId !== targetAppId) {\n throw new Error(\n `Same-app restore requires target app \"${sourceAppId}\".`,\n );\n }\n const targetById = new Map(\n (options.targetRecords ?? []).map((item) => [\n requiredString(item.id, 'targetRecords.id'),\n normalizeHash(item.contentHash, 'targetRecords.contentHash'),\n ]),\n );\n const contentMappings = new Map(\n (options.contentMappings ?? []).map((mapping) => [\n contentIdentity(mapping.sourceNodeIri, mapping.sourceFieldIri),\n mapping,\n ]),\n );\n const iriMappings: Record<string, string> = {};\n const decisions: TranslationArchiveRestoreDecision[] = [];\n let historicalReleases = 0;\n\n for (const collection of TRANSLATION_ARCHIVE_COLLECTIONS) {\n for (const sourceRecord of archive.collections[collection]) {\n let targetId = sourceRecord.id;\n let data = sourceRecord.data;\n if (options.mode === 'cross-app') {\n targetId = rebaseValue(\n sourceRecord.id,\n sourceAppId,\n targetAppId,\n iriMappings,\n ) as string;\n data = rebaseValue(\n sourceRecord.data,\n sourceAppId,\n targetAppId,\n iriMappings,\n ) as Record<string, TranslationArchiveJson>;\n }\n\n if (collection === 'content' && options.mode === 'cross-app') {\n const sourceNodeIri =\n typeof sourceRecord.data.nodeIri === 'string'\n ? sourceRecord.data.nodeIri\n : '';\n const sourceFieldIri =\n typeof sourceRecord.data.fieldIri === 'string'\n ? sourceRecord.data.fieldIri\n : '';\n const mapping = contentMappings.get(\n contentIdentity(sourceNodeIri, sourceFieldIri),\n );\n if (!mapping) {\n decisions.push({\n collection,\n sourceId: sourceRecord.id,\n targetId,\n action: 'unmapped',\n reason: 'Cross-app content requires an explicit node/field mapping.',\n retryKey: canonicalJson([\n archive.manifest.archiveContentHash,\n collection,\n sourceRecord.id,\n 'unmapped',\n ]),\n });\n continue;\n }\n data = {\n ...data,\n nodeIri: mapping.targetNodeIri,\n fieldIri: mapping.targetFieldIri,\n };\n iriMappings[sourceNodeIri] = mapping.targetNodeIri;\n iriMappings[sourceFieldIri] = mapping.targetFieldIri;\n }\n\n if (collection === 'releases') {\n historicalReleases += 1;\n data = {\n ...data,\n status: 'retired',\n historical: true,\n activationEligible: false,\n };\n }\n const targetRecordInput = { id: targetId, data };\n const targetRecord: TranslationArchiveEntity = {\n ...targetRecordInput,\n contentHash: await sha256Bytes(canonicalBytes(targetRecordInput)),\n };\n const currentHash = targetById.get(targetId);\n const action =\n currentHash === undefined\n ? 'create'\n : currentHash === targetRecord.contentHash\n ? 'skip'\n : 'collision';\n decisions.push({\n collection,\n sourceId: sourceRecord.id,\n targetId,\n action,\n ...(currentHash ? { expectedTargetContentHash: currentHash } : {}),\n record: targetRecord,\n ...(action === 'collision'\n ? { reason: 'Target id exists with different content.' }\n : {}),\n retryKey: canonicalJson([\n archive.manifest.archiveContentHash,\n collection,\n targetId,\n targetRecord.contentHash,\n ]),\n });\n }\n }\n\n const collisions = decisions.filter(\n ({ action }) => action === 'collision',\n ).length;\n const unresolvedContent = decisions.filter(\n ({ action }) => action === 'unmapped',\n ).length;\n return {\n schemaVersion: 1,\n mode: options.mode,\n sourceAppId,\n targetAppId,\n sourceBranchId: archive.manifest.branchId,\n archiveContentHash: archive.manifest.archiveContentHash,\n archiveRevisionWatermark: archive.manifest.revisionWatermark,\n ...(options.targetRevisionWatermark\n ? {\n expectedTargetRevisionWatermark: requiredString(\n options.targetRevisionWatermark,\n 'targetRevisionWatermark',\n ),\n }\n : {}),\n blocked: collisions > 0 || unresolvedContent > 0,\n decisions,\n iriMappings,\n creates: decisions.filter(({ action }) => action === 'create').length,\n skips: decisions.filter(({ action }) => action === 'skip').length,\n collisions,\n unresolvedContent,\n historicalReleases,\n identityWrites: 0,\n assignmentWrites: 0,\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/authorization.ts"],"names":[],"mappings":"AAkBA,IAAI,QAAsD,CAAC;AAE3D,6EAA6E;AAC7E,MAAM,UAAU,iCAAiC,CAC/C,IAAuC;IAEvC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAwC;IAExC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/authorization.ts"],"names":[],"mappings":"AAkBA,IAAI,QAAsD,CAAC;AAE3D,6EAA6E;AAC7E,MAAM,UAAU,iCAAiC,CAC/C,IAAuC;IAEvC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAwC;IAExC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC","sourcesContent":["export type TranslationAuthoringAction =\n | 'manage'\n | 'review'\n | 'propose'\n | 'run-mt'\n | 'read';\n\nexport interface TranslationAuthorizationRequest {\n appId: string;\n actorWebId: string;\n action: TranslationAuthoringAction;\n language?: string;\n}\n\nexport type TranslationAuthorizationResolver = (\n request: TranslationAuthorizationRequest,\n) => Promise<boolean>;\n\nlet resolver: TranslationAuthorizationResolver | undefined;\n\n/** Host hook: Create Now supplies CN-control-plane assignment evaluation. */\nexport function configureTranslationAuthorization(\n next?: TranslationAuthorizationResolver,\n): void {\n resolver = next;\n}\n\n/** Ejected apps may install @_linked/access; authenticated legacy hosts allow. */\nexport async function canAuthorTranslation(\n request: TranslationAuthorizationRequest,\n): Promise<boolean> {\n return resolver ? resolver(request) : true;\n}\n"]}
|
package/lib/esm/backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC","sourcesContent":["// The backend loader instantiates every named export; export Providers only.\nexport { TranslationProvider } from './shapes/TranslationProvider.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdn-loader.js","sourceRoot":"","sources":["../../src/cdn-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cdn-loader.js","sourceRoot":"","sources":["../../src/cdn-loader.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n defineLanguage,\n validateLanguageDefinitions,\n type TranslationLanguageDefinition,\n} from './languages.js';\n/**\n * `loadMessages` factory for the CDN delivery cascade (Plan 016 P2.4, AD-J/AD-K).\n * SIMPLE-POINTER mode (the ratified default): fetch `${base}/{lang}.json` from\n * the published CDN — changing `base` (an app's `tr:cdnTarget`) repoints at\n * different cloud files with no call-site change, exactly the Tolgee model.\n * `bundledPath` (same-origin bundled copy) and `devApi` (e.g. the `getMessages`\n * RPC for live dev editing) are optional fallbacks, tried in the order given.\n * Any source that yields a non-empty map wins; all-empty ⇒ `{}` and the client\n * keeps its inline English defaults. Never throws.\n *\n * Portable (no CN import): the caller wires `base`/`devApi` for its environment.\n */\nimport type { TranslationMessages } from './core/messages.js';\nimport { sha256Hex } from './key-version.js';\nimport {\n applyCatalogPatches,\n type TranslationBuildDescriptor,\n type TranslationCatalogPatch,\n type TranslationReleaseManifest,\n} from './release.js';\n\nexport interface CdnLoaderConfig {\n /** Published CDN base — `${base}/{lang}.json`. The repoint knob. Omit to skip. */\n base?: string;\n /** Same-origin bundled base — `${bundledPath}/{lang}.json`. Omit to skip. */\n bundledPath?: string;\n /** Last-resort loader (e.g. a live backend RPC). Omit to skip. */\n devApi?: (language: string) => Promise<TranslationMessages>;\n /** Injectable for tests / non-DOM runtimes. */\n fetchImpl?: typeof fetch;\n}\n\nfunction isNonEmptyMap(v: unknown): v is TranslationMessages {\n return !!v && typeof v === 'object' && Object.keys(v as object).length > 0;\n}\n\nexport function createCdnLoader(\n config: CdnLoaderConfig\n): (language: string) => Promise<TranslationMessages> {\n const doFetch =\n config.fetchImpl ?? (typeof fetch !== 'undefined' ? fetch : undefined);\n const base = config.base?.replace(/\\/+$/, '');\n const bundled = config.bundledPath?.replace(/\\/+$/, '');\n\n const fetchJson = async (\n url: string\n ): Promise<TranslationMessages | null> => {\n if (!doFetch) return null;\n try {\n const res = await doFetch(url);\n if (!res.ok) return null;\n return (await res.json()) as TranslationMessages;\n } catch {\n return null;\n }\n };\n\n return async (language: string): Promise<TranslationMessages> => {\n const sources: Array<() => Promise<TranslationMessages | null>> = [];\n if (base) sources.push(() => fetchJson(`${base}/${language}.json`));\n if (bundled) sources.push(() => fetchJson(`${bundled}/${language}.json`));\n if (config.devApi)\n sources.push(async () => {\n try {\n return await config.devApi!(language);\n } catch {\n return null;\n }\n });\n\n for (const source of sources) {\n const result = await source();\n if (isNonEmptyMap(result)) return result;\n }\n return {};\n };\n}\n\nexport interface ReleaseLoaderConfig {\n bundledPath: string;\n descriptor:\n | TranslationBuildDescriptor\n | (() => Promise<TranslationBuildDescriptor | null>);\n fetchImpl?: typeof fetch;\n devApi?: (language: string) => Promise<TranslationMessages>;\n}\n\nfunction resolveReleaseUrl(url: string, manifestUrl: string): string {\n try {\n return new URL(url, manifestUrl).toString();\n } catch {\n return url;\n }\n}\n\nfunction isReleaseManifest(\n value: unknown\n): value is TranslationReleaseManifest {\n const manifest = value as Partial<TranslationReleaseManifest> | undefined;\n return (\n manifest?.schemaVersion === 2 &&\n typeof manifest.releaseId === 'string' &&\n typeof manifest.contractSetHash === 'string' &&\n !!manifest.keyVersions &&\n typeof manifest.keyVersions === 'object' &&\n !!manifest.languages &&\n typeof manifest.languages === 'object'\n );\n}\n\n/**\n * Schema-v2 release loader. Bundled messages always win the first render;\n * compatible immutable CDN objects fetched in the background become visible\n * only on the next call for that language.\n */\nexport function createReleaseLoader(\n config: ReleaseLoaderConfig\n): (language: string) => Promise<TranslationMessages> {\n const doFetch =\n config.fetchImpl ?? (typeof fetch !== 'undefined' ? fetch : undefined);\n const bundled = config.bundledPath.replace(/\\/+$/, '');\n const objectCache = new Map<string, unknown>();\n const pending = new Map<string, Promise<TranslationMessages | null>>();\n const requested = new Set<string>();\n let descriptorPromise: Promise<TranslationBuildDescriptor | null> | undefined;\n const getDescriptor = () =>\n (descriptorPromise ??=\n typeof config.descriptor === 'function'\n ? config.descriptor()\n : Promise.resolve(config.descriptor));\n\n const fetchText = async (url: string): Promise<string | null> => {\n if (!doFetch) return null;\n try {\n const response = await doFetch(url);\n return response.ok ? await response.text() : null;\n } catch {\n return null;\n }\n };\n\n const fetchMessages = async (\n url: string\n ): Promise<TranslationMessages | null> => {\n const text = await fetchText(url);\n if (text === null) return null;\n try {\n const parsed = JSON.parse(text);\n return isNonEmptyMap(parsed) ? parsed : null;\n } catch {\n return null;\n }\n };\n\n const fetchHashed = async <T>(\n url: string,\n hash: string\n ): Promise<T | null> => {\n if (objectCache.has(hash)) return objectCache.get(hash) as T;\n const text = await fetchText(url);\n if (text === null || (await sha256Hex(text)) !== hash) return null;\n try {\n const parsed = JSON.parse(text) as T;\n objectCache.set(hash, parsed);\n return parsed;\n } catch {\n return null;\n }\n };\n\n const fetchReleaseLanguage = async (\n language: string\n ): Promise<TranslationMessages | null> => {\n const descriptor = await getDescriptor();\n if (!descriptor) return null;\n const manifestText = await fetchText(descriptor.manifestUrl);\n if (manifestText === null) return null;\n let manifest: unknown;\n try {\n manifest = JSON.parse(manifestText);\n } catch {\n return null;\n }\n if (\n !isReleaseManifest(manifest) ||\n manifest.releaseId !== descriptor.releaseId ||\n manifest.contractSetHash !== descriptor.contractSetHash\n ) {\n return null;\n }\n const lane = manifest.languages[language];\n if (!lane) return null;\n const base = await fetchHashed<TranslationMessages>(\n resolveReleaseUrl(lane.base.url, descriptor.manifestUrl),\n lane.base.hash\n );\n if (!base) return null;\n const patches: TranslationCatalogPatch[] = [];\n for (const patch of [...lane.patches].sort(\n (left, right) => left.sequence - right.sequence\n )) {\n const body = await fetchHashed<TranslationCatalogPatch>(\n resolveReleaseUrl(patch.url, descriptor.manifestUrl),\n patch.hash\n );\n if (!body) return null;\n patches.push(body);\n }\n return applyCatalogPatches(base, patches);\n };\n\n return async (language: string): Promise<TranslationMessages> => {\n const bundledMessages = await fetchMessages(`${bundled}/${language}.json`);\n const existing = pending.get(language);\n if (requested.has(language) && existing) {\n const released = await existing;\n return released ?? bundledMessages ?? {};\n }\n requested.add(language);\n const background = fetchReleaseLanguage(language);\n pending.set(language, background);\n if (bundledMessages) {\n void background.catch(() => null);\n return bundledMessages;\n }\n const released = await background;\n if (released) return released;\n if (config.devApi) {\n try {\n return await config.devApi(language);\n } catch {\n // Preserve the empty fallback contract.\n }\n }\n return {};\n };\n}\n\n/** Fetch public language resources independently of a compiled application. */\nexport function createCdnLanguageLoader(\n config: Pick<CdnLoaderConfig, 'base' | 'fetchImpl'>\n): () => Promise<TranslationLanguageDefinition[]> {\n return async () => {\n if (!config.base) throw new Error('A translation CDN base is required.');\n const response = await (config.fetchImpl ?? fetch)(\n `${config.base.replace(/\\/+$/, '')}/languages.json`\n );\n if (!response.ok)\n throw new Error(`Language catalog HTTP ${response.status}`);\n const catalog = await response.json();\n if (catalog.schemaVersion !== 1 || !Array.isArray(catalog.languages))\n throw new Error('Invalid language catalog.');\n const definitions = catalog.languages.map(\n (item: TranslationLanguageDefinition) => defineLanguage(item.code, item)\n );\n validateLanguageDefinitions(definitions);\n return definitions;\n };\n}\n"]}
|
package/lib/esm/checks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../../src/checks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../../src/checks.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Translation quality CHECKS engine (Plan 017 B2-1). One pure function turns\n * entries + the termbase into findings; the same engine runs live in the\n * Studio (inline badges + Checks tab), post-MT (reject bad drafts before they\n * are saved), and at import. Enforcement philosophy (ratified 2026-07-23):\n * warn everywhere, gate only at publish — findings never block a save.\n */\nimport type { GlossaryTermRecord, TranslationEntryRecord } from './records.js';\nimport { findInconsistentTranslations, type ConsistencyEntry } from './mt.js';\nimport {\n compareMessageArguments,\n detectLegacyPluralSuffixes,\n} from './message-format.js';\n\nexport type CheckSeverity = 'error' | 'warning';\n\nexport interface CheckFinding {\n key: string;\n language: string;\n /** placeholder-integrity | term-keep | term-prefer | term-required | term-forbid | source-divergence */\n rule: string;\n severity: CheckSeverity;\n message: string;\n /** A concrete replacement text or wording hint, when one exists. */\n suggestion?: string;\n}\n\nexport type TermHarvestReason = 'repeated' | 'capitalized' | 'untranslated';\n\nexport interface TermHarvestCandidate {\n term: string;\n occurrences: number;\n keys: string[];\n languages: string[];\n reasons: TermHarvestReason[];\n suggestedType: 'prefer' | 'keep';\n}\n\nconst HARVEST_STOP_WORDS = new Set([\n 'and',\n 'are',\n 'but',\n 'for',\n 'from',\n 'has',\n 'have',\n 'into',\n 'not',\n 'that',\n 'the',\n 'their',\n 'this',\n 'was',\n 'were',\n 'will',\n 'with',\n 'you',\n 'your',\n]);\n\ninterface HarvestToken {\n value: string;\n normalized: string;\n capitalized: boolean;\n}\n\nfunction harvestTokens(text: string): HarvestToken[] {\n const matches = [...text.matchAll(/[\\p{L}\\p{N}][\\p{L}\\p{M}\\p{N}'’.-]*/gu)];\n return matches.flatMap((match, index) => {\n const value = match[0].replace(/[.'’-]+$/u, '');\n const normalized = value.toLocaleLowerCase();\n if (\n value.length < 3 ||\n HARVEST_STOP_WORDS.has(normalized) ||\n /^\\d+$/u.test(value)\n ) {\n return [];\n }\n const first = value[0];\n const capitalized =\n (index > 0 &&\n first === first.toLocaleUpperCase() &&\n first !== first.toLocaleLowerCase()) ||\n /^\\p{Lu}{2,}[\\p{Lu}\\p{N}-]*$/u.test(value);\n return [{ value, normalized, capitalized }];\n });\n}\n\n/**\n * Mine review candidates from source catalogs. This is intentionally\n * conservative and pure: it suggests repeated terms, likely proper names,\n * and source words that survive unchanged in translations. A human still\n * chooses the rule and saves the term.\n */\nexport function harvestTermCandidates(\n entries: TranslationEntryRecord[],\n languages: string[],\n termbase: GlossaryTermRecord[] = []\n): TermHarvestCandidate[] {\n const existing = new Set(\n termbase.map((entry) => entry.term.toLocaleLowerCase())\n );\n const aggregate = new Map<\n string,\n {\n display: string;\n occurrences: number;\n keys: Set<string>;\n capitalizedKeys: Set<string>;\n untranslatedLanguages: Set<string>;\n }\n >();\n\n for (const entry of entries) {\n const tokens = harvestTokens(entry.sourceText);\n for (const token of tokens) {\n const value = aggregate.get(token.normalized) ?? {\n display: token.value,\n occurrences: 0,\n keys: new Set<string>(),\n capitalizedKeys: new Set<string>(),\n untranslatedLanguages: new Set<string>(),\n };\n value.occurrences++;\n value.keys.add(entry.key);\n if (token.capitalized) {\n value.display = token.value;\n value.capitalizedKeys.add(entry.key);\n }\n for (const language of languages) {\n const translated = entry.units[language]?.text;\n if (translated && containsTerm(translated, token.value, true)) {\n value.untranslatedLanguages.add(language);\n }\n }\n aggregate.set(token.normalized, value);\n }\n }\n\n return [...aggregate.entries()]\n .flatMap(([normalized, value]): TermHarvestCandidate[] => {\n if (existing.has(normalized)) return [];\n const repeated = value.keys.size >= 3;\n const capitalized = value.capitalizedKeys.size >= 2;\n const untranslated = value.untranslatedLanguages.size > 0;\n if (!repeated && !capitalized && !untranslated) return [];\n const reasons: TermHarvestReason[] = [];\n if (repeated) reasons.push('repeated');\n if (capitalized) reasons.push('capitalized');\n if (untranslated) reasons.push('untranslated');\n return [\n {\n term: value.display,\n occurrences: value.occurrences,\n keys: [...value.keys].sort(),\n languages: [...value.untranslatedLanguages].sort(),\n reasons,\n suggestedType: capitalized || untranslated ? 'keep' : 'prefer',\n },\n ];\n })\n .sort(\n (left, right) =>\n right.keys.length - left.keys.length ||\n right.reasons.length - left.reasons.length ||\n left.term.localeCompare(right.term)\n );\n}\n\n/** Escape a literal for embedding in a RegExp. */\nconst escapeRe = (text: string) => text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n/**\n * Whole-word-ish containment test. Word boundaries only apply when the term\n * starts/ends with word characters (so \"e.V.\" or \"#tag\" still match), and\n * matching is Unicode-aware.\n */\nexport function containsTerm(\n text: string,\n term: string,\n caseSensitive = false,\n locale?: string,\n): boolean {\n // Unicode regex folding alone does not handle Turkish dotted/dotless I.\n // Only target text uses its locale; an English source still uses English\n // matching even when the translation is Turkish.\n if (!caseSensitive && locale) {\n try {\n text = text.toLocaleLowerCase(locale);\n term = term.toLocaleLowerCase(locale);\n } catch {\n // Private/custom language tags can be valid application identifiers\n // without being supported by the host's locale implementation.\n text = text.toLowerCase();\n term = term.toLowerCase();\n }\n }\n // Chinese and Japanese phrases routinely touch other letters without spaces.\n // Requiring whitespace-like boundaries would reject valid terms such as 合一.\n const unspaced =\n /[\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}]/u.test(term);\n const boundedStart =\n !unspaced && /^[\\p{L}\\p{N}]/u.test(term) ? '(?<![\\\\p{L}\\\\p{N}])' : '';\n const boundedEnd =\n !unspaced && /[\\p{L}\\p{N}]$/u.test(term) ? '(?![\\\\p{L}\\\\p{N}])' : '';\n const re = new RegExp(\n `${boundedStart}${escapeRe(term)}${boundedEnd}`,\n caseSensitive ? 'u' : 'iu'\n );\n return re.test(text);\n}\n\nconst forLanguage = (termbase: GlossaryTermRecord[], language: string) =>\n termbase.filter((t) => t.term && (!t.language || t.language === language));\n\n/**\n * Termbase violations for ONE translated text. Exported separately so the\n * post-MT guard can reject a draft with the same rules the Studio shows.\n */\nexport function termbaseViolations(\n sourceText: string,\n translatedText: string,\n termbase: GlossaryTermRecord[],\n language: string\n): Array<Pick<CheckFinding, 'rule' | 'severity' | 'message' | 'suggestion'>> {\n const findings: Array<\n Pick<CheckFinding, 'rule' | 'severity' | 'message' | 'suggestion'>\n > = [];\n for (const entry of forLanguage(termbase, language)) {\n if (entry.termType === 'keep') {\n // A keep-term appearing in the source must survive VERBATIM (exact\n // casing — that's the point of keep: proper nouns, brand styling,\n // stay-one-language words).\n if (\n containsTerm(sourceText, entry.term, entry.caseSensitive ?? false) &&\n !containsTerm(translatedText, entry.term, true)\n ) {\n findings.push({\n rule: 'term-keep',\n severity: 'error',\n message: `“${entry.term}” must stay exactly as written.`,\n suggestion: entry.term,\n });\n }\n } else if (entry.termType === 'forbid') {\n if (\n containsTerm(translatedText, entry.term, entry.caseSensitive ?? false, language)\n ) {\n findings.push({\n rule: 'term-forbid',\n severity: 'error',\n message: entry.useInstead\n ? `“${entry.term}” is not allowed — use “${entry.useInstead}”.`\n : `“${entry.term}” is not allowed here.`,\n suggestion: entry.useInstead,\n });\n }\n } else {\n // Prefer remains advisory. Require is a source-scoped contract: it\n // prevents two distinct concepts from collapsing into the same label.\n if (\n entry.translation &&\n containsTerm(sourceText, entry.term, entry.caseSensitive ?? false) &&\n !containsTerm(\n translatedText,\n entry.translation,\n entry.caseSensitive ?? false,\n language,\n )\n ) {\n findings.push({\n rule: entry.termType === 'require' ? 'term-required' : 'term-prefer',\n severity: entry.termType === 'require' ? 'error' : 'warning',\n message:\n entry.termType === 'require'\n ? `“${entry.term}” must be translated as “${entry.translation}”.`\n : `“${entry.term}” is preferably translated as “${entry.translation}”.`,\n suggestion: entry.translation,\n });\n }\n }\n }\n return findings;\n}\n\n/** True when a draft breaks an ERROR-severity termbase rule (post-MT gate). */\nexport function violatesTermbase(\n sourceText: string,\n translatedText: string,\n termbase: GlossaryTermRecord[],\n language: string\n): boolean {\n return termbaseViolations(\n sourceText,\n translatedText,\n termbase,\n language\n ).some((f) => f.severity === 'error');\n}\n\n/**\n * Run every check for one language across the app's entries. Pure and\n * client-safe — the Studio computes findings locally from data it already has.\n */\nexport function runChecks(\n entries: ConsistencyEntry[],\n language: string,\n termbase: GlossaryTermRecord[] = []\n): CheckFinding[] {\n const findings: CheckFinding[] = [];\n for (const entry of entries) {\n const text = entry.units[language]?.text?.trim();\n if (!text || !entry.sourceText.trim()) continue;\n const format = entry.format === 'icu' ? 'icu' : 'simple';\n const comparison = compareMessageArguments(entry.sourceText, text, format);\n if (comparison.sourceError || comparison.targetError) {\n findings.push({\n key: entry.key,\n language,\n rule: 'message-syntax',\n severity: 'error',\n message: comparison.sourceError\n ? `The source ${format.toUpperCase()} message is invalid: ${\n comparison.sourceError\n }`\n : `The translation ${format.toUpperCase()} message is invalid: ${\n comparison.targetError\n }`,\n });\n } else if (!comparison.valid) {\n const details = [\n comparison.missing.length\n ? `Missing ${comparison.missing\n .map((name) => `{${name}}`)\n .join(', ')}.`\n : '',\n comparison.extra.length\n ? `Unexpected ${comparison.extra\n .map((name) => `{${name}}`)\n .join(', ')}.`\n : '',\n ...comparison.typeMismatches.map(\n ({ name, source, target }) =>\n `{${name}} changes from ${source.join('/')} to ${target.join('/')}.`\n ),\n ].filter(Boolean);\n findings.push({\n key: entry.key,\n language,\n rule: 'placeholder-integrity',\n severity: 'error',\n message: details.join(' '),\n });\n }\n const legacyPlural = detectLegacyPluralSuffixes(entry.sourceText);\n if (format === 'simple' && legacyPlural.length > 0) {\n findings.push({\n key: entry.key,\n language,\n rule: 'legacy-plural-suffix',\n severity: 'warning',\n message: `${legacyPlural\n .map(({ suffixArgument }) => `{${suffixArgument}}`)\n .join(\n ', '\n )} is an English suffix variable, not pluralization. It may be omitted in this translation; migrate this key to an ICU plural for locale-aware grammar.`,\n });\n }\n for (const violation of termbaseViolations(\n entry.sourceText,\n text,\n termbase,\n language\n )) {\n findings.push({ key: entry.key, language, ...violation });\n }\n }\n // Identical source ⇒ divergent target. Suggest the majority variant.\n for (const conflict of findInconsistentTranslations(entries, language)) {\n const majority = [...conflict.variants].sort(\n (a, b) => b.keys.length - a.keys.length || a.text.localeCompare(b.text)\n )[0];\n for (const variant of conflict.variants) {\n if (variant === majority) continue;\n for (const key of variant.keys) {\n findings.push({\n key,\n language,\n rule: 'source-divergence',\n severity: 'warning',\n message: `“${conflict.sourceText}” is translated “${\n variant.text\n }” here but “${majority.text}” on ${majority.keys.length} other key${\n majority.keys.length === 1 ? '' : 's'\n }.`,\n suggestion: majority.text,\n });\n }\n }\n }\n return findings;\n}\n\n/** Findings grouped per key for inline cell badges. */\nexport function findingsByKey(\n findings: CheckFinding[]\n): Map<string, CheckFinding[]> {\n const map = new Map<string, CheckFinding[]>();\n for (const finding of findings) {\n map.set(finding.key, [...(map.get(finding.key) ?? []), finding]);\n }\n return map;\n}\n"]}
|
package/lib/esm/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n languageFallbacks,\n type TranslationLanguageDefinition,\n} from './languages.js';\n/**\n * Compile app translations into publishable per-language payloads + a manifest\n * (Plan 016 P2.2, AD-K/AD-I). Pure and I/O-free: it takes the same\n * `TranslationEntryRecord[]` that `TranslationProvider.listEntries` already\n * produces and emits the `{lang}.json` maps + a content-hashed `manifest.json`.\n * The R2 publish route (P2.3) and the eject-honest CLI (R11) are thin wrappers\n * that read the entries, call this, and write the result.\n *\n * Only `kind:'ui'` keys are published; `kind:'content'` resolves query-time from\n * the app's own dataset (AD-I). Per-language publish policy (AD-K/R9): a\n * `reviewedOnly` language ships the reviewed value else falls back to the English\n * `sourceText` — never a machine/stale draft. Every payload is a COMPLETE\n * catalog (English fallback for anything missing), so it stands alone without the\n * app's inline defaults.\n */\nimport {\n directionFor,\n type TranslationMessage,\n type TranslationMessages,\n} from './core/messages.js';\nimport type { TranslationEntryRecord } from './records.js';\n\nexport type TranslationPayload = TranslationMessages;\n\nexport interface TranslationManifestEntry {\n hash: string;\n dir: 'ltr' | 'rtl';\n count: number;\n}\n\nexport interface TranslationManifest {\n schemaVersion: 1;\n defaultLanguage: string;\n generatedAt?: string;\n languageResources?: TranslationLanguageDefinition[];\n languages: Record<string, TranslationManifestEntry>;\n}\n\nexport interface CompileOptions {\n languageResources?: TranslationLanguageDefinition[];\n languages: string[];\n defaultLanguage: string;\n /** BCP-47 tags published reviewed-only (absence ⇒ machine-ok). */\n reviewedOnlyLanguages?: Iterable<string>;\n /** Stamp the manifest; omit for deterministic output (tests). */\n generatedAt?: string;\n}\n\n/** Deterministic FNV-1a (32-bit) hex over a string — dep-free, browser-safe. */\nexport function hashString(input: string): string {\n let h = 0x811c9dc5;\n for (let i = 0; i < input.length; i++) {\n h ^= input.charCodeAt(i);\n h = Math.imul(h, 0x01000193);\n }\n return (h >>> 0).toString(16).padStart(8, '0');\n}\n\n/** Canonical JSON with sorted keys, so the hash is stable across runs. */\nexport function stableStringify(payload: TranslationPayload): string {\n const keys = Object.keys(payload).sort();\n return JSON.stringify(Object.fromEntries(keys.map((k) => [k, payload[k]])));\n}\n\n/** Content hash of a payload (drives the `{lang}.{hash}.json` filename). */\nexport function hashPayload(payload: TranslationPayload): string {\n return hashString(stableStringify(payload));\n}\n\n/**\n * Compile one language's complete catalog from the app's UI entries, honoring\n * publish policy. The default/source language emits `sourceText` for every key.\n */\nexport function compileLanguage(\n entries: TranslationEntryRecord[],\n language: string,\n options: {\n defaultLanguage: string;\n reviewedOnly?: boolean;\n languageResources?: TranslationLanguageDefinition[];\n }\n): TranslationPayload {\n const isSource = language === options.defaultLanguage;\n const payload: TranslationPayload = {};\n const valueFor = (\n entry: TranslationEntryRecord,\n message: string\n ): TranslationMessage =>\n entry.format === 'icu' ? { message, format: 'icu' } : message;\n for (const entry of entries) {\n if (entry.kind !== 'ui') continue; // AD-I: content is query-time, not published.\n const source = entry.sourceText ?? '';\n if (isSource) {\n payload[entry.key] = valueFor(entry, source);\n continue;\n }\n const candidates = languageFallbacks(\n language,\n options.defaultLanguage,\n options.languageResources\n );\n const unit = candidates\n .filter((code) => code !== options.defaultLanguage)\n .map((code) => entry.units?.[code])\n .find(\n (candidate) =>\n candidate?.text &&\n (!options.reviewedOnly || candidate.state === 'reviewed')\n );\n payload[entry.key] = valueFor(entry, unit?.text ?? source);\n }\n return payload;\n}\n\n/** Compile every requested language + a content-hashed manifest. */\nexport function compileCatalogs(\n entries: TranslationEntryRecord[],\n options: CompileOptions\n): {\n payloads: Record<string, TranslationPayload>;\n manifest: TranslationManifest;\n} {\n const reviewedOnly = new Set(options.reviewedOnlyLanguages ?? []);\n const payloads: Record<string, TranslationPayload> = {};\n const languages: Record<string, TranslationManifestEntry> = {};\n\n for (const language of options.languages) {\n const payload = compileLanguage(entries, language, {\n defaultLanguage: options.defaultLanguage,\n reviewedOnly: reviewedOnly.has(language),\n languageResources: options.languageResources,\n });\n payloads[language] = payload;\n languages[language] = {\n hash: hashPayload(payload),\n dir:\n options.languageResources?.find((item) => item.code === language)\n ?.direction ?? directionFor(language),\n count: Object.keys(payload).length,\n };\n }\n\n return {\n payloads,\n manifest: {\n schemaVersion: 1,\n defaultLanguage: options.defaultLanguage,\n ...(options.languageResources\n ? { languageResources: options.languageResources }\n : {}),\n ...(options.generatedAt ? { generatedAt: options.generatedAt } : {}),\n languages,\n },\n };\n}\n\n/** Filename for a compiled payload: `{lang}.json` (simple) or `{lang}.{hash}.json`. */\nexport function payloadFileName(\n language: string,\n hash: string,\n opts: { hashed?: boolean } = {}\n): string {\n return opts.hashed ? `${language}.${hash}.json` : `${language}.json`;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/core/messages.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/core/messages.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Framework-light translation core (Plan 014, P1.5). Pure TS, dependency-free —\n * the portable heart shared by the React subpath and any non-React consumer, so\n * a hosted app can use it without pulling React.\n *\n * Preserves Tolgee's `t(key, defaultValue?, params?)` semantics so serve's\n * ~1,302 call sites (with inline English defaults) are a drop-in swap:\n * - default formatting is FormatSimple-style `{named}` interpolation (exactly\n * what serve uses today), so imported strings render identically;\n * - keys marked `format:'icu'` use standards-based ICU MessageFormat with\n * the active BCP-47 locale, including plural/select/selectordinal.\n */\nimport { localeDirection } from '../languages.js';\nimport IntlMessageFormat from 'intl-messageformat';\n\nexport type MessageFormat = 'simple' | 'icu';\n\n/** ICU keys retain their format beside the string in mixed-format catalogs. */\nexport interface FormattedTranslationMessage {\n message: string;\n format: MessageFormat;\n}\n\nexport type TranslationMessage = string | FormattedTranslationMessage;\n\n/** key → message template, for a single language. */\nexport type TranslationMessages = Record<string, TranslationMessage>;\n\n/** FormatSimple: replace `{name}` placeholders with `params.name`. Unknown → left as-is. */\nexport function interpolate(\n template: string,\n params?: Record<string, unknown>,\n): string {\n if (!params) return template;\n return template.replace(\n /\\{\\s*([\\p{L}\\p{N}_][\\p{L}\\p{N}\\p{M}_.-]*)\\s*\\}/gu,\n (whole, name) =>\n name in params ? String(params[name] ?? '') : whole,\n );\n}\n\nconst ICU_CACHE_LIMIT = 500;\nconst icuCache = new Map<string, IntlMessageFormat>();\n\nfunction compiledIcu(template: string, locale: string): IntlMessageFormat {\n const key = `${locale}\\u0000${template}`;\n const cached = icuCache.get(key);\n if (cached) return cached;\n const compiled = new IntlMessageFormat(template, locale, undefined, {\n ignoreTag: true,\n });\n if (icuCache.size >= ICU_CACHE_LIMIT) {\n icuCache.delete(icuCache.keys().next().value as string);\n }\n icuCache.set(key, compiled);\n return compiled;\n}\n\n/**\n * Full ICU MessageFormat using the active locale's CLDR plural rules. Invalid\n * authoring data never crashes the host app: the unformatted template remains\n * visible and Translation Studio reports the syntax error for repair.\n */\nexport function formatIcu(\n template: string,\n params?: Record<string, unknown>,\n locale = 'en',\n): string {\n try {\n const result = compiledIcu(template, locale).format(params as any);\n return Array.isArray(result) ? result.join('') : String(result);\n } catch {\n return interpolate(template, params);\n }\n}\n\n/**\n * Resolve `key` against a message map, falling back to the inline default (then\n * the key itself), and format with params. This is what the client `t()` calls.\n */\nexport function translate(\n messages: TranslationMessages,\n key: string,\n defaultValue?: string,\n params?: Record<string, unknown>,\n format: MessageFormat = 'simple',\n locale = 'en',\n): string {\n const stored = messages[key];\n const template =\n typeof stored === 'string'\n ? stored\n : stored?.message ?? defaultValue ?? key;\n const resolvedFormat =\n typeof stored === 'object' ? stored.format : format;\n return resolvedFormat === 'icu'\n ? formatIcu(template, params, locale)\n : interpolate(template, params);\n}\n\n/** @deprecated Use directionFor; this historical set is not a support boundary. */\nexport const RTL_LANGUAGES = new Set(['ar', 'ur']);\n\nexport function directionFor(language: string): 'ltr' | 'rtl' {\n try { return localeDirection(language); } catch { return 'ltr'; }\n}\n"]}
|
package/lib/esm/discovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/discovery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/discovery.ts"],"names":[],"mappings":"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","sourcesContent":["import type { MessageFormat } from './core/messages.js';\nimport type {\n TranslationBuildDeclaration,\n TranslationDeclarationKind,\n TranslationDeclarationStatus,\n} from './exchange.js';\n\nexport type TranslationDeclarationSource =\n | 'code'\n | 'manifest'\n | 'package'\n | 'linked'\n | 'import'\n | 'runtime';\n\nexport interface TranslationDeclarationProvenance {\n source: TranslationDeclarationSource;\n sourceId: string;\n authoritative: boolean;\n file?: string;\n line?: number;\n ownerIri?: string;\n shapeIri?: string;\n propertyIri?: string;\n nodeIri?: string;\n fromPackage?: string;\n targetClass?: string;\n}\n\nexport interface TranslationDeclaration {\n schemaVersion: 1;\n key: string;\n sourceText: string;\n namespace?: string;\n kind: TranslationDeclarationKind;\n format: MessageFormat;\n description?: string;\n provenance: TranslationDeclarationProvenance;\n}\n\nexport interface TranslationDiscoveryContext {\n appId: string;\n branchId?: string;\n sourceRoot?: string;\n}\n\nexport interface TranslationDiscoverySource {\n readonly name: string;\n discover(\n context: TranslationDiscoveryContext,\n ): AsyncIterable<TranslationDeclaration>;\n}\n\nexport type TranslationInventoryStatus =\n | 'confirmed'\n | 'pending'\n | 'conflict'\n | 'orphaned';\n\nexport interface TranslationInventoryItem {\n identity: string;\n appId: string;\n key: string;\n sourceText: string;\n namespace?: string;\n kind: TranslationDeclarationKind;\n format: MessageFormat;\n description?: string;\n status: TranslationInventoryStatus;\n authoritative: boolean;\n exchangeEligible: boolean;\n buildEligible: boolean;\n origins: TranslationDeclarationProvenance[];\n}\n\nexport interface TranslationInventoryConflict {\n identity: string;\n declarations: TranslationDeclaration[];\n}\n\nexport interface TranslationInventorySnapshot {\n schemaVersion: 1;\n appId: string;\n branchId?: string;\n items: TranslationInventoryItem[];\n conflicts: TranslationInventoryConflict[];\n buildDeclarations: TranslationBuildDeclaration[];\n}\n\nexport interface TranslationDiscoveryManifestEntry {\n key: string;\n sourceText: string;\n namespace?: string;\n kind?: TranslationDeclarationKind;\n format?: MessageFormat;\n description?: string;\n ownerIri?: string;\n shapeIri?: string;\n propertyIri?: string;\n nodeIri?: string;\n}\n\nexport interface TranslationDiscoveryManifest {\n schemaVersion: 1;\n sourceId: string;\n declarations: TranslationDiscoveryManifestEntry[];\n}\n\nexport interface DiscoverTranslationInventoryOptions {\n previous?: TranslationInventorySnapshot;\n}\n\nconst KIND_ORDER: Record<TranslationDeclarationKind, number> = {\n ui: 0,\n semantic: 1,\n content: 2,\n};\n\nfunction requiredString(value: unknown, label: string): string {\n if (typeof value !== 'string' || !value.trim()) {\n throw new Error(`${label} is required.`);\n }\n return value.trim();\n}\n\nfunction optionalString(value: unknown, label: string): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value !== 'string' || !value.trim()) {\n throw new Error(`${label} must be a non-empty string when supplied.`);\n }\n return value.trim();\n}\n\nfunction declarationKind(\n value: unknown,\n label: string,\n fallback: TranslationDeclarationKind = 'ui',\n): TranslationDeclarationKind {\n const candidate = value ?? fallback;\n if (\n candidate !== 'ui' &&\n candidate !== 'semantic' &&\n candidate !== 'content'\n ) {\n throw new Error(`${label} must be \"ui\", \"semantic\", or \"content\".`);\n }\n return candidate;\n}\n\nfunction messageFormat(\n value: unknown,\n label: string,\n fallback: MessageFormat = 'simple',\n): MessageFormat {\n const candidate = value ?? fallback;\n if (candidate !== 'simple' && candidate !== 'icu') {\n throw new Error(`${label} must be \"simple\" or \"icu\".`);\n }\n return candidate;\n}\n\nfunction object(value: unknown, label: string): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error(`${label} must be an object.`);\n }\n return value as Record<string, unknown>;\n}\n\nfunction normalizeManifestEntry(\n value: unknown,\n index: number,\n): TranslationDiscoveryManifestEntry {\n const entry = object(value, `declarations[${index}]`);\n const kind = declarationKind(entry.kind, `declarations[${index}].kind`);\n const nodeIri = optionalString(\n entry.nodeIri,\n `declarations[${index}].nodeIri`,\n );\n const propertyIri = optionalString(\n entry.propertyIri,\n `declarations[${index}].propertyIri`,\n );\n if (kind === 'content' && (!nodeIri || !propertyIri)) {\n throw new Error(\n `declarations[${index}] content entries require nodeIri and propertyIri.`,\n );\n }\n if (typeof entry.sourceText !== 'string') {\n throw new Error(`declarations[${index}].sourceText must be a string.`);\n }\n return {\n key: requiredString(entry.key, `declarations[${index}].key`),\n sourceText: entry.sourceText,\n kind,\n format: messageFormat(entry.format, `declarations[${index}].format`),\n ...(optionalString(\n entry.namespace,\n `declarations[${index}].namespace`,\n )\n ? {\n namespace: optionalString(\n entry.namespace,\n `declarations[${index}].namespace`,\n ),\n }\n : {}),\n ...(optionalString(\n entry.description,\n `declarations[${index}].description`,\n )\n ? {\n description: optionalString(\n entry.description,\n `declarations[${index}].description`,\n ),\n }\n : {}),\n ...(optionalString(entry.ownerIri, `declarations[${index}].ownerIri`)\n ? {\n ownerIri: optionalString(\n entry.ownerIri,\n `declarations[${index}].ownerIri`,\n ),\n }\n : {}),\n ...(optionalString(entry.shapeIri, `declarations[${index}].shapeIri`)\n ? {\n shapeIri: optionalString(\n entry.shapeIri,\n `declarations[${index}].shapeIri`,\n ),\n }\n : {}),\n ...(propertyIri ? { propertyIri } : {}),\n ...(nodeIri ? { nodeIri } : {}),\n };\n}\n\n/** Parse the portable v1 manifest used to declare dynamic translation keys. */\nexport function parseTranslationDiscoveryManifest(\n value: unknown,\n): TranslationDiscoveryManifest {\n const manifest = object(value, 'manifest');\n if (manifest.schemaVersion !== 1) {\n throw new Error('Translation discovery manifest schemaVersion must be 1.');\n }\n if (!Array.isArray(manifest.declarations)) {\n throw new Error('Translation discovery manifest declarations must be an array.');\n }\n return {\n schemaVersion: 1,\n sourceId: requiredString(manifest.sourceId, 'manifest.sourceId'),\n declarations: manifest.declarations.map(normalizeManifestEntry),\n };\n}\n\n/** Turn a portable manifest into an authoritative discovery source. */\nexport function manifestTranslationDiscoverySource(\n value: unknown,\n): TranslationDiscoverySource {\n const manifest = parseTranslationDiscoveryManifest(value);\n return {\n name: `manifest:${manifest.sourceId}`,\n async *discover() {\n for (const entry of manifest.declarations) {\n yield {\n schemaVersion: 1,\n key: entry.key,\n sourceText: entry.sourceText,\n kind: entry.kind ?? 'ui',\n format: entry.format ?? 'simple',\n ...(entry.namespace ? { namespace: entry.namespace } : {}),\n ...(entry.description ? { description: entry.description } : {}),\n provenance: {\n source: 'manifest',\n sourceId: manifest.sourceId,\n authoritative: true,\n ...(entry.ownerIri ? { ownerIri: entry.ownerIri } : {}),\n ...(entry.shapeIri ? { shapeIri: entry.shapeIri } : {}),\n ...(entry.propertyIri ? { propertyIri: entry.propertyIri } : {}),\n ...(entry.nodeIri ? { nodeIri: entry.nodeIri } : {}),\n },\n };\n }\n },\n };\n}\n\nfunction normalizeDeclaration(\n declaration: TranslationDeclaration,\n): TranslationDeclaration {\n if (declaration?.schemaVersion !== 1) {\n throw new Error('Translation declaration schemaVersion must be 1.');\n }\n const kind = declarationKind(declaration.kind, 'declaration.kind');\n const provenance = object(\n declaration.provenance,\n 'declaration.provenance',\n ) as unknown as TranslationDeclarationProvenance;\n const nodeIri = optionalString(provenance.nodeIri, 'provenance.nodeIri');\n const propertyIri = optionalString(\n provenance.propertyIri,\n 'provenance.propertyIri',\n );\n if (kind === 'content' && (!nodeIri || !propertyIri)) {\n throw new Error(\n 'Content translation declarations require provenance.nodeIri and provenance.propertyIri.',\n );\n }\n if (typeof declaration.sourceText !== 'string') {\n throw new Error('declaration.sourceText must be a string.');\n }\n const source = provenance.source;\n if (\n source !== 'code' &&\n source !== 'manifest' &&\n source !== 'package' &&\n source !== 'linked' &&\n source !== 'import' &&\n source !== 'runtime'\n ) {\n throw new Error('declaration.provenance.source is invalid.');\n }\n if (typeof provenance.authoritative !== 'boolean') {\n throw new Error('declaration.provenance.authoritative must be boolean.');\n }\n return {\n schemaVersion: 1,\n key: requiredString(declaration.key, 'declaration.key'),\n sourceText: declaration.sourceText,\n kind,\n format: messageFormat(declaration.format, 'declaration.format'),\n ...(optionalString(declaration.namespace, 'declaration.namespace')\n ? { namespace: declaration.namespace!.trim() }\n : {}),\n ...(optionalString(declaration.description, 'declaration.description')\n ? { description: declaration.description!.trim() }\n : {}),\n provenance: {\n source,\n sourceId: requiredString(provenance.sourceId, 'provenance.sourceId'),\n authoritative: provenance.authoritative,\n ...(optionalString(provenance.file, 'provenance.file')\n ? { file: provenance.file!.trim() }\n : {}),\n ...(provenance.line === undefined\n ? {}\n : Number.isSafeInteger(provenance.line) && provenance.line > 0\n ? { line: provenance.line }\n : (() => {\n throw new Error('provenance.line must be a positive integer.');\n })()),\n ...(optionalString(provenance.ownerIri, 'provenance.ownerIri')\n ? { ownerIri: provenance.ownerIri!.trim() }\n : {}),\n ...(optionalString(provenance.shapeIri, 'provenance.shapeIri')\n ? { shapeIri: provenance.shapeIri!.trim() }\n : {}),\n ...(propertyIri ? { propertyIri } : {}),\n ...(nodeIri ? { nodeIri } : {}),\n ...(optionalString(provenance.fromPackage, 'provenance.fromPackage')\n ? { fromPackage: provenance.fromPackage!.trim() }\n : {}),\n ...(optionalString(provenance.targetClass, 'provenance.targetClass')\n ? { targetClass: provenance.targetClass!.trim() }\n : {}),\n },\n };\n}\n\n/** Stable identity: UI/semantic by namespace+key; content by node+field IRI. */\nexport function translationDeclarationIdentity(\n appId: string,\n declaration: TranslationDeclaration,\n): string {\n const normalizedAppId = requiredString(appId, 'appId');\n if (declaration.kind === 'content') {\n return `content:${JSON.stringify([\n normalizedAppId,\n declaration.provenance.nodeIri,\n declaration.provenance.propertyIri,\n ])}`;\n }\n return `message:${JSON.stringify([\n normalizedAppId,\n declaration.namespace ?? '',\n declaration.key,\n ])}`;\n}\n\nfunction canonicalProvenance(\n provenance: TranslationDeclarationProvenance,\n): string {\n return JSON.stringify([\n provenance.source,\n provenance.sourceId,\n provenance.authoritative,\n provenance.file ?? '',\n provenance.line ?? 0,\n provenance.ownerIri ?? '',\n provenance.shapeIri ?? '',\n provenance.propertyIri ?? '',\n provenance.nodeIri ?? '',\n provenance.fromPackage ?? '',\n provenance.targetClass ?? '',\n ]);\n}\n\nfunction sortDeclarations(\n declarations: TranslationDeclaration[],\n): TranslationDeclaration[] {\n return [...declarations].sort((left, right) => {\n const source = canonicalProvenance(left.provenance).localeCompare(\n canonicalProvenance(right.provenance),\n );\n if (source !== 0) return source;\n return JSON.stringify([\n left.sourceText,\n left.format,\n left.kind,\n left.key,\n ]).localeCompare(\n JSON.stringify([\n right.sourceText,\n right.format,\n right.kind,\n right.key,\n ]),\n );\n });\n}\n\nfunction uniqueOrigins(\n declarations: TranslationDeclaration[],\n): TranslationDeclarationProvenance[] {\n return [\n ...new Map(\n sortDeclarations(declarations).map(({ provenance }) => [\n canonicalProvenance(provenance),\n provenance,\n ]),\n ).values(),\n ];\n}\n\nfunction itemFromDeclarations(\n appId: string,\n identity: string,\n declarations: TranslationDeclaration[],\n): {\n item: TranslationInventoryItem;\n conflict?: TranslationInventoryConflict;\n} {\n const ordered = sortDeclarations(declarations);\n const authoritative = ordered.filter(\n ({ provenance }) => provenance.authoritative,\n );\n const contracts = new Set(\n authoritative.map(({ sourceText, format }) =>\n JSON.stringify([sourceText, format]),\n ),\n );\n const preferred = authoritative[0] ?? ordered[0];\n const conflict = contracts.size > 1;\n const status: TranslationInventoryStatus = conflict\n ? 'conflict'\n : authoritative.length\n ? 'confirmed'\n : 'pending';\n const kind = ordered.reduce(\n (current, declaration) =>\n KIND_ORDER[declaration.kind] > KIND_ORDER[current]\n ? declaration.kind\n : current,\n preferred.kind,\n );\n const item: TranslationInventoryItem = {\n identity,\n appId,\n key: preferred.key,\n sourceText: preferred.sourceText,\n kind,\n format: preferred.format,\n status,\n authoritative: authoritative.length > 0,\n exchangeEligible:\n status === 'confirmed' && kind !== 'content',\n buildEligible:\n status === 'confirmed' && kind !== 'content',\n origins: uniqueOrigins(ordered),\n ...(preferred.namespace ? { namespace: preferred.namespace } : {}),\n ...(preferred.description ? { description: preferred.description } : {}),\n };\n return {\n item,\n ...(conflict ? { conflict: { identity, declarations: ordered } } : {}),\n };\n}\n\nfunction buildDeclaration(\n item: TranslationInventoryItem,\n): TranslationBuildDeclaration {\n const first = item.origins[0];\n return {\n key: item.key,\n sourceText: item.sourceText,\n format: item.format,\n kind: item.kind,\n status: 'confirmed' satisfies TranslationDeclarationStatus,\n authoritative: true,\n ...(item.namespace ? { namespace: item.namespace } : {}),\n ...(first?.file ? { file: first.file } : {}),\n ...(first?.line ? { line: first.line } : {}),\n };\n}\n\n/** Build-facing confirmed subset of a persisted or freshly discovered inventory. */\nexport function translationBuildDeclarationsFromInventory(\n items: Iterable<TranslationInventoryItem>,\n): TranslationBuildDeclaration[] {\n return [...items]\n .filter(({ buildEligible, status }) => buildEligible && status === 'confirmed')\n .map(buildDeclaration)\n .sort((left, right) =>\n JSON.stringify([left.namespace ?? '', left.key]).localeCompare(\n JSON.stringify([right.namespace ?? '', right.key]),\n ),\n );\n}\n\n/**\n * Discover and deterministically merge every source. This function is pure\n * with respect to storage: hosts decide how snapshots and lifecycle changes\n * are persisted.\n */\nexport async function discoverTranslationInventory(\n sources: Iterable<TranslationDiscoverySource>,\n context: TranslationDiscoveryContext,\n options: DiscoverTranslationInventoryOptions = {},\n): Promise<TranslationInventorySnapshot> {\n const appId = requiredString(context.appId, 'context.appId');\n const byIdentity = new Map<string, TranslationDeclaration[]>();\n const orderedSources = [...sources].sort((left, right) =>\n left.name.localeCompare(right.name),\n );\n for (const source of orderedSources) {\n for await (const raw of source.discover({ ...context, appId })) {\n const declaration = normalizeDeclaration(raw);\n const identity = translationDeclarationIdentity(appId, declaration);\n const values = byIdentity.get(identity) ?? [];\n values.push(declaration);\n byIdentity.set(identity, values);\n }\n }\n\n const items: TranslationInventoryItem[] = [];\n const conflicts: TranslationInventoryConflict[] = [];\n for (const identity of [...byIdentity.keys()].sort()) {\n const merged = itemFromDeclarations(\n appId,\n identity,\n byIdentity.get(identity)!,\n );\n items.push(merged.item);\n if (merged.conflict) conflicts.push(merged.conflict);\n }\n\n const currentIdentities = new Set(byIdentity.keys());\n for (const previous of options.previous?.items ?? []) {\n if (\n previous.appId !== appId ||\n currentIdentities.has(previous.identity) ||\n previous.status === 'pending'\n ) {\n continue;\n }\n items.push({\n ...previous,\n status: 'orphaned',\n buildEligible: false,\n exchangeEligible: false,\n });\n }\n items.sort((left, right) => left.identity.localeCompare(right.identity));\n\n return {\n schemaVersion: 1,\n appId,\n ...(context.branchId ? { branchId: context.branchId } : {}),\n items,\n conflicts,\n buildDeclarations: translationBuildDeclarationsFromInventory(items),\n };\n}\n"]}
|
package/lib/esm/exchange.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/exchange.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/exchange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AA8HxD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAmB;IAChD,cAAc;IACd,SAAS;IACT,UAAU;IACV,OAAO;CACR,CAAC,CAAC;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+C,CAAC;AAExE,SAAS,MAAM,CAAC,KAAc,EAAE,KAAa;IAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACnD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4CAA4C,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,KAAa;IACjD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,KAAa;IACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IACzE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oCAAoC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAc,EACd,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,YAAY,GAA6C,EAAE,CAAC;IAClE,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,2CAA2C,QAAQ,IAAI,CAChE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,WAAW,EAAE,CAAC,CAAC;QACzD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,WAAW,yBAAyB,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAyB,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,WAAW,oBAAoB,CAAC,CAAC;QAC/D,CAAC;QACD,YAAY,CAAC,QAAQ,CAAC,GAAG;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;gBACzB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,IAAI,EAAE,cAAc,CAClB,IAAI,CAAC,IAAI,EACT,GAAG,KAAK,IAAI,WAAW,OAAO,CAC/B;iBACF,CAAC;SACP,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CACrB,KAAc,EACd,KAAa;IAEb,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC;IAC9D,OAAO;QACL,GAAG;QACH,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,SAAS,EAAE,cAAc,CACvB,IAAI,CAAC,SAAS,EACd,WAAW,KAAK,aAAa,CAC9B;aACF,CAAC;QACN,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,KAAK,QAAQ,CAAC;QACvD,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,KAAK,UAAU,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS;YAC/B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,UAAU,EACR,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;oBACjC,CAAC,CAAC,IAAI,CAAC,UAAU;oBACjB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,KAAK,cAAc,CAAC;aACtE,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,YAAY,EAAE,cAAc,CAC1B,IAAI,CAAC,YAAY,EACjB,WAAW,KAAK,gBAAgB,CACjC;aACF,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS;YAC/B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,UAAU,EAAE,cAAc,CACxB,IAAI,CAAC,UAAU,EACf,WAAW,KAAK,cAAc,CAC/B;aACF,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,YAAY,EAAE,cAAc,CAC1B,IAAI,CAAC,YAAY,EACjB,WAAW,KAAK,gBAAgB,CACjC;aACF,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,iBAAiB,EAAE,cAAc,CAC/B,IAAI,CAAC,iBAAiB,EACtB,WAAW,KAAK,qBAAqB,CACtC;aACF,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS;YAChC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,WAAW,EAAE,cAAc,CACzB,IAAI,CAAC,WAAW,EAChB,WAAW,KAAK,eAAe,CAChC;aACF,CAAC;QACN,YAAY,EAAE,qBAAqB,CACjC,IAAI,CAAC,YAAY,EACjB,WAAW,KAAK,gBAAgB,CACjC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0CAA0C,CACxD,KAAc;;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,cAAc,GAAG,oBAAoB,CACzC,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACvD,CAAC;IACF,MAAM,eAAe,GAAG,kBAAkB,CACxC,KAAK,CAAC,eAAe,EACrB,iBAAiB,CAClB,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS,QAAQ,EAAE,CAAC;YAC/E,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,oCAAoC,KAAK,CAAC,GAAG,QAAQ,QAAQ,GAAG,CACjE,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC9B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7D,cAAc;QACd,eAAe;QACf,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;YAChC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,iBAAiB,EAAE,cAAc,CAC/B,KAAK,CAAC,iBAAiB,EACvB,mBAAmB,CACpB;aACF,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,eAAe,EAAE,cAAc,CAC7B,KAAK,CAAC,eAAe,EACrB,iBAAiB,CAClB;aACF,CAAC;QACN,OAAO;KACR,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,mCAAmC,CACjD,KAAc;IAEd,MAAM,MAAM,GAAG,0CAA0C,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAA4B,EAAE;;QAAC,OAAA,CAAC;YAC9E,GAAG,KAAK;YACR,UAAU,EACR,MAAA,KAAK,CAAC,UAAU,mCAChB,cAAc,CAAC,SAAS,EAAE,WAAW,KAAK,cAAc,CAAC;YAC3D,YAAY,EACV,MAAA,KAAK,CAAC,YAAY,mCAClB,cAAc,CAAC,SAAS,EAAE,WAAW,KAAK,gBAAgB,CAAC;YAC7D,UAAU,EACR,MAAA,KAAK,CAAC,UAAU,mCAChB,cAAc,CAAC,SAAS,EAAE,WAAW,KAAK,cAAc,CAAC;YAC3D,YAAY,EACV,MAAA,KAAK,CAAC,YAAY,mCAClB,cAAc,CAAC,SAAS,EAAE,WAAW,KAAK,gBAAgB,CAAC;YAC7D,iBAAiB,EACf,MAAA,KAAK,CAAC,iBAAiB,mCACvB,cAAc,CAAC,SAAS,EAAE,WAAW,KAAK,qBAAqB,CAAC;SACnE,CAAC,CAAA;KAAA,CAAC,CAAC;IACJ,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,WAAwC;;IAExC,OAAO,CACL,CAAC,MAAA,WAAW,CAAC,IAAI,mCAAI,IAAI,CAAC,KAAK,SAAS;QACxC,CAAC,MAAA,WAAW,CAAC,MAAM,mCAAI,WAAW,CAAC,KAAK,WAAW;QACnD,WAAW,CAAC,aAAa,KAAK,KAAK,CACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,OAAiC;IAEjC,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,+BAA+B,OAAO,CAAC,MAAM,0BAA0B,CACxE,CAAC;IACJ,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAyB;IAEzB,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACjD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,8BAA8B;IAC5C,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC","sourcesContent":["import type { MessageFormat } from './core/messages.js';\nimport { canonicalLanguageTag } from './key-version.js';\nimport type { TranslationState } from './records.js';\n\nexport type TranslationExchangeKind = 'ui' | 'semantic';\nexport type TranslationDeclarationKind =\n | TranslationExchangeKind\n | 'content';\nexport type TranslationDeclarationStatus = 'confirmed' | 'pending';\n\n/**\n * The build-facing subset of the later multi-source discovery contract.\n * Static extraction omits the optional fields and retains its existing\n * confirmed/simple behavior.\n */\nexport interface TranslationBuildDeclaration {\n key: string;\n sourceText: string;\n format?: MessageFormat;\n kind?: TranslationDeclarationKind;\n status?: TranslationDeclarationStatus;\n authoritative?: boolean;\n namespace?: string;\n file?: string;\n line?: number;\n}\n\nexport interface TranslationExchangeValue {\n text: string;\n state?: TranslationState;\n note?: string;\n}\n\nexport interface TranslationExchangeEntry {\n key: string;\n namespace?: string;\n kind: TranslationExchangeKind;\n sourceText: string;\n keyVersionId: string;\n sourceHash: string;\n contractHash: string;\n argumentSignature: string;\n description?: string;\n format: MessageFormat;\n translations: Record<string, TranslationExchangeValue>;\n}\n\nexport interface TranslationExchangeDocument {\n schemaVersion: 1;\n appId?: string;\n branchId?: string;\n sourceLanguage: string;\n targetLanguages: string[];\n exportedAt?: string;\n revisionWatermark?: string;\n contractSetHash?: string;\n entries: TranslationExchangeEntry[];\n}\n\nexport type ParsedTranslationExchangeEntry = Omit<\n TranslationExchangeEntry,\n | 'sourceText'\n | 'keyVersionId'\n | 'sourceHash'\n | 'contractHash'\n | 'argumentSignature'\n> & {\n sourceText?: string;\n keyVersionId?: string;\n sourceHash?: string;\n contractHash?: string;\n argumentSignature?: string;\n};\n\nexport interface ParsedTranslationExchangeDocument\n extends Omit<TranslationExchangeDocument, 'entries'> {\n entries: ParsedTranslationExchangeEntry[];\n}\n\nexport type TranslationFormat =\n | 'xliff-1.2'\n | 'xliff-2.0'\n | 'csv'\n | 'json';\n\nexport interface SerializedTranslationDocument {\n fileName: string;\n mediaType: string;\n body: Uint8Array;\n}\n\nexport interface TranslationFormatAdapter {\n readonly format: TranslationFormat;\n sniff(input: Uint8Array, fileName?: string): boolean;\n parse(\n input: Uint8Array,\n options?: unknown,\n ): Promise<ParsedTranslationExchangeDocument>;\n serialize(\n document: TranslationExchangeDocument,\n options?: unknown,\n ): Promise<SerializedTranslationDocument>;\n}\n\nexport type TranslationImportDisposition =\n | 'import'\n | 'carry-forward'\n | 'unverified-source'\n | 'conflict'\n | 'skip';\n\nexport interface TranslationImportDryRunEntry {\n key: string;\n language: string;\n disposition: TranslationImportDisposition;\n expectedKeyVersionId?: string;\n expectedUnitContentHash?: string;\n}\n\nexport interface TranslationImportDryRun {\n sessionId: string;\n documentHash: string;\n revisionWatermark: string;\n expiresAt: string;\n entries: TranslationImportDryRunEntry[];\n}\n\nconst EXCHANGE_STATES = new Set<TranslationState>([\n 'untranslated',\n 'machine',\n 'reviewed',\n 'stale',\n]);\nconst adapters = new Map<TranslationFormat, TranslationFormatAdapter>();\n\nfunction record(value: unknown, label: string): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error(`${label} must be an object.`);\n }\n return value as Record<string, unknown>;\n}\n\nfunction requiredString(value: unknown, label: string): string {\n if (typeof value !== 'string' || !value.trim()) {\n throw new Error(`${label} is required.`);\n }\n return value.trim();\n}\n\nfunction optionalString(value: unknown, label: string): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value !== 'string' || !value.trim()) {\n throw new Error(`${label} must be a non-empty string when supplied.`);\n }\n return value.trim();\n}\n\nfunction messageFormat(value: unknown, label: string): MessageFormat {\n if (value !== 'simple' && value !== 'icu') {\n throw new Error(`${label} must be \"simple\" or \"icu\".`);\n }\n return value;\n}\n\nfunction exchangeKind(value: unknown, label: string): TranslationExchangeKind {\n if (value !== 'ui' && value !== 'semantic') {\n throw new Error(`${label} must be \"ui\" or \"semantic\".`);\n }\n return value;\n}\n\nfunction canonicalLanguages(value: unknown, label: string): string[] {\n if (!Array.isArray(value)) throw new Error(`${label} must be an array.`);\n const canonical: string[] = [];\n const seen = new Set<string>();\n for (const item of value) {\n if (typeof item !== 'string') {\n throw new Error(`${label} must contain only BCP-47 strings.`);\n }\n const language = canonicalLanguageTag(item);\n if (!seen.has(language)) {\n seen.add(language);\n canonical.push(language);\n }\n }\n return canonical;\n}\n\nfunction normalizeTranslations(\n value: unknown,\n label: string,\n): Record<string, TranslationExchangeValue> {\n const input = record(value, label);\n const translations: Record<string, TranslationExchangeValue> = {};\n for (const [rawLanguage, rawValue] of Object.entries(input)) {\n const language = canonicalLanguageTag(rawLanguage);\n if (translations[language]) {\n throw new Error(\n `${label} contains duplicate canonical language \"${language}\".`,\n );\n }\n const item = record(rawValue, `${label}.${rawLanguage}`);\n if (typeof item.text !== 'string') {\n throw new Error(`${label}.${rawLanguage}.text must be a string.`);\n }\n const state = item.state;\n if (state !== undefined && !EXCHANGE_STATES.has(state as TranslationState)) {\n throw new Error(`${label}.${rawLanguage}.state is invalid.`);\n }\n translations[language] = {\n text: item.text,\n ...(state ? { state: state as TranslationState } : {}),\n ...(item.note === undefined\n ? {}\n : {\n note: requiredString(\n item.note,\n `${label}.${rawLanguage}.note`,\n ),\n }),\n };\n }\n return translations;\n}\n\nfunction normalizeEntry(\n value: unknown,\n index: number,\n): ParsedTranslationExchangeEntry {\n const item = record(value, `entries[${index}]`);\n const key = requiredString(item.key, `entries[${index}].key`);\n return {\n key,\n ...(item.namespace === undefined\n ? {}\n : {\n namespace: requiredString(\n item.namespace,\n `entries[${index}].namespace`,\n ),\n }),\n kind: exchangeKind(item.kind, `entries[${index}].kind`),\n format: messageFormat(item.format, `entries[${index}].format`),\n ...(item.sourceText === undefined\n ? {}\n : {\n sourceText:\n typeof item.sourceText === 'string'\n ? item.sourceText\n : requiredString(item.sourceText, `entries[${index}].sourceText`),\n }),\n ...(item.keyVersionId === undefined\n ? {}\n : {\n keyVersionId: requiredString(\n item.keyVersionId,\n `entries[${index}].keyVersionId`,\n ),\n }),\n ...(item.sourceHash === undefined\n ? {}\n : {\n sourceHash: requiredString(\n item.sourceHash,\n `entries[${index}].sourceHash`,\n ),\n }),\n ...(item.contractHash === undefined\n ? {}\n : {\n contractHash: requiredString(\n item.contractHash,\n `entries[${index}].contractHash`,\n ),\n }),\n ...(item.argumentSignature === undefined\n ? {}\n : {\n argumentSignature: requiredString(\n item.argumentSignature,\n `entries[${index}].argumentSignature`,\n ),\n }),\n ...(item.description === undefined\n ? {}\n : {\n description: requiredString(\n item.description,\n `entries[${index}].description`,\n ),\n }),\n translations: normalizeTranslations(\n item.translations,\n `entries[${index}].translations`,\n ),\n };\n}\n\n/**\n * Normalize adapter output without inventing evidence missing from a foreign\n * file. Import disposition handles those entries as unverified later.\n */\nexport function normalizeParsedTranslationExchangeDocument(\n value: unknown,\n): ParsedTranslationExchangeDocument {\n const input = record(value, 'Translation exchange document');\n if (input.schemaVersion !== 1) {\n throw new Error('Translation exchange schemaVersion must be 1.');\n }\n const sourceLanguage = canonicalLanguageTag(\n requiredString(input.sourceLanguage, 'sourceLanguage'),\n );\n const targetLanguages = canonicalLanguages(\n input.targetLanguages,\n 'targetLanguages',\n );\n if (!Array.isArray(input.entries)) {\n throw new Error('entries must be an array.');\n }\n const entries = input.entries.map(normalizeEntry);\n const identities = new Set<string>();\n for (const entry of entries) {\n for (const language of Object.keys(entry.translations)) {\n const identity = `${entry.namespace ?? ''}\\u0000${entry.key}\\u0000${language}`;\n if (identities.has(identity)) {\n throw new Error(\n `Duplicate translation entry for \"${entry.key}\" in ${language}.`,\n );\n }\n identities.add(identity);\n }\n }\n return {\n schemaVersion: 1,\n ...(input.appId === undefined\n ? {}\n : { appId: requiredString(input.appId, 'appId') }),\n ...(input.branchId === undefined\n ? {}\n : { branchId: requiredString(input.branchId, 'branchId') }),\n sourceLanguage,\n targetLanguages,\n ...(input.exportedAt === undefined\n ? {}\n : { exportedAt: requiredString(input.exportedAt, 'exportedAt') }),\n ...(input.revisionWatermark === undefined\n ? {}\n : {\n revisionWatermark: requiredString(\n input.revisionWatermark,\n 'revisionWatermark',\n ),\n }),\n ...(input.contractSetHash === undefined\n ? {}\n : {\n contractSetHash: requiredString(\n input.contractSetHash,\n 'contractSetHash',\n ),\n }),\n entries,\n };\n}\n\n/** Validate the stronger, version-evidenced document required for CN exports. */\nexport function validateTranslationExchangeDocument(\n value: unknown,\n): TranslationExchangeDocument {\n const parsed = normalizeParsedTranslationExchangeDocument(value);\n const entries = parsed.entries.map((entry, index): TranslationExchangeEntry => ({\n ...entry,\n sourceText:\n entry.sourceText ??\n requiredString(undefined, `entries[${index}].sourceText`),\n keyVersionId:\n entry.keyVersionId ??\n requiredString(undefined, `entries[${index}].keyVersionId`),\n sourceHash:\n entry.sourceHash ??\n requiredString(undefined, `entries[${index}].sourceHash`),\n contractHash:\n entry.contractHash ??\n requiredString(undefined, `entries[${index}].contractHash`),\n argumentSignature:\n entry.argumentSignature ??\n requiredString(undefined, `entries[${index}].argumentSignature`),\n }));\n return { ...parsed, entries };\n}\n\nexport function isConfirmedBuildDeclaration(\n declaration: TranslationBuildDeclaration,\n): boolean {\n return (\n (declaration.kind ?? 'ui') !== 'content' &&\n (declaration.status ?? 'confirmed') === 'confirmed' &&\n declaration.authoritative !== false\n );\n}\n\nexport function registerTranslationFormatAdapter(\n adapter: TranslationFormatAdapter,\n): void {\n if (adapters.has(adapter.format)) {\n throw new Error(\n `Translation format adapter \"${adapter.format}\" is already registered.`,\n );\n }\n adapters.set(adapter.format, adapter);\n}\n\nexport function getTranslationFormatAdapter(\n format: TranslationFormat,\n): TranslationFormatAdapter | undefined {\n return adapters.get(format);\n}\n\nexport function listTranslationFormatAdapters(): TranslationFormatAdapter[] {\n return [...adapters.values()].sort((left, right) =>\n left.format.localeCompare(right.format),\n );\n}\n\n/** Test/host reset hook; adapters are registered explicitly by the host. */\nexport function clearTranslationFormatAdapters(): void {\n adapters.clear();\n}\n"]}
|