@claritylabs/cl-sdk 3.0.20 → 3.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -9324,6 +9324,7 @@ function pageTitleFromText(text, fallback) {
9324
9324
  const endorsement = normalized.match(/\bENDORSEMENT\s+(?:NO\.?|NUMBER|#)\s*[A-Z0-9][A-Z0-9.-]*\b/i)?.[0];
9325
9325
  if (endorsement) return cleanText(endorsement, fallback);
9326
9326
  const firstSentence = normalized.split(/(?<=\.)\s+/)[0];
9327
+ if (/^page\s+\d+\b/i.test(firstSentence)) return fallback;
9327
9328
  if (firstSentence && firstSentence.length <= 120) return firstSentence.replace(/[.]$/, "");
9328
9329
  return fallback;
9329
9330
  }
@@ -9588,33 +9589,44 @@ function reparentNodes(sourceTree, childIds, parentId, organizerRepair) {
9588
9589
  function applySemanticPageGrouping(sourceTree) {
9589
9590
  const relabeled = sourceTree.map((node) => {
9590
9591
  if (node.kind === "document" || node.kind === "page_group") return node;
9591
- const endorsement = endorsementStartTitle(node);
9592
- if (endorsement && node.kind === "page") {
9592
+ let nextNode = node;
9593
+ if (node.kind === "page" && /^page\s+\d+$/i.test(node.title)) {
9594
+ const title = pageTitleFromText(sourceNodeText(node), node.title);
9595
+ if (title !== node.title) {
9596
+ nextNode = {
9597
+ ...node,
9598
+ title: simplifyOrganizerTitle(title, title, node.kind),
9599
+ metadata: { ...node.metadata, organizerRepair: "semantic_page_title" }
9600
+ };
9601
+ }
9602
+ }
9603
+ const endorsement = endorsementStartTitle(nextNode);
9604
+ if (endorsement && nextNode.kind === "page") {
9593
9605
  return {
9594
- ...node,
9606
+ ...nextNode,
9595
9607
  kind: "endorsement",
9596
9608
  title: endorsement,
9597
- description: endorsementDescription(endorsement, node),
9598
- metadata: { ...node.metadata, organizerRepair: "semantic_page_grouping" }
9609
+ description: endorsementDescription(endorsement, nextNode),
9610
+ metadata: { ...nextNode.metadata, organizerRepair: "semantic_page_grouping" }
9599
9611
  };
9600
9612
  }
9601
- if (node.kind === "page" && looksLikeDeclarationsStart(node)) {
9613
+ if (nextNode.kind === "page" && looksLikeDeclarationsStart(nextNode)) {
9602
9614
  return {
9603
- ...node,
9615
+ ...nextNode,
9604
9616
  title: "Declarations",
9605
- description: cleanText([node.description, "Declarations"].join(" "), "Declarations"),
9606
- metadata: { ...node.metadata, organizerRepair: "semantic_page_grouping" }
9617
+ description: cleanText([nextNode.description, "Declarations"].join(" "), "Declarations"),
9618
+ metadata: { ...nextNode.metadata, organizerRepair: "semantic_page_grouping" }
9607
9619
  };
9608
9620
  }
9609
- if (node.kind === "page" && looksLikePolicyFormStart(node)) {
9621
+ if (nextNode.kind === "page" && looksLikePolicyFormStart(nextNode)) {
9610
9622
  return {
9611
- ...node,
9623
+ ...nextNode,
9612
9624
  title: "Policy Form",
9613
- description: cleanText([node.description, "Policy Form"].join(" "), "Policy Form"),
9614
- metadata: { ...node.metadata, organizerRepair: "semantic_page_grouping" }
9625
+ description: cleanText([nextNode.description, "Policy Form"].join(" "), "Policy Form"),
9626
+ metadata: { ...nextNode.metadata, organizerRepair: "semantic_page_grouping" }
9615
9627
  };
9616
9628
  }
9617
- return node;
9629
+ return nextNode;
9618
9630
  });
9619
9631
  const rootId = sourceTreeRootId(relabeled);
9620
9632
  const children = (nodesByParent(relabeled).get(rootId) ?? []).filter((node) => node.kind !== "document").sort((left, right) => left.order - right.order);