excalidrop 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/cli.d.ts +0 -21
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +1 -46
  4. package/dist/cli.js.map +1 -1
  5. package/dist/frontend/assets/{advancedFormat-bKUmsig-.js → advancedFormat-tiBAHNGo.js} +1 -1
  6. package/dist/frontend/assets/{ar-SA-G6X2FPQ2-C7K_UR3P.js → ar-SA-G6X2FPQ2-DVxiWV5Z.js} +1 -1
  7. package/dist/frontend/assets/{arc-BI_FJWE7.js → arc-Cc3ncJ1n.js} +1 -1
  8. package/dist/frontend/assets/{az-AZ-76LH7QW2-PkhuRuSr.js → az-AZ-76LH7QW2-Z_2BqDo-.js} +1 -1
  9. package/dist/frontend/assets/{bg-BG-XCXSNQG7-CgLRSYTl.js → bg-BG-XCXSNQG7-DrxGJZOG.js} +1 -1
  10. package/dist/frontend/assets/{blockDiagram-38ab4fdb-BFdBRYSn.js → blockDiagram-38ab4fdb-CDnkTFfP.js} +1 -1
  11. package/dist/frontend/assets/{blockDiagram-68f4deed-Ynbqr7bQ.js → blockDiagram-68f4deed-Bb0W6mxN.js} +1 -1
  12. package/dist/frontend/assets/{bn-BD-2XOGV67Q-CEvkU0mz.js → bn-BD-2XOGV67Q-BkGJ-w8k.js} +1 -1
  13. package/dist/frontend/assets/{c4Diagram-15b5d702-Dm7F1Pn_.js → c4Diagram-15b5d702-ByRV0tka.js} +1 -1
  14. package/dist/frontend/assets/{c4Diagram-3d4e48cf-COkK-e67.js → c4Diagram-3d4e48cf-QSVnzYYK.js} +1 -1
  15. package/dist/frontend/assets/{ca-ES-6MX7JW3Y-DzP6q9bE.js → ca-ES-6MX7JW3Y-BBJvOPE1.js} +1 -1
  16. package/dist/frontend/assets/channel-BQSIb3i3.js +1 -0
  17. package/dist/frontend/assets/{classDiagram-70f12bd4-CRzulwvH.js → classDiagram-70f12bd4-DDFBNGUt.js} +1 -1
  18. package/dist/frontend/assets/{classDiagram-d40c83e7-DNbA-n-a.js → classDiagram-d40c83e7-cgC3s7Nz.js} +1 -1
  19. package/dist/frontend/assets/{classDiagram-v2-d5a6b087-l-GglywH.js → classDiagram-v2-d5a6b087-BgB8AG2e.js} +1 -1
  20. package/dist/frontend/assets/{classDiagram-v2-f2320105-B_TY1zoc.js → classDiagram-v2-f2320105-Dtywkpeg.js} +1 -1
  21. package/dist/frontend/assets/clone-BoZziNL9.js +1 -0
  22. package/dist/frontend/assets/{createText-2e5e7dd3-DB_k52Pn.js → createText-2e5e7dd3-CqY00v-4.js} +1 -1
  23. package/dist/frontend/assets/{createText-d213de94-D-G49giw.js → createText-d213de94-D59sBfqq.js} +1 -1
  24. package/dist/frontend/assets/{cs-CZ-2BRQDIVT-Bf4TOzpR.js → cs-CZ-2BRQDIVT-CK09MAsg.js} +1 -1
  25. package/dist/frontend/assets/{cytoscape-cose-bilkent-DQYypj0P.js → cytoscape-cose-bilkent-CKy_tuGZ.js} +1 -1
  26. package/dist/frontend/assets/{da-DK-5WZEPLOC-jO-5kyXb.js → da-DK-5WZEPLOC-V4hdLKuT.js} +1 -1
  27. package/dist/frontend/assets/{de-DE-XR44H4JA-BkNXWOVh.js → de-DE-XR44H4JA-Dw8qkP9g.js} +1 -1
  28. package/dist/frontend/assets/drop-BFhuMYSw.png +0 -0
  29. package/dist/frontend/assets/{edges-332bd1c7-CVvMtkTa.js → edges-332bd1c7-D-u0KMZB.js} +1 -1
  30. package/dist/frontend/assets/{edges-e0da2a9e-DQBAvC8-.js → edges-e0da2a9e-B3UFqLqY.js} +1 -1
  31. package/dist/frontend/assets/{el-GR-BZB4AONW-Dv7Y9hMk.js → el-GR-BZB4AONW-BUdBQbYg.js} +1 -1
  32. package/dist/frontend/assets/{elk.bundled-YVS3PsMH.js → elk.bundled-BZA3Xcoo.js} +1 -1
  33. package/dist/frontend/assets/{erDiagram-880f2ed8-BjBeR38f.js → erDiagram-880f2ed8-CNxm7e1x.js} +1 -1
  34. package/dist/frontend/assets/{erDiagram-9861fffd-B2Bi3R45.js → erDiagram-9861fffd-C2u_ziAM.js} +1 -1
  35. package/dist/frontend/assets/{es-ES-U4NZUMDT-CWhs0SQY.js → es-ES-U4NZUMDT-DS0FAZqX.js} +1 -1
  36. package/dist/frontend/assets/{eu-ES-A7QVB2H4-BfkFwc3e.js → eu-ES-A7QVB2H4-D-D5uidc.js} +1 -1
  37. package/dist/frontend/assets/{fa-IR-HGAKTJCU-BgWzSj46.js → fa-IR-HGAKTJCU-mAW_2-jg.js} +1 -1
  38. package/dist/frontend/assets/{fi-FI-Z5N7JZ37-CUyvkum-.js → fi-FI-Z5N7JZ37-B9mW6nxS.js} +1 -1
  39. package/dist/frontend/assets/{flowDb-7c981674-BSZyyVBf.js → flowDb-7c981674-6JB2gd0I.js} +1 -1
  40. package/dist/frontend/assets/{flowDb-956e92f1-BC3-CLkF.js → flowDb-956e92f1-BbpkWRi7.js} +1 -1
  41. package/dist/frontend/assets/{flowDiagram-66a62f08-H57DAvmM.js → flowDiagram-66a62f08-DrhrQuXc.js} +1 -1
  42. package/dist/frontend/assets/{flowDiagram-cbd28bf7-Bw4Z2nBD.js → flowDiagram-cbd28bf7-BmNY7bvJ.js} +1 -1
  43. package/dist/frontend/assets/flowDiagram-v2-96b9c2cf-Z3H2d3Wj.js +1 -0
  44. package/dist/frontend/assets/flowDiagram-v2-ffc7f31a-CIQOMghC.js +1 -0
  45. package/dist/frontend/assets/{flowchart-elk-definition-36e2d292-1kZNdf3X.js → flowchart-elk-definition-36e2d292-4G1YiIlk.js} +1 -1
  46. package/dist/frontend/assets/{flowchart-elk-definition-4a651766-DDhG2Esi.js → flowchart-elk-definition-4a651766-Cm94SrrQ.js} +1 -1
  47. package/dist/frontend/assets/{fr-FR-RHASNOE6-7xzoRwbd.js → fr-FR-RHASNOE6-BXnmUxTA.js} +1 -1
  48. package/dist/frontend/assets/{ganttDiagram-04f9e578-CtUSsXCz.js → ganttDiagram-04f9e578-X0BweAnG.js} +1 -1
  49. package/dist/frontend/assets/{ganttDiagram-c361ad54-K42AklFY.js → ganttDiagram-c361ad54-D3vxZ5MQ.js} +1 -1
  50. package/dist/frontend/assets/{gitGraphDiagram-21fc4d3e-uW6XA6Y6.js → gitGraphDiagram-21fc4d3e-wznrpRWn.js} +1 -1
  51. package/dist/frontend/assets/{gitGraphDiagram-72cf32ee-CCNbhnBg.js → gitGraphDiagram-72cf32ee-B9zCS3Pw.js} +1 -1
  52. package/dist/frontend/assets/{gl-ES-HMX3MZ6V-CXuDDwNP.js → gl-ES-HMX3MZ6V-CrUx-ab6.js} +1 -1
  53. package/dist/frontend/assets/{graph-CYOmcSYN.js → graph-BQZ6SIVr.js} +1 -1
  54. package/dist/frontend/assets/{graph-o42dOfI7.js → graph-Cda8xSTx.js} +1 -1
  55. package/dist/frontend/assets/{he-IL-6SHJWFNN-O9dzh9EM.js → he-IL-6SHJWFNN-D33eaw6-.js} +1 -1
  56. package/dist/frontend/assets/{hi-IN-IWLTKZ5I-DlrOXhWs.js → hi-IN-IWLTKZ5I-DEnStF-g.js} +1 -1
  57. package/dist/frontend/assets/{hu-HU-A5ZG7DT2-C3eNg-uI.js → hu-HU-A5ZG7DT2-BjH2w8Sn.js} +1 -1
  58. package/dist/frontend/assets/{id-ID-SAP4L64H-6iM4pI5c.js → id-ID-SAP4L64H-Bc6R-JEz.js} +1 -1
  59. package/dist/frontend/assets/{index-3862675e-DrvLhypC.js → index-3862675e-CpYfS3Db.js} +1 -1
  60. package/dist/frontend/assets/{index-6079d271-BgVTRqg2.js → index-6079d271-Y2bgyRpa.js} +1 -1
  61. package/dist/frontend/assets/{index-HkUXslJy.js → index-D7eYnAQp.js} +4 -4
  62. package/dist/frontend/assets/{index-D-cr7jpJ.js → index-DIz4WrSB.js} +72 -72
  63. package/dist/frontend/assets/{infoDiagram-4a4f5b27-ZxmAcaW1.js → infoDiagram-4a4f5b27-Bm3Oq-Rq.js} +1 -1
  64. package/dist/frontend/assets/{infoDiagram-f8f76790-Bn-PhiFG.js → infoDiagram-f8f76790-oNVitBKM.js} +1 -1
  65. package/dist/frontend/assets/{it-IT-JPQ66NNP-B26NQzGp.js → it-IT-JPQ66NNP-BcxQABF2.js} +1 -1
  66. package/dist/frontend/assets/{ja-JP-DBVTYXUO-CB0fvnYJ.js → ja-JP-DBVTYXUO-D1zIM-nt.js} +1 -1
  67. package/dist/frontend/assets/{journeyDiagram-29694f62-ggDKs06f.js → journeyDiagram-29694f62-CamPk_3P.js} +1 -1
  68. package/dist/frontend/assets/{journeyDiagram-49397b02-pdDS-n-z.js → journeyDiagram-49397b02-D6w3tLtf.js} +1 -1
  69. package/dist/frontend/assets/{kaa-6HZHGXH3-YNdBdcwJ.js → kaa-6HZHGXH3-CoILysVg.js} +1 -1
  70. package/dist/frontend/assets/{kab-KAB-ZGHBKWFO-D86pwZO0.js → kab-KAB-ZGHBKWFO-B9ZbybBt.js} +1 -1
  71. package/dist/frontend/assets/{kk-KZ-P5N5QNE5-CpG5oheM.js → kk-KZ-P5N5QNE5-Dxi4GIQ7.js} +1 -1
  72. package/dist/frontend/assets/{km-KH-HSX4SM5Z-DYOZ3Azw.js → km-KH-HSX4SM5Z-DaJ7EtO2.js} +1 -1
  73. package/dist/frontend/assets/{ko-KR-MTYHY66A-BHorm6lC.js → ko-KR-MTYHY66A-DG57Ah12.js} +1 -1
  74. package/dist/frontend/assets/{ku-TR-6OUDTVRD-CM9RgEHv.js → ku-TR-6OUDTVRD-DnDf9E8a.js} +1 -1
  75. package/dist/frontend/assets/{layout-DW9Qf-At.js → layout-BsWfhUAF.js} +1 -1
  76. package/dist/frontend/assets/{layout-CCtkxrAf.js → layout-Drr-66M9.js} +1 -1
  77. package/dist/frontend/assets/{line-DvZfgg9P.js → line-DwQObOhP.js} +1 -1
  78. package/dist/frontend/assets/{linear-FwFrGRfa.js → linear-C36MjJps.js} +1 -1
  79. package/dist/frontend/assets/{lt-LT-XHIRWOB4-DvriKXBj.js → lt-LT-XHIRWOB4-D_zqS0yg.js} +1 -1
  80. package/dist/frontend/assets/{lv-LV-5QDEKY6T-DzQpwk87.js → lv-LV-5QDEKY6T-owIsIh1b.js} +1 -1
  81. package/dist/frontend/assets/{mindmap-definition-ac74a2e8-DsRo8f2w.js → mindmap-definition-ac74a2e8-Cf9JbrBJ.js} +1 -1
  82. package/dist/frontend/assets/{mindmap-definition-fc14e90a-dQ9reluI.js → mindmap-definition-fc14e90a-BpsNCNCp.js} +1 -1
  83. package/dist/frontend/assets/{mr-IN-CRQNXWMA-C7RzxxP5.js → mr-IN-CRQNXWMA-CS9XUj74.js} +1 -1
  84. package/dist/frontend/assets/{my-MM-5M5IBNSE-B-RRuy29.js → my-MM-5M5IBNSE-BKB060k9.js} +1 -1
  85. package/dist/frontend/assets/{nb-NO-T6EIAALU-B47x16Ik.js → nb-NO-T6EIAALU-CkmLUrvm.js} +1 -1
  86. package/dist/frontend/assets/{nl-NL-IS3SIHDZ-BxAKoQne.js → nl-NL-IS3SIHDZ-DdiLyJoz.js} +1 -1
  87. package/dist/frontend/assets/{nn-NO-6E72VCQL-dfpbEDSZ.js → nn-NO-6E72VCQL-Yevp6f_Y.js} +1 -1
  88. package/dist/frontend/assets/{oc-FR-POXYY2M6-gv6geBjV.js → oc-FR-POXYY2M6-D_M6GHup.js} +1 -1
  89. package/dist/frontend/assets/{pa-IN-N4M65BXN-CY30-qH7.js → pa-IN-N4M65BXN-1vuACN9n.js} +1 -1
  90. package/dist/frontend/assets/{pica-DWYGHLQV.js → pica-DDDx0iqx.js} +1 -1
  91. package/dist/frontend/assets/{pie-CDiWh1rj.js → pie-CFIpuQMO.js} +1 -1
  92. package/dist/frontend/assets/{pieDiagram-421022e6-Bgy-duyf.js → pieDiagram-421022e6-DO7e_Qgw.js} +1 -1
  93. package/dist/frontend/assets/{pieDiagram-8a3498a8-DH7FsbPK.js → pieDiagram-8a3498a8-BEoqChXo.js} +1 -1
  94. package/dist/frontend/assets/{pl-PL-T2D74RX3-TrHugsIA.js → pl-PL-T2D74RX3-Cc6Q5nSh.js} +1 -1
  95. package/dist/frontend/assets/{pt-BR-5N22H2LF-CJxdFp9c.js → pt-BR-5N22H2LF-3eEiAax3.js} +1 -1
  96. package/dist/frontend/assets/{pt-PT-UZXXM6DQ-CB-1q6YJ.js → pt-PT-UZXXM6DQ-CgnF0Le7.js} +1 -1
  97. package/dist/frontend/assets/{quadrantDiagram-0957ecba-DcwYI1oi.js → quadrantDiagram-0957ecba-C1Eo-ZUY.js} +1 -1
  98. package/dist/frontend/assets/{quadrantDiagram-120e2f19-CvHU5a9v.js → quadrantDiagram-120e2f19-Bdfsl_O7.js} +1 -1
  99. package/dist/frontend/assets/{requirementDiagram-23d650b8-tdagN8HP.js → requirementDiagram-23d650b8-DiOK6QW3.js} +1 -1
  100. package/dist/frontend/assets/{requirementDiagram-deff3bca-BMGM-fSI.js → requirementDiagram-deff3bca-BDJ-7T4h.js} +1 -1
  101. package/dist/frontend/assets/{ro-RO-JPDTUUEW-DQq9DBOd.js → ro-RO-JPDTUUEW-CbJ3IB7a.js} +1 -1
  102. package/dist/frontend/assets/{ru-RU-B4JR7IUQ-CWX32rfh.js → ru-RU-B4JR7IUQ-PQGmeGG4.js} +1 -1
  103. package/dist/frontend/assets/{sankeyDiagram-04a897e0-3i6zWpY2.js → sankeyDiagram-04a897e0-DV25bgN2.js} +1 -1
  104. package/dist/frontend/assets/{sankeyDiagram-23345273-ncj1Ol7S.js → sankeyDiagram-23345273-szSb_Sei.js} +1 -1
  105. package/dist/frontend/assets/{selectAll-DJwesbwT.js → selectAll-DsrPvhqV.js} +1 -1
  106. package/dist/frontend/assets/{sequenceDiagram-17ac3bff-ChyKKRZA.js → sequenceDiagram-17ac3bff-Dg88bSlc.js} +1 -1
  107. package/dist/frontend/assets/{sequenceDiagram-704730f1-D57_wP9k.js → sequenceDiagram-704730f1-DRIjLCxx.js} +1 -1
  108. package/dist/frontend/assets/{si-LK-N5RQ5JYF-Lkc5ZxyG.js → si-LK-N5RQ5JYF-BtIIudm3.js} +1 -1
  109. package/dist/frontend/assets/{sk-SK-C5VTKIMK-DyvYXjqZ.js → sk-SK-C5VTKIMK-CIwXticU.js} +1 -1
  110. package/dist/frontend/assets/{sl-SI-NN7IZMDC-D_MvP9Rh.js → sl-SI-NN7IZMDC-CXEdg57y.js} +1 -1
  111. package/dist/frontend/assets/{stateDiagram-587899a1-OjFTnFLS.js → stateDiagram-587899a1-BwRwgRo6.js} +1 -1
  112. package/dist/frontend/assets/{stateDiagram-9c5f0230-BzU36S5C.js → stateDiagram-9c5f0230-C8n96rER.js} +1 -1
  113. package/dist/frontend/assets/{stateDiagram-v2-51a3dcff-CfX1qo7U.js → stateDiagram-v2-51a3dcff-B7e5E4J7.js} +1 -1
  114. package/dist/frontend/assets/{stateDiagram-v2-d93cdb3a-BH7Ud4sU.js → stateDiagram-v2-d93cdb3a-B18iZQLw.js} +1 -1
  115. package/dist/frontend/assets/{styles-2ab5d517-CA8x9Nh5.js → styles-2ab5d517-CfWubwio.js} +1 -1
  116. package/dist/frontend/assets/{styles-5f03d8d2-BnO2pLhV.js → styles-5f03d8d2-C-_n19AB.js} +1 -1
  117. package/dist/frontend/assets/{styles-6aaf32cf-COnot1ea.js → styles-6aaf32cf-Dh-DHkVP.js} +1 -1
  118. package/dist/frontend/assets/{styles-9a916d00-C3QkBgTF.js → styles-9a916d00-Boy0hUEG.js} +1 -1
  119. package/dist/frontend/assets/{styles-c10674c1-CPAG2_rr.js → styles-c10674c1-BfxiK3Ns.js} +1 -1
  120. package/dist/frontend/assets/{styles-edf9a4b0-B8Q9fyu0.js → styles-edf9a4b0-T7mKViRF.js} +1 -1
  121. package/dist/frontend/assets/subset-shared.chunk.js +1 -1
  122. package/dist/frontend/assets/subset-worker.chunk.js +1 -1
  123. package/dist/frontend/assets/{sv-SE-XGPEYMSR-t6voGQSI.js → sv-SE-XGPEYMSR-dVrUAqld.js} +1 -1
  124. package/dist/frontend/assets/{svgDrawCommon-08f97a94-CdT21LWf.js → svgDrawCommon-08f97a94-fsWk6SQc.js} +1 -1
  125. package/dist/frontend/assets/{svgDrawCommon-3ba9043b-D1MU7jAE.js → svgDrawCommon-3ba9043b-BJ8X3qS-.js} +1 -1
  126. package/dist/frontend/assets/{ta-IN-2NMHFXQM-7VmfDDyV.js → ta-IN-2NMHFXQM-CtVVZfIT.js} +1 -1
  127. package/dist/frontend/assets/{th-TH-HPSO5L25-B5rLEY9P.js → th-TH-HPSO5L25-Do90CyDN.js} +1 -1
  128. package/dist/frontend/assets/{timeline-definition-7e6b55e7-BIcL44O_.js → timeline-definition-7e6b55e7-D_iHA485.js} +1 -1
  129. package/dist/frontend/assets/{timeline-definition-85554ec2-TgrYYwpU.js → timeline-definition-85554ec2-nhT8QMsO.js} +1 -1
  130. package/dist/frontend/assets/{tr-TR-DEFEU3FU-0CgOHXTn.js → tr-TR-DEFEU3FU-MfR-IQke.js} +1 -1
  131. package/dist/frontend/assets/{uk-UA-QMV73CPH-CzSFsIsx.js → uk-UA-QMV73CPH-CPet8B1O.js} +1 -1
  132. package/dist/frontend/assets/{union-CnQAJu0l.js → union-BgYwhB7T.js} +1 -1
  133. package/dist/frontend/assets/{vi-VN-M7AON7JQ-Bhx3rYU9.js → vi-VN-M7AON7JQ-3HD06T_8.js} +1 -1
  134. package/dist/frontend/assets/{xychartDiagram-b6496bcd-BMKDop6v.js → xychartDiagram-b6496bcd-D5vSaFT2.js} +1 -1
  135. package/dist/frontend/assets/{xychartDiagram-e933f94c-DAWithrN.js → xychartDiagram-e933f94c-DLIHXsUi.js} +1 -1
  136. package/dist/frontend/assets/{zh-CN-LNUGB5OW-Br52_wH4.js → zh-CN-LNUGB5OW-t2RyWPw2.js} +1 -1
  137. package/dist/frontend/assets/{zh-HK-E62DVLB3-Cj6mnIQ9.js → zh-HK-E62DVLB3-Bj22hc7e.js} +1 -1
  138. package/dist/frontend/assets/{zh-TW-RAJ6MFWO-yLEsVBbC.js → zh-TW-RAJ6MFWO-CBRhqhU1.js} +1 -1
  139. package/dist/frontend/assets/{zipObject-BeXj5PVd.js → zipObject-DMfHW2o8.js} +1 -1
  140. package/dist/frontend/index.html +2 -1
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +2 -28
  143. package/dist/index.js.map +1 -1
  144. package/dist/server.js +0 -9
  145. package/dist/server.js.map +1 -1
  146. package/dist/target.d.ts +0 -3
  147. package/dist/target.d.ts.map +1 -1
  148. package/dist/target.js +1 -20
  149. package/dist/target.js.map +1 -1
  150. package/dist/types.d.ts.map +1 -1
  151. package/dist/types.js +0 -8
  152. package/dist/types.js.map +1 -1
  153. package/dist/utils/auth.d.ts +0 -1
  154. package/dist/utils/auth.d.ts.map +1 -1
  155. package/dist/utils/auth.js +0 -1
  156. package/dist/utils/auth.js.map +1 -1
  157. package/dist/utils/github.d.ts +7 -9
  158. package/dist/utils/github.d.ts.map +1 -1
  159. package/dist/utils/github.js +57 -36
  160. package/dist/utils/github.js.map +1 -1
  161. package/dist/utils/logger.js +2 -2
  162. package/dist/utils/logger.js.map +1 -1
  163. package/dist/utils/r2store.d.ts +0 -7
  164. package/dist/utils/r2store.d.ts.map +1 -1
  165. package/dist/utils/r2store.js.map +1 -1
  166. package/frontend/drop.png +0 -0
  167. package/frontend/index.html +1 -0
  168. package/frontend/src/utils/ghSync.ts +99 -36
  169. package/frontend/src/utils/mermaidConverter.ts +2 -8
  170. package/frontend/src/utils/webmcp.ts +7 -27
  171. package/package.json +2 -1
  172. package/src/cli.ts +16 -47
  173. package/src/index.ts +11 -30
  174. package/src/server.ts +9 -9
  175. package/src/target.ts +10 -20
  176. package/src/types.ts +16 -18
  177. package/src/utils/auth.ts +1 -1
  178. package/src/utils/github.ts +61 -33
  179. package/src/utils/logger.ts +2 -2
  180. package/src/utils/r2store.ts +1 -7
  181. package/vite.config.js +0 -2
  182. package/dist/frontend/assets/channel-BqCiG5n3.js +0 -1
  183. package/dist/frontend/assets/clone-B6Jqcrku.js +0 -1
  184. package/dist/frontend/assets/flowDiagram-v2-96b9c2cf-CBjbm_oB.js +0 -1
  185. package/dist/frontend/assets/flowDiagram-v2-ffc7f31a-CoQufPp2.js +0 -1
@@ -1,16 +1,16 @@
1
- /** GitHub as source of truth. Scene = canvas.excalidraw on main; viewer copy on gh-pages. No Actions. */
1
+
2
2
  import logger from './logger.js';
3
3
  import { execSync } from 'node:child_process';
4
4
 
5
5
  const API = 'https://api.github.com';
6
- /** Zero-config: GITHUB_TOKEN env, else `gh auth token`, else '' (public reads still work). */
6
+
7
7
  export function token(): string {
8
8
  if (process.env.GITHUB_TOKEN) return process.env.GITHUB_TOKEN;
9
9
  try {
10
10
  return execSync('gh auth token', { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
11
11
  } catch { return ''; }
12
12
  }
13
- /** Zero-config: current repo from git remote. Empty allowlist = current repo only. */
13
+
14
14
  export function currentRepo(): string {
15
15
  try {
16
16
  const url = execSync('git config --get remote.origin.url', { encoding: 'utf8' }).trim();
@@ -20,22 +20,22 @@ export function currentRepo(): string {
20
20
  }
21
21
  export const SCENE_PATH = process.env.SCENE_PATH || 'canvas.excalidraw';
22
22
 
23
+ export const CANVAS_BRANCH = process.env.CANVAS_BRANCH || 'excalidrop';
24
+
23
25
  export function allowedRepos(): string[] {
24
26
  const list = (process.env.ALLOWED_REPOS || '').split(',').map(s => s.trim().toLowerCase()).filter(Boolean);
25
27
  if (list.length) return list;
26
28
  const cur = currentRepo();
27
29
  return cur ? [cur] : [];
28
30
  }
29
- /** Legacy allowlist hook (hosted multi-tenant remote only). Local MCP paths do not
30
- * gate on it: the user's own token + GitHub's API enforcement is the real
31
- * gate, and any user must be able to work on any repo they can access. */
31
+
32
32
  export function assertRepo(_repo: string): void {
33
- // intentionally no-op — see above
33
+
34
34
  }
35
35
  function headers(): Record<string, string> {
36
36
  return { Authorization: `Bearer ${token()}`, Accept: 'application/vnd.github+json', 'User-Agent': 'excalidrop', 'Content-Type': 'application/json' };
37
37
  }
38
- export async function getFile(repo: string, path: string, ref = 'main'): Promise<{ sha: string; content: any } | null> {
38
+ export async function getFile(repo: string, path: string, ref = CANVAS_BRANCH): Promise<{ sha: string; content: any } | null> {
39
39
  assertRepo(repo);
40
40
  const r = await fetch(`${API}/repos/${repo}/contents/${path}?ref=${ref}`, { headers: headers() });
41
41
  if (r.status === 404) return null;
@@ -44,50 +44,78 @@ export async function getFile(repo: string, path: string, ref = 'main'): Promise
44
44
  const text = Buffer.from(j.content, 'base64').toString('utf8');
45
45
  return { sha: j.sha, content: JSON.parse(text) };
46
46
  }
47
- export async function putFile(repo: string, path: string, data: any, message: string, branch = 'main', sha?: string): Promise<string> {
47
+
48
+ async function ensureBranch(repo: string, branch: string): Promise<void> {
49
+ const has = await fetch(`${API}/repos/${repo}/git/ref/heads/${branch}`, { headers: headers() });
50
+ if (has.ok) return;
51
+ const repoInfo = await (await fetch(`${API}/repos/${repo}`, { headers: headers() })).json() as any;
52
+ const from = repoInfo.default_branch || 'main';
53
+ const ref = await (await fetch(`${API}/repos/${repo}/git/ref/heads/${from}`, { headers: headers() })).json() as any;
54
+ if (!ref.object?.sha) throw new Error(`cannot create ${branch}: no ${from} branch`);
55
+ const mkRef = await fetch(`${API}/repos/${repo}/git/refs`, { method: 'POST', headers: headers(), body: JSON.stringify({ ref: `refs/heads/${branch}`, sha: ref.object.sha }) });
56
+ if (!mkRef.ok) throw new Error(`cannot create ${branch}: ${(await mkRef.text()).slice(0, 200)}`);
57
+ }
58
+ export async function putFile(repo: string, path: string, data: any, message: string, branch = CANVAS_BRANCH, sha?: string): Promise<string> {
48
59
  assertRepo(repo);
49
60
  if (!token()) throw new Error('GITHUB_TOKEN missing');
50
61
  const body: any = { message, content: Buffer.from(JSON.stringify(data, null, 2)).toString('base64'), branch };
51
62
  if (sha) body.sha = sha;
52
63
  let r = await fetch(`${API}/repos/${repo}/contents/${path}`, { method: 'PUT', headers: headers(), body: JSON.stringify(body) });
53
- if (r.status === 404 && branch === 'main') {
54
- // 404 on PUT usually means the branch doesn't exist yet (empty repo —
55
- // GitHub says plain "Not Found", not "branch missing"). Fork main off
56
- // gh-pages (or the default branch) then retry.
57
- const branchExists = await fetch(`${API}/repos/${repo}/git/ref/heads/main`, { headers: headers() });
58
- if (branchExists.ok) throw new Error(`GitHub put 404: ${await r.text()}`.slice(0, 200));
59
- const repoInfo = await (await fetch(`${API}/repos/${repo}`, { headers: headers() })).json() as any;
60
- const from = repoInfo.default_branch && repoInfo.default_branch !== 'main' ? repoInfo.default_branch : 'gh-pages';
61
- const ref = await (await fetch(`${API}/repos/${repo}/git/ref/heads/${from}`, { headers: headers() })).json() as any;
62
- if (!ref.object?.sha) throw new Error(`cannot bootstrap main: no ${from} branch`);
63
- const mkRef = await fetch(`${API}/repos/${repo}/git/refs`, { method: 'POST', headers: headers(), body: JSON.stringify({ ref: 'refs/heads/main', sha: ref.object.sha }) });
64
- if (!mkRef.ok) throw new Error(`cannot bootstrap main: ${(await mkRef.text()).slice(0, 200)}`);
65
- // main bootstrapped from another branch may already contain the file — attach its sha
66
- const existing = await (await fetch(`${API}/repos/${repo}/contents/${path}?ref=main`, { headers: headers() })).json() as any;
67
- if (existing.sha) body.sha = existing.sha;
64
+ if (r.status === 404) {
65
+
66
+ await ensureBranch(repo, branch);
67
+ const existing = await getFile(repo, path, branch).catch(() => null);
68
+ if (existing?.sha) body.sha = existing.sha;
69
+ else delete body.sha;
68
70
  r = await fetch(`${API}/repos/${repo}/contents/${path}`, { method: 'PUT', headers: headers(), body: JSON.stringify(body) });
69
71
  }
70
72
  if (r.status === 409) throw new Error('CONFLICT: file changed upstream, refetch sha and retry');
73
+ if (r.status === 422 && !sha) {
74
+
75
+ const existing = await getFile(repo, path, branch).catch(() => null);
76
+ if (!existing?.sha) throw new Error(`GitHub put 422: ${(await r.text()).slice(0, 200)}`);
77
+ body.sha = existing.sha;
78
+ r = await fetch(`${API}/repos/${repo}/contents/${path}`, { method: 'PUT', headers: headers(), body: JSON.stringify(body) });
79
+ if (r.status === 409) throw new Error('CONFLICT: file changed upstream, refetch sha and retry');
80
+ }
71
81
  if (!r.ok) throw new Error(`GitHub put ${r.status}: ${await r.text()}`);
72
82
  const j = await r.json() as any;
73
83
  logger.info(`Committed ${path}@${branch} in ${repo}`);
74
84
  return j.content.sha;
75
85
  }
76
- /** Load scene with sha for optimistic concurrency. */
86
+
77
87
  export async function loadScene(repo: string): Promise<{ elements: any[]; files: any[]; sha: string | null }> {
78
88
  assertRepo(repo);
79
- const f = await getFile(repo, SCENE_PATH, 'main').catch(() => null);
89
+ const f = await getFile(repo, SCENE_PATH, CANVAS_BRANCH).catch(() => null);
80
90
  if (!f) return { elements: [], files: [], sha: null };
81
91
  return { elements: f.content.elements || [], files: f.content.files || [], sha: f.sha };
82
92
  }
83
- /** Save scene to main (1 commit per batch). Returns new sha. */
93
+
84
94
  export async function saveScene(repo: string, elements: any[], files: any[], sha: string | null, msg: string): Promise<string> {
85
- return putFile(repo, SCENE_PATH, { type: 'excalidraw', version: 2, source: 'excalidrop', elements, files: {} , _files: files }, msg, 'main', sha || undefined);
95
+ return putFile(repo, SCENE_PATH, { type: 'excalidraw', version: 2, source: 'excalidrop', elements, files: files || {} }, msg, CANVAS_BRANCH, sha || undefined);
96
+ }
97
+
98
+ export async function syncPages(_repo: string, _scene: any): Promise<void> {
99
+
100
+ }
101
+
102
+ export async function updateRepoMetadata(repo: string, updates: { description?: string; homepage?: string }): Promise<void> {
103
+ assertRepo(repo);
104
+ if (!token()) throw new Error('GITHUB_TOKEN missing');
105
+ const r = await fetch(`${API}/repos/${repo}`, { method: 'PATCH', headers: headers(), body: JSON.stringify(updates) });
106
+ if (!r.ok) throw new Error(`GitHub PATCH ${r.status}: ${await r.text()}`);
107
+ logger.info(`Updated metadata for ${repo}`);
86
108
  }
87
- /** Sync prebuilt viewer + scene copy straight to gh-pages branch (direct push via Contents API, no Actions). */
88
- export async function syncPages(repo: string, scene: any): Promise<void> {
109
+
110
+ export async function ensureRepoMetadata(repo: string, homepage: string): Promise<void> {
89
111
  assertRepo(repo);
90
- // scene copy (viewer reads same-branch file: instant, no raw cache)
91
- const cur = await getFile(repo, SCENE_PATH, 'gh-pages').catch(() => null);
92
- await putFile(repo, SCENE_PATH, scene, 'excalidrop: sync scene to gh-pages', 'gh-pages', cur?.sha);
112
+ if (!token()) throw new Error('GITHUB_TOKEN missing');
113
+ const r = await fetch(`${API}/repos/${repo}`, { headers: headers() });
114
+ if (!r.ok) throw new Error(`GitHub GET ${r.status}: ${await r.text()}`);
115
+ const data = await r.json() as any;
116
+ if (!data.description || data.description.trim() === '') {
117
+ await updateRepoMetadata(repo, { description: homepage, homepage });
118
+ } else if (!data.homepage || data.homepage.trim() === '') {
119
+ await updateRepoMetadata(repo, { homepage });
120
+ }
93
121
  }
@@ -21,12 +21,12 @@ const logger: winston.Logger = winston.createLogger({
21
21
 
22
22
  transports: [
23
23
  new winston.transports.Console({
24
- level: 'warn', // only warn+error to stderr
24
+ level: 'warn',
25
25
  stderrLevels: ['warn','error']
26
26
  }),
27
27
 
28
28
  new winston.transports.File({
29
- filename: LOG_FILE_PATH, // all levels to file
29
+ filename: LOG_FILE_PATH,
30
30
  level: 'debug'
31
31
  })
32
32
  ]
@@ -1,12 +1,6 @@
1
1
  import crypto from 'node:crypto';
2
2
 
3
- /**
4
- * Minimal S3-compatible R2 client over fetch with AWS SigV4.
5
- * Reads creds from env (GH Actions secrets):
6
- * R2_ACCOUNT_ID, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY, R2_BUCKET, R2_KEY_PREFIX
7
- * CLOUDFLARER2TOKEN supported as "accountId:keyId:secret" or "keyId:secret" or raw secret
8
- * (with R2_ACCOUNT_ID also set) for seamless setup.
9
- */
3
+
10
4
  export interface R2Config {
11
5
  accountId: string; keyId: string; secret: string; bucket: string; prefix: string; endpoint: string;
12
6
  }
package/vite.config.js CHANGED
@@ -10,8 +10,6 @@ export default defineConfig({
10
10
  emptyOutDir: true,
11
11
  rollupOptions: {
12
12
  output: {
13
- // Excalidraw's font subsetting worker looks for these files by their
14
- // original (unhashed) names. Preserve them so the 404 doesn't break export.
15
13
  chunkFileNames: (chunkInfo) => {
16
14
  if (chunkInfo.name.startsWith('subset-')) {
17
15
  return 'assets/[name].js'
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./index-D-cr7jpJ.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{b as r}from"./union-CnQAJu0l.js";var e=4;function a(o){return r(o,e)}export{a as c};
@@ -1 +0,0 @@
1
- import{f as o,p as e}from"./flowDb-956e92f1-BC3-CLkF.js";import{f as a,a as t}from"./styles-c10674c1-CPAG2_rr.js";import{t as i}from"./index-HkUXslJy.js";import"./index-D-cr7jpJ.js";import"./graph-CYOmcSYN.js";import"./layout-CCtkxrAf.js";import"./index-3862675e-DrvLhypC.js";import"./union-CnQAJu0l.js";import"./clone-B6Jqcrku.js";import"./zipObject-BeXj5PVd.js";import"./edges-e0da2a9e-DQBAvC8-.js";import"./createText-2e5e7dd3-DB_k52Pn.js";import"./index-DGmpr33w.js";import"./line-DvZfgg9P.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-BqCiG5n3.js";import"./selectAll-DJwesbwT.js";const x={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{x as diagram};
@@ -1 +0,0 @@
1
- import{f as o,p as e}from"./flowDb-7c981674-BSZyyVBf.js";import{f as a,a as t}from"./styles-2ab5d517-CA8x9Nh5.js";import{G as i}from"./index-D-cr7jpJ.js";import"./graph-o42dOfI7.js";import"./layout-DW9Qf-At.js";import"./index-6079d271-BgVTRqg2.js";import"./union-CnQAJu0l.js";import"./clone-B6Jqcrku.js";import"./zipObject-BeXj5PVd.js";import"./edges-332bd1c7-CVvMtkTa.js";import"./createText-d213de94-D-G49giw.js";import"./index-DGmpr33w.js";import"./line-DvZfgg9P.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-BqCiG5n3.js";import"./selectAll-DJwesbwT.js";const C={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{C as diagram};