@telorun/cli 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,10 @@
1
1
  import type { Argv } from "yargs";
2
+ import type { BumpLevel } from "../publishers/interface.js";
2
3
  export declare function publish(argv: {
3
4
  paths: string[];
4
5
  registry: string;
6
+ bump?: BumpLevel;
7
+ dryRun: boolean;
5
8
  }): Promise<void>;
6
9
  export declare function publishCommand(yargs: Argv): Argv;
7
10
  //# sourceMappingURL=publish.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAoElC,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASxF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAqBhD"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,4BAA4B,CAAC;AAwT9E,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA+BhD"}
@@ -1,16 +1,87 @@
1
1
  import * as fs from "fs";
2
+ import { PackageURL } from "packageurl-js";
2
3
  import * as path from "path";
3
4
  import { createLogger } from "../logger.js";
4
- async function publishOne(filePath, registry, log) {
5
- let content;
5
+ import { getPublisher } from "../publishers/registry.js";
6
+ // ---------------------------------------------------------------------------
7
+ // PURL parsing
8
+ // ---------------------------------------------------------------------------
9
+ function parsePurl(purl, manifestDir) {
10
+ let parsed;
6
11
  try {
7
- content = fs.readFileSync(filePath, "utf-8");
12
+ parsed = PackageURL.parseString(purl);
8
13
  }
9
14
  catch {
10
- console.error(log.error("error") + ` Cannot read file: ${filePath}`);
11
- return false;
15
+ return null;
16
+ }
17
+ const [type, namespace, name, versionSpec, qualifiers] = parsed;
18
+ const entry = parsed[5] ?? "";
19
+ const localPathRel = qualifiers?.get("local_path");
20
+ if (!localPathRel)
21
+ return null;
22
+ if (!type || !name)
23
+ return null;
24
+ // Reconstruct the package name as it appears in the PURL (e.g. "@telorun/run")
25
+ const packageName = namespace ? `${namespace}/${name}` : name;
26
+ return {
27
+ purl,
28
+ type,
29
+ packageName,
30
+ versionSpec: versionSpec ?? "",
31
+ localPath: path.resolve(manifestDir, localPathRel),
32
+ entry,
33
+ };
34
+ }
35
+ /** Extract every unique local_path controller from all YAML documents in the file */
36
+ function extractControllers(content, manifestDir) {
37
+ const seen = new Set();
38
+ const result = [];
39
+ for (const m of content.matchAll(/^\s*-\s+(pkg:[^\s]+)/gm)) {
40
+ const purl = m[1].trim();
41
+ if (seen.has(purl))
42
+ continue;
43
+ seen.add(purl);
44
+ const parsed = parsePurl(purl, manifestDir);
45
+ if (parsed)
46
+ result.push(parsed);
47
+ }
48
+ return result;
49
+ }
50
+ /** Bump the version field in the first YAML document's metadata block */
51
+ function bumpModuleVersion(content, level) {
52
+ const match = content.match(/^(\s{2,4}version:\s*)(\d+\.\d+\.\d+)/m);
53
+ if (!match)
54
+ return null;
55
+ const parts = match[2].split(".").map(Number);
56
+ if (level === "major") {
57
+ parts[0]++;
58
+ parts[1] = 0;
59
+ parts[2] = 0;
12
60
  }
13
- // Parse first YAML document to extract metadata
61
+ else if (level === "minor") {
62
+ parts[1]++;
63
+ parts[2] = 0;
64
+ }
65
+ else {
66
+ parts[2]++;
67
+ }
68
+ const newVersion = parts.join(".");
69
+ return {
70
+ content: content.replace(match[0], `${match[1]}${newVersion}`),
71
+ from: match[2],
72
+ to: newVersion,
73
+ };
74
+ }
75
+ /** Rewrite all PURL version specs for a given packageName to an exact static version */
76
+ function rewritePurls(content, packageName, newVersion) {
77
+ // Escape special regex chars in the package name (handles @scope/name)
78
+ const escapedName = packageName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
79
+ return content.replace(new RegExp(`(pkg:[^/]+/${escapedName}@)[^?#]+(\\?[^#]*)?(#[^\\s]*)?`, "g"), (_, prefix, qs, frag) => `${prefix}${newVersion}${qs ?? ""}${frag ?? ""}`);
80
+ }
81
+ // ---------------------------------------------------------------------------
82
+ // Telo registry push
83
+ // ---------------------------------------------------------------------------
84
+ async function pushToTeloRegistry(content, filePath, registry, log) {
14
85
  const firstDoc = content.split(/^---$/m)[0].trim() || content.split(/^---\n/m)[1]?.trim() || content;
15
86
  const nsMatch = firstDoc.match(/^\s{2,4}namespace:\s*["']?([^\s"']+)["']?/m);
16
87
  const nameMatch = firstDoc.match(/^\s{2,4}name:\s*["']?([^\s"']+)["']?/m);
@@ -22,10 +93,10 @@ async function publishOne(filePath, registry, log) {
22
93
  console.error(log.error("error") +
23
94
  ` ${filePath}: metadata must include namespace, name, and version.\n` +
24
95
  ` Found: namespace=${namespace ?? "(missing)"}, name=${name ?? "(missing)"}, version=${version ?? "(missing)"}`);
25
- return false;
96
+ return { ok: false, label: "", url: "" };
26
97
  }
27
98
  const url = `${registry.replace(/\/$/, "")}/${namespace}/${name}/${version}`;
28
- console.log(log.dim(`Publishing ${namespace}/${name}@${version} → ${url}`));
99
+ const label = `${namespace}/${name}@${version}`;
29
100
  let res;
30
101
  try {
31
102
  res = await fetch(url, {
@@ -36,33 +107,168 @@ async function publishOne(filePath, registry, log) {
36
107
  }
37
108
  catch (err) {
38
109
  console.error(log.error("error") + ` Network error: ${err instanceof Error ? err.message : String(err)}`);
39
- return false;
110
+ return { ok: false, label, url };
40
111
  }
41
- let body;
42
- const contentType = res.headers.get("content-type") ?? "";
43
- if (contentType.includes("application/json")) {
44
- body = await res.json();
112
+ if (!res.ok) {
113
+ const contentType = res.headers.get("content-type") ?? "";
114
+ const body = contentType.includes("application/json") ? await res.json() : await res.text();
115
+ console.error(log.error("error") + ` Push failed (${res.status}): ${JSON.stringify(body)}`);
116
+ return { ok: false, label, url };
45
117
  }
46
- else {
47
- body = await res.text();
118
+ return { ok: true, label, url };
119
+ }
120
+ // ---------------------------------------------------------------------------
121
+ // Formatting helpers
122
+ // ---------------------------------------------------------------------------
123
+ const STEP_WIDTH = 9; // "publish " column width
124
+ function step(log, label, status) {
125
+ console.log(` ${label.padEnd(STEP_WIDTH)}${status}`);
126
+ }
127
+ function stepOk(log, label, detail) {
128
+ step(log, label, log.ok("✓") + (detail ? ` ${detail}` : ""));
129
+ }
130
+ function stepWarn(log, label, detail) {
131
+ step(log, label, log.warn("skipped") + ` ${detail}`);
132
+ }
133
+ function stepDry(log, label, detail) {
134
+ step(log, label, log.dim(`dry-run ${detail}`));
135
+ }
136
+ // ---------------------------------------------------------------------------
137
+ // Main per-manifest publish
138
+ // ---------------------------------------------------------------------------
139
+ async function publishOne(filePath, registry, bump, dryRun, log) {
140
+ let content;
141
+ try {
142
+ content = fs.readFileSync(filePath, "utf-8");
48
143
  }
49
- if (!res.ok) {
50
- console.error(log.error("error") + ` Publish failed (${res.status}): ${JSON.stringify(body)}`);
144
+ catch {
145
+ console.error(log.error("error") + ` Cannot read file: ${filePath}`);
51
146
  return false;
52
147
  }
53
- const published = body?.published ?? `${namespace}/${name}@${version}`;
54
- console.log(log.ok("✓") + ` Published: ${published}`);
148
+ const manifestDir = path.dirname(filePath);
149
+ const controllers = extractControllers(content, manifestDir);
150
+ // Deduplicate by resolved localPath so each package is processed once
151
+ const byLocalPath = new Map();
152
+ for (const c of controllers) {
153
+ if (!byLocalPath.has(c.localPath))
154
+ byLocalPath.set(c.localPath, c);
155
+ }
156
+ const uniqueControllers = Array.from(byLocalPath.values());
157
+ // --- Controller packages ---
158
+ for (const ctrl of uniqueControllers) {
159
+ const publisher = getPublisher(ctrl.type);
160
+ console.log(`\n ${log.dim(ctrl.packageName)}`);
161
+ if (!publisher) {
162
+ step(log, "publish", log.warn("skipped") + ` no publisher for type "${ctrl.type}"`);
163
+ continue;
164
+ }
165
+ if (!fs.existsSync(ctrl.localPath)) {
166
+ step(log, "publish", log.error("error") + ` local_path not found: ${ctrl.localPath}`);
167
+ return false;
168
+ }
169
+ // Bump
170
+ if (bump) {
171
+ if (dryRun) {
172
+ const current = await publisher.readVersion(ctrl.localPath);
173
+ stepDry(log, "bump", `${current} → ? (${bump})`);
174
+ }
175
+ else {
176
+ const before = await publisher.readVersion(ctrl.localPath);
177
+ const after = await publisher.bumpVersion(ctrl.localPath, bump);
178
+ stepOk(log, "bump", `${before} → ${after}`);
179
+ }
180
+ }
181
+ const version = await publisher.readVersion(ctrl.localPath);
182
+ // Build
183
+ if (dryRun) {
184
+ stepDry(log, "build", `${ctrl.packageName}@${version}`);
185
+ }
186
+ else {
187
+ try {
188
+ await publisher.build(ctrl.localPath);
189
+ stepOk(log, "build");
190
+ }
191
+ catch (err) {
192
+ step(log, "build", log.error("error"));
193
+ console.error((err instanceof Error ? err.message : String(err))
194
+ .split("\n")
195
+ .map((l) => ` ${l}`)
196
+ .join("\n"));
197
+ return false;
198
+ }
199
+ }
200
+ // Publish to code registry
201
+ if (dryRun) {
202
+ stepDry(log, "publish", `${ctrl.packageName}@${version} → ${ctrl.type}`);
203
+ }
204
+ else {
205
+ const published = await publisher.publish(ctrl.localPath, version);
206
+ if (!published) {
207
+ stepWarn(log, "publish", `${version} already exists on ${ctrl.type}`);
208
+ }
209
+ else {
210
+ stepOk(log, "publish", `${ctrl.packageName}@${version}`);
211
+ }
212
+ }
213
+ // Rewrite PURLs
214
+ if (dryRun) {
215
+ stepDry(log, "purl", `→ @${version}`);
216
+ }
217
+ else {
218
+ const oldSpec = ctrl.versionSpec;
219
+ content = rewritePurls(content, ctrl.packageName, version);
220
+ stepOk(log, "purl", `@${oldSpec} → @${version}`);
221
+ }
222
+ }
223
+ // Bump the module's own metadata.version when --bump is set
224
+ let bumpedVersion = null;
225
+ if (bump) {
226
+ const bumped = bumpModuleVersion(content, bump);
227
+ if (bumped) {
228
+ content = bumped.content;
229
+ bumpedVersion = { from: bumped.from, to: bumped.to };
230
+ }
231
+ }
232
+ // Write updated module.yaml back to disk
233
+ const dirty = uniqueControllers.length > 0 || bump != null;
234
+ if (!dryRun && dirty) {
235
+ fs.writeFileSync(filePath, content, "utf-8");
236
+ }
237
+ // --- Manifest ---
238
+ console.log(`\n ${log.dim("manifest")}`);
239
+ if (bumpedVersion) {
240
+ if (dryRun) {
241
+ stepDry(log, "version", `${bumpedVersion.from} → ${bumpedVersion.to}`);
242
+ }
243
+ else {
244
+ stepOk(log, "version", `${bumpedVersion.from} → ${bumpedVersion.to}`);
245
+ }
246
+ }
247
+ if (dryRun) {
248
+ stepDry(log, "push", "Telo registry");
249
+ return true;
250
+ }
251
+ const { ok, label, url } = await pushToTeloRegistry(content, filePath, registry, log);
252
+ if (!ok)
253
+ return false;
254
+ stepOk(log, "push", `${label} → ${url}`);
55
255
  return true;
56
256
  }
257
+ // ---------------------------------------------------------------------------
258
+ // Command
259
+ // ---------------------------------------------------------------------------
57
260
  export async function publish(argv) {
58
261
  const log = createLogger(false);
59
262
  let failed = false;
60
263
  for (const p of argv.paths) {
61
264
  const filePath = path.resolve(process.cwd(), p);
62
- const ok = await publishOne(filePath, argv.registry, log);
265
+ const relPath = path.relative(process.cwd(), filePath);
266
+ console.log(`\nPublishing ${log.dim(relPath)}`);
267
+ const ok = await publishOne(filePath, argv.registry, argv.bump, argv.dryRun, log);
63
268
  if (!ok)
64
269
  failed = true;
65
270
  }
271
+ console.log("");
66
272
  if (failed)
67
273
  process.exit(1);
68
274
  }
@@ -78,6 +284,16 @@ export function publishCommand(yargs) {
78
284
  type: "string",
79
285
  default: "https://registry.telo.run",
80
286
  describe: "Registry base URL",
287
+ })
288
+ .option("bump", {
289
+ type: "string",
290
+ choices: ["patch", "minor", "major"],
291
+ describe: "Bump controller package versions before publishing",
292
+ })
293
+ .option("dry-run", {
294
+ type: "boolean",
295
+ default: false,
296
+ describe: "Show what would happen without making any changes",
81
297
  }), async (argv) => {
82
298
  await publish(argv);
83
299
  });
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare function run(argv: {
5
5
  debug: boolean;
6
6
  snapshotOnExit: boolean;
7
7
  watch: boolean;
8
+ "--"?: string[];
8
9
  }): Promise<void>;
9
10
  export declare function runCommand(yargs: Argv): Argv;
10
11
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAiGlC,wBAAsB,GAAG,CAAC,IAAI,EAAE;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEhB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAc5C"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAiGlC,wBAAsB,GAAG,CAAC,IAAI,EAAE;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEhB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA6B5C"}
@@ -100,7 +100,7 @@ function setupWatchMode(kernel, log) {
100
100
  export async function run(argv) {
101
101
  const log = createLogger(argv.verbose);
102
102
  try {
103
- const kernel = new Kernel();
103
+ const kernel = new Kernel({ argv: argv["--"] });
104
104
  if (argv.verbose) {
105
105
  kernel.on("*", (event) => {
106
106
  log.info(`${event.name}: ${JSON.stringify(event.payload)}`);
@@ -167,12 +167,27 @@ export async function run(argv) {
167
167
  }
168
168
  }
169
169
  export function runCommand(yargs) {
170
- return yargs.command(["run <path>", "$0 <path>"], "Run a Telo runtime from a manifest file or directory", (y) => y.positional("path", {
170
+ return yargs.command(["run <path> [..]", "$0 <path> [..]"], "Run a Telo runtime from a manifest file or directory", (y) => y
171
+ .positional("path", {
171
172
  describe: "Path to YAML manifest, directory containing module.yaml, or HTTP(S) URL",
172
173
  type: "string",
173
174
  demandOption: true,
174
- }), async (argv) => {
175
- await run(argv);
175
+ })
176
+ .strict(false), async (argv) => {
177
+ // Everything after the manifest path that isn't a known telo flag
178
+ // becomes argv for the kernel. We extract it from process.argv by
179
+ // finding the manifest path and taking everything after it, excluding
180
+ // known telo flags.
181
+ const knownFlags = new Set([
182
+ "--verbose", "--debug", "--snapshot-on-exit", "--watch", "-w",
183
+ "--help", "--version",
184
+ ]);
185
+ const rawArgs = process.argv;
186
+ const pathIdx = rawArgs.indexOf(argv.path);
187
+ const extraArgs = pathIdx >= 0
188
+ ? rawArgs.slice(pathIdx + 1).filter((a) => !knownFlags.has(a) && a !== "--")
189
+ : [];
190
+ await run({ ...argv, "--": extraArgs });
176
191
  });
177
192
  }
178
193
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0B,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAe,MAAM,cAAc,CAAC;AAE5E;;;;GAIG;AACH,SAAS,YAAY,CAAC,YAAoB;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAID,SAAS,cAAc,CAAC,MAAc,EAAE,GAAW;IACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyC,CAAC;IACxE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,SAAS,SAAS,CAAC,QAAgB;QACjC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC9C,0EAA0E;QAC1E,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnF,IAAI,OAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC9B,IAAI,CAAC,MAAM;oBAAE,OAAO;gBACpB,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,QAAQ;oBAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACrC,cAAc,CAAC,GAAG,CAChB,QAAQ,EACR,UAAU,CAAC,GAAG,EAAE;oBACd,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAChC,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC,EAAE,GAAG,CAAC,CACR,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,yBAAyB;QACnC,CAAC;QACD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,yEAAyE;YACzE,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO,EAAE,CAAC;gBACvC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1B,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,MAAM;wBAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAClC,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,QAAgB;QAC1C,+CAA+C;QAC/C,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QACpC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,uCAAuC;YACvC,iDAAiD;YACjD,yDAAyD;YACzD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,SAAS,OAAO;QACd,MAAM,GAAG,KAAK,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACzD,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,yDAAyD;IACzD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAOzB;IACC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAU,EAAE,EAAE;gBAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;YACzD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC5D,MAAM,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,yBAAyB,eAAe,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,WAAW,GAAuB,IAAI,CAAC;QAE3C,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAClD,WAAW,EAAE,OAAO,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,uEAAuE;YACvE,2DAA2D;YAC3D,sEAAsE;YACtE,iEAAiE;YACjE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAEjC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;gBAC/B,yCAAyC;gBACzC,wDAAwD;gBACxD,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,WAAW,GAAG,KAAK;YACvB,CAAC,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAI,KAAa,EAAE,WAA8C,CAAC;QAChF,MAAM,KAAK,GAAwB,QAAQ,EAAE,MAAM;YACjD,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC;gBACE;oBACE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC/D,IAAI,EAAG,KAAa,EAAE,IAAI;iBAC3B;aACF,CAAC;QACN,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACxE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,UAAU,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,SAAS,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/F,IAAI,SAAS,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,WAAW,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAW;IACpC,OAAO,KAAK,CAAC,OAAO,CAClB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EACrC,sDAAsD,EACtD,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;SACE,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,yEAAyE;QACnF,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,KAAK,CAAC,EAClB,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,kEAAkE;QAClE,kEAAkE;QAClE,sEAAsE;QACtE,oBAAoB;QACpB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;YACzB,WAAW,EAAE,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI;YAC7D,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC;YAC5B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;YAC5E,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,GAAG,CAAC,EAAE,GAAI,IAAY,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,32 @@
1
+ export type BumpLevel = "patch" | "minor" | "major";
2
+ export interface ParsedController {
3
+ /** Full original PURL string */
4
+ purl: string;
5
+ /** PURL type: "npm", "cargo", etc. */
6
+ type: string;
7
+ /** Scoped package name, e.g. "@telorun/run" */
8
+ packageName: string;
9
+ /** Version spec from the PURL, e.g. ">=1.0.0" or "0.1.1" */
10
+ versionSpec: string;
11
+ /** Resolved absolute path to the package directory */
12
+ localPath: string;
13
+ /** Entry point fragment, e.g. "sequence" */
14
+ entry: string;
15
+ }
16
+ export interface ControllerPublisher {
17
+ /** PURL type this publisher handles, e.g. "npm" */
18
+ type: string;
19
+ /** Return the current version from the package manifest (e.g. package.json) */
20
+ readVersion(localPath: string): Promise<string>;
21
+ /** Bump the version in the package manifest and return the new version string */
22
+ bumpVersion(localPath: string, level: BumpLevel): Promise<string>;
23
+ /** Build the package */
24
+ build(localPath: string): Promise<void>;
25
+ /**
26
+ * Publish the package to its registry.
27
+ * If the version already exists, resolve without throwing — return false to
28
+ * indicate it was skipped (caller should warn), true if published.
29
+ */
30
+ publish(localPath: string, version: string): Promise<boolean>;
31
+ }
32
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/publishers/interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IAEb,+EAA+E;IAC/E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhD,iFAAiF;IACjF,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElE,wBAAwB;IACxB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/publishers/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { ControllerPublisher } from "./interface.js";
2
+ export declare const npmPublisher: ControllerPublisher;
3
+ //# sourceMappingURL=npm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../src/publishers/npm.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErE,eAAO,MAAM,YAAY,EAAE,mBAgD1B,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { execSync, spawnSync } from "child_process";
2
+ import * as fs from "fs";
3
+ import * as path from "path";
4
+ export const npmPublisher = {
5
+ type: "npm",
6
+ async readVersion(localPath) {
7
+ const pkgPath = path.join(localPath, "package.json");
8
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
9
+ return pkg.version;
10
+ },
11
+ async bumpVersion(localPath, level) {
12
+ execSync(`npm version ${level} --no-git-tag-version --loglevel=error`, {
13
+ cwd: localPath,
14
+ stdio: "inherit",
15
+ });
16
+ return this.readVersion(localPath);
17
+ },
18
+ async build(localPath) {
19
+ const result = spawnSync("npm", ["--loglevel=error", "run", "build"], {
20
+ cwd: localPath,
21
+ encoding: "utf-8",
22
+ });
23
+ if (result.status !== 0) {
24
+ const output = [result.stdout, result.stderr].filter(Boolean).join("\n");
25
+ throw new Error(`Build failed:\n${output}`);
26
+ }
27
+ },
28
+ async publish(localPath, version) {
29
+ const pkgPath = path.join(localPath, "package.json");
30
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
31
+ const packageName = pkg.name;
32
+ // Check if the version already exists on the registry
33
+ try {
34
+ execSync(`npm view ${packageName}@${version} version --loglevel=error`, {
35
+ cwd: localPath,
36
+ stdio: "pipe",
37
+ });
38
+ // If this succeeds, the version already exists — skip and signal caller
39
+ return false;
40
+ }
41
+ catch {
42
+ // npm view throws when the version is not found — proceed to publish
43
+ }
44
+ execSync("npm publish --access public --loglevel=error", { cwd: localPath, stdio: "inherit" });
45
+ return true;
46
+ },
47
+ };
48
+ //# sourceMappingURL=npm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/publishers/npm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,CAAC,MAAM,YAAY,GAAwB;IAC/C,IAAI,EAAE,KAAK;IAEX,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAwB,CAAC;QACjF,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,KAAgB;QACnD,QAAQ,CAAC,eAAe,KAAK,wCAAwC,EAAE;YACrE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;YACpE,GAAG,EAAE,SAAS;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,OAAe;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAqB,CAAC;QAC9E,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;QAE7B,sDAAsD;QACtD,IAAI,CAAC;YACH,QAAQ,CAAC,YAAY,WAAW,IAAI,OAAO,2BAA2B,EAAE;gBACtE,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YACH,wEAAwE;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;QAED,QAAQ,CAAC,8CAA8C,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ControllerPublisher } from "./interface.js";
2
+ export declare function getPublisher(type: string): ControllerPublisher | undefined;
3
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/publishers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAK1D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE1E"}
@@ -0,0 +1,6 @@
1
+ import { npmPublisher } from "./npm.js";
2
+ const publishers = [npmPublisher];
3
+ export function getPublisher(type) {
4
+ return publishers.find((p) => p.type === type);
5
+ }
6
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/publishers/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,UAAU,GAA0B,CAAC,YAAY,CAAC,CAAC;AAEzD,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telorun/cli",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "Telo CLI - Command-line interface for the Telo runtime.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -20,10 +20,11 @@
20
20
  "runtime"
21
21
  ],
22
22
  "dependencies": {
23
+ "packageurl-js": "^2.0.1",
23
24
  "yargs": "^17.7.2",
24
25
  "dotenv": "^17.4.0",
25
- "@telorun/analyzer": "0.1.1",
26
- "@telorun/kernel": "0.2.6"
26
+ "@telorun/analyzer": "0.1.2",
27
+ "@telorun/kernel": "0.2.7"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@types/node": "^20.0.0",