eto-dev-cli 1.1.0 → 1.3.0

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 +1 @@
1
- {"version":3,"file":"install-packages.d.ts","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"AAMA;;;;;kBA0JC"}
1
+ {"version":3,"file":"install-packages.d.ts","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"AAKA;;;;;kBA6OC"}
@@ -4,30 +4,61 @@ const { promisifiedSpawn } = require(`../utils/promisified-spawn`);
4
4
  const { registryUrl } = require(`./verdaccio-config`);
5
5
  const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPublishedPackageVersions, externalRegistry, }) => {
6
6
  console.log(`Installing packages from local registry:\n${packagesToInstall
7
- .map((packageAndVersion) => ` - ${packageAndVersion}`)
7
+ .map((p) => ` - ${p}`)
8
8
  .join(`\n`)}`);
9
+ // Detect package manager
10
+ const lockFiles = {
11
+ yarn: "yarn.lock",
12
+ npm: "package-lock.json",
13
+ pnpm: "pnpm-lock.yaml",
14
+ };
15
+ const rootDir = yarnWorkspaceRoot || process.cwd();
16
+ let packageManager = "yarn";
17
+ if (fs.existsSync(path.join(rootDir, lockFiles.npm)))
18
+ packageManager = "npm";
19
+ else if (fs.existsSync(path.join(rootDir, lockFiles.pnpm)))
20
+ packageManager = "pnpm";
21
+ console.log("Detected package manager:", packageManager);
22
+ // Yarn version check
23
+ let isYarn1 = false;
24
+ if (packageManager === "yarn") {
25
+ const { stdout: yarnVersion } = await promisifiedSpawn([
26
+ `yarn`,
27
+ [`--version`],
28
+ { stdio: `pipe` },
29
+ ]);
30
+ isYarn1 = yarnVersion.startsWith("1");
31
+ console.log("Yarn version:", yarnVersion);
32
+ }
9
33
  let installCmd;
10
- if (yarnWorkspaceRoot) {
34
+ if (yarnWorkspaceRoot && packageManager !== "npm") {
11
35
  // this is very hacky - given root, we run `yarn workspaces info`
12
36
  // to get list of all workspaces and their locations, and manually
13
37
  // edit package.json file for packages we want to install
14
38
  // to make sure there are no mismatched versions of same package
15
39
  // in workspaces which should preserve node_modules structure
16
40
  // (packages being mostly hoisted to top-level node_modules)
17
- const { stdout: yarnVersion } = await promisifiedSpawn([
18
- `yarn`,
19
- [`--version`],
20
- { stdio: `pipe` },
21
- ]);
22
- const workspaceCommand = !yarnVersion.startsWith("1") ? "list" : "info";
41
+ // npm doesn't support workspaces
42
+ const workspaceCommand = packageManager === "yarn"
43
+ ? isYarn1
44
+ ? "info"
45
+ : "list"
46
+ : "workspaces info";
23
47
  const { stdout } = await promisifiedSpawn([
24
- `yarn`,
25
- [`workspaces`, workspaceCommand, `--json`],
48
+ packageManager,
49
+ [
50
+ packageManager === "yarn" ? `workspaces` : `ws`,
51
+ workspaceCommand,
52
+ `--json`,
53
+ ],
26
54
  { stdio: `pipe` },
27
55
  ]);
28
56
  let workspacesLayout;
29
57
  try {
30
- workspacesLayout = JSON.parse(JSON.parse(stdout).data);
58
+ workspacesLayout =
59
+ packageManager === "yarn" && isYarn1
60
+ ? JSON.parse(JSON.parse(stdout).data)
61
+ : JSON.parse(stdout);
31
62
  }
32
63
  catch (e) {
33
64
  /*
@@ -55,25 +86,21 @@ const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPubl
55
86
  const regex = /^[^{]*({.*})[^}]*$/gs;
56
87
  const sanitizedStdOut = regex.exec(stdout);
57
88
  if (sanitizedStdOut?.length >= 2) {
58
- // pick content of first (and only) capturing group
59
- const jsonString = sanitizedStdOut[1];
60
89
  try {
61
- workspacesLayout = JSON.parse(jsonString);
90
+ workspacesLayout = JSON.parse(sanitizedStdOut[1]);
62
91
  }
63
92
  catch (e) {
64
- console.error(`Failed to parse "sanitized" output of "yarn workspaces info" command.\n\nSanitized string: "${jsonString}`);
65
- // not exitting here, because we have general check for `workspacesLayout` being set below
93
+ console.error(`Failed to parse sanitized workspaces output`);
66
94
  }
67
95
  }
68
96
  }
69
97
  if (!workspacesLayout) {
70
- console.error(`Couldn't parse output of "yarn workspaces info" command`, stdout);
98
+ console.error(`Couldn't parse workspaces output`, stdout);
71
99
  process.exit(1);
72
100
  }
73
101
  const handleDeps = (deps) => {
74
- if (!deps) {
102
+ if (!deps)
75
103
  return false;
76
- }
77
104
  let changed = false;
78
105
  Object.keys(deps).forEach((depName) => {
79
106
  if (packagesToInstall.includes(depName)) {
@@ -87,6 +114,7 @@ const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPubl
87
114
  const { location } = workspacesLayout[workspaceName];
88
115
  const pkgJsonPath = path.join(yarnWorkspaceRoot, location, `package.json`);
89
116
  if (!fs.existsSync(pkgJsonPath)) {
117
+ console.warn(`Package.json not found at ${pkgJsonPath}, skipping.`);
90
118
  return;
91
119
  }
92
120
  const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, `utf8`));
@@ -95,42 +123,102 @@ const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPubl
95
123
  changed |= handleDeps(pkg.devDependencies);
96
124
  changed |= handleDeps(pkg.peerDependencies);
97
125
  if (changed) {
98
- console.log(`Changing deps in ${pkgJsonPath} to use @eto-dev`);
99
- fs.outputJSONSync(pkgJsonPath, pkg, {
100
- spaces: 2,
101
- });
126
+ console.log(`Updating dependencies in ${pkgJsonPath} to use @eto-dev`);
127
+ fs.outputJSONSync(pkgJsonPath, pkg, { spaces: 2 });
102
128
  }
103
129
  });
104
130
  // package.json files are changed - so we just want to install
105
131
  // using verdaccio registry
106
- const yarnCommands = [`install`];
107
- if (!externalRegistry) {
108
- yarnCommands.push(`--registry=${registryUrl}`);
132
+ const commands = {
133
+ yarn: [
134
+ `install`,
135
+ ...(packageManager === "yarn" && !isYarn1
136
+ ? [`--mode`, `update-lockfile`]
137
+ : []),
138
+ ],
139
+ pnpm: [`install`],
140
+ };
141
+ if (!externalRegistry && registryUrl) {
142
+ if (packageManager === "yarn") {
143
+ if (isYarn1)
144
+ commands.yarn.push(`--registry`, registryUrl);
145
+ else
146
+ await promisifiedSpawn([
147
+ `yarn`,
148
+ [`config`, `set`, `npmRegistryServer`, registryUrl],
149
+ { stdio: `pipe` },
150
+ ]);
151
+ }
152
+ else if (packageManager === "pnpm") {
153
+ commands.pnpm.push(`--registry`, registryUrl);
154
+ }
109
155
  }
110
- installCmd = [`yarn`, yarnCommands];
156
+ installCmd = [packageManager, commands[packageManager]];
111
157
  }
112
158
  else {
113
- const yarnCommands = [
114
- `add`,
115
- ...packagesToInstall.map((packageName) => {
116
- const packageVersion = newlyPublishedPackageVersions[packageName];
117
- return `${packageName}@${packageVersion}`;
118
- }),
119
- `--exact`,
120
- ];
121
- if (!externalRegistry) {
122
- yarnCommands.push(`--registry=${registryUrl}`);
159
+ const packages = packagesToInstall
160
+ .map((packageName) => {
161
+ const packageVersion = newlyPublishedPackageVersions[packageName];
162
+ if (!packageVersion) {
163
+ console.warn(`Skipping ${packageName}: No version specified`);
164
+ return null;
165
+ }
166
+ return `${packageName}@${packageVersion}`;
167
+ })
168
+ .filter(Boolean);
169
+ const commands = {
170
+ yarn: [
171
+ `add`,
172
+ ...packages,
173
+ `--exact`,
174
+ ...(packageManager === "yarn" && !isYarn1
175
+ ? [`--mode`, `update-lockfile`]
176
+ : []),
177
+ ],
178
+ npm: [`install`, ...packages, `--save-exact`],
179
+ pnpm: [`add`, ...packages, `--save-exact`],
180
+ };
181
+ if (!externalRegistry && registryUrl) {
182
+ if (packageManager === "yarn") {
183
+ if (isYarn1)
184
+ commands.yarn.push(`--registry`, registryUrl);
185
+ else
186
+ await promisifiedSpawn([
187
+ `yarn`,
188
+ [`config`, `set`, `npmRegistryServer`, registryUrl],
189
+ { stdio: `pipe` },
190
+ ]);
191
+ }
192
+ else {
193
+ commands[packageManager].push(`--registry=${registryUrl}`);
194
+ }
123
195
  }
124
- installCmd = [`yarn`, yarnCommands];
196
+ installCmd = [packageManager, commands[packageManager]];
125
197
  }
126
198
  try {
127
- await promisifiedSpawn(installCmd);
199
+ const result = await promisifiedSpawn(installCmd, { stdio: `pipe` });
128
200
  console.log(`Installation complete`);
129
201
  }
130
202
  catch (error) {
131
- console.error(`Installation failed`, error);
203
+ console.error("Installation failed:", {
204
+ message: error.message,
205
+ command: error.command,
206
+ stdout: error.stdout,
207
+ stderr: error.stderr,
208
+ });
132
209
  process.exit(1);
133
210
  }
211
+ // Restore Yarn 2+/3 registry
212
+ if (!externalRegistry &&
213
+ registryUrl &&
214
+ packageManager === "yarn" &&
215
+ !isYarn1) {
216
+ await promisifiedSpawn([
217
+ `yarn`,
218
+ [`config`, `set`, `npmRegistryServer`, `https://registry.yarnpkg.com`],
219
+ { stdio: `pipe` },
220
+ ]);
221
+ }
134
222
  };
135
223
  exports.installPackages = installPackages;
136
224
  //# sourceMappingURL=install-packages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-packages.js","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAE9B,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAA;AAClE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAErD,MAAM,eAAe,GAAG,KAAK,EAAE,EAC7B,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,GACjB,EAAE,EAAE;IACH,OAAO,CAAC,GAAG,CACT,6CAA6C,iBAAiB;SAC3D,GAAG,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,MAAM,iBAAiB,EAAE,CAAC;SACrD,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAA;IACD,IAAI,UAAU,CAAA;IACd,IAAI,iBAAiB,EAAE,CAAC;QACtB,iEAAiE;QACjE,kEAAkE;QAClE,yDAAyD;QACzD,gEAAgE;QAChE,6DAA6D;QAC7D,4DAA4D;QAE5D,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,gBAAgB,CAAC;YACrD,MAAM;YACN,CAAC,WAAW,CAAC;YACb,EAAE,KAAK,EAAE,MAAM,EAAE;SAClB,CAAC,CAAA;QACF,MAAM,gBAAgB,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QAEvE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC;YACxC,MAAM;YACN,CAAC,YAAY,EAAE,gBAAgB,EAAE,QAAQ,CAAC;YAC1C,EAAE,KAAK,EAAE,MAAM,EAAE;SAClB,CAAC,CAAA;QAEF,IAAI,gBAAgB,CAAA;QACpB,IAAI,CAAC;YACH,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX;;;;;;;;;;;;;;;;;;;;;YAqBA;YAEA,MAAM,KAAK,GAAG,sBAAsB,CAAA;YACpC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1C,IAAI,eAAe,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;gBACjC,mDAAmD;gBACnD,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;gBACrC,IAAI,CAAC;oBACH,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;gBAC3C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CACX,+FAA+F,UAAU,EAAE,CAC5G,CAAA;oBACD,0FAA0F;gBAC5F,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CACX,yDAAyD,EACzD,MAAM,CACP,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACpC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;oBACzB,OAAO,GAAG,IAAI,CAAA;gBAChB,CAAC;YACH,CAAC,CAAC,CAAA;YACF,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;QAED,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;YACpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;YAC1E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAM;YACR,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;YAE5D,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACvC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC1C,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAE3C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,kBAAkB,CAAC,CAAA;gBAC9D,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE;oBAClC,MAAM,EAAE,CAAC;iBACV,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,8DAA8D;QAC9D,2BAA2B;QAC3B,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,CAAA;QAEhC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,cAAc,WAAW,EAAE,CAAC,CAAA;QAChD,CAAC;QAED,UAAU,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG;YACnB,KAAK;YACL,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;gBACvC,MAAM,cAAc,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAA;gBACjE,OAAO,GAAG,WAAW,IAAI,cAAc,EAAE,CAAA;YAC3C,CAAC,CAAC;YACF,SAAS;SACV,CAAA;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,cAAc,WAAW,EAAE,CAAC,CAAA;QAChD,CAAC;QAED,UAAU,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAElC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAA;AAED,OAAO,CAAC,eAAe,GAAG,eAAe,CAAA"}
1
+ {"version":3,"file":"install-packages.js","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export function setDefaultSpawnStdio(stdio: any): void;
2
- export function promisifiedSpawn([cmd, args, spawnArgs]: [any, (any[] | undefined)?, ({} | undefined)?]): Promise<execa.ExecaReturnValue<string> & execa.ExecaReturnValue<Buffer>>;
2
+ export function promisifiedSpawn([cmd, args, spawnArgs]: [any, (never[] | undefined)?, ({} | undefined)?]): Promise<execa.ExecaReturnValue<string> & execa.ExecaReturnValue<Buffer<ArrayBufferLike>>>;
3
3
  import execa = require("execa");
4
4
  //# sourceMappingURL=promisified-spawn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"promisified-spawn.d.ts","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAO+B,uDAE9B;AAE0B,mLAiB1B"}
1
+ {"version":3,"file":"promisified-spawn.d.ts","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAO+B,uDAE9B;AAC0B,sMAgC1B"}
@@ -11,12 +11,24 @@ exports.promisifiedSpawn = async ([cmd, args = [], spawnArgs = {}]) => {
11
11
  ...defaultSpawnArgs,
12
12
  ...spawnArgs,
13
13
  };
14
+ const cleanArgs = args.filter((arg) => typeof arg === "string" && arg.trim() !== "");
15
+ if (cleanArgs.length !== args.length) {
16
+ console.warn("Invalid arguments filtered out:", args);
17
+ }
14
18
  try {
15
- return await execa(cmd, args, spawnOptions);
19
+ const result = await execa(cmd, args, spawnOptions);
20
+ return result;
16
21
  }
17
22
  catch (e) {
18
- if (spawnOptions.stdio === `ignore`) {
19
- console.log(`\nCommand "${cmd} ${args.join(` `)}" failed.\nTo see details of failed command, rerun "eto-dev" without "--quiet" or "-q" switch\n`);
23
+ console.error('Command failed:', {
24
+ command: `${cmd} ${args.join(' ')}`,
25
+ exitCode: e.exitCode,
26
+ stdout: e.stdout,
27
+ stderr: e.stderr,
28
+ message: e.message,
29
+ });
30
+ if (spawnOptions.stdio === 'ignore') {
31
+ console.log(`\nCommand "${cmd} ${args.join(' ')}" failed.\nTo see details, rerun "eto-dev" without "--quiet" or "-q".\n`);
20
32
  }
21
33
  throw e;
22
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"promisified-spawn.js","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,OAAO,CAAC,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE;IACvC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAA;AAChC,CAAC,CAAA;AAED,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE;IACpE,MAAM,YAAY,GAAG;QACnB,GAAG,gBAAgB;QACnB,GAAG,SAAS;KACb,CAAA;IACD,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CACT,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAC5B,GAAG,CACJ,iGAAiG,CACnG,CAAA;QACH,CAAC;QACD,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"promisified-spawn.js","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,OAAO,CAAC,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE;IACvC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAA;AAChC,CAAC,CAAA;AACD,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE;IACpE,MAAM,YAAY,GAAG;QACnB,GAAG,gBAAgB;QACnB,GAAG,SAAS;KACb,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAC3B,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CACtD,CAAA;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAA;IACvD,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC/B,OAAO,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CACT,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAC5B,GAAG,CACJ,yEAAyE,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "eto-dev-cli",
3
3
  "description": "CLI helpers for contributors working on Eto",
4
- "version": "1.1.0",
4
+ "version": "1.3.0",
5
5
  "author": "Emmanuel Okanlawon <okanlawon@obig.tech>",
6
6
  "bin": {
7
7
  "eto-dev": "./dist/index.js"
@@ -30,7 +30,7 @@
30
30
  "jest": "^29.7.0",
31
31
  "ts-node": "^10.9.1",
32
32
  "tsconfig-paths": "^4.2.0",
33
- "typescript": "^5.6.2"
33
+ "typescript": "^5.8.3"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "ts-node": "^10.9.2",