@picked/vite-plugin-picked 0.0.75-next.1 → 0.0.75

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/cjs/index.js CHANGED
@@ -915,4 +915,4 @@ export const manifestMetadata = {
915
915
  workspaceId: projectConfig?.workspaceId ?? null,
916
916
  }
917
917
  ${s}`}var H=5;function U(e,t,n){if(t.length===0)return;if(t.length>H){console.log(`\n ${e}: ${t.length.toString()} loaded\n`);return}let r=n.map(e=>Math.max(e.header.length,...t.map(t=>e.value(t).length))),i=(e,t)=>e.padEnd(r[t]??e.length),a=` ${n.map((e,t)=>i(e.header,t)).join(` `)}`,o=` ${r.map(e=>`─`.repeat(e)).join(` `)}`,s=t.map(e=>` ${n.map((t,n)=>i(t.value(e),n)).join(` `)}`);console.log([``,` ${e}:`,``,a,o,...s,``].join(`
918
- `))}function W(e,t){t.length!==0&&console.log(`\n ${e}: ${t.length.toString()} loaded\n`)}var G=[{header:`Name`,value:e=>e.name},{header:`ID`,value:e=>e.id},{header:`Status`,value:e=>e.enabled?`\x1B[32m enabled\x1B[0m`:`\x1B[2mdisabled\x1B[0m`},{header:`Weight`,value:e=>`${e.weight.toString()}%`.padStart(6)},{header:`Ver`,value:e=>`v${e.version.toString()}`}],K=[{header:`Name`,value:e=>e.name},{header:`Key`,value:e=>e.key},{header:`Component`,value:e=>e.componentName},{header:`Nodes`,value:e=>e.nodes.length.toString()},{header:`Targets`,value:e=>e.targets.length.toString()}],q=[{header:`Name`,value:e=>e.name},{header:`Key`,value:e=>e.key},{header:`Fields`,value:e=>(e.fieldIds?.length??0).toString()}],oe=[{header:`Name`,value:e=>e.name},{header:`Key`,value:e=>e.key},{header:`Type`,value:e=>e.type},{header:`Required`,value:e=>e.required?`yes`:`no`}],se=[{header:`Name`,value:e=>e.name},{header:`Key`,value:e=>e.key}];function ce(){return`0.0.75-next.1`}var le=`https://api.picked.app`,J=`virtual:picked/data`,Y=`\0${J}`;function X(e){for(let t of Object.values(e))if(t.type===`chunk`&&t.moduleIds.includes(Y))return t.fileName}function ue(e,t){return e===``||e.endsWith(`/`)?`${e}${t}`:`${e}/${t}`}async function de(e){try{let t=await(0,r.generate)({config:e,onWarn:e=>{w.warn(e)}});w.info(`generated types at ${t.typesOutput}`)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`type generation failed: ${t}. Fix the schema source, or set \`generateTypes: false\` on the picked plugin to skip it.`)}}async function fe(e,t){let n=await(0,i.loadResolvedPickedConfig)(e,t);if(!n)throw Error(`picked.config.{ts,js,json} is required. Add a picked.config.ts with projectId and apiUrl.`);return n}function Z(e,t,n){if(t!==void 0&&n!==void 0&&t!==n)throw Error(`picked plugin option \`${e}\` is "${t}", and picked.config says "${n}". Remove the plugin option; picked.config is the one place this belongs.`)}function pe(e){let t=[];if(e.projectId!==void 0&&t.push("`projectId`"),e.apiUrl!==void 0&&t.push("`apiUrl`"),t.length===0)return;let n=t.length>1;w.warn(`picked plugin option${n?`s`:``} ${t.join(` and `)} ${n?`are`:`is`} deprecated, and a future release drops ${n?`them`:`it`}. Move ${n?`them`:`it`} to picked.config, which the CLI and the type generator read from too.`)}async function me(e,t){let n=await(0,i.loadPickedConfig)(e);n&&n.projectId!==t&&w.warn(`using project "${t}" (picked.config default: "${n.projectId}") — run 'picked status' to inspect`)}var Q=new Map;function he(e,t,n){return JSON.stringify([e,t,n])}function ge(r={}){let a=r.mode??`bundle`,o=r.generateTypes??!0,s=[],l=process.cwd(),u=`serve`,d=`/`,f=null,p=!1,m,h,g=null;return{name:`picked`,config:async(c,d)=>{u=d.command,l=c.root===void 0?process.cwd():(0,t.resolve)(process.cwd(),c.root);let{projectId:_,apiUrl:v}=r,y=await(0,i.loadPickedConfig)(l);Z(`projectId`,_,y?.projectId),Z(`apiUrl`,v,y?.apiUrl),pe({projectId:_,apiUrl:v}),f=await fe(l,{projectId:_,apiUrl:v});let{projectId:b,apiUrl:x,previewToken:S}=f;w.banner(),o&&!p&&(p=!0,await de(f)),x!==le&&w.warn(`using custom API URL: ${x}`),await me(l,b);let C=(0,n.createClientHeaders)(`vite-plugin`,ce());if(a===`api`)w.debug(`mode is 'api': skipping the project-config prefetch`);else if(d.command===`build`){let t=he(x,b,l);m=t;let n=Q.get(t);n===void 0&&(n=(async()=>{w.info(`prefetching project config + content for "${b}"`);let t=P(l),n=(0,e.existsSync)(t.pickedDir),r=performance.now(),i=await ae({apiUrl:x,projectId:b,projectRoot:l,headers:C,previewToken:S??void 0}),a=(performance.now()-r).toFixed(0);await ee(l,n);let o=i.config;return $(o,a),{virtualSource:B({projectConfigPath:t.projectConfigPath,experienceContentPaths:i.experienceContentPaths,manifestMetadata:{mode:`build`,fetchedAt:i.manifest.fetchedAt,projectVersionId:i.manifest.projectVersionId,workspaceId:i.manifest.workspaceId}}),features:M(o.features)}})(),n.catch(()=>Q.delete(t)),Q.set(t,n));let r=await n;h=r.virtualSource,s=r.features}else if(d.mode===`production`)w.debug(`skipping the dev project-config fetch for a production serve resolution`);else{w.info(`fetching project config for "${b}" (dev)`);let e=performance.now(),t=()=>(0,n.fetchProject)(x,b,{headers:C,previewToken:S??void 0}),r=k(x)?await j(t,(e,t,n)=>{w.info(`local API not ready, retrying in ${(n/1e3).toString()}s (${e.toString()}/${t.toString()})`)}):await t(),i=(performance.now()-e).toFixed(0);g=r,r?(s=M(r.features),$(r,i)):w.warn(`failed to fetch project config for "${b}" (${i}ms)`)}},configResolved(e){d=e.base},closeBundle(){m!==void 0&&Q.delete(m)},transformIndexHtml:{order:`post`,handler(e,t){if(a===`api`||t.bundle===void 0)return;let n=X(t.bundle);if(n===void 0)return;let r=ue(d,n);if(!e.includes(`"${r}"`))return[{tag:`link`,attrs:{rel:`modulepreload`,crossorigin:!0,href:r},injectTo:`head`}]}},resolveId(e){if(e===J)return Y},load(e){if(e===Y){if(a===`api`)return z();if(u===`build`)return h;if(!f)throw Error(`picked plugin config hook must run before virtual module load`);return V({apiUrl:f.apiUrl,projectId:f.projectId,projectConfig:g,previewToken:f.previewToken??void 0})}},configureServer(e){if(r.disableLauncher)return;e.middlewares.use(T(()=>c(s)));let t=e.printUrls.bind(e);e.printUrls=()=>{let n=e.resolvedUrls?.local[0];if(n){let e=n.replace(/:(?<port>\d+)\//,(e,t)=>`:\x1b[1m${t}\x1b[22m/`);console.log(` \x1b[32m➜\x1b[0m \x1b[1mPicked\x1b[22m: \x1b[36m${e}\x1b[0m`)}t()}},generateBundle:{order:`post`,handler(e,t){if(!r.disableLauncher){if(`index.html`in t){w.debug(`index.html came from the build; skipping the launcher page`);return}this.emitFile({type:`asset`,fileName:`index.html`,source:c(s)})}}}}}function $(e,t){let n=M(e.features),r=M(e.experiences),i=M(e.steps),a=M(e.fields),o=M(e.conditions),s=M(e.actions),c=JSON.stringify(e).length,l=[`${n.length.toString()} features`,`${r.length.toString()} experiences`,`${i.length.toString()} steps`,`${a.length.toString()} fields`,`${o.length.toString()} conditions`,`${s.length.toString()} actions`].join(`, `);w.info(`fetched config in ${t}ms (${l})`),U(`Features`,n,G),U(`Experiences`,r,K),U(`Steps`,i,q),U(`Fields`,a,oe),U(`Conditions`,o,se),W(`Actions`,s),w.debug(`config size: ${c.toString()} bytes`)}exports.picked=ge;
918
+ `))}function W(e,t){t.length!==0&&console.log(`\n ${e}: ${t.length.toString()} loaded\n`)}var G=[{header:`Name`,value:e=>e.name},{header:`ID`,value:e=>e.id},{header:`Status`,value:e=>e.enabled?`\x1B[32m enabled\x1B[0m`:`\x1B[2mdisabled\x1B[0m`},{header:`Weight`,value:e=>`${e.weight.toString()}%`.padStart(6)},{header:`Ver`,value:e=>`v${e.version.toString()}`}],K=[{header:`Name`,value:e=>e.name},{header:`Key`,value:e=>e.key},{header:`Component`,value:e=>e.componentName},{header:`Nodes`,value:e=>e.nodes.length.toString()},{header:`Targets`,value:e=>e.targets.length.toString()}],q=[{header:`Name`,value:e=>e.name},{header:`Key`,value:e=>e.key},{header:`Fields`,value:e=>(e.fieldIds?.length??0).toString()}],oe=[{header:`Name`,value:e=>e.name},{header:`Key`,value:e=>e.key},{header:`Type`,value:e=>e.type},{header:`Required`,value:e=>e.required?`yes`:`no`}],se=[{header:`Name`,value:e=>e.name},{header:`Key`,value:e=>e.key}];function ce(){return`0.0.75`}var le=`https://api.picked.app`,J=`virtual:picked/data`,Y=`\0${J}`;function X(e){for(let t of Object.values(e))if(t.type===`chunk`&&t.moduleIds.includes(Y))return t.fileName}function ue(e,t){return e===``||e.endsWith(`/`)?`${e}${t}`:`${e}/${t}`}async function de(e){try{let t=await(0,r.generate)({config:e,onWarn:e=>{w.warn(e)}});w.info(`generated types at ${t.typesOutput}`)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`type generation failed: ${t}. Fix the schema source, or set \`generateTypes: false\` on the picked plugin to skip it.`)}}async function fe(e,t){let n=await(0,i.loadResolvedPickedConfig)(e,t);if(!n)throw Error(`picked.config.{ts,js,json} is required. Add a picked.config.ts with projectId and apiUrl.`);return n}function Z(e,t,n){if(t!==void 0&&n!==void 0&&t!==n)throw Error(`picked plugin option \`${e}\` is "${t}", and picked.config says "${n}". Remove the plugin option; picked.config is the one place this belongs.`)}function pe(e){let t=[];if(e.projectId!==void 0&&t.push("`projectId`"),e.apiUrl!==void 0&&t.push("`apiUrl`"),t.length===0)return;let n=t.length>1;w.warn(`picked plugin option${n?`s`:``} ${t.join(` and `)} ${n?`are`:`is`} deprecated, and a future release drops ${n?`them`:`it`}. Move ${n?`them`:`it`} to picked.config, which the CLI and the type generator read from too.`)}async function me(e,t){let n=await(0,i.loadPickedConfig)(e);n&&n.projectId!==t&&w.warn(`using project "${t}" (picked.config default: "${n.projectId}") — run 'picked status' to inspect`)}var Q=new Map;function he(e,t,n){return JSON.stringify([e,t,n])}function ge(r={}){let a=r.mode??`bundle`,o=r.generateTypes??!0,s=[],l=process.cwd(),u=`serve`,d=`/`,f=null,p=!1,m,h,g=null;return{name:`picked`,config:async(c,d)=>{u=d.command,l=c.root===void 0?process.cwd():(0,t.resolve)(process.cwd(),c.root);let{projectId:_,apiUrl:v}=r,y=await(0,i.loadPickedConfig)(l);Z(`projectId`,_,y?.projectId),Z(`apiUrl`,v,y?.apiUrl),pe({projectId:_,apiUrl:v}),f=await fe(l,{projectId:_,apiUrl:v});let{projectId:b,apiUrl:x,previewToken:S}=f;w.banner(),o&&!p&&(p=!0,await de(f)),x!==le&&w.warn(`using custom API URL: ${x}`),await me(l,b);let C=(0,n.createClientHeaders)(`vite-plugin`,ce());if(a===`api`)w.debug(`mode is 'api': skipping the project-config prefetch`);else if(d.command===`build`){let t=he(x,b,l);m=t;let n=Q.get(t);n===void 0&&(n=(async()=>{w.info(`prefetching project config + content for "${b}"`);let t=P(l),n=(0,e.existsSync)(t.pickedDir),r=performance.now(),i=await ae({apiUrl:x,projectId:b,projectRoot:l,headers:C,previewToken:S??void 0}),a=(performance.now()-r).toFixed(0);await ee(l,n);let o=i.config;return $(o,a),{virtualSource:B({projectConfigPath:t.projectConfigPath,experienceContentPaths:i.experienceContentPaths,manifestMetadata:{mode:`build`,fetchedAt:i.manifest.fetchedAt,projectVersionId:i.manifest.projectVersionId,workspaceId:i.manifest.workspaceId}}),features:M(o.features)}})(),n.catch(()=>Q.delete(t)),Q.set(t,n));let r=await n;h=r.virtualSource,s=r.features}else if(d.mode===`production`)w.debug(`skipping the dev project-config fetch for a production serve resolution`);else{w.info(`fetching project config for "${b}" (dev)`);let e=performance.now(),t=()=>(0,n.fetchProject)(x,b,{headers:C,previewToken:S??void 0}),r=k(x)?await j(t,(e,t,n)=>{w.info(`local API not ready, retrying in ${(n/1e3).toString()}s (${e.toString()}/${t.toString()})`)}):await t(),i=(performance.now()-e).toFixed(0);g=r,r?(s=M(r.features),$(r,i)):w.warn(`failed to fetch project config for "${b}" (${i}ms)`)}},configResolved(e){d=e.base},closeBundle(){m!==void 0&&Q.delete(m)},transformIndexHtml:{order:`post`,handler(e,t){if(a===`api`||t.bundle===void 0)return;let n=X(t.bundle);if(n===void 0)return;let r=ue(d,n);if(!e.includes(`"${r}"`))return[{tag:`link`,attrs:{rel:`modulepreload`,crossorigin:!0,href:r},injectTo:`head`}]}},resolveId(e){if(e===J)return Y},load(e){if(e===Y){if(a===`api`)return z();if(u===`build`)return h;if(!f)throw Error(`picked plugin config hook must run before virtual module load`);return V({apiUrl:f.apiUrl,projectId:f.projectId,projectConfig:g,previewToken:f.previewToken??void 0})}},configureServer(e){if(r.disableLauncher)return;e.middlewares.use(T(()=>c(s)));let t=e.printUrls.bind(e);e.printUrls=()=>{let n=e.resolvedUrls?.local[0];if(n){let e=n.replace(/:(?<port>\d+)\//,(e,t)=>`:\x1b[1m${t}\x1b[22m/`);console.log(` \x1b[32m➜\x1b[0m \x1b[1mPicked\x1b[22m: \x1b[36m${e}\x1b[0m`)}t()}},generateBundle:{order:`post`,handler(e,t){if(!r.disableLauncher){if(`index.html`in t){w.debug(`index.html came from the build; skipping the launcher page`);return}this.emitFile({type:`asset`,fileName:`index.html`,source:c(s)})}}}}}function $(e,t){let n=M(e.features),r=M(e.experiences),i=M(e.steps),a=M(e.fields),o=M(e.conditions),s=M(e.actions),c=JSON.stringify(e).length,l=[`${n.length.toString()} features`,`${r.length.toString()} experiences`,`${i.length.toString()} steps`,`${a.length.toString()} fields`,`${o.length.toString()} conditions`,`${s.length.toString()} actions`].join(`, `);w.info(`fetched config in ${t}ms (${l})`),U(`Features`,n,G),U(`Experiences`,r,K),U(`Steps`,i,q),U(`Fields`,a,oe),U(`Conditions`,o,se),W(`Actions`,s),w.debug(`config size: ${c.toString()} bytes`)}exports.picked=ge;
package/dist/esm/index.js CHANGED
@@ -479,7 +479,7 @@ var le = [
479
479
  value: (e) => e.key
480
480
  }];
481
481
  function me() {
482
- return "0.0.75-next.1";
482
+ return "0.0.75";
483
483
  }
484
484
  var he = "https://api.picked.app", Y = "virtual:picked/data", X = `\0${Y}`;
485
485
  function ge(e) {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@picked/vite-plugin-picked",
3
3
  "description": "Vite plugin for build-time config injection",
4
- "version": "0.0.75-next.1",
4
+ "version": "0.0.75",
5
5
  "dependencies": {
6
- "@picked/client": "0.0.75-next.1",
7
- "@picked/config": "0.0.75-next.1",
8
- "@picked/delivery-api-client": "0.0.75-next.1",
9
- "@picked/typegen": "0.0.75-next.1"
6
+ "@picked/client": "0.0.75",
7
+ "@picked/config": "0.0.75",
8
+ "@picked/delivery-api-client": "0.0.75",
9
+ "@picked/typegen": "0.0.75"
10
10
  },
11
11
  "devDependencies": {
12
12
  "@repo/eslint-config": "workspace:*",