@se-studio/project-build 1.0.91 → 1.0.93
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/CHANGELOG.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-showcase-data.d.ts","sourceRoot":"","sources":["../src/generate-showcase-data.ts"],"names":[],"mappings":";AACA,gEAAgE"}
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** biome-ignore-all lint/suspicious/noConsole: Console is ok */
|
|
3
|
+
import * as fs from 'node:fs';
|
|
4
|
+
import * as path from 'node:path';
|
|
5
|
+
import dotenv from 'dotenv';
|
|
6
|
+
// Load env from the app directory where the command is run
|
|
7
|
+
dotenv.config({ path: path.join(process.cwd(), '.env.local') });
|
|
8
|
+
function isCdaLink(value) {
|
|
9
|
+
return (value !== null &&
|
|
10
|
+
typeof value === 'object' &&
|
|
11
|
+
'sys' in value &&
|
|
12
|
+
typeof value.sys?.id === 'string' &&
|
|
13
|
+
(value.sys?.linkType === 'Entry' || value.sys?.linkType === 'Asset'));
|
|
14
|
+
}
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Lookup maps (built per CDA page from includes)
|
|
17
|
+
// ============================================================================
|
|
18
|
+
function buildLookupMaps(response) {
|
|
19
|
+
const entryMap = new Map();
|
|
20
|
+
const assetMap = new Map();
|
|
21
|
+
for (const entry of response.includes?.Entry ?? []) {
|
|
22
|
+
entryMap.set(entry.sys.id, entry);
|
|
23
|
+
}
|
|
24
|
+
for (const asset of response.includes?.Asset ?? []) {
|
|
25
|
+
assetMap.set(asset.sys.id, asset);
|
|
26
|
+
}
|
|
27
|
+
return { entryMap, assetMap };
|
|
28
|
+
}
|
|
29
|
+
// ============================================================================
|
|
30
|
+
// Field extraction helpers
|
|
31
|
+
// ============================================================================
|
|
32
|
+
function extractString(fields, key) {
|
|
33
|
+
const val = fields[key];
|
|
34
|
+
return typeof val === 'string' && val.trim() ? val.trim() : undefined;
|
|
35
|
+
}
|
|
36
|
+
function extractRichText(fields, key) {
|
|
37
|
+
const val = fields[key];
|
|
38
|
+
if (val && typeof val === 'object' && 'nodeType' in val) {
|
|
39
|
+
return { json: val };
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
/** Resolves visual dimensions and URL from a media entry link → media entry → asset chain.
|
|
44
|
+
* Also handles Lottie animations stored as application/json assets. */
|
|
45
|
+
function extractVisual(fields, entryMap, assetMap) {
|
|
46
|
+
const visualLink = fields['visual'];
|
|
47
|
+
if (!isCdaLink(visualLink) || visualLink.sys.linkType !== 'Entry')
|
|
48
|
+
return undefined;
|
|
49
|
+
const mediaEntry = entryMap.get(visualLink.sys.id);
|
|
50
|
+
if (!mediaEntry)
|
|
51
|
+
return undefined;
|
|
52
|
+
const assetLink = mediaEntry.fields['asset'];
|
|
53
|
+
if (!isCdaLink(assetLink) || assetLink.sys.linkType !== 'Asset')
|
|
54
|
+
return undefined;
|
|
55
|
+
const asset = assetMap.get(assetLink.sys.id);
|
|
56
|
+
const file = asset?.fields?.file;
|
|
57
|
+
if (!file)
|
|
58
|
+
return undefined;
|
|
59
|
+
// CDA returns protocol-relative URLs (e.g. "//images.ctfassets.net/..."); normalise to https.
|
|
60
|
+
const rawUrl = file.url;
|
|
61
|
+
const url = rawUrl ? (rawUrl.startsWith('//') ? `https:${rawUrl}` : rawUrl) : undefined;
|
|
62
|
+
// Lottie animations are stored as application/json assets (no image dimensions).
|
|
63
|
+
if (file.contentType === 'application/json' && url) {
|
|
64
|
+
return { width: 0, height: 0, lottieUrl: url };
|
|
65
|
+
}
|
|
66
|
+
const dims = file.details?.image;
|
|
67
|
+
if (!dims)
|
|
68
|
+
return undefined;
|
|
69
|
+
return { width: dims.width, height: dims.height, ...(url && { url }) };
|
|
70
|
+
}
|
|
71
|
+
/** Maps a Contentful content-type id to an InternalType label. */
|
|
72
|
+
function toInternalType(contentTypeId) {
|
|
73
|
+
switch (contentTypeId) {
|
|
74
|
+
case 'article':
|
|
75
|
+
return 'Article';
|
|
76
|
+
case 'articleType':
|
|
77
|
+
return 'ArticleType';
|
|
78
|
+
case 'person':
|
|
79
|
+
return 'Person';
|
|
80
|
+
case 'tag':
|
|
81
|
+
return 'Tag';
|
|
82
|
+
default:
|
|
83
|
+
return 'Page';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Extracts serializable link data from a component/collection's `links` field.
|
|
88
|
+
* Resolves link text, href, variant, and colours from the linked `link` content-type entries.
|
|
89
|
+
*/
|
|
90
|
+
function extractLinks(fields, entryMap) {
|
|
91
|
+
const linksField = fields['links'];
|
|
92
|
+
if (!Array.isArray(linksField))
|
|
93
|
+
return [];
|
|
94
|
+
const result = [];
|
|
95
|
+
for (const linkRef of linksField) {
|
|
96
|
+
if (!isCdaLink(linkRef) || linkRef.sys.linkType !== 'Entry')
|
|
97
|
+
continue;
|
|
98
|
+
const linkEntry = entryMap.get(linkRef.sys.id);
|
|
99
|
+
if (!linkEntry || linkEntry.sys.contentType.sys.id !== 'link')
|
|
100
|
+
continue;
|
|
101
|
+
const lf = linkEntry.fields;
|
|
102
|
+
const id = linkEntry.sys.id;
|
|
103
|
+
const name = extractString(lf, 'name') ?? id;
|
|
104
|
+
const useName = lf['useName'] === true;
|
|
105
|
+
const linkText = extractString(lf, 'linkText');
|
|
106
|
+
const text = (useName ? name : (linkText ?? name)) ?? null;
|
|
107
|
+
const variant = extractString(lf, 'variant');
|
|
108
|
+
const backgroundColour = extractString(lf, 'backgroundColour');
|
|
109
|
+
const textColour = extractString(lf, 'textColour');
|
|
110
|
+
const externalUrl = extractString(lf, 'external');
|
|
111
|
+
const internalRef = lf['internal'];
|
|
112
|
+
const extras = {
|
|
113
|
+
...(variant && { variant }),
|
|
114
|
+
...(backgroundColour && { backgroundColour }),
|
|
115
|
+
...(textColour && { textColour }),
|
|
116
|
+
};
|
|
117
|
+
if (externalUrl) {
|
|
118
|
+
result.push({ id, name, text, type: 'External link', href: externalUrl, ...extras });
|
|
119
|
+
}
|
|
120
|
+
else if (isCdaLink(internalRef) && internalRef.sys.linkType === 'Entry') {
|
|
121
|
+
const targetEntry = entryMap.get(internalRef.sys.id);
|
|
122
|
+
const slug = targetEntry ? (extractString(targetEntry.fields, 'slug') ?? '') : '';
|
|
123
|
+
const internalType = targetEntry
|
|
124
|
+
? toInternalType(targetEntry.sys.contentType.sys.id)
|
|
125
|
+
: 'Page';
|
|
126
|
+
result.push({
|
|
127
|
+
id,
|
|
128
|
+
name,
|
|
129
|
+
text,
|
|
130
|
+
type: 'Internal link',
|
|
131
|
+
href: slug ? `/${slug}` : '/',
|
|
132
|
+
slug,
|
|
133
|
+
internalType,
|
|
134
|
+
internalId: internalRef.sys.id,
|
|
135
|
+
...extras,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
result.push({ id, name, text, type: 'Blank link', href: '#', ...extras });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return result;
|
|
143
|
+
}
|
|
144
|
+
/** Extracts text labels from linked link entries (used only for completeness scoring). */
|
|
145
|
+
function extractLinkTexts(fields, entryMap) {
|
|
146
|
+
const links = fields['links'];
|
|
147
|
+
if (!Array.isArray(links))
|
|
148
|
+
return [];
|
|
149
|
+
return links
|
|
150
|
+
.filter((l) => isCdaLink(l) && l.sys.linkType === 'Entry')
|
|
151
|
+
.map((l) => {
|
|
152
|
+
const linkEntry = entryMap.get(l.sys.id);
|
|
153
|
+
if (!linkEntry)
|
|
154
|
+
return null;
|
|
155
|
+
const text = extractString(linkEntry.fields, 'linkText') ?? extractString(linkEntry.fields, 'name');
|
|
156
|
+
return text ?? null;
|
|
157
|
+
})
|
|
158
|
+
.filter((t) => t !== null);
|
|
159
|
+
}
|
|
160
|
+
function scoreCompleteness(mock, linkTexts) {
|
|
161
|
+
let score = 0;
|
|
162
|
+
if (mock.heading)
|
|
163
|
+
score++;
|
|
164
|
+
if (mock.preHeading)
|
|
165
|
+
score++;
|
|
166
|
+
if (mock.postHeading)
|
|
167
|
+
score++;
|
|
168
|
+
if (mock.body)
|
|
169
|
+
score++;
|
|
170
|
+
if (mock.additionalCopy)
|
|
171
|
+
score++;
|
|
172
|
+
if (mock.visual)
|
|
173
|
+
score++;
|
|
174
|
+
if (mock.visual?.url)
|
|
175
|
+
score++; // bonus for having a real image URL
|
|
176
|
+
if (mock.backgroundColour)
|
|
177
|
+
score++;
|
|
178
|
+
if (mock.textColour)
|
|
179
|
+
score++;
|
|
180
|
+
if ((mock.links?.length ?? linkTexts.length) > 0)
|
|
181
|
+
score++;
|
|
182
|
+
return score;
|
|
183
|
+
}
|
|
184
|
+
// ============================================================================
|
|
185
|
+
// Entry extraction
|
|
186
|
+
// ============================================================================
|
|
187
|
+
function extractMock(fields, entryMap, assetMap) {
|
|
188
|
+
const mock = {};
|
|
189
|
+
const heading = extractString(fields, 'heading');
|
|
190
|
+
if (heading)
|
|
191
|
+
mock.heading = heading;
|
|
192
|
+
const preHeading = extractString(fields, 'preHeading');
|
|
193
|
+
if (preHeading)
|
|
194
|
+
mock.preHeading = preHeading;
|
|
195
|
+
const postHeading = extractString(fields, 'postHeading');
|
|
196
|
+
if (postHeading)
|
|
197
|
+
mock.postHeading = postHeading;
|
|
198
|
+
const body = extractRichText(fields, 'body');
|
|
199
|
+
if (body)
|
|
200
|
+
mock.body = body;
|
|
201
|
+
const additionalCopy = extractRichText(fields, 'additionalCopy');
|
|
202
|
+
if (additionalCopy)
|
|
203
|
+
mock.additionalCopy = additionalCopy;
|
|
204
|
+
const visual = extractVisual(fields, entryMap, assetMap);
|
|
205
|
+
if (visual)
|
|
206
|
+
mock.visual = visual;
|
|
207
|
+
const backgroundColour = extractString(fields, 'backgroundColour');
|
|
208
|
+
if (backgroundColour)
|
|
209
|
+
mock.backgroundColour = backgroundColour;
|
|
210
|
+
const textColour = extractString(fields, 'textColour');
|
|
211
|
+
if (textColour)
|
|
212
|
+
mock.textColour = textColour;
|
|
213
|
+
const links = extractLinks(fields, entryMap);
|
|
214
|
+
if (links.length > 0)
|
|
215
|
+
mock.links = links;
|
|
216
|
+
return mock;
|
|
217
|
+
}
|
|
218
|
+
function extractCardFromEntry(entry, entryMap, assetMap) {
|
|
219
|
+
return extractMock(entry.fields, entryMap, assetMap);
|
|
220
|
+
}
|
|
221
|
+
/** Extracts visual dimensions from a person entry's direct `media` asset link. */
|
|
222
|
+
function extractPersonVisual(fields, assetMap) {
|
|
223
|
+
const mediaLink = fields['media'];
|
|
224
|
+
if (!isCdaLink(mediaLink) || mediaLink.sys.linkType !== 'Asset')
|
|
225
|
+
return undefined;
|
|
226
|
+
const asset = assetMap.get(mediaLink.sys.id);
|
|
227
|
+
const file = asset?.fields?.file;
|
|
228
|
+
if (!file)
|
|
229
|
+
return undefined;
|
|
230
|
+
const rawUrl = file.url;
|
|
231
|
+
const url = rawUrl ? (rawUrl.startsWith('//') ? `https:${rawUrl}` : rawUrl) : undefined;
|
|
232
|
+
const dims = file.details?.image;
|
|
233
|
+
if (!dims)
|
|
234
|
+
return undefined;
|
|
235
|
+
return { width: dims.width, height: dims.height, ...(url && { url }) };
|
|
236
|
+
}
|
|
237
|
+
/** Extracts a mock card from a person content-type entry.
|
|
238
|
+
* Maps: name → heading, bio → body, jobTitle → preHeading, media (asset) → visual. */
|
|
239
|
+
function extractPersonCard(entry, assetMap) {
|
|
240
|
+
const fields = entry.fields;
|
|
241
|
+
const card = {};
|
|
242
|
+
const name = extractString(fields, 'name');
|
|
243
|
+
if (name)
|
|
244
|
+
card.heading = name;
|
|
245
|
+
const jobTitle = extractString(fields, 'jobTitle');
|
|
246
|
+
if (jobTitle)
|
|
247
|
+
card.preHeading = jobTitle;
|
|
248
|
+
const bio = extractRichText(fields, 'bio');
|
|
249
|
+
if (bio)
|
|
250
|
+
card.body = bio;
|
|
251
|
+
const visual = extractPersonVisual(fields, assetMap);
|
|
252
|
+
if (visual)
|
|
253
|
+
card.visual = visual;
|
|
254
|
+
return card;
|
|
255
|
+
}
|
|
256
|
+
function extractComponentExample(entry, entryMap, assetMap) {
|
|
257
|
+
const mock = extractMock(entry.fields, entryMap, assetMap);
|
|
258
|
+
const linkTexts = extractLinkTexts(entry.fields, entryMap);
|
|
259
|
+
return {
|
|
260
|
+
entryId: entry.sys.id,
|
|
261
|
+
cmsLabel: extractString(entry.fields, 'cmsLabel') ?? entry.sys.id,
|
|
262
|
+
fieldCompleteness: scoreCompleteness(mock, linkTexts),
|
|
263
|
+
mock,
|
|
264
|
+
linkTexts,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
function extractCollectionExample(entry, entryMap, assetMap) {
|
|
268
|
+
const mock = extractMock(entry.fields, entryMap, assetMap);
|
|
269
|
+
const linkTexts = extractLinkTexts(entry.fields, entryMap);
|
|
270
|
+
// Extract card data from collection contents
|
|
271
|
+
const contents = entry.fields['contents'];
|
|
272
|
+
const cards = [];
|
|
273
|
+
if (Array.isArray(contents)) {
|
|
274
|
+
for (const item of contents) {
|
|
275
|
+
if (!isCdaLink(item) || item.sys.linkType !== 'Entry')
|
|
276
|
+
continue;
|
|
277
|
+
const cardEntry = entryMap.get(item.sys.id);
|
|
278
|
+
if (!cardEntry)
|
|
279
|
+
continue;
|
|
280
|
+
// Extract component entries as standard cards; person entries as person cards.
|
|
281
|
+
// Skip nested collections, page links, and other non-card content types.
|
|
282
|
+
const contentTypeId = cardEntry.sys.contentType.sys.id;
|
|
283
|
+
if (contentTypeId === 'component') {
|
|
284
|
+
cards.push(extractCardFromEntry(cardEntry, entryMap, assetMap));
|
|
285
|
+
}
|
|
286
|
+
else if (contentTypeId === 'person') {
|
|
287
|
+
cards.push(extractPersonCard(cardEntry, assetMap));
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return {
|
|
292
|
+
entryId: entry.sys.id,
|
|
293
|
+
cmsLabel: extractString(entry.fields, 'cmsLabel') ?? entry.sys.id,
|
|
294
|
+
fieldCompleteness: scoreCompleteness(mock, linkTexts),
|
|
295
|
+
mock,
|
|
296
|
+
cards,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
// ============================================================================
|
|
300
|
+
// Contentful CDA fetch with pagination
|
|
301
|
+
// ============================================================================
|
|
302
|
+
async function fetchAllEntries(spaceId, environmentId, accessToken, contentType) {
|
|
303
|
+
const pages = [];
|
|
304
|
+
const limit = 100;
|
|
305
|
+
let skip = 0;
|
|
306
|
+
let total = Number.POSITIVE_INFINITY;
|
|
307
|
+
while (skip < total) {
|
|
308
|
+
const url = new URL(`https://cdn.contentful.com/spaces/${spaceId}/environments/${environmentId}/entries`);
|
|
309
|
+
url.searchParams.set('access_token', accessToken);
|
|
310
|
+
url.searchParams.set('content_type', contentType);
|
|
311
|
+
url.searchParams.set('include', '3');
|
|
312
|
+
url.searchParams.set('limit', String(limit));
|
|
313
|
+
url.searchParams.set('skip', String(skip));
|
|
314
|
+
console.log(`Fetching ${contentType} entries (skip=${skip})...`);
|
|
315
|
+
const response = await fetch(url.toString());
|
|
316
|
+
if (!response.ok) {
|
|
317
|
+
throw new Error(`Contentful CDA error: ${response.status} ${response.statusText} for content_type=${contentType}`);
|
|
318
|
+
}
|
|
319
|
+
const data = (await response.json());
|
|
320
|
+
total = data.total;
|
|
321
|
+
pages.push({
|
|
322
|
+
items: data.items,
|
|
323
|
+
includes: {
|
|
324
|
+
Entry: data.includes?.Entry ?? [],
|
|
325
|
+
Asset: data.includes?.Asset ?? [],
|
|
326
|
+
},
|
|
327
|
+
});
|
|
328
|
+
skip += data.items.length;
|
|
329
|
+
// Guard against empty page (shouldn't happen but prevents infinite loop)
|
|
330
|
+
if (data.items.length === 0)
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
return pages;
|
|
334
|
+
}
|
|
335
|
+
// ============================================================================
|
|
336
|
+
// Main
|
|
337
|
+
// ============================================================================
|
|
338
|
+
async function main() {
|
|
339
|
+
const spaceId = process.env['CONTENTFUL_SPACE_ID'];
|
|
340
|
+
const accessToken = process.env['CONTENTFUL_ACCESS_TOKEN'];
|
|
341
|
+
const environmentId = process.env['CONTENTFUL_ENVIRONMENT_NAME'] ?? 'master';
|
|
342
|
+
if (!spaceId || !accessToken) {
|
|
343
|
+
console.error('Missing required environment variables: CONTENTFUL_SPACE_ID, CONTENTFUL_ACCESS_TOKEN');
|
|
344
|
+
process.exit(1);
|
|
345
|
+
}
|
|
346
|
+
const output = {
|
|
347
|
+
generatedAt: new Date().toISOString(),
|
|
348
|
+
space: spaceId,
|
|
349
|
+
environment: environmentId,
|
|
350
|
+
components: {},
|
|
351
|
+
collections: {},
|
|
352
|
+
};
|
|
353
|
+
// --- Components ---
|
|
354
|
+
console.log('\nFetching components...');
|
|
355
|
+
const componentPages = await fetchAllEntries(spaceId, environmentId, accessToken, 'component');
|
|
356
|
+
let componentCount = 0;
|
|
357
|
+
for (const page of componentPages) {
|
|
358
|
+
const { entryMap, assetMap } = buildLookupMaps({
|
|
359
|
+
total: 0,
|
|
360
|
+
skip: 0,
|
|
361
|
+
limit: 0,
|
|
362
|
+
items: [],
|
|
363
|
+
includes: page.includes,
|
|
364
|
+
});
|
|
365
|
+
for (const entry of page.items) {
|
|
366
|
+
const componentType = extractString(entry.fields, 'componentType');
|
|
367
|
+
if (!componentType)
|
|
368
|
+
continue;
|
|
369
|
+
const example = extractComponentExample(entry, entryMap, assetMap);
|
|
370
|
+
if (!output.components[componentType]) {
|
|
371
|
+
output.components[componentType] = [];
|
|
372
|
+
}
|
|
373
|
+
output.components[componentType].push(example);
|
|
374
|
+
componentCount++;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
console.log(`Extracted ${componentCount} component entries across ${Object.keys(output.components).length} types.`);
|
|
378
|
+
// --- Collections ---
|
|
379
|
+
console.log('\nFetching collections...');
|
|
380
|
+
const collectionPages = await fetchAllEntries(spaceId, environmentId, accessToken, 'collection');
|
|
381
|
+
let collectionCount = 0;
|
|
382
|
+
for (const page of collectionPages) {
|
|
383
|
+
const { entryMap, assetMap } = buildLookupMaps({
|
|
384
|
+
total: 0,
|
|
385
|
+
skip: 0,
|
|
386
|
+
limit: 0,
|
|
387
|
+
items: [],
|
|
388
|
+
includes: page.includes,
|
|
389
|
+
});
|
|
390
|
+
for (const entry of page.items) {
|
|
391
|
+
const collectionType = extractString(entry.fields, 'collectionType');
|
|
392
|
+
if (!collectionType)
|
|
393
|
+
continue;
|
|
394
|
+
const example = extractCollectionExample(entry, entryMap, assetMap);
|
|
395
|
+
if (!output.collections[collectionType]) {
|
|
396
|
+
output.collections[collectionType] = [];
|
|
397
|
+
}
|
|
398
|
+
output.collections[collectionType].push(example);
|
|
399
|
+
collectionCount++;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
console.log(`Extracted ${collectionCount} collection entries across ${Object.keys(output.collections).length} types.`);
|
|
403
|
+
// Sort examples within each type by fieldCompleteness descending so the best examples come first
|
|
404
|
+
for (const examples of Object.values(output.components)) {
|
|
405
|
+
examples.sort((a, b) => b.fieldCompleteness - a.fieldCompleteness);
|
|
406
|
+
}
|
|
407
|
+
for (const examples of Object.values(output.collections)) {
|
|
408
|
+
examples.sort((a, b) => b.fieldCompleteness - a.fieldCompleteness);
|
|
409
|
+
}
|
|
410
|
+
// Write output
|
|
411
|
+
const outputDir = path.join(process.cwd(), 'src', 'generated');
|
|
412
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
413
|
+
const outputPath = path.join(outputDir, 'showcase-examples.json');
|
|
414
|
+
fs.writeFileSync(outputPath, JSON.stringify(output, null, 2), 'utf-8');
|
|
415
|
+
console.log(`\nWrote showcase examples to ${outputPath}`);
|
|
416
|
+
console.log(`Component types: ${Object.keys(output.components).join(', ') || '(none)'}`);
|
|
417
|
+
console.log(`Collection types: ${Object.keys(output.collections).join(', ') || '(none)'}`);
|
|
418
|
+
}
|
|
419
|
+
main().catch((err) => {
|
|
420
|
+
console.error(err);
|
|
421
|
+
process.exit(1);
|
|
422
|
+
});
|
|
423
|
+
//# sourceMappingURL=generate-showcase-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-showcase-data.js","sourceRoot":"","sources":["../src/generate-showcase-data.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/project-build",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.93",
|
|
4
4
|
"description": "Build tools and management scripts for SE Studio projects",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"bin": {
|
|
29
29
|
"setailwind": "./dist/setailwind.js",
|
|
30
30
|
"setup-colours": "./dist/management/setupColours.js",
|
|
31
|
-
"seskills": "./dist/seskills.js"
|
|
31
|
+
"seskills": "./dist/seskills.js",
|
|
32
|
+
"generate-showcase-data": "./dist/generate-showcase-data.js"
|
|
32
33
|
},
|
|
33
34
|
"files": [
|
|
34
35
|
"dist",
|
|
@@ -53,12 +54,12 @@
|
|
|
53
54
|
"url": "https://github.com/Something-Else-Studio/se-core-product/issues"
|
|
54
55
|
},
|
|
55
56
|
"dependencies": {
|
|
56
|
-
"@biomejs/biome": "^2.4.
|
|
57
|
+
"@biomejs/biome": "^2.4.5",
|
|
57
58
|
"@biomejs/js-api": "^4.0.0",
|
|
58
|
-
"@biomejs/wasm-nodejs": "^2.4.
|
|
59
|
+
"@biomejs/wasm-nodejs": "^2.4.5",
|
|
59
60
|
"change-case": "^5.4.4",
|
|
60
61
|
"chroma-js": "^3.2.0",
|
|
61
|
-
"contentful-management": "^11.73.
|
|
62
|
+
"contentful-management": "^11.73.1",
|
|
62
63
|
"dotenv": "^17.3.1"
|
|
63
64
|
},
|
|
64
65
|
"devDependencies": {
|