{"_id":"@aureumtools/exchange-types","name":"@aureumtools/exchange-types","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aureumtools/exchange-types","version":"0.1.0","description":"Universal exchange format types for the Aureum tool ecosystem (Narrator, Prompter, future Karten/RPG/Stammbaum/Worldbuilding tools).","keywords":["aureum","exchange","types","narrator","prompter"],"license":"MIT","author":{"name":"linirey"},"repository":{"type":"git","url":"git+https://github.com/LiniRey/AureumExchangeTypes.git"},"bugs":{"url":"https://github.com/LiniRey/AureumExchangeTypes/issues"},"homepage":"https://github.com/LiniRey/AureumExchangeTypes#readme","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run clean && npm run build"},"devDependencies":{"typescript":"^5.4.0"},"publishConfig":{"access":"public"},"engines":{"node":">=18"},"gitHead":"aa48c89e32e3f7f515ceb9e97e67ef492780f807","_id":"@aureumtools/exchange-types@0.1.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-GpCFeHHNmtDaFqCXkpluoJaCCXADtPoonWppSRiILCLP75dHTsCHZklitL9l1F2s4YxADKtt59JKSWgThQNIaw==","shasum":"dc6e8391f0b7a250f86ef527885ff175f9587bb9","tarball":"https://registry.npmjs.org/@aureumtools/exchange-types/-/exchange-types-0.1.0.tgz","fileCount":7,"unpackedSize":24088,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFXSAOErAAcI16qKEQvBTvp7oSEqx+4QEI7tjIgc4WK4AiAyUqPlXcr2hrXP6BwuEP082c3kha0EKHM0tMbLKCaWJw=="}]},"_npmUser":{"name":"linirey","email":"evelyn.praefke@web.de"},"directories":{},"maintainers":[{"name":"linirey","email":"evelyn.praefke@web.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/exchange-types_0.1.0_1779708214620_0.16636988120761576"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-25T11:23:34.439Z","0.1.0":"2026-05-25T11:23:34.774Z","modified":"2026-05-25T11:23:34.983Z"},"maintainers":[{"name":"linirey","email":"evelyn.praefke@web.de"}],"description":"Universal exchange format types for the Aureum tool ecosystem (Narrator, Prompter, future Karten/RPG/Stammbaum/Worldbuilding tools).","homepage":"https://github.com/LiniRey/AureumExchangeTypes#readme","keywords":["aureum","exchange","types","narrator","prompter"],"repository":{"type":"git","url":"git+https://github.com/LiniRey/AureumExchangeTypes.git"},"author":{"name":"linirey"},"bugs":{"url":"https://github.com/LiniRey/AureumExchangeTypes/issues"},"license":"MIT","readme":"# @aureumtools/exchange-types\n\nTypeScript type definitions for the **Aureum Exchange Format** — the universal interchange format used by the Aureum tool ecosystem (AureumNarrator, AureumPrompter, and upcoming Karten/RPG/Stammbaum/Worldbuilding tools).\n\nLightweight, dependency-free, runtime-code-free. Works in any TS/JS environment (browser, Node, Electron).\n\n## Install\n\n```bash\nnpm install @aureumtools/exchange-types\n```\n\n## Use\n\n```typescript\nimport {\n  AureumExchangeFile,\n  AureumHeader,\n  AUREUM_FORMAT_NAME,\n  AUREUM_FORMAT_VERSION,\n  eventSceneIds,\n  isSupportedFormatVersion,\n} from \"@aureumtools/exchange-types\";\n\n// Reader-Seite:\nfunction parseFile(json: string): AureumExchangeFile | null {\n  const data = JSON.parse(json);\n  if (data?.aureum?.format !== AUREUM_FORMAT_NAME) return null;\n  if (!isSupportedFormatVersion(data.aureum.version)) return null;\n  return data as AureumExchangeFile;\n}\n\n// Producer-Seite:\nconst file: AureumExchangeFile = {\n  aureum: {\n    format: AUREUM_FORMAT_NAME,\n    version: AUREUM_FORMAT_VERSION,\n    source: \"AureumNarrator\",\n    exportedAt: new Date().toISOString(),\n    projectName: \"Mein Roman\",\n  },\n  manuscript: { chapters: [/* ... */] },\n};\n```\n\n## Format-Sektionen\n\n| Sektion | Inhalt |\n|---|---|\n| `aureum` | Pflicht-Header (format, version, source, exportedAt, projectName) |\n| `projectMeta` | Projekt-Metadaten (Typ, Beschreibung, Sprache, Tags, ...) |\n| `manuscript` | Kapitel + Szenen mit Kurzbeschreibung / Volltext |\n| `entities` | Characters, Places, Items, Groups, Creatures, Libraries, Worlds |\n| `planning` | Plan-Buckets (Dialog, Twist, Cliff, Poesie-Plans, ...) |\n| `sceneEntityLinks` | M:N Szene ↔ Entity Verknüpfung |\n| `notes` / `comments` | Notizen + Kommentare mit Position |\n| `timeline` | Perioden + Events + Strands + Placements |\n| `sceneTensions` | Spannungswerte pro Szene |\n| `plotModels` / `plotAssignments` | Plot-Struktur-Modelle |\n| `trackingConfigs` | Auto-Erkennungs-Regeln |\n| `customTags` | Tag-Definitionen für Notizen |\n| `userDatabases` | Generische User-Datenbanken |\n\nAlle Sektionen sind optional — Producer schreibt nur, was er hat. Reader liest nur, was er versteht, und ignoriert unbekannte Felder.\n\n## Versionierung\n\nStrict SemVer:\n\n- **Major-Bump (2.0, 3.0, ...):** Breaking Changes — Reader < Major muss ablehnen.\n- **Minor-Bump (1.1, 1.2, ...):** Additive Felder, abwärtskompatibel — Reader < Minor kennt neue Felder nicht, ignoriert sie.\n- **Patch-Bump (1.0.1, ...):** Nur Doku/Type-Verschärfungen, kein Schema-Effekt.\n\nAktuell: **`1.1`** (Format-Bump 1.0 → 1.1: `AureumTimelineEvent.sceneIds[]` ersetzt `sceneId` als kanonisches Feld — Reader-Fallback via `eventSceneIds()`-Helper).\n\n## Lizenz\n\nMIT\n","readmeFilename":"README.md","_rev":"1-a133063a31baa2e9b0007bd4cb3d6e46"}