@artkit-ai/core 0.1.0 → 0.2.0

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 (87) hide show
  1. package/dist/adapter.d.ts +119 -0
  2. package/dist/adapter.d.ts.map +1 -0
  3. package/dist/adapter.js +45 -0
  4. package/dist/adapter.js.map +1 -0
  5. package/dist/diff.d.ts +1 -1
  6. package/dist/diff.d.ts.map +1 -1
  7. package/dist/engine.d.ts +29 -23
  8. package/dist/engine.d.ts.map +1 -1
  9. package/dist/engine.js +148 -197
  10. package/dist/engine.js.map +1 -1
  11. package/dist/envelope.d.ts +10 -27
  12. package/dist/envelope.d.ts.map +1 -1
  13. package/dist/envelope.js +8 -20
  14. package/dist/envelope.js.map +1 -1
  15. package/dist/errors.d.ts +1 -1
  16. package/dist/errors.d.ts.map +1 -1
  17. package/dist/errors.js +4 -4
  18. package/dist/errors.js.map +1 -1
  19. package/dist/events.d.ts +2 -10
  20. package/dist/events.d.ts.map +1 -1
  21. package/dist/events.js.map +1 -1
  22. package/dist/i18n.d.ts +8 -14
  23. package/dist/i18n.d.ts.map +1 -1
  24. package/dist/i18n.js +12 -18
  25. package/dist/i18n.js.map +1 -1
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/logger.d.ts +1 -2
  31. package/dist/logger.d.ts.map +1 -1
  32. package/dist/logger.js.map +1 -1
  33. package/dist/memory.d.ts +0 -2
  34. package/dist/memory.d.ts.map +1 -1
  35. package/dist/memory.js +15 -109
  36. package/dist/memory.js.map +1 -1
  37. package/dist/migrations.d.ts +6 -5
  38. package/dist/migrations.d.ts.map +1 -1
  39. package/dist/migrations.js +20 -14
  40. package/dist/migrations.js.map +1 -1
  41. package/dist/projection.d.ts +22 -6
  42. package/dist/projection.d.ts.map +1 -1
  43. package/dist/projection.js +5 -5
  44. package/dist/projection.js.map +1 -1
  45. package/dist/registry.d.ts +17 -16
  46. package/dist/registry.d.ts.map +1 -1
  47. package/dist/registry.js +25 -25
  48. package/dist/registry.js.map +1 -1
  49. package/dist/service.d.ts +19 -51
  50. package/dist/service.d.ts.map +1 -1
  51. package/dist/service.js +119 -404
  52. package/dist/service.js.map +1 -1
  53. package/dist/store.d.ts +12 -61
  54. package/dist/store.d.ts.map +1 -1
  55. package/dist/testing/index.d.ts +10 -9
  56. package/dist/testing/index.d.ts.map +1 -1
  57. package/dist/testing/index.js +75 -136
  58. package/dist/testing/index.js.map +1 -1
  59. package/dist/theme.js +1 -1
  60. package/dist/ui.d.ts +18 -1
  61. package/dist/ui.d.ts.map +1 -1
  62. package/dist/ui.js +5 -3
  63. package/dist/ui.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/adapter.ts +180 -0
  66. package/src/diff.ts +1 -1
  67. package/src/engine.ts +183 -230
  68. package/src/envelope.ts +11 -29
  69. package/src/errors.ts +4 -4
  70. package/src/events.ts +2 -11
  71. package/src/i18n.ts +14 -20
  72. package/src/index.ts +2 -4
  73. package/src/logger.ts +1 -2
  74. package/src/memory.ts +16 -122
  75. package/src/migrations.ts +24 -18
  76. package/src/projection.ts +25 -7
  77. package/src/registry.ts +45 -41
  78. package/src/service.ts +144 -540
  79. package/src/store.ts +12 -64
  80. package/src/testing/index.ts +89 -164
  81. package/src/theme.ts +1 -1
  82. package/src/ui.ts +24 -4
  83. package/dist/kind.d.ts +0 -156
  84. package/dist/kind.d.ts.map +0 -1
  85. package/dist/kind.js +0 -52
  86. package/dist/kind.js.map +0 -1
  87. package/src/kind.ts +0 -217
package/dist/memory.js CHANGED
@@ -1,14 +1,12 @@
1
1
  import { assetIdFromRef, checkAsset, defaultAssetPolicy, sha256Hex, toDataUrl, } from './assets.js';
2
- import { summarize, } from './envelope.js';
2
+ import { summarize } from './envelope.js';
3
3
  import { ArtifactError } from './errors.js';
4
4
  import { t } from './i18n.js';
5
5
  import { createArtifactId } from './ids.js';
6
6
  const DEFAULT_PAGE = 50;
7
- const sameActor = (a, b) => a.type === b.type && a.id === b.id;
8
7
  /** Reference in-memory store: tests, playground and prototypes (spec §15.2). Runs in any runtime. */
9
8
  export function createMemoryStore(options = {}) {
10
9
  const now = options.now ?? (() => new Date());
11
- const snapshotEvery = Math.max(1, options.snapshotEvery ?? 10);
12
10
  const records = new Map();
13
11
  const notFound = (id) => {
14
12
  throw new ArtifactError('NOT_FOUND', t(options.locale, 'NOT_FOUND', { what: 'Artifact', id }));
@@ -20,9 +18,6 @@ export function createMemoryStore(options = {}) {
20
18
  return notFound(id);
21
19
  return found;
22
20
  }
23
- function latest(rec) {
24
- return rec.versions[rec.versions.length - 1];
25
- }
26
21
  function activeLock(rec) {
27
22
  if (!rec.lock)
28
23
  return null;
@@ -42,25 +37,21 @@ export function createMemoryStore(options = {}) {
42
37
  }
43
38
  const clone = (value) => structuredClone(value);
44
39
  return {
45
- async get(scope, id, opts) {
40
+ async get(scope, id) {
46
41
  const rec = records.get(id);
47
42
  if (!rec || rec.workspaceId !== scope.workspaceId)
48
43
  return null;
49
- if (opts?.version === undefined)
50
- return clone(latest(rec));
51
- const found = rec.versions.find((v) => v.version === opts.version);
52
- return found ? clone(found) : null;
44
+ return clone(rec.artifact);
53
45
  },
54
46
  async create(scope, input) {
55
47
  const at = now();
56
48
  const id = createArtifactId(at.getTime());
57
49
  const artifact = {
58
50
  id,
59
- kind: input.kind,
60
- schemaVersion: input.schemaVersion,
51
+ format: input.format,
52
+ formatVersion: input.formatVersion,
61
53
  version: 1,
62
54
  title: input.title,
63
- status: input.status,
64
55
  locale: input.locale,
65
56
  themeId: input.themeId,
66
57
  content: clone(input.content),
@@ -72,81 +63,38 @@ export function createMemoryStore(options = {}) {
72
63
  tags: input.tags ?? [],
73
64
  },
74
65
  };
75
- records.set(id, {
76
- workspaceId: scope.workspaceId,
77
- versions: [artifact],
78
- history: [
79
- {
80
- version: 1,
81
- actor: scope.actor,
82
- createdAt: at.toISOString(),
83
- operations: [],
84
- diff: [],
85
- createdIds: input.createdIds ?? [],
86
- status: input.status,
87
- ...(input.message ? { message: input.message } : {}),
88
- ...(input.idempotencyKey ? { idempotencyKey: input.idempotencyKey } : {}),
89
- snapshot: { schemaVersion: input.schemaVersion, content: clone(input.content) },
90
- },
91
- ],
92
- });
66
+ records.set(id, { workspaceId: scope.workspaceId, artifact });
93
67
  return clone(artifact);
94
68
  },
95
69
  async commit(scope, id, change) {
96
70
  const rec = record(scope, id);
97
- const current = latest(rec);
71
+ const current = rec.artifact;
98
72
  if (change.baseVersion !== current.version) {
99
73
  throw new ArtifactError('VERSION_CONFLICT', t(options.locale, 'VERSION_CONFLICT', {
100
74
  baseVersion: change.baseVersion,
101
75
  currentVersion: current.version,
102
- }), {
103
- details: { currentVersion: current.version },
104
- });
76
+ }), { details: { currentVersion: current.version } });
105
77
  }
106
- const at = now().toISOString();
107
- const version = current.version + 1;
108
78
  const next = {
109
79
  ...current,
110
- schemaVersion: change.schemaVersion,
111
- version,
80
+ formatVersion: change.formatVersion,
81
+ version: current.version + 1,
112
82
  title: change.title,
113
83
  locale: change.locale,
114
84
  themeId: change.themeId,
115
- status: change.status ?? current.status,
116
85
  content: clone(change.content),
117
- meta: { ...current.meta, updatedAt: at, updatedBy: scope.actor },
86
+ meta: { ...current.meta, updatedAt: now().toISOString(), updatedBy: scope.actor },
118
87
  };
119
- rec.versions.push(next);
120
- rec.history.push({
121
- version,
122
- actor: scope.actor,
123
- createdAt: at,
124
- operations: clone(change.operations),
125
- diff: clone(change.diff),
126
- createdIds: change.createdIds ?? [],
127
- status: next.status,
128
- ...(change.message ? { message: change.message } : {}),
129
- ...(change.idempotencyKey ? { idempotencyKey: change.idempotencyKey } : {}),
130
- ...(change.restoredFrom ? { restoredFrom: change.restoredFrom } : {}),
131
- ...(version % snapshotEvery === 0
132
- ? { snapshot: { schemaVersion: change.schemaVersion, content: clone(change.content) } }
133
- : {}),
134
- });
88
+ rec.artifact = next;
135
89
  return clone(next);
136
90
  },
137
- async history(scope, id, page) {
138
- const rec = record(scope, id);
139
- return paginate(clone([...rec.history].reverse()), page);
140
- },
141
91
  async list(scope, filter, page) {
142
92
  const items = [];
143
93
  for (const rec of records.values()) {
144
94
  if (rec.workspaceId !== scope.workspaceId)
145
95
  continue;
146
- const artifact = latest(rec);
147
- if (filter.kind && artifact.kind !== filter.kind)
148
- continue;
149
- if (filter.status && artifact.status !== filter.status)
96
+ const artifact = rec.artifact;
97
+ if (filter.format && artifact.format !== filter.format)
150
98
  continue;
151
99
  if (filter.title && !artifact.title.toLowerCase().includes(filter.title.toLowerCase()))
152
100
  continue;
@@ -157,31 +105,6 @@ export function createMemoryStore(options = {}) {
157
105
  items.sort((a, b) => a.updatedAt < b.updatedAt ? 1 : a.updatedAt > b.updatedAt ? -1 : a.id < b.id ? 1 : -1);
158
106
  return paginate(items, page);
159
107
  },
160
- async setStatus(scope, id, status, actor, message) {
161
- const rec = record(scope, id);
162
- const current = latest(rec);
163
- const at = now().toISOString();
164
- const updated = {
165
- ...current,
166
- status,
167
- meta: {
168
- ...current.meta,
169
- updatedAt: at,
170
- updatedBy: actor,
171
- ...(status === 'published' ? { publishedVersion: current.version } : {}),
172
- },
173
- };
174
- rec.versions[rec.versions.length - 1] = updated;
175
- const entry = rec.history[rec.history.length - 1];
176
- if (entry) {
177
- entry.status = status;
178
- entry.statusLog = [
179
- ...(entry.statusLog ?? []),
180
- { status, actor, at, ...(message ? { message } : {}) },
181
- ];
182
- }
183
- return clone(updated);
184
- },
185
108
  async lock(scope, id, actor, ttlMs) {
186
109
  const rec = record(scope, id);
187
110
  const existing = activeLock(rec);
@@ -189,9 +112,7 @@ export function createMemoryStore(options = {}) {
189
112
  throw new ArtifactError('LOCKED', t(options.locale, 'LOCKED', {
190
113
  holder: `${existing.holder.type}:${existing.holder.id}`,
191
114
  expiresAt: existing.expiresAt,
192
- }), {
193
- details: { expiresAt: existing.expiresAt },
194
- });
115
+ }), { details: { expiresAt: existing.expiresAt } });
195
116
  }
196
117
  const token = createArtifactId(now().getTime()).slice(4);
197
118
  rec.lock = {
@@ -212,21 +133,6 @@ export function createMemoryStore(options = {}) {
212
133
  const lock = activeLock(rec);
213
134
  return lock ? clone(lock) : null;
214
135
  },
215
- async findByIdempotencyKey(scope, id, key) {
216
- const rec = record(scope, id);
217
- const entry = rec.history.find((h) => h.idempotencyKey === key);
218
- return entry ? clone(entry) : null;
219
- },
220
- async findCreatedByIdempotencyKey(scope, key) {
221
- for (const rec of records.values()) {
222
- if (rec.workspaceId !== scope.workspaceId)
223
- continue;
224
- const first = rec.history[0];
225
- if (first?.idempotencyKey === key && sameActor(first.actor, scope.actor))
226
- return clone(latest(rec));
227
- }
228
- return null;
229
- },
230
136
  };
231
137
  }
232
138
  /** In-memory asset store with the same validation as production stores (MIME sniffing, size, SVG sanitizing). */
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAKL,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA4B5C,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,SAAS,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAE7E,qGAAqG;AACrG,MAAM,UAAU,iBAAiB,CAAC,OAAO,GAAuB,EAAE;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE3C,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAS,EAAE;QACrC,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC;IAEF,SAAS,MAAM,CAAC,KAAY,EAAE,EAAU;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,oFAAoF;QACpF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;YAAE,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,MAAM,CAAC,GAAY;QAC1B,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAChD,CAAC;IAED,SAAS,UAAU,CAAC,GAAY;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,OAAO,GAAG,CAAC,IAAI,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,SAAS,QAAQ,CAAI,KAAU,EAAE,IAAiB;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;QAChD,OAAO,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM;YACjC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE;YACrD,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAG,CAAI,KAAQ,EAAK,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAEzD,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI;YACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAC/D,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAkB;YACpC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAa;gBACzB,EAAE;gBACF,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC7B,IAAI,EAAE;oBACJ,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE;oBAC3B,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE;oBAC3B,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;iBACvB;aACF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;gBACd,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,QAAQ,EAAE,CAAC,QAAQ,CAAC;gBACpB,OAAO,EAAE;oBACP;wBACE,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE;wBAC3B,UAAU,EAAE,EAAE;wBACd,IAAI,EAAE,EAAE;wBACR,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;wBAClC,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzE,QAAQ,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;qBAChF;iBACF;aACF,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,MAAc;YACpC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE;oBACpC,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,cAAc,EAAE,OAAO,CAAC,OAAO;iBAChC,CAAC,EACF;oBACE,OAAO,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE;iBAC7C,CACF,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;YACpC,MAAM,IAAI,GAAa;gBACrB,GAAG,OAAO;gBACV,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,OAAO;gBACP,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACvC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC9B,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE;aACjE,CAAC;YACF,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;gBACf,OAAO;gBACP,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;gBACpC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;gBACxB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,OAAO,GAAG,aAAa,KAAK,CAAC;oBAC/B,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;oBACvF,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAsB,EAAE,IAAI;YAC5C,MAAM,KAAK,GAAsB,EAAE,CAAC;YACpC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,IAAI,GAAG,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;oBAAE,SAAS;gBACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;oBAAE,SAAS;gBAC3D,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;oBAAE,SAAS;gBACjE,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBAAE,SAAS;gBACjG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACrE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtF,CAAC;YACF,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,MAAsB,EAAE,KAAY,EAAE,OAAgB;YAC/E,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAa;gBACxB,GAAG,OAAO;gBACV,MAAM;gBACN,IAAI,EAAE;oBACJ,GAAG,OAAO,CAAC,IAAI;oBACf,SAAS,EAAE,EAAE;oBACb,SAAS,EAAE,KAAK;oBAChB,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzE;aACF,CAAC;YACF,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YAChD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gBACtB,KAAK,CAAC,SAAS,GAAG;oBAChB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;oBAC1B,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;iBACvD,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK;YAChC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzF,MAAM,IAAI,aAAa,CACrB,QAAQ,EACR,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE;oBAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE;oBACvD,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B,CAAC,EACF;oBACE,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;iBAC3C,CACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,GAAG;gBACT,UAAU,EAAE,EAAE;gBACd,MAAM,EAAE,KAAK;gBACb,KAAK;gBACL,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE;aAC3D,CAAC;YACF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI;YACtB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;QACtD,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,CAAC;QAED,KAAK,CAAC,2BAA2B,CAAC,KAAK,EAAE,GAAG;YAC1C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,IAAI,GAAG,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;oBAAE,SAAS;gBACpD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,KAAK,EAAE,cAAc,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACtG,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAOD,iHAAiH;AACjH,MAAM,UAAU,sBAAsB,CAAC,OAAO,GAA4B,EAAE;IAC1E,MAAM,MAAM,GAAgB,EAAE,GAAG,kBAAkB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwE,CAAC;IAC/F,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI;YAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,GAAa,WAAW,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,EAAE;gBACvC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC,CAAC;YACH,OAAO;gBACL,GAAG;gBACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;gBAC9B,IAAI;gBACJ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,KAAK;gBACR,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACnG,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG;YAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACzC,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import type { AnyArtifactKind } from './kind.js';
1
+ import type { AnyFormatAdapter } from './adapter.js';
2
2
  export interface MigrationResult {
3
3
  content: unknown;
4
- schemaVersion: number;
4
+ formatVersion: string;
5
5
  migrated: boolean;
6
6
  }
7
7
  /**
8
- * Migrates content in memory along the kind's migration chain (spec §6.3).
9
- * Persisting the migrated version only happens on the next commit.
8
+ * Migrates content in memory along the adapter's migration chain (spec §7.2). Reading a version the adapter does not
9
+ * declare is refused with `UNSUPPORTED_FORMAT_VERSION`. Persisting the migrated content only happens on the next
10
+ * commit.
10
11
  */
11
- export declare function migrateContent(kind: AnyArtifactKind, content: unknown, schemaVersion: number, locale?: string): MigrationResult;
12
+ export declare function migrateContent(adapter: AnyFormatAdapter, content: unknown, formatVersion: string, locale?: string): MigrationResult;
12
13
  //# sourceMappingURL=migrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,eAAe,CAgCjB"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,eAAe,CAqCjB"}
@@ -1,31 +1,37 @@
1
1
  import { ArtifactError } from './errors.js';
2
2
  import { t } from './i18n.js';
3
3
  /**
4
- * Migrates content in memory along the kind's migration chain (spec §6.3).
5
- * Persisting the migrated version only happens on the next commit.
4
+ * Migrates content in memory along the adapter's migration chain (spec §7.2). Reading a version the adapter does not
5
+ * declare is refused with `UNSUPPORTED_FORMAT_VERSION`. Persisting the migrated content only happens on the next
6
+ * commit.
6
7
  */
7
- export function migrateContent(kind, content, schemaVersion, locale) {
8
- if (schemaVersion > kind.version) {
9
- throw new ArtifactError('UNSUPPORTED_VERSION', t(locale, 'UNSUPPORTED_VERSION', { found: schemaVersion, supported: kind.version, kind: kind.kind }), { details: { found: schemaVersion, supported: kind.version } });
8
+ export function migrateContent(adapter, content, formatVersion, locale) {
9
+ if (formatVersion === adapter.formatVersion)
10
+ return { content, formatVersion, migrated: false };
11
+ if (!adapter.readableVersions.includes(formatVersion)) {
12
+ throw new ArtifactError('UNSUPPORTED_FORMAT_VERSION', t(locale, 'UNSUPPORTED_FORMAT_VERSION', {
13
+ found: formatVersion,
14
+ supported: adapter.readableVersions.join(', '),
15
+ format: adapter.format,
16
+ }), { details: { found: formatVersion, supported: adapter.readableVersions } });
10
17
  }
11
- if (schemaVersion === kind.version)
12
- return { content, schemaVersion, migrated: false };
13
18
  let current = content;
14
- let version = schemaVersion;
15
- const chain = [...kind.migrations].sort((a, b) => a.from - b.from);
16
- while (version < kind.version) {
17
- const step = chain.find((migration) => migration.from === version);
19
+ let version = formatVersion;
20
+ while (version !== adapter.formatVersion) {
21
+ const step = adapter.migrations.find((migration) => migration.from === version);
18
22
  if (!step) {
19
- throw new ArtifactError('MIGRATION_FAILED', t(locale, 'MIGRATION_FAILED', { from: version, to: version + 1 }));
23
+ throw new ArtifactError('MIGRATION_FAILED', t(locale, 'MIGRATION_FAILED', { from: version, to: adapter.formatVersion }));
20
24
  }
21
25
  try {
22
26
  current = step.migrate(structuredClone(current));
23
27
  }
24
28
  catch (cause) {
25
- throw new ArtifactError('MIGRATION_FAILED', t(locale, 'MIGRATION_FAILED', { from: step.from, to: step.to }), { cause });
29
+ throw new ArtifactError('MIGRATION_FAILED', t(locale, 'MIGRATION_FAILED', { from: step.from, to: step.to }), {
30
+ cause,
31
+ });
26
32
  }
27
33
  version = step.to;
28
34
  }
29
- return { content: current, schemaVersion: version, migrated: true };
35
+ return { content: current, formatVersion: version, migrated: true };
30
36
  }
31
37
  //# sourceMappingURL=migrations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAC;AAS9B;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAqB,EACrB,OAAgB,EAChB,aAAqB,EACrB,MAAe;IAEf,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,aAAa,CACrB,qBAAqB,EACrB,CAAC,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EACpG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,KAAK,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACvF,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,OAAO,GAAG,aAAa,CAAC;IAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAClE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAC/D,EAAE,KAAK,EAAE,CACV,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAC;AAQ9B;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAyB,EACzB,OAAgB,EAChB,aAAqB,EACrB,MAAe;IAEf,IAAI,aAAa,KAAK,OAAO,CAAC,aAAa;QAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAChG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,aAAa,CACrB,4BAA4B,EAC5B,CAAC,CAAC,MAAM,EAAE,4BAA4B,EAAE;YACtC,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,EACF,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAC3E,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,OAAO,GAAG,aAAa,CAAC;IAC5B,OAAO,OAAO,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAC5E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAC/D;gBACE,KAAK;aACN,CACF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtE,CAAC"}
@@ -1,10 +1,26 @@
1
- import type { Projection, ProjectionOptions } from './kind.js';
1
+ import type { ReadMode } from './adapter.js';
2
2
  export declare const DEFAULT_CHARS_PER_TOKEN = 4;
3
+ export interface Projection {
4
+ text: string;
5
+ truncated: boolean;
6
+ /** Present when truncated: pass it back to continue reading. */
7
+ cursor?: string;
8
+ /** Outline of what was left out, so the model can jump with `range`. */
9
+ remainingOutline?: string;
10
+ }
11
+ export interface ProjectionOptions {
12
+ mode: ReadMode;
13
+ /** Format-specific range: anchors, A1 ranges, declaration names or 1-based positions ("3-5"). */
14
+ range?: string;
15
+ maxTokens?: number;
16
+ cursor?: string;
17
+ charsPerToken?: number;
18
+ }
3
19
  export declare function estimateTokens(text: string, charsPerToken?: number): number;
4
20
  /** One unit of projected text. Truncation only happens between items. */
5
21
  export interface ProjectionItem {
6
22
  id: string;
7
- /** Full text for `full` and `range` modes. */
23
+ /** Full text for `full`, `section` and `range` modes. */
8
24
  text: string;
9
25
  /** One-line summary used for `outline` and for the remaining outline after truncation. */
10
26
  outline: string;
@@ -19,18 +35,18 @@ export interface PaginateOptions {
19
35
  outlineOnly?: boolean;
20
36
  }
21
37
  /**
22
- * Joins items under a token budget (spec §9.2). When the budget runs out, the text is cut at an item
23
- * boundary and a cursor plus the outline of the remaining items is returned.
38
+ * Joins items under a token budget (spec §10.2 of the reading rules). When the budget runs out, the text is cut at an
39
+ * item boundary and a cursor plus the outline of the remaining items is returned.
24
40
  */
25
41
  export declare function paginate(items: ProjectionItem[], options?: PaginateOptions): Projection;
26
- /** Wraps a projection between explicit data markers so the model treats it as data, not instructions (spec §16). */
42
+ /** Wraps a projection between explicit data markers so the model treats it as data, not instructions (spec §18). */
27
43
  export declare function delimitProjection(artifactId: string, text: string): string;
28
44
  /**
29
45
  * Parses a range like "a..c", "3-5", "2" or "a,b" against an ordered id list. Numbers are 1-based positions.
30
46
  * Returns the selected ids in document order, or undefined when the range does not match anything.
31
47
  */
32
48
  export declare function selectRange(ids: readonly string[], range: string | undefined): string[] | undefined;
33
- /** Applies mode/range/budget to a list of items. Kinds with simple ordered items can use it directly. */
49
+ /** Applies mode/range/budget to a list of items. Adapters with ordered items can use it directly. */
34
50
  export declare function projectItems(items: ProjectionItem[], options: ProjectionOptions, extras?: {
35
51
  header?: string;
36
52
  footer?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE/D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,SAA0B,GAAG,MAAM,CAE5F;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAQD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,GAAE,eAAoB,GAAG,UAAU,CA4B3F;AAED,oHAAoH;AACpH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAwBnG;AAYD,yGAAyG;AACzG,wBAAgB,YAAY,CAC1B,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,UAAU,CAgBZ;AAED,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,CAGvD"}
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,SAA0B,GAAG,MAAM,CAE5F;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAQD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,GAAE,eAAoB,GAAG,UAAU,CA4B3F;AAED,oHAAoH;AACpH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAwBnG;AAYD,qGAAqG;AACrG,wBAAgB,YAAY,CAC1B,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,UAAU,CAgBZ;AAED,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,CAGvD"}
@@ -9,8 +9,8 @@ function decodeCursor(cursor) {
9
9
  return match ? Number(match[1]) : 0;
10
10
  }
11
11
  /**
12
- * Joins items under a token budget (spec §9.2). When the budget runs out, the text is cut at an item
13
- * boundary and a cursor plus the outline of the remaining items is returned.
12
+ * Joins items under a token budget (spec §10.2 of the reading rules). When the budget runs out, the text is cut at an
13
+ * item boundary and a cursor plus the outline of the remaining items is returned.
14
14
  */
15
15
  export function paginate(items, options = {}) {
16
16
  const start = Math.min(decodeCursor(options.cursor), items.length);
@@ -44,7 +44,7 @@ export function paginate(items, options = {}) {
44
44
  parts.push(options.footer);
45
45
  return { text: parts.join('\n'), truncated: false };
46
46
  }
47
- /** Wraps a projection between explicit data markers so the model treats it as data, not instructions (spec §16). */
47
+ /** Wraps a projection between explicit data markers so the model treats it as data, not instructions (spec §18). */
48
48
  export function delimitProjection(artifactId, text) {
49
49
  return `<artifact-content id="${artifactId}">\n${text}\n</artifact-content>`;
50
50
  }
@@ -92,10 +92,10 @@ function resolvePosition(ids, token) {
92
92
  }
93
93
  return undefined;
94
94
  }
95
- /** Applies mode/range/budget to a list of items. Kinds with simple ordered items can use it directly. */
95
+ /** Applies mode/range/budget to a list of items. Adapters with ordered items can use it directly. */
96
96
  export function projectItems(items, options, extras = {}) {
97
97
  let selected = items;
98
- if (options.mode === 'range') {
98
+ if (options.mode === 'range' || options.mode === 'statements' || options.mode === 'section') {
99
99
  const ids = selectRange(items.map((item) => item.id), options.range);
100
100
  selected = ids ? items.filter((item) => ids.includes(item.id)) : [];
101
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import { type AnyFormatAdapter, type FormatLimits } from './adapter.js';
1
2
  import type { AssetResolver } from './assets.js';
2
- import { type AnyArtifactKind, type KindLimits } from './kind.js';
3
3
  import type { Logger } from './logger.js';
4
4
  import { type Theme } from './theme.js';
5
5
  export declare const EXPORT_FORMATS: readonly ['docx', 'xlsx', 'pptx', 'svg', 'png', 'pdf', 'md', 'html', 'csv', 'zip'];
@@ -11,14 +11,15 @@ export interface ExportContext {
11
11
  assets: AssetResolver;
12
12
  logger: Logger;
13
13
  signal?: AbortSignal;
14
- /** Records a fidelity degradation (spec §12.4), returned to the caller as `warnings`. */
14
+ /** Records a fidelity degradation (spec §13), returned to the caller as `warnings`. */
15
15
  warn(message: string): void;
16
16
  /** Exporter-specific options (e.g. `sheet` for per-sheet CSV). */
17
17
  options?: Record<string, unknown>;
18
18
  }
19
+ /** Exporters live beside the adapter (spec §8): `format` is the native source, `target` the file format. */
19
20
  export interface ArtifactExporter<Content = unknown> {
20
- kind: string;
21
- format: ExportFormat;
21
+ format: string;
22
+ target: ExportFormat;
22
23
  mimeType: string;
23
24
  extension: string;
24
25
  runtime: 'any' | 'node' | 'browser';
@@ -26,26 +27,26 @@ export interface ArtifactExporter<Content = unknown> {
26
27
  }
27
28
  export type AnyArtifactExporter = ArtifactExporter<any>;
28
29
  export interface BatchLimits {
29
- /** Operations per batch (spec §6.6: 200). */
30
+ /** Operations per batch (spec §7.5: 200). */
30
31
  maxOperations: number;
31
- /** Serialized envelope size in bytes (spec §6.6: 5 MB). */
32
+ /** Serialized envelope size in bytes (spec §7.5: 5 MB). */
32
33
  maxEnvelopeBytes: number;
33
34
  }
34
35
  export declare const DEFAULT_BATCH_LIMITS: BatchLimits;
35
36
  export interface RegistryOptions {
36
- kinds?: AnyArtifactKind[];
37
+ formats?: AnyFormatAdapter[];
37
38
  themes?: Theme[];
38
39
  exporters?: AnyArtifactExporter[];
39
- /** Per-kind overrides of the default limits. */
40
- limits?: Record<string, Partial<KindLimits>>;
40
+ /** Per-format overrides of the default limits. */
41
+ limits?: Record<string, Partial<FormatLimits>>;
41
42
  batch?: Partial<BatchLimits>;
42
43
  }
43
44
  export interface ArtifactRegistry {
44
- register(kind: AnyArtifactKind): void;
45
- get(kind: string, locale?: string): AnyArtifactKind;
46
- has(kind: string): boolean;
47
- kinds(): AnyArtifactKind[];
48
- limits(kind: string): KindLimits;
45
+ register(adapter: AnyFormatAdapter): void;
46
+ get(format: string, locale?: string): AnyFormatAdapter;
47
+ has(format: string): boolean;
48
+ formats(): AnyFormatAdapter[];
49
+ limits(format: string): FormatLimits;
49
50
  readonly batch: BatchLimits;
50
51
  registerTheme(theme: Theme): void;
51
52
  theme(id: string, locale?: string): Theme;
@@ -54,8 +55,8 @@ export interface ArtifactRegistry {
54
55
  registerExporter(exporter: AnyArtifactExporter, options?: {
55
56
  replace?: boolean;
56
57
  }): void;
57
- exporter(kind: string, format: string, locale?: string): AnyArtifactExporter;
58
- exporters(kind?: string): AnyArtifactExporter[];
58
+ exporter(format: string, target: string, locale?: string): AnyArtifactExporter;
59
+ exporters(format?: string): AnyArtifactExporter[];
59
60
  }
60
61
  export declare function createRegistry(options?: RegistryOptions): ArtifactRegistry;
61
62
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}