@codeyam/codeyam-cli 0.1.11 → 0.1.12
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/analyzer-template/.build-info.json +8 -8
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +2 -2
- package/analyzer-template/packages/ai/package.json +1 -1
- package/analyzer-template/packages/aws/package.json +1 -1
- package/analyzer-template/packages/database/package.json +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +42 -16
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +3 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +44 -16
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
- package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +11 -0
- package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -1
- package/codeyam-cli/src/commands/editor.js +1214 -217
- package/codeyam-cli/src/commands/editor.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +893 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
- package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
- package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +6 -3
- package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +261 -0
- package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +75 -1
- package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
- package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +441 -17
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +67 -0
- package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
- package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
- package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
- package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +67 -9
- package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
- package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +40 -1
- package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
- package/codeyam-cli/src/utils/analysisRunner.js +3 -1
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/editorAudit.js +145 -0
- package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
- package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
- package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
- package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
- package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
- package/codeyam-cli/src/utils/editorEntityChangeStatus.js +1 -1
- package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
- package/codeyam-cli/src/utils/editorEntityHelpers.js +129 -0
- package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
- package/codeyam-cli/src/utils/editorLoaderHelpers.js +40 -1
- package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -1
- package/codeyam-cli/src/utils/editorMigration.js +224 -0
- package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
- package/codeyam-cli/src/utils/editorScenarios.js +163 -2
- package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
- package/codeyam-cli/src/utils/editorSeedAdapter.js +253 -4
- package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -1
- package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
- package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
- package/codeyam-cli/src/utils/entityChangeStatus.js +19 -2
- package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
- package/codeyam-cli/src/utils/entityChangeStatus.server.js +7 -3
- package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -1
- package/codeyam-cli/src/utils/fileWatcher.js +38 -0
- package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +9 -0
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
- package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
- package/codeyam-cli/src/utils/scenarioCoverage.js +8 -9
- package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -1
- package/codeyam-cli/src/utils/scenariosManifest.js +18 -10
- package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +35 -0
- package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
- package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +33 -0
- package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
- package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
- package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
- package/codeyam-cli/src/webserver/backgroundServer.js +18 -4
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CzTDWkF2.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-BcgbViKV.js → EntityItem-BFbq6iFk.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CQIG2qda.js → EntityTypeIcon-B6OMi58N.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-DuYodzo1.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-CXo9EeCl.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DYCNb2It.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BU_OAEMP.js → LoadingDots-By5zI316.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-ceAyBX-H.js → LogViewer-CZgY3sxX.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-BzHcG7SE.js → ReportIssueModal-CnYYwRDw.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CDoF7ZpU.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-TSD3C211.js → ScenarioViewer-DrnfvaLL.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/Spinner-Df3UCi8k.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-DRKR9T0U.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{_index-DLxKhri3.js → _index-ClR-g3tY.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BcY3q6nt.js → activity.(_tab)-DTH6ydEA.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-Duc5hnl7.js → addon-web-links-74hnHF59.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-Bni3iiUj.js → agent-transcripts-B8CYhCO9.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{book-open-BYOypzCa.js → book-open-CLaoh4ac.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-C_Pmso5S.js → chevron-down-BZ2DZxbW.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-C4pqxYJB.js → chunk-JZWAC4HX-BBXArFPl.js} +13 -21
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BVMi9VA5.js → circle-check-CT4unAk-.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{copy-n2FB0_Sw.js → copy-zK0B6Nu-.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CC6AbExI.js → createLucideIcon-DJB0YQJL.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CkXFP_i-.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/editor._tab-DPw7NZHc.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DmBK1JBK.js +58 -0
- package/codeyam-cli/src/webserver/build/client/assets/editorPreview-DBa7T2FK.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-DwCV5__E.js → entity._sha._-BqAN7hyG.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-BOi8kpwd.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-Dg1NhIms.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CJX6kkkV.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMvVHNXU.js → entity._sha_.edit._scenarioId-BhVjZhKg.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DTvKq3TY.js → entry.client-_gzKltPN.js} +6 -6
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-CV_17tZS.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-D-YXmMbR.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-CGrDAxj0.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-yHOVb4rc.js → index-Blo6EK8G.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-10oVnAAH.js → index-BsX0F-9C.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-BcvgDzbZ.js → index-CCrgCshv.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/labs-Byazq8Pv.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DaAZ_H2w.js → loader-circle-DVQ0oHR7.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-b3f77062.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{memory-9gnxSZlb.js → memory-b-VmA2Vj.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{pause-f5-1lKBt.js → pause-DGcndCAa.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{root-DBjt6o04.js → root-D5Zi3U2Z.js} +5 -5
- package/codeyam-cli/src/webserver/build/client/assets/{search-Di64LWVb.js → search-C0Uw0bcK.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-OoNgHIfW.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-Bcemfu8a.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{terminal-Br7MOqts.js → terminal-BgMmG7R9.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BLdiCuG-.js → triangle-alert-Cs87hJYK.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BR3Rs7JY.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-C14nCb1q.js → useLastLogLine-BxxP_XF9.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-BermyNU5.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/useToast-a_QN_W9_.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-yTyb36j3.js +13 -0
- package/codeyam-cli/src/webserver/build/server/assets/{index-DsZjKspK.js → index-Cr7d_IsG.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/init-M_wqNAfu.js +10 -0
- package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-_ybRgrlc.js +551 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/editorProxy.js +93 -11
- package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
- package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
- package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
- package/codeyam-cli/src/webserver/server.js +9 -0
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +74 -8
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
- package/codeyam-cli/templates/editor-step-hook.py +104 -20
- package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +42 -7
- package/codeyam-cli/templates/seed-adapters/supabase.ts +282 -0
- package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +62 -0
- package/package.json +1 -1
- package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +44 -16
- package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-BPXZwM4t.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-g3saevPb.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +0 -25
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DLeucoVX.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BED4B6sP.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +0 -34
- package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-C8OKAR5x.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Ii3inc0_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/editor-16o0AIFV.js +0 -15
- package/codeyam-cli/src/webserver/build/client/assets/editorPreview-7Uga8I59.js +0 -41
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-BwKcai0j.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CHMiAog3.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-cPo8LiG3.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-BZrlFE1F.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-DdZcvjGh.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-CQPR0pFR.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-76e7b62c.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-0OrEMU6J.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-DWT-CvLy.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C-_hOl_g.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useToast-9FIWuYfK.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/init-DdqKD2p4.js +0 -10
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CKKeWtVK.js +0 -444
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import fs from 'fs';
|
|
8
8
|
import path from 'path';
|
|
9
|
+
import { buildRoutePattern, routeDisplayName } from "./routePatternMatching.js";
|
|
10
|
+
import { pageNameFromUrl } from "./entityChangeStatus.js";
|
|
11
|
+
import { sanitizeGlossaryEntries } from "./editorLoaderHelpers.js";
|
|
9
12
|
/**
|
|
10
13
|
* Generic Map-based deduplication that keeps the last item for each key.
|
|
11
14
|
* Items are iterated in order, so later entries overwrite earlier ones.
|
|
@@ -295,7 +298,6 @@ export async function upsertEditorScenario(db, params) {
|
|
|
295
298
|
type: params.type,
|
|
296
299
|
viewport_width: params.viewportWidth,
|
|
297
300
|
viewport_height: params.viewportHeight,
|
|
298
|
-
dimension: params.dimension,
|
|
299
301
|
updated_at: new Date()
|
|
300
302
|
.toISOString()
|
|
301
303
|
.replace('T', ' ')
|
|
@@ -305,6 +307,15 @@ export async function upsertEditorScenario(db, params) {
|
|
|
305
307
|
updateSet.dimensions = dimensionsJson;
|
|
306
308
|
updateSet.screenshot_paths = screenshotPathsJson;
|
|
307
309
|
}
|
|
310
|
+
if (params.pageFilePath !== undefined) {
|
|
311
|
+
updateSet.page_file_path = params.pageFilePath;
|
|
312
|
+
}
|
|
313
|
+
if (params.entitySha !== undefined) {
|
|
314
|
+
updateSet.entity_sha = params.entitySha;
|
|
315
|
+
}
|
|
316
|
+
if (params.displayName !== undefined) {
|
|
317
|
+
updateSet.display_name = params.displayName;
|
|
318
|
+
}
|
|
308
319
|
await db
|
|
309
320
|
.updateTable('editor_scenarios')
|
|
310
321
|
.set(updateSet)
|
|
@@ -336,12 +347,20 @@ export async function upsertEditorScenario(db, params) {
|
|
|
336
347
|
type: params.type,
|
|
337
348
|
viewport_width: params.viewportWidth,
|
|
338
349
|
viewport_height: params.viewportHeight,
|
|
339
|
-
dimension: params.dimension,
|
|
340
350
|
};
|
|
341
351
|
if (params.dimensions !== undefined) {
|
|
342
352
|
insertValues.dimensions = dimensionsJson;
|
|
343
353
|
insertValues.screenshot_paths = screenshotPathsJson;
|
|
344
354
|
}
|
|
355
|
+
if (params.pageFilePath !== undefined) {
|
|
356
|
+
insertValues.page_file_path = params.pageFilePath;
|
|
357
|
+
}
|
|
358
|
+
if (params.entitySha !== undefined) {
|
|
359
|
+
insertValues.entity_sha = params.entitySha;
|
|
360
|
+
}
|
|
361
|
+
if (params.displayName !== undefined) {
|
|
362
|
+
insertValues.display_name = params.displayName;
|
|
363
|
+
}
|
|
345
364
|
await db.insertInto('editor_scenarios').values(insertValues).execute();
|
|
346
365
|
return { scenarioId, isNew: true, cleanedUpIds: [] };
|
|
347
366
|
}
|
|
@@ -384,4 +403,146 @@ export function cleanupScenarioFiles(codeyamRoot, scenarioIds) {
|
|
|
384
403
|
}
|
|
385
404
|
}
|
|
386
405
|
}
|
|
406
|
+
/**
|
|
407
|
+
* Validate that an app/user scenario's file path has a glossary entry.
|
|
408
|
+
* For component-type scenarios, validation is skipped (they use a different flow).
|
|
409
|
+
*
|
|
410
|
+
* Returns:
|
|
411
|
+
* - { valid: true } if validation passes or is skipped
|
|
412
|
+
* - { valid: true, needsAnalysis: true } if in glossary but entity not yet created
|
|
413
|
+
* - { valid: false, error: "..." } if the file is not in the glossary
|
|
414
|
+
*/
|
|
415
|
+
export function validateEntityLinkageForAppScenario(params) {
|
|
416
|
+
const { lookupFilePath, scenarioType, projectRoot } = params;
|
|
417
|
+
// Only validate for application/user scenarios
|
|
418
|
+
if (scenarioType !== 'application' && scenarioType !== 'user') {
|
|
419
|
+
return { valid: true };
|
|
420
|
+
}
|
|
421
|
+
// Nothing to validate if no file path
|
|
422
|
+
if (!lookupFilePath) {
|
|
423
|
+
return { valid: true };
|
|
424
|
+
}
|
|
425
|
+
// Read and parse the glossary
|
|
426
|
+
const glossaryPath = path.join(projectRoot, '.codeyam', 'glossary.json');
|
|
427
|
+
let glossaryEntries = [];
|
|
428
|
+
try {
|
|
429
|
+
const raw = JSON.parse(fs.readFileSync(glossaryPath, 'utf8'));
|
|
430
|
+
glossaryEntries = sanitizeGlossaryEntries(raw);
|
|
431
|
+
}
|
|
432
|
+
catch {
|
|
433
|
+
// Glossary doesn't exist or can't be parsed — file not in glossary
|
|
434
|
+
}
|
|
435
|
+
const inGlossary = glossaryEntries.some((entry) => entry.filePath === lookupFilePath);
|
|
436
|
+
if (!inGlossary) {
|
|
437
|
+
const hint = glossaryEntries.length === 0
|
|
438
|
+
? ` glossary.json is empty or could not be parsed. It must be a JSON array: [{"name": "...", "filePath": "${lookupFilePath}", ...}]`
|
|
439
|
+
: ` Found ${glossaryEntries.length} entries but none with filePath "${lookupFilePath}".`;
|
|
440
|
+
return {
|
|
441
|
+
valid: false,
|
|
442
|
+
error: `No glossary entry found for '${lookupFilePath}'.${hint} Add this file to .codeyam/glossary.json before registering app scenarios.`,
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
// In glossary but entity doesn't exist yet — caller needs to run analyze-imports
|
|
446
|
+
return { valid: true, needsAnalysis: true };
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Count scenarios that have null entity_sha but do have a file path
|
|
450
|
+
* (component_path or page_file_path) — these need entity backfill.
|
|
451
|
+
*/
|
|
452
|
+
export async function countScenariosNeedingEntityBackfill(db) {
|
|
453
|
+
const result = await db
|
|
454
|
+
.selectFrom('editor_scenarios')
|
|
455
|
+
.select(db.fn.countAll().as('count'))
|
|
456
|
+
.where('entity_sha', 'is', null)
|
|
457
|
+
.where((eb) => eb.or([
|
|
458
|
+
eb('component_path', 'is not', null),
|
|
459
|
+
eb('page_file_path', 'is not', null),
|
|
460
|
+
]))
|
|
461
|
+
.executeTakeFirstOrThrow();
|
|
462
|
+
return Number(result.count);
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Backfill entity_sha (and display_name) on scenarios that were registered
|
|
466
|
+
* before analyze-imports created the entity records in the DB.
|
|
467
|
+
*
|
|
468
|
+
* Matches scenarios by component_path or page_file_path against the entities
|
|
469
|
+
* array. Uses the same display_name derivation as the register route.
|
|
470
|
+
*/
|
|
471
|
+
/**
|
|
472
|
+
* Sync scenario entity_sha values to match the latest entity versions.
|
|
473
|
+
*
|
|
474
|
+
* Called proactively when entity versions change (file watcher) and during
|
|
475
|
+
* registration/audit. Updates scenarios with NULL or stale entity SHAs to
|
|
476
|
+
* point to the latest entity version. Safe because journals preserve
|
|
477
|
+
* screenshots and everything is version-controlled in git.
|
|
478
|
+
*
|
|
479
|
+
* @deprecated Use syncScenarioEntityShas — backfillEntityShaOnScenarios is the legacy name
|
|
480
|
+
*/
|
|
481
|
+
export const backfillEntityShaOnScenarios = syncScenarioEntityShas;
|
|
482
|
+
export async function syncScenarioEntityShas(db, entities) {
|
|
483
|
+
// Build lookup maps: name+path for precise component matching,
|
|
484
|
+
// path-only as fallback for page scenarios (no component_name).
|
|
485
|
+
// A single file can export multiple entities (e.g., FullPageLibrary.tsx
|
|
486
|
+
// exports FullPageLibrary, FullPageEmptyState, FullPageArticleCard).
|
|
487
|
+
const entityByNameAndPath = new Map();
|
|
488
|
+
const entityByPath = new Map();
|
|
489
|
+
for (const entity of entities) {
|
|
490
|
+
if (entity.filePath) {
|
|
491
|
+
entityByNameAndPath.set(`${entity.name}::${entity.filePath}`, entity);
|
|
492
|
+
entityByPath.set(entity.filePath, entity);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
// Query scenarios that need updating: either NULL entity_sha or stale
|
|
496
|
+
// (pointing to an older entity version). Journals preserve screenshots
|
|
497
|
+
// and everything is version-controlled, so keeping scenarios on the
|
|
498
|
+
// latest entity SHA is always correct.
|
|
499
|
+
const rows = await db
|
|
500
|
+
.selectFrom('editor_scenarios')
|
|
501
|
+
.selectAll()
|
|
502
|
+
.where((eb) => eb.or([
|
|
503
|
+
eb('component_path', 'is not', null),
|
|
504
|
+
eb('page_file_path', 'is not', null),
|
|
505
|
+
]))
|
|
506
|
+
.execute();
|
|
507
|
+
if (rows.length === 0)
|
|
508
|
+
return { updated: 0 };
|
|
509
|
+
let updated = 0;
|
|
510
|
+
for (const row of rows) {
|
|
511
|
+
const r = row;
|
|
512
|
+
const lookupPath = r.component_path || r.page_file_path;
|
|
513
|
+
if (!lookupPath)
|
|
514
|
+
continue;
|
|
515
|
+
// Prefer name+path match for component scenarios (handles multi-entity files).
|
|
516
|
+
// Fall back to path-only for page scenarios or when name doesn't match.
|
|
517
|
+
const entity = (r.component_name &&
|
|
518
|
+
entityByNameAndPath.get(`${r.component_name}::${lookupPath}`)) ||
|
|
519
|
+
entityByPath.get(lookupPath);
|
|
520
|
+
if (!entity)
|
|
521
|
+
continue;
|
|
522
|
+
// Skip if already pointing to the latest SHA
|
|
523
|
+
if (r.entity_sha === entity.sha)
|
|
524
|
+
continue;
|
|
525
|
+
// Derive display_name using same logic as register route
|
|
526
|
+
let displayName = null;
|
|
527
|
+
if (r.component_name) {
|
|
528
|
+
displayName = r.component_name;
|
|
529
|
+
}
|
|
530
|
+
else if (r.page_file_path && r.page_file_path.startsWith('app/')) {
|
|
531
|
+
displayName = routeDisplayName(buildRoutePattern(r.page_file_path));
|
|
532
|
+
}
|
|
533
|
+
else if (r.url) {
|
|
534
|
+
displayName = pageNameFromUrl(r.url);
|
|
535
|
+
}
|
|
536
|
+
await db
|
|
537
|
+
.updateTable('editor_scenarios')
|
|
538
|
+
.set({
|
|
539
|
+
entity_sha: entity.sha,
|
|
540
|
+
...(displayName ? { display_name: displayName } : {}),
|
|
541
|
+
})
|
|
542
|
+
.where('id', '=', r.id)
|
|
543
|
+
.execute();
|
|
544
|
+
updated++;
|
|
545
|
+
}
|
|
546
|
+
return { updated };
|
|
547
|
+
}
|
|
387
548
|
//# sourceMappingURL=editorScenarios.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorScenarios.js","sourceRoot":"","sources":["../../../../src/utils/editorScenarios.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editorScenarios.js","sourceRoot":"","sources":["../../../../src/utils/editorScenarios.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,103 @@ import { spawn } from 'child_process';
|
|
|
8
8
|
import * as fs from 'fs';
|
|
9
9
|
import * as path from 'path';
|
|
10
10
|
const DEFAULT_TIMEOUT_MS = 30000;
|
|
11
|
+
const SESSION_COOKIES_FILENAME = 'seed-session.json';
|
|
12
|
+
/**
|
|
13
|
+
* Parse a .env file into a Record of key-value pairs.
|
|
14
|
+
* Handles comments, empty lines, and quoted values.
|
|
15
|
+
*/
|
|
16
|
+
function parseDotEnvFile(filePath) {
|
|
17
|
+
const vars = {};
|
|
18
|
+
try {
|
|
19
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
20
|
+
for (const line of content.split('\n')) {
|
|
21
|
+
const trimmed = line.trim();
|
|
22
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
23
|
+
continue;
|
|
24
|
+
const eqIdx = trimmed.indexOf('=');
|
|
25
|
+
if (eqIdx === -1)
|
|
26
|
+
continue;
|
|
27
|
+
const key = trimmed.slice(0, eqIdx).trim();
|
|
28
|
+
let value = trimmed.slice(eqIdx + 1).trim();
|
|
29
|
+
// Strip surrounding quotes
|
|
30
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
31
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
32
|
+
value = value.slice(1, -1);
|
|
33
|
+
}
|
|
34
|
+
if (key)
|
|
35
|
+
vars[key] = value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// File doesn't exist or unreadable — that's fine
|
|
40
|
+
}
|
|
41
|
+
return vars;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read .env files from the project root, following Next.js precedence:
|
|
45
|
+
* .env → .env.local → .env.development → .env.development.local
|
|
46
|
+
* Later files override earlier ones.
|
|
47
|
+
*/
|
|
48
|
+
function readDotEnvFiles(projectRoot) {
|
|
49
|
+
const files = [
|
|
50
|
+
'.env',
|
|
51
|
+
'.env.local',
|
|
52
|
+
'.env.development',
|
|
53
|
+
'.env.development.local',
|
|
54
|
+
];
|
|
55
|
+
let merged = {};
|
|
56
|
+
for (const file of files) {
|
|
57
|
+
const vars = parseDotEnvFile(path.join(projectRoot, file));
|
|
58
|
+
merged = { ...merged, ...vars };
|
|
59
|
+
}
|
|
60
|
+
return merged;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Read environmentVariables from .codeyam/config.json and return as a
|
|
64
|
+
* Record suitable for merging into process.env.
|
|
65
|
+
* Supports both { key, value } and { name, value } formats for robustness.
|
|
66
|
+
*/
|
|
67
|
+
function readConfigEnvVars(projectRoot) {
|
|
68
|
+
const envVars = {};
|
|
69
|
+
try {
|
|
70
|
+
const configPath = path.join(projectRoot, '.codeyam', 'config.json');
|
|
71
|
+
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
72
|
+
for (const envVar of config.environmentVariables || []) {
|
|
73
|
+
const varName = envVar.key || envVar.name;
|
|
74
|
+
if (varName && envVar.value !== undefined) {
|
|
75
|
+
envVars[varName] = envVar.value;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// No config or invalid — that's fine
|
|
81
|
+
}
|
|
82
|
+
return envVars;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Read session cookies written by the seed adapter.
|
|
86
|
+
* The adapter writes to .codeyam/tmp/seed-session.json with format:
|
|
87
|
+
* { "cookies": [{ "name": "...", "value": "...", "path": "/", "sameSite": "Lax" }] }
|
|
88
|
+
* The file is deleted after reading (one-shot).
|
|
89
|
+
*/
|
|
90
|
+
function readSessionCookies(projectRoot) {
|
|
91
|
+
const sessionPath = path.join(projectRoot, '.codeyam', 'tmp', SESSION_COOKIES_FILENAME);
|
|
92
|
+
try {
|
|
93
|
+
if (!fs.existsSync(sessionPath))
|
|
94
|
+
return undefined;
|
|
95
|
+
const raw = fs.readFileSync(sessionPath, 'utf-8');
|
|
96
|
+
const data = JSON.parse(raw);
|
|
97
|
+
// Clean up — session file is single-use
|
|
98
|
+
fs.unlinkSync(sessionPath);
|
|
99
|
+
if (data.cookies && Array.isArray(data.cookies)) {
|
|
100
|
+
return data.cookies;
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
11
108
|
/**
|
|
12
109
|
* Run a seed adapter script, passing the seed data JSON file path as the first CLI arg.
|
|
13
110
|
*
|
|
@@ -27,9 +124,13 @@ export function runSeedAdapter(scriptPath, seedDataPath, options) {
|
|
|
27
124
|
const isTsFile = scriptPath.endsWith('.ts');
|
|
28
125
|
const command = isTsFile ? 'npx' : scriptPath;
|
|
29
126
|
const args = isTsFile ? ['tsx', scriptPath, seedDataPath] : [seedDataPath];
|
|
127
|
+
// Build env for the seed adapter, matching what the dev server sees:
|
|
128
|
+
// .env files → config.json environmentVariables → process.env
|
|
129
|
+
const dotEnv = readDotEnvFiles(cwd);
|
|
130
|
+
const configEnv = readConfigEnvVars(cwd);
|
|
30
131
|
const child = spawn(command, args, {
|
|
31
132
|
cwd,
|
|
32
|
-
env: { ...process.env },
|
|
133
|
+
env: { ...dotEnv, ...configEnv, ...process.env },
|
|
33
134
|
});
|
|
34
135
|
let stdout = '';
|
|
35
136
|
let stderr = '';
|
|
@@ -56,7 +157,9 @@ export function runSeedAdapter(scriptPath, seedDataPath, options) {
|
|
|
56
157
|
});
|
|
57
158
|
}
|
|
58
159
|
else if (code === 0) {
|
|
59
|
-
|
|
160
|
+
// Check for session cookies written by the seed adapter
|
|
161
|
+
const sessionCookies = readSessionCookies(cwd);
|
|
162
|
+
resolve({ success: true, output: stdout, durationMs, sessionCookies });
|
|
60
163
|
}
|
|
61
164
|
else {
|
|
62
165
|
resolve({
|
|
@@ -79,8 +182,80 @@ export function runSeedAdapter(scriptPath, seedDataPath, options) {
|
|
|
79
182
|
});
|
|
80
183
|
}
|
|
81
184
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
185
|
+
* Run the seed adapter in export mode to dump the current database state.
|
|
186
|
+
* Returns the exported JSON content on success.
|
|
187
|
+
*/
|
|
188
|
+
export function runSeedAdapterExport(scriptPath, outputPath, options) {
|
|
189
|
+
const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
190
|
+
const cwd = options?.cwd ??
|
|
191
|
+
(path.basename(path.dirname(scriptPath)) === '.codeyam'
|
|
192
|
+
? path.dirname(path.dirname(scriptPath))
|
|
193
|
+
: path.dirname(scriptPath));
|
|
194
|
+
return new Promise((resolve) => {
|
|
195
|
+
const start = Date.now();
|
|
196
|
+
const isTsFile = scriptPath.endsWith('.ts');
|
|
197
|
+
const command = isTsFile ? 'npx' : scriptPath;
|
|
198
|
+
const args = isTsFile
|
|
199
|
+
? ['tsx', scriptPath, '--export', outputPath]
|
|
200
|
+
: ['--export', outputPath];
|
|
201
|
+
const dotEnv = readDotEnvFiles(cwd);
|
|
202
|
+
const configEnv = readConfigEnvVars(cwd);
|
|
203
|
+
const child = spawn(command, args, {
|
|
204
|
+
cwd,
|
|
205
|
+
env: { ...dotEnv, ...configEnv, ...process.env },
|
|
206
|
+
});
|
|
207
|
+
let stdout = '';
|
|
208
|
+
let stderr = '';
|
|
209
|
+
let killed = false;
|
|
210
|
+
const timer = setTimeout(() => {
|
|
211
|
+
killed = true;
|
|
212
|
+
child.kill('SIGTERM');
|
|
213
|
+
}, timeoutMs);
|
|
214
|
+
child.stdout.on('data', (data) => {
|
|
215
|
+
stdout += data.toString();
|
|
216
|
+
});
|
|
217
|
+
child.stderr.on('data', (data) => {
|
|
218
|
+
stderr += data.toString();
|
|
219
|
+
});
|
|
220
|
+
child.on('close', (code) => {
|
|
221
|
+
clearTimeout(timer);
|
|
222
|
+
const durationMs = Date.now() - start;
|
|
223
|
+
if (killed) {
|
|
224
|
+
resolve({
|
|
225
|
+
success: false,
|
|
226
|
+
output: stdout,
|
|
227
|
+
error: `Seed adapter export timeout after ${timeoutMs}ms`,
|
|
228
|
+
durationMs,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
else if (code === 0) {
|
|
232
|
+
resolve({ success: true, output: stdout, durationMs });
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
resolve({
|
|
236
|
+
success: false,
|
|
237
|
+
output: stdout,
|
|
238
|
+
error: stderr || `Seed adapter export exited with code ${code}`,
|
|
239
|
+
durationMs,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
child.on('error', (err) => {
|
|
244
|
+
clearTimeout(timer);
|
|
245
|
+
resolve({
|
|
246
|
+
success: false,
|
|
247
|
+
output: '',
|
|
248
|
+
error: err.message,
|
|
249
|
+
durationMs: Date.now() - start,
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Extract seed data (and optional auth config) from a scenario JSON file
|
|
256
|
+
* and write it to a temporary file for the seed adapter.
|
|
257
|
+
*
|
|
258
|
+
* The adapter receives: { tableA: [...], tableB: [...], _auth?: { email, password } }
|
|
84
259
|
* without the CodeYam envelope ({type, seed, externalApis}).
|
|
85
260
|
*
|
|
86
261
|
* Returns the path to the temp file (caller should clean up after use).
|
|
@@ -91,6 +266,10 @@ export function prepareSeedDataFile(scenarioFilePath) {
|
|
|
91
266
|
const data = JSON.parse(raw);
|
|
92
267
|
// Extract seed data from envelope, or use as-is if no envelope
|
|
93
268
|
const seedData = data.seed || data;
|
|
269
|
+
// Include auth config if present (prefixed with _ to avoid table name collision)
|
|
270
|
+
if (data.auth && typeof data.auth === 'object' && data.auth.email) {
|
|
271
|
+
seedData._auth = data.auth;
|
|
272
|
+
}
|
|
94
273
|
const tempPath = scenarioFilePath.replace(/\.json$/, '.seed.json');
|
|
95
274
|
fs.writeFileSync(tempPath, JSON.stringify(seedData, null, 2));
|
|
96
275
|
return tempPath;
|
|
@@ -170,4 +349,74 @@ export function mergeSeedData(base, overlay) {
|
|
|
170
349
|
}
|
|
171
350
|
return result;
|
|
172
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Extract Prisma model names from a schema file's content.
|
|
354
|
+
* Matches lines like `model User {` and returns the model name.
|
|
355
|
+
*/
|
|
356
|
+
export function parsePrismaModelNames(schemaContent) {
|
|
357
|
+
const models = [];
|
|
358
|
+
const re = /^model\s+(\w+)\s*\{/gm;
|
|
359
|
+
let match;
|
|
360
|
+
while ((match = re.exec(schemaContent)) !== null) {
|
|
361
|
+
models.push(match[1]);
|
|
362
|
+
}
|
|
363
|
+
return models;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Convert a PascalCase Prisma model name to camelCase
|
|
367
|
+
* (matching the Prisma client accessor name).
|
|
368
|
+
*
|
|
369
|
+
* `User` → `user`, `BlogPost` → `blogPost`
|
|
370
|
+
*/
|
|
371
|
+
export function prismaModelToCamelCase(modelName) {
|
|
372
|
+
return modelName.charAt(0).toLowerCase() + modelName.slice(1);
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Validate seed data keys against Prisma model names.
|
|
376
|
+
* Returns warnings for keys that don't match any camelCase model name,
|
|
377
|
+
* with suggestions when a likely match is found (e.g. plural → singular).
|
|
378
|
+
*/
|
|
379
|
+
export function validateSeedKeysAgainstPrisma(seedKeys, schemaContent) {
|
|
380
|
+
const models = parsePrismaModelNames(schemaContent);
|
|
381
|
+
if (models.length === 0)
|
|
382
|
+
return [];
|
|
383
|
+
const camelNames = models.map(prismaModelToCamelCase);
|
|
384
|
+
const warnings = [];
|
|
385
|
+
for (const key of seedKeys) {
|
|
386
|
+
if (camelNames.includes(key))
|
|
387
|
+
continue;
|
|
388
|
+
// Try to find a suggestion
|
|
389
|
+
const suggestion = findSuggestion(key, models, camelNames);
|
|
390
|
+
if (suggestion) {
|
|
391
|
+
warnings.push(`Seed key "${key}" doesn't match any Prisma model. Did you mean "${suggestion}"?`);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
warnings.push(`Seed key "${key}" doesn't match any Prisma model. Available models: ${camelNames.join(', ')}`);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return warnings;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Try to find a suggestion for a mismatched seed key.
|
|
401
|
+
* Handles common mistakes: plural forms, PascalCase instead of camelCase.
|
|
402
|
+
*/
|
|
403
|
+
function findSuggestion(key, models, camelNames) {
|
|
404
|
+
// Check if it's PascalCase (matches a model name directly)
|
|
405
|
+
if (models.includes(key)) {
|
|
406
|
+
return prismaModelToCamelCase(key);
|
|
407
|
+
}
|
|
408
|
+
// Check if it's a plural form — try removing trailing 's'
|
|
409
|
+
if (key.endsWith('s')) {
|
|
410
|
+
const singular = key.slice(0, -1);
|
|
411
|
+
if (camelNames.includes(singular))
|
|
412
|
+
return singular;
|
|
413
|
+
}
|
|
414
|
+
// Check if it's a plural ending in 'es' (e.g. 'addresses')
|
|
415
|
+
if (key.endsWith('es')) {
|
|
416
|
+
const singular = key.slice(0, -2);
|
|
417
|
+
if (camelNames.includes(singular))
|
|
418
|
+
return singular;
|
|
419
|
+
}
|
|
420
|
+
return null;
|
|
421
|
+
}
|
|
173
422
|
//# sourceMappingURL=editorSeedAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorSeedAdapter.js","sourceRoot":"","sources":["../../../../src/utils/editorSeedAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editorSeedAdapter.js","sourceRoot":"","sources":["../../../../src/utils/editorSeedAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skip loader rerun when navigating between editor views (tabs, entities).
|
|
3
|
+
* The entity focus and tab are resolved client-side — only revalidate on
|
|
4
|
+
* SSE events (same URL) or form submissions.
|
|
5
|
+
*/
|
|
6
|
+
export function editorShouldRevalidate({ currentUrl, nextUrl, formMethod, defaultShouldRevalidate, }) {
|
|
7
|
+
// Always revalidate on form submissions
|
|
8
|
+
if (formMethod)
|
|
9
|
+
return defaultShouldRevalidate;
|
|
10
|
+
// Allow SSE-triggered revalidations (same URL = refresh, not navigation)
|
|
11
|
+
if (currentUrl.pathname === nextUrl.pathname)
|
|
12
|
+
return defaultShouldRevalidate;
|
|
13
|
+
// Skip loader rerun when navigating between /editor/* paths
|
|
14
|
+
// (tab changes, entity switches — all resolved client-side)
|
|
15
|
+
const isEditorNav = currentUrl.pathname.startsWith('/editor') &&
|
|
16
|
+
nextUrl.pathname.startsWith('/editor');
|
|
17
|
+
if (isEditorNav)
|
|
18
|
+
return false;
|
|
19
|
+
return defaultShouldRevalidate;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=editorShouldRevalidate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editorShouldRevalidate.js","sourceRoot":"","sources":["../../../../src/utils/editorShouldRevalidate.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,EACrC,UAAU,EACV,OAAO,EACP,UAAU,EACV,uBAAuB,GACM;IAC7B,wCAAwC;IACxC,IAAI,UAAU;QAAE,OAAO,uBAAuB,CAAC;IAE/C,yEAAyE;IACzE,IAAI,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QAAE,OAAO,uBAAuB,CAAC;IAE7E,4DAA4D;IAC5D,4DAA4D;IAC5D,MAAM,WAAW,GACf,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,WAAW;QAAE,OAAO,KAAK,CAAC;IAE9B,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Shared by both the editor.tsx loader and the journal entry API.
|
|
8
8
|
*/
|
|
9
|
+
import { buildRoutePattern, routeDisplayName } from "./routePatternMatching.js";
|
|
9
10
|
/**
|
|
10
11
|
* Build the changedFiles map from git status entries.
|
|
11
12
|
*
|
|
@@ -41,7 +42,7 @@ export function pageNameFromUrl(url) {
|
|
|
41
42
|
const cleanPath = url.split('?')[0].replace(/^\//, '');
|
|
42
43
|
if (!cleanPath)
|
|
43
44
|
return 'Home';
|
|
44
|
-
const segment = cleanPath.split('/')[0];
|
|
45
|
+
const segment = cleanPath.split('/')[0].replace(/\.[^.]+$/, '');
|
|
45
46
|
return segment.charAt(0).toUpperCase() + segment.slice(1);
|
|
46
47
|
}
|
|
47
48
|
/**
|
|
@@ -60,11 +61,15 @@ export function isIsolationUrl(url) {
|
|
|
60
61
|
* the Results Panel and journal entry filtering.
|
|
61
62
|
*
|
|
62
63
|
* - componentName is set → that's the entity (e.g., "ReviewCard")
|
|
63
|
-
* -
|
|
64
|
+
* - pageFilePath is set → route display name from file path (e.g., "Feedback / [id]")
|
|
65
|
+
* - otherwise → page entity derived from URL (e.g., "Drinks") — lossy fallback
|
|
64
66
|
*/
|
|
65
67
|
export function scenarioEntityName(scenario) {
|
|
66
68
|
if (scenario.componentName)
|
|
67
69
|
return scenario.componentName;
|
|
70
|
+
if (scenario.pageFilePath) {
|
|
71
|
+
return routeDisplayName(buildRoutePattern(scenario.pageFilePath));
|
|
72
|
+
}
|
|
68
73
|
return pageNameFromUrl(scenario.url);
|
|
69
74
|
}
|
|
70
75
|
/**
|
|
@@ -89,7 +94,19 @@ export function buildEntityInfosFromScenarios(scenarios, pageFilePaths, entities
|
|
|
89
94
|
entityName = s.componentName;
|
|
90
95
|
filePath = s.componentPath;
|
|
91
96
|
}
|
|
97
|
+
else if (!s.componentName && s.pageFilePath) {
|
|
98
|
+
// Prefer displayName (set during registration) for correct page identity.
|
|
99
|
+
// buildRoutePattern only works for app/ paths (file-based routing);
|
|
100
|
+
// non-app/ paths like src/library/FullPageLibrary.tsx collapse to '/'.
|
|
101
|
+
entityName =
|
|
102
|
+
s.displayName ||
|
|
103
|
+
(s.pageFilePath.startsWith('app/')
|
|
104
|
+
? routeDisplayName(buildRoutePattern(s.pageFilePath))
|
|
105
|
+
: pageNameFromUrl(s.url));
|
|
106
|
+
filePath = s.pageFilePath;
|
|
107
|
+
}
|
|
92
108
|
else if (!s.componentName && s.url !== undefined) {
|
|
109
|
+
// Fallback: derive from URL (lossy — multiple routes can collide)
|
|
93
110
|
const pageName = pageNameFromUrl(s.url);
|
|
94
111
|
if (pageFilePaths[pageName]) {
|
|
95
112
|
entityName = pageName;
|