@_linked/translation 0.2.5 → 0.3.0

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.
@@ -1,6 +1,22 @@
1
1
  import { normalizeParsedTranslationExchangeDocument, } from '../exchange.js';
2
2
  const UTF8 = new TextEncoder();
3
- const CN_NAMESPACE = 'https://create-now.app/ns/translation-exchange/1';
3
+ /**
4
+ * Our own metadata namespace, a sibling of the translation vocabulary
5
+ * (`https://id.linked.cm/translation/vocab#`). Files exported before 0.3.0
6
+ * used a Create Now URI and a `cn:` prefix; the reader below still accepts
7
+ * both, so those files keep importing.
8
+ */
9
+ const EXCHANGE_NAMESPACE = 'https://id.linked.cm/translation/exchange/1';
10
+ const PREFIX = 'lt';
11
+ const LEGACY_PREFIX = 'cn';
12
+ /** `from`/`category` on a `<note>`, in current and pre-0.3.0 spelling. */
13
+ const NOTE_ROLES = {
14
+ description: ['linked-description', 'create-now-description'],
15
+ target: ['linked-target', 'create-now-target'],
16
+ };
17
+ function isNoteRole(value, role) {
18
+ return value !== undefined && NOTE_ROLES[role].includes(value);
19
+ }
4
20
  const XLIFF_12_NAMESPACE = 'urn:oasis:names:tc:xliff:document:1.2';
5
21
  const XLIFF_20_NAMESPACE = 'urn:oasis:names:tc:xliff:document:2.0';
6
22
  const XML_MEDIA_TYPE = 'application/xliff+xml';
@@ -252,8 +268,8 @@ function plainText(node) {
252
268
  .join('');
253
269
  }
254
270
  function metadata(node, name) {
255
- var _a;
256
- return (_a = node.attributes[`cn:${name}`]) !== null && _a !== void 0 ? _a : attribute(node, name);
271
+ var _a, _b;
272
+ return ((_b = (_a = node.attributes[`${PREFIX}:${name}`]) !== null && _a !== void 0 ? _a : node.attributes[`${LEGACY_PREFIX}:${name}`]) !== null && _b !== void 0 ? _b : attribute(node, name));
257
273
  }
258
274
  function recognizedState(value) {
259
275
  if (value === 'untranslated' ||
@@ -355,8 +371,8 @@ function parse12(root, options) {
355
371
  if (language)
356
372
  targetLanguages.add(language);
357
373
  const notes = children(unit, 'note');
358
- const description = plainText(notes.find((note) => attribute(note, 'from') === 'create-now-description'));
359
- const targetNote = plainText(notes.find((note) => attribute(note, 'from') === 'create-now-target' &&
374
+ const description = plainText(notes.find((note) => isNoteRole(attribute(note, 'from'), 'description')));
375
+ const targetNote = plainText(notes.find((note) => isNoteRole(attribute(note, 'from'), 'target') &&
360
376
  (!language || !attribute(note, 'lang') || attribute(note, 'lang') === language)));
361
377
  mergeUnit(entries, unit, sourceText, innerXml(target, INLINE_12, options, id), language, recognizedState((_b = metadata(target !== null && target !== void 0 ? target : unit, 'state')) !== null && _b !== void 0 ? _b : attribute(target !== null && target !== void 0 ? target : unit, 'state')), targetNote, description !== null && description !== void 0 ? description : plainText(notes[0]));
362
378
  }
@@ -394,8 +410,8 @@ function parse20(root, options) {
394
410
  targetLanguages.add(language);
395
411
  const notesContainer = first(unit, 'notes');
396
412
  const notes = notesContainer ? children(notesContainer, 'note') : [];
397
- const description = plainText(notes.find((note) => attribute(note, 'category') === 'create-now-description'));
398
- const targetNote = plainText(notes.find((note) => attribute(note, 'category') === 'create-now-target' &&
413
+ const description = plainText(notes.find((note) => isNoteRole(attribute(note, 'category'), 'description')));
414
+ const targetNote = plainText(notes.find((note) => isNoteRole(attribute(note, 'category'), 'target') &&
399
415
  (!language || !attribute(note, 'lang') || attribute(note, 'lang') === language)));
400
416
  const id = attribute(unit, 'id');
401
417
  mergeUnit(entries, unit, innerXml(first(segment, 'source'), INLINE_20, options, id), innerXml(target, INLINE_20, options, id), language, recognizedState((_e = metadata(segment, 'state')) !== null && _e !== void 0 ? _e : attribute(segment, 'state')), targetNote, description !== null && description !== void 0 ? description : plainText(notes[0]));
@@ -444,14 +460,14 @@ function state20(state) {
444
460
  }
445
461
  function metadataAttributes(entry) {
446
462
  return [
447
- ['cn:key', entry.key],
448
- ['cn:namespace', entry.namespace],
449
- ['cn:kind', entry.kind],
450
- ['cn:format', entry.format],
451
- ['cn:key-version-id', entry.keyVersionId],
452
- ['cn:source-hash', entry.sourceHash],
453
- ['cn:contract-hash', entry.contractHash],
454
- ['cn:argument-signature', entry.argumentSignature],
463
+ [`${PREFIX}:key`, entry.key],
464
+ [`${PREFIX}:namespace`, entry.namespace],
465
+ [`${PREFIX}:kind`, entry.kind],
466
+ [`${PREFIX}:format`, entry.format],
467
+ [`${PREFIX}:key-version-id`, entry.keyVersionId],
468
+ [`${PREFIX}:source-hash`, entry.sourceHash],
469
+ [`${PREFIX}:contract-hash`, entry.contractHash],
470
+ [`${PREFIX}:argument-signature`, entry.argumentSignature],
455
471
  ]
456
472
  .filter((pair) => pair[1] !== undefined)
457
473
  .map(([name, value]) => ` ${name}="${escapeAttribute(value)}"`)
@@ -459,12 +475,12 @@ function metadataAttributes(entry) {
459
475
  }
460
476
  function rootMetadata(document) {
461
477
  return [
462
- ['cn:schema-version', String(document.schemaVersion)],
463
- ['cn:app-id', document.appId],
464
- ['cn:branch-id', document.branchId],
465
- ['cn:exported-at', document.exportedAt],
466
- ['cn:revision-watermark', document.revisionWatermark],
467
- ['cn:contract-set-hash', document.contractSetHash],
478
+ [`${PREFIX}:schema-version`, String(document.schemaVersion)],
479
+ [`${PREFIX}:app-id`, document.appId],
480
+ [`${PREFIX}:branch-id`, document.branchId],
481
+ [`${PREFIX}:exported-at`, document.exportedAt],
482
+ [`${PREFIX}:revision-watermark`, document.revisionWatermark],
483
+ [`${PREFIX}:contract-set-hash`, document.contractSetHash],
468
484
  ]
469
485
  .filter((pair) => pair[1] !== undefined)
470
486
  .map(([name, value]) => ` ${name}="${escapeAttribute(value)}"`)
@@ -503,21 +519,21 @@ function serialize12(document) {
503
519
  const id = deterministicId(entry, index);
504
520
  const notes = [
505
521
  entry.description
506
- ? `<note from="create-now-description">${escapeText(entry.description)}</note>`
522
+ ? `<note from="${NOTE_ROLES.description[0]}">${escapeText(entry.description)}</note>`
507
523
  : '',
508
524
  (target === null || target === void 0 ? void 0 : target.note)
509
- ? `<note from="create-now-target" xml:lang="${escapeAttribute(language)}">${escapeText(target.note)}</note>`
525
+ ? `<note from="${NOTE_ROLES.target[0]}" xml:lang="${escapeAttribute(language)}">${escapeText(target.note)}</note>`
510
526
  : '',
511
527
  ].join('');
512
528
  return `<trans-unit id="${escapeAttribute(id)}" resname="${escapeAttribute(entry.key)}"${metadataAttributes(entry)}><source>${validatedMixedContent(entry.sourceText, INLINE_12)}</source>${language && target
513
- ? `<target xml:lang="${escapeAttribute(language)}" state="${state12(target === null || target === void 0 ? void 0 : target.state)}" cn:state="${escapeAttribute((_a = target === null || target === void 0 ? void 0 : target.state) !== null && _a !== void 0 ? _a : 'untranslated')}">${validatedMixedContent((_b = target === null || target === void 0 ? void 0 : target.text) !== null && _b !== void 0 ? _b : '', INLINE_12)}</target>`
529
+ ? `<target xml:lang="${escapeAttribute(language)}" state="${state12(target === null || target === void 0 ? void 0 : target.state)}" ${PREFIX}:state="${escapeAttribute((_a = target === null || target === void 0 ? void 0 : target.state) !== null && _a !== void 0 ? _a : 'untranslated')}">${validatedMixedContent((_b = target === null || target === void 0 ? void 0 : target.text) !== null && _b !== void 0 ? _b : '', INLINE_12)}</target>`
514
530
  : ''}${notes}</trans-unit>`;
515
531
  })
516
532
  .join('');
517
- return `<file id="f${fileIndex + 1}" original="create-now" datatype="plaintext" source-language="${escapeAttribute(document.sourceLanguage)}"${language ? ` target-language="${escapeAttribute(language)}"` : ''}><body>${units}</body></file>`;
533
+ return `<file id="f${fileIndex + 1}" original="linked" datatype="plaintext" source-language="${escapeAttribute(document.sourceLanguage)}"${language ? ` target-language="${escapeAttribute(language)}"` : ''}><body>${units}</body></file>`;
518
534
  })
519
535
  .join('');
520
- return `<?xml version="1.0" encoding="UTF-8"?>\n<xliff xmlns="${XLIFF_12_NAMESPACE}" xmlns:cn="${CN_NAMESPACE}" version="1.2"${rootMetadata(document)}>${files}</xliff>\n`;
536
+ return `<?xml version="1.0" encoding="UTF-8"?>\n<xliff xmlns="${XLIFF_12_NAMESPACE}" xmlns:${PREFIX}="${EXCHANGE_NAMESPACE}" version="1.2"${rootMetadata(document)}>${files}</xliff>\n`;
521
537
  }
522
538
  function serialize20(document) {
523
539
  const files = targets(document)
@@ -529,23 +545,23 @@ function serialize20(document) {
529
545
  const id = deterministicId(entry, index);
530
546
  const notes = entry.description || (target === null || target === void 0 ? void 0 : target.note)
531
547
  ? `<notes>${entry.description
532
- ? `<note category="create-now-description">${escapeText(entry.description)}</note>`
548
+ ? `<note category="${NOTE_ROLES.description[0]}">${escapeText(entry.description)}</note>`
533
549
  : ''}${(target === null || target === void 0 ? void 0 : target.note)
534
- ? `<note category="create-now-target" xml:lang="${escapeAttribute(language)}">${escapeText(target.note)}</note>`
550
+ ? `<note category="${NOTE_ROLES.target[0]}" xml:lang="${escapeAttribute(language)}">${escapeText(target.note)}</note>`
535
551
  : ''}</notes>`
536
552
  : '';
537
- return `<unit id="${escapeAttribute(id)}" name="${escapeAttribute(entry.key)}"${metadataAttributes(entry)}>${notes}<segment id="s1" state="${state20(target === null || target === void 0 ? void 0 : target.state)}" cn:state="${escapeAttribute((_a = target === null || target === void 0 ? void 0 : target.state) !== null && _a !== void 0 ? _a : 'untranslated')}"><source>${validatedMixedContent(entry.sourceText, INLINE_20)}</source>${language && target
553
+ return `<unit id="${escapeAttribute(id)}" name="${escapeAttribute(entry.key)}"${metadataAttributes(entry)}>${notes}<segment id="s1" state="${state20(target === null || target === void 0 ? void 0 : target.state)}" ${PREFIX}:state="${escapeAttribute((_a = target === null || target === void 0 ? void 0 : target.state) !== null && _a !== void 0 ? _a : 'untranslated')}"><source>${validatedMixedContent(entry.sourceText, INLINE_20)}</source>${language && target
538
554
  ? `<target xml:lang="${escapeAttribute(language)}">${validatedMixedContent((_b = target === null || target === void 0 ? void 0 : target.text) !== null && _b !== void 0 ? _b : '', INLINE_20)}</target>`
539
555
  : ''}</segment></unit>`;
540
556
  })
541
557
  .join('');
542
- return `<file id="f${fileIndex + 1}"${language ? ` cn:target-language="${escapeAttribute(language)}"` : ''}>${units}</file>`;
558
+ return `<file id="f${fileIndex + 1}"${language ? ` ${PREFIX}:target-language="${escapeAttribute(language)}"` : ''}>${units}</file>`;
543
559
  })
544
560
  .join('');
545
561
  const singleTarget = document.targetLanguages.length === 1
546
562
  ? ` trgLang="${escapeAttribute(document.targetLanguages[0])}"`
547
563
  : '';
548
- return `<?xml version="1.0" encoding="UTF-8"?>\n<xliff xmlns="${XLIFF_20_NAMESPACE}" xmlns:cn="${CN_NAMESPACE}" version="2.0" srcLang="${escapeAttribute(document.sourceLanguage)}"${singleTarget}${rootMetadata(document)}>${files}</xliff>\n`;
564
+ return `<?xml version="1.0" encoding="UTF-8"?>\n<xliff xmlns="${XLIFF_20_NAMESPACE}" xmlns:${PREFIX}="${EXCHANGE_NAMESPACE}" version="2.0" srcLang="${escapeAttribute(document.sourceLanguage)}"${singleTarget}${rootMetadata(document)}>${files}</xliff>\n`;
549
565
  }
550
566
  function sniffVersion(input, expectedVersion, fileName) {
551
567
  if (fileName && !/\.xlf(f)?$/i.test(fileName))
@@ -1 +1 @@
1
- {"version":3,"file":"xliff.js","sourceRoot":"","sources":["../../../src/formats/xliff.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0CAA0C,GAO3C,MAAM,gBAAgB,CAAC;AAGxB,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;AAC/B,MAAM,YAAY,GAAG,kDAAkD,CAAC;AACxE,MAAM,kBAAkB,GAAG,uCAAuC,CAAC;AACnE,MAAM,kBAAkB,GAAG,uCAAuC,CAAC;AACnE,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAE/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,KAAK;IACL,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,GAAG;IACH,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,GAAG;CACJ,CAAC,CAAC;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAyBvE,SAAS,IAAI,CAAC,KAAiB;IAC7B,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,UAAU,CAAC,KAAK,CAAC;SACrB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;SACzB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,iDAAiD,EACjD,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE;QACvB,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,GAAG,CAAC;QAC/B,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC;QAC9B,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC;QAC9B,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC;QAChC,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CACF,CAAC;IACF,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,KAAa;IAC5C,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,SAAS,KAAK,KAAK;gBAAE,KAAK,GAAG,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAClD,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;;IAKpC,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,WAAW;QAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;IACvE,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC;QAClE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,GAAY;QACpB,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,QAAQ;gBAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpE,MAAM;QACR,CAAC;QACD,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC;YACrB,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC9D,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAI,OAAO,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7E,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACpE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,IAAI,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,IAAI,GAAY;YACpB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,YAAY,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC3C,CAAC,KAAK,EAAoB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACvD,CAAC;IACF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa,EAAE,IAAY;IAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CACzB,CAAC,KAAK,EAAoB,EAAE,CAC1B,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAa,EAAE,IAAY;IAC9C,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,IAAa,EAAE,IAAY;IACxC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,IAAa,EAAE,IAAY;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAChD,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAC/C,CAAC;IACF,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,IAAa;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;SAC/C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;SAC9D,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,UAAU,IAAI,CAAC;IACtE,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,UAAU,IAAI,IAAI,CAAC,QAAQ;SAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CACrE;SACA,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC;AAC/B,CAAC;AAED,SAAS,QAAQ,CACf,IAAyB,EACzB,eAA4B,EAC5B,OAA0B,EAC1B,MAAe;IAEf,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,KAAK,GAAG,CAAC,MAAe,EAAQ,EAAE;;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAS;YACxC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAA,OAAO,CAAC,SAAS,wDAAG;oBAClB,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,qCAAqC,KAAK,CAAC,IAAI,kBAAkB;oBAC1E,OAAO,EAAE,KAAK,CAAC,IAAI;oBACnB,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,OAAO,IAAI,CAAC,QAAQ;SACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CACzD;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,IAAyB;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,QAAQ;SACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC;SAC5E,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa,EAAE,IAAY;;IAC3C,OAAO,MAAA,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,mCAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IAChD,IACE,KAAK,KAAK,cAAc;QACxB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,OAAO,EACjB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QACxE,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,KAAK,KAAK,0BAA0B;QAAE,OAAO,OAAO,CAAC;IACzD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC;IAClE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IAInC,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;YAC7B,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;YAC/B,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;YAC/C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;YACtC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE;YAC7D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;YACrC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE;YAC1D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,OAAwC,EACxC,IAAa,EACb,UAA8B,EAC9B,UAA8B,EAC9B,cAAkC,EAClC,WAAyC,EACzC,UAA8B,EAC9B,WAA+B;;IAE/B,MAAM,GAAG,GAAG,MAAA,MAAA,MAAA,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,mCAAI,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,mCAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,mCAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpH,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,SAAS,GAAG,EAAE,CAAC;IAClD,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG;YACN,GAAG;YACH,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YAC/D,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;YAC7D,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBAClC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;gBACpD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;gBAC/B,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;gBACjC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE;gBACnD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBACtC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE;gBAC7D,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,IAAI,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,cAAc,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,mCAAmC,GAAG,QAAQ,cAAc,GAAG,CAChE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG;YACnC,IAAI,EAAE,UAAU;YAChB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CACd,IAAa,EACb,OAA0B;;IAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtD,IAAI,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7C,cAAc,aAAd,cAAc,cAAd,cAAc,IAAd,cAAc,GAAK,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAC;QACtD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC1D,IAAI,cAAc;YAAE,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YACnD,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACrC,MAAM,QAAQ,GACZ,MAAA,SAAS,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EAAE,MAAM,CAAC,mCAAI,cAAc,CAAC;YACtD,IAAI,QAAQ;gBAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,SAAS,CAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,wBAAwB,CAAC,CAC3E,CAAC;YACF,MAAM,UAAU,GAAG,SAAS,CAC1B,KAAK,CAAC,IAAI,CACR,CAAC,IAAI,EAAE,EAAE,CACP,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,mBAAmB;gBAC/C,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC,CAClF,CACF,CAAC;YACF,SAAS,CACP,OAAO,EACP,IAAI,EACJ,UAAU,EACV,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EACxC,QAAQ,EACR,eAAe,CAAC,MAAA,QAAQ,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EAAE,OAAO,CAAC,mCAAI,SAAS,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EAAE,OAAO,CAAC,CAAC,EACxF,UAAU,EACV,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC9E,OAAO,0CAA0C,CAAC;QAChD,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,cAAc;QACd,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;QACrC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CACd,IAAa,EACb,OAA0B;;IAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,kBAAkB;QAAE,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChE,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,kBAAkB,GACtB,MAAA,MAAA,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,mCAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,mCACjC,kBAAkB,CAAC;QACrB,IAAI,kBAAkB;YAAE,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,mCAAI,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAA,SAAS,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EAAE,MAAM,CAAC,mCAAI,kBAAkB,CAAC;YACzE,IAAI,QAAQ;gBAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,WAAW,GAAG,SAAS,CAC3B,KAAK,CAAC,IAAI,CACR,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,wBAAwB,CACnE,CACF,CAAC;YACF,MAAM,UAAU,GAAG,SAAS,CAC1B,KAAK,CAAC,IAAI,CACR,CAAC,IAAI,EAAE,EAAE,CACP,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,mBAAmB;gBACnD,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC,CAClF,CACF,CAAC;YACF,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,SAAS,CACP,OAAO,EACP,IAAI,EACJ,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAC1D,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EACxC,QAAQ,EACR,eAAe,CAAC,MAAA,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,mCAAI,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAC1E,UAAU,EACV,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,0CAA0C,CAAC;QAChD,GAAG,cAAc,CAAC,IAAI,CAAC;QACvB,cAAc;QACd,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;QACrC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CACjB,KAAiB,EACjB,eAA8B,EAC9B,UAA6B,EAAE;IAE/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,kBAAkB,eAAe,cAAc,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,oBAAoB,GAAG,CAClF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,KAA+B,EAAE,KAAa;;IACrE,MAAM,QAAQ,GAAG,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;IAChE,OAAO,IAAI,KAAK,GAAG,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CAAC,KAAmC;IAClD,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,0BAA0B,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,KAAmC;IAClD,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,YAAY,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC7C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAA+B;IACzD,OAAO;QACL,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;QACrB,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC;QACjC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC;QACvB,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;QAC3B,CAAC,mBAAmB,EAAE,KAAK,CAAC,YAAY,CAAC;QACzC,CAAC,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC;QACpC,CAAC,kBAAkB,EAAE,KAAK,CAAC,YAAY,CAAC;QACxC,CAAC,uBAAuB,EAAE,KAAK,CAAC,iBAAiB,CAAC;KACnD;SACE,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SACjE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;SAC9D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,QAAqC;IACzD,OAAO;QACL,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACrD,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC;QAC7B,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC;QACnC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC;QACvC,CAAC,uBAAuB,EAAE,QAAQ,CAAC,iBAAiB,CAAC;QACrD,CAAC,sBAAsB,EAAE,QAAQ,CAAC,eAAe,CAAC;KACnD;SACE,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SACjE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;SAC9D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,MAAmB;IAC/D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,KAAK,eAAe,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACnC,CAAC,KAAK,EAAoB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACvD,CAAC;QACF,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EACvD,CAAC;YACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ;aACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CACrE;aACA,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,QAAqC;IACpD,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,QAAQ,CAAC,eAAe;QAC1B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,QAAqC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;SAC5B,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO;aAC3B,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;;YACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG;gBACZ,KAAK,CAAC,WAAW;oBACf,CAAC,CAAC,uCAAuC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS;oBAC/E,CAAC,CAAC,EAAE;gBACN,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;oBACV,CAAC,CAAC,4CAA4C,eAAe,CAAC,QAAS,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;oBAC7G,CAAC,CAAC,EAAE;aACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACX,OAAO,mBAAmB,eAAe,CAAC,EAAE,CAAC,cAAc,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,YAAY,qBAAqB,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,YAC9K,QAAQ,IAAI,MAAM;gBAChB,CAAC,CAAC,qBAAqB,eAAe,CAAC,QAAQ,CAAC,YAAY,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,eAAe,eAAe,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,mCAAI,cAAc,CAAC,KAAK,qBAAqB,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,EAAE,EAAE,SAAS,CAAC,WAAW;gBACrN,CAAC,CAAC,EACN,GAAG,KAAK,eAAe,CAAC;QAC1B,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,cAAc,SAAS,GAAG,CAAC,iEAAiE,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IACzI,QAAQ,CAAC,CAAC,CAAC,qBAAqB,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EACjE,UAAU,KAAK,gBAAgB,CAAC;IAClC,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,yDAAyD,kBAAkB,eAAe,YAAY,kBAAkB,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC;AAC7K,CAAC;AAED,SAAS,WAAW,CAAC,QAAqC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;SAC5B,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO;aAC3B,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;;YACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GACT,KAAK,CAAC,WAAW,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA;gBAC/B,CAAC,CAAC,UACE,KAAK,CAAC,WAAW;oBACf,CAAC,CAAC,2CAA2C,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS;oBACnF,CAAC,CAAC,EACN,GACE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;oBACV,CAAC,CAAC,gDAAgD,eAAe,CAAC,QAAS,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;oBACjH,CAAC,CAAC,EACN,UAAU;gBACZ,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,aAAa,eAAe,CAAC,EAAE,CAAC,WAAW,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,2BAA2B,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,eAAe,eAAe,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,mCAAI,cAAc,CAAC,aAAa,qBAAqB,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,YAC/R,QAAQ,IAAI,MAAM;gBAChB,CAAC,CAAC,qBAAqB,eAAe,CAAC,QAAQ,CAAC,KAAK,qBAAqB,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,EAAE,EAAE,SAAS,CAAC,WAAW;gBACpH,CAAC,CAAC,EACN,mBAAmB,CAAC;QACtB,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,cAAc,SAAS,GAAG,CAAC,IAChC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EACpE,IAAI,KAAK,SAAS,CAAC;IACrB,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,YAAY,GAChB,QAAQ,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QACnC,CAAC,CAAC,aAAa,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG;QAC9D,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,yDAAyD,kBAAkB,eAAe,YAAY,4BAA4B,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC;AAClP,CAAC;AAED,SAAS,YAAY,CACnB,KAAiB,EACjB,eAA8B,EAC9B,QAAiB;IAEjB,IAAI,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,CACL,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC;QACzC,IAAI,MAAM,CAAC,0BAA0B,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7F,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAChE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAC9B,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAsB,CAAC;IAChE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,SAAS,EAAE,cAAc;QACzB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACzC,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAChE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAC9B,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAsB,CAAC;IAChE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,SAAS,EAAE,cAAc;QACzB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACzC,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"xliff.js","sourceRoot":"","sources":["../../../src/formats/xliff.ts"],"names":[],"mappings":"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"}
@@ -257,7 +257,7 @@ export declare class TranslationProvider extends ShapeProvider {
257
257
  shape: typeof TranslationKey;
258
258
  /**
259
259
  * Authoring gate. Reads `linkedAuth` off the request the LINKED server already
260
- * populates — framework-level, so this stays portable (no CN/create-now-js
260
+ * populates — framework-level, so this stays portable (no Create Now
261
261
  * import, AD-G). Anonymous callers can no longer read or write an app's
262
262
  * translation content via `/call`. Fine-grained "is translation enabled for
263
263
  * this app + is the caller a project member" gating is a Create Now concern and
@@ -1151,7 +1151,7 @@ export class TranslationProvider extends ShapeProvider {
1151
1151
  }
1152
1152
  /**
1153
1153
  * Authoring gate. Reads `linkedAuth` off the request the LINKED server already
1154
- * populates — framework-level, so this stays portable (no CN/create-now-js
1154
+ * populates — framework-level, so this stays portable (no Create Now
1155
1155
  * import, AD-G). Anonymous callers can no longer read or write an app's
1156
1156
  * translation content via `/call`. Fine-grained "is translation enabled for
1157
1157
  * this app + is the caller a project member" gating is a Create Now concern and
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@_linked/translation",
3
3
  "description": "LINKED translation management — graph-native i18n keys + units, Tolgee-compatible client, CDN delivery. Built inside Create Now for now; structured to extract to its own repo unchanged.",
4
- "version": "0.2.5",
4
+ "version": "0.3.0",
5
5
  "packageManager": "npm@11.19.1",
6
6
  "linkedPackage": true,
7
7
  "type": "module",
package/src/archive.ts CHANGED
@@ -23,8 +23,20 @@ export const DEFAULT_TRANSLATION_ARCHIVE_LIMITS: TranslationJsonArchiveLimits =
23
23
  });
24
24
 
25
25
  export const TRANSLATION_ARCHIVE_MANIFEST_PATH =
26
+ 'linked.translation-archive.json';
27
+
28
+ /**
29
+ * Archives written before 0.3.0 named the manifest — and the archive format
30
+ * itself — after Create Now. Both spellings are read; only the current one is
31
+ * written. The format id is inside `archiveContentHash`'s input, so a legacy
32
+ * manifest keeps the value it was hashed with.
33
+ */
34
+ export const LEGACY_TRANSLATION_ARCHIVE_MANIFEST_PATH =
26
35
  'create-now.translation-archive.json';
27
36
 
37
+ export const TRANSLATION_ARCHIVE_FORMAT = 'linked-translation-archive';
38
+ export const LEGACY_TRANSLATION_ARCHIVE_FORMAT = 'create-now-translation-archive';
39
+
28
40
  export type TranslationArchiveCollection =
29
41
  | 'configuration'
30
42
  | 'keys'
@@ -115,7 +127,9 @@ export interface TranslationArchiveObjectInventory {
115
127
 
116
128
  export interface TranslationArchiveManifest {
117
129
  schemaVersion: 1;
118
- format: 'create-now-translation-archive';
130
+ format:
131
+ | typeof TRANSLATION_ARCHIVE_FORMAT
132
+ | typeof LEGACY_TRANSLATION_ARCHIVE_FORMAT;
119
133
  appId: string;
120
134
  branchId: string;
121
135
  revisionWatermark: string;
@@ -355,7 +369,7 @@ function normalizeHash(value: unknown, label: string): string {
355
369
  return hash;
356
370
  }
357
371
 
358
- /** Create a deterministic, full-fidelity Create Now translation archive. */
372
+ /** Create a deterministic, full-fidelity translation archive. */
359
373
  export async function createTranslationArchive(
360
374
  snapshot: TranslationArchiveSnapshot,
361
375
  options: { limits?: Partial<TranslationJsonArchiveLimits> } = {},
@@ -434,7 +448,7 @@ export async function createTranslationArchive(
434
448
  'archiveContentHash'
435
449
  > = {
436
450
  schemaVersion: 1,
437
- format: 'create-now-translation-archive',
451
+ format: TRANSLATION_ARCHIVE_FORMAT,
438
452
  appId,
439
453
  branchId,
440
454
  revisionWatermark,
@@ -461,7 +475,7 @@ export async function createTranslationArchive(
461
475
  });
462
476
  safeUnzipTranslationZip(body, limits);
463
477
  return {
464
- fileName: 'create-now-translations.backup.zip',
478
+ fileName: 'linked-translations.backup.zip',
465
479
  mediaType: 'application/zip',
466
480
  body,
467
481
  manifest,
@@ -475,7 +489,10 @@ function parseManifest(value: unknown): TranslationArchiveManifest {
475
489
  `Unsupported translation archive schemaVersion "${String(raw.schemaVersion)}".`,
476
490
  );
477
491
  }
478
- if (raw.format !== 'create-now-translation-archive') {
492
+ if (
493
+ raw.format !== TRANSLATION_ARCHIVE_FORMAT &&
494
+ raw.format !== LEGACY_TRANSLATION_ARCHIVE_FORMAT
495
+ ) {
479
496
  throw new Error('Unsupported translation archive format.');
480
497
  }
481
498
  if (!Array.isArray(raw.files) || !Array.isArray(raw.objects)) {
@@ -537,7 +554,8 @@ function parseManifest(value: unknown): TranslationArchiveManifest {
537
554
  });
538
555
  return {
539
556
  schemaVersion: 1,
540
- format: 'create-now-translation-archive',
557
+ // Echoed back, not normalized: it is part of the content hash input.
558
+ format: raw.format,
541
559
  appId: requiredString(raw.appId, 'manifest.appId'),
542
560
  branchId: requiredString(raw.branchId, 'manifest.branchId'),
543
561
  revisionWatermark: requiredString(
@@ -605,13 +623,15 @@ export async function parseTranslationArchive(
605
623
  ...DEFAULT_TRANSLATION_ARCHIVE_LIMITS,
606
624
  ...options.limits,
607
625
  });
608
- const manifestBody = files[TRANSLATION_ARCHIVE_MANIFEST_PATH];
626
+ const manifestPath =
627
+ files[TRANSLATION_ARCHIVE_MANIFEST_PATH] !== undefined
628
+ ? TRANSLATION_ARCHIVE_MANIFEST_PATH
629
+ : LEGACY_TRANSLATION_ARCHIVE_MANIFEST_PATH;
630
+ const manifestBody = files[manifestPath];
609
631
  if (!manifestBody) {
610
632
  throw new Error('Translation archive manifest is missing.');
611
633
  }
612
- const manifest = parseManifest(
613
- decodeJson(manifestBody, TRANSLATION_ARCHIVE_MANIFEST_PATH),
614
- );
634
+ const manifest = parseManifest(decodeJson(manifestBody, manifestPath));
615
635
  const actualArchiveHash = await sha256Bytes(
616
636
  canonicalBytes(
617
637
  archiveContentHashInput(
@@ -624,7 +644,7 @@ export async function parseTranslationArchive(
624
644
  }
625
645
 
626
646
  const allowedPaths = new Set<string>([
627
- TRANSLATION_ARCHIVE_MANIFEST_PATH,
647
+ manifestPath,
628
648
  ...manifest.files.map(({ path }) => path),
629
649
  ...manifest.objects.filter(({ included }) => included).map(({ path }) => path),
630
650
  ]);
@@ -38,9 +38,14 @@ export const TRANSLATION_CSV_COLUMNS = [
38
38
  'exportedAt',
39
39
  'revisionWatermark',
40
40
  'contractSetHash',
41
- 'createNowEscaping',
41
+ 'escaping',
42
42
  ] as const;
43
43
 
44
+ /** Pre-0.3.0 spelling of a column, accepted on import. */
45
+ const LEGACY_CSV_COLUMNS: Readonly<Record<string, CsvColumn>> = {
46
+ createNowEscaping: 'escaping',
47
+ };
48
+
44
49
  type CsvColumn = (typeof TRANSLATION_CSV_COLUMNS)[number];
45
50
  type CsvRecord = Partial<Record<CsvColumn, string>>;
46
51
 
@@ -185,9 +190,12 @@ function entryFormat(value: string | undefined): 'simple' | 'icu' {
185
190
  function rowsToRecords(rows: string[][]): CsvRecord[] {
186
191
  if (rows.length === 0) throw new Error('Translation CSV is empty.');
187
192
  const header = rows[0]!;
193
+ const canonicalHeader = header.map(
194
+ (column) => LEGACY_CSV_COLUMNS[column] ?? column,
195
+ );
188
196
  const knownColumns = new Set<string>(TRANSLATION_CSV_COLUMNS);
189
197
  const seen = new Set<string>();
190
- for (const column of header) {
198
+ for (const column of canonicalHeader) {
191
199
  if (seen.has(column)) {
192
200
  throw new Error(`Translation CSV has duplicate column "${column}".`);
193
201
  }
@@ -209,10 +217,10 @@ function rowsToRecords(rows: string[][]): CsvRecord[] {
209
217
  );
210
218
  }
211
219
  const raw: Record<string, string> = {};
212
- header.forEach((column, index) => {
220
+ canonicalHeader.forEach((column, index) => {
213
221
  if (knownColumns.has(column)) raw[column] = values[index] ?? '';
214
222
  });
215
- const escaping = raw.createNowEscaping;
223
+ const escaping = raw.escaping;
216
224
  const record: CsvRecord = {};
217
225
  for (const column of TRANSLATION_CSV_COLUMNS) {
218
226
  if (raw[column] !== undefined) {
@@ -370,7 +378,7 @@ function translationValue(record: CsvRecord): TranslationExchangeValue {
370
378
  function formulaEscapingMarker(record: CsvRecord): string {
371
379
  const escapedColumns = TRANSLATION_CSV_COLUMNS.filter(
372
380
  (column) =>
373
- column !== 'createNowEscaping' &&
381
+ column !== 'escaping' &&
374
382
  isSpreadsheetDangerous(record[column] ?? ''),
375
383
  );
376
384
  return `${ESCAPING_VERSION}:${escapedColumns.join('|')}`;
@@ -417,7 +425,7 @@ function serializeRows(document: TranslationExchangeDocument): string {
417
425
  revisionWatermark: normalized.revisionWatermark ?? '',
418
426
  contractSetHash: normalized.contractSetHash ?? '',
419
427
  };
420
- record.createNowEscaping = formulaEscapingMarker(record);
428
+ record.escaping = formulaEscapingMarker(record);
421
429
  records.push(record);
422
430
  }
423
431
  }
@@ -13,7 +13,11 @@ import { canonicalLanguageTag } from '../key-version.js';
13
13
 
14
14
  const textDecoder = new TextDecoder('utf-8', { fatal: true });
15
15
  const textEncoder = new TextEncoder();
16
- const SIDECAR_PATH = 'create-now.exchange.json';
16
+ const SIDECAR_PATH = 'linked.exchange.json';
17
+ /** Pre-0.3.0 sidecar path and format id — read, never written. */
18
+ const LEGACY_SIDECAR_PATH = 'create-now.exchange.json';
19
+ const SIDECAR_FORMAT = 'linked-i18next-zip';
20
+ const LEGACY_SIDECAR_FORMAT = 'create-now-i18next-zip';
17
21
  const ZIP_LOCAL_FILE_SIGNATURE = 0x04034b50;
18
22
  const ZIP_EMPTY_SIGNATURE = 0x06054b50;
19
23
  const ZIP_SPANNED_SIGNATURE = 0x08074b50;
@@ -55,9 +59,9 @@ export interface TranslationJsonSerializeOptions {
55
59
  limits?: Partial<TranslationJsonArchiveLimits>;
56
60
  }
57
61
 
58
- interface CreateNowJsonSidecar {
62
+ interface TranslationJsonSidecar {
59
63
  schemaVersion: 1;
60
- format: 'create-now-i18next-zip';
64
+ format: typeof SIDECAR_FORMAT | typeof LEGACY_SIDECAR_FORMAT;
61
65
  exchange: TranslationExchangeDocument;
62
66
  files: Record<string, string>;
63
67
  }
@@ -356,21 +360,24 @@ function parseStandalone(
356
360
  });
357
361
  }
358
362
 
359
- function sidecarFromBytes(input: Uint8Array): CreateNowJsonSidecar {
360
- const value = parseJsonObject(input, SIDECAR_PATH) as unknown as Partial<
361
- CreateNowJsonSidecar
363
+ function sidecarFromBytes(
364
+ input: Uint8Array,
365
+ path: string,
366
+ ): TranslationJsonSidecar {
367
+ const value = parseJsonObject(input, path) as unknown as Partial<
368
+ TranslationJsonSidecar
362
369
  >;
363
370
  if (
364
371
  value.schemaVersion !== 1 ||
365
- value.format !== 'create-now-i18next-zip' ||
372
+ (value.format !== SIDECAR_FORMAT && value.format !== LEGACY_SIDECAR_FORMAT) ||
366
373
  !value.exchange ||
367
374
  !value.files ||
368
375
  typeof value.files !== 'object' ||
369
376
  Array.isArray(value.files)
370
377
  ) {
371
- throw new Error('Create Now JSON ZIP sidecar is invalid.');
378
+ throw new Error('Translation JSON ZIP sidecar is invalid.');
372
379
  }
373
- return value as CreateNowJsonSidecar;
380
+ return value as TranslationJsonSidecar;
374
381
  }
375
382
 
376
383
  function assertMapsEqual(
@@ -384,12 +391,12 @@ function assertMapsEqual(
384
391
  actualKeys.length !== expectedKeys.length ||
385
392
  actualKeys.some((key, index) => key !== expectedKeys[index])
386
393
  ) {
387
- throw new Error(`${label} keys do not match the Create Now sidecar.`);
394
+ throw new Error(`${label} keys do not match the exchange sidecar.`);
388
395
  }
389
396
  for (const key of expectedKeys) {
390
397
  if (actual[key] !== expected[key]) {
391
398
  throw new Error(
392
- `${label} value for "${key}" does not match the Create Now sidecar.`,
399
+ `${label} value for "${key}" does not match the exchange sidecar.`,
393
400
  );
394
401
  }
395
402
  }
@@ -400,11 +407,13 @@ function parseArchive(
400
407
  options: TranslationJsonParseOptions,
401
408
  ): ParsedTranslationExchangeDocument {
402
409
  const files = safeUnzipTranslationZip(input, options.limits);
403
- const sidecarBytes = files[SIDECAR_PATH];
410
+ const sidecarPath =
411
+ files[SIDECAR_PATH] !== undefined ? SIDECAR_PATH : LEGACY_SIDECAR_PATH;
412
+ const sidecarBytes = files[sidecarPath];
404
413
  if (!sidecarBytes) {
405
414
  return parseTolgeeArchive(files, options);
406
415
  }
407
- const sidecar = sidecarFromBytes(sidecarBytes);
416
+ const sidecar = sidecarFromBytes(sidecarBytes, sidecarPath);
408
417
  const exchange = validateTranslationExchangeDocument(sidecar.exchange);
409
418
  const expectedLanguages = [
410
419
  exchange.sourceLanguage,
@@ -418,22 +427,22 @@ function parseArchive(
418
427
  .sort()
419
428
  .some((language, index) => language !== fileLanguages[index])
420
429
  ) {
421
- throw new Error('Create Now JSON ZIP language manifest is incomplete.');
430
+ throw new Error('Translation JSON ZIP language manifest is incomplete.');
422
431
  }
423
432
  const usedPaths = new Set<string>();
424
433
  for (const language of expectedLanguages) {
425
434
  const path = sidecar.files[language];
426
435
  if (typeof path !== 'string') {
427
- throw new Error(`Create Now JSON ZIP has no file for ${language}.`);
436
+ throw new Error(`Translation JSON ZIP has no file for ${language}.`);
428
437
  }
429
438
  assertSafeArchivePath(path);
430
439
  if (usedPaths.has(path)) {
431
- throw new Error(`Create Now JSON ZIP reuses language file "${path}".`);
440
+ throw new Error(`Translation JSON ZIP reuses language file "${path}".`);
432
441
  }
433
442
  usedPaths.add(path);
434
443
  const bytes = files[path];
435
444
  if (!bytes) {
436
- throw new Error(`Create Now JSON ZIP is missing language file "${path}".`);
445
+ throw new Error(`Translation JSON ZIP is missing language file "${path}".`);
437
446
  }
438
447
  const actual = flattenJsonObject(parseJsonObject(bytes, path));
439
448
  const expected = languageValues(exchange, language);
@@ -534,9 +543,9 @@ export function serializeI18nextJsonZip(
534
543
  languageFiles[language] = path;
535
544
  files[path] = serializeLanguage(exchange, language, layout);
536
545
  }
537
- const sidecar: CreateNowJsonSidecar = {
546
+ const sidecar: TranslationJsonSidecar = {
538
547
  schemaVersion: 1,
539
- format: 'create-now-i18next-zip',
548
+ format: SIDECAR_FORMAT,
540
549
  exchange,
541
550
  files: languageFiles,
542
551
  };