extension-create 2.0.0-alpha.4 → 2.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.js +11 -11
- package/package.json +2 -2
package/dist/module.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var Oe=Object.create;var k=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var Ge=Object.getPrototypeOf,Ve=Object.prototype.hasOwnProperty;var Xe=(e,t)=>{for(var s in t)k(e,s,{get:t[s],enumerable:!0})},j=(e,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ze(t))!Ve.call(e,n)&&n!==s&&k(e,n,{get:()=>t[n],enumerable:!(i=Ae(t,n))||i.enumerable});return e};var c=(e,t,s)=>(s=e!=null?Oe(Ge(e)):{},j(t||!e||!e.__esModule?k(s,"default",{value:e,enumerable:!0}):s,e)),Ue=e=>j(k({},"__esModule",{value:!0}),e);var Be={};Xe(Be,{extensionCreate:()=>He});module.exports=Ue(Be);var C=c(require("path"));var x=c(require("path")),r=require("@colors/colors/safe"),O=c(require("fs/promises")),A=require("detect-package-manager");function z(e){let t=x.default.basename(e);return`Failed to write in the destination directory. Path for \`${t}\` is not writable.
|
|
2
2
|
Ensure you have write permissions for this folder.
|
|
3
|
-
Path: ${t}`}async function G(e,t){let
|
|
4
|
-
Conflict! Path to ${(0,r.cyan)(
|
|
3
|
+
Path: ${t}`}async function G(e,t){let s=x.default.basename(e),i=`
|
|
4
|
+
Conflict! Path to ${(0,r.cyan)(s)} includes conflicting files:
|
|
5
5
|
|
|
6
|
-
`;for(let n of t){let o=await O.default.lstat(
|
|
6
|
+
`;for(let n of t){let o=await O.default.lstat(x.default.join(e,n));i+=o.isDirectory()?`${(0,r.gray)("-")} ${(0,r.brightYellow)(n)}
|
|
7
7
|
`:`${(0,r.gray)("-")} ${(0,r.brightYellow)(n)}
|
|
8
|
-
`}return
|
|
8
|
+
`}return i+=`
|
|
9
9
|
You need to either rename/remove the files listed above, or choose a new directory name for your extension.
|
|
10
10
|
|
|
11
|
-
Path to conflicting directory: ${(0,r.underline)(e)}`,
|
|
11
|
+
Path to conflicting directory: ${(0,r.underline)(e)}`,i}function V(){return"You need to provide an extension name to create one. \nSee `--help` for command info."}function X(){return"URLs are not allowed as a project path. Either write a name or a path to a local folder."}async function U(e,t){let s=x.default.relative(process.cwd(),e),i=await(0,A.detect)(),n="npm run";switch(i){case"yarn":n="yarn dev";break;case"pnpm":n="pnpm run dev";break;default:n="npm run dev"}return`\u{1F9E9} - ${(0,r.brightGreen)("Success!")} Extension ${(0,r.cyan)(t)} created.
|
|
12
12
|
|
|
13
|
-
Now ${(0,r.brightBlue)(`cd ${(0,r.underline)(
|
|
13
|
+
Now ${(0,r.brightBlue)(`cd ${(0,r.underline)(s)}`)} and ${(0,r.brightBlue)(`${n}`)} to open a new browser instance
|
|
14
14
|
with your extension installed, loaded, and enabled for development.
|
|
15
15
|
|
|
16
|
-
${(0,r.brightGreen)("You are ready")}. Time to hack on your extension!`}function
|
|
16
|
+
${(0,r.brightGreen)("You are ready")}. Time to hack on your extension!`}function Y(e){return`\u{1F423} - Starting a new browser extension named ${(0,r.cyan)(e)}...`}function L(){return"\u{1F91E} - Checking if destination path is writeable..."}function q(){return"\u{1F50E} - Scanning for potential conflicting files..."}function H(e,t){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Can't create directory ${(0,r.cyan)(e)}. ${t}`}function B(e){return`\u{1F537} - Writing ${(0,r.cyan)(e)} type definitions...`}function K(e){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Failed to write the extension type definition. ${e}`}function h(e,t){return t==="init"?`\u{1F9F0} - Installing ${(0,r.cyan)(e)}...`:`\u{1F9F0} - Installing ${(0,r.cyan)(e)} from template ${(0,r.brightBlue)(t)}...`}function D(e,t,s){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Can't find template ${(0,r.brightBlue)(t)} for ${(0,r.cyan)(e)}. ${s}`}function Q(e){return`\u{1F332} - Initializing git repository for ${(0,r.cyan)(e)}...`}function Z(e,t,s){return`Command ${e} ${t.join(" ")} failed with exit code ${s}`}function ee(e,t){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Child process error: Can't initialize ${(0,r.brightYellow)("git")} for ${(0,r.cyan)(e)}. ${t.message}`}function te(e,t){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Can't initialize ${(0,r.brightYellow)("git")} for ${(0,r.cyan)(e)}. ${t.message||t.toString()}`}function ne(){return"\u{1F6E0} - Installing dependencies... (takes a moment)"}function re(e,t,s){return`Command ${e} ${t.join(" ")} failed with exit code ${s}`}function ie(e,t){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Child process error: Can't install dependencies for ${(0,r.cyan)(e)}. ${t}`}function se(e,t){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Can't install dependencies for ${(0,r.cyan)(e)}. ${t.message||t.toString()}`}function oe(){return"Symlink created successfully."}function ae(e,t){return`Failed to create symlink: ${e} ${t.join(" ")}`}function ce(){return`\u{1F4DD} - Writing ${(0,r.brightYellow)("package.json")} metadata...`}function le(e,t){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Can't write ${(0,r.brightYellow)("package.json")} for ${(0,r.cyan)(e)}. ${t}`}function me(){return`\u{1F4DC} - Writing ${(0,r.brightYellow)("manifest.json")} metadata...`}function pe(e,t){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Can't write ${(0,r.brightYellow)("manifest.json")} for ${(0,r.cyan)(e)}. ${t}`}function ge(){return`\u{1F4C4} - Writing ${(0,r.brightYellow)("README.md")} metadata...`}function de(e,t){return`${(0,r.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")} Can't write the ${(0,r.brightYellow)("README.md")} file for ${(0,r.cyan)(e)}. ${t}`}function fe(e){return`\u{1F91D} - Ensuring ${(0,r.cyan)(e)} folder exists...`}function ue(e){return"Error while checking directory writability: "+e}var E=c(require("fs/promises")),$=c(require("path")),we=require("detect-package-manager");async function P(e,t){let s=await E.default.readdir(e,{withFileTypes:!0});return await E.default.mkdir(t,{recursive:!0}),await Promise.all(s.map(async i=>{let n=$.default.join(e,i.name),o=$.default.join(t,i.name);i.isDirectory()?await P(n,o):await E.default.copyFile(n,o)}))}async function y(){let e=await(0,we.detect)(),t="npm run";switch(e){case"yarn":t="yarn";break;case"pnpm":t="pnpm run";break;default:t="npm run"}return t}function ye(e){let t=$.default.resolve(__dirname,"template");return $.default.resolve(e,t)}async function xe(e,t){try{return console.log(fe(t)),await E.default.mkdir(e,{recursive:!0}),!0}catch(s){return console.log(ue(s)),!1}}function S(e){return e!=="init"}function he(e){return S(e)?!1:e==="typescript"||e.startsWith("typescript-")||e.endsWith("-typescript")}var Ee=c(require("path")),J=c(require("fs/promises"));var Ye=["LICENSE","node_modules"];async function $e(e,t){console.log(Y(t));try{let s=await xe(e,t);console.log(L()),s||(console.error(z(e)),process.exit(1));let i=await J.default.readdir(e);console.log(q());let n=await Promise.all(i.filter(o=>!o.startsWith(".")).filter(o=>!o.endsWith(".log")).filter(o=>!Ye.includes(o)).map(async o=>(await J.default.lstat(Ee.default.join(e,o))).isDirectory()?`${o}/`:`${o}`));if(n.length>0){let o=await G(e,n);throw new Error(o)}}catch(s){console.error(H(t,s)),process.exit(1)}}var ve=c(require("path"));async function ke(e,t,s){let i=ve.default.resolve(__dirname,"template");try{console.log(h(t,s)),await P(i,e)}catch(n){console.error(D(t,s,n)),process.exit(1)}}var p=c(require("path")),f=c(require("fs/promises")),De=c(require("go-git-it"));async function be(e,t,s){let i=p.default.dirname(e),n=p.default.basename(s),a=`https://github.com/extension-js/extension.js/tree/main/examples/${s}`;try{await f.default.mkdir(e,{recursive:!0});let l="";if(process.env.EXTENSION_ENV==="development"?(console.log(h(t,s)),l=p.default.join(e,n),await f.default.cp(p.default.join(__dirname,"..","..","..","examples",n),l,{recursive:!0})):(await(0,De.default)(a,i,h(t,n)),l=p.default.join(i,n)),t!==n){let m=p.default.join(i,t);await f.default.mkdir(m,{recursive:!0});let g=await f.default.readdir(l);for(let u of g)await f.default.rename(p.default.join(l,u),p.default.join(m,u));await f.default.rm(l,{recursive:!0,force:!0})}else{let m=p.default.join(i,t+"-temp");await f.default.rename(l,m);let g=p.default.join(m,n),u=p.default.join(i,t);await f.default.mkdir(u,{recursive:!0});let je=await f.default.readdir(g);for(let W of je)await f.default.rename(p.default.join(g,W),p.default.join(u,W));await f.default.rm(m,{recursive:!0,force:!0})}}catch(l){console.error(D(t,n,l)),process.exit(1)}}var v=c(require("path")),I=c(require("fs/promises"));var Le={dev:process.env.EXTENSION_ENV==="development"?"node node_modules/extension dev":"extension dev",start:process.env.EXTENSION_ENV==="development"?"node node_modules/extension start":"extension start",build:process.env.EXTENSION_ENV==="development"?"node node_modules/extension build":"extension build"};async function Te(e,t,s){let i=ye(process.cwd()),n=S(s)?v.default.join(e,"package.json"):v.default.join(i,"package.json"),o=await I.default.readFile(n),a=JSON.parse(o.toString());a.scripts=a.scripts||{},a.dependencies=a.dependencies||{},a.devDependencies={...a.devDependencies||{},extension:process.env.EXTENSION_ENV==="development"?"*":"latest"};let l={...a,name:v.default.basename(e),private:!0,scripts:{...a.scripts,...Le},dependencies:a.dependencies,devDependencies:a.devDependencies,author:{name:"Your Name",email:"your@email.com",url:"https://yourwebsite.com"}};try{console.log(ce()),await I.default.writeFile(v.default.join(e,"package.json"),JSON.stringify(l,null,2))}catch(m){console.error(le(t,m)),process.exit(1)}}var Pe=c(require("path")),Se=require("cross-spawn"),Je=c(require("fs"));var Fe=c(require("path")),M=require("cross-spawn");async function Ce(e){let t=Fe.default.join(__dirname,"../../cli"),s=await y(),i=["link"];await new Promise((n,o)=>{(0,M.spawn)(s,i,{cwd:t}).on("close",()=>{(0,M.spawn)(s,[...i,"extension"],{stdio:"inherit",cwd:e}).on("close",m=>{m===0?(console.log(oe()),n()):o(new Error(ae(s,i)))})})}),console.log("Symlink creation completed.")}function qe(){return["install","--silent"]}async function Ie(e,t){let s=Pe.default.join(e,"node_modules"),i=await y(),n=qe();console.log(ne()),process.env.EXTENSION_ENV==="development"&&await Ce(e);try{let o=process.cwd();process.chdir(e),await Je.default.promises.mkdir(s,{recursive:!0});let a=process.env.EXTENSION_ENV==="development"?"inherit":"ignore",l=(0,Se.spawn)(i,n,{stdio:a});await new Promise((m,g)=>{l.on("close",u=>{process.chdir(o),u!==0?g(new Error(re(i,n,u))):m()}),l.on("error",u=>{process.chdir(o),console.error(ie(t,u)),g(u)})})}catch(o){console.error(se(t,o)),process.exit(1)}}var b=c(require("path")),T=c(require("fs/promises"));async function Me(e,t){let s=await T.default.readFile(b.default.join(__dirname,"template","README.md"),"utf-8"),i=await y(),n=require(b.default.join(e,"manifest.json")),o=s.replaceAll("[projectName]",t).replaceAll("[templateDescription]",n.description).replaceAll("[runCommand]",i);try{console.log(ge()),await T.default.mkdir(e,{recursive:!0}),await T.default.writeFile(b.default.join(e,"README.md"),o)}catch(a){console.error(de(t,a)),process.exit(1)}}var F=c(require("path")),_=c(require("fs/promises"));async function _e(e,t){let s=F.default.join(e,"manifest.json"),i=await _.default.readFile(s),o={...JSON.parse(i.toString()),name:F.default.basename(e),author:"Your Name"};try{console.log(me()),await _.default.writeFile(F.default.join(e,"manifest.json"),JSON.stringify(o,null,2))}catch(a){console.error(pe(t,a)),process.exit(1)}}var N=c(require("path")),R=c(require("fs/promises"));async function Ne(e,t){let s=N.default.join(e,"extension-env.d.ts"),i=process.env.EXTENSION_ENV==="development"?N.default.resolve(process.cwd(),"programs/develop/types"):"extension-develop/dist/types",n=`// Required Extension.js types for TypeScript projects.
|
|
17
17
|
// This file auto-generated and should not be excluded.
|
|
18
18
|
// If you need extra types, consider creating a new *.d.ts and
|
|
19
19
|
// referencing it in the "include" array in your tsconfig.json file.
|
|
20
20
|
// See https://www.typescriptlang.org/tsconfig#include for info.
|
|
21
|
-
/// <reference types="${
|
|
21
|
+
/// <reference types="${i}/index.d.ts" />
|
|
22
22
|
|
|
23
23
|
// Polyfill types for browser.* APIs.
|
|
24
|
-
/// <reference types="${
|
|
25
|
-
`;try{await R.default.mkdir(e,{recursive:!0}),console.log(
|
|
24
|
+
/// <reference types="${i}/polyfill.d.ts" />
|
|
25
|
+
`;try{await R.default.mkdir(e,{recursive:!0}),console.log(B(t)),await R.default.writeFile(s,n)}catch(o){console.error(K(o)),process.exit(1)}}var Re=require("cross-spawn");async function We(e,t){let s="git",i=["init","--quiet"];console.log(Q(t));try{let n=process.cwd();process.chdir(e);let o=process.env.EXTENSION_ENV==="development"?"inherit":"ignore",a=(0,Re.spawn)(s,i,{stdio:o});await new Promise((l,m)=>{a.on("close",g=>{process.chdir(n),g!==0?m(new Error(Z(s,i,g))):l()}),a.on("error",g=>{process.chdir(n),console.error(ee(t,g)),m(g)})})}catch(n){console.error(te(t,n)),process.exit(1)}}async function He(e,{template:t="init",noInstall:s=!1}){if(!e)throw new Error(V());if(e.startsWith("http"))throw new Error(X());let i=C.default.isAbsolute(e)?e:C.default.join(process.cwd(),e),n=C.default.basename(i);try{await $e(i,n),t==="init"?await ke(i,n,t):await be(i,n,t),await Te(i,n,t),s||await Ie(i,n),await Me(i,n),await _e(i,n),await We(i,n),he(t)&&await Ne(i,n);let o=await U(i,n);console.log(o)}catch(o){throw console.error(o),o}}0&&(module.exports={extensionCreate});
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"node": ">=18"
|
|
10
10
|
},
|
|
11
11
|
"name": "extension-create",
|
|
12
|
-
"version": "2.0.0-alpha.
|
|
12
|
+
"version": "2.0.0-alpha.6",
|
|
13
13
|
"description": "The Extension.js create step",
|
|
14
14
|
"main": "./dist/module.js",
|
|
15
15
|
"types": "./dist/module.d.ts",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@colors/colors": "^1.6.0",
|
|
33
33
|
"cross-spawn": "^7.0.3",
|
|
34
34
|
"detect-package-manager": "^3.0.2",
|
|
35
|
-
"go-git-it": "^2.0.
|
|
35
|
+
"go-git-it": "^2.0.3"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/cross-spawn": "^6.0.6",
|