@builder.io/dev-tools 1.1.8 → 1.1.10

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/core/index.cjs CHANGED
@@ -6,7 +6,7 @@ ${o}
6
6
  ${r}=${n}
7
7
 
8
8
  `,await e.writeFile(t,i),"update";else return e.debug(`Creating new .env file with "${r}" at ${t}`),i=[o,`${r}=${n}`,""].join(`
9
- `),await e.writeFile(t,i),"create";return null}async function Me(e){return await Se(e,[".env.local",".env.development.local",".env.production.local",".env.development",".env.production",".env"],oe)}async function fn(e,t){let r=await Me(e),n=await Pe(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var oe="NEXT_PUBLIC_BUILDER_API_KEY";var O={gen1:"Gen 1",gen2:"Gen 2"};function E(e,t=""){return e.ts.createSourceFile("module.tsx",typeof t=="string"?t:"",e.ts.ScriptTarget.Latest)}function lt(e,t=""){let r=E(e,t?.trim());if(r.statements.length===0)throw new Error(`No statements found in code: ${t}`);return r.statements[0]}function N(e,t,r){if(t){let n=e.ts.createPrinter({newLine:e.ts.NewLineKind.LineFeed,removeComments:r});return e.ts.isSourceFile(t)?n.printFile(t).trim()+`
9
+ `),await e.writeFile(t,i),"create";return null}async function Me(e){return await Se(e,[".env.local",".env.development.local",".env.production.local",".env.development",".env.production",".env"],oe)}async function fn(e,t){let r=await Me(e),n=await Pe(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var oe="NEXT_PUBLIC_BUILDER_API_KEY";var O={gen1:"Gen 1",gen2:"Gen 2"};function E(e,t=""){return e.ts.createSourceFile("module.tsx",typeof t=="string"?t:"",e.ts.ScriptTarget.Latest,void 0)}function lt(e,t=""){let r=E(e,t?.trim());if(r.statements.length===0)throw new Error(`No statements found in code: ${t}`);return r.statements[0]}function N(e,t,r){if(t){let n=e.ts.createPrinter({newLine:e.ts.NewLineKind.LineFeed,removeComments:r});return e.ts.isSourceFile(t)?n.printFile(t).trim()+`
10
10
  `:n.printNode(e.ts.EmitHint.Unspecified,t,e.ts.createSourceFile("module.tsx","",e.ts.ScriptTarget.Latest)).trim()+`
11
11
  `}return""}function v(e,t,r){t=X(t),r=X(r),t=e.dirname(t);let n=e.basename(r,e.extname(r));r=e.dirname(r);let o;return n==="index"?o=e.relative(t,r):o=e.relative(t,e.join(r,n)),o=X(e.normalize(o)),o.startsWith(".")||(o="./"+o),o}function X(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}function Ae(e,t){let r=e.extname(t),n=e.basename(t,r).split(/[\/\\]/),o=n[n.length-1];return dn(o==="index"?e.basename(e.dirname(t)):o)}function dn(e){return j(e).replace(/ /g,"")}function Y(e,t){let r=e.extname(t),n=X(e.basename(t,r)).split("/").pop();return j(n==="index"?e.basename(e.dirname(t)):n)}function k(e,t){let r=X(e.relative(e.getRootDir(),t));r=r.split("/").filter(o=>o!=="."&&o!==".."&&o!=="").join("/"),r.endsWith(".tsx")||r.endsWith(".jsx")?r=r.slice(0,-4):(r.endsWith(".ts")||r.endsWith(".js"))&&(r=r.slice(0,-3));let n=e.getFrameworks();return r.startsWith("src/")&&(r=r.slice(4)),n.some(o=>o.name.includes("next"))?"@/"+r:"~/"+r}function A(e,t){let r=t,n=[];for(let o=0;o<2;o++){let i=e.basename(r);if(!i||i==="components")break;n.unshift(i),r=e.dirname(r)}return n.join("/")}function j(e){for(e=e.replace(/([A-Z])/g," $1").replace(/\./g," ").replace(/_/g," ").replace(/-/g," ").replace(/\s/g," ").trim();e.includes(" ");)e=e.replace(/ /g," ");return e.split(" ").map(t=>t.length>2?t[0].toUpperCase()+t.slice(1):t).join("").trim()}function Q(e){return e.sort((t,r)=>t.name.toLocaleLowerCase().localeCompare(r.name.toLocaleLowerCase()))}async function _(e,t,r){if(typeof r!="string"||r==="")throw new Error(`getComponentId(), exportName must be a non-empty string, received: ${r}, ${t}`);return t=e.normalize(t),(await e.hash(t+"#"+r)).substring(0,8)}function Ue(e){return typeof e=="number"}function Fe(e){return typeof e=="boolean"}function U(e){return typeof e=="string"}function ze(e){return typeof e=="string"?/^[A-Z][A-Za-z0-9]*$/.test(e):!1}function J(e){return JSON.parse(JSON.stringify(e))}function Qe(e,t,r,n,o=!0){let i=t.properties.filter(s=>e.ts.isPropertyAssignment(s)),a=So(e,t,r);return a>-1?n==null&&o?e.ts.factory.updateObjectLiteralExpression(t,i.filter((s,p)=>p!==a)):(i[a]=e.ts.factory.updatePropertyAssignment(i[a],i[a].name,qe(e,n)),e.ts.factory.updateObjectLiteralExpression(t,i)):(n!=null&&i.push(e.ts.factory.createPropertyAssignment(r,qe(e,n))),e.ts.factory.updateObjectLiteralExpression(t,i))}function So(e,t,r){return t.properties.findIndex(n=>b(e,n)===r)}function Je(e,t){switch(t.kind){case e.ts.SyntaxKind.ArrayLiteralExpression:return yo(e,t);case e.ts.SyntaxKind.ObjectLiteralExpression:return Po(e,t);case e.ts.SyntaxKind.StringLiteral:return t.text;case e.ts.SyntaxKind.NumericLiteral:return Number(t.text);case e.ts.SyntaxKind.NoSubstitutionTemplateLiteral:return t.text;case e.ts.SyntaxKind.TrueKeyword:return!0;case e.ts.SyntaxKind.FalseKeyword:return!1;case e.ts.SyntaxKind.Identifier:switch(t.escapedText){case"undefined":return;case"null":return null;case"String":return String;case"Number":return Number;case"Boolean":return Boolean;case"NaN":return NaN}}}function Po(e,t){let r={};if(t&&e.ts.isObjectLiteralExpression(t)){for(let n of t.properties)if(e.ts.isPropertyAssignment(n)){let o=b(e,n);o&&(r[o]=Je(e,n.initializer))}}return r}function yo(e,t){return t&&e.ts.isArrayLiteralExpression(t)?t.elements.map(r=>Je(e,r)):[]}function b(e,t){if(t&&e.ts.isPropertyAssignment(t)){let r=t.name;switch(r.kind){case e.ts.SyntaxKind.Identifier:return r.text;case e.ts.SyntaxKind.StringLiteral:case e.ts.SyntaxKind.NumericLiteral:return r.text;case e.ts.SyntaxKind.ComputedPropertyName:let n=r.expression;if(e.ts.isStringLiteral(n)||e.ts.isNumericLiteral(n))return r.expression.text}}}function qe(e,t){return Et(e,t,new WeakSet)}function Et(e,t,r){return t===void 0?e.ts.factory.createIdentifier("undefined"):t===null?e.ts.factory.createIdentifier("null"):typeof t=="string"?e.ts.factory.createStringLiteral(t):typeof t=="number"?isNaN(t)?e.ts.factory.createIdentifier("NaN"):e.ts.factory.createNumericLiteral(t):t===!0?e.ts.factory.createTrue():t===!1?e.ts.factory.createFalse():t===String?e.ts.factory.createIdentifier("String"):t===Number?e.ts.factory.createIdentifier("Number"):t===Boolean?e.ts.factory.createIdentifier("Boolean"):Array.isArray(t)?To(e,t,r):typeof t=="object"?Do(e,t,r):e.ts.factory.createIdentifier(t)}function To(e,t,r){let n=t.map(o=>Et(e,o,r));return e.ts.factory.createArrayLiteralExpression(n,!0)}function Do(e,t,r){if(r.has(t))return e.ts.factory.createIdentifier("undefined");r.add(t);let n=Object.keys(t).map(o=>e.ts.factory.createPropertyAssignment(o,Et(e,t[o],r)));return e.ts.factory.createObjectLiteralExpression(n,!0)}function be(e,t,r){let n=[];if(!r)return n;let o=null;if(e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r)){let i=r.parameters;if(i.length>0){let a=i[0],s=t.getTypeAtLocation(a);s.aliasTypeArguments&&s.aliasTypeArguments.length>0?o=s.aliasTypeArguments[0].getProperties():o=s.getProperties()}}else if(e.ts.isIdentifier(r)){let i=t.getTypeAtLocation(r),a=i.symbol?.valueDeclaration;if(a&&e.ts.isClassDeclaration(a)){let p=a.heritageClauses?.find(l=>l.token===e.ts.SyntaxKind.ExtendsKeyword)?.types;if(p){for(let l of p)if(t.getSymbolAtLocation(l.expression)?.name==="Component"){if(e.ts.isExpressionWithTypeArguments(l)){let f=l.typeArguments;if(f){let c=f[0];o=t.getTypeFromTypeNode(c).getProperties()}}break}}}if(!o){let s=i.getCallSignatures();if(s.length>0){let p=s[0].getParameters();p.length>0&&(o=t.getTypeOfSymbolAtLocation(p[0],r).getProperties())}}}if(o)for(let i of o){let a=Eo(e,t,i);a&&n.push(a)}return n=n.filter(xn),n.length>0?n:wo(e,r)}function Eo(e,t,r){let n=r.valueDeclaration,o=r.getName();if(n||(n=r.getDeclarations()?.[0]),n&&e.ts.isPropertySignature(n)){if(o!=="children"&&n.getSourceFile().fileName.includes("node_modules/@types/"))return null;let i="string",a;if(n?.type){let p=t.getTypeFromTypeNode(n.type),l=t.typeToString(p),d=wt(l);d.knownType?i=d.builderType:bo(l)||p.flags&e.ts.TypeFlags.StringLike?i="string":p.flags&e.ts.TypeFlags.NumberLike?i="number":p.flags&e.ts.TypeFlags.IndexedAccess?i="list":p.flags&e.ts.TypeFlags.Object||p.isUnion()&&p.types.every(f=>f.flags&e.ts.TypeFlags.Object)||p.isIntersection()&&p.types.some(f=>f.flags&e.ts.TypeFlags.Object)?i="object":i="string",l!==i&&(a=l)}let s={name:o,type:i,isRegistered:!1};if(a&&n.type){let p=Ao(e,t,t.getTypeFromTypeNode(n.type));s.meta=s.meta||{},p&&p.length>0&&s.type==="string"&&p.every(Ro)?s.enum=p.map(No):s.meta.ts=a}return n.questionToken||(s.required=!0),s}return null}function wo(e,t){let r=[],n=e.ts.getJSDocCommentsAndTags(t);for(let o of n)if(!(!e.ts.isJSDoc(o)||!o.tags))for(let i of o.tags){if(!e.ts.isJSDocParameterTag(i)||i.tagName.text!=="param")continue;let s=i.typeExpression?.type;if(!s||!e.ts.isJSDocTypeLiteral(s))continue;let p=s.jsDocPropertyTags;if(p)for(let l of p){if(!e.ts.isJSDocPropertyLikeTag(l))continue;let d=l.name;if(!e.ts.isQualifiedName(d))continue;let f=l.typeExpression;if(!f)continue;let c="";switch(f.type.kind){case e.ts.SyntaxKind.StringKeyword:{c="string";break}case e.ts.SyntaxKind.NumberKeyword:{c="number";break}case e.ts.SyntaxKind.BooleanKeyword:{c="boolean";break}default:continue}let h={name:d.right.text,type:c,isRegistered:!1};r.push(h)}}return r.filter(xn)}var vo=["ClassicComponent","FunctionComponent","IntrinsicElements","JSX","ReactNode","ReactElement","ReactPortal"];function bo(e){return typeof e!="string"?!1:!!vo.some(t=>e.includes(t))}function wt(e){return typeof e=="string"&&(e=e.trim(),Io.some(t=>t.value===e))?{builderType:e,knownType:!0}:{builderType:"string",knownType:!1}}var Io=[{value:"boolean",text:"boolean"},{value:"color",text:"color (provides a color in hex or rgb)"},{value:"date",text:"date (same format as the Date constructor)"},{value:"email",text:"email"},{value:"file",text:"file (uploads a file and provides a url)"},{value:"list",text:"list (collection of items)"},{value:"longText",text:"longText (multiline text editor)"},{value:"number",text:"number"},{value:"object",text:"object (set of specific names and values)"},{value:"richText",text:"richText (provides value as html)"},{value:"string",text:"string"}];function Ro(e){return/^['"].*['"]$/.test(e)}function No(e){return(e.startsWith('"')||e.startsWith("'"))&&(e.endsWith('"')||e.endsWith("'"))?e.slice(1,-1):e}var Ao=(e,t,r)=>{let n=new Set;gn(e,t,r,n);let o=n.delete("true"),i=n.delete("false");(o||i)&&n.add("boolean");let a=Array.from(n.keys()).sort();if(a.length>1&&(a=a.map(s=>s.indexOf("=>")>=0?`(${s})`:s)),!(a.length>20))return a},Fo=(e,t,r)=>{let n=e.ts.TypeFormatFlags.InElementType|e.ts.TypeFormatFlags.NoTruncation;return t.typeToString(r,void 0,n)},gn=(e,t,r,n)=>{if(r.isUnion())r.types.forEach(o=>{gn(e,t,o,n)});else if(r.isLiteral()){let o=Fo(e,t,r);n.add(o)}};function xn(e){let t=e?.name;if(typeof t!="string"||t===""||t.startsWith("aria")||t.startsWith("data-"))return!1;if(t.startsWith("on")&&t.length>2){let r=t.charAt(2);if(r.toUpperCase()===r)return!1}return!Oo.has(t.toLowerCase())}var Oo=new Set(["about","accessKey","accessKeyLabel","asChild","autoCapitalize","autoCorrect","autoFocus","autoSave","blur","contentEditable","contextMenu","dangerouslySetInnerHTML","datatype","defaultChecked","defaultValue","dir","draggable","enterKeyHint","focus","form","formAction","formEncType","formMethod","formNoValidate","formTarget","inlist","innerText","inputMode","is","isContentEditable","itemID","itemProp","itemRef","itemScope","itemType","lang","nonce","offsetHeight","offsetLeft","offsetTop","offsetWidth","outerText","prefix","property","radioGroup","rel","resource","results","rev","role","security","slot","spellCheck","suppressContentEditableWarning","suppressHydrationWarning","tabIndex","translate","typeof","unselectable","vocab"].map(e=>e.toLowerCase()));function W(e,t,r){for(let n of r.properties){if(!e.ts.isPropertyAssignment(n))continue;let o=b(e,n);if(o==="name"&&e.ts.isStringLiteral(n.initializer)){t.name=n.initializer.text;continue}if(o==="description"&&e.ts.isStringLiteral(n.initializer)){t.description=n.initializer.text;continue}if(o==="image"&&e.ts.isStringLiteral(n.initializer)){t.image=n.initializer.text;continue}if(o==="inputs"&&e.ts.isArrayLiteralExpression(n.initializer)){let i=Lo(e,n.initializer);Z(t,i);continue}if(o==="meta"&&e.ts.isObjectLiteralExpression(n.initializer)){let i=Je(e,n.initializer);i&&typeof i=="object"&&(t.meta=i);continue}}return t}function Lo(e,t){let r=[];for(let n of t.elements)e.ts.isObjectLiteralExpression(n)&&r.push(ko(e,n));return r}function ko(e,t){let r=Je(e,t),n=Mo(r);return n.isRegistered=!0,n}function $(e,t,r){let n=jo(r);return t=Qe(e,t,"name",n.name,!1),t=Qe(e,t,"description",n.description),t=Qe(e,t,"image",n.image),t=_o(e,t,n),Uo(e,t)}function _o(e,t,r){let n=null,o=t.properties.filter(s=>e.ts.isPropertyAssignment(s)&&e.ts.isIdentifier(s.name)),i=o.findIndex(s=>e.ts.isIdentifier(s.name)&&s.name.text==="inputs"),a=[...r.inputs??[]];if(i>-1){if(a.length===0)return Qe(e,t,"inputs",null);let s=o[i];e.ts.isPropertyAssignment(s)&&e.ts.isArrayLiteralExpression(s.initializer)&&(n=s.initializer)}return a.length===0?t:(n=Vo(e,n||e.ts.factory.createArrayLiteralExpression(),a),i>-1?o[i]=e.ts.factory.updatePropertyAssignment(o[i],o[i].name,n):o.push(e.ts.factory.createPropertyAssignment("inputs",n)),e.ts.factory.updateObjectLiteralExpression(t,o))}function jo(e){return{name:e.name,description:e.description,image:e.image,inputs:(e.inputs||[]).filter(r=>r.isRegistered).map(Bo)}}function Bo(e){let t={name:e.name,type:e.type};return(U(e.defaultValue)||Ue(e.defaultValue)||Fe(e.defaultValue))&&(t.defaultValue=e.defaultValue),U(e.friendlyName)&&(t.friendlyName=e.friendlyName),U(e.helperText)&&(t.helperText=e.helperText),e.required===!0&&(t.required=!0),Array.isArray(e.enum)&&(t.enum=e.enum),e.hideFromUI===!0&&(t.hideFromUI=!0),typeof e.meta=="object"&&e.meta!=null&&Object.keys(e.meta).length>0&&(t.meta=e.meta),t}function Vo(e,t,r){let n=t.elements.filter(o=>{if(!e.ts.isObjectLiteralExpression(o))return!1;let i=o.properties.find(s=>b(e,s)==="name");if(!i)return!1;let a=i.initializer;return e.ts.isStringLiteral(a)?r.some(s=>s.name===a.text):!1});for(let o of r)n=Ko(e,n,o);return n.sort((o,i)=>{let a=o.properties.find(c=>b(e,c)==="name"),s=i.properties.find(c=>b(e,c)==="name"),p=a?.initializer,l=s?.initializer,d=p&&e.ts.isStringLiteral(p)?p.text:"zz",f=l&&e.ts.isStringLiteral(l)?l.text:"zz";return d.toLowerCase().localeCompare(f.toLowerCase())}),e.ts.factory.updateArrayLiteralExpression(t,n)}function Ko(e,t,r){let n=t.findIndex(o=>o.properties.some(i=>{let a=b(e,i);return e.ts.isPropertyAssignment(i)&&a==="name"&&e.ts.isStringLiteral(i.initializer)&&i.initializer.text===r.name}));if(n>-1)t[n]=hn(e,t[n],r);else{let o=hn(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("name",e.ts.factory.createStringLiteral(r.name))],!0),r);t.push(o)}return t}function hn(e,t,r){let n=t.properties.filter(i=>e.ts.isPropertyAssignment(i)),o=Object.keys(r).filter(i=>i!=="isRegistered");for(let i of o)n=$o(e,n,r,i);return n=zo(e,n.filter(i=>{let a=b(e,i);return o.includes(a)})),e.ts.factory.updateObjectLiteralExpression(t,n)}function $o(e,t,r,n){let o=t.findIndex(i=>e.ts.isIdentifier(i.name)&&i.name.text===n);return o>-1?t[o]=e.ts.factory.updatePropertyAssignment(t[o],t[o].name,qe(e,r[n])):t.push(e.ts.factory.createPropertyAssignment(n,qe(e,r[n]))),t}function Z(e,t){for(let r of t){let n=e.inputs.findIndex(o=>o.name===r.name);n>-1?(r.isRegistered||!e.inputs[n].isRegistered)&&(e.inputs[n]=r):e.inputs.push(r)}e.acceptsChildren=vt(e)}function Mo(e){let t=wt(e.type),r={name:e.name.trim(),type:t.builderType};return U(e.friendlyName)&&e.friendlyName.trim()!==e.name.trim()&&(r.friendlyName=e.friendlyName),(U(e.defaultValue)||Ue(e.defaultValue)||Fe(e.defaultValue))&&(r.defaultValue=e.defaultValue),U(e.helperText)&&(r.helperText=e.helperText),Fe(e.required)&&(r.required=e.required),typeof e.meta=="object"&&e.meta!=null&&Object.keys(e.meta).length>0&&(r.meta=e.meta),Array.isArray(e.enum)&&e.enum.length>0&&(r.enum=e.enum),e.hideFromUI===!0&&(r.hideFromUI=!0),bt(r)}function vt(e){let t=e.inputs.some(n=>n.name==="children"),r=e.inputs.some(n=>n.meta?.ts==="ReactNode");return!!(t||r||e.acceptsChildren===!0)}function bt(e){if(e.name==="children"&&(e.hideFromUI=!0,delete e.required),e.type==="object"&&e.defaultValue==null&&(e.hideFromUI=!0),e.type==="list"&&e.defaultValue==null&&(e.hideFromUI=!0),e.meta){let t=e.meta.ts;typeof t=="string"&&(t=t.trim(),t.endsWith("ReactNode")&&(t="ReactNode"),e.meta.ts=t,t==="ReactNode"&&(e.hideFromUI=!0))}return e}function Uo(e,t){let r=[...t.properties].sort((n,o)=>{let i=b(e,n)||"zz",a=b(e,o)||"zz";if(i==="inputs")return 1;let s=Cn.indexOf(i),p=Cn.indexOf(a);return s>-1?p>-1&&s>p?1:-1:p>-1?s>-1&&p<s?-1:1:i.localeCompare(a)});return e.ts.factory.updateObjectLiteralExpression(t,r)}var Cn=["component","name","description"];function zo(e,t){return[...t].sort((n,o)=>{let i=b(e,n)||"zz",a=b(e,o)||"zz",s=Sn.indexOf(i),p=Sn.indexOf(a);return s>-1?p>-1&&s>p?1:-1:p>-1?s>-1&&p<s?-1:1:i.localeCompare(a)})}var Sn=["name","type"];function Pn(e,t){let r=`Builder.registerComponent(
12
12
  `;if(e.appDir)t.acceptsChildren?r+=` withChildren(${t.importName}),
@@ -805,4 +805,4 @@ module.exports = nextConfig
805
805
  `,n+=` }
806
806
  `,n+=` }
807
807
  `,n+=`})();
808
- `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var at="1.1.8";
808
+ `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var at="1.1.10";
package/core/index.mjs CHANGED
@@ -6,7 +6,7 @@ ${o}
6
6
  ${r}=${n}
7
7
 
8
8
  `,await e.writeFile(t,i),"update";else return e.debug(`Creating new .env file with "${r}" at ${t}`),i=[o,`${r}=${n}`,""].join(`
9
- `),await e.writeFile(t,i),"create";return null}async function Me(e){return await Ce(e,[".env.local",".env.development.local",".env.production.local",".env.development",".env.production",".env"],oe)}async function un(e,t){let r=await Me(e),n=await Se(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var oe="NEXT_PUBLIC_BUILDER_API_KEY";var O={gen1:"Gen 1",gen2:"Gen 2"};function E(e,t=""){return e.ts.createSourceFile("module.tsx",typeof t=="string"?t:"",e.ts.ScriptTarget.Latest)}function st(e,t=""){let r=E(e,t?.trim());if(r.statements.length===0)throw new Error(`No statements found in code: ${t}`);return r.statements[0]}function N(e,t,r){if(t){let n=e.ts.createPrinter({newLine:e.ts.NewLineKind.LineFeed,removeComments:r});return e.ts.isSourceFile(t)?n.printFile(t).trim()+`
9
+ `),await e.writeFile(t,i),"create";return null}async function Me(e){return await Ce(e,[".env.local",".env.development.local",".env.production.local",".env.development",".env.production",".env"],oe)}async function un(e,t){let r=await Me(e),n=await Se(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var oe="NEXT_PUBLIC_BUILDER_API_KEY";var O={gen1:"Gen 1",gen2:"Gen 2"};function E(e,t=""){return e.ts.createSourceFile("module.tsx",typeof t=="string"?t:"",e.ts.ScriptTarget.Latest,void 0)}function st(e,t=""){let r=E(e,t?.trim());if(r.statements.length===0)throw new Error(`No statements found in code: ${t}`);return r.statements[0]}function N(e,t,r){if(t){let n=e.ts.createPrinter({newLine:e.ts.NewLineKind.LineFeed,removeComments:r});return e.ts.isSourceFile(t)?n.printFile(t).trim()+`
10
10
  `:n.printNode(e.ts.EmitHint.Unspecified,t,e.ts.createSourceFile("module.tsx","",e.ts.ScriptTarget.Latest)).trim()+`
11
11
  `}return""}function v(e,t,r){t=X(t),r=X(r),t=e.dirname(t);let n=e.basename(r,e.extname(r));r=e.dirname(r);let o;return n==="index"?o=e.relative(t,r):o=e.relative(t,e.join(r,n)),o=X(e.normalize(o)),o.startsWith(".")||(o="./"+o),o}function X(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}function Ae(e,t){let r=e.extname(t),n=e.basename(t,r).split(/[\/\\]/),o=n[n.length-1];return mn(o==="index"?e.basename(e.dirname(t)):o)}function mn(e){return j(e).replace(/ /g,"")}function Y(e,t){let r=e.extname(t),n=X(e.basename(t,r)).split("/").pop();return j(n==="index"?e.basename(e.dirname(t)):n)}function k(e,t){let r=X(e.relative(e.getRootDir(),t));r=r.split("/").filter(o=>o!=="."&&o!==".."&&o!=="").join("/"),r.endsWith(".tsx")||r.endsWith(".jsx")?r=r.slice(0,-4):(r.endsWith(".ts")||r.endsWith(".js"))&&(r=r.slice(0,-3));let n=e.getFrameworks();return r.startsWith("src/")&&(r=r.slice(4)),n.some(o=>o.name.includes("next"))?"@/"+r:"~/"+r}function A(e,t){let r=t,n=[];for(let o=0;o<2;o++){let i=e.basename(r);if(!i||i==="components")break;n.unshift(i),r=e.dirname(r)}return n.join("/")}function j(e){for(e=e.replace(/([A-Z])/g," $1").replace(/\./g," ").replace(/_/g," ").replace(/-/g," ").replace(/\s/g," ").trim();e.includes(" ");)e=e.replace(/ /g," ");return e.split(" ").map(t=>t.length>2?t[0].toUpperCase()+t.slice(1):t).join("").trim()}function Q(e){return e.sort((t,r)=>t.name.toLocaleLowerCase().localeCompare(r.name.toLocaleLowerCase()))}async function _(e,t,r){if(typeof r!="string"||r==="")throw new Error(`getComponentId(), exportName must be a non-empty string, received: ${r}, ${t}`);return t=e.normalize(t),(await e.hash(t+"#"+r)).substring(0,8)}function Ue(e){return typeof e=="number"}function Fe(e){return typeof e=="boolean"}function U(e){return typeof e=="string"}function ze(e){return typeof e=="string"?/^[A-Z][A-Za-z0-9]*$/.test(e):!1}function J(e){return JSON.parse(JSON.stringify(e))}function Qe(e,t,r,n,o=!0){let i=t.properties.filter(s=>e.ts.isPropertyAssignment(s)),a=mo(e,t,r);return a>-1?n==null&&o?e.ts.factory.updateObjectLiteralExpression(t,i.filter((s,p)=>p!==a)):(i[a]=e.ts.factory.updatePropertyAssignment(i[a],i[a].name,qe(e,n)),e.ts.factory.updateObjectLiteralExpression(t,i)):(n!=null&&i.push(e.ts.factory.createPropertyAssignment(r,qe(e,n))),e.ts.factory.updateObjectLiteralExpression(t,i))}function mo(e,t,r){return t.properties.findIndex(n=>b(e,n)===r)}function Je(e,t){switch(t.kind){case e.ts.SyntaxKind.ArrayLiteralExpression:return go(e,t);case e.ts.SyntaxKind.ObjectLiteralExpression:return fo(e,t);case e.ts.SyntaxKind.StringLiteral:return t.text;case e.ts.SyntaxKind.NumericLiteral:return Number(t.text);case e.ts.SyntaxKind.NoSubstitutionTemplateLiteral:return t.text;case e.ts.SyntaxKind.TrueKeyword:return!0;case e.ts.SyntaxKind.FalseKeyword:return!1;case e.ts.SyntaxKind.Identifier:switch(t.escapedText){case"undefined":return;case"null":return null;case"String":return String;case"Number":return Number;case"Boolean":return Boolean;case"NaN":return NaN}}}function fo(e,t){let r={};if(t&&e.ts.isObjectLiteralExpression(t)){for(let n of t.properties)if(e.ts.isPropertyAssignment(n)){let o=b(e,n);o&&(r[o]=Je(e,n.initializer))}}return r}function go(e,t){return t&&e.ts.isArrayLiteralExpression(t)?t.elements.map(r=>Je(e,r)):[]}function b(e,t){if(t&&e.ts.isPropertyAssignment(t)){let r=t.name;switch(r.kind){case e.ts.SyntaxKind.Identifier:return r.text;case e.ts.SyntaxKind.StringLiteral:case e.ts.SyntaxKind.NumericLiteral:return r.text;case e.ts.SyntaxKind.ComputedPropertyName:let n=r.expression;if(e.ts.isStringLiteral(n)||e.ts.isNumericLiteral(n))return r.expression.text}}}function qe(e,t){return yt(e,t,new WeakSet)}function yt(e,t,r){return t===void 0?e.ts.factory.createIdentifier("undefined"):t===null?e.ts.factory.createIdentifier("null"):typeof t=="string"?e.ts.factory.createStringLiteral(t):typeof t=="number"?isNaN(t)?e.ts.factory.createIdentifier("NaN"):e.ts.factory.createNumericLiteral(t):t===!0?e.ts.factory.createTrue():t===!1?e.ts.factory.createFalse():t===String?e.ts.factory.createIdentifier("String"):t===Number?e.ts.factory.createIdentifier("Number"):t===Boolean?e.ts.factory.createIdentifier("Boolean"):Array.isArray(t)?xo(e,t,r):typeof t=="object"?ho(e,t,r):e.ts.factory.createIdentifier(t)}function xo(e,t,r){let n=t.map(o=>yt(e,o,r));return e.ts.factory.createArrayLiteralExpression(n,!0)}function ho(e,t,r){if(r.has(t))return e.ts.factory.createIdentifier("undefined");r.add(t);let n=Object.keys(t).map(o=>e.ts.factory.createPropertyAssignment(o,yt(e,t[o],r)));return e.ts.factory.createObjectLiteralExpression(n,!0)}function be(e,t,r){let n=[];if(!r)return n;let o=null;if(e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r)){let i=r.parameters;if(i.length>0){let a=i[0],s=t.getTypeAtLocation(a);s.aliasTypeArguments&&s.aliasTypeArguments.length>0?o=s.aliasTypeArguments[0].getProperties():o=s.getProperties()}}else if(e.ts.isIdentifier(r)){let i=t.getTypeAtLocation(r),a=i.symbol?.valueDeclaration;if(a&&e.ts.isClassDeclaration(a)){let p=a.heritageClauses?.find(l=>l.token===e.ts.SyntaxKind.ExtendsKeyword)?.types;if(p){for(let l of p)if(t.getSymbolAtLocation(l.expression)?.name==="Component"){if(e.ts.isExpressionWithTypeArguments(l)){let f=l.typeArguments;if(f){let c=f[0];o=t.getTypeFromTypeNode(c).getProperties()}}break}}}if(!o){let s=i.getCallSignatures();if(s.length>0){let p=s[0].getParameters();p.length>0&&(o=t.getTypeOfSymbolAtLocation(p[0],r).getProperties())}}}if(o)for(let i of o){let a=Co(e,t,i);a&&n.push(a)}return n=n.filter(dn),n.length>0?n:So(e,r)}function Co(e,t,r){let n=r.valueDeclaration,o=r.getName();if(n||(n=r.getDeclarations()?.[0]),n&&e.ts.isPropertySignature(n)){if(o!=="children"&&n.getSourceFile().fileName.includes("node_modules/@types/"))return null;let i="string",a;if(n?.type){let p=t.getTypeFromTypeNode(n.type),l=t.typeToString(p),d=Tt(l);d.knownType?i=d.builderType:yo(l)||p.flags&e.ts.TypeFlags.StringLike?i="string":p.flags&e.ts.TypeFlags.NumberLike?i="number":p.flags&e.ts.TypeFlags.IndexedAccess?i="list":p.flags&e.ts.TypeFlags.Object||p.isUnion()&&p.types.every(f=>f.flags&e.ts.TypeFlags.Object)||p.isIntersection()&&p.types.some(f=>f.flags&e.ts.TypeFlags.Object)?i="object":i="string",l!==i&&(a=l)}let s={name:o,type:i,isRegistered:!1};if(a&&n.type){let p=wo(e,t,t.getTypeFromTypeNode(n.type));s.meta=s.meta||{},p&&p.length>0&&s.type==="string"&&p.every(Do)?s.enum=p.map(Eo):s.meta.ts=a}return n.questionToken||(s.required=!0),s}return null}function So(e,t){let r=[],n=e.ts.getJSDocCommentsAndTags(t);for(let o of n)if(!(!e.ts.isJSDoc(o)||!o.tags))for(let i of o.tags){if(!e.ts.isJSDocParameterTag(i)||i.tagName.text!=="param")continue;let s=i.typeExpression?.type;if(!s||!e.ts.isJSDocTypeLiteral(s))continue;let p=s.jsDocPropertyTags;if(p)for(let l of p){if(!e.ts.isJSDocPropertyLikeTag(l))continue;let d=l.name;if(!e.ts.isQualifiedName(d))continue;let f=l.typeExpression;if(!f)continue;let c="";switch(f.type.kind){case e.ts.SyntaxKind.StringKeyword:{c="string";break}case e.ts.SyntaxKind.NumberKeyword:{c="number";break}case e.ts.SyntaxKind.BooleanKeyword:{c="boolean";break}default:continue}let h={name:d.right.text,type:c,isRegistered:!1};r.push(h)}}return r.filter(dn)}var Po=["ClassicComponent","FunctionComponent","IntrinsicElements","JSX","ReactNode","ReactElement","ReactPortal"];function yo(e){return typeof e!="string"?!1:!!Po.some(t=>e.includes(t))}function Tt(e){return typeof e=="string"&&(e=e.trim(),To.some(t=>t.value===e))?{builderType:e,knownType:!0}:{builderType:"string",knownType:!1}}var To=[{value:"boolean",text:"boolean"},{value:"color",text:"color (provides a color in hex or rgb)"},{value:"date",text:"date (same format as the Date constructor)"},{value:"email",text:"email"},{value:"file",text:"file (uploads a file and provides a url)"},{value:"list",text:"list (collection of items)"},{value:"longText",text:"longText (multiline text editor)"},{value:"number",text:"number"},{value:"object",text:"object (set of specific names and values)"},{value:"richText",text:"richText (provides value as html)"},{value:"string",text:"string"}];function Do(e){return/^['"].*['"]$/.test(e)}function Eo(e){return(e.startsWith('"')||e.startsWith("'"))&&(e.endsWith('"')||e.endsWith("'"))?e.slice(1,-1):e}var wo=(e,t,r)=>{let n=new Set;fn(e,t,r,n);let o=n.delete("true"),i=n.delete("false");(o||i)&&n.add("boolean");let a=Array.from(n.keys()).sort();if(a.length>1&&(a=a.map(s=>s.indexOf("=>")>=0?`(${s})`:s)),!(a.length>20))return a},vo=(e,t,r)=>{let n=e.ts.TypeFormatFlags.InElementType|e.ts.TypeFormatFlags.NoTruncation;return t.typeToString(r,void 0,n)},fn=(e,t,r,n)=>{if(r.isUnion())r.types.forEach(o=>{fn(e,t,o,n)});else if(r.isLiteral()){let o=vo(e,t,r);n.add(o)}};function dn(e){let t=e?.name;if(typeof t!="string"||t===""||t.startsWith("aria")||t.startsWith("data-"))return!1;if(t.startsWith("on")&&t.length>2){let r=t.charAt(2);if(r.toUpperCase()===r)return!1}return!bo.has(t.toLowerCase())}var bo=new Set(["about","accessKey","accessKeyLabel","asChild","autoCapitalize","autoCorrect","autoFocus","autoSave","blur","contentEditable","contextMenu","dangerouslySetInnerHTML","datatype","defaultChecked","defaultValue","dir","draggable","enterKeyHint","focus","form","formAction","formEncType","formMethod","formNoValidate","formTarget","inlist","innerText","inputMode","is","isContentEditable","itemID","itemProp","itemRef","itemScope","itemType","lang","nonce","offsetHeight","offsetLeft","offsetTop","offsetWidth","outerText","prefix","property","radioGroup","rel","resource","results","rev","role","security","slot","spellCheck","suppressContentEditableWarning","suppressHydrationWarning","tabIndex","translate","typeof","unselectable","vocab"].map(e=>e.toLowerCase()));function W(e,t,r){for(let n of r.properties){if(!e.ts.isPropertyAssignment(n))continue;let o=b(e,n);if(o==="name"&&e.ts.isStringLiteral(n.initializer)){t.name=n.initializer.text;continue}if(o==="description"&&e.ts.isStringLiteral(n.initializer)){t.description=n.initializer.text;continue}if(o==="image"&&e.ts.isStringLiteral(n.initializer)){t.image=n.initializer.text;continue}if(o==="inputs"&&e.ts.isArrayLiteralExpression(n.initializer)){let i=Io(e,n.initializer);Z(t,i);continue}if(o==="meta"&&e.ts.isObjectLiteralExpression(n.initializer)){let i=Je(e,n.initializer);i&&typeof i=="object"&&(t.meta=i);continue}}return t}function Io(e,t){let r=[];for(let n of t.elements)e.ts.isObjectLiteralExpression(n)&&r.push(Ro(e,n));return r}function Ro(e,t){let r=Je(e,t),n=_o(r);return n.isRegistered=!0,n}function $(e,t,r){let n=Ao(r);return t=Qe(e,t,"name",n.name,!1),t=Qe(e,t,"description",n.description),t=Qe(e,t,"image",n.image),t=No(e,t,n),jo(e,t)}function No(e,t,r){let n=null,o=t.properties.filter(s=>e.ts.isPropertyAssignment(s)&&e.ts.isIdentifier(s.name)),i=o.findIndex(s=>e.ts.isIdentifier(s.name)&&s.name.text==="inputs"),a=[...r.inputs??[]];if(i>-1){if(a.length===0)return Qe(e,t,"inputs",null);let s=o[i];e.ts.isPropertyAssignment(s)&&e.ts.isArrayLiteralExpression(s.initializer)&&(n=s.initializer)}return a.length===0?t:(n=Oo(e,n||e.ts.factory.createArrayLiteralExpression(),a),i>-1?o[i]=e.ts.factory.updatePropertyAssignment(o[i],o[i].name,n):o.push(e.ts.factory.createPropertyAssignment("inputs",n)),e.ts.factory.updateObjectLiteralExpression(t,o))}function Ao(e){return{name:e.name,description:e.description,image:e.image,inputs:(e.inputs||[]).filter(r=>r.isRegistered).map(Fo)}}function Fo(e){let t={name:e.name,type:e.type};return(U(e.defaultValue)||Ue(e.defaultValue)||Fe(e.defaultValue))&&(t.defaultValue=e.defaultValue),U(e.friendlyName)&&(t.friendlyName=e.friendlyName),U(e.helperText)&&(t.helperText=e.helperText),e.required===!0&&(t.required=!0),Array.isArray(e.enum)&&(t.enum=e.enum),e.hideFromUI===!0&&(t.hideFromUI=!0),typeof e.meta=="object"&&e.meta!=null&&Object.keys(e.meta).length>0&&(t.meta=e.meta),t}function Oo(e,t,r){let n=t.elements.filter(o=>{if(!e.ts.isObjectLiteralExpression(o))return!1;let i=o.properties.find(s=>b(e,s)==="name");if(!i)return!1;let a=i.initializer;return e.ts.isStringLiteral(a)?r.some(s=>s.name===a.text):!1});for(let o of r)n=Lo(e,n,o);return n.sort((o,i)=>{let a=o.properties.find(c=>b(e,c)==="name"),s=i.properties.find(c=>b(e,c)==="name"),p=a?.initializer,l=s?.initializer,d=p&&e.ts.isStringLiteral(p)?p.text:"zz",f=l&&e.ts.isStringLiteral(l)?l.text:"zz";return d.toLowerCase().localeCompare(f.toLowerCase())}),e.ts.factory.updateArrayLiteralExpression(t,n)}function Lo(e,t,r){let n=t.findIndex(o=>o.properties.some(i=>{let a=b(e,i);return e.ts.isPropertyAssignment(i)&&a==="name"&&e.ts.isStringLiteral(i.initializer)&&i.initializer.text===r.name}));if(n>-1)t[n]=gn(e,t[n],r);else{let o=gn(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("name",e.ts.factory.createStringLiteral(r.name))],!0),r);t.push(o)}return t}function gn(e,t,r){let n=t.properties.filter(i=>e.ts.isPropertyAssignment(i)),o=Object.keys(r).filter(i=>i!=="isRegistered");for(let i of o)n=ko(e,n,r,i);return n=Bo(e,n.filter(i=>{let a=b(e,i);return o.includes(a)})),e.ts.factory.updateObjectLiteralExpression(t,n)}function ko(e,t,r,n){let o=t.findIndex(i=>e.ts.isIdentifier(i.name)&&i.name.text===n);return o>-1?t[o]=e.ts.factory.updatePropertyAssignment(t[o],t[o].name,qe(e,r[n])):t.push(e.ts.factory.createPropertyAssignment(n,qe(e,r[n]))),t}function Z(e,t){for(let r of t){let n=e.inputs.findIndex(o=>o.name===r.name);n>-1?(r.isRegistered||!e.inputs[n].isRegistered)&&(e.inputs[n]=r):e.inputs.push(r)}e.acceptsChildren=Dt(e)}function _o(e){let t=Tt(e.type),r={name:e.name.trim(),type:t.builderType};return U(e.friendlyName)&&e.friendlyName.trim()!==e.name.trim()&&(r.friendlyName=e.friendlyName),(U(e.defaultValue)||Ue(e.defaultValue)||Fe(e.defaultValue))&&(r.defaultValue=e.defaultValue),U(e.helperText)&&(r.helperText=e.helperText),Fe(e.required)&&(r.required=e.required),typeof e.meta=="object"&&e.meta!=null&&Object.keys(e.meta).length>0&&(r.meta=e.meta),Array.isArray(e.enum)&&e.enum.length>0&&(r.enum=e.enum),e.hideFromUI===!0&&(r.hideFromUI=!0),Et(r)}function Dt(e){let t=e.inputs.some(n=>n.name==="children"),r=e.inputs.some(n=>n.meta?.ts==="ReactNode");return!!(t||r||e.acceptsChildren===!0)}function Et(e){if(e.name==="children"&&(e.hideFromUI=!0,delete e.required),e.type==="object"&&e.defaultValue==null&&(e.hideFromUI=!0),e.type==="list"&&e.defaultValue==null&&(e.hideFromUI=!0),e.meta){let t=e.meta.ts;typeof t=="string"&&(t=t.trim(),t.endsWith("ReactNode")&&(t="ReactNode"),e.meta.ts=t,t==="ReactNode"&&(e.hideFromUI=!0))}return e}function jo(e,t){let r=[...t.properties].sort((n,o)=>{let i=b(e,n)||"zz",a=b(e,o)||"zz";if(i==="inputs")return 1;let s=xn.indexOf(i),p=xn.indexOf(a);return s>-1?p>-1&&s>p?1:-1:p>-1?s>-1&&p<s?-1:1:i.localeCompare(a)});return e.ts.factory.updateObjectLiteralExpression(t,r)}var xn=["component","name","description"];function Bo(e,t){return[...t].sort((n,o)=>{let i=b(e,n)||"zz",a=b(e,o)||"zz",s=hn.indexOf(i),p=hn.indexOf(a);return s>-1?p>-1&&s>p?1:-1:p>-1?s>-1&&p<s?-1:1:i.localeCompare(a)})}var hn=["name","type"];function Cn(e,t){let r=`Builder.registerComponent(
12
12
  `;if(e.appDir)t.acceptsChildren?r+=` withChildren(${t.importName}),
@@ -805,4 +805,4 @@ module.exports = nextConfig
805
805
  `,n+=` }
806
806
  `,n+=` }
807
807
  `,n+=`})();
808
- `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var Pt="1.1.8";export{os as createDevTools,is as createDevToolsSys,ve as detectFrameworks,pn as detectFrameworksFromPackageJson,xs as ensureConfigPlugin,Zr as findBuildToolConfig,hs as getClientScript,cn as parseDotEnvContent,Pt as version};
808
+ `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var Pt="1.1.10";export{os as createDevTools,is as createDevToolsSys,ve as detectFrameworks,pn as detectFrameworksFromPackageJson,xs as ensureConfigPlugin,Zr as findBuildToolConfig,hs as getClientScript,cn as parseDotEnvContent,Pt as version};
@@ -0,0 +1,125 @@
1
+ export type ReactComponentLike =
2
+ | string
3
+ | ((props: any, context?: any) => any)
4
+ | (new (props: any, context?: any) => any);
5
+
6
+ export interface ReactElementLike {
7
+ type: ReactComponentLike;
8
+ props: any;
9
+ key: string | null;
10
+ }
11
+
12
+ export interface ReactNodeArray extends Iterable<ReactNodeLike> {}
13
+
14
+ export type ReactNodeLike =
15
+ | ReactElementLike
16
+ | ReactNodeArray
17
+ | string
18
+ | number
19
+ | boolean
20
+ | null
21
+ | undefined;
22
+
23
+ export const nominalTypeHack: unique symbol;
24
+
25
+ export type IsOptional<T> = undefined extends T ? true : false;
26
+
27
+ export type RequiredKeys<V> = {
28
+ [K in keyof V]-?: Exclude<V[K], undefined> extends Validator<infer T>
29
+ ? IsOptional<T> extends true
30
+ ? never
31
+ : K
32
+ : never;
33
+ }[keyof V];
34
+ export type OptionalKeys<V> = Exclude<keyof V, RequiredKeys<V>>;
35
+ export type InferPropsInner<V> = { [K in keyof V]-?: InferType<V[K]> };
36
+
37
+ export interface Validator<T> {
38
+ (
39
+ props: { [key: string]: any },
40
+ propName: string,
41
+ componentName: string,
42
+ location: string,
43
+ propFullName: string
44
+ ): Error | null;
45
+ [nominalTypeHack]?:
46
+ | {
47
+ type: T;
48
+ }
49
+ | undefined;
50
+ }
51
+
52
+ export interface Requireable<T> extends Validator<T | undefined | null> {
53
+ isRequired: Validator<NonNullable<T>>;
54
+ }
55
+
56
+ export type ValidationMap<T> = { [K in keyof T]?: Validator<T[K]> };
57
+
58
+ /**
59
+ * Like {@link ValidationMap} but treats `undefined`, `null` and optional properties the same.
60
+ * This type is only added as a migration path in React 19 where this type was removed from React.
61
+ * Runtime and compile time types would mismatch since you could see `undefined` at runtime when your types don't expect this type.
62
+ */
63
+ export type WeakValidationMap<T> = {
64
+ [K in keyof T]?: null extends T[K]
65
+ ? Validator<T[K] | null | undefined>
66
+ : undefined extends T[K]
67
+ ? Validator<T[K] | null | undefined>
68
+ : Validator<T[K]>;
69
+ };
70
+
71
+ export type InferType<V> = V extends Validator<infer T> ? T : any;
72
+ export type InferProps<V> = InferPropsInner<Pick<V, RequiredKeys<V>>> &
73
+ Partial<InferPropsInner<Pick<V, OptionalKeys<V>>>>;
74
+
75
+ export const any: Requireable<any>;
76
+ export const array: Requireable<any[]>;
77
+ export const bool: Requireable<boolean>;
78
+ export const func: Requireable<(...args: any[]) => any>;
79
+ export const number: Requireable<number>;
80
+ export const object: Requireable<object>;
81
+ export const string: Requireable<string>;
82
+ export const node: Requireable<ReactNodeLike>;
83
+ export const element: Requireable<ReactElementLike>;
84
+ export const symbol: Requireable<symbol>;
85
+ export const elementType: Requireable<ReactComponentLike>;
86
+ export function instanceOf<T>(
87
+ expectedClass: new (...args: any[]) => T
88
+ ): Requireable<T>;
89
+ export function oneOf<T>(types: readonly T[]): Requireable<T>;
90
+ export function oneOfType<T extends Validator<any>>(
91
+ types: T[]
92
+ ): Requireable<NonNullable<InferType<T>>>;
93
+ export function arrayOf<T>(type: Validator<T>): Requireable<T[]>;
94
+ export function objectOf<T>(
95
+ type: Validator<T>
96
+ ): Requireable<{ [K in keyof any]: T }>;
97
+ export function shape<P extends ValidationMap<any>>(
98
+ type: P
99
+ ): Requireable<InferProps<P>>;
100
+ export function exact<P extends ValidationMap<any>>(
101
+ type: P
102
+ ): Requireable<Required<InferProps<P>>>;
103
+
104
+ /**
105
+ * Assert that the values match with the type specs.
106
+ * Error messages are memorized and will only be shown once.
107
+ *
108
+ * @param typeSpecs Map of name to a ReactPropType
109
+ * @param values Runtime values that need to be type-checked
110
+ * @param location e.g. "prop", "context", "child context"
111
+ * @param componentName Name of the component for error messages
112
+ * @param getStack Returns the component stack
113
+ */
114
+ export function checkPropTypes(
115
+ typeSpecs: any,
116
+ values: any,
117
+ location: string,
118
+ componentName: string,
119
+ getStack?: () => any
120
+ ): void;
121
+
122
+ /**
123
+ * Only available if NODE_ENV=production
124
+ */
125
+ export function resetWarningCache(): void;
@@ -2,8 +2,7 @@
2
2
  // to 'react/experimental' in their project. See experimental.d.ts's top comment
3
3
  // for reference and documentation on how exactly to do it.
4
4
 
5
- import * as CSS from "csstype";
6
- import * as PropTypes from "prop-types";
5
+ import * as PropTypes from "./prop-types";
7
6
  import type { FigmaNode } from "../../types/figma";
8
7
 
9
8
  type NativeAnimationEvent = AnimationEvent;
@@ -306,7 +305,7 @@ declare namespace React {
306
305
  /**
307
306
  * Represents the built-in attributes available to class components.
308
307
  */
309
- interface ClassAttributes<T> extends RefAttributes<T> {}
308
+ export interface ClassAttributes<T> extends RefAttributes<T> {}
310
309
 
311
310
  /**
312
311
  * Represents a JSX element.
@@ -323,7 +322,7 @@ declare namespace React {
323
322
  * const element: ReactElement = <div />;
324
323
  * ```
325
324
  */
326
- interface ReactElement<
325
+ export interface ReactElement<
327
326
  P = any,
328
327
  T extends string | JSXElementConstructor<any> =
329
328
  | string
@@ -337,12 +336,12 @@ declare namespace React {
337
336
  /**
338
337
  * @deprecated
339
338
  */
340
- interface ReactComponentElement<
339
+ export interface ReactComponentElement<
341
340
  T extends keyof JSX.IntrinsicElements | JSXElementConstructor<any>,
342
341
  P = Pick<ComponentProps<T>, Exclude<keyof ComponentProps<T>, "key" | "ref">>
343
342
  > extends ReactElement<P, Exclude<T, number>> {}
344
343
 
345
- interface FunctionComponentElement<P>
344
+ export interface FunctionComponentElement<P>
346
345
  extends ReactElement<P, FunctionComponent<P>> {
347
346
  ref?:
348
347
  | ("ref" extends keyof P
@@ -353,11 +352,11 @@ declare namespace React {
353
352
  | undefined;
354
353
  }
355
354
 
356
- type CElement<P, T extends Component<P, ComponentState>> = ComponentElement<
355
+ export type CElement<
357
356
  P,
358
- T
359
- >;
360
- interface ComponentElement<P, T extends Component<P, ComponentState>>
357
+ T extends Component<P, ComponentState>
358
+ > = ComponentElement<P, T>;
359
+ export interface ComponentElement<P, T extends Component<P, ComponentState>>
361
360
  extends ReactElement<P, ComponentClass<P>> {
362
361
  ref?: LegacyRef<T> | undefined;
363
362
  }
@@ -365,10 +364,13 @@ declare namespace React {
365
364
  /**
366
365
  * @deprecated Use {@link ComponentElement} instead.
367
366
  */
368
- type ClassicElement<P> = CElement<P, ClassicComponent<P, ComponentState>>;
367
+ export type ClassicElement<P> = CElement<
368
+ P,
369
+ ClassicComponent<P, ComponentState>
370
+ >;
369
371
 
370
372
  // string fallback for custom web-components
371
- interface DOMElement<
373
+ export interface DOMElement<
372
374
  P extends HTMLAttributes<T> | SVGAttributes<T>,
373
375
  T extends Element
374
376
  > extends ReactElement<P, string> {
@@ -376,10 +378,10 @@ declare namespace React {
376
378
  }
377
379
 
378
380
  // ReactHTML for ReactHTMLElement
379
- interface ReactHTMLElement<T extends HTMLElement>
381
+ export interface ReactHTMLElement<T extends HTMLElement>
380
382
  extends DetailedReactHTMLElement<AllHTMLAttributes<T>, T> {}
381
383
 
382
- interface DetailedReactHTMLElement<
384
+ export interface DetailedReactHTMLElement<
383
385
  P extends HTMLAttributes<T>,
384
386
  T extends HTMLElement
385
387
  > extends DOMElement<P, T> {
@@ -387,12 +389,12 @@ declare namespace React {
387
389
  }
388
390
 
389
391
  // ReactSVG for ReactSVGElement
390
- interface ReactSVGElement
392
+ export interface ReactSVGElement
391
393
  extends DOMElement<SVGAttributes<SVGElement>, SVGElement> {
392
394
  type: keyof ReactSVG;
393
395
  }
394
396
 
395
- interface ReactPortal extends ReactElement {
397
+ export interface ReactPortal extends ReactElement {
396
398
  children: ReactNode;
397
399
  }
398
400
 
@@ -400,7 +402,7 @@ declare namespace React {
400
402
  // Factories
401
403
  // ----------------------------------------------------------------------
402
404
 
403
- type Factory<P> = (
405
+ export type Factory<P> = (
404
406
  props?: Attributes & P,
405
407
  ...children: ReactNode[]
406
408
  ) => ReactElement<P>;
@@ -408,33 +410,36 @@ declare namespace React {
408
410
  /**
409
411
  * @deprecated Please use `FunctionComponentFactory`
410
412
  */
411
- type SFCFactory<P> = FunctionComponentFactory<P>;
413
+ export type SFCFactory<P> = FunctionComponentFactory<P>;
412
414
 
413
- type FunctionComponentFactory<P> = (
415
+ export type FunctionComponentFactory<P> = (
414
416
  props?: Attributes & P,
415
417
  ...children: ReactNode[]
416
418
  ) => FunctionComponentElement<P>;
417
419
 
418
- type ComponentFactory<P, T extends Component<P, ComponentState>> = (
420
+ export type ComponentFactory<P, T extends Component<P, ComponentState>> = (
419
421
  props?: ClassAttributes<T> & P,
420
422
  ...children: ReactNode[]
421
423
  ) => CElement<P, T>;
422
424
 
423
- type CFactory<P, T extends Component<P, ComponentState>> = ComponentFactory<
425
+ export type CFactory<
426
+ P,
427
+ T extends Component<P, ComponentState>
428
+ > = ComponentFactory<P, T>;
429
+ export type ClassicFactory<P> = CFactory<
424
430
  P,
425
- T
431
+ ClassicComponent<P, ComponentState>
426
432
  >;
427
- type ClassicFactory<P> = CFactory<P, ClassicComponent<P, ComponentState>>;
428
433
 
429
- type DOMFactory<P extends DOMAttributes<T>, T extends Element> = (
434
+ export type DOMFactory<P extends DOMAttributes<T>, T extends Element> = (
430
435
  props?: (ClassAttributes<T> & P) | null,
431
436
  ...children: ReactNode[]
432
437
  ) => DOMElement<P, T>;
433
438
 
434
- interface HTMLFactory<T extends HTMLElement>
439
+ export interface HTMLFactory<T extends HTMLElement>
435
440
  extends DetailedHTMLFactory<AllHTMLAttributes<T>, T> {}
436
441
 
437
- interface DetailedHTMLFactory<
442
+ export interface DetailedHTMLFactory<
438
443
  P extends HTMLAttributes<T>,
439
444
  T extends HTMLElement
440
445
  > extends DOMFactory<P, T> {
@@ -455,21 +460,21 @@ declare namespace React {
455
460
  /**
456
461
  * @deprecated - This type is not relevant when using React. Inline the type instead to make the intent clear.
457
462
  */
458
- type ReactText = string | number;
463
+ export type ReactText = string | number;
459
464
  /**
460
465
  * @deprecated - This type is not relevant when using React. Inline the type instead to make the intent clear.
461
466
  */
462
- type ReactChild = ReactElement | string | number;
467
+ export type ReactChild = ReactElement | string | number;
463
468
 
464
469
  /**
465
470
  * @deprecated Use either `ReactNode[]` if you need an array or `Iterable<ReactNode>` if its passed to a host component.
466
471
  */
467
- interface ReactNodeArray extends ReadonlyArray<ReactNode> {}
472
+ export interface ReactNodeArray extends ReadonlyArray<ReactNode> {}
468
473
  /**
469
474
  * WARNING: Not related to `React.Fragment`.
470
475
  * @deprecated This type is not relevant when using React. Inline the type instead to make the intent clear.
471
476
  */
472
- type ReactFragment = Iterable<ReactNode>;
477
+ export type ReactFragment = Iterable<ReactNode>;
473
478
 
474
479
  /**
475
480
  * Different release channels declare additional types of ReactNode this particular release channel accepts.
@@ -507,7 +512,7 @@ declare namespace React {
507
512
  * ```
508
513
  */
509
514
  // non-thenables need to be kept in sync with AwaitedReactNode
510
- type ReactNode =
515
+ export type ReactNode =
511
516
  | ReactElement
512
517
  | string
513
518
  | number
@@ -684,7 +689,7 @@ declare namespace React {
684
689
  *
685
690
  * @template P The props the component accepts.
686
691
  */
687
- interface NamedExoticComponent<P = {}> extends ExoticComponent<P> {
692
+ export interface NamedExoticComponent<P = {}> extends ExoticComponent<P> {
688
693
  /**
689
694
  * Used in debugging messages. You might want to set it
690
695
  * explicitly if you want to display a different name for
@@ -700,7 +705,7 @@ declare namespace React {
700
705
  *
701
706
  * @template P The props the component accepts.
702
707
  */
703
- interface ProviderExoticComponent<P> extends ExoticComponent<P> {
708
+ export interface ProviderExoticComponent<P> extends ExoticComponent<P> {
704
709
  propTypes?: WeakValidationMap<P> | undefined;
705
710
  }
706
711
 
@@ -720,7 +725,7 @@ declare namespace React {
720
725
  * // ContextType = { foo: string }
721
726
  * ```
722
727
  */
723
- type ContextType<C extends Context<any>> = C extends Context<infer T>
728
+ export type ContextType<C extends Context<any>> = C extends Context<infer T>
724
729
  ? T
725
730
  : never;
726
731
 
@@ -745,7 +750,7 @@ declare namespace React {
745
750
  * }
746
751
  * ```
747
752
  */
748
- type Provider<T> = ProviderExoticComponent<ProviderProps<T>>;
753
+ export type Provider<T> = ProviderExoticComponent<ProviderProps<T>>;
749
754
 
750
755
  /**
751
756
  * The old way to read context, before {@link useContext} existed.
@@ -2728,7 +2733,7 @@ declare namespace React {
2728
2733
  onTransitionEndCapture?: TransitionEventHandler<T> | undefined;
2729
2734
  }
2730
2735
 
2731
- export interface CSSProperties extends CSS.Properties<string | number> {
2736
+ export interface CSSProperties extends Record<string, string | number> {
2732
2737
  /**
2733
2738
  * The index signature was removed to enable closed typing for style
2734
2739
  * using CSSType. You're able to use type assertion or module augmentation
@@ -5200,21 +5205,17 @@ interface IntrinsicElements {
5200
5205
  // React.JSX needs to point to global.JSX to keep global module augmentations intact.
5201
5206
  // But we can't access global.JSX so we need to create these aliases instead.
5202
5207
  // Once the global JSX namespace will be removed we replace React.JSX with the contents of global.JSX
5203
- type GlobalJSXElementType = JSX.ElementType;
5204
- interface GlobalJSXElement extends JSX.Element {}
5205
- interface GlobalJSXElementClass extends JSX.ElementClass {}
5208
+ type GlobalJSXElementType = ElementType;
5209
+ interface GlobalJSXElement extends Element {}
5210
+ interface GlobalJSXElementClass extends ElementClass {}
5206
5211
  interface GlobalJSXElementAttributesProperty
5207
- extends JSX.ElementAttributesProperty {}
5208
- interface GlobalJSXElementChildrenAttribute
5209
- extends JSX.ElementChildrenAttribute {}
5212
+ extends ElementAttributesProperty {}
5213
+ interface GlobalJSXElementChildrenAttribute extends ElementChildrenAttribute {}
5210
5214
 
5211
- type GlobalJSXLibraryManagedAttributes<C, P> = JSX.LibraryManagedAttributes<
5212
- C,
5213
- P
5214
- >;
5215
+ type GlobalJSXLibraryManagedAttributes<C, P> = LibraryManagedAttributes<C, P>;
5215
5216
 
5216
- interface GlobalJSXIntrinsicAttributes extends JSX.IntrinsicAttributes {}
5217
+ interface GlobalJSXIntrinsicAttributes extends IntrinsicAttributes {}
5217
5218
  interface GlobalJSXIntrinsicClassAttributes<T>
5218
- extends JSX.IntrinsicClassAttributes<T> {}
5219
+ extends IntrinsicClassAttributes<T> {}
5219
5220
 
5220
- interface GlobalJSXIntrinsicElements extends JSX.IntrinsicElements {}
5221
+ interface GlobalJSXIntrinsicElements extends IntrinsicElements {}
package/node/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var b=Object.create;var m=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var E=(t,o)=>{for(var n in o)m(t,n,{get:o[n],enumerable:!0})},S=(t,o,n,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of C(o))!T.call(t,a)&&a!==n&&m(t,a,{get:()=>o[a],enumerable:!(i=x(o,a))||i.enumerable});return t};var g=(t,o,n)=>(n=t!=null?b(N(t)):{},S(o||!t||!t.__esModule?m(n,"default",{value:t,enumerable:!0}):n,t)),j=t=>S(m({},"__esModule",{value:!0}),t);var J={};E(J,{createDevToolsNodeSys:()=>O});module.exports=j(J);var s=require("fs/promises"),v=require("crypto"),d=require("fs"),y=require("os"),l=g(require("path"),1),h=g(require("prettier"),1),D=g(require("typescript"),1),F=g(require("launch-editor"),1);async function w(t,o){let n=t.resolve("/");for(let i=0;i<20;i++){let a=t.join(o,"package.json"),u=await t.readFile(a);if(u)return JSON.parse(u);if(o===n)break;o=t.dirname(o)}return null}async function k(t){let o=[],n=await w(t,t.getRootDir());if(n){let i=P(n);o.push(...i)}return o}function P(t){let o=[];if(t&&typeof t=="object"){let n=new Set(Object.keys({...t.dependencies,...t.devDependencies}));for(let i of R)n.has(i)&&(o.some(a=>a.name===i)||o.push({name:i}))}return o}var R=["@shopify/remix-oxygen","@shopify/hydrogen","@builder.io/qwik-city","@remix-run/react","@sveltejs/kit","astro","gatsby","next","nuxt","@builder.io/qwik","@angular/core","react","solid-js","svelte","vue"];async function O(t){let o=new Set,n=(...e)=>{if(process.env.DEBUG){let r=new Date,c=`${String(r.getMinutes()).padStart(2,"0")}:${String(r.getSeconds()).padStart(2,"0")}.${String(r.getMilliseconds()).padStart(3,"0")}`;console.debug(c,"[builder-dev-tools]",...e)}},i=async e=>{let r=(0,v.createHash)("md5");return r.update(e),r.digest("hex")},a={...l.default,getRootDir:()=>l.default.normalize(t.getRootDir()),cwd:()=>process.cwd(),exists:async e=>{try{return await(0,s.access)(e),!0}catch{return!1}},existsSync:e=>(0,d.existsSync)(e),readdir:async(e,r)=>{let c=await(0,s.readdir)(e);return r?c.map(f=>l.default.join(e,f)):c},readdirSync:e=>(0,d.readdirSync)(e),readFile:async e=>{p(t,e);try{return await(0,s.readFile)(e,"utf-8")}catch(r){if(r.code==="ENOENT")return null;throw n(r,e),r}},readFileSync(e){p(t,e);try{return(0,d.readFileSync)(e,"utf-8")}catch(r){if(r.code==="ENOENT")return null;throw n(r,e),r}},stat:async e=>await(0,s.stat)(e),statSync:e=>(0,d.statSync)(e),writeFile:async(e,r)=>{p(t,e),e=l.default.normalize(e);let c={path:e,basename:l.default.basename(e),dirname:l.default.dirname(e),extname:l.default.extname(e)};await(0,s.mkdir)(l.default.dirname(e),{recursive:!0}),await(0,s.writeFile)(e,r);for(let f of o)await f(c)},hash:i,getDeviceId:()=>i(`${(0,y.hostname)()}:${(0,y.homedir)()}`),formatCode:async(e,r)=>{let c=null;try{c=await h.default.resolveConfig(e)}catch{}try{return h.default.format(r,{...c,filepath:e})}catch{}return r},on:(e,r)=>{e==="change"&&o.add(r)},off:(e,r)=>{e==="change"&&o.delete(r)},debug:n,launchEditor:async e=>{try{let r=e.filePath;typeof e.line=="number"&&(r+=`:${e.line}`,typeof e.column=="number"&&(r+=`:${e.column}`)),(0,F.default)(r,"code",(c,f)=>{console.error(`Failed to launch editor for ${c}`),f&&console.error(f)})}catch(r){console.error(`Failed to launch editor for ${String(r.message||r)}`)}},platform:()=>({runtime:"node",os:process.platform}),getFrameworks:()=>[],ts:D.default,version:"1.1.8",sdkVersion:null,ignoreMissingConfig:t.ignoreMissingConfig},u=await k(a);return a.getFrameworks=()=>u,a}function p(t,o){if(t.skipValidate)return;if(!o)throw new Error(`Invalid path: ${o} (7340)`);o=l.default.normalize(l.default.resolve(o));let n=t.getRootDir();if(!o.startsWith(n)&&!o.includes("node_modules"))throw new Error(`Invalid path: ${o} (7341)`)}0&&(module.exports={createDevToolsNodeSys});
1
+ "use strict";var b=Object.create;var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var E=(t,r)=>{for(var n in r)g(t,n,{get:r[n],enumerable:!0})},S=(t,r,n,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of C(r))!T.call(t,a)&&a!==n&&g(t,a,{get:()=>r[a],enumerable:!(i=x(r,a))||i.enumerable});return t};var y=(t,r,n)=>(n=t!=null?b(N(t)):{},S(r||!t||!t.__esModule?g(n,"default",{value:t,enumerable:!0}):n,t)),j=t=>S(g({},"__esModule",{value:!0}),t);var J={};E(J,{createDevToolsNodeSys:()=>O});module.exports=j(J);var s=require("fs/promises"),v=require("crypto"),u=require("fs"),h=require("os"),l=y(require("path"),1),p=y(require("prettier"),1),D=y(require("typescript"),1),F=y(require("launch-editor"),1);async function w(t,r){let n=t.resolve("/");for(let i=0;i<20;i++){let a=t.join(r,"package.json"),m=await t.readFile(a);if(m)return JSON.parse(m);if(r===n)break;r=t.dirname(r)}return null}async function k(t){let r=[],n=await w(t,t.getRootDir());if(n){let i=P(n);r.push(...i)}return r}function P(t){let r=[];if(t&&typeof t=="object"){let n=new Set(Object.keys({...t.dependencies,...t.devDependencies}));for(let i of R)n.has(i)&&(r.some(a=>a.name===i)||r.push({name:i}))}return r}var R=["@shopify/remix-oxygen","@shopify/hydrogen","@builder.io/qwik-city","@remix-run/react","@sveltejs/kit","astro","gatsby","next","nuxt","@builder.io/qwik","@angular/core","react","solid-js","svelte","vue"];async function O(t){let r=new Set,n=(...e)=>{if(process.env.DEBUG){let o=new Date,c=`${String(o.getMinutes()).padStart(2,"0")}:${String(o.getSeconds()).padStart(2,"0")}.${String(o.getMilliseconds()).padStart(3,"0")}`;console.debug(c,"[builder-dev-tools]",...e)}},i=async e=>{let o=(0,v.createHash)("md5");return o.update(e),o.digest("hex")},a={...l.default,getRootDir:()=>l.default.normalize(t.getRootDir()),cwd:()=>process.cwd(),exists:async e=>{f(t,e);try{return await(0,s.access)(e),!0}catch{return!1}},existsSync:e=>(f(t,e),(0,u.existsSync)(e)),readdir:async(e,o)=>{f(t,e);let c=await(0,s.readdir)(e);return o?c.map(d=>l.default.join(e,d)):c},readdirSync:e=>(f(t,e),(0,u.readdirSync)(e)),readFile:async e=>{f(t,e);try{return await(0,s.readFile)(e,"utf-8")}catch(o){if(o.code==="ENOENT")return null;throw n(o,e),o}},readFileSync(e){f(t,e);try{return(0,u.readFileSync)(e,"utf-8")}catch(o){if(o.code==="ENOENT")return null;throw n(o,e),o}},stat:async e=>(f(t,e),await(0,s.stat)(e)),statSync:e=>(f(t,e),(0,u.statSync)(e)),writeFile:async(e,o)=>{f(t,e),e=l.default.normalize(e);let c={path:e,basename:l.default.basename(e),dirname:l.default.dirname(e),extname:l.default.extname(e)};await(0,s.mkdir)(l.default.dirname(e),{recursive:!0}),await(0,s.writeFile)(e,o);for(let d of r)await d(c)},hash:i,getDeviceId:()=>i(`${(0,h.hostname)()}:${(0,h.homedir)()}`),formatCode:async(e,o)=>{let c=null;try{c=await p.default.resolveConfig(e)}catch{}try{return p.default.format(o,{...c,filepath:e})}catch{}return o},on:(e,o)=>{e==="change"&&r.add(o)},off:(e,o)=>{e==="change"&&r.delete(o)},debug:n,launchEditor:async e=>{try{let o=e.filePath;typeof e.line=="number"&&(o+=`:${e.line}`,typeof e.column=="number"&&(o+=`:${e.column}`)),(0,F.default)(o,"code",(c,d)=>{console.error(`Failed to launch editor for ${c}`),d&&console.error(d)})}catch(o){console.error(`Failed to launch editor for ${String(o.message||o)}`)}},platform:()=>({runtime:"node",os:process.platform}),getFrameworks:()=>[],ts:D.default,version:"1.1.10",sdkVersion:null,ignoreMissingConfig:t.ignoreMissingConfig},m=await k(a);return a.getFrameworks=()=>m,a}function f(t,r){if(t.skipValidate)return;if(!r)throw new Error(`Invalid path: ${r} (7340)`);r=l.default.normalize(l.default.resolve(r));let n=t.getRootDir();if(!r.startsWith(n)&&!r.includes("node_modules"))throw new Error(`Invalid path: ${r} (7341)`)}0&&(module.exports={createDevToolsNodeSys});
package/node/index.mjs CHANGED
@@ -1 +1 @@
1
- import{access as h,mkdir as S,readdir as w,readFile as k,stat as v,writeFile as D}from"fs/promises";import{createHash as F}from"crypto";import{existsSync as O,readdirSync as b,readFileSync as x,statSync as C}from"fs";import{homedir as N,hostname as T}from"os";import s from"path";import g from"prettier";import E from"typescript";import j from"launch-editor";async function u(r,o){let n=r.resolve("/");for(let i=0;i<20;i++){let l=r.join(o,"package.json"),f=await r.readFile(l);if(f)return JSON.parse(f);if(o===n)break;o=r.dirname(o)}return null}async function m(r){let o=[],n=await u(r,r.getRootDir());if(n){let i=y(n);o.push(...i)}return o}function y(r){let o=[];if(r&&typeof r=="object"){let n=new Set(Object.keys({...r.dependencies,...r.devDependencies}));for(let i of p)n.has(i)&&(o.some(l=>l.name===i)||o.push({name:i}))}return o}var p=["@shopify/remix-oxygen","@shopify/hydrogen","@builder.io/qwik-city","@remix-run/react","@sveltejs/kit","astro","gatsby","next","nuxt","@builder.io/qwik","@angular/core","react","solid-js","svelte","vue"];async function P(r){let o=new Set,n=(...e)=>{if(process.env.DEBUG){let t=new Date,a=`${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}.${String(t.getMilliseconds()).padStart(3,"0")}`;console.debug(a,"[builder-dev-tools]",...e)}},i=async e=>{let t=F("md5");return t.update(e),t.digest("hex")},l={...s,getRootDir:()=>s.normalize(r.getRootDir()),cwd:()=>process.cwd(),exists:async e=>{try{return await h(e),!0}catch{return!1}},existsSync:e=>O(e),readdir:async(e,t)=>{let a=await w(e);return t?a.map(c=>s.join(e,c)):a},readdirSync:e=>b(e),readFile:async e=>{d(r,e);try{return await k(e,"utf-8")}catch(t){if(t.code==="ENOENT")return null;throw n(t,e),t}},readFileSync(e){d(r,e);try{return x(e,"utf-8")}catch(t){if(t.code==="ENOENT")return null;throw n(t,e),t}},stat:async e=>await v(e),statSync:e=>C(e),writeFile:async(e,t)=>{d(r,e),e=s.normalize(e);let a={path:e,basename:s.basename(e),dirname:s.dirname(e),extname:s.extname(e)};await S(s.dirname(e),{recursive:!0}),await D(e,t);for(let c of o)await c(a)},hash:i,getDeviceId:()=>i(`${T()}:${N()}`),formatCode:async(e,t)=>{let a=null;try{a=await g.resolveConfig(e)}catch{}try{return g.format(t,{...a,filepath:e})}catch{}return t},on:(e,t)=>{e==="change"&&o.add(t)},off:(e,t)=>{e==="change"&&o.delete(t)},debug:n,launchEditor:async e=>{try{let t=e.filePath;typeof e.line=="number"&&(t+=`:${e.line}`,typeof e.column=="number"&&(t+=`:${e.column}`)),j(t,"code",(a,c)=>{console.error(`Failed to launch editor for ${a}`),c&&console.error(c)})}catch(t){console.error(`Failed to launch editor for ${String(t.message||t)}`)}},platform:()=>({runtime:"node",os:process.platform}),getFrameworks:()=>[],ts:E,version:"1.1.8",sdkVersion:null,ignoreMissingConfig:r.ignoreMissingConfig},f=await m(l);return l.getFrameworks=()=>f,l}function d(r,o){if(r.skipValidate)return;if(!o)throw new Error(`Invalid path: ${o} (7340)`);o=s.normalize(s.resolve(o));let n=r.getRootDir();if(!o.startsWith(n)&&!o.includes("node_modules"))throw new Error(`Invalid path: ${o} (7341)`)}export{P as createDevToolsNodeSys};
1
+ import{access as p,mkdir as S,readdir as w,readFile as k,stat as v,writeFile as D}from"fs/promises";import{createHash as F}from"crypto";import{existsSync as O,readdirSync as b,readFileSync as x,statSync as C}from"fs";import{homedir as N,hostname as T}from"os";import s from"path";import g from"prettier";import E from"typescript";import j from"launch-editor";async function u(r,o){let n=r.resolve("/");for(let i=0;i<20;i++){let f=r.join(o,"package.json"),d=await r.readFile(f);if(d)return JSON.parse(d);if(o===n)break;o=r.dirname(o)}return null}async function m(r){let o=[],n=await u(r,r.getRootDir());if(n){let i=y(n);o.push(...i)}return o}function y(r){let o=[];if(r&&typeof r=="object"){let n=new Set(Object.keys({...r.dependencies,...r.devDependencies}));for(let i of h)n.has(i)&&(o.some(f=>f.name===i)||o.push({name:i}))}return o}var h=["@shopify/remix-oxygen","@shopify/hydrogen","@builder.io/qwik-city","@remix-run/react","@sveltejs/kit","astro","gatsby","next","nuxt","@builder.io/qwik","@angular/core","react","solid-js","svelte","vue"];async function P(r){let o=new Set,n=(...e)=>{if(process.env.DEBUG){let t=new Date,a=`${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}.${String(t.getMilliseconds()).padStart(3,"0")}`;console.debug(a,"[builder-dev-tools]",...e)}},i=async e=>{let t=F("md5");return t.update(e),t.digest("hex")},f={...s,getRootDir:()=>s.normalize(r.getRootDir()),cwd:()=>process.cwd(),exists:async e=>{c(r,e);try{return await p(e),!0}catch{return!1}},existsSync:e=>(c(r,e),O(e)),readdir:async(e,t)=>{c(r,e);let a=await w(e);return t?a.map(l=>s.join(e,l)):a},readdirSync:e=>(c(r,e),b(e)),readFile:async e=>{c(r,e);try{return await k(e,"utf-8")}catch(t){if(t.code==="ENOENT")return null;throw n(t,e),t}},readFileSync(e){c(r,e);try{return x(e,"utf-8")}catch(t){if(t.code==="ENOENT")return null;throw n(t,e),t}},stat:async e=>(c(r,e),await v(e)),statSync:e=>(c(r,e),C(e)),writeFile:async(e,t)=>{c(r,e),e=s.normalize(e);let a={path:e,basename:s.basename(e),dirname:s.dirname(e),extname:s.extname(e)};await S(s.dirname(e),{recursive:!0}),await D(e,t);for(let l of o)await l(a)},hash:i,getDeviceId:()=>i(`${T()}:${N()}`),formatCode:async(e,t)=>{let a=null;try{a=await g.resolveConfig(e)}catch{}try{return g.format(t,{...a,filepath:e})}catch{}return t},on:(e,t)=>{e==="change"&&o.add(t)},off:(e,t)=>{e==="change"&&o.delete(t)},debug:n,launchEditor:async e=>{try{let t=e.filePath;typeof e.line=="number"&&(t+=`:${e.line}`,typeof e.column=="number"&&(t+=`:${e.column}`)),j(t,"code",(a,l)=>{console.error(`Failed to launch editor for ${a}`),l&&console.error(l)})}catch(t){console.error(`Failed to launch editor for ${String(t.message||t)}`)}},platform:()=>({runtime:"node",os:process.platform}),getFrameworks:()=>[],ts:E,version:"1.1.10",sdkVersion:null,ignoreMissingConfig:r.ignoreMissingConfig},d=await m(f);return f.getFrameworks=()=>d,f}function c(r,o){if(r.skipValidate)return;if(!o)throw new Error(`Invalid path: ${o} (7340)`);o=s.normalize(s.resolve(o));let n=r.getRootDir();if(!o.startsWith(n)&&!o.includes("node_modules"))throw new Error(`Invalid path: ${o} (7341)`)}export{P as createDevToolsNodeSys};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/dev-tools",
3
- "version": "1.1.8",
3
+ "version": "1.1.10",
4
4
  "description": "Builder.io Visual CMS Devtools",
5
5
  "type": "module",
6
6
  "main": "./core/index.cjs",