@terai/dev 0.0.0-dev-20240302092932 → 0.0.0-dev-20240302221955

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.
@@ -1,13 +1,779 @@
1
- "use strict";var ue=Object.create;var I=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,ge=Object.prototype.hasOwnProperty;var me=(e,t)=>{for(var r in t)I(e,r,{get:t[r],enumerable:!0})},V=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ce(t))!ge.call(e,o)&&o!==r&&I(e,o,{get:()=>t[o],enumerable:!(n=se(t,o))||n.enumerable});return e};var C=(e,t,r)=>(r=e!=null?ue(fe(e)):{},V(t||!e||!e.__esModule?I(r,"default",{value:e,enumerable:!0}):r,e)),he=e=>V(I({},"__esModule",{value:!0}),e);var Ue={};me(Ue,{createInitCommand:()=>ze,initCmd:()=>ae});module.exports=he(Ue);var w=require("@terai/runtime"),M=require("@inquirer/prompts");var Y=C(require("process"),1),$=C(require("process"),1),re=C(require("os"),1),P=C(require("tty"),1),z=(e=0)=>t=>`\x1B[${t+e}m`,U=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,H=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,a={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},qe=Object.keys(a.modifier),de=Object.keys(a.color),pe=Object.keys(a.bgColor),Je=[...de,...pe];function be(){let e=new Map;for(let[t,r]of Object.entries(a)){for(let[n,o]of Object.entries(r))a[n]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},r[n]=a[n],e.set(o[0],o[1]);Object.defineProperty(a,t,{value:r,enumerable:!1})}return Object.defineProperty(a,"codes",{value:e,enumerable:!1}),a.color.close="\x1B[39m",a.bgColor.close="\x1B[49m",a.color.ansi=z(),a.color.ansi256=U(),a.color.ansi16m=H(),a.bgColor.ansi=z(10),a.bgColor.ansi256=U(10),a.bgColor.ansi16m=H(10),Object.defineProperties(a,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(i=>i+i).join(""));let o=Number.parseInt(n,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:t=>a.rgbToAnsi256(...a.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,o;if(t>=232)r=((t-232)*10+8)/255,n=r,o=r;else{t-=16;let s=t%36;r=Math.floor(t/36)/5,n=Math.floor(s/6)/5,o=s%6/5}let i=Math.max(r,n,o)*2;if(i===0)return 30;let l=30+(Math.round(o)<<2|Math.round(n)<<1|Math.round(r));return i===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>a.ansi256ToAnsi(a.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>a.ansi256ToAnsi(a.hexToAnsi256(t)),enumerable:!1}}),a}var ve=be(),m=ve;function f(e,t=globalThis.Deno?globalThis.Deno.args:$.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),o=t.indexOf("--");return n!==-1&&(o===-1||n<o)}var{env:u}=$.default,E;f("no-color")||f("no-colors")||f("color=false")||f("color=never")?E=0:(f("color")||f("colors")||f("color=true")||f("color=always"))&&(E=1);function ye(){if("FORCE_COLOR"in u)return u.FORCE_COLOR==="true"?1:u.FORCE_COLOR==="false"?0:u.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(u.FORCE_COLOR,10),3)}function Oe(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Te(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=ye();n!==void 0&&(E=n);let o=r?E:n;if(o===0)return 0;if(r){if(f("color=16m")||f("color=full")||f("color=truecolor"))return 3;if(f("color=256"))return 2}if("TF_BUILD"in u&&"AGENT_NAME"in u)return 1;if(e&&!t&&o===void 0)return 0;let i=o||0;if(u.TERM==="dumb")return i;if($.default.platform==="win32"){let l=re.default.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in u)return"GITHUB_ACTIONS"in u||"GITEA_ACTIONS"in u?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in u)||u.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in u)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(u.TEAMCITY_VERSION)?1:0;if(u.COLORTERM==="truecolor"||u.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in u){let l=Number.parseInt((u.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(u.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(u.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(u.TERM)||"COLORTERM"in u?1:i}function K(e,t={}){let r=Te(e,{streamIsTTY:e&&e.isTTY,...t});return Oe(r)}var we={stdout:K({isTTY:P.default.isatty(1)}),stderr:K({isTTY:P.default.isatty(2)})},Ce=we;function Re(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let o=t.length,i=0,l="";do l+=e.slice(i,n)+t+r,i=n+o,n=e.indexOf(t,i);while(n!==-1);return l+=e.slice(i),l}function xe(e,t,r,n){let o=0,i="";do{let l=e[n-1]==="\r";i+=e.slice(o,l?n-1:n)+t+(l?`\r
2
- `:`
3
- `)+r,o=n+1,n=e.indexOf(`
4
- `,o)}while(n!==-1);return i+=e.slice(o),i}var{stdout:q,stderr:J}=Ce,S=Symbol("GENERATOR"),y=Symbol("STYLER"),R=Symbol("IS_EMPTY"),Q=["ansi","ansi","ansi256","ansi16m"],O=Object.create(null),Ae=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=q?q.level:0;e.level=t.level===void 0?r:t.level},Me=e=>{let t=(...r)=>r.join(" ");return Ae(t,e),Object.setPrototypeOf(t,x.prototype),t};function x(e){return Me(e)}Object.setPrototypeOf(x.prototype,Function.prototype);for(let[e,t]of Object.entries(m))O[e]={get(){let r=N(this,F(t.open,t.close,this[y]),this[R]);return Object.defineProperty(this,e,{value:r}),r}};O.visible={get(){let e=N(this,this[y],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var _=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?m[r].ansi16m(...n):t==="ansi256"?m[r].ansi256(m.rgbToAnsi256(...n)):m[r].ansi(m.rgbToAnsi(...n)):e==="hex"?_("rgb",t,r,...m.hexToRgb(...n)):m[r][e](...n),Be=["rgb","hex","ansi256"];for(let e of Be){O[e]={get(){let{level:r}=this;return function(...n){let o=F(_(e,Q[r],"color",...n),m.color.close,this[y]);return N(this,o,this[R])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);O[t]={get(){let{level:r}=this;return function(...n){let o=F(_(e,Q[r],"bgColor",...n),m.bgColor.close,this[y]);return N(this,o,this[R])}}}}var Ie=Object.defineProperties(()=>{},{...O,level:{enumerable:!0,get(){return this[S].level},set(e){this[S].level=e}}}),F=(e,t,r)=>{let n,o;return r===void 0?(n=e,o=t):(n=r.openAll+e,o=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:o,parent:r}},N=(e,t,r)=>{let n=(...o)=>Ee(n,o.length===1?""+o[0]:o.join(" "));return Object.setPrototypeOf(n,Ie),n[S]=e,n[y]=t,n[R]=r,n},Ee=(e,t)=>{if(e.level<=0||!t)return e[R]?"":t;let r=e[y];if(r===void 0)return t;let{openAll:n,closeAll:o}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=Re(t,r.close,r.open),r=r.parent;let i=t.indexOf(`
5
- `);return i!==-1&&(t=xe(t,o,n,i)),n+t+o};Object.defineProperties(x.prototype,O);var Ne=x(),Qe=x({level:J?J.level:0}),c=Ne;function v(e){return Y.default.stdout.write(`${e}
6
- `)}function $e(e){return Y.default.stderr.write(`${e}
7
- `)}function A(e,t,r,n,o,i){let l=(Array.isArray(i)?i:[i||""].filter(Boolean)).map(s=>r(s)).join("");e(`${" ".repeat(3)} ${t(n)} ${t(o)} ${l}`)}function je(e,t){A(v,c.yellow,c.yellow,"\u25CF",e,t)}function X(e,t){A(v,c.yellow,c.dim,"\u25CF",e,t)}function Z(e,t){A(v,c.cyan,c.dim,"\u25FC",e,t)}function ee(e){A(v,c.green,c.dim,"\u2714",e)}function ke(e,t){v(""),A($e,c.red,c.red,"\u25B2",e,t)}function Le(e,t){return v(`
8
- ${c.bgWhite(` ${c.whiteBright(e)} `)} ${c.bold(t)}
9
- `)}var L=e=>()=>{let t=performance.now();return r=>{let n=performance.now()-t;e(`${r} ${c.gray(`(${n.toFixed(2)}ms)`)}`)}},T={colors:c,log:v,heading:Le,debug:X,info:Z,warn:je,success:ee,error:ke,time:{success:L(ee),info:L(Z),debug:L(X)}};function j(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}function ne(){return typeof WeakMap<"u"?new WeakMap:Pe()}function Pe(){return{add:j,delete:j,get:j,set:j,has:function(e){return!1}}}var Se=Object.prototype.hasOwnProperty,G=function(e,t){return Se.call(e,t)};function W(e,t){for(var r in t)G(t,r)&&(e[r]=t[r]);return e}var _e=/^[ \t]*(?:\r\n|\r|\n)/,Fe=/(?:\r\n|\r|\n)[ \t]*$/,Ye=/^(?:[\r\n]|$)/,We=/(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/,Ge=/^[ \t]*[\r\n][ \t\r\n]*$/;function oe(e,t,r){var n=0,o=e[0].match(We);o&&(n=o[1].length);var i="(\\r\\n|\\r|\\n).{0,"+n+"}",l=new RegExp(i,"g");t&&(e=e.slice(1));var s=r.newline,g=r.trimLeadingNewline,p=r.trimTrailingNewline,B=typeof s=="string",b=e.length,k=e.map(function(h,D){return h=h.replace(l,"$1"),D===0&&g&&(h=h.replace(_e,"")),D===b-1&&p&&(h=h.replace(Fe,"")),B&&(h=h.replace(/\r\n|\n|\r/g,function(He){return s})),h});return k}function De(e,t){for(var r="",n=0,o=e.length;n<o;n++)r+=e[n],n<o-1&&(r+=t[n]);return r}function Ve(e){return G(e,"raw")&&G(e,"length")}function ie(e){var t=ne(),r=ne();function n(i){for(var l=[],s=1;s<arguments.length;s++)l[s-1]=arguments[s];if(Ve(i)){var g=i,p=(l[0]===n||l[0]===d)&&Ge.test(g[0])&&Ye.test(g[1]),B=p?r:t,b=B.get(g);if(b||(b=oe(g,p,e),B.set(g,b)),l.length===0)return b[0];var k=De(b,p?l.slice(1):l);return k}else return ie(W(W({},e),i||{}))}var o=W(n,{string:function(i){return oe([i],!1,e)[0]}});return o}var d=ie({trimLeadingNewline:!0,trimTrailingNewline:!0});if(typeof module<"u")try{module.exports=d,Object.defineProperty(d,"__esModule",{value:!0}),d.default=d,d.outdent=d}catch{}var le=C(require("preferred-pm"));function ze(e,t){return e.command("init","Initialize config file").option("-f, --force","Force overwrite existing config files").option("--cwd <cwd>","Current working directory",{default:t}).action(ae)}async function ae({cwd:e,force:t}){T.heading("init","Initialize config file");let r=(0,w.findConfig)({cwd:e}),o=(await(0,le.default)(e))?.name??"npm",i=o==="npm"?"npm run":o;if(r&&!t)return T.log(d`
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/commands/init.ts
31
+ var init_exports = {};
32
+ __export(init_exports, {
33
+ createInitCommand: () => createInitCommand,
34
+ initCmd: () => initCmd
35
+ });
36
+ module.exports = __toCommonJS(init_exports);
37
+ var import_runtime = require("@terai/runtime");
38
+ var import_prompts = require("@inquirer/prompts");
39
+
40
+ // ../logger/dist/index.mjs
41
+ var import_node_process = __toESM(require("process"), 1);
42
+ var import_node_process2 = __toESM(require("process"), 1);
43
+ var import_node_os = __toESM(require("os"), 1);
44
+ var import_node_tty = __toESM(require("tty"), 1);
45
+ var ANSI_BACKGROUND_OFFSET = 10;
46
+ var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
47
+ var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
48
+ var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
49
+ var styles = {
50
+ modifier: {
51
+ reset: [0, 0],
52
+ // 21 isn't widely supported and 22 does the same thing
53
+ bold: [1, 22],
54
+ dim: [2, 22],
55
+ italic: [3, 23],
56
+ underline: [4, 24],
57
+ overline: [53, 55],
58
+ inverse: [7, 27],
59
+ hidden: [8, 28],
60
+ strikethrough: [9, 29]
61
+ },
62
+ color: {
63
+ black: [30, 39],
64
+ red: [31, 39],
65
+ green: [32, 39],
66
+ yellow: [33, 39],
67
+ blue: [34, 39],
68
+ magenta: [35, 39],
69
+ cyan: [36, 39],
70
+ white: [37, 39],
71
+ // Bright color
72
+ blackBright: [90, 39],
73
+ gray: [90, 39],
74
+ // Alias of `blackBright`
75
+ grey: [90, 39],
76
+ // Alias of `blackBright`
77
+ redBright: [91, 39],
78
+ greenBright: [92, 39],
79
+ yellowBright: [93, 39],
80
+ blueBright: [94, 39],
81
+ magentaBright: [95, 39],
82
+ cyanBright: [96, 39],
83
+ whiteBright: [97, 39]
84
+ },
85
+ bgColor: {
86
+ bgBlack: [40, 49],
87
+ bgRed: [41, 49],
88
+ bgGreen: [42, 49],
89
+ bgYellow: [43, 49],
90
+ bgBlue: [44, 49],
91
+ bgMagenta: [45, 49],
92
+ bgCyan: [46, 49],
93
+ bgWhite: [47, 49],
94
+ // Bright color
95
+ bgBlackBright: [100, 49],
96
+ bgGray: [100, 49],
97
+ // Alias of `bgBlackBright`
98
+ bgGrey: [100, 49],
99
+ // Alias of `bgBlackBright`
100
+ bgRedBright: [101, 49],
101
+ bgGreenBright: [102, 49],
102
+ bgYellowBright: [103, 49],
103
+ bgBlueBright: [104, 49],
104
+ bgMagentaBright: [105, 49],
105
+ bgCyanBright: [106, 49],
106
+ bgWhiteBright: [107, 49]
107
+ }
108
+ };
109
+ var modifierNames = Object.keys(styles.modifier);
110
+ var foregroundColorNames = Object.keys(styles.color);
111
+ var backgroundColorNames = Object.keys(styles.bgColor);
112
+ var colorNames = [...foregroundColorNames, ...backgroundColorNames];
113
+ function assembleStyles() {
114
+ const codes = /* @__PURE__ */ new Map();
115
+ for (const [groupName, group] of Object.entries(styles)) {
116
+ for (const [styleName, style] of Object.entries(group)) {
117
+ styles[styleName] = {
118
+ open: `\x1B[${style[0]}m`,
119
+ close: `\x1B[${style[1]}m`
120
+ };
121
+ group[styleName] = styles[styleName];
122
+ codes.set(style[0], style[1]);
123
+ }
124
+ Object.defineProperty(styles, groupName, {
125
+ value: group,
126
+ enumerable: false
127
+ });
128
+ }
129
+ Object.defineProperty(styles, "codes", {
130
+ value: codes,
131
+ enumerable: false
132
+ });
133
+ styles.color.close = "\x1B[39m";
134
+ styles.bgColor.close = "\x1B[49m";
135
+ styles.color.ansi = wrapAnsi16();
136
+ styles.color.ansi256 = wrapAnsi256();
137
+ styles.color.ansi16m = wrapAnsi16m();
138
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
139
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
140
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
141
+ Object.defineProperties(styles, {
142
+ rgbToAnsi256: {
143
+ value(red, green, blue) {
144
+ if (red === green && green === blue) {
145
+ if (red < 8) {
146
+ return 16;
147
+ }
148
+ if (red > 248) {
149
+ return 231;
150
+ }
151
+ return Math.round((red - 8) / 247 * 24) + 232;
152
+ }
153
+ return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
154
+ },
155
+ enumerable: false
156
+ },
157
+ hexToRgb: {
158
+ value(hex) {
159
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
160
+ if (!matches) {
161
+ return [0, 0, 0];
162
+ }
163
+ let [colorString] = matches;
164
+ if (colorString.length === 3) {
165
+ colorString = [...colorString].map((character) => character + character).join("");
166
+ }
167
+ const integer = Number.parseInt(colorString, 16);
168
+ return [
169
+ /* eslint-disable no-bitwise */
170
+ integer >> 16 & 255,
171
+ integer >> 8 & 255,
172
+ integer & 255
173
+ /* eslint-enable no-bitwise */
174
+ ];
175
+ },
176
+ enumerable: false
177
+ },
178
+ hexToAnsi256: {
179
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
180
+ enumerable: false
181
+ },
182
+ ansi256ToAnsi: {
183
+ value(code) {
184
+ if (code < 8) {
185
+ return 30 + code;
186
+ }
187
+ if (code < 16) {
188
+ return 90 + (code - 8);
189
+ }
190
+ let red;
191
+ let green;
192
+ let blue;
193
+ if (code >= 232) {
194
+ red = ((code - 232) * 10 + 8) / 255;
195
+ green = red;
196
+ blue = red;
197
+ } else {
198
+ code -= 16;
199
+ const remainder = code % 36;
200
+ red = Math.floor(code / 36) / 5;
201
+ green = Math.floor(remainder / 6) / 5;
202
+ blue = remainder % 6 / 5;
203
+ }
204
+ const value = Math.max(red, green, blue) * 2;
205
+ if (value === 0) {
206
+ return 30;
207
+ }
208
+ let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
209
+ if (value === 2) {
210
+ result += 60;
211
+ }
212
+ return result;
213
+ },
214
+ enumerable: false
215
+ },
216
+ rgbToAnsi: {
217
+ value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
218
+ enumerable: false
219
+ },
220
+ hexToAnsi: {
221
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
222
+ enumerable: false
223
+ }
224
+ });
225
+ return styles;
226
+ }
227
+ var ansiStyles = assembleStyles();
228
+ var ansi_styles_default = ansiStyles;
229
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process2.default.argv) {
230
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
231
+ const position = argv.indexOf(prefix + flag);
232
+ const terminatorPosition = argv.indexOf("--");
233
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
234
+ }
235
+ var { env } = import_node_process2.default;
236
+ var flagForceColor;
237
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
238
+ flagForceColor = 0;
239
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
240
+ flagForceColor = 1;
241
+ }
242
+ function envForceColor() {
243
+ if ("FORCE_COLOR" in env) {
244
+ if (env.FORCE_COLOR === "true") {
245
+ return 1;
246
+ }
247
+ if (env.FORCE_COLOR === "false") {
248
+ return 0;
249
+ }
250
+ return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
251
+ }
252
+ }
253
+ function translateLevel(level) {
254
+ if (level === 0) {
255
+ return false;
256
+ }
257
+ return {
258
+ level,
259
+ hasBasic: true,
260
+ has256: level >= 2,
261
+ has16m: level >= 3
262
+ };
263
+ }
264
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
265
+ const noFlagForceColor = envForceColor();
266
+ if (noFlagForceColor !== void 0) {
267
+ flagForceColor = noFlagForceColor;
268
+ }
269
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
270
+ if (forceColor === 0) {
271
+ return 0;
272
+ }
273
+ if (sniffFlags) {
274
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
275
+ return 3;
276
+ }
277
+ if (hasFlag("color=256")) {
278
+ return 2;
279
+ }
280
+ }
281
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
282
+ return 1;
283
+ }
284
+ if (haveStream && !streamIsTTY && forceColor === void 0) {
285
+ return 0;
286
+ }
287
+ const min = forceColor || 0;
288
+ if (env.TERM === "dumb") {
289
+ return min;
290
+ }
291
+ if (import_node_process2.default.platform === "win32") {
292
+ const osRelease = import_node_os.default.release().split(".");
293
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
294
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
295
+ }
296
+ return 1;
297
+ }
298
+ if ("CI" in env) {
299
+ if ("GITHUB_ACTIONS" in env || "GITEA_ACTIONS" in env) {
300
+ return 3;
301
+ }
302
+ if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
303
+ return 1;
304
+ }
305
+ return min;
306
+ }
307
+ if ("TEAMCITY_VERSION" in env) {
308
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
309
+ }
310
+ if (env.COLORTERM === "truecolor") {
311
+ return 3;
312
+ }
313
+ if (env.TERM === "xterm-kitty") {
314
+ return 3;
315
+ }
316
+ if ("TERM_PROGRAM" in env) {
317
+ const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
318
+ switch (env.TERM_PROGRAM) {
319
+ case "iTerm.app": {
320
+ return version >= 3 ? 3 : 2;
321
+ }
322
+ case "Apple_Terminal": {
323
+ return 2;
324
+ }
325
+ }
326
+ }
327
+ if (/-256(color)?$/i.test(env.TERM)) {
328
+ return 2;
329
+ }
330
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
331
+ return 1;
332
+ }
333
+ if ("COLORTERM" in env) {
334
+ return 1;
335
+ }
336
+ return min;
337
+ }
338
+ function createSupportsColor(stream, options = {}) {
339
+ const level = _supportsColor(stream, {
340
+ streamIsTTY: stream && stream.isTTY,
341
+ ...options
342
+ });
343
+ return translateLevel(level);
344
+ }
345
+ var supportsColor = {
346
+ stdout: createSupportsColor({ isTTY: import_node_tty.default.isatty(1) }),
347
+ stderr: createSupportsColor({ isTTY: import_node_tty.default.isatty(2) })
348
+ };
349
+ var supports_color_default = supportsColor;
350
+ function stringReplaceAll(string, substring, replacer) {
351
+ let index = string.indexOf(substring);
352
+ if (index === -1) {
353
+ return string;
354
+ }
355
+ const substringLength = substring.length;
356
+ let endIndex = 0;
357
+ let returnValue = "";
358
+ do {
359
+ returnValue += string.slice(endIndex, index) + substring + replacer;
360
+ endIndex = index + substringLength;
361
+ index = string.indexOf(substring, endIndex);
362
+ } while (index !== -1);
363
+ returnValue += string.slice(endIndex);
364
+ return returnValue;
365
+ }
366
+ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
367
+ let endIndex = 0;
368
+ let returnValue = "";
369
+ do {
370
+ const gotCR = string[index - 1] === "\r";
371
+ returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
372
+ endIndex = index + 1;
373
+ index = string.indexOf("\n", endIndex);
374
+ } while (index !== -1);
375
+ returnValue += string.slice(endIndex);
376
+ return returnValue;
377
+ }
378
+ var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
379
+ var GENERATOR = Symbol("GENERATOR");
380
+ var STYLER = Symbol("STYLER");
381
+ var IS_EMPTY = Symbol("IS_EMPTY");
382
+ var levelMapping = [
383
+ "ansi",
384
+ "ansi",
385
+ "ansi256",
386
+ "ansi16m"
387
+ ];
388
+ var styles2 = /* @__PURE__ */ Object.create(null);
389
+ var applyOptions = (object, options = {}) => {
390
+ if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
391
+ throw new Error("The `level` option should be an integer from 0 to 3");
392
+ }
393
+ const colorLevel = stdoutColor ? stdoutColor.level : 0;
394
+ object.level = options.level === void 0 ? colorLevel : options.level;
395
+ };
396
+ var chalkFactory = (options) => {
397
+ const chalk2 = (...strings) => strings.join(" ");
398
+ applyOptions(chalk2, options);
399
+ Object.setPrototypeOf(chalk2, createChalk.prototype);
400
+ return chalk2;
401
+ };
402
+ function createChalk(options) {
403
+ return chalkFactory(options);
404
+ }
405
+ Object.setPrototypeOf(createChalk.prototype, Function.prototype);
406
+ for (const [styleName, style] of Object.entries(ansi_styles_default)) {
407
+ styles2[styleName] = {
408
+ get() {
409
+ const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
410
+ Object.defineProperty(this, styleName, { value: builder });
411
+ return builder;
412
+ }
413
+ };
414
+ }
415
+ styles2.visible = {
416
+ get() {
417
+ const builder = createBuilder(this, this[STYLER], true);
418
+ Object.defineProperty(this, "visible", { value: builder });
419
+ return builder;
420
+ }
421
+ };
422
+ var getModelAnsi = (model, level, type, ...arguments_) => {
423
+ if (model === "rgb") {
424
+ if (level === "ansi16m") {
425
+ return ansi_styles_default[type].ansi16m(...arguments_);
426
+ }
427
+ if (level === "ansi256") {
428
+ return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
429
+ }
430
+ return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
431
+ }
432
+ if (model === "hex") {
433
+ return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
434
+ }
435
+ return ansi_styles_default[type][model](...arguments_);
436
+ };
437
+ var usedModels = ["rgb", "hex", "ansi256"];
438
+ for (const model of usedModels) {
439
+ styles2[model] = {
440
+ get() {
441
+ const { level } = this;
442
+ return function(...arguments_) {
443
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
444
+ return createBuilder(this, styler, this[IS_EMPTY]);
445
+ };
446
+ }
447
+ };
448
+ const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
449
+ styles2[bgModel] = {
450
+ get() {
451
+ const { level } = this;
452
+ return function(...arguments_) {
453
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
454
+ return createBuilder(this, styler, this[IS_EMPTY]);
455
+ };
456
+ }
457
+ };
458
+ }
459
+ var proto = Object.defineProperties(() => {
460
+ }, {
461
+ ...styles2,
462
+ level: {
463
+ enumerable: true,
464
+ get() {
465
+ return this[GENERATOR].level;
466
+ },
467
+ set(level) {
468
+ this[GENERATOR].level = level;
469
+ }
470
+ }
471
+ });
472
+ var createStyler = (open, close, parent) => {
473
+ let openAll;
474
+ let closeAll;
475
+ if (parent === void 0) {
476
+ openAll = open;
477
+ closeAll = close;
478
+ } else {
479
+ openAll = parent.openAll + open;
480
+ closeAll = close + parent.closeAll;
481
+ }
482
+ return {
483
+ open,
484
+ close,
485
+ openAll,
486
+ closeAll,
487
+ parent
488
+ };
489
+ };
490
+ var createBuilder = (self, _styler, _isEmpty) => {
491
+ const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
492
+ Object.setPrototypeOf(builder, proto);
493
+ builder[GENERATOR] = self;
494
+ builder[STYLER] = _styler;
495
+ builder[IS_EMPTY] = _isEmpty;
496
+ return builder;
497
+ };
498
+ var applyStyle = (self, string) => {
499
+ if (self.level <= 0 || !string) {
500
+ return self[IS_EMPTY] ? "" : string;
501
+ }
502
+ let styler = self[STYLER];
503
+ if (styler === void 0) {
504
+ return string;
505
+ }
506
+ const { openAll, closeAll } = styler;
507
+ if (string.includes("\x1B")) {
508
+ while (styler !== void 0) {
509
+ string = stringReplaceAll(string, styler.close, styler.open);
510
+ styler = styler.parent;
511
+ }
512
+ }
513
+ const lfIndex = string.indexOf("\n");
514
+ if (lfIndex !== -1) {
515
+ string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
516
+ }
517
+ return openAll + string + closeAll;
518
+ };
519
+ Object.defineProperties(createChalk.prototype, styles2);
520
+ var chalk = createChalk();
521
+ var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
522
+ var source_default = chalk;
523
+ function log(message) {
524
+ return import_node_process.default.stdout.write(`${message}
525
+ `);
526
+ }
527
+ function logError(message) {
528
+ return import_node_process.default.stderr.write(`${message}
529
+ `);
530
+ }
531
+ function logBullet(logger2, colorizePrefix, colorizeText, symbol, prefix, text) {
532
+ const textParts = Array.isArray(text) ? text : [text || ""].filter(Boolean);
533
+ const formattedText = textParts.map((textPart) => colorizeText(textPart)).join("");
534
+ logger2(
535
+ `${" ".repeat(3)} ${colorizePrefix(symbol)} ${colorizePrefix(
536
+ prefix
537
+ )} ${formattedText}`
538
+ );
539
+ }
540
+ function warn(prefix, text) {
541
+ logBullet(log, source_default.yellow, source_default.yellow, "\u25CF", prefix, text);
542
+ }
543
+ function debug(prefix, text) {
544
+ logBullet(log, source_default.yellow, source_default.dim, "\u25CF", prefix, text);
545
+ }
546
+ function info(prefix, text) {
547
+ logBullet(log, source_default.cyan, source_default.dim, "\u25FC", prefix, text);
548
+ }
549
+ function success(text) {
550
+ logBullet(log, source_default.green, source_default.dim, "\u2714", text);
551
+ }
552
+ function error(prefix, text) {
553
+ log("");
554
+ logBullet(logError, source_default.red, source_default.red, "\u25B2", prefix, text);
555
+ }
556
+ function heading(heading2, description) {
557
+ return log(
558
+ `
559
+ ${source_default.bgWhite(` ${source_default.whiteBright(heading2)} `)} ${source_default.bold(
560
+ description
561
+ )}
562
+ `
563
+ );
564
+ }
565
+ var timing = (fn) => () => {
566
+ const start = performance.now();
567
+ return (msg) => {
568
+ const end = performance.now();
569
+ const ms = end - start;
570
+ fn(`${msg} ${source_default.gray(`(${ms.toFixed(2)}ms)`)}`);
571
+ };
572
+ };
573
+ var logger = {
574
+ colors: source_default,
575
+ log,
576
+ heading,
577
+ debug,
578
+ info,
579
+ warn,
580
+ success,
581
+ error,
582
+ time: {
583
+ success: timing(success),
584
+ info: timing(info),
585
+ debug: timing(debug)
586
+ }
587
+ };
588
+
589
+ // ../../node_modules/.pnpm/outdent@0.8.0/node_modules/outdent/lib-module/index.js
590
+ function noop() {
591
+ var args = [];
592
+ for (var _i = 0; _i < arguments.length; _i++) {
593
+ args[_i] = arguments[_i];
594
+ }
595
+ }
596
+ function createWeakMap() {
597
+ if (typeof WeakMap !== "undefined") {
598
+ return /* @__PURE__ */ new WeakMap();
599
+ } else {
600
+ return fakeSetOrMap();
601
+ }
602
+ }
603
+ function fakeSetOrMap() {
604
+ return {
605
+ add: noop,
606
+ delete: noop,
607
+ get: noop,
608
+ set: noop,
609
+ has: function(k) {
610
+ return false;
611
+ }
612
+ };
613
+ }
614
+ var hop = Object.prototype.hasOwnProperty;
615
+ var has = function(obj, prop) {
616
+ return hop.call(obj, prop);
617
+ };
618
+ function extend(target, source) {
619
+ for (var prop in source) {
620
+ if (has(source, prop)) {
621
+ target[prop] = source[prop];
622
+ }
623
+ }
624
+ return target;
625
+ }
626
+ var reLeadingNewline = /^[ \t]*(?:\r\n|\r|\n)/;
627
+ var reTrailingNewline = /(?:\r\n|\r|\n)[ \t]*$/;
628
+ var reStartsWithNewlineOrIsEmpty = /^(?:[\r\n]|$)/;
629
+ var reDetectIndentation = /(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/;
630
+ var reOnlyWhitespaceWithAtLeastOneNewline = /^[ \t]*[\r\n][ \t\r\n]*$/;
631
+ function _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) {
632
+ var indentationLevel = 0;
633
+ var match = strings[0].match(reDetectIndentation);
634
+ if (match) {
635
+ indentationLevel = match[1].length;
636
+ }
637
+ var reSource = "(\\r\\n|\\r|\\n).{0," + indentationLevel + "}";
638
+ var reMatchIndent = new RegExp(reSource, "g");
639
+ if (firstInterpolatedValueSetsIndentationLevel) {
640
+ strings = strings.slice(1);
641
+ }
642
+ var newline = options.newline, trimLeadingNewline = options.trimLeadingNewline, trimTrailingNewline = options.trimTrailingNewline;
643
+ var normalizeNewlines = typeof newline === "string";
644
+ var l = strings.length;
645
+ var outdentedStrings = strings.map(function(v, i) {
646
+ v = v.replace(reMatchIndent, "$1");
647
+ if (i === 0 && trimLeadingNewline) {
648
+ v = v.replace(reLeadingNewline, "");
649
+ }
650
+ if (i === l - 1 && trimTrailingNewline) {
651
+ v = v.replace(reTrailingNewline, "");
652
+ }
653
+ if (normalizeNewlines) {
654
+ v = v.replace(/\r\n|\n|\r/g, function(_) {
655
+ return newline;
656
+ });
657
+ }
658
+ return v;
659
+ });
660
+ return outdentedStrings;
661
+ }
662
+ function concatStringsAndValues(strings, values) {
663
+ var ret = "";
664
+ for (var i = 0, l = strings.length; i < l; i++) {
665
+ ret += strings[i];
666
+ if (i < l - 1) {
667
+ ret += values[i];
668
+ }
669
+ }
670
+ return ret;
671
+ }
672
+ function isTemplateStringsArray(v) {
673
+ return has(v, "raw") && has(v, "length");
674
+ }
675
+ function createInstance(options) {
676
+ var arrayAutoIndentCache = createWeakMap();
677
+ var arrayFirstInterpSetsIndentCache = createWeakMap();
678
+ function outdent(stringsOrOptions) {
679
+ var values = [];
680
+ for (var _i = 1; _i < arguments.length; _i++) {
681
+ values[_i - 1] = arguments[_i];
682
+ }
683
+ if (isTemplateStringsArray(stringsOrOptions)) {
684
+ var strings = stringsOrOptions;
685
+ var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]);
686
+ var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache;
687
+ var renderedArray = cache.get(strings);
688
+ if (!renderedArray) {
689
+ renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options);
690
+ cache.set(strings, renderedArray);
691
+ }
692
+ if (values.length === 0) {
693
+ return renderedArray[0];
694
+ }
695
+ var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values);
696
+ return rendered;
697
+ } else {
698
+ return createInstance(extend(extend({}, options), stringsOrOptions || {}));
699
+ }
700
+ }
701
+ var fullOutdent = extend(outdent, {
702
+ string: function(str) {
703
+ return _outdentArray([str], false, options)[0];
704
+ }
705
+ });
706
+ return fullOutdent;
707
+ }
708
+ var defaultOutdent = createInstance({
709
+ trimLeadingNewline: true,
710
+ trimTrailingNewline: true
711
+ });
712
+ if (typeof module !== "undefined") {
713
+ try {
714
+ module.exports = defaultOutdent;
715
+ Object.defineProperty(defaultOutdent, "__esModule", { value: true });
716
+ defaultOutdent.default = defaultOutdent;
717
+ defaultOutdent.outdent = defaultOutdent;
718
+ } catch (e) {
719
+ }
720
+ }
721
+
722
+ // src/commands/init.ts
723
+ var import_preferred_pm = __toESM(require("preferred-pm"));
724
+ function createInitCommand(cli, cwd) {
725
+ return cli.command("init", "Initialize config file").option("-f, --force", "Force overwrite existing config files").option("--cwd <cwd>", "Current working directory", { default: cwd }).action(initCmd);
726
+ }
727
+ async function initCmd({ cwd, force }) {
728
+ logger.heading("init", "Initialize config file");
729
+ const configFile = (0, import_runtime.findConfig)({ cwd });
730
+ const pmResult = await (0, import_preferred_pm.default)(cwd);
731
+ const pm = pmResult?.name ?? "npm";
732
+ const cmd = pm === "npm" ? "npm run" : pm;
733
+ if (configFile && !force) {
734
+ return logger.log(
735
+ defaultOutdent`
10
736
  It looks like you already have terai created.
11
- You can now run ${T.colors.cyan(`'${i} terai extract --watch'`)}
12
- `);let l=await(0,M.input)({message:"What locale do you use for development?",default:"en"}),s=await(0,M.input)({message:"Where do you want to place your generated files?",default:"./locale-system"}),g=await(0,M.select)({message:"Would you like to use any of these templates? (recommended)",choices:[{name:"No",value:null},{name:"Next",value:"next"},{name:"Vite",value:"vite"}]}),p=T.time.success();await(0,w.setupConfig)({cwd:e,projectLocale:l,outDir:s}),g&&await(0,w.setupTemplate)({cwd:e,outDir:s,framework:g}),p("Config file created"),T.log("\u{1F680} You are set up to start using Terai! Thanks for choosing it.")}0&&(module.exports={createInitCommand,initCmd});
737
+ You can now run ${logger.colors.cyan(`'${cmd} terai extract --watch'`)}
738
+ `
739
+ );
740
+ }
741
+ const projectLocale = await (0, import_prompts.input)({
742
+ message: "What locale do you use for development?",
743
+ default: "en"
744
+ });
745
+ const outDir = await (0, import_prompts.input)({
746
+ message: "Where do you want to place your generated files?",
747
+ default: "./locale-system"
748
+ });
749
+ const framework = await (0, import_prompts.select)({
750
+ message: "Would you like to use any of these templates? (recommended)",
751
+ choices: [
752
+ {
753
+ name: "No",
754
+ value: null
755
+ },
756
+ {
757
+ name: "Next",
758
+ value: "next"
759
+ },
760
+ {
761
+ name: "Vite",
762
+ value: "vite"
763
+ }
764
+ ]
765
+ });
766
+ const done = logger.time.success();
767
+ await (0, import_runtime.setupConfig)({ cwd, projectLocale, outDir });
768
+ if (framework) {
769
+ await (0, import_runtime.setupTemplate)({ cwd, outDir, framework });
770
+ }
771
+ done("Config file created");
772
+ logger.log("\u{1F680} You are set up to start using Terai! Thanks for choosing it.");
773
+ }
774
+ // Annotate the CommonJS export names for ESM import in node:
775
+ 0 && (module.exports = {
776
+ createInitCommand,
777
+ initCmd
778
+ });
13
779
  //# sourceMappingURL=init.js.map