skywriter 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +16 -0
- package/README.md +852 -0
- package/dist/cli/commands/host.d.ts +6 -0
- package/dist/cli/commands/host.d.ts.map +1 -0
- package/dist/cli/commands/host.js +52 -0
- package/dist/cli/commands/host.js.map +1 -0
- package/dist/cli/commands/init.d.ts +15 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +207 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/login.d.ts +18 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +152 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +15 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +62 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/pull.d.ts +19 -0
- package/dist/cli/commands/pull.d.ts.map +1 -0
- package/dist/cli/commands/pull.js +44 -0
- package/dist/cli/commands/pull.js.map +1 -0
- package/dist/cli/commands/push.d.ts +9 -0
- package/dist/cli/commands/push.d.ts.map +1 -0
- package/dist/cli/commands/push.js +49 -0
- package/dist/cli/commands/push.js.map +1 -0
- package/dist/cli/commands/removeServer.d.ts +9 -0
- package/dist/cli/commands/removeServer.d.ts.map +1 -0
- package/dist/cli/commands/removeServer.js +55 -0
- package/dist/cli/commands/removeServer.js.map +1 -0
- package/dist/cli/commands/render.d.ts +6 -0
- package/dist/cli/commands/render.d.ts.map +1 -0
- package/dist/cli/commands/render.js +11 -0
- package/dist/cli/commands/render.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +7 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +55 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/sessions.d.ts +6 -0
- package/dist/cli/commands/sessions.d.ts.map +1 -0
- package/dist/cli/commands/sessions.js +24 -0
- package/dist/cli/commands/sessions.js.map +1 -0
- package/dist/cli/commands/settings.d.ts +10 -0
- package/dist/cli/commands/settings.d.ts.map +1 -0
- package/dist/cli/commands/settings.js +69 -0
- package/dist/cli/commands/settings.js.map +1 -0
- package/dist/cli/commands/switchServer.d.ts +9 -0
- package/dist/cli/commands/switchServer.d.ts.map +1 -0
- package/dist/cli/commands/switchServer.js +52 -0
- package/dist/cli/commands/switchServer.js.map +1 -0
- package/dist/cli/commands/vscodeInit.d.ts +13 -0
- package/dist/cli/commands/vscodeInit.d.ts.map +1 -0
- package/dist/cli/commands/vscodeInit.js +152 -0
- package/dist/cli/commands/vscodeInit.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts +6 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -0
- package/dist/cli/commands/whoami.js +67 -0
- package/dist/cli/commands/whoami.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/middleware/checkDuplicatePath.d.ts +19 -0
- package/dist/cli/middleware/checkDuplicatePath.d.ts.map +1 -0
- package/dist/cli/middleware/checkDuplicatePath.js +45 -0
- package/dist/cli/middleware/checkDuplicatePath.js.map +1 -0
- package/dist/cli/middleware/redirectRoot.d.ts +18 -0
- package/dist/cli/middleware/redirectRoot.d.ts.map +1 -0
- package/dist/cli/middleware/redirectRoot.js +44 -0
- package/dist/cli/middleware/redirectRoot.js.map +1 -0
- package/dist/cli/middleware/serveDocument.d.ts +10 -0
- package/dist/cli/middleware/serveDocument.d.ts.map +1 -0
- package/dist/cli/middleware/serveDocument.js +104 -0
- package/dist/cli/middleware/serveDocument.js.map +1 -0
- package/dist/cli/middleware/serveUploads.d.ts +20 -0
- package/dist/cli/middleware/serveUploads.d.ts.map +1 -0
- package/dist/cli/middleware/serveUploads.js +93 -0
- package/dist/cli/middleware/serveUploads.js.map +1 -0
- package/dist/cli/middleware/types.d.ts +43 -0
- package/dist/cli/middleware/types.d.ts.map +1 -0
- package/dist/cli/middleware/types.js +2 -0
- package/dist/cli/middleware/types.js.map +1 -0
- package/dist/cli/pathOperations/deletePathUploads.d.ts +6 -0
- package/dist/cli/pathOperations/deletePathUploads.d.ts.map +1 -0
- package/dist/cli/pathOperations/deletePathUploads.js +68 -0
- package/dist/cli/pathOperations/deletePathUploads.js.map +1 -0
- package/dist/cli/pathOperations/downloadPathUploads.d.ts +6 -0
- package/dist/cli/pathOperations/downloadPathUploads.d.ts.map +1 -0
- package/dist/cli/pathOperations/downloadPathUploads.js +156 -0
- package/dist/cli/pathOperations/downloadPathUploads.js.map +1 -0
- package/dist/cli/pathOperations/pullPathViaGit.d.ts +9 -0
- package/dist/cli/pathOperations/pullPathViaGit.d.ts.map +1 -0
- package/dist/cli/pathOperations/pullPathViaGit.js +86 -0
- package/dist/cli/pathOperations/pullPathViaGit.js.map +1 -0
- package/dist/cli/pathOperations/pullPathViaTar.d.ts +14 -0
- package/dist/cli/pathOperations/pullPathViaTar.d.ts.map +1 -0
- package/dist/cli/pathOperations/pullPathViaTar.js +252 -0
- package/dist/cli/pathOperations/pullPathViaTar.js.map +1 -0
- package/dist/cli/pathOperations/pushPathViaGit.d.ts +9 -0
- package/dist/cli/pathOperations/pushPathViaGit.d.ts.map +1 -0
- package/dist/cli/pathOperations/pushPathViaGit.js +49 -0
- package/dist/cli/pathOperations/pushPathViaGit.js.map +1 -0
- package/dist/cli/pathOperations/pushPathViaTar.d.ts +6 -0
- package/dist/cli/pathOperations/pushPathViaTar.d.ts.map +1 -0
- package/dist/cli/pathOperations/pushPathViaTar.js +63 -0
- package/dist/cli/pathOperations/pushPathViaTar.js.map +1 -0
- package/dist/cli/pathOperations/uploadPathUploads.d.ts +6 -0
- package/dist/cli/pathOperations/uploadPathUploads.d.ts.map +1 -0
- package/dist/cli/pathOperations/uploadPathUploads.js +114 -0
- package/dist/cli/pathOperations/uploadPathUploads.js.map +1 -0
- package/dist/cli/pathOperations/validatePathSettings.d.ts +14 -0
- package/dist/cli/pathOperations/validatePathSettings.d.ts.map +1 -0
- package/dist/cli/pathOperations/validatePathSettings.js +191 -0
- package/dist/cli/pathOperations/validatePathSettings.js.map +1 -0
- package/dist/cli/utils/assemble.d.ts +22 -0
- package/dist/cli/utils/assemble.d.ts.map +1 -0
- package/dist/cli/utils/assemble.js +219 -0
- package/dist/cli/utils/assemble.js.map +1 -0
- package/dist/cli/utils/cliName.d.ts +3 -0
- package/dist/cli/utils/cliName.d.ts.map +1 -0
- package/dist/cli/utils/cliName.js +17 -0
- package/dist/cli/utils/cliName.js.map +1 -0
- package/dist/cli/utils/codeWorkspace.d.ts +13 -0
- package/dist/cli/utils/codeWorkspace.d.ts.map +1 -0
- package/dist/cli/utils/codeWorkspace.js +20 -0
- package/dist/cli/utils/codeWorkspace.js.map +1 -0
- package/dist/cli/utils/colors.d.ts +14 -0
- package/dist/cli/utils/colors.d.ts.map +1 -0
- package/dist/cli/utils/colors.js +22 -0
- package/dist/cli/utils/colors.js.map +1 -0
- package/dist/cli/utils/config.d.ts +35 -0
- package/dist/cli/utils/config.d.ts.map +1 -0
- package/dist/cli/utils/config.js +95 -0
- package/dist/cli/utils/config.js.map +1 -0
- package/dist/cli/utils/copilotInstructions.d.ts +5 -0
- package/dist/cli/utils/copilotInstructions.d.ts.map +1 -0
- package/dist/cli/utils/copilotInstructions.js +101 -0
- package/dist/cli/utils/copilotInstructions.js.map +1 -0
- package/dist/cli/utils/createLoggedFs.d.ts +17 -0
- package/dist/cli/utils/createLoggedFs.d.ts.map +1 -0
- package/dist/cli/utils/createLoggedFs.js +106 -0
- package/dist/cli/utils/createLoggedFs.js.map +1 -0
- package/dist/cli/utils/credentials.d.ts +38 -0
- package/dist/cli/utils/credentials.d.ts.map +1 -0
- package/dist/cli/utils/credentials.js +400 -0
- package/dist/cli/utils/credentials.js.map +1 -0
- package/dist/cli/utils/discover.d.ts +26 -0
- package/dist/cli/utils/discover.d.ts.map +1 -0
- package/dist/cli/utils/discover.js +209 -0
- package/dist/cli/utils/discover.js.map +1 -0
- package/dist/cli/utils/formatPlan.d.ts +40 -0
- package/dist/cli/utils/formatPlan.d.ts.map +1 -0
- package/dist/cli/utils/formatPlan.js +148 -0
- package/dist/cli/utils/formatPlan.js.map +1 -0
- package/dist/cli/utils/git.d.ts +17 -0
- package/dist/cli/utils/git.d.ts.map +1 -0
- package/dist/cli/utils/git.js +57 -0
- package/dist/cli/utils/git.js.map +1 -0
- package/dist/cli/utils/gitUrl.d.ts +7 -0
- package/dist/cli/utils/gitUrl.d.ts.map +1 -0
- package/dist/cli/utils/gitUrl.js +23 -0
- package/dist/cli/utils/gitUrl.js.map +1 -0
- package/dist/cli/utils/log.d.ts +22 -0
- package/dist/cli/utils/log.d.ts.map +1 -0
- package/dist/cli/utils/log.js +31 -0
- package/dist/cli/utils/log.js.map +1 -0
- package/dist/cli/utils/logData.d.ts +5 -0
- package/dist/cli/utils/logData.d.ts.map +1 -0
- package/dist/cli/utils/logData.js +65 -0
- package/dist/cli/utils/logData.js.map +1 -0
- package/dist/cli/utils/loggedFetch.d.ts +4 -0
- package/dist/cli/utils/loggedFetch.d.ts.map +1 -0
- package/dist/cli/utils/loggedFetch.js +15 -0
- package/dist/cli/utils/loggedFetch.js.map +1 -0
- package/dist/cli/utils/pageContext.d.ts +50 -0
- package/dist/cli/utils/pageContext.d.ts.map +1 -0
- package/dist/cli/utils/pageContext.js +86 -0
- package/dist/cli/utils/pageContext.js.map +1 -0
- package/dist/cli/utils/parseDocumentPath.d.ts +13 -0
- package/dist/cli/utils/parseDocumentPath.d.ts.map +1 -0
- package/dist/cli/utils/parseDocumentPath.js +35 -0
- package/dist/cli/utils/parseDocumentPath.js.map +1 -0
- package/dist/cli/utils/populateCache.d.ts +12 -0
- package/dist/cli/utils/populateCache.d.ts.map +1 -0
- package/dist/cli/utils/populateCache.js +21 -0
- package/dist/cli/utils/populateCache.js.map +1 -0
- package/dist/cli/utils/prefixLog.d.ts +21 -0
- package/dist/cli/utils/prefixLog.d.ts.map +1 -0
- package/dist/cli/utils/prefixLog.js +73 -0
- package/dist/cli/utils/prefixLog.js.map +1 -0
- package/dist/cli/utils/program.d.ts +7 -0
- package/dist/cli/utils/program.d.ts.map +1 -0
- package/dist/cli/utils/program.js +266 -0
- package/dist/cli/utils/program.js.map +1 -0
- package/dist/cli/utils/promptExec.d.ts +27 -0
- package/dist/cli/utils/promptExec.d.ts.map +1 -0
- package/dist/cli/utils/promptExec.js +47 -0
- package/dist/cli/utils/promptExec.js.map +1 -0
- package/dist/cli/utils/pullHarness.d.ts +15 -0
- package/dist/cli/utils/pullHarness.d.ts.map +1 -0
- package/dist/cli/utils/pullHarness.js +101 -0
- package/dist/cli/utils/pullHarness.js.map +1 -0
- package/dist/cli/utils/pullViaGit.d.ts +6 -0
- package/dist/cli/utils/pullViaGit.d.ts.map +1 -0
- package/dist/cli/utils/pullViaGit.js +13 -0
- package/dist/cli/utils/pullViaGit.js.map +1 -0
- package/dist/cli/utils/pullViaTar.d.ts +10 -0
- package/dist/cli/utils/pullViaTar.d.ts.map +1 -0
- package/dist/cli/utils/pullViaTar.js +15 -0
- package/dist/cli/utils/pullViaTar.js.map +1 -0
- package/dist/cli/utils/pushHarness.d.ts +24 -0
- package/dist/cli/utils/pushHarness.d.ts.map +1 -0
- package/dist/cli/utils/pushHarness.js +82 -0
- package/dist/cli/utils/pushHarness.js.map +1 -0
- package/dist/cli/utils/pushViaGit.d.ts +6 -0
- package/dist/cli/utils/pushViaGit.d.ts.map +1 -0
- package/dist/cli/utils/pushViaGit.js +16 -0
- package/dist/cli/utils/pushViaGit.js.map +1 -0
- package/dist/cli/utils/pushViaTar.d.ts +6 -0
- package/dist/cli/utils/pushViaTar.d.ts.map +1 -0
- package/dist/cli/utils/pushViaTar.js +9 -0
- package/dist/cli/utils/pushViaTar.js.map +1 -0
- package/dist/cli/utils/resolveTarget.d.ts +23 -0
- package/dist/cli/utils/resolveTarget.d.ts.map +1 -0
- package/dist/cli/utils/resolveTarget.js +43 -0
- package/dist/cli/utils/resolveTarget.js.map +1 -0
- package/dist/cli/utils/settingsValidation.d.ts +23 -0
- package/dist/cli/utils/settingsValidation.d.ts.map +1 -0
- package/dist/cli/utils/settingsValidation.js +176 -0
- package/dist/cli/utils/settingsValidation.js.map +1 -0
- package/dist/cli/utils/types.d.ts +33 -0
- package/dist/cli/utils/types.d.ts.map +1 -0
- package/dist/cli/utils/types.js +2 -0
- package/dist/cli/utils/types.js.map +1 -0
- package/dist/cli/utils/validateAndGetFilesFromDir.d.ts +10 -0
- package/dist/cli/utils/validateAndGetFilesFromDir.d.ts.map +1 -0
- package/dist/cli/utils/validateAndGetFilesFromDir.js +74 -0
- package/dist/cli/utils/validateAndGetFilesFromDir.js.map +1 -0
- package/dist/cli/utils/watchForChanges.d.ts +7 -0
- package/dist/cli/utils/watchForChanges.d.ts.map +1 -0
- package/dist/cli/utils/watchForChanges.js +44 -0
- package/dist/cli/utils/watchForChanges.js.map +1 -0
- package/dist/db/index.d.ts +5 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +23 -0
- package/dist/db/index.js.map +1 -0
- package/dist/editor.bundle.dev.js +30823 -0
- package/dist/editor.bundle.dev.js.map +7 -0
- package/dist/editor.bundle.js +30347 -0
- package/dist/editor.bundle.js.map +7 -0
- package/dist/editor.bundle.prod.js +1373 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/operations/addRedirect.d.ts +20 -0
- package/dist/operations/addRedirect.d.ts.map +1 -0
- package/dist/operations/addRedirect.js +46 -0
- package/dist/operations/addRedirect.js.map +1 -0
- package/dist/operations/addUpload.d.ts +29 -0
- package/dist/operations/addUpload.d.ts.map +1 -0
- package/dist/operations/addUpload.js +96 -0
- package/dist/operations/addUpload.js.map +1 -0
- package/dist/operations/addUploadsFromContent.d.ts +27 -0
- package/dist/operations/addUploadsFromContent.d.ts.map +1 -0
- package/dist/operations/addUploadsFromContent.js +311 -0
- package/dist/operations/addUploadsFromContent.js.map +1 -0
- package/dist/operations/clearDraft.d.ts +17 -0
- package/dist/operations/clearDraft.d.ts.map +1 -0
- package/dist/operations/clearDraft.js +56 -0
- package/dist/operations/clearDraft.js.map +1 -0
- package/dist/operations/createDocumentRecord.d.ts +11 -0
- package/dist/operations/createDocumentRecord.d.ts.map +1 -0
- package/dist/operations/createDocumentRecord.js +100 -0
- package/dist/operations/createDocumentRecord.js.map +1 -0
- package/dist/operations/createRoute.d.ts +6 -0
- package/dist/operations/createRoute.d.ts.map +1 -0
- package/dist/operations/createRoute.js +10 -0
- package/dist/operations/createRoute.js.map +1 -0
- package/dist/operations/createSession.d.ts +21 -0
- package/dist/operations/createSession.d.ts.map +1 -0
- package/dist/operations/createSession.js +27 -0
- package/dist/operations/createSession.js.map +1 -0
- package/dist/operations/deleteSession.d.ts +13 -0
- package/dist/operations/deleteSession.d.ts.map +1 -0
- package/dist/operations/deleteSession.js +15 -0
- package/dist/operations/deleteSession.js.map +1 -0
- package/dist/operations/findDocument.d.ts +18 -0
- package/dist/operations/findDocument.d.ts.map +1 -0
- package/dist/operations/findDocument.js +53 -0
- package/dist/operations/findDocument.js.map +1 -0
- package/dist/operations/getAllUploadsForDocument.d.ts +11 -0
- package/dist/operations/getAllUploadsForDocument.d.ts.map +1 -0
- package/dist/operations/getAllUploadsForDocument.js +15 -0
- package/dist/operations/getAllUploadsForDocument.js.map +1 -0
- package/dist/operations/getDocumentClientState.d.ts +30 -0
- package/dist/operations/getDocumentClientState.d.ts.map +1 -0
- package/dist/operations/getDocumentClientState.js +246 -0
- package/dist/operations/getDocumentClientState.js.map +1 -0
- package/dist/operations/getDocumentInstance.d.ts +7 -0
- package/dist/operations/getDocumentInstance.d.ts.map +1 -0
- package/dist/operations/getDocumentInstance.js +32 -0
- package/dist/operations/getDocumentInstance.js.map +1 -0
- package/dist/operations/getDocumentRecord.d.ts +6 -0
- package/dist/operations/getDocumentRecord.d.ts.map +1 -0
- package/dist/operations/getDocumentRecord.js +8 -0
- package/dist/operations/getDocumentRecord.js.map +1 -0
- package/dist/operations/getDualDocument.d.ts +28 -0
- package/dist/operations/getDualDocument.d.ts.map +1 -0
- package/dist/operations/getDualDocument.js +81 -0
- package/dist/operations/getDualDocument.js.map +1 -0
- package/dist/operations/getDualDocuments.d.ts +26 -0
- package/dist/operations/getDualDocuments.d.ts.map +1 -0
- package/dist/operations/getDualDocuments.js +130 -0
- package/dist/operations/getDualDocuments.js.map +1 -0
- package/dist/operations/getOptimisticDocument.d.ts +6 -0
- package/dist/operations/getOptimisticDocument.d.ts.map +1 -0
- package/dist/operations/getOptimisticDocument.js +30 -0
- package/dist/operations/getOptimisticDocument.js.map +1 -0
- package/dist/operations/getPage.d.ts +18 -0
- package/dist/operations/getPage.d.ts.map +1 -0
- package/dist/operations/getPage.js +31 -0
- package/dist/operations/getPage.js.map +1 -0
- package/dist/operations/getPages.d.ts +18 -0
- package/dist/operations/getPages.d.ts.map +1 -0
- package/dist/operations/getPages.js +30 -0
- package/dist/operations/getPages.js.map +1 -0
- package/dist/operations/getRedirects.d.ts +13 -0
- package/dist/operations/getRedirects.d.ts.map +1 -0
- package/dist/operations/getRedirects.js +30 -0
- package/dist/operations/getRedirects.js.map +1 -0
- package/dist/operations/getRenderDocument.d.ts +18 -0
- package/dist/operations/getRenderDocument.d.ts.map +1 -0
- package/dist/operations/getRenderDocument.js +27 -0
- package/dist/operations/getRenderDocument.js.map +1 -0
- package/dist/operations/getRenderDocumentWithAssociations.d.ts +15 -0
- package/dist/operations/getRenderDocumentWithAssociations.d.ts.map +1 -0
- package/dist/operations/getRenderDocumentWithAssociations.js +64 -0
- package/dist/operations/getRenderDocumentWithAssociations.js.map +1 -0
- package/dist/operations/getRenderDocuments.d.ts +16 -0
- package/dist/operations/getRenderDocuments.d.ts.map +1 -0
- package/dist/operations/getRenderDocuments.js +25 -0
- package/dist/operations/getRenderDocuments.js.map +1 -0
- package/dist/operations/getUpload.d.ts +25 -0
- package/dist/operations/getUpload.d.ts.map +1 -0
- package/dist/operations/getUpload.js +37 -0
- package/dist/operations/getUpload.js.map +1 -0
- package/dist/operations/getUploads.d.ts +25 -0
- package/dist/operations/getUploads.d.ts.map +1 -0
- package/dist/operations/getUploads.js +76 -0
- package/dist/operations/getUploads.js.map +1 -0
- package/dist/operations/getUsersCount.d.ts +12 -0
- package/dist/operations/getUsersCount.d.ts.map +1 -0
- package/dist/operations/getUsersCount.js +12 -0
- package/dist/operations/getUsersCount.js.map +1 -0
- package/dist/operations/login.d.ts +20 -0
- package/dist/operations/login.d.ts.map +1 -0
- package/dist/operations/login.js +38 -0
- package/dist/operations/login.js.map +1 -0
- package/dist/operations/removeDocument.d.ts +19 -0
- package/dist/operations/removeDocument.d.ts.map +1 -0
- package/dist/operations/removeDocument.js +54 -0
- package/dist/operations/removeDocument.js.map +1 -0
- package/dist/operations/removeRedirect.d.ts +15 -0
- package/dist/operations/removeRedirect.d.ts.map +1 -0
- package/dist/operations/removeRedirect.js +71 -0
- package/dist/operations/removeRedirect.js.map +1 -0
- package/dist/operations/removeUpload.d.ts +21 -0
- package/dist/operations/removeUpload.d.ts.map +1 -0
- package/dist/operations/removeUpload.js +49 -0
- package/dist/operations/removeUpload.js.map +1 -0
- package/dist/operations/search.d.ts +19 -0
- package/dist/operations/search.d.ts.map +1 -0
- package/dist/operations/search.js +109 -0
- package/dist/operations/search.js.map +1 -0
- package/dist/operations/seedIfEmpty.d.ts +7 -0
- package/dist/operations/seedIfEmpty.d.ts.map +1 -0
- package/dist/operations/seedIfEmpty.js +100 -0
- package/dist/operations/seedIfEmpty.js.map +1 -0
- package/dist/operations/signup.d.ts +21 -0
- package/dist/operations/signup.d.ts.map +1 -0
- package/dist/operations/signup.js +45 -0
- package/dist/operations/signup.js.map +1 -0
- package/dist/operations/types.d.ts +223 -0
- package/dist/operations/types.d.ts.map +1 -0
- package/dist/operations/types.js +2 -0
- package/dist/operations/types.js.map +1 -0
- package/dist/operations/updateUpload.d.ts +27 -0
- package/dist/operations/updateUpload.d.ts.map +1 -0
- package/dist/operations/updateUpload.js +78 -0
- package/dist/operations/updateUpload.js.map +1 -0
- package/dist/operations/updateViaArchive.d.ts +23 -0
- package/dist/operations/updateViaArchive.d.ts.map +1 -0
- package/dist/operations/updateViaArchive.js +229 -0
- package/dist/operations/updateViaArchive.js.map +1 -0
- package/dist/operations/upsert.d.ts +26 -0
- package/dist/operations/upsert.d.ts.map +1 -0
- package/dist/operations/upsert.js +257 -0
- package/dist/operations/upsert.js.map +1 -0
- package/dist/operations/utils/common.d.ts +2 -0
- package/dist/operations/utils/common.d.ts.map +1 -0
- package/dist/operations/utils/common.js +2 -0
- package/dist/operations/utils/common.js.map +1 -0
- package/dist/operations/utils/contentType.d.ts +2 -0
- package/dist/operations/utils/contentType.d.ts.map +1 -0
- package/dist/operations/utils/contentType.js +66 -0
- package/dist/operations/utils/contentType.js.map +1 -0
- package/dist/operations/utils/dataType.d.ts +7 -0
- package/dist/operations/utils/dataType.d.ts.map +1 -0
- package/dist/operations/utils/dataType.js +35 -0
- package/dist/operations/utils/dataType.js.map +1 -0
- package/dist/operations/utils/generateUniqueFilename.d.ts +7 -0
- package/dist/operations/utils/generateUniqueFilename.d.ts.map +1 -0
- package/dist/operations/utils/generateUniqueFilename.js +38 -0
- package/dist/operations/utils/generateUniqueFilename.js.map +1 -0
- package/dist/operations/utils/hasEtaTemplates.d.ts +2 -0
- package/dist/operations/utils/hasEtaTemplates.d.ts.map +1 -0
- package/dist/operations/utils/hasEtaTemplates.js +10 -0
- package/dist/operations/utils/hasEtaTemplates.js.map +1 -0
- package/dist/operations/utils/normalizeDocumentQuery.d.ts +12 -0
- package/dist/operations/utils/normalizeDocumentQuery.d.ts.map +1 -0
- package/dist/operations/utils/normalizeDocumentQuery.js +45 -0
- package/dist/operations/utils/normalizeDocumentQuery.js.map +1 -0
- package/dist/operations/utils/utils.d.ts +4 -0
- package/dist/operations/utils/utils.d.ts.map +1 -0
- package/dist/operations/utils/utils.js +4 -0
- package/dist/operations/utils/utils.js.map +1 -0
- package/dist/operations/validateSession.d.ts +17 -0
- package/dist/operations/validateSession.d.ts.map +1 -0
- package/dist/operations/validateSession.js +27 -0
- package/dist/operations/validateSession.js.map +1 -0
- package/dist/render/index.d.ts +9 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +347 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/utils/base.d.ts +74 -0
- package/dist/render/utils/base.d.ts.map +1 -0
- package/dist/render/utils/base.js +290 -0
- package/dist/render/utils/base.js.map +1 -0
- package/dist/render/utils/extractRawBlocks.d.ts +10 -0
- package/dist/render/utils/extractRawBlocks.d.ts.map +1 -0
- package/dist/render/utils/extractRawBlocks.js +28 -0
- package/dist/render/utils/extractRawBlocks.js.map +1 -0
- package/dist/render/utils/rawBlocks.d.ts +10 -0
- package/dist/render/utils/rawBlocks.d.ts.map +1 -0
- package/dist/render/utils/rawBlocks.js +28 -0
- package/dist/render/utils/rawBlocks.js.map +1 -0
- package/dist/render/utils/usageTracker.d.ts +10 -0
- package/dist/render/utils/usageTracker.d.ts.map +1 -0
- package/dist/render/utils/usageTracker.js +87 -0
- package/dist/render/utils/usageTracker.js.map +1 -0
- package/dist/responder/index.d.ts +34 -0
- package/dist/responder/index.d.ts.map +1 -0
- package/dist/responder/index.js +546 -0
- package/dist/responder/index.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +54 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/middleware/authorize.d.ts +3 -0
- package/dist/server/middleware/authorize.d.ts.map +1 -0
- package/dist/server/middleware/authorize.js +15 -0
- package/dist/server/middleware/authorize.js.map +1 -0
- package/dist/server/middleware/establishAuth.d.ts +3 -0
- package/dist/server/middleware/establishAuth.d.ts.map +1 -0
- package/dist/server/middleware/establishAuth.js +45 -0
- package/dist/server/middleware/establishAuth.js.map +1 -0
- package/dist/server/middleware/log.d.ts +3 -0
- package/dist/server/middleware/log.d.ts.map +1 -0
- package/dist/server/middleware/log.js +12 -0
- package/dist/server/middleware/log.js.map +1 -0
- package/dist/server/middleware/requirePathMatch.d.ts +3 -0
- package/dist/server/middleware/requirePathMatch.d.ts.map +1 -0
- package/dist/server/middleware/requirePathMatch.js +25 -0
- package/dist/server/middleware/requirePathMatch.js.map +1 -0
- package/dist/server/middleware/requireQuery.d.ts +3 -0
- package/dist/server/middleware/requireQuery.d.ts.map +1 -0
- package/dist/server/middleware/requireQuery.js +24 -0
- package/dist/server/middleware/requireQuery.js.map +1 -0
- package/dist/server/middleware/withDb.d.ts +4 -0
- package/dist/server/middleware/withDb.d.ts.map +1 -0
- package/dist/server/middleware/withDb.js +7 -0
- package/dist/server/middleware/withDb.js.map +1 -0
- package/dist/server/routes/assets.d.ts +4 -0
- package/dist/server/routes/assets.d.ts.map +1 -0
- package/dist/server/routes/assets.js +178 -0
- package/dist/server/routes/assets.js.map +1 -0
- package/dist/server/routes/documents.d.ts +4 -0
- package/dist/server/routes/documents.d.ts.map +1 -0
- package/dist/server/routes/documents.js +40 -0
- package/dist/server/routes/documents.js.map +1 -0
- package/dist/server/routes/edit.d.ts +22 -0
- package/dist/server/routes/edit.d.ts.map +1 -0
- package/dist/server/routes/edit.js +494 -0
- package/dist/server/routes/edit.js.map +1 -0
- package/dist/server/routes/git.d.ts +4 -0
- package/dist/server/routes/git.d.ts.map +1 -0
- package/dist/server/routes/git.js +612 -0
- package/dist/server/routes/git.js.map +1 -0
- package/dist/server/routes/readUpload.d.ts +4 -0
- package/dist/server/routes/readUpload.d.ts.map +1 -0
- package/dist/server/routes/readUpload.js +57 -0
- package/dist/server/routes/readUpload.js.map +1 -0
- package/dist/server/utils/NotFoundError.d.ts +9 -0
- package/dist/server/utils/NotFoundError.d.ts.map +1 -0
- package/dist/server/utils/NotFoundError.js +16 -0
- package/dist/server/utils/NotFoundError.js.map +1 -0
- package/dist/server/utils/editor.css +1535 -0
- package/dist/server/utils/htmlEditorPage.d.ts +6 -0
- package/dist/server/utils/htmlEditorPage.d.ts.map +1 -0
- package/dist/server/utils/htmlEditorPage.js +518 -0
- package/dist/server/utils/htmlEditorPage.js.map +1 -0
- package/dist/server/utils/htmlLoginPage.d.ts +6 -0
- package/dist/server/utils/htmlLoginPage.d.ts.map +1 -0
- package/dist/server/utils/htmlLoginPage.js +134 -0
- package/dist/server/utils/htmlLoginPage.js.map +1 -0
- package/dist/server/utils/layout.css +153 -0
- package/dist/server/utils/types.d.ts +18 -0
- package/dist/server/utils/types.d.ts.map +1 -0
- package/dist/server/utils/types.js +2 -0
- package/dist/server/utils/types.js.map +1 -0
- package/dist/server-bin/index.d.ts +2 -0
- package/dist/server-bin/index.d.ts.map +1 -0
- package/dist/server-bin/index.js +26 -0
- package/dist/server-bin/index.js.map +1 -0
- package/dist/utils/functionContext.d.ts +12 -0
- package/dist/utils/functionContext.d.ts.map +1 -0
- package/dist/utils/functionContext.js +19 -0
- package/dist/utils/functionContext.js.map +1 -0
- package/dist/utils/functionContextClient.d.ts +23 -0
- package/dist/utils/functionContextClient.d.ts.map +1 -0
- package/dist/utils/functionContextClient.js +93 -0
- package/dist/utils/functionContextClient.js.map +1 -0
- package/dist/utils/stringifyData.d.ts +2 -0
- package/dist/utils/stringifyData.d.ts.map +1 -0
- package/dist/utils/stringifyData.js +23 -0
- package/dist/utils/stringifyData.js.map +1 -0
- package/dist/utils/stripImageExif.d.ts +14 -0
- package/dist/utils/stripImageExif.d.ts.map +1 -0
- package/dist/utils/stripImageExif.js +112 -0
- package/dist/utils/stripImageExif.js.map +1 -0
- package/dist/utils/types.d.ts +81 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +2 -0
- package/dist/utils/types.js.map +1 -0
- package/migrations/1770796673000_initial-schema.js +178 -0
- package/package.json +97 -0
- package/pages/skywriter/.github/copilot-instructions.md +94 -0
- package/pages/skywriter/content.md +862 -0
- package/pages/skywriter/data.json +1 -0
- package/pages/skywriter/doc.code-workspace +15 -0
- package/pages/skywriter/script.js +1 -0
- package/pages/skywriter/server.js +1 -0
- package/pages/skywriter/settings.json +11 -0
- package/pages/skywriter/style.css +167 -0
- package/pages/skywriter/template/content.eta +55 -0
- package/pages/skywriter/template/data.json +1 -0
- package/pages/skywriter/template/script.js +512 -0
- package/pages/skywriter/template/server.js +27 -0
- package/pages/skywriter/template/settings.json +11 -0
- package/pages/skywriter/template/style.css +447 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { exec } from 'node:child_process';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import { copilotInstructions } from "../utils/copilotInstructions.js";
|
|
5
|
+
import { codeWorkspace } from "../utils/codeWorkspace.js";
|
|
6
|
+
import { createPrefixLog } from "../utils/prefixLog.js";
|
|
7
|
+
import { createLoggedFs } from "../utils/createLoggedFs.js";
|
|
8
|
+
const execAsync = promisify(exec);
|
|
9
|
+
/**
|
|
10
|
+
* Read and parse settings.json
|
|
11
|
+
*/
|
|
12
|
+
async function readSettings(dir, ctx, fs) {
|
|
13
|
+
const settingsPath = join(dir, 'settings.json');
|
|
14
|
+
try {
|
|
15
|
+
const content = await fs.readFile(settingsPath);
|
|
16
|
+
return JSON.parse(content);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
if (error.code === 'ENOENT') {
|
|
20
|
+
throw new Error(`Not a valid project: settings.json not found.\nInitialize a project with: ${ctx.cliName} init --path /your/path`);
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`Failed to read settings.json: ${error.message}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Validate project structure
|
|
27
|
+
*/
|
|
28
|
+
async function validateProject(dir, settings, ctx, fs) {
|
|
29
|
+
if (!settings.path) {
|
|
30
|
+
throw new Error('Invalid project: settings.json must have a "path" property.\n' +
|
|
31
|
+
`Update settings.json or reinitialize with: ${ctx.cliName} init --path /your/path`);
|
|
32
|
+
}
|
|
33
|
+
// Validate slot directory if slot_path is set
|
|
34
|
+
if (settings.slot_path) {
|
|
35
|
+
const slotDir = join(dir, 'slot');
|
|
36
|
+
if (!(await fs.directoryExists(slotDir))) {
|
|
37
|
+
throw new Error(`Slot directory not found: settings.json references slot_path "${settings.slot_path}" but no slot/ directory exists`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Validate template directory if template_path is set
|
|
41
|
+
if (settings.template_path) {
|
|
42
|
+
const templateDir = join(dir, 'template');
|
|
43
|
+
if (!(await fs.directoryExists(templateDir))) {
|
|
44
|
+
throw new Error(`Template directory not found: settings.json references template_path "${settings.template_path}" but no template/ directory exists`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Write copilot-instructions.md to .github folder
|
|
50
|
+
*/
|
|
51
|
+
async function setupGithubFolder(targetDir, ctx, fs, cmdLog) {
|
|
52
|
+
const githubDir = join(targetDir, '.github');
|
|
53
|
+
const targetFile = join(githubDir, 'copilot-instructions.md');
|
|
54
|
+
// Create .github directory if it doesn't exist
|
|
55
|
+
await fs.mkdir(githubDir, { recursive: true });
|
|
56
|
+
// Generate copilot-instructions content with dynamic CLI name
|
|
57
|
+
const content = copilotInstructions(ctx.cliName);
|
|
58
|
+
try {
|
|
59
|
+
await fs.writeFile(targetFile, content);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
cmdLog.warn(`Could not create copilot-instructions.md: ${error.message}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Generate workspace configuration based on settings
|
|
67
|
+
* Filters codeWorkspace folders based on which paths are configured
|
|
68
|
+
*/
|
|
69
|
+
function generateWorkspace(settings) {
|
|
70
|
+
const folders = codeWorkspace.folders.filter(folder => {
|
|
71
|
+
if (folder.name === 'root')
|
|
72
|
+
return true;
|
|
73
|
+
if (folder.name === 'template')
|
|
74
|
+
return !!settings.template_path;
|
|
75
|
+
if (folder.name === 'slot')
|
|
76
|
+
return !!settings.slot_path;
|
|
77
|
+
return false;
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
...codeWorkspace,
|
|
81
|
+
folders,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Check if VS Code CLI is available
|
|
86
|
+
*/
|
|
87
|
+
async function isVscodeAvailable() {
|
|
88
|
+
try {
|
|
89
|
+
await execAsync('which code');
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Open workspace in VS Code
|
|
98
|
+
*/
|
|
99
|
+
async function openWorkspace(workspacePath, cmdLog) {
|
|
100
|
+
const cmd = `code "${workspacePath}"`;
|
|
101
|
+
try {
|
|
102
|
+
await execAsync(cmd);
|
|
103
|
+
cmdLog.exec(cmd);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
cmdLog.error(`Failed to open VS Code: ${error.message}`);
|
|
107
|
+
cmdLog.info(`Open manually: ${workspacePath}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* VS Code workspace management
|
|
112
|
+
* --init: Initialize workspace files (copilot instructions, .code-workspace)
|
|
113
|
+
* --open: Open workspace in VS Code
|
|
114
|
+
*/
|
|
115
|
+
export const vscodeInit = async (ctx, options = {}) => {
|
|
116
|
+
const { init, open } = options;
|
|
117
|
+
const cwd = ctx.cwd;
|
|
118
|
+
const cmdLog = createPrefixLog(ctx.cliName, 'vscode');
|
|
119
|
+
const fs = createLoggedFs(cmdLog, cwd);
|
|
120
|
+
// Read and validate settings
|
|
121
|
+
const settings = await readSettings(cwd, ctx, fs);
|
|
122
|
+
await validateProject(cwd, settings, ctx, fs);
|
|
123
|
+
if (!init && !open) {
|
|
124
|
+
throw new Error('Provide --init, --open, or both.');
|
|
125
|
+
}
|
|
126
|
+
if (open) {
|
|
127
|
+
const hasVscode = await isVscodeAvailable();
|
|
128
|
+
if (!hasVscode) {
|
|
129
|
+
throw new Error('VS Code CLI (code) is not available. Install it from VS Code: Cmd+Shift+P → "Shell Command: Install \'code\' command in PATH"');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (init) {
|
|
133
|
+
cmdLog.info(`Project path: ${settings.path}`);
|
|
134
|
+
if (settings.slot_path) {
|
|
135
|
+
cmdLog.info(`Slot: ${settings.slot_path}`);
|
|
136
|
+
}
|
|
137
|
+
if (settings.template_path) {
|
|
138
|
+
cmdLog.info(`Template: ${settings.template_path}`);
|
|
139
|
+
}
|
|
140
|
+
// Setup .github folder with copilot instructions
|
|
141
|
+
await setupGithubFolder(cwd, ctx, fs, cmdLog);
|
|
142
|
+
// Generate workspace configuration
|
|
143
|
+
const workspace = generateWorkspace(settings);
|
|
144
|
+
const workspacePath = join(cwd, 'doc.code-workspace');
|
|
145
|
+
await fs.writeFile(workspacePath, JSON.stringify(workspace, null, 2) + '\n');
|
|
146
|
+
}
|
|
147
|
+
if (open) {
|
|
148
|
+
const workspacePath = join(cwd, 'doc.code-workspace');
|
|
149
|
+
await openWorkspace(workspacePath, cmdLog);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=vscodeInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vscodeInit.js","sourceRoot":"","sources":["../../../src/cli/commands/vscodeInit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAA;AAKjD;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,UAgEpB,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { listServers, retrieveCredentials } from "../utils/credentials.js";
|
|
2
|
+
import { createPrefixLog } from "../utils/prefixLog.js";
|
|
3
|
+
import { createLoggedFetch } from "../utils/loggedFetch.js";
|
|
4
|
+
import { logData } from "../utils/logData.js";
|
|
5
|
+
/**
|
|
6
|
+
* Show current default server and user, and verify credentials against the server
|
|
7
|
+
*/
|
|
8
|
+
export const whoami = async (ctx) => {
|
|
9
|
+
const json = ctx.json;
|
|
10
|
+
const cmdLog = createPrefixLog(ctx.cliName, 'whoami');
|
|
11
|
+
const fetch = createLoggedFetch(cmdLog);
|
|
12
|
+
const servers = await listServers(ctx, cmdLog);
|
|
13
|
+
if (servers.length === 0) {
|
|
14
|
+
const message = `Not logged in. Run "${ctx.cliName} login" to authenticate.`;
|
|
15
|
+
if (json) {
|
|
16
|
+
logData({ error: 'not_logged_in', message }, true);
|
|
17
|
+
process.exitCode = 1;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
throw new Error(message);
|
|
21
|
+
}
|
|
22
|
+
const active = servers.find(s => s.active);
|
|
23
|
+
if (!active) {
|
|
24
|
+
const message = `No default server set. Run "${ctx.cliName} remote switch" to select one.`;
|
|
25
|
+
if (json) {
|
|
26
|
+
logData({ error: 'no_default_server', message }, true);
|
|
27
|
+
process.exitCode = 1;
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
throw new Error(message);
|
|
31
|
+
}
|
|
32
|
+
const defaultServer = await retrieveCredentials(ctx, cmdLog, active.serverUrl, active.username);
|
|
33
|
+
if (!defaultServer) {
|
|
34
|
+
const message = `Credentials expired for ${active.username}@${new URL(active.serverUrl).host}. Run "${ctx.cliName} login" to re-authenticate.`;
|
|
35
|
+
if (json) {
|
|
36
|
+
logData({ error: 'credentials_expired', message }, true);
|
|
37
|
+
process.exitCode = 1;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
throw new Error(message);
|
|
41
|
+
}
|
|
42
|
+
const url = `${defaultServer.serverUrl}/edit?whoami`;
|
|
43
|
+
const response = await fetch(url, {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: {
|
|
46
|
+
Authorization: `Basic ${Buffer.from(`${defaultServer.username}:${defaultServer.password}`).toString('base64')}`,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
if (!response.ok) {
|
|
50
|
+
const message = `Failed to verify credentials: ${response.status} ${response.statusText}`;
|
|
51
|
+
if (json) {
|
|
52
|
+
logData({ error: 'verification_failed', message }, true);
|
|
53
|
+
process.exitCode = 1;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
throw new Error(message);
|
|
57
|
+
}
|
|
58
|
+
const host = new URL(defaultServer.serverUrl).host;
|
|
59
|
+
const username = defaultServer.username;
|
|
60
|
+
if (json) {
|
|
61
|
+
logData({ username, host, serverUrl: defaultServer.serverUrl }, true);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
process.stdout.write(`${username}@${host}\n`);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAA;AAE1C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CliMiddlewareFactory, DiscoveryGetter } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Middleware that checks if a URL path has duplicates in the discovery result.
|
|
4
|
+
* If the path is found in the duplicates map, returns a 500 error.
|
|
5
|
+
*
|
|
6
|
+
* This is important because documents with duplicate paths (e.g., templates/slots
|
|
7
|
+
* reused across multiple documents) cannot be served as standalone pages.
|
|
8
|
+
*
|
|
9
|
+
* @param getDiscovery - Getter function for the current discovery result
|
|
10
|
+
* @returns Middleware handler
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* let discovery = await discoverDocuments()
|
|
15
|
+
* app.get('/*', checkDuplicatePath(() => discovery), ...)
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const checkDuplicatePath: CliMiddlewareFactory<[getDiscovery: DiscoveryGetter]>;
|
|
19
|
+
//# sourceMappingURL=checkDuplicatePath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkDuplicatePath.d.ts","sourceRoot":"","sources":["../../../src/cli/middleware/checkDuplicatePath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAE,eAAe,EAAC,MAAM,YAAY,CAAA;AAErE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAwBpF,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware that checks if a URL path has duplicates in the discovery result.
|
|
3
|
+
* If the path is found in the duplicates map, returns a 500 error.
|
|
4
|
+
*
|
|
5
|
+
* This is important because documents with duplicate paths (e.g., templates/slots
|
|
6
|
+
* reused across multiple documents) cannot be served as standalone pages.
|
|
7
|
+
*
|
|
8
|
+
* @param getDiscovery - Getter function for the current discovery result
|
|
9
|
+
* @returns Middleware handler
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* let discovery = await discoverDocuments()
|
|
14
|
+
* app.get('/*', checkDuplicatePath(() => discovery), ...)
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export const checkDuplicatePath = getDiscovery => {
|
|
18
|
+
return async (c, next) => {
|
|
19
|
+
const discovery = getDiscovery();
|
|
20
|
+
const urlPath = c.req.path;
|
|
21
|
+
// Parse the document path from the URL (strip asset suffixes)
|
|
22
|
+
const docPath = parseDocPath(urlPath);
|
|
23
|
+
const duplicatePaths = discovery.duplicates.get(docPath);
|
|
24
|
+
if (duplicatePaths) {
|
|
25
|
+
const locations = duplicatePaths.join('\n - ');
|
|
26
|
+
const message = `Duplicate document path "${docPath}" found in multiple locations:\n - ${locations}\n\n` +
|
|
27
|
+
`Each document must have a unique path in settings.json. ` +
|
|
28
|
+
`This path may be used as a template/slot in multiple places, but cannot be served as a standalone page.`;
|
|
29
|
+
return new Response(message, {
|
|
30
|
+
status: 500,
|
|
31
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return next();
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Parse document path from URL, stripping any asset suffix like ?style or ?script
|
|
39
|
+
*/
|
|
40
|
+
function parseDocPath(urlPath) {
|
|
41
|
+
// The URL path is the document path - query strings are handled by Hono
|
|
42
|
+
// We just need to handle the path normalization
|
|
43
|
+
return urlPath === '' ? '/' : urlPath;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=checkDuplicatePath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkDuplicatePath.js","sourceRoot":"","sources":["../../../src/cli/middleware/checkDuplicatePath.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA0D,YAAY,CAAC,EAAE;IACtG,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;QAChC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;QAE1B,8DAA8D;QAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QAErC,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC/C,MAAM,OAAO,GACX,4BAA4B,OAAO,uCAAuC,SAAS,MAAM;gBACzF,0DAA0D;gBAC1D,yGAAyG,CAAA;YAE3G,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;gBAC3B,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAC,cAAc,EAAE,YAAY,EAAC;aACxC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC,CAAA;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,wEAAwE;IACxE,gDAAgD;IAChD,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAA;AACvC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CliMiddlewareFactory, DiscoveryGetter } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Middleware that redirects the root path (/) to the first available document
|
|
4
|
+
* when no root document exists in the discovery result.
|
|
5
|
+
*
|
|
6
|
+
* The redirect preserves any query string from the original request.
|
|
7
|
+
*
|
|
8
|
+
* @param getDiscovery - Getter function for the current discovery result
|
|
9
|
+
* @returns Middleware handler
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* let discovery = await discoverDocuments()
|
|
14
|
+
* app.get('/*', redirectRoot(() => discovery), ...)
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const redirectRoot: CliMiddlewareFactory<[getDiscovery: DiscoveryGetter]>;
|
|
18
|
+
//# sourceMappingURL=redirectRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redirectRoot.d.ts","sourceRoot":"","sources":["../../../src/cli/middleware/redirectRoot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAE,eAAe,EAAC,MAAM,YAAY,CAAA;AAGrE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,EAAE,oBAAoB,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CA+B9E,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { findDefaultRedirect } from "../utils/discover.js";
|
|
2
|
+
/**
|
|
3
|
+
* Middleware that redirects the root path (/) to the first available document
|
|
4
|
+
* when no root document exists in the discovery result.
|
|
5
|
+
*
|
|
6
|
+
* The redirect preserves any query string from the original request.
|
|
7
|
+
*
|
|
8
|
+
* @param getDiscovery - Getter function for the current discovery result
|
|
9
|
+
* @returns Middleware handler
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* let discovery = await discoverDocuments()
|
|
14
|
+
* app.get('/*', redirectRoot(() => discovery), ...)
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export const redirectRoot = getDiscovery => {
|
|
18
|
+
return async (c, next) => {
|
|
19
|
+
const discovery = getDiscovery();
|
|
20
|
+
const urlPath = c.req.path;
|
|
21
|
+
// Only handle root path
|
|
22
|
+
if (urlPath !== '/') {
|
|
23
|
+
return next();
|
|
24
|
+
}
|
|
25
|
+
// If root document exists, continue to next middleware
|
|
26
|
+
if (discovery.documents.has('/')) {
|
|
27
|
+
return next();
|
|
28
|
+
}
|
|
29
|
+
// Find a default redirect target
|
|
30
|
+
const redirectTo = findDefaultRedirect(discovery.sortedPaths);
|
|
31
|
+
if (!redirectTo) {
|
|
32
|
+
return next();
|
|
33
|
+
}
|
|
34
|
+
// Preserve query string in redirect
|
|
35
|
+
const url = new URL(c.req.url);
|
|
36
|
+
const queryString = url.search;
|
|
37
|
+
const redirectPath = redirectTo + queryString;
|
|
38
|
+
return new Response(null, {
|
|
39
|
+
status: 302,
|
|
40
|
+
headers: { Location: redirectPath },
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=redirectRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redirectRoot.js","sourceRoot":"","sources":["../../../src/cli/middleware/redirectRoot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAA;AAExD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,YAAY,GAA0D,YAAY,CAAC,EAAE;IAChG,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;QAChC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;QAE1B,wBAAwB;QACxB,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,uDAAuD;QACvD,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,iCAAiC;QACjC,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,oCAAoC;QACpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAA;QAC9B,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,CAAA;QAE7C,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAC,QAAQ,EAAE,YAAY,EAAC;SAClC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CliContext } from '../utils/types.ts';
|
|
2
|
+
import type { CliMiddlewareFactory, DiscoveryGetter } from './types.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Middleware that serves documents by finding and assembling them on-demand.
|
|
5
|
+
*
|
|
6
|
+
* @param getDiscovery - Getter function for the current discovery result
|
|
7
|
+
* @param ctx - CLI context for authentication
|
|
8
|
+
*/
|
|
9
|
+
export declare const serveDocument: CliMiddlewareFactory<[getDiscovery: DiscoveryGetter, ctx: CliContext]>;
|
|
10
|
+
//# sourceMappingURL=serveDocument.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serveDocument.d.ts","sourceRoot":"","sources":["../../../src/cli/middleware/serveDocument.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAC,oBAAoB,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAA;AAItF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,oBAAoB,CAAC,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,CAAC,CAgFhG,CAAA"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { assemble } from "../utils/assemble.js";
|
|
2
|
+
import { responder } from "../../responder/index.js";
|
|
3
|
+
import { render } from "../../render/index.js";
|
|
4
|
+
import { functionContextClient } from "../../utils/functionContextClient.js";
|
|
5
|
+
import { readConfig } from "../utils/config.js";
|
|
6
|
+
import { createPrefixLog } from "../utils/prefixLog.js";
|
|
7
|
+
import log from "../utils/log.js";
|
|
8
|
+
/**
|
|
9
|
+
* Middleware that serves documents by finding and assembling them on-demand.
|
|
10
|
+
*
|
|
11
|
+
* @param getDiscovery - Getter function for the current discovery result
|
|
12
|
+
* @param ctx - CLI context for authentication
|
|
13
|
+
*/
|
|
14
|
+
export const serveDocument = (getDiscovery, ctx) => {
|
|
15
|
+
// Create function context once (lazily initialized)
|
|
16
|
+
let fn = null;
|
|
17
|
+
let fnInitialized = false;
|
|
18
|
+
const getFn = async () => {
|
|
19
|
+
if (!fnInitialized) {
|
|
20
|
+
fnInitialized = true;
|
|
21
|
+
try {
|
|
22
|
+
const cmdLog = createPrefixLog(ctx.cliName, 'serve');
|
|
23
|
+
const config = await readConfig(ctx, cmdLog);
|
|
24
|
+
fn = functionContextClient(config.serverUrl, {
|
|
25
|
+
username: config.username,
|
|
26
|
+
password: config.password,
|
|
27
|
+
}, { cache: true });
|
|
28
|
+
log.info(`\n🔐 Connected to: ${config.serverUrl}`);
|
|
29
|
+
log.info(`💾 Cache enabled: ./cache`);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
log.info('\n⚠️ Not logged in - server functions (fn.getPage, etc.) will not be available');
|
|
33
|
+
fn = {
|
|
34
|
+
getPage: async () => {
|
|
35
|
+
throw new Error(`fn.getPage() requires authentication. Run "${ctx.cliName} login" to connect to a server.`);
|
|
36
|
+
},
|
|
37
|
+
getPages: async () => {
|
|
38
|
+
throw new Error(`fn.getPages() requires authentication. Run "${ctx.cliName} login" to connect to a server.`);
|
|
39
|
+
},
|
|
40
|
+
getUploads: async () => {
|
|
41
|
+
throw new Error(`fn.getUploads() requires authentication. Run "${ctx.cliName} login" to connect to a server.`);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return fn;
|
|
47
|
+
};
|
|
48
|
+
return async (c, next) => {
|
|
49
|
+
const discovery = getDiscovery();
|
|
50
|
+
const requestPath = c.req.path;
|
|
51
|
+
// Find the document by trying to match the path
|
|
52
|
+
const docInfo = findDocumentForPath(discovery, requestPath);
|
|
53
|
+
if (!docInfo) {
|
|
54
|
+
return next();
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
// Create a resolver that looks up paths from the discovery graph
|
|
58
|
+
const resolveDocumentPath = async (path) => {
|
|
59
|
+
const doc = discovery.documents.get(path);
|
|
60
|
+
return doc?.fsPath ?? null;
|
|
61
|
+
};
|
|
62
|
+
// Assemble document on-demand from its filesystem location
|
|
63
|
+
const document = await assemble(docInfo.fsPath, { resolveDocumentPath });
|
|
64
|
+
// Get function context (lazy init)
|
|
65
|
+
const fn = await getFn();
|
|
66
|
+
return await responder({
|
|
67
|
+
path: requestPath,
|
|
68
|
+
getDocument: async () => document,
|
|
69
|
+
getRender: async (doc) => render(doc, { fn }),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
log.error(`❌ Error loading ${requestPath}:`, error);
|
|
74
|
+
return new Response(`Error loading document: ${error.message}`, {
|
|
75
|
+
status: 500,
|
|
76
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Find the document info for a given request path.
|
|
83
|
+
* Handles parsing asset suffixes and finding the matching document.
|
|
84
|
+
*/
|
|
85
|
+
function findDocumentForPath(discovery, requestPath) {
|
|
86
|
+
// Try direct match first
|
|
87
|
+
let docInfo = discovery.documents.get(requestPath);
|
|
88
|
+
if (docInfo) {
|
|
89
|
+
return { fsPath: docInfo.fsPath, path: requestPath };
|
|
90
|
+
}
|
|
91
|
+
// Try matching by stripping potential asset suffixes
|
|
92
|
+
// Assets are things like /data.json, /style.css, etc.
|
|
93
|
+
// We'll try progressively shorter paths
|
|
94
|
+
const parts = requestPath.split('/');
|
|
95
|
+
for (let i = parts.length - 1; i >= 0; i--) {
|
|
96
|
+
const testPath = parts.slice(0, i + 1).join('/') || '/';
|
|
97
|
+
docInfo = discovery.documents.get(testPath);
|
|
98
|
+
if (docInfo) {
|
|
99
|
+
return { fsPath: docInfo.fsPath, path: testPath };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=serveDocument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serveDocument.js","sourceRoot":"","sources":["../../../src/cli/middleware/serveDocument.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CliMiddlewareFactory, DiscoveryGetter } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Middleware that serves files from document upload directories.
|
|
4
|
+
*
|
|
5
|
+
* Handles uploads from:
|
|
6
|
+
* - Document uploads: /doc-path/uploads/filename
|
|
7
|
+
* - Template uploads: /template-path/uploads/filename
|
|
8
|
+
* - Slot uploads: /slot-path/uploads/filename
|
|
9
|
+
*
|
|
10
|
+
* @param getDiscovery - Getter function for the current discovery result
|
|
11
|
+
* @returns Middleware handler
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* let discovery = await discoverDocuments()
|
|
16
|
+
* app.get('/*', serveUploads(() => discovery), ...)
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const serveUploads: CliMiddlewareFactory<[getDiscovery: DiscoveryGetter]>;
|
|
20
|
+
//# sourceMappingURL=serveUploads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serveUploads.d.ts","sourceRoot":"","sources":["../../../src/cli/middleware/serveUploads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAE,eAAe,EAAC,MAAM,YAAY,CAAA;AAMrE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,oBAAoB,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CA8C9E,CAAA"}
|