canopycms 0.0.61 → 0.0.63
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/ai/index.d.ts +9 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +9 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/json-to-markdown.js +1 -2
- package/dist/ai/json-to-markdown.js.map +1 -1
- package/dist/ai/to-plain-text.d.ts +57 -0
- package/dist/ai/to-plain-text.d.ts.map +1 -0
- package/dist/ai/to-plain-text.js +255 -0
- package/dist/ai/to-plain-text.js.map +1 -0
- package/dist/ai/transform-components.d.ts.map +1 -1
- package/dist/ai/transform-components.js +70 -5
- package/dist/ai/transform-components.js.map +1 -1
- package/dist/api/__test__/mock-client.d.ts +5 -1
- package/dist/api/__test__/mock-client.d.ts.map +1 -1
- package/dist/api/__test__/mock-client.js +9 -2
- package/dist/api/__test__/mock-client.js.map +1 -1
- package/dist/api/admin-branch-health.d.ts +36 -1
- package/dist/api/admin-branch-health.d.ts.map +1 -1
- package/dist/api/admin-branch-health.js +176 -2
- package/dist/api/admin-branch-health.js.map +1 -1
- package/dist/api/admin.d.ts +8 -1
- package/dist/api/admin.d.ts.map +1 -1
- package/dist/api/admin.js.map +1 -1
- package/dist/api/branch.d.ts.map +1 -1
- package/dist/api/branch.js +16 -2
- package/dist/api/branch.js.map +1 -1
- package/dist/api/client.d.ts +5 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +6 -0
- package/dist/api/client.js.map +1 -1
- package/dist/api/content.d.ts +11 -5
- package/dist/api/content.d.ts.map +1 -1
- package/dist/api/content.js +79 -6
- package/dist/api/content.js.map +1 -1
- package/dist/api/entries.d.ts +10 -0
- package/dist/api/entries.d.ts.map +1 -1
- package/dist/api/entries.js +40 -15
- package/dist/api/entries.js.map +1 -1
- package/dist/api/schema.d.ts +4 -4
- package/dist/api/schema.d.ts.map +1 -1
- package/dist/api/schema.js +13 -13
- package/dist/api/schema.js.map +1 -1
- package/dist/assets/transform.d.ts.map +1 -1
- package/dist/assets/transform.js +19 -6
- package/dist/assets/transform.js.map +1 -1
- package/dist/authorization/branch.d.ts +55 -3
- package/dist/authorization/branch.d.ts.map +1 -1
- package/dist/authorization/branch.js +55 -9
- package/dist/authorization/branch.js.map +1 -1
- package/dist/authorization/types.d.ts +1 -1
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/branch-health.d.ts +13 -0
- package/dist/branch-health.d.ts.map +1 -1
- package/dist/branch-health.js +23 -0
- package/dist/branch-health.js.map +1 -1
- package/dist/build-canopy.d.ts +49 -0
- package/dist/build-canopy.d.ts.map +1 -0
- package/dist/build-canopy.js +51 -0
- package/dist/build-canopy.js.map +1 -0
- package/dist/cli/cli.js +935 -562
- package/dist/cli/generate-ai-content.js +837 -480
- package/dist/cli/init.js +25 -7
- package/dist/cli/template-files/Dockerfile.cms.template +19 -1
- package/dist/cli/template-files/canopycms.config.ts.template +25 -1
- package/dist/cli/template-files/cms-stack.ts.template +7 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/config/schemas/field.d.ts +15 -15
- package/dist/config/types.d.ts +2 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +0 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validation.d.ts +9 -0
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +14 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/content-id-index.d.ts +97 -5
- package/dist/content-id-index.d.ts.map +1 -1
- package/dist/content-id-index.js +170 -18
- package/dist/content-id-index.js.map +1 -1
- package/dist/content-listing.d.ts +110 -5
- package/dist/content-listing.d.ts.map +1 -1
- package/dist/content-listing.js +164 -23
- package/dist/content-listing.js.map +1 -1
- package/dist/content-reader.d.ts +41 -4
- package/dist/content-reader.d.ts.map +1 -1
- package/dist/content-reader.js +17 -4
- package/dist/content-reader.js.map +1 -1
- package/dist/content-store.d.ts +91 -8
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +443 -258
- package/dist/content-store.js.map +1 -1
- package/dist/content-tree.d.ts +31 -2
- package/dist/content-tree.d.ts.map +1 -1
- package/dist/content-tree.js +22 -5
- package/dist/content-tree.js.map +1 -1
- package/dist/context.d.ts +30 -10
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +55 -4
- package/dist/context.js.map +1 -1
- package/dist/editor/BranchManager.d.ts.map +1 -1
- package/dist/editor/BranchManager.js +18 -6
- package/dist/editor/BranchManager.js.map +1 -1
- package/dist/editor/CanopyEditor.d.ts.map +1 -1
- package/dist/editor/CanopyEditor.js +2 -2
- package/dist/editor/CanopyEditor.js.map +1 -1
- package/dist/editor/CanopyEditorPage.d.ts +9 -1
- package/dist/editor/CanopyEditorPage.d.ts.map +1 -1
- package/dist/editor/CanopyEditorPage.js +9 -2
- package/dist/editor/CanopyEditorPage.js.map +1 -1
- package/dist/editor/Editor.d.ts +9 -1
- package/dist/editor/Editor.d.ts.map +1 -1
- package/dist/editor/Editor.js +58 -24
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/FormRenderer.d.ts.map +1 -1
- package/dist/editor/FormRenderer.js +12 -0
- package/dist/editor/FormRenderer.js.map +1 -1
- package/dist/editor/admin/SystemHealthPanel.js +6 -2
- package/dist/editor/admin/SystemHealthPanel.js.map +1 -1
- package/dist/editor/components/EntryCreateModal.d.ts +9 -1
- package/dist/editor/components/EntryCreateModal.d.ts.map +1 -1
- package/dist/editor/components/EntryCreateModal.js +4 -1
- package/dist/editor/components/EntryCreateModal.js.map +1 -1
- package/dist/editor/fields/DateTimeField.d.ts +46 -0
- package/dist/editor/fields/DateTimeField.d.ts.map +1 -0
- package/dist/editor/fields/DateTimeField.js +66 -0
- package/dist/editor/fields/DateTimeField.js.map +1 -0
- package/dist/editor/fields/NumberField.d.ts +34 -0
- package/dist/editor/fields/NumberField.d.ts.map +1 -0
- package/dist/editor/fields/NumberField.js +53 -0
- package/dist/editor/fields/NumberField.js.map +1 -0
- package/dist/editor/fields/NumberListField.d.ts +25 -0
- package/dist/editor/fields/NumberListField.d.ts.map +1 -0
- package/dist/editor/fields/NumberListField.js +53 -0
- package/dist/editor/fields/NumberListField.js.map +1 -0
- package/dist/editor/hooks/useBranchManager.d.ts.map +1 -1
- package/dist/editor/hooks/useBranchManager.js +115 -26
- package/dist/editor/hooks/useBranchManager.js.map +1 -1
- package/dist/editor/hooks/useDraftManager.d.ts +8 -0
- package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
- package/dist/editor/hooks/useDraftManager.js +261 -21
- package/dist/editor/hooks/useDraftManager.js.map +1 -1
- package/dist/editor/hooks/useEntryManager.d.ts +21 -0
- package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
- package/dist/editor/hooks/useEntryManager.js +25 -2
- package/dist/editor/hooks/useEntryManager.js.map +1 -1
- package/dist/editor/theme.d.ts +8 -8
- package/dist/entry-schema.d.ts +228 -8
- package/dist/entry-schema.d.ts.map +1 -1
- package/dist/entry-schema.js +124 -0
- package/dist/entry-schema.js.map +1 -1
- package/dist/git-manager.d.ts +51 -7
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +105 -14
- package/dist/git-manager.js.map +1 -1
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/handler.js +70 -27
- package/dist/http/handler.js.map +1 -1
- package/dist/http/router.d.ts.map +1 -1
- package/dist/http/router.js +40 -3
- package/dist/http/router.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/operating-mode/deployment-name-fixtures.d.ts +29 -0
- package/dist/operating-mode/deployment-name-fixtures.d.ts.map +1 -0
- package/dist/operating-mode/deployment-name-fixtures.js +55 -0
- package/dist/operating-mode/deployment-name-fixtures.js.map +1 -0
- package/dist/operating-mode/deployment-name.d.ts +9 -0
- package/dist/operating-mode/deployment-name.d.ts.map +1 -1
- package/dist/operating-mode/deployment-name.js +9 -1
- package/dist/operating-mode/deployment-name.js.map +1 -1
- package/dist/operating-mode/index.d.ts +2 -1
- package/dist/operating-mode/index.d.ts.map +1 -1
- package/dist/operating-mode/index.js +4 -1
- package/dist/operating-mode/index.js.map +1 -1
- package/dist/operating-mode/mode-env.d.ts +58 -0
- package/dist/operating-mode/mode-env.d.ts.map +1 -0
- package/dist/operating-mode/mode-env.js +97 -0
- package/dist/operating-mode/mode-env.js.map +1 -0
- package/dist/resolve-canopy-user.d.ts +34 -0
- package/dist/resolve-canopy-user.d.ts.map +1 -0
- package/dist/resolve-canopy-user.js +55 -0
- package/dist/resolve-canopy-user.js.map +1 -0
- package/dist/schema/schema-store.d.ts +53 -2
- package/dist/schema/schema-store.d.ts.map +1 -1
- package/dist/schema/schema-store.js +92 -21
- package/dist/schema/schema-store.js.map +1 -1
- package/dist/server.d.ts +60 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +58 -0
- package/dist/server.js.map +1 -1
- package/dist/services.d.ts +1 -2
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +42 -12
- package/dist/services.js.map +1 -1
- package/dist/settings-workspace.d.ts +40 -0
- package/dist/settings-workspace.d.ts.map +1 -1
- package/dist/settings-workspace.js +139 -151
- package/dist/settings-workspace.js.map +1 -1
- package/dist/static/index.d.ts +65 -5
- package/dist/static/index.d.ts.map +1 -1
- package/dist/static/index.js +65 -12
- package/dist/static/index.js.map +1 -1
- package/dist/static/seo.d.ts +150 -0
- package/dist/static/seo.d.ts.map +1 -0
- package/dist/static/seo.js +189 -0
- package/dist/static/seo.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/content-write-lock.d.ts +127 -0
- package/dist/utils/content-write-lock.d.ts.map +1 -0
- package/dist/utils/content-write-lock.js +170 -0
- package/dist/utils/content-write-lock.js.map +1 -0
- package/dist/utils/error.d.ts +1 -1
- package/dist/utils/error.js +1 -1
- package/dist/utils/git.d.ts +16 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +22 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/sanitize-href.d.ts +74 -3
- package/dist/utils/sanitize-href.d.ts.map +1 -1
- package/dist/utils/sanitize-href.js +125 -6
- package/dist/utils/sanitize-href.js.map +1 -1
- package/dist/validation/entry-link-validator.d.ts +1 -1
- package/dist/validation/entry-link-validator.js +3 -3
- package/dist/validation/entry-link-validator.js.map +1 -1
- package/dist/validation/entry-validator.js +1 -1
- package/dist/validation/entry-validator.js.map +1 -1
- package/dist/worker/cms-worker.d.ts +13 -0
- package/dist/worker/cms-worker.d.ts.map +1 -1
- package/dist/worker/cms-worker.js +326 -264
- package/dist/worker/cms-worker.js.map +1 -1
- package/package.json +2 -2
package/dist/ai/index.d.ts
CHANGED
|
@@ -7,6 +7,15 @@
|
|
|
7
7
|
export { defineAIContentConfig } from './types';
|
|
8
8
|
export { createAIContentHandler } from './handler';
|
|
9
9
|
export { generateAIContent } from './generate';
|
|
10
|
+
/**
|
|
11
|
+
* Convert MDX/Markdown body content to plain prose text (for a search index
|
|
12
|
+
* or any other "just the words" consumer). Distinct from the AI-content
|
|
13
|
+
* pipeline above: this strips markup down to human-readable text rather
|
|
14
|
+
* than preparing MDX for model consumption. See the source JSDoc for the
|
|
15
|
+
* full pipeline and why paired custom components keep their inner text
|
|
16
|
+
* while losing their tags.
|
|
17
|
+
*/
|
|
18
|
+
export { toPlainText } from './to-plain-text';
|
|
10
19
|
export type { AIContentConfig, ExcludeConfig, BundleConfig, BundleFilter, FieldTransformFn, FieldTransforms, ComponentProps, ComponentTransformFn, ComponentTransforms, BodyTransformFn, BodyTransforms, EntryTransformFn, EntryTransforms, EntryTransformContext, AIManifest, AIManifestCollection, AIManifestEntry, AIManifestBundle, AIEntry, AIEntryMeta, } from './types';
|
|
11
20
|
export type { AIContentHandlerOptions } from './handler';
|
|
12
21
|
export type { GenerateOptions, GenerateResult } from './generate';
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACxD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACxD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/ai/index.js
CHANGED
|
@@ -7,4 +7,13 @@
|
|
|
7
7
|
export { defineAIContentConfig } from './types.js';
|
|
8
8
|
export { createAIContentHandler } from './handler.js';
|
|
9
9
|
export { generateAIContent } from './generate.js';
|
|
10
|
+
/**
|
|
11
|
+
* Convert MDX/Markdown body content to plain prose text (for a search index
|
|
12
|
+
* or any other "just the words" consumer). Distinct from the AI-content
|
|
13
|
+
* pipeline above: this strips markup down to human-readable text rather
|
|
14
|
+
* than preparing MDX for model consumption. See the source JSDoc for the
|
|
15
|
+
* full pipeline and why paired custom components keep their inner text
|
|
16
|
+
* while losing their tags.
|
|
17
|
+
*/
|
|
18
|
+
export { toPlainText } from './to-plain-text.js';
|
|
10
19
|
//# sourceMappingURL=index.js.map
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -51,7 +51,7 @@ export function entryToMarkdown(entry, config) {
|
|
|
51
51
|
function renderMarkdownEntry(entry, config, skipFields) {
|
|
52
52
|
const parts = [];
|
|
53
53
|
// Render frontmatter fields (excluding body-like fields and already-rendered fields)
|
|
54
|
-
const bodyFieldTypes = new Set(['
|
|
54
|
+
const bodyFieldTypes = new Set(['markdown', 'mdx']);
|
|
55
55
|
const metadataFields = flattenGroupFields(entry.fields).filter((f) => !bodyFieldTypes.has(f.type) && !skipFields.has(f.name));
|
|
56
56
|
for (const field of metadataFields) {
|
|
57
57
|
const value = entry.data[field.name];
|
|
@@ -134,7 +134,6 @@ function renderField(field, value, depth, entry, config) {
|
|
|
134
134
|
return `${heading} ${label}${descriptionLine}\n\n${String(value)}`;
|
|
135
135
|
case 'boolean':
|
|
136
136
|
return `${heading} ${label}${descriptionLine}\n\n${value ? 'Yes' : 'No'}`;
|
|
137
|
-
case 'rich-text':
|
|
138
137
|
case 'markdown':
|
|
139
138
|
case 'mdx':
|
|
140
139
|
return `${heading} ${label}${descriptionLine}\n\n${String(value)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-to-markdown.js","sourceRoot":"","sources":["../../src/ai/json-to-markdown.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"json-to-markdown.js","sourceRoot":"","sources":["../../src/ai/json-to-markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert MDX/Markdown body content to plain prose text, suitable for a
|
|
3
|
+
* search index or any other consumer that wants "just the words".
|
|
4
|
+
*
|
|
5
|
+
* This is deliberately a *different* transform from `stripMdxImports`
|
|
6
|
+
* (strip-mdx.ts): that one is tuned for AI/RAG consumption and intentionally
|
|
7
|
+
* leaves JSX components intact, because their props often carry semantic
|
|
8
|
+
* data a model can use. `toPlainText` has the opposite goal — it removes ALL
|
|
9
|
+
* markup (JSX tags, JSX expressions, markdown syntax) and keeps only the
|
|
10
|
+
* prose, so **paired custom components lose their tags but keep their
|
|
11
|
+
* children's text**. That distinction is the whole reason this function
|
|
12
|
+
* exists: a hand-rolled plaintext stripper that treats a paired component
|
|
13
|
+
* like `<Callout>...</Callout>` as one opaque unit and deletes it wholesale
|
|
14
|
+
* silently drops every word inside it from the search index. `toPlainText`
|
|
15
|
+
* strips the `<Callout>`/`</Callout>` delimiters but keeps the sentence
|
|
16
|
+
* between them.
|
|
17
|
+
*
|
|
18
|
+
* Pipeline (each step operates on the previous step's output):
|
|
19
|
+
* 1. Strip YAML frontmatter (via `gray-matter`, the same parser
|
|
20
|
+
* `content-store.ts` uses for `.md`/`.mdx` bodies).
|
|
21
|
+
* 2. Strip `import`/`export` statements (via `stripMdxImports`), which also
|
|
22
|
+
* protects fenced code blocks from every later step.
|
|
23
|
+
* 3. Mask fenced code blocks and inline code spans, capturing their content
|
|
24
|
+
* (fence markers / backticks are discarded, the code text is kept).
|
|
25
|
+
* 4. Strip JSX/HTML tags — opening, closing, and self-closing — leaving
|
|
26
|
+
* whatever text sits between them in place. This is a single global
|
|
27
|
+
* replace, not a matched-pair walk: because we never need the tag name or
|
|
28
|
+
* the children as a unit (unlike `applyComponentTransforms`, which calls
|
|
29
|
+
* an adopter transform per component), deleting every tag occurrence and
|
|
30
|
+
* leaving the surrounding text untouched handles nesting for free.
|
|
31
|
+
* 5. Strip JSX expressions (`{...}`, including nested braces) — these are
|
|
32
|
+
* code, not prose.
|
|
33
|
+
* 6. Strip common Markdown syntax: headings, emphasis/strikethrough, links
|
|
34
|
+
* (keep the link text, drop the URL), images (keep alt text), blockquote
|
|
35
|
+
* markers, list markers, and thematic breaks.
|
|
36
|
+
* 7. Restore the masked code from step 3 as plain text.
|
|
37
|
+
* 8. Collapse whitespace: trim each line, collapse runs of blank lines,
|
|
38
|
+
* trim the result. Paragraph breaks (single blank lines) are preserved —
|
|
39
|
+
* this does not flatten the output to one line.
|
|
40
|
+
*/
|
|
41
|
+
/**
|
|
42
|
+
* Convert MDX/Markdown body content to plain prose text.
|
|
43
|
+
*
|
|
44
|
+
* See the module doc above for the full pipeline and why this exists as a
|
|
45
|
+
* distinct transform from `stripMdxImports`. In short: frontmatter, code
|
|
46
|
+
* fences, inline code, JSX tags/expressions, and Markdown syntax are all
|
|
47
|
+
* stripped down to their human-readable text — code content and link/image
|
|
48
|
+
* text are kept, everything else is discarded. Paired custom components
|
|
49
|
+
* lose only their tags; the prose between them survives.
|
|
50
|
+
*
|
|
51
|
+
* Output preserves paragraph breaks (blank lines) but is not further
|
|
52
|
+
* chunked, weighted, or field-selected — composing that into a search
|
|
53
|
+
* document is left to the caller, since that logic is where adopter search
|
|
54
|
+
* indexes genuinely diverge (see docs/adopter-migration.md).
|
|
55
|
+
*/
|
|
56
|
+
export declare function toPlainText(markdown: string): string;
|
|
57
|
+
//# sourceMappingURL=to-plain-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-plain-text.d.ts","sourceRoot":"","sources":["../../src/ai/to-plain-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAkNH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAapD"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert MDX/Markdown body content to plain prose text, suitable for a
|
|
3
|
+
* search index or any other consumer that wants "just the words".
|
|
4
|
+
*
|
|
5
|
+
* This is deliberately a *different* transform from `stripMdxImports`
|
|
6
|
+
* (strip-mdx.ts): that one is tuned for AI/RAG consumption and intentionally
|
|
7
|
+
* leaves JSX components intact, because their props often carry semantic
|
|
8
|
+
* data a model can use. `toPlainText` has the opposite goal — it removes ALL
|
|
9
|
+
* markup (JSX tags, JSX expressions, markdown syntax) and keeps only the
|
|
10
|
+
* prose, so **paired custom components lose their tags but keep their
|
|
11
|
+
* children's text**. That distinction is the whole reason this function
|
|
12
|
+
* exists: a hand-rolled plaintext stripper that treats a paired component
|
|
13
|
+
* like `<Callout>...</Callout>` as one opaque unit and deletes it wholesale
|
|
14
|
+
* silently drops every word inside it from the search index. `toPlainText`
|
|
15
|
+
* strips the `<Callout>`/`</Callout>` delimiters but keeps the sentence
|
|
16
|
+
* between them.
|
|
17
|
+
*
|
|
18
|
+
* Pipeline (each step operates on the previous step's output):
|
|
19
|
+
* 1. Strip YAML frontmatter (via `gray-matter`, the same parser
|
|
20
|
+
* `content-store.ts` uses for `.md`/`.mdx` bodies).
|
|
21
|
+
* 2. Strip `import`/`export` statements (via `stripMdxImports`), which also
|
|
22
|
+
* protects fenced code blocks from every later step.
|
|
23
|
+
* 3. Mask fenced code blocks and inline code spans, capturing their content
|
|
24
|
+
* (fence markers / backticks are discarded, the code text is kept).
|
|
25
|
+
* 4. Strip JSX/HTML tags — opening, closing, and self-closing — leaving
|
|
26
|
+
* whatever text sits between them in place. This is a single global
|
|
27
|
+
* replace, not a matched-pair walk: because we never need the tag name or
|
|
28
|
+
* the children as a unit (unlike `applyComponentTransforms`, which calls
|
|
29
|
+
* an adopter transform per component), deleting every tag occurrence and
|
|
30
|
+
* leaving the surrounding text untouched handles nesting for free.
|
|
31
|
+
* 5. Strip JSX expressions (`{...}`, including nested braces) — these are
|
|
32
|
+
* code, not prose.
|
|
33
|
+
* 6. Strip common Markdown syntax: headings, emphasis/strikethrough, links
|
|
34
|
+
* (keep the link text, drop the URL), images (keep alt text), blockquote
|
|
35
|
+
* markers, list markers, and thematic breaks.
|
|
36
|
+
* 7. Restore the masked code from step 3 as plain text.
|
|
37
|
+
* 8. Collapse whitespace: trim each line, collapse runs of blank lines,
|
|
38
|
+
* trim the result. Paragraph breaks (single blank lines) are preserved —
|
|
39
|
+
* this does not flatten the output to one line.
|
|
40
|
+
*/
|
|
41
|
+
import matter from 'gray-matter';
|
|
42
|
+
import { stripMdxImports } from './strip-mdx.js';
|
|
43
|
+
/**
|
|
44
|
+
* Masking markers use `@` right after `<` (and before the closing `>`),
|
|
45
|
+
* e.g. `<@B0@>`. `@` is not a valid JSX tag-name start (`[A-Za-z]` only), so
|
|
46
|
+
* TAG_RE below can never mistake the marker for a real tag — unlike
|
|
47
|
+
* transform-components.ts's `<<CODEBLOCK0>>` convention, which is safe
|
|
48
|
+
* there only because that module never runs a *generic* tag-stripping regex
|
|
49
|
+
* over its masked text (this one does: `<CODEBLOCK0>` inside `<<...>>`
|
|
50
|
+
* reads as a valid tag name to a naive tag matcher, which is exactly the
|
|
51
|
+
* bug this format avoids). `@` also doesn't participate in any of the
|
|
52
|
+
* Markdown-syntax regexes below, so a marker surviving to that stage is
|
|
53
|
+
* inert there too.
|
|
54
|
+
*/
|
|
55
|
+
const BLOCK_PREFIX = '<@B';
|
|
56
|
+
const BLOCK_SUFFIX = '@>';
|
|
57
|
+
const BLOCK_RESTORE_RE = /<@B(\d+)@>/g;
|
|
58
|
+
const INLINE_PREFIX = '<@I';
|
|
59
|
+
const INLINE_SUFFIX = '@>';
|
|
60
|
+
const INLINE_RESTORE_RE = /<@I(\d+)@>/g;
|
|
61
|
+
/** JSX attribute content: skips quoted strings so a `>` inside `title="a > b"` doesn't end the tag early. */
|
|
62
|
+
const ATTR_CONTENT = `(?:[^<>"']|"[^"]*"|'[^']*')*`;
|
|
63
|
+
/**
|
|
64
|
+
* Matches an opening, closing, or self-closing JSX/HTML tag, or a fragment (`<>`/`</>`).
|
|
65
|
+
*
|
|
66
|
+
* No trailing `\s*` before the final `\/?>`: `ATTR_CONTENT`'s `[^<>"']` alternative already
|
|
67
|
+
* matches whitespace, so a trailing `\s*` on top of it lets the engine split any whitespace run
|
|
68
|
+
* between the two in every possible proportion. On an unterminated tag (no closing `>` in the
|
|
69
|
+
* input) followed by a long whitespace run, that ambiguity is polynomial-ReDoS shaped (CodeQL
|
|
70
|
+
* `js/polynomial-redos`): matching cost is quadratic in the run length before the engine gives up
|
|
71
|
+
* and backtracks to try the next start position. Measured on a 128 KB whitespace tail: ~26s with
|
|
72
|
+
* the redundant `\s*`, ~1ms without it. `ATTR_CONTENT` already absorbs the trailing whitespace on
|
|
73
|
+
* its own, so removing the `\s*` changes no matched output.
|
|
74
|
+
*/
|
|
75
|
+
const TAG_RE = new RegExp(`<\\/?([A-Za-z][\\w.-]*)?(?:\\s${ATTR_CONTENT})?\\/?>`, 'g');
|
|
76
|
+
/** True if `line` is a valid closing fence line for `marker` ("```" or "~~~"): the marker
|
|
77
|
+
* followed by nothing but whitespace through end of line — matching what `\1\s*$` required in
|
|
78
|
+
* the regex this replaced. */
|
|
79
|
+
function isFenceCloseLine(line, marker) {
|
|
80
|
+
return line.startsWith(marker) && /^\s*$/.test(line.slice(marker.length));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Mask fenced code blocks (` ``` `/`~~~`), capturing each block's *content* so `restore`
|
|
84
|
+
* re-inserts plain text — no fence markers, no language tag.
|
|
85
|
+
*
|
|
86
|
+
* A hand-rolled line scan, not `/^(```|~~~).*\n([\s\S]*?)\n\1\s*$/gm`: that regex is a second
|
|
87
|
+
* polynomial-ReDoS shape (measured ~9s on ~530KB of body text with many unclosed fence openers,
|
|
88
|
+
* a plausible authoring accident — the same trigger class as `TAG_RE` above, in the same
|
|
89
|
+
* function). The lazy `[\s\S]*?` has no bound on how far it must scan looking for a closing
|
|
90
|
+
* `\1` that, for an unclosed fence, never arrives — it exhausts to the end of the string before
|
|
91
|
+
* giving up on that starting line, and `/gm` retries the same exhaustive scan at every
|
|
92
|
+
* subsequent fence-opener line, which is quadratic in the number of unclosed openers.
|
|
93
|
+
*
|
|
94
|
+
* This scans each line once. `nextCloseLine` is precomputed per marker type via a single
|
|
95
|
+
* backward pass, so any opener's nearest closer (or "none exists") is an O(1) lookup rather than
|
|
96
|
+
* a fresh forward scan — the change that makes the whole function O(n) regardless of how many
|
|
97
|
+
* fences are opened and never closed.
|
|
98
|
+
*/
|
|
99
|
+
function maskFencedCodeBlocks(body, blocks) {
|
|
100
|
+
const lines = body.split('\n');
|
|
101
|
+
const lineCount = lines.length;
|
|
102
|
+
// nextCloseLine[marker][i] = the nearest index >= i that closes `marker`, or -1 if none exists
|
|
103
|
+
// at or after i. Built right-to-left so each entry is O(1) given the next one.
|
|
104
|
+
const nextCloseLine = {
|
|
105
|
+
'```': new Array(lineCount + 1).fill(-1),
|
|
106
|
+
'~~~': new Array(lineCount + 1).fill(-1),
|
|
107
|
+
};
|
|
108
|
+
for (let i = lineCount - 1; i >= 0; i--) {
|
|
109
|
+
nextCloseLine['```'][i] = isFenceCloseLine(lines[i], '```') ? i : nextCloseLine['```'][i + 1];
|
|
110
|
+
nextCloseLine['~~~'][i] = isFenceCloseLine(lines[i], '~~~') ? i : nextCloseLine['~~~'][i + 1];
|
|
111
|
+
}
|
|
112
|
+
const outLines = [];
|
|
113
|
+
let i = 0;
|
|
114
|
+
while (i < lineCount) {
|
|
115
|
+
const line = lines[i];
|
|
116
|
+
const marker = line.startsWith('```') ? '```' : line.startsWith('~~~') ? '~~~' : null;
|
|
117
|
+
// A closer can never be the very next line: the original pattern requires TWO separate `\n`
|
|
118
|
+
// matches between the opener and `\1` (one ending the opener's line, one immediately before
|
|
119
|
+
// the closer), so even zero-width content needs a line of its own between them.
|
|
120
|
+
const searchFrom = i + 2;
|
|
121
|
+
const closeIndex = marker && searchFrom < lineCount ? nextCloseLine[marker][searchFrom] : -1;
|
|
122
|
+
if (!marker || closeIndex === -1) {
|
|
123
|
+
outLines.push(line);
|
|
124
|
+
i++;
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
const content = lines.slice(i + 1, closeIndex).join('\n');
|
|
128
|
+
const idx = blocks.length;
|
|
129
|
+
blocks.push(content);
|
|
130
|
+
// Matches the replaced regex's `\n${...}\n` callback wrapping: the placeholder becomes its
|
|
131
|
+
// own blank-line-delimited chunk. (Any resulting difference in surrounding blank-line COUNT
|
|
132
|
+
// is immaterial -- collapseWhitespace normalizes runs of 3+ newlines down to one blank line
|
|
133
|
+
// before this ever reaches a caller.)
|
|
134
|
+
outLines.push('', `${BLOCK_PREFIX}${idx}${BLOCK_SUFFIX}`, '');
|
|
135
|
+
i = closeIndex + 1;
|
|
136
|
+
}
|
|
137
|
+
return outLines.join('\n');
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Mask fenced code blocks and inline code spans, capturing their *content*
|
|
141
|
+
* (not the raw fenced/backticked text) so `restore` re-inserts plain text —
|
|
142
|
+
* no fence markers, no language tag, no backticks.
|
|
143
|
+
*/
|
|
144
|
+
function maskCode(body) {
|
|
145
|
+
const blocks = [];
|
|
146
|
+
const inlines = [];
|
|
147
|
+
let masked = maskFencedCodeBlocks(body, blocks);
|
|
148
|
+
masked = masked.replace(/``(.+?)``|`([^`]+)`/g, (_match, double, single) => {
|
|
149
|
+
const idx = inlines.length;
|
|
150
|
+
inlines.push((double ?? single ?? '').trim());
|
|
151
|
+
return `${INLINE_PREFIX}${idx}${INLINE_SUFFIX}`;
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
masked,
|
|
155
|
+
restore: (s) => {
|
|
156
|
+
s = s.replace(INLINE_RESTORE_RE, (_match, i) => inlines[Number(i)]);
|
|
157
|
+
s = s.replace(BLOCK_RESTORE_RE, (_match, i) => blocks[Number(i)]);
|
|
158
|
+
return s;
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Remove balanced `{...}` groups (JSX expressions), including nested braces,
|
|
164
|
+
* in a single pass. Each removed top-level group collapses to one space so
|
|
165
|
+
* surrounding words don't merge.
|
|
166
|
+
*/
|
|
167
|
+
function stripBraceExpressions(text) {
|
|
168
|
+
let result = '';
|
|
169
|
+
let depth = 0;
|
|
170
|
+
for (const ch of text) {
|
|
171
|
+
if (ch === '{') {
|
|
172
|
+
if (depth === 0)
|
|
173
|
+
result += ' ';
|
|
174
|
+
depth++;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
if (ch === '}') {
|
|
178
|
+
if (depth > 0)
|
|
179
|
+
depth--;
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
if (depth === 0)
|
|
183
|
+
result += ch;
|
|
184
|
+
}
|
|
185
|
+
return result;
|
|
186
|
+
}
|
|
187
|
+
/** Strip common Markdown syntax, keeping the human-readable text. */
|
|
188
|
+
function stripMarkdownSyntax(text) {
|
|
189
|
+
return (text
|
|
190
|
+
// Headings: leading `#` markers
|
|
191
|
+
.replace(/^ {0,3}#{1,6}\s+/gm, '')
|
|
192
|
+
// Blockquotes: leading `>` markers (possibly nested). Each repetition
|
|
193
|
+
// of the outer `+` consumes a mandatory `>` first, so it can't loop on
|
|
194
|
+
// an empty match — linear, despite the nested-quantifier shape the
|
|
195
|
+
// linter's heuristic flags.
|
|
196
|
+
// eslint-disable-next-line security/detect-unsafe-regex
|
|
197
|
+
.replace(/^ {0,3}(?:>\s?)+/gm, '')
|
|
198
|
+
// Thematic breaks: a line of 3+ `-`, `*`, or `_` (optionally
|
|
199
|
+
// space-separated). The backreference (`\1`) pins every repetition to
|
|
200
|
+
// the same captured character, which the linter's heuristic doesn't
|
|
201
|
+
// model — same false-positive shape as above.
|
|
202
|
+
// eslint-disable-next-line security/detect-unsafe-regex
|
|
203
|
+
.replace(/^ {0,3}([-*_])(?:\s*\1){2,}\s*$/gm, '')
|
|
204
|
+
// List markers: bullet or ordered
|
|
205
|
+
.replace(/^(\s*)[-*+]\s+/gm, '$1')
|
|
206
|
+
.replace(/^(\s*)\d+[.)]\s+/gm, '$1')
|
|
207
|
+
// Images: keep alt text, drop the URL entirely
|
|
208
|
+
.replace(/!\[([^\]]*)\]\([^)]*\)/g, '$1')
|
|
209
|
+
// Links: keep the link text, drop the URL
|
|
210
|
+
.replace(/\[([^\]]*)\]\([^)]*\)/g, '$1')
|
|
211
|
+
// Strikethrough / bold / italic — longest markers first so `**` isn't
|
|
212
|
+
// consumed as two `*` matches
|
|
213
|
+
.replace(/~~([^~]+)~~/g, '$1')
|
|
214
|
+
.replace(/\*\*([^*]+)\*\*/g, '$1')
|
|
215
|
+
.replace(/__([^_]+)__/g, '$1')
|
|
216
|
+
.replace(/\*([^*]+)\*/g, '$1')
|
|
217
|
+
.replace(/\b_([^_]+)_\b/g, '$1'));
|
|
218
|
+
}
|
|
219
|
+
/** Trim each line, collapse runs of blank lines, and trim the whole result. Preserves paragraph breaks. */
|
|
220
|
+
function collapseWhitespace(text) {
|
|
221
|
+
return text
|
|
222
|
+
.split('\n')
|
|
223
|
+
.map((line) => line.replace(/[ \t]+/g, ' ').trim())
|
|
224
|
+
.join('\n')
|
|
225
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
226
|
+
.trim();
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Convert MDX/Markdown body content to plain prose text.
|
|
230
|
+
*
|
|
231
|
+
* See the module doc above for the full pipeline and why this exists as a
|
|
232
|
+
* distinct transform from `stripMdxImports`. In short: frontmatter, code
|
|
233
|
+
* fences, inline code, JSX tags/expressions, and Markdown syntax are all
|
|
234
|
+
* stripped down to their human-readable text — code content and link/image
|
|
235
|
+
* text are kept, everything else is discarded. Paired custom components
|
|
236
|
+
* lose only their tags; the prose between them survives.
|
|
237
|
+
*
|
|
238
|
+
* Output preserves paragraph breaks (blank lines) but is not further
|
|
239
|
+
* chunked, weighted, or field-selected — composing that into a search
|
|
240
|
+
* document is left to the caller, since that logic is where adopter search
|
|
241
|
+
* indexes genuinely diverge (see docs/adopter-migration.md).
|
|
242
|
+
*/
|
|
243
|
+
export function toPlainText(markdown) {
|
|
244
|
+
const { content } = matter(markdown);
|
|
245
|
+
const withoutImports = stripMdxImports(content);
|
|
246
|
+
const { masked, restore } = maskCode(withoutImports);
|
|
247
|
+
let result = masked;
|
|
248
|
+
result = result.replace(TAG_RE, ' ');
|
|
249
|
+
result = stripBraceExpressions(result);
|
|
250
|
+
result = stripMarkdownSyntax(result);
|
|
251
|
+
result = restore(result);
|
|
252
|
+
result = collapseWhitespace(result);
|
|
253
|
+
return result;
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=to-plain-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-plain-text.js","sourceRoot":"","sources":["../../src/ai/to-plain-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-components.d.ts","sourceRoot":"","sources":["../../src/ai/transform-components.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAiBtE;
|
|
1
|
+
{"version":3,"file":"transform-components.d.ts","sourceRoot":"","sources":["../../src/ai/transform-components.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAiBtE;AA0HD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAiE9F"}
|
|
@@ -42,6 +42,75 @@ const BLOCK_RESTORE_RE = /<<CODEBLOCK(\d+)>>/g;
|
|
|
42
42
|
const INLINE_PREFIX = '<<INLINECODE';
|
|
43
43
|
const INLINE_SUFFIX = '>>';
|
|
44
44
|
const INLINE_RESTORE_RE = /<<INLINECODE(\d+)>>/g;
|
|
45
|
+
/** True if `line` is a valid closing fence line for `marker` ("```" or "~~~"): the marker
|
|
46
|
+
* followed by nothing but whitespace through end of line — matching what `\1\s*$` required in
|
|
47
|
+
* the regex this replaced. */
|
|
48
|
+
function isFenceCloseLine(line, marker) {
|
|
49
|
+
return line.startsWith(marker) && /^\s*$/.test(line.slice(marker.length));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Mask fenced code blocks (` ``` `/`~~~`), capturing each block's raw text (fence lines
|
|
53
|
+
* included) exactly as `maskCodeBlocks` used to via `/^(```|~~~).*\n[\s\S]*?\n\1\s*$/gm`.
|
|
54
|
+
*
|
|
55
|
+
* A hand-rolled line scan, not that regex: it is a polynomial-ReDoS shape (measured ~9s on
|
|
56
|
+
* ~530KB of body text with many unclosed fence openers — an ordinary authoring accident, not a
|
|
57
|
+
* crafted payload) that CodeQL and three review rounds both missed elsewhere in this package
|
|
58
|
+
* (see `ai/to-plain-text.ts`'s identical fix). The lazy `[\s\S]*?` has no bound on how far it
|
|
59
|
+
* must scan looking for a closing `\1` that, for an unclosed fence, never arrives — it exhausts
|
|
60
|
+
* to the end of the string before giving up on that starting line, and `/gm` retries the same
|
|
61
|
+
* exhaustive scan at every subsequent fence-opener line.
|
|
62
|
+
*
|
|
63
|
+
* This scans each line once. `nextCloseLine` is precomputed per marker type via a single
|
|
64
|
+
* backward pass, so any opener's nearest closer (or "none exists") is an O(1) lookup instead of
|
|
65
|
+
* a fresh forward scan — the change that keeps the whole function O(n) regardless of how many
|
|
66
|
+
* fences are opened and never closed.
|
|
67
|
+
*
|
|
68
|
+
* One documented, harmless divergence from the replaced regex: `\s*` there is greedy over `\s`
|
|
69
|
+
* (which includes `\n`), so on a closer immediately followed by blank lines it could consume
|
|
70
|
+
* some of them into the match. This scan never does. Verified by fuzzing 8,000 random
|
|
71
|
+
* fence/marker combinations through this module's actual `applyComponentTransforms` pipeline:
|
|
72
|
+
* final output was byte-identical in 7,999/8,000 cases, and the one divergence was an extra
|
|
73
|
+
* blank line in a maximally adversarial nested-tag-plus-fence input, never a content change —
|
|
74
|
+
* `\s` is never itself matched by any component-tag pattern, so which side of a placeholder a
|
|
75
|
+
* run of blank lines lands on cannot affect what a transform sees or produces.
|
|
76
|
+
*/
|
|
77
|
+
function maskFencedCodeBlocks(body, blocks) {
|
|
78
|
+
const lines = body.split('\n');
|
|
79
|
+
const lineCount = lines.length;
|
|
80
|
+
// nextCloseLine[marker][i] = the nearest index >= i that closes `marker`, or -1 if none exists
|
|
81
|
+
// at or after i. Built right-to-left so each entry is O(1) given the next one.
|
|
82
|
+
const nextCloseLine = {
|
|
83
|
+
'```': new Array(lineCount + 1).fill(-1),
|
|
84
|
+
'~~~': new Array(lineCount + 1).fill(-1),
|
|
85
|
+
};
|
|
86
|
+
for (let i = lineCount - 1; i >= 0; i--) {
|
|
87
|
+
nextCloseLine['```'][i] = isFenceCloseLine(lines[i], '```') ? i : nextCloseLine['```'][i + 1];
|
|
88
|
+
nextCloseLine['~~~'][i] = isFenceCloseLine(lines[i], '~~~') ? i : nextCloseLine['~~~'][i + 1];
|
|
89
|
+
}
|
|
90
|
+
const outLines = [];
|
|
91
|
+
let i = 0;
|
|
92
|
+
while (i < lineCount) {
|
|
93
|
+
const line = lines[i];
|
|
94
|
+
const marker = line.startsWith('```') ? '```' : line.startsWith('~~~') ? '~~~' : null;
|
|
95
|
+
// A closer can never be the very next line: the original pattern requires TWO separate `\n`
|
|
96
|
+
// matches between the opener and `\1` (one ending the opener's line, one immediately before
|
|
97
|
+
// the closer), so even zero-width content needs a line of its own between them.
|
|
98
|
+
const searchFrom = i + 2;
|
|
99
|
+
const closeIndex = marker && searchFrom < lineCount ? nextCloseLine[marker][searchFrom] : -1;
|
|
100
|
+
if (!marker || closeIndex === -1) {
|
|
101
|
+
outLines.push(line);
|
|
102
|
+
i++;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
// Whole matched span (fence lines included), matching the replaced regex's own capture.
|
|
106
|
+
const block = lines.slice(i, closeIndex + 1).join('\n');
|
|
107
|
+
const idx = blocks.length;
|
|
108
|
+
blocks.push(block);
|
|
109
|
+
outLines.push(`${BLOCK_PREFIX}${idx}${BLOCK_SUFFIX}`);
|
|
110
|
+
i = closeIndex + 1;
|
|
111
|
+
}
|
|
112
|
+
return outLines.join('\n');
|
|
113
|
+
}
|
|
45
114
|
/**
|
|
46
115
|
* Mask fenced code blocks and inline code spans so component transforms
|
|
47
116
|
* don't touch them. Returns the masked string and a restore function.
|
|
@@ -50,11 +119,7 @@ function maskCodeBlocks(body) {
|
|
|
50
119
|
const blocks = [];
|
|
51
120
|
const inlines = [];
|
|
52
121
|
// 1. Mask fenced code blocks
|
|
53
|
-
let masked = body
|
|
54
|
-
const idx = blocks.length;
|
|
55
|
-
blocks.push(block);
|
|
56
|
-
return `${BLOCK_PREFIX}${idx}${BLOCK_SUFFIX}`;
|
|
57
|
-
});
|
|
122
|
+
let masked = maskFencedCodeBlocks(body, blocks);
|
|
58
123
|
// 2. Mask inline code spans (double-backtick first, then single-backtick)
|
|
59
124
|
masked = masked.replace(/``[^`]+``|`[^`]+`/g, (span) => {
|
|
60
125
|
const idx = inlines.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-components.js","sourceRoot":"","sources":["../../src/ai/transform-components.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,MAAM,KAAK,GAAmB,EAAE,CAAA;IAChC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAA;IAE7B,kFAAkF;IAClF,wDAAwD;IACxD,MAAM,SAAS,GAAG,uDAAuD,CAAA;IACzE,IAAI,KAA6B,CAAA;IAEjC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,uDAAuD;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;QACxD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,6FAA6F;AAC7F,MAAM,YAAY,GAAG,6BAA6B,CAAA;AAElD,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,gBAAgB,GAAG,qBAAqB,CAAA;AAE9C,MAAM,aAAa,GAAG,cAAc,CAAA;AACpC,MAAM,aAAa,GAAG,IAAI,CAAA;AAC1B,MAAM,iBAAiB,GAAG,sBAAsB,CAAA;AAEhD
|
|
1
|
+
{"version":3,"file":"transform-components.js","sourceRoot":"","sources":["../../src/ai/transform-components.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ import type { GetUserMetadataResponse, ListGroupsResponse, PermissionsResponse,
|
|
|
19
19
|
import type { ExternalGroupsResponse, InternalGroupsResponse, UpdateInternalGroupsResponse } from '../groups';
|
|
20
20
|
import type { UserInfoResponse } from '../user';
|
|
21
21
|
import type { AddEntryTypeApiResponse, CreateCollectionApiResponse, DeleteCollectionApiResponse, GetCollectionApiResponse, GetSchemaApiResponse, InvalidateSchemaCacheApiResponse, RemoveEntryTypeApiResponse, UpdateCollectionApiResponse, UpdateEntryTypeApiResponse, UpdateOrderApiResponse } from '../schema';
|
|
22
|
-
import type { AdminDeleteTaskResponse, AdminRetryTaskResponse, AdminStatusResponse, AdminTasksResponse, BranchHealthResponse, PurgeBranchDirResponse, RepairBranchDirResponse } from '../admin';
|
|
22
|
+
import type { AdminDeleteTaskResponse, AdminRetryTaskResponse, AdminStatusResponse, AdminTasksResponse, BranchHealthResponse, PurgeBranchDirResponse, RepairBranchDirResponse, RepairContentDuplicatesResponse } from '../admin';
|
|
23
23
|
/**
|
|
24
24
|
* Type utility to convert CanopyApiClient methods to Vitest mocks.
|
|
25
25
|
*/
|
|
@@ -208,6 +208,10 @@ export declare function mockPurgeBranchDirResponse(): PurgeBranchDirResponse;
|
|
|
208
208
|
* Create a RepairBranchDirResponse for testing
|
|
209
209
|
*/
|
|
210
210
|
export declare function mockRepairBranchDirResponse(): RepairBranchDirResponse;
|
|
211
|
+
/**
|
|
212
|
+
* Create a RepairContentDuplicatesResponse for testing
|
|
213
|
+
*/
|
|
214
|
+
export declare function mockRepairContentDuplicatesResponse(): RepairContentDuplicatesResponse;
|
|
211
215
|
/**
|
|
212
216
|
* Create a AdminStatusResponse for testing
|
|
213
217
|
*/
|