@_linked/translation 0.3.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.
Files changed (39) hide show
  1. package/lib/esm/archive.js.map +1 -1
  2. package/lib/esm/authorization.js.map +1 -1
  3. package/lib/esm/backend.js.map +1 -1
  4. package/lib/esm/cdn-loader.js.map +1 -1
  5. package/lib/esm/checks.js.map +1 -1
  6. package/lib/esm/compile.js.map +1 -1
  7. package/lib/esm/core/messages.js.map +1 -1
  8. package/lib/esm/discovery.js.map +1 -1
  9. package/lib/esm/exchange.js.map +1 -1
  10. package/lib/esm/export.js.map +1 -1
  11. package/lib/esm/formats/csv.js.map +1 -1
  12. package/lib/esm/formats/json.js.map +1 -1
  13. package/lib/esm/formats/xliff.js.map +1 -1
  14. package/lib/esm/import.js.map +1 -1
  15. package/lib/esm/index.js.map +1 -1
  16. package/lib/esm/key-sync-node.js.map +1 -1
  17. package/lib/esm/key-sync.js.map +1 -1
  18. package/lib/esm/key-version.js.map +1 -1
  19. package/lib/esm/languages.js.map +1 -1
  20. package/lib/esm/linked-discovery.js.map +1 -1
  21. package/lib/esm/message-format.js.map +1 -1
  22. package/lib/esm/mt.js.map +1 -1
  23. package/lib/esm/ontologies/translation.js.map +1 -1
  24. package/lib/esm/ontologies/translation.register.js.map +1 -1
  25. package/lib/esm/package.js.map +1 -1
  26. package/lib/esm/react.js.map +1 -1
  27. package/lib/esm/records.js.map +1 -1
  28. package/lib/esm/release.js.map +1 -1
  29. package/lib/esm/shape-catalog.js.map +1 -1
  30. package/lib/esm/shapes/GlossaryTerm.js.map +1 -1
  31. package/lib/esm/shapes/TranslationInventoryOrigin.js.map +1 -1
  32. package/lib/esm/shapes/TranslationKey.js.map +1 -1
  33. package/lib/esm/shapes/TranslationKeyVersion.js.map +1 -1
  34. package/lib/esm/shapes/TranslationLanguage.js.map +1 -1
  35. package/lib/esm/shapes/TranslationProvider.js.map +1 -1
  36. package/lib/esm/shapes/TranslationRelease.js.map +1 -1
  37. package/lib/esm/shapes/TranslationRevision.js.map +1 -1
  38. package/lib/esm/shapes/TranslationUnit.js.map +1 -1
  39. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6EAA6E;AAC7E,uEAAuE;AACvE,OAAO,sCAAsC,CAAC;AAC9C,OAAO,4BAA4B,CAAC;AACpC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,gCAAgC,CAAC;AACxC,OAAO,6BAA6B,CAAC;AACrC,OAAO,iCAAiC,CAAC;AACzC,OAAO,0BAA0B,CAAC;AAClC,OAAO,wCAAwC,CAAC;AAEhD,OAAO,EACL,oBAAoB,EACpB,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,mCAAmC,EACnC,SAAS,GACV,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,sCAAsC,GACvC,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,iCAAiC,EACjC,yCAAyC,EACzC,8BAA8B,GAC/B,MAAM,gBAAgB,CAAC;AAexB,OAAO,EACL,uCAAuC,EACvC,oCAAoC,GACrC,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAC7B,0CAA0C,EAC1C,gCAAgC,EAChC,mCAAmC,GACpC,MAAM,eAAe,CAAC;AAkBvB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAerB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAMhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EACL,uCAAuC,EACvC,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,+BAA+B,EAC/B,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,cAAc,CAAC;AAsCtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6EAA6E;AAC7E,uEAAuE;AACvE,OAAO,sCAAsC,CAAC;AAC9C,OAAO,4BAA4B,CAAC;AACpC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,gCAAgC,CAAC;AACxC,OAAO,6BAA6B,CAAC;AACrC,OAAO,iCAAiC,CAAC;AACzC,OAAO,0BAA0B,CAAC;AAClC,OAAO,wCAAwC,CAAC;AAEhD,OAAO,EACL,oBAAoB,EACpB,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,mCAAmC,EACnC,SAAS,GACV,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,sCAAsC,GACvC,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,iCAAiC,EACjC,yCAAyC,EACzC,8BAA8B,GAC/B,MAAM,gBAAgB,CAAC;AAexB,OAAO,EACL,uCAAuC,EACvC,oCAAoC,GACrC,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,EAC7B,0CAA0C,EAC1C,gCAAgC,EAChC,mCAAmC,GACpC,MAAM,eAAe,CAAC;AAkBvB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAerB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAMhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EACL,uCAAuC,EACvC,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,+BAA+B,EAC/B,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,cAAc,CAAC;AAsCtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,cAAc,gBAAgB,CAAC","sourcesContent":["// Isomorphic barrel (Plan 014 AD-G): side-effect imports register the ontology\n// + shapes into the LINKED tree. Safe on client and server — no backend/Node\n// code here (that lives in ./backend.ts). Ontology FIRST, then shapes.\nimport './ontologies/translation.register.js';\nimport './shapes/TranslationKey.js';\nimport './shapes/TranslationKeyVersion.js';\nimport './shapes/TranslationRelease.js';\nimport './shapes/TranslationUnit.js';\nimport './shapes/TranslationRevision.js';\nimport './shapes/GlossaryTerm.js';\nimport './shapes/TranslationInventoryOrigin.js';\n\nexport {\n canAuthorTranslation,\n configureTranslationAuthorization,\n} from './authorization.js';\nexport type {\n TranslationAuthoringAction,\n TranslationAuthorizationRequest,\n TranslationAuthorizationResolver,\n} from './authorization.js';\n\nexport { TranslationKey } from './shapes/TranslationKey.js';\nexport { TranslationKeyVersion } from './shapes/TranslationKeyVersion.js';\nexport { TranslationRelease } from './shapes/TranslationRelease.js';\nexport { TranslationUnit } from './shapes/TranslationUnit.js';\nexport { TranslationRevision } from './shapes/TranslationRevision.js';\nexport { GlossaryTerm } from './shapes/GlossaryTerm.js';\nexport { TranslationInventoryOrigin } from './shapes/TranslationInventoryOrigin.js';\nexport { tr } from './ontologies/translation.js';\nexport {\n canonicalLanguageTag,\n classifyKeyVersion,\n createArgumentSignature,\n createMonotonicVersionId,\n deriveBackfillKeyVersion,\n deriveTranslationKeyVersionContract,\n sha256Hex,\n} from './key-version.js';\nexport type {\n DerivedBackfillKeyVersion,\n ExtractedTranslationKeyContract,\n KeyVersionDecision,\n TranslationKeyVersionContract,\n TranslationKeyVersionLike,\n} from './key-version.js';\nexport {\n defineShapeTranslationCatalog,\n installShapeTranslationCatalog,\n shapeCatalogTranslationDiscoverySource,\n} from './shape-catalog.js';\nexport type {\n ShapeTranslationCatalog,\n ShapeTranslationCatalogEntry,\n ShapeTranslationCatalogTarget,\n ShapeTranslationInstallReport,\n} from './shape-catalog.js';\nexport {\n discoverTranslationInventory,\n manifestTranslationDiscoverySource,\n parseTranslationDiscoveryManifest,\n translationBuildDeclarationsFromInventory,\n translationDeclarationIdentity,\n} from './discovery.js';\nexport type {\n DiscoverTranslationInventoryOptions,\n TranslationDeclaration,\n TranslationDeclarationProvenance,\n TranslationDeclarationSource,\n TranslationDiscoveryContext,\n TranslationDiscoveryManifest,\n TranslationDiscoveryManifestEntry,\n TranslationDiscoverySource,\n TranslationInventoryConflict,\n TranslationInventoryItem,\n TranslationInventorySnapshot,\n TranslationInventoryStatus,\n} from './discovery.js';\nexport {\n linkedPackageTranslationDiscoverySource,\n parseLinkedPackageTranslationCatalog,\n} from './linked-discovery.js';\nexport type {\n LinkedComponentTranslationCatalog,\n LinkedContentTranslationCatalogEntry,\n LinkedPackageTranslationCatalog,\n LinkedSemanticCatalogEntry,\n LinkedSemanticEntryType,\n} from './linked-discovery.js';\nexport {\n clearTranslationFormatAdapters,\n getTranslationFormatAdapter,\n isConfirmedBuildDeclaration,\n listTranslationFormatAdapters,\n normalizeParsedTranslationExchangeDocument,\n registerTranslationFormatAdapter,\n validateTranslationExchangeDocument,\n} from './exchange.js';\nexport type {\n ParsedTranslationExchangeDocument,\n ParsedTranslationExchangeEntry,\n SerializedTranslationDocument,\n TranslationBuildDeclaration,\n TranslationDeclarationKind,\n TranslationDeclarationStatus,\n TranslationExchangeDocument,\n TranslationExchangeEntry,\n TranslationExchangeKind,\n TranslationExchangeValue,\n TranslationFormat,\n TranslationFormatAdapter,\n TranslationImportDisposition,\n TranslationImportDryRun,\n TranslationImportDryRunEntry,\n} from './exchange.js';\nexport {\n commitVersionedImport,\n flattenMessages,\n hasIcuSyntax,\n planVersionedImport,\n runImport,\n tolgeeCdnSource,\n translationUnitContentHash,\n} from './import.js';\nexport type {\n ImportMergePolicy,\n ImportOptions,\n ImportReport,\n ImportTarget,\n ParsedUnit,\n TranslationImportSource,\n VersionedImportCommitReport,\n VersionedImportCurrentState,\n VersionedImportDecision,\n VersionedImportPlan,\n VersionedImportPlanOptions,\n VersionedImportTarget,\n} from './import.js';\nexport { createTranslationExchangeDocument } from './export.js';\nexport type {\n TranslationExportFinding,\n TranslationExportOptions,\n TranslationExportResult,\n} from './export.js';\nexport { translationCsvAdapter } from './formats/csv.js';\nexport { xliff12Adapter, xliff20Adapter } from './formats/xliff.js';\nexport type { XliffFinding, XliffParseOptions } from './formats/xliff.js';\nexport {\n DEFAULT_TRANSLATION_JSON_ARCHIVE_LIMITS,\n i18nextJsonFormatAdapter,\n parseI18nextJson,\n serializeI18nextJsonZip,\n} from './formats/json.js';\nexport type {\n I18nextJsonLayout,\n TranslationJsonArchiveLimits,\n TranslationJsonParseOptions,\n TranslationJsonSerializeOptions,\n} from './formats/json.js';\nexport {\n DEFAULT_TRANSLATION_ARCHIVE_LIMITS,\n createTranslationArchive,\n parseTranslationArchive,\n planTranslationArchiveRestore,\n TRANSLATION_ARCHIVE_COLLECTIONS,\n TRANSLATION_ARCHIVE_EXCLUSIONS,\n TRANSLATION_ARCHIVE_MANIFEST_PATH,\n} from './archive.js';\nexport type {\n ParsedTranslationArchive,\n PlanTranslationArchiveRestoreOptions,\n SerializedTranslationArchive,\n TranslationArchiveCollection,\n TranslationArchiveContentMapping,\n TranslationArchiveEntity,\n TranslationArchiveEntityInput,\n TranslationArchiveFileInventory,\n TranslationArchiveJson,\n TranslationArchiveManifest,\n TranslationArchiveObjectInput,\n TranslationArchiveObjectInventory,\n TranslationArchiveRestoreDecision,\n TranslationArchiveRestorePlan,\n TranslationArchiveSnapshot,\n TranslationArchiveTargetRecord,\n} from './archive.js';\nexport type {\n GlossaryTermRecord,\n TranslationEntryRecord,\n TranslationRevisionRecord,\n TranslationRevisionStatus,\n TranslationMemoryMatchKind,\n TranslationMemoryMatchRecord,\n TranslationMemoryPretranslateCandidate,\n TranslationMemoryPretranslateReport,\n TranslationMemoryRecord,\n TranslationProposalDecision,\n TranslationReleaseChannel,\n TranslationReleaseRecord,\n TranslationReleaseStatus,\n TranslationState,\n TranslationKeyVersionRecord,\n TranslationUnitRecord,\n} from './records.js';\n\nexport { TranslationLanguage } from './shapes/TranslationLanguage.js';\nexport * from './languages.js';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"key-sync-node.js","sourceRoot":"","sources":["../../src/key-sync-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-sync-node.js","sourceRoot":"","sources":["../../src/key-sync-node.ts"],"names":[],"mappings":"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","sourcesContent":["import { access, readdir, readFile, realpath } from 'node:fs/promises';\nimport {\n dirname,\n extname,\n isAbsolute,\n join,\n relative,\n resolve,\n sep,\n} from 'node:path';\nimport {\n extractTranslationKeys,\n syncTranslationKeys,\n translationDeclarationsFromExtractedKeys,\n type ExtractedTranslationKey,\n type TranslationKeySyncOptions,\n type TranslationKeySyncReport,\n type TranslationKeySyncTarget,\n} from './key-sync.js';\nimport {\n manifestTranslationDiscoverySource,\n type TranslationDiscoverySource,\n} from './discovery.js';\nimport { linkedPackageTranslationDiscoverySource } from './linked-discovery.js';\n\nconst SOURCE_EXTENSIONS = new Set(['.js', '.jsx', '.ts', '.tsx']);\nconst IGNORED_DIRECTORIES = new Set([\n '.git',\n 'build',\n 'coverage',\n 'dist',\n 'lib',\n 'node_modules',\n]);\n\n/** Conventional code-canonical manifest for finite dynamic key families. */\nexport const TRANSLATION_DISCOVERY_MANIFEST_FILE =\n 'translation.discovery.json';\n\n/** package.json field pointing at a serialized LINKED translation catalog. */\nexport const LINKED_TRANSLATION_CATALOG_FIELD =\n 'linkedTranslationCatalog';\n\ninterface PackageManifest {\n name?: unknown;\n dependencies?: unknown;\n optionalDependencies?: unknown;\n [LINKED_TRANSLATION_CATALOG_FIELD]?: unknown;\n}\n\nasync function readJsonFile(path: string): Promise<unknown> {\n return JSON.parse(await readFile(path, 'utf8')) as unknown;\n}\n\nasync function readOptionalJsonFile(path: string): Promise<unknown | null> {\n try {\n return await readJsonFile(path);\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ENOENT') return null;\n throw error;\n }\n}\n\nfunction dependencyNames(manifest: PackageManifest): string[] {\n const names = new Set<string>();\n for (const group of [manifest.dependencies, manifest.optionalDependencies]) {\n if (!group || typeof group !== 'object' || Array.isArray(group)) continue;\n for (const name of Object.keys(group)) names.add(name);\n }\n return [...names].sort();\n}\n\nasync function dependencyDirectory(\n workspaceRoot: string,\n packageDirectory: string,\n dependency: string,\n): Promise<string | null> {\n let search = packageDirectory;\n while (true) {\n const candidate = join(search, 'node_modules', ...dependency.split('/'));\n const boundary = relative(workspaceRoot, candidate);\n if (!isAbsolute(boundary) && !boundary.startsWith('..')) {\n try {\n await access(join(candidate, 'package.json'));\n return candidate;\n } catch {\n // Hoisted dependencies may live in a parent node_modules directory.\n }\n }\n if (search === workspaceRoot) return null;\n const parent = dirname(search);\n if (parent === search || relative(workspaceRoot, parent).startsWith('..')) {\n return null;\n }\n search = parent;\n }\n}\n\nasync function safePackageFile(\n packageDirectory: string,\n file: string,\n): Promise<string> {\n const clean = file.trim();\n if (!clean) {\n throw new Error(\n `${LINKED_TRANSLATION_CATALOG_FIELD} must be a non-empty relative path.`,\n );\n }\n const lexicalFile = resolve(packageDirectory, clean);\n const lexicalBoundary = relative(packageDirectory, lexicalFile);\n if (\n isAbsolute(lexicalBoundary) ||\n lexicalBoundary === '..' ||\n lexicalBoundary.startsWith(`..${sep}`)\n ) {\n throw new Error(\n `${LINKED_TRANSLATION_CATALOG_FIELD} must stay inside its package.`,\n );\n }\n const [realPackageDirectory, realFile] = await Promise.all([\n realpath(packageDirectory),\n realpath(lexicalFile),\n ]);\n const boundary = relative(realPackageDirectory, realFile);\n if (\n isAbsolute(boundary) ||\n boundary === '..' ||\n boundary.startsWith(`..${sep}`)\n ) {\n throw new Error(\n `${LINKED_TRANSLATION_CATALOG_FIELD} must stay inside its package.`,\n );\n }\n return realFile;\n}\n\n/**\n * Discover serialized app and dependency metadata from one exact workspace.\n *\n * This reads JSON only. Dependency JavaScript is never imported or evaluated.\n * Dynamic keys live in `translation.discovery.json`; reusable LINKED packages\n * opt in through package.json's `linkedTranslationCatalog` relative path.\n */\nexport async function loadWorkspaceTranslationDiscoverySources(\n root: string,\n): Promise<TranslationDiscoverySource[]> {\n const workspaceRoot = resolve(root);\n const sources: TranslationDiscoverySource[] = [];\n const appManifest = await readOptionalJsonFile(\n join(workspaceRoot, TRANSLATION_DISCOVERY_MANIFEST_FILE),\n );\n if (appManifest) {\n sources.push(manifestTranslationDiscoverySource(appManifest));\n }\n\n const visited = new Set<string>();\n const inspectPackage = async (packageDirectory: string): Promise<void> => {\n const absoluteDirectory = resolve(packageDirectory);\n if (visited.has(absoluteDirectory)) return;\n const raw = await readOptionalJsonFile(\n join(absoluteDirectory, 'package.json'),\n );\n if (!raw) return;\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {\n throw new Error(`Invalid package.json in ${absoluteDirectory}.`);\n }\n visited.add(absoluteDirectory);\n const manifest = raw as PackageManifest;\n const catalogFile = manifest[LINKED_TRANSLATION_CATALOG_FIELD];\n if (catalogFile !== undefined) {\n if (typeof catalogFile !== 'string') {\n throw new Error(\n `${LINKED_TRANSLATION_CATALOG_FIELD} in ${absoluteDirectory}/package.json must be a string.`,\n );\n }\n sources.push(\n linkedPackageTranslationDiscoverySource(\n await readFile(\n await safePackageFile(absoluteDirectory, catalogFile),\n ),\n ),\n );\n }\n for (const dependency of dependencyNames(manifest)) {\n const directory = await dependencyDirectory(\n workspaceRoot,\n absoluteDirectory,\n dependency,\n );\n if (directory) await inspectPackage(directory);\n }\n };\n\n await inspectPackage(workspaceRoot);\n return sources.sort((left, right) => left.name.localeCompare(right.name));\n}\n\nexport interface ScanTranslationSourceOptions {\n extensions?: Iterable<string>;\n ignoredDirectories?: Iterable<string>;\n}\n\n/** Recursively extract static translation keys from an application's source tree. */\nexport async function scanTranslationSourceTree(\n root: string,\n options: ScanTranslationSourceOptions = {},\n): Promise<ExtractedTranslationKey[]> {\n const absoluteRoot = resolve(root);\n const extensions = new Set(options.extensions ?? SOURCE_EXTENSIONS);\n const ignored = new Set(options.ignoredDirectories ?? IGNORED_DIRECTORIES);\n const files: string[] = [];\n\n const walk = async (directory: string): Promise<void> => {\n const entries = await readdir(directory, { withFileTypes: true });\n entries.sort((a, b) => a.name.localeCompare(b.name));\n for (const entry of entries) {\n if (entry.isSymbolicLink()) continue;\n const path = resolve(directory, entry.name);\n if (entry.isDirectory()) {\n if (!ignored.has(entry.name)) await walk(path);\n } else if (entry.isFile() && extensions.has(extname(entry.name))) {\n files.push(path);\n }\n }\n };\n\n await walk(absoluteRoot);\n const extracted = await Promise.all(\n files.map(async (file) =>\n extractTranslationKeys(await readFile(file, 'utf8'), relative(absoluteRoot, file)),\n ),\n );\n return extracted.flat();\n}\n\n/** Portable discovery adapter for an ordinary application's source tree. */\nexport function sourceTreeTranslationDiscoverySource(\n root: string,\n options: ScanTranslationSourceOptions = {},\n): TranslationDiscoverySource {\n return {\n name: `source-tree:${resolve(root)}`,\n async *discover() {\n const extracted = await scanTranslationSourceTree(root, options);\n yield* translationDeclarationsFromExtractedKeys(extracted);\n },\n };\n}\n\nexport interface SyncTranslationSourceTreeOptions\n extends ScanTranslationSourceOptions,\n TranslationKeySyncOptions {\n root: string;\n appId: string;\n target: TranslationKeySyncTarget;\n}\n\n/** Scan an app source tree and report or apply its keys through a provider adapter. */\nexport async function syncTranslationSourceTree({\n root,\n appId,\n target,\n dryRun,\n extensions,\n ignoredDirectories,\n}: SyncTranslationSourceTreeOptions): Promise<TranslationKeySyncReport> {\n const extracted = await scanTranslationSourceTree(root, { extensions, ignoredDirectories });\n return syncTranslationKeys(target, appId, extracted, { dryRun });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"key-sync.js","sourceRoot":"","sources":["../../src/key-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-sync.js","sourceRoot":"","sources":["../../src/key-sync.ts"],"names":[],"mappings":"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","sourcesContent":["import ts from 'typescript';\nimport type {\n TranslationDeclaration,\n TranslationDiscoverySource,\n} from './discovery.js';\n\nexport interface ExtractedTranslationKey {\n key: string;\n sourceText: string;\n file: string;\n line: number;\n}\n\nexport interface TranslationKeySyncTarget {\n list(data: { appId: string }): Promise<Array<{ key: string; sourceText?: string }>>;\n upsert(data: {\n appId: string;\n key: string;\n sourceText: string;\n kind: 'ui';\n }): Promise<unknown>;\n}\n\nexport interface TranslationKeySyncReport {\n created: string[];\n updated: string[];\n unchanged: string[];\n orphaned: string[];\n conflicts: Array<{ key: string; defaults: string[] }>;\n}\n\nexport interface TranslationKeySyncOptions {\n /** Report changes without writing them to the target. */\n dryRun?: boolean;\n}\n\nfunction literalText(node: ts.Node | undefined): string | undefined {\n return node && (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node))\n ? node.text\n : undefined;\n}\n\n/** Extract static `t(key, default)` and `<T keyName defaultValue>` call sites. */\nexport function extractTranslationKeys(\n source: string,\n file = 'source.tsx',\n): ExtractedTranslationKey[] {\n const sourceFile = ts.createSourceFile(\n file,\n source,\n ts.ScriptTarget.Latest,\n true,\n file.endsWith('x') ? ts.ScriptKind.TSX : ts.ScriptKind.TS,\n );\n const extracted: ExtractedTranslationKey[] = [];\n const add = (keyNode: ts.Node | undefined, defaultNode: ts.Node | undefined) => {\n const key = literalText(keyNode);\n const sourceText = literalText(defaultNode);\n if (!key || sourceText === undefined) return;\n const { line } = sourceFile.getLineAndCharacterOfPosition(keyNode!.getStart(sourceFile));\n extracted.push({ key, sourceText, file, line: line + 1 });\n };\n const visit = (node: ts.Node) => {\n if (\n ts.isCallExpression(node) &&\n ts.isIdentifier(node.expression) &&\n node.expression.text === 't'\n ) {\n add(node.arguments[0], node.arguments[1]);\n } else if (ts.isJsxSelfClosingElement(node) || ts.isJsxOpeningElement(node)) {\n if (node.tagName.getText(sourceFile) === 'T') {\n const attrs = new Map(\n node.attributes.properties\n .filter(ts.isJsxAttribute)\n .map((attr) => [attr.name.getText(sourceFile), attr.initializer]),\n );\n const fromAttribute = (initializer: ts.JsxAttributeValue | undefined) => {\n if (!initializer) return undefined;\n if (ts.isStringLiteral(initializer)) return initializer;\n return ts.isJsxExpression(initializer) ? initializer.expression : undefined;\n };\n add(fromAttribute(attrs.get('keyName')), fromAttribute(attrs.get('defaultValue')));\n }\n }\n ts.forEachChild(node, visit);\n };\n visit(sourceFile);\n return extracted;\n}\n\n/** Adapt the shipped static extractor to the portable discovery contract. */\nexport function translationDeclarationsFromExtractedKeys(\n extracted: Iterable<ExtractedTranslationKey>,\n): TranslationDeclaration[] {\n return [...extracted].map((item) => ({\n schemaVersion: 1,\n key: item.key,\n sourceText: item.sourceText,\n kind: 'ui',\n format: 'simple',\n provenance: {\n source: 'code',\n sourceId: item.file,\n authoritative: true,\n file: item.file,\n line: item.line,\n },\n }));\n}\n\n/** Create a portable source from already-extracted static call sites. */\nexport function staticTranslationDiscoverySource(\n extracted: Iterable<ExtractedTranslationKey>,\n name = 'static-code',\n): TranslationDiscoverySource {\n const declarations = translationDeclarationsFromExtractedKeys(extracted);\n return {\n name,\n async *discover() {\n yield* declarations;\n },\n };\n}\n\n/**\n * Apply extracted keys. Source drift is delegated to the provider, which marks\n * existing units stale. Orphans are deliberately report-only.\n */\nexport async function syncTranslationKeys(\n target: TranslationKeySyncTarget,\n appId: string,\n extracted: ExtractedTranslationKey[],\n options: TranslationKeySyncOptions = {},\n): Promise<TranslationKeySyncReport> {\n const existing = await target.list({ appId });\n const existingByKey = new Map(existing.map((item) => [item.key, item]));\n const defaultsByKey = new Map<string, Set<string>>();\n for (const item of extracted) {\n const defaults = defaultsByKey.get(item.key) ?? new Set<string>();\n defaults.add(item.sourceText);\n defaultsByKey.set(item.key, defaults);\n }\n const report: TranslationKeySyncReport = {\n created: [], updated: [], unchanged: [], orphaned: [], conflicts: [],\n };\n for (const [key, defaults] of defaultsByKey) {\n if (defaults.size > 1) {\n report.conflicts.push({ key, defaults: [...defaults].sort() });\n continue;\n }\n const sourceText = [...defaults][0];\n const current = existingByKey.get(key);\n if (!current) report.created.push(key);\n else if (current.sourceText !== sourceText) report.updated.push(key);\n else {\n report.unchanged.push(key);\n continue;\n }\n if (!options.dryRun) {\n await target.upsert({ appId, key, sourceText, kind: 'ui' });\n }\n }\n report.orphaned = existing\n .map((item) => item.key)\n .filter((key) => !defaultsByKey.has(key))\n .sort();\n return report;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"key-version.js","sourceRoot":"","sources":["../../src/key-version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-version.js","sourceRoot":"","sources":["../../src/key-version.ts"],"names":[],"mappings":"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","sourcesContent":["import type { MessageFormat } from './core/messages.js';\nimport { analyzeMessage } from './message-format.js';\n\nexport interface TranslationKeyVersionContract {\n sourceLanguage: string;\n sourceText: string;\n format: MessageFormat;\n argumentSignature: string;\n contractHash: string;\n sourceHash: string;\n}\n\nexport interface DerivedBackfillKeyVersion\n extends TranslationKeyVersionContract {\n versionId: string;\n}\n\nexport interface TranslationKeyVersionLike {\n sourceText: string;\n format: MessageFormat;\n argumentSignature: string;\n}\n\nexport interface ExtractedTranslationKeyContract {\n sourceText: string;\n format: MessageFormat;\n}\n\nexport interface KeyVersionDecision {\n action: 'unchanged' | 'create-version' | 'retire';\n reason:\n | 'same-source-and-contract'\n | 'source-changed'\n | 'format-changed'\n | 'argument-contract-changed'\n | 'missing-from-source';\n}\n\nconst bytesToHex = (bytes: Uint8Array): string =>\n [...bytes].map((byte) => byte.toString(16).padStart(2, '0')).join('');\n\nconst ULID_ALPHABET = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';\nconst BIGINT_FIVE = BigInt(5);\nconst BIGINT_EIGHT = BigInt(8);\nconst BIGINT_THIRTY_ONE = BigInt(31);\nlet lastUlidTime = -1;\nlet lastUlidRandom = new Uint8Array(10);\n\nfunction encodeUlidTime(timestamp: number): string {\n let value = BigInt(timestamp);\n let encoded = '';\n for (let index = 0; index < 10; index++) {\n encoded = ULID_ALPHABET[Number(value & BIGINT_THIRTY_ONE)] + encoded;\n value >>= BIGINT_FIVE;\n }\n return encoded;\n}\n\nfunction encodeUlidRandom(bytes: Uint8Array): string {\n let value = BigInt(0);\n for (const byte of bytes) value = (value << BIGINT_EIGHT) | BigInt(byte);\n let encoded = '';\n for (let index = 0; index < 16; index++) {\n encoded = ULID_ALPHABET[Number(value & BIGINT_THIRTY_ONE)] + encoded;\n value >>= BIGINT_FIVE;\n }\n return encoded;\n}\n\nfunction incrementRandom(bytes: Uint8Array): Uint8Array {\n const next = new Uint8Array(bytes);\n for (let index = next.length - 1; index >= 0; index--) {\n next[index] = (next[index] + 1) & 0xff;\n if (next[index] !== 0) return next;\n }\n throw new Error('ULID random component overflowed within one millisecond.');\n}\n\n/** Monotonic ULID for newly authored key versions. */\nexport function createMonotonicVersionId(\n now = Date.now(),\n randomBytes?: Uint8Array,\n): string {\n if (!Number.isSafeInteger(now) || now < 0 || now > 0xffffffffffff) {\n throw new Error('ULID timestamp is outside the supported 48-bit range.');\n }\n const timestamp = Math.max(now, lastUlidTime);\n if (timestamp === lastUlidTime) {\n lastUlidRandom = incrementRandom(lastUlidRandom);\n } else {\n const next = randomBytes ?? globalThis.crypto.getRandomValues(new Uint8Array(10));\n if (next.length !== 10) {\n throw new Error('ULID randomness must contain exactly 10 bytes.');\n }\n lastUlidTime = timestamp;\n lastUlidRandom = new Uint8Array(next);\n }\n return `${encodeUlidTime(timestamp)}${encodeUlidRandom(lastUlidRandom)}`;\n}\n\n/** Portable SHA-256 used by both the browser-safe package and Node publishers. */\nexport async function sha256Hex(value: string): Promise<string> {\n const digest = await globalThis.crypto.subtle.digest(\n 'SHA-256',\n new TextEncoder().encode(value),\n );\n return bytesToHex(new Uint8Array(digest));\n}\n\nexport function canonicalLanguageTag(language: string): string {\n const value = language.trim();\n if (!value) throw new Error('sourceLanguage is required.');\n try {\n return Intl.getCanonicalLocales(value)[0] ?? value;\n } catch {\n throw new Error(`Invalid BCP-47 source language: ${language}`);\n }\n}\n\n/**\n * Stable runtime-argument contract. Object/argument ordering is canonical so\n * extraction order and translator word order cannot change the hash.\n */\nexport function createArgumentSignature(\n sourceText: string,\n format: MessageFormat,\n): string {\n const analysis = analyzeMessage(sourceText, format);\n if (!analysis.valid) {\n throw new Error(\n `Cannot version invalid ${format.toUpperCase()} source text: ${analysis.error}`,\n );\n }\n return JSON.stringify(\n analysis.arguments.map(({ name, kinds }) => [name, [...kinds].sort()]),\n );\n}\n\nexport function classifyKeyVersion(\n current: TranslationKeyVersionLike | undefined,\n extracted: ExtractedTranslationKeyContract | undefined,\n): KeyVersionDecision {\n if (!extracted) {\n return { action: 'retire', reason: 'missing-from-source' };\n }\n if (!current) {\n return { action: 'create-version', reason: 'source-changed' };\n }\n if (current.format !== extracted.format) {\n return { action: 'create-version', reason: 'format-changed' };\n }\n const nextSignature = createArgumentSignature(\n extracted.sourceText,\n extracted.format,\n );\n if (current.argumentSignature !== nextSignature) {\n return {\n action: 'create-version',\n reason: 'argument-contract-changed',\n };\n }\n if (current.sourceText !== extracted.sourceText) {\n return { action: 'create-version', reason: 'source-changed' };\n }\n return { action: 'unchanged', reason: 'same-source-and-contract' };\n}\n\nexport async function deriveTranslationKeyVersionContract(input: {\n sourceLanguage: string;\n sourceText: string;\n format: MessageFormat;\n}): Promise<TranslationKeyVersionContract> {\n const sourceLanguage = canonicalLanguageTag(input.sourceLanguage);\n const argumentSignature = createArgumentSignature(\n input.sourceText,\n input.format,\n );\n const [sourceHash, contractHash] = await Promise.all([\n sha256Hex(JSON.stringify([sourceLanguage, input.sourceText])),\n sha256Hex(JSON.stringify([input.format, argumentSignature])),\n ]);\n return {\n sourceLanguage,\n sourceText: input.sourceText,\n format: input.format,\n argumentSignature,\n contractHash,\n sourceHash,\n };\n}\n\n/**\n * Existing keys need a deterministic first version so a restarted migration\n * cannot create a second node. Future authored versions use monotonic ULIDs.\n */\nexport async function deriveBackfillKeyVersion(input: {\n sourceLanguage: string;\n sourceText: string;\n format: MessageFormat;\n}): Promise<DerivedBackfillKeyVersion> {\n const contract = await deriveTranslationKeyVersionContract(input);\n return {\n ...contract,\n versionId: `backfill-${contract.sourceHash.slice(0, 16)}-${contract.contractHash.slice(0, 16)}`,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../src/languages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../src/languages.ts"],"names":[],"mappings":"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","sourcesContent":["/** Portable language metadata. Codes are open BCP-47 strings, never an enum. */\nexport interface TranslationLanguageDefinition {\n id: string;\n code: string;\n nativeName: string;\n englishName: string;\n direction: 'ltr' | 'rtl';\n parent?: string;\n fallback?: string;\n enabled: boolean;\n supported: boolean;\n}\n\nexport function canonicalLocale(code: string): string {\n return (\n Intl.getCanonicalLocales(code.trim())[0] ||\n (() => {\n throw new Error('Language code is required.');\n })()\n );\n}\n\nexport function localeDirection(code: string): 'ltr' | 'rtl' {\n const locale = new Intl.Locale(canonicalLocale(code));\n const info = (locale as any).getTextInfo?.() ?? (locale as any).textInfo;\n if (info?.direction) return info.direction;\n // Script fallback for engines without Intl.Locale text information. This is\n // a script property, not a closed list of supported languages.\n return /^(Adlm|Arab|Hebr|Nkoo|Rohg|Samr|Syrc|Thaa)$/.test(\n locale.maximize().script ?? ''\n )\n ? 'rtl'\n : 'ltr';\n}\n\nexport function defineLanguage(\n code: string,\n input: Partial<TranslationLanguageDefinition> = {}\n): TranslationLanguageDefinition {\n code = canonicalLocale(code);\n const base = new Intl.Locale(code).language;\n const name = (locale: string) =>\n new Intl.DisplayNames([locale], { type: 'language' }).of(code) ?? code;\n return {\n id: input.id ?? `https://id.linked.cm/language/${code}`,\n code,\n nativeName: input.nativeName || name(code),\n englishName: input.englishName || name('en'),\n direction: input.direction ?? localeDirection(code),\n ...(base !== code ? { parent: base } : {}),\n ...input,\n enabled: input.enabled ?? true,\n supported: input.supported ?? true,\n };\n}\n\n/** Ordered explicit fallback chain, ending at the source; safe against cycles. */\nexport function languageFallbacks(\n code: string,\n source: string,\n definitions: readonly TranslationLanguageDefinition[] = []\n): string[] {\n const byCode = new Map(\n definitions.map((language) => [language.code, language])\n );\n const chain: string[] = [];\n let current: string | undefined = canonicalLocale(code);\n while (current && !chain.includes(current) && current !== source) {\n chain.push(current);\n current = byCode.get(current)?.fallback;\n }\n if (!chain.includes(source)) chain.push(source);\n return chain;\n}\n\nexport function validateLanguageDefinitions(\n definitions: readonly TranslationLanguageDefinition[]\n): void {\n const byCode = new Map(\n definitions.map((language) => [language.code, language])\n );\n if (byCode.size !== definitions.length)\n throw new Error('Duplicate language resources.');\n for (const language of definitions) {\n if (canonicalLocale(language.code) !== language.code)\n throw new Error('Use canonical BCP-47 codes.');\n if (!['ltr', 'rtl'].includes(language.direction))\n throw new Error('Language direction must be ltr or rtl.');\n for (const relation of ['fallback', 'parent'] as const) {\n const visited = new Set([language.code]);\n let target = language[relation];\n while (target) {\n if (visited.has(target))\n throw new Error(`Cyclic language ${relation}: ${language.code}`);\n visited.add(target);\n if (!byCode.has(target))\n throw new Error(`Missing ${relation} language resource: ${target}`);\n target = byCode.get(target)?.[relation];\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"linked-discovery.js","sourceRoot":"","sources":["../../src/linked-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linked-discovery.js","sourceRoot":"","sources":["../../src/linked-discovery.ts"],"names":[],"mappings":"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","sourcesContent":["import type { MessageFormat } from './core/messages.js';\nimport type {\n TranslationDeclaration,\n TranslationDiscoverySource,\n} from './discovery.js';\nimport {\n defineShapeTranslationCatalog,\n shapeCatalogTranslationDiscoverySource,\n type ShapeTranslationCatalog,\n type ShapeTranslationCatalogEntry,\n} from './shape-catalog.js';\n\nexport type LinkedSemanticEntryType =\n | 'label'\n | 'help'\n | 'validation'\n | 'controlled-value'\n | 'workflow-role'\n | 'skos-concept';\n\nexport interface LinkedSemanticCatalogEntry {\n key: string;\n sourceText: string;\n ownerIri: string;\n namespace?: string;\n description?: string;\n format?: MessageFormat;\n shapeIri?: string;\n propertyIri?: string;\n targetClass?: string;\n type?: LinkedSemanticEntryType;\n}\n\nexport interface LinkedComponentTranslationCatalog {\n componentIri: string;\n targetClass?: string;\n entries: Array<Omit<LinkedSemanticCatalogEntry, 'ownerIri'>>;\n}\n\nexport interface LinkedContentTranslationCatalogEntry {\n key: string;\n sourceText: string;\n nodeIri: string;\n propertyIri: string;\n description?: string;\n format?: MessageFormat;\n}\n\nexport interface LinkedPackageTranslationCatalog {\n schemaVersion: 1;\n packageName: string;\n shapes: ShapeTranslationCatalog[];\n components: LinkedComponentTranslationCatalog[];\n labels: LinkedSemanticCatalogEntry[];\n controlledValues: LinkedSemanticCatalogEntry[];\n workflowRoles: LinkedSemanticCatalogEntry[];\n skosConcepts: LinkedSemanticCatalogEntry[];\n content: LinkedContentTranslationCatalogEntry[];\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 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 format(value: unknown, label: string): MessageFormat | undefined {\n if (value === undefined) return undefined;\n if (value !== 'simple' && value !== 'icu') {\n throw new Error(`${label} must be \"simple\" or \"icu\".`);\n }\n return value;\n}\n\nfunction array(value: unknown, label: string): unknown[] {\n if (value === undefined) return [];\n if (!Array.isArray(value)) throw new Error(`${label} must be an array.`);\n return value;\n}\n\nfunction semanticEntry(\n value: unknown,\n label: string,\n expectedType?: LinkedSemanticEntryType,\n): LinkedSemanticCatalogEntry {\n const entry = record(value, label);\n const type = (entry.type ?? expectedType) as LinkedSemanticEntryType | undefined;\n if (\n type !== undefined &&\n type !== 'label' &&\n type !== 'help' &&\n type !== 'validation' &&\n type !== 'controlled-value' &&\n type !== 'workflow-role' &&\n type !== 'skos-concept'\n ) {\n throw new Error(`${label}.type is invalid.`);\n }\n if (typeof entry.sourceText !== 'string') {\n throw new Error(`${label}.sourceText must be a string.`);\n }\n return {\n key: requiredString(entry.key, `${label}.key`),\n sourceText: entry.sourceText,\n ownerIri: requiredString(entry.ownerIri, `${label}.ownerIri`),\n ...(optionalString(entry.namespace, `${label}.namespace`)\n ? { namespace: entry.namespace as string }\n : {}),\n ...(optionalString(entry.description, `${label}.description`)\n ? { description: entry.description as string }\n : {}),\n ...(format(entry.format, `${label}.format`)\n ? { format: entry.format as MessageFormat }\n : {}),\n ...(optionalString(entry.shapeIri, `${label}.shapeIri`)\n ? { shapeIri: entry.shapeIri as string }\n : {}),\n ...(optionalString(entry.propertyIri, `${label}.propertyIri`)\n ? { propertyIri: entry.propertyIri as string }\n : {}),\n ...(optionalString(entry.targetClass, `${label}.targetClass`)\n ? { targetClass: entry.targetClass as string }\n : {}),\n ...(type ? { type } : {}),\n };\n}\n\nfunction component(\n value: unknown,\n index: number,\n): LinkedComponentTranslationCatalog {\n const item = record(value, `components[${index}]`);\n const componentIri = requiredString(\n item.componentIri,\n `components[${index}].componentIri`,\n );\n const entries = array(item.entries, `components[${index}].entries`).map(\n (raw, entryIndex) => {\n const parsed = semanticEntry(\n {\n ...record(raw, `components[${index}].entries[${entryIndex}]`),\n ownerIri: componentIri,\n },\n `components[${index}].entries[${entryIndex}]`,\n );\n const { ownerIri: _ownerIri, ...entry } = parsed;\n return entry;\n },\n );\n return {\n componentIri,\n entries,\n ...(optionalString(item.targetClass, `components[${index}].targetClass`)\n ? { targetClass: item.targetClass as string }\n : {}),\n };\n}\n\nfunction contentEntry(\n value: unknown,\n index: number,\n): LinkedContentTranslationCatalogEntry {\n const entry = record(value, `content[${index}]`);\n if (typeof entry.sourceText !== 'string') {\n throw new Error(`content[${index}].sourceText must be a string.`);\n }\n return {\n key: requiredString(entry.key, `content[${index}].key`),\n sourceText: entry.sourceText,\n nodeIri: requiredString(entry.nodeIri, `content[${index}].nodeIri`),\n propertyIri: requiredString(\n entry.propertyIri,\n `content[${index}].propertyIri`,\n ),\n ...(optionalString(entry.description, `content[${index}].description`)\n ? { description: entry.description as string }\n : {}),\n ...(format(entry.format, `content[${index}].format`)\n ? { format: entry.format as MessageFormat }\n : {}),\n };\n}\n\nfunction shapeCatalog(value: unknown, index: number): ShapeTranslationCatalog {\n const shape = record(value, `shapes[${index}]`);\n return defineShapeTranslationCatalog({\n schemaVersion: shape.schemaVersion as 1,\n packageName: requiredString(\n shape.packageName,\n `shapes[${index}].packageName`,\n ),\n shapeIri: requiredString(shape.shapeIri, `shapes[${index}].shapeIri`),\n ...(optionalString(shape.targetClass, `shapes[${index}].targetClass`)\n ? { targetClass: shape.targetClass as string }\n : {}),\n entries: array(shape.entries, `shapes[${index}].entries`) as ShapeTranslationCatalogEntry[],\n });\n}\n\nfunction assertNoDuplicateIdentities(\n catalog: LinkedPackageTranslationCatalog,\n): void {\n const messages = new Set<string>();\n const add = (key: string, namespace = '') => {\n const identity = JSON.stringify([namespace, key]);\n if (messages.has(identity)) {\n throw new Error(`Duplicate linked translation key \"${key}\".`);\n }\n messages.add(identity);\n };\n for (const shape of catalog.shapes) {\n for (const entry of shape.entries) add(entry.key, entry.namespace);\n }\n for (const component of catalog.components) {\n for (const entry of component.entries) add(entry.key, entry.namespace);\n }\n for (const entries of [\n catalog.labels,\n catalog.controlledValues,\n catalog.workflowRoles,\n catalog.skosConcepts,\n ]) {\n for (const entry of entries) add(entry.key, entry.namespace);\n }\n const content = new Set<string>();\n for (const entry of catalog.content) {\n const identity = JSON.stringify([entry.nodeIri, entry.propertyIri]);\n if (content.has(identity)) {\n throw new Error(\n `Duplicate linked content translation field \"${entry.nodeIri}\" / \"${entry.propertyIri}\".`,\n );\n }\n content.add(identity);\n }\n}\n\n/** Parse serialized JSON only; package JavaScript is never imported or run. */\nexport function parseLinkedPackageTranslationCatalog(\n input: string | Uint8Array,\n): LinkedPackageTranslationCatalog {\n let value: unknown;\n try {\n value = JSON.parse(\n typeof input === 'string' ? input : new TextDecoder().decode(input),\n );\n } catch {\n throw new Error('Linked translation catalog must be valid JSON.');\n }\n const raw = record(value, 'catalog');\n if (raw.schemaVersion !== 1) {\n throw new Error('Linked translation catalog schemaVersion must be 1.');\n }\n const catalog: LinkedPackageTranslationCatalog = {\n schemaVersion: 1,\n packageName: requiredString(raw.packageName, 'catalog.packageName'),\n shapes: array(raw.shapes, 'catalog.shapes').map(shapeCatalog),\n components: array(raw.components, 'catalog.components').map(component),\n labels: array(raw.labels, 'catalog.labels').map((entry, index) =>\n semanticEntry(entry, `labels[${index}]`, 'label'),\n ),\n controlledValues: array(\n raw.controlledValues,\n 'catalog.controlledValues',\n ).map((entry, index) =>\n semanticEntry(\n entry,\n `controlledValues[${index}]`,\n 'controlled-value',\n ),\n ),\n workflowRoles: array(raw.workflowRoles, 'catalog.workflowRoles').map(\n (entry, index) =>\n semanticEntry(entry, `workflowRoles[${index}]`, 'workflow-role'),\n ),\n skosConcepts: array(raw.skosConcepts, 'catalog.skosConcepts').map(\n (entry, index) =>\n semanticEntry(entry, `skosConcepts[${index}]`, 'skos-concept'),\n ),\n content: array(raw.content, 'catalog.content').map(contentEntry),\n };\n for (const shape of catalog.shapes) {\n if (shape.packageName !== catalog.packageName) {\n throw new Error(\n `Shape catalog package \"${shape.packageName}\" does not match \"${catalog.packageName}\".`,\n );\n }\n }\n assertNoDuplicateIdentities(catalog);\n return catalog;\n}\n\nfunction semanticDeclaration(\n packageName: string,\n category: string,\n entry: LinkedSemanticCatalogEntry,\n): TranslationDeclaration {\n return {\n schemaVersion: 1,\n key: entry.key,\n sourceText: entry.sourceText,\n kind: 'semantic',\n format: entry.format ?? 'simple',\n ...(entry.namespace ? { namespace: entry.namespace } : {}),\n ...(entry.description ? { description: entry.description } : {}),\n provenance: {\n source: 'linked',\n sourceId: `${packageName}:${category}:${entry.ownerIri}`,\n authoritative: true,\n ownerIri: entry.ownerIri,\n fromPackage: packageName,\n ...(entry.shapeIri ? { shapeIri: entry.shapeIri } : {}),\n ...(entry.propertyIri ? { propertyIri: entry.propertyIri } : {}),\n ...(entry.targetClass ? { targetClass: entry.targetClass } : {}),\n },\n };\n}\n\n/** Discover safe serialized LINKED package metadata without code execution. */\nexport function linkedPackageTranslationDiscoverySource(\n input: string | Uint8Array,\n): TranslationDiscoverySource {\n const catalog = parseLinkedPackageTranslationCatalog(input);\n return {\n name: `linked-package:${catalog.packageName}`,\n async *discover(context) {\n for (const shape of catalog.shapes) {\n yield* shapeCatalogTranslationDiscoverySource(shape).discover(context);\n }\n for (const component of catalog.components) {\n for (const entry of component.entries) {\n yield semanticDeclaration(catalog.packageName, 'component', {\n ...entry,\n ownerIri: component.componentIri,\n targetClass: entry.targetClass ?? component.targetClass,\n });\n }\n }\n for (const [category, entries] of [\n ['label', catalog.labels],\n ['controlled-value', catalog.controlledValues],\n ['workflow-role', catalog.workflowRoles],\n ['skos-concept', catalog.skosConcepts],\n ] as const) {\n for (const entry of entries) {\n yield semanticDeclaration(catalog.packageName, category, entry);\n }\n }\n for (const entry of catalog.content) {\n yield {\n schemaVersion: 1,\n key: entry.key,\n sourceText: entry.sourceText,\n kind: 'content',\n format: entry.format ?? 'simple',\n ...(entry.description ? { description: entry.description } : {}),\n provenance: {\n source: 'linked',\n sourceId: `${catalog.packageName}:content:${entry.nodeIri}:${entry.propertyIri}`,\n authoritative: true,\n ownerIri: entry.nodeIri,\n nodeIri: entry.nodeIri,\n propertyIri: entry.propertyIri,\n fromPackage: catalog.packageName,\n },\n };\n }\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"message-format.js","sourceRoot":"","sources":["../../src/message-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-format.js","sourceRoot":"","sources":["../../src/message-format.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n isArgumentElement,\n isDateElement,\n isNumberElement,\n isPluralElement,\n isSelectElement,\n isTagElement,\n isTimeElement,\n parse,\n type MessageFormatElement,\n} from '@formatjs/icu-messageformat-parser';\nimport type { MessageFormat } from './core/messages.js';\n\nexport type MessageArgumentKind =\n | 'argument'\n | 'number'\n | 'date'\n | 'time'\n | 'select'\n | 'plural'\n | 'selectordinal';\n\nexport interface MessageArgument {\n name: string;\n kinds: MessageArgumentKind[];\n}\n\nexport interface MessageAnalysis {\n valid: boolean;\n arguments: MessageArgument[];\n error?: string;\n}\n\nexport interface MessageArgumentComparison {\n valid: boolean;\n missing: string[];\n extra: string[];\n typeMismatches: Array<{\n name: string;\n source: MessageArgumentKind[];\n target: MessageArgumentKind[];\n }>;\n sourceError?: string;\n targetError?: string;\n}\n\nexport interface LegacyPluralSuffix {\n countArgument: string;\n suffixArgument: string;\n}\n\n/**\n * FormatSimple remains intentionally looser than ICU identifiers: existing\n * apps may use positional (`{0}`), dotted (`{user.name}`), hyphenated\n * (`{item-count}`), or Unicode (`{名前}`) variable names.\n */\nconst SIMPLE_ARGUMENT_RE =\n /\\{\\s*([\\p{L}\\p{N}_][\\p{L}\\p{N}\\p{M}_.-]*)\\s*\\}/gu;\n\nfunction argumentKind(element: MessageFormatElement): MessageArgumentKind | null {\n if (isArgumentElement(element)) return 'argument';\n if (isNumberElement(element)) return 'number';\n if (isDateElement(element)) return 'date';\n if (isTimeElement(element)) return 'time';\n if (isSelectElement(element)) return 'select';\n if (isPluralElement(element)) {\n return element.pluralType === 'ordinal' ? 'selectordinal' : 'plural';\n }\n return null;\n}\n\nfunction collectIcuArguments(\n elements: MessageFormatElement[],\n found: Map<string, Set<MessageArgumentKind>>,\n): void {\n for (const element of elements) {\n const kind = argumentKind(element);\n if (kind && 'value' in element) {\n const kinds = found.get(element.value) ?? new Set<MessageArgumentKind>();\n kinds.add(kind);\n found.set(element.value, kinds);\n }\n if (isPluralElement(element) || isSelectElement(element)) {\n for (const option of Object.values(element.options)) {\n collectIcuArguments(option.value, found);\n }\n } else if (isTagElement(element)) {\n collectIcuArguments(element.children, found);\n }\n }\n}\n\nconst toArguments = (\n found: Map<string, Set<MessageArgumentKind>>,\n): MessageArgument[] =>\n [...found.entries()]\n .map(([name, kinds]) => ({ name, kinds: [...kinds].sort() }))\n .sort((a, b) => a.name.localeCompare(b.name));\n\n/** Parse the variables a translator must preserve in a simple or ICU message. */\nexport function analyzeMessage(\n text: string,\n format: MessageFormat = 'simple',\n): MessageAnalysis {\n const found = new Map<string, Set<MessageArgumentKind>>();\n if (format === 'simple') {\n for (const match of text.matchAll(SIMPLE_ARGUMENT_RE)) {\n found.set(match[1], new Set(['argument']));\n }\n return { valid: true, arguments: toArguments(found) };\n }\n\n try {\n collectIcuArguments(\n parse(text, { ignoreTag: true, requiresOtherClause: true }),\n found,\n );\n return { valid: true, arguments: toArguments(found) };\n } catch (cause) {\n return {\n valid: false,\n arguments: [],\n error: cause instanceof Error ? cause.message : String(cause),\n };\n }\n}\n\n/**\n * Compare runtime arguments without requiring identical word order or plural\n * categories. Categories legitimately differ by language; variable names and\n * their ICU roles may not.\n */\nexport function compareMessageArguments(\n source: string,\n target: string,\n format: MessageFormat = 'simple',\n): MessageArgumentComparison {\n const sourceAnalysis = analyzeMessage(source, format);\n const targetAnalysis = analyzeMessage(target, format);\n const sourceByName = new Map(\n sourceAnalysis.arguments.map((argument) => [argument.name, argument]),\n );\n const targetByName = new Map(\n targetAnalysis.arguments.map((argument) => [argument.name, argument]),\n );\n const optionalLegacySuffixes =\n format === 'simple'\n ? new Set(\n detectLegacyPluralSuffixes(source).map(\n ({ suffixArgument }) => suffixArgument,\n ),\n )\n : new Set<string>();\n const missing = [...sourceByName.keys()]\n .filter((name) => !targetByName.has(name) && !optionalLegacySuffixes.has(name))\n .sort();\n const extra = [...targetByName.keys()]\n .filter((name) => !sourceByName.has(name))\n .sort();\n const typeMismatches = [...sourceByName.keys()]\n .filter((name) => targetByName.has(name))\n .flatMap((name) => {\n const sourceKinds = sourceByName.get(name)!.kinds;\n const targetKinds = targetByName.get(name)!.kinds;\n return sourceKinds.length === targetKinds.length &&\n sourceKinds.every((kind, index) => kind === targetKinds[index])\n ? []\n : [{ name, source: sourceKinds, target: targetKinds }];\n });\n\n return {\n valid:\n sourceAnalysis.valid &&\n targetAnalysis.valid &&\n missing.length === 0 &&\n extra.length === 0 &&\n typeMismatches.length === 0,\n missing,\n extra,\n typeMismatches,\n sourceError: sourceAnalysis.error,\n targetError: targetAnalysis.error,\n };\n}\n\n/**\n * Detect the legacy English suffix idiom (`{n} mission{s}`). `{s}` is not a\n * plural operator; callers merely pass either \"s\" or \"\". Other languages may\n * omit it, and the key should eventually be rewritten as an ICU plural.\n */\nexport function detectLegacyPluralSuffixes(\n text: string,\n): LegacyPluralSuffix[] {\n const countArguments = [\n ...text.matchAll(\n /\\{\\s*([\\p{L}\\p{N}_][\\p{L}\\p{N}\\p{M}_.-]*)\\s*\\}/gu,\n ),\n ].map((match) => match[1]);\n if (countArguments.length < 2) return [];\n const suffixes = [\n ...text.matchAll(\n /[\\p{L}\\p{N}]\\{\\s*([\\p{L}\\p{N}_][\\p{L}\\p{N}\\p{M}_.-]*)\\s*\\}/gu,\n ),\n ].map((match) => match[1]);\n if (suffixes.length === 0) return [];\n const countArgument = countArguments.find(\n (name) => !suffixes.includes(name),\n );\n if (!countArgument) return [];\n return [...new Set(suffixes)].map((suffixArgument) => ({\n countArgument,\n suffixArgument,\n }));\n}\n"]}
package/lib/esm/mt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mt.js","sourceRoot":"","sources":["../../src/mt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mt.js","sourceRoot":"","sources":["../../src/mt.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Machine-translation provider registry (Plan 014 AD-L / Plan 017 Slice B).\n * Providers implement one method — translate a batch of UI strings — and\n * register by key ('claude', 'deepl', …). Resolution is PER TARGET LANGUAGE\n * with a fallback chain: not every provider covers every language (DeepL has\n * no Swahili or Urdu), so the preferred provider is used where it supports\n * the target and the chain falls through otherwise. Pure module: no I/O, no\n * SDK imports — concrete providers live with the host (Create Now) and are\n * registered at boot.\n */\nimport {\n analyzeMessage,\n compareMessageArguments,\n} from './message-format.js';\nimport type { MessageFormat } from './core/messages.js';\n\nexport interface MtItem {\n key: string;\n sourceText: string;\n /** Authoring context shown to the translator/model. */\n description?: string;\n format?: 'simple' | 'icu';\n}\n\nexport interface MtGlossaryEntry {\n term: string;\n /** prefer (default) = translate as `translation`; keep = do-not-translate; forbid = never use. */\n termType?: 'prefer' | 'require' | 'keep' | 'forbid';\n /** Preferred translation (prefer entries); empty/undefined = keep the term as-is. */\n translation?: string;\n /** Replacement wording (forbid entries). */\n useInstead?: string;\n /** Target language this applies to; empty = all languages. */\n language?: string;\n /** Exact-casing matching (proper nouns / brand styling). */\n caseSensitive?: boolean;\n description?: string;\n}\n\n/** Register/tone controls (Plan 017 §7.4b) — NOT sampling temperature. */\nexport interface MtStyle {\n formality?: 'formal' | 'informal';\n /** Free-text tone guidance, e.g. \"friendly, energetic, no bureaucratese\". */\n note?: string;\n}\n\n/** An established translation the provider should stay consistent with. */\nexport interface MtReference {\n sourceText: string;\n text: string;\n}\n\nexport interface MtBatchRequest {\n sourceLanguage: string;\n targetLanguage: string;\n items: MtItem[];\n glossary: MtGlossaryEntry[];\n style?: MtStyle;\n /** Translation-memory context: reviewed units for consistency (Plan 017 §7.4c). */\n references?: MtReference[];\n}\n\nexport interface MtBatchResult {\n key: string;\n text: string;\n}\n\nexport interface TranslationMtProvider {\n readonly key: string;\n /** Absent ⇒ the provider claims every language. */\n supportsLanguage?(language: string): boolean;\n translateBatch(request: MtBatchRequest): Promise<MtBatchResult[]>;\n}\n\nconst providers = new Map<string, TranslationMtProvider>();\n\nexport function registerMtProvider(provider: TranslationMtProvider): void {\n providers.set(provider.key, provider);\n}\n\nexport function getMtProvider(key: string): TranslationMtProvider | undefined {\n return providers.get(key);\n}\n\nexport function listMtProviders(): TranslationMtProvider[] {\n return [...providers.values()];\n}\n\n/** Test seam. */\nexport function clearMtProviders(): void {\n providers.clear();\n}\n\n/**\n * Ordered provider chain for one target language: the preferred provider\n * first when it exists AND supports the language, then every other provider\n * that supports it, registration order.\n */\nexport function resolveMtProviders(\n targetLanguage: string,\n preferred?: string,\n): TranslationMtProvider[] {\n const supports = (p: TranslationMtProvider) =>\n !p.supportsLanguage || p.supportsLanguage(targetLanguage);\n const chain = listMtProviders().filter(supports);\n if (!preferred) return chain;\n const first = chain.find((p) => p.key === preferred);\n if (!first) return chain;\n return [first, ...chain.filter((p) => p !== first)];\n}\n\n/** Unique `{placeholder}` tokens in a message, sorted for set comparison. */\nexport function extractPlaceholders(\n text: string,\n format: MessageFormat = 'simple',\n): string[] {\n return analyzeMessage(text, format).arguments.map(({ name }) => name);\n}\n\n/**\n * A translation is only usable if it preserves the source's placeholder SET\n * exactly — a dropped or renamed `{param}` breaks interpolation at runtime.\n */\nexport function placeholdersIntact(\n source: string,\n translated: string,\n format: MessageFormat = 'simple',\n): boolean {\n return compareMessageArguments(source, translated, format).valid;\n}\n\n/** Glossary entries applying to one target language (global + language-specific). */\nexport function glossaryForLanguage(\n glossary: MtGlossaryEntry[],\n language: string,\n): MtGlossaryEntry[] {\n return glossary.filter((g) => !g.language || g.language === language);\n}\n\nexport function chunkItems<T>(items: T[], size: number): T[][] {\n if (size < 1) throw new Error('chunk size must be >= 1');\n const chunks: T[][] = [];\n for (let i = 0; i < items.length; i += size) chunks.push(items.slice(i, i + size));\n return chunks;\n}\n\n/**\n * Resolve the formality for one language from the encoded config entries\n * (\"formal\" = app default; \"de:informal\" = per-language override; override wins).\n */\nexport function formalityForLanguage(\n entries: string[],\n language: string,\n): 'formal' | 'informal' | undefined {\n let result: 'formal' | 'informal' | undefined;\n for (const entry of entries ?? []) {\n const i = entry.indexOf(':');\n const value = i === -1 ? entry : entry.slice(i + 1);\n if (value !== 'formal' && value !== 'informal') continue;\n if (i === -1) {\n if (!result) result = value;\n } else if (entry.slice(0, i) === language) {\n return value;\n }\n }\n return result;\n}\n\n// ── Consistency (Plan 017 §7.4c) ────────────────────────────────────────\n\n/** Minimal entry view the consistency helpers need (client-safe). */\nexport interface ConsistencyEntry {\n key: string;\n namespace?: string;\n sourceText: string;\n format?: 'simple' | 'icu';\n units: Record<string, { text: string; state: string } | undefined>;\n}\n\n/** Identical English source translated DIFFERENTLY within one language. */\nexport interface ConsistencyConflict {\n sourceText: string;\n language: string;\n /** One entry per distinct translation: the text + the keys carrying it. */\n variants: Array<{ text: string; keys: string[] }>;\n}\n\n/**\n * Find keys whose IDENTICAL source text has diverging translations in a\n * language — the core \"same words, same translation\" consistency check.\n * Empty/untranslated units are ignored; whitespace-trimmed comparison.\n */\nexport function findInconsistentTranslations(\n entries: ConsistencyEntry[],\n language: string,\n): ConsistencyConflict[] {\n const bySource = new Map<string, Map<string, string[]>>();\n for (const entry of entries) {\n const source = entry.sourceText.trim();\n const text = entry.units[language]?.text?.trim();\n if (!source || !text) continue;\n const variants = bySource.get(source) ?? new Map<string, string[]>();\n variants.set(text, [...(variants.get(text) ?? []), entry.key]);\n bySource.set(source, variants);\n }\n const conflicts: ConsistencyConflict[] = [];\n for (const [sourceText, variants] of bySource) {\n if (variants.size < 2) continue;\n conflicts.push({\n sourceText,\n language,\n variants: [...variants].map(([text, keys]) => ({ text, keys: keys.sort() })),\n });\n }\n return conflicts.sort((a, b) => a.sourceText.localeCompare(b.sourceText));\n}\n\n/**\n * Pick reviewed units as translation-memory REFERENCES for an MT batch:\n * same-namespace reviewed translations first (shared vocabulary), then the\n * shortest reviewed units overall (vocabulary-dense). Deterministic.\n */\nexport function pickReferenceUnits(\n entries: ConsistencyEntry[],\n language: string,\n batchNamespaces: string[],\n max = 20,\n): MtReference[] {\n const namespaces = new Set(batchNamespaces);\n const reviewed = entries\n .map((entry) => ({\n namespace: entry.namespace ?? '',\n sourceText: entry.sourceText.trim(),\n unit: entry.units[language],\n }))\n .filter(\n (row) =>\n row.sourceText &&\n row.unit?.state === 'reviewed' &&\n row.unit.text.trim(),\n );\n const score = (row: (typeof reviewed)[number]) =>\n (namespaces.has(row.namespace) ? 0 : 100000) + row.sourceText.length;\n return reviewed\n .sort((a, b) => score(a) - score(b) || a.sourceText.localeCompare(b.sourceText))\n .slice(0, max)\n .map((row) => ({ sourceText: row.sourceText, text: row.unit!.text.trim() }));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../../src/ontologies/translation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../../src/ontologies/translation.ts"],"names":[],"mappings":"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","sourcesContent":["import { createNameSpace } from '@_linked/core/utils/NameSpace';\n\n/** Lazy-load the (currently empty) serialized ontology graph. */\nexport var loadData = () => {\n //@ts-ignore\n return import('../data/translation.json', { with: { type: 'json' } }).then(\n (data) => data.default\n );\n};\n\n/** Vocabulary namespace for the translation package. */\nexport var ns = createNameSpace('https://id.linked.cm/translation/vocab#');\nexport var _self = ns('');\n\n// ── Classes ─────────────────────────────────────────────────────────────\nexport var TranslationKey = ns('TranslationKey');\nexport var TranslationKeyVersion = ns('TranslationKeyVersion');\nexport var TranslationRelease = ns('TranslationRelease');\nexport var TranslationUnit = ns('TranslationUnit');\nexport var TranslationRevision = ns('TranslationRevision');\nexport var GlossaryTerm = ns('GlossaryTerm');\nexport var TranslationInventoryOrigin = ns('TranslationInventoryOrigin');\n\n// Open language resources; BCP-47 is a string identifier, not an enum.\nexport var TranslationLanguage = ns('TranslationLanguage');\nexport var languageIdentifier = ns('languageIdentifier');\nexport var languageCode = ns('languageCode');\nexport var nativeName = ns('nativeName');\nexport var englishName = ns('englishName');\nexport var textDirection = ns('textDirection');\nexport var parentLanguage = ns('parentLanguage');\nexport var fallbackLanguage = ns('fallbackLanguage');\nexport var languageEnabled = ns('languageEnabled');\nexport var languageSupported = ns('languageSupported');\n\n// ── TranslationKey properties ───────────────────────────────────────────\nexport var namespace = ns('namespace');\nexport var key = ns('key');\nexport var sourceText = ns('sourceText'); // canonical English (Plan 014 AD-J/R7)\nexport var description = ns('description');\nexport var kind = ns('kind'); // 'ui' | 'content' (AD-I)\nexport var ofApplication = ns('ofApplication'); // owning app IRI (AD-H/R2)\nexport var ofNode = ns('ofNode'); // content-translation subject (kind:'content')\nexport var ofField = ns('ofField');\nexport var ofShape = ns('ofShape'); // semantic SHACL shape context for package keys\nexport var ofProperty = ns('ofProperty'); // semantic predicate context for package keys\nexport var fromPackage = ns('fromPackage'); // package that supplied a seed catalog\nexport var overridden = ns('overridden'); // app diverged this shape key from canonical → excluded from shape propagation (AD-N)\nexport var shapeSource = ns('shapeSource'); // canonical source snapshot at override time → the value \"clear override\" reverts to (AD-N)\nexport var format = ns('format'); // 'simple' | 'icu' (AD-J/R8)\nexport var currentVersion = ns('currentVersion'); // → TranslationKeyVersion\n\n// ── TranslationKeyVersion properties (Plan 018) ────────────────────────\nexport var versionId = ns('versionId');\nexport var sourceLanguage = ns('sourceLanguage');\nexport var argumentSignature = ns('argumentSignature');\nexport var contractHash = ns('contractHash');\nexport var sourceHash = ns('sourceHash');\nexport var supersedes = ns('supersedes');\nexport var createdBy = ns('createdBy');\n\n// ── TranslationRelease properties (Plan 018) ───────────────────────────\nexport var branch = ns('branch');\nexport var releaseId = ns('releaseId');\nexport var buildId = ns('buildId');\nexport var channel = ns('channel');\nexport var contractSetHash = ns('contractSetHash');\nexport var manifestHash = ns('manifestHash');\nexport var hotfixSequence = ns('hotfixSequence');\nexport var publishedAt = ns('publishedAt');\nexport var supportedUntil = ns('supportedUntil');\nexport var qualitySummary = ns('qualitySummary');\n\n// ── CapabilityAppConfig properties (stored in Create Now's cn-main) ────\nexport var languages = ns('languages'); // active BCP-47 tags, including source\nexport var defaultLanguage = ns('defaultLanguage'); // authored/source language\nexport var cdnTarget = ns('cdnTarget'); // delivery base URL / bucket prefix — the \"repoint\" knob (AD-K, P2)\nexport var autoPublish = ns('autoPublish'); // boolean — overridable auto-publish-on-edit toggle (P2, default off)\nexport var reviewedOnlyLanguage = ns('reviewedOnlyLanguage'); // BCP-47 tags published reviewed-only; absence ⇒ machine-ok (AD-K/R9, P2)\nexport var mtDefault = ns('mtDefault'); // default MT provider key (AD-L, unused until P4)\nexport var mtFormality = ns('mtFormality'); // multi-value: \"formal\" (app default) or \"de:informal\" (per-language) — Plan 017 §7.4b\nexport var mtStyleNote = ns('mtStyleNote'); // free-text tone guidance fed to LLM MT providers (Plan 017 §7.4b)\n\n// ── TranslationUnit properties ──────────────────────────────────────────\nexport var ofKey = ns('ofKey'); // → TranslationKey\nexport var ofKeyVersion = ns('ofKeyVersion'); // → TranslationKeyVersion\nexport var language = ns('language'); // BCP-47 tag\nexport var text = ns('text');\nexport var state = ns('state'); // untranslated | machine | reviewed | stale\nexport var updatedAt = ns('updatedAt');\nexport var updatedBy = ns('updatedBy');\nexport var origin = ns('origin'); // current-value provenance, e.g. `tm`\n\n// ── TranslationRevision properties (Plan 017 AD-P) ─────────────────────\n// One append-only node per authored value: history (`applied`), translator\n// proposals (`proposed`), and MT suggestions (`suggested`) share the shape.\nexport var status = ns('status'); // applied | proposed | suggested | accepted | rejected | superseded\nexport var author = ns('author'); // WebID or MT provider IRI\nexport var authorKind = ns('authorKind'); // 'human' | 'machine'\nexport var mtProvider = ns('mtProvider'); // provider key when authorKind=machine\nexport var basedOnText = ns('basedOnText'); // unit text at authoring time (conflict detection)\nexport var note = ns('note'); // translator/reviewer comment\nexport var createdAt = ns('createdAt');\nexport var decidedAt = ns('decidedAt'); // when a proposal/suggestion was accepted/rejected\nexport var decidedBy = ns('decidedBy'); // WebID of the reviewer\n\n// ── GlossaryTerm properties ─────────────────────────────────────────────\nexport var term = ns('term');\nexport var glossaryTranslation = ns('glossaryTranslation');\nexport var glossaryLanguage = ns('glossaryLanguage');\nexport var termType = ns('termType'); // prefer | require | keep | forbid (Plan 017 B2-1 termbase)\nexport var useInstead = ns('useInstead'); // replacement for a forbidden term/spelling\nexport var caseSensitive = ns('caseSensitive'); // boolean — exact-casing matching (proper nouns)\n\n// ── Branch translation inventory metadata (Plan 017 Phase 8b) ─────────\n// These records are materialized into the active branch metadata dataset,\n// never app data. Confirmed TranslationKey/TranslationUnit records retain\n// their existing app-data placement.\nexport var inventoryBranch = ns('inventoryBranch');\nexport var inventoryIdentity = ns('inventoryIdentity');\nexport var inventoryStatus = ns('inventoryStatus');\nexport var inventorySource = ns('inventorySource');\nexport var inventorySourceId = ns('inventorySourceId');\nexport var inventoryAuthoritative = ns('inventoryAuthoritative');\nexport var inventoryFile = ns('inventoryFile');\nexport var inventoryLine = ns('inventoryLine');\nexport var inventoryOwner = ns('inventoryOwner');\nexport var inventoryShape = ns('inventoryShape');\nexport var inventoryProperty = ns('inventoryProperty');\nexport var inventoryNode = ns('inventoryNode');\nexport var inventoryTargetClass = ns('inventoryTargetClass');\nexport var inventoryObservedAt = ns('inventoryObservedAt');\n\n/** Grouped export for prefix/name access. */\nexport const tr = {\n TranslationLanguage,\n languageIdentifier,\n languageCode,\n nativeName,\n englishName,\n textDirection,\n parentLanguage,\n fallbackLanguage,\n languageEnabled,\n languageSupported,\n TranslationKey,\n TranslationKeyVersion,\n TranslationRelease,\n TranslationUnit,\n TranslationRevision,\n GlossaryTerm,\n TranslationInventoryOrigin,\n namespace,\n key,\n sourceText,\n description,\n kind,\n ofApplication,\n ofNode,\n ofField,\n ofShape,\n ofProperty,\n fromPackage,\n overridden,\n shapeSource,\n format,\n currentVersion,\n versionId,\n sourceLanguage,\n argumentSignature,\n contractHash,\n sourceHash,\n supersedes,\n createdBy,\n branch,\n releaseId,\n buildId,\n channel,\n contractSetHash,\n manifestHash,\n hotfixSequence,\n publishedAt,\n supportedUntil,\n qualitySummary,\n languages,\n defaultLanguage,\n cdnTarget,\n autoPublish,\n reviewedOnlyLanguage,\n mtDefault,\n mtFormality,\n mtStyleNote,\n ofKey,\n ofKeyVersion,\n language,\n text,\n state,\n updatedAt,\n updatedBy,\n origin,\n status,\n author,\n authorKind,\n mtProvider,\n basedOnText,\n note,\n createdAt,\n decidedAt,\n decidedBy,\n term,\n glossaryTranslation,\n glossaryLanguage,\n termType,\n useInstead,\n caseSensitive,\n inventoryBranch,\n inventoryIdentity,\n inventoryStatus,\n inventorySource,\n inventorySourceId,\n inventoryAuthoritative,\n inventoryFile,\n inventoryLine,\n inventoryOwner,\n inventoryShape,\n inventoryProperty,\n inventoryNode,\n inventoryTargetClass,\n inventoryObservedAt,\n};\n\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"translation.register.js","sourceRoot":"","sources":["../../../src/ontologies/translation.register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,0BAA0B,CAAC,CAAC"}
1
+ {"version":3,"file":"translation.register.js","sourceRoot":"","sources":["../../../src/ontologies/translation.register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,0BAA0B,CAAC,CAAC","sourcesContent":["/**\n * Registers this ontology.\n *\n * Kept out of `translation.ts` because registration needs that module's whole export\n * namespace, and a module cannot import itself once a bundler is involved: Rollup\n * treats a static self-reference as a circular import and elides it, so the binding is\n * undefined at runtime and the consuming app dies at boot with `_this is not\n * defined`. `tsc` preserves it, which is why the pattern survived for as long as\n * packages were built with `tsc` alone.\n *\n * From a sibling module the same import is ordinary and survives.\n */\nimport * as terms from './translation.js';\nimport {loadData, ns} from './translation.js';\nimport {linkedOntology} from '../package.js';\n\nlinkedOntology(terms, ns, 'translation', loadData, '../data/translation.json');\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,CAAC,MAAM,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,GAAG,aAAa,CAAC,sBAAsB,EAAE;IACxC,OAAO,EAAE,mCAAmC;CAC7C,CAAC,CAAC"}
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,CAAC,MAAM,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,GAAG,aAAa,CAAC,sBAAsB,EAAE;IACxC,OAAO,EAAE,mCAAmC;CAC7C,CAAC,CAAC","sourcesContent":["import { linkedPackage } from '@_linked/core/utils/Package';\n\n// Reusable LINKED translation package. Uses a HOST-NEUTRAL identifier root\n// (NOT CN's id.create.now), so the shape/ontology IRIs baked into every app's\n// dataset stay stable when this package is later extracted to its own repo\n// (`@_linked/translation` / `@semantu/translation`) — a move, not a rewrite\n// (Plan 014 AD-G). R14: confirm ownership of `id.linked.cm` before seeding real\n// data under these IRIs; changing the baseUri afterwards means re-materializing.\nexport const {\n linkedShape,\n linkedUtil,\n linkedOntology,\n registerPackageExport,\n packageExports,\n packageName,\n getPackageShape,\n} = linkedPackage('@_linked/translation', {\n baseUri: 'https://id.linked.cm/translation/',\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n languageFallbacks,\n type TranslationLanguageDefinition,\n} from './languages.js';\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport {\n directionFor,\n type MessageFormat,\n translate,\n type TranslationMessages,\n} from './core/messages.js';\n\n/**\n * React binding for the translation core (Plan 014 P1.5). Kept in a `/react`\n * subpath so non-React consumers use `./core/messages` without pulling React.\n * Message LOADING is caller-injected (`loadMessages`) so this stays transport-\n * agnostic: dev wires it to CN's API, prod to the bundled `{lang}.json` with a\n * CDN overlay (AD-J/AD-K) — the provider doesn't care which.\n *\n * The hook shape mirrors Tolgee (`useTranslate().t(key, default, params)`,\n * `useLanguage()`), so swapping serve's provider touches only its i18n file.\n */\n\nexport interface TranslationLanguage {\n tag: string; // BCP-47\n label: string;\n direction?: 'ltr' | 'rtl';\n fallback?: string;\n}\n\nexport interface TranslationCallOptions {\n /** Explicit syntax for an inline default before per-key catalog metadata loads. */\n format?: MessageFormat;\n}\n\ninterface TranslationContextValue {\n t: (\n key: string,\n defaultValue?: string,\n params?: Record<string, unknown>,\n options?: TranslationCallOptions\n ) => string;\n language: string;\n setLanguage: (tag: string) => void;\n languages: TranslationLanguage[];\n dir: 'ltr' | 'rtl';\n}\n\nconst TranslationContext = createContext<TranslationContextValue | null>(null);\n\nexport interface TranslationProviderProps {\n children: React.ReactNode;\n languages: TranslationLanguage[];\n /** Optional live catalog metadata, refreshed independently of an app build. */\n loadLanguages?: () => Promise<TranslationLanguageDefinition[]>;\n defaultLanguage?: string;\n /** Global message format. 'simple' = FormatSimple (Tolgee-compatible default). */\n format?: MessageFormat;\n /** Caller-injected loader: dev→API, prod→bundled file then CDN overlay. */\n loadMessages: (language: string) => Promise<TranslationMessages>;\n /** localStorage key persisting the selected language. */\n storageKey?: string;\n}\n\nexport function TranslationProvider({\n children,\n languages: initialLanguages,\n loadLanguages,\n defaultLanguage = 'en',\n format = 'simple',\n loadMessages,\n storageKey = 'linked.lang',\n}: TranslationProviderProps) {\n const [remoteLanguages, setRemoteLanguages] =\n useState<TranslationLanguageDefinition[]>();\n const languages = remoteLanguages\n ? remoteLanguages\n .filter((item) => item.enabled && item.supported)\n .map((item) => ({\n tag: item.code,\n label: item.nativeName,\n direction: item.direction,\n fallback: item.fallback,\n }))\n : initialLanguages;\n const [language, setLanguageState] = useState<string>(() => {\n if (typeof window !== 'undefined') {\n const stored = window.localStorage?.getItem(storageKey);\n if (stored && languages.some((l) => l.tag === stored)) return stored;\n }\n return defaultLanguage;\n });\n const dir =\n languages.find((item) => item.tag === language)?.direction ??\n directionFor(language);\n useEffect(() => {\n if (!loadLanguages) return;\n let cancelled = false;\n loadLanguages()\n .then((items) => {\n if (!cancelled) {\n setRemoteLanguages(items);\n setMessagesByLang({});\n const stored =\n typeof window !== 'undefined'\n ? window.localStorage?.getItem(storageKey)\n : null;\n if (\n stored &&\n items.some(\n (item) => item.code === stored && item.enabled && item.supported\n )\n )\n setLanguageState(stored);\n }\n })\n .catch(() => {});\n return () => {\n cancelled = true;\n };\n }, [loadLanguages, storageKey]);\n const [messagesByLang, setMessagesByLang] = useState<\n Record<string, TranslationMessages>\n >({});\n\n // Load the active language's messages once. English renders from inline\n // defaults until (and if) a payload arrives, so the app is never blank.\n useEffect(() => {\n if (messagesByLang[language]) return;\n let cancelled = false;\n const chain = languageFallbacks(\n language,\n defaultLanguage,\n remoteLanguages\n ).reverse();\n Promise.all(chain.map((code) => loadMessages(code).catch(() => ({}))))\n .then((maps) => Object.assign({}, ...maps) as TranslationMessages)\n .then((msgs) => {\n if (!cancelled) {\n setMessagesByLang((prev) => ({ ...prev, [language]: msgs }));\n }\n })\n .catch(() => {\n /* offline / missing → keep inline defaults */\n });\n return () => {\n cancelled = true;\n };\n }, [\n language,\n loadMessages,\n messagesByLang,\n defaultLanguage,\n remoteLanguages,\n ]);\n\n // Reflect the configured language and text direction on <html>.\n useEffect(() => {\n if (typeof document !== 'undefined') {\n document.documentElement.dir = dir;\n document.documentElement.lang = language;\n }\n }, [language, dir]);\n\n const setLanguage = useCallback(\n (tag: string) => {\n setLanguageState(tag);\n if (typeof window !== 'undefined') {\n window.localStorage?.setItem(storageKey, tag);\n }\n },\n [storageKey]\n );\n\n const t = useCallback(\n (\n key: string,\n defaultValue?: string,\n params?: Record<string, unknown>,\n options?: TranslationCallOptions\n ) =>\n translate(\n messagesByLang[language] ?? {},\n key,\n defaultValue,\n params,\n options?.format ?? format,\n language\n ),\n [messagesByLang, language, format]\n );\n\n const value = useMemo<TranslationContextValue>(\n () => ({ t, language, setLanguage, languages, dir }),\n [t, language, setLanguage, languages, dir]\n );\n\n return (\n <TranslationContext.Provider value={value}>\n {children}\n </TranslationContext.Provider>\n );\n}\n\nfunction useTranslationContext(hook: string): TranslationContextValue {\n const ctx = useContext(TranslationContext);\n if (!ctx)\n throw new Error(`${hook} must be used within a <TranslationProvider>`);\n return ctx;\n}\n\n/** Tolgee-compatible: `const { t } = useTranslate()`. */\nexport function useTranslate() {\n const ctx = useTranslationContext('useTranslate');\n return { t: ctx.t };\n}\n\n/** Active language + switcher + direction + the available languages. */\nexport function useLanguage() {\n const ctx = useTranslationContext('useLanguage');\n return {\n language: ctx.language,\n setLanguage: ctx.setLanguage,\n languages: ctx.languages,\n dir: ctx.dir,\n };\n}\n\n/** JSX convenience (Tolgee `<T keyName=… />`). */\nexport function T({\n keyName,\n defaultValue,\n params,\n format,\n}: {\n keyName: string;\n defaultValue?: string;\n params?: Record<string, unknown>;\n format?: MessageFormat;\n}) {\n const { t } = useTranslate();\n return <>{t(keyName, defaultValue, params, { format })}</>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/records.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/records.ts"],"names":[],"mappings":"","sourcesContent":["/** Review lifecycle shared by the portable runtime and authoring clients. */\nexport type TranslationState =\n | 'untranslated'\n | 'machine'\n | 'reviewed'\n | 'stale';\n\n/** Plain RPC-safe value for one language. Never contains a live Shape. */\nexport interface TranslationUnitRecord {\n language: string;\n text: string;\n state: TranslationState;\n /** Machine-provider provenance for the current value (`tm` for memory). */\n origin?: string;\n updatedAt?: string;\n keyVersionId?: string;\n}\n\n/** Plain immutable source/argument-contract record for Studio and RPC. */\nexport interface TranslationKeyVersionRecord {\n id: string;\n versionId: string;\n sourceLanguage: string;\n sourceText: string;\n format: 'simple' | 'icu';\n argumentSignature: string;\n contractHash: string;\n sourceHash: string;\n supersedes?: string;\n createdAt?: string;\n createdBy?: string;\n}\n\nexport type TranslationReleaseChannel = 'preview' | 'production';\nexport type TranslationReleaseStatus =\n | 'draft'\n | 'published'\n | 'superseded'\n | 'retired';\n\n/** Plain graph metadata for a schema-v2 translation release. */\nexport interface TranslationReleaseRecord {\n id: string;\n releaseId: string;\n appId: string;\n branchId: string;\n buildId?: string;\n channel: TranslationReleaseChannel;\n status: TranslationReleaseStatus;\n contractSetHash: string;\n manifestHash: string;\n hotfixSequence: number;\n qualitySummary?: string;\n createdAt: string;\n publishedAt?: string;\n supportedUntil?: string;\n supersedes?: string;\n}\n\n/** Lifecycle of one authored value (Plan 017 AD-P). */\nexport type TranslationRevisionStatus =\n | 'applied' // a direct edit, recorded as history\n | 'proposed' // awaiting a reviewer (human author)\n | 'suggested' // awaiting a reviewer (machine author)\n | 'accepted'\n | 'rejected'\n | 'superseded';\n\n/** Plain RPC-safe view of one revision (history entry / pending value). */\nexport interface TranslationRevisionRecord {\n id: string;\n key: string;\n language: string;\n text: string;\n status: TranslationRevisionStatus;\n author?: string;\n authorKind: 'human' | 'machine';\n mtProvider?: string;\n basedOnText?: string;\n note?: string;\n createdAt?: string;\n decidedAt?: string;\n decidedBy?: string;\n keyVersionId?: string;\n /** Current unit diverged after this proposal was authored. */\n conflicted?: boolean;\n currentText?: string;\n}\n\nexport interface TranslationProposalDecision {\n revision: TranslationRevisionRecord;\n unit?: TranslationUnitRecord;\n}\n\nexport type TranslationMemoryMatchKind = 'exact' | 'carry-forward';\n\n/**\n * One reviewed unit that can seed the current key version. Exact source\n * matches may pretranslate as machine/TM; changed source text is an explicit\n * same-key carry-forward review.\n */\nexport interface TranslationMemoryMatchRecord {\n unitId: string;\n key: string;\n language: string;\n text: string;\n keyVersionId: string;\n sourceText: string;\n sourceHash: string;\n contractHash: string;\n kind: TranslationMemoryMatchKind;\n updatedAt?: string;\n}\n\n/** Searchable reviewed unit exposed by the explicit Translation Memory browser. */\nexport interface TranslationMemoryRecord {\n unitId: string;\n key: string;\n language: string;\n text: string;\n keyVersionId: string;\n sourceText: string;\n sourceHash: string;\n contractHash: string;\n updatedAt?: string;\n}\n\nexport interface TranslationMemoryPretranslateCandidate {\n key: string;\n language: string;\n unitId: string;\n sourceKey: string;\n text: string;\n}\n\nexport interface TranslationMemoryPretranslateReport {\n language: string;\n eligible: number;\n translated: number;\n candidates: TranslationMemoryPretranslateCandidate[];\n}\n\n/** Termbase entry behavior (Plan 017 B2-1). */\nexport type GlossaryTermType = 'prefer' | 'require' | 'keep' | 'forbid';\n\n/** Plain RPC-safe termbase entry (steers MT + checks; Plan 014 AD-L / 017 B2). */\nexport interface GlossaryTermRecord {\n id: string;\n term: string;\n /** prefer = translate as `translation`; keep = do-not-translate; forbid = never use. */\n termType: GlossaryTermType;\n /** Preferred translation (prefer entries). */\n translation?: string;\n /** Replacement wording (forbid entries — alternative-spelling policing). */\n useInstead?: string;\n /** Target language this applies to; empty = all languages. */\n language?: string;\n /** Exact-casing match (proper nouns / all-caps styling). */\n caseSensitive?: boolean;\n description?: string;\n}\n\n/** Plain RPC-safe editor/runtime view of a key and its language values. */\nexport interface TranslationEntryRecord {\n key: string;\n namespace: string;\n sourceText: string;\n description?: string;\n kind: 'ui' | 'content';\n format: 'simple' | 'icu';\n /** Optional semantic organization for translations supplied with LINKED shapes. */\n ofShape?: string;\n ofProperty?: string;\n fromPackage?: string;\n /** This app diverged a shape-owned key locally; shape propagation skips it (AD-N). */\n overridden?: boolean;\n currentVersion?: TranslationKeyVersionRecord;\n versions?: TranslationKeyVersionRecord[];\n units: Record<string, TranslationUnitRecord>;\n}\n"]}