ryugi-artifacts 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/bin/ryugi-artifacts.cjs +53 -0
  2. package/dist/runtime/robots.txt +9 -0
  3. package/dist/server.cjs +223 -228
  4. package/dist/start-server.sh +279 -0
  5. package/dist/viewer/{CloudDocument-Cmt0f5LX.js → CloudDocument-Ba6KrnqA.js} +1 -1
  6. package/dist/viewer/{DocumentEditor-RfVa-8pR.js → DocumentEditor-BS16Wb_Z.js} +158 -158
  7. package/dist/viewer/{DocumentPage-Cg4Y7n8Z.js → DocumentPage-DQmrD0th.js} +1 -1
  8. package/dist/viewer/{abnfDiagram-VCTEODGH-Ch1PrcW_.js → abnfDiagram-VCTEODGH-DuJfhZTl.js} +1 -1
  9. package/dist/viewer/app-icon-6WJOuhLx.svg +1 -0
  10. package/dist/viewer/app-icon-Bm9-i4yr.png +0 -0
  11. package/dist/viewer/{ar-SA-G6X2FPQ2-BZLJnXPp.js → ar-SA-G6X2FPQ2-CVlRFGvR.js} +1 -1
  12. package/dist/viewer/{architectureDiagram-5GKGNRK7-Crf3vLUm.js → architectureDiagram-5GKGNRK7-Ca-sK1k9.js} +1 -1
  13. package/dist/viewer/{az-AZ-76LH7QW2-CJCCtBBF.js → az-AZ-76LH7QW2-CzO5U4tE.js} +1 -1
  14. package/dist/viewer/{bg-BG-XCXSNQG7-A9uZROfi.js → bg-BG-XCXSNQG7-DLheLFGn.js} +1 -1
  15. package/dist/viewer/{blockDiagram-I7D4REHJ-kmyfDg5y.js → blockDiagram-I7D4REHJ-CVWXNFVb.js} +1 -1
  16. package/dist/viewer/{bn-BD-2XOGV67Q-CMY785z7.js → bn-BD-2XOGV67Q-DvnFf2ym.js} +1 -1
  17. package/dist/viewer/{c4Diagram-7LVT6UL2-DtRUOCrL.js → c4Diagram-7LVT6UL2-CddHgiim.js} +1 -1
  18. package/dist/viewer/{ca-ES-6MX7JW3Y-BYYBxQ2h.js → ca-ES-6MX7JW3Y-1SQM_Wxy.js} +1 -1
  19. package/dist/viewer/{chunk-4HAMMTFA-D7lBPl2E.js → chunk-4HAMMTFA-B7k7y3et.js} +1 -1
  20. package/dist/viewer/{chunk-EIO257PC-BvW_EZuD.js → chunk-EIO257PC-CNxgWaGL.js} +1 -1
  21. package/dist/viewer/{chunk-GMAD6QVW-B0KZ3k-s.js → chunk-GMAD6QVW-Do0Tih79.js} +1 -1
  22. package/dist/viewer/{chunk-GVQU2GXP-vAqsTjwW.js → chunk-GVQU2GXP-C9mWLYpa.js} +1 -1
  23. package/dist/viewer/{chunk-IMKFNOWR-CVmDn72x.js → chunk-IMKFNOWR-BqsuylOZ.js} +1 -1
  24. package/dist/viewer/{chunk-L3NEJ4N5-DhAe4WGx.js → chunk-L3NEJ4N5-D_AVAMEp.js} +1 -1
  25. package/dist/viewer/{chunk-OSK3NFVY-CD-0X77m.js → chunk-OSK3NFVY-BKczRUt9.js} +1 -1
  26. package/dist/viewer/{chunk-PWAF6VOD-Cku_5L2L.js → chunk-PWAF6VOD-CcIRMiiP.js} +1 -1
  27. package/dist/viewer/{chunk-SHT3W25Y-DhRf-pGm.js → chunk-SHT3W25Y-D8R29R_u.js} +1 -1
  28. package/dist/viewer/{chunk-SVP7TREG-DmQ8yYT7.js → chunk-SVP7TREG-DvPbOdMe.js} +1 -1
  29. package/dist/viewer/{chunk-TICWLB2K-ptqkK9g5.js → chunk-TICWLB2K-v1pSr6BB.js} +1 -1
  30. package/dist/viewer/{classDiagram-ZZMXUADV-D5iY4ZXd.js → classDiagram-ZZMXUADV-BJqflR68.js} +1 -1
  31. package/dist/viewer/{classDiagram-v2-VYDZK3BY-D5iY4ZXd.js → classDiagram-v2-VYDZK3BY-BJqflR68.js} +1 -1
  32. package/dist/viewer/{cs-CZ-2BRQDIVT-Dzf23tSv.js → cs-CZ-2BRQDIVT-CuIWOyM9.js} +1 -1
  33. package/dist/viewer/{cynefinDiagram-5FMLGOSQ-CPkt5HTK.js → cynefinDiagram-5FMLGOSQ-CarHaJWA.js} +1 -1
  34. package/dist/viewer/{da-DK-5WZEPLOC-kk5u8oeh.js → da-DK-5WZEPLOC-BNpk9O4Z.js} +1 -1
  35. package/dist/viewer/{dagre-GXQ25YYZ-Bhb-6j9p.js → dagre-GXQ25YYZ-jKxlutMc.js} +1 -1
  36. package/dist/viewer/{de-DE-XR44H4JA-SMlX6klW.js → de-DE-XR44H4JA-DeRYYEYN.js} +1 -1
  37. package/dist/viewer/{diagram-S7CK7UJ4-CvFeOngn.js → diagram-S7CK7UJ4-BzGz76pK.js} +1 -1
  38. package/dist/viewer/{diagram-UQ7AKVKN-YhpPzvtc.js → diagram-UQ7AKVKN-DDsoAc73.js} +1 -1
  39. package/dist/viewer/{diagram-VX7I27RA-CHXupSCr.js → diagram-VX7I27RA-BIeolo3r.js} +1 -1
  40. package/dist/viewer/{diagram-Z3DM3KII-Q_9dAatE.js → diagram-Z3DM3KII-CU7mw2ow.js} +1 -1
  41. package/dist/viewer/{dist-KarY-eub.js → dist-AH0bdIVa.js} +1 -1
  42. package/dist/viewer/{dist-CpeuWhgo.js → dist-BSeJYKLj.js} +1 -1
  43. package/dist/viewer/{dist-D54iKVBK.js → dist-BbW5iWCe.js} +1 -1
  44. package/dist/viewer/{dist-DPsEN2aY.js → dist-BeULvDu_.js} +1 -1
  45. package/dist/viewer/{dist-BuhqQu7t.js → dist-BgSBKOA3.js} +1 -1
  46. package/dist/viewer/{dist-HBBjtVCs.js → dist-BlXyXxst.js} +1 -1
  47. package/dist/viewer/{dist-BUQddJyY.js → dist-BppD0RS2.js} +1 -1
  48. package/dist/viewer/{dist-B9l6xPFH.js → dist-Bu_voPaa.js} +1 -1
  49. package/dist/viewer/{dist-B5smEokn.js → dist-C-ieEyE1.js} +1 -1
  50. package/dist/viewer/{dist-CQLwSz5A.js → dist-C21gJBBO.js} +1 -1
  51. package/dist/viewer/{dist-HEpf722E.js → dist-CHLFapPp.js} +1 -1
  52. package/dist/viewer/{dist-Cyyn2QnM.js → dist-CZsxPTNE.js} +1 -1
  53. package/dist/viewer/{dist-DuN7MgQk.js → dist-Cackv1h9.js} +1 -1
  54. package/dist/viewer/{dist-nBKLr6IT.js → dist-CbHHxvP1.js} +1 -1
  55. package/dist/viewer/{dist-B9MlS-yc.js → dist-CddCPamz.js} +1 -1
  56. package/dist/viewer/{dist-BiSGJruV.js → dist-CgYgXYmt.js} +1 -1
  57. package/dist/viewer/{dist-B9dFSb2w.js → dist-CitzQ6z1.js} +4 -4
  58. package/dist/viewer/{dist-rV_cA3xa.js → dist-Cu6PLla0.js} +1 -1
  59. package/dist/viewer/{dist-BYFhByvm.js → dist-CvB831yK.js} +1 -1
  60. package/dist/viewer/{dist-Caiv-ahd.js → dist-DA8TW41P.js} +1 -1
  61. package/dist/viewer/{dist-DUsSVxcw.js → dist-DC1HltnF.js} +1 -1
  62. package/dist/viewer/{dist-paIVcwaQ.js → dist-DX3SNcdm.js} +1 -1
  63. package/dist/viewer/{dist-f0EzsI-T.js → dist-D_Vtqh_s.js} +1 -1
  64. package/dist/viewer/{dist-DCGRsZVI.js → dist-DqbHnPRI.js} +1 -1
  65. package/dist/viewer/{ebnfDiagram-PWID7BFC-Hv9B-3hk.js → ebnfDiagram-PWID7BFC-BUmzlASS.js} +1 -1
  66. package/dist/viewer/{el-GR-BZB4AONW-DaH9owXi.js → el-GR-BZB4AONW-CU9I6jx_.js} +1 -1
  67. package/dist/viewer/{en-B4ZKOASM-YnGAFBsU.js → en-B4ZKOASM-DGboqHSv.js} +1 -1
  68. package/dist/viewer/{erDiagram-RLTQ6QDP-BTUs0BT2.js → erDiagram-RLTQ6QDP-DRUmIoEG.js} +1 -1
  69. package/dist/viewer/{es-ES-U4NZUMDT-BuoQIO3M.js → es-ES-U4NZUMDT-j5HevUjd.js} +1 -1
  70. package/dist/viewer/{eu-ES-A7QVB2H4-DUhHVlZe.js → eu-ES-A7QVB2H4-FpISoaoc.js} +1 -1
  71. package/dist/viewer/{fa-IR-HGAKTJCU-CjJKc0am.js → fa-IR-HGAKTJCU-COJsQztN.js} +1 -1
  72. package/dist/viewer/{fi-FI-Z5N7JZ37-CMFLRD0_.js → fi-FI-Z5N7JZ37-BNHsLnGq.js} +1 -1
  73. package/dist/viewer/flowDiagram-HODETNUW-BIce5Xbz.js +1 -0
  74. package/dist/viewer/{fr-FR-RHASNOE6-BHoSntIq.js → fr-FR-RHASNOE6-CM9a28Dh.js} +1 -1
  75. package/dist/viewer/{ganttDiagram-EL5Y4UJY-CeEQLTco.js → ganttDiagram-EL5Y4UJY-BVcwKFHE.js} +1 -1
  76. package/dist/viewer/{gl-ES-HMX3MZ6V-DICoY99I.js → gl-ES-HMX3MZ6V-C5aDlPBE.js} +1 -1
  77. package/dist/viewer/{he-IL-6SHJWFNN-CEe7bLWa.js → he-IL-6SHJWFNN-eFs-GSWn.js} +1 -1
  78. package/dist/viewer/{hi-IN-IWLTKZ5I-Dh_vRgBn.js → hi-IN-IWLTKZ5I-O1MAguUp.js} +1 -1
  79. package/dist/viewer/{hu-HU-A5ZG7DT2-Bidop9I6.js → hu-HU-A5ZG7DT2-B3meydQb.js} +1 -1
  80. package/dist/viewer/{id-ID-SAP4L64H-D183pYjJ.js → id-ID-SAP4L64H-PHNH2hzW.js} +1 -1
  81. package/dist/viewer/{image-GAAHSSAO-DGMqto4h.js → image-GAAHSSAO-BJifdIGE.js} +1 -1
  82. package/dist/viewer/index.html +21 -2
  83. package/dist/viewer/index.js +11 -11
  84. package/dist/viewer/index2.css +249 -19
  85. package/dist/viewer/{infoDiagram-27XIBGKW-BWBppJ8S.js → infoDiagram-27XIBGKW-D5Ag03ug.js} +1 -1
  86. package/dist/viewer/{ishikawaDiagram-5VMMS53U-DwcqlxrU.js → ishikawaDiagram-5VMMS53U-B9SCwzFe.js} +1 -1
  87. package/dist/viewer/{it-IT-JPQ66NNP-BmsXfM8K.js → it-IT-JPQ66NNP-DHOLiY7r.js} +1 -1
  88. package/dist/viewer/{ja-JP-DBVTYXUO-DyW8qb-0.js → ja-JP-DBVTYXUO-DTOuZQy0.js} +1 -1
  89. package/dist/viewer/{journeyDiagram-3NMN7TZE-DcgpwdKu.js → journeyDiagram-3NMN7TZE-CQvvWgCk.js} +1 -1
  90. package/dist/viewer/{kaa-6HZHGXH3-DJYup-gx.js → kaa-6HZHGXH3-1d0tKthK.js} +1 -1
  91. package/dist/viewer/{kab-KAB-ZGHBKWFO-D1TTkU3Z.js → kab-KAB-ZGHBKWFO-BaPyqYzR.js} +1 -1
  92. package/dist/viewer/{kanban-definition-UXKFOSKX-DY7wxWTD.js → kanban-definition-UXKFOSKX-Bg-Q4j28.js} +1 -1
  93. package/dist/viewer/{kk-KZ-P5N5QNE5-Bi6KJaJ_.js → kk-KZ-P5N5QNE5-BqF9n_h-.js} +1 -1
  94. package/dist/viewer/{km-KH-HSX4SM5Z-DUgQIxqu.js → km-KH-HSX4SM5Z-DPTb_KDC.js} +1 -1
  95. package/dist/viewer/{ko-KR-MTYHY66A-DBjXJgtG.js → ko-KR-MTYHY66A-DxGidADD.js} +1 -1
  96. package/dist/viewer/{ku-TR-6OUDTVRD-DZ7-3E8v.js → ku-TR-6OUDTVRD-BECmOCof.js} +1 -1
  97. package/dist/viewer/{lt-LT-XHIRWOB4-CZq0sHVB.js → lt-LT-XHIRWOB4-DKQm4SS0.js} +1 -1
  98. package/dist/viewer/{lv-LV-5QDEKY6T-CSnpouGk.js → lv-LV-5QDEKY6T-C4kUM3XE.js} +1 -1
  99. package/dist/viewer/{mindmap-definition-YA3MSWOX-B8Pb-wf1.js → mindmap-definition-YA3MSWOX-DRQfDlAQ.js} +1 -1
  100. package/dist/viewer/{mr-IN-CRQNXWMA-COt7YzBU.js → mr-IN-CRQNXWMA-CutHorlk.js} +1 -1
  101. package/dist/viewer/{my-MM-5M5IBNSE-D0Y1Da5n.js → my-MM-5M5IBNSE-BqscH03z.js} +1 -1
  102. package/dist/viewer/{nb-NO-T6EIAALU-oWyfOUMc.js → nb-NO-T6EIAALU-Dqflwtt9.js} +1 -1
  103. package/dist/viewer/{nl-NL-IS3SIHDZ-DmHiL8bF.js → nl-NL-IS3SIHDZ-BFq09PQX.js} +1 -1
  104. package/dist/viewer/{nn-NO-6E72VCQL-aPmsjnhV.js → nn-NO-6E72VCQL-BNIuUKOs.js} +1 -1
  105. package/dist/viewer/{oc-FR-POXYY2M6-IX-_Z2L9.js → oc-FR-POXYY2M6-Bz0jVYcW.js} +1 -1
  106. package/dist/viewer/{pa-IN-N4M65BXN-Bs_eqV6D.js → pa-IN-N4M65BXN-Diu6ZQtk.js} +1 -1
  107. package/dist/viewer/{pegDiagram-XKGWAZYB-CUKB72zB.js → pegDiagram-XKGWAZYB-COMSnXOr.js} +1 -1
  108. package/dist/viewer/percentages-BXMCSKIN-C4UC-sd0.js +1 -0
  109. package/dist/viewer/{pieDiagram-E7YTZNPT-PGM-bC7i.js → pieDiagram-E7YTZNPT-gHe-bm7N.js} +1 -1
  110. package/dist/viewer/{pl-PL-T2D74RX3-B62vM7Wd.js → pl-PL-T2D74RX3-CCwgP0Tt.js} +1 -1
  111. package/dist/viewer/{prod-CXChZPSF.js → prod-iZwju1YX.js} +12 -12
  112. package/dist/viewer/{pt-BR-5N22H2LF-DeO8w0-j.js → pt-BR-5N22H2LF-CNn18ypM.js} +1 -1
  113. package/dist/viewer/{pt-PT-UZXXM6DQ-DHRKu_nC.js → pt-PT-UZXXM6DQ-BMoRZ8jH.js} +1 -1
  114. package/dist/viewer/{quadrantDiagram-AXDQQJYC-BHGqqzJO.js → quadrantDiagram-AXDQQJYC-YkFWTX48.js} +1 -1
  115. package/dist/viewer/{railroadDiagram-O6MQD6OU-xkx7KBZh.js → railroadDiagram-O6MQD6OU-BP58ggYs.js} +1 -1
  116. package/dist/viewer/{requirementDiagram-BXWQKSXE-YoHOz35u.js → requirementDiagram-BXWQKSXE-B4RcZ6Uz.js} +1 -1
  117. package/dist/viewer/{ro-RO-JPDTUUEW-CZ7CkjNI.js → ro-RO-JPDTUUEW-SoalcNvO.js} +1 -1
  118. package/dist/viewer/robots.txt +9 -0
  119. package/dist/viewer/{ru-RU-B4JR7IUQ-sQ2YRlyV.js → ru-RU-B4JR7IUQ-DkWHaRhg.js} +1 -1
  120. package/dist/viewer/{sequenceDiagram-WJ2MYXX4-DdADoY-J.js → sequenceDiagram-WJ2MYXX4-C5uL0tpK.js} +1 -1
  121. package/dist/viewer/{si-LK-N5RQ5JYF-DLuQj109.js → si-LK-N5RQ5JYF-eD68JhLY.js} +1 -1
  122. package/dist/viewer/{sk-SK-C5VTKIMK-CMe_YVPU.js → sk-SK-C5VTKIMK-EXqkY3Ta.js} +1 -1
  123. package/dist/viewer/{sl-SI-NN7IZMDC-BPakRJTF.js → sl-SI-NN7IZMDC-D2V_J_sw.js} +1 -1
  124. package/dist/viewer/{stateDiagram-D77RDMKH-DDcsZcrC.js → stateDiagram-D77RDMKH-DkyLdU7q.js} +1 -1
  125. package/dist/viewer/{stateDiagram-v2-MP3YSRHH-BEL5Pgsi.js → stateDiagram-v2-MP3YSRHH-BMCqlN4T.js} +1 -1
  126. package/dist/viewer/subset-shared.chunk-pCVh-jxe.js +1 -0
  127. package/dist/viewer/{subset-worker.chunk-CAdHeyaa.js → subset-worker.chunk-B92dIZyQ.js} +1 -1
  128. package/dist/viewer/{sv-SE-XGPEYMSR-qERuvZ6s.js → sv-SE-XGPEYMSR-Bzbzaslo.js} +1 -1
  129. package/dist/viewer/{swimlanes-42K2YHIH-C1_2L18N.js → swimlanes-42K2YHIH-BWEGkPBm.js} +1 -1
  130. package/dist/viewer/{swimlanesDiagram-VR7AAH4N-ZxKOyUwv.js → swimlanesDiagram-VR7AAH4N-a8X5vJTG.js} +1 -1
  131. package/dist/viewer/{ta-IN-2NMHFXQM-CtrwjuD9.js → ta-IN-2NMHFXQM-BkRw8Ab-.js} +1 -1
  132. package/dist/viewer/{th-TH-HPSO5L25-D2ykN4P-.js → th-TH-HPSO5L25-DpxjfRSg.js} +1 -1
  133. package/dist/viewer/{timeline-definition-24CTP7MA-Bw3z4a18.js → timeline-definition-24CTP7MA-BEYELt88.js} +1 -1
  134. package/dist/viewer/{tr-TR-DEFEU3FU-DG1l6URL.js → tr-TR-DEFEU3FU-CDIHZRzE.js} +1 -1
  135. package/dist/viewer/{uk-UA-QMV73CPH-BOWgVI7Y.js → uk-UA-QMV73CPH-BX8bS5mk.js} +1 -1
  136. package/dist/viewer/{vennDiagram-4TSXK5OY-ba8MnyJG.js → vennDiagram-4TSXK5OY-CWnDIkB0.js} +1 -1
  137. package/dist/viewer/{vi-VN-M7AON7JQ-uVRFZJH3.js → vi-VN-M7AON7JQ-uPTH0PFh.js} +1 -1
  138. package/dist/viewer/{wardleyDiagram-VM6X3IG4-BXqHV7Of.js → wardleyDiagram-VM6X3IG4-DazKGA6Y.js} +1 -1
  139. package/dist/viewer/{xychartDiagram-S5SC5T6Z-DDAwmSA_.js → xychartDiagram-S5SC5T6Z-sQuCm3yV.js} +1 -1
  140. package/dist/viewer/{zh-CN-LNUGB5OW-CG6LZlkW.js → zh-CN-LNUGB5OW-CSw936pf.js} +1 -1
  141. package/dist/viewer/{zh-HK-E62DVLB3-B1k0qvGq.js → zh-HK-E62DVLB3-D5pp2ILq.js} +1 -1
  142. package/dist/viewer/{zh-TW-RAJ6MFWO-DnRoij4Q.js → zh-TW-RAJ6MFWO-DUVdEREg.js} +1 -1
  143. package/package.json +7 -2
  144. package/dist/viewer/flowDiagram-HODETNUW-CNs3HB63.js +0 -1
  145. package/dist/viewer/percentages-BXMCSKIN-B0uUmwNv.js +0 -1
  146. package/dist/viewer/subset-shared.chunk-CT_Q-SQa.js +0 -1
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ const { execFile, spawn } = require('node:child_process');
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+ const readline = require('node:readline');
6
+ const { parseArgs } = require('node:util');
7
+
8
+ try {
9
+ const { values, positionals } = parseArgs({
10
+ options: {
11
+ help: { type: 'boolean', short: 'h' },
12
+ 'no-open': { type: 'boolean' },
13
+ 'project-dir': { type: 'string' },
14
+ },
15
+ allowPositionals: true,
16
+ });
17
+ if (values.help) {
18
+ console.log('Usage: ryugi-artifacts [project-directory] [--no-open]\n\nOpen the current project’s artifacts in your browser.\n\n --project-dir <path> Project directory (default: current directory)\n --no-open Print the URL without opening a browser\n -h, --help Show this help\n\nRequires Node.js and Bash (Git Bash on Windows).');
19
+ } else {
20
+ if (positionals.length > 1 || (positionals.length && values['project-dir'])) throw new Error('Specify one project directory.');
21
+ const project = fs.realpathSync(path.resolve(values['project-dir'] || positionals[0] || process.cwd()));
22
+ if (!fs.statSync(project).isDirectory()) throw new Error('Project path must be a directory.');
23
+ const child = spawn('bash', [path.join(__dirname, '../dist/start-server.sh'), '--project-dir', project, '--foreground', '--no-open'], {
24
+ stdio: ['inherit', 'pipe', 'inherit'],
25
+ });
26
+ let interrupted = false;
27
+ for (const signal of ['SIGINT', 'SIGTERM']) process.on(signal, () => {
28
+ interrupted = true;
29
+ child.kill('SIGTERM');
30
+ });
31
+ child.on('error', (error) => {
32
+ console.error(`Could not start artifacts: ${error.message}. Bash is required (Git Bash on Windows).`);
33
+ process.exitCode = 1;
34
+ });
35
+ readline.createInterface({ input: child.stdout }).on('line', (line) => {
36
+ let info;
37
+ try { info = JSON.parse(line); } catch { console.error(line); return; }
38
+ if (info.error) console.error(info.error);
39
+ if (info.type !== 'server-started') return;
40
+ console.log(info.url);
41
+ if (!info.reused) console.log('Press Ctrl+C to stop the server.');
42
+ if (values['no-open']) return;
43
+ const platform = process.platform;
44
+ const command = platform === 'darwin' ? 'open' : platform === 'win32' ? 'cmd' : 'xdg-open';
45
+ const args = platform === 'win32' ? ['/c', 'start', '""', info.url] : [info.url];
46
+ execFile(command, args, () => {});
47
+ });
48
+ child.on('close', (code) => { process.exitCode = interrupted ? 0 : code ?? 1; });
49
+ }
50
+ } catch (error) {
51
+ console.error(error.message);
52
+ process.exitCode = 1;
53
+ }
@@ -0,0 +1,9 @@
1
+ # Link previews may read shared pages; search and other crawlers may not.
2
+ User-agent: Twitterbot
3
+ User-agent: facebookexternalhit
4
+ User-agent: Slackbot-LinkExpanding
5
+ User-agent: Slack-ImgProxy
6
+ Allow: /
7
+
8
+ User-agent: *
9
+ Disallow: /