@growth-labs/cms 0.3.1 → 0.5.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.
- package/README.md +80 -6
- package/dist/engine/content-metadata.d.ts +13 -0
- package/dist/engine/content-metadata.d.ts.map +1 -0
- package/dist/engine/content-metadata.js +80 -0
- package/dist/engine/content-metadata.js.map +1 -0
- package/dist/engine/foundry-dispatch.d.ts +5 -1
- package/dist/engine/foundry-dispatch.d.ts.map +1 -1
- package/dist/engine/foundry-dispatch.js +19 -3
- package/dist/engine/foundry-dispatch.js.map +1 -1
- package/dist/engine/index.d.ts +4 -2
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +6 -2
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/publication.d.ts +29 -1
- package/dist/engine/publication.d.ts.map +1 -1
- package/dist/engine/publication.js +197 -15
- package/dist/engine/publication.js.map +1 -1
- package/dist/engine/published-content.d.ts +40 -0
- package/dist/engine/published-content.d.ts.map +1 -0
- package/dist/engine/published-content.js +388 -0
- package/dist/engine/published-content.js.map +1 -0
- package/dist/engine/publisher.d.ts +20 -1
- package/dist/engine/publisher.d.ts.map +1 -1
- package/dist/engine/publisher.js +264 -65
- package/dist/engine/publisher.js.map +1 -1
- package/dist/engine/revisions.d.ts.map +1 -1
- package/dist/engine/revisions.js +2 -0
- package/dist/engine/revisions.js.map +1 -1
- package/dist/providers/types.d.ts +1 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/routes/content.d.ts.map +1 -1
- package/dist/routes/content.js +76 -16
- package/dist/routes/content.js.map +1 -1
- package/dist/routes/context.d.ts +1 -0
- package/dist/routes/context.d.ts.map +1 -1
- package/dist/routes/context.js.map +1 -1
- package/dist/routes/media.d.ts.map +1 -1
- package/dist/routes/media.js +53 -31
- package/dist/routes/media.js.map +1 -1
- package/dist/schema/migrations.d.ts.map +1 -1
- package/dist/schema/migrations.js +24 -0
- package/dist/schema/migrations.js.map +1 -1
- package/dist/schema/types.d.ts +6 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js.map +1 -1
- package/dist/ui/editor/ContentForm.d.ts.map +1 -1
- package/dist/ui/editor/ContentForm.js +65 -10
- package/dist/ui/editor/ContentForm.js.map +1 -1
- package/dist/ui/editor/content-payload.d.ts +2 -0
- package/dist/ui/editor/content-payload.d.ts.map +1 -1
- package/dist/ui/editor/content-payload.js +15 -4
- package/dist/ui/editor/content-payload.js.map +1 -1
- package/dist/ui/editor/editor-media-duration.d.ts +24 -0
- package/dist/ui/editor/editor-media-duration.d.ts.map +1 -0
- package/dist/ui/editor/editor-media-duration.js +51 -0
- package/dist/ui/editor/editor-media-duration.js.map +1 -0
- package/dist/ui/screens/MediaScreen.d.ts.map +1 -1
- package/dist/ui/screens/MediaScreen.js +8 -1
- package/dist/ui/screens/MediaScreen.js.map +1 -1
- package/dist/ui/screens/media-upload.d.ts +9 -2
- package/dist/ui/screens/media-upload.d.ts.map +1 -1
- package/dist/ui/screens/media-upload.js +24 -0
- package/dist/ui/screens/media-upload.js.map +1 -1
- package/migrations/0020_content_metadata_read_model.sql +19 -0
- package/migrations/0021_published_revision_slug_index.sql +5 -0
- package/package.json +1 -1
- package/src/engine/content-metadata.ts +122 -0
- package/src/engine/foundry-dispatch.ts +32 -4
- package/src/engine/index.ts +27 -0
- package/src/engine/publication.ts +329 -18
- package/src/engine/published-content.ts +581 -0
- package/src/engine/publisher.ts +403 -107
- package/src/engine/revisions.ts +4 -0
- package/src/providers/types.ts +1 -0
- package/src/routes/content.ts +91 -16
- package/src/routes/context.ts +1 -0
- package/src/routes/media.ts +63 -41
- package/src/schema/migrations.ts +24 -0
- package/src/schema/types.ts +6 -0
- package/src/ui/editor/ContentForm.tsx +121 -4
- package/src/ui/editor/content-payload.ts +20 -2
- package/src/ui/editor/editor-media-duration.ts +75 -0
- package/src/ui/screens/MediaScreen.tsx +13 -2
- package/src/ui/screens/media-upload.ts +41 -2
package/dist/engine/publisher.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { serializeContentMetadata } from './content-metadata.js';
|
|
1
2
|
import { evaluateArticleBody } from './publish-guard.js';
|
|
2
3
|
import { slugify } from './slug.js';
|
|
3
4
|
function isBodyBackedContentType(type) {
|
|
@@ -40,16 +41,154 @@ export function estimateReadTime(wordCount) {
|
|
|
40
41
|
function isBodyBackedContentInput(input) {
|
|
41
42
|
return isBodyBackedContentType(input.type);
|
|
42
43
|
}
|
|
44
|
+
function assertValidMediaDuration(value) {
|
|
45
|
+
if (value === null || value === undefined)
|
|
46
|
+
return;
|
|
47
|
+
if (typeof value !== 'number' ||
|
|
48
|
+
!Number.isFinite(value) ||
|
|
49
|
+
!Number.isInteger(value) ||
|
|
50
|
+
value <= 0) {
|
|
51
|
+
throw new Error('Media duration must be a positive integer when supplied');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class VerifiedMediaDurationConflictError extends Error {
|
|
55
|
+
code = 'verified_duration_conflict';
|
|
56
|
+
constructor() {
|
|
57
|
+
super('Media duration conflicts with verified upload duration');
|
|
58
|
+
this.name = 'VerifiedMediaDurationConflictError';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function parseVerifiedMediaDuration(variantsJson) {
|
|
62
|
+
if (!variantsJson)
|
|
63
|
+
return null;
|
|
64
|
+
try {
|
|
65
|
+
const parsed = JSON.parse(variantsJson);
|
|
66
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
67
|
+
return null;
|
|
68
|
+
const durationSeconds = parsed.durationSeconds;
|
|
69
|
+
return typeof durationSeconds === 'number' &&
|
|
70
|
+
Number.isFinite(durationSeconds) &&
|
|
71
|
+
Number.isInteger(durationSeconds) &&
|
|
72
|
+
durationSeconds > 0
|
|
73
|
+
? durationSeconds
|
|
74
|
+
: null;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async function loadVerifiedMediaDuration(db, kind, source) {
|
|
81
|
+
if (!source)
|
|
82
|
+
return null;
|
|
83
|
+
const isHttpUrl = /^https?:\/\//i.test(source);
|
|
84
|
+
const statement = kind === 'video'
|
|
85
|
+
? isHttpUrl
|
|
86
|
+
? db
|
|
87
|
+
.prepare(`SELECT variants_json
|
|
88
|
+
FROM media_assets
|
|
89
|
+
WHERE asset_type = 'video'
|
|
90
|
+
AND source_type = 'editor-video-source'
|
|
91
|
+
AND (url = ? OR public_url = ?)`)
|
|
92
|
+
.bind(source, source)
|
|
93
|
+
: db
|
|
94
|
+
.prepare(`SELECT variants_json
|
|
95
|
+
FROM media_assets
|
|
96
|
+
WHERE asset_type = 'video'
|
|
97
|
+
AND source_type = 'editor-video-source'
|
|
98
|
+
AND (id = ? OR object_key = ?)`)
|
|
99
|
+
.bind(source, source)
|
|
100
|
+
: db
|
|
101
|
+
.prepare(`SELECT variants_json
|
|
102
|
+
FROM media_assets
|
|
103
|
+
WHERE asset_type = 'audio'
|
|
104
|
+
AND source_type = 'editor-upload'
|
|
105
|
+
AND (id = ? OR object_key = ?)`)
|
|
106
|
+
.bind(source, source);
|
|
107
|
+
const rows = await statement.all();
|
|
108
|
+
const durations = new Set();
|
|
109
|
+
for (const row of rows.results ?? []) {
|
|
110
|
+
const duration = parseVerifiedMediaDuration(row.variants_json);
|
|
111
|
+
if (duration !== null)
|
|
112
|
+
durations.add(duration);
|
|
113
|
+
}
|
|
114
|
+
if (durations.size > 1) {
|
|
115
|
+
// Multiple exact package-owned identities disagreeing is unsafe to guess.
|
|
116
|
+
throw new VerifiedMediaDurationConflictError();
|
|
117
|
+
}
|
|
118
|
+
return durations.values().next().value ?? null;
|
|
119
|
+
}
|
|
120
|
+
async function resolveMediaDuration(db, kind, source, suppliedDuration) {
|
|
121
|
+
assertValidMediaDuration(suppliedDuration);
|
|
122
|
+
const verifiedDuration = await loadVerifiedMediaDuration(db, kind, source);
|
|
123
|
+
if (verifiedDuration === null)
|
|
124
|
+
return suppliedDuration ?? null;
|
|
125
|
+
if (suppliedDuration !== null &&
|
|
126
|
+
suppliedDuration !== undefined &&
|
|
127
|
+
suppliedDuration !== verifiedDuration) {
|
|
128
|
+
throw new VerifiedMediaDurationConflictError();
|
|
129
|
+
}
|
|
130
|
+
return verifiedDuration;
|
|
131
|
+
}
|
|
132
|
+
function normalizeSourceId(value) {
|
|
133
|
+
if (value === null || value === undefined)
|
|
134
|
+
return null;
|
|
135
|
+
if (typeof value !== 'string' || !value || value !== value.trim() || value.length > 256) {
|
|
136
|
+
throw new TypeError('sourceId must be a trimmed non-empty string of at most 256 characters');
|
|
137
|
+
}
|
|
138
|
+
return value;
|
|
139
|
+
}
|
|
140
|
+
function normalizeInitialTimestamps(value) {
|
|
141
|
+
const timestamps = value ?? {};
|
|
142
|
+
for (const [field, candidate] of [
|
|
143
|
+
['publishedAt', timestamps.publishedAt],
|
|
144
|
+
['createdAt', timestamps.createdAt],
|
|
145
|
+
['updatedAt', timestamps.updatedAt],
|
|
146
|
+
]) {
|
|
147
|
+
if (candidate !== null && candidate !== undefined) {
|
|
148
|
+
if (!Number.isSafeInteger(candidate) || candidate < 0) {
|
|
149
|
+
throw new TypeError(`${field} must be a non-negative epoch second`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
const publishTz = timestamps.publishTz;
|
|
154
|
+
if (publishTz !== null &&
|
|
155
|
+
publishTz !== undefined &&
|
|
156
|
+
(typeof publishTz !== 'string' ||
|
|
157
|
+
!publishTz.trim() ||
|
|
158
|
+
publishTz !== publishTz.trim() ||
|
|
159
|
+
publishTz.length > 64)) {
|
|
160
|
+
throw new TypeError('publishTz must be a trimmed non-empty string of at most 64 characters');
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
publishedAt: timestamps.publishedAt ?? null,
|
|
164
|
+
createdAt: timestamps.createdAt ?? null,
|
|
165
|
+
updatedAt: timestamps.updatedAt ?? null,
|
|
166
|
+
publishTz: publishTz ?? null,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
43
169
|
export async function ensureUniqueSlug(db, slug, excludeId) {
|
|
44
170
|
const base = slugify(slug);
|
|
45
171
|
let candidate = base;
|
|
46
172
|
let suffix = 2;
|
|
47
173
|
while (true) {
|
|
48
|
-
const
|
|
174
|
+
const draftRow = await db
|
|
49
175
|
.prepare('SELECT id FROM content_items WHERE slug = ? LIMIT 1')
|
|
50
176
|
.bind(candidate)
|
|
51
177
|
.first();
|
|
52
|
-
|
|
178
|
+
const publishedRow = await db
|
|
179
|
+
.prepare(`SELECT ci.id
|
|
180
|
+
FROM content_items ci
|
|
181
|
+
JOIN content_revisions cr
|
|
182
|
+
ON cr.id = ci.published_revision_id AND cr.content_id = ci.id
|
|
183
|
+
WHERE ci.status = 'published'
|
|
184
|
+
AND ci.deleted_at IS NULL
|
|
185
|
+
AND json_extract(cr.payload_json, '$.item.slug') = ?
|
|
186
|
+
LIMIT 1`)
|
|
187
|
+
.bind(candidate)
|
|
188
|
+
.first();
|
|
189
|
+
const draftAvailable = !draftRow || (excludeId !== undefined && draftRow.id === excludeId);
|
|
190
|
+
const publishedAvailable = !publishedRow || (excludeId !== undefined && publishedRow.id === excludeId);
|
|
191
|
+
if (draftAvailable && publishedAvailable) {
|
|
53
192
|
return candidate;
|
|
54
193
|
}
|
|
55
194
|
candidate = `${base}-${suffix}`;
|
|
@@ -122,19 +261,29 @@ export async function getContentRelations(db, contentId) {
|
|
|
122
261
|
return result.results || [];
|
|
123
262
|
}
|
|
124
263
|
export async function createContent(db, input) {
|
|
264
|
+
const resolvedMediaDuration = input.type === 'video'
|
|
265
|
+
? await resolveMediaDuration(db, 'video', input.content.processingSourceUrl, input.content.durationSeconds)
|
|
266
|
+
: input.type === 'podcast'
|
|
267
|
+
? await resolveMediaDuration(db, 'podcast', input.content.audioR2Key, input.content.durationSeconds)
|
|
268
|
+
: null;
|
|
125
269
|
const id = crypto.randomUUID();
|
|
126
270
|
const slug = await ensureUniqueSlug(db, input.slug);
|
|
127
271
|
const visibility = input.visibility || 'free';
|
|
128
272
|
const primaryCategory = input.primaryCategory || 'analysis';
|
|
273
|
+
const metadataJson = serializeContentMetadata(input.metadata);
|
|
274
|
+
const sourceId = normalizeSourceId(input.sourceId);
|
|
275
|
+
const initialTimestamps = normalizeInitialTimestamps(input.initialTimestamps);
|
|
129
276
|
await db
|
|
130
277
|
.prepare(`
|
|
131
278
|
INSERT INTO content_items (
|
|
132
279
|
id, type, status, visibility, slug, title, seo_title, description, excerpt,
|
|
133
280
|
byline, channel, primary_topic, featured, author_id, hero_image_id,
|
|
134
|
-
hero_image_alt, hero_image_caption, social_image_id, canonical_url
|
|
135
|
-
|
|
281
|
+
hero_image_alt, hero_image_caption, social_image_id, canonical_url,
|
|
282
|
+
metadata_json, source_id, published_at, created_at, updated_at, publish_tz
|
|
283
|
+
) VALUES (?, ?, 'draft', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
|
284
|
+
COALESCE(?, unixepoch()), COALESCE(?, unixepoch()), COALESCE(?, 'Europe/Paris'))
|
|
136
285
|
`)
|
|
137
|
-
.bind(id, input.type, visibility, slug, input.title, input.seoTitle || null, input.description || null, input.excerpt || null, input.byline || null, primaryCategory, input.primaryTopic || null, input.featured ? 1 : 0, input.authorId || null, input.heroImageId || null, input.heroImageAlt || null, input.heroImageCaption || null, input.socialImageId || null, input.canonicalUrl || null)
|
|
286
|
+
.bind(id, input.type, visibility, slug, input.title, input.seoTitle || null, input.description || null, input.excerpt || null, input.byline || null, primaryCategory, input.primaryTopic || null, input.featured ? 1 : 0, input.authorId || null, input.heroImageId || null, input.heroImageAlt || null, input.heroImageCaption || null, input.socialImageId || null, input.canonicalUrl || null, metadataJson, sourceId, initialTimestamps.publishedAt, initialTimestamps.createdAt, initialTimestamps.updatedAt, initialTimestamps.publishTz)
|
|
138
287
|
.run();
|
|
139
288
|
if (isBodyBackedContentInput(input)) {
|
|
140
289
|
const wc = input.content.wordCount ?? countWords(input.content.bodyMarkdown);
|
|
@@ -157,14 +306,14 @@ export async function createContent(db, input) {
|
|
|
157
306
|
processing_source_url,
|
|
158
307
|
processing_source_kind
|
|
159
308
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
160
|
-
.bind(id, input.content.script, input.content.videoId,
|
|
309
|
+
.bind(id, input.content.script, input.content.videoId, resolvedMediaDuration, input.content.thumbnailImageId || null, initialVideoProcessingState, input.content.processingSourceUrl || null, input.content.processingSourceKind || null)
|
|
161
310
|
.run();
|
|
162
311
|
}
|
|
163
312
|
if (input.type === 'podcast') {
|
|
164
313
|
await db
|
|
165
314
|
.prepare(`INSERT INTO podcast_content (content_id, transcript, audio_r2_key, duration_seconds)
|
|
166
315
|
VALUES (?, ?, ?, ?)`)
|
|
167
|
-
.bind(id, input.content.transcript, input.content.audioR2Key,
|
|
316
|
+
.bind(id, input.content.transcript, input.content.audioR2Key, resolvedMediaDuration)
|
|
168
317
|
.run();
|
|
169
318
|
}
|
|
170
319
|
if (input.tags) {
|
|
@@ -183,6 +332,89 @@ export async function updateContentItem(db, id, input) {
|
|
|
183
332
|
if (!existing)
|
|
184
333
|
return null;
|
|
185
334
|
const hasOwn = (source, key) => Object.hasOwn(source, key);
|
|
335
|
+
let videoUpdatePlan;
|
|
336
|
+
let podcastUpdatePlan;
|
|
337
|
+
// Resolve all media identity/duration invariants before the base content row,
|
|
338
|
+
// tags, or relations can be mutated. D1 does not provide a transaction on the
|
|
339
|
+
// structural surface used here, so validation must be a strict preflight.
|
|
340
|
+
if (input.content && existing.type === 'video') {
|
|
341
|
+
const current = await db
|
|
342
|
+
.prepare(`SELECT script, video_id, duration_seconds, thumbnail_image_id,
|
|
343
|
+
processing_source_url, processing_source_kind
|
|
344
|
+
FROM video_content
|
|
345
|
+
WHERE content_id = ?
|
|
346
|
+
LIMIT 1`)
|
|
347
|
+
.bind(id)
|
|
348
|
+
.first();
|
|
349
|
+
if (current) {
|
|
350
|
+
const videoContent = input.content;
|
|
351
|
+
const sourceUrl = hasOwn(videoContent, 'processingSourceUrl')
|
|
352
|
+
? (videoContent.processingSourceUrl ?? null)
|
|
353
|
+
: current.processing_source_url;
|
|
354
|
+
const sourceKind = hasOwn(videoContent, 'processingSourceKind')
|
|
355
|
+
? (videoContent.processingSourceKind ?? null)
|
|
356
|
+
: current.processing_source_kind;
|
|
357
|
+
const sourceChanged = sourceUrl !== current.processing_source_url || sourceKind !== current.processing_source_kind;
|
|
358
|
+
const durationProvided = hasOwn(videoContent, 'durationSeconds');
|
|
359
|
+
const resolvedDuration = await resolveMediaDuration(db, 'video', sourceUrl, durationProvided ? videoContent.durationSeconds : undefined);
|
|
360
|
+
videoUpdatePlan = {
|
|
361
|
+
script: hasOwn(videoContent, 'script')
|
|
362
|
+
? (videoContent.script ?? current.script)
|
|
363
|
+
: current.script,
|
|
364
|
+
videoId: hasOwn(videoContent, 'videoId')
|
|
365
|
+
? (videoContent.videoId ?? current.video_id)
|
|
366
|
+
: current.video_id,
|
|
367
|
+
durationSeconds: durationProvided || sourceChanged
|
|
368
|
+
? resolvedDuration
|
|
369
|
+
: (resolvedDuration ?? current.duration_seconds),
|
|
370
|
+
thumbnailImageId: hasOwn(videoContent, 'thumbnailImageId')
|
|
371
|
+
? (videoContent.thumbnailImageId ?? null)
|
|
372
|
+
: current.thumbnail_image_id,
|
|
373
|
+
sourceUrl,
|
|
374
|
+
sourceKind,
|
|
375
|
+
sourceChanged,
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
videoUpdatePlan = null;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
if (input.content && existing.type === 'podcast') {
|
|
383
|
+
const current = await db
|
|
384
|
+
.prepare(`SELECT transcript, audio_r2_key, duration_seconds, processing_trigger_token
|
|
385
|
+
FROM podcast_content
|
|
386
|
+
WHERE content_id = ?
|
|
387
|
+
LIMIT 1`)
|
|
388
|
+
.bind(id)
|
|
389
|
+
.first();
|
|
390
|
+
if (current) {
|
|
391
|
+
const podcastContent = input.content;
|
|
392
|
+
const audioR2Key = hasOwn(podcastContent, 'audioR2Key')
|
|
393
|
+
? (podcastContent.audioR2Key ?? current.audio_r2_key)
|
|
394
|
+
: current.audio_r2_key;
|
|
395
|
+
const sourceChanged = audioR2Key !== current.audio_r2_key;
|
|
396
|
+
const durationProvided = hasOwn(podcastContent, 'durationSeconds');
|
|
397
|
+
const resolvedDuration = await resolveMediaDuration(db, 'podcast', audioR2Key, durationProvided ? podcastContent.durationSeconds : undefined);
|
|
398
|
+
const replacementTranscriptProvided = hasOwn(podcastContent, 'transcript') && typeof podcastContent.transcript === 'string';
|
|
399
|
+
podcastUpdatePlan = {
|
|
400
|
+
transcript: sourceChanged
|
|
401
|
+
? replacementTranscriptProvided
|
|
402
|
+
? podcastContent.transcript
|
|
403
|
+
: ''
|
|
404
|
+
: replacementTranscriptProvided
|
|
405
|
+
? podcastContent.transcript
|
|
406
|
+
: current.transcript,
|
|
407
|
+
audioR2Key,
|
|
408
|
+
durationSeconds: durationProvided || sourceChanged
|
|
409
|
+
? resolvedDuration
|
|
410
|
+
: (resolvedDuration ?? current.duration_seconds),
|
|
411
|
+
processingTriggerToken: sourceChanged ? null : current.processing_trigger_token,
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
podcastUpdatePlan = null;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
186
418
|
const slug = input.slug ? await ensureUniqueSlug(db, input.slug, id) : existing.slug;
|
|
187
419
|
const visibility = input.visibility || existing.visibility;
|
|
188
420
|
const featured = typeof input.featured === 'boolean' ? (input.featured ? 1 : 0) : existing.featured || 0;
|
|
@@ -221,6 +453,9 @@ export async function updateContentItem(db, id, input) {
|
|
|
221
453
|
const seoFocusKeyword = hasOwn(input, 'seoFocusKeyword')
|
|
222
454
|
? (input.seoFocusKeyword ?? null)
|
|
223
455
|
: (existing.seo_focus_keyword ?? null);
|
|
456
|
+
const metadataJson = hasOwn(input, 'metadata')
|
|
457
|
+
? serializeContentMetadata(input.metadata)
|
|
458
|
+
: existing.metadata_json;
|
|
224
459
|
await db
|
|
225
460
|
.prepare(`
|
|
226
461
|
UPDATE content_items SET
|
|
@@ -242,10 +477,11 @@ export async function updateContentItem(db, id, input) {
|
|
|
242
477
|
canonical_url = ?,
|
|
243
478
|
ai_locked_fields = ?,
|
|
244
479
|
seo_focus_keyword = ?,
|
|
480
|
+
metadata_json = ?,
|
|
245
481
|
updated_at = unixepoch()
|
|
246
482
|
WHERE id = ?
|
|
247
483
|
`)
|
|
248
|
-
.bind(slug, title, seoTitle, description, excerpt, byline, primaryCategory, primaryTopic, featured, visibility, authorId, heroImageId, heroImageAlt, heroImageCaption, socialImageId, canonicalUrl, aiLockedFields, seoFocusKeyword, id)
|
|
484
|
+
.bind(slug, title, seoTitle, description, excerpt, byline, primaryCategory, primaryTopic, featured, visibility, authorId, heroImageId, heroImageAlt, heroImageCaption, socialImageId, canonicalUrl, aiLockedFields, seoFocusKeyword, metadataJson, id)
|
|
249
485
|
.run();
|
|
250
486
|
if (input.tags !== undefined) {
|
|
251
487
|
await setContentTags(db, id, input.tags);
|
|
@@ -309,27 +545,8 @@ export async function updateContentItem(db, id, input) {
|
|
|
309
545
|
.run();
|
|
310
546
|
}
|
|
311
547
|
if (existing.type === 'video') {
|
|
312
|
-
|
|
313
|
-
.prepare(`
|
|
314
|
-
SELECT script, video_id, duration_seconds, thumbnail_image_id,
|
|
315
|
-
processing_source_url, processing_source_kind
|
|
316
|
-
FROM video_content
|
|
317
|
-
WHERE content_id = ?
|
|
318
|
-
LIMIT 1
|
|
319
|
-
`)
|
|
320
|
-
.bind(id)
|
|
321
|
-
.first();
|
|
322
|
-
if (!current)
|
|
548
|
+
if (!videoUpdatePlan)
|
|
323
549
|
return { slug };
|
|
324
|
-
const videoContent = input.content;
|
|
325
|
-
const nextSourceUrl = hasOwn(videoContent, 'processingSourceUrl')
|
|
326
|
-
? (videoContent.processingSourceUrl ?? null)
|
|
327
|
-
: current.processing_source_url;
|
|
328
|
-
const nextSourceKind = hasOwn(videoContent, 'processingSourceKind')
|
|
329
|
-
? (videoContent.processingSourceKind ?? null)
|
|
330
|
-
: current.processing_source_kind;
|
|
331
|
-
const sourceChanged = nextSourceUrl !== current.processing_source_url ||
|
|
332
|
-
nextSourceKind !== current.processing_source_kind;
|
|
333
550
|
await db
|
|
334
551
|
.prepare(`
|
|
335
552
|
UPDATE video_content SET
|
|
@@ -353,44 +570,23 @@ export async function updateContentItem(db, id, input) {
|
|
|
353
570
|
hls_manifest_url = CASE WHEN ? THEN NULL ELSE hls_manifest_url END,
|
|
354
571
|
hls_poster_url = CASE WHEN ? THEN NULL ELSE hls_poster_url END
|
|
355
572
|
WHERE content_id = ?
|
|
356
|
-
|
|
357
|
-
.bind(
|
|
358
|
-
? (videoContent.videoId ?? current.video_id)
|
|
359
|
-
: current.video_id, hasOwn(videoContent, 'durationSeconds')
|
|
360
|
-
? (videoContent.durationSeconds ?? null)
|
|
361
|
-
: current.duration_seconds, hasOwn(videoContent, 'thumbnailImageId')
|
|
362
|
-
? (videoContent.thumbnailImageId ?? null)
|
|
363
|
-
: current.thumbnail_image_id, nextSourceUrl, nextSourceKind, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, sourceChanged ? 1 : 0, id)
|
|
573
|
+
`)
|
|
574
|
+
.bind(videoUpdatePlan.script, videoUpdatePlan.videoId, videoUpdatePlan.durationSeconds, videoUpdatePlan.thumbnailImageId, videoUpdatePlan.sourceUrl, videoUpdatePlan.sourceKind, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, videoUpdatePlan.sourceChanged ? 1 : 0, id)
|
|
364
575
|
.run();
|
|
365
576
|
}
|
|
366
577
|
if (existing.type === 'podcast') {
|
|
367
|
-
|
|
368
|
-
.prepare(`
|
|
369
|
-
SELECT transcript, audio_r2_key, duration_seconds
|
|
370
|
-
FROM podcast_content
|
|
371
|
-
WHERE content_id = ?
|
|
372
|
-
LIMIT 1
|
|
373
|
-
`)
|
|
374
|
-
.bind(id)
|
|
375
|
-
.first();
|
|
376
|
-
if (!current)
|
|
578
|
+
if (!podcastUpdatePlan)
|
|
377
579
|
return { slug };
|
|
378
|
-
const podcastContent = input.content;
|
|
379
580
|
await db
|
|
380
581
|
.prepare(`
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
: current.transcript, hasOwn(podcastContent, 'audioR2Key')
|
|
390
|
-
? (podcastContent.audioR2Key ?? current.audio_r2_key)
|
|
391
|
-
: current.audio_r2_key, hasOwn(podcastContent, 'durationSeconds')
|
|
392
|
-
? (podcastContent.durationSeconds ?? null)
|
|
393
|
-
: current.duration_seconds, id)
|
|
582
|
+
UPDATE podcast_content SET
|
|
583
|
+
transcript = ?,
|
|
584
|
+
audio_r2_key = ?,
|
|
585
|
+
duration_seconds = ?,
|
|
586
|
+
processing_trigger_token = ?
|
|
587
|
+
WHERE content_id = ?
|
|
588
|
+
`)
|
|
589
|
+
.bind(podcastUpdatePlan.transcript, podcastUpdatePlan.audioR2Key, podcastUpdatePlan.durationSeconds, podcastUpdatePlan.processingTriggerToken, id)
|
|
394
590
|
.run();
|
|
395
591
|
}
|
|
396
592
|
}
|
|
@@ -483,7 +679,8 @@ export async function duplicateContentItem(db, sourceId) {
|
|
|
483
679
|
// DEFAULT (unixepoch()) timestamps; status forced to 'draft', featured to
|
|
484
680
|
// 0, publish_at/published_at/published_revision_id to NULL. (inventory §6)
|
|
485
681
|
//
|
|
486
|
-
// SEO
|
|
682
|
+
// SEO and declared metadata carry over (seo_title, seo_focus_keyword,
|
|
683
|
+
// seo_score, ai_og_image_id, metadata_json)
|
|
487
684
|
// — a duplicate should keep the SEO work already done on the source. But
|
|
488
685
|
// board_position is the source item's slot in the editorial board ordering;
|
|
489
686
|
// a fresh draft copy must NOT inherit it, so it is reset to NULL.
|
|
@@ -494,7 +691,8 @@ export async function duplicateContentItem(db, sourceId) {
|
|
|
494
691
|
hero_image_id, hero_image_alt, hero_image_caption, social_image_id,
|
|
495
692
|
canonical_url, publish_at, published_at,
|
|
496
693
|
publish_tz, ai_locked_fields, published_revision_id,
|
|
497
|
-
seo_focus_keyword, seo_score, ai_og_image_id, board_position
|
|
694
|
+
seo_focus_keyword, seo_score, ai_og_image_id, board_position,
|
|
695
|
+
metadata_json
|
|
498
696
|
)
|
|
499
697
|
SELECT
|
|
500
698
|
?, type, 'draft', visibility, ?, title || ' (Copy)', seo_title, description, excerpt,
|
|
@@ -502,7 +700,8 @@ export async function duplicateContentItem(db, sourceId) {
|
|
|
502
700
|
hero_image_id, hero_image_alt, hero_image_caption, social_image_id,
|
|
503
701
|
canonical_url, NULL, NULL,
|
|
504
702
|
publish_tz, ai_locked_fields, NULL,
|
|
505
|
-
seo_focus_keyword, seo_score, ai_og_image_id, NULL
|
|
703
|
+
seo_focus_keyword, seo_score, ai_og_image_id, NULL,
|
|
704
|
+
metadata_json
|
|
506
705
|
FROM content_items
|
|
507
706
|
WHERE id = ?`)
|
|
508
707
|
.bind(newId, newSlug, sourceId)
|
|
@@ -586,11 +785,11 @@ export async function getContentSnapshot(db, contentId) {
|
|
|
586
785
|
.first();
|
|
587
786
|
}
|
|
588
787
|
const tags = await db
|
|
589
|
-
.prepare('SELECT t.slug FROM content_tag_links l JOIN content_tags t ON t.id = l.tag_id WHERE l.content_id = ?')
|
|
788
|
+
.prepare('SELECT t.slug FROM content_tag_links l JOIN content_tags t ON t.id = l.tag_id WHERE l.content_id = ? ORDER BY t.slug ASC')
|
|
590
789
|
.bind(contentId)
|
|
591
790
|
.all();
|
|
592
791
|
const related = await db
|
|
593
|
-
.prepare('SELECT related_id, rank, reason FROM content_relations WHERE content_id = ? ORDER BY rank ASC')
|
|
792
|
+
.prepare('SELECT related_id, rank, reason FROM content_relations WHERE content_id = ? ORDER BY rank ASC, related_id ASC')
|
|
594
793
|
.bind(contentId)
|
|
595
794
|
.all();
|
|
596
795
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/engine/publisher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/engine/publisher.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAwB,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAEtF,OAAO,EAAE,mBAAmB,EAA4B,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,SAAS,uBAAuB,CAAC,IAAiB;IACjD,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,MAAM,CAAA;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,SAAS,CAAA;AAE7C,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC9C,MAAM,CAA+B;IACrC,OAAO,CAAQ;IAExB,YAAY,OAA4B;QACvC,KAAK,CAAC,4CAA4C,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,CAAC;CACD;AAED,4CAA4C;AAC5C,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,IAAI;SAChB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,cAAc;SAC7C,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,cAAc;SACtC,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC,eAAe;SACzD,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,wBAAwB;SACnD,IAAI,EAAE,CAAA;IACR,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAA;IACpB,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;AACjD,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAA;AAC7D,CAAC;AA4GD,SAAS,wBAAwB,CAAC,KAAyB;IAC1D,OAAO,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAM;IACjD,IACC,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,IAAI,CAAC,EACT,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;IAC3E,CAAC;AACF,CAAC;AAED,MAAM,OAAO,kCAAmC,SAAQ,KAAK;IACnD,IAAI,GAAG,4BAA4B,CAAA;IAE5C;QACC,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAA;IACjD,CAAC;CACD;AAID,SAAS,0BAA0B,CAAC,YAA2B;IAC9D,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAC9B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAChD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAA;QAC/E,MAAM,eAAe,GAAI,MAAkC,CAAC,eAAe,CAAA;QAC3E,OAAO,OAAO,eAAe,KAAK,QAAQ;YACzC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;YAChC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;YACjC,eAAe,GAAG,CAAC;YACnB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,IAAI,CAAA;IACR,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAA;IACZ,CAAC;AACF,CAAC;AAED,KAAK,UAAU,yBAAyB,CACvC,EAAc,EACd,IAAuB,EACvB,MAAiC;IAEjC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9C,MAAM,SAAS,GACd,IAAI,KAAK,OAAO;QACf,CAAC,CAAC,SAAS;YACV,CAAC,CAAC,EAAE;iBACD,OAAO,CACP;;;;0CAImC,CACnC;iBACA,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;YACvB,CAAC,CAAC,EAAE;iBACD,OAAO,CACP;;;;yCAIkC,CAClC;iBACA,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,CAAC,CAAC,EAAE;aACD,OAAO,CACP;;;;wCAIkC,CAClC;aACA,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEzB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAoC,CAAA;IACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC9D,IAAI,QAAQ,KAAK,IAAI;YAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,0EAA0E;QAC1E,MAAM,IAAI,kCAAkC,EAAE,CAAA;IAC/C,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,CAAA;AAC/C,CAAC;AAED,KAAK,UAAU,oBAAoB,CAClC,EAAc,EACd,IAAuB,EACvB,MAAiC,EACjC,gBAAyB;IAEzB,wBAAwB,CAAC,gBAAgB,CAAC,CAAA;IAC1C,MAAM,gBAAgB,GAAG,MAAM,yBAAyB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC1E,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,gBAAgB,IAAI,IAAI,CAAA;IAC9D,IACC,gBAAgB,KAAK,IAAI;QACzB,gBAAgB,KAAK,SAAS;QAC9B,gBAAgB,KAAK,gBAAgB,EACpC,CAAC;QACF,MAAM,IAAI,kCAAkC,EAAE,CAAA;IAC/C,CAAC;IACD,OAAO,gBAAgB,CAAA;AACxB,CAAC;AAyED,SAAS,iBAAiB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACzF,MAAM,IAAI,SAAS,CAAC,uEAAuE,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED,SAAS,0BAA0B,CAAC,KAA8C;IAMjF,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE,CAAA;IAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI;QAChC,CAAC,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC;QACvC,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC;QACnC,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC;KAC1B,EAAE,CAAC;QACZ,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAA;YACpE,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IACtC,IACC,SAAS,KAAK,IAAI;QAClB,SAAS,KAAK,SAAS;QACvB,CAAC,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,SAAS,CAAC,IAAI,EAAE;YACjB,SAAS,KAAK,SAAS,CAAC,IAAI,EAAE;YAC9B,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,EACtB,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,uEAAuE,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO;QACN,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,IAAI;QAC3C,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI;QACvC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI;QACvC,SAAS,EAAE,SAAS,IAAI,IAAI;KAC5B,CAAA;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,EAAc,EACd,IAAY,EACZ,SAAkB;IAElB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,EAAE;aACvB,OAAO,CAAC,qDAAqD,CAAC;aAC9D,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,EAAkB,CAAA;QACzB,MAAM,YAAY,GAAG,MAAM,EAAE;aAC3B,OAAO,CACP;;;;;;;aAOS,CACT;aACA,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,EAAkB,CAAA;QAEzB,MAAM,cAAc,GAAG,CAAC,QAAQ,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;QAC1F,MAAM,kBAAkB,GACvB,CAAC,YAAY,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,YAAY,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;QAC5E,IAAI,cAAc,IAAI,kBAAkB,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAA;QACjB,CAAC;QAED,SAAS,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAA;QAC/B,MAAM,IAAI,CAAC,CAAA;IACZ,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,IAAe;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,OAAO,IAAI;SACT,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAkC;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,UAAU,GAAG,KAAK;SACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACb,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACjE,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAc,EAAE,IAAc;IACvD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,OAAO,GAAmC,EAAE,CAAA;IAElD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,EAAE;aACvB,OAAO,CAAC,0DAA0D,CAAC;aACnE,IAAI,CAAC,GAAG,CAAC;aACT,KAAK,EAAgC,CAAA;QAEvC,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtB,SAAQ;QACT,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QAC9B,MAAM,EAAE;aACN,OAAO,CAAC,6DAA6D,CAAC;aACtE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;aAClB,GAAG,EAAE,CAAA;QAEP,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,EAAc,EACd,SAAiB,EACjB,IAAc;IAEd,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAA;IAC5F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAEnC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;IAEhD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAA;IAE7F,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;IAC3C,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,EAAc,EACd,SAAiB,EACjB,SAA6E;IAE7E,MAAM,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAA;IAC5F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAElC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACxB,0FAA0F,CAC1F,CAAA;IAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;IAChF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,EAAc,EACd,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,EAAE;SACrB,OAAO,CACP,+FAA+F,CAC/F;SACA,IAAI,CAAC,SAAS,CAAC;SACf,GAAG,EAA+D,CAAA;IACpE,OAAO,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,EAAc,EACd,KAAyB;IAEzB,MAAM,qBAAqB,GAC1B,KAAK,CAAC,IAAI,KAAK,OAAO;QACrB,CAAC,CAAC,MAAM,oBAAoB,CAC1B,EAAE,EACF,OAAO,EACP,KAAK,CAAC,OAAO,CAAC,mBAAmB,EACjC,KAAK,CAAC,OAAO,CAAC,eAAe,CAC7B;QACF,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;YACzB,CAAC,CAAC,MAAM,oBAAoB,CAC1B,EAAE,EACF,SAAS,EACT,KAAK,CAAC,OAAO,CAAC,UAAU,EACxB,KAAK,CAAC,OAAO,CAAC,eAAe,CAC7B;YACF,CAAC,CAAC,IAAI,CAAA;IACT,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,MAAM,CAAA;IAC7C,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,UAAU,CAAA;IAC3D,MAAM,YAAY,GAAG,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAClD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAE7E,MAAM,EAAE;SACN,OAAO,CACP;;;;;;;;OAQI,CACJ;SACA,IAAI,CACJ,EAAE,EACF,KAAK,CAAC,IAAI,EACV,UAAU,EACV,IAAI,EACJ,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,OAAO,IAAI,IAAI,EACrB,KAAK,CAAC,MAAM,IAAI,IAAI,EACpB,eAAe,EACf,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,gBAAgB,IAAI,IAAI,EAC9B,KAAK,CAAC,aAAa,IAAI,IAAI,EAC3B,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,YAAY,EACZ,QAAQ,EACR,iBAAiB,CAAC,WAAW,EAC7B,iBAAiB,CAAC,SAAS,EAC3B,iBAAiB,CAAC,SAAS,EAC3B,iBAAiB,CAAC,SAAS,CAC3B;SACA,GAAG,EAAE,CAAA;IAEP,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC5E,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,EAAE;aACN,OAAO,CACP;sCACkC,CAClC;aACA,IAAI,CACJ,EAAE,EACF,KAAK,CAAC,OAAO,CAAC,YAAY,EAC1B,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAC9B,EAAE,IAAI,IAAI,EACV,EAAE,IAAI,IAAI,EACV,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAC9B,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CACjD;aACA,GAAG,EAAE,CAAA;IACR,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE;aACN,OAAO,CACP;;;;;;;;;sCASkC,CAClC;aACA,IAAI,CACJ,EAAE,EACF,KAAK,CAAC,OAAO,CAAC,MAAM,EACpB,KAAK,CAAC,OAAO,CAAC,OAAO,EACrB,qBAAqB,EACrB,KAAK,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,EACtC,2BAA2B,EAC3B,KAAK,CAAC,OAAO,CAAC,mBAAmB,IAAI,IAAI,EACzC,KAAK,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAC1C;aACA,GAAG,EAAE,CAAA;IACR,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,EAAE;aACN,OAAO,CACP;6BACyB,CACzB;aACA,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC;aACnF,GAAG,EAAE,CAAA;IACR,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,EAAc,EACd,EAAU;IAEV,OAAO,EAAE;SACP,OAAO,CAAC,kDAAkD,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC;SACR,KAAK,EAAqB,CAAA;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,EAAc,EACd,EAAU,EACV,KAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE1B,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1E,IAAI,eAAmD,CAAA;IACvD,IAAI,iBAAuD,CAAA;IAE3D,8EAA8E;IAC9E,8EAA8E;IAC9E,0EAA0E;IAC1E,IAAI,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,EAAE;aACtB,OAAO,CACP;;;;aAIS,CACT;aACA,IAAI,CAAC,EAAE,CAAC;aACR,KAAK,EAOF,CAAA;QAEL,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,CAAC,OAAyC,CAAA;YACpE,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC;gBAC5D,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,IAAI,IAAI,CAAC;gBAC5C,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAA;YAChC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC;gBAC9D,CAAC,CAAC,CAAC,YAAY,CAAC,oBAAoB,IAAI,IAAI,CAAC;gBAC7C,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAA;YACjC,MAAM,aAAa,GAClB,SAAS,KAAK,OAAO,CAAC,qBAAqB,IAAI,UAAU,KAAK,OAAO,CAAC,sBAAsB,CAAA;YAC7F,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;YAChE,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAClD,EAAE,EACF,OAAO,EACP,SAAS,EACT,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC3D,CAAA;YAED,eAAe,GAAG;gBACjB,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC;oBACrC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;oBACzC,CAAC,CAAC,OAAO,CAAC,MAAM;gBACjB,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC;oBACvC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;oBAC5C,CAAC,CAAC,OAAO,CAAC,QAAQ;gBACnB,eAAe,EACd,gBAAgB,IAAI,aAAa;oBAChC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;gBAClD,gBAAgB,EAAE,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC;oBACzD,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,IAAI,IAAI,CAAC;oBACzC,CAAC,CAAC,OAAO,CAAC,kBAAkB;gBAC7B,SAAS;gBACT,UAAU;gBACV,aAAa;aACb,CAAA;QACF,CAAC;aAAM,CAAC;YACP,eAAe,GAAG,IAAI,CAAA;QACvB,CAAC;IACF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,EAAE;aACtB,OAAO,CACP;;;aAGS,CACT;aACA,IAAI,CAAC,EAAE,CAAC;aACR,KAAK,EAKF,CAAA;QAEL,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,cAAc,GAAG,KAAK,CAAC,OAA2C,CAAA;YACxE,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC;gBACtD,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;gBACrD,CAAC,CAAC,OAAO,CAAC,YAAY,CAAA;YACvB,MAAM,aAAa,GAAG,UAAU,KAAK,OAAO,CAAC,YAAY,CAAA;YACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;YAClE,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAClD,EAAE,EACF,SAAS,EACT,UAAU,EACV,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC7D,CAAA;YACD,MAAM,6BAA6B,GAClC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,CAAA;YAEtF,iBAAiB,GAAG;gBACnB,UAAU,EAAE,aAAa;oBACxB,CAAC,CAAC,6BAA6B;wBAC9B,CAAC,CAAE,cAAc,CAAC,UAAqB;wBACvC,CAAC,CAAC,EAAE;oBACL,CAAC,CAAC,6BAA6B;wBAC9B,CAAC,CAAE,cAAc,CAAC,UAAqB;wBACvC,CAAC,CAAC,OAAO,CAAC,UAAU;gBACtB,UAAU;gBACV,eAAe,EACd,gBAAgB,IAAI,aAAa;oBAChC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;gBAClD,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB;aAC/E,CAAA;QACF,CAAC;aAAM,CAAC;YACP,iBAAiB,GAAG,IAAI,CAAA;QACzB,CAAC;IACF,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;IACpF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAA;IAC1D,MAAM,QAAQ,GACb,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAA;IACxF,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC;QACvD,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,UAAU,CAAC,CAAA;IACnC,MAAM,cAAc,GACnB,KAAK,CAAC,cAAc,KAAK,SAAS;QACjC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC;QACtC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAA;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAA;IACvF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAA;IAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;QAC/C,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAA;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAA;IACrF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAA;IACjF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;QACjD,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;QAC9B,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAA;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAA;IAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;QAC/C,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAA;IACzB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;QACjD,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;QAC9B,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAA;IAC1B,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC;QACzD,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAClC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAA;IAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC;QACnD,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;QAC/B,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAA;IAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;QACjD,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;QAC9B,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAA;IACzB,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC;QACvD,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAA;IACvC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;QAC7C,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAA;IAEzB,MAAM,EAAE;SACN,OAAO,CACP;;;;;;;;;;;;;;;;;;;;;;;OAuBI,CACJ;SACA,IAAI,CACJ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAO,EACP,MAAM,EACN,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,EAAE,CACF;SACA,GAAG,EAAE,CAAA;IAEP,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,EAAE;iBACtB,OAAO,CACP;;;;;WAKM,CACN;iBACA,IAAI,CAAC,EAAE,CAAC;iBACR,KAAK,EAOF,CAAA;YACL,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YAE7B,MAAM,cAAc,GAAG,KAAK,CAAC,OAE5B,CAAA;YACD,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;YACnE,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;YAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;YAClE,MAAM,gBAAgB,GAAG,oBAAoB;gBAC5C,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;gBACxD,CAAC,CAAC,OAAO,CAAC,aAAa,CAAA;YACxB,MAAM,aAAa,GAAG,iBAAiB;gBACtC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC;gBACpC,CAAC,CAAC,oBAAoB;oBACrB,CAAC,CAAC,gBAAgB;wBACjB,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;wBAC9B,CAAC,CAAC,IAAI;oBACP,CAAC,CAAC,OAAO,CAAC,UAAU,CAAA;YACtB,MAAM,YAAY,GAAG,gBAAgB;gBACpC,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,IAAI,IAAI,CAAC;gBAC1C,CAAC,CAAC,oBAAoB;oBACrB,CAAC,CAAC,aAAa;wBACd,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC;wBACjC,CAAC,CAAC,IAAI;oBACP,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAA;YAC7B,MAAM,EAAE;iBACN,OAAO,CACP;;;;;;;;;;WAUM,CACN;iBACA,IAAI,CACJ,gBAAgB,EAChB,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC;gBACjC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,CAAC;gBACnC,CAAC,CAAC,oBAAoB;oBACrB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,CAAC,SAAS,EACrB,aAAa,EACb,YAAY,EACZ,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EACzF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;gBACxC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,eAAe,CAAC;gBACpD,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAC3B,QAAQ,CAAC,MAAM,KAAK,WAAW,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/D,EAAE,CACF;iBACA,GAAG,EAAE,CAAA;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe;gBAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YACrC,MAAM,EAAE;iBACN,OAAO,CACP;;;;;;;;;;;;;;;;;;;;;;KAsBA,CACA;iBACA,IAAI,CACJ,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,eAAe,EAC/B,eAAe,CAAC,gBAAgB,EAChC,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,EAAE,CACF;iBACA,GAAG,EAAE,CAAA;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB;gBAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YACvC,MAAM,EAAE;iBACN,OAAO,CACP;;;;;;;KAOA,CACA;iBACA,IAAI,CACJ,iBAAiB,CAAC,UAAU,EAC5B,iBAAiB,CAAC,UAAU,EAC5B,iBAAiB,CAAC,eAAe,EACjC,iBAAiB,CAAC,sBAAsB,EACxC,EAAE,CACF;iBACA,GAAG,EAAE,CAAA;QACR,CAAC;IACF,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,EAAc,EACd,EAAU,EACV,SAAiB,EACjB,SAAS,GAAG,cAAc;IAE1B,MAAM,EAAE;SACN,OAAO,CACP,sHAAsH,CACtH;SACA,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC;SAC9B,GAAG,EAAE,CAAA;AACR,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,EAAc,EACd,EAAU,EACV,MAAc;IAEd,MAAM,GAAG,GAAG,MAAM,EAAE;SAClB,OAAO,CACP;;;;;;;WAOQ,CACR;SACA,IAAI,CAAC,EAAE,CAAC;SACR,KAAK,EAIF,CAAA;IAEL,IAAI,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,mBAAmB,CACzB;QACC,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS;KACxB,EACD;QACC,MAAM;QACN,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,IAAI;KACjB,CACD,CAAA;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACrD,EAAc,EACd,EAAU,EACV,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACnE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,6BAA6B,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,EAAc,EACd,EAAU,EACV,WAAmB;IAEnB,MAAM,EAAE;SACN,OAAO,CACP,2HAA2H,CAC3H;SACA,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;SACrB,GAAG,EAAE,CAAA;AACR,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC7C,EAAc,EACd,EAAU,EACV,WAAmB;IAEnB,MAAM,GAAG,GAAG,MAAM,EAAE;SAClB,OAAO,CACP;;0CAEuC,CACvC;SACA,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;SACrB,GAAG,EAAE,CAAA;IACP,MAAM,OAAO,GAAI,GAAG,CAAC,IAAyC,EAAE,OAAO,IAAI,CAAC,CAAA;IAC5E,OAAO,OAAO,GAAG,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAc,EAAE,EAAU;IAChE,MAAM,EAAE;SACN,OAAO,CACP;;;;;oBAKiB,CACjB;SACA,IAAI,CAAC,EAAE,CAAC;SACR,GAAG,EAAE,CAAA;AACR,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,EAAc,EACd,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,OAAO,CAAC,CAAA;IAEjE,qEAAqE;IACrE,oEAAoE;IACpE,2DAA2D;IAC3D,0EAA0E;IAC1E,2EAA2E;IAC3E,EAAE;IACF,sEAAsE;IACtE,4CAA4C;IAC5C,yEAAyE;IACzE,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,EAAE;SACN,OAAO,CACP;;;;;;;;;;;;;;;;;;gBAkBa,CACb;SACA,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;SAC9B,GAAG,EAAE,CAAA;IAEP,IAAI,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,EAAE;aACN,OAAO,CACP;;+CAE2C,CAC3C;aACA,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;aACrB,GAAG,EAAE,CAAA;IACR,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACpC,6DAA6D;QAC7D,kEAAkE;QAClE,0BAA0B;QAC1B,MAAM,EAAE;aACN,OAAO,CACP;;6CAEyC,CACzC;aACA,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;aACrB,GAAG,EAAE,CAAA;IACR,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,EAAE;aACN,OAAO,CACP;;+CAE2C,CAC3C;aACA,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;aACrB,GAAG,EAAE,CAAA;IACR,CAAC;IAED,mEAAmE;IACnE,MAAM,EAAE;SACN,OAAO,CACP;iEAC8D,CAC9D;SACA,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;SACrB,GAAG,EAAE,CAAA;IAEP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,EAAc,EACd,SAAiB,EACjB,SAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IACvD,IAAI,CAAC,OAAO;QAAE,OAAM;IACpB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAEtC,MAAM,EAAE;SACN,OAAO,CACP,uHAAuH,CACvH;SACA,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC;SACvE,GAAG,EAAE,CAAA;IAEP,MAAM,EAAE;SACN,OAAO,CAAC,iEAAiE,CAAC;SAC1E,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;SAC3B,GAAG,EAAE,CAAA;AACR,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,EAAc,EACd,SAAiB;IAEjB,MAAM,IAAI,GAAG,MAAM,EAAE;SACnB,OAAO,CAAC,kDAAkD,CAAC;SAC3D,IAAI,CAAC,SAAS,CAAC;SACf,KAAK,EAA2B,CAAA;IAElC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAmB,CAAA;IACrC,IAAI,OAAO,GAAmC,IAAI,CAAA;IAElD,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,GAAG,MAAM,EAAE;aAChB,OAAO,CAAC,4DAA4D,CAAC;aACrE,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,EAA2B,CAAA;IACnC,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,GAAG,MAAM,EAAE;aAChB,OAAO,CAAC,0DAA0D,CAAC;aACnE,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,EAA2B,CAAA;IACnC,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,GAAG,MAAM,EAAE;aAChB,OAAO,CAAC,4DAA4D,CAAC;aACrE,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,EAA2B,CAAA;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,EAAE;SACnB,OAAO,CACP,0HAA0H,CAC1H;SACA,IAAI,CAAC,SAAS,CAAC;SACf,GAAG,EAAoB,CAAA;IAEzB,MAAM,OAAO,GAAG,MAAM,EAAE;SACtB,OAAO,CACP,+GAA+G,CAC/G;SACA,IAAI,CAAC,SAAS,CAAC;SACf,GAAG,EAA+D,CAAA;IAEpE,OAAO;QACN,IAAI,EAAE,IAAI;QACV,OAAO;QACP,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QACjD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;KAC9B,CAAA;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revisions.d.ts","sourceRoot":"","sources":["../../src/engine/revisions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"revisions.d.ts","sourceRoot":"","sources":["../../src/engine/revisions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAC3E;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB;AA4BD,6EAA6E;AAC7E,wBAAsB,uBAAuB,CAC5C,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC3D,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyCjC;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAwBjG;AAED,wBAAsB,WAAW,CAChC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,sBAAsB,CAAA;CAAE,GAAG,IAAI,CAAC,CAmC/E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACpC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACtC,OAAO,CAAC,OAAO,CAAC,CAoHlB"}
|
package/dist/engine/revisions.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// existing content_revisions table (0001 baseline) + the 0005 delta columns
|
|
5
5
|
// (words_added, words_removed, tag). Snapshot shape is formalized as
|
|
6
6
|
// ContentRevisionPayload, aligned to getContentSnapshot's output.
|
|
7
|
+
import { parseContentMetadata } from './content-metadata.js';
|
|
7
8
|
import { countWords, getContentItem, getContentSnapshot, updateContentItem } from './publisher.js';
|
|
8
9
|
function bodyWordCount(payload) {
|
|
9
10
|
const md = payload?.content && typeof payload.content.body_markdown === 'string'
|
|
@@ -153,6 +154,7 @@ export async function restoreRevision(db, contentId, revisionId, opts = {}) {
|
|
|
153
154
|
canonicalUrl: item.canonical_url ?? null,
|
|
154
155
|
// SEO focus keyword is part of the snapshot — restore it too.
|
|
155
156
|
seoFocusKeyword: item.seo_focus_keyword ?? null,
|
|
157
|
+
metadata: parseContentMetadata(typeof item.metadata_json === 'string' ? item.metadata_json : '{}'),
|
|
156
158
|
tags: target.payload.tags,
|
|
157
159
|
relations: target.payload.related.map((r) => ({
|
|
158
160
|
relatedId: r.related_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revisions.js","sourceRoot":"","sources":["../../src/engine/revisions.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,qEAAqE;AACrE,kEAAkE;
|
|
1
|
+
{"version":3,"file":"revisions.js","sourceRoot":"","sources":["../../src/engine/revisions.ts"],"names":[],"mappings":"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"}
|