@kitsi/action 0.0.14 → 0.0.15

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.
Files changed (2) hide show
  1. package/dist/index.js +810 -420
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -101818,97 +101818,22 @@ var service = (imageRef) => new ServiceBuilder({ image: imageRef, env: {}, ports
101818
101818
  var registry = (...plansList) => ({
101819
101819
  plans: plansList
101820
101820
  });
101821
- // ../cli/dist/ops/shell.js
101822
- var toTemplatePart = (value) => {
101823
- if (typeof value === "string" || typeof value === "number") {
101824
- return { type: "interpolated", value: String(value) };
101825
- }
101826
- if (value.kind === "secret") {
101827
- return { type: "secret", name: value.name };
101828
- }
101829
- if (value.kind === "param") {
101830
- return { type: "param", ref: value };
101831
- }
101832
- return { type: "value", ref: value };
101833
- };
101834
-
101835
- class CommandBuilder {
101836
- op;
101837
- constructor(op) {
101838
- this.op = op;
101839
- }
101840
- stdout() {
101841
- return { ...this.op, capture: "stdout" };
101842
- }
101843
- code() {
101844
- return { ...this.op, capture: "code" };
101845
- }
101846
- ok() {
101847
- return { ...this.op, capture: "ok" };
101848
- }
101849
- must() {
101850
- return { ...this.op, capture: "must" };
101851
- }
101852
- cached(options) {
101853
- return new CommandBuilder({ ...this.op, cache: { enabled: true, ...options } });
101854
- }
101855
- uncached() {
101856
- return new CommandBuilder({ ...this.op, cache: { enabled: false } });
101857
- }
101858
- }
101859
- var sh = (strings, ...values) => {
101860
- const template = [];
101861
- for (let i = 0;i < strings.length; i += 1) {
101862
- const text = strings[i] ?? "";
101863
- if (text.length > 0) {
101864
- template.push({ type: "text", value: text });
101865
- }
101866
- const value = values[i];
101867
- if (i < values.length && value !== undefined) {
101868
- template.push(toTemplatePart(value));
101869
- }
101870
- }
101871
- return new CommandBuilder({
101872
- kind: "command",
101873
- capture: "result",
101874
- template
101875
- });
101821
+ // ../cli/dist/ops/operation.js
101822
+ var isOperation = (value) => {
101823
+ if (!value || typeof value !== "object")
101824
+ return false;
101825
+ const op = value;
101826
+ return typeof op.kind === "string" && typeof op.toOp === "function" && typeof op.analysisPlaceholder === "function" && typeof op.extractDependencies === "function" && typeof op.extractSecrets === "function" && typeof op.extractRefs === "function" && typeof op.cacheNormalize === "function" && typeof op.cachePlaceholder === "function";
101876
101827
  };
101877
101828
 
101878
101829
  // ../cli/dist/dsl/analysis.js
101879
101830
  var stepIterator = (step2, task2) => {
101880
101831
  return step2.run({ task: task2, workspace: "" });
101881
101832
  };
101882
- var toOp = (value) => {
101883
- if (value instanceof CommandBuilder)
101884
- return value.op;
101885
- if (value && typeof value === "object" && "op" in value) {
101886
- const maybeOp = value.op;
101887
- if (maybeOp && typeof maybeOp === "object" && "kind" in maybeOp) {
101888
- return maybeOp;
101889
- }
101890
- }
101891
- return value;
101892
- };
101893
- var placeholderForOp = (value) => {
101894
- const op = toOp(value);
101895
- switch (op.kind) {
101896
- case "command":
101897
- return "";
101898
- case "http":
101899
- return { status: 200, ok: true, headers: {}, body: "" };
101900
- case "use":
101901
- return op.ref.parse("");
101902
- case "emit":
101903
- return op.value;
101904
- case "pack":
101905
- case "unpack":
101906
- return;
101907
- case "env":
101908
- return typeof op.value === "string" || typeof op.value === "number" ? op.value : "";
101909
- default:
101910
- return;
101911
- }
101833
+ var toOperation = (value) => {
101834
+ if (isOperation(value))
101835
+ return value;
101836
+ throw new Error("Step yielded a non-operation value");
101912
101837
  };
101913
101838
  var collectEnvSecrets = (task2, secrets) => {
101914
101839
  for (const value of Object.values(task2.config.env)) {
@@ -101917,49 +101842,17 @@ var collectEnvSecrets = (task2, secrets) => {
101917
101842
  }
101918
101843
  }
101919
101844
  };
101920
- var collectTemplateSecrets = (template, secrets) => {
101921
- for (const part of template) {
101922
- if (part.type === "secret" && part.name) {
101923
- secrets.add(part.name);
101924
- }
101925
- }
101926
- };
101927
- var collectHttpSecrets = (op, secrets) => {
101928
- collectTemplateSecrets(op.url, secrets);
101929
- for (const header of op.headers) {
101930
- collectTemplateSecrets(header.value, secrets);
101931
- }
101932
- if (op.body) {
101933
- collectTemplateSecrets(op.body, secrets);
101934
- }
101935
- };
101936
- var collectEnvOpSecrets = (op, secrets) => {
101937
- if (op.value.kind === "secret") {
101938
- secrets.add(op.value.name);
101939
- }
101940
- };
101941
- var collectOpSecrets = (op, secrets) => {
101942
- if (op.kind === "command") {
101943
- collectTemplateSecrets(op.template, secrets);
101944
- return;
101945
- }
101946
- if (op.kind === "http") {
101947
- collectHttpSecrets(op, secrets);
101948
- return;
101949
- }
101950
- if (op.kind === "env") {
101951
- collectEnvOpSecrets(op, secrets);
101952
- }
101953
- };
101954
101845
  var collectStepSecrets = (task2, secrets) => {
101955
101846
  const steps = [...task2.config.setupSteps, ...task2.config.steps];
101956
101847
  for (const step2 of steps) {
101957
101848
  const iterator = stepIterator(step2, task2);
101958
101849
  let cursor = iterator.next();
101959
101850
  while (!cursor.done) {
101960
- const op = toOp(cursor.value);
101961
- collectOpSecrets(op, secrets);
101962
- cursor = iterator.next(placeholderForOp(op));
101851
+ const operation = toOperation(cursor.value);
101852
+ for (const name of operation.extractSecrets()) {
101853
+ secrets.add(name);
101854
+ }
101855
+ cursor = iterator.next(operation.analysisPlaceholder());
101963
101856
  }
101964
101857
  }
101965
101858
  };
@@ -102019,6 +101912,132 @@ var OpErrors = {
102019
101912
  service: (message) => new OpErrorBuilder("service", message),
102020
101913
  timeout: (message) => new OpErrorBuilder("timeout", message)
102021
101914
  };
101915
+ // ../cli/dist/ops/shell.js
101916
+ var toTemplatePart = (value) => {
101917
+ if (typeof value === "string" || typeof value === "number") {
101918
+ return { type: "interpolated", value: String(value) };
101919
+ }
101920
+ if (value.kind === "secret") {
101921
+ return { type: "secret", name: value.name };
101922
+ }
101923
+ if (value.kind === "param") {
101924
+ return { type: "param", ref: value };
101925
+ }
101926
+ return { type: "value", ref: value };
101927
+ };
101928
+ var collectTemplateMetadata = (template, addSecret, addParam) => {
101929
+ for (const part of template) {
101930
+ if (part.type === "secret")
101931
+ addSecret(part.name);
101932
+ if (part.type === "param")
101933
+ addParam(part.ref.name);
101934
+ }
101935
+ };
101936
+ var normalizeTemplatePart = (part) => {
101937
+ if (part.type === "text" || part.type === "interpolated") {
101938
+ return { type: part.type, value: part.value };
101939
+ }
101940
+ if (part.type === "secret") {
101941
+ return { type: part.type, name: part.name };
101942
+ }
101943
+ return { type: part.type, name: part.ref.name };
101944
+ };
101945
+ var commandSignature = (template) => {
101946
+ const raw = template.map((part) => {
101947
+ if (part.type === "text")
101948
+ return part.value;
101949
+ if (part.type === "interpolated")
101950
+ return String(part.value);
101951
+ if (part.type === "secret")
101952
+ return `<secret:${part.name}>`;
101953
+ if (part.type === "param")
101954
+ return `<param:${part.ref.name}>`;
101955
+ return `<value:${part.ref.name}>`;
101956
+ }).join("");
101957
+ return raw.replace(/\s+/g, " ").trim();
101958
+ };
101959
+
101960
+ class CommandBuilder {
101961
+ op;
101962
+ constructor(op) {
101963
+ this.op = op;
101964
+ }
101965
+ get kind() {
101966
+ return this.op.kind;
101967
+ }
101968
+ toOp() {
101969
+ return this.op;
101970
+ }
101971
+ analysisPlaceholder() {
101972
+ return "";
101973
+ }
101974
+ extractDependencies(_taskName) {
101975
+ return [];
101976
+ }
101977
+ extractSecrets() {
101978
+ const names = new Set;
101979
+ collectTemplateMetadata(this.op.template, (name) => names.add(name), () => {});
101980
+ return Array.from(names);
101981
+ }
101982
+ extractRefs() {
101983
+ return [];
101984
+ }
101985
+ cacheNormalize(context) {
101986
+ context.addCommandSignature(commandSignature(this.op.template));
101987
+ collectTemplateMetadata(this.op.template, context.addSecret, context.addParam);
101988
+ return {
101989
+ kind: this.op.kind,
101990
+ capture: this.op.capture,
101991
+ cache: this.op.cache ?? null,
101992
+ template: this.op.template.map(normalizeTemplatePart)
101993
+ };
101994
+ }
101995
+ cachePlaceholder(context) {
101996
+ if (!context.isPrimary)
101997
+ return;
101998
+ if (this.op.capture === "ok")
101999
+ return true;
102000
+ if (this.op.capture === "code")
102001
+ return 0;
102002
+ return "";
102003
+ }
102004
+ stdout() {
102005
+ return new CommandBuilder({ ...this.op, capture: "stdout" });
102006
+ }
102007
+ code() {
102008
+ return new CommandBuilder({ ...this.op, capture: "code" });
102009
+ }
102010
+ ok() {
102011
+ return new CommandBuilder({ ...this.op, capture: "ok" });
102012
+ }
102013
+ must() {
102014
+ return new CommandBuilder({ ...this.op, capture: "must" });
102015
+ }
102016
+ cached(options) {
102017
+ return new CommandBuilder({ ...this.op, cache: { enabled: true, ...options } });
102018
+ }
102019
+ uncached() {
102020
+ return new CommandBuilder({ ...this.op, cache: { enabled: false } });
102021
+ }
102022
+ }
102023
+ var sh = (strings, ...values) => {
102024
+ const template = [];
102025
+ for (let i = 0;i < strings.length; i += 1) {
102026
+ const text = strings[i] ?? "";
102027
+ if (text.length > 0) {
102028
+ template.push({ type: "text", value: text });
102029
+ }
102030
+ const value = values[i];
102031
+ if (i < values.length && value !== undefined) {
102032
+ template.push(toTemplatePart(value));
102033
+ }
102034
+ }
102035
+ return new CommandBuilder({
102036
+ kind: "command",
102037
+ capture: "result",
102038
+ template
102039
+ });
102040
+ };
102022
102041
  // ../cli/dist/ops/http.js
102023
102042
  var isTemplateStringsArray = (value) => Array.isArray(value) && Object.prototype.hasOwnProperty.call(value, "raw");
102024
102043
  var isTemplatePartArray = (value) => Array.isArray(value) && (value.length === 0 || typeof value[0] === "object" && value[0] !== null && ("type" in value[0]));
@@ -102061,12 +102080,91 @@ var templateFromInput = (input, values) => {
102061
102080
  return [toTemplatePart2(input)];
102062
102081
  };
102063
102082
  var hasHeader = (headers, name) => headers.some((header) => header.name.toLowerCase() === name.toLowerCase());
102083
+ var collectTemplateSecrets = (template) => {
102084
+ const names = new Set;
102085
+ for (const part of template) {
102086
+ if (part.type === "secret")
102087
+ names.add(part.name);
102088
+ }
102089
+ return Array.from(names);
102090
+ };
102091
+ var collectTemplateMetadata2 = (template, addSecret, addParam) => {
102092
+ for (const part of template) {
102093
+ if (part.type === "secret")
102094
+ addSecret(part.name);
102095
+ if (part.type === "param")
102096
+ addParam(part.ref.name);
102097
+ }
102098
+ };
102099
+ var normalizeTemplatePart2 = (part) => {
102100
+ if (part.type === "text" || part.type === "interpolated") {
102101
+ return { type: part.type, value: part.value };
102102
+ }
102103
+ if (part.type === "secret") {
102104
+ return { type: part.type, name: part.name };
102105
+ }
102106
+ return { type: part.type, name: part.ref.name };
102107
+ };
102064
102108
 
102065
102109
  class HttpBuilder {
102066
102110
  op;
102067
102111
  constructor(op) {
102068
102112
  this.op = op;
102069
102113
  }
102114
+ get kind() {
102115
+ return this.op.kind;
102116
+ }
102117
+ toOp() {
102118
+ return this.op;
102119
+ }
102120
+ analysisPlaceholder() {
102121
+ return { status: 200, ok: true, headers: {}, body: "" };
102122
+ }
102123
+ extractDependencies(_taskName) {
102124
+ return [];
102125
+ }
102126
+ extractSecrets() {
102127
+ const names = new Set;
102128
+ for (const name of collectTemplateSecrets(this.op.url))
102129
+ names.add(name);
102130
+ for (const header of this.op.headers) {
102131
+ for (const name of collectTemplateSecrets(header.value))
102132
+ names.add(name);
102133
+ }
102134
+ if (this.op.body) {
102135
+ for (const name of collectTemplateSecrets(this.op.body))
102136
+ names.add(name);
102137
+ }
102138
+ return Array.from(names);
102139
+ }
102140
+ extractRefs() {
102141
+ return [];
102142
+ }
102143
+ cacheNormalize(context) {
102144
+ collectTemplateMetadata2(this.op.url, context.addSecret, context.addParam);
102145
+ for (const header of this.op.headers) {
102146
+ collectTemplateMetadata2(header.value, context.addSecret, context.addParam);
102147
+ }
102148
+ if (this.op.body) {
102149
+ collectTemplateMetadata2(this.op.body, context.addSecret, context.addParam);
102150
+ }
102151
+ return {
102152
+ kind: this.op.kind,
102153
+ method: this.op.method,
102154
+ url: this.op.url.map(normalizeTemplatePart2),
102155
+ headers: this.op.headers.map((header) => ({
102156
+ name: header.name,
102157
+ value: header.value.map(normalizeTemplatePart2)
102158
+ })),
102159
+ body: this.op.body ? this.op.body.map(normalizeTemplatePart2) : null,
102160
+ bodyPath: this.op.bodyPath ?? null
102161
+ };
102162
+ }
102163
+ cachePlaceholder(context) {
102164
+ if (!context.isPrimary)
102165
+ return;
102166
+ return { status: 200, ok: true, headers: {}, body: "" };
102167
+ }
102070
102168
  header(name, value, ...values) {
102071
102169
  const next = { name, value: templateFromInput(value, values) };
102072
102170
  return new HttpBuilder({ ...this.op, headers: [...this.op.headers, next] });
@@ -102113,12 +102211,73 @@ var http = {
102113
102211
  head: (url, ...values) => buildRequest("HEAD", url, values),
102114
102212
  options: (url, ...values) => buildRequest("OPTIONS", url, values)
102115
102213
  };
102214
+ // ../cli/dist/ops/types.js
102215
+ var isSecretRef = (value) => value.kind === "secret";
102216
+ var isParamRef = (value) => value.kind === "param";
102217
+ var isValueRef = (value) => value.kind === "value";
102218
+
102116
102219
  // ../cli/dist/ops/env.js
102117
- var env = (name, value) => ({
102118
- kind: "env",
102119
- name,
102120
- value
102121
- });
102220
+ class EnvOperation {
102221
+ name;
102222
+ value;
102223
+ constructor(name, value) {
102224
+ this.name = name;
102225
+ this.value = value;
102226
+ }
102227
+ get kind() {
102228
+ return "env";
102229
+ }
102230
+ toOp() {
102231
+ return { kind: "env", name: this.name, value: this.value };
102232
+ }
102233
+ analysisPlaceholder() {
102234
+ if (typeof this.value === "string" || typeof this.value === "number") {
102235
+ return this.value;
102236
+ }
102237
+ return "";
102238
+ }
102239
+ extractDependencies(_taskName) {
102240
+ return [];
102241
+ }
102242
+ extractSecrets() {
102243
+ const value = this.value;
102244
+ if (typeof value === "object" && value !== null && isSecretRef(value)) {
102245
+ return [value.name];
102246
+ }
102247
+ return [];
102248
+ }
102249
+ extractRefs() {
102250
+ return [];
102251
+ }
102252
+ cacheNormalize(context) {
102253
+ const value = this.value;
102254
+ if (typeof value !== "string" && typeof value !== "number") {
102255
+ if (isSecretRef(value))
102256
+ context.addSecret(value.name);
102257
+ if (isParamRef(value))
102258
+ context.addParam(value.name);
102259
+ }
102260
+ const normalized = (() => {
102261
+ if (typeof value === "string" || typeof value === "number")
102262
+ return value;
102263
+ if (isSecretRef(value))
102264
+ return { kind: "secret", name: value.name };
102265
+ if (isParamRef(value))
102266
+ return { kind: "param", name: value.name };
102267
+ if (isValueRef(value))
102268
+ return { kind: "value", name: value.name };
102269
+ return String(value);
102270
+ })();
102271
+ return { kind: this.kind, name: this.name, value: normalized };
102272
+ }
102273
+ cachePlaceholder(context) {
102274
+ if (typeof this.value === "string" || typeof this.value === "number") {
102275
+ return this.value;
102276
+ }
102277
+ return context.isPrimary ? "" : undefined;
102278
+ }
102279
+ }
102280
+ var env = (name, value) => new EnvOperation(name, value);
102122
102281
  // ../cli/dist/ops/secret.js
102123
102282
  var secret = (name) => ({ kind: "secret", name });
102124
102283
  // ../cli/dist/ops/ref.js
@@ -102144,6 +102303,133 @@ var createRefFactory = (kind) => {
102144
102303
  var param = createRefFactory("param");
102145
102304
  var out = createRefFactory("value");
102146
102305
  // ../cli/dist/ops/cache.js
102306
+ class CacheOperation {
102307
+ name;
102308
+ paths;
102309
+ key;
102310
+ constructor(name, paths, key) {
102311
+ this.name = name;
102312
+ this.paths = paths;
102313
+ if (key)
102314
+ this.key = key;
102315
+ }
102316
+ get kind() {
102317
+ return "cache";
102318
+ }
102319
+ toOp() {
102320
+ return {
102321
+ kind: "cache",
102322
+ name: this.name,
102323
+ paths: this.paths,
102324
+ ...this.key ? { key: this.key } : {}
102325
+ };
102326
+ }
102327
+ analysisPlaceholder() {
102328
+ return;
102329
+ }
102330
+ extractDependencies(_taskName) {
102331
+ return [];
102332
+ }
102333
+ extractSecrets() {
102334
+ return [];
102335
+ }
102336
+ extractRefs() {
102337
+ return [];
102338
+ }
102339
+ cacheNormalize(_context) {
102340
+ return {
102341
+ kind: this.kind,
102342
+ name: this.name,
102343
+ paths: this.paths,
102344
+ key: this.key ?? null
102345
+ };
102346
+ }
102347
+ cachePlaceholder(context) {
102348
+ return context.value;
102349
+ }
102350
+ }
102351
+
102352
+ class CacheOrOperation {
102353
+ name;
102354
+ paths;
102355
+ key;
102356
+ compute;
102357
+ constructor(name, paths, compute, key) {
102358
+ this.name = name;
102359
+ this.paths = paths;
102360
+ this.compute = compute;
102361
+ if (key)
102362
+ this.key = key;
102363
+ }
102364
+ get kind() {
102365
+ return "cache-or";
102366
+ }
102367
+ toOp() {
102368
+ return {
102369
+ kind: "cache-or",
102370
+ name: this.name,
102371
+ paths: this.paths,
102372
+ ...this.key ? { key: this.key } : {},
102373
+ compute: this.compute
102374
+ };
102375
+ }
102376
+ analysisPlaceholder() {
102377
+ return;
102378
+ }
102379
+ extractDependencies(_taskName) {
102380
+ return [];
102381
+ }
102382
+ extractSecrets() {
102383
+ return [];
102384
+ }
102385
+ extractRefs() {
102386
+ return [];
102387
+ }
102388
+ cacheNormalize(context) {
102389
+ const computeOps = context.analyzeNested(this.compute, context.resultValue);
102390
+ return {
102391
+ kind: this.kind,
102392
+ name: this.name,
102393
+ paths: this.paths,
102394
+ key: this.key ?? null,
102395
+ compute: computeOps
102396
+ };
102397
+ }
102398
+ cachePlaceholder(context) {
102399
+ return context.value;
102400
+ }
102401
+ }
102402
+
102403
+ class CacheMountOperation {
102404
+ cache;
102405
+ constructor(cache2) {
102406
+ this.cache = cache2;
102407
+ }
102408
+ get kind() {
102409
+ return "cache-mount";
102410
+ }
102411
+ toOp() {
102412
+ return { kind: "cache-mount", cache: this.cache };
102413
+ }
102414
+ analysisPlaceholder() {
102415
+ return;
102416
+ }
102417
+ extractDependencies(_taskName) {
102418
+ return [];
102419
+ }
102420
+ extractSecrets() {
102421
+ return [];
102422
+ }
102423
+ extractRefs() {
102424
+ return [];
102425
+ }
102426
+ cacheNormalize(_context) {
102427
+ return { kind: this.kind };
102428
+ }
102429
+ cachePlaceholder(context) {
102430
+ return context.value;
102431
+ }
102432
+ }
102147
102433
  var createCacheRef = (name, mountPath, key) => {
102148
102434
  const ref = {
102149
102435
  kind: "cache",
@@ -102157,26 +102443,85 @@ var createCacheRef = (name, mountPath, key) => {
102157
102443
  ref.key = key;
102158
102444
  return ref;
102159
102445
  };
102160
- var cacheOr = (name, options) => ({
102161
- kind: "cache-or",
102162
- name,
102163
- paths: options.paths,
102164
- ...options.key !== undefined ? { key: options.key } : {},
102165
- compute: options.compute
102166
- });
102167
- var cacheFn = (name, options) => ({
102168
- kind: "cache",
102169
- name,
102170
- paths: options.paths,
102171
- ...options.key !== undefined ? { key: options.key } : {}
102172
- });
102446
+ var cacheOr = (name, options) => new CacheOrOperation(name, options.paths, options.compute, options.key);
102447
+ var cacheFn = (name, options) => new CacheOperation(name, options.paths, options.key);
102173
102448
  cacheFn.dir = (name) => createCacheRef(name);
102174
- cacheFn.mount = (ref) => ({
102175
- kind: "cache-mount",
102176
- cache: ref
102177
- });
102449
+ cacheFn.mount = (ref) => new CacheMountOperation(ref);
102178
102450
  var cache2 = cacheFn;
102179
102451
  // ../cli/dist/ops/artifact.js
102452
+ class ArtifactUploadOperation {
102453
+ name;
102454
+ patterns;
102455
+ when;
102456
+ constructor(name, patterns, when) {
102457
+ this.name = name;
102458
+ this.patterns = patterns;
102459
+ this.when = when;
102460
+ }
102461
+ get kind() {
102462
+ return "artifact-upload";
102463
+ }
102464
+ toOp() {
102465
+ return { kind: "artifact-upload", name: this.name, patterns: this.patterns, when: this.when };
102466
+ }
102467
+ analysisPlaceholder() {
102468
+ return;
102469
+ }
102470
+ extractDependencies(_taskName) {
102471
+ return [];
102472
+ }
102473
+ extractSecrets() {
102474
+ return [];
102475
+ }
102476
+ extractRefs() {
102477
+ return [];
102478
+ }
102479
+ cacheNormalize(_context) {
102480
+ return {
102481
+ kind: this.kind,
102482
+ name: this.name,
102483
+ patterns: this.patterns,
102484
+ when: this.when
102485
+ };
102486
+ }
102487
+ cachePlaceholder(context) {
102488
+ return context.value;
102489
+ }
102490
+ }
102491
+
102492
+ class ArtifactDownloadOperation {
102493
+ name;
102494
+ destination;
102495
+ constructor(name, destination) {
102496
+ this.name = name;
102497
+ this.destination = destination;
102498
+ }
102499
+ get kind() {
102500
+ return "artifact-download";
102501
+ }
102502
+ toOp() {
102503
+ return { kind: "artifact-download", name: this.name, destination: this.destination };
102504
+ }
102505
+ analysisPlaceholder() {
102506
+ return;
102507
+ }
102508
+ extractDependencies(_taskName) {
102509
+ return [];
102510
+ }
102511
+ extractSecrets() {
102512
+ return [];
102513
+ }
102514
+ extractRefs() {
102515
+ return [];
102516
+ }
102517
+ cacheNormalize(_context) {
102518
+ return { kind: this.kind, name: this.name, destination: this.destination };
102519
+ }
102520
+ cachePlaceholder(context) {
102521
+ return context.value;
102522
+ }
102523
+ }
102524
+
102180
102525
  class ArtifactUploadBuilder {
102181
102526
  name;
102182
102527
  patterns;
@@ -102190,10 +102535,10 @@ class ArtifactUploadBuilder {
102190
102535
  return new ArtifactUploadBuilder(this.name, patterns, this.when);
102191
102536
  }
102192
102537
  whenSuccess() {
102193
- return { kind: "artifact-upload", name: this.name, patterns: this.patterns, when: "success" };
102538
+ return new ArtifactUploadOperation(this.name, this.patterns, "success");
102194
102539
  }
102195
102540
  whenAlways() {
102196
- return { kind: "artifact-upload", name: this.name, patterns: this.patterns, when: "always" };
102541
+ return new ArtifactUploadOperation(this.name, this.patterns, "always");
102197
102542
  }
102198
102543
  }
102199
102544
 
@@ -102203,7 +102548,7 @@ class ArtifactDownloadBuilder {
102203
102548
  this.name = name;
102204
102549
  }
102205
102550
  to(destination) {
102206
- return { kind: "artifact-download", name: this.name, destination };
102551
+ return new ArtifactDownloadOperation(this.name, destination);
102207
102552
  }
102208
102553
  }
102209
102554
  var artifact2 = {
@@ -102225,75 +102570,311 @@ var createBundleRef = (name) => {
102225
102570
  };
102226
102571
  return ref;
102227
102572
  };
102228
- var pack = (ref) => ({
102229
- kind: "pack",
102230
- ref
102231
- });
102232
- var unpack = (from, ref) => ({
102233
- kind: "unpack",
102234
- from,
102235
- ref
102236
- });
102573
+
102574
+ class PackOperation {
102575
+ ref;
102576
+ constructor(ref) {
102577
+ this.ref = ref;
102578
+ }
102579
+ get kind() {
102580
+ return "pack";
102581
+ }
102582
+ toOp() {
102583
+ return { kind: "pack", ref: this.ref };
102584
+ }
102585
+ analysisPlaceholder() {
102586
+ return;
102587
+ }
102588
+ extractDependencies(_taskName) {
102589
+ return [];
102590
+ }
102591
+ extractSecrets() {
102592
+ return [];
102593
+ }
102594
+ extractRefs() {
102595
+ return [];
102596
+ }
102597
+ cacheNormalize(_context) {
102598
+ return { kind: this.kind, name: this.ref.name, patterns: this.ref.patterns };
102599
+ }
102600
+ cachePlaceholder(_context) {
102601
+ return;
102602
+ }
102603
+ }
102604
+
102605
+ class UnpackOperation {
102606
+ from;
102607
+ ref;
102608
+ constructor(from, ref) {
102609
+ this.from = from;
102610
+ this.ref = ref;
102611
+ }
102612
+ get kind() {
102613
+ return "unpack";
102614
+ }
102615
+ toOp() {
102616
+ return { kind: "unpack", from: this.from, ref: this.ref };
102617
+ }
102618
+ analysisPlaceholder() {
102619
+ return;
102620
+ }
102621
+ extractDependencies(taskName) {
102622
+ return [{ from: this.from.config.name, to: taskName, type: "unpack" }];
102623
+ }
102624
+ extractSecrets() {
102625
+ return [];
102626
+ }
102627
+ extractRefs() {
102628
+ return [{ type: "bundle", ref: this.ref }];
102629
+ }
102630
+ cacheNormalize(context) {
102631
+ context.addDependency(this.from.config.name);
102632
+ return {
102633
+ kind: this.kind,
102634
+ from: this.from.config.name,
102635
+ name: this.ref.name,
102636
+ patterns: this.ref.patterns
102637
+ };
102638
+ }
102639
+ cachePlaceholder(_context) {
102640
+ return;
102641
+ }
102642
+ }
102643
+ var pack = (ref) => new PackOperation(ref);
102644
+ var unpack = (from, ref) => new UnpackOperation(from, ref);
102237
102645
 
102238
102646
  // ../cli/dist/ops/output.js
102239
102647
  var out2 = {
102240
102648
  ...out,
102241
102649
  bundle: (name) => createBundleRef(name)
102242
102650
  };
102243
- var emit = (ref, value) => ({
102244
- kind: "emit",
102245
- ref,
102246
- value
102247
- });
102248
- var use = (from, ref) => ({
102249
- kind: "use",
102250
- from,
102251
- ref
102252
- });
102651
+ var emit = (ref, value) => new EmitOperation(ref, value);
102652
+ var use = (from, ref) => new UseOperation(from, ref);
102653
+
102654
+ class EmitOperation {
102655
+ ref;
102656
+ value;
102657
+ constructor(ref, value) {
102658
+ this.ref = ref;
102659
+ this.value = value;
102660
+ }
102661
+ get kind() {
102662
+ return "emit";
102663
+ }
102664
+ toOp() {
102665
+ return { kind: "emit", ref: this.ref, value: this.value };
102666
+ }
102667
+ analysisPlaceholder() {
102668
+ return this.value;
102669
+ }
102670
+ extractDependencies(_taskName) {
102671
+ return [];
102672
+ }
102673
+ extractSecrets() {
102674
+ return [];
102675
+ }
102676
+ extractRefs() {
102677
+ return [];
102678
+ }
102679
+ cacheNormalize(_context) {
102680
+ return { kind: this.kind, ref: this.ref.name, value: this.value };
102681
+ }
102682
+ cachePlaceholder(_context) {
102683
+ return this.value;
102684
+ }
102685
+ }
102686
+
102687
+ class UseOperation {
102688
+ from;
102689
+ ref;
102690
+ constructor(from, ref) {
102691
+ this.from = from;
102692
+ this.ref = ref;
102693
+ }
102694
+ get kind() {
102695
+ return "use";
102696
+ }
102697
+ toOp() {
102698
+ return { kind: "use", from: this.from, ref: this.ref };
102699
+ }
102700
+ analysisPlaceholder() {
102701
+ return this.ref.parse("");
102702
+ }
102703
+ extractDependencies(taskName) {
102704
+ return [{ from: this.from.config.name, to: taskName, type: "use" }];
102705
+ }
102706
+ extractSecrets() {
102707
+ return [];
102708
+ }
102709
+ extractRefs() {
102710
+ return [{ type: "value", ref: this.ref }];
102711
+ }
102712
+ cacheNormalize(context) {
102713
+ context.addDependency(this.from.config.name);
102714
+ return { kind: this.kind, from: this.from.config.name, ref: this.ref.name };
102715
+ }
102716
+ cachePlaceholder(context) {
102717
+ return context.isPrimary ? this.ref.parse("") : undefined;
102718
+ }
102719
+ }
102253
102720
  // ../cli/dist/ops/summary.js
102721
+ class SummaryOperation {
102722
+ format;
102723
+ content;
102724
+ constructor(format, content) {
102725
+ this.format = format;
102726
+ this.content = content;
102727
+ }
102728
+ get kind() {
102729
+ return "summary";
102730
+ }
102731
+ toOp() {
102732
+ return { kind: "summary", format: this.format, content: this.content };
102733
+ }
102734
+ analysisPlaceholder() {
102735
+ return;
102736
+ }
102737
+ extractDependencies(_taskName) {
102738
+ return [];
102739
+ }
102740
+ extractSecrets() {
102741
+ return [];
102742
+ }
102743
+ extractRefs() {
102744
+ return [];
102745
+ }
102746
+ cacheNormalize(_context) {
102747
+ return { kind: this.kind, format: this.format, content: this.content };
102748
+ }
102749
+ cachePlaceholder(context) {
102750
+ return context.value;
102751
+ }
102752
+ }
102254
102753
  var summary2 = {
102255
- md: (content) => ({
102256
- kind: "summary",
102257
- format: "md",
102258
- content
102259
- })
102754
+ md: (content) => new SummaryOperation("md", content)
102260
102755
  };
102261
102756
  // ../cli/dist/ops/annotate.js
102262
- var createAnnotation = (level) => (message, location) => ({
102263
- kind: "annotate",
102264
- level,
102265
- message,
102266
- ...location ? { location } : {}
102267
- });
102757
+ class AnnotateOperation {
102758
+ level;
102759
+ message;
102760
+ location;
102761
+ constructor(level, message, location) {
102762
+ this.level = level;
102763
+ this.message = message;
102764
+ if (location)
102765
+ this.location = location;
102766
+ }
102767
+ get kind() {
102768
+ return "annotate";
102769
+ }
102770
+ toOp() {
102771
+ return {
102772
+ kind: "annotate",
102773
+ level: this.level,
102774
+ message: this.message,
102775
+ ...this.location ? { location: this.location } : {}
102776
+ };
102777
+ }
102778
+ analysisPlaceholder() {
102779
+ return;
102780
+ }
102781
+ extractDependencies(_taskName) {
102782
+ return [];
102783
+ }
102784
+ extractSecrets() {
102785
+ return [];
102786
+ }
102787
+ extractRefs() {
102788
+ return [];
102789
+ }
102790
+ cacheNormalize(_context) {
102791
+ return { kind: this.kind, level: this.level, message: this.message };
102792
+ }
102793
+ cachePlaceholder(context) {
102794
+ return context.value;
102795
+ }
102796
+ }
102797
+ var createAnnotation = (level) => (message, location) => new AnnotateOperation(level, message, location);
102268
102798
  var annotate = {
102269
102799
  error: createAnnotation("error"),
102270
102800
  warning: createAnnotation("warning"),
102271
102801
  info: createAnnotation("info")
102272
102802
  };
102273
102803
  // ../cli/dist/ops/report.js
102804
+ class ReportOperation {
102805
+ reportType;
102806
+ path;
102807
+ constructor(reportType, path) {
102808
+ this.reportType = reportType;
102809
+ this.path = path;
102810
+ }
102811
+ get kind() {
102812
+ return "report";
102813
+ }
102814
+ toOp() {
102815
+ return { kind: "report", reportType: this.reportType, path: this.path };
102816
+ }
102817
+ analysisPlaceholder() {
102818
+ return;
102819
+ }
102820
+ extractDependencies(_taskName) {
102821
+ return [];
102822
+ }
102823
+ extractSecrets() {
102824
+ return [];
102825
+ }
102826
+ extractRefs() {
102827
+ return [];
102828
+ }
102829
+ cacheNormalize(_context) {
102830
+ return { kind: this.kind, reportType: this.reportType, path: this.path };
102831
+ }
102832
+ cachePlaceholder(context) {
102833
+ return context.value;
102834
+ }
102835
+ }
102274
102836
  var report = {
102275
- junit: (path) => ({
102276
- kind: "report",
102277
- reportType: "junit",
102278
- path
102279
- }),
102280
- coverage: (path) => ({
102281
- kind: "report",
102282
- reportType: "coverage",
102283
- path
102284
- })
102837
+ junit: (path) => new ReportOperation("junit", path),
102838
+ coverage: (path) => new ReportOperation("coverage", path)
102285
102839
  };
102286
102840
  // ../cli/dist/ops/bind.js
102287
- var bind = (serviceInstance, alias) => {
102288
- const op = { kind: "bind-service", service: serviceInstance };
102289
- if (alias)
102290
- op.alias = alias;
102291
- return op;
102292
- };
102293
- // ../cli/dist/ops/types.js
102294
- var isSecretRef = (value) => value.kind === "secret";
102295
- var isParamRef = (value) => value.kind === "param";
102296
- var isValueRef = (value) => value.kind === "value";
102841
+ class BindServiceOperation {
102842
+ service;
102843
+ alias;
102844
+ constructor(service2, alias) {
102845
+ this.service = service2;
102846
+ if (alias)
102847
+ this.alias = alias;
102848
+ }
102849
+ get kind() {
102850
+ return "bind-service";
102851
+ }
102852
+ toOp() {
102853
+ const op = { kind: "bind-service", service: this.service };
102854
+ if (this.alias)
102855
+ op.alias = this.alias;
102856
+ return op;
102857
+ }
102858
+ analysisPlaceholder() {
102859
+ return;
102860
+ }
102861
+ extractDependencies(_taskName) {
102862
+ return [];
102863
+ }
102864
+ extractSecrets() {
102865
+ return [];
102866
+ }
102867
+ extractRefs() {
102868
+ return [];
102869
+ }
102870
+ cacheNormalize(_context) {
102871
+ return { kind: this.kind, service: this.service, alias: this.alias ?? null };
102872
+ }
102873
+ cachePlaceholder(context) {
102874
+ return context.value;
102875
+ }
102876
+ }
102877
+ var bind = (serviceInstance, alias) => new BindServiceOperation(serviceInstance, alias);
102297
102878
  // ../cli/dist/engine/cache/coordinator.js
102298
102879
  import { join as join4 } from "node:path";
102299
102880
 
@@ -102390,219 +102971,40 @@ var createPlaceholderTracker = () => {
102390
102971
  used: () => touched
102391
102972
  };
102392
102973
  };
102393
- var toOp2 = (value) => {
102394
- if (value instanceof Object && "op" in value) {
102395
- const maybeOp = value.op;
102396
- if (maybeOp && typeof maybeOp === "object" && "kind" in maybeOp) {
102397
- return maybeOp;
102398
- }
102974
+ var toOperation2 = (value) => {
102975
+ if (!isOperation(value)) {
102976
+ throw new Error("Step yielded a non-operation value");
102399
102977
  }
102400
102978
  return value;
102401
102979
  };
102402
- var normalizeTemplatePart = (part) => {
102403
- if (part.type === "text" || part.type === "interpolated") {
102404
- return { type: part.type, value: part.value };
102405
- }
102406
- if (part.type === "secret") {
102407
- return { type: part.type, name: part.name };
102408
- }
102409
- return { type: part.type, name: part.ref.name };
102410
- };
102411
- var commandSignature = (template) => {
102412
- const raw = template.map((part) => {
102413
- if (part.type === "text")
102414
- return part.value;
102415
- if (part.type === "interpolated")
102416
- return String(part.value);
102417
- if (part.type === "secret")
102418
- return `<secret:${part.name}>`;
102419
- if (part.type === "param")
102420
- return `<param:${part.ref.name}>`;
102421
- return `<value:${part.ref.name}>`;
102422
- }).join("");
102423
- return raw.replace(/\s+/g, " ").trim();
102424
- };
102425
- var collectFromTemplate = (template, secrets, params) => {
102426
- for (const part of template) {
102427
- if (part.type === "secret")
102428
- secrets.add(part.name);
102429
- if (part.type === "param")
102430
- params.add(part.ref.name);
102431
- }
102432
- };
102433
- var collectEnvValue = (value, secrets, params) => {
102434
- if (typeof value === "string" || typeof value === "number")
102435
- return;
102436
- if (isSecretRef(value))
102437
- secrets.add(value.name);
102438
- if (isParamRef(value))
102439
- params.add(value.name);
102440
- };
102441
- var normalizeEnvValue = (value) => {
102442
- if (typeof value === "string" || typeof value === "number")
102443
- return value;
102444
- if (isSecretRef(value))
102445
- return { kind: "secret", name: value.name };
102446
- if (isParamRef(value))
102447
- return { kind: "param", name: value.name };
102448
- if (isValueRef(value))
102449
- return { kind: "value", name: value.name };
102450
- return String(value);
102451
- };
102452
- var normalizeOp = (op, ctx, analysis, tracker, resultValue) => {
102453
- switch (op.kind) {
102454
- case "command": {
102455
- const commandOp = op;
102456
- analysis.commandSignatures.push(commandSignature(commandOp.template));
102457
- collectFromTemplate(commandOp.template, analysis.secrets, analysis.params);
102458
- return {
102459
- kind: op.kind,
102460
- capture: commandOp.capture,
102461
- cache: commandOp.cache ?? null,
102462
- template: commandOp.template.map(normalizeTemplatePart)
102463
- };
102464
- }
102465
- case "http": {
102466
- const httpOp = op;
102467
- collectFromTemplate(httpOp.url, analysis.secrets, analysis.params);
102468
- for (const header of httpOp.headers) {
102469
- collectFromTemplate(header.value, analysis.secrets, analysis.params);
102470
- }
102471
- if (httpOp.body) {
102472
- collectFromTemplate(httpOp.body, analysis.secrets, analysis.params);
102473
- }
102474
- return {
102475
- kind: op.kind,
102476
- method: httpOp.method,
102477
- url: httpOp.url.map(normalizeTemplatePart),
102478
- headers: httpOp.headers.map((header) => ({
102479
- name: header.name,
102480
- value: header.value.map(normalizeTemplatePart)
102481
- })),
102482
- body: httpOp.body ? httpOp.body.map(normalizeTemplatePart) : null,
102483
- bodyPath: httpOp.bodyPath ?? null
102484
- };
102485
- }
102486
- case "emit": {
102487
- const emitOp = op;
102488
- return { kind: op.kind, ref: emitOp.ref.name, value: emitOp.value };
102489
- }
102490
- case "use": {
102491
- const useOp = op;
102492
- analysis.dependencies.add(useOp.from.config.name);
102493
- return { kind: op.kind, from: useOp.from.config.name, ref: useOp.ref.name };
102494
- }
102495
- case "pack": {
102496
- const packOp = op;
102497
- return { kind: op.kind, name: packOp.ref.name, patterns: packOp.ref.patterns };
102498
- }
102499
- case "unpack": {
102500
- const unpackOp = op;
102501
- analysis.dependencies.add(unpackOp.from.config.name);
102502
- return {
102503
- kind: op.kind,
102504
- from: unpackOp.from.config.name,
102505
- name: unpackOp.ref.name,
102506
- patterns: unpackOp.ref.patterns
102507
- };
102508
- }
102509
- case "env": {
102510
- const envOp = op;
102511
- collectEnvValue(envOp.value, analysis.secrets, analysis.params);
102512
- return { kind: op.kind, name: envOp.name, value: normalizeEnvValue(envOp.value) };
102513
- }
102514
- case "summary": {
102515
- const summaryOp = op;
102516
- return { kind: op.kind, format: summaryOp.format, content: summaryOp.content };
102517
- }
102518
- case "artifact-upload": {
102519
- const uploadOp = op;
102520
- return {
102521
- kind: op.kind,
102522
- name: uploadOp.name,
102523
- patterns: uploadOp.patterns,
102524
- when: uploadOp.when
102525
- };
102526
- }
102527
- case "artifact-download": {
102528
- const downloadOp = op;
102529
- return { kind: op.kind, name: downloadOp.name, destination: downloadOp.destination };
102530
- }
102531
- case "annotate": {
102532
- const annotateOp = op;
102533
- return { kind: op.kind, level: annotateOp.level, message: annotateOp.message };
102534
- }
102535
- case "report": {
102536
- const reportOp = op;
102537
- return { kind: op.kind, reportType: reportOp.reportType, path: reportOp.path };
102538
- }
102539
- case "bind-service": {
102540
- const bindOp = op;
102541
- return { kind: op.kind, service: bindOp.service, alias: bindOp.alias ?? null };
102542
- }
102543
- case "cache": {
102544
- const cacheOp = op;
102545
- return { kind: op.kind, name: cacheOp.name, paths: cacheOp.paths, key: cacheOp.key ?? null };
102546
- }
102547
- case "cache-or": {
102548
- const cacheOrOp = op;
102549
- const computeOps = analyzeGenerator(cacheOrOp.compute(ctx), ctx, analysis, tracker, resultValue);
102550
- return {
102551
- kind: op.kind,
102552
- name: cacheOrOp.name,
102553
- paths: cacheOrOp.paths,
102554
- key: cacheOrOp.key ?? null,
102555
- compute: computeOps
102556
- };
102557
- }
102558
- default:
102559
- return { kind: op.kind };
102560
- }
102561
- };
102562
- var placeholderForCommand = (op, isPrimary) => {
102563
- if (!isPrimary)
102564
- return;
102565
- if (op.capture === "ok")
102566
- return true;
102567
- if (op.capture === "code")
102568
- return 0;
102569
- return "";
102570
- };
102571
- var placeholderForHttp = (isPrimary) => isPrimary ? { status: 200, ok: true, headers: {}, body: "" } : undefined;
102572
- var placeholderForUse = (op, isPrimary) => isPrimary ? op.ref.parse("") : undefined;
102573
- var placeholderForEnv = (op, isPrimary) => {
102574
- if (typeof op.value === "string" || typeof op.value === "number") {
102575
- return op.value;
102576
- }
102577
- return isPrimary ? "" : undefined;
102578
- };
102579
- var placeholderForOp2 = (op, tracker) => {
102580
- const isPrimary = tracker.value !== undefined;
102581
- switch (op.kind) {
102582
- case "command":
102583
- return placeholderForCommand(op, isPrimary);
102584
- case "http":
102585
- return placeholderForHttp(isPrimary);
102586
- case "use":
102587
- return placeholderForUse(op, isPrimary);
102588
- case "emit":
102589
- return op.value;
102590
- case "env":
102591
- return placeholderForEnv(op, isPrimary);
102592
- case "pack":
102593
- case "unpack":
102594
- return;
102595
- default:
102596
- return tracker.value;
102980
+ var createCacheContext = (ctx, analysis, tracker, resultValue) => ({
102981
+ addCommandSignature: (signature) => {
102982
+ analysis.commandSignatures.push(signature);
102983
+ },
102984
+ addDependency: (name) => {
102985
+ analysis.dependencies.add(name);
102986
+ },
102987
+ addSecret: (name) => {
102988
+ analysis.secrets.add(name);
102989
+ },
102990
+ addParam: (name) => {
102991
+ analysis.params.add(name);
102992
+ },
102993
+ analyzeNested: (compute, nestedResultValue) => analyzeGenerator(compute(ctx), ctx, analysis, tracker, nestedResultValue),
102994
+ resultValue,
102995
+ placeholder: {
102996
+ value: tracker.value,
102997
+ isPrimary: tracker.value !== undefined
102597
102998
  }
102598
- };
102999
+ });
102599
103000
  var analyzeGenerator = (iterator, ctx, analysis, tracker, resultValue) => {
102600
103001
  const ops = [];
102601
103002
  let cursor = iterator.next();
102602
103003
  while (!cursor.done) {
102603
- const op = toOp2(cursor.value);
102604
- ops.push(normalizeOp(op, ctx, analysis, tracker, resultValue));
102605
- const placeholder = placeholderForOp2(op, tracker);
103004
+ const operation = toOperation2(cursor.value);
103005
+ const cacheContext = createCacheContext(ctx, analysis, tracker, resultValue);
103006
+ ops.push(operation.cacheNormalize(cacheContext));
103007
+ const placeholder = operation.cachePlaceholder(cacheContext.placeholder);
102606
103008
  cursor = iterator.next(placeholder);
102607
103009
  }
102608
103010
  return ops;
@@ -103506,16 +103908,10 @@ class CacheCoordinator {
103506
103908
  }
103507
103909
  }
103508
103910
  toOp(value) {
103509
- if (value instanceof CommandBuilder) {
103510
- return value.op;
103511
- }
103512
- if (value && typeof value === "object" && "op" in value) {
103513
- const maybeOp = value.op;
103514
- if (maybeOp && typeof maybeOp === "object" && "kind" in maybeOp) {
103515
- return maybeOp;
103516
- }
103911
+ if (!isOperation(value)) {
103912
+ throw new Error("Step yielded a non-operation value");
103517
103913
  }
103518
- return value;
103914
+ return value.toOp();
103519
103915
  }
103520
103916
  async computeCacheOpDecision(op, context, task2) {
103521
103917
  if (op.paths.length === 0) {
@@ -104440,16 +104836,10 @@ class PlanRunner {
104440
104836
  return String(error2);
104441
104837
  }
104442
104838
  toOp(value) {
104443
- if (value instanceof CommandBuilder) {
104444
- return value.op;
104445
- }
104446
- if (value && typeof value === "object" && "op" in value) {
104447
- const maybeOp = value.op;
104448
- if (maybeOp && typeof maybeOp === "object" && "kind" in maybeOp) {
104449
- return maybeOp;
104450
- }
104839
+ if (!isOperation(value)) {
104840
+ throw new Error("Step yielded a non-operation value");
104451
104841
  }
104452
- return value;
104842
+ return value.toOp();
104453
104843
  }
104454
104844
  async executeOp(op, task2, step2, env2, state) {
104455
104845
  if (op.kind === "artifact-upload") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitsi/action",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "description": "GitHub Action for running Kitsi pipelines",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",