explicai 0.0.0-stage → 0.2.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 (138) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/LICENSE +21 -0
  3. package/README.md +113 -2
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +51 -0
  6. package/dist/core/annotations.d.ts +7 -0
  7. package/dist/core/annotations.js +110 -0
  8. package/dist/core/assets.d.ts +17 -0
  9. package/dist/core/assets.js +116 -0
  10. package/dist/core/errors.d.ts +9 -0
  11. package/dist/core/errors.js +14 -0
  12. package/dist/core/export/annotationCss.d.ts +5 -0
  13. package/dist/core/export/annotationCss.js +26 -0
  14. package/dist/core/export/annotationShapes.d.ts +37 -0
  15. package/dist/core/export/annotationShapes.js +38 -0
  16. package/dist/core/export/callout.d.ts +11 -0
  17. package/dist/core/export/callout.js +26 -0
  18. package/dist/core/export/collect.d.ts +27 -0
  19. package/dist/core/export/collect.js +49 -0
  20. package/dist/core/export/color.d.ts +11 -0
  21. package/dist/core/export/color.js +33 -0
  22. package/dist/core/export/fonts.d.ts +35 -0
  23. package/dist/core/export/fonts.js +40 -0
  24. package/dist/core/export/headings.d.ts +7 -0
  25. package/dist/core/export/headings.js +17 -0
  26. package/dist/core/export/html.d.ts +4 -0
  27. package/dist/core/export/html.js +242 -0
  28. package/dist/core/export/imageSize.d.ts +9 -0
  29. package/dist/core/export/imageSize.js +72 -0
  30. package/dist/core/export/index.d.ts +29 -0
  31. package/dist/core/export/index.js +151 -0
  32. package/dist/core/export/labels.d.ts +17 -0
  33. package/dist/core/export/labels.js +31 -0
  34. package/dist/core/export/logo.d.ts +10 -0
  35. package/dist/core/export/logo.js +29 -0
  36. package/dist/core/export/markdown.d.ts +8 -0
  37. package/dist/core/export/markdown.js +83 -0
  38. package/dist/core/export/pdf.d.ts +6 -0
  39. package/dist/core/export/pdf.js +68 -0
  40. package/dist/core/export/refs.d.ts +24 -0
  41. package/dist/core/export/refs.js +66 -0
  42. package/dist/core/export/textColors.d.ts +7 -0
  43. package/dist/core/export/textColors.js +18 -0
  44. package/dist/core/export/theme.d.ts +28 -0
  45. package/dist/core/export/theme.js +140 -0
  46. package/dist/core/frontmatter.d.ts +5 -0
  47. package/dist/core/frontmatter.js +17 -0
  48. package/dist/core/fs.d.ts +13 -0
  49. package/dist/core/fs.js +45 -0
  50. package/dist/core/index.d.ts +14 -0
  51. package/dist/core/index.js +15 -0
  52. package/dist/core/manuals.d.ts +23 -0
  53. package/dist/core/manuals.js +86 -0
  54. package/dist/core/pages.d.ts +43 -0
  55. package/dist/core/pages.js +179 -0
  56. package/dist/core/redact.d.ts +9 -0
  57. package/dist/core/redact.js +107 -0
  58. package/dist/core/text.d.ts +5 -0
  59. package/dist/core/text.js +28 -0
  60. package/dist/core/trash.d.ts +25 -0
  61. package/dist/core/trash.js +84 -0
  62. package/dist/core/tree.d.ts +13 -0
  63. package/dist/core/tree.js +28 -0
  64. package/dist/core/types.d.ts +111 -0
  65. package/dist/core/types.js +7 -0
  66. package/dist/core/versions.d.ts +27 -0
  67. package/dist/core/versions.js +82 -0
  68. package/dist/server/errorPage.d.ts +9 -0
  69. package/dist/server/errorPage.js +122 -0
  70. package/dist/server/http.d.ts +31 -0
  71. package/dist/server/http.js +132 -0
  72. package/dist/server/index.d.ts +4 -0
  73. package/dist/server/index.js +60 -0
  74. package/dist/server/router.d.ts +30 -0
  75. package/dist/server/router.js +28 -0
  76. package/dist/server/routes/assets.d.ts +2 -0
  77. package/dist/server/routes/assets.js +63 -0
  78. package/dist/server/routes/export.d.ts +2 -0
  79. package/dist/server/routes/export.js +43 -0
  80. package/dist/server/routes/fonts.d.ts +3 -0
  81. package/dist/server/routes/fonts.js +24 -0
  82. package/dist/server/routes/manuals.d.ts +2 -0
  83. package/dist/server/routes/manuals.js +40 -0
  84. package/dist/server/routes/pages.d.ts +2 -0
  85. package/dist/server/routes/pages.js +79 -0
  86. package/dist/server/routes/versions.d.ts +2 -0
  87. package/dist/server/routes/versions.js +43 -0
  88. package/dist/server/routes/web.d.ts +3 -0
  89. package/dist/server/routes/web.js +29 -0
  90. package/dist/server/security.d.ts +6 -0
  91. package/dist/server/security.js +17 -0
  92. package/dist/server/workspace.d.ts +5 -0
  93. package/dist/server/workspace.js +17 -0
  94. package/dist/web/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2 +0 -0
  95. package/dist/web/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2 +0 -0
  96. package/dist/web/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2 +0 -0
  97. package/dist/web/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff +0 -0
  98. package/dist/web/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2 +0 -0
  99. package/dist/web/assets/atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.woff +0 -0
  100. package/dist/web/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2 +0 -0
  101. package/dist/web/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2 +0 -0
  102. package/dist/web/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff +0 -0
  103. package/dist/web/assets/atkinson-hyperlegible-next-latin-ext-700-normal-292QVhS1.woff +0 -0
  104. package/dist/web/assets/atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2 +0 -0
  105. package/dist/web/assets/index-B7Gr83D6.js +262 -0
  106. package/dist/web/assets/index-DFBrhkII.css +1 -0
  107. package/dist/web/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  108. package/dist/web/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  109. package/dist/web/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  110. package/dist/web/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  111. package/dist/web/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  112. package/dist/web/favicon.svg +1 -0
  113. package/dist/web/index.html +23 -0
  114. package/fonts/OFL-archivo.txt +93 -0
  115. package/fonts/OFL-atkinson-hyperlegible-next.txt +93 -0
  116. package/fonts/OFL-inter.txt +93 -0
  117. package/fonts/OFL-jetbrains-mono.txt +93 -0
  118. package/fonts/OFL-lora.txt +93 -0
  119. package/fonts/OFL-montserrat.txt +93 -0
  120. package/fonts/OFL-playfair-display.txt +93 -0
  121. package/fonts/OFL-source-sans-3.txt +93 -0
  122. package/fonts/OFL-source-serif-4.txt +93 -0
  123. package/fonts/archivo-latin-wght-normal.woff2 +0 -0
  124. package/fonts/atkinson-hyperlegible-next-latin-400-italic.woff2 +0 -0
  125. package/fonts/atkinson-hyperlegible-next-latin-400-normal.woff2 +0 -0
  126. package/fonts/atkinson-hyperlegible-next-latin-700-normal.woff2 +0 -0
  127. package/fonts/inter-latin-wght-italic.woff2 +0 -0
  128. package/fonts/inter-latin-wght-normal.woff2 +0 -0
  129. package/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  130. package/fonts/lora-latin-wght-italic.woff2 +0 -0
  131. package/fonts/lora-latin-wght-normal.woff2 +0 -0
  132. package/fonts/montserrat-latin-wght-normal.woff2 +0 -0
  133. package/fonts/playfair-display-latin-wght-normal.woff2 +0 -0
  134. package/fonts/source-sans-3-latin-wght-italic.woff2 +0 -0
  135. package/fonts/source-sans-3-latin-wght-normal.woff2 +0 -0
  136. package/fonts/source-serif-4-latin-wght-italic.woff2 +0 -0
  137. package/fonts/source-serif-4-latin-wght-normal.woff2 +0 -0
  138. package/package.json +124 -4
@@ -0,0 +1,17 @@
1
+ import { HttpError } from "./http.js";
2
+ const LOCAL_HOSTS = ["localhost", "127.0.0.1", "[::1]"];
3
+ /**
4
+ * O Studio só atende o próprio computador. Checar Host e Origin (que deve ser igual ao Host) impede que um site aberto
5
+ * no navegador use o Studio (DNS rebinding e requisições de outra origem).
6
+ */
7
+ export function assertLocalRequest(req) {
8
+ const fullHost = req.headers.host ?? "";
9
+ const host = fullHost.replace(/:\d+$/, "");
10
+ if (!LOCAL_HOSTS.includes(host))
11
+ throw new HttpError(403, "Acesso permitido só a partir deste computador.", "forbidden-host");
12
+ const origin = req.headers.origin;
13
+ // Mesma origem do Host, porta inclusa. O proxy do Vite não reescreve o Host (changeOrigin desligado), então 5173 bate com 5173.
14
+ if (origin && origin !== `http://${fullHost}`)
15
+ throw new HttpError(403, "Origem não permitida.", "forbidden-origin");
16
+ }
17
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1,5 @@
1
+ import type { RouteContext } from "./router.js";
2
+ /** Pasta do manual `:slug` dentro do workspace. Recusa nomes que tentem sair da pasta. */
3
+ export declare function manualDir({ opts, params }: RouteContext): string;
4
+ export declare function optionalString(v: unknown): string | undefined;
5
+ export declare function optionalNumber(v: unknown): number | undefined;
@@ -0,0 +1,17 @@
1
+ import { resolveInside } from "../core/index.js";
2
+ import { HttpError } from "./http.js";
3
+ /** Pasta do manual `:slug` dentro do workspace. Recusa nomes que tentem sair da pasta. */
4
+ export function manualDir({ opts, params }) {
5
+ const slug = params.slug ?? "";
6
+ if (!slug || slug.includes("/") || slug.includes("\\") || slug.startsWith(".")) {
7
+ throw new HttpError(404, "Manual não encontrado.");
8
+ }
9
+ return resolveInside(opts.workspace, slug);
10
+ }
11
+ export function optionalString(v) {
12
+ return typeof v === "string" ? v : undefined;
13
+ }
14
+ export function optionalNumber(v) {
15
+ return typeof v === "number" ? v : undefined;
16
+ }
17
+ //# sourceMappingURL=workspace.js.map