emdash-emit 0.1.16 → 0.1.18

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.
Files changed (188) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +1 -1
  3. package/dist/cli/commands/new.d.ts.map +1 -1
  4. package/dist/cli/commands/new.js +1 -13
  5. package/dist/cli/commands/new.js.map +1 -1
  6. package/dist/cli/commands/pull.d.ts +2 -10
  7. package/dist/cli/commands/pull.d.ts.map +1 -1
  8. package/dist/cli/commands/pull.js +12 -30
  9. package/dist/cli/commands/pull.js.map +1 -1
  10. package/dist/client/auth.d.ts.map +1 -1
  11. package/dist/client/auth.js +2 -1
  12. package/dist/client/auth.js.map +1 -1
  13. package/dist/client/endpoints.d.ts +19 -0
  14. package/dist/client/endpoints.d.ts.map +1 -0
  15. package/dist/client/endpoints.js +69 -0
  16. package/dist/client/endpoints.js.map +1 -0
  17. package/dist/client/http.d.ts +4 -2
  18. package/dist/client/http.d.ts.map +1 -1
  19. package/dist/client/http.js.map +1 -1
  20. package/dist/client/lock.d.ts.map +1 -1
  21. package/dist/client/lock.js +4 -3
  22. package/dist/client/lock.js.map +1 -1
  23. package/dist/client/mapper.d.ts.map +1 -1
  24. package/dist/client/mapper.js +5 -3
  25. package/dist/client/mapper.js.map +1 -1
  26. package/dist/client/media-id.d.ts +2 -0
  27. package/dist/client/media-id.d.ts.map +1 -0
  28. package/dist/client/media-id.js +23 -0
  29. package/dist/client/media-id.js.map +1 -0
  30. package/dist/client/media.d.ts +8 -7
  31. package/dist/client/media.d.ts.map +1 -1
  32. package/dist/client/media.js +58 -17
  33. package/dist/client/media.js.map +1 -1
  34. package/dist/db/baseline.d.ts +37 -0
  35. package/dist/db/baseline.d.ts.map +1 -0
  36. package/dist/db/baseline.js +74 -0
  37. package/dist/db/baseline.js.map +1 -0
  38. package/dist/db/cache.d.ts +3 -2
  39. package/dist/db/cache.d.ts.map +1 -1
  40. package/dist/db/cache.js +3 -2
  41. package/dist/db/cache.js.map +1 -1
  42. package/dist/index.d.ts +4 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +4 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/mcp/tools/sync-new.d.ts.map +1 -1
  47. package/dist/mcp/tools/sync-new.js +1 -13
  48. package/dist/mcp/tools/sync-new.js.map +1 -1
  49. package/dist/mcp/tools/sync-pull.d.ts.map +1 -1
  50. package/dist/mcp/tools/sync-pull.js +15 -2
  51. package/dist/mcp/tools/sync-pull.js.map +1 -1
  52. package/dist/presentation/article_report.d.ts +40 -0
  53. package/dist/presentation/article_report.d.ts.map +1 -0
  54. package/dist/presentation/article_report.js +80 -0
  55. package/dist/presentation/article_report.js.map +1 -0
  56. package/dist/sync/bylines.d.ts.map +1 -1
  57. package/dist/sync/bylines.js +2 -1
  58. package/dist/sync/bylines.js.map +1 -1
  59. package/dist/sync/conflicts.js +1 -1
  60. package/dist/sync/conflicts.js.map +1 -1
  61. package/dist/sync/delete.d.ts +0 -5
  62. package/dist/sync/delete.d.ts.map +1 -1
  63. package/dist/sync/delete.js +5 -11
  64. package/dist/sync/delete.js.map +1 -1
  65. package/dist/sync/diff.d.ts.map +1 -1
  66. package/dist/sync/diff.js +4 -5
  67. package/dist/sync/diff.js.map +1 -1
  68. package/dist/sync/doctor.d.ts.map +1 -1
  69. package/dist/sync/doctor.js +11 -14
  70. package/dist/sync/doctor.js.map +1 -1
  71. package/dist/sync/guards.d.ts +5 -0
  72. package/dist/sync/guards.d.ts.map +1 -1
  73. package/dist/sync/guards.js +61 -0
  74. package/dist/sync/guards.js.map +1 -1
  75. package/dist/sync/media/body_scan.d.ts.map +1 -1
  76. package/dist/sync/media/body_scan.js +9 -3
  77. package/dist/sync/media/body_scan.js.map +1 -1
  78. package/dist/sync/media/companions.d.ts +2 -9
  79. package/dist/sync/media/companions.d.ts.map +1 -1
  80. package/dist/sync/media/companions.js +5 -23
  81. package/dist/sync/media/companions.js.map +1 -1
  82. package/dist/sync/media/mirror_item.d.ts.map +1 -1
  83. package/dist/sync/media/mirror_item.js +33 -21
  84. package/dist/sync/media/mirror_item.js.map +1 -1
  85. package/dist/sync/media/pull_article.d.ts.map +1 -1
  86. package/dist/sync/media/pull_article.js +3 -2
  87. package/dist/sync/media/pull_article.js.map +1 -1
  88. package/dist/sync/media/pull_library.d.ts.map +1 -1
  89. package/dist/sync/media/pull_library.js +16 -11
  90. package/dist/sync/media/pull_library.js.map +1 -1
  91. package/dist/sync/media/remote_index.d.ts.map +1 -1
  92. package/dist/sync/media/remote_index.js +2 -1
  93. package/dist/sync/media/remote_index.js.map +1 -1
  94. package/dist/sync/media/types.d.ts +4 -3
  95. package/dist/sync/media/types.d.ts.map +1 -1
  96. package/dist/sync/media/types.js.map +1 -1
  97. package/dist/sync/new.d.ts +1 -12
  98. package/dist/sync/new.d.ts.map +1 -1
  99. package/dist/sync/new.js +0 -39
  100. package/dist/sync/new.js.map +1 -1
  101. package/dist/sync/preflight.d.ts +3 -2
  102. package/dist/sync/preflight.d.ts.map +1 -1
  103. package/dist/sync/preflight.js +19 -10
  104. package/dist/sync/preflight.js.map +1 -1
  105. package/dist/sync/pull.d.ts +6 -44
  106. package/dist/sync/pull.d.ts.map +1 -1
  107. package/dist/sync/pull.js +37 -145
  108. package/dist/sync/pull.js.map +1 -1
  109. package/dist/sync/push/commit.d.ts +60 -0
  110. package/dist/sync/push/commit.d.ts.map +1 -0
  111. package/dist/sync/push/commit.js +230 -0
  112. package/dist/sync/push/commit.js.map +1 -0
  113. package/dist/sync/push/guards.d.ts +33 -0
  114. package/dist/sync/push/guards.d.ts.map +1 -0
  115. package/dist/sync/push/guards.js +110 -0
  116. package/dist/sync/push/guards.js.map +1 -0
  117. package/dist/sync/push/index.d.ts +9 -0
  118. package/dist/sync/push/index.d.ts.map +1 -0
  119. package/dist/sync/push/index.js +350 -0
  120. package/dist/sync/push/index.js.map +1 -0
  121. package/dist/sync/push/media_stage.d.ts +41 -0
  122. package/dist/sync/push/media_stage.d.ts.map +1 -0
  123. package/dist/sync/push/media_stage.js +309 -0
  124. package/dist/sync/push/media_stage.js.map +1 -0
  125. package/dist/sync/push/merge_stage.d.ts +37 -0
  126. package/dist/sync/push/merge_stage.d.ts.map +1 -0
  127. package/dist/sync/push/merge_stage.js +243 -0
  128. package/dist/sync/push/merge_stage.js.map +1 -0
  129. package/dist/sync/push/preflight_stage.d.ts +6 -0
  130. package/dist/sync/push/preflight_stage.d.ts.map +1 -0
  131. package/dist/sync/push/preflight_stage.js +40 -0
  132. package/dist/sync/push/preflight_stage.js.map +1 -0
  133. package/dist/sync/push/tax_audit.d.ts +24 -0
  134. package/dist/sync/push/tax_audit.d.ts.map +1 -0
  135. package/dist/sync/push/tax_audit.js +70 -0
  136. package/dist/sync/push/tax_audit.js.map +1 -0
  137. package/dist/sync/push/taxonomy_plan.d.ts +36 -0
  138. package/dist/sync/push/taxonomy_plan.d.ts.map +1 -0
  139. package/dist/sync/push/taxonomy_plan.js +136 -0
  140. package/dist/sync/push/taxonomy_plan.js.map +1 -0
  141. package/dist/sync/push/transport.d.ts +10 -0
  142. package/dist/sync/push/transport.d.ts.map +1 -0
  143. package/dist/sync/push/transport.js +74 -0
  144. package/dist/sync/push/transport.js.map +1 -0
  145. package/dist/sync/push/types.d.ts +62 -0
  146. package/dist/sync/push/types.d.ts.map +1 -0
  147. package/dist/sync/push/types.js +23 -0
  148. package/dist/sync/push/types.js.map +1 -0
  149. package/dist/sync/push.d.ts +2 -57
  150. package/dist/sync/push.d.ts.map +1 -1
  151. package/dist/sync/push.js +2 -1137
  152. package/dist/sync/push.js.map +1 -1
  153. package/dist/sync/status.d.ts.map +1 -1
  154. package/dist/sync/status.js +5 -4
  155. package/dist/sync/status.js.map +1 -1
  156. package/dist/sync/taxonomies.d.ts.map +1 -1
  157. package/dist/sync/taxonomies.js +2 -1
  158. package/dist/sync/taxonomies.js.map +1 -1
  159. package/dist/sync/terms.d.ts.map +1 -1
  160. package/dist/sync/terms.js +2 -1
  161. package/dist/sync/terms.js.map +1 -1
  162. package/dist/sync/workspace/index.d.ts +41 -0
  163. package/dist/sync/workspace/index.d.ts.map +1 -0
  164. package/dist/sync/workspace/index.js +124 -0
  165. package/dist/sync/workspace/index.js.map +1 -0
  166. package/dist/utils/frontmatter.d.ts.map +1 -1
  167. package/dist/utils/frontmatter.js +1 -3
  168. package/dist/utils/frontmatter.js.map +1 -1
  169. package/dist/utils/media-body-refs.d.ts +24 -0
  170. package/dist/utils/media-body-refs.d.ts.map +1 -1
  171. package/dist/utils/media-body-refs.js +51 -0
  172. package/dist/utils/media-body-refs.js.map +1 -1
  173. package/dist/utils/media-companion.d.ts +13 -0
  174. package/dist/utils/media-companion.d.ts.map +1 -0
  175. package/dist/utils/media-companion.js +42 -0
  176. package/dist/utils/media-companion.js.map +1 -0
  177. package/dist/utils/media-id.d.ts +46 -0
  178. package/dist/utils/media-id.d.ts.map +1 -0
  179. package/dist/utils/media-id.js +84 -0
  180. package/dist/utils/media-id.js.map +1 -0
  181. package/dist/utils/naming.d.ts.map +1 -1
  182. package/dist/utils/naming.js +3 -2
  183. package/dist/utils/naming.js.map +1 -1
  184. package/dist/utils/ulid.d.ts +31 -0
  185. package/dist/utils/ulid.d.ts.map +1 -0
  186. package/dist/utils/ulid.js +65 -0
  187. package/dist/utils/ulid.js.map +1 -0
  188. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/sync/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/sync/new.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type Frontmatter, type ParsedMarkdown } from '../utils/frontmatter.js';
2
+ import type { MediaRecordId, StorageKey } from '../utils/media-id.js';
2
3
  import type { CacheDatabase } from '../db/cache.js';
3
4
  export interface PreflightOptions {
4
5
  allowPublish?: boolean;
@@ -9,8 +10,8 @@ export interface PreflightOptions {
9
10
  cache?: CacheDatabase;
10
11
  }
11
12
  export interface PromotedMediaMatch {
12
- mediaId: string;
13
- storageKey: string;
13
+ mediaId: MediaRecordId;
14
+ storageKey: StorageKey;
14
15
  url: string;
15
16
  promotedRelPath: string;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/sync/preflight.ts"],"names":[],"mappings":"AAqCA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uFAAuF;IACvF,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAgQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,eAAe,CAyUjB"}
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/sync/preflight.ts"],"names":[],"mappings":"AAqCA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uFAAuF;IACvF,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,eAAe,CAyUjB"}
@@ -28,16 +28,15 @@ import { MAX_MEDIA_UPLOAD_BYTES, resolveImageMimeType, toRootRelativeMediaUrl, }
28
28
  import { stripCodeBlocks, verifyOpaqueBlocksUntampered, detectUnsupportedMarkdownSyntax, } from '../client/portable-text.js';
29
29
  import { sanitizeTitleForFilename, } from '../utils/frontmatter.js';
30
30
  import { MEDIA_FILE_ROUTE_PREFIX, storageKeyFromMirrorRef } from '../utils/media-body-refs.js';
31
- import { storageKeyFromMediaMeta } from './media.js';
31
+ import { storageKeyFromMediaMeta } from '../utils/media-companion.js';
32
+ import { toMediaRecordId, toStorageKey } from '../utils/media-id.js';
33
+ import { CANONICAL_ULID_REGEX, CANONICAL_ULID_EXACT_REGEX } from '../utils/ulid.js';
32
34
  import { findClosestTaxonomySuggestions, getLocalTaxonomiesSummary, } from './taxonomies.js';
33
35
  const CONFLICT_MARKER_REGEX = /^<{7}\s|^={7}$|^>{7}\s/m;
34
36
  const OPAQUE_FENCE_LINE_REGEX = /^<!--ec:block .+ -->$/;
35
37
  const STANDALONE_IMAGE_LINE_REGEX = /^!\[([^\]]*)\]\(([^)]+)\)$/;
36
38
  const REMOTE_OR_DATA_URL_REGEX = /^(?:https?:\/\/|data:|\/_emdash\/api\/media\/file\/)/i;
37
39
  const ANY_LOCAL_IMAGE_REGEX = /!\[([^\]]*)\]\((?!https?:\/\/|data:|\/_emdash\/api\/media\/file\/)([^)]+)\)/g;
38
- // Canonical ULID shape (Crockford base32: 26 chars, excludes I and O). Casing is
39
- // case-insensitive here because parseMarkdown() normalizes local frontmatter to uppercase.
40
- const CANONICAL_ULID_REGEX = /^[0-9A-HJ-NP-Z]{26}$/i;
41
40
  function resolveDraftImagePath(articleFilePath, rawImagePath, workspaceRoot) {
42
41
  const root = workspaceRoot ? path.resolve(workspaceRoot) : '/__emit_virtual_workspace__';
43
42
  const articleAbs = path.isAbsolute(articleFilePath)
@@ -159,10 +158,14 @@ function findAlreadyPromotedMedia(filename, workspaceRoot, cache) {
159
158
  : '';
160
159
  if (!canonicalUrl)
161
160
  continue;
161
+ const mediaId = toMediaRecordId(meta.id);
162
+ const targetKey = toStorageKey(storageKey || path.basename(canonicalUrl));
163
+ if (!mediaId || !targetKey)
164
+ continue;
162
165
  const binaryName = `${file.replace(/\.yaml$/, '')}${ext || path.extname(metaFilename) || '.jpg'}`;
163
166
  return {
164
- mediaId: meta.id,
165
- storageKey: storageKey || path.basename(canonicalUrl),
167
+ mediaId,
168
+ storageKey: targetKey,
166
169
  url: canonicalUrl,
167
170
  promotedRelPath: path.posix.join('media', binaryName),
168
171
  };
@@ -221,7 +224,7 @@ function findPromotedMediaByStorageKey(storageKey, options) {
221
224
  if (state && state.mediaId && state.url) {
222
225
  return {
223
226
  mediaId: state.mediaId,
224
- storageKey: state.storageKey || storageKey,
227
+ storageKey: state.storageKey,
225
228
  url: state.url,
226
229
  promotedRelPath: state.markdownRef || state.workspacePath || `media/${storageKey}`,
227
230
  };
@@ -236,10 +239,16 @@ function findPromotedMediaByStorageKey(storageKey, options) {
236
239
  const meta = yaml.load(fs.readFileSync(companionPath, 'utf8'));
237
240
  if (!meta || typeof meta.id !== 'string')
238
241
  return null;
242
+ const mediaId = toMediaRecordId(meta.id);
243
+ if (!mediaId)
244
+ return null;
239
245
  const companionKey = storageKeyFromMediaMeta(meta) || storageKey;
246
+ const validKey = toStorageKey(companionKey);
247
+ if (!validKey)
248
+ return null;
240
249
  return {
241
- mediaId: meta.id.toUpperCase(),
242
- storageKey: companionKey,
250
+ mediaId,
251
+ storageKey: validKey,
243
252
  url: `${MEDIA_FILE_ROUTE_PREFIX}${companionKey}`,
244
253
  promotedRelPath: `media/${stem}`,
245
254
  };
@@ -297,7 +306,7 @@ export function runPreflightChecks(filePath, parsed, options) {
297
306
  if (!allowed.includes(term)) {
298
307
  // Term IDs are canonical 26-char ULIDs: uppercase Crockford base32 (excludes I, L, O, U).
299
308
  // Restricting to that alphabet prevents 26-character slugs from being mislabeled as IDs.
300
- const isTermId = /^[0-9A-HJ-NP-Z]{26}$/.test(term);
309
+ const isTermId = CANONICAL_ULID_EXACT_REGEX.test(term);
301
310
  const staleNote = isTermId
302
311
  ? ' (term ID was not found in local definitions and may be stale or deleted)'
303
312
  : '';
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/sync/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/sync/preflight.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import type { CacheDatabase } from '../db/cache.js';
2
2
  import { type MapperOptions } from '../client/mapper.js';
3
3
  import { type TaxonomyCandidates } from '../utils/frontmatter.js';
4
+ import { carriesDepthFreeMediaRef, shouldPreferLegacyRef } from '../utils/media-body-refs.js';
5
+ import { CONFLICTS_SUBDIR, calculateHash, findLocalFilesByUlid, isQuarantinedRelativePath, quarantineLocalCopy, resolveCanonicalArticlePath } from './workspace/index.js';
6
+ export { CONFLICTS_SUBDIR, calculateHash, findLocalFilesByUlid, isQuarantinedRelativePath, quarantineLocalCopy, resolveCanonicalArticlePath, carriesDepthFreeMediaRef, shouldPreferLegacyRef, };
4
7
  export interface PullOptions extends MapperOptions {
5
8
  workspaceRoot: string;
6
9
  cache: CacheDatabase;
@@ -53,17 +56,6 @@ export interface QuarantinedLocalCopy {
53
56
  /** Why the copy was preserved: no cache baseline existed, or content diverged from it. */
54
57
  reason: 'no-cache-baseline' | 'diverged-from-baseline';
55
58
  }
56
- /** Subdirectory (under a collection) reserved for preserved divergent local copies. */
57
- export declare const CONFLICTS_SUBDIR = "conflicts";
58
- /**
59
- * Detects a workspace-relative rescue-copy path (`<collection>/conflicts/<file>.md`).
60
- *
61
- * Canonical articles always live at `<collection>/draft|published/<file>.md`, so matching the
62
- * second path segment is sufficient and avoids false positives from a slug that merely contains
63
- * the word "conflicts". Used by the push guard (QUARANTINED_COPY_NOT_PUSHABLE) so a rescue copy
64
- * can never silently overwrite the canonical article it was preserved from.
65
- */
66
- export declare function isQuarantinedRelativePath(relPath: string): boolean;
67
59
  /**
68
60
  * Human/agent readable notice describing preserved local copies.
69
61
  * Returns an empty string when nothing was preserved.
@@ -87,28 +79,6 @@ export interface ListRemoteArticlesOptions {
87
79
  batchSize?: number;
88
80
  fetchFn?: typeof fetch;
89
81
  }
90
- /**
91
- * Calculates SHA-256 hash of a string.
92
- */
93
- export declare function calculateHash(content: string): string;
94
- /**
95
- * Finds all existing Markdown files in `<collection>/{draft,published}/` whose filename
96
- * contains the given 26-character ULID. Used to preserve date prefixes and clean up
97
- * stale duplicate files when pulling an uncached article.
98
- */
99
- export declare function findLocalFilesByUlid(workspaceRoot: string, collection: string, id: string): string[];
100
- /**
101
- * Reports whether a Markdown document spells its mirrored images with the depth-free `media/<storageKey>` form.
102
- * That spelling is what a workspace built before article-relative refs carried on disk, and `sync_state.local_hash`
103
- * records exactly those bytes — re-spelling an untouched file would report a media rewrite nobody made. Once a
104
- * document carries the article-relative form (or no local ref at all), the article-relative spelling takes over.
105
- */
106
- export declare function carriesDepthFreeMediaRef(content: string): boolean;
107
- /**
108
- * Reports whether any local copy of an article still carries the depth-free spelling, deciding which form a
109
- * re-pull must reproduce. A genuinely new article has no local copy, so it gets the article-relative form.
110
- */
111
- export declare function shouldPreferLegacyRef(workspaceRoot: string, existingRelPaths: string[]): boolean;
112
82
  /**
113
83
  * Preserves a local Markdown copy verbatim under `<collection>/conflicts/` before Emit
114
84
  * overwrites or removes the original path. Used to guarantee that no divergent local
@@ -117,18 +87,10 @@ export declare function shouldPreferLegacyRef(workspaceRoot: string, existingRel
117
87
  * Returns the relative path of the preserved copy, or null when preservation failed.
118
88
  */
119
89
  /**
120
- * Resolves canonical relative path for an article symmetrically between
121
- * batch fast-path and full pull (EMIT-005 / R7).
90
+ * Resolves the canonical article title from remote data symmetrically across
91
+ * fast-path and full-pull (EMIT-005 / v0.1.14 backlog §1).
122
92
  */
123
- export declare function resolveCanonicalArticlePath(collection: string, status: string, id: string, title: string, dates: {
124
- publishedAt?: string | null;
125
- createdAt?: string | null;
126
- updatedAt?: string | null;
127
- }, existingPrefix?: string | null): string;
128
- export declare function quarantineLocalCopy(workspaceRoot: string, collection: string, sourceRelPath: string, content: string, options?: {
129
- isForce?: boolean;
130
- existingCopyHash?: string | null;
131
- }): string | null;
93
+ export declare function extractCanonicalRemoteTitle(rawObj: Record<string, unknown>, fallbackSlug?: string): string;
132
94
  /**
133
95
  * Discovers the server's maximum allowed limit for content list queries from /_emdash/api/openapi.json.
134
96
  * Defaults to 100 if openapi.json cannot be fetched or parsed.
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/sync/pull.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI7E,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAQjC,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8GAA8G;IAC9G,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0GAA0G;IAC1G,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gHAAgH;IAChH,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0FAA0F;IAC1F,MAAM,EAAE,mBAAmB,GAAG,wBAAwB,CAAC;CACxD;AAED,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAE5C;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOlE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,oBAAoB,EAAE,GAAG,MAAM,CASnF;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,MAAM,EAAE,CAiBV;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CASjE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO,CAWhG;AAED;;;;;;GAMG;AACH;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IACL,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,EACD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,MAAM,CAIR;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GACA,MAAM,GAAG,IAAI,CAuCf;AAuDD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BlB;AAyGD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAe9B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA0pBrB"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/sync/pull.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAK7E,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAGL,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,GACtB,CAAC;AAMF,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8GAA8G;IAC9G,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0GAA0G;IAC1G,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gHAAgH;IAChH,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0FAA0F;IAC1F,MAAM,EAAE,mBAAmB,GAAG,wBAAwB,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,oBAAoB,EAAE,GAAG,MAAM,CASnF;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED;;;;;;GAMG;AACH;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAQR;AAuDD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BlB;AAyGD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAe9B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA8pBrB"}
package/dist/sync/pull.js CHANGED
@@ -21,36 +21,20 @@
21
21
  */
22
22
  import fs from 'node:fs';
23
23
  import path from 'node:path';
24
- import crypto from 'node:crypto';
24
+ import { createBaseSnapshot } from '../db/baseline.js';
25
25
  import { apiResponseToLocal } from '../client/mapper.js';
26
26
  import { ApiError } from '../client/error.js';
27
27
  import { createAuthedFetch } from '../client/http.js';
28
- import { unwrapEnvelope, extractRev, normalizeRev } from '../client/api.js';
29
- import { computeArticleRelativePath, extractDatePrefixFromPath, parseMarkdown, serializeMarkdown, lenientRepairMarkdownFrontmatter, } from '../utils/frontmatter.js';
30
- import { extractUlidFromFilename } from '../utils/naming.js';
31
- import { isLocalMediaRef, localizeArticleMediaRefs } from '../utils/media-body-refs.js';
28
+ import { unwrapEnvelope, unwrapItem, extractRev, normalizeRev } from '../client/api.js';
29
+ import { articleContentEndpoint, openApiEndpoint } from '../client/endpoints.js';
30
+ import { extractDatePrefixFromPath, parseMarkdown, serializeMarkdown, lenientRepairMarkdownFrontmatter, } from '../utils/frontmatter.js';
31
+ import { localizeArticleMediaRefs, carriesDepthFreeMediaRef, shouldPreferLegacyRef, } from '../utils/media-body-refs.js';
32
+ import { CONFLICTS_SUBDIR, calculateHash, findLocalFilesByUlid, isQuarantinedRelativePath, quarantineLocalCopy, resolveCanonicalArticlePath, } from './workspace/index.js';
33
+ export { CONFLICTS_SUBDIR, calculateHash, findLocalFilesByUlid, isQuarantinedRelativePath, quarantineLocalCopy, resolveCanonicalArticlePath, carriesDepthFreeMediaRef, shouldPreferLegacyRef, };
32
34
  import { loadLocalTaxonomyCandidates } from './taxonomies.js';
33
35
  import { syncRemoteBylines } from './bylines.js';
34
36
  import { updateConfigSyncedVersion } from '../utils/config.js';
35
37
  import { fetchAssignedTerms as fetchAssignedTermsShared, computeTaxonomyHash } from './terms.js';
36
- /** Subdirectory (under a collection) reserved for preserved divergent local copies. */
37
- export const CONFLICTS_SUBDIR = 'conflicts';
38
- /**
39
- * Detects a workspace-relative rescue-copy path (`<collection>/conflicts/<file>.md`).
40
- *
41
- * Canonical articles always live at `<collection>/draft|published/<file>.md`, so matching the
42
- * second path segment is sufficient and avoids false positives from a slug that merely contains
43
- * the word "conflicts". Used by the push guard (QUARANTINED_COPY_NOT_PUSHABLE) so a rescue copy
44
- * can never silently overwrite the canonical article it was preserved from.
45
- */
46
- export function isQuarantinedRelativePath(relPath) {
47
- const segments = relPath
48
- .split(path.sep)
49
- .join('/')
50
- .split('/')
51
- .filter((seg) => seg.length > 0);
52
- return segments.length >= 3 && segments[1] === CONFLICTS_SUBDIR;
53
- }
54
38
  /**
55
39
  * Human/agent readable notice describing preserved local copies.
56
40
  * Returns an empty string when nothing was preserved.
@@ -66,73 +50,6 @@ export function formatQuarantineNotice(quarantined) {
66
50
  ];
67
51
  return lines.join('\n');
68
52
  }
69
- /**
70
- * Calculates SHA-256 hash of a string.
71
- */
72
- export function calculateHash(content) {
73
- return crypto.createHash('sha256').update(content, 'utf8').digest('hex');
74
- }
75
- /**
76
- * Finds all existing Markdown files in `<collection>/{draft,published}/` whose filename
77
- * contains the given 26-character ULID. Used to preserve date prefixes and clean up
78
- * stale duplicate files when pulling an uncached article.
79
- */
80
- export function findLocalFilesByUlid(workspaceRoot, collection, id) {
81
- const matches = [];
82
- for (const sub of ['draft', 'published']) {
83
- const subDir = path.join(workspaceRoot, collection, sub);
84
- if (!fs.existsSync(subDir))
85
- continue;
86
- try {
87
- for (const file of fs.readdirSync(subDir)) {
88
- if (!file.endsWith('.md'))
89
- continue;
90
- if (extractUlidFromFilename(file) === id) {
91
- matches.push(path.join(collection, sub, file));
92
- }
93
- }
94
- }
95
- catch {
96
- // Ignore directory read errors
97
- }
98
- }
99
- return matches;
100
- }
101
- /**
102
- * Reports whether a Markdown document spells its mirrored images with the depth-free `media/<storageKey>` form.
103
- * That spelling is what a workspace built before article-relative refs carried on disk, and `sync_state.local_hash`
104
- * records exactly those bytes — re-spelling an untouched file would report a media rewrite nobody made. Once a
105
- * document carries the article-relative form (or no local ref at all), the article-relative spelling takes over.
106
- */
107
- export function carriesDepthFreeMediaRef(content) {
108
- for (const rawLine of content.split('\n')) {
109
- const match = rawLine.trim().match(/^!\[([^\]]*)\]\(([^)]+)\)$/);
110
- if (!match)
111
- continue;
112
- const ref = match[2].trim();
113
- // A depth-free `media/...` reference is the legacy spelling; anything carrying `../` already migrated.
114
- if (isLocalMediaRef(ref) && ref.startsWith('media/'))
115
- return true;
116
- }
117
- return false;
118
- }
119
- /**
120
- * Reports whether any local copy of an article still carries the depth-free spelling, deciding which form a
121
- * re-pull must reproduce. A genuinely new article has no local copy, so it gets the article-relative form.
122
- */
123
- export function shouldPreferLegacyRef(workspaceRoot, existingRelPaths) {
124
- for (const relPath of existingRelPaths) {
125
- try {
126
- if (carriesDepthFreeMediaRef(fs.readFileSync(path.join(workspaceRoot, relPath), 'utf8'))) {
127
- return true;
128
- }
129
- }
130
- catch {
131
- // Ignore unreadable files
132
- }
133
- }
134
- return false;
135
- }
136
53
  /**
137
54
  * Preserves a local Markdown copy verbatim under `<collection>/conflicts/` before Emit
138
55
  * overwrites or removes the original path. Used to guarantee that no divergent local
@@ -141,45 +58,19 @@ export function shouldPreferLegacyRef(workspaceRoot, existingRelPaths) {
141
58
  * Returns the relative path of the preserved copy, or null when preservation failed.
142
59
  */
143
60
  /**
144
- * Resolves canonical relative path for an article symmetrically between
145
- * batch fast-path and full pull (EMIT-005 / R7).
61
+ * Resolves the canonical article title from remote data symmetrically across
62
+ * fast-path and full-pull (EMIT-005 / v0.1.14 backlog §1).
146
63
  */
147
- export function resolveCanonicalArticlePath(collection, status, id, title, dates, existingPrefix) {
148
- const dateInput = dates.publishedAt || existingPrefix || dates.createdAt || dates.updatedAt || null;
149
- return computeArticleRelativePath(collection, status, id, title, dateInput);
150
- }
151
- export function quarantineLocalCopy(workspaceRoot, collection, sourceRelPath, content, options) {
152
- const conflictsDir = path.join(workspaceRoot, collection, CONFLICTS_SUBDIR);
153
- const baseName = path.basename(sourceRelPath).replace(/\.md$/i, '');
154
- const suffixExt = options?.isForce ? '.local-dropped.md' : '.conflict.md';
155
- let quarantineRel = path.join(collection, CONFLICTS_SUBDIR, `${baseName}${suffixExt}`);
156
- const quarantineFull = path.join(workspaceRoot, quarantineRel);
157
- try {
158
- fs.mkdirSync(conflictsDir, { recursive: true });
159
- // Deduplication check: if canonical conflict file exists and is unedited, overwrite without incrementing
160
- if (!options?.isForce && fs.existsSync(quarantineFull)) {
161
- const existingDiskHash = calculateHash(fs.readFileSync(quarantineFull, 'utf8'));
162
- if ((options?.existingCopyHash && existingDiskHash === options.existingCopyHash) ||
163
- existingDiskHash === calculateHash(content)) {
164
- fs.writeFileSync(quarantineFull, content, 'utf8');
165
- return quarantineRel;
166
- }
167
- }
168
- let suffix = 2;
169
- while (fs.existsSync(path.join(workspaceRoot, quarantineRel))) {
170
- quarantineRel = path.join(collection, CONFLICTS_SUBDIR, options?.isForce
171
- ? `${baseName}.local-dropped-${suffix}.md`
172
- : `${baseName}.conflict-${suffix}.md`);
173
- suffix += 1;
174
- if (suffix > 100)
175
- return null;
176
- }
177
- fs.writeFileSync(path.join(workspaceRoot, quarantineRel), content, 'utf8');
178
- return quarantineRel;
179
- }
180
- catch {
181
- return null;
182
- }
64
+ export function extractCanonicalRemoteTitle(rawObj, fallbackSlug) {
65
+ const item = unwrapItem(rawObj);
66
+ const data = (item.data || {}) || {};
67
+ const rawTitle = String(data.title || item.title || '').trim();
68
+ if (rawTitle)
69
+ return rawTitle;
70
+ const rawSlug = String(item.slug || fallbackSlug || '').trim();
71
+ if (rawSlug)
72
+ return rawSlug;
73
+ return 'Untitled';
183
74
  }
184
75
  /**
185
76
  * Discovers local files for this article that are about to be overwritten or unlinked, and
@@ -226,7 +117,7 @@ function quarantineDivergentLocalCopies(options, collection, localRelPaths, base
226
117
  export async function getRemoteMaxBatchLimit(options) {
227
118
  const fetchFn = options.fetchFn || fetch;
228
119
  try {
229
- const url = new URL('/_emdash/api/openapi.json', options.origin).toString();
120
+ const url = openApiEndpoint(options.origin);
230
121
  const headers = { Accept: 'application/json' };
231
122
  if (options.token) {
232
123
  headers.Authorization = `Bearer ${options.token}`;
@@ -263,7 +154,7 @@ async function fetchStatusArticles(collection, status, options, serverMaxLimit)
263
154
  while (items.length < targetTotal) {
264
155
  const remaining = targetTotal - items.length;
265
156
  const currentBatch = Math.min(remaining, batchLimit);
266
- const url = new URL(`/_emdash/api/content/${collection}`, options.origin);
157
+ const url = new URL(articleContentEndpoint(options.origin, collection));
267
158
  url.searchParams.set('status', status);
268
159
  url.searchParams.set('limit', String(currentBatch));
269
160
  if (cursor) {
@@ -451,8 +342,8 @@ export async function pullArticle(collection, id, options) {
451
342
  const currentDiskHash = calculateHash(currentDiskContent);
452
343
  // Check if file path matches current naming standard
453
344
  const existingPrefix = extractDatePrefixFromPath(existingSync.localFilePath);
454
- const rawData = (rawObj.data || rawObj.item || {}) || {};
455
- const rawTitle = String(rawData.title || rawObj.title || item.title || rawObj.slug || item.slug || '');
345
+ const fallbackSlug = String(item.slug || existingSync.slug || '');
346
+ const rawTitle = extractCanonicalRemoteTitle(rawObj, fallbackSlug);
456
347
  const targetStatus = String(rawObj.status || item.status || 'draft');
457
348
  const expectedRelPath = resolveCanonicalArticlePath(collection, targetStatus, id, rawTitle, {
458
349
  publishedAt: rawObj.publishedAt || item.publishedAt || null,
@@ -597,14 +488,13 @@ export async function pullArticle(collection, id, options) {
597
488
  const remoteDiskHash = calculateHash(localizeDiskMarkdown(remoteCanonMarkdown, existingSync.localFilePath, true));
598
489
  const existingBase = options.cache.getBaseSnapshot(id);
599
490
  if (!(categoriesTerms === null && tagsTerms === null && existingBase)) {
600
- options.cache.saveBaseSnapshot({
491
+ options.cache.saveBaseSnapshot(createBaseSnapshot({
601
492
  id,
602
493
  rev: remoteRev,
603
494
  bodyMarkdown: remoteLocal.body,
604
- frontmatterYaml: JSON.stringify(remoteLocal.frontmatter),
495
+ frontmatter: remoteLocal.frontmatter,
605
496
  hash: remoteCanonHash,
606
- savedAt: Math.floor(Date.now() / 1000),
607
- });
497
+ }));
608
498
  }
609
499
  options.cache.saveSyncState({
610
500
  id,
@@ -650,7 +540,7 @@ export async function pullArticle(collection, id, options) {
650
540
  }
651
541
  // 2. Fetch raw item if not passed in options
652
542
  if (!rawItem) {
653
- const url = new URL(`/_emdash/api/content/${collection}/${id}`, options.origin).toString();
543
+ const url = articleContentEndpoint(options.origin, collection, id);
654
544
  const res = await fetchFn(url, {
655
545
  method: 'GET',
656
546
  headers: {
@@ -780,10 +670,13 @@ export async function pullArticle(collection, id, options) {
780
670
  : preferredDiskMatch
781
671
  ? extractDatePrefixFromPath(preferredDiskMatch)
782
672
  : null;
783
- const relPath = resolveCanonicalArticlePath(frontmatter.collection, frontmatter.status, frontmatter.id, frontmatter.title || frontmatter.slug, {
784
- publishedAt: frontmatter.publishedAt || rawItem.publishedAt || null,
785
- createdAt: rawItem.createdAt || null,
786
- updatedAt: rawItem.updatedAt || null,
673
+ const canonicalTitle = rawItem
674
+ ? extractCanonicalRemoteTitle(rawItem, frontmatter.slug)
675
+ : frontmatter.title || frontmatter.slug;
676
+ const relPath = resolveCanonicalArticlePath(frontmatter.collection, frontmatter.status, frontmatter.id, canonicalTitle, {
677
+ publishedAt: frontmatter.publishedAt || rawItem?.publishedAt || null,
678
+ createdAt: rawItem?.createdAt || null,
679
+ updatedAt: rawItem?.updatedAt || null,
787
680
  }, existingPrefix);
788
681
  // Localizing needs the depth of the path the article is about to occupy, so it runs after `relPath` is
789
682
  // resolved. A file that already sits on disk in the depth-free legacy spelling keeps that spelling; a fresh
@@ -817,14 +710,13 @@ export async function pullArticle(collection, id, options) {
817
710
  fs.mkdirSync(path.dirname(fullFilePath), { recursive: true });
818
711
  fs.writeFileSync(fullFilePath, markdownContent, 'utf8');
819
712
  // Update Base snapshot in cache
820
- options.cache.saveBaseSnapshot({
713
+ options.cache.saveBaseSnapshot(createBaseSnapshot({
821
714
  id: frontmatter.id,
822
715
  rev,
823
716
  bodyMarkdown: body,
824
- frontmatterYaml: JSON.stringify(frontmatter),
717
+ frontmatter,
825
718
  hash: contentHash,
826
- savedAt: Math.floor(Date.now() / 1000),
827
- });
719
+ }));
828
720
  // Update sync state with explicit conflict pending preservation
829
721
  let conflictInfo = {};
830
722
  // Take the most recently quarantined divergent copy: `quarantineDivergentLocalCopies` walks