@voltro/plugin-releases 0.86.0 → 0.88.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,4 +1,4 @@
1
- //#region src/artifactMetadata.ts
1
+ // src/artifactMetadata.ts
2
2
  var e = (e) => typeof e == "string" && e.trim().length > 0 && !/[\u0000-\u001f\u007f]/.test(e), t = (t) => e(t) && t.length <= 200, n = (e) => typeof e == "string" && /^[a-f0-9]{64}$/i.test(e), r = (e) => Number.isSafeInteger(e) && e > 0, i = (e) => typeof e == "string" && e.trim().length > 0 && !e.includes("\0"), a = (a) => {
3
3
  for (let t of [
4
4
  "releaseId",
@@ -23,5 +23,4 @@ var e = (e) => typeof e == "string" && e.trim().length > 0 && !/[\u0000-\u001f\u
23
23
  if (!r(t)) throw Error("Stored artifact size exceeds the numeric feed range");
24
24
  return t;
25
25
  };
26
- //#endregion
27
26
  export { n as artifactHash, a as artifactMetadataIssue, t as artifactOperationId, r as artifactSize, o as artifactStoredSize, e as artifactText, i as hasArtifactSignature };
package/dist/errors.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Schema as e } from "effect";
2
- //#region src/errors.ts
2
+ // src/errors.ts
3
3
  var t = class extends e.TaggedError()("ReleaseNotFound", {
4
4
  app: e.String,
5
5
  version: e.optional(e.String),
@@ -9,5 +9,4 @@ var t = class extends e.TaggedError()("ReleaseNotFound", {
9
9
  return this.reason;
10
10
  }
11
11
  }, r = [t, n];
12
- //#endregion
13
12
  export { t as ReleaseNotFound, n as ReleaseRefused, r as releaseErrors };
package/dist/feeds.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { hasArtifactSignature as e } from "./artifactMetadata.js";
2
2
  import { compareVersions as t, inRollout as n } from "./rollout.js";
3
- //#region src/feeds.ts
3
+ // src/feeds.ts
4
4
  var r = (e, r) => r.currentVersion !== null && t(e.version, r.currentVersion) <= 0 ? !1 : n({
5
5
  installId: r.installId,
6
6
  salt: e.rolloutSalt,
@@ -108,5 +108,4 @@ var r = (e, r) => r.currentVersion !== null && t(e.version, r.currentVersion) <=
108
108
  os: "linux",
109
109
  arch: /aarch64|arm64/i.test(e) ? "aarch64" : "x86_64"
110
110
  } : null;
111
- //#endregion
112
111
  export { r as offeredTo, l as osFromUserAgent, c as pickDownload, a as renderElectronLatestYml, o as renderExpoFeed, i as renderTauriFeed };
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import { AsyncLocalStorage as we } from "node:async_hooks";
13
13
  import { definePlugin as Te } from "@voltro/protocol";
14
14
  import { and as Ee, eq as O, inSet as De, queryFor as k, registerRetention as Oe, retentionTtlMsFromEnv as ke } from "@voltro/database";
15
15
  import { newTraceId as Ae } from "@voltro/runtime";
16
- //#region src/index.ts
16
+ // src/index.ts
17
17
  var A = (e, t, n = {}) => ({
18
18
  status: e,
19
19
  body: JSON.stringify(t),
@@ -735,5 +735,4 @@ var A = (e, t, n = {}) => ({
735
735
  secret: !1,
736
736
  description: "Hours a release event (create, upload, promote, rollout, rollback, policy, prune) is kept before the retention sweep removes it. Default 8760 (one year)."
737
737
  }];
738
- //#endregion
739
738
  export { v as BASE_NAME, y as RELEASES_MANAGE_SCOPE, m as RELEASES_TABLE, ne as RELEASE_APPS_TABLE, h as RELEASE_ARTIFACTS_TABLE, g as RELEASE_CHANNELS_TABLE, _ as RELEASE_EVENTS_TABLE, b as RELEASE_PLATFORMS, x as RELEASE_SHELLS, o as ReleaseNotFound, s as ReleaseRefused, c as compareVersions, l as evaluatePolicy, u as inRollout, d as isNewerVersion, ge as offeredTo, _e as osFromUserAgent, f as parseVersion, ve as pickDownload, S as releaseAppsTable, C as releaseArtifactsTable, w as releaseChannelsTable, me as releaseEventsTable, he as releaseTables, N as releasesPlugin, T as releasesTable, ye as renderElectronLatestYml, be as renderExpoFeed, xe as renderTauriFeed, p as rolloutBucket, ee as sortVersionsDesc };
package/dist/names.js CHANGED
@@ -1,4 +1,3 @@
1
- //#region src/names.ts
1
+ // src/names.ts
2
2
  var e = "_voltro_release_apps", t = "_voltro_release_channels", n = "_voltro_releases", r = "_voltro_release_artifacts", i = "_voltro_release_events";
3
- //#endregion
4
3
  export { n as RELEASES_TABLE, e as RELEASE_APPS_TABLE, r as RELEASE_ARTIFACTS_TABLE, t as RELEASE_CHANNELS_TABLE, i as RELEASE_EVENTS_TABLE };
package/dist/retention.js CHANGED
@@ -9,5 +9,4 @@ var t = (t, n, r) => {
9
9
  }
10
10
  return a;
11
11
  };
12
- //#endregion
13
12
  export { t as planRetention };
package/dist/rollout.js CHANGED
@@ -1,4 +1,4 @@
1
- //#region src/rollout.ts
1
+ // src/rollout.ts
2
2
  var e = (e) => {
3
3
  let t = /^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(e.trim());
4
4
  return t ? {
@@ -51,5 +51,4 @@ var e = (e) => {
51
51
  killed: s
52
52
  };
53
53
  }, s = (e) => [...e].sort((e, n) => t(n, e));
54
- //#endregion
55
54
  export { t as compareVersions, o as evaluatePolicy, a as inRollout, n as isNewerVersion, e as parseVersion, i as rolloutBucket, s as sortVersionsDesc };
package/dist/rpc.js CHANGED
@@ -3,7 +3,7 @@ import { ReleaseNotFound as a, ReleaseRefused as o } from "./errors.js";
3
3
  import { RELEASES_TABLE as s, RELEASE_APPS_TABLE as c, RELEASE_ARTIFACTS_TABLE as l, RELEASE_CHANNELS_TABLE as u } from "./names.js";
4
4
  import { Schema as d } from "effect";
5
5
  import { defineMutation as f, defineQuery as p } from "@voltro/protocol";
6
- //#region src/rpc.ts
6
+ // src/rpc.ts
7
7
  var m = "@voltro/plugin-releases", h = "releases:manage", g = d.optional(d.Struct({
8
8
  id: d.String,
9
9
  revision: d.Number.pipe(d.check(d.isInt()), d.check(d.isGreaterThanOrEqualTo(0)))
@@ -259,5 +259,4 @@ var m = "@voltro/plugin-releases", h = "releases:manage", g = d.optional(d.Struc
259
259
  }
260
260
  }
261
261
  ];
262
- //#endregion
263
262
  export { m as BASE_NAME, _ as PolicySchema, h as RELEASES_MANAGE_SCOPE, y as ReleaseSummarySchema, O as ReleaseUploadPreparationInput, S as createDescriptor, b as listDescriptor, v as policyDescriptor, k as prepareUploadDescriptor, j as promoteDescriptor, x as registerAppDescriptor, F as releasesRpcClientImports, N as rollbackDescriptor, M as rolloutDescriptor, P as setPolicyDescriptor, A as uploadDescriptor };
package/dist/schema.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { RELEASES_TABLE as e, RELEASE_APPS_TABLE as t, RELEASE_ARTIFACTS_TABLE as n, RELEASE_CHANNELS_TABLE as r, RELEASE_EVENTS_TABLE as i } from "./names.js";
2
2
  import { bigint as a, boolean as o, id as s, integer as c, json as l, table as u, text as d, timestamp as f } from "@voltro/database";
3
- //#region src/schema.ts
3
+ // src/schema.ts
4
4
  var p = [
5
5
  "web",
6
6
  "ios",
@@ -81,5 +81,4 @@ var p = [
81
81
  v,
82
82
  y
83
83
  ];
84
- //#endregion
85
84
  export { e as RELEASES_TABLE, t as RELEASE_APPS_TABLE, n as RELEASE_ARTIFACTS_TABLE, r as RELEASE_CHANNELS_TABLE, i as RELEASE_EVENTS_TABLE, p as RELEASE_PLATFORMS, m as RELEASE_SHELLS, h as releaseAppsTable, v as releaseArtifactsTable, g as releaseChannelsTable, y as releaseEventsTable, b as releaseTables, _ as releasesTable };
@@ -1,5 +1,4 @@
1
1
  import { createHash as e } from "node:crypto";
2
- //#region src/uploadIdentity.server.ts
2
+ // src/uploadIdentity.server.ts
3
3
  var t = (t, n) => "relart_" + e("sha256").update(JSON.stringify([t, n])).digest("hex"), n = (e, t) => e.releaseId === t.releaseId && e.kind === t.kind && e.target === (t.target ?? null) && e.url === t.url && e.sha256 === t.sha256.toLowerCase() && e.size === String(t.size) && e.signature === (t.signature ?? null) && e.notarized === (t.notarized ?? !1) && e.assetKey === (t.assetKey ?? null) && e.contentType === (t.contentType ?? null);
4
- //#endregion
5
4
  export { n as matchesUploadArtifact, t as uploadArtifactId };
package/dist/web.js CHANGED
@@ -3,7 +3,7 @@ import { BASE_NAME as t } from "./rpc.js";
3
3
  import { pluginTag as n } from "@voltro/protocol";
4
4
  import { createElement as r, useEffect as i, useRef as a } from "react";
5
5
  import { usePlatform as o, useSubscription as s } from "@voltro/client";
6
- //#region src/web.ts
6
+ // src/web.ts
7
7
  var c = (e) => n(t, e), l = "voltro:install-id", u = (e) => {
8
8
  let { storage: t } = o();
9
9
  if (e !== void 0) return e;
@@ -43,5 +43,4 @@ var c = (e) => n(t, e), l = "voltro:install-id", u = (e) => {
43
43
  e !== null && e !== r.current && (r.current = e, n?.check());
44
44
  }, [t.verdict, n]), t;
45
45
  };
46
- //#endregion
47
46
  export { p as ForcedUpdateGate, u as useInstallId, f as useKillSwitch, d as useReleasePolicy, h as useUpdateImpulse };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voltro/plugin-releases",
3
- "version": "0.86.0",
3
+ "version": "0.88.0",
4
4
  "description": "Release channels, artefacts and rollouts for the apps a Voltro api serves — the self-hosted update server behind Tauri, Expo OTA, electron-updater and PWA update feeds, with a reactive release policy every client subscribes to.",
5
5
  "keywords": [
6
6
  "voltro",
@@ -48,14 +48,14 @@
48
48
  "node": ">=24.0.0"
49
49
  },
50
50
  "dependencies": {
51
- "@voltro/client": "0.86.0",
52
- "@voltro/database": "0.86.0",
53
- "@voltro/logger": "0.86.0",
54
- "@voltro/protocol": "0.86.0",
55
- "@voltro/runtime": "0.86.0"
51
+ "@voltro/client": "0.88.0",
52
+ "@voltro/database": "0.88.0",
53
+ "@voltro/logger": "0.88.0",
54
+ "@voltro/protocol": "0.88.0",
55
+ "@voltro/runtime": "0.88.0"
56
56
  },
57
57
  "peerDependencies": {
58
- "effect": "4.0.1",
58
+ "effect": "4.1.0",
59
59
  "react": "^19.0.0"
60
60
  },
61
61
  "peerDependenciesMeta": {