@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.js CHANGED
@@ -9671,6 +9671,7 @@ function pageTitleFromText(text, fallback) {
9671
9671
  const endorsement = normalized.match(/\bENDORSEMENT\s+(?:NO\.?|NUMBER|#)\s*[A-Z0-9][A-Z0-9.-]*\b/i)?.[0];
9672
9672
  if (endorsement) return cleanText(endorsement, fallback);
9673
9673
  const firstSentence = normalized.split(/(?<=\.)\s+/)[0];
9674
+ if (/^page\s+\d+\b/i.test(firstSentence)) return fallback;
9674
9675
  if (firstSentence && firstSentence.length <= 120) return firstSentence.replace(/[.]$/, "");
9675
9676
  return fallback;
9676
9677
  }
@@ -9935,33 +9936,44 @@ function reparentNodes(sourceTree, childIds, parentId, organizerRepair) {
9935
9936
  function applySemanticPageGrouping(sourceTree) {
9936
9937
  const relabeled = sourceTree.map((node) => {
9937
9938
  if (node.kind === "document" || node.kind === "page_group") return node;
9938
- const endorsement = endorsementStartTitle(node);
9939
- if (endorsement && node.kind === "page") {
9939
+ let nextNode = node;
9940
+ if (node.kind === "page" && /^page\s+\d+$/i.test(node.title)) {
9941
+ const title = pageTitleFromText(sourceNodeText(node), node.title);
9942
+ if (title !== node.title) {
9943
+ nextNode = {
9944
+ ...node,
9945
+ title: simplifyOrganizerTitle(title, title, node.kind),
9946
+ metadata: { ...node.metadata, organizerRepair: "semantic_page_title" }
9947
+ };
9948
+ }
9949
+ }
9950
+ const endorsement = endorsementStartTitle(nextNode);
9951
+ if (endorsement && nextNode.kind === "page") {
9940
9952
  return {
9941
- ...node,
9953
+ ...nextNode,
9942
9954
  kind: "endorsement",
9943
9955
  title: endorsement,
9944
- description: endorsementDescription(endorsement, node),
9945
- metadata: { ...node.metadata, organizerRepair: "semantic_page_grouping" }
9956
+ description: endorsementDescription(endorsement, nextNode),
9957
+ metadata: { ...nextNode.metadata, organizerRepair: "semantic_page_grouping" }
9946
9958
  };
9947
9959
  }
9948
- if (node.kind === "page" && looksLikeDeclarationsStart(node)) {
9960
+ if (nextNode.kind === "page" && looksLikeDeclarationsStart(nextNode)) {
9949
9961
  return {
9950
- ...node,
9962
+ ...nextNode,
9951
9963
  title: "Declarations",
9952
- description: cleanText([node.description, "Declarations"].join(" "), "Declarations"),
9953
- metadata: { ...node.metadata, organizerRepair: "semantic_page_grouping" }
9964
+ description: cleanText([nextNode.description, "Declarations"].join(" "), "Declarations"),
9965
+ metadata: { ...nextNode.metadata, organizerRepair: "semantic_page_grouping" }
9954
9966
  };
9955
9967
  }
9956
- if (node.kind === "page" && looksLikePolicyFormStart(node)) {
9968
+ if (nextNode.kind === "page" && looksLikePolicyFormStart(nextNode)) {
9957
9969
  return {
9958
- ...node,
9970
+ ...nextNode,
9959
9971
  title: "Policy Form",
9960
- description: cleanText([node.description, "Policy Form"].join(" "), "Policy Form"),
9961
- metadata: { ...node.metadata, organizerRepair: "semantic_page_grouping" }
9972
+ description: cleanText([nextNode.description, "Policy Form"].join(" "), "Policy Form"),
9973
+ metadata: { ...nextNode.metadata, organizerRepair: "semantic_page_grouping" }
9962
9974
  };
9963
9975
  }
9964
- return node;
9976
+ return nextNode;
9965
9977
  });
9966
9978
  const rootId = sourceTreeRootId(relabeled);
9967
9979
  const children = (nodesByParent(relabeled).get(rootId) ?? []).filter((node) => node.kind !== "document").sort((left, right) => left.order - right.order);