@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/cli/index.cjs +221 -207
- package/core/index.cjs +2 -2
- package/core/index.mjs +2 -2
- package/figma/jsx-runtime/prop-types.d.ts +125 -0
- package/figma/jsx-runtime/react.d.ts +50 -49
- package/node/index.cjs +1 -1
- package/node/index.mjs +1 -1
- package/package.json +1 -1
- package/server/index.cjs +3 -3
- package/server/index.mjs +3 -3
- package/types/cli/builder-add/interface.d.ts +2 -0
- package/types/cli/builder-add/options.d.ts +7 -0
- package/types/cli/figma-publish.d.ts +0 -20
- package/types/cli/{add.d.ts → generate.d.ts} +2 -2
- package/types/cli/kv.d.ts +20 -0
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.
|
|
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.
|
|
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
|
|
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<
|
|
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<
|
|
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<
|
|
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
|
-
|
|
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
|
|
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 =
|
|
5204
|
-
interface GlobalJSXElement extends
|
|
5205
|
-
interface GlobalJSXElementClass extends
|
|
5208
|
+
type GlobalJSXElementType = ElementType;
|
|
5209
|
+
interface GlobalJSXElement extends Element {}
|
|
5210
|
+
interface GlobalJSXElementClass extends ElementClass {}
|
|
5206
5211
|
interface GlobalJSXElementAttributesProperty
|
|
5207
|
-
extends
|
|
5208
|
-
interface GlobalJSXElementChildrenAttribute
|
|
5209
|
-
extends JSX.ElementChildrenAttribute {}
|
|
5212
|
+
extends ElementAttributesProperty {}
|
|
5213
|
+
interface GlobalJSXElementChildrenAttribute extends ElementChildrenAttribute {}
|
|
5210
5214
|
|
|
5211
|
-
type GlobalJSXLibraryManagedAttributes<C, P> =
|
|
5212
|
-
C,
|
|
5213
|
-
P
|
|
5214
|
-
>;
|
|
5215
|
+
type GlobalJSXLibraryManagedAttributes<C, P> = LibraryManagedAttributes<C, P>;
|
|
5215
5216
|
|
|
5216
|
-
interface GlobalJSXIntrinsicAttributes extends
|
|
5217
|
+
interface GlobalJSXIntrinsicAttributes extends IntrinsicAttributes {}
|
|
5217
5218
|
interface GlobalJSXIntrinsicClassAttributes<T>
|
|
5218
|
-
extends
|
|
5219
|
+
extends IntrinsicClassAttributes<T> {}
|
|
5219
5220
|
|
|
5220
|
-
interface GlobalJSXIntrinsicElements extends
|
|
5221
|
+
interface GlobalJSXIntrinsicElements extends IntrinsicElements {}
|
package/node/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var b=Object.create;var
|
|
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
|
|
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};
|