@se-studio/project-build 1.0.68 → 1.0.71

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 (44) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +2 -4
  3. package/skills/se-marketing-sites/create-collection/SKILL.md +14 -10
  4. package/skills/se-marketing-sites/create-component/SKILL.md +1 -1
  5. package/skills/se-marketing-sites/handling-media/SKILL.md +19 -0
  6. package/skills/se-marketing-sites/lib-cms-structure/SKILL.md +8 -6
  7. package/skills/se-marketing-sites/register-cms-features/SKILL.md +15 -15
  8. package/skills/se-marketing-sites/styling-system/SKILL.md +1 -1
  9. package/dist/management/check-target.d.ts +0 -2
  10. package/dist/management/check-target.d.ts.map +0 -1
  11. package/dist/management/check-target.js +0 -40
  12. package/dist/management/check-target.js.map +0 -1
  13. package/dist/management/count-brightline.d.ts +0 -2
  14. package/dist/management/count-brightline.d.ts.map +0 -1
  15. package/dist/management/count-brightline.js +0 -37
  16. package/dist/management/count-brightline.js.map +0 -1
  17. package/dist/management/cross-check-migration.d.ts +0 -2
  18. package/dist/management/cross-check-migration.d.ts.map +0 -1
  19. package/dist/management/cross-check-migration.js +0 -212
  20. package/dist/management/cross-check-migration.js.map +0 -1
  21. package/dist/management/discovery-brightlife.d.ts +0 -2
  22. package/dist/management/discovery-brightlife.d.ts.map +0 -1
  23. package/dist/management/discovery-brightlife.js +0 -78
  24. package/dist/management/discovery-brightlife.js.map +0 -1
  25. package/dist/management/discovery-brightline.d.ts +0 -2
  26. package/dist/management/discovery-brightline.d.ts.map +0 -1
  27. package/dist/management/discovery-brightline.js +0 -68
  28. package/dist/management/discovery-brightline.js.map +0 -1
  29. package/dist/management/generateVisibilityJson.d.ts +0 -3
  30. package/dist/management/generateVisibilityJson.d.ts.map +0 -1
  31. package/dist/management/generateVisibilityJson.js +0 -149
  32. package/dist/management/generateVisibilityJson.js.map +0 -1
  33. package/dist/management/inspect-target.d.ts +0 -2
  34. package/dist/management/inspect-target.d.ts.map +0 -1
  35. package/dist/management/inspect-target.js +0 -48
  36. package/dist/management/inspect-target.js.map +0 -1
  37. package/dist/management/migrate-brightlife.d.ts +0 -2
  38. package/dist/management/migrate-brightlife.d.ts.map +0 -1
  39. package/dist/management/migrate-brightlife.js +0 -475
  40. package/dist/management/migrate-brightlife.js.map +0 -1
  41. package/dist/management/migrate-brightline.d.ts +0 -2
  42. package/dist/management/migrate-brightline.d.ts.map +0 -1
  43. package/dist/management/migrate-brightline.js +0 -1085
  44. package/dist/management/migrate-brightline.js.map +0 -1
@@ -1,475 +0,0 @@
1
- import contentfulManagement from 'contentful-management';
2
- import dotenv from 'dotenv';
3
- dotenv.config();
4
- const SPACE_ID = 'c27ds9epot4n';
5
- const SOURCE_ENV_ID = 'master';
6
- const TARGET_ENV_ID = 'production-2026';
7
- const DRY_RUN = process.argv.includes('--dry-run');
8
- const stats = {
9
- assets: { created: 0, skipped: 0, errors: 0 },
10
- entries: { created: 0, skipped: 0, errors: 0 },
11
- };
12
- // ID Mapping: Old ID -> New ID
13
- const idMap = new Map();
14
- async function getEnvironment(spaceId, envId) {
15
- const accessToken = process.env.CONTENTFUL_MANAGEMENT_TOKEN;
16
- if (!accessToken) {
17
- throw new Error('CONTENTFUL_MANAGEMENT_TOKEN is not set');
18
- }
19
- const client = contentfulManagement.createClient({ accessToken });
20
- const space = await client.getSpace(spaceId);
21
- return space.getEnvironment(envId);
22
- }
23
- // Helper to fetch all entries with pagination
24
- async function fetchAllEntries(env, query = {}) {
25
- const limit = 1000;
26
- let skip = 0;
27
- let allItems = [];
28
- while (true) {
29
- const response = await env.getEntries({ ...query, limit, skip });
30
- allItems = allItems.concat(response.items);
31
- skip += limit;
32
- if (response.items.length < limit)
33
- break;
34
- console.log(`Fetched ${allItems.length} entries so far...`);
35
- }
36
- return allItems;
37
- }
38
- // Helper to fetch all assets with pagination
39
- async function fetchAllAssets(env, query = {}) {
40
- const limit = 1000;
41
- let skip = 0;
42
- let allItems = [];
43
- while (true) {
44
- const response = await env.getAssets({ ...query, limit, skip });
45
- allItems = allItems.concat(response.items);
46
- skip += limit;
47
- if (response.items.length < limit)
48
- break;
49
- console.log(`Fetched ${allItems.length} assets so far...`);
50
- }
51
- return allItems;
52
- }
53
- // --- Asset Migration ---
54
- async function migrateAssets(sourceEnv, targetEnv) {
55
- console.log('\n--- Migrating Assets ---');
56
- const sourceAssetsItems = await fetchAllAssets(sourceEnv);
57
- for (const asset of sourceAssetsItems) {
58
- try {
59
- if (DRY_RUN) {
60
- console.log(`[Dry Run] Would migrate asset: ${asset.sys.id}`);
61
- idMap.set(asset.sys.id, asset.sys.id); // Assuming we keep same IDs
62
- stats.assets.created++;
63
- continue;
64
- }
65
- // Check if asset exists in target
66
- let targetAsset;
67
- try {
68
- targetAsset = await targetEnv.getAsset(asset.sys.id);
69
- console.log(`Asset ${asset.sys.id} already exists. Skipping.`);
70
- stats.assets.skipped++;
71
- }
72
- catch (e) {
73
- // Create asset
74
- console.log(`Creating asset: ${asset.sys.id}`);
75
- targetAsset = await targetEnv.createAssetWithId(asset.sys.id, {
76
- fields: asset.fields,
77
- metadata: asset.metadata,
78
- });
79
- await targetAsset.publish();
80
- stats.assets.created++;
81
- }
82
- idMap.set(asset.sys.id, targetAsset.sys.id);
83
- }
84
- catch (error) {
85
- console.error(`Failed to migrate asset ${asset.sys.id}:`, error);
86
- stats.assets.errors++;
87
- }
88
- }
89
- }
90
- // Helper to create wrapper ID
91
- function getWrapperId(assetId) {
92
- return `visual-${assetId}`;
93
- }
94
- // Helper to create wrapper entry map
95
- // We need to create these wrapper entries (media or component/Image)
96
- async function ensureWrapperEntry(targetEnv, assetId, title = 'Visual Wrapper') {
97
- const wrapperId = getWrapperId(assetId);
98
- // We'll create a 'media' entry. If schema says otherwise we fallback.
99
- // Inspection said 'media' has 'asset' (Link) and 'name' (Symbol).
100
- if (DRY_RUN) {
101
- console.log(`[Dry Run] Would ensure wrapper entry ${wrapperId} for asset ${assetId}`);
102
- idMap.set(wrapperId, wrapperId);
103
- return wrapperId;
104
- }
105
- try {
106
- try {
107
- await targetEnv.getEntry(wrapperId);
108
- // Exists
109
- }
110
- catch (e) {
111
- console.log(`Creating wrapper entry ${wrapperId} for asset ${assetId}`);
112
- const entry = await targetEnv.createEntryWithId('media', wrapperId, {
113
- fields: {
114
- name: { 'en-US': title },
115
- asset: { 'en-US': { sys: { type: 'Link', linkType: 'Asset', id: assetId } } },
116
- },
117
- });
118
- await entry.publish();
119
- }
120
- }
121
- catch (error) {
122
- console.error(`Failed to ensure wrapper ${wrapperId}:`, error);
123
- // Fallback?
124
- }
125
- return wrapperId;
126
- }
127
- // --- Entry Transformation ---
128
- function mapSys(sys) {
129
- return {
130
- id: sys.id,
131
- };
132
- }
133
- // Helper to get localized value (assuming 'en-US' or generic)
134
- // For simplicity, we'll take the first locale value we find if generic, or specific one
135
- function getVal(field, locale = 'en-US') {
136
- if (!field)
137
- return undefined;
138
- return field[locale] || Object.values(field)[0];
139
- }
140
- function createLink(id, linkType) {
141
- return {
142
- sys: {
143
- type: 'Link',
144
- linkType,
145
- id,
146
- },
147
- };
148
- }
149
- // Transform Rich Text to update embedded links
150
- function transformRichText(document) {
151
- if (!document || !document.nodeType)
152
- return document;
153
- // Deep clone to avoid mutating original if needed (though we're mapping)
154
- const newDoc = JSON.parse(JSON.stringify(document));
155
- function traverse(node) {
156
- if (node.data && node.data.target && node.data.target.sys) {
157
- const oldId = node.data.target.sys.id;
158
- // If we have a map, use it. If not, keep old ID (maybe it wasn't migrated yet or is same)
159
- // For Assets, we kept IDs. For Entries, we might keep IDs too if possible.
160
- if (idMap.has(oldId)) {
161
- node.data.target.sys.id = idMap.get(oldId);
162
- }
163
- }
164
- if (node.content) {
165
- node.content.forEach(traverse);
166
- }
167
- }
168
- traverse(newDoc);
169
- return newDoc;
170
- }
171
- // Main Mapping Function
172
- function mapEntry(entry) {
173
- const contentTypeId = entry.sys.contentType.sys.id;
174
- const fields = {};
175
- const locale = 'en-US'; // Default locale for new entries
176
- // Helper to set field
177
- const set = (key, value) => {
178
- if (value !== undefined)
179
- fields[key] = { [locale]: value };
180
- };
181
- // Helper to resolve link
182
- const link = (fieldVal, type = 'Entry') => {
183
- if (!fieldVal)
184
- return undefined;
185
- // Check if it's a list
186
- if (Array.isArray(fieldVal)) {
187
- return fieldVal.map((item) => {
188
- const oldId = item.sys.id;
189
- // For generic 'contents' arrays, we just map the ID.
190
- return createLink(idMap.get(oldId) || oldId, type);
191
- });
192
- }
193
- const oldId = fieldVal.sys.id;
194
- return createLink(idMap.get(oldId) || oldId, type);
195
- };
196
- // Helper to link visual (wraps asset in media entry)
197
- // IMPORTANT: This returns a Link to an ENTRY, not ASSET
198
- const linkVisual = (fieldVal) => {
199
- if (!fieldVal)
200
- return undefined;
201
- const assetId = fieldVal.sys.id;
202
- // We assume wrapper is created or will be created with deterministic ID
203
- return createLink(getWrapperId(assetId), 'Entry');
204
- };
205
- if (contentTypeId === 'contentPage' || contentTypeId === 'blogPost') {
206
- const type = contentTypeId === 'contentPage' ? 'page' : 'article';
207
- set('title', getVal(entry.fields.title));
208
- set('slug', getVal(entry.fields.path)); // contentPage uses 'path'
209
- set('description', getVal(entry.fields.description)); // mapped to description/seo
210
- // Featured Image
211
- const socialImage = getVal(entry.fields.socialImage);
212
- if (socialImage) {
213
- // Page/Article 'featuredImage' expects Asset Link, not Media Entry Link
214
- set('featuredImage', link(socialImage, 'Asset'));
215
- }
216
- // Contents
217
- const contents = getVal(entry.fields.contents);
218
- if (contents) {
219
- set('contents', link(contents)); // 'contents' array is used in Article too (mapped from body/contents)
220
- // Check if target schema 'article' has 'contents' -> Yes 'content' array
221
- if (type === 'article') {
222
- // The target field for main content in Article is 'content' not 'contents'
223
- set('content', link(contents));
224
- delete fields['contents'];
225
- }
226
- else {
227
- // Page has 'content' too based on inspection
228
- set('content', link(contents));
229
- delete fields['contents'];
230
- }
231
- }
232
- // Add required fields
233
- set('cmsLabel', getVal(entry.fields.adminLabel) || getVal(entry.fields.title));
234
- set('indexed', true);
235
- set('hidden', false);
236
- if (type === 'article') {
237
- set('date', new Date().toISOString()); // Required field
238
- // Link to "Blog Post" article type - we need to find/create this ID beforehand ideally
239
- // set('articleType', ...);
240
- }
241
- return { contentType: type, fields };
242
- }
243
- if (contentTypeId === 'ctaCard') {
244
- set('componentType', 'CtaCard');
245
- set('heading', getVal(entry.fields.title));
246
- set('preHeading', getVal(entry.fields.eyebrow));
247
- set('postHeading', getVal(entry.fields.subtitle));
248
- set('body', transformRichText(getVal(entry.fields.copy)));
249
- set('cmsLabel', getVal(entry.fields.adminLabel) || 'CTA Card');
250
- set('showHeading', !!getVal(entry.fields.title)); // Required
251
- // Visual
252
- const media = getVal(entry.fields.media);
253
- const image = getVal(entry.fields.image);
254
- if (media) {
255
- set('visual', linkVisual(media));
256
- }
257
- else if (image) {
258
- // Check if image is a link to imageAndAltText
259
- if (image.sys.linkType === 'Entry') {
260
- // It's already an entry (imageAndAltText), we can just link to it?
261
- // Wait, we mapped imageAndAltText to 'component' (Image).
262
- // So yes, we can link to it directly!
263
- // BUT, the error says we provided an Asset link. That implies 'media' field was used (which is Asset link in source)
264
- // If 'image' field is used, it links to an Entry.
265
- // So if it's media (Asset), use linkVisual. If it's image (Entry), use link.
266
- set('visual', link(image));
267
- }
268
- else {
269
- // If for some reason it's an asset link
270
- set('visual', linkVisual(image));
271
- }
272
- }
273
- return { contentType: 'component', fields };
274
- }
275
- if (contentTypeId === 'quote') {
276
- set('componentType', 'Quote');
277
- set('body', transformRichText(getVal(entry.fields.copy)));
278
- set('cmsLabel', getVal(entry.fields.adminLabel) || 'Quote');
279
- set('showHeading', false);
280
- return { contentType: 'component', fields };
281
- }
282
- if (contentTypeId === 'videoModule') {
283
- set('componentType', 'Video');
284
- set('heading', getVal(entry.fields.title));
285
- set('cmsLabel', getVal(entry.fields.adminTitle) || 'Video');
286
- set('showHeading', !!getVal(entry.fields.title));
287
- const videoAsset = getVal(entry.fields.videoAsset);
288
- if (videoAsset) {
289
- set('visual', linkVisual(videoAsset));
290
- }
291
- return { contentType: 'component', fields };
292
- }
293
- if (contentTypeId === 'cards') {
294
- set('collectionType', 'Card Collection');
295
- set('cmsLabel', getVal(entry.fields.adminLabel) || 'Cards');
296
- set('heading', getVal(entry.fields.title));
297
- set('showHeading', !!getVal(entry.fields.title));
298
- set('contents', link(getVal(entry.fields.cards)));
299
- return { contentType: 'collection', fields };
300
- }
301
- if (contentTypeId === 'carousel') {
302
- set('collectionType', 'Carousel');
303
- set('cmsLabel', getVal(entry.fields.adminLabel) || 'Carousel');
304
- set('showHeading', false);
305
- set('contents', link(getVal(entry.fields.items)));
306
- return { contentType: 'collection', fields };
307
- }
308
- if (contentTypeId === 'button') {
309
- set('linkText', getVal(entry.fields.text));
310
- set('external', getVal(entry.fields.linkUrl));
311
- set('name', getVal(entry.fields.text) || 'Button');
312
- set('useName', true);
313
- return { contentType: 'link', fields };
314
- }
315
- if (contentTypeId === 'imageAndAltText') {
316
- set('componentType', 'Image');
317
- set('cmsLabel', getVal(entry.fields.adminLabel) || 'Image');
318
- set('showHeading', false);
319
- // visual field in component/Image also needs to be a link to a Media entry?
320
- // Or does Image component visual accept Asset?
321
- // Inspection: component.visual (Link). Doesn't specify.
322
- // But likely it's consistent.
323
- // Wait, if we map imageAndAltText to 'component' (Image), and that component has a 'visual' field...
324
- // Does 'visual' point to Asset or Entry?
325
- // If it points to Entry (Media), then we need to wrap the asset in a Media entry first.
326
- set('visual', linkVisual(getVal(entry.fields.image)));
327
- return { contentType: 'component', fields };
328
- }
329
- return null;
330
- }
331
- // Helper to update entry with retry logic for VersionMismatch
332
- async function updateEntryWithRetry(env, id, contentType, fields, retries = 3) {
333
- try {
334
- let entry;
335
- try {
336
- entry = await env.getEntry(id);
337
- console.log(`Entry ${id} exists. Updating...`);
338
- entry.fields = fields;
339
- return await entry.update();
340
- }
341
- catch (e) {
342
- if (e.name === 'NotFound') {
343
- console.log(`Creating ${contentType} (${id})`);
344
- return await env.createEntryWithId(contentType, id, { fields });
345
- }
346
- throw e;
347
- }
348
- }
349
- catch (error) {
350
- if (error.name === 'VersionMismatch' && retries > 0) {
351
- console.warn(`VersionMismatch for ${id}. Retrying... (${retries} left)`);
352
- return updateEntryWithRetry(env, id, contentType, fields, retries - 1);
353
- }
354
- throw error;
355
- }
356
- }
357
- // --- Priority Sorting ---
358
- function getPriority(contentTypeId) {
359
- // Level 1: Leafs (Dependencies)
360
- if ([
361
- 'imageAndAltText',
362
- 'button',
363
- ].includes(contentTypeId)) {
364
- return 1;
365
- }
366
- // Level 2: Components
367
- if ([
368
- 'ctaCard',
369
- 'quote',
370
- 'videoModule',
371
- 'textSection',
372
- 'hero',
373
- ].includes(contentTypeId)) {
374
- return 2;
375
- }
376
- // Level 3: Collections
377
- if ([
378
- 'cards',
379
- 'carousel',
380
- 'itemGrid',
381
- 'teamMemberGrid',
382
- 'featuredPostSection',
383
- ].includes(contentTypeId)) {
384
- return 3;
385
- }
386
- // Level 4: Roots (Pages, Articles)
387
- if (['contentPage', 'page', 'blogPost', 'resourcePost'].includes(contentTypeId)) {
388
- return 4;
389
- }
390
- // Default to last
391
- return 5;
392
- }
393
- // --- Main Execution ---
394
- async function run() {
395
- console.log(`Starting migration... DRY_RUN=${DRY_RUN}`);
396
- const sourceEnv = await getEnvironment(SPACE_ID, SOURCE_ENV_ID);
397
- const targetEnv = await getEnvironment(SPACE_ID, TARGET_ENV_ID);
398
- // 1. Migrate Assets
399
- await migrateAssets(sourceEnv, targetEnv);
400
- // 2. Fetch all Source Entries
401
- console.log('\n--- Fetching Source Entries ---');
402
- const sourceEntriesItems = await fetchAllEntries(sourceEnv);
403
- console.log(`Fetched ${sourceEntriesItems.length} entries.`);
404
- // Sort by priority
405
- sourceEntriesItems.sort((a, b) => {
406
- return getPriority(a.sys.contentType.sys.id) - getPriority(b.sys.contentType.sys.id);
407
- });
408
- // 3. Process Entries (Pass 1: Creation/Mapping)
409
- console.log('\n--- Processing Entries ---');
410
- // We process "Leaf" nodes first ideally, but Contentful doesn't enforce referential integrity on creation if we use createEntryWithId and link later?
411
- // Actually, we need to create entries first, then update them with links.
412
- // So we'll iterate all, create shell if mapped, then update.
413
- for (const entry of sourceEntriesItems) {
414
- // Skip if not in our target list
415
- if (![
416
- 'contentPage',
417
- 'blogPost',
418
- 'ctaCard',
419
- 'cards',
420
- 'carousel',
421
- 'quote',
422
- 'videoModule',
423
- 'button',
424
- 'imageAndAltText',
425
- ].includes(entry.sys.contentType.sys.id)) {
426
- continue;
427
- }
428
- const mapped = mapEntry(entry);
429
- if (!mapped) {
430
- console.log(`Skipping ${entry.sys.id} (${entry.sys.contentType.sys.id}) - No mapping`);
431
- continue;
432
- }
433
- // We use the same ID for simplicity
434
- const newId = entry.sys.id;
435
- idMap.set(entry.sys.id, newId);
436
- // --- NEW STEP: Ensure dependent wrapper entries are created ---
437
- // Iterate through mapped fields to find 'visual' links that point to Wrappers (media)
438
- // and create those wrappers before the main entry.
439
- // This is a bit simplistic, but should work for this specific 'visual' -> 'media' pattern.
440
- for (const [key, val] of Object.entries(mapped.fields)) {
441
- // featuredImage is now Asset link, so skip it here. Only check 'visual' or explicit wrapper fields.
442
- if (key === 'visual') {
443
- const linkObj = val['en-US'];
444
- if (linkObj && linkObj.sys.linkType === 'Entry' && linkObj.sys.id.startsWith('visual-')) {
445
- const wrapperId = linkObj.sys.id;
446
- const assetId = wrapperId.replace('visual-', '');
447
- await ensureWrapperEntry(targetEnv, assetId, `Wrapper for ${assetId}`);
448
- }
449
- }
450
- }
451
- // -------------------------------------------------------------
452
- if (DRY_RUN) {
453
- console.log(`[Dry Run] Would create ${mapped.contentType} (${newId}) from ${entry.sys.contentType.sys.id}`);
454
- stats.entries.created++;
455
- continue;
456
- }
457
- try {
458
- await updateEntryWithRetry(targetEnv, newId, mapped.contentType, mapped.fields);
459
- stats.entries.created++;
460
- }
461
- catch (error) {
462
- console.error(`Failed to create/update entry ${newId}:`, error);
463
- stats.entries.errors++;
464
- }
465
- }
466
- // Pass 2: Publishing (and ensuring links work if we did it in one go)
467
- // Since we set fields with links immediately, they might fail if linked entries don't exist yet.
468
- // Contentful allows saving with unresolved links (they just show as missing).
469
- // But publishing might fail if validatons are strict.
470
- // For this script, we just create/update. Publishing is a separate step or done here.
471
- console.log('\n--- Migration Stats ---');
472
- console.log(JSON.stringify(stats, null, 2));
473
- }
474
- run().catch(console.error);
475
- //# sourceMappingURL=migrate-brightlife.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate-brightlife.js","sourceRoot":"","sources":["../../src/management/migrate-brightlife.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=migrate-brightline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate-brightline.d.ts","sourceRoot":"","sources":["../../src/management/migrate-brightline.ts"],"names":[],"mappings":""}