@bradhezh/create-prj 1.0.6 → 1.0.7
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/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/101-rspack.js +1 -1
- package/dist/plugins/101-rspack.js.map +1 -1
- package/dist/registry.js +2 -1
- package/dist/registry.js.map +1 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";var e,n={};let r=require("node:fs/promises"),t=require("node:path"),o=require("node:url"),a=require("@clack/prompts"),u=require("axios"),l=require("node:util"),i=require("./registry.js"),c=require("node:child_process");require("node:os"),require("open"),require("comment-json"),require("yaml"),require("node:readline/promises");var s="Option required.",p="Project type",f={label:"Monorepo name"},m={label:"Types in monorepo"},b="Optional options: %s",y={label:"Configure them one by one, or choose none of them (except required ones)?"},d={label:"Accept defaults, or configure them one by one, or choose none of them (except required ones)?"};(0,l.promisify)(c.exec);var v=function(){(0,a.cancel)("Operation cancelled."),process.exit(0)};function h(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=Array(n);r<n;r++)t[r]=e[r];return t}function g(e,n,r,t,o,a,u){try{var l=e[a](u),i=l.value}catch(e){r(e);return}l.done?n(i):Promise.resolve(i).then(t,o)}function w(e){return function(){var n=this,r=arguments;return new Promise(function(t,o){var a=e.apply(n,r);function u(e){g(a,t,o,u,l,"next",e)}function l(e){g(a,t,o,u,l,"throw",e)}u(void 0)})}}function x(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return h(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return h(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,n){var r,t,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(a=0)),a;)try{if(r=1,t&&(o=2&c[0]?t.return:c[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,c[1])).done)return o;switch(t=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,t=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],t=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var O=[],S=function(){var e,n,r;if(null==(e=process.env.npm_config_user_agent)?void 0:e.includes(i.NPM.pnpm))r=i.NPM.pnpm;else if(null==(n=process.env.npm_config_user_agent)?void 0:n.includes(i.NPM.npm))r=i.NPM.npm;else throw Error("Only npm or pnpm supported for now.");return{npm:r,type:""}},q=function(e,n,r,t){return w(function(){var o,a,u,l,i,c,s,p,f;return j(this,function(m){switch(m.label){case 0:o=r?e[r]:e,a=!0,u=!1,l=void 0,m.label=1;case 1:m.trys.push([1,6,7,8]),i=n[Symbol.iterator](),m.label=2;case 2:if(a=(c=i.next()).done)return[3,5];if((s=c.value).disabled)return[3,4];return[4,N(e,s,r,t)];case 3:p=m.sent(),I(e,o,s,p),m.label=4;case 4:return a=!0,[3,2];case 5:return[3,8];case 6:return f=m.sent(),u=!0,l=f,[3,8];case 7:try{a||null==i.return||i.return()}finally{if(u)throw l}return[7];case 8:return[2]}})})()},I=function(e,n,r,t){if(r.plugin&&(0,i.addInQueue)(O,r.plugin),!r.values.length){n[r.name]=t[r.name];return}if(!r.multiple){var o=t[r.name];n[r.name]=o.name,(0,i.adjustOptions)(e,o),o.plugin&&(0,i.addInQueue)(O,o.plugin);return}var a=t[r.name];n[r.name]=a.map(function(e){return e.name});var u=!0,l=!1,c=void 0;try{for(var s,p=a[Symbol.iterator]();!(u=(s=p.next()).done);u=!0){var f=s.value;(0,i.adjustOptions)(e,f),f.plugin&&(0,i.addInQueue)(O,f.plugin)}}catch(e){l=!0,c=e}finally{try{u||null==p.return||p.return()}finally{if(l)throw c}}},P="default",k="Accept defaults",_="manual",A="Configure manually",M=void 0,C="None",E=function(){return(0,a.group)({type:function(){return(0,a.select)({message:p,options:i.options.type.filter(function(e){return!e.disabled}).map(function(e){return{value:e,label:e.label}})})}},{onCancel:v})},Q=function(){return(0,a.group)({name:function(){return(0,a.text)({message:f.label,initialValue:(0,t.basename)(process.cwd()),validate:function(e){return e?void 0:s}})},types:function(){return(0,a.multiselect)({message:m.label,options:i.options.type.filter(function(e){return!e.disabled&&e.name!==i.meta.plugin.type.monorepo}).map(function(e){return{value:e,label:e.label}})})}},{onCancel:v})},N=function(e,n,r,o){var u,l,c,p=o?"".concat(o," | "):"";return(0,a.group)((u={},l=n.name,c=function(){var o;return n.values.length?n.multiple?(0,a.multiselect)({message:"".concat(p).concat(n.label),options:n.values.filter(function(e){return!e.disabled}).map(function(e){return{value:e,label:e.label}})}):(0,a.select)({message:"".concat(p).concat(n.label),options:n.values.filter(function(e){return!e.disabled}).map(function(e){return{value:e,label:e.label}})}):(0,a.text)({message:"".concat(p).concat(n.label),initialValue:null!=(o=n.initial)?o:r&&n.name===i.meta.plugin.option.type.name?e.type===i.meta.plugin.type.monorepo?r:(0,t.basename)(process.cwd()):"",validate:n.optional?void 0:function(e){return e?void 0:s}})},l in u?Object.defineProperty(u,l,{value:c,enumerable:!0,configurable:!0,writable:!0}):u[l]=c,u),{onCancel:v})},T=function(e){return(0,a.group)({optional:function(){return(0,a.select)({message:e.length?d.label:y.label,options:x(!e.length?[]:[{value:P,label:k}]).concat([{value:_,label:A},{value:M,label:C}])})}},{onCancel:v})},G=function(e){a.log.info((0,l.format)(b,e.map(function(e){var n=e.values.length&&e.values[0].name!==i.meta.plugin.value.none&&e.values[0].label,r=e.required?n?"(".concat(n,", Required)"):"(Required)":n?"(".concat(n,")"):"";return"".concat(e.label).concat(r)}).join(", ")))};function R(e,n,r,t,o,a,u){try{var l=e[a](u),i=l.value}catch(e){r(e);return}l.done?n(i):Promise.resolve(i).then(t,o)}var F=function(){var e;return(e=function(){var e,n,t,o,l,c,s,p,f,m;return function(e,n){var r,t,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(a=0)),a;)try{if(r=1,t&&(o=2&c[0]?t.return:c[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,c[1])).done)return o;switch(t=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,t=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],t=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(b){switch(b.label){case 0:return b.trys.push([0,11,,12]),[4,(0,r.readdir)(process.cwd())];case 1:if(b.sent().length)return a.log.error("Current work directory must be empty."),[2];return[4,w(function(){var e;return j(this,function(n){var r,t;switch(n.label){case 0:return[4,(r=e=S(),w(function(){var e,n,t,o,a,u,l,c,s,p,f,m,b,y,d,v,h,g,w;return j(this,function(j){switch(j.label){case 0:return[4,E()];case 1:if((e=j.sent().type).name===i.meta.plugin.type.monorepo&&r.npm!==i.NPM.pnpm)throw Error("Only pnpm supported for monorepo for now.");if(r.type=e.name,(0,i.adjustOptions)(r,e),e.plugin&&(0,i.addInQueue)(O,e.plugin),n=[e],r.type!==i.meta.plugin.type.monorepo)return[3,3];return[4,Q()];case 2:r.monorepo={name:(a=j.sent()).name,types:(u=a.types).map(function(e){return e.name})},l=!0,c=!1,s=void 0;try{for(p=u[Symbol.iterator]();!(l=(f=p.next()).done);l=!0)m=f.value,(0,i.adjustOptions)(r,m),m.plugin&&(0,i.addInQueue)(O,m.plugin)}catch(e){c=!0,s=e}finally{try{l||null==p.return||p.return()}finally{if(c)throw s}}(o=n).push.apply(o,x(u)),t=e.label,j.label=3;case 3:b=!0,y=!1,d=void 0,j.label=4;case 4:j.trys.push([4,9,10,11]),v=n[Symbol.iterator](),j.label=5;case 5:if(b=(h=v.next()).done)return[3,8];return r[(g=h.value).name]||(r[g.name]={}),[4,q(r,g.options,g.name,null!=t?t:g.label)];case 6:j.sent(),j.label=7;case 7:return b=!0,[3,5];case 8:return[3,11];case 9:return w=j.sent(),y=!0,d=w,[3,11];case 10:try{b||null==v.return||v.return()}finally{if(y)throw d}return[7];case 11:return[2]}})})())];case 1:return n.sent(),[4,q(e,i.options.compulsory)];case 2:return n.sent(),[4,(t=e,w(function(){var e,n,r,o,a,u,l,c,s,p;return j(this,function(f){switch(f.label){case 0:if(!(e=i.options.optional.filter(function(e){return!e.disabled})).length)return[2];return G(e),[4,T(n=e.filter(function(e){return e.values.length&&e.values[0].name!==i.meta.plugin.value.none}))];case 1:if((r=f.sent().optional)!==_)return[3,3];return[4,q(t,e)];case 2:case 4:return f.sent(),[2];case 3:if(r===P){o=!0,a=!1,u=void 0;try{for(l=n[Symbol.iterator]();!(o=(c=l.next()).done);o=!0)(s=c.value).plugin&&(0,i.addInQueue)(O,s.plugin),p=s.values[0],t[s.name]=s.multiple?[p.name]:p.name,p.plugin&&(0,i.addInQueue)(O,p.plugin)}catch(e){a=!0,u=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw u}}}return[4,q(t,(r!==P?e:e.filter(function(e){return!n.find(function(n){return n.name===e.name})})).filter(function(e){return e.required}))]}})})())];case 3:return n.sent(),[2,e]}})})()];case 2:e=b.sent(),n=!0,t=!1,o=void 0,b.label=3;case 3:b.trys.push([3,8,9,10]),l=O[Symbol.iterator](),b.label=4;case 4:if(n=(c=l.next()).done)return[3,7];return[4,c.value.run(e)];case 5:b.sent(),b.label=6;case 6:return n=!0,[3,4];case 7:return[3,10];case 8:return s=b.sent(),t=!0,o=s,[3,10];case 9:try{n||null==l.return||l.return()}finally{if(t)throw o}return[7];case 10:return[3,12];case 11:var y,d;return y=p=b.sent(),(null!=(d=Error)&&"u">typeof Symbol&&d[Symbol.hasInstance]?d[Symbol.hasInstance](y):y instanceof d)||(console.log(p),process.exit(1)),(0,u.isAxiosError)(p)?console.log((null==(m=null==(f=p.response)?void 0:f.data)?void 0:m.message)||p.message):console.log(p.message),console.log(p.stack),process.exit(1),[3,12];case 12:return[2]}})},function(){var n=this,r=arguments;return new Promise(function(t,o){var a=e.apply(n,r);function u(e){R(a,t,o,u,l,"next",e)}function l(e){R(a,t,o,u,l,"throw",e)}u(void 0)})})()};function U(e,n,r,t,o,a,u){try{var l=e[a](u),i=l.value}catch(e){r(e);return}l.done?n(i):Promise.resolve(i).then(t,o)}var V=Function("specifier","return import(specifier)");(e=function(){var e,n,a,u,l,i,c,s;return function(e,n){var r,t,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(a=0)),a;)try{if(r=1,t&&(o=2&c[0]?t.return:c[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,c[1])).done)return o;switch(t=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,t=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],t=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(p){switch(p.label){case 0:e=(0,t.join)(__dirname,"plugins"),n=!0,a=!1,u=void 0,p.label=1;case 1:return p.trys.push([1,7,8,9]),[4,(0,r.readdir)(e)];case 2:l=p.sent().filter(function(e){return e.endsWith(".js")})[Symbol.iterator](),p.label=3;case 3:if(n=(i=l.next()).done)return[3,6];return c=i.value,[4,V((0,o.pathToFileURL)((0,t.join)(e,c)).href)];case 4:p.sent(),p.label=5;case 5:return n=!0,[3,3];case 6:return[3,9];case 7:return s=p.sent(),a=!0,u=s,[3,9];case 8:try{n||null==l.return||l.return()}finally{if(a)throw u}return[7];case 9:return[4,F()];case 10:return p.sent(),[2]}})},function(){var n=this,r=arguments;return new Promise(function(t,o){var a=e.apply(n,r);function u(e){U(a,t,o,u,l,"next",e)}function l(e){U(a,t,o,u,l,"throw",e)}u(void 0)})})();var L=exports;for(var W in n)L[W]=n[W];n.__esModule&&Object.defineProperty(L,"__esModule",{value:!0})})();
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
(()=>{"use strict";var e,n={};require("source-map-support/register");let r=require("node:fs/promises"),t=require("node:path"),o=require("node:url"),a=require("@clack/prompts"),u=require("axios"),l=require("node:util"),i=require("./registry.js"),c=require("node:child_process");require("node:os"),require("open"),require("comment-json"),require("yaml"),require("node:readline/promises");var s="Option required.",p="Project type",f={label:"Monorepo name"},m={label:"Types in monorepo"},b="Optional options: %s",y={label:"Configure them one by one, or choose none of them (except required ones)?"},d={label:"Accept defaults, or configure them one by one, or choose none of them (except required ones)?"};(0,l.promisify)(c.exec);var v=function(){(0,a.cancel)("Operation cancelled."),process.exit(0)};function h(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=Array(n);r<n;r++)t[r]=e[r];return t}function g(e,n,r,t,o,a,u){try{var l=e[a](u),i=l.value}catch(e){r(e);return}l.done?n(i):Promise.resolve(i).then(t,o)}function w(e){return function(){var n=this,r=arguments;return new Promise(function(t,o){var a=e.apply(n,r);function u(e){g(a,t,o,u,l,"next",e)}function l(e){g(a,t,o,u,l,"throw",e)}u(void 0)})}}function x(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return h(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return h(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,n){var r,t,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(a=0)),a;)try{if(r=1,t&&(o=2&c[0]?t.return:c[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,c[1])).done)return o;switch(t=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,t=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],t=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var O=[],q=function(){var e,n,r;if(null==(e=process.env.npm_config_user_agent)?void 0:e.includes(i.NPM.pnpm))r=i.NPM.pnpm;else if(null==(n=process.env.npm_config_user_agent)?void 0:n.includes(i.NPM.npm))r=i.NPM.npm;else throw Error("Only npm or pnpm supported for now.");return{npm:r,type:""}},S=function(e,n,r,t){return w(function(){var o,a,u,l,i,c,s,p,f;return j(this,function(m){switch(m.label){case 0:o=r?e[r]:e,a=!0,u=!1,l=void 0,m.label=1;case 1:m.trys.push([1,6,7,8]),i=n[Symbol.iterator](),m.label=2;case 2:if(a=(c=i.next()).done)return[3,5];if((s=c.value).disabled)return[3,4];return[4,N(e,s,r,t)];case 3:p=m.sent(),I(e,o,s,p),m.label=4;case 4:return a=!0,[3,2];case 5:return[3,8];case 6:return f=m.sent(),u=!0,l=f,[3,8];case 7:try{a||null==i.return||i.return()}finally{if(u)throw l}return[7];case 8:return[2]}})})()},I=function(e,n,r,t){if(r.plugin&&(0,i.addInQueue)(O,r.plugin),!r.values.length){n[r.name]=t[r.name];return}if(!r.multiple){var o=t[r.name];n[r.name]=o.name,(0,i.adjustOptions)(e,o),o.plugin&&(0,i.addInQueue)(O,o.plugin);return}var a=t[r.name];n[r.name]=a.map(function(e){return e.name});var u=!0,l=!1,c=void 0;try{for(var s,p=a[Symbol.iterator]();!(u=(s=p.next()).done);u=!0){var f=s.value;(0,i.adjustOptions)(e,f),f.plugin&&(0,i.addInQueue)(O,f.plugin)}}catch(e){l=!0,c=e}finally{try{u||null==p.return||p.return()}finally{if(l)throw c}}},P="default",k="Accept defaults",_="manual",A="Configure manually",M=void 0,C="None",E=function(){return(0,a.group)({type:function(){return(0,a.select)({message:p,options:i.options.type.filter(function(e){return!e.disabled}).map(function(e){return{value:e,label:e.label}})})}},{onCancel:v})},Q=function(){return(0,a.group)({name:function(){return(0,a.text)({message:f.label,initialValue:(0,t.basename)(process.cwd()),validate:function(e){return e?void 0:s}})},types:function(){return(0,a.multiselect)({message:m.label,options:i.options.type.filter(function(e){return!e.disabled&&e.name!==i.meta.plugin.type.monorepo}).map(function(e){return{value:e,label:e.label}})})}},{onCancel:v})},N=function(e,n,r,o){var u,l,c,p=o?"".concat(o," | "):"";return(0,a.group)((u={},l=n.name,c=function(){var o;return n.values.length?n.multiple?(0,a.multiselect)({message:"".concat(p).concat(n.label),options:n.values.filter(function(e){return!e.disabled}).map(function(e){return{value:e,label:e.label}})}):(0,a.select)({message:"".concat(p).concat(n.label),options:n.values.filter(function(e){return!e.disabled}).map(function(e){return{value:e,label:e.label}})}):(0,a.text)({message:"".concat(p).concat(n.label),initialValue:null!=(o=n.initial)?o:r&&n.name===i.meta.plugin.option.type.name?e.type===i.meta.plugin.type.monorepo?r:(0,t.basename)(process.cwd()):"",validate:n.optional?void 0:function(e){return e?void 0:s}})},l in u?Object.defineProperty(u,l,{value:c,enumerable:!0,configurable:!0,writable:!0}):u[l]=c,u),{onCancel:v})},T=function(e){return(0,a.group)({optional:function(){return(0,a.select)({message:e.length?d.label:y.label,options:x(!e.length?[]:[{value:P,label:k}]).concat([{value:_,label:A},{value:M,label:C}])})}},{onCancel:v})},G=function(e){a.log.info((0,l.format)(b,e.map(function(e){var n=e.values.length&&e.values[0].name!==i.meta.plugin.value.none&&e.values[0].label,r=e.required?n?"(".concat(n,", Required)"):"(Required)":n?"(".concat(n,")"):"";return"".concat(e.label).concat(r)}).join(", ")))};function R(e,n,r,t,o,a,u){try{var l=e[a](u),i=l.value}catch(e){r(e);return}l.done?n(i):Promise.resolve(i).then(t,o)}var F=function(){var e;return(e=function(){var e,n,t,o,l,c,s,p,f,m;return function(e,n){var r,t,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(a=0)),a;)try{if(r=1,t&&(o=2&c[0]?t.return:c[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,c[1])).done)return o;switch(t=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,t=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],t=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(b){switch(b.label){case 0:return b.trys.push([0,11,,12]),[4,(0,r.readdir)(process.cwd())];case 1:if(b.sent().length)return a.log.error("Current work directory must be empty."),[2];return[4,w(function(){var e;return j(this,function(n){var r,t;switch(n.label){case 0:return[4,(r=e=q(),w(function(){var e,n,t,o,a,u,l,c,s,p,f,m,b,y,d,v,h,g,w;return j(this,function(j){switch(j.label){case 0:return[4,E()];case 1:if((e=j.sent().type).name===i.meta.plugin.type.monorepo&&r.npm!==i.NPM.pnpm)throw Error("Only pnpm supported for monorepo for now.");if(r.type=e.name,(0,i.adjustOptions)(r,e),e.plugin&&(0,i.addInQueue)(O,e.plugin),n=[e],r.type!==i.meta.plugin.type.monorepo)return[3,3];return[4,Q()];case 2:r.monorepo={name:(a=j.sent()).name,types:(u=a.types).map(function(e){return e.name})},l=!0,c=!1,s=void 0;try{for(p=u[Symbol.iterator]();!(l=(f=p.next()).done);l=!0)m=f.value,(0,i.adjustOptions)(r,m),m.plugin&&(0,i.addInQueue)(O,m.plugin)}catch(e){c=!0,s=e}finally{try{l||null==p.return||p.return()}finally{if(c)throw s}}(o=n).push.apply(o,x(u)),t=e.label,j.label=3;case 3:b=!0,y=!1,d=void 0,j.label=4;case 4:j.trys.push([4,9,10,11]),v=n[Symbol.iterator](),j.label=5;case 5:if(b=(h=v.next()).done)return[3,8];return r[(g=h.value).name]||(r[g.name]={}),[4,S(r,g.options,g.name,null!=t?t:g.label)];case 6:j.sent(),j.label=7;case 7:return b=!0,[3,5];case 8:return[3,11];case 9:return w=j.sent(),y=!0,d=w,[3,11];case 10:try{b||null==v.return||v.return()}finally{if(y)throw d}return[7];case 11:return[2]}})})())];case 1:return n.sent(),[4,S(e,i.options.compulsory)];case 2:return n.sent(),[4,(t=e,w(function(){var e,n,r,o,a,u,l,c,s,p;return j(this,function(f){switch(f.label){case 0:if(!(e=i.options.optional.filter(function(e){return!e.disabled})).length)return[2];return G(e),[4,T(n=e.filter(function(e){return e.values.length&&e.values[0].name!==i.meta.plugin.value.none}))];case 1:if((r=f.sent().optional)!==_)return[3,3];return[4,S(t,e)];case 2:case 4:return f.sent(),[2];case 3:if(r===P){o=!0,a=!1,u=void 0;try{for(l=n[Symbol.iterator]();!(o=(c=l.next()).done);o=!0)(s=c.value).plugin&&(0,i.addInQueue)(O,s.plugin),p=s.values[0],t[s.name]=s.multiple?[p.name]:p.name,p.plugin&&(0,i.addInQueue)(O,p.plugin)}catch(e){a=!0,u=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw u}}}return[4,S(t,(r!==P?e:e.filter(function(e){return!n.find(function(n){return n.name===e.name})})).filter(function(e){return e.required}))]}})})())];case 3:return n.sent(),[2,e]}})})()];case 2:e=b.sent(),n=!0,t=!1,o=void 0,b.label=3;case 3:b.trys.push([3,8,9,10]),l=O[Symbol.iterator](),b.label=4;case 4:if(n=(c=l.next()).done)return[3,7];return[4,c.value.run(e)];case 5:b.sent(),b.label=6;case 6:return n=!0,[3,4];case 7:return[3,10];case 8:return s=b.sent(),t=!0,o=s,[3,10];case 9:try{n||null==l.return||l.return()}finally{if(t)throw o}return[7];case 10:return[3,12];case 11:var y,d;return y=p=b.sent(),(null!=(d=Error)&&"u">typeof Symbol&&d[Symbol.hasInstance]?d[Symbol.hasInstance](y):y instanceof d)||(console.log(p),process.exit(1)),(0,u.isAxiosError)(p)?console.log((null==(m=null==(f=p.response)?void 0:f.data)?void 0:m.message)||p.message):console.log(p.message),console.log(p.stack),process.exit(1),[3,12];case 12:return[2]}})},function(){var n=this,r=arguments;return new Promise(function(t,o){var a=e.apply(n,r);function u(e){R(a,t,o,u,l,"next",e)}function l(e){R(a,t,o,u,l,"throw",e)}u(void 0)})})()};function U(e,n,r,t,o,a,u){try{var l=e[a](u),i=l.value}catch(e){r(e);return}l.done?n(i):Promise.resolve(i).then(t,o)}var V=Function("specifier","return import(specifier)");(e=function(){var e,n,a,u,l,i,c,s;return function(e,n){var r,t,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(a=0)),a;)try{if(r=1,t&&(o=2&c[0]?t.return:c[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,c[1])).done)return o;switch(t=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,t=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],t=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(p){switch(p.label){case 0:e=(0,t.join)(__dirname,"plugins"),n=!0,a=!1,u=void 0,p.label=1;case 1:return p.trys.push([1,7,8,9]),[4,(0,r.readdir)(e)];case 2:l=p.sent().filter(function(e){return e.endsWith(".js")})[Symbol.iterator](),p.label=3;case 3:if(n=(i=l.next()).done)return[3,6];return c=i.value,[4,V((0,o.pathToFileURL)((0,t.join)(e,c)).href)];case 4:p.sent(),p.label=5;case 5:return n=!0,[3,3];case 6:return[3,9];case 7:return s=p.sent(),a=!0,u=s,[3,9];case 8:try{n||null==l.return||l.return()}finally{if(a)throw u}return[7];case 9:return[4,F()];case 10:return p.sent(),[2]}})},function(){var n=this,r=arguments;return new Promise(function(t,o){var a=e.apply(n,r);function u(e){U(a,t,o,u,l,"next",e)}function l(e){U(a,t,o,u,l,"throw",e)}u(void 0)})})();var L=exports;for(var W in n)L[W]=n[W];n.__esModule&&Object.defineProperty(L,"__esModule",{value:!0})})();
|
|
2
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["webpack://@bradhezh/create-prj/./src/message.ts","webpack://@bradhezh/create-prj/./src/command.ts","webpack://@bradhezh/create-prj/./src/conf.ts","webpack://@bradhezh/create-prj/./src/main.ts","webpack://@bradhezh/create-prj/./src/index.ts"],"sourcesContent":["export const message = {\n validate: \"Option required.\",\n type: { label: \"Project type\" },\n monorepo: {\n name: { label: \"Monorepo name\" },\n types: { label: \"Types in monorepo\" },\n },\n optional: {\n hint: \"Optional options: %s\",\n options: {\n label:\n \"Configure them one by one, or choose none of them (except required ones)?\",\n },\n defaults: {\n label:\n \"Accept defaults, or configure them one by one, or choose none of them (except required ones)?\",\n },\n },\n opCanceled: \"Operation cancelled.\",\n cwdNonEmpty: \"Current work directory must be empty.\",\n pmUnsupported: \"Only npm or pnpm supported for now.\",\n pnpmRequired: \"Only pnpm supported for monorepo for now.\",\n elemExist: \"Element exists already.\",\n refsRequired: 'When using \"after\", reference elements must be specified.',\n circularDep: \"Circular dependency.\",\n afterLast: \"Element cannot be after ones as the last.\",\n invSkipOrKeep: \"Invalid skip or keep.\",\n invElem: \"Invalid element.\",\n sysType: \"Type cannot be registered with a system name.\",\n typeNotExist: \"Type does not exist.\",\n typeRequired: \"Type must be specified for type options.\",\n sysConfKey: \"Option cannot be registered with a system name.\",\n optionNotExist: \"Option does not exist.\",\n optionConflict: \"Option conflict between compulsory and optional ones.\",\n valueNotExist: \"Value does not exist.\",\n invFormat: \"Invalid format of %s.\",\n userGot: \"Paste your username: \",\n userRequired: \"Username required.\",\n readTokenGot: \"Paste your read-only token: \",\n readTokenRequired: \"Read-only token required.\",\n tokenGot: \"Paste your read-write token: \",\n tokenRequired: \"Read-write token required.\",\n pluginStart: \"Configuring %s\",\n setPkg: \"Setting packages\",\n setWkspace: \"Setting workspace\",\n setShared: \"Setting shared\",\n pluginFinish: \"%s completed!\",\n} as const;\n","import { exec as execAsync } from \"node:child_process\";\nimport { promisify, format } from \"node:util\";\nimport { mkdir, readFile, writeFile, rm, access } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { get } from \"axios\";\nimport open from \"open\";\nimport Json from \"comment-json\";\nimport Yaml from \"yaml\";\nimport { createInterface } from \"node:readline/promises\";\nimport { group, text, password, cancel, spinner } from \"@clack/prompts\";\n\nimport { meta, NPM } from \"@/registry\";\nimport { message } from \"@/message\";\n\nconst exec = promisify(execAsync);\n\nconst command = {\n volta: \"volta -v\",\n node: \"node -v\",\n npm: `%s -v`,\n pnpm: \"pnpm -v\",\n setPkgName: '%s pkg set name=\"%s\"',\n setPkgVoltaNode: '%s pkg set \"volta.node\"=\"%s\"',\n setPkgVoltaNpm: '%s pkg set \"volta.%s\"=\"%s\"',\n setPkgPkgMgr: '%s pkg set packageManager=\"%s@%s\"',\n setPkgScript: '%s pkg set \"scripts.%s\"=\"%s\"',\n getPkgScript: '%s pkg get \"scripts.%s\"',\n rmPkgScript: '%s pkg delete \"scripts.%s\"',\n setPkgDeps: '%s pkg set \"dependencies.%s\"=\"%s\"',\n setPkgDevDeps: '%s pkg set \"devDependencies.%s\"=\"%s\"',\n setPkgBin: '%s pkg set \"bin.%s\"=\"%s\"',\n rmNodeLinker: \"pnpm config --location project delete node-linker\",\n tar: \"tar -xvf %s\",\n} as const;\n\nexport const setPkgName = async (name: string, npm: NPM, cwd?: string) => {\n await exec(format(command.setPkgName, npm, name), { cwd });\n};\n\nlet volta: boolean | undefined;\n\nexport const setPkgVers = async (npm: NPM, cwd?: string) => {\n void (\n volta !== undefined ||\n (volta = await exec(command.volta)\n .then(() => true)\n .catch(() => false))\n );\n if (volta) {\n const node = (await exec(command.node)).stdout.trim();\n await exec(\n format(\n command.setPkgVoltaNode,\n npm,\n !node.startsWith(\"v\") ? node : node.slice(1),\n ),\n { cwd },\n );\n const npmV = (await exec(format(command.npm, npm))).stdout.trim();\n await exec(\n format(\n command.setPkgVoltaNpm,\n npm,\n npm,\n !npmV.startsWith(\"v\") ? npmV : npmV.slice(1),\n ),\n { cwd },\n );\n }\n\n if (npm !== NPM.pnpm) {\n return;\n }\n const pnpm = (await exec(command.pnpm)).stdout.trim();\n await exec(\n format(\n command.setPkgPkgMgr,\n NPM.pnpm,\n NPM.pnpm,\n !pnpm.startsWith(\"v\") ? pnpm : pnpm.slice(1),\n ),\n { cwd },\n );\n};\n\nexport const setPkgScript = async (\n name: string,\n script: string | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n if (!script) {\n await exec(format(command.rmPkgScript, npm, name), { cwd });\n return;\n }\n await exec(format(command.setPkgScript, npm, name, script), { cwd });\n};\n\nexport const getPkgScript = async (name: string, npm: NPM, cwd?: string) => {\n const script = (\n await exec(format(command.getPkgScript, npm, name), { cwd })\n ).stdout.trim();\n return script === \"{}\" ? undefined : script;\n};\n\ntype Script = { name: string; script?: string };\nexport const defKey = \"def\" as const;\nexport type Scripts<T extends string> = Partial<\n Record<T | typeof defKey, readonly Script[]>\n>;\n\nexport const setPkgScripts = async <K extends string, T extends Scripts<K>>(\n scripts: T & {\n [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never;\n },\n key: K | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n const scripts0 = scripts[key ?? defKey] ?? scripts.def;\n if (!scripts0) {\n return;\n }\n for (const { name, script } of scripts0) {\n await setPkgScript(name, script, npm, cwd);\n }\n};\n\nexport const setPkgDep = async (\n name: string,\n version: string,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(format(command.setPkgDeps, npm, name, version), { cwd });\n};\n\nexport const setPkgDevDep = async (\n name: string,\n version: string,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(format(command.setPkgDevDeps, npm, name, version), { cwd });\n};\n\ntype PkgDep = { name: string; version: string; dev?: boolean };\nexport type PkgDeps<T extends string> = Partial<\n Record<T | typeof defKey, readonly PkgDep[]>\n>;\n\nexport const setPkgDeps = async <K extends string, T extends PkgDeps<K>>(\n deps: T & { [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never },\n key: K | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n const deps0 = deps[key ?? defKey] ?? deps.def;\n if (!deps0) {\n return;\n }\n for (const { name, version } of deps0.filter((e) => !e.dev)) {\n await setPkgDep(name, version, npm, cwd);\n }\n for (const { name, version } of deps0.filter((e) => e.dev)) {\n await setPkgDevDep(name, version, npm, cwd);\n }\n};\n\nexport const setPkgBin = async (\n name: string,\n script: string | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(\n format(\n command.setPkgBin,\n npm,\n !name.includes(\"/\") ? name : name.split(\"/\").pop(),\n script ?? \"dist/index.js\",\n ),\n { cwd },\n );\n};\n\nconst workspace = \"pnpm-workspace.yaml\" as const;\n\nexport const createWkspace = async (pkgs: readonly string[]) => {\n const packages = pkgs.length <= 1 ? pkgs : [...pkgs, meta.system.type.shared];\n for (const pkg of packages) {\n await mkdir(pkg);\n }\n await writeFile(workspace, Yaml.stringify({ packages }));\n};\n\nexport const addPkgInWkspace = async (pkg: string) => {\n const doc = Yaml.parse(\n await readFile(workspace, \"utf8\").catch(() => \"{}\"),\n ) as unknown;\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, workspace));\n }\n const doc0 = doc as Record<string, unknown>;\n void (doc0.packages || (doc0.packages = []));\n if (!Array.isArray(doc0.packages)) {\n throw new Error(format(message.invFormat, workspace));\n }\n doc0.packages.push(pkg);\n await writeFile(workspace, Yaml.stringify(doc));\n};\n\nexport const addOnlyBuiltDeps = async (deps: readonly string[]) => {\n const doc = Yaml.parse(\n await readFile(workspace, \"utf8\").catch(() => \"{}\"),\n ) as unknown;\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, workspace));\n }\n const doc0 = doc as Record<string, unknown>;\n void (doc0.onlyBuiltDependencies || (doc0.onlyBuiltDependencies = []));\n if (!Array.isArray(doc0.onlyBuiltDependencies)) {\n throw new Error(format(message.invFormat, workspace));\n }\n doc0.onlyBuiltDependencies.push(...deps);\n await writeFile(workspace, Yaml.stringify(doc));\n};\n\nexport const rmPnpmNodeLinker = async () => {\n await exec(command.rmNodeLinker);\n};\n\nexport type BuiltDeps<T extends string> = Partial<\n Record<T | typeof defKey, readonly string[]>\n>;\n\nexport const setWkspaceBuiltDeps = async <\n K extends string,\n T extends BuiltDeps<K>,\n>(\n deps: T & { [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never },\n key?: K,\n) => {\n const deps0 = deps[key ?? defKey] ?? deps.def;\n if (!deps0) {\n return;\n }\n await addOnlyBuiltDeps(deps0);\n};\n\nconst tsconfig = \"tsconfig.json\" as const;\n\nexport const setTsOptions = async (options: object, cwd?: string) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions = { ...doc.compilerOptions, ...options };\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\ntype PathAlias = Record<string, readonly string[]>;\n\nexport const setPathAlias = async (\n base: string,\n pathAlias: PathAlias,\n cwd?: string,\n) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions.baseUrl = base;\n doc.compilerOptions.paths = pathAlias as Json.CommentObject;\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\nexport const addPathAlias = async (\n name: string,\n paths: readonly string[],\n cwd?: string,\n) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions.paths ||\n (doc.compilerOptions.paths = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions.paths !== \"object\" ||\n doc.compilerOptions.paths === null ||\n Array.isArray(doc.compilerOptions.paths)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions.paths[name] = paths as Json.CommentArray<string>;\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\nconst src = \"src\" as const;\nconst pathAliasWithShared = { \"@/*\": [\"\"], \"@shared/*\": [\"shared/src/*\"] };\n\nexport const setPathAliasWithShared = async (cwd: string) => {\n await access(join(cwd, src))\n .then(() => (pathAliasWithShared[\"@/*\"][0] = format(`%s/${src}/*`, cwd)))\n .catch(() => (pathAliasWithShared[\"@/*\"][0] = format(\"%s/*\", cwd)));\n await setPathAlias(\"..\", pathAliasWithShared, cwd);\n};\n\nconst cfgDir = \".bradhezh-create-prj\" as const;\nconst config = \"config.json\" as const;\n\nexport const getCfg = async (path?: string) => {\n const doc = Json.parse(\n await readFile(join(homedir(), cfgDir, config), \"utf-8\").catch(() => \"{}\"),\n );\n if (!path) {\n return doc;\n }\n let value = doc;\n for (const key of path.split(\".\")) {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return;\n }\n value = value[key];\n }\n return value;\n};\n\nexport const setCfg = async (value: Json.CommentJSONValue, path?: string) => {\n await mkdir(join(homedir(), cfgDir), { recursive: true });\n const file = join(homedir(), cfgDir, config);\n let doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (!path) {\n doc = value;\n } else {\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n doc = {} as Json.CommentObject;\n }\n let obj = doc;\n const keys = path.split(\".\");\n const last = keys.pop()!;\n for (const key of keys) {\n if (\n typeof obj[key] !== \"object\" ||\n obj[key] === null ||\n Array.isArray(obj[key])\n ) {\n obj[key] = {} as Json.CommentObject;\n }\n obj = obj[key];\n }\n obj[last] = value;\n }\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\ntype Tmplt = { name: string; path?: string };\nexport type Template<T extends string> = Partial<\n Record<T | typeof defKey, Tmplt>\n>;\n\nexport const installTmplt = async <K extends string, T extends Template<K>>(\n base: string,\n template: T & {\n [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never;\n },\n key?: K,\n cwd?: string,\n tar?: boolean,\n) => {\n const tmplt = template[key ?? defKey] ?? template.def;\n if (!tmplt) {\n return;\n }\n const file = join(cwd ?? \"\", tmplt.name);\n const res = await get<unknown>(`${base}${tmplt.path ?? \"\"}`, {\n responseType: tar ? \"arraybuffer\" : \"text\",\n });\n const data = !(res.data instanceof ArrayBuffer)\n ? res.data\n : new Uint8Array(res.data);\n if (typeof data !== \"string\" && !(data instanceof Uint8Array)) {\n throw new Error();\n }\n await writeFile(file, data);\n if (!tar) {\n return;\n }\n await exec(format(command.tar, tmplt.name), { cwd });\n await rm(file, { force: true });\n};\n\nexport enum AuthKey {\n user = \"user\",\n readToken = \"readToken\",\n token = \"token\",\n}\ntype Auth = Partial<Record<AuthKey, string>>;\ntype AuthCfgPath = Auth;\ntype Spinner = ReturnType<typeof spinner>;\n\nexport const auth = async (\n path: AuthCfgPath,\n ini: Auth,\n hint: string,\n tokenUrl: string,\n s?: Spinner,\n) => {\n const value = await authGot(path, ini);\n if (\n (!path.user || value.user) &&\n (!path.readToken || value.readToken) &&\n (!path.token || value.token)\n ) {\n return value;\n }\n s?.stop();\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n await rl.question(hint);\n rl.close();\n if ((path.readToken && !value.readToken) || (path.token && !value.token)) {\n await open(tokenUrl);\n }\n const answer = await authPrompt(\n !!(path.user && !value.user),\n !!(path.readToken && !value.readToken),\n !!(path.token && !value.token),\n );\n s?.start();\n await setAuth(value, path, answer);\n return value;\n};\n\nconst authGot = async (path: AuthCfgPath, ini: Auth) => {\n if (!path.user && !path.readToken && !path.token) {\n return {};\n }\n const user = path.user && (ini.user || (await getCfg(path.user)));\n const readToken =\n path.readToken && (ini.readToken || (await getCfg(path.readToken)));\n const token = path.token && (ini.token || (await getCfg(path.token)));\n if (\n (typeof user !== \"string\" && typeof user !== \"undefined\") ||\n (typeof readToken !== \"string\" && typeof readToken !== \"undefined\") ||\n (typeof token !== \"string\" && typeof token !== \"undefined\")\n ) {\n throw new Error();\n }\n return { user, readToken, token };\n};\n\nconst authPrompt = (\n forUser: boolean,\n forReadToken: boolean,\n forToken: boolean,\n) => {\n return group(\n {\n ...(forUser && {\n user: () =>\n text({\n message: message.userGot,\n validate: (value?: string) =>\n value ? undefined : message.userRequired,\n }),\n }),\n ...(forReadToken && {\n readToken: () =>\n password({\n message: message.readTokenGot,\n mask: \"*\",\n validate: (value?: string) =>\n value ? undefined : message.readTokenRequired,\n }),\n }),\n ...(forToken && {\n token: () =>\n password({\n message: message.tokenGot,\n mask: \"*\",\n validate: (value?: string) =>\n value ? undefined : message.tokenRequired,\n }),\n }),\n },\n { onCancel },\n );\n};\n\nconst setAuth = async (auth: Auth, path: AuthCfgPath, answer: Auth) => {\n if (path.user && !auth.user) {\n if (!answer.user) {\n throw new Error();\n }\n auth.user = answer.user;\n await setCfg(auth.user, path.user);\n }\n if (path.readToken && !auth.readToken) {\n if (!answer.readToken) {\n throw new Error();\n }\n auth.readToken = answer.readToken;\n await setCfg(auth.readToken, path.readToken);\n }\n if (path.token && !auth.token) {\n if (!answer.token) {\n throw new Error();\n }\n auth.token = answer.token;\n await setCfg(auth.token, path.token);\n }\n};\n\nexport const onCancel = () => {\n cancel(message.opCanceled);\n process.exit(0);\n};\n","import { group, text, select, multiselect, log } from \"@clack/prompts\";\nimport { basename } from \"node:path\";\nimport { format } from \"node:util\";\n\nimport {\n adjustOptions,\n addInQueue,\n options,\n meta,\n NPM,\n Conf,\n Plugin,\n Option,\n Value,\n} from \"@/registry\";\nimport { onCancel } from \"@/command\";\nimport { message } from \"@/message\";\n\nexport const plugins: Plugin[] = [];\n\nexport const config = async () => {\n const conf = init();\n await confTypes(conf);\n await confOptions(conf, options.compulsory);\n await confOptional(conf);\n return conf;\n};\n\nconst init = () => {\n let npm;\n if (process.env.npm_config_user_agent?.includes(NPM.pnpm)) {\n npm = NPM.pnpm;\n } else if (process.env.npm_config_user_agent?.includes(NPM.npm)) {\n npm = NPM.npm;\n } else {\n throw new Error(message.pmUnsupported);\n }\n return { npm, type: \"\" };\n};\n\nconst confTypes = async (conf: Conf) => {\n const { type } = await typePrompt();\n if (type.name === meta.plugin.type.monorepo && conf.npm !== NPM.pnpm) {\n throw new Error(message.pnpmRequired);\n }\n conf.type = type.name;\n adjustOptions(conf, type);\n void (type.plugin && addInQueue(plugins, type.plugin));\n\n const types = [type];\n let monoLabel;\n if (conf.type === meta.plugin.type.monorepo) {\n const { name, types: types0 } = await monoPrompt();\n conf.monorepo = { name, types: types0.map((e) => e.name) };\n for (const type of types0) {\n adjustOptions(conf, type);\n void (type.plugin && addInQueue(plugins, type.plugin));\n }\n types.push(...types0);\n monoLabel = type.label;\n }\n\n for (const type of types) {\n if (!conf[type.name]) {\n conf[type.name] = {};\n }\n await confOptions(conf, type.options, type.name, monoLabel ?? type.label);\n }\n};\n\ntype OptionConf = Record<string, string | string[]>;\n\nconst confOptions = async (\n conf: Conf,\n opts: Option[],\n type?: string,\n typeLabel?: string,\n) => {\n const optConf = (!type ? conf : conf[type]) as OptionConf;\n for (const opt of opts) {\n if (opt.disabled) {\n continue;\n }\n const answer = await optionPrompt(conf, opt, type, typeLabel);\n setOptionValues(conf, optConf, opt, answer);\n }\n};\n\ntype Answer = Record<string, string | Value | Value[]>;\n\nconst setOptionValues = (\n conf: Conf,\n optConf: OptionConf,\n option: Option,\n answer: Answer,\n) => {\n void (option.plugin && addInQueue(plugins, option.plugin));\n if (!option.values.length) {\n optConf[option.name] = answer[option.name] as string;\n return;\n }\n if (!option.multiple) {\n const value = answer[option.name] as Value;\n optConf[option.name] = value.name;\n adjustOptions(conf, value);\n void (value.plugin && addInQueue(plugins, value.plugin));\n return;\n }\n const values = answer[option.name] as Value[];\n optConf[option.name] = values.map((e) => e.name);\n for (const value of values) {\n adjustOptions(conf, value);\n void (value.plugin && addInQueue(plugins, value.plugin));\n }\n};\n\nconst optional = {\n default: { value: \"default\", label: \"Accept defaults\" },\n manual: { value: \"manual\", label: \"Configure manually\" },\n none: { value: undefined, label: \"None\" },\n} as const;\n\nconst confOptional = async (conf: Conf) => {\n const opts = options.optional.filter((e) => !e.disabled);\n if (!opts.length) {\n return;\n }\n hintOptional(opts);\n const defOpts = opts.filter(\n (e) => e.values.length && e.values[0].name !== meta.plugin.value.none,\n );\n const { optional: optl } = await optionalPrompt(defOpts);\n if (optl === optional.manual.value) {\n await confOptions(conf, opts);\n return;\n }\n if (optl === optional.default.value) {\n for (const opt of defOpts) {\n void (opt.plugin && addInQueue(plugins, opt.plugin));\n const value = opt.values[0];\n conf[opt.name] = !opt.multiple ? value.name : [value.name];\n void (value.plugin && addInQueue(plugins, value.plugin));\n }\n }\n await confOptions(\n conf,\n (optl !== optional.default.value\n ? opts\n : opts.filter((e) => !defOpts.find((e0) => e0.name === e.name))\n ).filter((e) => e.required),\n );\n};\n\nconst typePrompt = () => {\n return group(\n {\n type: () =>\n select({\n message: message.type.label,\n options: options.type\n .filter((e) => !e.disabled)\n .map((e) => ({ value: e, label: e.label })),\n }),\n },\n { onCancel },\n );\n};\n\nconst monoPrompt = () => {\n return group(\n {\n name: () =>\n text({\n message: message.monorepo.name.label,\n initialValue: basename(process.cwd()),\n validate: (value?: string) => (value ? undefined : message.validate),\n }),\n types: () =>\n multiselect({\n message: message.monorepo.types.label,\n options: options.type\n .filter((e) => !e.disabled && e.name !== meta.plugin.type.monorepo)\n .map((e) => ({ value: e, label: e.label })),\n }),\n },\n { onCancel },\n );\n};\n\nconst optionPrompt = (\n conf: Conf,\n option: Option,\n type: string | undefined,\n typeLabel: string | undefined,\n) => {\n const label = !typeLabel ? \"\" : `${typeLabel} | `;\n return group(\n {\n [option.name]: () =>\n !option.values.length\n ? text({\n message: `${label}${option.label}`,\n initialValue:\n option.initial ??\n (!type || option.name !== meta.plugin.option.type.name\n ? \"\"\n : conf.type === meta.plugin.type.monorepo\n ? type\n : basename(process.cwd())),\n validate: option.optional\n ? undefined\n : (value?: string) => (value ? undefined : message.validate),\n })\n : !option.multiple\n ? select({\n message: `${label}${option.label}`,\n options: option.values\n .filter((e) => !e.disabled)\n .map((e) => ({ value: e, label: e.label })),\n })\n : multiselect({\n message: `${label}${option.label}`,\n options: option.values\n .filter((e) => !e.disabled)\n .map((e) => ({ value: e, label: e.label })),\n }),\n },\n { onCancel },\n );\n};\n\nconst optionalPrompt = (defOpts: Option[]) => {\n return group(\n {\n optional: () =>\n select({\n message: !defOpts.length\n ? message.optional.options.label\n : message.optional.defaults.label,\n options: [\n ...(!defOpts.length\n ? []\n : [\n {\n value: optional.default.value,\n label: optional.default.label,\n },\n ]),\n { value: optional.manual.value, label: optional.manual.label },\n { value: optional.none.value, label: optional.none.label },\n ],\n }),\n },\n { onCancel },\n );\n};\n\nconst hintOptional = (opts: Option[]) => {\n log.info(\n format(\n message.optional.hint,\n opts\n .map((e) => {\n const def =\n e.values.length &&\n e.values[0].name !== meta.plugin.value.none &&\n e.values[0].label;\n const desc = !e.required\n ? !def\n ? \"\"\n : `(${def})`\n : !def\n ? \"(Required)\"\n : `(${def}, Required)`;\n return `${e.label}${desc}`;\n })\n .join(\", \"),\n ),\n );\n};\n","import { readdir } from \"node:fs/promises\";\nimport { log } from \"@clack/prompts\";\nimport { isAxiosError } from \"axios\";\n\nimport { config, plugins } from \"@/conf\";\nimport { message } from \"@/message\";\n\nexport const main = async () => {\n try {\n if ((await readdir(process.cwd())).length) {\n log.error(message.cwdNonEmpty);\n return;\n }\n const conf = await config();\n for (const plugin of plugins) {\n await plugin.run(conf);\n }\n } catch (err: unknown) {\n if (!(err instanceof Error)) {\n console.log(err);\n process.exit(1);\n }\n if (isAxiosError(err)) {\n const data = err.response?.data as { message?: string } | undefined;\n console.log(data?.message || err.message);\n } else {\n console.log(err.message);\n }\n console.log(err.stack);\n process.exit(1);\n }\n};\n","import { readdir } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport { main } from \"@/main\";\n\n// eslint-disable-next-line @typescript-eslint/no-implied-eval\nconst dynamicImport = new Function(\"specifier\", \"return import(specifier)\");\n\nvoid (async () => {\n const dir = join(__dirname, \"plugins\");\n for (const file of (await readdir(dir)).filter((e) => e.endsWith(\".js\"))) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n await dynamicImport(pathToFileURL(join(dir, file)).href);\n }\n await main();\n})();\n"],"names":["promisify","execAsync","onCancel","cancel","process","plugins","init","_process_env_npm_config_user_agent","_process_env_npm_config_user_agent1","npm","NPM","Error","confOptions","conf","opts","type","typeLabel","optConf","_iteratorError","opt","answer","optionPrompt","setOptionValues","option","addInQueue","value","adjustOptions","values","e","value1","undefined","typePrompt","group","select","options","monoPrompt","text","message","basename","multiselect","meta","label","_option_initial","optionalPrompt","defOpts","hintOptional","log","format","def","desc","main","plugin","err1","_err_response","data","readdir","types","monoLabel","_types","_ref","types0","type1","_iteratorError1","type2","name","optl","e0","console","isAxiosError","dynamicImport","Function","dir","file","join","__dirname","pathToFileURL"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["webpack://@bradhezh/create-prj/./src/message.ts","webpack://@bradhezh/create-prj/./src/command.ts","webpack://@bradhezh/create-prj/./src/conf.ts","webpack://@bradhezh/create-prj/./src/main.ts","webpack://@bradhezh/create-prj/./src/index.ts"],"sourcesContent":["export const message = {\n validate: \"Option required.\",\n type: { label: \"Project type\" },\n monorepo: {\n name: { label: \"Monorepo name\" },\n types: { label: \"Types in monorepo\" },\n },\n optional: {\n hint: \"Optional options: %s\",\n options: {\n label:\n \"Configure them one by one, or choose none of them (except required ones)?\",\n },\n defaults: {\n label:\n \"Accept defaults, or configure them one by one, or choose none of them (except required ones)?\",\n },\n },\n opCanceled: \"Operation cancelled.\",\n cwdNonEmpty: \"Current work directory must be empty.\",\n pmUnsupported: \"Only npm or pnpm supported for now.\",\n pnpmRequired: \"Only pnpm supported for monorepo for now.\",\n elemExist: \"Element exists already.\",\n refsRequired: 'When using \"after\", reference elements must be specified.',\n circularDep: \"Circular dependency.\",\n afterLast: \"Element cannot be after ones as the last.\",\n invSkipOrKeep: \"Invalid skip or keep.\",\n invElem: \"Invalid element.\",\n sysType: \"Type cannot be registered with a system name.\",\n typeNotExist: \"Type does not exist.\",\n typeRequired: \"Type must be specified for type options.\",\n sysConfKey: \"Option cannot be registered with a system name.\",\n optionNotExist: \"Option does not exist.\",\n optionConflict: \"Option conflict between compulsory and optional ones.\",\n valueNotExist: \"Value does not exist.\",\n invFormat: \"Invalid format of %s.\",\n userGot: \"Paste your username: \",\n userRequired: \"Username required.\",\n readTokenGot: \"Paste your read-only token: \",\n readTokenRequired: \"Read-only token required.\",\n tokenGot: \"Paste your read-write token: \",\n tokenRequired: \"Read-write token required.\",\n pluginStart: \"Configuring %s\",\n setPkg: \"Setting packages\",\n setWkspace: \"Setting workspace\",\n setShared: \"Setting shared\",\n pluginFinish: \"%s completed!\",\n} as const;\n","import { exec as execAsync } from \"node:child_process\";\nimport { promisify, format } from \"node:util\";\nimport { mkdir, readFile, writeFile, rm, access } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { get } from \"axios\";\nimport open from \"open\";\nimport Json from \"comment-json\";\nimport Yaml from \"yaml\";\nimport { createInterface } from \"node:readline/promises\";\nimport { group, text, password, cancel, spinner } from \"@clack/prompts\";\n\nimport { meta, NPM } from \"@/registry\";\nimport { message } from \"@/message\";\n\nconst exec = promisify(execAsync);\n\nconst command = {\n volta: \"volta -v\",\n node: \"node -v\",\n npm: `%s -v`,\n pnpm: \"pnpm -v\",\n setPkgName: '%s pkg set name=\"%s\"',\n setPkgVoltaNode: '%s pkg set \"volta.node\"=\"%s\"',\n setPkgVoltaNpm: '%s pkg set \"volta.%s\"=\"%s\"',\n setPkgPkgMgr: '%s pkg set packageManager=\"%s@%s\"',\n setPkgScript: '%s pkg set \"scripts.%s\"=\"%s\"',\n getPkgScript: '%s pkg get \"scripts.%s\"',\n rmPkgScript: '%s pkg delete \"scripts.%s\"',\n setPkgDeps: '%s pkg set \"dependencies.%s\"=\"%s\"',\n setPkgDevDeps: '%s pkg set \"devDependencies.%s\"=\"%s\"',\n setPkgBin: '%s pkg set \"bin.%s\"=\"%s\"',\n rmNodeLinker: \"pnpm config --location project delete node-linker\",\n tar: \"tar -xvf %s\",\n} as const;\n\nexport const setPkgName = async (name: string, npm: NPM, cwd?: string) => {\n await exec(format(command.setPkgName, npm, name), { cwd });\n};\n\nlet volta: boolean | undefined;\n\nexport const setPkgVers = async (npm: NPM, cwd?: string) => {\n void (\n volta !== undefined ||\n (volta = await exec(command.volta)\n .then(() => true)\n .catch(() => false))\n );\n if (volta) {\n const node = (await exec(command.node)).stdout.trim();\n await exec(\n format(\n command.setPkgVoltaNode,\n npm,\n !node.startsWith(\"v\") ? node : node.slice(1),\n ),\n { cwd },\n );\n const npmV = (await exec(format(command.npm, npm))).stdout.trim();\n await exec(\n format(\n command.setPkgVoltaNpm,\n npm,\n npm,\n !npmV.startsWith(\"v\") ? npmV : npmV.slice(1),\n ),\n { cwd },\n );\n }\n\n if (npm !== NPM.pnpm) {\n return;\n }\n const pnpm = (await exec(command.pnpm)).stdout.trim();\n await exec(\n format(\n command.setPkgPkgMgr,\n NPM.pnpm,\n NPM.pnpm,\n !pnpm.startsWith(\"v\") ? pnpm : pnpm.slice(1),\n ),\n { cwd },\n );\n};\n\nexport const setPkgScript = async (\n name: string,\n script: string | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n if (!script) {\n await exec(format(command.rmPkgScript, npm, name), { cwd });\n return;\n }\n await exec(format(command.setPkgScript, npm, name, script), { cwd });\n};\n\nexport const getPkgScript = async (name: string, npm: NPM, cwd?: string) => {\n const script = (\n await exec(format(command.getPkgScript, npm, name), { cwd })\n ).stdout.trim();\n return script === \"{}\" ? undefined : script;\n};\n\ntype Script = { name: string; script?: string };\nexport const defKey = \"def\" as const;\nexport type Scripts<T extends string> = Partial<\n Record<T | typeof defKey, readonly Script[]>\n>;\n\nexport const setPkgScripts = async <K extends string, T extends Scripts<K>>(\n scripts: T & {\n [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never;\n },\n key: K | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n const scripts0 = scripts[key ?? defKey] ?? scripts.def;\n if (!scripts0) {\n return;\n }\n for (const { name, script } of scripts0) {\n await setPkgScript(name, script, npm, cwd);\n }\n};\n\nexport const setPkgDep = async (\n name: string,\n version: string,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(format(command.setPkgDeps, npm, name, version), { cwd });\n};\n\nexport const setPkgDevDep = async (\n name: string,\n version: string,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(format(command.setPkgDevDeps, npm, name, version), { cwd });\n};\n\ntype PkgDep = { name: string; version: string; dev?: boolean };\nexport type PkgDeps<T extends string> = Partial<\n Record<T | typeof defKey, readonly PkgDep[]>\n>;\n\nexport const setPkgDeps = async <K extends string, T extends PkgDeps<K>>(\n deps: T & { [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never },\n key: K | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n const deps0 = deps[key ?? defKey] ?? deps.def;\n if (!deps0) {\n return;\n }\n for (const { name, version } of deps0.filter((e) => !e.dev)) {\n await setPkgDep(name, version, npm, cwd);\n }\n for (const { name, version } of deps0.filter((e) => e.dev)) {\n await setPkgDevDep(name, version, npm, cwd);\n }\n};\n\nexport const setPkgBin = async (\n name: string,\n script: string | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(\n format(\n command.setPkgBin,\n npm,\n !name.includes(\"/\") ? name : name.split(\"/\").pop(),\n script ?? \"dist/index.js\",\n ),\n { cwd },\n );\n};\n\nconst workspace = \"pnpm-workspace.yaml\" as const;\n\nexport const createWkspace = async (pkgs: readonly string[]) => {\n const packages = pkgs.length <= 1 ? pkgs : [...pkgs, meta.system.type.shared];\n for (const pkg of packages) {\n await mkdir(pkg);\n }\n await writeFile(workspace, Yaml.stringify({ packages }));\n};\n\nexport const addPkgInWkspace = async (pkg: string) => {\n const doc = Yaml.parse(\n await readFile(workspace, \"utf8\").catch(() => \"{}\"),\n ) as unknown;\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, workspace));\n }\n const doc0 = doc as Record<string, unknown>;\n void (doc0.packages || (doc0.packages = []));\n if (!Array.isArray(doc0.packages)) {\n throw new Error(format(message.invFormat, workspace));\n }\n doc0.packages.push(pkg);\n await writeFile(workspace, Yaml.stringify(doc));\n};\n\nexport const addOnlyBuiltDeps = async (deps: readonly string[]) => {\n const doc = Yaml.parse(\n await readFile(workspace, \"utf8\").catch(() => \"{}\"),\n ) as unknown;\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, workspace));\n }\n const doc0 = doc as Record<string, unknown>;\n void (doc0.onlyBuiltDependencies || (doc0.onlyBuiltDependencies = []));\n if (!Array.isArray(doc0.onlyBuiltDependencies)) {\n throw new Error(format(message.invFormat, workspace));\n }\n doc0.onlyBuiltDependencies.push(...deps);\n await writeFile(workspace, Yaml.stringify(doc));\n};\n\nexport const rmPnpmNodeLinker = async () => {\n await exec(command.rmNodeLinker);\n};\n\nexport type BuiltDeps<T extends string> = Partial<\n Record<T | typeof defKey, readonly string[]>\n>;\n\nexport const setWkspaceBuiltDeps = async <\n K extends string,\n T extends BuiltDeps<K>,\n>(\n deps: T & { [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never },\n key?: K,\n) => {\n const deps0 = deps[key ?? defKey] ?? deps.def;\n if (!deps0) {\n return;\n }\n await addOnlyBuiltDeps(deps0);\n};\n\nconst tsconfig = \"tsconfig.json\" as const;\n\nexport const setTsOptions = async (options: object, cwd?: string) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions = { ...doc.compilerOptions, ...options };\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\ntype PathAlias = Record<string, readonly string[]>;\n\nexport const setPathAlias = async (\n base: string,\n pathAlias: PathAlias,\n cwd?: string,\n) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions.baseUrl = base;\n doc.compilerOptions.paths = pathAlias as Json.CommentObject;\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\nexport const addPathAlias = async (\n name: string,\n paths: readonly string[],\n cwd?: string,\n) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions.paths ||\n (doc.compilerOptions.paths = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions.paths !== \"object\" ||\n doc.compilerOptions.paths === null ||\n Array.isArray(doc.compilerOptions.paths)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions.paths[name] = paths as Json.CommentArray<string>;\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\nconst src = \"src\" as const;\nconst pathAliasWithShared = { \"@/*\": [\"\"], \"@shared/*\": [\"shared/src/*\"] };\n\nexport const setPathAliasWithShared = async (cwd: string) => {\n await access(join(cwd, src))\n .then(() => (pathAliasWithShared[\"@/*\"][0] = format(`%s/${src}/*`, cwd)))\n .catch(() => (pathAliasWithShared[\"@/*\"][0] = format(\"%s/*\", cwd)));\n await setPathAlias(\"..\", pathAliasWithShared, cwd);\n};\n\nconst cfgDir = \".bradhezh-create-prj\" as const;\nconst config = \"config.json\" as const;\n\nexport const getCfg = async (path?: string) => {\n const doc = Json.parse(\n await readFile(join(homedir(), cfgDir, config), \"utf-8\").catch(() => \"{}\"),\n );\n if (!path) {\n return doc;\n }\n let value = doc;\n for (const key of path.split(\".\")) {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return;\n }\n value = value[key];\n }\n return value;\n};\n\nexport const setCfg = async (value: Json.CommentJSONValue, path?: string) => {\n await mkdir(join(homedir(), cfgDir), { recursive: true });\n const file = join(homedir(), cfgDir, config);\n let doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (!path) {\n doc = value;\n } else {\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n doc = {} as Json.CommentObject;\n }\n let obj = doc;\n const keys = path.split(\".\");\n const last = keys.pop()!;\n for (const key of keys) {\n if (\n typeof obj[key] !== \"object\" ||\n obj[key] === null ||\n Array.isArray(obj[key])\n ) {\n obj[key] = {} as Json.CommentObject;\n }\n obj = obj[key];\n }\n obj[last] = value;\n }\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\ntype Tmplt = { name: string; path?: string };\nexport type Template<T extends string> = Partial<\n Record<T | typeof defKey, Tmplt>\n>;\n\nexport const installTmplt = async <K extends string, T extends Template<K>>(\n base: string,\n template: T & {\n [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never;\n },\n key?: K,\n cwd?: string,\n tar?: boolean,\n) => {\n const tmplt = template[key ?? defKey] ?? template.def;\n if (!tmplt) {\n return;\n }\n const file = join(cwd ?? \"\", tmplt.name);\n const res = await get<unknown>(`${base}${tmplt.path ?? \"\"}`, {\n responseType: tar ? \"arraybuffer\" : \"text\",\n });\n const data = !(res.data instanceof ArrayBuffer)\n ? res.data\n : new Uint8Array(res.data);\n if (typeof data !== \"string\" && !(data instanceof Uint8Array)) {\n throw new Error();\n }\n await writeFile(file, data);\n if (!tar) {\n return;\n }\n await exec(format(command.tar, tmplt.name), { cwd });\n await rm(file, { force: true });\n};\n\nexport enum AuthKey {\n user = \"user\",\n readToken = \"readToken\",\n token = \"token\",\n}\ntype Auth = Partial<Record<AuthKey, string>>;\ntype AuthCfgPath = Auth;\ntype Spinner = ReturnType<typeof spinner>;\n\nexport const auth = async (\n path: AuthCfgPath,\n ini: Auth,\n hint: string,\n tokenUrl: string,\n s?: Spinner,\n) => {\n const value = await authGot(path, ini);\n if (\n (!path.user || value.user) &&\n (!path.readToken || value.readToken) &&\n (!path.token || value.token)\n ) {\n return value;\n }\n s?.stop();\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n await rl.question(hint);\n rl.close();\n if ((path.readToken && !value.readToken) || (path.token && !value.token)) {\n await open(tokenUrl);\n }\n const answer = await authPrompt(\n !!(path.user && !value.user),\n !!(path.readToken && !value.readToken),\n !!(path.token && !value.token),\n );\n s?.start();\n await setAuth(value, path, answer);\n return value;\n};\n\nconst authGot = async (path: AuthCfgPath, ini: Auth) => {\n if (!path.user && !path.readToken && !path.token) {\n return {};\n }\n const user = path.user && (ini.user || (await getCfg(path.user)));\n const readToken =\n path.readToken && (ini.readToken || (await getCfg(path.readToken)));\n const token = path.token && (ini.token || (await getCfg(path.token)));\n if (\n (typeof user !== \"string\" && typeof user !== \"undefined\") ||\n (typeof readToken !== \"string\" && typeof readToken !== \"undefined\") ||\n (typeof token !== \"string\" && typeof token !== \"undefined\")\n ) {\n throw new Error();\n }\n return { user, readToken, token };\n};\n\nconst authPrompt = (\n forUser: boolean,\n forReadToken: boolean,\n forToken: boolean,\n) => {\n return group(\n {\n ...(forUser && {\n user: () =>\n text({\n message: message.userGot,\n validate: (value?: string) =>\n value ? undefined : message.userRequired,\n }),\n }),\n ...(forReadToken && {\n readToken: () =>\n password({\n message: message.readTokenGot,\n mask: \"*\",\n validate: (value?: string) =>\n value ? undefined : message.readTokenRequired,\n }),\n }),\n ...(forToken && {\n token: () =>\n password({\n message: message.tokenGot,\n mask: \"*\",\n validate: (value?: string) =>\n value ? undefined : message.tokenRequired,\n }),\n }),\n },\n { onCancel },\n );\n};\n\nconst setAuth = async (auth: Auth, path: AuthCfgPath, answer: Auth) => {\n if (path.user && !auth.user) {\n if (!answer.user) {\n throw new Error();\n }\n auth.user = answer.user;\n await setCfg(auth.user, path.user);\n }\n if (path.readToken && !auth.readToken) {\n if (!answer.readToken) {\n throw new Error();\n }\n auth.readToken = answer.readToken;\n await setCfg(auth.readToken, path.readToken);\n }\n if (path.token && !auth.token) {\n if (!answer.token) {\n throw new Error();\n }\n auth.token = answer.token;\n await setCfg(auth.token, path.token);\n }\n};\n\nexport const onCancel = () => {\n cancel(message.opCanceled);\n process.exit(0);\n};\n","import { group, text, select, multiselect, log } from \"@clack/prompts\";\nimport { basename } from \"node:path\";\nimport { format } from \"node:util\";\n\nimport {\n adjustOptions,\n addInQueue,\n options,\n meta,\n NPM,\n Conf,\n Plugin,\n Option,\n Value,\n} from \"@/registry\";\nimport { onCancel } from \"@/command\";\nimport { message } from \"@/message\";\n\nexport const plugins: Plugin[] = [];\n\nexport const config = async () => {\n const conf = init();\n await confTypes(conf);\n await confOptions(conf, options.compulsory);\n await confOptional(conf);\n return conf;\n};\n\nconst init = () => {\n let npm;\n if (process.env.npm_config_user_agent?.includes(NPM.pnpm)) {\n npm = NPM.pnpm;\n } else if (process.env.npm_config_user_agent?.includes(NPM.npm)) {\n npm = NPM.npm;\n } else {\n throw new Error(message.pmUnsupported);\n }\n return { npm, type: \"\" };\n};\n\nconst confTypes = async (conf: Conf) => {\n const { type } = await typePrompt();\n if (type.name === meta.plugin.type.monorepo && conf.npm !== NPM.pnpm) {\n throw new Error(message.pnpmRequired);\n }\n conf.type = type.name;\n adjustOptions(conf, type);\n void (type.plugin && addInQueue(plugins, type.plugin));\n\n const types = [type];\n let monoLabel;\n if (conf.type === meta.plugin.type.monorepo) {\n const { name, types: types0 } = await monoPrompt();\n conf.monorepo = { name, types: types0.map((e) => e.name) };\n for (const type of types0) {\n adjustOptions(conf, type);\n void (type.plugin && addInQueue(plugins, type.plugin));\n }\n types.push(...types0);\n monoLabel = type.label;\n }\n\n for (const type of types) {\n if (!conf[type.name]) {\n conf[type.name] = {};\n }\n await confOptions(conf, type.options, type.name, monoLabel ?? type.label);\n }\n};\n\ntype OptionConf = Record<string, string | string[]>;\n\nconst confOptions = async (\n conf: Conf,\n opts: Option[],\n type?: string,\n typeLabel?: string,\n) => {\n const optConf = (!type ? conf : conf[type]) as OptionConf;\n for (const opt of opts) {\n if (opt.disabled) {\n continue;\n }\n const answer = await optionPrompt(conf, opt, type, typeLabel);\n setOptionValues(conf, optConf, opt, answer);\n }\n};\n\ntype Answer = Record<string, string | Value | Value[]>;\n\nconst setOptionValues = (\n conf: Conf,\n optConf: OptionConf,\n option: Option,\n answer: Answer,\n) => {\n void (option.plugin && addInQueue(plugins, option.plugin));\n if (!option.values.length) {\n optConf[option.name] = answer[option.name] as string;\n return;\n }\n if (!option.multiple) {\n const value = answer[option.name] as Value;\n optConf[option.name] = value.name;\n adjustOptions(conf, value);\n void (value.plugin && addInQueue(plugins, value.plugin));\n return;\n }\n const values = answer[option.name] as Value[];\n optConf[option.name] = values.map((e) => e.name);\n for (const value of values) {\n adjustOptions(conf, value);\n void (value.plugin && addInQueue(plugins, value.plugin));\n }\n};\n\nconst optional = {\n default: { value: \"default\", label: \"Accept defaults\" },\n manual: { value: \"manual\", label: \"Configure manually\" },\n none: { value: undefined, label: \"None\" },\n} as const;\n\nconst confOptional = async (conf: Conf) => {\n const opts = options.optional.filter((e) => !e.disabled);\n if (!opts.length) {\n return;\n }\n hintOptional(opts);\n const defOpts = opts.filter(\n (e) => e.values.length && e.values[0].name !== meta.plugin.value.none,\n );\n const { optional: optl } = await optionalPrompt(defOpts);\n if (optl === optional.manual.value) {\n await confOptions(conf, opts);\n return;\n }\n if (optl === optional.default.value) {\n for (const opt of defOpts) {\n void (opt.plugin && addInQueue(plugins, opt.plugin));\n const value = opt.values[0];\n conf[opt.name] = !opt.multiple ? value.name : [value.name];\n void (value.plugin && addInQueue(plugins, value.plugin));\n }\n }\n await confOptions(\n conf,\n (optl !== optional.default.value\n ? opts\n : opts.filter((e) => !defOpts.find((e0) => e0.name === e.name))\n ).filter((e) => e.required),\n );\n};\n\nconst typePrompt = () => {\n return group(\n {\n type: () =>\n select({\n message: message.type.label,\n options: options.type\n .filter((e) => !e.disabled)\n .map((e) => ({ value: e, label: e.label })),\n }),\n },\n { onCancel },\n );\n};\n\nconst monoPrompt = () => {\n return group(\n {\n name: () =>\n text({\n message: message.monorepo.name.label,\n initialValue: basename(process.cwd()),\n validate: (value?: string) => (value ? undefined : message.validate),\n }),\n types: () =>\n multiselect({\n message: message.monorepo.types.label,\n options: options.type\n .filter((e) => !e.disabled && e.name !== meta.plugin.type.monorepo)\n .map((e) => ({ value: e, label: e.label })),\n }),\n },\n { onCancel },\n );\n};\n\nconst optionPrompt = (\n conf: Conf,\n option: Option,\n type: string | undefined,\n typeLabel: string | undefined,\n) => {\n const label = !typeLabel ? \"\" : `${typeLabel} | `;\n return group(\n {\n [option.name]: () =>\n !option.values.length\n ? text({\n message: `${label}${option.label}`,\n initialValue:\n option.initial ??\n (!type || option.name !== meta.plugin.option.type.name\n ? \"\"\n : conf.type === meta.plugin.type.monorepo\n ? type\n : basename(process.cwd())),\n validate: option.optional\n ? undefined\n : (value?: string) => (value ? undefined : message.validate),\n })\n : !option.multiple\n ? select({\n message: `${label}${option.label}`,\n options: option.values\n .filter((e) => !e.disabled)\n .map((e) => ({ value: e, label: e.label })),\n })\n : multiselect({\n message: `${label}${option.label}`,\n options: option.values\n .filter((e) => !e.disabled)\n .map((e) => ({ value: e, label: e.label })),\n }),\n },\n { onCancel },\n );\n};\n\nconst optionalPrompt = (defOpts: Option[]) => {\n return group(\n {\n optional: () =>\n select({\n message: !defOpts.length\n ? message.optional.options.label\n : message.optional.defaults.label,\n options: [\n ...(!defOpts.length\n ? []\n : [\n {\n value: optional.default.value,\n label: optional.default.label,\n },\n ]),\n { value: optional.manual.value, label: optional.manual.label },\n { value: optional.none.value, label: optional.none.label },\n ],\n }),\n },\n { onCancel },\n );\n};\n\nconst hintOptional = (opts: Option[]) => {\n log.info(\n format(\n message.optional.hint,\n opts\n .map((e) => {\n const def =\n e.values.length &&\n e.values[0].name !== meta.plugin.value.none &&\n e.values[0].label;\n const desc = !e.required\n ? !def\n ? \"\"\n : `(${def})`\n : !def\n ? \"(Required)\"\n : `(${def}, Required)`;\n return `${e.label}${desc}`;\n })\n .join(\", \"),\n ),\n );\n};\n","import { readdir } from \"node:fs/promises\";\nimport { log } from \"@clack/prompts\";\nimport { isAxiosError } from \"axios\";\n\nimport { config, plugins } from \"@/conf\";\nimport { message } from \"@/message\";\n\nexport const main = async () => {\n try {\n if ((await readdir(process.cwd())).length) {\n log.error(message.cwdNonEmpty);\n return;\n }\n const conf = await config();\n for (const plugin of plugins) {\n await plugin.run(conf);\n }\n } catch (err: unknown) {\n if (!(err instanceof Error)) {\n console.log(err);\n process.exit(1);\n }\n if (isAxiosError(err)) {\n const data = err.response?.data as { message?: string } | undefined;\n console.log(data?.message || err.message);\n } else {\n console.log(err.message);\n }\n console.log(err.stack);\n process.exit(1);\n }\n};\n","import \"source-map-support/register\";\nimport { readdir } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport { main } from \"@/main\";\n\n// eslint-disable-next-line @typescript-eslint/no-implied-eval\nconst dynamicImport = new Function(\"specifier\", \"return import(specifier)\");\n\nvoid (async () => {\n const dir = join(__dirname, \"plugins\");\n for (const file of (await readdir(dir)).filter((e) => e.endsWith(\".js\"))) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n await dynamicImport(pathToFileURL(join(dir, file)).href);\n }\n await main();\n})();\n"],"names":["promisify","execAsync","onCancel","cancel","process","plugins","init","_process_env_npm_config_user_agent","_process_env_npm_config_user_agent1","npm","NPM","Error","confOptions","conf","opts","type","typeLabel","optConf","_iteratorError","opt","answer","optionPrompt","setOptionValues","option","addInQueue","value","adjustOptions","values","e","value1","undefined","typePrompt","group","select","options","monoPrompt","text","message","basename","multiselect","meta","label","_option_initial","optionalPrompt","defOpts","hintOptional","log","format","def","desc","main","plugin","err1","_err_response","data","readdir","types","monoLabel","_types","_ref","types0","type1","_iteratorError1","type2","name","optl","e0","console","isAxiosError","dynamicImport","Function","dir","file","join","__dirname","pathToFileURL"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{"use strict";var e,r,t={},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,a),o.exports}a.rv=()=>"1.7.3",a.ruid="bundler=rspack@1.7.3";let o=require("@clack/prompts"),s=require("node:util"),i=require("../registry.js");var c="rspack";let u=require("node:child_process"),l=require("node:fs/promises"),p=require("node:path");require("node:os");let f=require("axios");function d(e,r,t,n,a,o,s){try{var i=e[o](s),c=i.value}catch(e){t(e);return}i.done?r(c):Promise.resolve(c).then(n,a)}function m(e){return function(){var r=this,t=arguments;return new Promise(function(n,a){var o=e.apply(r,t);function s(e){d(o,n,a,s,i,"next",e)}function i(e){d(o,n,a,s,i,"throw",e)}s(void 0)})}}function b(e,r){return null!=r&&"u">typeof Symbol&&r[Symbol.hasInstance]?!!r[Symbol.hasInstance](e):e instanceof r}function y(e,r){var t,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(s,"next",{value:c(0)}),i(s,"throw",{value:c(1)}),i(s,"return",{value:c(2)}),"function"==typeof Symbol&&i(s,Symbol.iterator,{value:function(){return this}}),s;function c(i){return function(c){var u=[i,c];if(t)throw TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(t=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=r.call(e,o)}catch(e){u=[6,e],n=0}finally{t=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}require("open"),require("comment-json"),require("yaml"),require("node:readline/promises");var h=(0,s.promisify)(u.exec),v=function(e,r,t,n){return m(function(){var a,o,i,c,u,l,p,f,d,b,v,k,g,w,O,x,j,P,q;return y(this,function(S){switch(S.label){case 0:if(!(o=null!=(a=e[null!=r?r:"def"])?a:e.def))return[2];i=!0,c=!1,u=void 0,S.label=1;case 1:S.trys.push([1,6,7,8]),l=o.filter(function(e){return!e.dev})[Symbol.iterator](),S.label=2;case 2:if(i=(p=l.next()).done)return[3,5];return d=(f=p.value).name,[4,(b=f.version,m(function(){return y(this,function(e){switch(e.label){case 0:return[4,h((0,s.format)('%s pkg set "dependencies.%s"="%s"',t,d,b),{cwd:n})];case 1:return e.sent(),[2]}})})())];case 3:S.sent(),S.label=4;case 4:return i=!0,[3,2];case 5:return[3,8];case 6:return v=S.sent(),c=!0,u=v,[3,8];case 7:try{i||null==l.return||l.return()}finally{if(c)throw u}return[7];case 8:k=!0,g=!1,w=void 0,S.label=9;case 9:S.trys.push([9,14,15,16]),O=o.filter(function(e){return e.dev})[Symbol.iterator](),S.label=10;case 10:if(k=(x=O.next()).done)return[3,13];return P=(j=x.value).name,[4,(q=j.version,m(function(){return y(this,function(e){switch(e.label){case 0:return[4,h((0,s.format)('%s pkg set "devDependencies.%s"="%s"',t,P,q),{cwd:n})];case 1:return e.sent(),[2]}})})())];case 11:S.sent(),S.label=12;case 12:return k=!0,[3,10];case 13:return[3,16];case 14:return v=S.sent(),g=!0,w=v,[3,16];case 15:try{k||null==O.return||O.return()}finally{if(g)throw w}return[7];case 16:return[2]}})})()};function k(e,r,t,n,a,o,s){try{var i=e[o](s),c=i.value}catch(e){t(e);return}i.done?r(c):Promise.resolve(c).then(n,a)}function g(e){return function(){var r=this,t=arguments;return new Promise(function(n,a){var o=e.apply(r,t);function s(e){k(o,n,a,s,i,"next",e)}function i(e){k(o,n,a,s,i,"throw",e)}s(void 0)})}}function w(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}function O(e,r){var t,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(s,"next",{value:c(0)}),i(s,"throw",{value:c(1)}),i(s,"return",{value:c(2)}),"function"==typeof Symbol&&i(s,Symbol.iterator,{value:function(){return this}}),s;function c(i){return function(c){var u=[i,c];if(t)throw TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(t=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=r.call(e,o)}catch(e){u=[6,e],n=0}finally{t=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var x=function(e){var r=e.npm;if(r!==i.NPM.npm&&r!==i.NPM.pnpm)throw Error();return{npm:r}},j=function(e){var r,t;return(null!=(r=null==(t=e.monorepo)?void 0:t.types)?r:[e.type]).map(function(r){var t,n,a,o,s=null==(n=e[r])?void 0:n.name;if(!s)throw Error();return{typeFrmwk:null!=(t=null==(a=e[r])?void 0:a.framework)?t:r,name:s,cwd:e.type!==i.meta.plugin.type.monorepo?".":s,ts:null==(o=e[r])?void 0:o.typescript}}).filter(function(e){return!(0,i.typeFrmwksSkip)(void 0,i.meta.plugin.option.builder,void 0).includes(e.typeFrmwk)})},P=function(e){var r=e.typeFrmwk,t=e.ts,n=e.cwd;return g(function(){var e,a;return O(this,function(o){switch(o.label){case 0:if(!(a=null!=(e=I[r])?e:I.def))throw Error();return[4,m(function(){var e,r,o,s,i,c;return y(this,function(u){switch(u.label){case 0:if(!(o=null!=(e=a[null!=t?t:"def"])?e:a.def))return[2];return s=(0,p.join)(null!=n?n:"",o.name),[4,(0,f.get)("".concat(E).concat(null!=(r=o.path)?r:""),{responseType:"text"})];case 1:if("string"!=typeof(c=b((i=u.sent()).data,ArrayBuffer)?new Uint8Array(i.data):i.data)&&!b(c,Uint8Array))throw Error();return[4,(0,l.writeFile)(s,c)];case 2:case 4:return u.sent(),[2];case 3:return u.sent(),[4,(0,l.rm)(s,{force:!0})]}})})()];case 1:return o.sent(),[2]}})})()},q=function(e){var r=e.typeFrmwk,t=e.ts,n=e.npm,a=e.cwd;return g(function(){return O(this,function(e){switch(e.label){case 0:return[4,m(function(){var e,t,o,i,c,u,l,p,f,d,b;return y(this,function(v){switch(v.label){case 0:if(!(t=null!=(e=F[null!=r?r:"def"])?e:F.def))return[2];o=!0,i=!1,c=void 0,v.label=1;case 1:v.trys.push([1,6,7,8]),u=t[Symbol.iterator](),v.label=2;case 2:if(o=(l=u.next()).done)return[3,5];return f=(p=l.value).name,[4,(d=p.script,m(function(){return y(this,function(e){switch(e.label){case 0:if(d)return[3,2];return[4,h((0,s.format)('%s pkg delete "scripts.%s"',n,f),{cwd:a})];case 1:case 3:return e.sent(),[2];case 2:return[4,h((0,s.format)('%s pkg set "scripts.%s"="%s"',n,f,d),{cwd:a})]}})})())];case 3:v.sent(),v.label=4;case 4:return o=!0,[3,2];case 5:return[3,8];case 6:return b=v.sent(),i=!0,c=b,[3,8];case 7:try{o||null==u.return||u.return()}finally{if(i)throw c}return[7];case 8:return[2]}})})()];case 1:return e.sent(),[4,v({pkgDeps:R},"pkgDeps",n,a)];case 2:if(e.sent(),t===i.meta.plugin.value.none)return[3,4];return[4,v({tsPkgDeps:C},"tsPkgDeps",n,a)];case 3:e.sent(),e.label=4;case 4:return[2]}})})()},S="Rspack";(0,i.regValue)({name:c,label:S,skips:[],keeps:[],requires:[],plugin:{name:"".concat(i.meta.plugin.option.builder,"_").concat(c),label:S,run:function(e){return g(function(){var r,t,n,a,i,u,l,p,f,d;return O(this,function(m){switch(m.label){case 0:(r=(0,o.spinner)()).start(),o.log.info((0,s.format)(N.pluginStart,this.label)),t=x(e),n=j(e),a=!0,i=!1,u=void 0,m.label=1;case 1:m.trys.push([1,7,8,9]),l=n[Symbol.iterator](),m.label=2;case 2:if(a=(p=l.next()).done)return[3,6];return f=p.value,o.log.info((0,s.format)(N.forType,f.name)),[4,P(w({},t,f))];case 3:return m.sent(),o.log.info(N.setPkg),[4,q(w({},t,f))];case 4:m.sent(),m.label=5;case 5:return a=!0,[3,2];case 6:return[3,9];case 7:return d=m.sent(),i=!0,u=d,[3,9];case 8:try{a||null==l.return||l.return()}finally{if(i)throw u}return[7];case 9:return e[c]={},o.log.info((0,s.format)(N.pluginFinish,this.label)),r.stop(),[2]}})}).call(this)}}},i.meta.plugin.option.builder);var E="https://raw.githubusercontent.com/bradhezh/prj-template/master/rspk",T="rspack.config.ts",D="rspack.config.js",I={nest:{def:{name:T,path:"/be/meta/rspack.config.ts"}},express:{none:{name:D,path:"/be/no/rspack.config.js"},metadata:{name:T,path:"/be/meta/rspack.config.ts"},def:{name:T,path:"/be/ndec/rspack.config.ts"}},lib:{none:{name:D,path:"/lib/no/rspack.config.js"},metadata:{name:T,path:"/lib/meta/rspack.config.ts"},def:{name:T,path:"/lib/ndec/rspack.config.ts"}},cli:{none:{name:D,path:"/cli/no/rspack.config.js"},metadata:{name:T,path:"/cli/meta/rspack.config.ts"},def:{name:T,path:"/cli/ndec/rspack.config.ts"}},def:{none:{name:D,path:"/def/no/rspack.config.js"},metadata:{name:T,path:"/def/meta/rspack.config.ts"},def:{name:T,path:"/def/ndec/rspack.config.ts"}}},F={lib:[{name:"build",script:"rspack build && pnpm dlx del-cli 'dist/*.d.ts' '!dist/index.d.ts'"},{name:"dev",script:"rspack dev"},{name:"dev:cli",script:"CLI=true rspack dev"}],cli:[{name:"build",script:"rspack build"},{name:"dev",script:"rspack dev"}],def:[{name:"build",script:"rspack build"},{name:"dev",script:"rspack dev"},{name:"start",script:"node build/main.js"}]},R=[{name:"@rspack/cli",version:"^1",dev:!0},{name:"@rspack/core",version:"^1",dev:!0},{name:"run-script-webpack-plugin",version:"^0",dev:!0},{name:"webpack-node-externals",version:"^3",dev:!0}],C=[{name:"@types/webpack-node-externals",version:"^3",dev:!0},{name:"ts-checker-rspack-plugin",version:"^1",dev:!0}],N=(e=w({},{validate:"Option required.",type:{label:"Project type"},monorepo:{name:{label:"Monorepo name"},types:{label:"Types in monorepo"}},optional:{hint:"Optional options: %s",options:{label:"Configure them one by one, or choose none of them (except required ones)?"},defaults:{label:"Accept defaults, or configure them one by one, or choose none of them (except required ones)?"}},opCanceled:"Operation cancelled.",cwdNonEmpty:"Current work directory must be empty.",pmUnsupported:"Only npm or pnpm supported for now.",pnpmRequired:"Only pnpm supported for monorepo for now.",elemExist:"Element exists already.",refsRequired:'When using "after", reference elements must be specified.',circularDep:"Circular dependency.",afterLast:"Element cannot be after ones as the last.",invSkipOrKeep:"Invalid skip or keep.",invElem:"Invalid element.",sysType:"Type cannot be registered with a system name.",typeNotExist:"Type does not exist.",typeRequired:"Type must be specified for type options.",sysConfKey:"Option cannot be registered with a system name.",optionNotExist:"Option does not exist.",optionConflict:"Option conflict between compulsory and optional ones.",valueNotExist:"Value does not exist.",invFormat:"Invalid format of %s.",userGot:"Paste your username: ",userRequired:"Username required.",readTokenGot:"Paste your read-only token: ",readTokenRequired:"Read-only token required.",tokenGot:"Paste your read-write token: ",tokenRequired:"Read-write token required.",pluginStart:"Configuring %s",setPkg:"Setting packages",setWkspace:"Setting workspace",setShared:"Setting shared",pluginFinish:"%s completed!"}),r=r={forType:'for "%s"'},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e)})();
|
|
1
|
+
(()=>{"use strict";var e,r,t={},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,a),o.exports}a.rv=()=>"1.7.3",a.ruid="bundler=rspack@1.7.3";let o=require("@clack/prompts"),s=require("node:util"),i=require("../registry.js");var c="rspack";let u=require("node:child_process"),l=require("node:fs/promises"),p=require("node:path");require("node:os");let f=require("axios");function d(e,r,t,n,a,o,s){try{var i=e[o](s),c=i.value}catch(e){t(e);return}i.done?r(c):Promise.resolve(c).then(n,a)}function m(e){return function(){var r=this,t=arguments;return new Promise(function(n,a){var o=e.apply(r,t);function s(e){d(o,n,a,s,i,"next",e)}function i(e){d(o,n,a,s,i,"throw",e)}s(void 0)})}}function b(e,r){return null!=r&&"u">typeof Symbol&&r[Symbol.hasInstance]?!!r[Symbol.hasInstance](e):e instanceof r}function y(e,r){var t,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(s,"next",{value:c(0)}),i(s,"throw",{value:c(1)}),i(s,"return",{value:c(2)}),"function"==typeof Symbol&&i(s,Symbol.iterator,{value:function(){return this}}),s;function c(i){return function(c){var u=[i,c];if(t)throw TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(t=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=r.call(e,o)}catch(e){u=[6,e],n=0}finally{t=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}require("open"),require("comment-json"),require("yaml"),require("node:readline/promises");var h=(0,s.promisify)(u.exec),v=function(e,r,t,n){return m(function(){var a,o,i,c,u,l,p,f,d,b,v,k,g,w,O,x,j,P,q;return y(this,function(S){switch(S.label){case 0:if(!(o=null!=(a=e[null!=r?r:"def"])?a:e.def))return[2];i=!0,c=!1,u=void 0,S.label=1;case 1:S.trys.push([1,6,7,8]),l=o.filter(function(e){return!e.dev})[Symbol.iterator](),S.label=2;case 2:if(i=(p=l.next()).done)return[3,5];return d=(f=p.value).name,[4,(b=f.version,m(function(){return y(this,function(e){switch(e.label){case 0:return[4,h((0,s.format)('%s pkg set "dependencies.%s"="%s"',t,d,b),{cwd:n})];case 1:return e.sent(),[2]}})})())];case 3:S.sent(),S.label=4;case 4:return i=!0,[3,2];case 5:return[3,8];case 6:return v=S.sent(),c=!0,u=v,[3,8];case 7:try{i||null==l.return||l.return()}finally{if(c)throw u}return[7];case 8:k=!0,g=!1,w=void 0,S.label=9;case 9:S.trys.push([9,14,15,16]),O=o.filter(function(e){return e.dev})[Symbol.iterator](),S.label=10;case 10:if(k=(x=O.next()).done)return[3,13];return P=(j=x.value).name,[4,(q=j.version,m(function(){return y(this,function(e){switch(e.label){case 0:return[4,h((0,s.format)('%s pkg set "devDependencies.%s"="%s"',t,P,q),{cwd:n})];case 1:return e.sent(),[2]}})})())];case 11:S.sent(),S.label=12;case 12:return k=!0,[3,10];case 13:return[3,16];case 14:return v=S.sent(),g=!0,w=v,[3,16];case 15:try{k||null==O.return||O.return()}finally{if(g)throw w}return[7];case 16:return[2]}})})()};function k(e,r,t,n,a,o,s){try{var i=e[o](s),c=i.value}catch(e){t(e);return}i.done?r(c):Promise.resolve(c).then(n,a)}function g(e){return function(){var r=this,t=arguments;return new Promise(function(n,a){var o=e.apply(r,t);function s(e){k(o,n,a,s,i,"next",e)}function i(e){k(o,n,a,s,i,"throw",e)}s(void 0)})}}function w(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}function O(e,r){var t,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(s,"next",{value:c(0)}),i(s,"throw",{value:c(1)}),i(s,"return",{value:c(2)}),"function"==typeof Symbol&&i(s,Symbol.iterator,{value:function(){return this}}),s;function c(i){return function(c){var u=[i,c];if(t)throw TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(o=0)),o;)try{if(t=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,n=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){o.label=u[1];break}if(6===u[0]&&o.label<a[1]){o.label=a[1],a=u;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(u);break}a[2]&&o.ops.pop(),o.trys.pop();continue}u=r.call(e,o)}catch(e){u=[6,e],n=0}finally{t=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var x=function(e){var r=e.npm;if(r!==i.NPM.npm&&r!==i.NPM.pnpm)throw Error();return{npm:r}},j=function(e){var r,t;return(null!=(r=null==(t=e.monorepo)?void 0:t.types)?r:[e.type]).map(function(r){var t,n,a,o,s=null==(n=e[r])?void 0:n.name;if(!s)throw Error();return{typeFrmwk:null!=(t=null==(a=e[r])?void 0:a.framework)?t:r,name:s,cwd:e.type!==i.meta.plugin.type.monorepo?".":s,ts:null==(o=e[r])?void 0:o.typescript}}).filter(function(e){return!(0,i.typeFrmwksSkip)(void 0,i.meta.plugin.option.builder,void 0).includes(e.typeFrmwk)})},P=function(e){var r=e.typeFrmwk,t=e.ts,n=e.cwd;return g(function(){var e,a;return O(this,function(o){switch(o.label){case 0:if(!(a=null!=(e=I[r])?e:I.def))throw Error();return[4,m(function(){var e,r,o,s,i,c;return y(this,function(u){switch(u.label){case 0:if(!(o=null!=(e=a[null!=t?t:"def"])?e:a.def))return[2];return s=(0,p.join)(null!=n?n:"",o.name),[4,(0,f.get)("".concat(E).concat(null!=(r=o.path)?r:""),{responseType:"text"})];case 1:if("string"!=typeof(c=b((i=u.sent()).data,ArrayBuffer)?new Uint8Array(i.data):i.data)&&!b(c,Uint8Array))throw Error();return[4,(0,l.writeFile)(s,c)];case 2:case 4:return u.sent(),[2];case 3:return u.sent(),[4,(0,l.rm)(s,{force:!0})]}})})()];case 1:return o.sent(),[2]}})})()},q=function(e){var r=e.typeFrmwk,t=e.ts,n=e.npm,a=e.cwd;return g(function(){return O(this,function(e){switch(e.label){case 0:return[4,m(function(){var e,t,o,i,c,u,l,p,f,d,b;return y(this,function(v){switch(v.label){case 0:if(!(t=null!=(e=F[null!=r?r:"def"])?e:F.def))return[2];o=!0,i=!1,c=void 0,v.label=1;case 1:v.trys.push([1,6,7,8]),u=t[Symbol.iterator](),v.label=2;case 2:if(o=(l=u.next()).done)return[3,5];return f=(p=l.value).name,[4,(d=p.script,m(function(){return y(this,function(e){switch(e.label){case 0:if(d)return[3,2];return[4,h((0,s.format)('%s pkg delete "scripts.%s"',n,f),{cwd:a})];case 1:case 3:return e.sent(),[2];case 2:return[4,h((0,s.format)('%s pkg set "scripts.%s"="%s"',n,f,d),{cwd:a})]}})})())];case 3:v.sent(),v.label=4;case 4:return o=!0,[3,2];case 5:return[3,8];case 6:return b=v.sent(),i=!0,c=b,[3,8];case 7:try{o||null==u.return||u.return()}finally{if(i)throw c}return[7];case 8:return[2]}})})()];case 1:return e.sent(),[4,v({pkgDeps:R},"pkgDeps",n,a)];case 2:if(e.sent(),t===i.meta.plugin.value.none)return[3,4];return[4,v({tsPkgDeps:C},"tsPkgDeps",n,a)];case 3:e.sent(),e.label=4;case 4:return[2]}})})()},S="Rspack";(0,i.regValue)({name:c,label:S,skips:[],keeps:[],requires:[],plugin:{name:"".concat(i.meta.plugin.option.builder,"_").concat(c),label:S,run:function(e){return g(function(){var r,t,n,a,i,u,l,p,f,d;return O(this,function(m){switch(m.label){case 0:(r=(0,o.spinner)()).start(),o.log.info((0,s.format)(N.pluginStart,this.label)),t=x(e),n=j(e),a=!0,i=!1,u=void 0,m.label=1;case 1:m.trys.push([1,7,8,9]),l=n[Symbol.iterator](),m.label=2;case 2:if(a=(p=l.next()).done)return[3,6];return f=p.value,o.log.info((0,s.format)(N.forType,f.name)),[4,P(w({},t,f))];case 3:return m.sent(),o.log.info(N.setPkg),[4,q(w({},t,f))];case 4:m.sent(),m.label=5;case 5:return a=!0,[3,2];case 6:return[3,9];case 7:return d=m.sent(),i=!0,u=d,[3,9];case 8:try{a||null==l.return||l.return()}finally{if(i)throw u}return[7];case 9:throw e[c]={},o.log.info((0,s.format)(N.pluginFinish,this.label)),r.stop(),Error()}})}).call(this)}}},i.meta.plugin.option.builder);var E="https://raw.githubusercontent.com/bradhezh/prj-template/master/rspk",T="rspack.config.ts",D="rspack.config.js",I={nest:{def:{name:T,path:"/be/meta/rspack.config.ts"}},express:{none:{name:D,path:"/be/no/rspack.config.js"},metadata:{name:T,path:"/be/meta/rspack.config.ts"},def:{name:T,path:"/be/ndec/rspack.config.ts"}},lib:{none:{name:D,path:"/lib/no/rspack.config.js"},metadata:{name:T,path:"/lib/meta/rspack.config.ts"},def:{name:T,path:"/lib/ndec/rspack.config.ts"}},cli:{none:{name:D,path:"/cli/no/rspack.config.js"},metadata:{name:T,path:"/cli/meta/rspack.config.ts"},def:{name:T,path:"/cli/ndec/rspack.config.ts"}},def:{none:{name:D,path:"/def/no/rspack.config.js"},metadata:{name:T,path:"/def/meta/rspack.config.ts"},def:{name:T,path:"/def/ndec/rspack.config.ts"}}},F={lib:[{name:"build",script:"rspack build && pnpm dlx del-cli 'dist/*.d.ts' '!dist/index.d.ts'"},{name:"dev",script:"rspack dev"},{name:"dev:cli",script:"CLI=true rspack dev"}],cli:[{name:"build",script:"rspack build"},{name:"dev",script:"rspack dev"}],def:[{name:"build",script:"rspack build"},{name:"dev",script:"rspack dev"},{name:"start",script:"node build/main.js"}]},R=[{name:"@rspack/cli",version:"^1",dev:!0},{name:"@rspack/core",version:"^1",dev:!0},{name:"run-script-webpack-plugin",version:"^0",dev:!0},{name:"webpack-node-externals",version:"^3",dev:!0}],C=[{name:"@types/webpack-node-externals",version:"^3",dev:!0},{name:"ts-checker-rspack-plugin",version:"^1",dev:!0}],N=(e=w({},{validate:"Option required.",type:{label:"Project type"},monorepo:{name:{label:"Monorepo name"},types:{label:"Types in monorepo"}},optional:{hint:"Optional options: %s",options:{label:"Configure them one by one, or choose none of them (except required ones)?"},defaults:{label:"Accept defaults, or configure them one by one, or choose none of them (except required ones)?"}},opCanceled:"Operation cancelled.",cwdNonEmpty:"Current work directory must be empty.",pmUnsupported:"Only npm or pnpm supported for now.",pnpmRequired:"Only pnpm supported for monorepo for now.",elemExist:"Element exists already.",refsRequired:'When using "after", reference elements must be specified.',circularDep:"Circular dependency.",afterLast:"Element cannot be after ones as the last.",invSkipOrKeep:"Invalid skip or keep.",invElem:"Invalid element.",sysType:"Type cannot be registered with a system name.",typeNotExist:"Type does not exist.",typeRequired:"Type must be specified for type options.",sysConfKey:"Option cannot be registered with a system name.",optionNotExist:"Option does not exist.",optionConflict:"Option conflict between compulsory and optional ones.",valueNotExist:"Value does not exist.",invFormat:"Invalid format of %s.",userGot:"Paste your username: ",userRequired:"Username required.",readTokenGot:"Paste your read-only token: ",readTokenRequired:"Read-only token required.",tokenGot:"Paste your read-write token: ",tokenRequired:"Read-write token required.",pluginStart:"Configuring %s",setPkg:"Setting packages",setWkspace:"Setting workspace",setShared:"Setting shared",pluginFinish:"%s completed!"}),r=r={forType:'for "%s"'},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e)})();
|
|
2
2
|
//# sourceMappingURL=101-rspack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins/101-rspack.js","sources":["webpack://@bradhezh/create-prj/webpack/runtime/rspack_version","webpack://@bradhezh/create-prj/webpack/runtime/rspack_unique_id","webpack://@bradhezh/create-prj/./src/plugins/const.ts","webpack://@bradhezh/create-prj/./src/command.ts","webpack://@bradhezh/create-prj/./src/plugins/101-rspack.ts","webpack://@bradhezh/create-prj/./src/message.ts"],"sourcesContent":["__webpack_require__.rv = () => (\"1.7.3\")","__webpack_require__.ruid = \"bundler=rspack@1.7.3\";","import { meta, Conf } from \"@/registry\";\n\nexport const option = { deploySrc: \"deploySrc\", gitVis: \"gitVis\" } as const;\n\nexport const value = {\n framework: {\n express: \"express\",\n nest: \"nest\",\n react: \"react\",\n next: \"next\",\n expo: \"expo\",\n },\n typescript: { nodec: \"nodec\", metadata: \"metadata\" },\n deployment: {\n render: \"render\",\n vercel: \"vercel\",\n expo: \"expo\",\n npmjs: \"npmjs\",\n },\n deploySrc: { dkrhub: \"dkrhub\", ghcr: \"ghcr\", repo: \"repo\" },\n orm: { prisma: \"prisma\" },\n builder: { rspack: \"rspack\" },\n test: { jest: \"jest\" },\n lint: { eslint: \"eslint\" },\n git: { github: \"github\", gitlab: \"gitlab\" },\n gitVis: { public: \"public\", private: \"private\" },\n cicd: { gha: \"gha\", circle: \"circle\" },\n done: \"done\",\n} as const;\n\nexport type RenderValue =\n | { owner: string; service: string; token: string; cred?: string }\n | undefined;\nexport type VercelValue =\n | { org?: string; project?: string; token?: string }\n | undefined;\nexport type ExpoValue = { token?: string } | undefined;\nexport type DkrValue =\n | {\n user: string;\n readToken: string;\n image?: string;\n token?: string;\n registry?: string;\n }\n | undefined;\nexport type GitSvcValue =\n | { repo?: string; readToken?: string; token?: string }\n | undefined;\n\nexport const valid = (conf: Conf[string]) => {\n return !!(\n conf &&\n ((typeof conf === \"string\" && conf !== meta.plugin.value.none) ||\n (Array.isArray(conf) && conf.length) ||\n typeof conf === \"object\")\n );\n};\n","import { exec as execAsync } from \"node:child_process\";\nimport { promisify, format } from \"node:util\";\nimport { mkdir, readFile, writeFile, rm, access } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { get } from \"axios\";\nimport open from \"open\";\nimport Json from \"comment-json\";\nimport Yaml from \"yaml\";\nimport { createInterface } from \"node:readline/promises\";\nimport { group, text, password, cancel, spinner } from \"@clack/prompts\";\n\nimport { meta, NPM } from \"@/registry\";\nimport { message } from \"@/message\";\n\nconst exec = promisify(execAsync);\n\nconst command = {\n volta: \"volta -v\",\n node: \"node -v\",\n npm: `%s -v`,\n pnpm: \"pnpm -v\",\n setPkgName: '%s pkg set name=\"%s\"',\n setPkgVoltaNode: '%s pkg set \"volta.node\"=\"%s\"',\n setPkgVoltaNpm: '%s pkg set \"volta.%s\"=\"%s\"',\n setPkgPkgMgr: '%s pkg set packageManager=\"%s@%s\"',\n setPkgScript: '%s pkg set \"scripts.%s\"=\"%s\"',\n getPkgScript: '%s pkg get \"scripts.%s\"',\n rmPkgScript: '%s pkg delete \"scripts.%s\"',\n setPkgDeps: '%s pkg set \"dependencies.%s\"=\"%s\"',\n setPkgDevDeps: '%s pkg set \"devDependencies.%s\"=\"%s\"',\n setPkgBin: '%s pkg set \"bin.%s\"=\"%s\"',\n rmNodeLinker: \"pnpm config --location project delete node-linker\",\n tar: \"tar -xvf %s\",\n} as const;\n\nexport const setPkgName = async (name: string, npm: NPM, cwd?: string) => {\n await exec(format(command.setPkgName, npm, name), { cwd });\n};\n\nlet volta: boolean | undefined;\n\nexport const setPkgVers = async (npm: NPM, cwd?: string) => {\n void (\n volta !== undefined ||\n (volta = await exec(command.volta)\n .then(() => true)\n .catch(() => false))\n );\n if (volta) {\n const node = (await exec(command.node)).stdout.trim();\n await exec(\n format(\n command.setPkgVoltaNode,\n npm,\n !node.startsWith(\"v\") ? node : node.slice(1),\n ),\n { cwd },\n );\n const npmV = (await exec(format(command.npm, npm))).stdout.trim();\n await exec(\n format(\n command.setPkgVoltaNpm,\n npm,\n npm,\n !npmV.startsWith(\"v\") ? npmV : npmV.slice(1),\n ),\n { cwd },\n );\n }\n\n if (npm !== NPM.pnpm) {\n return;\n }\n const pnpm = (await exec(command.pnpm)).stdout.trim();\n await exec(\n format(\n command.setPkgPkgMgr,\n NPM.pnpm,\n NPM.pnpm,\n !pnpm.startsWith(\"v\") ? pnpm : pnpm.slice(1),\n ),\n { cwd },\n );\n};\n\nexport const setPkgScript = async (\n name: string,\n script: string | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n if (!script) {\n await exec(format(command.rmPkgScript, npm, name), { cwd });\n return;\n }\n await exec(format(command.setPkgScript, npm, name, script), { cwd });\n};\n\nexport const getPkgScript = async (name: string, npm: NPM, cwd?: string) => {\n const script = (\n await exec(format(command.getPkgScript, npm, name), { cwd })\n ).stdout.trim();\n return script === \"{}\" ? undefined : script;\n};\n\ntype Script = { name: string; script?: string };\nexport const defKey = \"def\" as const;\nexport type Scripts<T extends string> = Partial<\n Record<T | typeof defKey, readonly Script[]>\n>;\n\nexport const setPkgScripts = async <K extends string, T extends Scripts<K>>(\n scripts: T & {\n [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never;\n },\n key: K | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n const scripts0 = scripts[key ?? defKey] ?? scripts.def;\n if (!scripts0) {\n return;\n }\n for (const { name, script } of scripts0) {\n await setPkgScript(name, script, npm, cwd);\n }\n};\n\nexport const setPkgDep = async (\n name: string,\n version: string,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(format(command.setPkgDeps, npm, name, version), { cwd });\n};\n\nexport const setPkgDevDep = async (\n name: string,\n version: string,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(format(command.setPkgDevDeps, npm, name, version), { cwd });\n};\n\ntype PkgDep = { name: string; version: string; dev?: boolean };\nexport type PkgDeps<T extends string> = Partial<\n Record<T | typeof defKey, readonly PkgDep[]>\n>;\n\nexport const setPkgDeps = async <K extends string, T extends PkgDeps<K>>(\n deps: T & { [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never },\n key: K | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n const deps0 = deps[key ?? defKey] ?? deps.def;\n if (!deps0) {\n return;\n }\n for (const { name, version } of deps0.filter((e) => !e.dev)) {\n await setPkgDep(name, version, npm, cwd);\n }\n for (const { name, version } of deps0.filter((e) => e.dev)) {\n await setPkgDevDep(name, version, npm, cwd);\n }\n};\n\nexport const setPkgBin = async (\n name: string,\n script: string | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(\n format(\n command.setPkgBin,\n npm,\n !name.includes(\"/\") ? name : name.split(\"/\").pop(),\n script ?? \"dist/index.js\",\n ),\n { cwd },\n );\n};\n\nconst workspace = \"pnpm-workspace.yaml\" as const;\n\nexport const createWkspace = async (pkgs: readonly string[]) => {\n const packages = pkgs.length <= 1 ? pkgs : [...pkgs, meta.system.type.shared];\n for (const pkg of packages) {\n await mkdir(pkg);\n }\n await writeFile(workspace, Yaml.stringify({ packages }));\n};\n\nexport const addPkgInWkspace = async (pkg: string) => {\n const doc = Yaml.parse(\n await readFile(workspace, \"utf8\").catch(() => \"{}\"),\n ) as unknown;\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, workspace));\n }\n const doc0 = doc as Record<string, unknown>;\n void (doc0.packages || (doc0.packages = []));\n if (!Array.isArray(doc0.packages)) {\n throw new Error(format(message.invFormat, workspace));\n }\n doc0.packages.push(pkg);\n await writeFile(workspace, Yaml.stringify(doc));\n};\n\nexport const addOnlyBuiltDeps = async (deps: readonly string[]) => {\n const doc = Yaml.parse(\n await readFile(workspace, \"utf8\").catch(() => \"{}\"),\n ) as unknown;\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, workspace));\n }\n const doc0 = doc as Record<string, unknown>;\n void (doc0.onlyBuiltDependencies || (doc0.onlyBuiltDependencies = []));\n if (!Array.isArray(doc0.onlyBuiltDependencies)) {\n throw new Error(format(message.invFormat, workspace));\n }\n doc0.onlyBuiltDependencies.push(...deps);\n await writeFile(workspace, Yaml.stringify(doc));\n};\n\nexport const rmPnpmNodeLinker = async () => {\n await exec(command.rmNodeLinker);\n};\n\nexport type BuiltDeps<T extends string> = Partial<\n Record<T | typeof defKey, readonly string[]>\n>;\n\nexport const setWkspaceBuiltDeps = async <\n K extends string,\n T extends BuiltDeps<K>,\n>(\n deps: T & { [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never },\n key?: K,\n) => {\n const deps0 = deps[key ?? defKey] ?? deps.def;\n if (!deps0) {\n return;\n }\n await addOnlyBuiltDeps(deps0);\n};\n\nconst tsconfig = \"tsconfig.json\" as const;\n\nexport const setTsOptions = async (options: object, cwd?: string) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions = { ...doc.compilerOptions, ...options };\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\ntype PathAlias = Record<string, readonly string[]>;\n\nexport const setPathAlias = async (\n base: string,\n pathAlias: PathAlias,\n cwd?: string,\n) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions.baseUrl = base;\n doc.compilerOptions.paths = pathAlias as Json.CommentObject;\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\nexport const addPathAlias = async (\n name: string,\n paths: readonly string[],\n cwd?: string,\n) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions.paths ||\n (doc.compilerOptions.paths = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions.paths !== \"object\" ||\n doc.compilerOptions.paths === null ||\n Array.isArray(doc.compilerOptions.paths)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions.paths[name] = paths as Json.CommentArray<string>;\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\nconst src = \"src\" as const;\nconst pathAliasWithShared = { \"@/*\": [\"\"], \"@shared/*\": [\"shared/src/*\"] };\n\nexport const setPathAliasWithShared = async (cwd: string) => {\n await access(join(cwd, src))\n .then(() => (pathAliasWithShared[\"@/*\"][0] = format(`%s/${src}/*`, cwd)))\n .catch(() => (pathAliasWithShared[\"@/*\"][0] = format(\"%s/*\", cwd)));\n await setPathAlias(\"..\", pathAliasWithShared, cwd);\n};\n\nconst cfgDir = \".bradhezh-create-prj\" as const;\nconst config = \"config.json\" as const;\n\nexport const getCfg = async (path?: string) => {\n const doc = Json.parse(\n await readFile(join(homedir(), cfgDir, config), \"utf-8\").catch(() => \"{}\"),\n );\n if (!path) {\n return doc;\n }\n let value = doc;\n for (const key of path.split(\".\")) {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return;\n }\n value = value[key];\n }\n return value;\n};\n\nexport const setCfg = async (value: Json.CommentJSONValue, path?: string) => {\n await mkdir(join(homedir(), cfgDir), { recursive: true });\n const file = join(homedir(), cfgDir, config);\n let doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (!path) {\n doc = value;\n } else {\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n doc = {} as Json.CommentObject;\n }\n let obj = doc;\n const keys = path.split(\".\");\n const last = keys.pop()!;\n for (const key of keys) {\n if (\n typeof obj[key] !== \"object\" ||\n obj[key] === null ||\n Array.isArray(obj[key])\n ) {\n obj[key] = {} as Json.CommentObject;\n }\n obj = obj[key];\n }\n obj[last] = value;\n }\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\ntype Tmplt = { name: string; path?: string };\nexport type Template<T extends string> = Partial<\n Record<T | typeof defKey, Tmplt>\n>;\n\nexport const installTmplt = async <K extends string, T extends Template<K>>(\n base: string,\n template: T & {\n [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never;\n },\n key?: K,\n cwd?: string,\n tar?: boolean,\n) => {\n const tmplt = template[key ?? defKey] ?? template.def;\n if (!tmplt) {\n return;\n }\n const file = join(cwd ?? \"\", tmplt.name);\n const res = await get<unknown>(`${base}${tmplt.path ?? \"\"}`, {\n responseType: tar ? \"arraybuffer\" : \"text\",\n });\n const data = !(res.data instanceof ArrayBuffer)\n ? res.data\n : new Uint8Array(res.data);\n if (typeof data !== \"string\" && !(data instanceof Uint8Array)) {\n throw new Error();\n }\n await writeFile(file, data);\n if (!tar) {\n return;\n }\n await exec(format(command.tar, tmplt.name), { cwd });\n await rm(file, { force: true });\n};\n\nexport enum AuthKey {\n user = \"user\",\n readToken = \"readToken\",\n token = \"token\",\n}\ntype Auth = Partial<Record<AuthKey, string>>;\ntype AuthCfgPath = Auth;\ntype Spinner = ReturnType<typeof spinner>;\n\nexport const auth = async (\n path: AuthCfgPath,\n ini: Auth,\n hint: string,\n tokenUrl: string,\n s?: Spinner,\n) => {\n const value = await authGot(path, ini);\n if (\n (!path.user || value.user) &&\n (!path.readToken || value.readToken) &&\n (!path.token || value.token)\n ) {\n return value;\n }\n s?.stop();\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n await rl.question(hint);\n rl.close();\n if ((path.readToken && !value.readToken) || (path.token && !value.token)) {\n await open(tokenUrl);\n }\n const answer = await authPrompt(\n !!(path.user && !value.user),\n !!(path.readToken && !value.readToken),\n !!(path.token && !value.token),\n );\n s?.start();\n await setAuth(value, path, answer);\n return value;\n};\n\nconst authGot = async (path: AuthCfgPath, ini: Auth) => {\n if (!path.user && !path.readToken && !path.token) {\n return {};\n }\n const user = path.user && (ini.user || (await getCfg(path.user)));\n const readToken =\n path.readToken && (ini.readToken || (await getCfg(path.readToken)));\n const token = path.token && (ini.token || (await getCfg(path.token)));\n if (\n (typeof user !== \"string\" && typeof user !== \"undefined\") ||\n (typeof readToken !== \"string\" && typeof readToken !== \"undefined\") ||\n (typeof token !== \"string\" && typeof token !== \"undefined\")\n ) {\n throw new Error();\n }\n return { user, readToken, token };\n};\n\nconst authPrompt = (\n forUser: boolean,\n forReadToken: boolean,\n forToken: boolean,\n) => {\n return group(\n {\n ...(forUser && {\n user: () =>\n text({\n message: message.userGot,\n validate: (value?: string) =>\n value ? undefined : message.userRequired,\n }),\n }),\n ...(forReadToken && {\n readToken: () =>\n password({\n message: message.readTokenGot,\n mask: \"*\",\n validate: (value?: string) =>\n value ? undefined : message.readTokenRequired,\n }),\n }),\n ...(forToken && {\n token: () =>\n password({\n message: message.tokenGot,\n mask: \"*\",\n validate: (value?: string) =>\n value ? undefined : message.tokenRequired,\n }),\n }),\n },\n { onCancel },\n );\n};\n\nconst setAuth = async (auth: Auth, path: AuthCfgPath, answer: Auth) => {\n if (path.user && !auth.user) {\n if (!answer.user) {\n throw new Error();\n }\n auth.user = answer.user;\n await setCfg(auth.user, path.user);\n }\n if (path.readToken && !auth.readToken) {\n if (!answer.readToken) {\n throw new Error();\n }\n auth.readToken = answer.readToken;\n await setCfg(auth.readToken, path.readToken);\n }\n if (path.token && !auth.token) {\n if (!answer.token) {\n throw new Error();\n }\n auth.token = answer.token;\n await setCfg(auth.token, path.token);\n }\n};\n\nexport const onCancel = () => {\n cancel(message.opCanceled);\n process.exit(0);\n};\n","import { log, spinner } from \"@clack/prompts\";\nimport { format } from \"node:util\";\n\nimport { value } from \"./const\";\nimport {\n regValue,\n typeFrmwksSkip,\n meta,\n NPM,\n Conf,\n Plugin,\n PrimeType,\n} from \"@/registry\";\nimport {\n installTmplt,\n setPkgScripts,\n setPkgDeps,\n defKey,\n Template,\n} from \"@/command\";\nimport { message as msg } from \"@/message\";\n\nasync function run(this: Plugin, conf: Conf) {\n const s = spinner();\n s.start();\n log.info(format(message.pluginStart, this.label));\n\n const conf0 = parseConf(conf);\n const types = parseType(conf);\n\n for (const type of types) {\n log.info(format(message.forType, type.name));\n await install({ ...conf0, ...type });\n log.info(message.setPkg);\n await setPkg({ ...conf0, ...type });\n }\n conf[value.builder.rspack] = {};\n\n log.info(format(message.pluginFinish, this.label));\n s.stop();\n}\n\nconst parseConf = (conf: Conf) => {\n const npm = conf.npm;\n if (npm !== NPM.npm && npm !== NPM.pnpm) {\n throw new Error();\n }\n return { npm };\n};\n\nconst parseType = (conf: Conf) => {\n const types = ((conf.monorepo?.types ?? [conf.type]) as PrimeType[])\n .map((e) => {\n const name = conf[e]?.name;\n if (!name) {\n throw new Error();\n }\n return {\n typeFrmwk: (conf[e]?.framework ?? e) as TypeFrmwk,\n name,\n cwd: conf.type !== meta.plugin.type.monorepo ? \".\" : name,\n ts: conf[e]?.typescript as Ts,\n };\n })\n .filter(\n (e) =>\n !typeFrmwksSkip(\n undefined,\n meta.plugin.option.builder,\n undefined,\n ).includes(e.typeFrmwk),\n );\n return types;\n};\n\ntype InstallData = { typeFrmwk: TypeFrmwk; ts: Ts; cwd: string };\n\nconst install = async ({ typeFrmwk, ts, cwd }: InstallData) => {\n const tmplt = template[typeFrmwk] ?? template.def;\n if (!tmplt) {\n throw new Error();\n }\n await installTmplt(base, tmplt, ts, cwd);\n};\n\ntype PkgData = { typeFrmwk: TypeFrmwk; ts: Ts; npm: NPM; cwd: string };\n\nconst setPkg = async ({ typeFrmwk, ts, npm, cwd }: PkgData) => {\n await setPkgScripts(scripts, typeFrmwk, npm, cwd);\n await setPkgDeps({ pkgDeps }, \"pkgDeps\", npm, cwd);\n if (ts !== meta.plugin.value.none) {\n await setPkgDeps({ tsPkgDeps }, \"tsPkgDeps\", npm, cwd);\n }\n};\n\nconst label = \"Rspack\" as const;\n\nregValue(\n {\n name: value.builder.rspack,\n label,\n skips: [],\n keeps: [],\n requires: [],\n plugin: {\n name: `${meta.plugin.option.builder}_${value.builder.rspack}`,\n label,\n run,\n },\n },\n meta.plugin.option.builder,\n);\n\nconst base =\n \"https://raw.githubusercontent.com/bradhezh/prj-template/master/rspk\" as const;\nconst name = \"rspack.config.ts\" as const;\nconst nameJs = \"rspack.config.js\" as const;\n\ntype TypeFrmwk = PrimeType | keyof typeof value.framework;\ntype TypeFrmwkKey = TypeFrmwk | typeof defKey;\ntype Ts =\n | keyof typeof value.typescript\n | typeof meta.plugin.value.none\n | undefined;\ntype TsKey = NonNullable<Ts> | typeof defKey;\nconst template: Partial<Record<TypeFrmwkKey, Template<TsKey>>> = {\n nest: { def: { name, path: \"/be/meta/rspack.config.ts\" } },\n express: {\n none: { name: nameJs, path: \"/be/no/rspack.config.js\" },\n metadata: { name, path: \"/be/meta/rspack.config.ts\" },\n def: { name, path: \"/be/ndec/rspack.config.ts\" },\n },\n lib: {\n none: { name: nameJs, path: \"/lib/no/rspack.config.js\" },\n metadata: { name, path: \"/lib/meta/rspack.config.ts\" },\n def: { name, path: \"/lib/ndec/rspack.config.ts\" },\n },\n cli: {\n none: { name: nameJs, path: \"/cli/no/rspack.config.js\" },\n metadata: { name, path: \"/cli/meta/rspack.config.ts\" },\n def: { name, path: \"/cli/ndec/rspack.config.ts\" },\n },\n def: {\n none: { name: nameJs, path: \"/def/no/rspack.config.js\" },\n metadata: { name, path: \"/def/meta/rspack.config.ts\" },\n def: { name, path: \"/def/ndec/rspack.config.ts\" },\n },\n} as const;\n\nconst scripts = {\n lib: [\n {\n name: \"build\",\n script:\n \"rspack build && pnpm dlx del-cli 'dist/*.d.ts' '!dist/index.d.ts'\",\n },\n { name: \"dev\", script: \"rspack dev\" },\n { name: \"dev:cli\", script: \"CLI=true rspack dev\" },\n ],\n cli: [\n { name: \"build\", script: \"rspack build\" },\n { name: \"dev\", script: \"rspack dev\" },\n ],\n def: [\n { name: \"build\", script: \"rspack build\" },\n { name: \"dev\", script: \"rspack dev\" },\n { name: \"start\", script: \"node build/main.js\" },\n ],\n} as const;\n\nconst pkgDeps = [\n { name: \"@rspack/cli\", version: \"^1\", dev: true },\n { name: \"@rspack/core\", version: \"^1\", dev: true },\n { name: \"run-script-webpack-plugin\", version: \"^0\", dev: true },\n { name: \"webpack-node-externals\", version: \"^3\", dev: true },\n] as const;\n\nconst tsPkgDeps = [\n { name: \"@types/webpack-node-externals\", version: \"^3\", dev: true },\n { name: \"ts-checker-rspack-plugin\", version: \"^1\", dev: true },\n] as const;\n\nconst message = {\n ...msg,\n forType: 'for \"%s\"',\n} as const;\n","export const message = {\n validate: \"Option required.\",\n type: { label: \"Project type\" },\n monorepo: {\n name: { label: \"Monorepo name\" },\n types: { label: \"Types in monorepo\" },\n },\n optional: {\n hint: \"Optional options: %s\",\n options: {\n label:\n \"Configure them one by one, or choose none of them (except required ones)?\",\n },\n defaults: {\n label:\n \"Accept defaults, or configure them one by one, or choose none of them (except required ones)?\",\n },\n },\n opCanceled: \"Operation cancelled.\",\n cwdNonEmpty: \"Current work directory must be empty.\",\n pmUnsupported: \"Only npm or pnpm supported for now.\",\n pnpmRequired: \"Only pnpm supported for monorepo for now.\",\n elemExist: \"Element exists already.\",\n refsRequired: 'When using \"after\", reference elements must be specified.',\n circularDep: \"Circular dependency.\",\n afterLast: \"Element cannot be after ones as the last.\",\n invSkipOrKeep: \"Invalid skip or keep.\",\n invElem: \"Invalid element.\",\n sysType: \"Type cannot be registered with a system name.\",\n typeNotExist: \"Type does not exist.\",\n typeRequired: \"Type must be specified for type options.\",\n sysConfKey: \"Option cannot be registered with a system name.\",\n optionNotExist: \"Option does not exist.\",\n optionConflict: \"Option conflict between compulsory and optional ones.\",\n valueNotExist: \"Value does not exist.\",\n invFormat: \"Invalid format of %s.\",\n userGot: \"Paste your username: \",\n userRequired: \"Username required.\",\n readTokenGot: \"Paste your read-only token: \",\n readTokenRequired: \"Read-only token required.\",\n tokenGot: \"Paste your read-write token: \",\n tokenRequired: \"Read-write token required.\",\n pluginStart: \"Configuring %s\",\n setPkg: \"Setting packages\",\n setWkspace: \"Setting workspace\",\n setShared: \"Setting shared\",\n pluginFinish: \"%s completed!\",\n} as const;\n"],"names":["exec","promisify","execAsync","setPkgDeps","deps","key","npm","cwd","_deps_","deps0","_iteratorError","name","version","_iteratorError1","name1","version1","e","format","parseConf","conf","NPM","Error","parseType","_conf_monorepo","_conf_e","_conf_e1","_conf_e2","meta","typeFrmwksSkip","undefined","install","typeFrmwk","ts","_template_typeFrmwk","tmplt","template","_template_","_tmplt_path","file","res","data","join","get","base","_instanceof","ArrayBuffer","Uint8Array","writeFile","rm","setPkg","_scripts_","scripts0","script","scripts","pkgDeps","tsPkgDeps","label","regValue","value","run","s","conf0","types","type","spinner","log","message","nameJs","msg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugins/101-rspack.js","sources":["webpack://@bradhezh/create-prj/webpack/runtime/rspack_version","webpack://@bradhezh/create-prj/webpack/runtime/rspack_unique_id","webpack://@bradhezh/create-prj/./src/plugins/const.ts","webpack://@bradhezh/create-prj/./src/command.ts","webpack://@bradhezh/create-prj/./src/plugins/101-rspack.ts","webpack://@bradhezh/create-prj/./src/message.ts"],"sourcesContent":["__webpack_require__.rv = () => (\"1.7.3\")","__webpack_require__.ruid = \"bundler=rspack@1.7.3\";","import { meta, Conf } from \"@/registry\";\n\nexport const option = { deploySrc: \"deploySrc\", gitVis: \"gitVis\" } as const;\n\nexport const value = {\n framework: {\n express: \"express\",\n nest: \"nest\",\n react: \"react\",\n next: \"next\",\n expo: \"expo\",\n },\n typescript: { nodec: \"nodec\", metadata: \"metadata\" },\n deployment: {\n render: \"render\",\n vercel: \"vercel\",\n expo: \"expo\",\n npmjs: \"npmjs\",\n },\n deploySrc: { dkrhub: \"dkrhub\", ghcr: \"ghcr\", repo: \"repo\" },\n orm: { prisma: \"prisma\" },\n builder: { rspack: \"rspack\" },\n test: { jest: \"jest\" },\n lint: { eslint: \"eslint\" },\n git: { github: \"github\", gitlab: \"gitlab\" },\n gitVis: { public: \"public\", private: \"private\" },\n cicd: { gha: \"gha\", circle: \"circle\" },\n done: \"done\",\n} as const;\n\nexport type RenderValue =\n | { owner: string; service: string; token: string; cred?: string }\n | undefined;\nexport type VercelValue =\n | { org?: string; project?: string; token?: string }\n | undefined;\nexport type ExpoValue = { token?: string } | undefined;\nexport type DkrValue =\n | {\n user: string;\n readToken: string;\n image?: string;\n token?: string;\n registry?: string;\n }\n | undefined;\nexport type GitSvcValue =\n | { repo?: string; readToken?: string; token?: string }\n | undefined;\n\nexport const valid = (conf: Conf[string]) => {\n return !!(\n conf &&\n ((typeof conf === \"string\" && conf !== meta.plugin.value.none) ||\n (Array.isArray(conf) && conf.length) ||\n typeof conf === \"object\")\n );\n};\n","import { exec as execAsync } from \"node:child_process\";\nimport { promisify, format } from \"node:util\";\nimport { mkdir, readFile, writeFile, rm, access } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { get } from \"axios\";\nimport open from \"open\";\nimport Json from \"comment-json\";\nimport Yaml from \"yaml\";\nimport { createInterface } from \"node:readline/promises\";\nimport { group, text, password, cancel, spinner } from \"@clack/prompts\";\n\nimport { meta, NPM } from \"@/registry\";\nimport { message } from \"@/message\";\n\nconst exec = promisify(execAsync);\n\nconst command = {\n volta: \"volta -v\",\n node: \"node -v\",\n npm: `%s -v`,\n pnpm: \"pnpm -v\",\n setPkgName: '%s pkg set name=\"%s\"',\n setPkgVoltaNode: '%s pkg set \"volta.node\"=\"%s\"',\n setPkgVoltaNpm: '%s pkg set \"volta.%s\"=\"%s\"',\n setPkgPkgMgr: '%s pkg set packageManager=\"%s@%s\"',\n setPkgScript: '%s pkg set \"scripts.%s\"=\"%s\"',\n getPkgScript: '%s pkg get \"scripts.%s\"',\n rmPkgScript: '%s pkg delete \"scripts.%s\"',\n setPkgDeps: '%s pkg set \"dependencies.%s\"=\"%s\"',\n setPkgDevDeps: '%s pkg set \"devDependencies.%s\"=\"%s\"',\n setPkgBin: '%s pkg set \"bin.%s\"=\"%s\"',\n rmNodeLinker: \"pnpm config --location project delete node-linker\",\n tar: \"tar -xvf %s\",\n} as const;\n\nexport const setPkgName = async (name: string, npm: NPM, cwd?: string) => {\n await exec(format(command.setPkgName, npm, name), { cwd });\n};\n\nlet volta: boolean | undefined;\n\nexport const setPkgVers = async (npm: NPM, cwd?: string) => {\n void (\n volta !== undefined ||\n (volta = await exec(command.volta)\n .then(() => true)\n .catch(() => false))\n );\n if (volta) {\n const node = (await exec(command.node)).stdout.trim();\n await exec(\n format(\n command.setPkgVoltaNode,\n npm,\n !node.startsWith(\"v\") ? node : node.slice(1),\n ),\n { cwd },\n );\n const npmV = (await exec(format(command.npm, npm))).stdout.trim();\n await exec(\n format(\n command.setPkgVoltaNpm,\n npm,\n npm,\n !npmV.startsWith(\"v\") ? npmV : npmV.slice(1),\n ),\n { cwd },\n );\n }\n\n if (npm !== NPM.pnpm) {\n return;\n }\n const pnpm = (await exec(command.pnpm)).stdout.trim();\n await exec(\n format(\n command.setPkgPkgMgr,\n NPM.pnpm,\n NPM.pnpm,\n !pnpm.startsWith(\"v\") ? pnpm : pnpm.slice(1),\n ),\n { cwd },\n );\n};\n\nexport const setPkgScript = async (\n name: string,\n script: string | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n if (!script) {\n await exec(format(command.rmPkgScript, npm, name), { cwd });\n return;\n }\n await exec(format(command.setPkgScript, npm, name, script), { cwd });\n};\n\nexport const getPkgScript = async (name: string, npm: NPM, cwd?: string) => {\n const script = (\n await exec(format(command.getPkgScript, npm, name), { cwd })\n ).stdout.trim();\n return script === \"{}\" ? undefined : script;\n};\n\ntype Script = { name: string; script?: string };\nexport const defKey = \"def\" as const;\nexport type Scripts<T extends string> = Partial<\n Record<T | typeof defKey, readonly Script[]>\n>;\n\nexport const setPkgScripts = async <K extends string, T extends Scripts<K>>(\n scripts: T & {\n [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never;\n },\n key: K | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n const scripts0 = scripts[key ?? defKey] ?? scripts.def;\n if (!scripts0) {\n return;\n }\n for (const { name, script } of scripts0) {\n await setPkgScript(name, script, npm, cwd);\n }\n};\n\nexport const setPkgDep = async (\n name: string,\n version: string,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(format(command.setPkgDeps, npm, name, version), { cwd });\n};\n\nexport const setPkgDevDep = async (\n name: string,\n version: string,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(format(command.setPkgDevDeps, npm, name, version), { cwd });\n};\n\ntype PkgDep = { name: string; version: string; dev?: boolean };\nexport type PkgDeps<T extends string> = Partial<\n Record<T | typeof defKey, readonly PkgDep[]>\n>;\n\nexport const setPkgDeps = async <K extends string, T extends PkgDeps<K>>(\n deps: T & { [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never },\n key: K | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n const deps0 = deps[key ?? defKey] ?? deps.def;\n if (!deps0) {\n return;\n }\n for (const { name, version } of deps0.filter((e) => !e.dev)) {\n await setPkgDep(name, version, npm, cwd);\n }\n for (const { name, version } of deps0.filter((e) => e.dev)) {\n await setPkgDevDep(name, version, npm, cwd);\n }\n};\n\nexport const setPkgBin = async (\n name: string,\n script: string | undefined,\n npm: NPM,\n cwd?: string,\n) => {\n await exec(\n format(\n command.setPkgBin,\n npm,\n !name.includes(\"/\") ? name : name.split(\"/\").pop(),\n script ?? \"dist/index.js\",\n ),\n { cwd },\n );\n};\n\nconst workspace = \"pnpm-workspace.yaml\" as const;\n\nexport const createWkspace = async (pkgs: readonly string[]) => {\n const packages = pkgs.length <= 1 ? pkgs : [...pkgs, meta.system.type.shared];\n for (const pkg of packages) {\n await mkdir(pkg);\n }\n await writeFile(workspace, Yaml.stringify({ packages }));\n};\n\nexport const addPkgInWkspace = async (pkg: string) => {\n const doc = Yaml.parse(\n await readFile(workspace, \"utf8\").catch(() => \"{}\"),\n ) as unknown;\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, workspace));\n }\n const doc0 = doc as Record<string, unknown>;\n void (doc0.packages || (doc0.packages = []));\n if (!Array.isArray(doc0.packages)) {\n throw new Error(format(message.invFormat, workspace));\n }\n doc0.packages.push(pkg);\n await writeFile(workspace, Yaml.stringify(doc));\n};\n\nexport const addOnlyBuiltDeps = async (deps: readonly string[]) => {\n const doc = Yaml.parse(\n await readFile(workspace, \"utf8\").catch(() => \"{}\"),\n ) as unknown;\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, workspace));\n }\n const doc0 = doc as Record<string, unknown>;\n void (doc0.onlyBuiltDependencies || (doc0.onlyBuiltDependencies = []));\n if (!Array.isArray(doc0.onlyBuiltDependencies)) {\n throw new Error(format(message.invFormat, workspace));\n }\n doc0.onlyBuiltDependencies.push(...deps);\n await writeFile(workspace, Yaml.stringify(doc));\n};\n\nexport const rmPnpmNodeLinker = async () => {\n await exec(command.rmNodeLinker);\n};\n\nexport type BuiltDeps<T extends string> = Partial<\n Record<T | typeof defKey, readonly string[]>\n>;\n\nexport const setWkspaceBuiltDeps = async <\n K extends string,\n T extends BuiltDeps<K>,\n>(\n deps: T & { [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never },\n key?: K,\n) => {\n const deps0 = deps[key ?? defKey] ?? deps.def;\n if (!deps0) {\n return;\n }\n await addOnlyBuiltDeps(deps0);\n};\n\nconst tsconfig = \"tsconfig.json\" as const;\n\nexport const setTsOptions = async (options: object, cwd?: string) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions = { ...doc.compilerOptions, ...options };\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\ntype PathAlias = Record<string, readonly string[]>;\n\nexport const setPathAlias = async (\n base: string,\n pathAlias: PathAlias,\n cwd?: string,\n) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions.baseUrl = base;\n doc.compilerOptions.paths = pathAlias as Json.CommentObject;\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\nexport const addPathAlias = async (\n name: string,\n paths: readonly string[],\n cwd?: string,\n) => {\n const file = join(cwd ?? \"\", tsconfig);\n const doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions || (doc.compilerOptions = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions !== \"object\" ||\n doc.compilerOptions === null ||\n Array.isArray(doc.compilerOptions)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n void (\n doc.compilerOptions.paths ||\n (doc.compilerOptions.paths = {} as Json.CommentObject)\n );\n if (\n typeof doc.compilerOptions.paths !== \"object\" ||\n doc.compilerOptions.paths === null ||\n Array.isArray(doc.compilerOptions.paths)\n ) {\n throw new Error(format(message.invFormat, file));\n }\n doc.compilerOptions.paths[name] = paths as Json.CommentArray<string>;\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\nconst src = \"src\" as const;\nconst pathAliasWithShared = { \"@/*\": [\"\"], \"@shared/*\": [\"shared/src/*\"] };\n\nexport const setPathAliasWithShared = async (cwd: string) => {\n await access(join(cwd, src))\n .then(() => (pathAliasWithShared[\"@/*\"][0] = format(`%s/${src}/*`, cwd)))\n .catch(() => (pathAliasWithShared[\"@/*\"][0] = format(\"%s/*\", cwd)));\n await setPathAlias(\"..\", pathAliasWithShared, cwd);\n};\n\nconst cfgDir = \".bradhezh-create-prj\" as const;\nconst config = \"config.json\" as const;\n\nexport const getCfg = async (path?: string) => {\n const doc = Json.parse(\n await readFile(join(homedir(), cfgDir, config), \"utf-8\").catch(() => \"{}\"),\n );\n if (!path) {\n return doc;\n }\n let value = doc;\n for (const key of path.split(\".\")) {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return;\n }\n value = value[key];\n }\n return value;\n};\n\nexport const setCfg = async (value: Json.CommentJSONValue, path?: string) => {\n await mkdir(join(homedir(), cfgDir), { recursive: true });\n const file = join(homedir(), cfgDir, config);\n let doc = Json.parse(await readFile(file, \"utf8\").catch(() => \"{}\"));\n if (!path) {\n doc = value;\n } else {\n if (typeof doc !== \"object\" || doc === null || Array.isArray(doc)) {\n doc = {} as Json.CommentObject;\n }\n let obj = doc;\n const keys = path.split(\".\");\n const last = keys.pop()!;\n for (const key of keys) {\n if (\n typeof obj[key] !== \"object\" ||\n obj[key] === null ||\n Array.isArray(obj[key])\n ) {\n obj[key] = {} as Json.CommentObject;\n }\n obj = obj[key];\n }\n obj[last] = value;\n }\n const text =\n Json.stringify(doc, null, 2).replace(/\\[\\s+\"([^\"]+)\"\\s+\\]/g, '[\"$1\"]') +\n \"\\n\";\n await writeFile(file, text);\n};\n\ntype Tmplt = { name: string; path?: string };\nexport type Template<T extends string> = Partial<\n Record<T | typeof defKey, Tmplt>\n>;\n\nexport const installTmplt = async <K extends string, T extends Template<K>>(\n base: string,\n template: T & {\n [K0 in keyof T]: K0 extends K | typeof defKey ? T[K0] : never;\n },\n key?: K,\n cwd?: string,\n tar?: boolean,\n) => {\n const tmplt = template[key ?? defKey] ?? template.def;\n if (!tmplt) {\n return;\n }\n const file = join(cwd ?? \"\", tmplt.name);\n const res = await get<unknown>(`${base}${tmplt.path ?? \"\"}`, {\n responseType: tar ? \"arraybuffer\" : \"text\",\n });\n const data = !(res.data instanceof ArrayBuffer)\n ? res.data\n : new Uint8Array(res.data);\n if (typeof data !== \"string\" && !(data instanceof Uint8Array)) {\n throw new Error();\n }\n await writeFile(file, data);\n if (!tar) {\n return;\n }\n await exec(format(command.tar, tmplt.name), { cwd });\n await rm(file, { force: true });\n};\n\nexport enum AuthKey {\n user = \"user\",\n readToken = \"readToken\",\n token = \"token\",\n}\ntype Auth = Partial<Record<AuthKey, string>>;\ntype AuthCfgPath = Auth;\ntype Spinner = ReturnType<typeof spinner>;\n\nexport const auth = async (\n path: AuthCfgPath,\n ini: Auth,\n hint: string,\n tokenUrl: string,\n s?: Spinner,\n) => {\n const value = await authGot(path, ini);\n if (\n (!path.user || value.user) &&\n (!path.readToken || value.readToken) &&\n (!path.token || value.token)\n ) {\n return value;\n }\n s?.stop();\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n await rl.question(hint);\n rl.close();\n if ((path.readToken && !value.readToken) || (path.token && !value.token)) {\n await open(tokenUrl);\n }\n const answer = await authPrompt(\n !!(path.user && !value.user),\n !!(path.readToken && !value.readToken),\n !!(path.token && !value.token),\n );\n s?.start();\n await setAuth(value, path, answer);\n return value;\n};\n\nconst authGot = async (path: AuthCfgPath, ini: Auth) => {\n if (!path.user && !path.readToken && !path.token) {\n return {};\n }\n const user = path.user && (ini.user || (await getCfg(path.user)));\n const readToken =\n path.readToken && (ini.readToken || (await getCfg(path.readToken)));\n const token = path.token && (ini.token || (await getCfg(path.token)));\n if (\n (typeof user !== \"string\" && typeof user !== \"undefined\") ||\n (typeof readToken !== \"string\" && typeof readToken !== \"undefined\") ||\n (typeof token !== \"string\" && typeof token !== \"undefined\")\n ) {\n throw new Error();\n }\n return { user, readToken, token };\n};\n\nconst authPrompt = (\n forUser: boolean,\n forReadToken: boolean,\n forToken: boolean,\n) => {\n return group(\n {\n ...(forUser && {\n user: () =>\n text({\n message: message.userGot,\n validate: (value?: string) =>\n value ? undefined : message.userRequired,\n }),\n }),\n ...(forReadToken && {\n readToken: () =>\n password({\n message: message.readTokenGot,\n mask: \"*\",\n validate: (value?: string) =>\n value ? undefined : message.readTokenRequired,\n }),\n }),\n ...(forToken && {\n token: () =>\n password({\n message: message.tokenGot,\n mask: \"*\",\n validate: (value?: string) =>\n value ? undefined : message.tokenRequired,\n }),\n }),\n },\n { onCancel },\n );\n};\n\nconst setAuth = async (auth: Auth, path: AuthCfgPath, answer: Auth) => {\n if (path.user && !auth.user) {\n if (!answer.user) {\n throw new Error();\n }\n auth.user = answer.user;\n await setCfg(auth.user, path.user);\n }\n if (path.readToken && !auth.readToken) {\n if (!answer.readToken) {\n throw new Error();\n }\n auth.readToken = answer.readToken;\n await setCfg(auth.readToken, path.readToken);\n }\n if (path.token && !auth.token) {\n if (!answer.token) {\n throw new Error();\n }\n auth.token = answer.token;\n await setCfg(auth.token, path.token);\n }\n};\n\nexport const onCancel = () => {\n cancel(message.opCanceled);\n process.exit(0);\n};\n","import { log, spinner } from \"@clack/prompts\";\nimport { format } from \"node:util\";\n\nimport { value } from \"./const\";\nimport {\n regValue,\n typeFrmwksSkip,\n meta,\n NPM,\n Conf,\n Plugin,\n PrimeType,\n} from \"@/registry\";\nimport {\n installTmplt,\n setPkgScripts,\n setPkgDeps,\n defKey,\n Template,\n} from \"@/command\";\nimport { message as msg } from \"@/message\";\n\nasync function run(this: Plugin, conf: Conf) {\n const s = spinner();\n s.start();\n log.info(format(message.pluginStart, this.label));\n\n const conf0 = parseConf(conf);\n const types = parseType(conf);\n\n for (const type of types) {\n log.info(format(message.forType, type.name));\n await install({ ...conf0, ...type });\n log.info(message.setPkg);\n await setPkg({ ...conf0, ...type });\n }\n conf[value.builder.rspack] = {};\n\n log.info(format(message.pluginFinish, this.label));\n s.stop();\n throw new Error();\n}\n\nconst parseConf = (conf: Conf) => {\n const npm = conf.npm;\n if (npm !== NPM.npm && npm !== NPM.pnpm) {\n throw new Error();\n }\n return { npm };\n};\n\nconst parseType = (conf: Conf) => {\n const types = ((conf.monorepo?.types ?? [conf.type]) as PrimeType[])\n .map((e) => {\n const name = conf[e]?.name;\n if (!name) {\n throw new Error();\n }\n return {\n typeFrmwk: (conf[e]?.framework ?? e) as TypeFrmwk,\n name,\n cwd: conf.type !== meta.plugin.type.monorepo ? \".\" : name,\n ts: conf[e]?.typescript as Ts,\n };\n })\n .filter(\n (e) =>\n !typeFrmwksSkip(\n undefined,\n meta.plugin.option.builder,\n undefined,\n ).includes(e.typeFrmwk),\n );\n return types;\n};\n\ntype InstallData = { typeFrmwk: TypeFrmwk; ts: Ts; cwd: string };\n\nconst install = async ({ typeFrmwk, ts, cwd }: InstallData) => {\n const tmplt = template[typeFrmwk] ?? template.def;\n if (!tmplt) {\n throw new Error();\n }\n await installTmplt(base, tmplt, ts, cwd);\n};\n\ntype PkgData = { typeFrmwk: TypeFrmwk; ts: Ts; npm: NPM; cwd: string };\n\nconst setPkg = async ({ typeFrmwk, ts, npm, cwd }: PkgData) => {\n await setPkgScripts(scripts, typeFrmwk, npm, cwd);\n await setPkgDeps({ pkgDeps }, \"pkgDeps\", npm, cwd);\n if (ts !== meta.plugin.value.none) {\n await setPkgDeps({ tsPkgDeps }, \"tsPkgDeps\", npm, cwd);\n }\n};\n\nconst label = \"Rspack\" as const;\n\nregValue(\n {\n name: value.builder.rspack,\n label,\n skips: [],\n keeps: [],\n requires: [],\n plugin: {\n name: `${meta.plugin.option.builder}_${value.builder.rspack}`,\n label,\n run,\n },\n },\n meta.plugin.option.builder,\n);\n\nconst base =\n \"https://raw.githubusercontent.com/bradhezh/prj-template/master/rspk\" as const;\nconst name = \"rspack.config.ts\" as const;\nconst nameJs = \"rspack.config.js\" as const;\n\ntype TypeFrmwk = PrimeType | keyof typeof value.framework;\ntype TypeFrmwkKey = TypeFrmwk | typeof defKey;\ntype Ts =\n | keyof typeof value.typescript\n | typeof meta.plugin.value.none\n | undefined;\ntype TsKey = NonNullable<Ts> | typeof defKey;\nconst template: Partial<Record<TypeFrmwkKey, Template<TsKey>>> = {\n nest: { def: { name, path: \"/be/meta/rspack.config.ts\" } },\n express: {\n none: { name: nameJs, path: \"/be/no/rspack.config.js\" },\n metadata: { name, path: \"/be/meta/rspack.config.ts\" },\n def: { name, path: \"/be/ndec/rspack.config.ts\" },\n },\n lib: {\n none: { name: nameJs, path: \"/lib/no/rspack.config.js\" },\n metadata: { name, path: \"/lib/meta/rspack.config.ts\" },\n def: { name, path: \"/lib/ndec/rspack.config.ts\" },\n },\n cli: {\n none: { name: nameJs, path: \"/cli/no/rspack.config.js\" },\n metadata: { name, path: \"/cli/meta/rspack.config.ts\" },\n def: { name, path: \"/cli/ndec/rspack.config.ts\" },\n },\n def: {\n none: { name: nameJs, path: \"/def/no/rspack.config.js\" },\n metadata: { name, path: \"/def/meta/rspack.config.ts\" },\n def: { name, path: \"/def/ndec/rspack.config.ts\" },\n },\n} as const;\n\nconst scripts = {\n lib: [\n {\n name: \"build\",\n script:\n \"rspack build && pnpm dlx del-cli 'dist/*.d.ts' '!dist/index.d.ts'\",\n },\n { name: \"dev\", script: \"rspack dev\" },\n { name: \"dev:cli\", script: \"CLI=true rspack dev\" },\n ],\n cli: [\n { name: \"build\", script: \"rspack build\" },\n { name: \"dev\", script: \"rspack dev\" },\n ],\n def: [\n { name: \"build\", script: \"rspack build\" },\n { name: \"dev\", script: \"rspack dev\" },\n { name: \"start\", script: \"node build/main.js\" },\n ],\n} as const;\n\nconst pkgDeps = [\n { name: \"@rspack/cli\", version: \"^1\", dev: true },\n { name: \"@rspack/core\", version: \"^1\", dev: true },\n { name: \"run-script-webpack-plugin\", version: \"^0\", dev: true },\n { name: \"webpack-node-externals\", version: \"^3\", dev: true },\n] as const;\n\nconst tsPkgDeps = [\n { name: \"@types/webpack-node-externals\", version: \"^3\", dev: true },\n { name: \"ts-checker-rspack-plugin\", version: \"^1\", dev: true },\n] as const;\n\nconst message = {\n ...msg,\n forType: 'for \"%s\"',\n} as const;\n","export const message = {\n validate: \"Option required.\",\n type: { label: \"Project type\" },\n monorepo: {\n name: { label: \"Monorepo name\" },\n types: { label: \"Types in monorepo\" },\n },\n optional: {\n hint: \"Optional options: %s\",\n options: {\n label:\n \"Configure them one by one, or choose none of them (except required ones)?\",\n },\n defaults: {\n label:\n \"Accept defaults, or configure them one by one, or choose none of them (except required ones)?\",\n },\n },\n opCanceled: \"Operation cancelled.\",\n cwdNonEmpty: \"Current work directory must be empty.\",\n pmUnsupported: \"Only npm or pnpm supported for now.\",\n pnpmRequired: \"Only pnpm supported for monorepo for now.\",\n elemExist: \"Element exists already.\",\n refsRequired: 'When using \"after\", reference elements must be specified.',\n circularDep: \"Circular dependency.\",\n afterLast: \"Element cannot be after ones as the last.\",\n invSkipOrKeep: \"Invalid skip or keep.\",\n invElem: \"Invalid element.\",\n sysType: \"Type cannot be registered with a system name.\",\n typeNotExist: \"Type does not exist.\",\n typeRequired: \"Type must be specified for type options.\",\n sysConfKey: \"Option cannot be registered with a system name.\",\n optionNotExist: \"Option does not exist.\",\n optionConflict: \"Option conflict between compulsory and optional ones.\",\n valueNotExist: \"Value does not exist.\",\n invFormat: \"Invalid format of %s.\",\n userGot: \"Paste your username: \",\n userRequired: \"Username required.\",\n readTokenGot: \"Paste your read-only token: \",\n readTokenRequired: \"Read-only token required.\",\n tokenGot: \"Paste your read-write token: \",\n tokenRequired: \"Read-write token required.\",\n pluginStart: \"Configuring %s\",\n setPkg: \"Setting packages\",\n setWkspace: \"Setting workspace\",\n setShared: \"Setting shared\",\n pluginFinish: \"%s completed!\",\n} as const;\n"],"names":["exec","promisify","execAsync","setPkgDeps","deps","key","npm","cwd","_deps_","deps0","_iteratorError","name","version","_iteratorError1","name1","version1","e","format","parseConf","conf","NPM","Error","parseType","_conf_monorepo","_conf_e","_conf_e1","_conf_e2","meta","typeFrmwksSkip","undefined","install","typeFrmwk","ts","_template_typeFrmwk","tmplt","template","_template_","_tmplt_path","file","res","data","join","get","base","_instanceof","ArrayBuffer","Uint8Array","writeFile","rm","setPkg","_scripts_","scripts0","script","scripts","pkgDeps","tsPkgDeps","label","regValue","value","run","s","conf0","types","type","spinner","log","message","nameJs","msg"],"mappings":"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"}
|
package/dist/registry.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
(()=>{"use strict";var e,r,t={};t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};t.r(n),t.d(n,{adjustOptions:()=>g,meta:()=>c,NPM:()=>y,options:()=>m,regValue:()=>h,addInQueue:()=>w,getElem:()=>O,PosMode:()=>d,typeFrmwksSkip:()=>k,regOption:()=>b,regType:()=>v});var o="Invalid skip or keep.",i="Type does not exist.";function a(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function u(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}function l(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function f(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||p(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,r){if(e){if("string"==typeof e)return a(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return a(e,r)}}var c={plugin:{type:{backend:"backend",frontend:"frontend",mobile:"mobile",node:"node",lib:"lib",cli:"cli",monorepo:"monorepo"},option:{type:{name:"name",framework:"framework",typescript:"typescript",deployment:"deployment",orm:"orm"},builder:"builder",test:"test",lint:"lint",git:"git",cicd:"cicd"},value:{none:"none"}},system:{type:{shared:"shared"},option:{category:{type:"type",compulsory:"compulsory",optional:"optional"}}}},s={npm:"npm",type:"type"},y=((e={}).npm="npm",e.pnpm="pnpm",e),d=((r={}).first="first",r.last="last",r.after="after",r),m={type:[],compulsory:[],optional:[]},v=function(e){if(Object.keys(c.system.type).includes(e.name))throw Error("Type cannot be registered with a system name.");if(f(e.skips).concat(f(e.keeps)).find(function(e){return!e.type&&!e.option&&!e.value||e.value&&!e.option}))throw Error(o);var r=l(u({},e),{options:[]});w(m.type,r);var t=!0,n=!1,i=void 0;try{for(var a,p=e.options[Symbol.iterator]();!(t=(a=p.next()).done);t=!0){var s=a.value,y=l(u({},s),{values:[]});w(r.options,y);var d=!0,v=!1,b=void 0;try{for(var h,g=s.values[Symbol.iterator]();!(d=(h=g.next()).done);d=!0){var O=h.value;if(f(O.skips).concat(f(O.keeps)).find(function(e){return!e.type&&!e.option&&!e.value||e.value&&!e.option}))throw Error(o);w(y.values,O)}}catch(e){v=!0,b=e}finally{try{d||null==g.return||g.return()}finally{if(v)throw b}}}}catch(e){n=!0,i=e}finally{try{t||null==p.return||p.return()}finally{if(n)throw i}}},b=function(e,r,t){if(r===c.system.option.category.type&&!t)throw Error("Type must be specified for type options.");var n=S(e.name,r,t),i=l(u({},e),{values:[]});w(n,i);var a=!0,p=!1,s=void 0;try{for(var y,d=e.values[Symbol.iterator]();!(a=(y=d.next()).done);a=!0){var m=y.value;if(f(m.skips).concat(f(m.keeps)).find(function(e){return!e.type&&!e.option&&!e.value||e.value&&!e.option}))throw Error(o);w(i.values,m)}}catch(e){p=!0,s=e}finally{try{a||null==d.return||d.return()}finally{if(p)throw s}}},h=function(e,r,t){if(f(e.skips).concat(f(e.keeps)).find(function(e){return!e.type&&!e.option&&!e.value||e.value&&!e.option}))throw Error(o);w(j(r,t).values,e)},w=function(e,r){var t,n,o,i,a;if(e.find(function(e){return e.name===r.name}))throw Error("Element exists already.");if((null==(t=r.pos)?void 0:t.mode)==="after"&&!r.pos.refs)throw Error('When using "after", reference elements must be specified.');e.splice((null==(n=r.pos)?void 0:n.mode)==="first"?0:(null==(o=r.pos)?void 0:o.mode)!=="last"&&(null==(a=e.at(-1))||null==(i=a.pos)?void 0:i.mode)==="last"?e.length-1:e.length,0,r),E(e,r)},g=function(e,r){var t=!0,n=!1,o=void 0;try{for(var i,a=r.skips[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var u=i.value,l=u.type,p=u.option,s=u.value;P(e,l,p,s)||x(e,l,p,s,f(m.compulsory).concat(f(m.optional)))||(O(l,p,s).disabled=!0)}}catch(e){n=!0,o=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw o}}var y=!0,d=!1,v=void 0;try{for(var b,h=r.keeps[Symbol.iterator]();!(y=(b=h.next()).done);y=!0){var w=b.value,g=w.type,k=w.option,S=w.value;O(g,k,S).disabled=!1}}catch(e){d=!0,v=e}finally{try{y||null==h.return||h.return()}finally{if(d)throw v}}var E=!0,A=!1,I=void 0;try{for(var T,M=r.requires[Symbol.iterator]();!(E=(T=M.next()).done);E=!0){var _=T.value,q=_.option,D=_.type,C=j(q,D);C.disabled=!1,C.required=!0;var V=C.values.find(function(e){return e.name===c.plugin.value.none});V&&(V.disabled=!0)}}catch(e){A=!0,I=e}finally{try{E||null==M.return||M.return()}finally{if(A)throw I}}},O=function(e,r,t){if(!e&&!r&&!t||t&&!r)throw Error("Invalid element.");if(!r){var n=m.type.find(function(r){return r.name===e});if(!n)throw Error(i);return n}var o=j(r,e);if(!t)return o;var a=o.values.find(function(e){return e.name===t});if(!a)throw Error("Value does not exist.");return a},k=function(e,r,t){return f(m.type.filter(function(n){return n.skips.find(function(n){return n.type===e&&n.option===r&&n.value===t})}).map(function(e){return e.name})).concat(f(m.type.map(function(e){return e.options}).flat().filter(function(e){return e.name===c.plugin.option.type.framework}).map(function(e){return e.values}).flat().filter(function(n){return n.skips.find(function(n){return n.type===e&&n.option===r&&n.value===t})}).map(function(e){return e.name})))},S=function(e,r,t){if(r===c.system.option.category.type){var n=m.type.find(function(e){return e.name===t});if(!n)throw Error(i);return n.options}if(Object.keys(s).includes(e))throw Error("Option cannot be registered with a system name.");if(m.type.find(function(r){return r.name===e})||r===c.system.option.category.compulsory&&m.optional.find(function(r){return r.name===e})||r===c.system.option.category.optional&&m.compulsory.find(function(r){return r.name===e}))throw Error("Option conflict between compulsory and optional ones.");return m[r]},j=function(e,r){if(r){var t,n=m.type.find(function(e){return e.name===r});if(!n)throw Error(i);t=n.options}else t=f(m.compulsory).concat(f(m.optional));var o=t.find(function(r){return r.name===e});if(!o)throw Error("Option does not exist.");return o},E=function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;if(t.has(r.name))throw Error("Circular dependency.");t.add(r.name);for(var n=e.findIndex(function(e){return e.name===r.name}),o=n;;--o){var i,a,u=e.findIndex(function(e){var t;return(null==(t=e.pos)?void 0:t.mode)==="after"&&e.pos.refs.find(function(e){return r.name.startsWith(e)})});if(-1===u||u>=o)break;if((null==(a=r.pos)?void 0:a.mode)==="last")throw Error("Element cannot be after ones as the last.");var l=(i=e.splice(u,1),function(e){if(Array.isArray(e))return e}(i)||function(e,r){var t,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(t=o.next()).done)&&(i.push(t.value),1!==i.length);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw n}}return i}}(i,1)||p(i,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];e.splice(n,0,l),E(e,l,new Set(t))}},P=function(e,r,t,n){var o,i,a=[e.type].concat(f(null!=(o=null==(i=e.monorepo)?void 0:i.types)?o:[])),u=m.type.filter(function(e){return a.includes(e.name)});return u.find(function(e){return e.keeps.find(function(e){return e.type===r&&e.option===t&&e.value===n})||e.requires.find(function(e){return e.type===r&&e.option===t})})||u.find(function(o){return x(e,r,t,n,o.options,o.name)})},x=function(e,r,t,n,o,i){var a=i?e[i]:e;return!((void 0===a?"undefined":a&&"u">typeof Symbol&&a.constructor===Symbol?"symbol":typeof a)!="object"||null===a||Array.isArray(a))&&o.find(function(e){var o=e.values.find(function(r){return r.name===a[e.name]});return o&&(o.keeps.find(function(e){return e.type===r&&e.option===t&&e.value===n})||o.requires.find(function(e){return e.type===r&&e.option===t}))})},A=exports;for(var I in n)A[I]=n[I];n.__esModule&&Object.defineProperty(A,"__esModule",{value:!0})})();
|
|
2
3
|
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sources":["webpack://@bradhezh/create-prj/./src/registry.ts","webpack://@bradhezh/create-prj/webpack/runtime/define_property_getters","webpack://@bradhezh/create-prj/webpack/runtime/has_own_property","webpack://@bradhezh/create-prj/webpack/runtime/make_namespace_object","webpack://@bradhezh/create-prj/./src/message.ts"],"sourcesContent":["import { message } from \"@/message\";\n\nexport const meta = {\n plugin: {\n type: {\n backend: \"backend\",\n frontend: \"frontend\",\n mobile: \"mobile\",\n node: \"node\",\n lib: \"lib\",\n cli: \"cli\",\n monorepo: \"monorepo\",\n },\n option: {\n type: {\n name: \"name\",\n framework: \"framework\",\n typescript: \"typescript\",\n deployment: \"deployment\",\n orm: \"orm\",\n },\n builder: \"builder\",\n test: \"test\",\n lint: \"lint\",\n git: \"git\",\n cicd: \"cicd\",\n },\n value: { none: \"none\" },\n },\n system: {\n type: { shared: \"shared\" },\n option: {\n category: {\n type: \"type\",\n compulsory: \"compulsory\",\n optional: \"optional\",\n },\n },\n },\n} as const;\n\nconst sysConfKey = { npm: \"npm\", type: \"type\" } as const;\n\ntype TypeOption = keyof typeof meta.plugin.option.type;\ntype NonTypeOption = Exclude<keyof typeof meta.plugin.option, \"type\">;\nexport type PluginType = keyof typeof meta.plugin.type;\nexport type PrimeType = Exclude<PluginType, \"monorepo\">;\nexport enum NPM {\n npm = \"npm\",\n pnpm = \"pnpm\",\n}\nexport type Conf = {\n npm: NPM;\n type: string;\n monorepo?: { name: string; types: string[] };\n} & Partial<\n Record<\n PrimeType,\n Partial<Record<TypeOption, string>> &\n Partial<\n Record<\n string,\n string | string[] | Partial<Record<string, string | string[]>>\n >\n >\n >\n> &\n Partial<Record<NonTypeOption, string>> &\n Partial<\n Record<\n string,\n string | string[] | Partial<Record<string, string | string[]>>\n >\n >;\n\nexport type Category = keyof typeof meta.system.option.category;\n\nexport enum PosMode {\n first = \"first\",\n last = \"last\",\n after = \"after\",\n}\ntype Pos = { mode: PosMode; refs?: string[] };\ntype QueueElem = { name: string; label: string; pos?: Pos };\nexport type Plugin = QueueElem & { run: (conf: Conf) => Promise<void> };\nexport type Value = QueueElem & {\n skips: { type?: string; option?: string; value?: string }[];\n keeps: { type?: string; option?: string; value?: string }[];\n requires: { option: string; type?: string }[];\n plugin?: Plugin;\n disabled?: boolean;\n};\nexport type Option = QueueElem & {\n plugin?: Plugin;\n values: Value[];\n multiple?: boolean;\n optional?: boolean;\n initial?: string;\n disabled?: boolean;\n required?: boolean;\n};\nexport type Type = Value & { options: Option[] };\nexport const options: {\n type: Type[];\n compulsory: Option[];\n optional: Option[];\n} = { type: [], compulsory: [], optional: [] };\n\nexport const regType = (type: Type) => {\n if (Object.keys(meta.system.type).includes(type.name)) {\n throw new Error(message.sysType);\n }\n if (\n [...type.skips, ...type.keeps].find(\n (e) => (!e.type && !e.option && !e.value) || (e.value && !e.option),\n )\n ) {\n throw new Error(message.invSkipOrKeep);\n }\n const type0 = { ...type, options: [] };\n addInQueue(options.type, type0);\n for (const option of type.options) {\n const opt = { ...option, values: [] };\n addInQueue(type0.options, opt);\n for (const value of option.values) {\n if (\n [...value.skips, ...value.keeps].find(\n (e) => (!e.type && !e.option && !e.value) || (e.value && !e.option),\n )\n ) {\n throw new Error(message.invSkipOrKeep);\n }\n addInQueue(opt.values, value);\n }\n }\n};\n\nexport const regOption = (\n option: Option,\n category: Category,\n type?: string,\n) => {\n if (category === meta.system.option.category.type && !type) {\n throw new Error(message.typeRequired);\n }\n const opts = getOptionsForReg(option.name, category, type);\n const opt = { ...option, values: [] };\n addInQueue(opts, opt);\n for (const value of option.values) {\n if (\n [...value.skips, ...value.keeps].find(\n (e) => (!e.type && !e.option && !e.value) || (e.value && !e.option),\n )\n ) {\n throw new Error(message.invSkipOrKeep);\n }\n addInQueue(opt.values, value);\n }\n};\n\nexport const regValue = (value: Value, option: string, type?: string) => {\n if (\n [...value.skips, ...value.keeps].find(\n (e) => (!e.type && !e.option && !e.value) || (e.value && !e.option),\n )\n ) {\n throw new Error(message.invSkipOrKeep);\n }\n const opt = getOption(option, type);\n addInQueue(opt.values, value);\n};\n\nexport const addInQueue = (queue: QueueElem[], elem: QueueElem) => {\n if (queue.find((e) => e.name === elem.name)) {\n throw new Error(message.elemExist);\n }\n if (elem.pos?.mode === PosMode.after && !elem.pos.refs) {\n throw new Error(message.refsRequired);\n }\n queue.splice(\n elem.pos?.mode === PosMode.first\n ? 0\n : elem.pos?.mode !== PosMode.last &&\n queue.at(-1)?.pos?.mode === PosMode.last\n ? queue.length - 1\n : queue.length,\n 0,\n elem,\n );\n reSort(queue, elem);\n};\n\nexport const adjustOptions = (conf: Conf, value: Value) => {\n for (const { type, option, value: val } of value.skips) {\n if (\n keptOrRequiredInTypes(conf, type, option, val) ||\n keptOrRequiredInOptions(conf, type, option, val, [\n ...options.compulsory,\n ...options.optional,\n ])\n ) {\n continue;\n }\n getElem(type, option, val).disabled = true;\n }\n for (const { type, option, value: val } of value.keeps) {\n getElem(type, option, val).disabled = false;\n }\n for (const { option, type } of value.requires) {\n const opt = getOption(option, type);\n opt.disabled = false;\n opt.required = true;\n const val = opt.values.find((e) => e.name === meta.plugin.value.none);\n if (!val) {\n continue;\n }\n val.disabled = true;\n }\n};\n\nexport const getElem = (\n type: string | undefined,\n option: string | undefined,\n value: string | undefined,\n) => {\n if ((!type && !option && !value) || (value && !option)) {\n throw new Error(message.invElem);\n }\n if (!option) {\n const type0 = options.type.find((e) => e.name === type!);\n if (!type0) {\n throw new Error(message.typeNotExist);\n }\n return type0;\n }\n const opt = getOption(option, type);\n if (!value) {\n return opt;\n }\n const val = opt.values.find((e) => e.name === value);\n if (!val) {\n throw new Error(message.valueNotExist);\n }\n return val;\n};\n\nexport const typeFrmwksSkip = (\n type: string | undefined,\n option: string | undefined,\n value: string | undefined,\n) => {\n return [\n ...options.type\n .filter((type0) =>\n type0.skips.find(\n (e) => e.type === type && e.option === option && e.value === value,\n ),\n )\n .map((type0) => type0.name),\n ...options.type\n .map((type0) => type0.options)\n .flat()\n .filter((opt) => opt.name === meta.plugin.option.type.framework)\n .map((opt) => opt.values)\n .flat()\n .filter((val) =>\n val.skips.find(\n (e) => e.type === type && e.option === option && e.value === value,\n ),\n )\n .map((val) => val.name),\n ];\n};\n\nconst getOptionsForReg = (\n option: string,\n category: Category,\n type: string | undefined,\n) => {\n if (category === meta.system.option.category.type) {\n const type0 = options.type.find((e) => e.name === type);\n if (!type0) {\n throw new Error(message.typeNotExist);\n }\n return type0.options;\n }\n if (Object.keys(sysConfKey).includes(option)) {\n throw new Error(message.sysConfKey);\n }\n if (\n options.type.find((e) => e.name === option) ||\n (category === meta.system.option.category.compulsory &&\n options.optional.find((e) => e.name === option)) ||\n (category === meta.system.option.category.optional &&\n options.compulsory.find((e) => e.name === option))\n ) {\n throw new Error(message.optionConflict);\n }\n return options[category];\n};\n\nconst getOption = (name: string, type?: string) => {\n let opts;\n if (!type) {\n opts = [...options.compulsory, ...options.optional];\n } else {\n const type0 = options.type.find((e) => e.name === type);\n if (!type0) {\n throw new Error(message.typeNotExist);\n }\n opts = type0.options;\n }\n const option = opts.find((e) => e.name === name);\n if (!option) {\n throw new Error(message.optionNotExist);\n }\n return option;\n};\n\nconst reSort = (queue: QueueElem[], elem: QueueElem, seen = new Set()) => {\n if (seen.has(elem.name)) {\n throw new Error(message.circularDep);\n }\n seen.add(elem.name);\n const index = queue.findIndex((e) => e.name === elem.name);\n for (let i = index; ; --i) {\n const found = queue.findIndex(\n (e) =>\n e.pos?.mode === PosMode.after &&\n e.pos.refs!.find((e) => elem.name.startsWith(e)),\n );\n if (found === -1 || found >= i) {\n break;\n }\n if (elem.pos?.mode === PosMode.last) {\n throw new Error(message.afterLast);\n }\n const [move] = queue.splice(found, 1);\n queue.splice(index, 0, move);\n reSort(queue, move, new Set(seen));\n }\n};\n\nconst keptOrRequiredInTypes = (\n conf: Conf,\n type: string | undefined,\n option: string | undefined,\n value: string | undefined,\n) => {\n const types = [conf.type, ...(conf.monorepo?.types ?? [])];\n const types0 = options.type.filter((type0) => types.includes(type0.name));\n return (\n types0.find(\n (type0) =>\n type0.keeps.find(\n (e) => e.type === type && e.option === option && e.value === value,\n ) || type0.requires.find((e) => e.type === type && e.option === option),\n ) ||\n types0.find((type0) =>\n keptOrRequiredInOptions(\n conf,\n type,\n option,\n value,\n type0.options,\n type0.name,\n ),\n )\n );\n};\n\nconst keptOrRequiredInOptions = (\n conf: Conf,\n type: string | undefined,\n option: string | undefined,\n value: string | undefined,\n opts: Option[],\n ofType?: string,\n) => {\n const optConf = !ofType ? conf : conf[ofType];\n if (\n typeof optConf !== \"object\" ||\n optConf === null ||\n Array.isArray(optConf)\n ) {\n return false;\n }\n return opts.find((opt) => {\n const val = opt.values.find((e) => e.name === optConf[opt.name]);\n return (\n val &&\n (val.keeps.find(\n (e) => e.type === type && e.option === option && e.value === value,\n ) ||\n val.requires.find((e) => e.type === type && e.option === option))\n );\n });\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export const message = {\n validate: \"Option required.\",\n type: { label: \"Project type\" },\n monorepo: {\n name: { label: \"Monorepo name\" },\n types: { label: \"Types in monorepo\" },\n },\n optional: {\n hint: \"Optional options: %s\",\n options: {\n label:\n \"Configure them one by one, or choose none of them (except required ones)?\",\n },\n defaults: {\n label:\n \"Accept defaults, or configure them one by one, or choose none of them (except required ones)?\",\n },\n },\n opCanceled: \"Operation cancelled.\",\n cwdNonEmpty: \"Current work directory must be empty.\",\n pmUnsupported: \"Only npm or pnpm supported for now.\",\n pnpmRequired: \"Only pnpm supported for monorepo for now.\",\n elemExist: \"Element exists already.\",\n refsRequired: 'When using \"after\", reference elements must be specified.',\n circularDep: \"Circular dependency.\",\n afterLast: \"Element cannot be after ones as the last.\",\n invSkipOrKeep: \"Invalid skip or keep.\",\n invElem: \"Invalid element.\",\n sysType: \"Type cannot be registered with a system name.\",\n typeNotExist: \"Type does not exist.\",\n typeRequired: \"Type must be specified for type options.\",\n sysConfKey: \"Option cannot be registered with a system name.\",\n optionNotExist: \"Option does not exist.\",\n optionConflict: \"Option conflict between compulsory and optional ones.\",\n valueNotExist: \"Value does not exist.\",\n invFormat: \"Invalid format of %s.\",\n userGot: \"Paste your username: \",\n userRequired: \"Username required.\",\n readTokenGot: \"Paste your read-only token: \",\n readTokenRequired: \"Read-only token required.\",\n tokenGot: \"Paste your read-write token: \",\n tokenRequired: \"Read-write token required.\",\n pluginStart: \"Configuring %s\",\n setPkg: \"Setting packages\",\n setWkspace: \"Setting workspace\",\n setShared: \"Setting shared\",\n pluginFinish: \"%s completed!\",\n} as const;\n"],"names":["NPM","PosMode","Object","Symbol","meta","sysConfKey","options","regType","type","Error","e","type0","addInQueue","_iteratorError","option","opt","_iteratorError1","value","regOption","category","opts","getOptionsForReg","regValue","getOption","queue","elem","_elem_pos","_elem_pos1","_elem_pos2","_queue_at_pos","reSort","adjustOptions","conf","val","keptOrRequiredInTypes","keptOrRequiredInOptions","getElem","type1","option1","val1","_iteratorError2","option2","type2","val2","typeFrmwksSkip","name","seen","Set","index","i","found","_e_pos","move","_queue_splice","_conf_monorepo","types","types0","ofType","optConf","_type_of","Array"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sources":["webpack://@bradhezh/create-prj/./src/registry.ts","webpack://@bradhezh/create-prj/webpack/runtime/define_property_getters","webpack://@bradhezh/create-prj/webpack/runtime/has_own_property","webpack://@bradhezh/create-prj/webpack/runtime/make_namespace_object","webpack://@bradhezh/create-prj/./src/message.ts"],"sourcesContent":["import { message } from \"@/message\";\n\nexport const meta = {\n plugin: {\n type: {\n backend: \"backend\",\n frontend: \"frontend\",\n mobile: \"mobile\",\n node: \"node\",\n lib: \"lib\",\n cli: \"cli\",\n monorepo: \"monorepo\",\n },\n option: {\n type: {\n name: \"name\",\n framework: \"framework\",\n typescript: \"typescript\",\n deployment: \"deployment\",\n orm: \"orm\",\n },\n builder: \"builder\",\n test: \"test\",\n lint: \"lint\",\n git: \"git\",\n cicd: \"cicd\",\n },\n value: { none: \"none\" },\n },\n system: {\n type: { shared: \"shared\" },\n option: {\n category: {\n type: \"type\",\n compulsory: \"compulsory\",\n optional: \"optional\",\n },\n },\n },\n} as const;\n\nconst sysConfKey = { npm: \"npm\", type: \"type\" } as const;\n\ntype TypeOption = keyof typeof meta.plugin.option.type;\ntype NonTypeOption = Exclude<keyof typeof meta.plugin.option, \"type\">;\nexport type PluginType = keyof typeof meta.plugin.type;\nexport type PrimeType = Exclude<PluginType, \"monorepo\">;\nexport enum NPM {\n npm = \"npm\",\n pnpm = \"pnpm\",\n}\nexport type Conf = {\n npm: NPM;\n type: string;\n monorepo?: { name: string; types: string[] };\n} & Partial<\n Record<\n PrimeType,\n Partial<Record<TypeOption, string>> &\n Partial<\n Record<\n string,\n string | string[] | Partial<Record<string, string | string[]>>\n >\n >\n >\n> &\n Partial<Record<NonTypeOption, string>> &\n Partial<\n Record<\n string,\n string | string[] | Partial<Record<string, string | string[]>>\n >\n >;\n\nexport type Category = keyof typeof meta.system.option.category;\n\nexport enum PosMode {\n first = \"first\",\n last = \"last\",\n after = \"after\",\n}\ntype Pos = { mode: PosMode; refs?: string[] };\ntype QueueElem = { name: string; label: string; pos?: Pos };\nexport type Plugin = QueueElem & { run: (conf: Conf) => Promise<void> };\nexport type Value = QueueElem & {\n skips: { type?: string; option?: string; value?: string }[];\n keeps: { type?: string; option?: string; value?: string }[];\n requires: { option: string; type?: string }[];\n plugin?: Plugin;\n disabled?: boolean;\n};\nexport type Option = QueueElem & {\n plugin?: Plugin;\n values: Value[];\n multiple?: boolean;\n optional?: boolean;\n initial?: string;\n disabled?: boolean;\n required?: boolean;\n};\nexport type Type = Value & { options: Option[] };\nexport const options: {\n type: Type[];\n compulsory: Option[];\n optional: Option[];\n} = { type: [], compulsory: [], optional: [] };\n\nexport const regType = (type: Type) => {\n if (Object.keys(meta.system.type).includes(type.name)) {\n throw new Error(message.sysType);\n }\n if (\n [...type.skips, ...type.keeps].find(\n (e) => (!e.type && !e.option && !e.value) || (e.value && !e.option),\n )\n ) {\n throw new Error(message.invSkipOrKeep);\n }\n const type0 = { ...type, options: [] };\n addInQueue(options.type, type0);\n for (const option of type.options) {\n const opt = { ...option, values: [] };\n addInQueue(type0.options, opt);\n for (const value of option.values) {\n if (\n [...value.skips, ...value.keeps].find(\n (e) => (!e.type && !e.option && !e.value) || (e.value && !e.option),\n )\n ) {\n throw new Error(message.invSkipOrKeep);\n }\n addInQueue(opt.values, value);\n }\n }\n};\n\nexport const regOption = (\n option: Option,\n category: Category,\n type?: string,\n) => {\n if (category === meta.system.option.category.type && !type) {\n throw new Error(message.typeRequired);\n }\n const opts = getOptionsForReg(option.name, category, type);\n const opt = { ...option, values: [] };\n addInQueue(opts, opt);\n for (const value of option.values) {\n if (\n [...value.skips, ...value.keeps].find(\n (e) => (!e.type && !e.option && !e.value) || (e.value && !e.option),\n )\n ) {\n throw new Error(message.invSkipOrKeep);\n }\n addInQueue(opt.values, value);\n }\n};\n\nexport const regValue = (value: Value, option: string, type?: string) => {\n if (\n [...value.skips, ...value.keeps].find(\n (e) => (!e.type && !e.option && !e.value) || (e.value && !e.option),\n )\n ) {\n throw new Error(message.invSkipOrKeep);\n }\n const opt = getOption(option, type);\n addInQueue(opt.values, value);\n};\n\nexport const addInQueue = (queue: QueueElem[], elem: QueueElem) => {\n if (queue.find((e) => e.name === elem.name)) {\n throw new Error(message.elemExist);\n }\n if (elem.pos?.mode === PosMode.after && !elem.pos.refs) {\n throw new Error(message.refsRequired);\n }\n queue.splice(\n elem.pos?.mode === PosMode.first\n ? 0\n : elem.pos?.mode !== PosMode.last &&\n queue.at(-1)?.pos?.mode === PosMode.last\n ? queue.length - 1\n : queue.length,\n 0,\n elem,\n );\n reSort(queue, elem);\n};\n\nexport const adjustOptions = (conf: Conf, value: Value) => {\n for (const { type, option, value: val } of value.skips) {\n if (\n keptOrRequiredInTypes(conf, type, option, val) ||\n keptOrRequiredInOptions(conf, type, option, val, [\n ...options.compulsory,\n ...options.optional,\n ])\n ) {\n continue;\n }\n getElem(type, option, val).disabled = true;\n }\n for (const { type, option, value: val } of value.keeps) {\n getElem(type, option, val).disabled = false;\n }\n for (const { option, type } of value.requires) {\n const opt = getOption(option, type);\n opt.disabled = false;\n opt.required = true;\n const val = opt.values.find((e) => e.name === meta.plugin.value.none);\n if (!val) {\n continue;\n }\n val.disabled = true;\n }\n};\n\nexport const getElem = (\n type: string | undefined,\n option: string | undefined,\n value: string | undefined,\n) => {\n if ((!type && !option && !value) || (value && !option)) {\n throw new Error(message.invElem);\n }\n if (!option) {\n const type0 = options.type.find((e) => e.name === type!);\n if (!type0) {\n throw new Error(message.typeNotExist);\n }\n return type0;\n }\n const opt = getOption(option, type);\n if (!value) {\n return opt;\n }\n const val = opt.values.find((e) => e.name === value);\n if (!val) {\n throw new Error(message.valueNotExist);\n }\n return val;\n};\n\nexport const typeFrmwksSkip = (\n type: string | undefined,\n option: string | undefined,\n value: string | undefined,\n) => {\n return [\n ...options.type\n .filter((type0) =>\n type0.skips.find(\n (e) => e.type === type && e.option === option && e.value === value,\n ),\n )\n .map((type0) => type0.name),\n ...options.type\n .map((type0) => type0.options)\n .flat()\n .filter((opt) => opt.name === meta.plugin.option.type.framework)\n .map((opt) => opt.values)\n .flat()\n .filter((val) =>\n val.skips.find(\n (e) => e.type === type && e.option === option && e.value === value,\n ),\n )\n .map((val) => val.name),\n ];\n};\n\nconst getOptionsForReg = (\n option: string,\n category: Category,\n type: string | undefined,\n) => {\n if (category === meta.system.option.category.type) {\n const type0 = options.type.find((e) => e.name === type);\n if (!type0) {\n throw new Error(message.typeNotExist);\n }\n return type0.options;\n }\n if (Object.keys(sysConfKey).includes(option)) {\n throw new Error(message.sysConfKey);\n }\n if (\n options.type.find((e) => e.name === option) ||\n (category === meta.system.option.category.compulsory &&\n options.optional.find((e) => e.name === option)) ||\n (category === meta.system.option.category.optional &&\n options.compulsory.find((e) => e.name === option))\n ) {\n throw new Error(message.optionConflict);\n }\n return options[category];\n};\n\nconst getOption = (name: string, type?: string) => {\n let opts;\n if (!type) {\n opts = [...options.compulsory, ...options.optional];\n } else {\n const type0 = options.type.find((e) => e.name === type);\n if (!type0) {\n throw new Error(message.typeNotExist);\n }\n opts = type0.options;\n }\n const option = opts.find((e) => e.name === name);\n if (!option) {\n throw new Error(message.optionNotExist);\n }\n return option;\n};\n\nconst reSort = (queue: QueueElem[], elem: QueueElem, seen = new Set()) => {\n if (seen.has(elem.name)) {\n throw new Error(message.circularDep);\n }\n seen.add(elem.name);\n const index = queue.findIndex((e) => e.name === elem.name);\n for (let i = index; ; --i) {\n const found = queue.findIndex(\n (e) =>\n e.pos?.mode === PosMode.after &&\n e.pos.refs!.find((e) => elem.name.startsWith(e)),\n );\n if (found === -1 || found >= i) {\n break;\n }\n if (elem.pos?.mode === PosMode.last) {\n throw new Error(message.afterLast);\n }\n const [move] = queue.splice(found, 1);\n queue.splice(index, 0, move);\n reSort(queue, move, new Set(seen));\n }\n};\n\nconst keptOrRequiredInTypes = (\n conf: Conf,\n type: string | undefined,\n option: string | undefined,\n value: string | undefined,\n) => {\n const types = [conf.type, ...(conf.monorepo?.types ?? [])];\n const types0 = options.type.filter((type0) => types.includes(type0.name));\n return (\n types0.find(\n (type0) =>\n type0.keeps.find(\n (e) => e.type === type && e.option === option && e.value === value,\n ) || type0.requires.find((e) => e.type === type && e.option === option),\n ) ||\n types0.find((type0) =>\n keptOrRequiredInOptions(\n conf,\n type,\n option,\n value,\n type0.options,\n type0.name,\n ),\n )\n );\n};\n\nconst keptOrRequiredInOptions = (\n conf: Conf,\n type: string | undefined,\n option: string | undefined,\n value: string | undefined,\n opts: Option[],\n ofType?: string,\n) => {\n const optConf = !ofType ? conf : conf[ofType];\n if (\n typeof optConf !== \"object\" ||\n optConf === null ||\n Array.isArray(optConf)\n ) {\n return false;\n }\n return opts.find((opt) => {\n const val = opt.values.find((e) => e.name === optConf[opt.name]);\n return (\n val &&\n (val.keeps.find(\n (e) => e.type === type && e.option === option && e.value === value,\n ) ||\n val.requires.find((e) => e.type === type && e.option === option))\n );\n });\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export const message = {\n validate: \"Option required.\",\n type: { label: \"Project type\" },\n monorepo: {\n name: { label: \"Monorepo name\" },\n types: { label: \"Types in monorepo\" },\n },\n optional: {\n hint: \"Optional options: %s\",\n options: {\n label:\n \"Configure them one by one, or choose none of them (except required ones)?\",\n },\n defaults: {\n label:\n \"Accept defaults, or configure them one by one, or choose none of them (except required ones)?\",\n },\n },\n opCanceled: \"Operation cancelled.\",\n cwdNonEmpty: \"Current work directory must be empty.\",\n pmUnsupported: \"Only npm or pnpm supported for now.\",\n pnpmRequired: \"Only pnpm supported for monorepo for now.\",\n elemExist: \"Element exists already.\",\n refsRequired: 'When using \"after\", reference elements must be specified.',\n circularDep: \"Circular dependency.\",\n afterLast: \"Element cannot be after ones as the last.\",\n invSkipOrKeep: \"Invalid skip or keep.\",\n invElem: \"Invalid element.\",\n sysType: \"Type cannot be registered with a system name.\",\n typeNotExist: \"Type does not exist.\",\n typeRequired: \"Type must be specified for type options.\",\n sysConfKey: \"Option cannot be registered with a system name.\",\n optionNotExist: \"Option does not exist.\",\n optionConflict: \"Option conflict between compulsory and optional ones.\",\n valueNotExist: \"Value does not exist.\",\n invFormat: \"Invalid format of %s.\",\n userGot: \"Paste your username: \",\n userRequired: \"Username required.\",\n readTokenGot: \"Paste your read-only token: \",\n readTokenRequired: \"Read-only token required.\",\n tokenGot: \"Paste your read-write token: \",\n tokenRequired: \"Read-write token required.\",\n pluginStart: \"Configuring %s\",\n setPkg: \"Setting packages\",\n setWkspace: \"Setting workspace\",\n setShared: \"Setting shared\",\n pluginFinish: \"%s completed!\",\n} as const;\n"],"names":["NPM","PosMode","e","Object","Symbol","meta","sysConfKey","options","regType","type","Error","type0","addInQueue","_iteratorError","option","opt","_iteratorError1","value","regOption","category","opts","getOptionsForReg","regValue","getOption","queue","elem","_elem_pos","_elem_pos1","_elem_pos2","_queue_at_pos","reSort","adjustOptions","conf","val","keptOrRequiredInTypes","keptOrRequiredInOptions","getElem","type1","option1","val1","_iteratorError2","option2","type2","val2","typeFrmwksSkip","name","seen","Set","index","i","found","_e_pos","move","_queue_splice","_conf_monorepo","types","types0","ofType","optConf","_type_of","Array"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bradhezh/create-prj",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"axios": "^1.13.2",
|
|
19
19
|
"comment-json": "^4.5.1",
|
|
20
20
|
"open": "^11.0.0",
|
|
21
|
+
"source-map-support": "^0.5.21",
|
|
21
22
|
"yaml": "^2.8.2"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|