emdash-emit 0.0.0-stage → 0.1.2

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 (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +798 -2
  3. package/dist/bin/emit.d.ts +5 -0
  4. package/dist/bin/emit.d.ts.map +1 -0
  5. package/dist/bin/emit.js +63 -0
  6. package/dist/bin/emit.js.map +1 -0
  7. package/dist/cli/commands/new.d.ts +4 -0
  8. package/dist/cli/commands/new.d.ts.map +1 -0
  9. package/dist/cli/commands/new.js +49 -0
  10. package/dist/cli/commands/new.js.map +1 -0
  11. package/dist/cli/commands/profile.d.ts +3 -0
  12. package/dist/cli/commands/profile.d.ts.map +1 -0
  13. package/dist/cli/commands/profile.js +104 -0
  14. package/dist/cli/commands/profile.js.map +1 -0
  15. package/dist/cli/commands/pull.d.ts +4 -0
  16. package/dist/cli/commands/pull.d.ts.map +1 -0
  17. package/dist/cli/commands/pull.js +157 -0
  18. package/dist/cli/commands/pull.js.map +1 -0
  19. package/dist/cli/commands/push.d.ts +4 -0
  20. package/dist/cli/commands/push.d.ts.map +1 -0
  21. package/dist/cli/commands/push.js +107 -0
  22. package/dist/cli/commands/push.js.map +1 -0
  23. package/dist/cli/commands/status.d.ts +4 -0
  24. package/dist/cli/commands/status.d.ts.map +1 -0
  25. package/dist/cli/commands/status.js +100 -0
  26. package/dist/cli/commands/status.js.map +1 -0
  27. package/dist/cli/context.d.ts +15 -0
  28. package/dist/cli/context.d.ts.map +1 -0
  29. package/dist/cli/context.js +75 -0
  30. package/dist/cli/context.js.map +1 -0
  31. package/dist/client/api.d.ts +19 -0
  32. package/dist/client/api.d.ts.map +1 -0
  33. package/dist/client/api.js +96 -0
  34. package/dist/client/api.js.map +1 -0
  35. package/dist/client/auth.d.ts +48 -0
  36. package/dist/client/auth.d.ts.map +1 -0
  37. package/dist/client/auth.js +165 -0
  38. package/dist/client/auth.js.map +1 -0
  39. package/dist/client/error.d.ts +22 -0
  40. package/dist/client/error.d.ts.map +1 -0
  41. package/dist/client/error.js +57 -0
  42. package/dist/client/error.js.map +1 -0
  43. package/dist/client/http.d.ts +31 -0
  44. package/dist/client/http.d.ts.map +1 -0
  45. package/dist/client/http.js +97 -0
  46. package/dist/client/http.js.map +1 -0
  47. package/dist/client/lock.d.ts +40 -0
  48. package/dist/client/lock.d.ts.map +1 -0
  49. package/dist/client/lock.js +104 -0
  50. package/dist/client/lock.js.map +1 -0
  51. package/dist/client/mapper.d.ts +37 -0
  52. package/dist/client/mapper.d.ts.map +1 -0
  53. package/dist/client/mapper.js +142 -0
  54. package/dist/client/mapper.js.map +1 -0
  55. package/dist/client/portable-text.d.ts +94 -0
  56. package/dist/client/portable-text.d.ts.map +1 -0
  57. package/dist/client/portable-text.js +428 -0
  58. package/dist/client/portable-text.js.map +1 -0
  59. package/dist/client/schemas.d.ts +1928 -0
  60. package/dist/client/schemas.d.ts.map +1 -0
  61. package/dist/client/schemas.js +123 -0
  62. package/dist/client/schemas.js.map +1 -0
  63. package/dist/db/cache.d.ts +60 -0
  64. package/dist/db/cache.d.ts.map +1 -0
  65. package/dist/db/cache.js +303 -0
  66. package/dist/db/cache.js.map +1 -0
  67. package/dist/index.d.ts +24 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +45 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/mcp/context.d.ts +14 -0
  72. package/dist/mcp/context.d.ts.map +1 -0
  73. package/dist/mcp/context.js +23 -0
  74. package/dist/mcp/context.js.map +1 -0
  75. package/dist/mcp/server.d.ts +12 -0
  76. package/dist/mcp/server.d.ts.map +1 -0
  77. package/dist/mcp/server.js +106 -0
  78. package/dist/mcp/server.js.map +1 -0
  79. package/dist/mcp/tools/profile.d.ts +6 -0
  80. package/dist/mcp/tools/profile.d.ts.map +1 -0
  81. package/dist/mcp/tools/profile.js +81 -0
  82. package/dist/mcp/tools/profile.js.map +1 -0
  83. package/dist/mcp/tools/sync-diff.d.ts +4 -0
  84. package/dist/mcp/tools/sync-diff.d.ts.map +1 -0
  85. package/dist/mcp/tools/sync-diff.js +115 -0
  86. package/dist/mcp/tools/sync-diff.js.map +1 -0
  87. package/dist/mcp/tools/sync-new.d.ts +4 -0
  88. package/dist/mcp/tools/sync-new.d.ts.map +1 -0
  89. package/dist/mcp/tools/sync-new.js +54 -0
  90. package/dist/mcp/tools/sync-new.js.map +1 -0
  91. package/dist/mcp/tools/sync-pull.d.ts +4 -0
  92. package/dist/mcp/tools/sync-pull.d.ts.map +1 -0
  93. package/dist/mcp/tools/sync-pull.js +180 -0
  94. package/dist/mcp/tools/sync-pull.js.map +1 -0
  95. package/dist/mcp/tools/sync-push.d.ts +4 -0
  96. package/dist/mcp/tools/sync-push.d.ts.map +1 -0
  97. package/dist/mcp/tools/sync-push.js +105 -0
  98. package/dist/mcp/tools/sync-push.js.map +1 -0
  99. package/dist/mcp/tools/sync-status.d.ts +4 -0
  100. package/dist/mcp/tools/sync-status.d.ts.map +1 -0
  101. package/dist/mcp/tools/sync-status.js +45 -0
  102. package/dist/mcp/tools/sync-status.js.map +1 -0
  103. package/dist/sync/bylines.d.ts +23 -0
  104. package/dist/sync/bylines.d.ts.map +1 -0
  105. package/dist/sync/bylines.js +112 -0
  106. package/dist/sync/bylines.js.map +1 -0
  107. package/dist/sync/diff.d.ts +16 -0
  108. package/dist/sync/diff.d.ts.map +1 -0
  109. package/dist/sync/diff.js +68 -0
  110. package/dist/sync/diff.js.map +1 -0
  111. package/dist/sync/media.d.ts +37 -0
  112. package/dist/sync/media.d.ts.map +1 -0
  113. package/dist/sync/media.js +191 -0
  114. package/dist/sync/media.js.map +1 -0
  115. package/dist/sync/merge.d.ts +36 -0
  116. package/dist/sync/merge.d.ts.map +1 -0
  117. package/dist/sync/merge.js +112 -0
  118. package/dist/sync/merge.js.map +1 -0
  119. package/dist/sync/new.d.ts +24 -0
  120. package/dist/sync/new.d.ts.map +1 -0
  121. package/dist/sync/new.js +75 -0
  122. package/dist/sync/new.js.map +1 -0
  123. package/dist/sync/orchestrator.d.ts +55 -0
  124. package/dist/sync/orchestrator.d.ts.map +1 -0
  125. package/dist/sync/orchestrator.js +222 -0
  126. package/dist/sync/orchestrator.js.map +1 -0
  127. package/dist/sync/preflight.d.ts +25 -0
  128. package/dist/sync/preflight.d.ts.map +1 -0
  129. package/dist/sync/preflight.js +128 -0
  130. package/dist/sync/preflight.js.map +1 -0
  131. package/dist/sync/pull.d.ts +67 -0
  132. package/dist/sync/pull.d.ts.map +1 -0
  133. package/dist/sync/pull.js +405 -0
  134. package/dist/sync/pull.js.map +1 -0
  135. package/dist/sync/push.d.ts +33 -0
  136. package/dist/sync/push.d.ts.map +1 -0
  137. package/dist/sync/push.js +432 -0
  138. package/dist/sync/push.js.map +1 -0
  139. package/dist/sync/status.d.ts +24 -0
  140. package/dist/sync/status.d.ts.map +1 -0
  141. package/dist/sync/status.js +85 -0
  142. package/dist/sync/status.js.map +1 -0
  143. package/dist/sync/taxonomies.d.ts +49 -0
  144. package/dist/sync/taxonomies.d.ts.map +1 -0
  145. package/dist/sync/taxonomies.js +220 -0
  146. package/dist/sync/taxonomies.js.map +1 -0
  147. package/dist/utils/config.d.ts +18 -0
  148. package/dist/utils/config.d.ts.map +1 -0
  149. package/dist/utils/config.js +79 -0
  150. package/dist/utils/config.js.map +1 -0
  151. package/dist/utils/frontmatter.d.ts +115 -0
  152. package/dist/utils/frontmatter.d.ts.map +1 -0
  153. package/dist/utils/frontmatter.js +147 -0
  154. package/dist/utils/frontmatter.js.map +1 -0
  155. package/dist/utils/naming.d.ts +28 -0
  156. package/dist/utils/naming.d.ts.map +1 -0
  157. package/dist/utils/naming.js +94 -0
  158. package/dist/utils/naming.js.map +1 -0
  159. package/dist/utils/profile.d.ts +72 -0
  160. package/dist/utils/profile.d.ts.map +1 -0
  161. package/dist/utils/profile.js +180 -0
  162. package/dist/utils/profile.js.map +1 -0
  163. package/dist/utils/version.d.ts +5 -0
  164. package/dist/utils/version.d.ts.map +1 -0
  165. package/dist/utils/version.js +43 -0
  166. package/dist/utils/version.js.map +1 -0
  167. package/dist/utils/workspace.d.ts +22 -0
  168. package/dist/utils/workspace.d.ts.map +1 -0
  169. package/dist/utils/workspace.js +74 -0
  170. package/dist/utils/workspace.js.map +1 -0
  171. package/package.json +68 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/client/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /*
2
+ * Copyright (C) 2026 SPORT-SERVICE RS★R
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+ import { z } from 'zod';
23
+ /**
24
+ * Zod schemas for EmDash API responses.
25
+ *
26
+ * NOTE: All object schemas use .passthrough() to ensure resilience against
27
+ * server-side additions (e.g. new CMS fields, custom blocks, metadata extensions)
28
+ * without breaking existing client-side sync.
29
+ */
30
+ export const ContentItemDataSchema = z
31
+ .object({
32
+ title: z.string().optional(),
33
+ content: z.unknown().optional(),
34
+ body: z.unknown().optional(),
35
+ })
36
+ .passthrough();
37
+ export const ContentItemSchema = z
38
+ .object({
39
+ id: z.string().optional(),
40
+ slug: z.string().optional(),
41
+ collection: z.string().optional(),
42
+ status: z.enum(['draft', 'published']).optional(),
43
+ locale: z.string().optional(),
44
+ _rev: z.string().optional(),
45
+ rev: z.string().optional(),
46
+ version: z.union([z.string(), z.number()]).optional(),
47
+ publishedAt: z.string().nullable().optional(),
48
+ createdAt: z.string().optional(),
49
+ updatedAt: z.string().optional(),
50
+ taxonomies: z.record(z.array(z.string())).optional(),
51
+ seo: z.record(z.unknown()).optional(),
52
+ bylines: z.array(z.unknown()).optional(),
53
+ data: ContentItemDataSchema.optional(),
54
+ })
55
+ .passthrough();
56
+ export const ContentEnvelopeSchema = z
57
+ .object({
58
+ success: z.boolean().optional(),
59
+ _rev: z.string().optional(),
60
+ rev: z.string().optional(),
61
+ data: z
62
+ .object({
63
+ item: ContentItemSchema.optional(),
64
+ _rev: z.string().optional(),
65
+ rev: z.string().optional(),
66
+ })
67
+ .passthrough()
68
+ .or(ContentItemSchema)
69
+ .optional(),
70
+ item: ContentItemSchema.optional(),
71
+ })
72
+ .passthrough();
73
+ export const ContentListResponseSchema = z
74
+ .object({
75
+ items: z.array(ContentItemSchema).optional(),
76
+ nextCursor: z.string().nullable().optional(),
77
+ })
78
+ .passthrough();
79
+ export const TaxonomyTermSchema = z
80
+ .object({
81
+ id: z.string(),
82
+ name: z.string(),
83
+ slug: z.string(),
84
+ description: z.string().optional(),
85
+ })
86
+ .passthrough();
87
+ export const TaxonomyListResponseSchema = z
88
+ .object({
89
+ terms: z.array(TaxonomyTermSchema).optional(),
90
+ })
91
+ .passthrough();
92
+ export const MediaItemSchema = z
93
+ .object({
94
+ id: z.string(),
95
+ filename: z.string(),
96
+ mimeType: z.string().optional(),
97
+ size: z.number().optional(),
98
+ url: z.string().optional(),
99
+ createdAt: z.string().optional(),
100
+ })
101
+ .passthrough();
102
+ export const MediaListResponseSchema = z
103
+ .object({
104
+ items: z.array(MediaItemSchema).optional(),
105
+ nextCursor: z.string().nullable().optional(),
106
+ })
107
+ .passthrough();
108
+ export const LockHolderSchema = z
109
+ .object({
110
+ userId: z.string(),
111
+ userName: z.string(),
112
+ acquiredAt: z.string(),
113
+ expiresAt: z.string(),
114
+ })
115
+ .passthrough();
116
+ export const LockResponseSchema = z
117
+ .object({
118
+ enabled: z.boolean().optional(),
119
+ holder: LockHolderSchema.nullable().optional(),
120
+ heldByCaller: z.boolean().optional(),
121
+ })
122
+ .passthrough();
123
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/client/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ export interface CachedEntry {
2
+ id: string;
3
+ collection: string;
4
+ slug: string;
5
+ status: string;
6
+ title: string;
7
+ rev: string;
8
+ publishedAt?: string | null;
9
+ rawJson: string;
10
+ updatedAt: number;
11
+ }
12
+ export interface BaseSnapshot {
13
+ id: string;
14
+ rev: string;
15
+ bodyMarkdown: string;
16
+ frontmatterYaml: string;
17
+ hash: string;
18
+ savedAt: number;
19
+ }
20
+ export interface SyncState {
21
+ id: string;
22
+ localFilePath: string;
23
+ localHash: string;
24
+ remoteRev: string;
25
+ status: string;
26
+ slug: string;
27
+ lastSyncedAt: number;
28
+ }
29
+ export interface BylineRecord {
30
+ id: string;
31
+ slug: string;
32
+ displayName: string;
33
+ isGuest?: boolean;
34
+ rawJson?: string;
35
+ updatedAt?: number;
36
+ }
37
+ export declare class CacheDatabase {
38
+ private db;
39
+ constructor(dbPath: string);
40
+ private init;
41
+ saveEntry(entry: CachedEntry): void;
42
+ getEntry(id: string): CachedEntry | null;
43
+ listEntries(collection?: string): CachedEntry[];
44
+ saveBaseSnapshot(snapshot: BaseSnapshot): void;
45
+ getBaseSnapshot(id: string): BaseSnapshot | null;
46
+ saveSyncState(state: SyncState): void;
47
+ getSyncState(id: string): SyncState | null;
48
+ getSyncStateByPath(filePath: string): SyncState | null;
49
+ deleteSyncState(id: string): void;
50
+ getAllSyncStates(): SyncState[];
51
+ deleteEntry(id: string): void;
52
+ saveBylines(bylines: BylineRecord[], pruneMissing?: boolean): void;
53
+ getBylines(): BylineRecord[];
54
+ getBylineMaps(): {
55
+ slugToId: Record<string, string>;
56
+ idToSlug: Record<string, string>;
57
+ };
58
+ close(): void;
59
+ }
60
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/db/cache.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAe;IAEzB,YAAY,MAAM,EAAE,MAAM,EAOzB;IAED,OAAO,CAAC,IAAI;IA+DL,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAyBzC;IAEM,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAe9C;IAEM,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAkBrD;IAIM,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAmBpD;IAEM,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAYtD;IAIM,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAqB3C;IAEM,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAahD;IAEM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAa5D;IAEM,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGvC;IAEM,gBAAgB,IAAI,SAAS,EAAE,CAYrC;IAEM,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAInC;IAIM,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,YAAY,UAAQ,GAAG,IAAI,CAwCtE;IAEM,UAAU,IAAI,YAAY,EAAE,CAWlC;IAEM,aAAa,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAW7F;IAEM,KAAK,IAAI,IAAI,CAEnB;CACF"}
@@ -0,0 +1,303 @@
1
+ /*
2
+ * Copyright (C) 2026 SPORT-SERVICE RS★R
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+ import { DatabaseSync } from 'node:sqlite';
23
+ import fs from 'node:fs';
24
+ import path from 'node:path';
25
+ export class CacheDatabase {
26
+ db;
27
+ constructor(dbPath) {
28
+ const parentDir = path.dirname(dbPath);
29
+ if (!fs.existsSync(parentDir)) {
30
+ fs.mkdirSync(parentDir, { recursive: true });
31
+ }
32
+ this.db = new DatabaseSync(dbPath);
33
+ this.init();
34
+ }
35
+ init() {
36
+ // Enable WAL mode for better concurrency and write performance
37
+ this.db.exec('PRAGMA journal_mode = WAL;');
38
+ // 1. entries table: remote state cache
39
+ this.db.exec(`
40
+ CREATE TABLE IF NOT EXISTS entries (
41
+ id TEXT PRIMARY KEY,
42
+ collection TEXT NOT NULL,
43
+ slug TEXT NOT NULL,
44
+ status TEXT NOT NULL,
45
+ title TEXT NOT NULL,
46
+ rev TEXT NOT NULL,
47
+ published_at TEXT,
48
+ raw_json TEXT NOT NULL,
49
+ updated_at INTEGER NOT NULL
50
+ );
51
+ CREATE INDEX IF NOT EXISTS idx_entries_collection ON entries (collection);
52
+ CREATE INDEX IF NOT EXISTS idx_entries_slug ON entries (slug);
53
+ `);
54
+ // 2. base_snapshots table: baseline state for 3-way merge
55
+ this.db.exec(`
56
+ CREATE TABLE IF NOT EXISTS base_snapshots (
57
+ id TEXT PRIMARY KEY,
58
+ rev TEXT NOT NULL,
59
+ body_markdown TEXT NOT NULL,
60
+ frontmatter_yaml TEXT NOT NULL,
61
+ hash TEXT NOT NULL,
62
+ saved_at INTEGER NOT NULL
63
+ );
64
+ `);
65
+ // 3. sync_state table: local path tracking & dirty change detection
66
+ this.db.exec(`
67
+ CREATE TABLE IF NOT EXISTS sync_state (
68
+ id TEXT PRIMARY KEY,
69
+ local_file_path TEXT NOT NULL,
70
+ local_hash TEXT NOT NULL,
71
+ remote_rev TEXT NOT NULL,
72
+ status TEXT NOT NULL,
73
+ slug TEXT NOT NULL,
74
+ last_synced_at INTEGER NOT NULL
75
+ );
76
+ CREATE INDEX IF NOT EXISTS idx_sync_state_file_path ON sync_state (local_file_path);
77
+ `);
78
+ // 4. bylines table: local cache for author/byline resolution
79
+ this.db.exec(`
80
+ CREATE TABLE IF NOT EXISTS bylines (
81
+ id TEXT PRIMARY KEY,
82
+ slug TEXT NOT NULL UNIQUE,
83
+ display_name TEXT NOT NULL,
84
+ is_guest INTEGER NOT NULL DEFAULT 0,
85
+ raw_json TEXT NOT NULL DEFAULT '{}',
86
+ updated_at INTEGER NOT NULL
87
+ );
88
+ CREATE INDEX IF NOT EXISTS idx_bylines_slug ON bylines (slug);
89
+ `);
90
+ }
91
+ // --- entries operations ---
92
+ saveEntry(entry) {
93
+ const stmt = this.db.prepare(`
94
+ INSERT INTO entries (id, collection, slug, status, title, rev, published_at, raw_json, updated_at)
95
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
96
+ ON CONFLICT(id) DO UPDATE SET
97
+ collection = excluded.collection,
98
+ slug = excluded.slug,
99
+ status = excluded.status,
100
+ title = excluded.title,
101
+ rev = excluded.rev,
102
+ published_at = excluded.published_at,
103
+ raw_json = excluded.raw_json,
104
+ updated_at = excluded.updated_at
105
+ `);
106
+ stmt.run(entry.id, entry.collection, entry.slug, entry.status, entry.title, entry.rev, entry.publishedAt ?? null, entry.rawJson, entry.updatedAt);
107
+ }
108
+ getEntry(id) {
109
+ const stmt = this.db.prepare('SELECT * FROM entries WHERE id = ?');
110
+ const row = stmt.get(id);
111
+ if (!row)
112
+ return null;
113
+ return {
114
+ id: String(row.id),
115
+ collection: String(row.collection),
116
+ slug: String(row.slug),
117
+ status: String(row.status),
118
+ title: String(row.title),
119
+ rev: String(row.rev),
120
+ publishedAt: row.published_at ? String(row.published_at) : null,
121
+ rawJson: String(row.raw_json),
122
+ updatedAt: Number(row.updated_at),
123
+ };
124
+ }
125
+ listEntries(collection) {
126
+ const query = collection
127
+ ? 'SELECT * FROM entries WHERE collection = ? ORDER BY updated_at DESC'
128
+ : 'SELECT * FROM entries ORDER BY updated_at DESC';
129
+ const stmt = this.db.prepare(query);
130
+ const rows = (collection ? stmt.all(collection) : stmt.all());
131
+ return rows.map((row) => ({
132
+ id: String(row.id),
133
+ collection: String(row.collection),
134
+ slug: String(row.slug),
135
+ status: String(row.status),
136
+ title: String(row.title),
137
+ rev: String(row.rev),
138
+ publishedAt: row.published_at ? String(row.published_at) : null,
139
+ rawJson: String(row.raw_json),
140
+ updatedAt: Number(row.updated_at),
141
+ }));
142
+ }
143
+ // --- base_snapshots operations ---
144
+ saveBaseSnapshot(snapshot) {
145
+ const stmt = this.db.prepare(`
146
+ INSERT INTO base_snapshots (id, rev, body_markdown, frontmatter_yaml, hash, saved_at)
147
+ VALUES (?, ?, ?, ?, ?, ?)
148
+ ON CONFLICT(id) DO UPDATE SET
149
+ rev = excluded.rev,
150
+ body_markdown = excluded.body_markdown,
151
+ frontmatter_yaml = excluded.frontmatter_yaml,
152
+ hash = excluded.hash,
153
+ saved_at = excluded.saved_at
154
+ `);
155
+ stmt.run(snapshot.id, snapshot.rev, snapshot.bodyMarkdown, snapshot.frontmatterYaml, snapshot.hash, snapshot.savedAt);
156
+ }
157
+ getBaseSnapshot(id) {
158
+ const stmt = this.db.prepare('SELECT * FROM base_snapshots WHERE id = ?');
159
+ const row = stmt.get(id);
160
+ if (!row)
161
+ return null;
162
+ return {
163
+ id: String(row.id),
164
+ rev: String(row.rev),
165
+ bodyMarkdown: String(row.body_markdown),
166
+ frontmatterYaml: String(row.frontmatter_yaml),
167
+ hash: String(row.hash),
168
+ savedAt: Number(row.saved_at),
169
+ };
170
+ }
171
+ // --- sync_state operations ---
172
+ saveSyncState(state) {
173
+ const stmt = this.db.prepare(`
174
+ INSERT INTO sync_state (id, local_file_path, local_hash, remote_rev, status, slug, last_synced_at)
175
+ VALUES (?, ?, ?, ?, ?, ?, ?)
176
+ ON CONFLICT(id) DO UPDATE SET
177
+ local_file_path = excluded.local_file_path,
178
+ local_hash = excluded.local_hash,
179
+ remote_rev = excluded.remote_rev,
180
+ status = excluded.status,
181
+ slug = excluded.slug,
182
+ last_synced_at = excluded.last_synced_at
183
+ `);
184
+ stmt.run(state.id, state.localFilePath, state.localHash, state.remoteRev, state.status, state.slug, state.lastSyncedAt);
185
+ }
186
+ getSyncState(id) {
187
+ const stmt = this.db.prepare('SELECT * FROM sync_state WHERE id = ?');
188
+ const row = stmt.get(id);
189
+ if (!row)
190
+ return null;
191
+ return {
192
+ id: String(row.id),
193
+ localFilePath: String(row.local_file_path),
194
+ localHash: String(row.local_hash),
195
+ remoteRev: String(row.remote_rev),
196
+ status: String(row.status),
197
+ slug: String(row.slug),
198
+ lastSyncedAt: Number(row.last_synced_at),
199
+ };
200
+ }
201
+ getSyncStateByPath(filePath) {
202
+ const stmt = this.db.prepare('SELECT * FROM sync_state WHERE local_file_path = ?');
203
+ const row = stmt.get(filePath);
204
+ if (!row)
205
+ return null;
206
+ return {
207
+ id: String(row.id),
208
+ localFilePath: String(row.local_file_path),
209
+ localHash: String(row.local_hash),
210
+ remoteRev: String(row.remote_rev),
211
+ status: String(row.status),
212
+ slug: String(row.slug),
213
+ lastSyncedAt: Number(row.last_synced_at),
214
+ };
215
+ }
216
+ deleteSyncState(id) {
217
+ const stmt = this.db.prepare('DELETE FROM sync_state WHERE id = ?');
218
+ stmt.run(id);
219
+ }
220
+ getAllSyncStates() {
221
+ const stmt = this.db.prepare('SELECT * FROM sync_state');
222
+ const rows = stmt.all();
223
+ return rows.map((row) => ({
224
+ id: String(row.id),
225
+ localFilePath: String(row.local_file_path),
226
+ localHash: String(row.local_hash),
227
+ remoteRev: String(row.remote_rev),
228
+ status: String(row.status),
229
+ slug: String(row.slug),
230
+ lastSyncedAt: Number(row.last_synced_at),
231
+ }));
232
+ }
233
+ deleteEntry(id) {
234
+ this.db.prepare('DELETE FROM entries WHERE id = ?').run(id);
235
+ this.db.prepare('DELETE FROM base_snapshots WHERE id = ?').run(id);
236
+ this.db.prepare('DELETE FROM sync_state WHERE id = ?').run(id);
237
+ }
238
+ // --- bylines operations ---
239
+ saveBylines(bylines, pruneMissing = false) {
240
+ if (bylines.length === 0 && !pruneMissing)
241
+ return;
242
+ const stmt = this.db.prepare(`
243
+ INSERT INTO bylines (id, slug, display_name, is_guest, raw_json, updated_at)
244
+ VALUES (?, ?, ?, ?, ?, ?)
245
+ ON CONFLICT(id) DO UPDATE SET
246
+ slug = excluded.slug,
247
+ display_name = excluded.display_name,
248
+ is_guest = excluded.is_guest,
249
+ raw_json = excluded.raw_json,
250
+ updated_at = excluded.updated_at
251
+ `);
252
+ const now = Math.floor(Date.now() / 1000);
253
+ this.db.exec('BEGIN TRANSACTION;');
254
+ try {
255
+ if (pruneMissing) {
256
+ const activeIds = new Set(bylines.map((b) => b.id));
257
+ const existing = this.getBylines();
258
+ const deleteStmt = this.db.prepare('DELETE FROM bylines WHERE id = ?');
259
+ for (const ex of existing) {
260
+ if (!activeIds.has(ex.id)) {
261
+ deleteStmt.run(ex.id);
262
+ }
263
+ }
264
+ }
265
+ for (const b of bylines) {
266
+ stmt.run(b.id, b.slug, b.displayName, b.isGuest ? 1 : 0, b.rawJson || '{}', b.updatedAt || now);
267
+ }
268
+ this.db.exec('COMMIT;');
269
+ }
270
+ catch (err) {
271
+ this.db.exec('ROLLBACK;');
272
+ throw err;
273
+ }
274
+ }
275
+ getBylines() {
276
+ const stmt = this.db.prepare('SELECT * FROM bylines ORDER BY slug ASC');
277
+ const rows = stmt.all();
278
+ return rows.map((r) => ({
279
+ id: String(r.id),
280
+ slug: String(r.slug),
281
+ displayName: String(r.display_name),
282
+ isGuest: Boolean(r.is_guest),
283
+ rawJson: String(r.raw_json),
284
+ updatedAt: Number(r.updated_at),
285
+ }));
286
+ }
287
+ getBylineMaps() {
288
+ const bylines = this.getBylines();
289
+ const slugToId = {};
290
+ const idToSlug = {};
291
+ for (const b of bylines) {
292
+ if (b.slug && b.id) {
293
+ slugToId[b.slug] = b.id;
294
+ idToSlug[b.id] = b.slug;
295
+ }
296
+ }
297
+ return { slugToId, idToSlug };
298
+ }
299
+ close() {
300
+ this.db.close();
301
+ }
302
+ }
303
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/db/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export * from './client/auth.js';
2
+ export * from './client/error.js';
3
+ export * from './client/http.js';
4
+ export * from './client/lock.js';
5
+ export * from './client/mapper.js';
6
+ export * from './client/portable-text.js';
7
+ export { ContentItemSchema, ContentEnvelopeSchema, ContentListResponseSchema, MediaItemSchema, MediaListResponseSchema, LockResponseSchema, type ContentItem, type ContentEnvelope, type ContentListResponse, type MediaItem, } from './client/schemas.js';
8
+ export * from './db/cache.js';
9
+ export * from './sync/diff.js';
10
+ export * from './sync/media.js';
11
+ export * from './sync/merge.js';
12
+ export * from './sync/new.js';
13
+ export * from './sync/orchestrator.js';
14
+ export * from './sync/preflight.js';
15
+ export * from './sync/pull.js';
16
+ export * from './sync/push.js';
17
+ export * from './sync/status.js';
18
+ export * from './sync/taxonomies.js';
19
+ export * from './sync/bylines.js';
20
+ export * from './utils/config.js';
21
+ export * from './utils/frontmatter.js';
22
+ export * from './utils/profile.js';
23
+ export * from './utils/workspace.js';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Copyright (C) 2026 SPORT-SERVICE RS★R
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+ export * from './client/auth.js';
23
+ export * from './client/error.js';
24
+ export * from './client/http.js';
25
+ export * from './client/lock.js';
26
+ export * from './client/mapper.js';
27
+ export * from './client/portable-text.js';
28
+ export { ContentItemSchema, ContentEnvelopeSchema, ContentListResponseSchema, MediaItemSchema, MediaListResponseSchema, LockResponseSchema, } from './client/schemas.js';
29
+ export * from './db/cache.js';
30
+ export * from './sync/diff.js';
31
+ export * from './sync/media.js';
32
+ export * from './sync/merge.js';
33
+ export * from './sync/new.js';
34
+ export * from './sync/orchestrator.js';
35
+ export * from './sync/preflight.js';
36
+ export * from './sync/pull.js';
37
+ export * from './sync/push.js';
38
+ export * from './sync/status.js';
39
+ export * from './sync/taxonomies.js';
40
+ export * from './sync/bylines.js';
41
+ export * from './utils/config.js';
42
+ export * from './utils/frontmatter.js';
43
+ export * from './utils/profile.js';
44
+ export * from './utils/workspace.js';
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,GAKnB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { CacheDatabase } from '../db/cache.js';
2
+ import type { ResolvedAuth } from '../client/auth.js';
3
+ import type { WorkspacePaths } from '../utils/workspace.js';
4
+ import type { EmitConfig } from '../utils/config.js';
5
+ export interface ServerContext {
6
+ root: string;
7
+ paths: WorkspacePaths;
8
+ cache: CacheDatabase;
9
+ config: EmitConfig;
10
+ auth: ResolvedAuth;
11
+ origin: string;
12
+ }
13
+ export type ContextResolver = (targetProfile?: string) => ServerContext;
14
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/mcp/context.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC"}
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (C) 2026 SPORT-SERVICE RS★R
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+ export {};
23
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/mcp/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
@@ -0,0 +1,12 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { CacheDatabase } from '../db/cache.js';
3
+ export interface CreateMcpServerOptions {
4
+ workspaceRoot?: string;
5
+ cache?: CacheDatabase;
6
+ }
7
+ export declare function createMcpServer(options?: CreateMcpServerOptions): McpServer;
8
+ /**
9
+ * Runs the MCP server via stdio transport.
10
+ */
11
+ export declare function runMcpServer(options?: CreateMcpServerOptions): Promise<void>;
12
+ //# sourceMappingURL=server.d.ts.map