create-mastra 0.1.0-alpha.24 → 0.1.0-alpha.27
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/LICENSE +44 -0
- package/dist/index.js +744 -272
- package/dist/index.js.map +1 -1
- package/package.json +5 -2
- package/starter-files/workflow.ts +13 -3
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
|
-
import * as
|
|
5
|
-
import
|
|
4
|
+
import * as fs3__default from 'node:fs';
|
|
5
|
+
import fs3__default__default, { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
6
6
|
import os from 'node:os';
|
|
7
7
|
import path, { dirname } from 'node:path';
|
|
8
8
|
import { PostHog } from 'posthog-node';
|
|
@@ -14,15 +14,26 @@ import tty, { WriteStream } from 'node:tty';
|
|
|
14
14
|
import child_process from 'node:child_process';
|
|
15
15
|
import util from 'node:util';
|
|
16
16
|
import prettier from 'prettier';
|
|
17
|
-
import
|
|
18
|
-
import
|
|
17
|
+
import fsExtra3 from 'fs-extra/esm';
|
|
18
|
+
import fs4 from 'node:fs/promises';
|
|
19
19
|
import { execa } from 'execa';
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
import pino from 'pino';
|
|
21
|
+
import pretty from 'pino-pretty';
|
|
22
|
+
import { Transform } from 'node:stream';
|
|
23
|
+
import fsExtra from 'fs-extra';
|
|
24
|
+
|
|
25
|
+
var __filename = fileURLToPath(import.meta.url);
|
|
26
|
+
var __dirname = path.dirname(__filename);
|
|
27
|
+
var PosthogAnalytics = class {
|
|
28
|
+
sessionId;
|
|
29
|
+
client;
|
|
30
|
+
distinctId;
|
|
31
|
+
version;
|
|
32
|
+
constructor({
|
|
33
|
+
version,
|
|
34
|
+
apiKey,
|
|
35
|
+
host = "https://app.posthog.com"
|
|
36
|
+
}) {
|
|
26
37
|
this.version = version;
|
|
27
38
|
const cliConfigPath = path.join(__dirname, "mastra-cli.json");
|
|
28
39
|
if (existsSync(cliConfigPath)) {
|
|
@@ -130,7 +141,11 @@ class PosthogAnalytics {
|
|
|
130
141
|
}
|
|
131
142
|
}
|
|
132
143
|
// Helper method to wrap command execution with timing
|
|
133
|
-
async trackCommandExecution({
|
|
144
|
+
async trackCommandExecution({
|
|
145
|
+
command,
|
|
146
|
+
args,
|
|
147
|
+
execution
|
|
148
|
+
}) {
|
|
134
149
|
const startTime = process.hrtime();
|
|
135
150
|
try {
|
|
136
151
|
const result = await execution();
|
|
@@ -166,7 +181,7 @@ class PosthogAnalytics {
|
|
|
166
181
|
} catch (e) {
|
|
167
182
|
}
|
|
168
183
|
}
|
|
169
|
-
}
|
|
184
|
+
};
|
|
170
185
|
|
|
171
186
|
function getDefaultExportFromCjs (x) {
|
|
172
187
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
@@ -326,7 +341,7 @@ function requirePicocolors () {
|
|
|
326
341
|
}
|
|
327
342
|
|
|
328
343
|
var picocolorsExports = /*@__PURE__*/ requirePicocolors();
|
|
329
|
-
var
|
|
344
|
+
var color2 = /*@__PURE__*/getDefaultExportFromCjs(picocolorsExports);
|
|
330
345
|
|
|
331
346
|
function q({onlyFirst:e=false}={}){const F=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(F,e?undefined:"g")}const J=q();function S(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(J,"")}function T$1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var j$1={exports:{}};(function(e){var u={};e.exports=u,u.eastAsianWidth=function(t){var s=t.charCodeAt(0),C=t.length==2?t.charCodeAt(1):0,D=s;return 55296<=s&&s<=56319&&56320<=C&&C<=57343&&(s&=1023,C&=1023,D=s<<10|C,D+=65536),D==12288||65281<=D&&D<=65376||65504<=D&&D<=65510?"F":D==8361||65377<=D&&D<=65470||65474<=D&&D<=65479||65482<=D&&D<=65487||65490<=D&&D<=65495||65498<=D&&D<=65500||65512<=D&&D<=65518?"H":4352<=D&&D<=4447||4515<=D&&D<=4519||4602<=D&&D<=4607||9001<=D&&D<=9002||11904<=D&&D<=11929||11931<=D&&D<=12019||12032<=D&&D<=12245||12272<=D&&D<=12283||12289<=D&&D<=12350||12353<=D&&D<=12438||12441<=D&&D<=12543||12549<=D&&D<=12589||12593<=D&&D<=12686||12688<=D&&D<=12730||12736<=D&&D<=12771||12784<=D&&D<=12830||12832<=D&&D<=12871||12880<=D&&D<=13054||13056<=D&&D<=19903||19968<=D&&D<=42124||42128<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||55216<=D&&D<=55238||55243<=D&&D<=55291||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65106||65108<=D&&D<=65126||65128<=D&&D<=65131||110592<=D&&D<=110593||127488<=D&&D<=127490||127504<=D&&D<=127546||127552<=D&&D<=127560||127568<=D&&D<=127569||131072<=D&&D<=194367||177984<=D&&D<=196605||196608<=D&&D<=262141?"W":32<=D&&D<=126||162<=D&&D<=163||165<=D&&D<=166||D==172||D==175||10214<=D&&D<=10221||10629<=D&&D<=10630?"Na":D==161||D==164||167<=D&&D<=168||D==170||173<=D&&D<=174||176<=D&&D<=180||182<=D&&D<=186||188<=D&&D<=191||D==198||D==208||215<=D&&D<=216||222<=D&&D<=225||D==230||232<=D&&D<=234||236<=D&&D<=237||D==240||242<=D&&D<=243||247<=D&&D<=250||D==252||D==254||D==257||D==273||D==275||D==283||294<=D&&D<=295||D==299||305<=D&&D<=307||D==312||319<=D&&D<=322||D==324||328<=D&&D<=331||D==333||338<=D&&D<=339||358<=D&&D<=359||D==363||D==462||D==464||D==466||D==468||D==470||D==472||D==474||D==476||D==593||D==609||D==708||D==711||713<=D&&D<=715||D==717||D==720||728<=D&&D<=731||D==733||D==735||768<=D&&D<=879||913<=D&&D<=929||931<=D&&D<=937||945<=D&&D<=961||963<=D&&D<=969||D==1025||1040<=D&&D<=1103||D==1105||D==8208||8211<=D&&D<=8214||8216<=D&&D<=8217||8220<=D&&D<=8221||8224<=D&&D<=8226||8228<=D&&D<=8231||D==8240||8242<=D&&D<=8243||D==8245||D==8251||D==8254||D==8308||D==8319||8321<=D&&D<=8324||D==8364||D==8451||D==8453||D==8457||D==8467||D==8470||8481<=D&&D<=8482||D==8486||D==8491||8531<=D&&D<=8532||8539<=D&&D<=8542||8544<=D&&D<=8555||8560<=D&&D<=8569||D==8585||8592<=D&&D<=8601||8632<=D&&D<=8633||D==8658||D==8660||D==8679||D==8704||8706<=D&&D<=8707||8711<=D&&D<=8712||D==8715||D==8719||D==8721||D==8725||D==8730||8733<=D&&D<=8736||D==8739||D==8741||8743<=D&&D<=8748||D==8750||8756<=D&&D<=8759||8764<=D&&D<=8765||D==8776||D==8780||D==8786||8800<=D&&D<=8801||8804<=D&&D<=8807||8810<=D&&D<=8811||8814<=D&&D<=8815||8834<=D&&D<=8835||8838<=D&&D<=8839||D==8853||D==8857||D==8869||D==8895||D==8978||9312<=D&&D<=9449||9451<=D&&D<=9547||9552<=D&&D<=9587||9600<=D&&D<=9615||9618<=D&&D<=9621||9632<=D&&D<=9633||9635<=D&&D<=9641||9650<=D&&D<=9651||9654<=D&&D<=9655||9660<=D&&D<=9661||9664<=D&&D<=9665||9670<=D&&D<=9672||D==9675||9678<=D&&D<=9681||9698<=D&&D<=9701||D==9711||9733<=D&&D<=9734||D==9737||9742<=D&&D<=9743||9748<=D&&D<=9749||D==9756||D==9758||D==9792||D==9794||9824<=D&&D<=9825||9827<=D&&D<=9829||9831<=D&&D<=9834||9836<=D&&D<=9837||D==9839||9886<=D&&D<=9887||9918<=D&&D<=9919||9924<=D&&D<=9933||9935<=D&&D<=9953||D==9955||9960<=D&&D<=9983||D==10045||D==10071||10102<=D&&D<=10111||11093<=D&&D<=11097||12872<=D&&D<=12879||57344<=D&&D<=63743||65024<=D&&D<=65039||D==65533||127232<=D&&D<=127242||127248<=D&&D<=127277||127280<=D&&D<=127337||127344<=D&&D<=127386||917760<=D&&D<=917999||983040<=D&&D<=1048573||1048576<=D&&D<=1114109?"A":"N"},u.characterLength=function(t){var s=this.eastAsianWidth(t);return s=="F"||s=="W"||s=="A"?2:1};function F(t){return t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}u.length=function(t){for(var s=F(t),C=0,D=0;D<s.length;D++)C=C+this.characterLength(s[D]);return C},u.slice=function(t,s,C){textLen=u.length(t),s=s||0,C=C||1,s<0&&(s=textLen+s),C<0&&(C=textLen+C);for(var D="",i=0,n=F(t),E=0;E<n.length;E++){var h=n[E],o=u.length(h);if(i>=s-(o==2?1:0))if(i+o<=C)D+=h;else break;i+=o;}return D};})(j$1);var Q$1=j$1.exports;const X=T$1(Q$1);var DD=function(){return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g};const uD=T$1(DD);function A(e,u={}){if(typeof e!="string"||e.length===0||(u={ambiguousIsNarrow:true,...u},e=S(e),e.length===0))return 0;e=e.replace(uD()," ");const F=u.ambiguousIsNarrow?1:2;let t=0;for(const s of e){const C=s.codePointAt(0);if(C<=31||C>=127&&C<=159||C>=768&&C<=879)continue;switch(X.eastAsianWidth(s)){case "F":case "W":t+=2;break;case "A":t+=F;break;default:t+=1;}}return t}const d=10,M$1=(e=0)=>u=>`\x1B[${u+e}m`,P$1=(e=0)=>u=>`\x1B[${38+e};5;${u}m`,W=(e=0)=>(u,F,t)=>`\x1B[${38+e};2;${u};${F};${t}m`,r={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]}};Object.keys(r.modifier);const FD=Object.keys(r.color),eD=Object.keys(r.bgColor);[...FD,...eD];function tD(){const e=new Map;for(const[u,F]of Object.entries(r)){for(const[t,s]of Object.entries(F))r[t]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},F[t]=r[t],e.set(s[0],s[1]);Object.defineProperty(r,u,{value:F,enumerable:false});}return Object.defineProperty(r,"codes",{value:e,enumerable:false}),r.color.close="\x1B[39m",r.bgColor.close="\x1B[49m",r.color.ansi=M$1(),r.color.ansi256=P$1(),r.color.ansi16m=W(),r.bgColor.ansi=M$1(d),r.bgColor.ansi256=P$1(d),r.bgColor.ansi16m=W(d),Object.defineProperties(r,{rgbToAnsi256:{value:(u,F,t)=>u===F&&F===t?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(t/255*5),enumerable:false},hexToRgb:{value:u=>{const F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return [0,0,0];let[t]=F;t.length===3&&(t=[...t].map(C=>C+C).join(""));const s=Number.parseInt(t,16);return [s>>16&255,s>>8&255,s&255]},enumerable:false},hexToAnsi256:{value:u=>r.rgbToAnsi256(...r.hexToRgb(u)),enumerable:false},ansi256ToAnsi:{value:u=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,t,s;if(u>=232)F=((u-232)*10+8)/255,t=F,s=F;else {u-=16;const i=u%36;F=Math.floor(u/36)/5,t=Math.floor(i/6)/5,s=i%6/5;}const C=Math.max(F,t,s)*2;if(C===0)return 30;let D=30+(Math.round(s)<<2|Math.round(t)<<1|Math.round(F));return C===2&&(D+=60),D},enumerable:false},rgbToAnsi:{value:(u,F,t)=>r.ansi256ToAnsi(r.rgbToAnsi256(u,F,t)),enumerable:false},hexToAnsi:{value:u=>r.ansi256ToAnsi(r.hexToAnsi256(u)),enumerable:false}}),r}const sD=tD(),g=new Set(["\x1B","\x9B"]),CD=39,b$1="\x07",O="[",iD="]",I$1="m",w=`${iD}8;;`,N=e=>`${g.values().next().value}${O}${e}${I$1}`,L=e=>`${g.values().next().value}${w}${e}${b$1}`,rD=e=>e.split(" ").map(u=>A(u)),y$1=(e,u,F)=>{const t=[...u];let s=false,C=false,D=A(S(e[e.length-1]));for(const[i,n]of t.entries()){const E=A(n);if(D+E<=F?e[e.length-1]+=n:(e.push(n),D=0),g.has(n)&&(s=true,C=t.slice(i+1).join("").startsWith(w)),s){C?n===b$1&&(s=false,C=false):n===I$1&&(s=false);continue}D+=E,D===F&&i<t.length-1&&(e.push(""),D=0);}!D&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop());},ED=e=>{const u=e.split(" ");let F=u.length;for(;F>0&&!(A(u[F-1])>0);)F--;return F===u.length?e:u.slice(0,F).join(" ")+u.slice(F).join("")},oD=(e,u,F={})=>{if(F.trim!==false&&e.trim()==="")return "";let t="",s,C;const D=rD(e);let i=[""];for(const[E,h]of e.split(" ").entries()){F.trim!==false&&(i[i.length-1]=i[i.length-1].trimStart());let o=A(i[i.length-1]);if(E!==0&&(o>=u&&(F.wordWrap===false||F.trim===false)&&(i.push(""),o=0),(o>0||F.trim===false)&&(i[i.length-1]+=" ",o++)),F.hard&&D[E]>u){const B=u-o,p=1+Math.floor((D[E]-B-1)/u);Math.floor((D[E]-1)/u)<p&&i.push(""),y$1(i,h,u);continue}if(o+D[E]>u&&o>0&&D[E]>0){if(F.wordWrap===false&&o<u){y$1(i,h,u);continue}i.push("");}if(o+D[E]>u&&F.wordWrap===false){y$1(i,h,u);continue}i[i.length-1]+=h;}F.trim!==false&&(i=i.map(E=>ED(E)));const n=[...i.join(`
|
|
332
347
|
`)];for(const[E,h]of n.entries()){if(t+=h,g.has(h)){const{groups:B}=new RegExp(`(?:\\${O}(?<code>\\d+)m|\\${w}(?<uri>.*)${b$1})`).exec(n.slice(E).join(""))||{groups:{}};if(B.code!==undefined){const p=Number.parseFloat(B.code);s=p===CD?undefined:p;}else B.uri!==undefined&&(C=B.uri.length===0?undefined:B.uri);}const o=sD.codes.get(Number(s));n[E+1]===`
|
|
@@ -341,55 +356,55 @@ function q({onlyFirst:e=false}={}){const F=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(
|
|
|
341
356
|
`).length-1;this.output.write(srcExports.cursor.move(-999,u*-1));}render(){const u=R$1(this._render(this)??"",process.stdout.columns,{hard:true});if(u!==this._prevFrame){if(this.state==="initial")this.output.write(srcExports.cursor.hide);else {const F=hD(this._prevFrame,u);if(this.restoreCursor(),F&&F?.length===1){const t=F[0];this.output.write(srcExports.cursor.move(0,t)),this.output.write(srcExports.erase.lines(1));const s=u.split(`
|
|
342
357
|
`);this.output.write(s[t]),this._prevFrame=u,this.output.write(srcExports.cursor.move(0,s.length-t-1));return}else if(F&&F?.length>1){const t=F[0];this.output.write(srcExports.cursor.move(0,t)),this.output.write(srcExports.erase.down());const s=u.split(`
|
|
343
358
|
`).slice(t);this.output.write(s.join(`
|
|
344
|
-
`)),this._prevFrame=u;return}this.output.write(srcExports.erase.down());}this.output.write(u),this.state==="initial"&&(this.state="active"),this._prevFrame=u;}}}class BD extends x{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(u){super(u,false),this.value=!!u.initialValue,this.on("value",()=>{this.value=this._value;}),this.on("confirm",F=>{this.output.write(srcExports.cursor.move(0,-1)),this.value=F,this.state="submit",this.close();}),this.on("cursor",()=>{this.value=!this.value;});}}var fD=Object.defineProperty,gD=(e,u,F)=>u in e?fD(e,u,{enumerable:true,configurable:true,writable:true,value:F}):e[u]=F,K$1=(e,u,F)=>(gD(e,typeof u!="symbol"?u+"":u,F),F);let vD=class extends x{constructor(u){super(u,false),K$1(this,"options"),K$1(this,"cursor",0),this.options=u.options,this.value=[...u.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:F})=>F===u.cursorAt),0),this.on("key",F=>{F==="a"&&this.toggleAll();}),this.on("cursor",F=>{switch(F){case "left":case "up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case "down":case "right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case "space":this.toggleValue();break}});}get _value(){return this.options[this.cursor].value}toggleAll(){const u=this.value.length===this.options.length;this.value=u?[]:this.options.map(F=>F.value);}toggleValue(){const u=this.value.includes(this._value);this.value=u?this.value.filter(F=>F!==this._value):[...this.value,this._value];}};var wD=Object.defineProperty,yD=(e,u,F)=>u in e?wD(e,u,{enumerable:true,configurable:true,writable:true,value:F}):e[u]=F,Z=(e,u,F)=>(yD(e,typeof u!="symbol"?u+"":u,F),F);let $D=class extends x{constructor(u){super(u,false),Z(this,"options"),Z(this,"cursor",0),this.options=u.options,this.cursor=this.options.findIndex(({value:F})=>F===u.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",F=>{switch(F){case "left":case "up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case "down":case "right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue();});}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value;}};var TD=Object.defineProperty,jD=(e,u,F)=>u in e?TD(e,u,{enumerable:true,configurable:true,writable:true,value:F}):e[u]=F,MD=(e,u,F)=>(jD(e,u+"",F),F);class PD extends x{constructor(u){super(u),MD(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=u.defaultValue),this.valueWithCursor=this.value;}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${
|
|
359
|
+
`)),this._prevFrame=u;return}this.output.write(srcExports.erase.down());}this.output.write(u),this.state==="initial"&&(this.state="active"),this._prevFrame=u;}}}class BD extends x{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(u){super(u,false),this.value=!!u.initialValue,this.on("value",()=>{this.value=this._value;}),this.on("confirm",F=>{this.output.write(srcExports.cursor.move(0,-1)),this.value=F,this.state="submit",this.close();}),this.on("cursor",()=>{this.value=!this.value;});}}var fD=Object.defineProperty,gD=(e,u,F)=>u in e?fD(e,u,{enumerable:true,configurable:true,writable:true,value:F}):e[u]=F,K$1=(e,u,F)=>(gD(e,typeof u!="symbol"?u+"":u,F),F);let vD=class extends x{constructor(u){super(u,false),K$1(this,"options"),K$1(this,"cursor",0),this.options=u.options,this.value=[...u.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:F})=>F===u.cursorAt),0),this.on("key",F=>{F==="a"&&this.toggleAll();}),this.on("cursor",F=>{switch(F){case "left":case "up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case "down":case "right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case "space":this.toggleValue();break}});}get _value(){return this.options[this.cursor].value}toggleAll(){const u=this.value.length===this.options.length;this.value=u?[]:this.options.map(F=>F.value);}toggleValue(){const u=this.value.includes(this._value);this.value=u?this.value.filter(F=>F!==this._value):[...this.value,this._value];}};var wD=Object.defineProperty,yD=(e,u,F)=>u in e?wD(e,u,{enumerable:true,configurable:true,writable:true,value:F}):e[u]=F,Z=(e,u,F)=>(yD(e,typeof u!="symbol"?u+"":u,F),F);let $D=class extends x{constructor(u){super(u,false),Z(this,"options"),Z(this,"cursor",0),this.options=u.options,this.cursor=this.options.findIndex(({value:F})=>F===u.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",F=>{switch(F){case "left":case "up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case "down":case "right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue();});}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value;}};var TD=Object.defineProperty,jD=(e,u,F)=>u in e?TD(e,u,{enumerable:true,configurable:true,writable:true,value:F}):e[u]=F,MD=(e,u,F)=>(jD(e,u+"",F),F);class PD extends x{constructor(u){super(u),MD(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=u.defaultValue),this.valueWithCursor=this.value;}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${color2.inverse(color2.hidden("_"))}`;else {const F=this.value.slice(0,this.cursor),t=this.value.slice(this.cursor);this.valueWithCursor=`${F}${color2.inverse(t[0])}${t.slice(1)}`;}});}get cursor(){return this._cursor}}const WD=globalThis.process.platform.startsWith("win");function OD({input:e=stdin,output:u=stdout,overwrite:F=true,hideCursor:t=true}={}){const s=f.createInterface({input:e,output:u,prompt:"",tabSize:1});f.emitKeypressEvents(e,s),e.isTTY&&e.setRawMode(true);const C=(D,{name:i})=>{if(String(D)===""){t&&u.write(srcExports.cursor.show),process.exit(0);return}if(!F)return;let n=i==="return"?0:-1,E=i==="return"?-1:0;f.moveCursor(u,n,E,()=>{f.clearLine(u,1,()=>{e.once("keypress",C);});});};return t&&u.write(srcExports.cursor.hide),e.once("keypress",C),()=>{e.off("keypress",C),t&&u.write(srcExports.cursor.show),e.isTTY&&!WD&&e.setRawMode(false),s.terminal=false,s.close();}}
|
|
345
360
|
|
|
346
|
-
function K(){return h.platform!=="win32"?h.env.TERM!=="linux":!!h.env.CI||!!h.env.WT_SESSION||!!h.env.TERMINUS_SUBLIME||h.env.ConEmuTask==="{cmd::Cmder}"||h.env.TERM_PROGRAM==="Terminus-Sublime"||h.env.TERM_PROGRAM==="vscode"||h.env.TERM==="xterm-256color"||h.env.TERM==="alacritty"||h.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const C=K(),u=(s,n)=>C?s:n,Y=u("\u25C6","*"),P=u("\u25A0","x"),V=u("\u25B2","x"),M=u("\u25C7","o"),Q=u("\u250C","T"),a=u("\u2502","|"),$=u("\u2514","\u2014"),I=u("\u25CF",">"),T=u("\u25CB"," "),j=u("\u25FB","[\u2022]"),b=u("\u25FC","[+]"),B=u("\u25FB","[ ]"),G=u("\u2500","-"),H=u("\u256E","+"),ee=u("\u251C","+"),te=u("\u256F","+"),y=s=>{switch(s){case "initial":case "active":return
|
|
361
|
+
function K(){return h.platform!=="win32"?h.env.TERM!=="linux":!!h.env.CI||!!h.env.WT_SESSION||!!h.env.TERMINUS_SUBLIME||h.env.ConEmuTask==="{cmd::Cmder}"||h.env.TERM_PROGRAM==="Terminus-Sublime"||h.env.TERM_PROGRAM==="vscode"||h.env.TERM==="xterm-256color"||h.env.TERM==="alacritty"||h.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const C=K(),u=(s,n)=>C?s:n,Y=u("\u25C6","*"),P=u("\u25A0","x"),V=u("\u25B2","x"),M=u("\u25C7","o"),Q=u("\u250C","T"),a=u("\u2502","|"),$=u("\u2514","\u2014"),I=u("\u25CF",">"),T=u("\u25CB"," "),j=u("\u25FB","[\u2022]"),b=u("\u25FC","[+]"),B=u("\u25FB","[ ]"),G=u("\u2500","-"),H=u("\u256E","+"),ee=u("\u251C","+"),te=u("\u256F","+"),y=s=>{switch(s){case "initial":case "active":return color2.cyan(Y);case "cancel":return color2.red(P);case "error":return color2.yellow(V);case "submit":return color2.green(M)}},E=s=>{const{cursor:n,options:t,style:i}=s,r=s.maxItems??1/0,o=Math.max(process.stdout.rows-4,0),c=Math.min(o,Math.max(r,5));let l=0;n>=l+c-3?l=Math.max(Math.min(n-c+3,t.length-c),0):n<l+2&&(l=Math.max(n-2,0));const d=c<t.length&&l>0,p=c<t.length&&l+c<t.length;return t.slice(l,l+c).map((S,f,x)=>{const g=f===0&&d,m=f===x.length-1&&p;return g||m?color2.dim("..."):i(S,f+l===n)})},ae=s=>new PD({validate:s.validate,placeholder:s.placeholder,defaultValue:s.defaultValue,initialValue:s.initialValue,render(){const n=`${color2.gray(a)}
|
|
347
362
|
${y(this.state)} ${s.message}
|
|
348
|
-
`,t=s.placeholder?
|
|
349
|
-
${
|
|
350
|
-
${
|
|
351
|
-
`;case "submit":return `${n}${
|
|
352
|
-
`+
|
|
353
|
-
${
|
|
354
|
-
`}}}).prompt(),ce=s=>{const n=s.active??"Yes",t=s.inactive??"No";return new BD({active:n,inactive:t,initialValue:s.initialValue??true,render(){const i=`${
|
|
363
|
+
`,t=s.placeholder?color2.inverse(s.placeholder[0])+color2.dim(s.placeholder.slice(1)):color2.inverse(color2.hidden("_")),i=this.value?this.valueWithCursor:t;switch(this.state){case "error":return `${n.trim()}
|
|
364
|
+
${color2.yellow(a)} ${i}
|
|
365
|
+
${color2.yellow($)} ${color2.yellow(this.error)}
|
|
366
|
+
`;case "submit":return `${n}${color2.gray(a)} ${color2.dim(this.value||s.placeholder)}`;case "cancel":return `${n}${color2.gray(a)} ${color2.strikethrough(color2.dim(this.value??""))}${this.value?.trim()?`
|
|
367
|
+
`+color2.gray(a):""}`;default:return `${n}${color2.cyan(a)} ${i}
|
|
368
|
+
${color2.cyan($)}
|
|
369
|
+
`}}}).prompt(),ce=s=>{const n=s.active??"Yes",t=s.inactive??"No";return new BD({active:n,inactive:t,initialValue:s.initialValue??true,render(){const i=`${color2.gray(a)}
|
|
355
370
|
${y(this.state)} ${s.message}
|
|
356
|
-
`,r=this.value?n:t;switch(this.state){case "submit":return `${i}${
|
|
357
|
-
${
|
|
358
|
-
${
|
|
359
|
-
`}}}).prompt()},le=s=>{const n=(t,i)=>{const r=t.label??String(t.value);switch(i){case "selected":return `${
|
|
371
|
+
`,r=this.value?n:t;switch(this.state){case "submit":return `${i}${color2.gray(a)} ${color2.dim(r)}`;case "cancel":return `${i}${color2.gray(a)} ${color2.strikethrough(color2.dim(r))}
|
|
372
|
+
${color2.gray(a)}`;default:return `${i}${color2.cyan(a)} ${this.value?`${color2.green(I)} ${n}`:`${color2.dim(T)} ${color2.dim(n)}`} ${color2.dim("/")} ${this.value?`${color2.dim(T)} ${color2.dim(t)}`:`${color2.green(I)} ${t}`}
|
|
373
|
+
${color2.cyan($)}
|
|
374
|
+
`}}}).prompt()},le=s=>{const n=(t,i)=>{const r=t.label??String(t.value);switch(i){case "selected":return `${color2.dim(r)}`;case "active":return `${color2.green(I)} ${r} ${t.hint?color2.dim(`(${t.hint})`):""}`;case "cancelled":return `${color2.strikethrough(color2.dim(r))}`;default:return `${color2.dim(T)} ${color2.dim(r)}`}};return new $D({options:s.options,initialValue:s.initialValue,render(){const t=`${color2.gray(a)}
|
|
360
375
|
${y(this.state)} ${s.message}
|
|
361
|
-
`;switch(this.state){case "submit":return `${t}${
|
|
362
|
-
${
|
|
363
|
-
${
|
|
364
|
-
${
|
|
365
|
-
`}}}).prompt()},$e=s=>{const n=(t,i)=>{const r=t.label??String(t.value);return i==="active"?`${
|
|
366
|
-
${
|
|
376
|
+
`;switch(this.state){case "submit":return `${t}${color2.gray(a)} ${n(this.options[this.cursor],"selected")}`;case "cancel":return `${t}${color2.gray(a)} ${n(this.options[this.cursor],"cancelled")}
|
|
377
|
+
${color2.gray(a)}`;default:return `${t}${color2.cyan(a)} ${E({cursor:this.cursor,options:this.options,maxItems:s.maxItems,style:(i,r)=>n(i,r?"active":"inactive")}).join(`
|
|
378
|
+
${color2.cyan(a)} `)}
|
|
379
|
+
${color2.cyan($)}
|
|
380
|
+
`}}}).prompt()},$e=s=>{const n=(t,i)=>{const r=t.label??String(t.value);return i==="active"?`${color2.cyan(j)} ${r} ${t.hint?color2.dim(`(${t.hint})`):""}`:i==="selected"?`${color2.green(b)} ${color2.dim(r)}`:i==="cancelled"?`${color2.strikethrough(color2.dim(r))}`:i==="active-selected"?`${color2.green(b)} ${r} ${t.hint?color2.dim(`(${t.hint})`):""}`:i==="submitted"?`${color2.dim(r)}`:`${color2.dim(B)} ${color2.dim(r)}`};return new vD({options:s.options,initialValues:s.initialValues,required:s.required??true,cursorAt:s.cursorAt,validate(t){if(this.required&&t.length===0)return `Please select at least one option.
|
|
381
|
+
${color2.reset(color2.dim(`Press ${color2.gray(color2.bgWhite(color2.inverse(" space ")))} to select, ${color2.gray(color2.bgWhite(color2.inverse(" enter ")))} to submit`))}`},render(){let t=`${color2.gray(a)}
|
|
367
382
|
${y(this.state)} ${s.message}
|
|
368
|
-
`;const i=(r,o)=>{const c=this.value.includes(r.value);return o&&c?n(r,"active-selected"):c?n(r,"selected"):n(r,o?"active":"inactive")};switch(this.state){case "submit":return `${t}${
|
|
369
|
-
${
|
|
370
|
-
`).map((o,c)=>c===0?`${
|
|
371
|
-
`);return t+
|
|
372
|
-
${
|
|
383
|
+
`;const i=(r,o)=>{const c=this.value.includes(r.value);return o&&c?n(r,"active-selected"):c?n(r,"selected"):n(r,o?"active":"inactive")};switch(this.state){case "submit":return `${t}${color2.gray(a)} ${this.options.filter(({value:r})=>this.value.includes(r)).map(r=>n(r,"submitted")).join(color2.dim(", "))||color2.dim("none")}`;case "cancel":{const r=this.options.filter(({value:o})=>this.value.includes(o)).map(o=>n(o,"cancelled")).join(color2.dim(", "));return `${t}${color2.gray(a)} ${r.trim()?`${r}
|
|
384
|
+
${color2.gray(a)}`:""}`}case "error":{const r=this.error.split(`
|
|
385
|
+
`).map((o,c)=>c===0?`${color2.yellow($)} ${color2.yellow(o)}`:` ${o}`).join(`
|
|
386
|
+
`);return t+color2.yellow(a)+" "+E({options:this.options,cursor:this.cursor,maxItems:s.maxItems,style:i}).join(`
|
|
387
|
+
${color2.yellow(a)} `)+`
|
|
373
388
|
`+r+`
|
|
374
|
-
`}default:return `${t}${
|
|
375
|
-
${
|
|
376
|
-
${
|
|
389
|
+
`}default:return `${t}${color2.cyan(a)} ${E({options:this.options,cursor:this.cursor,maxItems:s.maxItems,style:i}).join(`
|
|
390
|
+
${color2.cyan(a)} `)}
|
|
391
|
+
${color2.cyan($)}
|
|
377
392
|
`}}}).prompt()},R=s=>s.replace(ye(),""),me=(s="",n="")=>{const t=`
|
|
378
393
|
${s}
|
|
379
394
|
`.split(`
|
|
380
|
-
`),i=R(n).length,r=Math.max(t.reduce((c,l)=>(l=R(l),l.length>c?l.length:c),0),i)+2,o=t.map(c=>`${
|
|
381
|
-
`);process.stdout.write(`${
|
|
382
|
-
${
|
|
395
|
+
`),i=R(n).length,r=Math.max(t.reduce((c,l)=>(l=R(l),l.length>c?l.length:c),0),i)+2,o=t.map(c=>`${color2.gray(a)} ${color2.dim(c)}${" ".repeat(r-R(c).length)}${color2.gray(a)}`).join(`
|
|
396
|
+
`);process.stdout.write(`${color2.gray(a)}
|
|
397
|
+
${color2.green(M)} ${color2.reset(n)} ${color2.gray(G.repeat(Math.max(r-i-1,1))+H)}
|
|
383
398
|
${o}
|
|
384
|
-
${
|
|
385
|
-
`);},he=(s="")=>{process.stdout.write(`${
|
|
399
|
+
${color2.gray(ee+G.repeat(r+2)+te)}
|
|
400
|
+
`);},he=(s="")=>{process.stdout.write(`${color2.gray($)} ${color2.red(s)}
|
|
386
401
|
|
|
387
|
-
`);},pe=(s="")=>{process.stdout.write(`${
|
|
388
|
-
`);},ge=(s="")=>{process.stdout.write(`${
|
|
389
|
-
${
|
|
402
|
+
`);},pe=(s="")=>{process.stdout.write(`${color2.gray(Q)} ${s}
|
|
403
|
+
`);},ge=(s="")=>{process.stdout.write(`${color2.gray(a)}
|
|
404
|
+
${color2.gray($)} ${s}
|
|
390
405
|
|
|
391
|
-
`);},_=()=>{const s=C?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],n=C?80:120;let t,i,r=false,o="";const c=g=>{const m=g>1?"Something went wrong":"Canceled";r&&x(m,g);},l=()=>c(2),d=()=>c(1),p=()=>{process.on("uncaughtExceptionMonitor",l),process.on("unhandledRejection",l),process.on("SIGINT",d),process.on("SIGTERM",d),process.on("exit",c);},S=()=>{process.removeListener("uncaughtExceptionMonitor",l),process.removeListener("unhandledRejection",l),process.removeListener("SIGINT",d),process.removeListener("SIGTERM",d),process.removeListener("exit",c);},f=(g="")=>{r=true,t=OD(),o=g.replace(/\.+$/,""),process.stdout.write(`${
|
|
392
|
-
`);let m=0,w=0;p(),i=setInterval(()=>{const L=
|
|
406
|
+
`);},_=()=>{const s=C?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],n=C?80:120;let t,i,r=false,o="";const c=g=>{const m=g>1?"Something went wrong":"Canceled";r&&x(m,g);},l=()=>c(2),d=()=>c(1),p=()=>{process.on("uncaughtExceptionMonitor",l),process.on("unhandledRejection",l),process.on("SIGINT",d),process.on("SIGTERM",d),process.on("exit",c);},S=()=>{process.removeListener("uncaughtExceptionMonitor",l),process.removeListener("unhandledRejection",l),process.removeListener("SIGINT",d),process.removeListener("SIGTERM",d),process.removeListener("exit",c);},f=(g="")=>{r=true,t=OD(),o=g.replace(/\.+$/,""),process.stdout.write(`${color2.gray(a)}
|
|
407
|
+
`);let m=0,w=0;p(),i=setInterval(()=>{const L=color2.magenta(s[m]),O=".".repeat(Math.floor(w)).slice(0,3);process.stdout.write(srcExports.cursor.move(-999,0)),process.stdout.write(srcExports.erase.down(1)),process.stdout.write(`${L} ${o}${O}`),m=m+1<s.length?m+1:0,w=w<s.length?w+.125:0;},n);},x=(g="",m=0)=>{o=g??o,r=false,clearInterval(i);const w=m===0?color2.green(M):m===1?color2.red(P):color2.red(V);process.stdout.write(srcExports.cursor.move(-999,0)),process.stdout.write(srcExports.erase.down(1)),process.stdout.write(`${w} ${o}
|
|
393
408
|
`),S(),t();};return {start:f,stop:x,message:(g="")=>{o=g??o;}}};function ye(){const s=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(s,"g")}const ve=async(s,n)=>{const t={},i=Object.keys(s);for(const r of i){const o=s[r],c=await o({results:t})?.catch(l=>{throw l});if(typeof n?.onCancel=="function"&&lD(c)){t[r]="canceled",n.onCancel({results:t});continue}t[r]=c;}return t};
|
|
394
409
|
|
|
395
410
|
// eslint-disable-next-line no-warning-comments
|
|
@@ -481,48 +496,48 @@ const bgCyanBright = format(106, 49);
|
|
|
481
496
|
const bgWhiteBright = format(107, 49);
|
|
482
497
|
|
|
483
498
|
var yoctocolors = /*#__PURE__*/Object.freeze({
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
499
|
+
__proto__: null,
|
|
500
|
+
bgBlack: bgBlack,
|
|
501
|
+
bgBlue: bgBlue,
|
|
502
|
+
bgBlueBright: bgBlueBright,
|
|
503
|
+
bgCyan: bgCyan,
|
|
504
|
+
bgCyanBright: bgCyanBright,
|
|
505
|
+
bgGray: bgGray,
|
|
506
|
+
bgGreen: bgGreen,
|
|
507
|
+
bgGreenBright: bgGreenBright,
|
|
508
|
+
bgMagenta: bgMagenta,
|
|
509
|
+
bgMagentaBright: bgMagentaBright,
|
|
510
|
+
bgRed: bgRed,
|
|
511
|
+
bgRedBright: bgRedBright,
|
|
512
|
+
bgWhite: bgWhite,
|
|
513
|
+
bgWhiteBright: bgWhiteBright,
|
|
514
|
+
bgYellow: bgYellow,
|
|
515
|
+
bgYellowBright: bgYellowBright,
|
|
516
|
+
black: black,
|
|
517
|
+
blue: blue,
|
|
518
|
+
blueBright: blueBright,
|
|
519
|
+
bold: bold,
|
|
520
|
+
cyan: cyan,
|
|
521
|
+
cyanBright: cyanBright,
|
|
522
|
+
dim: dim,
|
|
523
|
+
gray: gray,
|
|
524
|
+
green: green,
|
|
525
|
+
greenBright: greenBright,
|
|
526
|
+
hidden: hidden,
|
|
527
|
+
inverse: inverse,
|
|
528
|
+
italic: italic,
|
|
529
|
+
magenta: magenta,
|
|
530
|
+
magentaBright: magentaBright,
|
|
531
|
+
overline: overline,
|
|
532
|
+
red: red,
|
|
533
|
+
redBright: redBright,
|
|
534
|
+
reset: reset,
|
|
535
|
+
strikethrough: strikethrough,
|
|
536
|
+
underline: underline,
|
|
537
|
+
white: white,
|
|
538
|
+
whiteBright: whiteBright,
|
|
539
|
+
yellow: yellow,
|
|
540
|
+
yellowBright: yellowBright
|
|
526
541
|
});
|
|
527
542
|
|
|
528
543
|
const isUnicodeSupported = h.platform !== 'win32' || Boolean(h.env.WT_SESSION);
|
|
@@ -764,14 +779,446 @@ function yoctoSpinner(options) {
|
|
|
764
779
|
return new YoctoSpinner(options);
|
|
765
780
|
}
|
|
766
781
|
|
|
767
|
-
|
|
782
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
783
|
+
try {
|
|
784
|
+
var i = n[a](c), u = i.value;
|
|
785
|
+
} catch (n2) {
|
|
786
|
+
return void e(n2);
|
|
787
|
+
}
|
|
788
|
+
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
789
|
+
}
|
|
790
|
+
function _asyncToGenerator(n) {
|
|
791
|
+
return function() {
|
|
792
|
+
var t = this, e = arguments;
|
|
793
|
+
return new Promise(function(r, o) {
|
|
794
|
+
var a = n.apply(t, e);
|
|
795
|
+
function _next(n2) {
|
|
796
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "next", n2);
|
|
797
|
+
}
|
|
798
|
+
function _throw(n2) {
|
|
799
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2);
|
|
800
|
+
}
|
|
801
|
+
_next(undefined);
|
|
802
|
+
});
|
|
803
|
+
};
|
|
804
|
+
}
|
|
805
|
+
function _regeneratorRuntime() {
|
|
806
|
+
_regeneratorRuntime = function() {
|
|
807
|
+
return e;
|
|
808
|
+
};
|
|
809
|
+
var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function(t2, e2, r2) {
|
|
810
|
+
t2[e2] = r2.value;
|
|
811
|
+
}, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag";
|
|
812
|
+
function define(t2, e2, r2) {
|
|
813
|
+
return Object.defineProperty(t2, e2, {
|
|
814
|
+
value: r2,
|
|
815
|
+
enumerable: true,
|
|
816
|
+
configurable: true,
|
|
817
|
+
writable: true
|
|
818
|
+
}), t2[e2];
|
|
819
|
+
}
|
|
820
|
+
try {
|
|
821
|
+
define({}, "");
|
|
822
|
+
} catch (t2) {
|
|
823
|
+
define = function(t3, e2, r2) {
|
|
824
|
+
return t3[e2] = r2;
|
|
825
|
+
};
|
|
826
|
+
}
|
|
827
|
+
function wrap(t2, e2, r2, n2) {
|
|
828
|
+
var i2 = e2 && e2.prototype instanceof Generator ? e2 : Generator, a2 = Object.create(i2.prototype), c2 = new Context(n2 || []);
|
|
829
|
+
return o(a2, "_invoke", {
|
|
830
|
+
value: makeInvokeMethod(t2, r2, c2)
|
|
831
|
+
}), a2;
|
|
832
|
+
}
|
|
833
|
+
function tryCatch(t2, e2, r2) {
|
|
834
|
+
try {
|
|
835
|
+
return {
|
|
836
|
+
type: "normal",
|
|
837
|
+
arg: t2.call(e2, r2)
|
|
838
|
+
};
|
|
839
|
+
} catch (t3) {
|
|
840
|
+
return {
|
|
841
|
+
type: "throw",
|
|
842
|
+
arg: t3
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
e.wrap = wrap;
|
|
847
|
+
var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {};
|
|
848
|
+
function Generator() {
|
|
849
|
+
}
|
|
850
|
+
function GeneratorFunction() {
|
|
851
|
+
}
|
|
852
|
+
function GeneratorFunctionPrototype() {
|
|
853
|
+
}
|
|
854
|
+
var p = {};
|
|
855
|
+
define(p, a, function() {
|
|
856
|
+
return this;
|
|
857
|
+
});
|
|
858
|
+
var d = Object.getPrototypeOf, v = d && d(d(values([])));
|
|
859
|
+
v && v !== r && n.call(v, a) && (p = v);
|
|
860
|
+
var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
|
|
861
|
+
function defineIteratorMethods(t2) {
|
|
862
|
+
["next", "throw", "return"].forEach(function(e2) {
|
|
863
|
+
define(t2, e2, function(t3) {
|
|
864
|
+
return this._invoke(e2, t3);
|
|
865
|
+
});
|
|
866
|
+
});
|
|
867
|
+
}
|
|
868
|
+
function AsyncIterator(t2, e2) {
|
|
869
|
+
function invoke(r3, o2, i2, a2) {
|
|
870
|
+
var c2 = tryCatch(t2[r3], t2, o2);
|
|
871
|
+
if ("throw" !== c2.type) {
|
|
872
|
+
var u2 = c2.arg, h2 = u2.value;
|
|
873
|
+
return h2 && "object" == typeof h2 && n.call(h2, "__await") ? e2.resolve(h2.__await).then(function(t3) {
|
|
874
|
+
invoke("next", t3, i2, a2);
|
|
875
|
+
}, function(t3) {
|
|
876
|
+
invoke("throw", t3, i2, a2);
|
|
877
|
+
}) : e2.resolve(h2).then(function(t3) {
|
|
878
|
+
u2.value = t3, i2(u2);
|
|
879
|
+
}, function(t3) {
|
|
880
|
+
return invoke("throw", t3, i2, a2);
|
|
881
|
+
});
|
|
882
|
+
}
|
|
883
|
+
a2(c2.arg);
|
|
884
|
+
}
|
|
885
|
+
var r2;
|
|
886
|
+
o(this, "_invoke", {
|
|
887
|
+
value: function(t3, n2) {
|
|
888
|
+
function callInvokeWithMethodAndArg() {
|
|
889
|
+
return new e2(function(e3, r3) {
|
|
890
|
+
invoke(t3, n2, e3, r3);
|
|
891
|
+
});
|
|
892
|
+
}
|
|
893
|
+
return r2 = r2 ? r2.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
|
|
894
|
+
}
|
|
895
|
+
});
|
|
896
|
+
}
|
|
897
|
+
function makeInvokeMethod(e2, r2, n2) {
|
|
898
|
+
var o2 = h;
|
|
899
|
+
return function(i2, a2) {
|
|
900
|
+
if (o2 === f) throw Error("Generator is already running");
|
|
901
|
+
if (o2 === s) {
|
|
902
|
+
if ("throw" === i2) throw a2;
|
|
903
|
+
return {
|
|
904
|
+
value: t,
|
|
905
|
+
done: true
|
|
906
|
+
};
|
|
907
|
+
}
|
|
908
|
+
for (n2.method = i2, n2.arg = a2; ; ) {
|
|
909
|
+
var c2 = n2.delegate;
|
|
910
|
+
if (c2) {
|
|
911
|
+
var u2 = maybeInvokeDelegate(c2, n2);
|
|
912
|
+
if (u2) {
|
|
913
|
+
if (u2 === y) continue;
|
|
914
|
+
return u2;
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
if ("next" === n2.method) n2.sent = n2._sent = n2.arg;
|
|
918
|
+
else if ("throw" === n2.method) {
|
|
919
|
+
if (o2 === h) throw o2 = s, n2.arg;
|
|
920
|
+
n2.dispatchException(n2.arg);
|
|
921
|
+
} else "return" === n2.method && n2.abrupt("return", n2.arg);
|
|
922
|
+
o2 = f;
|
|
923
|
+
var p2 = tryCatch(e2, r2, n2);
|
|
924
|
+
if ("normal" === p2.type) {
|
|
925
|
+
if (o2 = n2.done ? s : l, p2.arg === y) continue;
|
|
926
|
+
return {
|
|
927
|
+
value: p2.arg,
|
|
928
|
+
done: n2.done
|
|
929
|
+
};
|
|
930
|
+
}
|
|
931
|
+
"throw" === p2.type && (o2 = s, n2.method = "throw", n2.arg = p2.arg);
|
|
932
|
+
}
|
|
933
|
+
};
|
|
934
|
+
}
|
|
935
|
+
function maybeInvokeDelegate(e2, r2) {
|
|
936
|
+
var n2 = r2.method, o2 = e2.iterator[n2];
|
|
937
|
+
if (o2 === t) return r2.delegate = null, "throw" === n2 && e2.iterator.return && (r2.method = "return", r2.arg = t, maybeInvokeDelegate(e2, r2), "throw" === r2.method) || "return" !== n2 && (r2.method = "throw", r2.arg = new TypeError("The iterator does not provide a '" + n2 + "' method")), y;
|
|
938
|
+
var i2 = tryCatch(o2, e2.iterator, r2.arg);
|
|
939
|
+
if ("throw" === i2.type) return r2.method = "throw", r2.arg = i2.arg, r2.delegate = null, y;
|
|
940
|
+
var a2 = i2.arg;
|
|
941
|
+
return a2 ? a2.done ? (r2[e2.resultName] = a2.value, r2.next = e2.nextLoc, "return" !== r2.method && (r2.method = "next", r2.arg = t), r2.delegate = null, y) : a2 : (r2.method = "throw", r2.arg = new TypeError("iterator result is not an object"), r2.delegate = null, y);
|
|
942
|
+
}
|
|
943
|
+
function pushTryEntry(t2) {
|
|
944
|
+
var e2 = {
|
|
945
|
+
tryLoc: t2[0]
|
|
946
|
+
};
|
|
947
|
+
1 in t2 && (e2.catchLoc = t2[1]), 2 in t2 && (e2.finallyLoc = t2[2], e2.afterLoc = t2[3]), this.tryEntries.push(e2);
|
|
948
|
+
}
|
|
949
|
+
function resetTryEntry(t2) {
|
|
950
|
+
var e2 = t2.completion || {};
|
|
951
|
+
e2.type = "normal", delete e2.arg, t2.completion = e2;
|
|
952
|
+
}
|
|
953
|
+
function Context(t2) {
|
|
954
|
+
this.tryEntries = [{
|
|
955
|
+
tryLoc: "root"
|
|
956
|
+
}], t2.forEach(pushTryEntry, this), this.reset(true);
|
|
957
|
+
}
|
|
958
|
+
function values(e2) {
|
|
959
|
+
if (e2 || "" === e2) {
|
|
960
|
+
var r2 = e2[a];
|
|
961
|
+
if (r2) return r2.call(e2);
|
|
962
|
+
if ("function" == typeof e2.next) return e2;
|
|
963
|
+
if (!isNaN(e2.length)) {
|
|
964
|
+
var o2 = -1, i2 = function next() {
|
|
965
|
+
for (; ++o2 < e2.length; ) if (n.call(e2, o2)) return next.value = e2[o2], next.done = false, next;
|
|
966
|
+
return next.value = t, next.done = true, next;
|
|
967
|
+
};
|
|
968
|
+
return i2.next = i2;
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
throw new TypeError(typeof e2 + " is not iterable");
|
|
972
|
+
}
|
|
973
|
+
return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
|
|
974
|
+
value: GeneratorFunctionPrototype,
|
|
975
|
+
configurable: true
|
|
976
|
+
}), o(GeneratorFunctionPrototype, "constructor", {
|
|
977
|
+
value: GeneratorFunction,
|
|
978
|
+
configurable: true
|
|
979
|
+
}), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function(t2) {
|
|
980
|
+
var e2 = "function" == typeof t2 && t2.constructor;
|
|
981
|
+
return !!e2 && (e2 === GeneratorFunction || "GeneratorFunction" === (e2.displayName || e2.name));
|
|
982
|
+
}, e.mark = function(t2) {
|
|
983
|
+
return Object.setPrototypeOf ? Object.setPrototypeOf(t2, GeneratorFunctionPrototype) : (t2.__proto__ = GeneratorFunctionPrototype, define(t2, u, "GeneratorFunction")), t2.prototype = Object.create(g), t2;
|
|
984
|
+
}, e.awrap = function(t2) {
|
|
985
|
+
return {
|
|
986
|
+
__await: t2
|
|
987
|
+
};
|
|
988
|
+
}, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function() {
|
|
989
|
+
return this;
|
|
990
|
+
}), e.AsyncIterator = AsyncIterator, e.async = function(t2, r2, n2, o2, i2) {
|
|
991
|
+
undefined === i2 && (i2 = Promise);
|
|
992
|
+
var a2 = new AsyncIterator(wrap(t2, r2, n2, o2), i2);
|
|
993
|
+
return e.isGeneratorFunction(r2) ? a2 : a2.next().then(function(t3) {
|
|
994
|
+
return t3.done ? t3.value : a2.next();
|
|
995
|
+
});
|
|
996
|
+
}, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function() {
|
|
997
|
+
return this;
|
|
998
|
+
}), define(g, "toString", function() {
|
|
999
|
+
return "[object Generator]";
|
|
1000
|
+
}), e.keys = function(t2) {
|
|
1001
|
+
var e2 = Object(t2), r2 = [];
|
|
1002
|
+
for (var n2 in e2) r2.push(n2);
|
|
1003
|
+
return r2.reverse(), function next() {
|
|
1004
|
+
for (; r2.length; ) {
|
|
1005
|
+
var t3 = r2.pop();
|
|
1006
|
+
if (t3 in e2) return next.value = t3, next.done = false, next;
|
|
1007
|
+
}
|
|
1008
|
+
return next.done = true, next;
|
|
1009
|
+
};
|
|
1010
|
+
}, e.values = values, Context.prototype = {
|
|
1011
|
+
constructor: Context,
|
|
1012
|
+
reset: function(e2) {
|
|
1013
|
+
if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = false, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e2) for (var r2 in this) "t" === r2.charAt(0) && n.call(this, r2) && !isNaN(+r2.slice(1)) && (this[r2] = t);
|
|
1014
|
+
},
|
|
1015
|
+
stop: function() {
|
|
1016
|
+
this.done = true;
|
|
1017
|
+
var t2 = this.tryEntries[0].completion;
|
|
1018
|
+
if ("throw" === t2.type) throw t2.arg;
|
|
1019
|
+
return this.rval;
|
|
1020
|
+
},
|
|
1021
|
+
dispatchException: function(e2) {
|
|
1022
|
+
if (this.done) throw e2;
|
|
1023
|
+
var r2 = this;
|
|
1024
|
+
function handle(n2, o3) {
|
|
1025
|
+
return a2.type = "throw", a2.arg = e2, r2.next = n2, o3 && (r2.method = "next", r2.arg = t), !!o3;
|
|
1026
|
+
}
|
|
1027
|
+
for (var o2 = this.tryEntries.length - 1; o2 >= 0; --o2) {
|
|
1028
|
+
var i2 = this.tryEntries[o2], a2 = i2.completion;
|
|
1029
|
+
if ("root" === i2.tryLoc) return handle("end");
|
|
1030
|
+
if (i2.tryLoc <= this.prev) {
|
|
1031
|
+
var c2 = n.call(i2, "catchLoc"), u2 = n.call(i2, "finallyLoc");
|
|
1032
|
+
if (c2 && u2) {
|
|
1033
|
+
if (this.prev < i2.catchLoc) return handle(i2.catchLoc, true);
|
|
1034
|
+
if (this.prev < i2.finallyLoc) return handle(i2.finallyLoc);
|
|
1035
|
+
} else if (c2) {
|
|
1036
|
+
if (this.prev < i2.catchLoc) return handle(i2.catchLoc, true);
|
|
1037
|
+
} else {
|
|
1038
|
+
if (!u2) throw Error("try statement without catch or finally");
|
|
1039
|
+
if (this.prev < i2.finallyLoc) return handle(i2.finallyLoc);
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
},
|
|
1044
|
+
abrupt: function(t2, e2) {
|
|
1045
|
+
for (var r2 = this.tryEntries.length - 1; r2 >= 0; --r2) {
|
|
1046
|
+
var o2 = this.tryEntries[r2];
|
|
1047
|
+
if (o2.tryLoc <= this.prev && n.call(o2, "finallyLoc") && this.prev < o2.finallyLoc) {
|
|
1048
|
+
var i2 = o2;
|
|
1049
|
+
break;
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
i2 && ("break" === t2 || "continue" === t2) && i2.tryLoc <= e2 && e2 <= i2.finallyLoc && (i2 = null);
|
|
1053
|
+
var a2 = i2 ? i2.completion : {};
|
|
1054
|
+
return a2.type = t2, a2.arg = e2, i2 ? (this.method = "next", this.next = i2.finallyLoc, y) : this.complete(a2);
|
|
1055
|
+
},
|
|
1056
|
+
complete: function(t2, e2) {
|
|
1057
|
+
if ("throw" === t2.type) throw t2.arg;
|
|
1058
|
+
return "break" === t2.type || "continue" === t2.type ? this.next = t2.arg : "return" === t2.type ? (this.rval = this.arg = t2.arg, this.method = "return", this.next = "end") : "normal" === t2.type && e2 && (this.next = e2), y;
|
|
1059
|
+
},
|
|
1060
|
+
finish: function(t2) {
|
|
1061
|
+
for (var e2 = this.tryEntries.length - 1; e2 >= 0; --e2) {
|
|
1062
|
+
var r2 = this.tryEntries[e2];
|
|
1063
|
+
if (r2.finallyLoc === t2) return this.complete(r2.completion, r2.afterLoc), resetTryEntry(r2), y;
|
|
1064
|
+
}
|
|
1065
|
+
},
|
|
1066
|
+
catch: function(t2) {
|
|
1067
|
+
for (var e2 = this.tryEntries.length - 1; e2 >= 0; --e2) {
|
|
1068
|
+
var r2 = this.tryEntries[e2];
|
|
1069
|
+
if (r2.tryLoc === t2) {
|
|
1070
|
+
var n2 = r2.completion;
|
|
1071
|
+
if ("throw" === n2.type) {
|
|
1072
|
+
var o2 = n2.arg;
|
|
1073
|
+
resetTryEntry(r2);
|
|
1074
|
+
}
|
|
1075
|
+
return o2;
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
throw Error("illegal catch attempt");
|
|
1079
|
+
},
|
|
1080
|
+
delegateYield: function(e2, r2, n2) {
|
|
1081
|
+
return this.delegate = {
|
|
1082
|
+
iterator: values(e2),
|
|
1083
|
+
resultName: r2,
|
|
1084
|
+
nextLoc: n2
|
|
1085
|
+
}, "next" === this.method && (this.arg = t), y;
|
|
1086
|
+
}
|
|
1087
|
+
}, e;
|
|
1088
|
+
}
|
|
1089
|
+
var LogLevel = {
|
|
1090
|
+
DEBUG: "debug",
|
|
1091
|
+
INFO: "info",
|
|
1092
|
+
WARN: "warn",
|
|
1093
|
+
ERROR: "error",
|
|
1094
|
+
NONE: "silent"
|
|
1095
|
+
};
|
|
1096
|
+
var Logger = /* @__PURE__ */ function() {
|
|
1097
|
+
function Logger2(options) {
|
|
1098
|
+
if (options === undefined) {
|
|
1099
|
+
options = {};
|
|
1100
|
+
}
|
|
1101
|
+
this.logger = undefined;
|
|
1102
|
+
this.transports = undefined;
|
|
1103
|
+
this.transports = options.transports || {};
|
|
1104
|
+
this.logger = pino({
|
|
1105
|
+
name: options.name || "app",
|
|
1106
|
+
level: options.level || LogLevel.INFO
|
|
1107
|
+
}, pino.multistream([].concat(Object.entries(this.transports).map(function(_ref2) {
|
|
1108
|
+
var transport = _ref2[1];
|
|
1109
|
+
return {
|
|
1110
|
+
stream: transport,
|
|
1111
|
+
level: options.level || LogLevel.INFO
|
|
1112
|
+
};
|
|
1113
|
+
}), [{
|
|
1114
|
+
stream: pretty({
|
|
1115
|
+
colorize: true,
|
|
1116
|
+
levelFirst: true,
|
|
1117
|
+
ignore: "pid,hostname",
|
|
1118
|
+
colorizeObjects: true,
|
|
1119
|
+
translateTime: "SYS:standard",
|
|
1120
|
+
singleLine: false
|
|
1121
|
+
}),
|
|
1122
|
+
level: options.level || LogLevel.INFO
|
|
1123
|
+
}])));
|
|
1124
|
+
}
|
|
1125
|
+
var _proto2 = Logger2.prototype;
|
|
1126
|
+
_proto2.debug = function debug2(message, args) {
|
|
1127
|
+
if (args === undefined) {
|
|
1128
|
+
args = {};
|
|
1129
|
+
}
|
|
1130
|
+
this.logger.debug(args, message);
|
|
1131
|
+
};
|
|
1132
|
+
_proto2.info = function info2(message, args) {
|
|
1133
|
+
if (args === undefined) {
|
|
1134
|
+
args = {};
|
|
1135
|
+
}
|
|
1136
|
+
this.logger.info(args, message);
|
|
1137
|
+
};
|
|
1138
|
+
_proto2.warn = function warn2(message, args) {
|
|
1139
|
+
if (args === undefined) {
|
|
1140
|
+
args = {};
|
|
1141
|
+
}
|
|
1142
|
+
this.logger.warn(args, message);
|
|
1143
|
+
};
|
|
1144
|
+
_proto2.error = function error2(message, args) {
|
|
1145
|
+
if (args === undefined) {
|
|
1146
|
+
args = {};
|
|
1147
|
+
}
|
|
1148
|
+
this.logger.error(args, message);
|
|
1149
|
+
};
|
|
1150
|
+
_proto2.createStream = function createStream() {
|
|
1151
|
+
var _this = this;
|
|
1152
|
+
return new Transform({
|
|
1153
|
+
transform: function transform(chunk, _encoding, callback) {
|
|
1154
|
+
var line = chunk.toString().trim();
|
|
1155
|
+
if (line) {
|
|
1156
|
+
_this.info(line);
|
|
1157
|
+
}
|
|
1158
|
+
callback(null, chunk);
|
|
1159
|
+
}
|
|
1160
|
+
});
|
|
1161
|
+
};
|
|
1162
|
+
_proto2.getLogs = /* @__PURE__ */ function() {
|
|
1163
|
+
var _getLogs2 = /* @__PURE__ */ _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee3(transportId) {
|
|
1164
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
1165
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
1166
|
+
case 0:
|
|
1167
|
+
if (!(!transportId || !this.transports[transportId])) {
|
|
1168
|
+
_context3.next = 2;
|
|
1169
|
+
break;
|
|
1170
|
+
}
|
|
1171
|
+
return _context3.abrupt("return", []);
|
|
1172
|
+
case 2:
|
|
1173
|
+
return _context3.abrupt("return", this.transports[transportId].getLogs());
|
|
1174
|
+
case 3:
|
|
1175
|
+
case "end":
|
|
1176
|
+
return _context3.stop();
|
|
1177
|
+
}
|
|
1178
|
+
}, _callee3, this);
|
|
1179
|
+
}));
|
|
1180
|
+
function getLogs(_x2) {
|
|
1181
|
+
return _getLogs2.apply(this, arguments);
|
|
1182
|
+
}
|
|
1183
|
+
return getLogs;
|
|
1184
|
+
}();
|
|
1185
|
+
_proto2.getLogsByRunId = /* @__PURE__ */ function() {
|
|
1186
|
+
var _getLogsByRunId2 = /* @__PURE__ */ _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee4(_ref3) {
|
|
1187
|
+
var _this$transports$tran;
|
|
1188
|
+
var runId, transportId;
|
|
1189
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1190
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
1191
|
+
case 0:
|
|
1192
|
+
runId = _ref3.runId, transportId = _ref3.transportId;
|
|
1193
|
+
return _context4.abrupt("return", (_this$transports$tran = this.transports[transportId]) == null ? undefined : _this$transports$tran.getLogsByRunId({
|
|
1194
|
+
runId
|
|
1195
|
+
}));
|
|
1196
|
+
case 2:
|
|
1197
|
+
case "end":
|
|
1198
|
+
return _context4.stop();
|
|
1199
|
+
}
|
|
1200
|
+
}, _callee4, this);
|
|
1201
|
+
}));
|
|
1202
|
+
function getLogsByRunId(_x3) {
|
|
1203
|
+
return _getLogsByRunId2.apply(this, arguments);
|
|
1204
|
+
}
|
|
1205
|
+
return getLogsByRunId;
|
|
1206
|
+
}();
|
|
1207
|
+
return Logger2;
|
|
1208
|
+
}();
|
|
1209
|
+
function createLogger(options) {
|
|
1210
|
+
return new Logger(options);
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
var DepsService = class {
|
|
1214
|
+
packageManager;
|
|
768
1215
|
constructor() {
|
|
769
1216
|
this.packageManager = this.getPackageManager();
|
|
770
1217
|
}
|
|
771
1218
|
findLockFile(dir) {
|
|
772
|
-
const lockFiles = ["pnpm-lock.yaml", "package-lock.json", "yarn.lock"];
|
|
1219
|
+
const lockFiles = ["pnpm-lock.yaml", "package-lock.json", "yarn.lock", "bun.lock"];
|
|
773
1220
|
for (const file of lockFiles) {
|
|
774
|
-
if (
|
|
1221
|
+
if (fs3__default__default.existsSync(path.join(dir, file))) {
|
|
775
1222
|
return file;
|
|
776
1223
|
}
|
|
777
1224
|
}
|
|
@@ -790,6 +1237,8 @@ class DepsService {
|
|
|
790
1237
|
return "npm";
|
|
791
1238
|
case "yarn.lock":
|
|
792
1239
|
return "yarn";
|
|
1240
|
+
case "bun.lock":
|
|
1241
|
+
return "bun";
|
|
793
1242
|
default:
|
|
794
1243
|
return "npm";
|
|
795
1244
|
}
|
|
@@ -812,11 +1261,11 @@ class DepsService {
|
|
|
812
1261
|
try {
|
|
813
1262
|
const packageJsonPath = path.join(process.cwd(), "package.json");
|
|
814
1263
|
try {
|
|
815
|
-
await
|
|
1264
|
+
await fs4.access(packageJsonPath);
|
|
816
1265
|
} catch {
|
|
817
1266
|
return "No package.json file found in the current directory";
|
|
818
1267
|
}
|
|
819
|
-
const packageJson = JSON.parse(await
|
|
1268
|
+
const packageJson = JSON.parse(await fs4.readFile(packageJsonPath, "utf-8"));
|
|
820
1269
|
for (const dependency of dependencies) {
|
|
821
1270
|
if (!packageJson.dependencies || !packageJson.dependencies[dependency]) {
|
|
822
1271
|
return `Please install ${dependency} before running this command (${this.packageManager} install ${dependency})`;
|
|
@@ -831,7 +1280,7 @@ class DepsService {
|
|
|
831
1280
|
async getProjectName() {
|
|
832
1281
|
try {
|
|
833
1282
|
const packageJsonPath = path.join(process.cwd(), "package.json");
|
|
834
|
-
const packageJson = await
|
|
1283
|
+
const packageJson = await fs4.readFile(packageJsonPath, "utf-8");
|
|
835
1284
|
const pkg = JSON.parse(packageJson);
|
|
836
1285
|
return pkg.name;
|
|
837
1286
|
} catch (err) {
|
|
@@ -841,49 +1290,49 @@ class DepsService {
|
|
|
841
1290
|
async getPackageVersion() {
|
|
842
1291
|
const __filename = fileURLToPath(import.meta.url);
|
|
843
1292
|
const __dirname = dirname(__filename);
|
|
844
|
-
const pkgJsonPath = path.join(__dirname, "..", "
|
|
845
|
-
const content = await
|
|
1293
|
+
const pkgJsonPath = path.join(__dirname, "..", "package.json");
|
|
1294
|
+
const content = await fsExtra3.readJSON(pkgJsonPath);
|
|
846
1295
|
return content.version;
|
|
847
1296
|
}
|
|
848
1297
|
async addScriptsToPackageJson(scripts) {
|
|
849
|
-
const packageJson = JSON.parse(await
|
|
1298
|
+
const packageJson = JSON.parse(await fs4.readFile("package.json", "utf-8"));
|
|
850
1299
|
packageJson.scripts = {
|
|
851
1300
|
...packageJson.scripts,
|
|
852
1301
|
...scripts
|
|
853
1302
|
};
|
|
854
|
-
await
|
|
1303
|
+
await fs4.writeFile("package.json", JSON.stringify(packageJson, null, 2));
|
|
855
1304
|
}
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
class FileEnvService extends EnvService {
|
|
1305
|
+
};
|
|
1306
|
+
var EnvService = class {
|
|
1307
|
+
};
|
|
1308
|
+
var FileEnvService = class extends EnvService {
|
|
1309
|
+
filePath;
|
|
862
1310
|
constructor(filePath) {
|
|
863
1311
|
super();
|
|
864
1312
|
this.filePath = filePath;
|
|
865
1313
|
}
|
|
866
1314
|
readFile(filePath) {
|
|
867
1315
|
return new Promise((resolve, reject) => {
|
|
868
|
-
|
|
869
|
-
if (err)
|
|
870
|
-
|
|
871
|
-
else
|
|
872
|
-
resolve(data);
|
|
1316
|
+
fs3__default.readFile(filePath, "utf8", (err, data) => {
|
|
1317
|
+
if (err) reject(err);
|
|
1318
|
+
else resolve(data);
|
|
873
1319
|
});
|
|
874
1320
|
});
|
|
875
1321
|
}
|
|
876
1322
|
writeFile({ filePath, data }) {
|
|
877
1323
|
return new Promise((resolve, reject) => {
|
|
878
|
-
|
|
879
|
-
if (err)
|
|
880
|
-
|
|
881
|
-
else
|
|
882
|
-
resolve();
|
|
1324
|
+
fs3__default.writeFile(filePath, data, "utf8", (err) => {
|
|
1325
|
+
if (err) reject(err);
|
|
1326
|
+
else resolve();
|
|
883
1327
|
});
|
|
884
1328
|
});
|
|
885
1329
|
}
|
|
886
|
-
async updateEnvData({
|
|
1330
|
+
async updateEnvData({
|
|
1331
|
+
key,
|
|
1332
|
+
value,
|
|
1333
|
+
filePath = this.filePath,
|
|
1334
|
+
data
|
|
1335
|
+
}) {
|
|
887
1336
|
const regex = new RegExp(`^${key}=.*$`, "m");
|
|
888
1337
|
if (data.match(regex)) {
|
|
889
1338
|
data = data.replace(regex, `${key}=${value}`);
|
|
@@ -914,9 +1363,8 @@ ${key}=${value}`;
|
|
|
914
1363
|
console.error(`Error writing ENV value: ${err}`);
|
|
915
1364
|
}
|
|
916
1365
|
}
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
class FileService {
|
|
1366
|
+
};
|
|
1367
|
+
var FileService = class {
|
|
920
1368
|
/**
|
|
921
1369
|
*
|
|
922
1370
|
* @param inputFile the file in the starter files directory to copy
|
|
@@ -927,61 +1375,46 @@ class FileService {
|
|
|
927
1375
|
async copyStarterFile(inputFile, outputFilePath, replaceIfExists) {
|
|
928
1376
|
const __filename = fileURLToPath(import.meta.url);
|
|
929
1377
|
const __dirname = path.dirname(__filename);
|
|
930
|
-
const filePath = path.resolve(__dirname, "
|
|
931
|
-
const fileString =
|
|
932
|
-
if (
|
|
1378
|
+
const filePath = path.resolve(__dirname, "templates", "starter-files", inputFile);
|
|
1379
|
+
const fileString = fs3__default__default.readFileSync(filePath, "utf8");
|
|
1380
|
+
if (fs3__default__default.existsSync(outputFilePath) && !replaceIfExists) {
|
|
933
1381
|
console.log(`${outputFilePath} already exists`);
|
|
934
1382
|
return false;
|
|
935
1383
|
}
|
|
936
|
-
await
|
|
1384
|
+
await fsExtra3.outputFile(outputFilePath, fileString);
|
|
937
1385
|
return true;
|
|
938
1386
|
}
|
|
939
1387
|
async setupEnvFile({ dbUrl }) {
|
|
940
1388
|
const envPath = path.join(process.cwd(), ".env.development");
|
|
941
|
-
await
|
|
1389
|
+
await fsExtra3.ensureFile(envPath);
|
|
942
1390
|
const fileEnvService = new FileEnvService(envPath);
|
|
943
1391
|
await fileEnvService.setEnvValue("DB_URL", dbUrl);
|
|
944
1392
|
}
|
|
945
1393
|
getFirstExistingFile(files) {
|
|
946
1394
|
for (const f of files) {
|
|
947
|
-
if (
|
|
1395
|
+
if (fs3__default__default.existsSync(f)) {
|
|
948
1396
|
return f;
|
|
949
1397
|
}
|
|
950
1398
|
}
|
|
951
1399
|
throw new Error("Missing required file, checked the following paths: " + files.join(", "));
|
|
952
1400
|
}
|
|
953
|
-
replaceValuesInFile({
|
|
954
|
-
|
|
1401
|
+
replaceValuesInFile({
|
|
1402
|
+
filePath,
|
|
1403
|
+
replacements
|
|
1404
|
+
}) {
|
|
1405
|
+
let fileContent = fs3__default__default.readFileSync(filePath, "utf8");
|
|
955
1406
|
replacements.forEach(({ search, replace }) => {
|
|
956
1407
|
fileContent = fileContent.replaceAll(search, replace);
|
|
957
1408
|
});
|
|
958
|
-
|
|
959
|
-
}
|
|
960
|
-
}
|
|
961
|
-
|
|
962
|
-
const logger = {
|
|
963
|
-
log(args) {
|
|
964
|
-
console.log(args);
|
|
965
|
-
},
|
|
966
|
-
error(args) {
|
|
967
|
-
console.log(color.red(args));
|
|
968
|
-
},
|
|
969
|
-
warn(args) {
|
|
970
|
-
console.log(color.yellow(args));
|
|
971
|
-
},
|
|
972
|
-
info(args) {
|
|
973
|
-
console.log(color.cyan(args));
|
|
974
|
-
},
|
|
975
|
-
success(args) {
|
|
976
|
-
console.log(color.green(args));
|
|
977
|
-
},
|
|
978
|
-
break() {
|
|
979
|
-
console.log("");
|
|
1409
|
+
fs3__default__default.writeFileSync(filePath, fileContent);
|
|
980
1410
|
}
|
|
981
1411
|
};
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
1412
|
+
createLogger({
|
|
1413
|
+
name: "Mastra CLI",
|
|
1414
|
+
level: "debug"
|
|
1415
|
+
});
|
|
1416
|
+
var exec = util.promisify(child_process.exec);
|
|
1417
|
+
var modelToConfigMap = {
|
|
985
1418
|
openai: { provider: "OPEN_AI", name: "gpt-4o", toolChoice: "auto" },
|
|
986
1419
|
anthropic: { provider: "ANTHROPIC", name: "claude-3-5-sonnet-20241022", toolChoice: "auto" },
|
|
987
1420
|
groq: { provider: "GROQ", name: "llama3-groq-70b-8192-tool-use-preview", toolChoice: "auto" }
|
|
@@ -1013,8 +1446,8 @@ export const weatherAgent = new Agent({
|
|
|
1013
1446
|
parser: "typescript",
|
|
1014
1447
|
singleQuote: true
|
|
1015
1448
|
});
|
|
1016
|
-
await
|
|
1017
|
-
await
|
|
1449
|
+
await fs4.writeFile(destPath, "");
|
|
1450
|
+
await fs4.writeFile(destPath, formattedContent);
|
|
1018
1451
|
}
|
|
1019
1452
|
async function writeWorkflowSample(destPath) {
|
|
1020
1453
|
const fileService = new FileService();
|
|
@@ -1036,46 +1469,58 @@ async function writeCodeSampleForComponents(llmprovider, component, destPath, co
|
|
|
1036
1469
|
return "";
|
|
1037
1470
|
}
|
|
1038
1471
|
}
|
|
1039
|
-
|
|
1472
|
+
var createComponentsDir = async (dirPath, component) => {
|
|
1040
1473
|
const componentPath = dirPath + `/${component}`;
|
|
1041
|
-
await
|
|
1474
|
+
await fsExtra3.ensureDir(componentPath);
|
|
1042
1475
|
};
|
|
1043
|
-
|
|
1476
|
+
var writeIndexFile = async ({
|
|
1477
|
+
dirPath,
|
|
1478
|
+
addAgent,
|
|
1479
|
+
addExample,
|
|
1480
|
+
addWorkflow
|
|
1481
|
+
}) => {
|
|
1044
1482
|
const indexPath = dirPath + "/index.ts";
|
|
1045
1483
|
const destPath = path.join(indexPath);
|
|
1046
1484
|
try {
|
|
1047
|
-
await
|
|
1485
|
+
await fs4.writeFile(destPath, "");
|
|
1048
1486
|
const filteredExports = [
|
|
1049
1487
|
addWorkflow ? `workflows: { weatherWorkflow },` : "",
|
|
1050
1488
|
addAgent ? `agents: { weatherAgent },` : ""
|
|
1051
1489
|
].filter(Boolean);
|
|
1052
1490
|
if (!addExample) {
|
|
1053
|
-
await
|
|
1491
|
+
await fs4.writeFile(
|
|
1492
|
+
destPath,
|
|
1493
|
+
`
|
|
1054
1494
|
import { Mastra } from '@mastra/core';
|
|
1055
1495
|
|
|
1056
1496
|
export const mastra = new Mastra()
|
|
1057
|
-
`
|
|
1497
|
+
`
|
|
1498
|
+
);
|
|
1058
1499
|
return;
|
|
1059
1500
|
}
|
|
1060
|
-
await
|
|
1061
|
-
|
|
1501
|
+
await fs4.writeFile(
|
|
1502
|
+
destPath,
|
|
1503
|
+
`
|
|
1504
|
+
import { Mastra } from '@mastra/core';
|
|
1505
|
+
import { createLogger } from '@mastra/core/logger';
|
|
1062
1506
|
${addWorkflow ? `import { weatherWorkflow } from './workflows';` : ""}
|
|
1063
1507
|
${addAgent ? `import { weatherAgent } from './agents';` : ""}
|
|
1064
1508
|
|
|
1065
1509
|
export const mastra = new Mastra({
|
|
1066
1510
|
${filteredExports.join("\n ")}
|
|
1067
1511
|
logger: createLogger({
|
|
1068
|
-
|
|
1069
|
-
level: '
|
|
1512
|
+
name: 'Mastra',
|
|
1513
|
+
level: 'info',
|
|
1070
1514
|
}),
|
|
1071
1515
|
});
|
|
1072
|
-
`
|
|
1516
|
+
`
|
|
1517
|
+
);
|
|
1073
1518
|
} catch (err) {
|
|
1074
1519
|
throw err;
|
|
1075
1520
|
}
|
|
1076
1521
|
};
|
|
1077
1522
|
yoctoSpinner({ text: "Installing Mastra core dependencies\n" });
|
|
1078
|
-
|
|
1523
|
+
var getAPIKey = async (provider) => {
|
|
1079
1524
|
let key = "OPENAI_API_KEY";
|
|
1080
1525
|
switch (provider) {
|
|
1081
1526
|
case "anthropic":
|
|
@@ -1088,22 +1533,25 @@ const getAPIKey = async (provider) => {
|
|
|
1088
1533
|
return key;
|
|
1089
1534
|
}
|
|
1090
1535
|
};
|
|
1091
|
-
|
|
1536
|
+
var writeAPIKey = async ({
|
|
1537
|
+
provider,
|
|
1538
|
+
apiKey = "your-api-key"
|
|
1539
|
+
}) => {
|
|
1092
1540
|
const key = await getAPIKey(provider);
|
|
1093
|
-
await exec
|
|
1541
|
+
await exec(`echo ${key}=${apiKey} >> .env.development`);
|
|
1094
1542
|
};
|
|
1095
|
-
|
|
1543
|
+
var createMastraDir = async (directory) => {
|
|
1096
1544
|
let dir = directory.trim().split("/").filter((item) => item !== "");
|
|
1097
1545
|
const dirPath = path.join(process.cwd(), ...dir, "mastra");
|
|
1098
1546
|
try {
|
|
1099
|
-
await
|
|
1547
|
+
await fs4.access(dirPath);
|
|
1100
1548
|
return { ok: false };
|
|
1101
1549
|
} catch {
|
|
1102
|
-
await
|
|
1550
|
+
await fsExtra3.ensureDir(dirPath);
|
|
1103
1551
|
return { ok: true, dirPath };
|
|
1104
1552
|
}
|
|
1105
1553
|
};
|
|
1106
|
-
|
|
1554
|
+
var writeCodeSample = async (dirPath, component, llmProvider, components) => {
|
|
1107
1555
|
const destPath = dirPath + `/${component}/index.ts`;
|
|
1108
1556
|
try {
|
|
1109
1557
|
await writeCodeSampleForComponents(llmProvider, component, destPath, components);
|
|
@@ -1111,75 +1559,83 @@ const writeCodeSample = async (dirPath, component, llmProvider, components) => {
|
|
|
1111
1559
|
throw err;
|
|
1112
1560
|
}
|
|
1113
1561
|
};
|
|
1114
|
-
|
|
1115
|
-
pe(
|
|
1116
|
-
const mastraProject = await ve(
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
{ value: "agents", label: "Agents", hint: "recommended" },
|
|
1126
|
-
{
|
|
1127
|
-
value: "workflows",
|
|
1128
|
-
label: "Workflows"
|
|
1129
|
-
}
|
|
1130
|
-
]
|
|
1131
|
-
}),
|
|
1132
|
-
shouldAddTools: () => ce({
|
|
1133
|
-
message: "Add tools?",
|
|
1134
|
-
initialValue: false
|
|
1135
|
-
}),
|
|
1136
|
-
llmProvider: () => le({
|
|
1137
|
-
message: "Select default provider:",
|
|
1138
|
-
options: [
|
|
1139
|
-
{ value: "openai", label: "OpenAI", hint: "recommended" },
|
|
1140
|
-
{ value: "anthropic", label: "Anthropic" },
|
|
1141
|
-
{ value: "groq", label: "Groq" }
|
|
1142
|
-
]
|
|
1143
|
-
}),
|
|
1144
|
-
llmApiKey: async ({ results: { llmProvider } }) => {
|
|
1145
|
-
const keyChoice = await le({
|
|
1146
|
-
message: `Enter your ${llmProvider} API key?`,
|
|
1562
|
+
var interactivePrompt = async () => {
|
|
1563
|
+
pe(color2.inverse("Mastra Init"));
|
|
1564
|
+
const mastraProject = await ve(
|
|
1565
|
+
{
|
|
1566
|
+
directory: () => ae({
|
|
1567
|
+
message: "Where should we create the Mastra files? (default: src/)",
|
|
1568
|
+
placeholder: "src/",
|
|
1569
|
+
defaultValue: "src/"
|
|
1570
|
+
}),
|
|
1571
|
+
components: () => $e({
|
|
1572
|
+
message: "Choose components to install:",
|
|
1147
1573
|
options: [
|
|
1148
|
-
{ value: "
|
|
1149
|
-
{
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1574
|
+
{ value: "agents", label: "Agents", hint: "recommended" },
|
|
1575
|
+
{
|
|
1576
|
+
value: "workflows",
|
|
1577
|
+
label: "Workflows"
|
|
1578
|
+
}
|
|
1579
|
+
]
|
|
1580
|
+
}),
|
|
1581
|
+
shouldAddTools: () => ce({
|
|
1582
|
+
message: "Add tools?",
|
|
1583
|
+
initialValue: false
|
|
1584
|
+
}),
|
|
1585
|
+
llmProvider: () => le({
|
|
1586
|
+
message: "Select default provider:",
|
|
1587
|
+
options: [
|
|
1588
|
+
{ value: "openai", label: "OpenAI", hint: "recommended" },
|
|
1589
|
+
{ value: "anthropic", label: "Anthropic" },
|
|
1590
|
+
{ value: "groq", label: "Groq" }
|
|
1591
|
+
]
|
|
1592
|
+
}),
|
|
1593
|
+
llmApiKey: async ({ results: { llmProvider } }) => {
|
|
1594
|
+
const keyChoice = await le({
|
|
1595
|
+
message: `Enter your ${llmProvider} API key?`,
|
|
1596
|
+
options: [
|
|
1597
|
+
{ value: "skip", label: "Skip for now", hint: "default" },
|
|
1598
|
+
{ value: "enter", label: "Enter API key" }
|
|
1599
|
+
],
|
|
1600
|
+
initialValue: "skip"
|
|
1157
1601
|
});
|
|
1158
|
-
|
|
1159
|
-
|
|
1602
|
+
if (keyChoice === "enter") {
|
|
1603
|
+
return ae({
|
|
1604
|
+
message: "Enter your API key:",
|
|
1605
|
+
placeholder: "sk-..."
|
|
1606
|
+
});
|
|
1607
|
+
}
|
|
1608
|
+
return undefined;
|
|
1609
|
+
},
|
|
1610
|
+
addExample: () => ce({
|
|
1611
|
+
message: "Add example",
|
|
1612
|
+
initialValue: false
|
|
1613
|
+
})
|
|
1160
1614
|
},
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
onCancel: () => {
|
|
1167
|
-
he("Operation cancelled.");
|
|
1168
|
-
process.exit(0);
|
|
1615
|
+
{
|
|
1616
|
+
onCancel: () => {
|
|
1617
|
+
he("Operation cancelled.");
|
|
1618
|
+
process.exit(0);
|
|
1619
|
+
}
|
|
1169
1620
|
}
|
|
1170
|
-
|
|
1621
|
+
);
|
|
1171
1622
|
const { shouldAddTools, components, ...rest } = mastraProject;
|
|
1172
1623
|
const mastraComponents = shouldAddTools ? [...components, "tools"] : components;
|
|
1173
1624
|
return { ...rest, components: mastraComponents };
|
|
1174
1625
|
};
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1626
|
+
var s = _();
|
|
1627
|
+
var init = async ({
|
|
1628
|
+
directory,
|
|
1629
|
+
addExample = false,
|
|
1630
|
+
components,
|
|
1631
|
+
llmProvider = "openai",
|
|
1632
|
+
llmApiKey
|
|
1633
|
+
}) => {
|
|
1178
1634
|
s.start("Initializing Mastra");
|
|
1179
1635
|
try {
|
|
1180
1636
|
const result = await createMastraDir(directory);
|
|
1181
1637
|
if (!result.ok) {
|
|
1182
|
-
s.stop(
|
|
1638
|
+
s.stop(color2.inverse(" Mastra already initialized "));
|
|
1183
1639
|
return { success: false };
|
|
1184
1640
|
}
|
|
1185
1641
|
const dirPath = result.dirPath;
|
|
@@ -1195,34 +1651,35 @@ const init = async ({ directory, addExample = false, components, llmProvider = "
|
|
|
1195
1651
|
]);
|
|
1196
1652
|
if (addExample) {
|
|
1197
1653
|
await Promise.all([
|
|
1198
|
-
components.map(
|
|
1654
|
+
components.map(
|
|
1655
|
+
(component) => writeCodeSample(dirPath, component, llmProvider, components)
|
|
1656
|
+
)
|
|
1199
1657
|
]);
|
|
1200
1658
|
}
|
|
1201
1659
|
const key = await getAPIKey(llmProvider || "openai");
|
|
1202
1660
|
s.stop();
|
|
1203
1661
|
if (!llmApiKey) {
|
|
1204
1662
|
me(`
|
|
1205
|
-
${
|
|
1663
|
+
${color2.green("Mastra initialized successfully!")}
|
|
1206
1664
|
|
|
1207
|
-
Add your ${
|
|
1208
|
-
in your ${
|
|
1665
|
+
Add your ${color2.cyan(key)} as an environment variable
|
|
1666
|
+
in your ${color2.cyan(".env.development")} file
|
|
1209
1667
|
`);
|
|
1210
1668
|
} else {
|
|
1211
1669
|
me(`
|
|
1212
|
-
${
|
|
1670
|
+
${color2.green("Mastra initialized successfully!")}
|
|
1213
1671
|
`);
|
|
1214
1672
|
}
|
|
1215
1673
|
return { success: true };
|
|
1216
1674
|
} catch (err) {
|
|
1217
|
-
s.stop(
|
|
1675
|
+
s.stop(color2.inverse("An error occurred while initializing Mastra"));
|
|
1218
1676
|
console.error(err);
|
|
1219
1677
|
return { success: false };
|
|
1220
1678
|
}
|
|
1221
1679
|
};
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
pe(color.inverse("Mastra Create"));
|
|
1680
|
+
var exec2 = util.promisify(child_process.exec);
|
|
1681
|
+
var createMastraProject = async () => {
|
|
1682
|
+
pe(color2.inverse("Mastra Create"));
|
|
1226
1683
|
const projectName = await ae({
|
|
1227
1684
|
message: "What do you want to name your project?",
|
|
1228
1685
|
placeholder: "my-mastra-app",
|
|
@@ -1232,46 +1689,61 @@ const createMastraProject = async () => {
|
|
|
1232
1689
|
he("Operation cancelled");
|
|
1233
1690
|
process.exit(0);
|
|
1234
1691
|
}
|
|
1235
|
-
const
|
|
1236
|
-
|
|
1692
|
+
const s2 = _();
|
|
1693
|
+
s2.start("Creating project");
|
|
1237
1694
|
try {
|
|
1238
|
-
await
|
|
1695
|
+
await fs4.mkdir(projectName);
|
|
1239
1696
|
} catch (error) {
|
|
1240
1697
|
if (error instanceof Error && "code" in error && error.code === "EEXIST") {
|
|
1241
|
-
|
|
1698
|
+
s2.stop(
|
|
1699
|
+
`A directory named "${projectName}" already exists. Please choose a different name or delete the existing directory.`
|
|
1700
|
+
);
|
|
1242
1701
|
process.exit(1);
|
|
1243
1702
|
}
|
|
1244
1703
|
throw error;
|
|
1245
1704
|
}
|
|
1246
1705
|
process.chdir(projectName);
|
|
1247
|
-
|
|
1248
|
-
await
|
|
1706
|
+
s2.message("Creating project");
|
|
1707
|
+
await exec2(`npm init -y`);
|
|
1249
1708
|
const depsService = new DepsService();
|
|
1250
1709
|
await depsService.addScriptsToPackageJson({
|
|
1251
1710
|
dev: "mastra dev"
|
|
1252
1711
|
});
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
await
|
|
1256
|
-
await
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1712
|
+
s2.stop("Project created");
|
|
1713
|
+
s2.start("Installing npm dependencies");
|
|
1714
|
+
await exec2(`npm i zod`);
|
|
1715
|
+
await exec2(`npm i typescript tsx @types/node --save-dev`);
|
|
1716
|
+
await exec2(`echo '{
|
|
1717
|
+
"compilerOptions": {
|
|
1718
|
+
"target": "es2016",
|
|
1719
|
+
"module": "commonjs",
|
|
1720
|
+
"esModuleInterop": true,
|
|
1721
|
+
"forceConsistentCasingInFileNames": true,
|
|
1722
|
+
"strict": true,
|
|
1723
|
+
"skipLibCheck": true,
|
|
1724
|
+
"outDir": "dist"
|
|
1725
|
+
},
|
|
1726
|
+
"include": ["src/**/*"],
|
|
1727
|
+
"exclude": ["node_modules", "dist", ".mastra"]
|
|
1728
|
+
}' > tsconfig.json`);
|
|
1729
|
+
s2.stop("NPM dependencies installed");
|
|
1730
|
+
s2.start("Installing mastra");
|
|
1731
|
+
await exec2(`npm i -D mastra`);
|
|
1732
|
+
s2.stop("mastra installed");
|
|
1733
|
+
s2.start("Installing @mastra/core");
|
|
1734
|
+
await exec2(`npm i @mastra/core@alpha`);
|
|
1735
|
+
s2.stop("@mastra/core installed");
|
|
1736
|
+
s2.start("Adding .gitignore");
|
|
1737
|
+
await exec2(`echo output.txt >> .gitignore`);
|
|
1738
|
+
await exec2(`echo node_modules >> .gitignore`);
|
|
1739
|
+
await exec2(`echo dist >> .gitignore`);
|
|
1740
|
+
await exec2(`echo .mastra >> .gitignore`);
|
|
1741
|
+
s2.stop(".gitignore added");
|
|
1269
1742
|
ge("Project created successfully");
|
|
1270
|
-
|
|
1743
|
+
console.log("");
|
|
1271
1744
|
return { projectName };
|
|
1272
1745
|
};
|
|
1273
|
-
|
|
1274
|
-
const create = async (args) => {
|
|
1746
|
+
var create = async (args) => {
|
|
1275
1747
|
const { projectName } = await createMastraProject();
|
|
1276
1748
|
const directory = "/src";
|
|
1277
1749
|
if (!args.components || !args.llmProvider || !args.addExample) {
|
|
@@ -1293,12 +1765,12 @@ const create = async (args) => {
|
|
|
1293
1765
|
});
|
|
1294
1766
|
postCreate({ projectName });
|
|
1295
1767
|
};
|
|
1296
|
-
|
|
1768
|
+
var postCreate = ({ projectName }) => {
|
|
1297
1769
|
ge(`
|
|
1298
|
-
${
|
|
1770
|
+
${color2.green("To start your project:")}
|
|
1299
1771
|
|
|
1300
|
-
${
|
|
1301
|
-
${
|
|
1772
|
+
${color2.cyan("cd")} ${projectName}
|
|
1773
|
+
${color2.cyan("npm run dev")}
|
|
1302
1774
|
`);
|
|
1303
1775
|
};
|
|
1304
1776
|
|
|
@@ -1306,7 +1778,7 @@ async function getPackageVersion() {
|
|
|
1306
1778
|
const __filename = fileURLToPath(import.meta.url);
|
|
1307
1779
|
const __dirname = dirname(__filename);
|
|
1308
1780
|
const pkgJsonPath = path.join(__dirname, "..", "package.json");
|
|
1309
|
-
const content = await fsExtra
|
|
1781
|
+
const content = await fsExtra.readJSON(pkgJsonPath);
|
|
1310
1782
|
return content.version;
|
|
1311
1783
|
}
|
|
1312
1784
|
|