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,56 @@
1
+ import { normalizeDocumentQuery } from "./utils/common.js";
2
+ import { findDocument } from "./findDocument.js";
3
+ import { getOptimisticDocument } from "./getOptimisticDocument.js";
4
+ /**
5
+ * Clears the draft version of a document, reverting to the published version
6
+ *
7
+ * This function:
8
+ * - Finds the document by id or path
9
+ * - Deletes the draft record if it exists
10
+ * - Sets draft_record_id to NULL
11
+ * - Returns the document with only the current version
12
+ *
13
+ * @param client Database client
14
+ * @param query Query to find the document (by id or path)
15
+ * @returns DualDocument with only the current version
16
+ * @throws Error if document not found
17
+ */
18
+ export const clearDraft = async (client, query) => {
19
+ try {
20
+ await client.query('BEGIN');
21
+ // 1. Find the document
22
+ const normalizedQuery = normalizeDocumentQuery(query);
23
+ const existingDoc = await findDocument(client, normalizedQuery);
24
+ if (!existingDoc) {
25
+ throw new Error('Document not found');
26
+ }
27
+ const document = existingDoc;
28
+ // 2. If there's no draft, just return the document as-is
29
+ if (!document.draft_record_id) {
30
+ await client.query('COMMIT');
31
+ return await getOptimisticDocument(client, document);
32
+ }
33
+ // 3. If there's no current version, we can't clear the draft (would leave document empty)
34
+ if (!document.current_record_id) {
35
+ await client.query('COMMIT');
36
+ // Return the document as-is - can't revert to nothing
37
+ return await getOptimisticDocument(client, document);
38
+ }
39
+ const draftRecordId = document.draft_record_id;
40
+ // 4. Clear the draft reference in the document
41
+ await client.query(`UPDATE documents SET draft_record_id = NULL, updated_at = CURRENT_TIMESTAMP WHERE id = $1`, [
42
+ document.id,
43
+ ]);
44
+ // 5. Delete the draft record
45
+ await client.query(`DELETE FROM document_records WHERE id = $1`, [draftRecordId]);
46
+ document.draft_record_id = null;
47
+ await client.query('COMMIT');
48
+ // 6. Fetch and return the complete document (now without draft)
49
+ return await getOptimisticDocument(client, document);
50
+ }
51
+ catch (error) {
52
+ await client.query('ROLLBACK');
53
+ throw error;
54
+ }
55
+ };
56
+ //# sourceMappingURL=clearDraft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearDraft.js","sourceRoot":"","sources":["../../src/operations/clearDraft.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,UAAU,GAA+C,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAC5F,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE3B,uBAAuB;QACvB,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;QACrD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QAE/D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAA;QAE5B,yDAAyD;QACzD,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC9B,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC5B,OAAO,MAAM,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtD,CAAC;QAED,0FAA0F;QAC1F,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC5B,sDAAsD;YACtD,OAAO,MAAM,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAA;QAE9C,+CAA+C;QAC/C,MAAM,MAAM,CAAC,KAAK,CAAC,2FAA2F,EAAE;YAC9G,QAAQ,CAAC,EAAE;SACZ,CAAC,CAAA;QAEF,6BAA6B;QAC7B,MAAM,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;QAEjF,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAA;QAE/B,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE5B,gEAAgE;QAChE,OAAO,MAAM,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC9B,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { DocumentRecord, DbOperation } from './types.ts';
2
+ /**
3
+ * Helper: Create a new document record
4
+ */
5
+ export declare const createDocumentRecord: DbOperation<[
6
+ Partial<{
7
+ [K in keyof DocumentRecord]: DocumentRecord[K] | null;
8
+ }>,
9
+ (DocumentRecord | null)?
10
+ ], DocumentRecord>;
11
+ //# sourceMappingURL=createDocumentRecord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDocumentRecord.d.ts","sourceRoot":"","sources":["../../src/operations/createDocumentRecord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAG3D;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAC5C;IAAC,OAAO,CAAC;SAAE,CAAC,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;KAAC,CAAC;IAAE,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAAC,EAC5F,cAAc,CAmGf,CAAA"}
@@ -0,0 +1,100 @@
1
+ import { contentType, hasEtaTemplates, dataType } from "./utils/utils.js";
2
+ /**
3
+ * Helper: Create a new document record
4
+ */
5
+ export const createDocumentRecord = async (client, input, baseRecord) => {
6
+ // Merge input with base record (if provided), preferring input values
7
+ const content = input.content !== undefined ? (input.content ?? '') : (baseRecord?.content ?? '');
8
+ // Auto-detect content_type if not provided
9
+ let finalContentType;
10
+ if (input.content_type !== undefined && input.content_type !== null) {
11
+ finalContentType = input.content_type;
12
+ }
13
+ else if (baseRecord?.content_type) {
14
+ finalContentType = baseRecord.content_type;
15
+ }
16
+ else {
17
+ // Use utility function to detect content type
18
+ finalContentType = contentType(content);
19
+ }
20
+ // Auto-detect has_eta if not provided
21
+ // Always auto-detect from content unless explicitly provided in input
22
+ // This ensures has_eta stays in sync with content changes
23
+ let finalHasEta;
24
+ if (input.has_eta !== undefined && input.has_eta !== null) {
25
+ finalHasEta = input.has_eta;
26
+ }
27
+ else {
28
+ // Always auto-detect from content (don't inherit from baseRecord)
29
+ finalHasEta = hasEtaTemplates(content);
30
+ }
31
+ // Merge data field
32
+ const dataContent = input.data !== undefined ? (input.data ?? '') : (baseRecord?.data ?? '');
33
+ // Auto-detect data_type and normalize data to JSON
34
+ // Always auto-detect from data unless explicitly provided in input
35
+ // This ensures data_type stays in sync with data changes
36
+ let finalDataType;
37
+ let finalData;
38
+ if (input.data_type !== undefined) {
39
+ // Explicit data_type provided - use data as-is
40
+ finalDataType = input.data_type;
41
+ finalData = dataContent;
42
+ }
43
+ else {
44
+ // Auto-detect and normalize to JSON
45
+ if (dataContent) {
46
+ try {
47
+ const parsed = dataType(dataContent);
48
+ finalDataType = parsed.type;
49
+ // Always store as JSON
50
+ finalData = JSON.stringify(parsed.value);
51
+ }
52
+ catch {
53
+ // If parsing fails, store as-is with null type
54
+ finalDataType = null;
55
+ finalData = dataContent;
56
+ }
57
+ }
58
+ else {
59
+ finalDataType = null;
60
+ finalData = dataContent;
61
+ }
62
+ }
63
+ const data = {
64
+ title: input.title ?? baseRecord?.title ?? '',
65
+ content: content,
66
+ data: finalData,
67
+ style: input.style !== undefined ? (input.style ?? '') : (baseRecord?.style ?? ''),
68
+ script: input.script !== undefined ? (input.script ?? '') : (baseRecord?.script ?? ''),
69
+ server: input.server !== undefined ? (input.server ?? '') : (baseRecord?.server ?? ''),
70
+ template_id: input.template_id !== undefined ? input.template_id : (baseRecord?.template_id ?? null),
71
+ slot_id: input.slot_id !== undefined ? input.slot_id : (baseRecord?.slot_id ?? null),
72
+ content_type: finalContentType,
73
+ data_type: finalDataType,
74
+ has_eta: finalHasEta,
75
+ mime_type: input.mime_type ?? baseRecord?.mime_type ?? 'text/html; charset=UTF-8',
76
+ extension: input.extension ?? baseRecord?.extension ?? '.html',
77
+ };
78
+ const result = await client.query(`INSERT INTO document_records (
79
+ title, content, data, style, script, server,
80
+ template_id, slot_id, content_type, data_type, has_eta,
81
+ mime_type, extension
82
+ ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)
83
+ RETURNING *`, [
84
+ data.title,
85
+ data.content,
86
+ data.data,
87
+ data.style,
88
+ data.script,
89
+ data.server,
90
+ data.template_id,
91
+ data.slot_id,
92
+ data.content_type,
93
+ data.data_type,
94
+ data.has_eta,
95
+ data.mime_type,
96
+ data.extension,
97
+ ]);
98
+ return result.rows[0];
99
+ };
100
+ //# sourceMappingURL=createDocumentRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDocumentRecord.js","sourceRoot":"","sources":["../../src/operations/createDocumentRecord.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Route, DbOperation } from './types.ts';
2
+ /**
3
+ * Helper: Create a new route
4
+ */
5
+ export declare const createRoute: DbOperation<[string, number], Route>;
6
+ //# sourceMappingURL=createRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createRoute.d.ts","sourceRoot":"","sources":["../../src/operations/createRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAElD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAQ5D,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Helper: Create a new route
3
+ */
4
+ export const createRoute = async (client, path, documentId) => {
5
+ const result = await client.query(`INSERT INTO routes (path, document_id)
6
+ VALUES ($1, $2)
7
+ RETURNING *`, [path, documentId]);
8
+ return result.rows[0];
9
+ };
10
+ //# sourceMappingURL=createRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createRoute.js","sourceRoot":"","sources":["../../src/operations/createRoute.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;IAClG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;;iBAEa,EACb,CAAC,IAAI,EAAE,UAAU,CAAC,CACnB,CAAA;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACvB,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import type { DbOperation } from './types.ts';
2
+ interface CreateSessionParams {
3
+ user_id: number;
4
+ expires_in_days?: number;
5
+ }
6
+ interface Session {
7
+ session_id: string;
8
+ user_id: number;
9
+ expires_at: Date;
10
+ created_at: Date;
11
+ }
12
+ /**
13
+ * Create a new session for a user
14
+ * @param client Database client
15
+ * @param params Session parameters
16
+ * @returns The created session
17
+ * @throws Error if user doesn't exist
18
+ */
19
+ export declare const createSession: DbOperation<[CreateSessionParams], Session>;
20
+ export {};
21
+ //# sourceMappingURL=createSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSession.d.ts","sourceRoot":"","sources":["../../src/operations/createSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAA;AAG3C,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,UAAU,OAAO;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,CA0BrE,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { randomBytes } from 'crypto';
2
+ /**
3
+ * Create a new session for a user
4
+ * @param client Database client
5
+ * @param params Session parameters
6
+ * @returns The created session
7
+ * @throws Error if user doesn't exist
8
+ */
9
+ export const createSession = async (client, params) => {
10
+ const { user_id, expires_in_days = 30 } = params;
11
+ // Verify user exists
12
+ const userCheck = await client.query('SELECT id FROM users WHERE id = $1', [user_id]);
13
+ if (userCheck.rows.length === 0) {
14
+ throw new Error('User not found');
15
+ }
16
+ // Generate secure random session ID
17
+ const session_id = randomBytes(32).toString('hex');
18
+ // Calculate expiration date
19
+ const expires_at = new Date();
20
+ expires_at.setDate(expires_at.getDate() + expires_in_days);
21
+ // Insert session
22
+ const result = await client.query(`INSERT INTO sessions (session_id, user_id, expires_at)
23
+ VALUES ($1, $2, $3)
24
+ RETURNING session_id, user_id, expires_at, created_at`, [session_id, user_id, expires_at]);
25
+ return result.rows[0];
26
+ };
27
+ //# sourceMappingURL=createSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSession.js","sourceRoot":"","sources":["../../src/operations/createSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,QAAQ,CAAA;AAclC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgD,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IACjG,MAAM,EAAC,OAAO,EAAE,eAAe,GAAG,EAAE,EAAC,GAAG,MAAM,CAAA;IAE9C,qBAAqB;IACrB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAErF,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAElD,4BAA4B;IAC5B,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAA;IAC7B,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,CAAA;IAE1D,iBAAiB;IACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;;2DAEuD,EACvD,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAClC,CAAA;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACvB,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { DbOperation } from './types.ts';
2
+ interface DeleteSessionParams {
3
+ session_id: string;
4
+ }
5
+ /**
6
+ * Delete a session (logout)
7
+ * @param client Database client
8
+ * @param params Parameters containing session_id
9
+ * @returns True if session was deleted
10
+ */
11
+ export declare const deleteSession: DbOperation<[DeleteSessionParams], boolean>;
12
+ export {};
13
+ //# sourceMappingURL=deleteSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteSession.d.ts","sourceRoot":"","sources":["../../src/operations/deleteSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAA;AAE3C,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAUrE,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Delete a session (logout)
3
+ * @param client Database client
4
+ * @param params Parameters containing session_id
5
+ * @returns True if session was deleted
6
+ */
7
+ export const deleteSession = async (client, params) => {
8
+ const { session_id } = params;
9
+ if (!session_id || session_id.trim().length === 0) {
10
+ return false;
11
+ }
12
+ const result = await client.query('DELETE FROM sessions WHERE session_id = $1', [session_id]);
13
+ return result.rowCount !== null && result.rowCount > 0;
14
+ };
15
+ //# sourceMappingURL=deleteSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteSession.js","sourceRoot":"","sources":["../../src/operations/deleteSession.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgD,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IACjG,MAAM,EAAC,UAAU,EAAC,GAAG,MAAM,CAAA;IAE3B,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAE7F,OAAO,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;AACxD,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import type { Document, Route, DocumentId, DbOperation } from './types.ts';
2
+ /**
3
+ * Helper: Find document by id or path, following redirects
4
+ * Returns document with redirect flag when accessed via non-canonical path
5
+ */
6
+ export declare const findDocument: DbOperation<[
7
+ {
8
+ id?: DocumentId;
9
+ path?: string;
10
+ },
11
+ {
12
+ published?: boolean;
13
+ }?
14
+ ], (Document & {
15
+ route: Route;
16
+ redirect: boolean;
17
+ }) | null>;
18
+ //# sourceMappingURL=findDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findDocument.d.ts","sourceRoot":"","sources":["../../src/operations/findDocument.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAyCxE;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,WAAW,CACpC;IAAC;QAAC,EAAE,CAAC,EAAE,UAAU,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC;IAAE;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,CAAC;CAAC,EAC1D,CAAC,QAAQ,GAAG;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAC,CAAC,GAAG,IAAI,CAyBtD,CAAA"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Helper: Find document by path (including unpublished), following redirects
3
+ * Returns the document along with whether the access was via redirect
4
+ */
5
+ async function findDocumentByPath(client, path, options) {
6
+ // First find the route
7
+ const routeResult = await client.query(`SELECT id, path, document_id FROM routes WHERE path = $1`, [path]);
8
+ if (routeResult.rows.length === 0) {
9
+ return null;
10
+ }
11
+ const route = routeResult.rows[0];
12
+ // Build WHERE clause with optional published filter
13
+ const whereConditions = ['d.id = r1.document_id'];
14
+ if (options?.published !== undefined) {
15
+ whereConditions.push(`d.published = ${options.published}`);
16
+ }
17
+ // Then find the document via the route's document_id
18
+ const result = await client.query(`SELECT d.*,
19
+ row_to_json(r2.*) as route,
20
+ (r1.id != d.path_id) as redirect
21
+ FROM documents d
22
+ JOIN routes r1 ON r1.id = $1
23
+ JOIN routes r2 ON d.path_id = r2.id
24
+ WHERE ${whereConditions.join(' AND ')}`, [route.id]);
25
+ return result.rows[0] || null;
26
+ }
27
+ /**
28
+ * Helper: Find document by id or path, following redirects
29
+ * Returns document with redirect flag when accessed via non-canonical path
30
+ */
31
+ export const findDocument = async (client, query, options) => {
32
+ if (query.id !== undefined) {
33
+ // Build WHERE clause with optional published filter
34
+ const whereConditions = ['d.id = $1'];
35
+ if (options?.published !== undefined) {
36
+ whereConditions.push(`d.published = ${options.published}`);
37
+ }
38
+ // Find by ID
39
+ const result = await client.query(`SELECT d.*,
40
+ row_to_json(r.*) as route,
41
+ false as redirect
42
+ FROM documents d
43
+ JOIN routes r ON d.path_id = r.id
44
+ WHERE ${whereConditions.join(' AND ')}`, [query.id]);
45
+ return result.rows[0] || null;
46
+ }
47
+ else if (query.path !== undefined) {
48
+ // Find by path (follows redirects)
49
+ return await findDocumentByPath(client, query.path, options);
50
+ }
51
+ return null;
52
+ };
53
+ //# sourceMappingURL=findDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findDocument.js","sourceRoot":"","sources":["../../src/operations/findDocument.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAAkB,EAAE,IAAY,EAAE,OAA+B;IACjG,uBAAuB;IACvB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAInC,0DAA0D,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEtE,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEjC,oDAAoD;IACpD,MAAM,eAAe,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACjD,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,eAAe,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,qDAAqD;IACrD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;;;;;;aAMS,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EACxC,CAAC,KAAK,CAAC,EAAE,CAAC,CACX,CAAA;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAGrB,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACnC,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC3B,oDAAoD;QACpD,MAAM,eAAe,GAAG,CAAC,WAAW,CAAC,CAAA;QACrC,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACrC,eAAe,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;QAC5D,CAAC;QAED,aAAa;QACb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;;;;;eAKS,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EACxC,CAAC,KAAK,CAAC,EAAE,CAAC,CACX,CAAA;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IAC/B,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpC,mCAAmC;QACnC,OAAO,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { Upload, DbOperation, DocumentId } from './types.ts';
2
+ /**
3
+ * Internal helper to get ALL uploads for a document by document ID (including hidden).
4
+ * Used internally for collision checking when adding/updating uploads.
5
+ *
6
+ * @param client Database client
7
+ * @param documentId The document ID
8
+ * @returns Array of all Upload objects (including hidden), or empty array if none found
9
+ */
10
+ export declare const getAllUploadsForDocument: DbOperation<[DocumentId], Upload[]>;
11
+ //# sourceMappingURL=getAllUploadsForDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAllUploadsForDocument.d.ts","sourceRoot":"","sources":["../../src/operations/getAllUploadsForDocument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAC,MAAM,YAAY,CAAA;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAQxE,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Internal helper to get ALL uploads for a document by document ID (including hidden).
3
+ * Used internally for collision checking when adding/updating uploads.
4
+ *
5
+ * @param client Database client
6
+ * @param documentId The document ID
7
+ * @returns Array of all Upload objects (including hidden), or empty array if none found
8
+ */
9
+ export const getAllUploadsForDocument = async (client, documentId) => {
10
+ const result = await client.query(`SELECT id, filename, document_id, created_at, original_filename, hidden, hash
11
+ FROM uploads
12
+ WHERE document_id = $1`, [documentId]);
13
+ return result.rows;
14
+ };
15
+ //# sourceMappingURL=getAllUploadsForDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAllUploadsForDocument.js","sourceRoot":"","sources":["../../src/operations/getAllUploadsForDocument.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAwC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IACxG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;;4BAEwB,EACxB,CAAC,UAAU,CAAC,CACb,CAAA;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA"}
@@ -0,0 +1,30 @@
1
+ import type { DbOperation } from './types.ts';
2
+ import type { DocumentQuery } from './types.ts';
3
+ import type { DocumentClientState } from '../utils/types.ts';
4
+ /**
5
+ * Options for getDocumentClientState
6
+ */
7
+ interface GetDocumentClientStateOptions {
8
+ /** Path to uploads directory. If provided, foreign images will be downloaded and saved. */
9
+ uploadsPath?: string;
10
+ /** Whether to add uploads from content (download foreign images). Default: true when uploadsPath is provided */
11
+ addUploadsFromContent?: boolean;
12
+ }
13
+ /**
14
+ * Preview raw content with optional slot and template
15
+ * Used by the editor to preview changes before saving
16
+ *
17
+ * When options.uploadsPath is provided and document.content contains foreign images,
18
+ * those images will be downloaded, saved as uploads, and the content will be updated
19
+ * with local upload URLs. This provides:
20
+ * 1. Security - prevents malicious image URL swapping after save
21
+ * 2. Link rot prevention - images are preserved even if source goes offline
22
+ */
23
+ export declare const getDocumentClientState: DbOperation<[
24
+ DocumentQuery,
25
+ unknown?,
26
+ Record<string, string>?,
27
+ GetDocumentClientStateOptions?
28
+ ], DocumentClientState | null>;
29
+ export {};
30
+ //# sourceMappingURL=getDocumentClientState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocumentClientState.d.ts","sourceRoot":"","sources":["../../src/operations/getDocumentClientState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,WAAW,EAAC,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAoB,aAAa,EAAe,MAAM,YAAY,CAAA;AAC9E,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAA;AAY1D;;GAEG;AACH,UAAU,6BAA6B;IACrC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gHAAgH;IAChH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AA+GD;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAC9C;IAAC,aAAa;IAAE,OAAO,CAAC;IAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAE,6BAA6B,CAAC;CAAC,EAClF,mBAAmB,GAAG,IAAI,CAoJ3B,CAAA"}