emdash-emit 0.1.14 → 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.
Files changed (133) hide show
  1. package/CHANGELOG.md +77 -1
  2. package/README.md +235 -187
  3. package/dist/cli/commands/doctor.d.ts.map +1 -1
  4. package/dist/cli/commands/doctor.js +6 -0
  5. package/dist/cli/commands/doctor.js.map +1 -1
  6. package/dist/cli/commands/pull.d.ts +32 -0
  7. package/dist/cli/commands/pull.d.ts.map +1 -1
  8. package/dist/cli/commands/pull.js +108 -9
  9. package/dist/cli/commands/pull.js.map +1 -1
  10. package/dist/cli/commands/push.d.ts.map +1 -1
  11. package/dist/cli/commands/push.js +18 -0
  12. package/dist/cli/commands/push.js.map +1 -1
  13. package/dist/cli/commands/status.d.ts.map +1 -1
  14. package/dist/cli/commands/status.js +15 -5
  15. package/dist/cli/commands/status.js.map +1 -1
  16. package/dist/client/media.d.ts.map +1 -1
  17. package/dist/client/media.js +16 -5
  18. package/dist/client/media.js.map +1 -1
  19. package/dist/db/cache.d.ts +19 -4
  20. package/dist/db/cache.d.ts.map +1 -1
  21. package/dist/db/cache.js +127 -16
  22. package/dist/db/cache.js.map +1 -1
  23. package/dist/mcp/server.d.ts.map +1 -1
  24. package/dist/mcp/server.js +5 -3
  25. package/dist/mcp/server.js.map +1 -1
  26. package/dist/mcp/tools/sync-doctor.d.ts.map +1 -1
  27. package/dist/mcp/tools/sync-doctor.js +12 -0
  28. package/dist/mcp/tools/sync-doctor.js.map +1 -1
  29. package/dist/mcp/tools/sync-pull.d.ts.map +1 -1
  30. package/dist/mcp/tools/sync-pull.js +49 -12
  31. package/dist/mcp/tools/sync-pull.js.map +1 -1
  32. package/dist/mcp/tools/sync-push.d.ts.map +1 -1
  33. package/dist/mcp/tools/sync-push.js +5 -0
  34. package/dist/mcp/tools/sync-push.js.map +1 -1
  35. package/dist/mcp/tools/sync-status.d.ts.map +1 -1
  36. package/dist/mcp/tools/sync-status.js +6 -2
  37. package/dist/mcp/tools/sync-status.js.map +1 -1
  38. package/dist/sync/delete.d.ts +2 -1
  39. package/dist/sync/delete.d.ts.map +1 -1
  40. package/dist/sync/delete.js +6 -19
  41. package/dist/sync/delete.js.map +1 -1
  42. package/dist/sync/diff.d.ts.map +1 -1
  43. package/dist/sync/diff.js +18 -2
  44. package/dist/sync/diff.js.map +1 -1
  45. package/dist/sync/doctor.d.ts +27 -1
  46. package/dist/sync/doctor.d.ts.map +1 -1
  47. package/dist/sync/doctor.js +309 -26
  48. package/dist/sync/doctor.js.map +1 -1
  49. package/dist/sync/guards.d.ts +45 -0
  50. package/dist/sync/guards.d.ts.map +1 -0
  51. package/dist/sync/guards.js +235 -0
  52. package/dist/sync/guards.js.map +1 -0
  53. package/dist/sync/media/body_scan.d.ts +15 -0
  54. package/dist/sync/media/body_scan.d.ts.map +1 -0
  55. package/dist/sync/media/body_scan.js +132 -0
  56. package/dist/sync/media/body_scan.js.map +1 -0
  57. package/dist/sync/media/companions.d.ts +20 -0
  58. package/dist/sync/media/companions.d.ts.map +1 -0
  59. package/dist/sync/media/companions.js +111 -0
  60. package/dist/sync/media/companions.js.map +1 -0
  61. package/dist/sync/media/index.d.ts +9 -0
  62. package/dist/sync/media/index.d.ts.map +1 -0
  63. package/dist/sync/media/index.js +9 -0
  64. package/dist/sync/media/index.js.map +1 -0
  65. package/dist/sync/media/mirror_item.d.ts +27 -0
  66. package/dist/sync/media/mirror_item.d.ts.map +1 -0
  67. package/dist/sync/media/mirror_item.js +207 -0
  68. package/dist/sync/media/mirror_item.js.map +1 -0
  69. package/dist/sync/media/naming_mirror.d.ts +36 -0
  70. package/dist/sync/media/naming_mirror.d.ts.map +1 -0
  71. package/dist/sync/media/naming_mirror.js +143 -0
  72. package/dist/sync/media/naming_mirror.js.map +1 -0
  73. package/dist/sync/media/pull_article.d.ts +37 -0
  74. package/dist/sync/media/pull_article.d.ts.map +1 -0
  75. package/dist/sync/media/pull_article.js +273 -0
  76. package/dist/sync/media/pull_article.js.map +1 -0
  77. package/dist/sync/media/pull_library.d.ts +12 -0
  78. package/dist/sync/media/pull_library.d.ts.map +1 -0
  79. package/dist/sync/media/pull_library.js +207 -0
  80. package/dist/sync/media/pull_library.js.map +1 -0
  81. package/dist/sync/media/remote_index.d.ts +18 -0
  82. package/dist/sync/media/remote_index.d.ts.map +1 -0
  83. package/dist/sync/media/remote_index.js +94 -0
  84. package/dist/sync/media/remote_index.js.map +1 -0
  85. package/dist/sync/media/types.d.ts +191 -0
  86. package/dist/sync/media/types.d.ts.map +1 -0
  87. package/dist/sync/media/types.js +11 -0
  88. package/dist/sync/media/types.js.map +1 -0
  89. package/dist/sync/media.d.ts +1 -74
  90. package/dist/sync/media.d.ts.map +1 -1
  91. package/dist/sync/media.js +1 -592
  92. package/dist/sync/media.js.map +1 -1
  93. package/dist/sync/orchestrator.d.ts +23 -0
  94. package/dist/sync/orchestrator.d.ts.map +1 -1
  95. package/dist/sync/orchestrator.js +85 -1
  96. package/dist/sync/orchestrator.js.map +1 -1
  97. package/dist/sync/preflight.d.ts +1 -1
  98. package/dist/sync/preflight.d.ts.map +1 -1
  99. package/dist/sync/preflight.js +127 -15
  100. package/dist/sync/preflight.js.map +1 -1
  101. package/dist/sync/pull.d.ts +19 -0
  102. package/dist/sync/pull.d.ts.map +1 -1
  103. package/dist/sync/pull.js +169 -15
  104. package/dist/sync/pull.js.map +1 -1
  105. package/dist/sync/push.d.ts +7 -0
  106. package/dist/sync/push.d.ts.map +1 -1
  107. package/dist/sync/push.js +37 -10
  108. package/dist/sync/push.js.map +1 -1
  109. package/dist/sync/status.d.ts +4 -0
  110. package/dist/sync/status.d.ts.map +1 -1
  111. package/dist/sync/status.js +68 -4
  112. package/dist/sync/status.js.map +1 -1
  113. package/dist/utils/config.d.ts +25 -0
  114. package/dist/utils/config.d.ts.map +1 -1
  115. package/dist/utils/config.js +28 -2
  116. package/dist/utils/config.js.map +1 -1
  117. package/dist/utils/frontmatter.d.ts +1 -1
  118. package/dist/utils/frontmatter.d.ts.map +1 -1
  119. package/dist/utils/frontmatter.js +15 -4
  120. package/dist/utils/frontmatter.js.map +1 -1
  121. package/dist/utils/media-body-refs.d.ts +81 -0
  122. package/dist/utils/media-body-refs.d.ts.map +1 -0
  123. package/dist/utils/media-body-refs.js +240 -0
  124. package/dist/utils/media-body-refs.js.map +1 -0
  125. package/dist/utils/media-refs.d.ts +44 -0
  126. package/dist/utils/media-refs.d.ts.map +1 -0
  127. package/dist/utils/media-refs.js +101 -0
  128. package/dist/utils/media-refs.js.map +1 -0
  129. package/dist/utils/naming.d.ts +31 -0
  130. package/dist/utils/naming.d.ts.map +1 -1
  131. package/dist/utils/naming.js +58 -0
  132. package/dist/utils/naming.js.map +1 -1
  133. package/package.json +1 -1
@@ -110,6 +110,64 @@ export function stripDatePrefix(filenameOrPath) {
110
110
  const base = path.basename(filenameOrPath);
111
111
  return base.replace(/^\d{8}_/, '');
112
112
  }
113
+ /**
114
+ * Maximum UTF-8 byte length for a mirrored media filename stem. Media mirrors keep the storageKey's
115
+ * own basename, which can be a long migrated path, so the stem is capped well below the 255-byte POSIX
116
+ * NAME_MAX to leave room for the extension and any collision suffix.
117
+ */
118
+ export const DEFAULT_MAX_MEDIA_REF_BYTES = 180;
119
+ /**
120
+ * Derives the canonical local mirror name (`markdownRef`) from an EmDash media `storageKey`.
121
+ *
122
+ * A mirror is named after the storageKey — the identifier the article body actually references — so a
123
+ * Markdown image URL resolves to a file of the same name on disk, and the binary plus its companion YAML
124
+ * form one visibly matching pair. The record id is deliberately NOT part of the name: migrated storageKeys
125
+ * are arbitrary paths rather than ULIDs, so an id can never be recovered from a filename, and Emit reads
126
+ * it from the companion YAML (`id:`) and `media_state.media_id` instead.
127
+ *
128
+ * Sanitizing rules (cross-platform, no symlinks):
129
+ * - Only the storageKey's basename is used; migrated keys such as `uploads/2026/11/sample.png` collapse
130
+ * to their final path segment.
131
+ * - Filesystem-invalid characters and control characters are removed, whitespace collapses to `-`.
132
+ * - Multi-ULID keys (`<ulid1>.<ulid2>.jpg`) keep their dot separators so the key stays recognizable.
133
+ * - The storageKey's own trailing extension is stripped, because callers append the extension they write:
134
+ * a storageKey already ends in one, and re-appending it would produce `<key>.jpg.jpg`.
135
+ * - The result is truncated on a UTF-8 code point boundary.
136
+ * Returns `null` when the storageKey carries no usable name at all.
137
+ */
138
+ export function storageKeyToMarkdownRef(storageKey, maxBytes = DEFAULT_MAX_MEDIA_REF_BYTES) {
139
+ if (!storageKey || !storageKey.trim())
140
+ return null;
141
+ const basename = storageKey.replace(/\\/g, '/').split('/').pop() || '';
142
+ let clean = basename
143
+ .replace(/[<>:"/\\|?*\x00-\x1F]/g, '')
144
+ .replace(/\s+/g, '-')
145
+ .trim();
146
+ // A leading dot would create a hidden file (or `.` / `..`), which no mirror may be.
147
+ clean = clean.replace(/^\.+/, '');
148
+ if (!clean)
149
+ return null;
150
+ // Drop the storageKey's own extension: the stem is shared by the binary and its `.yaml` companion, so
151
+ // every caller appends the extension it actually writes and a key that already ends in one must not
152
+ // produce `<key>.jpg.jpg`.
153
+ clean = clean.replace(/\.[A-Za-z0-9]{1,11}$/, '');
154
+ if (!clean)
155
+ return null;
156
+ // Trailing whitespace collapses to hyphens before the extension is known, so trim what the removal leaves.
157
+ clean = clean.replace(/^[-.\s]+|[-.\s]+$/g, '');
158
+ if (!clean)
159
+ return null;
160
+ clean = truncateUtf8Bytes(clean, maxBytes).replace(/[.\s-]+$/, '');
161
+ return clean || null;
162
+ }
163
+ /**
164
+ * Disambiguates two storageKeys that sanitize to the same basename by appending the media record id.
165
+ * Deterministic: the same key and id always produce the same name, so re-running a pull never churns.
166
+ */
167
+ export function collisionSuffixedMarkdownRef(markdownRef, mediaId) {
168
+ const id = mediaId.trim().toUpperCase();
169
+ return `${markdownRef}--${id}`;
170
+ }
113
171
  /**
114
172
  * Extracts the 26-character ULID from a filename or path, stripping any date prefix.
115
173
  * Returns null if no valid ULID is present.
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,QAAgB;IAC7D,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;YACxD,MAAM;QACR,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAa,EACb,QAAQ,GAAW,uBAAuB;IAE1C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,0EAA0E;IAC1E,IAAI,KAAK,GAAG,KAAK;SACd,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAE5B,8DAA8D;IAC9D,KAAK,GAAG,KAAK;SACV,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;SACrC,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAExB,iEAAiE;IACjE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE7D,gDAAgD;IAChD,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE3C,+CAA+C;IAC/C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEjC,OAAO,KAAK,IAAI,UAAU,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAgC;IAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IACxH,CAAC;IAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAG,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,OAAO,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,cAAsB;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,QAAQ,GAAW,2BAA2B;IAE9C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAEnD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACvE,IAAI,KAAK,GAAG,QAAQ;SACjB,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;SACrC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IAEV,oFAAoF;IACpF,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,sGAAsG;IACtG,oGAAoG;IACpG,2BAA2B;IAC3B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,2GAA2G;IAC3G,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAAmB,EAAE,OAAe;IAC/E,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,GAAG,WAAW,KAAK,EAAE,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,cAAsB;IAC5D,MAAM,eAAe,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACtE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAC/F,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAAkB,EAClB,MAAc,EACd,EAAU,EACV,WAAmB,EACnB,SAAgC;IAEhC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACxD,OAAO,GAAG,UAAU,IAAI,MAAM,IAAI,MAAM,GAAG,EAAE,IAAI,SAAS,KAAK,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa,EAAE,KAAa;IACrE,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "emdash-emit",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "description": "AI-First Local Workspace & Sync Tool for EmDash (Cloudflare Workers + D1)",
5
5
  "author": "hiroaki <45134003+aroooy@users.noreply.github.com>",
6
6
  "license": "MIT",