heyiam 0.3.6 → 0.3.9
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/dist/archive.js +28 -0
- package/dist/db.js +9 -0
- package/dist/export.js +3 -0
- package/dist/llm/project-enhance.js +11 -5
- package/dist/mount.js +43 -18
- package/dist/public/assets/index-ByoBtx7P.css +1 -0
- package/dist/public/assets/index-LQHTU1Wz.js +37 -0
- package/dist/public/index.html +2 -2
- package/dist/render/build-render-data.js +1 -0
- package/dist/render/liquid.js +14 -1
- package/dist/render/mock-data.js +6 -0
- package/dist/render/select-profile-skills.js +54 -0
- package/dist/render/templates/aurora/portfolio.liquid +4 -4
- package/dist/render/templates/aurora/styles.css +6 -6
- package/dist/render/templates/bauhaus/portfolio.liquid +4 -4
- package/dist/render/templates/bauhaus/project.liquid +2 -2
- package/dist/render/templates/bauhaus/styles.css +1 -1
- package/dist/render/templates/blueprint/portfolio.liquid +4 -4
- package/dist/render/templates/blueprint/styles.css +1 -1
- package/dist/render/templates/canvas/portfolio.liquid +4 -4
- package/dist/render/templates/canvas/styles.css +2 -2
- package/dist/render/templates/carbon/portfolio.liquid +4 -4
- package/dist/render/templates/carbon/styles.css +7 -7
- package/dist/render/templates/chalk/portfolio.liquid +4 -4
- package/dist/render/templates/chalk/styles.css +44 -2
- package/dist/render/templates/circuit/portfolio.liquid +4 -4
- package/dist/render/templates/cosmos/portfolio.liquid +4 -4
- package/dist/render/templates/cosmos/styles.css +4 -4
- package/dist/render/templates/daylight/portfolio.liquid +4 -4
- package/dist/render/templates/editorial/portfolio.liquid +4 -4
- package/dist/render/templates/editorial/project.liquid +1 -1
- package/dist/render/templates/editorial/styles.css +6 -1
- package/dist/render/templates/ember/portfolio.liquid +4 -4
- package/dist/render/templates/ember/styles.css +2 -2
- package/dist/render/templates/glacier/portfolio.liquid +4 -4
- package/dist/render/templates/glacier/project.liquid +3 -3
- package/dist/render/templates/glacier/styles.css +2 -2
- package/dist/render/templates/grid/portfolio.liquid +4 -4
- package/dist/render/templates/grid/styles.css +2 -2
- package/dist/render/templates/kinetic/portfolio.liquid +4 -4
- package/dist/render/templates/kinetic/project.liquid +1 -1
- package/dist/render/templates/kinetic/styles.css +5 -5
- package/dist/render/templates/meridian/portfolio.liquid +4 -4
- package/dist/render/templates/meridian/styles.css +1 -1
- package/dist/render/templates/minimal/portfolio.liquid +3 -3
- package/dist/render/templates/minimal/project.liquid +1 -1
- package/dist/render/templates/mono/portfolio.liquid +4 -4
- package/dist/render/templates/mono/styles.css +15 -1
- package/dist/render/templates/neon/portfolio.liquid +4 -4
- package/dist/render/templates/neon/styles.css +11 -20
- package/dist/render/templates/noir/portfolio.liquid +4 -4
- package/dist/render/templates/noir/styles.css +5 -5
- package/dist/render/templates/obsidian/portfolio.liquid +4 -4
- package/dist/render/templates/obsidian/styles.css +2 -2
- package/dist/render/templates/paper/portfolio.liquid +4 -4
- package/dist/render/templates/paper/project.liquid +2 -2
- package/dist/render/templates/paper/styles.css +60 -1
- package/dist/render/templates/parallax/portfolio.liquid +4 -4
- package/dist/render/templates/parallax/styles.css +1 -1
- package/dist/render/templates/parchment/portfolio.liquid +4 -4
- package/dist/render/templates/parchment/styles.css +3 -3
- package/dist/render/templates/partials/_work-timeline.liquid +1 -1
- package/dist/render/templates/project.liquid +1 -1
- package/dist/render/templates/radar/portfolio.liquid +4 -4
- package/dist/render/templates/radar/project.liquid +1 -1
- package/dist/render/templates/radar/styles.css +4 -4
- package/dist/render/templates/showcase/portfolio.liquid +4 -4
- package/dist/render/templates/showcase/project.liquid +1 -1
- package/dist/render/templates/showcase/styles.css +7 -7
- package/dist/render/templates/signal/portfolio.liquid +4 -4
- package/dist/render/templates/signal/styles.css +5 -5
- package/dist/render/templates/strata/portfolio.liquid +4 -4
- package/dist/render/templates/strata/styles.css +3 -3
- package/dist/render/templates/styles.css +39 -28
- package/dist/render/templates/terminal/portfolio.liquid +2 -2
- package/dist/render/templates/terminal/project.liquid +1 -1
- package/dist/render/templates/verdant/portfolio.liquid +4 -4
- package/dist/render/templates/verdant/styles.css +17 -2
- package/dist/render/templates/zen/portfolio.liquid +4 -4
- package/dist/render/templates/zen/styles.css +8 -8
- package/dist/routes/context.js +26 -3
- package/dist/routes/enhance.js +10 -3
- package/dist/routes/export.js +1 -0
- package/dist/routes/github.js +1 -1
- package/dist/routes/portfolio-render-data.js +15 -1
- package/dist/routes/preview.js +31 -1
- package/dist/routes/projects.js +8 -1
- package/dist/routes/publish.js +9 -2
- package/dist/settings.js +2 -0
- package/package.json +1 -1
- package/dist/public/assets/index-7mUuxgqY.js +0 -37
- package/dist/public/assets/index-CMyamplX.css +0 -1
package/dist/routes/publish.js
CHANGED
|
@@ -55,7 +55,7 @@ export function createPublishRouter(ctx) {
|
|
|
55
55
|
// Render project preview HTML
|
|
56
56
|
router.post('/api/projects/:project/render-preview', async (req, res) => {
|
|
57
57
|
try {
|
|
58
|
-
const { username, slug, title, narrative, repoUrl, projectUrl, screenshotUrl, timeline, skills, totalSessions, totalLoc, totalDurationMinutes, totalAgentDurationMinutes, totalFilesChanged, totalTokens, sessionCards, } = req.body;
|
|
58
|
+
const { username, slug, title, narrative, repoUrl, projectUrl, screenshotUrl, timeline, skills, totalSessions, totalLoc, totalDurationMinutes, totalAgentDurationMinutes, totalFilesChanged, totalTokens, sessionCards, hideSessionDates, } = req.body;
|
|
59
59
|
const renderData = buildProjectRenderData({
|
|
60
60
|
username: username || 'preview',
|
|
61
61
|
slug, title, narrative,
|
|
@@ -69,6 +69,7 @@ export function createPublishRouter(ctx) {
|
|
|
69
69
|
totalFilesChanged: totalFilesChanged || 0,
|
|
70
70
|
totalTokens,
|
|
71
71
|
sessionCards: sessionCards || [],
|
|
72
|
+
hideSessionDates,
|
|
72
73
|
});
|
|
73
74
|
const templateName = getDefaultTemplate() || 'editorial';
|
|
74
75
|
const html = renderProjectHtml(renderData, undefined, templateName);
|
|
@@ -181,6 +182,11 @@ export function createPublishRouter(ctx) {
|
|
|
181
182
|
send({ type: 'screenshot', status: 'capturing' });
|
|
182
183
|
const raw = screenshotBase64.includes(',') ? screenshotBase64.split(',')[1] : screenshotBase64;
|
|
183
184
|
imageBuffer = Buffer.from(raw, 'base64');
|
|
185
|
+
// FIXME(security): ext detection only handles png/jpg, so an SVG
|
|
186
|
+
// (allowed by the file picker's `accept="image/*"`) gets uploaded
|
|
187
|
+
// to S3 with `Content-Type: image/png` while the bytes are SVG.
|
|
188
|
+
// CSP on heyi.am mitigates script execution, but reject SVG here
|
|
189
|
+
// (or convert it) instead of relying on downstream defenses.
|
|
184
190
|
ext = screenshotBase64.startsWith('data:image/jpeg') || screenshotBase64.startsWith('data:image/jpg') ? 'jpg' : 'png';
|
|
185
191
|
}
|
|
186
192
|
else if (projectUrl) {
|
|
@@ -424,7 +430,7 @@ export function createPublishRouter(ctx) {
|
|
|
424
430
|
fingerprint: 'portfolio-upload',
|
|
425
431
|
enhancedAt: new Date().toISOString(),
|
|
426
432
|
selectedSessionIds: detail.sessions.map((s) => s.id),
|
|
427
|
-
result: { narrative: '', arc: [], skills: [], timeline: [], questions: [] },
|
|
433
|
+
result: { tagline: '', narrative: '', arc: [], skills: [], timeline: [], questions: [] },
|
|
428
434
|
};
|
|
429
435
|
const selectedSessionIds = enhance !== null && enhance.selectedSessionIds !== undefined
|
|
430
436
|
? enhance.selectedSessionIds
|
|
@@ -720,6 +726,7 @@ export function createPublishRouter(ctx) {
|
|
|
720
726
|
enhancedAt: new Date().toISOString(),
|
|
721
727
|
selectedSessionIds: detail.sessions.map((s) => s.id),
|
|
722
728
|
result: {
|
|
729
|
+
tagline: '',
|
|
723
730
|
narrative: '',
|
|
724
731
|
arc: [],
|
|
725
732
|
skills: [],
|
package/dist/settings.js
CHANGED
|
@@ -163,6 +163,8 @@ export function saveProjectEnhanceResult(projectDirName, selectedSessionIds, res
|
|
|
163
163
|
...(extras?.repoUrl ? { repoUrl: extras.repoUrl } : {}),
|
|
164
164
|
...(extras?.projectUrl ? { projectUrl: extras.projectUrl } : {}),
|
|
165
165
|
...(extras?.screenshotBase64 ? { screenshotBase64: extras.screenshotBase64 } : {}),
|
|
166
|
+
...(extras?.template ? { template: extras.template } : {}),
|
|
167
|
+
...(extras?.hideSessionDates ? { hideSessionDates: true } : {}),
|
|
166
168
|
result,
|
|
167
169
|
};
|
|
168
170
|
writeFileSync(projectEnhancePath(projectDirName, configDir), JSON.stringify(cache, null, 2), { mode: 0o600 });
|