@autocode-cli/autocode 0.8.37 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +15 -0
- package/.output/public/_i18n/zP5M_e1m/en/messages.json +1 -0
- package/.output/public/_i18n/zP5M_e1m/fr/messages.json +1 -0
- package/.output/public/_nuxt/BBgAVlXU.js +1 -0
- package/.output/public/_nuxt/BZUmpBmU.js +2 -0
- package/.output/public/_nuxt/BmGeRwzG.js +1 -0
- package/.output/public/_nuxt/Bsd2P-Xc.js +1 -0
- package/.output/public/_nuxt/BthlfLoK.js +1 -0
- package/.output/public/_nuxt/Bu1Qq2g-.js +1 -0
- package/.output/public/_nuxt/BvF9_V7p.js +1 -0
- package/.output/public/_nuxt/BvUbqlcZ.js +2 -0
- package/.output/public/_nuxt/Bxcwuw3U.js +1 -0
- package/.output/public/_nuxt/C0Rlrcoy.js +59 -0
- package/.output/public/_nuxt/CTV7-Iux.js +1 -0
- package/.output/public/_nuxt/CWENDdnZ.js +1 -0
- package/.output/public/_nuxt/CjVJcaTo.js +7 -0
- package/.output/public/_nuxt/CoGBQbLh.js +1 -0
- package/.output/public/_nuxt/CtVoJCjv.js +1 -0
- package/.output/public/_nuxt/D4lcVP-d.js +1 -0
- package/.output/public/_nuxt/D8RlVVzC.js +1 -0
- package/.output/public/_nuxt/DBuWa6JT.js +1 -0
- package/.output/public/_nuxt/DFQ30pd7.js +1 -0
- package/.output/public/_nuxt/DNUcHFTN.js +1 -0
- package/.output/public/_nuxt/DRo5NaOZ.js +1 -0
- package/.output/public/_nuxt/DU0awelf.js +1 -0
- package/.output/public/_nuxt/DYYF8rpr.js +1 -0
- package/.output/public/_nuxt/DaYBQX26.js +1 -0
- package/.output/public/_nuxt/DwfwVH0w.js +1 -0
- package/.output/public/_nuxt/DykwyQae.js +1 -0
- package/.output/public/_nuxt/FIIaIpPb.js +1 -0
- package/.output/public/_nuxt/IssueHeader.BKYJE9Ko.css +1 -0
- package/.output/public/_nuxt/LangSwitcher.DDTh1sNN.css +1 -0
- package/.output/public/_nuxt/QtPIr4OQ.js +1 -0
- package/.output/public/_nuxt/TA-NBooC.js +1 -0
- package/.output/public/_nuxt/TB1o0NrH.js +13 -0
- package/.output/public/_nuxt/Zzp33YZj.js +1 -0
- package/.output/public/_nuxt/_HJO0SwU.js +1 -0
- package/.output/public/_nuxt/_id_.CYj9w2Sw.css +1 -0
- package/.output/public/_nuxt/_name_.OOW3Ydwv.css +1 -0
- package/.output/public/_nuxt/autocreate.-iJ9Pxhm.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -0
- package/.output/public/_nuxt/builds/meta/83d9a3fc-c99e-4e26-adef-e7f5b329b81a.json +1 -0
- package/.output/public/_nuxt/changelog.CziWegef.css +1 -0
- package/.output/public/_nuxt/comments.BcvjcN1z.css +1 -0
- package/.output/public/_nuxt/default.BaZU2Ea8.css +1 -0
- package/.output/public/_nuxt/entry.CzscD3wg.css +1 -0
- package/.output/public/_nuxt/graph.BbpRRv0M.css +1 -0
- package/.output/public/_nuxt/iHS1jy-1.js +1 -0
- package/.output/public/_nuxt/index.CDND7dpO.css +1 -0
- package/.output/public/_nuxt/index.COVdL_Kx.css +1 -0
- package/.output/public/_nuxt/index.CTkgb9uR.css +1 -0
- package/.output/public/_nuxt/index.DkNg_n4G.css +1 -0
- package/.output/public/_nuxt/jYigECdj.js +1 -0
- package/.output/public/_nuxt/kanban.BuPOCLgG.css +1 -0
- package/.output/public/_nuxt/landing.D5KkDm1b.css +1 -0
- package/.output/public/_nuxt/new.BFERdqdm.css +1 -0
- package/.output/public/_nuxt/new.BzaiohPo.css +1 -0
- package/.output/public/_nuxt/prompt.CbFHjm-L.css +1 -0
- package/.output/public/_nuxt/prompt.DM4VdPnn.css +1 -0
- package/.output/public/_nuxt/prompt.DZ0wdOji.css +1 -0
- package/.output/public/_nuxt/stats.CXzKxZ71.css +1 -0
- package/.output/public/_nuxt/terminal.BL0EPPyU.css +1 -0
- package/.output/public/_nuxt/terminal.D3JI44PH.css +1 -0
- package/.output/public/_nuxt/terminal.YXDzS4Ng.css +1 -0
- package/.output/public/_payload.json +1 -0
- package/.output/public/favicon.svg +11 -0
- package/.output/public/index.html +1 -0
- package/.output/public/media/podcast/en.m4a +0 -0
- package/.output/public/media/podcast/fr.m4a +0 -0
- package/.output/public/og-image.svg +58 -0
- package/.output/public/robots.txt +5 -0
- package/.output/server/chunks/_/attachments.service.mjs +33 -0
- package/.output/server/chunks/_/attachments.service.mjs.map +1 -0
- package/.output/server/chunks/_/comments.service.mjs +26 -0
- package/.output/server/chunks/_/comments.service.mjs.map +1 -0
- package/.output/server/chunks/_/en.mjs +538 -0
- package/.output/server/chunks/_/en.mjs.map +1 -0
- package/.output/server/chunks/_/error-500.mjs +10 -0
- package/.output/server/chunks/_/error-500.mjs.map +1 -0
- package/.output/server/chunks/_/fr.mjs +538 -0
- package/.output/server/chunks/_/fr.mjs.map +1 -0
- package/.output/server/chunks/build/AppHeader-styles.D4cFmBur.mjs +8 -0
- package/.output/server/chunks/build/AppHeader-styles.D4cFmBur.mjs.map +1 -0
- package/.output/server/chunks/build/CatalogPanel-styles.BJ_ozkvH.mjs +8 -0
- package/.output/server/chunks/build/CatalogPanel-styles.BJ_ozkvH.mjs.map +1 -0
- package/.output/server/chunks/build/IssueHeader-BKlqeUoH.mjs +127 -0
- package/.output/server/chunks/build/IssueHeader-BKlqeUoH.mjs.map +1 -0
- package/.output/server/chunks/build/IssueHeader-styles.aWkocVax.mjs +8 -0
- package/.output/server/chunks/build/IssueHeader-styles.aWkocVax.mjs.map +1 -0
- package/.output/server/chunks/build/LandingArchitecture-styles.Don6ug3a.mjs +8 -0
- package/.output/server/chunks/build/LandingArchitecture-styles.Don6ug3a.mjs.map +1 -0
- package/.output/server/chunks/build/LandingAutonomy-styles.D9JJFMEO.mjs +8 -0
- package/.output/server/chunks/build/LandingAutonomy-styles.D9JJFMEO.mjs.map +1 -0
- package/.output/server/chunks/build/LandingCommands-styles.BoLpFQgT.mjs +8 -0
- package/.output/server/chunks/build/LandingCommands-styles.BoLpFQgT.mjs.map +1 -0
- package/.output/server/chunks/build/LandingDemo-styles.WY8VUN9P.mjs +8 -0
- package/.output/server/chunks/build/LandingDemo-styles.WY8VUN9P.mjs.map +1 -0
- package/.output/server/chunks/build/LandingFooter-styles.CEshuzKW.mjs +8 -0
- package/.output/server/chunks/build/LandingFooter-styles.CEshuzKW.mjs.map +1 -0
- package/.output/server/chunks/build/LandingMatrixBg-styles.DKJoYVuG.mjs +8 -0
- package/.output/server/chunks/build/LandingMatrixBg-styles.DKJoYVuG.mjs.map +1 -0
- package/.output/server/chunks/build/LandingPipeline-styles.CL96fyQR.mjs +8 -0
- package/.output/server/chunks/build/LandingPipeline-styles.CL96fyQR.mjs.map +1 -0
- package/.output/server/chunks/build/LandingPodcast-styles.BUxvpRMa.mjs +8 -0
- package/.output/server/chunks/build/LandingPodcast-styles.BUxvpRMa.mjs.map +1 -0
- package/.output/server/chunks/build/LandingRoadmap-styles.DX5EsTsx.mjs +8 -0
- package/.output/server/chunks/build/LandingRoadmap-styles.DX5EsTsx.mjs.map +1 -0
- package/.output/server/chunks/build/LangSwitcher-BcmlkZkS.mjs +32 -0
- package/.output/server/chunks/build/LangSwitcher-BcmlkZkS.mjs.map +1 -0
- package/.output/server/chunks/build/LangSwitcher-styles.DjejY3Ry.mjs +8 -0
- package/.output/server/chunks/build/LangSwitcher-styles.DjejY3Ry.mjs.map +1 -0
- package/.output/server/chunks/build/NotificationContainer-styles.CWuUTY5_.mjs +8 -0
- package/.output/server/chunks/build/NotificationContainer-styles.CWuUTY5_.mjs.map +1 -0
- package/.output/server/chunks/build/PipelineColumn-styles.DeCMKSUU.mjs +8 -0
- package/.output/server/chunks/build/PipelineColumn-styles.DeCMKSUU.mjs.map +1 -0
- package/.output/server/chunks/build/PipelineSegments-styles.Cx1F1okc.mjs +8 -0
- package/.output/server/chunks/build/PipelineSegments-styles.Cx1F1okc.mjs.map +1 -0
- package/.output/server/chunks/build/_id_-CE9OXhn_.mjs +78 -0
- package/.output/server/chunks/build/_id_-CE9OXhn_.mjs.map +1 -0
- package/.output/server/chunks/build/_id_-styles.DrupDd6T.mjs +8 -0
- package/.output/server/chunks/build/_id_-styles.DrupDd6T.mjs.map +1 -0
- package/.output/server/chunks/build/_name_-UJA12Rs2.mjs +810 -0
- package/.output/server/chunks/build/_name_-UJA12Rs2.mjs.map +1 -0
- package/.output/server/chunks/build/_name_-styles.megXcys0.mjs +8 -0
- package/.output/server/chunks/build/_name_-styles.megXcys0.mjs.map +1 -0
- package/.output/server/chunks/build/autocreate-DrAjWR5B.mjs +113 -0
- package/.output/server/chunks/build/autocreate-DrAjWR5B.mjs.map +1 -0
- package/.output/server/chunks/build/autocreate-styles.BkUFXyS7.mjs +8 -0
- package/.output/server/chunks/build/autocreate-styles.BkUFXyS7.mjs.map +1 -0
- package/.output/server/chunks/build/changelog-CVp1u2jo.mjs +159 -0
- package/.output/server/chunks/build/changelog-CVp1u2jo.mjs.map +1 -0
- package/.output/server/chunks/build/changelog-styles.Ct3EgGku.mjs +8 -0
- package/.output/server/chunks/build/changelog-styles.Ct3EgGku.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +4 -0
- package/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
- package/.output/server/chunks/build/comments-CZn-fPmX.mjs +119 -0
- package/.output/server/chunks/build/comments-CZn-fPmX.mjs.map +1 -0
- package/.output/server/chunks/build/comments-styles.CMP7TEvm.mjs +8 -0
- package/.output/server/chunks/build/comments-styles.CMP7TEvm.mjs.map +1 -0
- package/.output/server/chunks/build/default-BovpaVrS.mjs +180 -0
- package/.output/server/chunks/build/default-BovpaVrS.mjs.map +1 -0
- package/.output/server/chunks/build/default-styles.DCCKRaIF.mjs +8 -0
- package/.output/server/chunks/build/default-styles.DCCKRaIF.mjs.map +1 -0
- package/.output/server/chunks/build/en-1t1dLE2e.mjs +516 -0
- package/.output/server/chunks/build/en-1t1dLE2e.mjs.map +1 -0
- package/.output/server/chunks/build/error-styles.DYHGS7iv.mjs +8 -0
- package/.output/server/chunks/build/error-styles.DYHGS7iv.mjs.map +1 -0
- package/.output/server/chunks/build/fetch-B5NxMLIO.mjs +468 -0
- package/.output/server/chunks/build/fetch-B5NxMLIO.mjs.map +1 -0
- package/.output/server/chunks/build/fr-DHi8X16R.mjs +516 -0
- package/.output/server/chunks/build/fr-DHi8X16R.mjs.map +1 -0
- package/.output/server/chunks/build/graph-C-r91hz6.mjs +153 -0
- package/.output/server/chunks/build/graph-C-r91hz6.mjs.map +1 -0
- package/.output/server/chunks/build/graph-styles.BX4kyxPV.mjs +8 -0
- package/.output/server/chunks/build/graph-styles.BX4kyxPV.mjs.map +1 -0
- package/.output/server/chunks/build/index-Bm8ROtfk.mjs +239 -0
- package/.output/server/chunks/build/index-Bm8ROtfk.mjs.map +1 -0
- package/.output/server/chunks/build/index-C0DupdV0.mjs +89 -0
- package/.output/server/chunks/build/index-C0DupdV0.mjs.map +1 -0
- package/.output/server/chunks/build/index-CqyAV1ko.mjs +741 -0
- package/.output/server/chunks/build/index-CqyAV1ko.mjs.map +1 -0
- package/.output/server/chunks/build/index-D2tcUNO-.mjs +193 -0
- package/.output/server/chunks/build/index-D2tcUNO-.mjs.map +1 -0
- package/.output/server/chunks/build/index-styles.BJ7kZO7q.mjs +8 -0
- package/.output/server/chunks/build/index-styles.BJ7kZO7q.mjs.map +1 -0
- package/.output/server/chunks/build/index-styles.BaICoyCD.mjs +8 -0
- package/.output/server/chunks/build/index-styles.BaICoyCD.mjs.map +1 -0
- package/.output/server/chunks/build/index-styles.Cy221X-R.mjs +8 -0
- package/.output/server/chunks/build/index-styles.Cy221X-R.mjs.map +1 -0
- package/.output/server/chunks/build/kanban-CMVmXpCA.mjs +304 -0
- package/.output/server/chunks/build/kanban-CMVmXpCA.mjs.map +1 -0
- package/.output/server/chunks/build/kanban-styles.CWalvI0C.mjs +8 -0
- package/.output/server/chunks/build/kanban-styles.CWalvI0C.mjs.map +1 -0
- package/.output/server/chunks/build/landing-DK6wjn6b.mjs +52 -0
- package/.output/server/chunks/build/landing-DK6wjn6b.mjs.map +1 -0
- package/.output/server/chunks/build/landing-styles.Bx73xEdX.mjs +8 -0
- package/.output/server/chunks/build/landing-styles.Bx73xEdX.mjs.map +1 -0
- package/.output/server/chunks/build/new-BUvtXOoH.mjs +107 -0
- package/.output/server/chunks/build/new-BUvtXOoH.mjs.map +1 -0
- package/.output/server/chunks/build/new-DMctSKBX.mjs +171 -0
- package/.output/server/chunks/build/new-DMctSKBX.mjs.map +1 -0
- package/.output/server/chunks/build/new-styles.Chk5u_6M.mjs +8 -0
- package/.output/server/chunks/build/new-styles.Chk5u_6M.mjs.map +1 -0
- package/.output/server/chunks/build/new-styles.KSbzjZvD.mjs +8 -0
- package/.output/server/chunks/build/new-styles.KSbzjZvD.mjs.map +1 -0
- package/.output/server/chunks/build/nuxt-link-Cq8xZgFP.mjs +286 -0
- package/.output/server/chunks/build/nuxt-link-Cq8xZgFP.mjs.map +1 -0
- package/.output/server/chunks/build/prompt-BD-UncOd.mjs +167 -0
- package/.output/server/chunks/build/prompt-BD-UncOd.mjs.map +1 -0
- package/.output/server/chunks/build/prompt-BzvhmzrW.mjs +121 -0
- package/.output/server/chunks/build/prompt-BzvhmzrW.mjs.map +1 -0
- package/.output/server/chunks/build/prompt-evT7Aaj_.mjs +118 -0
- package/.output/server/chunks/build/prompt-evT7Aaj_.mjs.map +1 -0
- package/.output/server/chunks/build/prompt-styles.ByKVLx31.mjs +8 -0
- package/.output/server/chunks/build/prompt-styles.ByKVLx31.mjs.map +1 -0
- package/.output/server/chunks/build/prompt-styles.DWfublIG.mjs +8 -0
- package/.output/server/chunks/build/prompt-styles.DWfublIG.mjs.map +1 -0
- package/.output/server/chunks/build/prompt-styles.i7UlDRDv.mjs +8 -0
- package/.output/server/chunks/build/prompt-styles.i7UlDRDv.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +6262 -0
- package/.output/server/chunks/build/server.mjs.map +1 -0
- package/.output/server/chunks/build/stats-Cxo5MAfa.mjs +184 -0
- package/.output/server/chunks/build/stats-Cxo5MAfa.mjs.map +1 -0
- package/.output/server/chunks/build/stats-styles.B6f61PbZ.mjs +8 -0
- package/.output/server/chunks/build/stats-styles.B6f61PbZ.mjs.map +1 -0
- package/.output/server/chunks/build/styles.mjs +82 -0
- package/.output/server/chunks/build/styles.mjs.map +1 -0
- package/.output/server/chunks/build/terminal-B0__67-c.mjs +134 -0
- package/.output/server/chunks/build/terminal-B0__67-c.mjs.map +1 -0
- package/.output/server/chunks/build/terminal-BtTmOD6s.mjs +128 -0
- package/.output/server/chunks/build/terminal-BtTmOD6s.mjs.map +1 -0
- package/.output/server/chunks/build/terminal-D_WbT8Ri.mjs +134 -0
- package/.output/server/chunks/build/terminal-D_WbT8Ri.mjs.map +1 -0
- package/.output/server/chunks/build/terminal-styles.C3XDlIUb.mjs +8 -0
- package/.output/server/chunks/build/terminal-styles.C3XDlIUb.mjs.map +1 -0
- package/.output/server/chunks/build/terminal-styles.CPOm0b7Y.mjs +8 -0
- package/.output/server/chunks/build/terminal-styles.CPOm0b7Y.mjs.map +1 -0
- package/.output/server/chunks/build/terminal-styles.TrVlIkii.mjs +8 -0
- package/.output/server/chunks/build/terminal-styles.TrVlIkii.mjs.map +1 -0
- package/.output/server/chunks/build/useApiError-BSStUojq.mjs +54 -0
- package/.output/server/chunks/build/useApiError-BSStUojq.mjs.map +1 -0
- package/.output/server/chunks/build/useNotification-BqDqaGnC.mjs +49 -0
- package/.output/server/chunks/build/useNotification-BqDqaGnC.mjs.map +1 -0
- package/.output/server/chunks/build/usePipeline-ZPHbtOs6.mjs +158 -0
- package/.output/server/chunks/build/usePipeline-ZPHbtOs6.mjs.map +1 -0
- package/.output/server/chunks/build/useWebSocket-UbMCn0vY.mjs +47 -0
- package/.output/server/chunks/build/useWebSocket-UbMCn0vY.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +14666 -0
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
- package/.output/server/chunks/routes/_ws.mjs +50 -0
- package/.output/server/chunks/routes/_ws.mjs.map +1 -0
- package/.output/server/chunks/routes/api/catalog/autocreate/apply.post.mjs +67 -0
- package/.output/server/chunks/routes/api/catalog/autocreate/apply.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/catalog/autocreate.post.mjs +158 -0
- package/.output/server/chunks/routes/api/catalog/autocreate.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/changelog/summary.post.mjs +140 -0
- package/.output/server/chunks/routes/api/changelog/summary.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/changelog.get.mjs +83 -0
- package/.output/server/chunks/routes/api/changelog.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/columns/_slug/actions.get.mjs +43 -0
- package/.output/server/chunks/routes/api/columns/_slug/actions.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/columns/_slug/prompt.get.mjs +44 -0
- package/.output/server/chunks/routes/api/columns/_slug/prompt.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/health.get.mjs +61 -0
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.get.mjs +80 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.get2.mjs +39 -0
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.get3.mjs +55 -0
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.get4.mjs +46 -0
- package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs +104 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.post2.mjs +73 -0
- package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.post3.mjs +64 -0
- package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/_column/log.get.mjs +90 -0
- package/.output/server/chunks/routes/api/issues/_id/_column/log.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/ancestors.get.mjs +57 -0
- package/.output/server/chunks/routes/api/issues/_id/ancestors.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/archive.delete.mjs +67 -0
- package/.output/server/chunks/routes/api/issues/_id/archive.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/attachments/_attachmentId_.delete.mjs +75 -0
- package/.output/server/chunks/routes/api/issues/_id/attachments/_attachmentId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/attachments/_attachmentId_.get.mjs +73 -0
- package/.output/server/chunks/routes/api/issues/_id/attachments/_attachmentId_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/attachments.get.mjs +51 -0
- package/.output/server/chunks/routes/api/issues/_id/attachments.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/attachments.post.mjs +103 -0
- package/.output/server/chunks/routes/api/issues/_id/attachments.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/children.get.mjs +57 -0
- package/.output/server/chunks/routes/api/issues/_id/children.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/comments.get.mjs +50 -0
- package/.output/server/chunks/routes/api/issues/_id/comments.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/comments.post.mjs +66 -0
- package/.output/server/chunks/routes/api/issues/_id/comments.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/full-history.get.mjs +79 -0
- package/.output/server/chunks/routes/api/issues/_id/full-history.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/full-terminal.get.mjs +88 -0
- package/.output/server/chunks/routes/api/issues/_id/full-terminal.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/log.get.mjs +84 -0
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/log.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/prompt.get.mjs +57 -0
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/prompt.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/history.get.mjs +68 -0
- package/.output/server/chunks/routes/api/issues/_id/history.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/log.get.mjs +75 -0
- package/.output/server/chunks/routes/api/issues/_id/log.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/move.post.mjs +87 -0
- package/.output/server/chunks/routes/api/issues/_id/move.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id/next.post.mjs +78 -0
- package/.output/server/chunks/routes/api/issues/_id/next.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id_.get.mjs +63 -0
- package/.output/server/chunks/routes/api/issues/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/_id_.patch.mjs +70 -0
- package/.output/server/chunks/routes/api/issues/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/actionable.get.mjs +60 -0
- package/.output/server/chunks/routes/api/issues/actionable.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/autocomplete.post.mjs +110 -0
- package/.output/server/chunks/routes/api/issues/autocomplete.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/issues/graph.get.mjs +69 -0
- package/.output/server/chunks/routes/api/issues/graph.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name/activate.put.mjs +59 -0
- package/.output/server/chunks/routes/api/pipelines/_name/activate.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version/activate.put.mjs +58 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version/activate.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version/finalize.post.mjs +69 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version/finalize.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.delete.mjs +58 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.get.mjs +68 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.put.mjs +70 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions.get.mjs +49 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions.post.mjs +61 -0
- package/.output/server/chunks/routes/api/pipelines/_name/versions.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name_.delete.mjs +54 -0
- package/.output/server/chunks/routes/api/pipelines/_name_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name_.get.mjs +63 -0
- package/.output/server/chunks/routes/api/pipelines/_name_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/pipelines/_name_.put.mjs +78 -0
- package/.output/server/chunks/routes/api/pipelines/_name_.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/stats.get.mjs +39 -0
- package/.output/server/chunks/routes/api/stats.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/status.get.mjs +38 -0
- package/.output/server/chunks/routes/api/status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workflow/health.get.mjs +40 -0
- package/.output/server/chunks/routes/api/workflow/health.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/ws/status.get.mjs +38 -0
- package/.output/server/chunks/routes/api/ws/status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/renderer.mjs +399 -0
- package/.output/server/chunks/routes/renderer.mjs.map +1 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
- package/.output/server/index.mjs +28 -0
- package/.output/server/index.mjs.map +1 -0
- package/.output/server/node_modules/.prisma/client/default.js +5 -0
- package/.output/server/node_modules/.prisma/client/index.js +224 -0
- package/.output/server/node_modules/.prisma/client/package.json +144 -0
- package/.output/server/node_modules/.prisma/client/query_compiler_bg.js +2 -0
- package/.output/server/node_modules/.prisma/client/query_compiler_bg.wasm-base64.js +2 -0
- package/.output/server/node_modules/.prisma/package.json +4 -0
- package/.output/server/node_modules/@babel/parser/lib/index.js +14662 -0
- package/.output/server/node_modules/@babel/parser/package.json +50 -0
- package/.output/server/node_modules/@intlify/core/dist/core.mjs +31 -0
- package/.output/server/node_modules/@intlify/core/package.json +82 -0
- package/.output/server/node_modules/@intlify/core-base/dist/core-base.mjs +1886 -0
- package/.output/server/node_modules/@intlify/core-base/package.json +80 -0
- package/.output/server/node_modules/@intlify/h3/dist/index.mjs +65 -0
- package/.output/server/node_modules/@intlify/h3/package.json +122 -0
- package/.output/server/node_modules/@intlify/message-compiler/dist/message-compiler.mjs +1530 -0
- package/.output/server/node_modules/@intlify/message-compiler/package.json +79 -0
- package/.output/server/node_modules/@intlify/shared/dist/shared.mjs +281 -0
- package/.output/server/node_modules/@intlify/shared/package.json +69 -0
- package/.output/server/node_modules/@intlify/utils/dist/h3.mjs +89 -0
- package/.output/server/node_modules/@intlify/utils/dist/shared/utils.9f8159f5.mjs +108 -0
- package/.output/server/node_modules/@intlify/utils/package.json +129 -0
- package/.output/server/node_modules/@prisma/adapter-better-sqlite3/dist/index.mjs +619 -0
- package/.output/server/node_modules/@prisma/adapter-better-sqlite3/package.json +45 -0
- package/.output/server/node_modules/@prisma/client/default.js +3 -0
- package/.output/server/node_modules/@prisma/client/package.json +281 -0
- package/.output/server/node_modules/@prisma/client/runtime/client.js +82 -0
- package/.output/server/node_modules/@prisma/client-runtime-utils/dist/index.js +2552 -0
- package/.output/server/node_modules/@prisma/client-runtime-utils/package.json +39 -0
- package/.output/server/node_modules/@prisma/debug/dist/index.mjs +213 -0
- package/.output/server/node_modules/@prisma/debug/package.json +47 -0
- package/.output/server/node_modules/@prisma/driver-adapter-utils/dist/index.mjs +245 -0
- package/.output/server/node_modules/@prisma/driver-adapter-utils/package.json +40 -0
- package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6763 -0
- package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
- package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
- package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
- package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
- package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/api.js +2 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/app.js +2 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/component.js +2 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/context.js +2 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js +2 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/index.js +22 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/util.js +2 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/const.js +5 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/env.js +17 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/index.js +45 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/plugin.js +2 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/proxy.js +111 -0
- package/.output/server/node_modules/@vue/devtools-api/lib/cjs/time.js +28 -0
- package/.output/server/node_modules/@vue/devtools-api/package.json +37 -0
- package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1853 -0
- package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
- package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6770 -0
- package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
- package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1732 -0
- package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
- package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +879 -0
- package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
- package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
- package/.output/server/node_modules/@vue/shared/package.json +47 -0
- package/.output/server/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/.output/server/node_modules/better-sqlite3/lib/database.js +90 -0
- package/.output/server/node_modules/better-sqlite3/lib/index.js +3 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/function.js +31 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/table.js +189 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
- package/.output/server/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
- package/.output/server/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
- package/.output/server/node_modules/better-sqlite3/lib/util.js +12 -0
- package/.output/server/node_modules/better-sqlite3/package.json +59 -0
- package/.output/server/node_modules/bindings/bindings.js +221 -0
- package/.output/server/node_modules/bindings/package.json +28 -0
- package/.output/server/node_modules/cookie-es/dist/index.mjs +262 -0
- package/.output/server/node_modules/cookie-es/package.json +46 -0
- package/.output/server/node_modules/d3/package.json +92 -0
- package/.output/server/node_modules/d3/src/index.js +30 -0
- package/.output/server/node_modules/d3-array/package.json +61 -0
- package/.output/server/node_modules/d3-array/src/array.js +4 -0
- package/.output/server/node_modules/d3-array/src/ascending.js +3 -0
- package/.output/server/node_modules/d3-array/src/bin.js +125 -0
- package/.output/server/node_modules/d3-array/src/bisect.js +9 -0
- package/.output/server/node_modules/d3-array/src/bisector.js +56 -0
- package/.output/server/node_modules/d3-array/src/blur.js +115 -0
- package/.output/server/node_modules/d3-array/src/constant.js +3 -0
- package/.output/server/node_modules/d3-array/src/count.js +18 -0
- package/.output/server/node_modules/d3-array/src/cross.js +33 -0
- package/.output/server/node_modules/d3-array/src/cumsum.js +6 -0
- package/.output/server/node_modules/d3-array/src/descending.js +7 -0
- package/.output/server/node_modules/d3-array/src/deviation.js +6 -0
- package/.output/server/node_modules/d3-array/src/difference.js +11 -0
- package/.output/server/node_modules/d3-array/src/disjoint.js +15 -0
- package/.output/server/node_modules/d3-array/src/every.js +10 -0
- package/.output/server/node_modules/d3-array/src/extent.js +29 -0
- package/.output/server/node_modules/d3-array/src/filter.js +11 -0
- package/.output/server/node_modules/d3-array/src/fsum.js +69 -0
- package/.output/server/node_modules/d3-array/src/greatest.js +29 -0
- package/.output/server/node_modules/d3-array/src/greatestIndex.js +19 -0
- package/.output/server/node_modules/d3-array/src/group.js +65 -0
- package/.output/server/node_modules/d3-array/src/groupSort.js +10 -0
- package/.output/server/node_modules/d3-array/src/identity.js +3 -0
- package/.output/server/node_modules/d3-array/src/index.js +57 -0
- package/.output/server/node_modules/d3-array/src/intersection.js +19 -0
- package/.output/server/node_modules/d3-array/src/least.js +29 -0
- package/.output/server/node_modules/d3-array/src/leastIndex.js +19 -0
- package/.output/server/node_modules/d3-array/src/map.js +5 -0
- package/.output/server/node_modules/d3-array/src/max.js +20 -0
- package/.output/server/node_modules/d3-array/src/maxIndex.js +22 -0
- package/.output/server/node_modules/d3-array/src/mean.js +19 -0
- package/.output/server/node_modules/d3-array/src/median.js +9 -0
- package/.output/server/node_modules/d3-array/src/merge.js +9 -0
- package/.output/server/node_modules/d3-array/src/min.js +20 -0
- package/.output/server/node_modules/d3-array/src/minIndex.js +22 -0
- package/.output/server/node_modules/d3-array/src/mode.js +28 -0
- package/.output/server/node_modules/d3-array/src/nice.js +18 -0
- package/.output/server/node_modules/d3-array/src/number.js +20 -0
- package/.output/server/node_modules/d3-array/src/pairs.js +15 -0
- package/.output/server/node_modules/d3-array/src/permute.js +3 -0
- package/.output/server/node_modules/d3-array/src/quantile.js +47 -0
- package/.output/server/node_modules/d3-array/src/quickselect.js +53 -0
- package/.output/server/node_modules/d3-array/src/range.js +13 -0
- package/.output/server/node_modules/d3-array/src/rank.js +24 -0
- package/.output/server/node_modules/d3-array/src/reduce.js +14 -0
- package/.output/server/node_modules/d3-array/src/reverse.js +4 -0
- package/.output/server/node_modules/d3-array/src/scan.js +6 -0
- package/.output/server/node_modules/d3-array/src/shuffle.js +13 -0
- package/.output/server/node_modules/d3-array/src/some.js +10 -0
- package/.output/server/node_modules/d3-array/src/sort.js +39 -0
- package/.output/server/node_modules/d3-array/src/subset.js +5 -0
- package/.output/server/node_modules/d3-array/src/sum.js +18 -0
- package/.output/server/node_modules/d3-array/src/superset.js +19 -0
- package/.output/server/node_modules/d3-array/src/threshold/freedmanDiaconis.js +7 -0
- package/.output/server/node_modules/d3-array/src/threshold/scott.js +7 -0
- package/.output/server/node_modules/d3-array/src/threshold/sturges.js +5 -0
- package/.output/server/node_modules/d3-array/src/ticks.js +55 -0
- package/.output/server/node_modules/d3-array/src/transpose.js +15 -0
- package/.output/server/node_modules/d3-array/src/union.js +11 -0
- package/.output/server/node_modules/d3-array/src/variance.js +25 -0
- package/.output/server/node_modules/d3-array/src/zip.js +5 -0
- package/.output/server/node_modules/d3-axis/package.json +54 -0
- package/.output/server/node_modules/d3-axis/src/axis.js +174 -0
- package/.output/server/node_modules/d3-axis/src/identity.js +3 -0
- package/.output/server/node_modules/d3-axis/src/index.js +6 -0
- package/.output/server/node_modules/d3-brush/package.json +55 -0
- package/.output/server/node_modules/d3-brush/src/brush.js +621 -0
- package/.output/server/node_modules/d3-brush/src/constant.js +1 -0
- package/.output/server/node_modules/d3-brush/src/event.js +16 -0
- package/.output/server/node_modules/d3-brush/src/index.js +6 -0
- package/.output/server/node_modules/d3-brush/src/noevent.js +8 -0
- package/.output/server/node_modules/d3-chord/package.json +54 -0
- package/.output/server/node_modules/d3-chord/src/array.js +1 -0
- package/.output/server/node_modules/d3-chord/src/chord.js +122 -0
- package/.output/server/node_modules/d3-chord/src/constant.js +5 -0
- package/.output/server/node_modules/d3-chord/src/index.js +2 -0
- package/.output/server/node_modules/d3-chord/src/math.js +8 -0
- package/.output/server/node_modules/d3-chord/src/ribbon.js +134 -0
- package/.output/server/node_modules/d3-color/package.json +54 -0
- package/.output/server/node_modules/d3-color/src/color.js +396 -0
- package/.output/server/node_modules/d3-color/src/cubehelix.js +61 -0
- package/.output/server/node_modules/d3-color/src/define.js +10 -0
- package/.output/server/node_modules/d3-color/src/index.js +3 -0
- package/.output/server/node_modules/d3-color/src/lab.js +123 -0
- package/.output/server/node_modules/d3-color/src/math.js +2 -0
- package/.output/server/node_modules/d3-contour/package.json +66 -0
- package/.output/server/node_modules/d3-contour/src/area.js +5 -0
- package/.output/server/node_modules/d3-contour/src/array.js +3 -0
- package/.output/server/node_modules/d3-contour/src/ascending.js +3 -0
- package/.output/server/node_modules/d3-contour/src/constant.js +1 -0
- package/.output/server/node_modules/d3-contour/src/contains.js +27 -0
- package/.output/server/node_modules/d3-contour/src/contours.js +225 -0
- package/.output/server/node_modules/d3-contour/src/density.js +149 -0
- package/.output/server/node_modules/d3-contour/src/index.js +2 -0
- package/.output/server/node_modules/d3-contour/src/noop.js +1 -0
- package/.output/server/node_modules/d3-delaunay/package.json +62 -0
- package/.output/server/node_modules/d3-delaunay/src/delaunay.js +248 -0
- package/.output/server/node_modules/d3-delaunay/src/index.js +2 -0
- package/.output/server/node_modules/d3-delaunay/src/path.js +37 -0
- package/.output/server/node_modules/d3-delaunay/src/polygon.js +17 -0
- package/.output/server/node_modules/d3-delaunay/src/voronoi.js +332 -0
- package/.output/server/node_modules/d3-dispatch/package.json +50 -0
- package/.output/server/node_modules/d3-dispatch/src/dispatch.js +84 -0
- package/.output/server/node_modules/d3-dispatch/src/index.js +1 -0
- package/.output/server/node_modules/d3-drag/package.json +54 -0
- package/.output/server/node_modules/d3-drag/src/constant.js +1 -0
- package/.output/server/node_modules/d3-drag/src/drag.js +194 -0
- package/.output/server/node_modules/d3-drag/src/event.js +28 -0
- package/.output/server/node_modules/d3-drag/src/index.js +2 -0
- package/.output/server/node_modules/d3-drag/src/nodrag.js +28 -0
- package/.output/server/node_modules/d3-drag/src/noevent.js +13 -0
- package/.output/server/node_modules/d3-dsv/package.json +68 -0
- package/.output/server/node_modules/d3-dsv/src/autoType.js +20 -0
- package/.output/server/node_modules/d3-dsv/src/csv.js +11 -0
- package/.output/server/node_modules/d3-dsv/src/dsv.js +164 -0
- package/.output/server/node_modules/d3-dsv/src/index.js +4 -0
- package/.output/server/node_modules/d3-dsv/src/tsv.js +11 -0
- package/.output/server/node_modules/d3-ease/package.json +51 -0
- package/.output/server/node_modules/d3-ease/src/back.js +37 -0
- package/.output/server/node_modules/d3-ease/src/bounce.js +22 -0
- package/.output/server/node_modules/d3-ease/src/circle.js +11 -0
- package/.output/server/node_modules/d3-ease/src/cubic.js +11 -0
- package/.output/server/node_modules/d3-ease/src/elastic.js +46 -0
- package/.output/server/node_modules/d3-ease/src/exp.js +13 -0
- package/.output/server/node_modules/d3-ease/src/index.js +66 -0
- package/.output/server/node_modules/d3-ease/src/linear.js +1 -0
- package/.output/server/node_modules/d3-ease/src/math.js +4 -0
- package/.output/server/node_modules/d3-ease/src/poly.js +37 -0
- package/.output/server/node_modules/d3-ease/src/quad.js +11 -0
- package/.output/server/node_modules/d3-ease/src/sin.js +14 -0
- package/.output/server/node_modules/d3-fetch/package.json +53 -0
- package/.output/server/node_modules/d3-fetch/src/blob.js +8 -0
- package/.output/server/node_modules/d3-fetch/src/buffer.js +8 -0
- package/.output/server/node_modules/d3-fetch/src/dsv.js +22 -0
- package/.output/server/node_modules/d3-fetch/src/image.js +9 -0
- package/.output/server/node_modules/d3-fetch/src/index.js +7 -0
- package/.output/server/node_modules/d3-fetch/src/json.js +9 -0
- package/.output/server/node_modules/d3-fetch/src/text.js +8 -0
- package/.output/server/node_modules/d3-fetch/src/xml.js +12 -0
- package/.output/server/node_modules/d3-force/package.json +58 -0
- package/.output/server/node_modules/d3-force/src/center.js +40 -0
- package/.output/server/node_modules/d3-force/src/collide.js +100 -0
- package/.output/server/node_modules/d3-force/src/constant.js +5 -0
- package/.output/server/node_modules/d3-force/src/index.js +8 -0
- package/.output/server/node_modules/d3-force/src/jiggle.js +3 -0
- package/.output/server/node_modules/d3-force/src/lcg.js +9 -0
- package/.output/server/node_modules/d3-force/src/link.js +117 -0
- package/.output/server/node_modules/d3-force/src/manyBody.js +116 -0
- package/.output/server/node_modules/d3-force/src/radial.js +57 -0
- package/.output/server/node_modules/d3-force/src/simulation.js +156 -0
- package/.output/server/node_modules/d3-force/src/x.js +41 -0
- package/.output/server/node_modules/d3-force/src/y.js +41 -0
- package/.output/server/node_modules/d3-format/package.json +55 -0
- package/.output/server/node_modules/d3-format/src/defaultLocale.js +18 -0
- package/.output/server/node_modules/d3-format/src/exponent.js +5 -0
- package/.output/server/node_modules/d3-format/src/formatDecimal.js +20 -0
- package/.output/server/node_modules/d3-format/src/formatGroup.js +18 -0
- package/.output/server/node_modules/d3-format/src/formatNumerals.js +7 -0
- package/.output/server/node_modules/d3-format/src/formatPrefixAuto.js +16 -0
- package/.output/server/node_modules/d3-format/src/formatRounded.js +11 -0
- package/.output/server/node_modules/d3-format/src/formatSpecifier.js +47 -0
- package/.output/server/node_modules/d3-format/src/formatTrim.js +11 -0
- package/.output/server/node_modules/d3-format/src/formatTypes.js +19 -0
- package/.output/server/node_modules/d3-format/src/identity.js +3 -0
- package/.output/server/node_modules/d3-format/src/index.js +6 -0
- package/.output/server/node_modules/d3-format/src/locale.js +148 -0
- package/.output/server/node_modules/d3-format/src/precisionFixed.js +5 -0
- package/.output/server/node_modules/d3-format/src/precisionPrefix.js +5 -0
- package/.output/server/node_modules/d3-format/src/precisionRound.js +6 -0
- package/.output/server/node_modules/d3-geo/package.json +59 -0
- package/.output/server/node_modules/d3-geo/src/area.js +76 -0
- package/.output/server/node_modules/d3-geo/src/bounds.js +179 -0
- package/.output/server/node_modules/d3-geo/src/cartesian.js +33 -0
- package/.output/server/node_modules/d3-geo/src/centroid.js +143 -0
- package/.output/server/node_modules/d3-geo/src/circle.js +72 -0
- package/.output/server/node_modules/d3-geo/src/clip/antimeridian.js +92 -0
- package/.output/server/node_modules/d3-geo/src/clip/buffer.js +24 -0
- package/.output/server/node_modules/d3-geo/src/clip/circle.js +177 -0
- package/.output/server/node_modules/d3-geo/src/clip/extent.js +20 -0
- package/.output/server/node_modules/d3-geo/src/clip/index.js +131 -0
- package/.output/server/node_modules/d3-geo/src/clip/line.js +59 -0
- package/.output/server/node_modules/d3-geo/src/clip/rectangle.js +168 -0
- package/.output/server/node_modules/d3-geo/src/clip/rejoin.js +103 -0
- package/.output/server/node_modules/d3-geo/src/compose.js +12 -0
- package/.output/server/node_modules/d3-geo/src/constant.js +5 -0
- package/.output/server/node_modules/d3-geo/src/contains.js +97 -0
- package/.output/server/node_modules/d3-geo/src/distance.js +10 -0
- package/.output/server/node_modules/d3-geo/src/graticule.js +105 -0
- package/.output/server/node_modules/d3-geo/src/identity.js +1 -0
- package/.output/server/node_modules/d3-geo/src/index.js +34 -0
- package/.output/server/node_modules/d3-geo/src/interpolate.js +36 -0
- package/.output/server/node_modules/d3-geo/src/length.js +53 -0
- package/.output/server/node_modules/d3-geo/src/math.js +36 -0
- package/.output/server/node_modules/d3-geo/src/noop.js +1 -0
- package/.output/server/node_modules/d3-geo/src/path/area.js +50 -0
- package/.output/server/node_modules/d3-geo/src/path/bounds.js +28 -0
- package/.output/server/node_modules/d3-geo/src/path/centroid.js +100 -0
- package/.output/server/node_modules/d3-geo/src/path/context.js +45 -0
- package/.output/server/node_modules/d3-geo/src/path/index.js +76 -0
- package/.output/server/node_modules/d3-geo/src/path/measure.js +45 -0
- package/.output/server/node_modules/d3-geo/src/path/string.js +86 -0
- package/.output/server/node_modules/d3-geo/src/pointEqual.js +5 -0
- package/.output/server/node_modules/d3-geo/src/polygonContains.js +74 -0
- package/.output/server/node_modules/d3-geo/src/projection/albers.js +10 -0
- package/.output/server/node_modules/d3-geo/src/projection/albersUsa.js +111 -0
- package/.output/server/node_modules/d3-geo/src/projection/azimuthal.js +27 -0
- package/.output/server/node_modules/d3-geo/src/projection/azimuthalEqualArea.js +17 -0
- package/.output/server/node_modules/d3-geo/src/projection/azimuthalEquidistant.js +17 -0
- package/.output/server/node_modules/d3-geo/src/projection/conic.js +15 -0
- package/.output/server/node_modules/d3-geo/src/projection/conicConformal.js +38 -0
- package/.output/server/node_modules/d3-geo/src/projection/conicEqualArea.js +33 -0
- package/.output/server/node_modules/d3-geo/src/projection/conicEquidistant.js +32 -0
- package/.output/server/node_modules/d3-geo/src/projection/cylindricalEqualArea.js +15 -0
- package/.output/server/node_modules/d3-geo/src/projection/equalEarth.js +36 -0
- package/.output/server/node_modules/d3-geo/src/projection/equirectangular.js +12 -0
- package/.output/server/node_modules/d3-geo/src/projection/fit.js +47 -0
- package/.output/server/node_modules/d3-geo/src/projection/gnomonic.js +16 -0
- package/.output/server/node_modules/d3-geo/src/projection/identity.js +85 -0
- package/.output/server/node_modules/d3-geo/src/projection/index.js +177 -0
- package/.output/server/node_modules/d3-geo/src/projection/mercator.js +52 -0
- package/.output/server/node_modules/d3-geo/src/projection/naturalEarth1.js +28 -0
- package/.output/server/node_modules/d3-geo/src/projection/orthographic.js +15 -0
- package/.output/server/node_modules/d3-geo/src/projection/resample.js +102 -0
- package/.output/server/node_modules/d3-geo/src/projection/stereographic.js +18 -0
- package/.output/server/node_modules/d3-geo/src/projection/transverseMercator.js +27 -0
- package/.output/server/node_modules/d3-geo/src/rotation.js +79 -0
- package/.output/server/node_modules/d3-geo/src/stream.js +69 -0
- package/.output/server/node_modules/d3-geo/src/transform.js +26 -0
- package/.output/server/node_modules/d3-hierarchy/package.json +56 -0
- package/.output/server/node_modules/d3-hierarchy/src/accessors.js +8 -0
- package/.output/server/node_modules/d3-hierarchy/src/array.js +20 -0
- package/.output/server/node_modules/d3-hierarchy/src/cluster.js +84 -0
- package/.output/server/node_modules/d3-hierarchy/src/constant.js +9 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/ancestors.js +7 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/count.js +12 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/descendants.js +3 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/each.js +7 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js +15 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js +12 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/find.js +8 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/index.js +91 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/iterator.js +14 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/leaves.js +9 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/links.js +9 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/path.js +30 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/sort.js +7 -0
- package/.output/server/node_modules/d3-hierarchy/src/hierarchy/sum.js +9 -0
- package/.output/server/node_modules/d3-hierarchy/src/index.js +15 -0
- package/.output/server/node_modules/d3-hierarchy/src/lcg.js +9 -0
- package/.output/server/node_modules/d3-hierarchy/src/pack/enclose.js +123 -0
- package/.output/server/node_modules/d3-hierarchy/src/pack/index.js +81 -0
- package/.output/server/node_modules/d3-hierarchy/src/pack/siblings.js +120 -0
- package/.output/server/node_modules/d3-hierarchy/src/partition.js +52 -0
- package/.output/server/node_modules/d3-hierarchy/src/stratify.js +145 -0
- package/.output/server/node_modules/d3-hierarchy/src/tree.js +237 -0
- package/.output/server/node_modules/d3-hierarchy/src/treemap/binary.js +46 -0
- package/.output/server/node_modules/d3-hierarchy/src/treemap/dice.js +12 -0
- package/.output/server/node_modules/d3-hierarchy/src/treemap/index.js +94 -0
- package/.output/server/node_modules/d3-hierarchy/src/treemap/resquarify.js +36 -0
- package/.output/server/node_modules/d3-hierarchy/src/treemap/round.js +6 -0
- package/.output/server/node_modules/d3-hierarchy/src/treemap/slice.js +12 -0
- package/.output/server/node_modules/d3-hierarchy/src/treemap/sliceDice.js +6 -0
- package/.output/server/node_modules/d3-hierarchy/src/treemap/squarify.js +66 -0
- package/.output/server/node_modules/d3-interpolate/package.json +53 -0
- package/.output/server/node_modules/d3-interpolate/src/array.js +22 -0
- package/.output/server/node_modules/d3-interpolate/src/basis.js +19 -0
- package/.output/server/node_modules/d3-interpolate/src/basisClosed.js +13 -0
- package/.output/server/node_modules/d3-interpolate/src/color.js +29 -0
- package/.output/server/node_modules/d3-interpolate/src/constant.js +1 -0
- package/.output/server/node_modules/d3-interpolate/src/cubehelix.js +29 -0
- package/.output/server/node_modules/d3-interpolate/src/date.js +6 -0
- package/.output/server/node_modules/d3-interpolate/src/discrete.js +6 -0
- package/.output/server/node_modules/d3-interpolate/src/hcl.js +21 -0
- package/.output/server/node_modules/d3-interpolate/src/hsl.js +21 -0
- package/.output/server/node_modules/d3-interpolate/src/hue.js +9 -0
- package/.output/server/node_modules/d3-interpolate/src/index.js +21 -0
- package/.output/server/node_modules/d3-interpolate/src/lab.js +16 -0
- package/.output/server/node_modules/d3-interpolate/src/number.js +5 -0
- package/.output/server/node_modules/d3-interpolate/src/numberArray.js +14 -0
- package/.output/server/node_modules/d3-interpolate/src/object.js +23 -0
- package/.output/server/node_modules/d3-interpolate/src/piecewise.js +11 -0
- package/.output/server/node_modules/d3-interpolate/src/quantize.js +5 -0
- package/.output/server/node_modules/d3-interpolate/src/rgb.js +55 -0
- package/.output/server/node_modules/d3-interpolate/src/round.js +5 -0
- package/.output/server/node_modules/d3-interpolate/src/string.js +64 -0
- package/.output/server/node_modules/d3-interpolate/src/transform/decompose.js +26 -0
- package/.output/server/node_modules/d3-interpolate/src/transform/index.js +63 -0
- package/.output/server/node_modules/d3-interpolate/src/transform/parse.js +18 -0
- package/.output/server/node_modules/d3-interpolate/src/value.js +22 -0
- package/.output/server/node_modules/d3-interpolate/src/zoom.js +71 -0
- package/.output/server/node_modules/d3-path/package.json +54 -0
- package/.output/server/node_modules/d3-path/src/index.js +1 -0
- package/.output/server/node_modules/d3-path/src/path.js +156 -0
- package/.output/server/node_modules/d3-polygon/package.json +51 -0
- package/.output/server/node_modules/d3-polygon/src/area.js +15 -0
- package/.output/server/node_modules/d3-polygon/src/centroid.js +20 -0
- package/.output/server/node_modules/d3-polygon/src/contains.js +16 -0
- package/.output/server/node_modules/d3-polygon/src/cross.js +7 -0
- package/.output/server/node_modules/d3-polygon/src/hull.js +49 -0
- package/.output/server/node_modules/d3-polygon/src/index.js +5 -0
- package/.output/server/node_modules/d3-polygon/src/length.js +23 -0
- package/.output/server/node_modules/d3-quadtree/package.json +49 -0
- package/.output/server/node_modules/d3-quadtree/src/add.js +84 -0
- package/.output/server/node_modules/d3-quadtree/src/cover.js +43 -0
- package/.output/server/node_modules/d3-quadtree/src/data.js +7 -0
- package/.output/server/node_modules/d3-quadtree/src/extent.js +5 -0
- package/.output/server/node_modules/d3-quadtree/src/find.js +70 -0
- package/.output/server/node_modules/d3-quadtree/src/index.js +1 -0
- package/.output/server/node_modules/d3-quadtree/src/quad.js +7 -0
- package/.output/server/node_modules/d3-quadtree/src/quadtree.js +73 -0
- package/.output/server/node_modules/d3-quadtree/src/remove.js +62 -0
- package/.output/server/node_modules/d3-quadtree/src/root.js +3 -0
- package/.output/server/node_modules/d3-quadtree/src/size.js +7 -0
- package/.output/server/node_modules/d3-quadtree/src/visit.js +16 -0
- package/.output/server/node_modules/d3-quadtree/src/visitAfter.js +21 -0
- package/.output/server/node_modules/d3-quadtree/src/x.js +7 -0
- package/.output/server/node_modules/d3-quadtree/src/y.js +7 -0
- package/.output/server/node_modules/d3-random/package.json +51 -0
- package/.output/server/node_modules/d3-random/src/bates.js +19 -0
- package/.output/server/node_modules/d3-random/src/bernoulli.js +14 -0
- package/.output/server/node_modules/d3-random/src/beta.js +19 -0
- package/.output/server/node_modules/d3-random/src/binomial.js +38 -0
- package/.output/server/node_modules/d3-random/src/cauchy.js +15 -0
- package/.output/server/node_modules/d3-random/src/defaultSource.js +1 -0
- package/.output/server/node_modules/d3-random/src/exponential.js +13 -0
- package/.output/server/node_modules/d3-random/src/gamma.js +34 -0
- package/.output/server/node_modules/d3-random/src/geometric.js +17 -0
- package/.output/server/node_modules/d3-random/src/index.js +18 -0
- package/.output/server/node_modules/d3-random/src/int.js +16 -0
- package/.output/server/node_modules/d3-random/src/irwinHall.js +15 -0
- package/.output/server/node_modules/d3-random/src/lcg.js +9 -0
- package/.output/server/node_modules/d3-random/src/logNormal.js +17 -0
- package/.output/server/node_modules/d3-random/src/logistic.js +16 -0
- package/.output/server/node_modules/d3-random/src/normal.js +28 -0
- package/.output/server/node_modules/d3-random/src/pareto.js +15 -0
- package/.output/server/node_modules/d3-random/src/poisson.js +27 -0
- package/.output/server/node_modules/d3-random/src/uniform.js +17 -0
- package/.output/server/node_modules/d3-random/src/weibull.js +22 -0
- package/.output/server/node_modules/d3-scale/package.json +57 -0
- package/.output/server/node_modules/d3-scale/src/band.js +101 -0
- package/.output/server/node_modules/d3-scale/src/constant.js +5 -0
- package/.output/server/node_modules/d3-scale/src/continuous.js +125 -0
- package/.output/server/node_modules/d3-scale/src/diverging.js +104 -0
- package/.output/server/node_modules/d3-scale/src/identity.js +28 -0
- package/.output/server/node_modules/d3-scale/src/index.js +78 -0
- package/.output/server/node_modules/d3-scale/src/init.js +26 -0
- package/.output/server/node_modules/d3-scale/src/linear.js +70 -0
- package/.output/server/node_modules/d3-scale/src/log.js +140 -0
- package/.output/server/node_modules/d3-scale/src/nice.js +18 -0
- package/.output/server/node_modules/d3-scale/src/number.js +3 -0
- package/.output/server/node_modules/d3-scale/src/ordinal.js +46 -0
- package/.output/server/node_modules/d3-scale/src/pow.js +50 -0
- package/.output/server/node_modules/d3-scale/src/quantile.js +57 -0
- package/.output/server/node_modules/d3-scale/src/quantize.js +56 -0
- package/.output/server/node_modules/d3-scale/src/radial.js +63 -0
- package/.output/server/node_modules/d3-scale/src/sequential.js +107 -0
- package/.output/server/node_modules/d3-scale/src/sequentialQuantile.js +38 -0
- package/.output/server/node_modules/d3-scale/src/symlog.js +35 -0
- package/.output/server/node_modules/d3-scale/src/threshold.js +39 -0
- package/.output/server/node_modules/d3-scale/src/tickFormat.js +29 -0
- package/.output/server/node_modules/d3-scale/src/time.js +71 -0
- package/.output/server/node_modules/d3-scale/src/utcTime.js +8 -0
- package/.output/server/node_modules/d3-scale-chromatic/package.json +55 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Accent.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Dark2.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Paired.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Set1.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Set2.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Set3.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/category10.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/categorical/observable10.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/colors.js +5 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/BrBG.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/PRGn.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/PiYG.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/PuOr.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/RdBu.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/RdGy.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/diverging/Spectral.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/index.js +44 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/ramp.js +3 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js +8 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js +4 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js +17 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js +8 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js +16 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js +14 -0
- package/.output/server/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js +14 -0
- package/.output/server/node_modules/d3-selection/package.json +51 -0
- package/.output/server/node_modules/d3-selection/src/array.js +9 -0
- package/.output/server/node_modules/d3-selection/src/constant.js +5 -0
- package/.output/server/node_modules/d3-selection/src/create.js +6 -0
- package/.output/server/node_modules/d3-selection/src/creator.js +25 -0
- package/.output/server/node_modules/d3-selection/src/index.js +15 -0
- package/.output/server/node_modules/d3-selection/src/local.js +27 -0
- package/.output/server/node_modules/d3-selection/src/matcher.js +12 -0
- package/.output/server/node_modules/d3-selection/src/namespace.js +7 -0
- package/.output/server/node_modules/d3-selection/src/namespaces.js +9 -0
- package/.output/server/node_modules/d3-selection/src/pointer.js +20 -0
- package/.output/server/node_modules/d3-selection/src/pointers.js +11 -0
- package/.output/server/node_modules/d3-selection/src/select.js +7 -0
- package/.output/server/node_modules/d3-selection/src/selectAll.js +8 -0
- package/.output/server/node_modules/d3-selection/src/selection/append.js +8 -0
- package/.output/server/node_modules/d3-selection/src/selection/attr.js +57 -0
- package/.output/server/node_modules/d3-selection/src/selection/call.js +6 -0
- package/.output/server/node_modules/d3-selection/src/selection/classed.js +75 -0
- package/.output/server/node_modules/d3-selection/src/selection/clone.js +13 -0
- package/.output/server/node_modules/d3-selection/src/selection/data.js +128 -0
- package/.output/server/node_modules/d3-selection/src/selection/datum.js +5 -0
- package/.output/server/node_modules/d3-selection/src/selection/dispatch.js +34 -0
- package/.output/server/node_modules/d3-selection/src/selection/each.js +10 -0
- package/.output/server/node_modules/d3-selection/src/selection/empty.js +3 -0
- package/.output/server/node_modules/d3-selection/src/selection/enter.js +22 -0
- package/.output/server/node_modules/d3-selection/src/selection/exit.js +6 -0
- package/.output/server/node_modules/d3-selection/src/selection/filter.js +16 -0
- package/.output/server/node_modules/d3-selection/src/selection/html.js +25 -0
- package/.output/server/node_modules/d3-selection/src/selection/index.js +90 -0
- package/.output/server/node_modules/d3-selection/src/selection/insert.js +14 -0
- package/.output/server/node_modules/d3-selection/src/selection/iterator.js +7 -0
- package/.output/server/node_modules/d3-selection/src/selection/join.js +15 -0
- package/.output/server/node_modules/d3-selection/src/selection/lower.js +7 -0
- package/.output/server/node_modules/d3-selection/src/selection/merge.js +19 -0
- package/.output/server/node_modules/d3-selection/src/selection/node.js +11 -0
- package/.output/server/node_modules/d3-selection/src/selection/nodes.js +3 -0
- package/.output/server/node_modules/d3-selection/src/selection/on.js +67 -0
- package/.output/server/node_modules/d3-selection/src/selection/order.js +13 -0
- package/.output/server/node_modules/d3-selection/src/selection/property.js +28 -0
- package/.output/server/node_modules/d3-selection/src/selection/raise.js +7 -0
- package/.output/server/node_modules/d3-selection/src/selection/remove.js +8 -0
- package/.output/server/node_modules/d3-selection/src/selection/select.js +17 -0
- package/.output/server/node_modules/d3-selection/src/selection/selectAll.js +25 -0
- package/.output/server/node_modules/d3-selection/src/selection/selectChild.js +18 -0
- package/.output/server/node_modules/d3-selection/src/selection/selectChildren.js +18 -0
- package/.output/server/node_modules/d3-selection/src/selection/size.js +5 -0
- package/.output/server/node_modules/d3-selection/src/selection/sort.js +24 -0
- package/.output/server/node_modules/d3-selection/src/selection/sparse.js +3 -0
- package/.output/server/node_modules/d3-selection/src/selection/style.js +35 -0
- package/.output/server/node_modules/d3-selection/src/selection/text.js +25 -0
- package/.output/server/node_modules/d3-selection/src/selector.js +7 -0
- package/.output/server/node_modules/d3-selection/src/selectorAll.js +9 -0
- package/.output/server/node_modules/d3-selection/src/sourceEvent.js +5 -0
- package/.output/server/node_modules/d3-selection/src/window.js +5 -0
- package/.output/server/node_modules/d3-shape/package.json +55 -0
- package/.output/server/node_modules/d3-shape/src/arc.js +268 -0
- package/.output/server/node_modules/d3-shape/src/area.js +112 -0
- package/.output/server/node_modules/d3-shape/src/areaRadial.js +29 -0
- package/.output/server/node_modules/d3-shape/src/array.js +7 -0
- package/.output/server/node_modules/d3-shape/src/constant.js +5 -0
- package/.output/server/node_modules/d3-shape/src/curve/basis.js +51 -0
- package/.output/server/node_modules/d3-shape/src/curve/basisClosed.js +52 -0
- package/.output/server/node_modules/d3-shape/src/curve/basisOpen.js +39 -0
- package/.output/server/node_modules/d3-shape/src/curve/bump.js +75 -0
- package/.output/server/node_modules/d3-shape/src/curve/bundle.js +56 -0
- package/.output/server/node_modules/d3-shape/src/curve/cardinal.js +61 -0
- package/.output/server/node_modules/d3-shape/src/curve/cardinalClosed.js +61 -0
- package/.output/server/node_modules/d3-shape/src/curve/cardinalOpen.js +49 -0
- package/.output/server/node_modules/d3-shape/src/curve/catmullRom.js +88 -0
- package/.output/server/node_modules/d3-shape/src/curve/catmullRomClosed.js +74 -0
- package/.output/server/node_modules/d3-shape/src/curve/catmullRomOpen.js +62 -0
- package/.output/server/node_modules/d3-shape/src/curve/linear.js +31 -0
- package/.output/server/node_modules/d3-shape/src/curve/linearClosed.js +25 -0
- package/.output/server/node_modules/d3-shape/src/curve/monotone.js +104 -0
- package/.output/server/node_modules/d3-shape/src/curve/natural.js +65 -0
- package/.output/server/node_modules/d3-shape/src/curve/radial.js +36 -0
- package/.output/server/node_modules/d3-shape/src/curve/step.js +53 -0
- package/.output/server/node_modules/d3-shape/src/descending.js +3 -0
- package/.output/server/node_modules/d3-shape/src/identity.js +3 -0
- package/.output/server/node_modules/d3-shape/src/index.js +53 -0
- package/.output/server/node_modules/d3-shape/src/line.js +58 -0
- package/.output/server/node_modules/d3-shape/src/lineRadial.js +19 -0
- package/.output/server/node_modules/d3-shape/src/link.js +73 -0
- package/.output/server/node_modules/d3-shape/src/math.js +20 -0
- package/.output/server/node_modules/d3-shape/src/noop.js +1 -0
- package/.output/server/node_modules/d3-shape/src/offset/diverging.js +14 -0
- package/.output/server/node_modules/d3-shape/src/offset/expand.js +10 -0
- package/.output/server/node_modules/d3-shape/src/offset/none.js +9 -0
- package/.output/server/node_modules/d3-shape/src/offset/silhouette.js +10 -0
- package/.output/server/node_modules/d3-shape/src/offset/wiggle.js +24 -0
- package/.output/server/node_modules/d3-shape/src/order/appearance.js +12 -0
- package/.output/server/node_modules/d3-shape/src/order/ascending.js +12 -0
- package/.output/server/node_modules/d3-shape/src/order/descending.js +5 -0
- package/.output/server/node_modules/d3-shape/src/order/insideOut.js +27 -0
- package/.output/server/node_modules/d3-shape/src/order/none.js +5 -0
- package/.output/server/node_modules/d3-shape/src/order/reverse.js +5 -0
- package/.output/server/node_modules/d3-shape/src/path.js +19 -0
- package/.output/server/node_modules/d3-shape/src/pie.js +80 -0
- package/.output/server/node_modules/d3-shape/src/point.js +7 -0
- package/.output/server/node_modules/d3-shape/src/pointRadial.js +3 -0
- package/.output/server/node_modules/d3-shape/src/stack.js +58 -0
- package/.output/server/node_modules/d3-shape/src/symbol/asterisk.js +17 -0
- package/.output/server/node_modules/d3-shape/src/symbol/circle.js +9 -0
- package/.output/server/node_modules/d3-shape/src/symbol/cross.js +20 -0
- package/.output/server/node_modules/d3-shape/src/symbol/diamond.js +16 -0
- package/.output/server/node_modules/d3-shape/src/symbol/diamond2.js +12 -0
- package/.output/server/node_modules/d3-shape/src/symbol/plus.js +11 -0
- package/.output/server/node_modules/d3-shape/src/symbol/square.js +9 -0
- package/.output/server/node_modules/d3-shape/src/symbol/square2.js +12 -0
- package/.output/server/node_modules/d3-shape/src/symbol/star.js +24 -0
- package/.output/server/node_modules/d3-shape/src/symbol/times.js +11 -0
- package/.output/server/node_modules/d3-shape/src/symbol/triangle.js +13 -0
- package/.output/server/node_modules/d3-shape/src/symbol/triangle2.js +15 -0
- package/.output/server/node_modules/d3-shape/src/symbol/wye.js +25 -0
- package/.output/server/node_modules/d3-shape/src/symbol.js +66 -0
- package/.output/server/node_modules/d3-time/package.json +53 -0
- package/.output/server/node_modules/d3-time/src/day.js +35 -0
- package/.output/server/node_modules/d3-time/src/duration.js +7 -0
- package/.output/server/node_modules/d3-time/src/hour.js +26 -0
- package/.output/server/node_modules/d3-time/src/index.js +96 -0
- package/.output/server/node_modules/d3-time/src/interval.js +69 -0
- package/.output/server/node_modules/d3-time/src/millisecond.js +25 -0
- package/.output/server/node_modules/d3-time/src/minute.js +26 -0
- package/.output/server/node_modules/d3-time/src/month.js +27 -0
- package/.output/server/node_modules/d3-time/src/second.js +14 -0
- package/.output/server/node_modules/d3-time/src/ticks.js +58 -0
- package/.output/server/node_modules/d3-time/src/week.js +56 -0
- package/.output/server/node_modules/d3-time/src/year.js +49 -0
- package/.output/server/node_modules/d3-time-format/package.json +60 -0
- package/.output/server/node_modules/d3-time-format/src/defaultLocale.js +27 -0
- package/.output/server/node_modules/d3-time-format/src/index.js +4 -0
- package/.output/server/node_modules/d3-time-format/src/isoFormat.js +13 -0
- package/.output/server/node_modules/d3-time-format/src/isoParse.js +13 -0
- package/.output/server/node_modules/d3-time-format/src/locale.js +697 -0
- package/.output/server/node_modules/d3-timer/package.json +53 -0
- package/.output/server/node_modules/d3-timer/src/index.js +13 -0
- package/.output/server/node_modules/d3-timer/src/interval.js +17 -0
- package/.output/server/node_modules/d3-timer/src/timeout.js +11 -0
- package/.output/server/node_modules/d3-timer/src/timer.js +110 -0
- package/.output/server/node_modules/d3-transition/package.json +65 -0
- package/.output/server/node_modules/d3-transition/src/active.js +21 -0
- package/.output/server/node_modules/d3-transition/src/index.js +4 -0
- package/.output/server/node_modules/d3-transition/src/interrupt.js +24 -0
- package/.output/server/node_modules/d3-transition/src/selection/index.js +6 -0
- package/.output/server/node_modules/d3-transition/src/selection/interrupt.js +7 -0
- package/.output/server/node_modules/d3-transition/src/selection/transition.js +42 -0
- package/.output/server/node_modules/d3-transition/src/transition/attr.js +78 -0
- package/.output/server/node_modules/d3-transition/src/transition/attrTween.js +44 -0
- package/.output/server/node_modules/d3-transition/src/transition/delay.js +23 -0
- package/.output/server/node_modules/d3-transition/src/transition/duration.js +23 -0
- package/.output/server/node_modules/d3-transition/src/transition/ease.js +16 -0
- package/.output/server/node_modules/d3-transition/src/transition/easeVarying.js +14 -0
- package/.output/server/node_modules/d3-transition/src/transition/end.js +29 -0
- package/.output/server/node_modules/d3-transition/src/transition/filter.js +16 -0
- package/.output/server/node_modules/d3-transition/src/transition/index.js +73 -0
- package/.output/server/node_modules/d3-transition/src/transition/interpolate.js +10 -0
- package/.output/server/node_modules/d3-transition/src/transition/merge.js +19 -0
- package/.output/server/node_modules/d3-transition/src/transition/on.js +32 -0
- package/.output/server/node_modules/d3-transition/src/transition/remove.js +11 -0
- package/.output/server/node_modules/d3-transition/src/transition/schedule.js +153 -0
- package/.output/server/node_modules/d3-transition/src/transition/select.js +22 -0
- package/.output/server/node_modules/d3-transition/src/transition/selectAll.js +26 -0
- package/.output/server/node_modules/d3-transition/src/transition/selection.js +7 -0
- package/.output/server/node_modules/d3-transition/src/transition/style.js +80 -0
- package/.output/server/node_modules/d3-transition/src/transition/styleTween.js +24 -0
- package/.output/server/node_modules/d3-transition/src/transition/text.js +20 -0
- package/.output/server/node_modules/d3-transition/src/transition/textTween.js +24 -0
- package/.output/server/node_modules/d3-transition/src/transition/transition.js +24 -0
- package/.output/server/node_modules/d3-transition/src/transition/tween.js +81 -0
- package/.output/server/node_modules/d3-zoom/package.json +57 -0
- package/.output/server/node_modules/d3-zoom/src/constant.js +1 -0
- package/.output/server/node_modules/d3-zoom/src/event.js +14 -0
- package/.output/server/node_modules/d3-zoom/src/index.js +2 -0
- package/.output/server/node_modules/d3-zoom/src/noevent.js +8 -0
- package/.output/server/node_modules/d3-zoom/src/transform.js +51 -0
- package/.output/server/node_modules/d3-zoom/src/zoom.js +447 -0
- package/.output/server/node_modules/defu/dist/defu.mjs +69 -0
- package/.output/server/node_modules/defu/package.json +43 -0
- package/.output/server/node_modules/delaunator/index.js +480 -0
- package/.output/server/node_modules/delaunator/package.json +56 -0
- package/.output/server/node_modules/destr/dist/index.mjs +72 -0
- package/.output/server/node_modules/destr/package.json +47 -0
- package/.output/server/node_modules/devalue/index.js +4 -0
- package/.output/server/node_modules/devalue/package.json +37 -0
- package/.output/server/node_modules/devalue/src/base64.js +110 -0
- package/.output/server/node_modules/devalue/src/constants.js +6 -0
- package/.output/server/node_modules/devalue/src/parse.js +205 -0
- package/.output/server/node_modules/devalue/src/stringify.js +265 -0
- package/.output/server/node_modules/devalue/src/uneval.js +407 -0
- package/.output/server/node_modules/devalue/src/utils.js +118 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
- package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
- package/.output/server/node_modules/entities/package.json +113 -0
- package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
- package/.output/server/node_modules/estree-walker/package.json +37 -0
- package/.output/server/node_modules/file-uri-to-path/index.js +66 -0
- package/.output/server/node_modules/file-uri-to-path/package.json +32 -0
- package/.output/server/node_modules/h3/dist/index.mjs +2478 -0
- package/.output/server/node_modules/h3/package.json +75 -0
- package/.output/server/node_modules/hookable/dist/index.mjs +290 -0
- package/.output/server/node_modules/hookable/package.json +49 -0
- package/.output/server/node_modules/internmap/package.json +43 -0
- package/.output/server/node_modules/internmap/src/index.js +61 -0
- package/.output/server/node_modules/iron-webcrypto/dist/index.js +298 -0
- package/.output/server/node_modules/iron-webcrypto/package.json +72 -0
- package/.output/server/node_modules/marked/lib/marked.esm.js +72 -0
- package/.output/server/node_modules/marked/package.json +103 -0
- package/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs +1 -0
- package/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs +1 -0
- package/.output/server/node_modules/node-mock-http/dist/index.mjs +1 -0
- package/.output/server/node_modules/node-mock-http/package.json +63 -0
- package/.output/server/node_modules/radix3/dist/index.mjs +262 -0
- package/.output/server/node_modules/radix3/package.json +52 -0
- package/.output/server/node_modules/robust-predicates/esm/incircle.js +765 -0
- package/.output/server/node_modules/robust-predicates/esm/insphere.js +766 -0
- package/.output/server/node_modules/robust-predicates/esm/orient2d.js +184 -0
- package/.output/server/node_modules/robust-predicates/esm/orient3d.js +462 -0
- package/.output/server/node_modules/robust-predicates/esm/util.js +138 -0
- package/.output/server/node_modules/robust-predicates/index.js +5 -0
- package/.output/server/node_modules/robust-predicates/package.json +75 -0
- package/.output/server/node_modules/sortablejs/Sortable.min.js +2 -0
- package/.output/server/node_modules/sortablejs/package.json +56 -0
- package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
- package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
- package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
- package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
- package/.output/server/node_modules/source-map-js/package.json +71 -0
- package/.output/server/node_modules/source-map-js/source-map.js +8 -0
- package/.output/server/node_modules/ufo/dist/index.mjs +638 -0
- package/.output/server/node_modules/ufo/package.json +47 -0
- package/.output/server/node_modules/uncrypto/dist/crypto.node.mjs +16 -0
- package/.output/server/node_modules/uncrypto/package.json +60 -0
- package/.output/server/node_modules/unhead/dist/index.mjs +9 -0
- package/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
- package/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
- package/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
- package/.output/server/node_modules/unhead/dist/server.mjs +182 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.B578PsDV.mjs +266 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BPM0-cfG.mjs +44 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +148 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CGCfDSEL.mjs +180 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CYpwL2hc.mjs +194 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.ckV6dpEQ.mjs +166 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
- package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
- package/.output/server/node_modules/unhead/package.json +105 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
- package/.output/server/node_modules/vue/index.js +7 -0
- package/.output/server/node_modules/vue/index.mjs +1 -0
- package/.output/server/node_modules/vue/package.json +112 -0
- package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
- package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +301 -0
- package/.output/server/node_modules/vue-bundle-renderer/package.json +55 -0
- package/.output/server/node_modules/vue-devtools-stub/dist/index.mjs +11 -0
- package/.output/server/node_modules/vue-devtools-stub/package.json +41 -0
- package/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs +1220 -0
- package/.output/server/node_modules/vue-router/dist/vue-router.mjs +1557 -0
- package/.output/server/node_modules/vue-router/package.json +153 -0
- package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
- package/.output/server/node_modules/vuedraggable/dist/vuedraggable.umd.min.js +2 -0
- package/.output/server/node_modules/vuedraggable/package.json +97 -0
- package/.output/server/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/.output/server/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/.output/server/node_modules/yaml/dist/compose/compose-node.js +105 -0
- package/.output/server/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/.output/server/node_modules/yaml/dist/compose/composer.js +222 -0
- package/.output/server/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/.output/server/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/.output/server/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/.output/server/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/.output/server/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/.output/server/node_modules/yaml/dist/compose/resolve-flow-scalar.js +225 -0
- package/.output/server/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/.output/server/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/.output/server/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/.output/server/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/.output/server/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/.output/server/node_modules/yaml/dist/doc/Document.js +337 -0
- package/.output/server/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/.output/server/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/.output/server/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/.output/server/node_modules/yaml/dist/doc/directives.js +178 -0
- package/.output/server/node_modules/yaml/dist/errors.js +62 -0
- package/.output/server/node_modules/yaml/dist/index.js +50 -0
- package/.output/server/node_modules/yaml/dist/log.js +19 -0
- package/.output/server/node_modules/yaml/dist/nodes/Alias.js +116 -0
- package/.output/server/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/.output/server/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/.output/server/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/.output/server/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/.output/server/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/.output/server/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/.output/server/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/.output/server/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/.output/server/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/.output/server/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/.output/server/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/.output/server/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/.output/server/node_modules/yaml/dist/parse/cst.js +112 -0
- package/.output/server/node_modules/yaml/dist/parse/lexer.js +719 -0
- package/.output/server/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/.output/server/node_modules/yaml/dist/parse/parser.js +972 -0
- package/.output/server/node_modules/yaml/dist/public-api.js +107 -0
- package/.output/server/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/.output/server/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/.output/server/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/.output/server/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/.output/server/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/.output/server/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/.output/server/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/.output/server/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/.output/server/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/.output/server/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/.output/server/node_modules/yaml/dist/schema/tags.js +99 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/merge.js +68 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/.output/server/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/.output/server/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/.output/server/node_modules/yaml/dist/stringify/stringify.js +131 -0
- package/.output/server/node_modules/yaml/dist/stringify/stringifyCollection.js +145 -0
- package/.output/server/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/.output/server/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/.output/server/node_modules/yaml/dist/stringify/stringifyNumber.js +26 -0
- package/.output/server/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/.output/server/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/.output/server/node_modules/yaml/dist/visit.js +236 -0
- package/.output/server/node_modules/yaml/package.json +97 -0
- package/.output/server/package.json +90 -0
- package/README.md +396 -117
- package/bin/autocode +2337 -1
- package/package.json +61 -23
- package/templates/prompts/ready.en.md +29 -0
- package/templates/prompts/ready.fr.md +29 -0
- package/dist/cli/commands/comment.d.ts +0 -9
- package/dist/cli/commands/comment.d.ts.map +0 -1
- package/dist/cli/commands/comment.js +0 -40
- package/dist/cli/commands/comment.js.map +0 -1
- package/dist/cli/commands/health.d.ts +0 -9
- package/dist/cli/commands/health.d.ts.map +0 -1
- package/dist/cli/commands/health.js +0 -101
- package/dist/cli/commands/health.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -9
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -63
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/list.d.ts +0 -9
- package/dist/cli/commands/list.d.ts.map +0 -1
- package/dist/cli/commands/list.js +0 -121
- package/dist/cli/commands/list.js.map +0 -1
- package/dist/cli/commands/move.d.ts +0 -9
- package/dist/cli/commands/move.d.ts.map +0 -1
- package/dist/cli/commands/move.js +0 -66
- package/dist/cli/commands/move.js.map +0 -1
- package/dist/cli/commands/new.d.ts +0 -9
- package/dist/cli/commands/new.d.ts.map +0 -1
- package/dist/cli/commands/new.js +0 -105
- package/dist/cli/commands/new.js.map +0 -1
- package/dist/cli/commands/next.d.ts +0 -9
- package/dist/cli/commands/next.d.ts.map +0 -1
- package/dist/cli/commands/next.js +0 -46
- package/dist/cli/commands/next.js.map +0 -1
- package/dist/cli/commands/parent.d.ts +0 -9
- package/dist/cli/commands/parent.d.ts.map +0 -1
- package/dist/cli/commands/parent.js +0 -94
- package/dist/cli/commands/parent.js.map +0 -1
- package/dist/cli/commands/pipeline.d.ts +0 -9
- package/dist/cli/commands/pipeline.d.ts.map +0 -1
- package/dist/cli/commands/pipeline.js +0 -68
- package/dist/cli/commands/pipeline.js.map +0 -1
- package/dist/cli/commands/pipeline.test.d.ts +0 -5
- package/dist/cli/commands/pipeline.test.d.ts.map +0 -1
- package/dist/cli/commands/pipeline.test.js +0 -171
- package/dist/cli/commands/pipeline.test.js.map +0 -1
- package/dist/cli/commands/serve.d.ts +0 -9
- package/dist/cli/commands/serve.d.ts.map +0 -1
- package/dist/cli/commands/serve.js +0 -249
- package/dist/cli/commands/serve.js.map +0 -1
- package/dist/cli/commands/show.d.ts +0 -9
- package/dist/cli/commands/show.d.ts.map +0 -1
- package/dist/cli/commands/show.js +0 -111
- package/dist/cli/commands/show.js.map +0 -1
- package/dist/cli/commands/stats.d.ts +0 -9
- package/dist/cli/commands/stats.d.ts.map +0 -1
- package/dist/cli/commands/stats.js +0 -108
- package/dist/cli/commands/stats.js.map +0 -1
- package/dist/cli/commands/sync.d.ts +0 -9
- package/dist/cli/commands/sync.d.ts.map +0 -1
- package/dist/cli/commands/sync.js +0 -91
- package/dist/cli/commands/sync.js.map +0 -1
- package/dist/cli/commands/tunnel.d.ts +0 -9
- package/dist/cli/commands/tunnel.d.ts.map +0 -1
- package/dist/cli/commands/tunnel.js +0 -90
- package/dist/cli/commands/tunnel.js.map +0 -1
- package/dist/cli/parser.d.ts +0 -13
- package/dist/cli/parser.d.ts.map +0 -1
- package/dist/cli/parser.js +0 -67
- package/dist/cli/parser.js.map +0 -1
- package/dist/core/catalog.d.ts +0 -52
- package/dist/core/catalog.d.ts.map +0 -1
- package/dist/core/catalog.js +0 -102
- package/dist/core/catalog.js.map +0 -1
- package/dist/core/column.d.ts +0 -50
- package/dist/core/column.d.ts.map +0 -1
- package/dist/core/column.js +0 -134
- package/dist/core/column.js.map +0 -1
- package/dist/core/config.d.ts +0 -20
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -54
- package/dist/core/config.js.map +0 -1
- package/dist/core/features.d.ts +0 -24
- package/dist/core/features.d.ts.map +0 -1
- package/dist/core/features.js +0 -33
- package/dist/core/features.js.map +0 -1
- package/dist/core/hierarchy.d.ts +0 -121
- package/dist/core/hierarchy.d.ts.map +0 -1
- package/dist/core/hierarchy.js +0 -350
- package/dist/core/hierarchy.js.map +0 -1
- package/dist/core/implementations/FilesystemIssueRepository.d.ts +0 -18
- package/dist/core/implementations/FilesystemIssueRepository.d.ts.map +0 -1
- package/dist/core/implementations/FilesystemIssueRepository.js +0 -149
- package/dist/core/implementations/FilesystemIssueRepository.js.map +0 -1
- package/dist/core/interfaces/IHierarchyService.d.ts +0 -32
- package/dist/core/interfaces/IHierarchyService.d.ts.map +0 -1
- package/dist/core/interfaces/IHierarchyService.js +0 -2
- package/dist/core/interfaces/IHierarchyService.js.map +0 -1
- package/dist/core/interfaces/IIssueRepository.d.ts +0 -55
- package/dist/core/interfaces/IIssueRepository.d.ts.map +0 -1
- package/dist/core/interfaces/IIssueRepository.js +0 -2
- package/dist/core/interfaces/IIssueRepository.js.map +0 -1
- package/dist/core/interfaces/IPipelineService.d.ts +0 -38
- package/dist/core/interfaces/IPipelineService.d.ts.map +0 -1
- package/dist/core/interfaces/IPipelineService.js +0 -2
- package/dist/core/interfaces/IPipelineService.js.map +0 -1
- package/dist/core/interfaces/IWorkflowService.d.ts +0 -38
- package/dist/core/interfaces/IWorkflowService.d.ts.map +0 -1
- package/dist/core/interfaces/IWorkflowService.js +0 -2
- package/dist/core/interfaces/IWorkflowService.js.map +0 -1
- package/dist/core/interfaces/index.d.ts +0 -5
- package/dist/core/interfaces/index.d.ts.map +0 -1
- package/dist/core/interfaces/index.js +0 -2
- package/dist/core/interfaces/index.js.map +0 -1
- package/dist/core/issue.d.ts +0 -62
- package/dist/core/issue.d.ts.map +0 -1
- package/dist/core/issue.js +0 -255
- package/dist/core/issue.js.map +0 -1
- package/dist/core/loop-detector.d.ts +0 -45
- package/dist/core/loop-detector.d.ts.map +0 -1
- package/dist/core/loop-detector.js +0 -81
- package/dist/core/loop-detector.js.map +0 -1
- package/dist/core/pipeline.d.ts +0 -70
- package/dist/core/pipeline.d.ts.map +0 -1
- package/dist/core/pipeline.js +0 -199
- package/dist/core/pipeline.js.map +0 -1
- package/dist/core/sync.d.ts +0 -41
- package/dist/core/sync.d.ts.map +0 -1
- package/dist/core/sync.js +0 -272
- package/dist/core/sync.js.map +0 -1
- package/dist/core/validation.d.ts +0 -26
- package/dist/core/validation.d.ts.map +0 -1
- package/dist/core/validation.js +0 -67
- package/dist/core/validation.js.map +0 -1
- package/dist/core/workflow.d.ts +0 -68
- package/dist/core/workflow.d.ts.map +0 -1
- package/dist/core/workflow.js +0 -226
- package/dist/core/workflow.js.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -12
- package/dist/index.js.map +0 -1
- package/dist/server/api-autocomplete.test.d.ts +0 -6
- package/dist/server/api-autocomplete.test.d.ts.map +0 -1
- package/dist/server/api-autocomplete.test.js +0 -249
- package/dist/server/api-autocomplete.test.js.map +0 -1
- package/dist/server/api.d.ts +0 -9
- package/dist/server/api.d.ts.map +0 -1
- package/dist/server/api.js +0 -1377
- package/dist/server/api.js.map +0 -1
- package/dist/server/dashboard/index.d.ts +0 -10
- package/dist/server/dashboard/index.d.ts.map +0 -1
- package/dist/server/dashboard/index.js +0 -16
- package/dist/server/dashboard/index.js.map +0 -1
- package/dist/server/dashboard/pages/autocreate.d.ts +0 -9
- package/dist/server/dashboard/pages/autocreate.d.ts.map +0 -1
- package/dist/server/dashboard/pages/autocreate.js +0 -854
- package/dist/server/dashboard/pages/autocreate.js.map +0 -1
- package/dist/server/dashboard/pages/changelog.d.ts +0 -9
- package/dist/server/dashboard/pages/changelog.d.ts.map +0 -1
- package/dist/server/dashboard/pages/changelog.js +0 -160
- package/dist/server/dashboard/pages/changelog.js.map +0 -1
- package/dist/server/dashboard/pages/column-edit.d.ts +0 -8
- package/dist/server/dashboard/pages/column-edit.d.ts.map +0 -1
- package/dist/server/dashboard/pages/column-edit.js +0 -303
- package/dist/server/dashboard/pages/column-edit.js.map +0 -1
- package/dist/server/dashboard/pages/column-prompt.d.ts +0 -8
- package/dist/server/dashboard/pages/column-prompt.d.ts.map +0 -1
- package/dist/server/dashboard/pages/column-prompt.js +0 -249
- package/dist/server/dashboard/pages/column-prompt.js.map +0 -1
- package/dist/server/dashboard/pages/column-terminal.d.ts +0 -8
- package/dist/server/dashboard/pages/column-terminal.d.ts.map +0 -1
- package/dist/server/dashboard/pages/column-terminal.js +0 -550
- package/dist/server/dashboard/pages/column-terminal.js.map +0 -1
- package/dist/server/dashboard/pages/index.d.ts +0 -21
- package/dist/server/dashboard/pages/index.d.ts.map +0 -1
- package/dist/server/dashboard/pages/index.js +0 -21
- package/dist/server/dashboard/pages/index.js.map +0 -1
- package/dist/server/dashboard/pages/issue-comments.d.ts +0 -8
- package/dist/server/dashboard/pages/issue-comments.d.ts.map +0 -1
- package/dist/server/dashboard/pages/issue-comments.js +0 -283
- package/dist/server/dashboard/pages/issue-comments.js.map +0 -1
- package/dist/server/dashboard/pages/issue-graph.d.ts +0 -9
- package/dist/server/dashboard/pages/issue-graph.d.ts.map +0 -1
- package/dist/server/dashboard/pages/issue-graph.js +0 -629
- package/dist/server/dashboard/pages/issue-graph.js.map +0 -1
- package/dist/server/dashboard/pages/issue-history.d.ts +0 -8
- package/dist/server/dashboard/pages/issue-history.d.ts.map +0 -1
- package/dist/server/dashboard/pages/issue-history.js +0 -149
- package/dist/server/dashboard/pages/issue-history.js.map +0 -1
- package/dist/server/dashboard/pages/issue-shared.d.ts +0 -27
- package/dist/server/dashboard/pages/issue-shared.d.ts.map +0 -1
- package/dist/server/dashboard/pages/issue-shared.js +0 -297
- package/dist/server/dashboard/pages/issue-shared.js.map +0 -1
- package/dist/server/dashboard/pages/issue-terminal.d.ts +0 -8
- package/dist/server/dashboard/pages/issue-terminal.d.ts.map +0 -1
- package/dist/server/dashboard/pages/issue-terminal.js +0 -363
- package/dist/server/dashboard/pages/issue-terminal.js.map +0 -1
- package/dist/server/dashboard/pages/issue-view.d.ts +0 -8
- package/dist/server/dashboard/pages/issue-view.d.ts.map +0 -1
- package/dist/server/dashboard/pages/issue-view.js +0 -386
- package/dist/server/dashboard/pages/issue-view.js.map +0 -1
- package/dist/server/dashboard/pages/main-dashboard.d.ts +0 -11
- package/dist/server/dashboard/pages/main-dashboard.d.ts.map +0 -1
- package/dist/server/dashboard/pages/main-dashboard.js +0 -228
- package/dist/server/dashboard/pages/main-dashboard.js.map +0 -1
- package/dist/server/dashboard/pages/new-issue.d.ts +0 -8
- package/dist/server/dashboard/pages/new-issue.d.ts.map +0 -1
- package/dist/server/dashboard/pages/new-issue.js +0 -898
- package/dist/server/dashboard/pages/new-issue.js.map +0 -1
- package/dist/server/dashboard/pages/new-issue.test.d.ts +0 -6
- package/dist/server/dashboard/pages/new-issue.test.d.ts.map +0 -1
- package/dist/server/dashboard/pages/new-issue.test.js +0 -824
- package/dist/server/dashboard/pages/new-issue.test.js.map +0 -1
- package/dist/server/dashboard/pages/pipeline-configurator.d.ts +0 -8
- package/dist/server/dashboard/pages/pipeline-configurator.d.ts.map +0 -1
- package/dist/server/dashboard/pages/pipeline-configurator.js +0 -1783
- package/dist/server/dashboard/pages/pipeline-configurator.js.map +0 -1
- package/dist/server/dashboard/pages/shared.d.ts +0 -8
- package/dist/server/dashboard/pages/shared.d.ts.map +0 -1
- package/dist/server/dashboard/pages/shared.js +0 -58
- package/dist/server/dashboard/pages/shared.js.map +0 -1
- package/dist/server/dashboard/pages/stats-page.d.ts +0 -8
- package/dist/server/dashboard/pages/stats-page.d.ts.map +0 -1
- package/dist/server/dashboard/pages/stats-page.js +0 -558
- package/dist/server/dashboard/pages/stats-page.js.map +0 -1
- package/dist/server/dashboard/pages/water-quality-form.d.ts +0 -10
- package/dist/server/dashboard/pages/water-quality-form.d.ts.map +0 -1
- package/dist/server/dashboard/pages/water-quality-form.js +0 -910
- package/dist/server/dashboard/pages/water-quality-form.js.map +0 -1
- package/dist/server/dashboard/scripts/index.d.ts +0 -11
- package/dist/server/dashboard/scripts/index.d.ts.map +0 -1
- package/dist/server/dashboard/scripts/index.js +0 -1278
- package/dist/server/dashboard/scripts/index.js.map +0 -1
- package/dist/server/dashboard/shared/header.d.ts +0 -88
- package/dist/server/dashboard/shared/header.d.ts.map +0 -1
- package/dist/server/dashboard/shared/header.js +0 -209
- package/dist/server/dashboard/shared/header.js.map +0 -1
- package/dist/server/dashboard/shared/i18n-script.d.ts +0 -45
- package/dist/server/dashboard/shared/i18n-script.d.ts.map +0 -1
- package/dist/server/dashboard/shared/i18n-script.js +0 -204
- package/dist/server/dashboard/shared/i18n-script.js.map +0 -1
- package/dist/server/dashboard/shared/index.d.ts +0 -19
- package/dist/server/dashboard/shared/index.d.ts.map +0 -1
- package/dist/server/dashboard/shared/index.js +0 -22
- package/dist/server/dashboard/shared/index.js.map +0 -1
- package/dist/server/dashboard/shared/translations.d.ts +0 -515
- package/dist/server/dashboard/shared/translations.d.ts.map +0 -1
- package/dist/server/dashboard/shared/translations.js +0 -591
- package/dist/server/dashboard/shared/translations.js.map +0 -1
- package/dist/server/dashboard/styles/base.d.ts +0 -5
- package/dist/server/dashboard/styles/base.d.ts.map +0 -1
- package/dist/server/dashboard/styles/base.js +0 -130
- package/dist/server/dashboard/styles/base.js.map +0 -1
- package/dist/server/dashboard/styles/board.d.ts +0 -5
- package/dist/server/dashboard/styles/board.d.ts.map +0 -1
- package/dist/server/dashboard/styles/board.js +0 -168
- package/dist/server/dashboard/styles/board.js.map +0 -1
- package/dist/server/dashboard/styles/comments.d.ts +0 -5
- package/dist/server/dashboard/styles/comments.d.ts.map +0 -1
- package/dist/server/dashboard/styles/comments.js +0 -249
- package/dist/server/dashboard/styles/comments.js.map +0 -1
- package/dist/server/dashboard/styles/components.d.ts +0 -5
- package/dist/server/dashboard/styles/components.d.ts.map +0 -1
- package/dist/server/dashboard/styles/components.js +0 -360
- package/dist/server/dashboard/styles/components.js.map +0 -1
- package/dist/server/dashboard/styles/footer.d.ts +0 -5
- package/dist/server/dashboard/styles/footer.d.ts.map +0 -1
- package/dist/server/dashboard/styles/footer.js +0 -40
- package/dist/server/dashboard/styles/footer.js.map +0 -1
- package/dist/server/dashboard/styles/index.d.ts +0 -8
- package/dist/server/dashboard/styles/index.d.ts.map +0 -1
- package/dist/server/dashboard/styles/index.js +0 -27
- package/dist/server/dashboard/styles/index.js.map +0 -1
- package/dist/server/dashboard/styles/logs.d.ts +0 -5
- package/dist/server/dashboard/styles/logs.d.ts.map +0 -1
- package/dist/server/dashboard/styles/logs.js +0 -89
- package/dist/server/dashboard/styles/logs.js.map +0 -1
- package/dist/server/dashboard/styles/notifications.d.ts +0 -5
- package/dist/server/dashboard/styles/notifications.d.ts.map +0 -1
- package/dist/server/dashboard/styles/notifications.js +0 -51
- package/dist/server/dashboard/styles/notifications.js.map +0 -1
- package/dist/server/dashboard/styles/variables.d.ts +0 -5
- package/dist/server/dashboard/styles/variables.d.ts.map +0 -1
- package/dist/server/dashboard/styles/variables.js +0 -29
- package/dist/server/dashboard/styles/variables.js.map +0 -1
- package/dist/server/dashboard/utils.d.ts +0 -8
- package/dist/server/dashboard/utils.d.ts.map +0 -1
- package/dist/server/dashboard/utils.js +0 -14
- package/dist/server/dashboard/utils.js.map +0 -1
- package/dist/server/dashboard.d.ts +0 -8
- package/dist/server/dashboard.d.ts.map +0 -1
- package/dist/server/dashboard.js +0 -8
- package/dist/server/dashboard.js.map +0 -1
- package/dist/server/index.d.ts +0 -8
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -274
- package/dist/server/index.js.map +0 -1
- package/dist/server/watcher.d.ts +0 -13
- package/dist/server/watcher.d.ts.map +0 -1
- package/dist/server/watcher.js +0 -62
- package/dist/server/watcher.js.map +0 -1
- package/dist/server/websocket.d.ts +0 -46
- package/dist/server/websocket.d.ts.map +0 -1
- package/dist/server/websocket.js +0 -204
- package/dist/server/websocket.js.map +0 -1
- package/dist/services/autocreate.d.ts +0 -34
- package/dist/services/autocreate.d.ts.map +0 -1
- package/dist/services/autocreate.js +0 -503
- package/dist/services/autocreate.js.map +0 -1
- package/dist/services/claude.d.ts +0 -79
- package/dist/services/claude.d.ts.map +0 -1
- package/dist/services/claude.js +0 -519
- package/dist/services/claude.js.map +0 -1
- package/dist/services/issue-io.d.ts +0 -81
- package/dist/services/issue-io.d.ts.map +0 -1
- package/dist/services/issue-io.js +0 -249
- package/dist/services/issue-io.js.map +0 -1
- package/dist/services/monitoring.d.ts +0 -47
- package/dist/services/monitoring.d.ts.map +0 -1
- package/dist/services/monitoring.js +0 -136
- package/dist/services/monitoring.js.map +0 -1
- package/dist/services/stats.d.ts +0 -58
- package/dist/services/stats.d.ts.map +0 -1
- package/dist/services/stats.js +0 -196
- package/dist/services/stats.js.map +0 -1
- package/dist/types/index.d.ts +0 -213
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -8
- package/dist/types/index.js.map +0 -1
- package/dist/utils/config.d.ts +0 -101
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -98
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -60
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js +0 -129
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -23
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -56
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/tunnel.d.ts +0 -62
- package/dist/utils/tunnel.d.ts.map +0 -1
- package/dist/utils/tunnel.js +0 -240
- package/dist/utils/tunnel.js.map +0 -1
- package/dist/utils/version-check.d.ts +0 -26
- package/dist/utils/version-check.d.ts.map +0 -1
- package/dist/utils/version-check.js +0 -234
- package/dist/utils/version-check.js.map +0 -1
package/dist/server/api.js
DELETED
|
@@ -1,1377 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* REST API endpoints
|
|
3
|
-
*/
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import { URL } from 'node:url';
|
|
6
|
-
import { listIssues, getIssue, createIssue, updateIssue, addComment, findIssueDir, } from '../core/issue.js';
|
|
7
|
-
import { getChildren, getSubtree, setParent, } from '../core/hierarchy.js';
|
|
8
|
-
import { getColumns, getColumnBySlug } from '../core/column.js';
|
|
9
|
-
import { moveAndProcessIssue, buildPrompt, getActionContent, executeClaudePrompt } from '../services/claude.js';
|
|
10
|
-
import { getStats } from '../services/stats.js';
|
|
11
|
-
import { generateMonitoringReport, getHealthStatus } from '../services/monitoring.js';
|
|
12
|
-
import { getWorkflowSummary } from '../core/workflow.js';
|
|
13
|
-
import { getProcessingIssues } from './websocket.js';
|
|
14
|
-
import { getConfig, getTemplatesDir } from '../utils/config.js';
|
|
15
|
-
import { readFileSafe, writeFileSafe, pathExists, getFileMtime, ensureDir } from '../utils/fs.js';
|
|
16
|
-
import { readAttachments } from '../services/issue-io.js';
|
|
17
|
-
import { writeFileSync, unlinkSync, readdirSync } from 'node:fs';
|
|
18
|
-
import { spawnSync } from 'node:child_process';
|
|
19
|
-
import { loadCatalog, getPromptContent } from '../core/catalog.js';
|
|
20
|
-
import { pipelineExists, loadPipelinesConfig, getActivePipeline, setActivePipeline, createPipeline, deletePipeline, listPipelines, } from '../core/pipeline.js';
|
|
21
|
-
import { previewSync, applySync, hasTransitionIssues, getTransitionIssues, resolveTransitionIssues, } from '../core/sync.js';
|
|
22
|
-
import { executeAutocreate, isClaudeAvailable } from '../services/autocreate.js';
|
|
23
|
-
/**
|
|
24
|
-
* Parse changelog markdown into structured entries
|
|
25
|
-
*/
|
|
26
|
-
function parseChangelog(content) {
|
|
27
|
-
const entries = [];
|
|
28
|
-
// Split by version headers
|
|
29
|
-
const versionBlocks = content.split(/(?=^## \[)/m).filter(b => b.trim());
|
|
30
|
-
for (const block of versionBlocks) {
|
|
31
|
-
const versionMatch = block.match(/^## \[([^\]]+)\] - (\d{4}-\d{2}-\d{2})/);
|
|
32
|
-
if (!versionMatch)
|
|
33
|
-
continue;
|
|
34
|
-
const rawTag = versionMatch[1];
|
|
35
|
-
const date = versionMatch[2];
|
|
36
|
-
// Skip Unreleased
|
|
37
|
-
if (rawTag.toLowerCase() === 'unreleased')
|
|
38
|
-
continue;
|
|
39
|
-
// Normalize tag to have 'v' prefix
|
|
40
|
-
const tag = rawTag.startsWith('v') ? rawTag : `v${rawTag}`;
|
|
41
|
-
const sections = [];
|
|
42
|
-
const sectionBlocks = block.split(/(?=^### )/m);
|
|
43
|
-
for (const sectionBlock of sectionBlocks) {
|
|
44
|
-
const sectionMatch = sectionBlock.match(/^### (.+)/);
|
|
45
|
-
if (!sectionMatch)
|
|
46
|
-
continue;
|
|
47
|
-
const items = [];
|
|
48
|
-
const itemMatches = sectionBlock.matchAll(/^- (.+)$/gm);
|
|
49
|
-
for (const m of itemMatches) {
|
|
50
|
-
items.push(m[1]);
|
|
51
|
-
}
|
|
52
|
-
if (items.length > 0) {
|
|
53
|
-
sections.push({ title: sectionMatch[1].trim(), items });
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
entries.push({ tag, date, sections });
|
|
57
|
-
}
|
|
58
|
-
return entries;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Parse URL parameters from pattern
|
|
62
|
-
*/
|
|
63
|
-
function matchRoute(method, url, routes) {
|
|
64
|
-
for (const route of routes) {
|
|
65
|
-
if (route.method !== method)
|
|
66
|
-
continue;
|
|
67
|
-
const match = url.match(route.pattern);
|
|
68
|
-
if (match) {
|
|
69
|
-
const params = {};
|
|
70
|
-
match.slice(1).forEach((value, index) => {
|
|
71
|
-
params[`p${index}`] = value;
|
|
72
|
-
});
|
|
73
|
-
return { handler: route.handler, params };
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Send JSON response
|
|
80
|
-
*/
|
|
81
|
-
function sendJson(res, data, status = 200) {
|
|
82
|
-
res.writeHead(status, { 'Content-Type': 'application/json' });
|
|
83
|
-
res.end(JSON.stringify(data));
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Parse JSON body
|
|
87
|
-
*/
|
|
88
|
-
async function parseBody(req) {
|
|
89
|
-
return new Promise((resolve) => {
|
|
90
|
-
let body = '';
|
|
91
|
-
req.on('data', chunk => (body += chunk));
|
|
92
|
-
req.on('end', () => {
|
|
93
|
-
try {
|
|
94
|
-
resolve(JSON.parse(body));
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
resolve(null);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
async function parseMultipartBody(req) {
|
|
103
|
-
return new Promise((resolve, reject) => {
|
|
104
|
-
const contentType = req.headers['content-type'] || '';
|
|
105
|
-
const boundaryMatch = contentType.match(/boundary=(?:"([^"]+)"|([^;]+))/);
|
|
106
|
-
if (!boundaryMatch) {
|
|
107
|
-
resolve([]);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
const boundary = boundaryMatch[1] || boundaryMatch[2];
|
|
111
|
-
const chunks = [];
|
|
112
|
-
req.on('data', (chunk) => chunks.push(chunk));
|
|
113
|
-
req.on('end', () => {
|
|
114
|
-
try {
|
|
115
|
-
const buffer = Buffer.concat(chunks);
|
|
116
|
-
const files = [];
|
|
117
|
-
// Split by boundary
|
|
118
|
-
const boundaryBuffer = Buffer.from(`--${boundary}`);
|
|
119
|
-
let start = 0;
|
|
120
|
-
let pos = buffer.indexOf(boundaryBuffer, start);
|
|
121
|
-
while (pos !== -1) {
|
|
122
|
-
const nextPos = buffer.indexOf(boundaryBuffer, pos + boundaryBuffer.length);
|
|
123
|
-
if (nextPos === -1)
|
|
124
|
-
break;
|
|
125
|
-
const part = buffer.slice(pos + boundaryBuffer.length, nextPos);
|
|
126
|
-
// Find headers end (double CRLF)
|
|
127
|
-
const headerEnd = part.indexOf('\r\n\r\n');
|
|
128
|
-
if (headerEnd === -1) {
|
|
129
|
-
pos = nextPos;
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
const headers = part.slice(0, headerEnd).toString('utf-8');
|
|
133
|
-
const body = part.slice(headerEnd + 4, part.length - 2); // Remove trailing \r\n
|
|
134
|
-
// Parse Content-Disposition
|
|
135
|
-
const filenameMatch = headers.match(/filename="([^"]+)"/);
|
|
136
|
-
const contentTypeMatch = headers.match(/Content-Type:\s*([^\r\n]+)/i);
|
|
137
|
-
if (filenameMatch) {
|
|
138
|
-
files.push({
|
|
139
|
-
filename: filenameMatch[1],
|
|
140
|
-
contentType: contentTypeMatch ? contentTypeMatch[1] : 'application/octet-stream',
|
|
141
|
-
data: body,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
pos = nextPos;
|
|
145
|
-
}
|
|
146
|
-
resolve(files);
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
reject(error);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
req.on('error', reject);
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Build the analysis prompt by replacing variables in the template
|
|
157
|
-
*/
|
|
158
|
-
async function buildAnalysisPrompt(pipeline, catalog, lang) {
|
|
159
|
-
const { getTemplatesDir } = await import('../utils/config.js');
|
|
160
|
-
const yaml = await import('yaml');
|
|
161
|
-
// Load the appropriate template based on language
|
|
162
|
-
const templatePath = join(getTemplatesDir(), `analysis-prompt.${lang}.md`);
|
|
163
|
-
const template = readFileSafe(templatePath);
|
|
164
|
-
if (!template) {
|
|
165
|
-
throw new Error(`Analysis template not found for language: ${lang}`);
|
|
166
|
-
}
|
|
167
|
-
// Format pipeline segments with exact order (readable YAML)
|
|
168
|
-
const pipelineYaml = yaml.stringify({
|
|
169
|
-
name: pipeline.name,
|
|
170
|
-
version: pipeline.version,
|
|
171
|
-
segments: {
|
|
172
|
-
definition: pipeline.definition.map((c, i) => ({ order: i + 1, slug: c.slug, name: c.name })),
|
|
173
|
-
action: pipeline.action.map((c, i) => ({ order: i + 1, slug: c.slug, name: c.name })),
|
|
174
|
-
finish: pipeline.finish.map((c, i) => ({ order: i + 1, slug: c.slug, name: c.name })),
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
// Format catalog (readable YAML)
|
|
178
|
-
const catalogYaml = yaml.stringify(catalog);
|
|
179
|
-
// Replace variables
|
|
180
|
-
return template
|
|
181
|
-
.replace('{ui_language}', lang)
|
|
182
|
-
.replace('{pipeline_segments_ordered}', pipelineYaml)
|
|
183
|
-
.replace('{catalog_all_columns}', catalogYaml);
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Define API routes
|
|
187
|
-
*/
|
|
188
|
-
const routes = [
|
|
189
|
-
// GET /api/status - Get server status including processing issues
|
|
190
|
-
{
|
|
191
|
-
method: 'GET',
|
|
192
|
-
pattern: /^\/api\/status$/,
|
|
193
|
-
handler: async (_req, res) => {
|
|
194
|
-
sendJson(res, {
|
|
195
|
-
success: true,
|
|
196
|
-
data: {
|
|
197
|
-
processingIssues: getProcessingIssues()
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
},
|
|
201
|
-
},
|
|
202
|
-
// GET /api/stats - Get Claude usage statistics
|
|
203
|
-
{
|
|
204
|
-
method: 'GET',
|
|
205
|
-
pattern: /^\/api\/stats$/,
|
|
206
|
-
handler: async (_req, res) => {
|
|
207
|
-
const stats = getStats();
|
|
208
|
-
sendJson(res, {
|
|
209
|
-
success: true,
|
|
210
|
-
data: {
|
|
211
|
-
profile: stats.profile,
|
|
212
|
-
model: stats.model,
|
|
213
|
-
totals: stats.totals,
|
|
214
|
-
session: stats.session,
|
|
215
|
-
history: stats.history.slice(0, 20), // Limit to last 20 calls in API
|
|
216
|
-
processingIssues: getProcessingIssues()
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
// GET /api/monitoring - Get workflow health report
|
|
222
|
-
{
|
|
223
|
-
method: 'GET',
|
|
224
|
-
pattern: /^\/api\/monitoring$/,
|
|
225
|
-
handler: async (_req, res) => {
|
|
226
|
-
const config = getConfig();
|
|
227
|
-
const report = generateMonitoringReport(config.root);
|
|
228
|
-
sendJson(res, { success: true, data: report });
|
|
229
|
-
},
|
|
230
|
-
},
|
|
231
|
-
// GET /api/monitoring/status - Quick health status
|
|
232
|
-
{
|
|
233
|
-
method: 'GET',
|
|
234
|
-
pattern: /^\/api\/monitoring\/status$/,
|
|
235
|
-
handler: async (_req, res) => {
|
|
236
|
-
const config = getConfig();
|
|
237
|
-
const status = getHealthStatus(config.root);
|
|
238
|
-
sendJson(res, { success: true, data: status });
|
|
239
|
-
},
|
|
240
|
-
},
|
|
241
|
-
// GET /api/issues
|
|
242
|
-
{
|
|
243
|
-
method: 'GET',
|
|
244
|
-
pattern: /^\/api\/issues$/,
|
|
245
|
-
handler: async (_req, res) => {
|
|
246
|
-
const config = getConfig();
|
|
247
|
-
const issues = listIssues(config.root);
|
|
248
|
-
const columns = getColumns();
|
|
249
|
-
sendJson(res, { success: true, data: { issues, columns } });
|
|
250
|
-
},
|
|
251
|
-
},
|
|
252
|
-
// GET /api/issues/:key
|
|
253
|
-
{
|
|
254
|
-
method: 'GET',
|
|
255
|
-
pattern: /^\/api\/issues\/(AC-\d{6})$/,
|
|
256
|
-
handler: async (_req, res, params) => {
|
|
257
|
-
const config = getConfig();
|
|
258
|
-
const issue = getIssue(config.root, params.p0);
|
|
259
|
-
if (!issue) {
|
|
260
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
sendJson(res, { success: true, data: issue });
|
|
264
|
-
},
|
|
265
|
-
},
|
|
266
|
-
// GET /api/issues/:key/children - Get direct children
|
|
267
|
-
{
|
|
268
|
-
method: 'GET',
|
|
269
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/children$/,
|
|
270
|
-
handler: async (_req, res, params) => {
|
|
271
|
-
const config = getConfig();
|
|
272
|
-
const issue = getIssue(config.root, params.p0);
|
|
273
|
-
if (!issue) {
|
|
274
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
const children = getChildren(config.root, params.p0);
|
|
278
|
-
sendJson(res, { success: true, data: children });
|
|
279
|
-
},
|
|
280
|
-
},
|
|
281
|
-
// GET /api/issues/:key/subtree - Get all descendants
|
|
282
|
-
{
|
|
283
|
-
method: 'GET',
|
|
284
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/subtree$/,
|
|
285
|
-
handler: async (_req, res, params) => {
|
|
286
|
-
const config = getConfig();
|
|
287
|
-
const issue = getIssue(config.root, params.p0);
|
|
288
|
-
if (!issue) {
|
|
289
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
290
|
-
return;
|
|
291
|
-
}
|
|
292
|
-
const subtree = getSubtree(config.root, params.p0);
|
|
293
|
-
sendJson(res, { success: true, data: subtree });
|
|
294
|
-
},
|
|
295
|
-
},
|
|
296
|
-
// PATCH /api/issues/:key/parent - Set parent
|
|
297
|
-
{
|
|
298
|
-
method: 'PATCH',
|
|
299
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/parent$/,
|
|
300
|
-
handler: async (req, res, params) => {
|
|
301
|
-
const body = await parseBody(req);
|
|
302
|
-
const config = getConfig();
|
|
303
|
-
const issue = getIssue(config.root, params.p0);
|
|
304
|
-
if (!issue) {
|
|
305
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
306
|
-
return;
|
|
307
|
-
}
|
|
308
|
-
const result = setParent(config.root, params.p0, body?.parent_key ?? null);
|
|
309
|
-
if (!result.success) {
|
|
310
|
-
sendJson(res, { success: false, error: result.error }, 400);
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
const updated = getIssue(config.root, params.p0);
|
|
314
|
-
sendJson(res, { success: true, data: updated });
|
|
315
|
-
},
|
|
316
|
-
},
|
|
317
|
-
// POST /api/issues/autocomplete - Generate issue fields using Claude
|
|
318
|
-
{
|
|
319
|
-
method: 'POST',
|
|
320
|
-
pattern: /^\/api\/issues\/autocomplete$/,
|
|
321
|
-
handler: async (req, res) => {
|
|
322
|
-
const body = await parseBody(req);
|
|
323
|
-
if (!body || !body.title || !body.title.trim()) {
|
|
324
|
-
sendJson(res, { success: false, error: 'Title is required' }, 400);
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
const lang = body.lang || 'fr';
|
|
328
|
-
const title = body.title.trim();
|
|
329
|
-
try {
|
|
330
|
-
const prompt = `Tu es un assistant qui aide à créer des tickets de développement.
|
|
331
|
-
À partir du titre suivant, génère les champs du ticket en JSON.
|
|
332
|
-
|
|
333
|
-
Titre: "${title}"
|
|
334
|
-
|
|
335
|
-
Génère un JSON avec:
|
|
336
|
-
- description: Une description détaillée (2-4 phrases) en ${lang === 'fr' ? 'français' : 'anglais'}
|
|
337
|
-
- priority: P0, P1, P2, ou P3 (P2 par défaut pour la plupart des tâches)
|
|
338
|
-
- labels: Un tableau de labels parmi [bug, feature, enhancement, documentation, urgent, refactoring, security, performance, ui, api] (1-3 labels pertinents)
|
|
339
|
-
- acceptance_criteria: Un tableau de 2-5 critères d'acceptation en ${lang === 'fr' ? 'français' : 'anglais'}
|
|
340
|
-
- semver: "patch", "minor", ou "major" selon l'impact
|
|
341
|
-
|
|
342
|
-
Réponds UNIQUEMENT avec le JSON, sans formatage markdown ni explication.`;
|
|
343
|
-
const result = executeClaudePrompt(prompt, 60000);
|
|
344
|
-
if (!result.success) {
|
|
345
|
-
sendJson(res, { success: false, error: result.error || 'Claude failed' }, 500);
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
|
-
// Parse the JSON response
|
|
349
|
-
const output = result.output?.trim() || '';
|
|
350
|
-
// Remove potential markdown code blocks
|
|
351
|
-
const jsonStr = output.replace(/^```json?\n?/, '').replace(/\n?```$/, '').trim();
|
|
352
|
-
try {
|
|
353
|
-
const data = JSON.parse(jsonStr);
|
|
354
|
-
sendJson(res, { success: true, data });
|
|
355
|
-
}
|
|
356
|
-
catch {
|
|
357
|
-
sendJson(res, { success: false, error: 'Failed to parse Claude response' }, 500);
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
catch (error) {
|
|
361
|
-
const message = error instanceof Error ? error.message : 'Autocomplete failed';
|
|
362
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
363
|
-
}
|
|
364
|
-
},
|
|
365
|
-
},
|
|
366
|
-
// POST /api/issues (accepts parent_key for hierarchy)
|
|
367
|
-
{
|
|
368
|
-
method: 'POST',
|
|
369
|
-
pattern: /^\/api\/issues$/,
|
|
370
|
-
handler: async (req, res) => {
|
|
371
|
-
const body = await parseBody(req);
|
|
372
|
-
if (!body || !body.title) {
|
|
373
|
-
sendJson(res, { success: false, error: 'Title is required' }, 400);
|
|
374
|
-
return;
|
|
375
|
-
}
|
|
376
|
-
const config = getConfig();
|
|
377
|
-
try {
|
|
378
|
-
const issue = createIssue(config.root, {
|
|
379
|
-
...body,
|
|
380
|
-
parent_key: body.parent_key,
|
|
381
|
-
});
|
|
382
|
-
sendJson(res, { success: true, data: issue }, 201);
|
|
383
|
-
}
|
|
384
|
-
catch (error) {
|
|
385
|
-
const message = error instanceof Error ? error.message : 'Failed to create issue';
|
|
386
|
-
sendJson(res, { success: false, error: message }, 400);
|
|
387
|
-
}
|
|
388
|
-
},
|
|
389
|
-
},
|
|
390
|
-
// PATCH /api/issues/:key
|
|
391
|
-
{
|
|
392
|
-
method: 'PATCH',
|
|
393
|
-
pattern: /^\/api\/issues\/(AC-\d{6})$/,
|
|
394
|
-
handler: async (req, res, params) => {
|
|
395
|
-
const body = await parseBody(req);
|
|
396
|
-
if (!body) {
|
|
397
|
-
sendJson(res, { success: false, error: 'Invalid body' }, 400);
|
|
398
|
-
return;
|
|
399
|
-
}
|
|
400
|
-
const config = getConfig();
|
|
401
|
-
const issue = updateIssue(config.root, params.p0, body);
|
|
402
|
-
if (!issue) {
|
|
403
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
404
|
-
return;
|
|
405
|
-
}
|
|
406
|
-
sendJson(res, { success: true, data: issue });
|
|
407
|
-
},
|
|
408
|
-
},
|
|
409
|
-
// POST /api/issues/:key/comments
|
|
410
|
-
{
|
|
411
|
-
method: 'POST',
|
|
412
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/comments$/,
|
|
413
|
-
handler: async (req, res, params) => {
|
|
414
|
-
const body = await parseBody(req);
|
|
415
|
-
if (!body || !body.text) {
|
|
416
|
-
sendJson(res, { success: false, error: 'Text is required' }, 400);
|
|
417
|
-
return;
|
|
418
|
-
}
|
|
419
|
-
const config = getConfig();
|
|
420
|
-
const source = body.source === 'claude' ? 'claude' : 'user';
|
|
421
|
-
const issue = addComment(config.root, params.p0, body.text, undefined, source);
|
|
422
|
-
if (!issue) {
|
|
423
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
sendJson(res, { success: true, data: issue });
|
|
427
|
-
},
|
|
428
|
-
},
|
|
429
|
-
// POST /api/issues/:key/move
|
|
430
|
-
{
|
|
431
|
-
method: 'POST',
|
|
432
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/move$/,
|
|
433
|
-
handler: async (req, res, params) => {
|
|
434
|
-
const body = await parseBody(req);
|
|
435
|
-
if (!body || !body.column) {
|
|
436
|
-
sendJson(res, { success: false, error: 'Column is required' }, 400);
|
|
437
|
-
return;
|
|
438
|
-
}
|
|
439
|
-
const issueKey = params.p0;
|
|
440
|
-
// Get target column slug
|
|
441
|
-
const targetColumn = getColumnBySlug(body.column);
|
|
442
|
-
if (!targetColumn) {
|
|
443
|
-
sendJson(res, { success: false, error: 'Column not found' }, 404);
|
|
444
|
-
return;
|
|
445
|
-
}
|
|
446
|
-
// Use new unified flow: move first, then execute action
|
|
447
|
-
const result = await moveAndProcessIssue(issueKey, targetColumn.slug, {
|
|
448
|
-
force: body.force,
|
|
449
|
-
lang: body.lang,
|
|
450
|
-
});
|
|
451
|
-
if (!result.success) {
|
|
452
|
-
sendJson(res, { success: false, error: result.error }, 400);
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
|
-
sendJson(res, {
|
|
456
|
-
success: true,
|
|
457
|
-
data: result.issue,
|
|
458
|
-
actionExecuted: result.actionExecuted,
|
|
459
|
-
});
|
|
460
|
-
},
|
|
461
|
-
},
|
|
462
|
-
// POST /api/issues/:key/next
|
|
463
|
-
{
|
|
464
|
-
method: 'POST',
|
|
465
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/next$/,
|
|
466
|
-
handler: async (req, res, params) => {
|
|
467
|
-
const config = getConfig();
|
|
468
|
-
const issueKey = params.p0;
|
|
469
|
-
const body = await parseBody(req);
|
|
470
|
-
// Get current issue to find next column
|
|
471
|
-
const issue = getIssue(config.root, issueKey);
|
|
472
|
-
if (!issue) {
|
|
473
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
474
|
-
return;
|
|
475
|
-
}
|
|
476
|
-
const currentColumn = getColumnBySlug(issue.column_slug);
|
|
477
|
-
if (!currentColumn) {
|
|
478
|
-
sendJson(res, { success: false, error: 'Current column not found' }, 400);
|
|
479
|
-
return;
|
|
480
|
-
}
|
|
481
|
-
const columns = getColumns();
|
|
482
|
-
const nextColumn = columns.find(c => c.index === currentColumn.index + 1);
|
|
483
|
-
if (!nextColumn) {
|
|
484
|
-
sendJson(res, { success: false, error: 'Already at last column' }, 400);
|
|
485
|
-
return;
|
|
486
|
-
}
|
|
487
|
-
// Use new unified flow: move first, then execute action
|
|
488
|
-
const result = await moveAndProcessIssue(issueKey, nextColumn.slug, { lang: body?.lang });
|
|
489
|
-
if (!result.success) {
|
|
490
|
-
sendJson(res, { success: false, error: result.error }, 400);
|
|
491
|
-
return;
|
|
492
|
-
}
|
|
493
|
-
sendJson(res, {
|
|
494
|
-
success: true,
|
|
495
|
-
data: result.issue,
|
|
496
|
-
actionExecuted: result.actionExecuted,
|
|
497
|
-
});
|
|
498
|
-
},
|
|
499
|
-
},
|
|
500
|
-
// POST /api/issues/:key/archive
|
|
501
|
-
{
|
|
502
|
-
method: 'POST',
|
|
503
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/archive$/,
|
|
504
|
-
handler: async (req, res, params) => {
|
|
505
|
-
const issueKey = params.p0;
|
|
506
|
-
const body = await parseBody(req);
|
|
507
|
-
const columns = getColumns();
|
|
508
|
-
const lastColumn = columns[columns.length - 1];
|
|
509
|
-
const result = await moveAndProcessIssue(issueKey, lastColumn.slug, {
|
|
510
|
-
force: true,
|
|
511
|
-
lang: body?.lang,
|
|
512
|
-
});
|
|
513
|
-
if (!result.success) {
|
|
514
|
-
sendJson(res, { success: false, error: result.error }, 400);
|
|
515
|
-
return;
|
|
516
|
-
}
|
|
517
|
-
sendJson(res, {
|
|
518
|
-
success: true,
|
|
519
|
-
data: result.issue,
|
|
520
|
-
});
|
|
521
|
-
},
|
|
522
|
-
},
|
|
523
|
-
// GET /api/issues/:key/log
|
|
524
|
-
// Returns all column logs concatenated (since logs are per-column: claude-{columnSlug}.log)
|
|
525
|
-
{
|
|
526
|
-
method: 'GET',
|
|
527
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/log$/,
|
|
528
|
-
handler: async (_req, res, params) => {
|
|
529
|
-
const config = getConfig();
|
|
530
|
-
const issueDir = findIssueDir(config.root, params.p0);
|
|
531
|
-
if (!issueDir) {
|
|
532
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
533
|
-
return;
|
|
534
|
-
}
|
|
535
|
-
// Find all claude-*.log files and sort by modification time
|
|
536
|
-
let logFiles = [];
|
|
537
|
-
try {
|
|
538
|
-
const files = readdirSync(issueDir);
|
|
539
|
-
logFiles = files
|
|
540
|
-
.filter(f => f.startsWith('claude-') && f.endsWith('.log'))
|
|
541
|
-
.map(f => {
|
|
542
|
-
const filePath = join(issueDir, f);
|
|
543
|
-
const mtime = getFileMtime(filePath);
|
|
544
|
-
return { path: filePath, mtime: mtime || new Date(0) };
|
|
545
|
-
})
|
|
546
|
-
.sort((a, b) => a.mtime.getTime() - b.mtime.getTime());
|
|
547
|
-
}
|
|
548
|
-
catch {
|
|
549
|
-
// Directory read error
|
|
550
|
-
}
|
|
551
|
-
if (logFiles.length === 0) {
|
|
552
|
-
sendJson(res, {
|
|
553
|
-
success: true,
|
|
554
|
-
data: { content: '', exists: false, mtime: null }
|
|
555
|
-
});
|
|
556
|
-
return;
|
|
557
|
-
}
|
|
558
|
-
// Concatenate all log contents
|
|
559
|
-
let content = '';
|
|
560
|
-
let latestMtime = null;
|
|
561
|
-
for (const logFile of logFiles) {
|
|
562
|
-
const fileContent = readFileSafe(logFile.path) || '';
|
|
563
|
-
if (fileContent) {
|
|
564
|
-
content += fileContent + '\n';
|
|
565
|
-
}
|
|
566
|
-
if (!latestMtime || logFile.mtime > latestMtime) {
|
|
567
|
-
latestMtime = logFile.mtime;
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
sendJson(res, {
|
|
571
|
-
success: true,
|
|
572
|
-
data: {
|
|
573
|
-
content: content.trim(),
|
|
574
|
-
exists: true,
|
|
575
|
-
mtime: latestMtime?.toISOString() || null
|
|
576
|
-
}
|
|
577
|
-
});
|
|
578
|
-
},
|
|
579
|
-
},
|
|
580
|
-
// GET /api/issues/:key/log/:columnSlug
|
|
581
|
-
{
|
|
582
|
-
method: 'GET',
|
|
583
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/log\/([^/]+)$/,
|
|
584
|
-
handler: async (_req, res, params) => {
|
|
585
|
-
const config = getConfig();
|
|
586
|
-
const issueKey = params.p0;
|
|
587
|
-
const columnSlug = params.p1;
|
|
588
|
-
const issueDir = findIssueDir(config.root, issueKey);
|
|
589
|
-
if (!issueDir) {
|
|
590
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
591
|
-
return;
|
|
592
|
-
}
|
|
593
|
-
const logFile = join(issueDir, `claude-${columnSlug}.log`);
|
|
594
|
-
if (!pathExists(logFile)) {
|
|
595
|
-
sendJson(res, {
|
|
596
|
-
success: true,
|
|
597
|
-
data: { content: '', exists: false }
|
|
598
|
-
});
|
|
599
|
-
return;
|
|
600
|
-
}
|
|
601
|
-
const content = readFileSafe(logFile) || '';
|
|
602
|
-
sendJson(res, {
|
|
603
|
-
success: true,
|
|
604
|
-
data: { content, exists: true }
|
|
605
|
-
});
|
|
606
|
-
},
|
|
607
|
-
},
|
|
608
|
-
// GET /api/issues/:key/prompt/:columnSlug
|
|
609
|
-
{
|
|
610
|
-
method: 'GET',
|
|
611
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/prompt\/([^/]+)$/,
|
|
612
|
-
handler: async (_req, res, params) => {
|
|
613
|
-
const config = getConfig();
|
|
614
|
-
const issueKey = params.p0;
|
|
615
|
-
const columnSlug = params.p1;
|
|
616
|
-
const issue = getIssue(config.root, issueKey);
|
|
617
|
-
if (!issue) {
|
|
618
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
619
|
-
return;
|
|
620
|
-
}
|
|
621
|
-
const column = getColumnBySlug(columnSlug);
|
|
622
|
-
if (!column) {
|
|
623
|
-
sendJson(res, { success: false, error: 'Column not found' }, 404);
|
|
624
|
-
return;
|
|
625
|
-
}
|
|
626
|
-
const actionContent = getActionContent(columnSlug, config.lang);
|
|
627
|
-
if (!actionContent) {
|
|
628
|
-
sendJson(res, { success: false, error: 'No ACTION file for this column' }, 404);
|
|
629
|
-
return;
|
|
630
|
-
}
|
|
631
|
-
const issueDir = findIssueDir(config.root, issueKey);
|
|
632
|
-
const prompt = buildPrompt(issue, actionContent, issueDir || undefined, config.lang);
|
|
633
|
-
sendJson(res, {
|
|
634
|
-
success: true,
|
|
635
|
-
data: {
|
|
636
|
-
prompt,
|
|
637
|
-
column: column.name,
|
|
638
|
-
columnSlug,
|
|
639
|
-
}
|
|
640
|
-
});
|
|
641
|
-
},
|
|
642
|
-
},
|
|
643
|
-
// GET /api/issues/:key/attachments
|
|
644
|
-
{
|
|
645
|
-
method: 'GET',
|
|
646
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/attachments$/,
|
|
647
|
-
handler: async (_req, res, params) => {
|
|
648
|
-
const config = getConfig();
|
|
649
|
-
const issueDir = findIssueDir(config.root, params.p0);
|
|
650
|
-
if (!issueDir) {
|
|
651
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
652
|
-
return;
|
|
653
|
-
}
|
|
654
|
-
const attachments = readAttachments(issueDir);
|
|
655
|
-
sendJson(res, { success: true, data: attachments });
|
|
656
|
-
},
|
|
657
|
-
},
|
|
658
|
-
// POST /api/issues/:key/attachments
|
|
659
|
-
{
|
|
660
|
-
method: 'POST',
|
|
661
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/attachments$/,
|
|
662
|
-
handler: async (req, res, params) => {
|
|
663
|
-
const config = getConfig();
|
|
664
|
-
const issueDir = findIssueDir(config.root, params.p0);
|
|
665
|
-
if (!issueDir) {
|
|
666
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
667
|
-
return;
|
|
668
|
-
}
|
|
669
|
-
const attachmentsDir = join(issueDir, 'attachments');
|
|
670
|
-
ensureDir(attachmentsDir);
|
|
671
|
-
try {
|
|
672
|
-
const files = await parseMultipartBody(req);
|
|
673
|
-
if (files.length === 0) {
|
|
674
|
-
sendJson(res, { success: false, error: 'No files uploaded' }, 400);
|
|
675
|
-
return;
|
|
676
|
-
}
|
|
677
|
-
const uploaded = [];
|
|
678
|
-
for (const file of files) {
|
|
679
|
-
// Sanitize filename
|
|
680
|
-
const safeName = file.filename.replace(/[^a-zA-Z0-9._-]/g, '_');
|
|
681
|
-
const filePath = join(attachmentsDir, safeName);
|
|
682
|
-
writeFileSync(filePath, file.data);
|
|
683
|
-
uploaded.push(safeName);
|
|
684
|
-
}
|
|
685
|
-
sendJson(res, { success: true, data: uploaded }, 201);
|
|
686
|
-
}
|
|
687
|
-
catch (error) {
|
|
688
|
-
const message = error instanceof Error ? error.message : 'Upload failed';
|
|
689
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
690
|
-
}
|
|
691
|
-
},
|
|
692
|
-
},
|
|
693
|
-
// DELETE /api/issues/:key/attachments/:filename
|
|
694
|
-
{
|
|
695
|
-
method: 'DELETE',
|
|
696
|
-
pattern: /^\/api\/issues\/(AC-\d{6})\/attachments\/([^/]+)$/,
|
|
697
|
-
handler: async (_req, res, params) => {
|
|
698
|
-
const config = getConfig();
|
|
699
|
-
const issueDir = findIssueDir(config.root, params.p0);
|
|
700
|
-
if (!issueDir) {
|
|
701
|
-
sendJson(res, { success: false, error: 'Issue not found' }, 404);
|
|
702
|
-
return;
|
|
703
|
-
}
|
|
704
|
-
const filename = decodeURIComponent(params.p1);
|
|
705
|
-
const filePath = join(issueDir, 'attachments', filename);
|
|
706
|
-
if (!pathExists(filePath)) {
|
|
707
|
-
sendJson(res, { success: false, error: 'File not found' }, 404);
|
|
708
|
-
return;
|
|
709
|
-
}
|
|
710
|
-
try {
|
|
711
|
-
unlinkSync(filePath);
|
|
712
|
-
sendJson(res, { success: true });
|
|
713
|
-
}
|
|
714
|
-
catch (error) {
|
|
715
|
-
const message = error instanceof Error ? error.message : 'Delete failed';
|
|
716
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
717
|
-
}
|
|
718
|
-
},
|
|
719
|
-
},
|
|
720
|
-
// GET /api/columns
|
|
721
|
-
{
|
|
722
|
-
method: 'GET',
|
|
723
|
-
pattern: /^\/api\/columns$/,
|
|
724
|
-
handler: async (_req, res) => {
|
|
725
|
-
const columns = getColumns();
|
|
726
|
-
sendJson(res, { success: true, data: columns });
|
|
727
|
-
},
|
|
728
|
-
},
|
|
729
|
-
// GET /api/columns/:slug/actions?lang=xx
|
|
730
|
-
{
|
|
731
|
-
method: 'GET',
|
|
732
|
-
pattern: /^\/api\/columns\/([^/]+)\/actions/,
|
|
733
|
-
handler: async (req, res, params) => {
|
|
734
|
-
const config = getConfig();
|
|
735
|
-
const slug = params.p0;
|
|
736
|
-
// Parse query string for lang
|
|
737
|
-
const urlObj = new URL(req.url || '/', `http://localhost`);
|
|
738
|
-
const lang = (urlObj.searchParams.get('lang') || config.lang);
|
|
739
|
-
const column = getColumnBySlug(slug);
|
|
740
|
-
if (!column) {
|
|
741
|
-
sendJson(res, { success: false, error: 'Column not found' }, 404);
|
|
742
|
-
return;
|
|
743
|
-
}
|
|
744
|
-
const actionFile = join(config.root, slug, `ACTION.${lang}.md`);
|
|
745
|
-
let content;
|
|
746
|
-
let mtime = null;
|
|
747
|
-
let relativePath;
|
|
748
|
-
let isFromCatalog = false;
|
|
749
|
-
if (pathExists(actionFile)) {
|
|
750
|
-
// Local ACTION file exists
|
|
751
|
-
content = readFileSafe(actionFile) || '';
|
|
752
|
-
mtime = getFileMtime(actionFile);
|
|
753
|
-
relativePath = `${slug}/ACTION.${lang}.md`;
|
|
754
|
-
}
|
|
755
|
-
else {
|
|
756
|
-
// Fallback to catalog prompt
|
|
757
|
-
const { getPromptContent } = await import('../core/catalog.js');
|
|
758
|
-
const baseSlug = slug.replace(/^\d{2}_/, ''); // Strip numeric prefix
|
|
759
|
-
const catalogContent = getPromptContent(baseSlug, lang);
|
|
760
|
-
if (!catalogContent) {
|
|
761
|
-
sendJson(res, { success: false, error: 'Action file not found' }, 404);
|
|
762
|
-
return;
|
|
763
|
-
}
|
|
764
|
-
content = catalogContent;
|
|
765
|
-
relativePath = `templates/prompts/${baseSlug}.${lang}.md (catalog)`;
|
|
766
|
-
isFromCatalog = true;
|
|
767
|
-
}
|
|
768
|
-
sendJson(res, {
|
|
769
|
-
success: true,
|
|
770
|
-
data: {
|
|
771
|
-
content,
|
|
772
|
-
path: relativePath,
|
|
773
|
-
updated_at: mtime?.toISOString() || null
|
|
774
|
-
}
|
|
775
|
-
});
|
|
776
|
-
},
|
|
777
|
-
},
|
|
778
|
-
// POST /api/columns/:slug/actions?lang=xx
|
|
779
|
-
{
|
|
780
|
-
method: 'POST',
|
|
781
|
-
pattern: /^\/api\/columns\/([^/]+)\/actions/,
|
|
782
|
-
handler: async (req, res, params) => {
|
|
783
|
-
const config = getConfig();
|
|
784
|
-
const slug = params.p0;
|
|
785
|
-
// Parse query string for lang
|
|
786
|
-
const urlObj = new URL(req.url || '/', `http://localhost`);
|
|
787
|
-
const lang = (urlObj.searchParams.get('lang') || config.lang);
|
|
788
|
-
const column = getColumnBySlug(slug);
|
|
789
|
-
if (!column) {
|
|
790
|
-
sendJson(res, { success: false, error: 'Column not found' }, 404);
|
|
791
|
-
return;
|
|
792
|
-
}
|
|
793
|
-
const body = await parseBody(req);
|
|
794
|
-
if (!body || typeof body.content !== 'string') {
|
|
795
|
-
sendJson(res, { success: false, error: 'Content is required' }, 400);
|
|
796
|
-
return;
|
|
797
|
-
}
|
|
798
|
-
const actionFile = join(config.root, slug, `ACTION.${lang}.md`);
|
|
799
|
-
writeFileSafe(actionFile, body.content);
|
|
800
|
-
sendJson(res, { success: true });
|
|
801
|
-
},
|
|
802
|
-
},
|
|
803
|
-
// GET /api/summary
|
|
804
|
-
{
|
|
805
|
-
method: 'GET',
|
|
806
|
-
pattern: /^\/api\/summary$/,
|
|
807
|
-
handler: async (_req, res) => {
|
|
808
|
-
const config = getConfig();
|
|
809
|
-
const issues = listIssues(config.root);
|
|
810
|
-
const summary = getWorkflowSummary(issues);
|
|
811
|
-
sendJson(res, { success: true, data: summary });
|
|
812
|
-
},
|
|
813
|
-
},
|
|
814
|
-
// ========== PIPELINE ROUTES ==========
|
|
815
|
-
// GET /api/catalog - Get column catalog
|
|
816
|
-
{
|
|
817
|
-
method: 'GET',
|
|
818
|
-
pattern: /^\/api\/catalog$/,
|
|
819
|
-
handler: async (_req, res) => {
|
|
820
|
-
try {
|
|
821
|
-
const catalog = loadCatalog();
|
|
822
|
-
sendJson(res, { success: true, data: catalog });
|
|
823
|
-
}
|
|
824
|
-
catch (error) {
|
|
825
|
-
const message = error instanceof Error ? error.message : 'Failed to load catalog';
|
|
826
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
827
|
-
}
|
|
828
|
-
},
|
|
829
|
-
},
|
|
830
|
-
// GET /api/prompts/:slug?lang=xx - Get prompt content for a column
|
|
831
|
-
{
|
|
832
|
-
method: 'GET',
|
|
833
|
-
pattern: /^\/api\/prompts\/([^/?]+)/,
|
|
834
|
-
handler: async (req, res, params) => {
|
|
835
|
-
const slug = decodeURIComponent(params.p0);
|
|
836
|
-
// Parse query string for lang
|
|
837
|
-
const urlObj = new URL(req.url || '/', 'http://localhost');
|
|
838
|
-
const lang = (urlObj.searchParams.get('lang') || 'en');
|
|
839
|
-
const content = getPromptContent(slug, lang);
|
|
840
|
-
sendJson(res, { success: true, data: content });
|
|
841
|
-
},
|
|
842
|
-
},
|
|
843
|
-
// POST /api/catalog/generate - Generate a new column with Claude
|
|
844
|
-
{
|
|
845
|
-
method: 'POST',
|
|
846
|
-
pattern: /^\/api\/catalog\/generate$/,
|
|
847
|
-
handler: async (req, res) => {
|
|
848
|
-
const body = await parseBody(req);
|
|
849
|
-
if (!body || !body.name || !body.segment || !body.description) {
|
|
850
|
-
sendJson(res, { success: false, error: 'Name, segment, and description are required' }, 400);
|
|
851
|
-
return;
|
|
852
|
-
}
|
|
853
|
-
const { name, segment, description } = body;
|
|
854
|
-
// Generate slug from name
|
|
855
|
-
const slug = name
|
|
856
|
-
.toLowerCase()
|
|
857
|
-
.normalize('NFD').replace(/[\u0300-\u036f]/g, '')
|
|
858
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
859
|
-
.replace(/^-+|-+$/g, '')
|
|
860
|
-
.replace(/-+/g, '-');
|
|
861
|
-
if (!slug) {
|
|
862
|
-
sendJson(res, { success: false, error: 'Invalid column name' }, 400);
|
|
863
|
-
return;
|
|
864
|
-
}
|
|
865
|
-
// Check if slug already exists
|
|
866
|
-
const existingPrompt = getPromptContent(slug, 'en');
|
|
867
|
-
if (existingPrompt) {
|
|
868
|
-
sendJson(res, { success: false, error: 'A column with this slug already exists' }, 400);
|
|
869
|
-
return;
|
|
870
|
-
}
|
|
871
|
-
try {
|
|
872
|
-
// Call Claude to generate prompts
|
|
873
|
-
const templatesDir = getTemplatesDir();
|
|
874
|
-
const promptsDir = join(templatesDir, 'prompts');
|
|
875
|
-
// Read 2 existing templates as examples for format
|
|
876
|
-
const exampleFiles = ['build-dist.en.md', 'backlog.en.md', 'retest.en.md'];
|
|
877
|
-
let examples = '';
|
|
878
|
-
for (const file of exampleFiles) {
|
|
879
|
-
const content = readFileSafe(join(promptsDir, file));
|
|
880
|
-
if (content) {
|
|
881
|
-
examples += `\n--- Example: ${file} ---\n${content}\n`;
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
const prompt = `Generate two ACTION.md prompt files for a workflow column called "${name}".
|
|
885
|
-
|
|
886
|
-
This column is in the "${segment}" segment of a development pipeline.
|
|
887
|
-
Description: ${description}
|
|
888
|
-
|
|
889
|
-
Here are examples of existing column templates to follow the same format:
|
|
890
|
-
${examples}
|
|
891
|
-
|
|
892
|
-
Generate prompts in the SAME FORMAT as the examples above, with:
|
|
893
|
-
- Actions that are SPECIFIC and RELEVANT to "${name}" based on its description
|
|
894
|
-
- autocode CLI commands where appropriate (next, move, comment, new)
|
|
895
|
-
- Validation criteria specific to this column type
|
|
896
|
-
|
|
897
|
-
Output format:
|
|
898
|
-
===EN===
|
|
899
|
-
[English content following the example format]
|
|
900
|
-
===FR===
|
|
901
|
-
[French content - same structure, translated to French]
|
|
902
|
-
|
|
903
|
-
IMPORTANT:
|
|
904
|
-
- Generate actions that make sense for this specific column type "${name}"
|
|
905
|
-
- Do NOT copy actions from the examples - adapt them to the specific purpose of "${name}"
|
|
906
|
-
- Output ONLY the two prompts separated by ===EN=== and ===FR===, nothing else`;
|
|
907
|
-
const claudeResult = executeClaudePrompt(prompt);
|
|
908
|
-
if (!claudeResult.success) {
|
|
909
|
-
throw new Error(claudeResult.error || 'Claude command failed');
|
|
910
|
-
}
|
|
911
|
-
const result = claudeResult.output || '';
|
|
912
|
-
// Parse the result
|
|
913
|
-
const enMatch = result.match(/===EN===\s*([\s\S]*?)(?====FR===|$)/);
|
|
914
|
-
const frMatch = result.match(/===FR===\s*([\s\S]*?)$/);
|
|
915
|
-
if (!enMatch || !frMatch) {
|
|
916
|
-
sendJson(res, { success: false, error: 'Failed to parse Claude response' }, 500);
|
|
917
|
-
return;
|
|
918
|
-
}
|
|
919
|
-
const promptEn = enMatch[1].trim();
|
|
920
|
-
const promptFr = frMatch[1].trim();
|
|
921
|
-
// Save prompt files (reuse templatesDir and promptsDir from above)
|
|
922
|
-
writeFileSafe(join(promptsDir, `${slug}.en.md`), promptEn);
|
|
923
|
-
writeFileSafe(join(promptsDir, `${slug}.fr.md`), promptFr);
|
|
924
|
-
// Update catalog.yaml using YAML parser
|
|
925
|
-
const catalogPath = join(templatesDir, 'catalog.yaml');
|
|
926
|
-
const catalogContent = readFileSafe(catalogPath) || '';
|
|
927
|
-
const yaml = await import('yaml');
|
|
928
|
-
const catalog = yaml.parse(catalogContent);
|
|
929
|
-
if (!catalog.segments?.[segment]) {
|
|
930
|
-
sendJson(res, { success: false, error: 'Segment not found in catalog' }, 500);
|
|
931
|
-
return;
|
|
932
|
-
}
|
|
933
|
-
// Add the new column
|
|
934
|
-
catalog.segments[segment].columns.push({
|
|
935
|
-
slug,
|
|
936
|
-
name,
|
|
937
|
-
description,
|
|
938
|
-
});
|
|
939
|
-
// Write back with proper YAML formatting
|
|
940
|
-
const updatedCatalog = yaml.stringify(catalog, { lineWidth: 0 });
|
|
941
|
-
writeFileSafe(catalogPath, '# AutoCode Column Catalog\n# Defines available columns for each pipeline segment\n# Columns can be selected from this catalog when configuring pipelines\n\n' + updatedCatalog);
|
|
942
|
-
// Reset catalog cache
|
|
943
|
-
const { resetCatalog } = await import('../core/catalog.js');
|
|
944
|
-
resetCatalog();
|
|
945
|
-
sendJson(res, { success: true, data: { slug, name, segment } }, 201);
|
|
946
|
-
}
|
|
947
|
-
catch (error) {
|
|
948
|
-
const message = error instanceof Error ? error.message : 'Failed to generate column';
|
|
949
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
950
|
-
}
|
|
951
|
-
},
|
|
952
|
-
},
|
|
953
|
-
// POST /api/catalog/autocreate - Analyze project and propose columns
|
|
954
|
-
{
|
|
955
|
-
method: 'POST',
|
|
956
|
-
pattern: /^\/api\/catalog\/autocreate$/,
|
|
957
|
-
handler: async (_req, res) => {
|
|
958
|
-
try {
|
|
959
|
-
// Check if Claude is available
|
|
960
|
-
if (!isClaudeAvailable()) {
|
|
961
|
-
sendJson(res, { success: false, error: 'Claude CLI not found' }, 503);
|
|
962
|
-
return;
|
|
963
|
-
}
|
|
964
|
-
// Execute autocreate analysis
|
|
965
|
-
const result = executeAutocreate();
|
|
966
|
-
sendJson(res, { success: true, data: result });
|
|
967
|
-
}
|
|
968
|
-
catch (error) {
|
|
969
|
-
const message = error instanceof Error ? error.message : 'Autocreate analysis failed';
|
|
970
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
971
|
-
}
|
|
972
|
-
},
|
|
973
|
-
},
|
|
974
|
-
// POST /api/catalog/autocreate/apply - Apply selected columns to catalog
|
|
975
|
-
{
|
|
976
|
-
method: 'POST',
|
|
977
|
-
pattern: /^\/api\/catalog\/autocreate\/apply$/,
|
|
978
|
-
handler: async (req, res) => {
|
|
979
|
-
const body = await parseBody(req);
|
|
980
|
-
if (!body || !body.columns || !Array.isArray(body.columns) || body.columns.length === 0) {
|
|
981
|
-
sendJson(res, { success: false, error: 'No columns provided' }, 400);
|
|
982
|
-
return;
|
|
983
|
-
}
|
|
984
|
-
try {
|
|
985
|
-
const templatesDir = getTemplatesDir();
|
|
986
|
-
const promptsDir = join(templatesDir, 'prompts');
|
|
987
|
-
const catalogPath = join(templatesDir, 'catalog.yaml');
|
|
988
|
-
// Load current catalog
|
|
989
|
-
const catalogContent = readFileSafe(catalogPath) || '';
|
|
990
|
-
const yaml = await import('yaml');
|
|
991
|
-
const catalog = yaml.parse(catalogContent);
|
|
992
|
-
let addedCount = 0;
|
|
993
|
-
for (const col of body.columns) {
|
|
994
|
-
// Validate column structure
|
|
995
|
-
if (!col.key || !col.display_name?.en || !col.display_name?.fr) {
|
|
996
|
-
continue;
|
|
997
|
-
}
|
|
998
|
-
// Write prompt files
|
|
999
|
-
for (const file of col.files_to_create) {
|
|
1000
|
-
if (file.content?.en) {
|
|
1001
|
-
writeFileSafe(join(promptsDir, `${col.key}.en.md`), file.content.en);
|
|
1002
|
-
}
|
|
1003
|
-
if (file.content?.fr) {
|
|
1004
|
-
writeFileSafe(join(promptsDir, `${col.key}.fr.md`), file.content.fr);
|
|
1005
|
-
}
|
|
1006
|
-
}
|
|
1007
|
-
// If no files_to_create, generate default prompt files
|
|
1008
|
-
if (!col.files_to_create || col.files_to_create.length === 0) {
|
|
1009
|
-
const defaultPromptEn = `# ${col.display_name.en}\n\n## Role\n${col.short_description.en}\n\n## Actions\n1. Execute the required tasks\n2. Validate the results\n\n## Validation Criteria\n- [ ] Task completed successfully\n`;
|
|
1010
|
-
const defaultPromptFr = `# ${col.display_name.fr}\n\n## Rôle\n${col.short_description.fr}\n\n## Actions\n1. Exécuter les tâches requises\n2. Valider les résultats\n\n## Critères de validation\n- [ ] Tâche complétée avec succès\n`;
|
|
1011
|
-
writeFileSafe(join(promptsDir, `${col.key}.en.md`), defaultPromptEn);
|
|
1012
|
-
writeFileSafe(join(promptsDir, `${col.key}.fr.md`), defaultPromptFr);
|
|
1013
|
-
}
|
|
1014
|
-
// Determine segment
|
|
1015
|
-
const segment = col.segment_hint || 'action';
|
|
1016
|
-
if (!catalog.segments?.[segment]) {
|
|
1017
|
-
continue;
|
|
1018
|
-
}
|
|
1019
|
-
// Check if column already exists
|
|
1020
|
-
const exists = catalog.segments[segment].columns.some(c => c.slug === col.key);
|
|
1021
|
-
if (exists) {
|
|
1022
|
-
continue;
|
|
1023
|
-
}
|
|
1024
|
-
// Add to catalog
|
|
1025
|
-
catalog.segments[segment].columns.push({
|
|
1026
|
-
slug: col.key,
|
|
1027
|
-
name: col.display_name.en,
|
|
1028
|
-
description: col.short_description.en,
|
|
1029
|
-
});
|
|
1030
|
-
addedCount++;
|
|
1031
|
-
}
|
|
1032
|
-
// Write updated catalog
|
|
1033
|
-
const updatedCatalog = yaml.stringify(catalog, { lineWidth: 0 });
|
|
1034
|
-
writeFileSafe(catalogPath, '# AutoCode Column Catalog\n# Defines available columns for each pipeline segment\n# Columns can be selected from this catalog when configuring pipelines\n\n' + updatedCatalog);
|
|
1035
|
-
// Reset catalog cache
|
|
1036
|
-
const { resetCatalog } = await import('../core/catalog.js');
|
|
1037
|
-
resetCatalog();
|
|
1038
|
-
sendJson(res, { success: true, data: { added: addedCount } }, 201);
|
|
1039
|
-
}
|
|
1040
|
-
catch (error) {
|
|
1041
|
-
const message = error instanceof Error ? error.message : 'Failed to apply columns';
|
|
1042
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
1043
|
-
}
|
|
1044
|
-
},
|
|
1045
|
-
},
|
|
1046
|
-
// POST /api/pipeline/analyze - Analyze pipeline configuration with Claude
|
|
1047
|
-
{
|
|
1048
|
-
method: 'POST',
|
|
1049
|
-
pattern: /^\/api\/pipeline\/analyze$/,
|
|
1050
|
-
handler: async (req, res) => {
|
|
1051
|
-
const body = await parseBody(req);
|
|
1052
|
-
const lang = (body?.lang === 'fr' ? 'fr' : 'en');
|
|
1053
|
-
try {
|
|
1054
|
-
// Get pipeline (specific or active)
|
|
1055
|
-
let pipeline = null;
|
|
1056
|
-
if (body?.pipelineKey) {
|
|
1057
|
-
const config = loadPipelinesConfig();
|
|
1058
|
-
pipeline = config?.pipelines[body.pipelineKey] || null;
|
|
1059
|
-
}
|
|
1060
|
-
else {
|
|
1061
|
-
pipeline = getActivePipeline();
|
|
1062
|
-
}
|
|
1063
|
-
if (!pipeline) {
|
|
1064
|
-
sendJson(res, { success: false, error: 'Pipeline not found' }, 404);
|
|
1065
|
-
return;
|
|
1066
|
-
}
|
|
1067
|
-
// Get catalog
|
|
1068
|
-
const catalog = loadCatalog();
|
|
1069
|
-
// Build prompt with variables
|
|
1070
|
-
const prompt = await buildAnalysisPrompt(pipeline, catalog, lang);
|
|
1071
|
-
// Call Claude with extended timeout (5 min for analysis) and larger buffer (5MB)
|
|
1072
|
-
const result = executeClaudePrompt(prompt, 300000, 5 * 1024 * 1024);
|
|
1073
|
-
if (!result.success) {
|
|
1074
|
-
sendJson(res, { success: false, error: result.error || 'Analysis failed' }, 500);
|
|
1075
|
-
return;
|
|
1076
|
-
}
|
|
1077
|
-
sendJson(res, { success: true, data: { analysis: result.output } });
|
|
1078
|
-
}
|
|
1079
|
-
catch (error) {
|
|
1080
|
-
const message = error instanceof Error ? error.message : 'Analysis failed';
|
|
1081
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
1082
|
-
}
|
|
1083
|
-
},
|
|
1084
|
-
},
|
|
1085
|
-
// GET /api/pipelines - List all pipelines
|
|
1086
|
-
{
|
|
1087
|
-
method: 'GET',
|
|
1088
|
-
pattern: /^\/api\/pipelines$/,
|
|
1089
|
-
handler: async (_req, res) => {
|
|
1090
|
-
const pipelines = listPipelines();
|
|
1091
|
-
sendJson(res, { success: true, data: pipelines });
|
|
1092
|
-
},
|
|
1093
|
-
},
|
|
1094
|
-
// GET /api/pipelines/exists - Check if pipeline.yml exists
|
|
1095
|
-
{
|
|
1096
|
-
method: 'GET',
|
|
1097
|
-
pattern: /^\/api\/pipelines\/exists$/,
|
|
1098
|
-
handler: async (_req, res) => {
|
|
1099
|
-
sendJson(res, { success: true, data: { exists: pipelineExists() } });
|
|
1100
|
-
},
|
|
1101
|
-
},
|
|
1102
|
-
// GET /api/pipelines/active - Get active pipeline
|
|
1103
|
-
{
|
|
1104
|
-
method: 'GET',
|
|
1105
|
-
pattern: /^\/api\/pipelines\/active$/,
|
|
1106
|
-
handler: async (_req, res) => {
|
|
1107
|
-
const pipeline = getActivePipeline();
|
|
1108
|
-
if (!pipeline) {
|
|
1109
|
-
sendJson(res, { success: false, error: 'No active pipeline' }, 404);
|
|
1110
|
-
return;
|
|
1111
|
-
}
|
|
1112
|
-
sendJson(res, { success: true, data: pipeline });
|
|
1113
|
-
},
|
|
1114
|
-
},
|
|
1115
|
-
// POST /api/pipelines - Create a new pipeline
|
|
1116
|
-
{
|
|
1117
|
-
method: 'POST',
|
|
1118
|
-
pattern: /^\/api\/pipelines$/,
|
|
1119
|
-
handler: async (req, res) => {
|
|
1120
|
-
const body = await parseBody(req);
|
|
1121
|
-
if (!body || !body.name || !body.pipeline) {
|
|
1122
|
-
sendJson(res, { success: false, error: 'Name and pipeline are required' }, 400);
|
|
1123
|
-
return;
|
|
1124
|
-
}
|
|
1125
|
-
try {
|
|
1126
|
-
createPipeline(body.name, body.pipeline, body.setActive || false);
|
|
1127
|
-
sendJson(res, { success: true }, 201);
|
|
1128
|
-
}
|
|
1129
|
-
catch (error) {
|
|
1130
|
-
const message = error instanceof Error ? error.message : 'Failed to create pipeline';
|
|
1131
|
-
sendJson(res, { success: false, error: message }, 400);
|
|
1132
|
-
}
|
|
1133
|
-
},
|
|
1134
|
-
},
|
|
1135
|
-
// PUT /api/pipelines/:name/activate - Activate a pipeline
|
|
1136
|
-
{
|
|
1137
|
-
method: 'PUT',
|
|
1138
|
-
pattern: /^\/api\/pipelines\/([^/]+)\/activate$/,
|
|
1139
|
-
handler: async (_req, res, params) => {
|
|
1140
|
-
const name = decodeURIComponent(params.p0);
|
|
1141
|
-
const config = getConfig();
|
|
1142
|
-
try {
|
|
1143
|
-
setActivePipeline(name);
|
|
1144
|
-
// Apply sync to update folder structure
|
|
1145
|
-
const result = applySync(config.root);
|
|
1146
|
-
sendJson(res, { success: true, data: result });
|
|
1147
|
-
}
|
|
1148
|
-
catch (error) {
|
|
1149
|
-
const message = error instanceof Error ? error.message : 'Failed to activate pipeline';
|
|
1150
|
-
sendJson(res, { success: false, error: message }, 400);
|
|
1151
|
-
}
|
|
1152
|
-
},
|
|
1153
|
-
},
|
|
1154
|
-
// DELETE /api/pipelines/:name - Delete a pipeline
|
|
1155
|
-
{
|
|
1156
|
-
method: 'DELETE',
|
|
1157
|
-
pattern: /^\/api\/pipelines\/([^/]+)$/,
|
|
1158
|
-
handler: async (_req, res, params) => {
|
|
1159
|
-
const name = decodeURIComponent(params.p0);
|
|
1160
|
-
try {
|
|
1161
|
-
deletePipeline(name);
|
|
1162
|
-
sendJson(res, { success: true });
|
|
1163
|
-
}
|
|
1164
|
-
catch (error) {
|
|
1165
|
-
const message = error instanceof Error ? error.message : 'Failed to delete pipeline';
|
|
1166
|
-
sendJson(res, { success: false, error: message }, 400);
|
|
1167
|
-
}
|
|
1168
|
-
},
|
|
1169
|
-
},
|
|
1170
|
-
// GET /api/sync/preview - Preview sync changes
|
|
1171
|
-
{
|
|
1172
|
-
method: 'GET',
|
|
1173
|
-
pattern: /^\/api\/sync\/preview$/,
|
|
1174
|
-
handler: async (_req, res) => {
|
|
1175
|
-
const config = getConfig();
|
|
1176
|
-
const changes = previewSync(config.root);
|
|
1177
|
-
sendJson(res, { success: true, data: changes });
|
|
1178
|
-
},
|
|
1179
|
-
},
|
|
1180
|
-
// POST /api/sync - Apply sync
|
|
1181
|
-
{
|
|
1182
|
-
method: 'POST',
|
|
1183
|
-
pattern: /^\/api\/sync$/,
|
|
1184
|
-
handler: async (_req, res) => {
|
|
1185
|
-
const config = getConfig();
|
|
1186
|
-
const result = applySync(config.root);
|
|
1187
|
-
sendJson(res, { success: true, data: result });
|
|
1188
|
-
},
|
|
1189
|
-
},
|
|
1190
|
-
// GET /api/transition - Get issues in transition
|
|
1191
|
-
{
|
|
1192
|
-
method: 'GET',
|
|
1193
|
-
pattern: /^\/api\/transition$/,
|
|
1194
|
-
handler: async (_req, res) => {
|
|
1195
|
-
const config = getConfig();
|
|
1196
|
-
const issues = getTransitionIssues(config.root);
|
|
1197
|
-
sendJson(res, { success: true, data: issues });
|
|
1198
|
-
},
|
|
1199
|
-
},
|
|
1200
|
-
// GET /api/transition/has - Check if there are transition issues
|
|
1201
|
-
{
|
|
1202
|
-
method: 'GET',
|
|
1203
|
-
pattern: /^\/api\/transition\/has$/,
|
|
1204
|
-
handler: async (_req, res) => {
|
|
1205
|
-
const config = getConfig();
|
|
1206
|
-
sendJson(res, { success: true, data: { hasTransition: hasTransitionIssues(config.root) } });
|
|
1207
|
-
},
|
|
1208
|
-
},
|
|
1209
|
-
// POST /api/transition/resolve - Resolve transition issues
|
|
1210
|
-
{
|
|
1211
|
-
method: 'POST',
|
|
1212
|
-
pattern: /^\/api\/transition\/resolve$/,
|
|
1213
|
-
handler: async (req, res) => {
|
|
1214
|
-
const body = await parseBody(req);
|
|
1215
|
-
if (!body || !body.actions) {
|
|
1216
|
-
sendJson(res, { success: false, error: 'Actions are required' }, 400);
|
|
1217
|
-
return;
|
|
1218
|
-
}
|
|
1219
|
-
const config = getConfig();
|
|
1220
|
-
const result = resolveTransitionIssues(config.root, body.actions);
|
|
1221
|
-
sendJson(res, { success: true, data: result });
|
|
1222
|
-
},
|
|
1223
|
-
},
|
|
1224
|
-
// GET /api/changelog - Get parsed changelog
|
|
1225
|
-
{
|
|
1226
|
-
method: 'GET',
|
|
1227
|
-
pattern: /^\/api\/changelog/,
|
|
1228
|
-
handler: async (req, res) => {
|
|
1229
|
-
const reqUrl = new URL(req.url, `http://${req.headers.host}`);
|
|
1230
|
-
const lang = reqUrl.searchParams.get('lang') === 'fr' ? 'fr' : 'en';
|
|
1231
|
-
const config = getConfig();
|
|
1232
|
-
// Changelog files are at project root (parent of autocode folder)
|
|
1233
|
-
const projectRoot = config.root.endsWith('autocode')
|
|
1234
|
-
? join(config.root, '..')
|
|
1235
|
-
: config.root;
|
|
1236
|
-
const filename = lang === 'fr' ? 'CHANGELOG.fr.md' : 'CHANGELOG.md';
|
|
1237
|
-
const filepath = join(projectRoot, filename);
|
|
1238
|
-
const content = readFileSafe(filepath);
|
|
1239
|
-
if (!content) {
|
|
1240
|
-
sendJson(res, { success: false, error: 'Changelog not found' }, 404);
|
|
1241
|
-
return;
|
|
1242
|
-
}
|
|
1243
|
-
const entries = parseChangelog(content);
|
|
1244
|
-
const topTag = entries[0]?.tag || '';
|
|
1245
|
-
sendJson(res, {
|
|
1246
|
-
success: true,
|
|
1247
|
-
data: { lang, topTag, entries }
|
|
1248
|
-
});
|
|
1249
|
-
},
|
|
1250
|
-
},
|
|
1251
|
-
// POST /api/changelog/summary - Get changelog diff with AI summary
|
|
1252
|
-
{
|
|
1253
|
-
method: 'POST',
|
|
1254
|
-
pattern: /^\/api\/changelog\/summary/,
|
|
1255
|
-
handler: async (req, res) => {
|
|
1256
|
-
const body = await parseBody(req);
|
|
1257
|
-
const lang = body?.lang === 'fr' ? 'fr' : 'en';
|
|
1258
|
-
const lastSeenTag = body?.lastSeenTag || null;
|
|
1259
|
-
const config = getConfig();
|
|
1260
|
-
const projectRoot = config.root.endsWith('autocode')
|
|
1261
|
-
? join(config.root, '..')
|
|
1262
|
-
: config.root;
|
|
1263
|
-
const filename = lang === 'fr' ? 'CHANGELOG.fr.md' : 'CHANGELOG.md';
|
|
1264
|
-
const filepath = join(projectRoot, filename);
|
|
1265
|
-
const content = readFileSafe(filepath);
|
|
1266
|
-
if (!content) {
|
|
1267
|
-
sendJson(res, { success: false, error: 'Changelog not found' }, 404);
|
|
1268
|
-
return;
|
|
1269
|
-
}
|
|
1270
|
-
const allEntries = parseChangelog(content);
|
|
1271
|
-
if (!allEntries.length) {
|
|
1272
|
-
sendJson(res, { success: false, error: 'No changelog entries' }, 404);
|
|
1273
|
-
return;
|
|
1274
|
-
}
|
|
1275
|
-
const topTag = allEntries[0]?.tag || '';
|
|
1276
|
-
// Calculate diff entries
|
|
1277
|
-
let diffEntries;
|
|
1278
|
-
let isFirstVisit = false;
|
|
1279
|
-
if (!lastSeenTag) {
|
|
1280
|
-
// First visit: show all entries
|
|
1281
|
-
diffEntries = allEntries;
|
|
1282
|
-
isFirstVisit = true;
|
|
1283
|
-
}
|
|
1284
|
-
else {
|
|
1285
|
-
const lastSeenIndex = allEntries.findIndex(e => e.tag === lastSeenTag);
|
|
1286
|
-
if (lastSeenIndex === -1) {
|
|
1287
|
-
// Tag not found, show only latest
|
|
1288
|
-
diffEntries = [allEntries[0]];
|
|
1289
|
-
}
|
|
1290
|
-
else if (lastSeenIndex === 0) {
|
|
1291
|
-
// No new versions
|
|
1292
|
-
sendJson(res, { success: true, data: { topTag, entries: [], summary: null, isFirstVisit: false } });
|
|
1293
|
-
return;
|
|
1294
|
-
}
|
|
1295
|
-
else {
|
|
1296
|
-
// Get new versions
|
|
1297
|
-
diffEntries = allEntries.slice(0, lastSeenIndex);
|
|
1298
|
-
}
|
|
1299
|
-
}
|
|
1300
|
-
// Build changelog text for summary (limit to 5 versions max for summary)
|
|
1301
|
-
const summaryEntries = diffEntries.slice(0, 5);
|
|
1302
|
-
let changelogText = '';
|
|
1303
|
-
for (const entry of summaryEntries) {
|
|
1304
|
-
changelogText += `## ${entry.tag} (${entry.date})\n`;
|
|
1305
|
-
for (const section of entry.sections) {
|
|
1306
|
-
changelogText += `### ${section.title}\n`;
|
|
1307
|
-
for (const item of section.items) {
|
|
1308
|
-
changelogText += `- ${item}\n`;
|
|
1309
|
-
}
|
|
1310
|
-
}
|
|
1311
|
-
changelogText += '\n';
|
|
1312
|
-
}
|
|
1313
|
-
// Generate summary with Claude haiku
|
|
1314
|
-
let summary = null;
|
|
1315
|
-
try {
|
|
1316
|
-
const promptLang = lang === 'fr'
|
|
1317
|
-
? `Résume en 1-2 phrases les nouveautés principales de ce changelog. Sois concis et percutant. Réponds uniquement avec le résumé, sans préfixe.
|
|
1318
|
-
|
|
1319
|
-
${changelogText}`
|
|
1320
|
-
: `Summarize in 1-2 sentences the main updates from this changelog. Be concise and impactful. Reply only with the summary, no prefix.
|
|
1321
|
-
|
|
1322
|
-
${changelogText}`;
|
|
1323
|
-
const proc = spawnSync('claude', ['-p', promptLang, '--model', 'haiku'], {
|
|
1324
|
-
encoding: 'utf-8',
|
|
1325
|
-
timeout: 30000,
|
|
1326
|
-
maxBuffer: 1024 * 1024,
|
|
1327
|
-
});
|
|
1328
|
-
if (proc.status === 0 && proc.stdout) {
|
|
1329
|
-
summary = proc.stdout.trim();
|
|
1330
|
-
}
|
|
1331
|
-
}
|
|
1332
|
-
catch {
|
|
1333
|
-
// Summary generation failed, continue without it
|
|
1334
|
-
}
|
|
1335
|
-
sendJson(res, {
|
|
1336
|
-
success: true,
|
|
1337
|
-
data: { topTag, entries: diffEntries, summary, isFirstVisit }
|
|
1338
|
-
});
|
|
1339
|
-
},
|
|
1340
|
-
},
|
|
1341
|
-
];
|
|
1342
|
-
/**
|
|
1343
|
-
* Handle API request
|
|
1344
|
-
*/
|
|
1345
|
-
export async function handleApiRequest(req, res) {
|
|
1346
|
-
const url = req.url || '/';
|
|
1347
|
-
const method = req.method || 'GET';
|
|
1348
|
-
// Only handle /api routes
|
|
1349
|
-
if (!url.startsWith('/api')) {
|
|
1350
|
-
return false;
|
|
1351
|
-
}
|
|
1352
|
-
// Add CORS headers
|
|
1353
|
-
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
1354
|
-
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, DELETE, OPTIONS');
|
|
1355
|
-
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
|
|
1356
|
-
// Handle preflight
|
|
1357
|
-
if (method === 'OPTIONS') {
|
|
1358
|
-
res.writeHead(204);
|
|
1359
|
-
res.end();
|
|
1360
|
-
return true;
|
|
1361
|
-
}
|
|
1362
|
-
// Match route
|
|
1363
|
-
const match = matchRoute(method, url, routes);
|
|
1364
|
-
if (!match) {
|
|
1365
|
-
sendJson(res, { success: false, error: 'Not found' }, 404);
|
|
1366
|
-
return true;
|
|
1367
|
-
}
|
|
1368
|
-
try {
|
|
1369
|
-
await match.handler(req, res, match.params);
|
|
1370
|
-
}
|
|
1371
|
-
catch (error) {
|
|
1372
|
-
const message = error instanceof Error ? error.message : 'Internal error';
|
|
1373
|
-
sendJson(res, { success: false, error: message }, 500);
|
|
1374
|
-
}
|
|
1375
|
-
return true;
|
|
1376
|
-
}
|
|
1377
|
-
//# sourceMappingURL=api.js.map
|