@beforesemicolon/builder 1.6.4 → 1.6.5

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.
@@ -1 +1 @@
1
- "use strict";var $=Object.create;var h=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty;var b=(t,r)=>h(t,"name",{value:r,configurable:!0});var Q=(t,r)=>{for(var e in r)h(t,e,{get:r[e],enumerable:!0})},F=(t,r,e,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of G(r))!J.call(t,c)&&c!==e&&h(t,c,{get:()=>r[c],enumerable:!(o=z(r,c))||o.enumerable});return t};var u=(t,r,e)=>(e=t!=null?$(H(t)):{},F(r||!t||!t.__esModule?h(e,"default",{value:t,enumerable:!0}):e,t)),q=t=>F(h({},"__esModule",{value:!0}),t);var V={};Q(V,{buildDocs:()=>U});module.exports=q(V);var k=require("marked"),i=require("fs/promises"),n=u(require("path"),1),x=u(require("front-matter"),1),T=u(require("isomorphic-dompurify"),1),W=require("marked-highlight"),S=u(require("highlight.js"),1),B=u(require("./templates/default.template.js"),1),E=u(require("./renderer/index.js"),1),L=u(require("clean-css"),1),N=u(require("html-minifier"),1),I=u(require("@putout/minify"),1);const K=new L.default({inline:["none"]}),v=new Map;v.set("default",B.default);let D;const M=new k.Marked((0,W.markedHighlight)({langPrefix:"hljs language-",highlight(t,r){const e=S.default.getLanguage(r)?r:"plaintext";return S.default.highlight(t,{language:e}).value}}));M.use({renderer:E.default});const d=b(async t=>{const r=await(0,i.readdir)(t),e=[];for(const o of r){const c=n.default.extname(o);/^[._]/.test(o)||(c?e.push(n.default.join(t,o)):/(stylesheets|assets|scripts)/.test(o)||e.push(...await d(n.default.join(t,o))))}return e},"traverseDirectory");M.use({hooks:{postprocess(t){const{layout:r="default",...e}=D.attributes;t=T.default.sanitize(t);const o=[...t.matchAll(/<h([0-6])\sid="[^"]+".*?>.*?<a\s+href="([^"]+)".*?>([^<]+)<\/a>/gm)].map(c=>({path:c[2],label:c[3],level:c[1]}));return v.get(r)?.({...e,content:t,siteMap:D.siteMap,tableOfContent:o})||t}}});const U=b(async({srcDir:t,publicDir:r})=>{const e=t??n.default.resolve(process.cwd(),"docs"),o=r??n.default.resolve(process.cwd(),"website"),c=n.default.resolve(e,"_layouts"),P=n.default.resolve(e,"assets"),C=n.default.resolve(e,"stylesheets"),j=n.default.resolve(e,"scripts");await(0,i.mkdir)(o,{recursive:!0});try{await(0,i.cp)(P,P.replace(e,o),{recursive:!0})}catch(s){console.warn(s)}try{const s=await d(C);s.length&&await(0,i.mkdir)(C.replace(e,o),{recursive:!0});for(const a of s){const l=await(0,i.readFile)(a,"utf-8"),p=K.minify(l);p.errors.length&&p.errors.forEach(console.error),await(0,i.writeFile)(a.replace(e,o),p.styles??l)}}catch(s){console.error(s)}try{const s=await d(j);s.length&&await(0,i.mkdir)(j.replace(e,o),{recursive:!0});for(const a of s)try{const l=await(0,i.readFile)(a,"utf-8");await(0,i.writeFile)(a.replace(e,o),I.minify(l))}catch(l){console.error(l)}}catch(s){console.warn(s)}try{const s=await d(c);for(const a of s)if(/\.(j|t)s$/.test(a)){const l=n.default.basename(a).replace(n.default.extname(a),""),p=await import(a);v.set(l,p.default)}}catch(s){console.error("Template import failed",s)}const R=await d(e),O=new Map;(await Promise.all(R.filter(s=>s.endsWith(".md")).map(async s=>{const a=await(0,i.readFile)(s,"utf-8");return{filePath:s,...(0,x.default)(a)}}))).sort((s,a)=>s.attributes.order-a.attributes.order).map(({attributes:s,body:a,filePath:l})=>{const p=l.replace(e,"").replace(/\.md/,".html"),f=l.replace(e,o).replace(".md",".html"),w=f.replace(n.default.basename(f),""),y=n.default.basename(p)||"/",_=p.replace(y,"").replace(/\/$/,"");let m=O;_.split("/").filter(Boolean).forEach(g=>{m.has(g)||m.set(g,new Map),m=m.get(g)});const A={...s,path:p};return m.has(y)||m.set(y,A),{attributes:A,fileWebsitePath:f,fileDirWebsitePath:w,body:a,siteMap:O}}).forEach(async({attributes:s,body:a,fileDirWebsitePath:l,fileWebsitePath:p,siteMap:f})=>{D={attributes:s,siteMap:f};const w=await M.parse(a);await(0,i.mkdir)(l,{recursive:!0}),await(0,i.writeFile)(p,N.default.minify(w,{includeAutoGeneratedTags:!0,removeAttributeQuotes:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!0,removeStyleLinkTypeAttributes:!0,sortClassName:!0,useShortDoctype:!0,collapseWhitespace:!0,minifyJS:!0,minifyCSS:!0}))})},"buildDocs");0&&(module.exports={buildDocs});
1
+ "use strict";var $=Object.create;var h=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty;var b=(t,r)=>h(t,"name",{value:r,configurable:!0});var Q=(t,r)=>{for(var e in r)h(t,e,{get:r[e],enumerable:!0})},F=(t,r,e,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of G(r))!J.call(t,c)&&c!==e&&h(t,c,{get:()=>r[c],enumerable:!(o=z(r,c))||o.enumerable});return t};var u=(t,r,e)=>(e=t!=null?$(H(t)):{},F(r||!t||!t.__esModule?h(e,"default",{value:t,enumerable:!0}):e,t)),q=t=>F(h({},"__esModule",{value:!0}),t);var V={};Q(V,{buildDocs:()=>U});module.exports=q(V);var k=require("marked"),i=require("fs/promises"),n=u(require("path"),1),x=u(require("front-matter"),1),T=u(require("isomorphic-dompurify"),1),W=require("marked-highlight"),S=u(require("highlight.js"),1),B=u(require("./templates/default.template.js"),1),E=u(require("./renderer/index.js"),1),L=u(require("clean-css"),1),N=u(require("html-minifier"),1),I=u(require("@putout/minify"),1);const K=new L.default({inline:["none"]}),v=new Map;v.set("default",B.default);let D;const M=new k.Marked((0,W.markedHighlight)({langPrefix:"hljs language-",highlight(t,r){const e=S.default.getLanguage(r)?r:"plaintext";return S.default.highlight(t,{language:e}).value}}));M.use({renderer:E.default});const d=b(async t=>{const r=await(0,i.readdir)(t),e=[];for(const o of r){const c=n.default.extname(o);/^[._]/.test(o)||(c?e.push(n.default.join(t,o)):/(stylesheets|assets|scripts)/.test(o)||e.push(...await d(n.default.join(t,o))))}return e},"traverseDirectory");M.use({hooks:{postprocess(t){const{layout:r="default",...e}=D.attributes;t=T.default.sanitize(t);const o=[...t.matchAll(/<h([0-6])\sid="[^"]+".*?>.*?<a\s+href="([^"]+)".*?>([^<]+)<\/a>/gm)].map(c=>({path:c[2],label:c[3],level:c[1]}));return v.get(r)?.({...e,content:t,siteMap:D.siteMap,tableOfContent:o})||t}}});const U=b(async({srcDir:t,publicDir:r}={})=>{const e=t??n.default.resolve(process.cwd(),"docs"),o=r??n.default.resolve(process.cwd(),"website"),c=n.default.resolve(e,"_layouts"),P=n.default.resolve(e,"assets"),C=n.default.resolve(e,"stylesheets"),j=n.default.resolve(e,"scripts");await(0,i.mkdir)(o,{recursive:!0});try{await(0,i.cp)(P,P.replace(e,o),{recursive:!0})}catch(s){console.warn(s)}try{const s=await d(C);s.length&&await(0,i.mkdir)(C.replace(e,o),{recursive:!0});for(const a of s){const l=await(0,i.readFile)(a,"utf-8"),p=K.minify(l);p.errors.length&&p.errors.forEach(console.error),await(0,i.writeFile)(a.replace(e,o),p.styles??l)}}catch(s){console.error(s)}try{const s=await d(j);s.length&&await(0,i.mkdir)(j.replace(e,o),{recursive:!0});for(const a of s)try{const l=await(0,i.readFile)(a,"utf-8");await(0,i.writeFile)(a.replace(e,o),I.minify(l))}catch(l){console.error(l)}}catch(s){console.warn(s)}try{const s=await d(c);for(const a of s)if(/\.(j|t)s$/.test(a)){const l=n.default.basename(a).replace(n.default.extname(a),""),p=await import(a);v.set(l,p.default)}}catch(s){console.error("Template import failed",s)}const R=await d(e),O=new Map;(await Promise.all(R.filter(s=>s.endsWith(".md")).map(async s=>{const a=await(0,i.readFile)(s,"utf-8");return{filePath:s,...(0,x.default)(a)}}))).sort((s,a)=>s.attributes.order-a.attributes.order).map(({attributes:s,body:a,filePath:l})=>{const p=l.replace(e,"").replace(/\.md/,".html"),f=l.replace(e,o).replace(".md",".html"),w=f.replace(n.default.basename(f),""),y=n.default.basename(p)||"/",_=p.replace(y,"").replace(/\/$/,"");let m=O;_.split("/").filter(Boolean).forEach(g=>{m.has(g)||m.set(g,new Map),m=m.get(g)});const A={...s,path:p};return m.has(y)||m.set(y,A),{attributes:A,fileWebsitePath:f,fileDirWebsitePath:w,body:a,siteMap:O}}).forEach(async({attributes:s,body:a,fileDirWebsitePath:l,fileWebsitePath:p,siteMap:f})=>{D={attributes:s,siteMap:f};const w=await M.parse(a);await(0,i.mkdir)(l,{recursive:!0}),await(0,i.writeFile)(p,N.default.minify(w,{includeAutoGeneratedTags:!0,removeAttributeQuotes:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!0,removeStyleLinkTypeAttributes:!0,sortClassName:!0,useShortDoctype:!0,collapseWhitespace:!0,minifyJS:!0,minifyCSS:!0}))})},"buildDocs");0&&(module.exports={buildDocs});
@@ -1 +1 @@
1
- var x=Object.defineProperty;var y=(r,c)=>x(r,"name",{value:c,configurable:!0});import{Marked as T}from"marked";import{cp as W,mkdir as f,readdir as B,readFile as g,writeFile as b}from"fs/promises";import i from"path";import E from"front-matter";import L from"isomorphic-dompurify";import{markedHighlight as N}from"marked-highlight";import A from"highlight.js";import R from"./templates/default.template.js";import _ from"./renderer/index.js";import $ from"clean-css";import z from"html-minifier";import*as G from"@putout/minify";const H=new $({inline:["none"]}),v=new Map;v.set("default",R);let D;const M=new T(N({langPrefix:"hljs language-",highlight(r,c){const e=A.getLanguage(c)?c:"plaintext";return A.highlight(r,{language:e}).value}}));M.use({renderer:_});const m=y(async r=>{const c=await B(r),e=[];for(const o of c){const l=i.extname(o);/^[._]/.test(o)||(l?e.push(i.join(r,o)):/(stylesheets|assets|scripts)/.test(o)||e.push(...await m(i.join(r,o))))}return e},"traverseDirectory");M.use({hooks:{postprocess(r){const{layout:c="default",...e}=D.attributes;r=L.sanitize(r);const o=[...r.matchAll(/<h([0-6])\sid="[^"]+".*?>.*?<a\s+href="([^"]+)".*?>([^<]+)<\/a>/gm)].map(l=>({path:l[2],label:l[3],level:l[1]}));return v.get(c)?.({...e,content:r,siteMap:D.siteMap,tableOfContent:o})||r}}});const it=y(async({srcDir:r,publicDir:c})=>{const e=r??i.resolve(process.cwd(),"docs"),o=c??i.resolve(process.cwd(),"website"),l=i.resolve(e,"_layouts"),S=i.resolve(e,"assets"),P=i.resolve(e,"stylesheets"),C=i.resolve(e,"scripts");await f(o,{recursive:!0});try{await W(S,S.replace(e,o),{recursive:!0})}catch(t){console.warn(t)}try{const t=await m(P);t.length&&await f(P.replace(e,o),{recursive:!0});for(const s of t){const a=await g(s,"utf-8"),n=H.minify(a);n.errors.length&&n.errors.forEach(console.error),await b(s.replace(e,o),n.styles??a)}}catch(t){console.error(t)}try{const t=await m(C);t.length&&await f(C.replace(e,o),{recursive:!0});for(const s of t)try{const a=await g(s,"utf-8");await b(s.replace(e,o),G.minify(a))}catch(a){console.error(a)}}catch(t){console.warn(t)}try{const t=await m(l);for(const s of t)if(/\.(j|t)s$/.test(s)){const a=i.basename(s).replace(i.extname(s),""),n=await import(s);v.set(a,n.default)}}catch(t){console.error("Template import failed",t)}const F=await m(e),j=new Map;(await Promise.all(F.filter(t=>t.endsWith(".md")).map(async t=>{const s=await g(t,"utf-8");return{filePath:t,...E(s)}}))).sort((t,s)=>t.attributes.order-s.attributes.order).map(({attributes:t,body:s,filePath:a})=>{const n=a.replace(e,"").replace(/\.md/,".html"),u=a.replace(e,o).replace(".md",".html"),h=u.replace(i.basename(u),""),d=i.basename(n)||"/",k=n.replace(d,"").replace(/\/$/,"");let p=j;k.split("/").filter(Boolean).forEach(w=>{p.has(w)||p.set(w,new Map),p=p.get(w)});const O={...t,path:n};return p.has(d)||p.set(d,O),{attributes:O,fileWebsitePath:u,fileDirWebsitePath:h,body:s,siteMap:j}}).forEach(async({attributes:t,body:s,fileDirWebsitePath:a,fileWebsitePath:n,siteMap:u})=>{D={attributes:t,siteMap:u};const h=await M.parse(s);await f(a,{recursive:!0}),await b(n,z.minify(h,{includeAutoGeneratedTags:!0,removeAttributeQuotes:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!0,removeStyleLinkTypeAttributes:!0,sortClassName:!0,useShortDoctype:!0,collapseWhitespace:!0,minifyJS:!0,minifyCSS:!0}))})},"buildDocs");export{it as buildDocs};
1
+ var x=Object.defineProperty;var y=(r,c)=>x(r,"name",{value:c,configurable:!0});import{Marked as T}from"marked";import{cp as W,mkdir as f,readdir as B,readFile as g,writeFile as b}from"fs/promises";import i from"path";import E from"front-matter";import L from"isomorphic-dompurify";import{markedHighlight as N}from"marked-highlight";import A from"highlight.js";import R from"./templates/default.template.js";import _ from"./renderer/index.js";import $ from"clean-css";import z from"html-minifier";import*as G from"@putout/minify";const H=new $({inline:["none"]}),v=new Map;v.set("default",R);let D;const M=new T(N({langPrefix:"hljs language-",highlight(r,c){const e=A.getLanguage(c)?c:"plaintext";return A.highlight(r,{language:e}).value}}));M.use({renderer:_});const m=y(async r=>{const c=await B(r),e=[];for(const o of c){const l=i.extname(o);/^[._]/.test(o)||(l?e.push(i.join(r,o)):/(stylesheets|assets|scripts)/.test(o)||e.push(...await m(i.join(r,o))))}return e},"traverseDirectory");M.use({hooks:{postprocess(r){const{layout:c="default",...e}=D.attributes;r=L.sanitize(r);const o=[...r.matchAll(/<h([0-6])\sid="[^"]+".*?>.*?<a\s+href="([^"]+)".*?>([^<]+)<\/a>/gm)].map(l=>({path:l[2],label:l[3],level:l[1]}));return v.get(c)?.({...e,content:r,siteMap:D.siteMap,tableOfContent:o})||r}}});const it=y(async({srcDir:r,publicDir:c}={})=>{const e=r??i.resolve(process.cwd(),"docs"),o=c??i.resolve(process.cwd(),"website"),l=i.resolve(e,"_layouts"),S=i.resolve(e,"assets"),P=i.resolve(e,"stylesheets"),C=i.resolve(e,"scripts");await f(o,{recursive:!0});try{await W(S,S.replace(e,o),{recursive:!0})}catch(t){console.warn(t)}try{const t=await m(P);t.length&&await f(P.replace(e,o),{recursive:!0});for(const s of t){const a=await g(s,"utf-8"),n=H.minify(a);n.errors.length&&n.errors.forEach(console.error),await b(s.replace(e,o),n.styles??a)}}catch(t){console.error(t)}try{const t=await m(C);t.length&&await f(C.replace(e,o),{recursive:!0});for(const s of t)try{const a=await g(s,"utf-8");await b(s.replace(e,o),G.minify(a))}catch(a){console.error(a)}}catch(t){console.warn(t)}try{const t=await m(l);for(const s of t)if(/\.(j|t)s$/.test(s)){const a=i.basename(s).replace(i.extname(s),""),n=await import(s);v.set(a,n.default)}}catch(t){console.error("Template import failed",t)}const F=await m(e),j=new Map;(await Promise.all(F.filter(t=>t.endsWith(".md")).map(async t=>{const s=await g(t,"utf-8");return{filePath:t,...E(s)}}))).sort((t,s)=>t.attributes.order-s.attributes.order).map(({attributes:t,body:s,filePath:a})=>{const n=a.replace(e,"").replace(/\.md/,".html"),u=a.replace(e,o).replace(".md",".html"),h=u.replace(i.basename(u),""),d=i.basename(n)||"/",k=n.replace(d,"").replace(/\/$/,"");let p=j;k.split("/").filter(Boolean).forEach(w=>{p.has(w)||p.set(w,new Map),p=p.get(w)});const O={...t,path:n};return p.has(d)||p.set(d,O),{attributes:O,fileWebsitePath:u,fileDirWebsitePath:h,body:s,siteMap:j}}).forEach(async({attributes:t,body:s,fileDirWebsitePath:a,fileWebsitePath:n,siteMap:u})=>{D={attributes:t,siteMap:u};const h=await M.parse(s);await f(a,{recursive:!0}),await b(n,z.minify(h,{includeAutoGeneratedTags:!0,removeAttributeQuotes:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!0,removeStyleLinkTypeAttributes:!0,sortClassName:!0,useShortDoctype:!0,collapseWhitespace:!0,minifyJS:!0,minifyCSS:!0}))})},"buildDocs");export{it as buildDocs};
@@ -2,5 +2,5 @@ interface BuildDocsOptions {
2
2
  publicDir?: string;
3
3
  srcDir?: string;
4
4
  }
5
- export declare const buildDocs: ({ srcDir, publicDir }: BuildDocsOptions) => Promise<void>;
5
+ export declare const buildDocs: ({ srcDir, publicDir, }?: BuildDocsOptions) => Promise<void>;
6
6
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beforesemicolon/builder",
3
- "version": "1.6.4",
3
+ "version": "1.6.5",
4
4
  "description": "Utilities to build npm packages and documentation website",
5
5
  "engines": {
6
6
  "node": ">=18.16.0"