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.
Files changed (561) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +852 -0
  3. package/dist/cli/commands/host.d.ts +6 -0
  4. package/dist/cli/commands/host.d.ts.map +1 -0
  5. package/dist/cli/commands/host.js +52 -0
  6. package/dist/cli/commands/host.js.map +1 -0
  7. package/dist/cli/commands/init.d.ts +15 -0
  8. package/dist/cli/commands/init.d.ts.map +1 -0
  9. package/dist/cli/commands/init.js +207 -0
  10. package/dist/cli/commands/init.js.map +1 -0
  11. package/dist/cli/commands/login.d.ts +18 -0
  12. package/dist/cli/commands/login.d.ts.map +1 -0
  13. package/dist/cli/commands/login.js +152 -0
  14. package/dist/cli/commands/login.js.map +1 -0
  15. package/dist/cli/commands/logout.d.ts +15 -0
  16. package/dist/cli/commands/logout.d.ts.map +1 -0
  17. package/dist/cli/commands/logout.js +62 -0
  18. package/dist/cli/commands/logout.js.map +1 -0
  19. package/dist/cli/commands/pull.d.ts +19 -0
  20. package/dist/cli/commands/pull.d.ts.map +1 -0
  21. package/dist/cli/commands/pull.js +44 -0
  22. package/dist/cli/commands/pull.js.map +1 -0
  23. package/dist/cli/commands/push.d.ts +9 -0
  24. package/dist/cli/commands/push.d.ts.map +1 -0
  25. package/dist/cli/commands/push.js +49 -0
  26. package/dist/cli/commands/push.js.map +1 -0
  27. package/dist/cli/commands/removeServer.d.ts +9 -0
  28. package/dist/cli/commands/removeServer.d.ts.map +1 -0
  29. package/dist/cli/commands/removeServer.js +55 -0
  30. package/dist/cli/commands/removeServer.js.map +1 -0
  31. package/dist/cli/commands/render.d.ts +6 -0
  32. package/dist/cli/commands/render.d.ts.map +1 -0
  33. package/dist/cli/commands/render.js +11 -0
  34. package/dist/cli/commands/render.js.map +1 -0
  35. package/dist/cli/commands/serve.d.ts +7 -0
  36. package/dist/cli/commands/serve.d.ts.map +1 -0
  37. package/dist/cli/commands/serve.js +55 -0
  38. package/dist/cli/commands/serve.js.map +1 -0
  39. package/dist/cli/commands/sessions.d.ts +6 -0
  40. package/dist/cli/commands/sessions.d.ts.map +1 -0
  41. package/dist/cli/commands/sessions.js +24 -0
  42. package/dist/cli/commands/sessions.js.map +1 -0
  43. package/dist/cli/commands/settings.d.ts +10 -0
  44. package/dist/cli/commands/settings.d.ts.map +1 -0
  45. package/dist/cli/commands/settings.js +69 -0
  46. package/dist/cli/commands/settings.js.map +1 -0
  47. package/dist/cli/commands/switchServer.d.ts +9 -0
  48. package/dist/cli/commands/switchServer.d.ts.map +1 -0
  49. package/dist/cli/commands/switchServer.js +52 -0
  50. package/dist/cli/commands/switchServer.js.map +1 -0
  51. package/dist/cli/commands/vscodeInit.d.ts +13 -0
  52. package/dist/cli/commands/vscodeInit.d.ts.map +1 -0
  53. package/dist/cli/commands/vscodeInit.js +152 -0
  54. package/dist/cli/commands/vscodeInit.js.map +1 -0
  55. package/dist/cli/commands/whoami.d.ts +6 -0
  56. package/dist/cli/commands/whoami.d.ts.map +1 -0
  57. package/dist/cli/commands/whoami.js +67 -0
  58. package/dist/cli/commands/whoami.js.map +1 -0
  59. package/dist/cli/index.d.ts +3 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +5 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/cli/middleware/checkDuplicatePath.d.ts +19 -0
  64. package/dist/cli/middleware/checkDuplicatePath.d.ts.map +1 -0
  65. package/dist/cli/middleware/checkDuplicatePath.js +45 -0
  66. package/dist/cli/middleware/checkDuplicatePath.js.map +1 -0
  67. package/dist/cli/middleware/redirectRoot.d.ts +18 -0
  68. package/dist/cli/middleware/redirectRoot.d.ts.map +1 -0
  69. package/dist/cli/middleware/redirectRoot.js +44 -0
  70. package/dist/cli/middleware/redirectRoot.js.map +1 -0
  71. package/dist/cli/middleware/serveDocument.d.ts +10 -0
  72. package/dist/cli/middleware/serveDocument.d.ts.map +1 -0
  73. package/dist/cli/middleware/serveDocument.js +104 -0
  74. package/dist/cli/middleware/serveDocument.js.map +1 -0
  75. package/dist/cli/middleware/serveUploads.d.ts +20 -0
  76. package/dist/cli/middleware/serveUploads.d.ts.map +1 -0
  77. package/dist/cli/middleware/serveUploads.js +93 -0
  78. package/dist/cli/middleware/serveUploads.js.map +1 -0
  79. package/dist/cli/middleware/types.d.ts +43 -0
  80. package/dist/cli/middleware/types.d.ts.map +1 -0
  81. package/dist/cli/middleware/types.js +2 -0
  82. package/dist/cli/middleware/types.js.map +1 -0
  83. package/dist/cli/pathOperations/deletePathUploads.d.ts +6 -0
  84. package/dist/cli/pathOperations/deletePathUploads.d.ts.map +1 -0
  85. package/dist/cli/pathOperations/deletePathUploads.js +68 -0
  86. package/dist/cli/pathOperations/deletePathUploads.js.map +1 -0
  87. package/dist/cli/pathOperations/downloadPathUploads.d.ts +6 -0
  88. package/dist/cli/pathOperations/downloadPathUploads.d.ts.map +1 -0
  89. package/dist/cli/pathOperations/downloadPathUploads.js +156 -0
  90. package/dist/cli/pathOperations/downloadPathUploads.js.map +1 -0
  91. package/dist/cli/pathOperations/pullPathViaGit.d.ts +9 -0
  92. package/dist/cli/pathOperations/pullPathViaGit.d.ts.map +1 -0
  93. package/dist/cli/pathOperations/pullPathViaGit.js +86 -0
  94. package/dist/cli/pathOperations/pullPathViaGit.js.map +1 -0
  95. package/dist/cli/pathOperations/pullPathViaTar.d.ts +14 -0
  96. package/dist/cli/pathOperations/pullPathViaTar.d.ts.map +1 -0
  97. package/dist/cli/pathOperations/pullPathViaTar.js +252 -0
  98. package/dist/cli/pathOperations/pullPathViaTar.js.map +1 -0
  99. package/dist/cli/pathOperations/pushPathViaGit.d.ts +9 -0
  100. package/dist/cli/pathOperations/pushPathViaGit.d.ts.map +1 -0
  101. package/dist/cli/pathOperations/pushPathViaGit.js +49 -0
  102. package/dist/cli/pathOperations/pushPathViaGit.js.map +1 -0
  103. package/dist/cli/pathOperations/pushPathViaTar.d.ts +6 -0
  104. package/dist/cli/pathOperations/pushPathViaTar.d.ts.map +1 -0
  105. package/dist/cli/pathOperations/pushPathViaTar.js +63 -0
  106. package/dist/cli/pathOperations/pushPathViaTar.js.map +1 -0
  107. package/dist/cli/pathOperations/uploadPathUploads.d.ts +6 -0
  108. package/dist/cli/pathOperations/uploadPathUploads.d.ts.map +1 -0
  109. package/dist/cli/pathOperations/uploadPathUploads.js +114 -0
  110. package/dist/cli/pathOperations/uploadPathUploads.js.map +1 -0
  111. package/dist/cli/pathOperations/validatePathSettings.d.ts +14 -0
  112. package/dist/cli/pathOperations/validatePathSettings.d.ts.map +1 -0
  113. package/dist/cli/pathOperations/validatePathSettings.js +191 -0
  114. package/dist/cli/pathOperations/validatePathSettings.js.map +1 -0
  115. package/dist/cli/utils/assemble.d.ts +22 -0
  116. package/dist/cli/utils/assemble.d.ts.map +1 -0
  117. package/dist/cli/utils/assemble.js +219 -0
  118. package/dist/cli/utils/assemble.js.map +1 -0
  119. package/dist/cli/utils/cliName.d.ts +3 -0
  120. package/dist/cli/utils/cliName.d.ts.map +1 -0
  121. package/dist/cli/utils/cliName.js +17 -0
  122. package/dist/cli/utils/cliName.js.map +1 -0
  123. package/dist/cli/utils/codeWorkspace.d.ts +13 -0
  124. package/dist/cli/utils/codeWorkspace.d.ts.map +1 -0
  125. package/dist/cli/utils/codeWorkspace.js +20 -0
  126. package/dist/cli/utils/codeWorkspace.js.map +1 -0
  127. package/dist/cli/utils/colors.d.ts +14 -0
  128. package/dist/cli/utils/colors.d.ts.map +1 -0
  129. package/dist/cli/utils/colors.js +22 -0
  130. package/dist/cli/utils/colors.js.map +1 -0
  131. package/dist/cli/utils/config.d.ts +35 -0
  132. package/dist/cli/utils/config.d.ts.map +1 -0
  133. package/dist/cli/utils/config.js +95 -0
  134. package/dist/cli/utils/config.js.map +1 -0
  135. package/dist/cli/utils/copilotInstructions.d.ts +5 -0
  136. package/dist/cli/utils/copilotInstructions.d.ts.map +1 -0
  137. package/dist/cli/utils/copilotInstructions.js +101 -0
  138. package/dist/cli/utils/copilotInstructions.js.map +1 -0
  139. package/dist/cli/utils/createLoggedFs.d.ts +17 -0
  140. package/dist/cli/utils/createLoggedFs.d.ts.map +1 -0
  141. package/dist/cli/utils/createLoggedFs.js +106 -0
  142. package/dist/cli/utils/createLoggedFs.js.map +1 -0
  143. package/dist/cli/utils/credentials.d.ts +38 -0
  144. package/dist/cli/utils/credentials.d.ts.map +1 -0
  145. package/dist/cli/utils/credentials.js +400 -0
  146. package/dist/cli/utils/credentials.js.map +1 -0
  147. package/dist/cli/utils/discover.d.ts +26 -0
  148. package/dist/cli/utils/discover.d.ts.map +1 -0
  149. package/dist/cli/utils/discover.js +209 -0
  150. package/dist/cli/utils/discover.js.map +1 -0
  151. package/dist/cli/utils/formatPlan.d.ts +40 -0
  152. package/dist/cli/utils/formatPlan.d.ts.map +1 -0
  153. package/dist/cli/utils/formatPlan.js +148 -0
  154. package/dist/cli/utils/formatPlan.js.map +1 -0
  155. package/dist/cli/utils/git.d.ts +17 -0
  156. package/dist/cli/utils/git.d.ts.map +1 -0
  157. package/dist/cli/utils/git.js +57 -0
  158. package/dist/cli/utils/git.js.map +1 -0
  159. package/dist/cli/utils/gitUrl.d.ts +7 -0
  160. package/dist/cli/utils/gitUrl.d.ts.map +1 -0
  161. package/dist/cli/utils/gitUrl.js +23 -0
  162. package/dist/cli/utils/gitUrl.js.map +1 -0
  163. package/dist/cli/utils/log.d.ts +22 -0
  164. package/dist/cli/utils/log.d.ts.map +1 -0
  165. package/dist/cli/utils/log.js +31 -0
  166. package/dist/cli/utils/log.js.map +1 -0
  167. package/dist/cli/utils/logData.d.ts +5 -0
  168. package/dist/cli/utils/logData.d.ts.map +1 -0
  169. package/dist/cli/utils/logData.js +65 -0
  170. package/dist/cli/utils/logData.js.map +1 -0
  171. package/dist/cli/utils/loggedFetch.d.ts +4 -0
  172. package/dist/cli/utils/loggedFetch.d.ts.map +1 -0
  173. package/dist/cli/utils/loggedFetch.js +15 -0
  174. package/dist/cli/utils/loggedFetch.js.map +1 -0
  175. package/dist/cli/utils/pageContext.d.ts +50 -0
  176. package/dist/cli/utils/pageContext.d.ts.map +1 -0
  177. package/dist/cli/utils/pageContext.js +86 -0
  178. package/dist/cli/utils/pageContext.js.map +1 -0
  179. package/dist/cli/utils/parseDocumentPath.d.ts +13 -0
  180. package/dist/cli/utils/parseDocumentPath.d.ts.map +1 -0
  181. package/dist/cli/utils/parseDocumentPath.js +35 -0
  182. package/dist/cli/utils/parseDocumentPath.js.map +1 -0
  183. package/dist/cli/utils/populateCache.d.ts +12 -0
  184. package/dist/cli/utils/populateCache.d.ts.map +1 -0
  185. package/dist/cli/utils/populateCache.js +21 -0
  186. package/dist/cli/utils/populateCache.js.map +1 -0
  187. package/dist/cli/utils/prefixLog.d.ts +21 -0
  188. package/dist/cli/utils/prefixLog.d.ts.map +1 -0
  189. package/dist/cli/utils/prefixLog.js +73 -0
  190. package/dist/cli/utils/prefixLog.js.map +1 -0
  191. package/dist/cli/utils/program.d.ts +7 -0
  192. package/dist/cli/utils/program.d.ts.map +1 -0
  193. package/dist/cli/utils/program.js +266 -0
  194. package/dist/cli/utils/program.js.map +1 -0
  195. package/dist/cli/utils/promptExec.d.ts +27 -0
  196. package/dist/cli/utils/promptExec.d.ts.map +1 -0
  197. package/dist/cli/utils/promptExec.js +47 -0
  198. package/dist/cli/utils/promptExec.js.map +1 -0
  199. package/dist/cli/utils/pullHarness.d.ts +15 -0
  200. package/dist/cli/utils/pullHarness.d.ts.map +1 -0
  201. package/dist/cli/utils/pullHarness.js +101 -0
  202. package/dist/cli/utils/pullHarness.js.map +1 -0
  203. package/dist/cli/utils/pullViaGit.d.ts +6 -0
  204. package/dist/cli/utils/pullViaGit.d.ts.map +1 -0
  205. package/dist/cli/utils/pullViaGit.js +13 -0
  206. package/dist/cli/utils/pullViaGit.js.map +1 -0
  207. package/dist/cli/utils/pullViaTar.d.ts +10 -0
  208. package/dist/cli/utils/pullViaTar.d.ts.map +1 -0
  209. package/dist/cli/utils/pullViaTar.js +15 -0
  210. package/dist/cli/utils/pullViaTar.js.map +1 -0
  211. package/dist/cli/utils/pushHarness.d.ts +24 -0
  212. package/dist/cli/utils/pushHarness.d.ts.map +1 -0
  213. package/dist/cli/utils/pushHarness.js +82 -0
  214. package/dist/cli/utils/pushHarness.js.map +1 -0
  215. package/dist/cli/utils/pushViaGit.d.ts +6 -0
  216. package/dist/cli/utils/pushViaGit.d.ts.map +1 -0
  217. package/dist/cli/utils/pushViaGit.js +16 -0
  218. package/dist/cli/utils/pushViaGit.js.map +1 -0
  219. package/dist/cli/utils/pushViaTar.d.ts +6 -0
  220. package/dist/cli/utils/pushViaTar.d.ts.map +1 -0
  221. package/dist/cli/utils/pushViaTar.js +9 -0
  222. package/dist/cli/utils/pushViaTar.js.map +1 -0
  223. package/dist/cli/utils/resolveTarget.d.ts +23 -0
  224. package/dist/cli/utils/resolveTarget.d.ts.map +1 -0
  225. package/dist/cli/utils/resolveTarget.js +43 -0
  226. package/dist/cli/utils/resolveTarget.js.map +1 -0
  227. package/dist/cli/utils/settingsValidation.d.ts +23 -0
  228. package/dist/cli/utils/settingsValidation.d.ts.map +1 -0
  229. package/dist/cli/utils/settingsValidation.js +176 -0
  230. package/dist/cli/utils/settingsValidation.js.map +1 -0
  231. package/dist/cli/utils/types.d.ts +33 -0
  232. package/dist/cli/utils/types.d.ts.map +1 -0
  233. package/dist/cli/utils/types.js +2 -0
  234. package/dist/cli/utils/types.js.map +1 -0
  235. package/dist/cli/utils/validateAndGetFilesFromDir.d.ts +10 -0
  236. package/dist/cli/utils/validateAndGetFilesFromDir.d.ts.map +1 -0
  237. package/dist/cli/utils/validateAndGetFilesFromDir.js +74 -0
  238. package/dist/cli/utils/validateAndGetFilesFromDir.js.map +1 -0
  239. package/dist/cli/utils/watchForChanges.d.ts +7 -0
  240. package/dist/cli/utils/watchForChanges.d.ts.map +1 -0
  241. package/dist/cli/utils/watchForChanges.js +44 -0
  242. package/dist/cli/utils/watchForChanges.js.map +1 -0
  243. package/dist/db/index.d.ts +5 -0
  244. package/dist/db/index.d.ts.map +1 -0
  245. package/dist/db/index.js +23 -0
  246. package/dist/db/index.js.map +1 -0
  247. package/dist/editor.bundle.dev.js +30823 -0
  248. package/dist/editor.bundle.dev.js.map +7 -0
  249. package/dist/editor.bundle.js +30347 -0
  250. package/dist/editor.bundle.js.map +7 -0
  251. package/dist/editor.bundle.prod.js +1373 -0
  252. package/dist/index.d.ts +5 -0
  253. package/dist/index.d.ts.map +1 -0
  254. package/dist/index.js +4 -0
  255. package/dist/index.js.map +1 -0
  256. package/dist/operations/addRedirect.d.ts +20 -0
  257. package/dist/operations/addRedirect.d.ts.map +1 -0
  258. package/dist/operations/addRedirect.js +46 -0
  259. package/dist/operations/addRedirect.js.map +1 -0
  260. package/dist/operations/addUpload.d.ts +29 -0
  261. package/dist/operations/addUpload.d.ts.map +1 -0
  262. package/dist/operations/addUpload.js +96 -0
  263. package/dist/operations/addUpload.js.map +1 -0
  264. package/dist/operations/addUploadsFromContent.d.ts +27 -0
  265. package/dist/operations/addUploadsFromContent.d.ts.map +1 -0
  266. package/dist/operations/addUploadsFromContent.js +311 -0
  267. package/dist/operations/addUploadsFromContent.js.map +1 -0
  268. package/dist/operations/clearDraft.d.ts +17 -0
  269. package/dist/operations/clearDraft.d.ts.map +1 -0
  270. package/dist/operations/clearDraft.js +56 -0
  271. package/dist/operations/clearDraft.js.map +1 -0
  272. package/dist/operations/createDocumentRecord.d.ts +11 -0
  273. package/dist/operations/createDocumentRecord.d.ts.map +1 -0
  274. package/dist/operations/createDocumentRecord.js +100 -0
  275. package/dist/operations/createDocumentRecord.js.map +1 -0
  276. package/dist/operations/createRoute.d.ts +6 -0
  277. package/dist/operations/createRoute.d.ts.map +1 -0
  278. package/dist/operations/createRoute.js +10 -0
  279. package/dist/operations/createRoute.js.map +1 -0
  280. package/dist/operations/createSession.d.ts +21 -0
  281. package/dist/operations/createSession.d.ts.map +1 -0
  282. package/dist/operations/createSession.js +27 -0
  283. package/dist/operations/createSession.js.map +1 -0
  284. package/dist/operations/deleteSession.d.ts +13 -0
  285. package/dist/operations/deleteSession.d.ts.map +1 -0
  286. package/dist/operations/deleteSession.js +15 -0
  287. package/dist/operations/deleteSession.js.map +1 -0
  288. package/dist/operations/findDocument.d.ts +18 -0
  289. package/dist/operations/findDocument.d.ts.map +1 -0
  290. package/dist/operations/findDocument.js +53 -0
  291. package/dist/operations/findDocument.js.map +1 -0
  292. package/dist/operations/getAllUploadsForDocument.d.ts +11 -0
  293. package/dist/operations/getAllUploadsForDocument.d.ts.map +1 -0
  294. package/dist/operations/getAllUploadsForDocument.js +15 -0
  295. package/dist/operations/getAllUploadsForDocument.js.map +1 -0
  296. package/dist/operations/getDocumentClientState.d.ts +30 -0
  297. package/dist/operations/getDocumentClientState.d.ts.map +1 -0
  298. package/dist/operations/getDocumentClientState.js +246 -0
  299. package/dist/operations/getDocumentClientState.js.map +1 -0
  300. package/dist/operations/getDocumentInstance.d.ts +7 -0
  301. package/dist/operations/getDocumentInstance.d.ts.map +1 -0
  302. package/dist/operations/getDocumentInstance.js +32 -0
  303. package/dist/operations/getDocumentInstance.js.map +1 -0
  304. package/dist/operations/getDocumentRecord.d.ts +6 -0
  305. package/dist/operations/getDocumentRecord.d.ts.map +1 -0
  306. package/dist/operations/getDocumentRecord.js +8 -0
  307. package/dist/operations/getDocumentRecord.js.map +1 -0
  308. package/dist/operations/getDualDocument.d.ts +28 -0
  309. package/dist/operations/getDualDocument.d.ts.map +1 -0
  310. package/dist/operations/getDualDocument.js +81 -0
  311. package/dist/operations/getDualDocument.js.map +1 -0
  312. package/dist/operations/getDualDocuments.d.ts +26 -0
  313. package/dist/operations/getDualDocuments.d.ts.map +1 -0
  314. package/dist/operations/getDualDocuments.js +130 -0
  315. package/dist/operations/getDualDocuments.js.map +1 -0
  316. package/dist/operations/getOptimisticDocument.d.ts +6 -0
  317. package/dist/operations/getOptimisticDocument.d.ts.map +1 -0
  318. package/dist/operations/getOptimisticDocument.js +30 -0
  319. package/dist/operations/getOptimisticDocument.js.map +1 -0
  320. package/dist/operations/getPage.d.ts +18 -0
  321. package/dist/operations/getPage.d.ts.map +1 -0
  322. package/dist/operations/getPage.js +31 -0
  323. package/dist/operations/getPage.js.map +1 -0
  324. package/dist/operations/getPages.d.ts +18 -0
  325. package/dist/operations/getPages.d.ts.map +1 -0
  326. package/dist/operations/getPages.js +30 -0
  327. package/dist/operations/getPages.js.map +1 -0
  328. package/dist/operations/getRedirects.d.ts +13 -0
  329. package/dist/operations/getRedirects.d.ts.map +1 -0
  330. package/dist/operations/getRedirects.js +30 -0
  331. package/dist/operations/getRedirects.js.map +1 -0
  332. package/dist/operations/getRenderDocument.d.ts +18 -0
  333. package/dist/operations/getRenderDocument.d.ts.map +1 -0
  334. package/dist/operations/getRenderDocument.js +27 -0
  335. package/dist/operations/getRenderDocument.js.map +1 -0
  336. package/dist/operations/getRenderDocumentWithAssociations.d.ts +15 -0
  337. package/dist/operations/getRenderDocumentWithAssociations.d.ts.map +1 -0
  338. package/dist/operations/getRenderDocumentWithAssociations.js +64 -0
  339. package/dist/operations/getRenderDocumentWithAssociations.js.map +1 -0
  340. package/dist/operations/getRenderDocuments.d.ts +16 -0
  341. package/dist/operations/getRenderDocuments.d.ts.map +1 -0
  342. package/dist/operations/getRenderDocuments.js +25 -0
  343. package/dist/operations/getRenderDocuments.js.map +1 -0
  344. package/dist/operations/getUpload.d.ts +25 -0
  345. package/dist/operations/getUpload.d.ts.map +1 -0
  346. package/dist/operations/getUpload.js +37 -0
  347. package/dist/operations/getUpload.js.map +1 -0
  348. package/dist/operations/getUploads.d.ts +25 -0
  349. package/dist/operations/getUploads.d.ts.map +1 -0
  350. package/dist/operations/getUploads.js +76 -0
  351. package/dist/operations/getUploads.js.map +1 -0
  352. package/dist/operations/getUsersCount.d.ts +12 -0
  353. package/dist/operations/getUsersCount.d.ts.map +1 -0
  354. package/dist/operations/getUsersCount.js +12 -0
  355. package/dist/operations/getUsersCount.js.map +1 -0
  356. package/dist/operations/login.d.ts +20 -0
  357. package/dist/operations/login.d.ts.map +1 -0
  358. package/dist/operations/login.js +38 -0
  359. package/dist/operations/login.js.map +1 -0
  360. package/dist/operations/removeDocument.d.ts +19 -0
  361. package/dist/operations/removeDocument.d.ts.map +1 -0
  362. package/dist/operations/removeDocument.js +54 -0
  363. package/dist/operations/removeDocument.js.map +1 -0
  364. package/dist/operations/removeRedirect.d.ts +15 -0
  365. package/dist/operations/removeRedirect.d.ts.map +1 -0
  366. package/dist/operations/removeRedirect.js +71 -0
  367. package/dist/operations/removeRedirect.js.map +1 -0
  368. package/dist/operations/removeUpload.d.ts +21 -0
  369. package/dist/operations/removeUpload.d.ts.map +1 -0
  370. package/dist/operations/removeUpload.js +49 -0
  371. package/dist/operations/removeUpload.js.map +1 -0
  372. package/dist/operations/search.d.ts +19 -0
  373. package/dist/operations/search.d.ts.map +1 -0
  374. package/dist/operations/search.js +109 -0
  375. package/dist/operations/search.js.map +1 -0
  376. package/dist/operations/seedIfEmpty.d.ts +7 -0
  377. package/dist/operations/seedIfEmpty.d.ts.map +1 -0
  378. package/dist/operations/seedIfEmpty.js +100 -0
  379. package/dist/operations/seedIfEmpty.js.map +1 -0
  380. package/dist/operations/signup.d.ts +21 -0
  381. package/dist/operations/signup.d.ts.map +1 -0
  382. package/dist/operations/signup.js +45 -0
  383. package/dist/operations/signup.js.map +1 -0
  384. package/dist/operations/types.d.ts +223 -0
  385. package/dist/operations/types.d.ts.map +1 -0
  386. package/dist/operations/types.js +2 -0
  387. package/dist/operations/types.js.map +1 -0
  388. package/dist/operations/updateUpload.d.ts +27 -0
  389. package/dist/operations/updateUpload.d.ts.map +1 -0
  390. package/dist/operations/updateUpload.js +78 -0
  391. package/dist/operations/updateUpload.js.map +1 -0
  392. package/dist/operations/updateViaArchive.d.ts +23 -0
  393. package/dist/operations/updateViaArchive.d.ts.map +1 -0
  394. package/dist/operations/updateViaArchive.js +229 -0
  395. package/dist/operations/updateViaArchive.js.map +1 -0
  396. package/dist/operations/upsert.d.ts +26 -0
  397. package/dist/operations/upsert.d.ts.map +1 -0
  398. package/dist/operations/upsert.js +257 -0
  399. package/dist/operations/upsert.js.map +1 -0
  400. package/dist/operations/utils/common.d.ts +2 -0
  401. package/dist/operations/utils/common.d.ts.map +1 -0
  402. package/dist/operations/utils/common.js +2 -0
  403. package/dist/operations/utils/common.js.map +1 -0
  404. package/dist/operations/utils/contentType.d.ts +2 -0
  405. package/dist/operations/utils/contentType.d.ts.map +1 -0
  406. package/dist/operations/utils/contentType.js +66 -0
  407. package/dist/operations/utils/contentType.js.map +1 -0
  408. package/dist/operations/utils/dataType.d.ts +7 -0
  409. package/dist/operations/utils/dataType.d.ts.map +1 -0
  410. package/dist/operations/utils/dataType.js +35 -0
  411. package/dist/operations/utils/dataType.js.map +1 -0
  412. package/dist/operations/utils/generateUniqueFilename.d.ts +7 -0
  413. package/dist/operations/utils/generateUniqueFilename.d.ts.map +1 -0
  414. package/dist/operations/utils/generateUniqueFilename.js +38 -0
  415. package/dist/operations/utils/generateUniqueFilename.js.map +1 -0
  416. package/dist/operations/utils/hasEtaTemplates.d.ts +2 -0
  417. package/dist/operations/utils/hasEtaTemplates.d.ts.map +1 -0
  418. package/dist/operations/utils/hasEtaTemplates.js +10 -0
  419. package/dist/operations/utils/hasEtaTemplates.js.map +1 -0
  420. package/dist/operations/utils/normalizeDocumentQuery.d.ts +12 -0
  421. package/dist/operations/utils/normalizeDocumentQuery.d.ts.map +1 -0
  422. package/dist/operations/utils/normalizeDocumentQuery.js +45 -0
  423. package/dist/operations/utils/normalizeDocumentQuery.js.map +1 -0
  424. package/dist/operations/utils/utils.d.ts +4 -0
  425. package/dist/operations/utils/utils.d.ts.map +1 -0
  426. package/dist/operations/utils/utils.js +4 -0
  427. package/dist/operations/utils/utils.js.map +1 -0
  428. package/dist/operations/validateSession.d.ts +17 -0
  429. package/dist/operations/validateSession.d.ts.map +1 -0
  430. package/dist/operations/validateSession.js +27 -0
  431. package/dist/operations/validateSession.js.map +1 -0
  432. package/dist/render/index.d.ts +9 -0
  433. package/dist/render/index.d.ts.map +1 -0
  434. package/dist/render/index.js +347 -0
  435. package/dist/render/index.js.map +1 -0
  436. package/dist/render/utils/base.d.ts +74 -0
  437. package/dist/render/utils/base.d.ts.map +1 -0
  438. package/dist/render/utils/base.js +290 -0
  439. package/dist/render/utils/base.js.map +1 -0
  440. package/dist/render/utils/extractRawBlocks.d.ts +10 -0
  441. package/dist/render/utils/extractRawBlocks.d.ts.map +1 -0
  442. package/dist/render/utils/extractRawBlocks.js +28 -0
  443. package/dist/render/utils/extractRawBlocks.js.map +1 -0
  444. package/dist/render/utils/rawBlocks.d.ts +10 -0
  445. package/dist/render/utils/rawBlocks.d.ts.map +1 -0
  446. package/dist/render/utils/rawBlocks.js +28 -0
  447. package/dist/render/utils/rawBlocks.js.map +1 -0
  448. package/dist/render/utils/usageTracker.d.ts +10 -0
  449. package/dist/render/utils/usageTracker.d.ts.map +1 -0
  450. package/dist/render/utils/usageTracker.js +87 -0
  451. package/dist/render/utils/usageTracker.js.map +1 -0
  452. package/dist/responder/index.d.ts +34 -0
  453. package/dist/responder/index.d.ts.map +1 -0
  454. package/dist/responder/index.js +546 -0
  455. package/dist/responder/index.js.map +1 -0
  456. package/dist/server/index.d.ts +7 -0
  457. package/dist/server/index.d.ts.map +1 -0
  458. package/dist/server/index.js +54 -0
  459. package/dist/server/index.js.map +1 -0
  460. package/dist/server/middleware/authorize.d.ts +3 -0
  461. package/dist/server/middleware/authorize.d.ts.map +1 -0
  462. package/dist/server/middleware/authorize.js +15 -0
  463. package/dist/server/middleware/authorize.js.map +1 -0
  464. package/dist/server/middleware/establishAuth.d.ts +3 -0
  465. package/dist/server/middleware/establishAuth.d.ts.map +1 -0
  466. package/dist/server/middleware/establishAuth.js +45 -0
  467. package/dist/server/middleware/establishAuth.js.map +1 -0
  468. package/dist/server/middleware/log.d.ts +3 -0
  469. package/dist/server/middleware/log.d.ts.map +1 -0
  470. package/dist/server/middleware/log.js +12 -0
  471. package/dist/server/middleware/log.js.map +1 -0
  472. package/dist/server/middleware/requirePathMatch.d.ts +3 -0
  473. package/dist/server/middleware/requirePathMatch.d.ts.map +1 -0
  474. package/dist/server/middleware/requirePathMatch.js +25 -0
  475. package/dist/server/middleware/requirePathMatch.js.map +1 -0
  476. package/dist/server/middleware/requireQuery.d.ts +3 -0
  477. package/dist/server/middleware/requireQuery.d.ts.map +1 -0
  478. package/dist/server/middleware/requireQuery.js +24 -0
  479. package/dist/server/middleware/requireQuery.js.map +1 -0
  480. package/dist/server/middleware/withDb.d.ts +4 -0
  481. package/dist/server/middleware/withDb.d.ts.map +1 -0
  482. package/dist/server/middleware/withDb.js +7 -0
  483. package/dist/server/middleware/withDb.js.map +1 -0
  484. package/dist/server/routes/assets.d.ts +4 -0
  485. package/dist/server/routes/assets.d.ts.map +1 -0
  486. package/dist/server/routes/assets.js +178 -0
  487. package/dist/server/routes/assets.js.map +1 -0
  488. package/dist/server/routes/documents.d.ts +4 -0
  489. package/dist/server/routes/documents.d.ts.map +1 -0
  490. package/dist/server/routes/documents.js +40 -0
  491. package/dist/server/routes/documents.js.map +1 -0
  492. package/dist/server/routes/edit.d.ts +22 -0
  493. package/dist/server/routes/edit.d.ts.map +1 -0
  494. package/dist/server/routes/edit.js +494 -0
  495. package/dist/server/routes/edit.js.map +1 -0
  496. package/dist/server/routes/git.d.ts +4 -0
  497. package/dist/server/routes/git.d.ts.map +1 -0
  498. package/dist/server/routes/git.js +612 -0
  499. package/dist/server/routes/git.js.map +1 -0
  500. package/dist/server/routes/readUpload.d.ts +4 -0
  501. package/dist/server/routes/readUpload.d.ts.map +1 -0
  502. package/dist/server/routes/readUpload.js +57 -0
  503. package/dist/server/routes/readUpload.js.map +1 -0
  504. package/dist/server/utils/NotFoundError.d.ts +9 -0
  505. package/dist/server/utils/NotFoundError.d.ts.map +1 -0
  506. package/dist/server/utils/NotFoundError.js +16 -0
  507. package/dist/server/utils/NotFoundError.js.map +1 -0
  508. package/dist/server/utils/editor.css +1535 -0
  509. package/dist/server/utils/htmlEditorPage.d.ts +6 -0
  510. package/dist/server/utils/htmlEditorPage.d.ts.map +1 -0
  511. package/dist/server/utils/htmlEditorPage.js +518 -0
  512. package/dist/server/utils/htmlEditorPage.js.map +1 -0
  513. package/dist/server/utils/htmlLoginPage.d.ts +6 -0
  514. package/dist/server/utils/htmlLoginPage.d.ts.map +1 -0
  515. package/dist/server/utils/htmlLoginPage.js +134 -0
  516. package/dist/server/utils/htmlLoginPage.js.map +1 -0
  517. package/dist/server/utils/layout.css +153 -0
  518. package/dist/server/utils/types.d.ts +18 -0
  519. package/dist/server/utils/types.d.ts.map +1 -0
  520. package/dist/server/utils/types.js +2 -0
  521. package/dist/server/utils/types.js.map +1 -0
  522. package/dist/server-bin/index.d.ts +2 -0
  523. package/dist/server-bin/index.d.ts.map +1 -0
  524. package/dist/server-bin/index.js +26 -0
  525. package/dist/server-bin/index.js.map +1 -0
  526. package/dist/utils/functionContext.d.ts +12 -0
  527. package/dist/utils/functionContext.d.ts.map +1 -0
  528. package/dist/utils/functionContext.js +19 -0
  529. package/dist/utils/functionContext.js.map +1 -0
  530. package/dist/utils/functionContextClient.d.ts +23 -0
  531. package/dist/utils/functionContextClient.d.ts.map +1 -0
  532. package/dist/utils/functionContextClient.js +93 -0
  533. package/dist/utils/functionContextClient.js.map +1 -0
  534. package/dist/utils/stringifyData.d.ts +2 -0
  535. package/dist/utils/stringifyData.d.ts.map +1 -0
  536. package/dist/utils/stringifyData.js +23 -0
  537. package/dist/utils/stringifyData.js.map +1 -0
  538. package/dist/utils/stripImageExif.d.ts +14 -0
  539. package/dist/utils/stripImageExif.d.ts.map +1 -0
  540. package/dist/utils/stripImageExif.js +112 -0
  541. package/dist/utils/stripImageExif.js.map +1 -0
  542. package/dist/utils/types.d.ts +81 -0
  543. package/dist/utils/types.d.ts.map +1 -0
  544. package/dist/utils/types.js +2 -0
  545. package/dist/utils/types.js.map +1 -0
  546. package/migrations/1770796673000_initial-schema.js +178 -0
  547. package/package.json +97 -0
  548. package/pages/skywriter/.github/copilot-instructions.md +94 -0
  549. package/pages/skywriter/content.md +862 -0
  550. package/pages/skywriter/data.json +1 -0
  551. package/pages/skywriter/doc.code-workspace +15 -0
  552. package/pages/skywriter/script.js +1 -0
  553. package/pages/skywriter/server.js +1 -0
  554. package/pages/skywriter/settings.json +11 -0
  555. package/pages/skywriter/style.css +167 -0
  556. package/pages/skywriter/template/content.eta +55 -0
  557. package/pages/skywriter/template/data.json +1 -0
  558. package/pages/skywriter/template/script.js +512 -0
  559. package/pages/skywriter/template/server.js +27 -0
  560. package/pages/skywriter/template/settings.json +11 -0
  561. 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,6 @@
1
+ import type { CliCommand } from '../utils/types.ts';
2
+ /**
3
+ * Show current default server and user, and verify credentials against the server
4
+ */
5
+ export declare const whoami: CliCommand;
6
+ //# sourceMappingURL=whoami.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import { program } from "./utils/program.js";
3
+ const exitCode = await program(process.argv.slice(2));
4
+ process.exitCode = exitCode;
5
+ //# sourceMappingURL=index.js.map
@@ -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"}