emdash-emit 0.1.13 → 0.1.15
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/CHANGELOG.md +108 -1
- package/README.md +235 -187
- package/dist/cli/commands/delete.d.ts.map +1 -1
- package/dist/cli/commands/delete.js +2 -0
- package/dist/cli/commands/delete.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +9 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/pull.d.ts +32 -0
- package/dist/cli/commands/pull.d.ts.map +1 -1
- package/dist/cli/commands/pull.js +108 -9
- package/dist/cli/commands/pull.js.map +1 -1
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +18 -0
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +15 -5
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/client/media.d.ts.map +1 -1
- package/dist/client/media.js +16 -5
- package/dist/client/media.js.map +1 -1
- package/dist/db/cache.d.ts +24 -5
- package/dist/db/cache.d.ts.map +1 -1
- package/dist/db/cache.js +308 -61
- package/dist/db/cache.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/sync-delete.d.ts.map +1 -1
- package/dist/mcp/tools/sync-delete.js +5 -0
- package/dist/mcp/tools/sync-delete.js.map +1 -1
- package/dist/mcp/tools/sync-doctor.d.ts.map +1 -1
- package/dist/mcp/tools/sync-doctor.js +12 -0
- package/dist/mcp/tools/sync-doctor.js.map +1 -1
- package/dist/mcp/tools/sync-pull.d.ts.map +1 -1
- package/dist/mcp/tools/sync-pull.js +49 -12
- package/dist/mcp/tools/sync-pull.js.map +1 -1
- package/dist/mcp/tools/sync-push.d.ts.map +1 -1
- package/dist/mcp/tools/sync-push.js +5 -0
- package/dist/mcp/tools/sync-push.js.map +1 -1
- package/dist/mcp/tools/sync-status.d.ts.map +1 -1
- package/dist/mcp/tools/sync-status.js +6 -2
- package/dist/mcp/tools/sync-status.js.map +1 -1
- package/dist/sync/conflicts.d.ts.map +1 -1
- package/dist/sync/conflicts.js +44 -0
- package/dist/sync/conflicts.js.map +1 -1
- package/dist/sync/delete.d.ts +3 -1
- package/dist/sync/delete.d.ts.map +1 -1
- package/dist/sync/delete.js +7 -20
- package/dist/sync/delete.js.map +1 -1
- package/dist/sync/diff.d.ts.map +1 -1
- package/dist/sync/diff.js +18 -2
- package/dist/sync/diff.js.map +1 -1
- package/dist/sync/doctor.d.ts +28 -1
- package/dist/sync/doctor.d.ts.map +1 -1
- package/dist/sync/doctor.js +393 -45
- package/dist/sync/doctor.js.map +1 -1
- package/dist/sync/guards.d.ts +45 -0
- package/dist/sync/guards.d.ts.map +1 -0
- package/dist/sync/guards.js +235 -0
- package/dist/sync/guards.js.map +1 -0
- package/dist/sync/media/body_scan.d.ts +15 -0
- package/dist/sync/media/body_scan.d.ts.map +1 -0
- package/dist/sync/media/body_scan.js +132 -0
- package/dist/sync/media/body_scan.js.map +1 -0
- package/dist/sync/media/companions.d.ts +20 -0
- package/dist/sync/media/companions.d.ts.map +1 -0
- package/dist/sync/media/companions.js +111 -0
- package/dist/sync/media/companions.js.map +1 -0
- package/dist/sync/media/index.d.ts +9 -0
- package/dist/sync/media/index.d.ts.map +1 -0
- package/dist/sync/media/index.js +9 -0
- package/dist/sync/media/index.js.map +1 -0
- package/dist/sync/media/mirror_item.d.ts +27 -0
- package/dist/sync/media/mirror_item.d.ts.map +1 -0
- package/dist/sync/media/mirror_item.js +207 -0
- package/dist/sync/media/mirror_item.js.map +1 -0
- package/dist/sync/media/naming_mirror.d.ts +36 -0
- package/dist/sync/media/naming_mirror.d.ts.map +1 -0
- package/dist/sync/media/naming_mirror.js +143 -0
- package/dist/sync/media/naming_mirror.js.map +1 -0
- package/dist/sync/media/pull_article.d.ts +37 -0
- package/dist/sync/media/pull_article.d.ts.map +1 -0
- package/dist/sync/media/pull_article.js +273 -0
- package/dist/sync/media/pull_article.js.map +1 -0
- package/dist/sync/media/pull_library.d.ts +12 -0
- package/dist/sync/media/pull_library.d.ts.map +1 -0
- package/dist/sync/media/pull_library.js +207 -0
- package/dist/sync/media/pull_library.js.map +1 -0
- package/dist/sync/media/remote_index.d.ts +18 -0
- package/dist/sync/media/remote_index.d.ts.map +1 -0
- package/dist/sync/media/remote_index.js +94 -0
- package/dist/sync/media/remote_index.js.map +1 -0
- package/dist/sync/media/types.d.ts +191 -0
- package/dist/sync/media/types.d.ts.map +1 -0
- package/dist/sync/media/types.js +11 -0
- package/dist/sync/media/types.js.map +1 -0
- package/dist/sync/media.d.ts +1 -74
- package/dist/sync/media.d.ts.map +1 -1
- package/dist/sync/media.js +1 -592
- package/dist/sync/media.js.map +1 -1
- package/dist/sync/merge.d.ts +11 -0
- package/dist/sync/merge.d.ts.map +1 -1
- package/dist/sync/merge.js +53 -6
- package/dist/sync/merge.js.map +1 -1
- package/dist/sync/orchestrator.d.ts +23 -0
- package/dist/sync/orchestrator.d.ts.map +1 -1
- package/dist/sync/orchestrator.js +85 -1
- package/dist/sync/orchestrator.js.map +1 -1
- package/dist/sync/preflight.d.ts +1 -1
- package/dist/sync/preflight.d.ts.map +1 -1
- package/dist/sync/preflight.js +127 -15
- package/dist/sync/preflight.js.map +1 -1
- package/dist/sync/pull.d.ts +21 -0
- package/dist/sync/pull.d.ts.map +1 -1
- package/dist/sync/pull.js +278 -17
- package/dist/sync/pull.js.map +1 -1
- package/dist/sync/push.d.ts +7 -0
- package/dist/sync/push.d.ts.map +1 -1
- package/dist/sync/push.js +135 -58
- package/dist/sync/push.js.map +1 -1
- package/dist/sync/status.d.ts +4 -0
- package/dist/sync/status.d.ts.map +1 -1
- package/dist/sync/status.js +68 -4
- package/dist/sync/status.js.map +1 -1
- package/dist/utils/config.d.ts +25 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +28 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +15 -4
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/media-body-refs.d.ts +81 -0
- package/dist/utils/media-body-refs.d.ts.map +1 -0
- package/dist/utils/media-body-refs.js +240 -0
- package/dist/utils/media-body-refs.js.map +1 -0
- package/dist/utils/media-refs.d.ts +44 -0
- package/dist/utils/media-refs.d.ts.map +1 -0
- package/dist/utils/media-refs.js +101 -0
- package/dist/utils/media-refs.js.map +1 -0
- package/dist/utils/naming.d.ts +31 -0
- package/dist/utils/naming.d.ts.map +1 -1
- package/dist/utils/naming.js +58 -0
- package/dist/utils/naming.js.map +1 -1
- package/package.json +1 -1
package/dist/sync/delete.d.ts
CHANGED
|
@@ -20,7 +20,8 @@ export declare class PublishedArticleDeletionForbiddenError extends Error {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Scans article
|
|
23
|
+
* Scans article markdown body for local or same-origin media references.
|
|
24
|
+
* Compatibility shim delegating to scanRawMediaReferences in utils/media-refs.ts.
|
|
24
25
|
*/
|
|
25
26
|
export declare function scanArticleMediaReferences(bodyMarkdown: string): string[];
|
|
26
27
|
export interface DeleteArticleOptions {
|
|
@@ -30,6 +31,7 @@ export interface DeleteArticleOptions {
|
|
|
30
31
|
id?: string;
|
|
31
32
|
collection?: string;
|
|
32
33
|
allowDeletePublished?: boolean;
|
|
34
|
+
discardLocalEdits?: boolean;
|
|
33
35
|
dryRun?: boolean;
|
|
34
36
|
origin?: string;
|
|
35
37
|
token?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/sync/delete.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,IAAI,iCAAiC;IACrD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,YAAY,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAWpD;CACF;AAED,qBAAa,sCAAuC,SAAQ,KAAK;IAC/D,SAAgB,IAAI,kCAAkC;IACtD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,YAAY,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAYpD;CACF;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/sync/delete.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,IAAI,iCAAiC;IACrD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,YAAY,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAWpD;CACF;AAED,qBAAa,sCAAuC,SAAQ,KAAK;IAC/D,SAAgB,IAAI,kCAAkC;IACtD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,YAAY,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAYpD;CACF;AAOD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzE;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA+M/F"}
|
package/dist/sync/delete.js
CHANGED
|
@@ -65,26 +65,13 @@ export class PublishedArticleDeletionForbiddenError extends Error {
|
|
|
65
65
|
/**
|
|
66
66
|
* Scans article Markdown body to detect referenced media files in media/.
|
|
67
67
|
*/
|
|
68
|
+
import { scanRawMediaReferences } from '../utils/media-refs.js';
|
|
69
|
+
/**
|
|
70
|
+
* Scans article markdown body for local or same-origin media references.
|
|
71
|
+
* Compatibility shim delegating to scanRawMediaReferences in utils/media-refs.ts.
|
|
72
|
+
*/
|
|
68
73
|
export function scanArticleMediaReferences(bodyMarkdown) {
|
|
69
|
-
|
|
70
|
-
// 1. Markdown image syntax: 
|
|
71
|
-
const mdRegex = /!\[.*?\]\(([^)\s]+)(?:\s+["'].*?["'])?\)/g;
|
|
72
|
-
let match;
|
|
73
|
-
while ((match = mdRegex.exec(bodyMarkdown)) !== null) {
|
|
74
|
-
const url = match[1].trim();
|
|
75
|
-
if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('data:')) {
|
|
76
|
-
references.add(url);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// 2. HTML <img> tags: <img src="...">
|
|
80
|
-
const htmlRegex = /<img[^>]+src=["']([^"']+)["']/gi;
|
|
81
|
-
while ((match = htmlRegex.exec(bodyMarkdown)) !== null) {
|
|
82
|
-
const url = match[1].trim();
|
|
83
|
-
if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('data:')) {
|
|
84
|
-
references.add(url);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return Array.from(references).sort();
|
|
74
|
+
return scanRawMediaReferences(bodyMarkdown);
|
|
88
75
|
}
|
|
89
76
|
/**
|
|
90
77
|
* Safely deletes an article with strict unpushed modification protection,
|
|
@@ -116,7 +103,7 @@ export async function deleteArticle(options) {
|
|
|
116
103
|
// Safety Guard 1: Unpushed Modifications Protection
|
|
117
104
|
const syncState = options.cache.getSyncState(articleId);
|
|
118
105
|
const currentHash = calculateHash(rawContent);
|
|
119
|
-
if (syncState && syncState.localHash !== currentHash) {
|
|
106
|
+
if (syncState && syncState.localHash !== currentHash && !options.discardLocalEdits) {
|
|
120
107
|
throw new UnpushedModificationsError({ filePath: targetFile, id: articleId });
|
|
121
108
|
}
|
|
122
109
|
// Safety Guard 2: Published Article Deletion Protection
|
package/dist/sync/delete.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/sync/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnC,IAAI,GAAG,6BAA6B,CAAC;IACrC,QAAQ,CAAS;IACjB,EAAE,CAAS;IACX,UAAU,CAAS;IAEnC,YAAY,OAAyC;QACnD,MAAM,GAAG,GAAG;YACV,wDAAwD,OAAO,CAAC,QAAQ,EAAE;YAC1E,6CAA6C;YAC7C,0FAA0F;SAC3F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,wEAAwE,CAAC;IAC7F,CAAC;CACF;AAED,MAAM,OAAO,sCAAuC,SAAQ,KAAK;IAC/C,IAAI,GAAG,8BAA8B,CAAC;IACtC,QAAQ,CAAS;IACjB,EAAE,CAAS;IACX,UAAU,CAAS;IAEnC,YAAY,OAAyC;QACnD,MAAM,GAAG,GAAG;YACV,kCAAkC,OAAO,CAAC,QAAQ,EAAE;YACpD,wEAAwE;YACxE,oGAAoG;SACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,GAAG,wCAAwC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU;YACb,kFAAkF,CAAC;IACvF,CAAC;CACF;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/sync/delete.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/sync/diff.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/sync/diff.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOpD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,qBAAqB,CAkBhG;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW,CAAC;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,qBAAqB,CAwHxB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3E,UAAU,CAiDZ"}
|
package/dist/sync/diff.js
CHANGED
|
@@ -24,7 +24,8 @@ import path from 'node:path';
|
|
|
24
24
|
import { diffPatch } from 'node-diff3';
|
|
25
25
|
import { extractUlidFromFilename } from '../utils/naming.js';
|
|
26
26
|
import { serializeMarkdown } from '../utils/frontmatter.js';
|
|
27
|
-
import { calculateHash } from './pull.js';
|
|
27
|
+
import { calculateHash, carriesDepthFreeMediaRef } from './pull.js';
|
|
28
|
+
import { localizeArticleMediaRefs } from '../utils/media-body-refs.js';
|
|
28
29
|
import { loadLocalTaxonomyCandidates } from './taxonomies.js';
|
|
29
30
|
/**
|
|
30
31
|
* Resolves a paired article ULID and workspace-relative file path from either `filePath` or `id`.
|
|
@@ -114,7 +115,22 @@ export function inspectArticleDiff(options) {
|
|
|
114
115
|
// preventing phantom diffs caused by taxonomy inline comments.
|
|
115
116
|
const candidates = loadLocalTaxonomyCandidates(options.workspaceRoot);
|
|
116
117
|
const baseFullMarkdown = serializeMarkdown(JSON.parse(baseSnapshot.frontmatterYaml), baseSnapshot.bodyMarkdown, candidates);
|
|
117
|
-
|
|
118
|
+
// The baseline is stored in the canonical remote spelling, but a workspace may spell mirrored images as local
|
|
119
|
+
// references (`../../media/<storageKey>`, or the older depth-free `media/<storageKey>`). Comparing those two
|
|
120
|
+
// spellings directly reports a change on every untouched article. Decide the spelling from the disk file
|
|
121
|
+
// itself: when localizing the baseline reproduces exactly what the disk carries, compare in that spelling so
|
|
122
|
+
// an untouched article reads clean. Otherwise keep the baseline canonical — which is what `sync_state.local_hash`
|
|
123
|
+
// records for a file that stores canonical URLs or whose asset was never mirrored locally.
|
|
124
|
+
const localizedBase = localizeArticleMediaRefs(baseFullMarkdown, {
|
|
125
|
+
workspaceRoot: options.workspaceRoot,
|
|
126
|
+
articleRelPath: targetFile,
|
|
127
|
+
fs,
|
|
128
|
+
preferLegacyRef: carriesDepthFreeMediaRef(localContent),
|
|
129
|
+
});
|
|
130
|
+
const baseForCompare = localizedBase === baseFullMarkdown || calculateHash(localizedBase) === currentHash
|
|
131
|
+
? localizedBase
|
|
132
|
+
: baseFullMarkdown;
|
|
133
|
+
const diffResult = computeContextDiff(baseForCompare, localContent, {
|
|
118
134
|
baseLabel: `base [rev: ${baseSnapshot.rev}]`,
|
|
119
135
|
localLabel: `local [${targetFile}]`,
|
|
120
136
|
});
|
package/dist/sync/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/sync/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAoB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/sync/diff.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/doctor.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface DoctorCheckResult {
|
|
|
6
6
|
name: string;
|
|
7
7
|
status: CheckStatus;
|
|
8
8
|
message: string;
|
|
9
|
+
suggestion?: string;
|
|
9
10
|
details?: Record<string, unknown> | Array<unknown>;
|
|
10
11
|
}
|
|
11
12
|
export interface DoctorReport {
|
|
@@ -24,14 +25,40 @@ export interface RunWorkspaceDoctorOptions {
|
|
|
24
25
|
profileOrigin?: string;
|
|
25
26
|
collection?: string;
|
|
26
27
|
strictMedia?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Probe the public media file route (`HEAD /_emdash/api/media/file/<storageKey>`) for body
|
|
30
|
+
* references that no local mirror, cache entry, or base snapshot can resolve. A reference that the
|
|
31
|
+
* origin still serves is downgraded from a missing-file warning to an informational note: the image
|
|
32
|
+
* renders in the browser even though Emit could not match it to a record, which is why `emit
|
|
33
|
+
* pull-media` mirrors nothing for it. A served key never proves the D1 record is absent — body URLs
|
|
34
|
+
* carry the R2 storageKey while `GET /_emdash/api/media/{id}` keys on the record id. Disabled by
|
|
35
|
+
* default so doctor stays offline.
|
|
36
|
+
*/
|
|
37
|
+
checkMediaUrls?: boolean;
|
|
38
|
+
/** Bearer token used by the remote library census (only read when `checkMediaLibrary` is set). */
|
|
39
|
+
token?: string;
|
|
40
|
+
refreshToken?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Walk the whole remote media library (`GET /_emdash/api/media`, cursor-paginated) and report how
|
|
43
|
+
* many records it holds, so a missing-file count can be read as coverage ("N of M mirrored") instead
|
|
44
|
+
* of being guessed. The list operation exposes no storageKey filter, so this census is the only way
|
|
45
|
+
* Emit can reach migrated assets whose storageKey differs from the record id. Requires credentials and
|
|
46
|
+
* is skipped silently when none are available, keeping plain `emit doctor` offline.
|
|
47
|
+
*/
|
|
48
|
+
checkMediaLibrary?: boolean;
|
|
49
|
+
/** Optional fetch override used by the file-route probe (tests inject stubs here). */
|
|
50
|
+
fetchFn?: typeof fetch;
|
|
27
51
|
}
|
|
28
52
|
export interface ScannedMediaReferences {
|
|
29
53
|
normalRefs: string[];
|
|
30
54
|
informationalRefs: string[];
|
|
55
|
+
/** References whose captured URL is malformed and therefore cannot name a real media asset. */
|
|
56
|
+
invalidRefs: string[];
|
|
31
57
|
}
|
|
32
58
|
/**
|
|
33
59
|
* Scans article markdown to separate standard body image references from
|
|
34
|
-
* informational references (code blocks, inline code, HTML comments,
|
|
60
|
+
* informational references (code blocks, inline code, HTML comments, opaque custom-block fences,
|
|
61
|
+
* or placeholder URLs) and from structurally invalid captures.
|
|
35
62
|
*/
|
|
36
63
|
export declare function scanArticleMediaDetailed(bodyMarkdown: string): ScannedMediaReferences;
|
|
37
64
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/sync/doctor.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/sync/doctor.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAqBrD,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IACjD,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,+FAA+F;IAC/F,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AA0CD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,sBAAsB,CA2FrF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,YAAY,CAAC,CAkmBvB"}
|