@beforesemicolon/builder 1.8.25 → 2.0.1

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 (187) hide show
  1. package/README.md +54 -904
  2. package/dist/cjs/build-browser.js +1 -1
  3. package/dist/cjs/build-modules.js +1 -1
  4. package/dist/cjs/index.js +1 -1
  5. package/dist/esm/build-browser.js +1 -1
  6. package/dist/esm/build-modules.js +1 -1
  7. package/dist/esm/index.js +1 -1
  8. package/dist/types/build-browser.d.ts +5 -3
  9. package/dist/types/build-modules.d.ts +5 -22
  10. package/dist/types/index.d.ts +0 -1
  11. package/package.json +5 -25
  12. package/dist/cjs/.declarations.d.js +0 -1
  13. package/dist/cjs/docs/markdown-layout/index.js +0 -1
  14. package/dist/cjs/docs/markdown-layout/marked-extension.js +0 -1
  15. package/dist/cjs/docs/markdown-layout/parser.js +0 -7
  16. package/dist/cjs/docs/markdown-layout/renderer.js +0 -1
  17. package/dist/cjs/docs/markdown-layout/types.js +0 -1
  18. package/dist/cjs/docs/renderer/code.js +0 -11
  19. package/dist/cjs/docs/renderer/heading.js +0 -1
  20. package/dist/cjs/docs/renderer/index.js +0 -1
  21. package/dist/cjs/docs/renderer/link.js +0 -1
  22. package/dist/cjs/docs/run.js +0 -78
  23. package/dist/cjs/docs/templates/default.template.js +0 -17
  24. package/dist/cjs/docs/templates/fading-citrus/README.md +0 -822
  25. package/dist/cjs/docs/templates/fading-citrus/assets/facebook.svg +0 -8
  26. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/android-chrome-192x192.png +0 -0
  27. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/android-chrome-512x512.png +0 -0
  28. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/apple-touch-icon.png +0 -0
  29. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon-16x16.png +0 -0
  30. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon-32x32.png +0 -0
  31. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon.ico +0 -0
  32. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/site.webmanifest +0 -19
  33. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Black.otf +0 -0
  34. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BlackItalic.otf +0 -0
  35. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Bold.otf +0 -0
  36. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BoldItalic.otf +0 -0
  37. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBold.otf +0 -0
  38. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBoldItalic.otf +0 -0
  39. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLight.otf +0 -0
  40. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLightItalic.otf +0 -0
  41. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Italic.otf +0 -0
  42. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Light.otf +0 -0
  43. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-LightItalic.otf +0 -0
  44. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Medium.otf +0 -0
  45. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-MediumItalic.otf +0 -0
  46. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Regular.otf +0 -0
  47. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBold.otf +0 -0
  48. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBoldItalic.otf +0 -0
  49. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Thin.otf +0 -0
  50. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ThinItalic.otf +0 -0
  51. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/SIL Open Font License.txt +0 -43
  52. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/Apache License.txt +0 -201
  53. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Bold.ttf +0 -0
  54. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-BoldItalic.ttf +0 -0
  55. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBold.ttf +0 -0
  56. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf +0 -0
  57. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Italic.ttf +0 -0
  58. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Light.ttf +0 -0
  59. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-LightItalic.ttf +0 -0
  60. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Regular.ttf +0 -0
  61. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Semibold.ttf +0 -0
  62. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-SemiboldItalic.ttf +0 -0
  63. package/dist/cjs/docs/templates/fading-citrus/assets/instagram.svg +0 -28
  64. package/dist/cjs/docs/templates/fading-citrus/assets/logo.dark.svg +0 -8
  65. package/dist/cjs/docs/templates/fading-citrus/assets/logo.light.svg +0 -8
  66. package/dist/cjs/docs/templates/fading-citrus/assets/logo.svg +0 -8
  67. package/dist/cjs/docs/templates/fading-citrus/assets/medium2.svg +0 -18
  68. package/dist/cjs/docs/templates/fading-citrus/assets/reddit.svg +0 -16
  69. package/dist/cjs/docs/templates/fading-citrus/assets/twitter.svg +0 -11
  70. package/dist/cjs/docs/templates/fading-citrus/assets/youtube.svg +0 -10
  71. package/dist/cjs/docs/templates/fading-citrus/layouts/_code-snippet.js +0 -128
  72. package/dist/cjs/docs/templates/fading-citrus/layouts/_footer.js +0 -72
  73. package/dist/cjs/docs/templates/fading-citrus/layouts/_head-meta.js +0 -235
  74. package/dist/cjs/docs/templates/fading-citrus/layouts/_header.js +0 -91
  75. package/dist/cjs/docs/templates/fading-citrus/layouts/_layout-utils.js +0 -109
  76. package/dist/cjs/docs/templates/fading-citrus/layouts/document.js +0 -100
  77. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-cta.js +0 -30
  78. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-ecosystem.js +0 -51
  79. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-features.js +0 -25
  80. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-hero.js +0 -89
  81. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-install.js +0 -116
  82. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-showcase.js +0 -133
  83. package/dist/cjs/docs/templates/fading-citrus/layouts/landing.js +0 -29
  84. package/dist/cjs/docs/templates/fading-citrus/stylesheets/common.css +0 -900
  85. package/dist/cjs/docs/templates/fading-citrus/stylesheets/documentation.css +0 -623
  86. package/dist/cjs/docs/templates/fading-citrus/stylesheets/fonts.css +0 -1
  87. package/dist/cjs/docs/templates/fading-citrus/stylesheets/github-dark.hightlighter.css +0 -107
  88. package/dist/cjs/docs/templates/fading-citrus/stylesheets/github-light.hightlighter.css +0 -107
  89. package/dist/cjs/docs/templates/fading-citrus/stylesheets/hybrid.hightlighter.css +0 -102
  90. package/dist/cjs/docs/templates/fading-citrus/stylesheets/landing.css +0 -1563
  91. package/dist/cjs/docs/templates/fading-citrus/stylesheets/normalize.css +0 -351
  92. package/dist/cjs/docs/templates/fading-citrus/template.config.js +0 -233
  93. package/dist/cjs/docs/types.js +0 -1
  94. package/dist/esm/.declarations.d.js +0 -0
  95. package/dist/esm/docs/markdown-layout/index.js +0 -1
  96. package/dist/esm/docs/markdown-layout/marked-extension.js +0 -1
  97. package/dist/esm/docs/markdown-layout/parser.js +0 -7
  98. package/dist/esm/docs/markdown-layout/renderer.js +0 -1
  99. package/dist/esm/docs/markdown-layout/types.js +0 -0
  100. package/dist/esm/docs/renderer/code.js +0 -11
  101. package/dist/esm/docs/renderer/heading.js +0 -1
  102. package/dist/esm/docs/renderer/index.js +0 -1
  103. package/dist/esm/docs/renderer/link.js +0 -1
  104. package/dist/esm/docs/run.js +0 -78
  105. package/dist/esm/docs/templates/default.template.js +0 -17
  106. package/dist/esm/docs/templates/fading-citrus/README.md +0 -822
  107. package/dist/esm/docs/templates/fading-citrus/assets/facebook.svg +0 -8
  108. package/dist/esm/docs/templates/fading-citrus/assets/favicon/android-chrome-192x192.png +0 -0
  109. package/dist/esm/docs/templates/fading-citrus/assets/favicon/android-chrome-512x512.png +0 -0
  110. package/dist/esm/docs/templates/fading-citrus/assets/favicon/apple-touch-icon.png +0 -0
  111. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon-16x16.png +0 -0
  112. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon-32x32.png +0 -0
  113. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon.ico +0 -0
  114. package/dist/esm/docs/templates/fading-citrus/assets/favicon/site.webmanifest +0 -19
  115. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Black.otf +0 -0
  116. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BlackItalic.otf +0 -0
  117. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Bold.otf +0 -0
  118. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BoldItalic.otf +0 -0
  119. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBold.otf +0 -0
  120. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBoldItalic.otf +0 -0
  121. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLight.otf +0 -0
  122. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLightItalic.otf +0 -0
  123. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Italic.otf +0 -0
  124. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Light.otf +0 -0
  125. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-LightItalic.otf +0 -0
  126. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Medium.otf +0 -0
  127. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-MediumItalic.otf +0 -0
  128. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Regular.otf +0 -0
  129. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBold.otf +0 -0
  130. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBoldItalic.otf +0 -0
  131. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Thin.otf +0 -0
  132. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ThinItalic.otf +0 -0
  133. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/SIL Open Font License.txt +0 -43
  134. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/Apache License.txt +0 -201
  135. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Bold.ttf +0 -0
  136. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-BoldItalic.ttf +0 -0
  137. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBold.ttf +0 -0
  138. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf +0 -0
  139. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Italic.ttf +0 -0
  140. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Light.ttf +0 -0
  141. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-LightItalic.ttf +0 -0
  142. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Regular.ttf +0 -0
  143. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Semibold.ttf +0 -0
  144. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-SemiboldItalic.ttf +0 -0
  145. package/dist/esm/docs/templates/fading-citrus/assets/instagram.svg +0 -28
  146. package/dist/esm/docs/templates/fading-citrus/assets/logo.dark.svg +0 -8
  147. package/dist/esm/docs/templates/fading-citrus/assets/logo.light.svg +0 -8
  148. package/dist/esm/docs/templates/fading-citrus/assets/logo.svg +0 -8
  149. package/dist/esm/docs/templates/fading-citrus/assets/medium2.svg +0 -18
  150. package/dist/esm/docs/templates/fading-citrus/assets/reddit.svg +0 -16
  151. package/dist/esm/docs/templates/fading-citrus/assets/twitter.svg +0 -11
  152. package/dist/esm/docs/templates/fading-citrus/assets/youtube.svg +0 -10
  153. package/dist/esm/docs/templates/fading-citrus/layouts/_code-snippet.js +0 -128
  154. package/dist/esm/docs/templates/fading-citrus/layouts/_footer.js +0 -72
  155. package/dist/esm/docs/templates/fading-citrus/layouts/_head-meta.js +0 -235
  156. package/dist/esm/docs/templates/fading-citrus/layouts/_header.js +0 -91
  157. package/dist/esm/docs/templates/fading-citrus/layouts/_layout-utils.js +0 -109
  158. package/dist/esm/docs/templates/fading-citrus/layouts/document.js +0 -100
  159. package/dist/esm/docs/templates/fading-citrus/layouts/landing-cta.js +0 -30
  160. package/dist/esm/docs/templates/fading-citrus/layouts/landing-ecosystem.js +0 -51
  161. package/dist/esm/docs/templates/fading-citrus/layouts/landing-features.js +0 -25
  162. package/dist/esm/docs/templates/fading-citrus/layouts/landing-hero.js +0 -89
  163. package/dist/esm/docs/templates/fading-citrus/layouts/landing-install.js +0 -116
  164. package/dist/esm/docs/templates/fading-citrus/layouts/landing-showcase.js +0 -133
  165. package/dist/esm/docs/templates/fading-citrus/layouts/landing.js +0 -29
  166. package/dist/esm/docs/templates/fading-citrus/stylesheets/common.css +0 -900
  167. package/dist/esm/docs/templates/fading-citrus/stylesheets/documentation.css +0 -623
  168. package/dist/esm/docs/templates/fading-citrus/stylesheets/fonts.css +0 -1
  169. package/dist/esm/docs/templates/fading-citrus/stylesheets/github-dark.hightlighter.css +0 -107
  170. package/dist/esm/docs/templates/fading-citrus/stylesheets/github-light.hightlighter.css +0 -107
  171. package/dist/esm/docs/templates/fading-citrus/stylesheets/hybrid.hightlighter.css +0 -102
  172. package/dist/esm/docs/templates/fading-citrus/stylesheets/landing.css +0 -1563
  173. package/dist/esm/docs/templates/fading-citrus/stylesheets/normalize.css +0 -351
  174. package/dist/esm/docs/templates/fading-citrus/template.config.js +0 -233
  175. package/dist/esm/docs/types.js +0 -0
  176. package/dist/types/docs/markdown-layout/index.d.ts +0 -4
  177. package/dist/types/docs/markdown-layout/marked-extension.d.ts +0 -9
  178. package/dist/types/docs/markdown-layout/parser.d.ts +0 -12
  179. package/dist/types/docs/markdown-layout/renderer.d.ts +0 -3
  180. package/dist/types/docs/markdown-layout/types.d.ts +0 -36
  181. package/dist/types/docs/renderer/code.d.ts +0 -2
  182. package/dist/types/docs/renderer/heading.d.ts +0 -2
  183. package/dist/types/docs/renderer/index.d.ts +0 -3
  184. package/dist/types/docs/renderer/link.d.ts +0 -2
  185. package/dist/types/docs/run.d.ts +0 -19
  186. package/dist/types/docs/templates/default.template.d.ts +0 -3
  187. package/dist/types/docs/types.d.ts +0 -107
@@ -1 +1 @@
1
- "use strict";var a=Object.create;var n=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var i=(e,r)=>n(e,"name",{value:r,configurable:!0});var g=(e,r)=>{for(var t in r)n(e,t,{get:r[t],enumerable:!0})},c=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of d(r))!y.call(e,o)&&o!==t&&n(e,o,{get:()=>r[o],enumerable:!(s=m(r,o))||s.enumerable});return e};var p=(e,r,t)=>(t=e!=null?a(f(e)):{},c(r||!e||!e.__esModule?n(t,"default",{value:e,enumerable:!0}):t,e)),h=e=>c(n({},"__esModule",{value:!0}),e);var D={};g(D,{buildBrowser:()=>B});module.exports=h(D);var l=p(require("path"),1),u=p(require("esbuild"),1);const B=i(async({entry:e,out:r}={})=>{const t={name:"empty-parser-Doc-plugin",setup(s){s.onResolve({filter:/Doc$/},o=>{if(o.importer.includes("@beforesemicolon/html-parser"))return{path:o.path,namespace:"empty-Doc"}}),s.onLoad({filter:/.*/,namespace:"empty-Doc"},()=>({contents:""}))}};u.default.build({entryPoints:[e??l.default.resolve(process.cwd(),"src/client")],outfile:r??"dist/client.js",bundle:!0,keepNames:!0,sourcemap:!0,target:"esnext",minify:!0,plugins:[t]}).catch(console.error)},"buildBrowser");0&&(module.exports={buildBrowser});
1
+ "use strict";var y=Object.create;var i=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var u=(e,t)=>i(e,"name",{value:t,configurable:!0});var g=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},l=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of f(t))!b.call(e,s)&&s!==r&&i(e,s,{get:()=>t[s],enumerable:!(o=B(t,s))||o.enumerable});return e};var c=(e,t,r)=>(r=e!=null?y(O(e)):{},l(t||!e||!e.__esModule?i(r,"default",{value:e,enumerable:!0}):r,e)),w=e=>l(i({},"__esModule",{value:!0}),e);var D={};g(D,{buildBrowser:()=>P});module.exports=w(D);var m=c(require("path"),1),d=c(require("esbuild"),1);const P=u(async({entry:e,out:t,esbuildOptions:r={}}={})=>{const o={name:"empty-parser-Doc-plugin",setup(n){n.onResolve({filter:/Doc$/},p=>{if(p.importer.includes("@beforesemicolon/html-parser"))return{path:p.path,namespace:"empty-Doc"}}),n.onLoad({filter:/.*/,namespace:"empty-Doc"},()=>({contents:""}))}},{plugins:s=[],...a}=r;return d.default.build({bundle:!0,keepNames:!0,sourcemap:!0,target:"esnext",minify:!0,...a,entryPoints:[e??m.default.resolve(process.cwd(),"src/client")],outfile:t??"dist/client.js",plugins:[o,...s]})},"buildBrowser");0&&(module.exports={buildBrowser});
@@ -1 +1 @@
1
- "use strict";var h=Object.create;var c=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var l=(t,e)=>c(t,"name",{value:e,configurable:!0});var b=(t,e)=>{for(var s in e)c(t,s,{get:e[s],enumerable:!0})},g=(t,e,s,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of S(e))!w.call(t,n)&&n!==s&&c(t,n,{get:()=>e[n],enumerable:!(i=x(e,n))||i.enumerable});return t};var p=(t,e,s)=>(s=t!=null?h(F(t)):{},g(e||!t||!t.__esModule?c(s,"default",{value:t,enumerable:!0}):s,t)),k=t=>g(c({},"__esModule",{value:!0}),t);var D={};b(D,{buildModules:()=>v});module.exports=k(D);var f=p(require("esbuild"),1),r=p(require("path"),1),o=p(require("fs"),1),y=require("@gjsify/esbuild-plugin-transform-ext");function P(t){const e=[];function s(i){const n=o.default.readdirSync(i,{withFileTypes:!0});for(const d of n){const m=r.default.join(i,d.name);d.isDirectory()?s(m):e.push(m)}}return l(s,"readDirectory"),s(t),e}l(P,"readFilesRecursively");async function v({directoryPath:t}={}){t=t??r.default.join(process.cwd(),"src");const e=P(t).filter(i=>/\.(t|j)s$/.test(i)&&(!i.includes("/docs/templates/")||i.endsWith("default.template.ts"))&&!i.endsWith(".spec.ts")&&!i.endsWith("/client.ts")),s=r.default.join(t,"docs","templates");if(o.default.existsSync(s)){const i=l((n,d)=>{const m=o.default.readdirSync(n,{withFileTypes:!0});for(const u of m){const j=r.default.join(n,u.name),a=r.default.join(d,u.name);u.isDirectory()?(o.default.mkdirSync(a,{recursive:!0}),i(j,a)):u.name!=="default.template.ts"&&(o.default.mkdirSync(r.default.dirname(a),{recursive:!0}),o.default.copyFileSync(j,a))}},"copyTemplateFiles");i(s,r.default.join(process.cwd(),"dist","esm","docs","templates")),i(s,r.default.join(process.cwd(),"dist","cjs","docs","templates"))}return Promise.all([f.default.build({entryPoints:e,outdir:"dist/esm",target:"esnext",minify:!0,format:"esm",platform:"node",keepNames:!0,plugins:[(0,y.transformExtPlugin)({outExtension:{".ts":".js"}})]}),f.default.build({entryPoints:e,outdir:"dist/cjs",target:"esnext",minify:!0,format:"cjs",platform:"node",keepNames:!0,plugins:[(0,y.transformExtPlugin)({outExtension:{".ts":".js"}})]})])}l(v,"buildModules");0&&(module.exports={buildModules});
1
+ "use strict";var y=Object.create;var u=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var l=(t,s)=>u(t,"name",{value:s,configurable:!0});var j=(t,s)=>{for(var i in s)u(t,i,{get:s[i],enumerable:!0})},f=(t,s,i,o)=>{if(s&&typeof s=="object"||typeof s=="function")for(let e of b(s))!O.call(t,e)&&e!==i&&u(t,e,{get:()=>s[e],enumerable:!(o=g(s,e))||o.enumerable});return t};var d=(t,s,i)=>(i=t!=null?y(x(t)):{},f(s||!t||!t.__esModule?u(i,"default",{value:t,enumerable:!0}):i,t)),P=t=>f(u({},"__esModule",{value:!0}),t);var E={};j(E,{buildModules:()=>B});module.exports=P(E);var p=d(require("esbuild"),1),c=d(require("path"),1),a=d(require("fs"),1),m=require("@gjsify/esbuild-plugin-transform-ext");function h(t){const s=[];function i(o){const e=a.default.readdirSync(o,{withFileTypes:!0});for(const n of e){const r=c.default.join(o,n.name);n.isDirectory()?i(r):s.push(r)}}return l(i,"readDirectory"),i(t),s}l(h,"readFilesRecursively");async function B({directoryPath:t,esbuildOptions:s={}}={}){const i=t??c.default.join(process.cwd(),"src"),o=h(i).filter(r=>/\.(t|j)s$/.test(r)&&!r.endsWith(".spec.ts")&&!r.endsWith("/client.ts")),{plugins:e=[],...n}=s;return Promise.all([p.default.build({target:"esnext",minify:!0,platform:"node",keepNames:!0,...n,entryPoints:o,outdir:"dist/esm",format:"esm",plugins:[(0,m.transformExtPlugin)({outExtension:{".ts":".js"}}),...e]}),p.default.build({target:"esnext",minify:!0,platform:"node",keepNames:!0,...n,entryPoints:o,outdir:"dist/cjs",format:"cjs",plugins:[(0,m.transformExtPlugin)({outExtension:{".ts":".js"}}),...e]})])}l(B,"buildModules");0&&(module.exports={buildModules});
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(f,r,p,x)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of c(r))!d.call(f,m)&&m!==p&&a(f,m,{get:()=>r[m],enumerable:!(x=b(r,m))||x.enumerable});return f},e=(f,r,p)=>(t(f,r,"default"),p&&t(p,r,"default"));var g=f=>t(a({},"__esModule",{value:!0}),f);var o={};module.exports=g(o);e(o,require("./build-modules.js"),module.exports);e(o,require("./build-browser.js"),module.exports);e(o,require("./docs/run.js"),module.exports);0&&(module.exports={...require("./build-modules.js"),...require("./build-browser.js"),...require("./docs/run.js")});
1
+ "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(r,o,p,x)=>{if(o&&typeof o=="object"||typeof o=="function")for(let m of c(o))!d.call(r,m)&&m!==p&&a(r,m,{get:()=>o[m],enumerable:!(x=b(o,m))||x.enumerable});return r},f=(r,o,p)=>(t(r,o,"default"),p&&t(p,o,"default"));var g=r=>t(a({},"__esModule",{value:!0}),r);var e={};module.exports=g(e);f(e,require("./build-modules.js"),module.exports);f(e,require("./build-browser.js"),module.exports);0&&(module.exports={...require("./build-modules.js"),...require("./build-browser.js")});
@@ -1 +1 @@
1
- var i=Object.defineProperty;var s=(e,r)=>i(e,"name",{value:r,configurable:!0});import c from"path";import p from"esbuild";const d=s(async({entry:e,out:r}={})=>{const n={name:"empty-parser-Doc-plugin",setup(t){t.onResolve({filter:/Doc$/},o=>{if(o.importer.includes("@beforesemicolon/html-parser"))return{path:o.path,namespace:"empty-Doc"}}),t.onLoad({filter:/.*/,namespace:"empty-Doc"},()=>({contents:""}))}};p.build({entryPoints:[e??c.resolve(process.cwd(),"src/client")],outfile:r??"dist/client.js",bundle:!0,keepNames:!0,sourcemap:!0,target:"esnext",minify:!0,plugins:[n]}).catch(console.error)},"buildBrowser");export{d as buildBrowser};
1
+ var l=Object.defineProperty;var i=(e,t)=>l(e,"name",{value:t,configurable:!0});import c from"path";import m from"esbuild";const B=i(async({entry:e,out:t,esbuildOptions:o={}}={})=>{const n={name:"empty-parser-Doc-plugin",setup(r){r.onResolve({filter:/Doc$/},s=>{if(s.importer.includes("@beforesemicolon/html-parser"))return{path:s.path,namespace:"empty-Doc"}}),r.onLoad({filter:/.*/,namespace:"empty-Doc"},()=>({contents:""}))}},{plugins:p=[],...u}=o;return m.build({bundle:!0,keepNames:!0,sourcemap:!0,target:"esnext",minify:!0,...u,entryPoints:[e??c.resolve(process.cwd(),"src/client")],outfile:t??"dist/client.js",plugins:[n,...p]})},"buildBrowser");export{B as buildBrowser};
@@ -1 +1 @@
1
- var y=Object.defineProperty;var o=(e,i)=>y(e,"name",{value:i,configurable:!0});import p from"esbuild";import s from"path";import r from"fs";import{transformExtPlugin as f}from"@gjsify/esbuild-plugin-transform-ext";function j(e){const i=[];function n(t){const c=r.readdirSync(t,{withFileTypes:!0});for(const l of c){const d=s.join(t,l.name);l.isDirectory()?n(d):i.push(d)}}return o(n,"readDirectory"),n(e),i}o(j,"readFilesRecursively");async function w({directoryPath:e}={}){e=e??s.join(process.cwd(),"src");const i=j(e).filter(t=>/\.(t|j)s$/.test(t)&&(!t.includes("/docs/templates/")||t.endsWith("default.template.ts"))&&!t.endsWith(".spec.ts")&&!t.endsWith("/client.ts")),n=s.join(e,"docs","templates");if(r.existsSync(n)){const t=o((c,l)=>{const d=r.readdirSync(c,{withFileTypes:!0});for(const m of d){const a=s.join(c,m.name),u=s.join(l,m.name);m.isDirectory()?(r.mkdirSync(u,{recursive:!0}),t(a,u)):m.name!=="default.template.ts"&&(r.mkdirSync(s.dirname(u),{recursive:!0}),r.copyFileSync(a,u))}},"copyTemplateFiles");t(n,s.join(process.cwd(),"dist","esm","docs","templates")),t(n,s.join(process.cwd(),"dist","cjs","docs","templates"))}return Promise.all([p.build({entryPoints:i,outdir:"dist/esm",target:"esnext",minify:!0,format:"esm",platform:"node",keepNames:!0,plugins:[f({outExtension:{".ts":".js"}})]}),p.build({entryPoints:i,outdir:"dist/cjs",target:"esnext",minify:!0,format:"cjs",platform:"node",keepNames:!0,plugins:[f({outExtension:{".ts":".js"}})]})])}o(w,"buildModules");export{w as buildModules};
1
+ var c=Object.defineProperty;var u=(i,t)=>c(i,"name",{value:t,configurable:!0});import l from"esbuild";import d from"path";import m from"fs";import{transformExtPlugin as p}from"@gjsify/esbuild-plugin-transform-ext";function f(i){const t=[];function r(e){const n=m.readdirSync(e,{withFileTypes:!0});for(const o of n){const s=d.join(e,o.name);o.isDirectory()?r(s):t.push(s)}}return u(r,"readDirectory"),r(i),t}u(f,"readFilesRecursively");async function O({directoryPath:i,esbuildOptions:t={}}={}){const r=i??d.join(process.cwd(),"src"),e=f(r).filter(s=>/\.(t|j)s$/.test(s)&&!s.endsWith(".spec.ts")&&!s.endsWith("/client.ts")),{plugins:n=[],...o}=t;return Promise.all([l.build({target:"esnext",minify:!0,platform:"node",keepNames:!0,...o,entryPoints:e,outdir:"dist/esm",format:"esm",plugins:[p({outExtension:{".ts":".js"}}),...n]}),l.build({target:"esnext",minify:!0,platform:"node",keepNames:!0,...o,entryPoints:e,outdir:"dist/cjs",format:"cjs",plugins:[p({outExtension:{".ts":".js"}}),...n]})])}u(O,"buildModules");export{O as buildModules};
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- export*from"./build-modules.js";export*from"./build-browser.js";export*from"./docs/run.js";
1
+ export*from"./build-modules.js";export*from"./build-browser.js";
@@ -1,6 +1,8 @@
1
- interface BuildBrowserOptions {
1
+ import { type BuildOptions, type BuildResult } from 'esbuild';
2
+ export type BrowserEsbuildOptions = Omit<BuildOptions, 'entryPoints' | 'stdin' | 'outfile' | 'outdir'>;
3
+ export interface BuildBrowserOptions {
2
4
  entry?: string;
3
5
  out?: string;
6
+ esbuildOptions?: BrowserEsbuildOptions;
4
7
  }
5
- export declare const buildBrowser: ({ entry, out, }?: BuildBrowserOptions) => Promise<void>;
6
- export {};
8
+ export declare const buildBrowser: ({ entry, out, esbuildOptions, }?: BuildBrowserOptions) => Promise<BuildResult>;
@@ -1,24 +1,7 @@
1
- import esbuild from 'esbuild';
2
- interface BuildModulesOptions {
1
+ import esbuild, { type BuildOptions } from 'esbuild';
2
+ export type ModuleEsbuildOptions = Omit<BuildOptions, 'entryPoints' | 'stdin' | 'outfile' | 'outdir' | 'format'>;
3
+ export interface BuildModulesOptions {
3
4
  directoryPath?: string;
5
+ esbuildOptions?: ModuleEsbuildOptions;
4
6
  }
5
- export declare function buildModules({ directoryPath, }?: BuildModulesOptions): Promise<[esbuild.BuildResult<{
6
- entryPoints: string[];
7
- outdir: string;
8
- target: string;
9
- minify: true;
10
- format: "esm";
11
- platform: "node";
12
- keepNames: true;
13
- plugins: esbuild.Plugin[];
14
- }>, esbuild.BuildResult<{
15
- entryPoints: string[];
16
- outdir: string;
17
- target: string;
18
- minify: true;
19
- format: "cjs";
20
- platform: "node";
21
- keepNames: true;
22
- plugins: esbuild.Plugin[];
23
- }>]>;
24
- export {};
7
+ export declare function buildModules({ directoryPath, esbuildOptions, }?: BuildModulesOptions): Promise<esbuild.BuildResult[]>;
@@ -1,3 +1,2 @@
1
1
  export * from './build-modules.ts';
2
2
  export * from './build-browser.ts';
3
- export * from './docs/run.ts';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@beforesemicolon/builder",
3
- "version": "1.8.25",
4
- "description": "Utilities to build npm packages and documentation website",
3
+ "version": "2.0.1",
4
+ "description": "Utilities for building npm packages for modules and browsers",
5
5
  "engines": {
6
6
  "node": ">=18.16.0"
7
7
  },
@@ -22,7 +22,7 @@
22
22
  "build": "rm -rf dist && tsc --emitDeclarationOnly && tsx ./build.ts",
23
23
  "lint": "eslint ./src && prettier --check .",
24
24
  "format": "eslint ./src --fix && prettier --write .",
25
- "test": "tsx src/docs/markdown-layout/markdown-layout.spec.ts"
25
+ "test": "tsc --noEmit --allowImportingTsExtensions"
26
26
  },
27
27
  "author": "Elson Correia",
28
28
  "license": "BSD-3-Clause",
@@ -33,7 +33,7 @@
33
33
  "keywords": [
34
34
  "builder",
35
35
  "build npm",
36
- "docs"
36
+ "package builder"
37
37
  ],
38
38
  "funding": {
39
39
  "url": "https://github.com/sponsors/beforesemicolon",
@@ -41,28 +41,12 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@gjsify/esbuild-plugin-transform-ext": "0.3.13",
44
- "@putout/minify": "^4.7.2",
45
- "clean-css": "^5.3.3",
46
44
  "core-js": "^3.34.0",
47
45
  "esbuild": "^0.28.0",
48
- "esbuild-plugin-text-replace": "^1.3.0",
49
- "front-matter": "^4.0.2",
50
- "global-jsdom": "^9.2.0",
51
- "highlight.js": "^11.10.0",
52
- "html-minifier": "^4.0.0",
53
- "isomorphic-dompurify": "^2.16.0",
54
- "jsdom": "^23.0.1",
55
- "marked": "^14.1.2",
56
- "marked-highlight": "^2.1.4"
46
+ "esbuild-plugin-text-replace": "^1.3.0"
57
47
  },
58
48
  "devDependencies": {
59
- "@types/clean-css": "^4.2.11",
60
- "@types/html-minifier": "^4.0.5",
61
- "@types/jest": "^29.5.11",
62
- "@types/jsdom": "^21.1.6",
63
- "@types/jsdom-global": "^3.0.7",
64
49
  "@types/node": "^20.10.5",
65
- "@types/node-sass": "^4.11.7",
66
50
  "@typescript-eslint/eslint-plugin": "^6.15.0",
67
51
  "@typescript-eslint/parser": "^6.15.0",
68
52
  "eslint": "^8.56.0",
@@ -72,11 +56,7 @@
72
56
  "eslint-plugin-n": "^16.5.0",
73
57
  "eslint-plugin-prettier": "^5.1.2",
74
58
  "eslint-plugin-promise": "^6.1.1",
75
- "nodemon": "^3.1.7",
76
- "npm-run-all": "^4.1.5",
77
59
  "prettier": "3.8.3",
78
- "tinybench": "^2.8.0",
79
- "ts-jest": "^29.1.1",
80
60
  "tsx": "^4.7.0",
81
61
  "typescript": "^5.3.3"
82
62
  }
@@ -1 +0,0 @@
1
- "use strict";
@@ -1 +0,0 @@
1
- "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(f,e,p,x)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of c(e))!d.call(f,m)&&m!==p&&a(f,m,{get:()=>e[m],enumerable:!(x=b(e,m))||x.enumerable});return f},r=(f,e,p)=>(t(f,e,"default"),p&&t(p,e,"default"));var g=f=>t(a({},"__esModule",{value:!0}),f);var o={};module.exports=g(o);r(o,require("./marked-extension.js"),module.exports);r(o,require("./parser.js"),module.exports);r(o,require("./renderer.js"),module.exports);r(o,require("./types.js"),module.exports);0&&(module.exports={...require("./marked-extension.js"),...require("./parser.js"),...require("./renderer.js"),...require("./types.js")});
@@ -1 +0,0 @@
1
- "use strict";var k=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var w=(o,r)=>k(o,"name",{value:r,configurable:!0});var l=(o,r)=>{for(var t in r)k(o,t,{get:r[t],enumerable:!0})},c=(o,r,t,d)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of L(r))!m.call(o,n)&&n!==t&&k(o,n,{get:()=>r[n],enumerable:!(d=M(r,n))||d.enumerable});return o};var p=o=>c(k({},"__esModule",{value:!0}),o);var f={};l(f,{createMarkdownLayoutExtension:()=>x});module.exports=p(f);var u=require("./parser.js"),s=require("./renderer.js");const x=w(({marked:o,handlers:r={},renderMarkdown:t,templateConfig:d})=>({extensions:[{name:"markdownLayout",level:"block",start(n){return n.match(/^::: layout /m)?.index},tokenizer(n){const a=(0,u.readLayoutBlock)(n);if(a)return{...(0,u.parseLayoutBlock)(a),type:"markdownLayout",raw:a}},renderer(n){const a=n,i={marked:o,templateConfig:d,renderMarkdown(e){return t?t(e):o.parse(e)},renderDefault(e){return(0,s.renderDefaultMarkdownLayout)(e,i)},renderParts(e){return e.items.map(y=>({...y,html:i.renderMarkdown(y.body)}))}};return(0,s.renderMarkdownLayout)(a,i,r)}}]}),"createMarkdownLayoutExtension");0&&(module.exports={createMarkdownLayoutExtension});
@@ -1,7 +0,0 @@
1
- "use strict";var a=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var i=(e,t)=>a(e,"name",{value:t,configurable:!0});var g=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},k=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of w(t))!L.call(e,o)&&o!==n&&a(e,o,{get:()=>t[o],enumerable:!(r=h(t,o))||r.enumerable});return e};var x=e=>k(a({},"__esModule",{value:!0}),e);var j={};g(j,{parseItemHeader:()=>f,parseLayoutBlock:()=>$,parseLayoutHeader:()=>y,parseOptions:()=>d,readLayoutBlock:()=>N});module.exports=x(j);const l=/^::: layout(?:\s+.*)?$/,c=/^:::\s*$/,M=/^===(?:\s+.*)?$/,O=i(e=>{const t=e.replace(/^(['"])(.*)\1$/,"$2");return/^-?\d+(\.\d+)?$/.test(t)?Number(t):t==="true"?!0:t==="false"?!1:t},"coerceOptionValue"),p=i((e="")=>{const t=[],n=/\S+=("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\S*)|"[^"]*"|'[^']*'|\S+/g;let r;for(;r=n.exec(e);)t.push(r[0]);return t},"tokenizeOptions"),d=i((e="")=>p(e).reduce((t,n)=>{const r=n.indexOf("=");if(r===-1)return t[n]=!0,t;const o=n.slice(0,r).trim(),s=n.slice(r+1).trim();return o&&(t[o]=O(s)),t},{}),"parseOptions"),y=i(e=>{const t=e.replace(/^:::\s*layout\s*/,"").trim(),[n="",...r]=p(t);if(!n)throw new Error(`Invalid layout header: ${e}`);return{layoutType:n,options:d(r.join(" "))}},"parseLayoutHeader"),f=i(e=>{const t=e.replace(/^===\s*/,"").trim();if(!t)return{name:null,options:{}};const[n=null,...r]=p(t);return{name:n,options:d(r.join(" "))}},"parseItemHeader"),I=i(e=>{const t=e.split(`
2
- `),n=[];let r=0,o=null,s=[];const m=i(()=>{o&&(n.push({...o,body:s.join(`
3
- `).trim()}),s=[])},"pushCurrent");for(const u of t){if(l.test(u.trim())){o&&s.push(u),r+=1;continue}if(c.test(u.trim())&&r>0){r-=1,o&&s.push(u);continue}if(r===0&&M.test(u.trim())){m(),o=f(u.trim());continue}o&&s.push(u)}return m(),n.length?n:[{name:null,options:{},body:e.trim()}]},"splitLayoutItems"),$=i(e=>{const t=e.replace(/\s+$/,"").split(`
4
- `),n=t.shift();if(!n||!l.test(n.trim()))throw new Error("Layout block must start with `::: layout`.");return t.length&&c.test(t[t.length-1].trim())&&t.pop(),{...y(n.trim()),items:I(t.join(`
5
- `)),raw:e}},"parseLayoutBlock"),N=i(e=>{if(!e.startsWith("::: layout"))return null;const t=e.split(`
6
- `);let n=0;const r=[];for(const o of t){const s=o.trim();if(r.push(o),l.test(s))n+=1;else if(c.test(s)&&(n-=1,n===0))return r.join(`
7
- `)}return null},"readLayoutBlock");0&&(module.exports={parseItemHeader,parseLayoutBlock,parseLayoutHeader,parseOptions,readLayoutBlock});
@@ -1 +0,0 @@
1
- "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var n=(t,o)=>s(t,"name",{value:o,configurable:!0});var i=(t,o)=>{for(var a in o)s(t,a,{get:o[a],enumerable:!0})},c=(t,o,a,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of p(o))!d.call(t,e)&&e!==a&&s(t,e,{get:()=>o[e],enumerable:!(r=l(o,e))||r.enumerable});return t};var w=t=>c(s({},"__esModule",{value:!0}),t);var $={};i($,{renderDefaultMarkdownLayout:()=>L,renderMarkdownLayout:()=>M});module.exports=w($);const y=n(t=>String(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),"escapeAttribute"),k=n(t=>`--${t.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`)}`,"optionToStyleName"),u=n(t=>{const o=Object.entries(t).filter(([,a])=>typeof a!="boolean").map(([a,r])=>`${k(a)}: ${r};`);return o.length?` style="${y(o.join(" "))}"`:""},"optionsToStyle"),L=n((t,o)=>{const a=y(t.layoutType),r=t.items.map(e=>`<section class="bfs-layout-item"${e.name?` data-name="${y(e.name)}"`:""}${u(e.options)}>${o.renderMarkdown(e.body)}</section>`).join("");return`<div class="bfs-layout bfs-layout-${a}" data-layout="${a}"${u(t.options)}>${r}</div>`},"renderDefaultMarkdownLayout"),M=n((t,o,a={})=>{const r=a[t.layoutType];return r?r({type:t.layoutType,options:t.options,parts:o.renderParts(t),raw:t.raw},o):o.renderDefault(t)},"renderMarkdownLayout");0&&(module.exports={renderDefaultMarkdownLayout,renderMarkdownLayout});
@@ -1 +0,0 @@
1
- "use strict";var r=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var y=(t,o,a,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of i(o))!u.call(t,e)&&e!==a&&r(t,e,{get:()=>o[e],enumerable:!(n=d(o,e))||n.enumerable});return t};var k=t=>y(r({},"__esModule",{value:!0}),t);var p={};module.exports=k(p);
@@ -1,11 +0,0 @@
1
- "use strict";var c=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var i=(e,o)=>c(e,"name",{value:o,configurable:!0});var r=(e,o)=>{for(var s in o)c(e,s,{get:o[s],enumerable:!0})},v=(e,o,s,d)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of l(o))!p.call(e,t)&&t!==s&&c(e,t,{get:()=>o[t],enumerable:!(d=a(o,t))||d.enumerable});return e};var u=e=>v(c({},"__esModule",{value:!0}),e);var b={};r(b,{default:()=>n});module.exports=u(b);function n({lang:e,text:o}){return`<div class="code-snippet">
2
- ${e?`<div class="label ${e.toLowerCase()}">${e}</div>`:""}
3
- <div class="content">
4
- <pre>
5
- <code class="hljs language-javascript">${o}</code>
6
- </pre>
7
- </div>
8
- <button type="button" class="code-copy-btn" style="visibility: hidden">
9
- copy
10
- </button>
11
- </div>`}i(n,"code");
@@ -1 +0,0 @@
1
- "use strict";var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var s=(r,e)=>o(r,"name",{value:e,configurable:!0});var d=(r,e)=>{for(var t in e)o(r,t,{get:e[t],enumerable:!0})},f=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of p(e))!$.call(r,n)&&n!==t&&o(r,n,{get:()=>e[n],enumerable:!(a=c(e,n))||a.enumerable});return r};var g=r=>f(o({},"__esModule",{value:!0}),r);var h={};d(h,{default:()=>i});module.exports=g(h);function i({tokens:r,depth:e}){const t=this.parser.parseInline(r),a=t.toLowerCase().replace(/[^\w]+/g," ").trim().replace(/\s/g,"-");return`<h${e} id="${a}"><a href="#${a}">${t}</a></h${e}>`}s(i,"heading");
@@ -1 +0,0 @@
1
- "use strict";var c=Object.create;var t=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var s=(r,e)=>{for(var o in e)t(r,o,{get:e[o],enumerable:!0})},d=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of j(e))!l.call(r,m)&&m!==o&&t(r,m,{get:()=>e[m],enumerable:!(i=b(e,m))||i.enumerable});return r};var n=(r,e,o)=>(o=r!=null?c(k(r)):{},d(e||!r||!r.__esModule?t(o,"default",{value:r,enumerable:!0}):o,r)),u=r=>d(t({},"__esModule",{value:!0}),r);var R={};s(R,{default:()=>O});module.exports=u(R);var f=n(require("./heading.js"),1),p=n(require("./code.js"),1),a=n(require("./link.js"),1),O={heading:f.default,code:p.default,link:a.default};
@@ -1 +0,0 @@
1
- "use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var o=(e,t)=>n(e,"name",{value:t,configurable:!0});var p=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},c=(e,t,r,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of k(t))!m.call(e,a)&&a!==r&&n(e,a,{get:()=>t[a],enumerable:!(l=i(t,a))||l.enumerable});return e};var f=e=>c(n({},"__esModule",{value:!0}),e);var h={};p(h,{default:()=>s});module.exports=f(h);function s({href:e,text:t}){return`<a target="${e.startsWith("https://")?"_blank":"_self"}" href="${e.replace(/\.md/,".html").replace(/index\.html/,"")}">${t}</a>`}o(s,"link");
@@ -1,78 +0,0 @@
1
- "use strict";var ge=Object.create;var C=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var we=Object.getOwnPropertyNames;var ve=Object.getPrototypeOf,Se=Object.prototype.hasOwnProperty;var m=(e,t)=>C(e,"name",{value:t,configurable:!0});var De=(e,t)=>{for(var r in t)C(e,r,{get:t[r],enumerable:!0})},Q=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of we(t))!Se.call(e,n)&&n!==r&&C(e,n,{get:()=>t[n],enumerable:!(a=ye(t,n))||a.enumerable});return e};var v=(e,t,r)=>(r=e!=null?ge(ve(e)):{},Q(t||!e||!e.__esModule?C(r,"default",{value:e,enumerable:!0}):r,e)),be=e=>Q(C({},"__esModule",{value:!0}),e);var Ue={};De(Ue,{buildDocs:()=>Ne});module.exports=be(Ue);const ze={};var re=require("marked"),c=require("fs/promises"),o=v(require("path"),1),oe=v(require("front-matter"),1),ae=v(require("isomorphic-dompurify"),1),ne=require("marked-highlight"),_=v(require("highlight.js"),1),ie=v(require("./templates/default.template.js"),1),le=v(require("./renderer/index.js"),1),ce=require("./markdown-layout/index.js"),me=v(require("clean-css"),1),ue=v(require("html-minifier"),1),X=v(require("@putout/minify"),1),P=require("url"),f=v(require("fs"),1);let V,A="";const Y=new me.default({inline:["none"]}),R=new Map;R.set("default",ie.default);let W;const Z=m((e,t)=>t===!1?!1:t===void 0?e:e===!1||e===void 0?t:{...e,...t},"mergeThemeMode"),$e=m((e,t)=>{if(!(!e&&!t))return{light:Z(e?.light,t?.light),dark:Z(e?.dark,t?.dark)}},"mergeTheme"),xe=m((e,t)=>({...e,...t,markdownLayouts:{...e.markdownLayouts,...t.markdownLayouts},headScripts:{...e.headScripts,...t.headScripts},scripts:{...e.scripts,...t.scripts},theme:$e(e.theme,t.theme),meta:{...e.meta,...t.meta},site:{...e.site,...t.site}}),"mergeTemplateConfig"),Pe=m((e,t)=>{if(typeof e=="function")return!0;const{match:r}=e;return r?typeof r=="string"?t.includes(r):Array.isArray(r)?r.some(a=>t.includes(a)):r instanceof RegExp?r.test(t):r(t):!0},"scriptMatches"),ee=m((e,t)=>e?Object.values(e).filter(r=>r!==!1).filter(r=>Pe(r,t)).map(r=>typeof r=="function"?r():r.render()):[],"renderPageScripts"),G=m((e,t)=>{const r=Object.entries(t).filter(([a])=>a.startsWith("--")).map(([a,n])=>` ${a}: ${n};`).join(`
2
- `);return r?`${e} {
3
- ${r}
4
- }`:""},"renderThemeBlock"),ke=m(e=>{if(!e)return"";const t=e.light===!1,r=e.dark===!1,a=e.light===!1?void 0:e.light,n=r?void 0:e.dark,u=a||n;return u?[G(":root",u),n&&!t?`@media (prefers-color-scheme: dark) {
5
- ${G(" :root",n)}
6
- }`:"",a?G('[data-theme="light"]',a):"",n?G('[data-theme="dark"]',n):"",t&&n?`.site-logo-light { display: none; }
7
- .site-logo-dark { display: block; }`:"",r&&a?`.site-logo-light { display: block; }
8
- .site-logo-dark { display: none; }`:""].filter(Boolean).join(`
9
-
10
- `):""},"renderThemeStylesheet"),Te=m((e="")=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;"),"escapeXML"),Me=m((e="")=>e.replace(/```[\s\S]*?```/g," ").replace(/`([^`]+)`/g,"$1").replace(/!\[[^\]]*]\([^)]*\)/g," ").replace(/\[([^\]]+)]\([^)]*\)/g,"$1").replace(/^#{1,6}\s+/gm,"").replace(/^---+$/gm," ").replace(/[>*_~]/g,"").replace(/\s+/g," ").trim(),"stripMarkdown"),je=m(e=>e==="/index.html"?"/":e.replace(/\/index\.html$/,"/").replace(/\.html$/,"").replace(/\/+/g,"/"),"pagePathToUrlPath"),te=m((e,t)=>e?`${e.replace(/\/$/,"")}${t==="/"?"/":t}`:t,"canonicalUrl"),Ce=m(async(e,t)=>f.default.existsSync(e)?(await(0,c.mkdir)(o.default.dirname(t),{recursive:!0}),await(0,c.cp)(e,t),!0):!1,"copyIfExists"),Fe=m(async e=>{const t=o.default.resolve(e,"logo.svg");f.default.existsSync(t)&&await Promise.all(["logo.light.svg","logo.dark.svg"].map(async r=>{const a=o.default.resolve(e,r);f.default.existsSync(a)||await(0,c.cp)(t,a)}))},"ensureLogoModeAssets"),Ge=m(e=>{const t={sitemap:!0,robots:!0,llms:!0,llmsFull:!0,netlify:!1};return e===!1?{sitemap:!1,robots:!1,llms:!1,llmsFull:!1,netlify:!1}:e===!0||e===void 0?t:{...t,...e}},"normalizeGeneratedFilesConfig"),Le=m((e,t)=>{if(!t)return"";const r=new Date().toISOString().slice(0,10);return`<?xml version="1.0" encoding="UTF-8"?>
11
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
12
- ${e.map(n=>{const u=n.urlPath==="/"?"1.0":"0.8";return` <url>
13
- <loc>${Te(te(t,n.urlPath))}</loc>
14
- <lastmod>${r}</lastmod>
15
- <changefreq>weekly</changefreq>
16
- <priority>${u}</priority>
17
- </url>`}).join(`
18
- `)}
19
- </urlset>
20
- `},"generateSitemap"),Ee=m(e=>`User-agent: *
21
- Allow: /
22
- ${e?`
23
- Sitemap: ${e.replace(/\/$/,"")}/sitemap.xml
24
- Host: ${e.replace(/\/$/,"")}
25
- `:""}
26
- `,"generateRobots"),Oe=m(e=>`# Documentation
27
-
28
- ## Page index
29
-
30
- ${e.map(t=>`- ${t.name}: ${t.urlPath} - ${t.description}`).join(`
31
- `)}
32
- `,"generateLlms"),Ae=m((e,t)=>`# Documentation for AI agents
33
-
34
- This file is generated at build time from the Markdown documentation. Use it to choose the most relevant page before reading the canonical HTML documentation.
35
-
36
- ${e.map(r=>`## ${r.title}
37
-
38
- URL: ${te(t,r.urlPath)}
39
- Source: docs/${r.sourcePath}
40
- Description: ${r.description}
41
-
42
- ${r.summary||r.description}
43
- `).join(`
44
- `)}
45
- `,"generateLlmsFull"),Re=m((e,t)=>{const r=["# Generated by @beforesemicolon/builder"];return[t.llms?"llms.txt":"",t.llmsFull?"llms-full.txt":"",t.sitemap?"sitemap.xml":"",t.robots?"robots.txt":""].filter(Boolean).forEach(n=>r.push(`/${n} /${n} 200`)),e.forEach(n=>{if(n.urlPath==="/")return;const u=n.urlPath.endsWith("/")?`${n.urlPath}index.html`:`${n.urlPath}.html`;r.push(`${n.urlPath} ${u} 200`),n.urlPath.endsWith("/")&&r.push(`${n.urlPath.replace(/\/$/,"")} ${u} 200`)}),`${[...new Set(r)].join(`
46
- `)}
47
- `},"generateNetlifyRedirects"),We=m(e=>`[build]
48
- command = "node build-docs.js"
49
- publish = "${e||"website"}"
50
-
51
- [[headers]]
52
- for = "/llms.txt"
53
-
54
- [headers.values]
55
- Content-Type = "text/plain; charset=utf-8"
56
- Cache-Control = "public, max-age=0, must-revalidate"
57
-
58
- [[headers]]
59
- for = "/llms-full.txt"
60
-
61
- [headers.values]
62
- Content-Type = "text/plain; charset=utf-8"
63
- Cache-Control = "public, max-age=0, must-revalidate"
64
-
65
- [[headers]]
66
- for = "/sitemap.xml"
67
-
68
- [headers.values]
69
- Content-Type = "application/xml; charset=utf-8"
70
- Cache-Control = "public, max-age=0, must-revalidate"
71
-
72
- [[headers]]
73
- for = "/robots.txt"
74
-
75
- [headers.values]
76
- Content-Type = "text/plain; charset=utf-8"
77
- Cache-Control = "public, max-age=0, must-revalidate"
78
- `,"generateNetlifyToml"),x=m(async(e,t,r,a)=>{if(await Ce(e,t))return;const n=r();if(!n){a&&console.warn(a);return}await(0,c.mkdir)(o.default.dirname(t),{recursive:!0}),await(0,c.writeFile)(t,n)},"writeGeneratedFile"),_e=m(async({docsDir:e,docsSiteDir:t,pages:r,siteUrl:a,publicDir:n,generatedFiles:u})=>{u.sitemap&&await x(o.default.resolve(e,"sitemap.xml"),o.default.resolve(t,"sitemap.xml"),()=>Le(r,a),"Skipping generated sitemap.xml because buildDocs({ siteUrl }) is not set."),u.robots&&await x(o.default.resolve(e,"robots.txt"),o.default.resolve(t,"robots.txt"),()=>Ee(a)),u.llms&&await x(o.default.resolve(e,"llms.txt"),o.default.resolve(t,"llms.txt"),()=>Oe(r)),u.llmsFull&&await x(o.default.resolve(e,"llms-full.txt"),o.default.resolve(t,"llms-full.txt"),()=>Ae(r,a)),u.netlify&&(await x(o.default.resolve(e,"_redirects"),o.default.resolve(t,"_redirects"),()=>Re(r,u)),await x(o.default.resolve(e,"netlify.toml"),o.default.resolve(t,"netlify.toml"),()=>We(n&&o.default.basename(n))))},"writeGeneratedDocsFiles"),se=m((e={},t,r)=>{const a=new re.Marked((0,ne.markedHighlight)({langPrefix:"hljs language-",highlight(n,u){const h=_.default.getLanguage(u)?u:"plaintext";return _.default.highlight(n,{language:h}).value}}));return a.use({renderer:le.default}),a.use((0,ce.createMarkdownLayoutExtension)({marked:a,handlers:e.markdownLayouts,renderMarkdown:r,templateConfig:e})),e.markedOptions&&a.use(e.markedOptions),t&&a.use(t),a},"createBaseMarked"),Be=m((e={},t,r)=>{const a=se(e,t),n=m(h=>a.parse(h),"renderMarkdown"),u=se(e,t,n);return u.use({hooks:{postprocess(h){const{layout:w="default",...k}=W.attributes,T=ee(e.headScripts,h),M=ee(e.scripts,h);h=ae.default.sanitize(h);const b=[...h.matchAll(/<h([0-6])\sid="[^"]+".*?>.*?<a\s+href="([^"]+)".*?>([\s\S]*?)<\/a><\/h\1>/gm)].map(p=>({path:p[2],label:p[3].replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim(),level:p[1]}));return R.get(w)?.({...k,content:h,siteMap:W.siteMap,tableOfContent:b,projectMeta:V,renderMarkdown:n,headScripts:T,scripts:M,themeStylesheet:e.theme?`/stylesheets/theme.css?v=${A}`:void 0,cacheKey:A,siteUrl:r,templateConfig:e})||h}}}),u},"createMarked"),S=m(async e=>{const t=await(0,c.readdir)(e),r=[];for(const a of t){const n=o.default.extname(a);/^[._]/.test(a)||(n?r.push(o.default.join(e,a)):/(stylesheets|assets|scripts)/.test(a)||r.push(...await S(o.default.join(e,a))))}return r},"traverseDirectory"),Ne=m(async({srcDir:e,publicDir:t,markedOptions:r,template:a,siteUrl:n,generatedFiles:u}={})=>{A=Date.now().toString(36);try{const s=o.default.resolve(process.cwd(),"package.json");f.default.existsSync(s)&&(V=JSON.parse(await(0,c.readFile)(s,"utf-8")))}catch(s){console.warn("Failed to load project package.json metadata",s)}const h=m(()=>{try{return __dirname}catch{return o.default.dirname((0,P.fileURLToPath)(ze.url))}},"getDirname"),w=a?o.default.resolve(h(),"templates",a):null,k=w?o.default.resolve(w,"assets"):null,T=w?o.default.resolve(w,"stylesheets"):null,M=w?o.default.resolve(w,"layouts"):null;let b={};if(w)try{let s=o.default.resolve(w,"template.config.js");if(f.default.existsSync(s)||(s=s.replace(/\.js$/,".ts")),f.default.existsSync(s)){const i=await import((0,P.pathToFileURL)(s).href);b=i.default||i}}catch(s){console.error(`Failed to load template config for ${a}`,s)}const p=e??o.default.resolve(process.cwd(),"docs"),d=t??o.default.resolve(process.cwd(),"website"),pe=Ge(u),D=o.default.resolve(p,"_template"),B=o.default.resolve(D,"assets"),N=o.default.resolve(D,"stylesheets"),U=o.default.resolve(D,"scripts"),z=o.default.resolve(D,"layouts"),q=o.default.resolve(p,"_layouts"),F=o.default.resolve(p,"assets"),H=o.default.resolve(p,"stylesheets"),L=o.default.resolve(p,"scripts");try{let s=o.default.resolve(D,"template.config.js");if(f.default.existsSync(s)||(s=s.replace(/\.js$/,".ts")),f.default.existsSync(s)){const i=await import((0,P.pathToFileURL)(s).href),l=i.default||i;b=xe(b,l)}}catch(s){console.error("Failed to load docs _template config",s)}const fe=Be(b,r,n);if(await(0,c.mkdir)(d,{recursive:!0}),k&&f.default.existsSync(k))try{await(0,c.cp)(k,F.replace(p,d),{recursive:!0})}catch(s){console.warn(s)}if(f.default.existsSync(F))try{await(0,c.cp)(F,F.replace(p,d),{recursive:!0})}catch(s){console.warn(s)}if(f.default.existsSync(B))try{await(0,c.cp)(B,o.default.resolve(d,"assets"),{recursive:!0})}catch(s){console.warn(s)}await Fe(o.default.resolve(d,"assets"));try{const s=new Set;if(T&&f.default.existsSync(T)&&(await S(T)).forEach(l=>s.add(l)),f.default.existsSync(H)&&(await S(H)).forEach(l=>s.add(l)),f.default.existsSync(N)&&(await S(N)).forEach(l=>s.add(l)),s.size){await(0,c.mkdir)(o.default.join(d,"stylesheets"),{recursive:!0});for(const l of s){const g=await(0,c.readFile)(l,"utf-8"),y=Y.minify(g);y.errors.length&&y.errors.forEach(console.error);const j=l.startsWith(D)?l.replace(D,d):l.startsWith(p)?l.replace(p,d):o.default.join(d,"stylesheets",o.default.basename(l));await(0,c.writeFile)(j,y.styles??g)}}const i=ke(b.theme);if(i){const l=Y.minify(i);l.errors.length&&l.errors.forEach(console.error),await(0,c.mkdir)(o.default.join(d,"stylesheets"),{recursive:!0}),await(0,c.writeFile)(o.default.join(d,"stylesheets","theme.css"),l.styles??i)}}catch(s){console.error(s)}if(f.default.existsSync(L))try{const s=await S(L);s.length&&await(0,c.mkdir)(L.replace(p,d),{recursive:!0});for(const i of s)try{const l=await(0,c.readFile)(i,"utf-8");await(0,c.writeFile)(i.replace(p,d),X.minify(l))}catch(l){console.error(l)}}catch(s){console.warn(s)}if(f.default.existsSync(U))try{const s=await S(U);s.length&&await(0,c.mkdir)(o.default.join(d,"scripts"),{recursive:!0});for(const i of s)try{const l=await(0,c.readFile)(i,"utf-8");await(0,c.writeFile)(i.replace(D,d),X.minify(l))}catch(l){console.error(l)}}catch(s){console.warn(s)}try{const s=new Map;M&&f.default.existsSync(M)&&(await S(M)).forEach(i=>{/\.(j|t)s$/.test(i)&&s.set(o.default.basename(i).replace(/\.(j|t)s$/,""),i)}),f.default.existsSync(q)&&(await S(q)).forEach(i=>{/\.(j|t)s$/.test(i)&&s.set(o.default.basename(i).replace(/\.(j|t)s$/,""),i)}),f.default.existsSync(z)&&(await S(z)).forEach(i=>{/\.(j|t)s$/.test(i)&&s.set(o.default.basename(i).replace(/\.(j|t)s$/,""),i)});for(const[i,l]of s.entries()){const g=await import((0,P.pathToFileURL)(l).href);R.set(i,g.default)}}catch(s){console.error("Template import failed",s)}const de=await S(p),I=new Map,J=(await Promise.all(de.filter(s=>s.endsWith(".md")).map(async s=>{const i=await(0,c.readFile)(s,"utf-8");return{filePath:s,...(0,oe.default)(i)}}))).sort((s,i)=>(s.attributes.order??0)-(i.attributes.order??0)).map(({attributes:s,body:i,filePath:l})=>{const g=l.replace(p,"").replace(/\.md/,".html"),y=l.replace(p,d).replace(".md",".html"),j=y.replace(o.default.basename(y),""),E=o.default.basename(g)||"/",he=g.replace(E,"").replace(/\/$/,"");let $=I;he.split("/").filter(Boolean).forEach(O=>{$.has(O)||$.set(O,new Map),$=$.get(O)});const K={...s,path:g};return $.has(E)||$.set(E,K),{attributes:K,fileWebsitePath:y,fileDirWebsitePath:j,body:i,sourcePath:o.default.relative(p,l),siteMap:I}});for(const{attributes:s,body:i,fileDirWebsitePath:l,fileWebsitePath:g,siteMap:y}of J){W={attributes:s,siteMap:y};const j=await fe.parse(i);await(0,c.mkdir)(l,{recursive:!0}),await(0,c.writeFile)(g,ue.default.minify(j,{includeAutoGeneratedTags:!0,removeAttributeQuotes:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!0,removeStyleLinkTypeAttributes:!0,sortClassName:!0,useShortDoctype:!0,collapseWhitespace:!0,minifyJS:!0,minifyCSS:!0}))}await _e({docsDir:p,docsSiteDir:d,pages:J.map(({attributes:s,body:i,sourcePath:l})=>{const g=je(String(s.path)),y=Me(i);return{sourcePath:l,urlPath:g,title:String(s.title||s.name||"").trim()||"Documentation",name:String(s.name||s.title||"").trim()||"Documentation",description:String(s.description||"").trim()||y.slice(0,156)||"Documentation page.",order:Number(s.order??999),summary:y.slice(0,320)}}),siteUrl:n,publicDir:d,generatedFiles:pe})},"buildDocs");0&&(module.exports={buildDocs});
@@ -1,17 +0,0 @@
1
- "use strict";var o=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var m=(e,t)=>o(e,"name",{value:t,configurable:!0});var r=(e,t)=>{for(var a in t)o(e,a,{get:t[a],enumerable:!0})},c=(e,t,a,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of l(t))!h.call(e,i)&&i!==a&&o(e,i,{get:()=>t[i],enumerable:!(d=n(t,i))||d.enumerable});return e};var p=e=>c(o({},"__esModule",{value:!0}),e);var P={};r(P,{default:()=>s});module.exports=p(P);var s=m(({title:e,description:t,content:a})=>`
2
- <!doctype html>
3
- <html lang="en">
4
- <head>
5
- <meta charset="UTF-8" />
6
- <meta
7
- name="viewport"
8
- content="width=device-width, initial-scale=1.0"
9
- />
10
- <meta name="description" content="${t}" />
11
- <title>${e}</title>
12
- </head>
13
- <body>
14
- ${a}
15
- </body>
16
- </html>
17
- `,"default");