@camstack/addon-auth 1.2.84 → 1.2.85

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.
@@ -10714,12 +10714,30 @@ var BackupDestinationInfoSchema = object({
10714
10714
  lastSuccessAt: number().optional(),
10715
10715
  /** Newest-archive size from `manifests.json`, or undefined. */
10716
10716
  lastSuccessSizeBytes: number().optional(),
10717
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
10717
+ /**
10718
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
10719
+ * destination, comma-joined. Absent when no enabled schedule targets it
10720
+ * — a destination nothing is scheduled to write to must not advertise a
10721
+ * cadence (D384). This is never the `backup_destination_policies.cron`
10722
+ * column: that per-location cron has scheduled nothing since 2026-07-28
10723
+ * and reading it made a destination with a DISABLED schedule claim a
10724
+ * nightly run.
10725
+ */
10718
10726
  cron: string().optional(),
10719
- /** ms-epoch of next computed firing for this destination's cron, if any. */
10727
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
10720
10728
  nextRunAt: number().optional(),
10721
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
10722
- lastRunAt: number().optional()
10729
+ /**
10730
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
10731
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
10732
+ * newest archive that actually landed) and `lastError`.
10733
+ */
10734
+ lastAttemptAt: number().optional(),
10735
+ /**
10736
+ * Why the last attempt failed, verbatim. Absent when the last attempt
10737
+ * landed the archive. A destination that has never been written to has
10738
+ * neither this nor `lastAttemptAt`.
10739
+ */
10740
+ lastError: string().optional()
10723
10741
  });
10724
10742
  /**
10725
10743
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -10882,8 +10900,16 @@ var BackupScheduleSchema = object({
10882
10900
  retentionCount: number().int().min(1).max(1e3),
10883
10901
  /** Optional subset of source locations to include; omitted = all. */
10884
10902
  dataSources: array(string()).readonly().optional(),
10885
- /** ms-epoch of last successful run. */
10886
- lastRunAt: number().optional(),
10903
+ /**
10904
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
10905
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
10906
+ * "succeeded" — a run refused by every destination stamps it too.
10907
+ */
10908
+ lastAttemptAt: number().optional(),
10909
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
10910
+ lastSuccessAt: number().optional(),
10911
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
10912
+ lastError: string().optional(),
10887
10913
  /** ms-epoch of next computed firing (read-only, filled on list). */
10888
10914
  nextRunAt: number().optional()
10889
10915
  });
@@ -10932,14 +10958,7 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
10932
10958
  locationId: string(),
10933
10959
  enabled: boolean(),
10934
10960
  retentionCount: number().int().min(1).max(1e3),
10935
- label: string().optional(),
10936
- /**
10937
- * Per-destination cron expression. Empty string clears the
10938
- * schedule (manual-only). Validated server-side via croner;
10939
- * malformed expressions reject the upsert with an actionable
10940
- * message.
10941
- */
10942
- cron: string().optional()
10961
+ label: string().optional()
10943
10962
  }), _void(), {
10944
10963
  kind: "mutation",
10945
10964
  auth: "admin"
@@ -10714,12 +10714,30 @@ var BackupDestinationInfoSchema = object({
10714
10714
  lastSuccessAt: number().optional(),
10715
10715
  /** Newest-archive size from `manifests.json`, or undefined. */
10716
10716
  lastSuccessSizeBytes: number().optional(),
10717
- /** Per-destination cron expression. Empty = manual-only (no schedule). */
10717
+ /**
10718
+ * Cron cadence(s) of the ENABLED schedules that fan out to this
10719
+ * destination, comma-joined. Absent when no enabled schedule targets it
10720
+ * — a destination nothing is scheduled to write to must not advertise a
10721
+ * cadence (D384). This is never the `backup_destination_policies.cron`
10722
+ * column: that per-location cron has scheduled nothing since 2026-07-28
10723
+ * and reading it made a destination with a DISABLED schedule claim a
10724
+ * nightly run.
10725
+ */
10718
10726
  cron: string().optional(),
10719
- /** ms-epoch of next computed firing for this destination's cron, if any. */
10727
+ /** ms-epoch of the next firing across those schedules (earliest), if any. */
10720
10728
  nextRunAt: number().optional(),
10721
- /** ms-epoch of last successful scheduled run (mirrors policy.lastRunAt). */
10722
- lastRunAt: number().optional()
10729
+ /**
10730
+ * ms-epoch of the last time a run ATTEMPTED to write here — success or
10731
+ * failure. Never a success stamp: pair it with `lastSuccessAt` (the
10732
+ * newest archive that actually landed) and `lastError`.
10733
+ */
10734
+ lastAttemptAt: number().optional(),
10735
+ /**
10736
+ * Why the last attempt failed, verbatim. Absent when the last attempt
10737
+ * landed the archive. A destination that has never been written to has
10738
+ * neither this nor `lastAttemptAt`.
10739
+ */
10740
+ lastError: string().optional()
10723
10741
  });
10724
10742
  /**
10725
10743
  * Per-archive entry returned by `backup.listArchives({ destinationId })`.
@@ -10882,8 +10900,16 @@ var BackupScheduleSchema = object({
10882
10900
  retentionCount: number().int().min(1).max(1e3),
10883
10901
  /** Optional subset of source locations to include; omitted = all. */
10884
10902
  dataSources: array(string()).readonly().optional(),
10885
- /** ms-epoch of last successful run. */
10886
- lastRunAt: number().optional(),
10903
+ /**
10904
+ * ms-epoch of the last tick that FIRED this schedule. Stamped before the
10905
+ * archive runs (it is the dedupe anchor), so it says "attempted", never
10906
+ * "succeeded" — a run refused by every destination stamps it too.
10907
+ */
10908
+ lastAttemptAt: number().optional(),
10909
+ /** ms-epoch of the last run of this schedule that landed at ≥1 destination. */
10910
+ lastSuccessAt: number().optional(),
10911
+ /** Why the last fired run failed, verbatim. Absent when it succeeded. */
10912
+ lastError: string().optional(),
10887
10913
  /** ms-epoch of next computed firing (read-only, filled on list). */
10888
10914
  nextRunAt: number().optional()
10889
10915
  });
@@ -10932,14 +10958,7 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
10932
10958
  locationId: string(),
10933
10959
  enabled: boolean(),
10934
10960
  retentionCount: number().int().min(1).max(1e3),
10935
- label: string().optional(),
10936
- /**
10937
- * Per-destination cron expression. Empty string clears the
10938
- * schedule (manual-only). Validated server-side via croner;
10939
- * malformed expressions reject the upsert with an actionable
10940
- * message.
10941
- */
10942
- cron: string().optional()
10961
+ label: string().optional()
10943
10962
  }), _void(), {
10944
10963
  kind: "mutation",
10945
10964
  auth: "admin"
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../chunk-Cek0wNdY.js");
6
- const require_dist = require("../dist-Bvf65cPT.js");
6
+ const require_dist = require("../dist-Ud9rgSkS.js");
7
7
  //#region src/magic-link/auth-magic-link.addon.ts
8
8
  /**
9
9
  * Magic-link authentication addon.
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-6n47ydef.mjs";
1
+ import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-D9EnjAse.mjs";
2
2
  //#region src/magic-link/auth-magic-link.addon.ts
3
3
  /**
4
4
  * Magic-link authentication addon.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-Cek0wNdY.js");
6
- const require_dist = require("../dist-Bvf65cPT.js");
6
+ const require_dist = require("../dist-Ud9rgSkS.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  //#region node_modules/jose/dist/webapi/lib/buffer_utils.js
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-6n47ydef.mjs";
1
+ import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-D9EnjAse.mjs";
2
2
  import * as crypto$1 from "node:crypto";
3
3
  //#region node_modules/jose/dist/webapi/lib/buffer_utils.js
4
4
  var encoder = new TextEncoder();
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.80",
6
+ version: "1.2.81",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_auth_webauthn_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.160",
21
+ version: "1.2.161",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_auth_webauthn_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.128",
36
+ version: "1.2.129",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_auth_webauthn_widgets",
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-Cek0wNdY.js");
6
- const require_dist = require("../dist-Bvf65cPT.js");
6
+ const require_dist = require("../dist-Ud9rgSkS.js");
7
7
  let stream = require("stream");
8
8
  stream = require_chunk.__toESM(stream, 1);
9
9
  let http = require("http");
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, d as number, f as object, l as array, n as addonWidgetsSourceCapability, o as userPasskeysCapability, p as string, u as boolean } from "../dist-6n47ydef.mjs";
1
+ import { a as loginMethodCapability, c as BaseAddon, d as number, f as object, l as array, n as addonWidgetsSourceCapability, o as userPasskeysCapability, p as string, u as boolean } from "../dist-D9EnjAse.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import Stream from "stream";
4
4
  import http from "http";
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.160",
39
+ version: "1.2.161",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.80",
48
+ version: "1.2.81",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.128",
84
+ version: "1.2.129",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -30,7 +30,7 @@ async function d(e) {
30
30
  }
31
31
  }
32
32
  async function f() {
33
- return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-XrDA5ZgF.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-CIf4k9xj.mjs")).catch((e) => {
34
34
  throw l = void 0, e;
35
35
  }), l;
36
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-auth",
3
- "version": "1.2.84",
3
+ "version": "1.2.85",
4
4
  "description": "Authentication bundle — magic-link, OIDC, and WebAuthn/passkey. Multi-entry npm package shipping 3 addons under a single bundle; each addon keeps its own id, capabilities, and runner.",
5
5
  "keywords": [
6
6
  "camstack",