@coreframe/vite 0.1.12 → 0.1.14
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.
- package/dist/assets.js +2 -2
- package/dist/managed-dev-overlay.js +1 -1
- package/package.json +3 -3
package/dist/assets.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{readFile as e}from"node:fs/promises";import{checkAssets as t,formatAssetProblems as n,materializeAsset as r,readAssetManifest as i,resolveAssetVariantFile as a}from"@coreframe/scripts/assets";const o=/!\[([^\]]*)\]\(@asset\s+([a-z0-9][a-z0-9/-]*)\)/g;function s({cwd:e=process.cwd(),devMaterialize:s=!0}={}){let d=`virtual:assets`,h=`\0${d}`,g=new Map,_
|
|
2
|
-
`)},async transform(t,r){let[a]=r.split(`?`,1);if(!a?.endsWith(`.md`)&&!a?.endsWith(`.mdx`))return;let c=[...t.matchAll(o)];if(c.length===0)return;let l=await i(e),d=[...l.problems],f=t;for(let e of c){let[t,n,i]=e,a=l.manifest[i];if(!a){d.push({code:`INVALID_REFERENCE`,message:`Asset reference "${i}" in "${r}" is not present in assets/manifest.json.`,assetId:i,file:r});continue}if(this.meta.watchMode&&s&&a.variants.length===0){this.warn(`Materializing Coreframe asset "${i}" for dev.`);let e=await
|
|
1
|
+
import{readFile as e}from"node:fs/promises";import{checkAssets as t,formatAssetProblems as n,materializeAsset as r,readAssetManifest as i,resolveAssetVariantFile as a}from"@coreframe/scripts/assets";const o=/!\[([^\]]*)\]\(@asset\s+([a-z0-9][a-z0-9/-]*)\)/g;function s({cwd:e=process.cwd(),devMaterialize:s=!0}={}){let d=`virtual:assets`,h=`\0${d}`,g=new Map,_=``,v=!1;function y(e){return{...e,variants:[...e.variants].sort((e,t)=>e.width-t.width).map(e=>({...e,src:c(_,e.path)}))}}async function b(t){let i=g.get(t);if(i)return i;let a=(async()=>{let i=await r(t,{cwd:e,updateManifest:!1});if(!i.ok)throw Error(n(i.problems));return i})();g.set(t,a);try{return await a}finally{g.delete(t)}}return{name:`coreframe:assets`,configResolved(e){_=l(e.env.VITE_MEDIA_PUBLIC_BASE_URL),v=e.mode===`test`||process.env.VITEST===`true`},configureServer(t){t.middlewares.use(async(r,o,c)=>{try{if(!r.url||![`GET`,`HEAD`].includes(r.method??`GET`)){c();return}let l=f(r.url);if(!l){c();return}let u=await i(e);if(u.problems.length>0){c(Error(n(u.problems)));return}let d=p(u.manifest,l);if(!d){c();return}let h=a(e,l),g=await m(h);if(!g&&s&&(t.config.logger.info(`Materializing Coreframe asset "${d}" for dev.`),await b(d),g=await m(h),!g))throw Error(`Coreframe asset variant "${l}" does not match its source. Run: coreframe assets build --id ${d}`);if(!g){c();return}o.statusCode=200,o.setHeader(`Content-Type`,`image/webp`),o.setHeader(`Cache-Control`,`public, max-age=31536000, immutable`),o.setHeader(`Content-Length`,g.byteLength),o.end(r.method===`HEAD`?void 0:g)}catch(e){c(e)}})},async buildStart(){if(this.meta.watchMode||v)return;let r=await t({cwd:e});if(!r.ok)throw Error(n(r.problems))},async resolveId(e){if(e===d)return h},async load(t){if(t!==h)return;let{manifest:r,problems:a}=await i(e);if(a.length>0)throw Error(n(a));let o=Object.fromEntries(Object.entries(r).map(([e,t])=>[e,y(t)]));return[`const manifest = ${JSON.stringify(o)};`,`export { manifest };`,`export function asset(id) {`,` const entry = manifest[id];`," if (!entry) throw new Error(`Unknown Coreframe asset: ${id}`);",` if (entry.variants.length === 0) {`," throw new Error(`Coreframe asset has no generated variants: ${id}. Run: coreframe assets build --id ${id}`);",` }`,` return entry;`,`}`].join(`
|
|
2
|
+
`)},async transform(t,r){let[a]=r.split(`?`,1);if(!a?.endsWith(`.md`)&&!a?.endsWith(`.mdx`))return;let c=[...t.matchAll(o)];if(c.length===0)return;let l=await i(e),d=[...l.problems],f=t;for(let e of c){let[t,n,i]=e,a=l.manifest[i];if(!a){d.push({code:`INVALID_REFERENCE`,message:`Asset reference "${i}" in "${r}" is not present in assets/manifest.json.`,assetId:i,file:r});continue}if(this.meta.watchMode&&s&&a.variants.length===0){this.warn(`Materializing Coreframe asset "${i}" for dev.`);let e=await b(i);d.push(...e.problems);let t=e.assets.find(e=>e.assetId===i);t&&(l.manifest[i]={...a,variants:t.variants})}let o=y(l.manifest[i]??a);if(o.variants.length===0){d.push({code:`GENERATED_VARIANT_MISSING`,message:`Asset "${i}" has no generated variants.`,assetId:i,file:r,fix:`Run: coreframe assets build --id ${i}`});continue}f=f.replace(t,u(n,o))}if(d.length>0)throw Error(n(d));return f}}}function c(e,t){return`${e}/${t}`}function l(e){return(e??``).replace(/\/+$/,``)}function u(e,t){let n=t.variants.at(-1),r=t.variants.map(e=>`${e.src} ${e.width}w`).join(`, `);return[`<img alt="${d(e)}"`,`src="${d(n.src)}"`,`srcset="${d(r)}"`,`sizes="100vw"`,`width="${t.width}"`,`height="${t.height}">`].join(` `)}function d(e){return e.replaceAll(`&`,`&`).replaceAll(`"`,`"`).replaceAll(`<`,`<`).replaceAll(`>`,`>`)}function f(e){let t=decodeURIComponent(new URL(e,`http://coreframe.local`).pathname).replace(/^\/+/,``);return t.startsWith(`assets/`)?t:void 0}function p(e,t){return Object.entries(e).find(([,e])=>e.variants.some(e=>e.path===t))?.[0]}async function m(t){try{return await e(t)}catch(e){if(h(e)&&e.code===`ENOENT`)return;throw e}}function h(e){return e instanceof Error&&`code`in e}export{s as coreframeAssetsPlugin};
|
|
@@ -101,4 +101,4 @@ let i=r(({className:r,...i},a)=>n(E,{ref:a,iconNode:t,className:y(`lucide-${ee(x
|
|
|
101
101
|
* See the LICENSE file in the root directory of this source tree.
|
|
102
102
|
*/
|
|
103
103
|
;function te(){return import.meta.hot}var F={actionError:`actionError`,actions:`actions`,actionSuccess:`actionSuccess`,button:`button`,checkbox:`checkbox`,content:`content`,dialog:`dialog`,errorIcon:`errorIcon`,filePath:`filePath`,files:`files`,header:`header`,iconButton:`iconButton`,indicatorButton:`indicatorButton`,indicatorDot:`indicatorDot`,message:`message`,paragraph:`paragraph`,primary:`primary`,radiate:`radiate`,successIcon:`successIcon`,title:`title`,warning:`warning`},ne=`[data-isolet-root]{color-scheme:light dark;font:14px/1.45 system-ui,sans-serif}.indicatorButton{appearance:none;cursor:pointer;pointer-events:auto;background:0 0;border:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex;position:fixed;bottom:10px;right:10px}.indicatorDot{background:var(--managed-dev-indicator-color);box-shadow:0 0 0 1px color-mix(in srgb, Canvas 70%, transparent);height:var(--managed-dev-indicator-size);width:var(--managed-dev-indicator-size);border-radius:50%;display:block;position:relative}.indicatorDot:before{border:max(1px, calc(var(--managed-dev-indicator-size) / 9)) solid var(--managed-dev-indicator-color);border-radius:inherit;content:"";animation:1.8s ease-out infinite radiate;position:absolute;inset:0}.dialog{border:1px solid color-mix(in srgb, CanvasText 18%, transparent);color:canvastext;box-sizing:border-box;pointer-events:auto;background:canvas;border-radius:14px;width:min(430px,100vw - 36px);max-width:min(430px,100vw - 36px);max-height:min(620px,100dvh - 80px);margin:0;padding:18px;position:fixed;inset:auto 18px 62px auto;overflow:auto;box-shadow:0 18px 60px #0005}.dialog[open]{gap:12px;display:grid}.header{justify-content:space-between;align-items:center;gap:12px;display:flex}.title{margin:0;font-size:16px}.iconButton{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:4px;display:inline-flex}.content{gap:12px;display:grid}.paragraph{margin:0}.files{gap:7px;max-height:190px;display:grid;overflow:auto}.checkbox{overflow-wrap:anywhere;align-items:start;gap:8px;display:flex}.filePath{font-family:ui-monospace,monospace}.message{box-sizing:border-box;resize:vertical;width:100%;min-height:92px;font-family:ui-monospace,monospace}.actions{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.button{border:1px solid color-mix(in srgb, CanvasText 22%, transparent);cursor:pointer;font:inherit;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:7px 11px;transition:opacity .14s;display:inline-flex}.primary{color:#fff;background:#2563eb;border-color:#2563eb}.button:disabled{cursor:wait;opacity:.55}.warning{color:#b45309;white-space:pre-wrap}.actionError{background:color-mix(in srgb, #facc15 18%, Canvas);color:color-mix(in srgb, #854d0e 82%, CanvasText);white-space:pre-wrap;border:1px solid #ca8a0485;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:start;gap:8px;padding:10px;display:grid}.actionSuccess{background:color-mix(in srgb, #22c55e 16%, Canvas);color:color-mix(in srgb, #166534 82%, CanvasText);border:1px solid #16a34a7a;border-radius:10px;grid-template-columns:auto 1fr;align-items:start;gap:8px;padding:10px;display:grid}.errorIcon,.successIcon{margin-top:1px}@keyframes radiate{0%{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}@media (width<=600px){.dialog{width:auto;max-height:calc(100dvh - 86px);padding:16px;inset:auto 12px 62px}.button{min-height:44px}}@media (prefers-reduced-motion:reduce){.indicatorDot:before{opacity:.45;animation:none;transform:scale(1.65)}}
|
|
104
|
-
`;let I=!1,L=0;const R=new Set;function z(){B(!I)}function B(e){if(I!==e){I=e;for(let e of R)e()}}function V({indicator:e=f(H,{})}){let[t,n]=c(null),{act:r,dismissError:i,dismissSuccess:a,error:s,status:d,success:m}=re(),h=l(Z,Q,$);return o(()=>{let e=!0,t=_(`coreframe-managed-dev`,document.body,{css:ne,hostAttributes:{"aria-live":`polite`,id:`coreframe-managed-dev`},hostStyles:{inset:`0`,pointerEvents:`none`,position:`fixed`},zIndex:2147483647});return queueMicrotask(()=>{e&&n(t.container)}),()=>{e=!1,t.host?.remove()}},[]),o(()=>{if(!m)return;let e=setTimeout(()=>{a(),B(!1)},1600);return()=>clearTimeout(e)},[a,m]),t?u(p(`div`,{className:F.surface,children:[Y(d)?e:null,h?f(U,{act:r,dismissError:i,error:s,status:d,success:m}):null]}),t):null}function H({color:e=`#2563eb`,size:t=14}){let n=l(Z,Q,$),r={"--managed-dev-indicator-color":e,"--managed-dev-indicator-size":typeof t==`number`?`${t}px`:t};return f(`button`,{"aria-controls":`coreframe-managed-dev-dialog`,"aria-expanded":n,"aria-label":`${n?`Hide`:`Show`} Coreframe managed development`,className:F.indicatorButton,onClick:z,style:r,type:`button`,children:f(`span`,{className:F.indicatorDot})})}function U({act:e,dismissError:t,error:n,status:r,success:i}){let[a,o]=c({value:``}),[s,l]=c(()=>({paths:new Set})),u=r?.draft,m=r?.target,h=s.fingerprint===u?.fingerprint?s.paths:new Set(u?.untracked??[]),g=a.fingerprint===u?.fingerprint&&a.proposal===r?.proposal?a.value:r?.proposal??``,_=!!(u?.untracked.length&&u.untracked.every(e=>h.has(e)));return p(`dialog`,{"aria-labelledby":`coreframe-managed-title`,className:F.dialog,id:`coreframe-managed-dev-dialog`,open:!0,children:[p(`div`,{className:F.header,children:[f(`h2`,{className:F.title,id:`coreframe-managed-title`,children:i?.heading??q(r)}),f(`button`,{"aria-label":`Close managed development`,className:F.iconButton,onClick:z,type:`button`,children:f(P,{"aria-hidden":`true`,size:18})})]}),p(`div`,{className:F.content,children:[i?p(`div`,{className:F.actionSuccess,role:`status`,children:[f(O,{"aria-hidden":`true`,className:F.successIcon,size:18}),f(`p`,{className:F.paragraph,children:i.message})]}):null,n?p(`div`,{className:F.actionError,role:`alert`,children:[f(N,{"aria-hidden":`true`,className:F.errorIcon,size:18}),f(`p`,{className:F.paragraph,children:n}),f(`button`,{"aria-label":`Dismiss error`,className:F.iconButton,onClick:t,type:`button`,children:f(P,{"aria-hidden":`true`,size:16})})]}):null,i?null:f(`p`,{className:F.paragraph,children:r?r.busy||r.message||J(r):`Checking managed development status…`})
|
|
104
|
+
`;let I=!1,L=0;const R=new Set;function z(){B(!I)}function B(e){if(I!==e){I=e;for(let e of R)e()}}function V({indicator:e=f(H,{})}){let[t,n]=c(null),{act:r,dismissError:i,dismissSuccess:a,error:s,status:d,success:m}=re(),h=l(Z,Q,$);return o(()=>{let e=!0,t=_(`coreframe-managed-dev`,document.body,{css:ne,hostAttributes:{"aria-live":`polite`,id:`coreframe-managed-dev`},hostStyles:{inset:`0`,pointerEvents:`none`,position:`fixed`},zIndex:2147483647});return queueMicrotask(()=>{e&&n(t.container)}),()=>{e=!1,t.host?.remove()}},[]),o(()=>{if(!m)return;let e=setTimeout(()=>{a(),B(!1)},1600);return()=>clearTimeout(e)},[a,m]),t?u(p(`div`,{className:F.surface,children:[Y(d)?e:null,h?f(U,{act:r,dismissError:i,error:s,status:d,success:m}):null]}),t):null}function H({color:e=`#2563eb`,size:t=14}){let n=l(Z,Q,$),r={"--managed-dev-indicator-color":e,"--managed-dev-indicator-size":typeof t==`number`?`${t}px`:t};return f(`button`,{"aria-controls":`coreframe-managed-dev-dialog`,"aria-expanded":n,"aria-label":`${n?`Hide`:`Show`} Coreframe managed development`,className:F.indicatorButton,onClick:z,style:r,type:`button`,children:f(`span`,{className:F.indicatorDot})})}function U({act:e,dismissError:t,error:n,status:r,success:i}){let[a,o]=c({value:``}),[s,l]=c(()=>({paths:new Set})),u=r?.draft,m=r?.target,h=s.fingerprint===u?.fingerprint?s.paths:new Set(u?.untracked??[]),g=a.fingerprint===u?.fingerprint&&a.proposal===r?.proposal?a.value:r?.proposal??``,_=!!(u?.untracked.length&&u.untracked.every(e=>h.has(e)));return p(`dialog`,{"aria-labelledby":`coreframe-managed-title`,className:F.dialog,id:`coreframe-managed-dev-dialog`,open:!0,children:[p(`div`,{className:F.header,children:[f(`h2`,{className:F.title,id:`coreframe-managed-title`,children:i?.heading??q(r)}),f(`button`,{"aria-label":`Close managed development`,className:F.iconButton,onClick:z,type:`button`,children:f(P,{"aria-hidden":`true`,size:18})})]}),p(`div`,{className:F.content,children:[i?p(`div`,{className:F.actionSuccess,role:`status`,children:[f(O,{"aria-hidden":`true`,className:F.successIcon,size:18}),f(`p`,{className:F.paragraph,children:i.message})]}):null,n?p(`div`,{className:F.actionError,role:`alert`,children:[f(N,{"aria-hidden":`true`,className:F.errorIcon,size:18}),f(`p`,{className:F.paragraph,children:n}),f(`button`,{"aria-label":`Dismiss error`,className:F.iconButton,onClick:t,type:`button`,children:f(P,{"aria-hidden":`true`,size:16})})]}):null,i?null:f(`p`,{className:F.paragraph,children:r?r.busy||r.message||J(r):`Checking managed development status…`}),!i&&m&&!u?p(`p`,{className:F.paragraph,children:[m.subject,` (`,m.shortCommit,`)`]}):null,i?null:r?.warnings.map((e,t)=>f(`p`,{className:`${F.paragraph} ${F.warning}`,children:e},`${t}-${e}`)),!i&&u?p(d,{children:[p(`div`,{className:F.files,children:[u.untracked.map(e=>f(W,{checked:h.has(e),label:f(`span`,{className:F.filePath,children:e}),onChange:t=>l(()=>{let n=new Set(h);return t?n.add(e):n.delete(e),{fingerprint:u.fingerprint,paths:n}})},e)),u.untracked.length>0?f(W,{checked:_,label:`Include all untracked files`,onChange:e=>l({fingerprint:u.fingerprint,paths:e?new Set(u.untracked):new Set})}):null]}),r.proposal===void 0?p(G,{children:[m?f(K,{busy:r.busy,icon:j,onClick:()=>void e({type:`reject`}),children:`Reject`}):null,f(K,{busy:r.busy,icon:M,onClick:()=>void e({type:`message`,fingerprint:u.fingerprint,untracked:[...h]}),primary:!0,children:`Generate commit message`})]}):p(d,{children:[f(`textarea`,{"aria-label":`Commit message`,className:F.message,onChange:e=>o({fingerprint:u.fingerprint,proposal:r.proposal,value:e.target.value}),value:g}),p(G,{children:[m?f(K,{busy:r.busy,icon:j,onClick:()=>void e({type:`reject`}),children:`Reject`}):null,f(K,{busy:r.busy,icon:k,onClick:()=>{e(m?{type:`apply`,target:m.commit,fingerprint:u.fingerprint,untracked:[...h],message:g}:{type:`commit`,fingerprint:u.fingerprint,untracked:[...h],message:g})},primary:!0,children:m?`Commit and refresh`:`Commit changes`})]})]})]}):!i&&m?f(G,{children:f(K,{busy:r.busy,icon:A,onClick:()=>void e({type:`prepare`,target:m.commit}),primary:!0,children:m.source===`upstream`?`Refresh`:String(m.source)===`dev`?`Sync with dev`:`Sync with main`})}):null]})]})}function W({checked:e,label:t,onChange:n}){return p(`label`,{className:F.checkbox,children:[f(`input`,{checked:e,onChange:e=>n(e.target.checked),type:`checkbox`}),t]})}function G({children:e}){return f(`div`,{className:F.actions,children:e})}function K({busy:e,children:t,icon:n,onClick:r,primary:i=!1}){return p(`button`,{"aria-busy":!!e,className:`${F.button} ${i?F.primary:``}`,disabled:!!e,onClick:r,type:`button`,children:[n?f(n,{"aria-hidden":`true`,size:16}):null,t]})}function q(e){return e?e.mode===`unmanaged`?`Managed development unavailable`:e.mode===`error`?`Managed development stopped`:e.draft?e.proposal===void 0?`Review local changes`:`Confirm your commit`:e.target?.source===`upstream`?`Refresh from upstream`:String(e.target?.source)===`dev`?`Sync with local dev`:e.target?`Sync with local main`:e.warnings.length>0?`Managed development warning`:`Managed development status`:`Checking managed development`}function J(e){return e.mode===`waiting`?`Waiting for managed development to start.`:e.mode===`unmanaged`?`Managed synchronization is unavailable for this session.`:e.mode===`error`?`Managed synchronization stopped.`:e.draft&&!e.target?`Commit the local changes before managed development checks for updates.`:e.target&&e.target.source!==`upstream`?String(e.target?.source)===`dev`?`New changes are available in local dev.`:`New changes are available in local main.`:e.target?`A newer main commit is ready.`:`Managed development is active. No updates are available.`}function Y(e){return!e||e.mode===`waiting`?!1:e.mode===`managed`?!!(e.busy||e.draft||e.message||e.target||e.warnings.length>0):!0}function X(e){return e.type===`apply`?{heading:`Refresh complete`,message:`Your changes were committed and the project is up to date.`}:e.type===`prepare`?{heading:`Refresh complete`,message:`Your project is up to date.`}:e.type===`commit`?{heading:`Changes committed`,message:`Your local changes are committed. Checking for managed development updates…`,preserveDuringStatus:!0}:e.type===`reject`?{heading:`Update dismissed`,message:`No further action is required.`}:{heading:`Action complete`,message:`No further action is required.`}}function re(){let[t,n]=c(),[r,a]=c(),[l,u]=c(),d=s(new Map),f=te();return o(()=>{if(!f)return;let t=d.current,r=({status:e})=>{n(e),Y(e)&&u(e=>e?.preserveDuringStatus?e:void 0)},i=e=>{let r=t.get(e.requestId);r&&(t.delete(e.requestId),e.status&&n(e.status),e.error?a(e.error):e.status&&(r.type===`commit`||!Y(e.status))&&u(X(r)))};return f.on(e.status,r),f.on(e.actionResult,i),f.send(e.statusRequest),()=>{t.clear(),f.off(e.status,r),f.off(e.actionResult,i)}},[f]),{act:async t=>{if(a(void 0),u(void 0),!f){a(`The Vite HMR connection is unavailable.`);return}let n=String(++L);d.current.set(n,t),f.send(e.action,{action:t,requestId:n})},dismissError:()=>a(void 0),dismissSuccess:i(()=>u(void 0),[]),error:r,status:t,success:l}}function Z(e){return R.add(e),()=>R.delete(e)}function Q(){return I}function $(){return!1}export{V as ManagedDevOverlay,H as ManagedDevOverlayIndicator,z as toggleManagedDevOverlay};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coreframe/vite",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/airlock-labs/coreframe.git",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"@svgr/plugin-jsx": "^8.1.0",
|
|
55
55
|
"lucide-react": "^1.24.0",
|
|
56
56
|
"unplugin-icons": "^23.0.1",
|
|
57
|
-
"@coreframe/dashboard": "^0.2.
|
|
57
|
+
"@coreframe/dashboard": "^0.2.5",
|
|
58
58
|
"@coreframe/lib": "^0.1.6",
|
|
59
|
-
"@coreframe/scripts": "^0.1.
|
|
59
|
+
"@coreframe/scripts": "^0.1.27"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@tsdown/css": "0.22.3",
|