@camstack/addon-tailscale 1.2.63 → 1.2.65
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.
- package/dist/client/tailscale.addon.js +1 -1
- package/dist/client/tailscale.addon.mjs +1 -1
- package/dist/{dist-BlLzjzzR.mjs → dist-BN95UccC.mjs} +48 -1
- package/dist/{dist-CM8irv4g.js → dist-DzYEFQ3h.js} +48 -1
- package/dist/ingress/tailscale-ingress.addon.js +1 -1
- package/dist/ingress/tailscale-ingress.addon.mjs +1 -1
- package/package.json +1 -1
|
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
enumerable: true
|
|
25
25
|
}) : target, mod));
|
|
26
26
|
//#endregion
|
|
27
|
-
const require_dist = require("../dist-
|
|
27
|
+
const require_dist = require("../dist-DzYEFQ3h.js");
|
|
28
28
|
let node_child_process = require("node:child_process");
|
|
29
29
|
let node_util = require("node:util");
|
|
30
30
|
let node_fs = require("node:fs");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-
|
|
1
|
+
import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-BN95UccC.mjs";
|
|
2
2
|
import { execFile, spawn } from "node:child_process";
|
|
3
3
|
import { promisify } from "node:util";
|
|
4
4
|
import * as fs from "node:fs";
|
|
@@ -12654,6 +12654,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
|
|
|
12654
12654
|
kind: "mutation",
|
|
12655
12655
|
auth: "admin"
|
|
12656
12656
|
});
|
|
12657
|
+
/**
|
|
12658
|
+
* Device Manager capability — hub-side singleton that unifies device persistence,
|
|
12659
|
+
* live registry access, and all management operations into a single tRPC surface.
|
|
12660
|
+
*
|
|
12661
|
+
* Replaces:
|
|
12662
|
+
* - `device-persistence` capability (persistence methods absorbed here)
|
|
12663
|
+
* - `device-management.router.ts` (deleted in Phase 2)
|
|
12664
|
+
* - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
|
|
12665
|
+
*
|
|
12666
|
+
* All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
|
|
12667
|
+
* fork into separate processes but never run on remote cluster agents. Therefore:
|
|
12668
|
+
* - No nodeId routing needed — this is a pure hub singleton.
|
|
12669
|
+
* - The hub's DeviceRegistry is the single source of truth for all live devices.
|
|
12670
|
+
* - No shadow registry or cross-node aggregation required.
|
|
12671
|
+
*
|
|
12672
|
+
* Forked workers register devices back to the hub via `ctx.devices`
|
|
12673
|
+
* (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
|
|
12674
|
+
*/
|
|
12657
12675
|
/** One child-placement directive on a container's `childLayout`. Structurally
|
|
12658
12676
|
* identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
|
|
12659
12677
|
* shape for the same field. The child is identified by its re-sync-stable
|
|
@@ -12752,7 +12770,12 @@ var ConfigEntrySchema = object({
|
|
|
12752
12770
|
value: unknown(),
|
|
12753
12771
|
description: string().optional()
|
|
12754
12772
|
});
|
|
12755
|
-
|
|
12773
|
+
/**
|
|
12774
|
+
* Only `manual` since D356: the operator picks, nothing links itself. The
|
|
12775
|
+
* field survives on the wire because a viewer already OTA'd parses it —
|
|
12776
|
+
* drop it once no shipped client reads `mode`.
|
|
12777
|
+
*/
|
|
12778
|
+
var LinkedDevicesModeSchema = _enum(["manual"]);
|
|
12756
12779
|
/** One resolved linked device — the compact projection consumers need. */
|
|
12757
12780
|
var LinkedDeviceSchema = object({
|
|
12758
12781
|
deviceId: number(),
|
|
@@ -18319,6 +18342,9 @@ var RetrainStatusSchema = _enum([
|
|
|
18319
18342
|
*
|
|
18320
18343
|
* `debug` does NOT pin; it is attention, not durability.
|
|
18321
18344
|
*
|
|
18345
|
+
* `debugNote` is the operator's own words about WHAT should be checked on this
|
|
18346
|
+
* track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
|
|
18347
|
+
*
|
|
18322
18348
|
* `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
|
|
18323
18349
|
* A favourited track is skipped by retention the same way `staging` is, but
|
|
18324
18350
|
* it does not enter `none|staging|trained` and has no staging budget.
|
|
@@ -18329,6 +18355,21 @@ var TrackFlagFields = {
|
|
|
18329
18355
|
markForTrain: boolean().optional(),
|
|
18330
18356
|
/** Operator marked this track for diagnostic attention. */
|
|
18331
18357
|
debug: boolean().optional(),
|
|
18358
|
+
/**
|
|
18359
|
+
* What the operator wants CHECKED on this track, in their own words.
|
|
18360
|
+
*
|
|
18361
|
+
* The flag alone says "look at this" and nothing about what for; a debug set
|
|
18362
|
+
* reviewed hours later is a list of tracks with no question attached. Bound
|
|
18363
|
+
* to `debug` on the WRITE side — the body clears it when `debug` goes off,
|
|
18364
|
+
* and refuses it on a track whose debug is off — so a note can never outlive
|
|
18365
|
+
* the attention it belongs to.
|
|
18366
|
+
*
|
|
18367
|
+
* `''` is a real value ("marked, nothing to add"); the ABSENT key means
|
|
18368
|
+
* "leave whatever is stored alone", which is what lets a surface turn debug
|
|
18369
|
+
* on without a note (a cancelled prompt) and what lets it edit the note
|
|
18370
|
+
* without touching the flag.
|
|
18371
|
+
*/
|
|
18372
|
+
debugNote: string().max(500).optional(),
|
|
18332
18373
|
/** Operator favourited this track. Pins it against pruning. */
|
|
18333
18374
|
favourited: boolean().optional()
|
|
18334
18375
|
};
|
|
@@ -18355,6 +18396,12 @@ var TrackFlagsSchema = object({
|
|
|
18355
18396
|
trackId: string(),
|
|
18356
18397
|
markForTrain: boolean(),
|
|
18357
18398
|
debug: boolean(),
|
|
18399
|
+
/** The note as it STANDS after the write — never absent here (a track with no
|
|
18400
|
+
* note reports `''`), for the same reason the booleans are required: a
|
|
18401
|
+
* surface that has just written must be able to render the note it now owns
|
|
18402
|
+
* without a re-fetch, and an absent key would read as "unchanged" on a
|
|
18403
|
+
* screen that has no previous value to keep. */
|
|
18404
|
+
debugNote: string(),
|
|
18358
18405
|
favourited: boolean(),
|
|
18359
18406
|
/** The lifecycle state the boolean was derived from. Required here (unlike on
|
|
18360
18407
|
* a track row) because this shape is only ever produced by the write body,
|
|
@@ -12654,6 +12654,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
|
|
|
12654
12654
|
kind: "mutation",
|
|
12655
12655
|
auth: "admin"
|
|
12656
12656
|
});
|
|
12657
|
+
/**
|
|
12658
|
+
* Device Manager capability — hub-side singleton that unifies device persistence,
|
|
12659
|
+
* live registry access, and all management operations into a single tRPC surface.
|
|
12660
|
+
*
|
|
12661
|
+
* Replaces:
|
|
12662
|
+
* - `device-persistence` capability (persistence methods absorbed here)
|
|
12663
|
+
* - `device-management.router.ts` (deleted in Phase 2)
|
|
12664
|
+
* - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
|
|
12665
|
+
*
|
|
12666
|
+
* All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
|
|
12667
|
+
* fork into separate processes but never run on remote cluster agents. Therefore:
|
|
12668
|
+
* - No nodeId routing needed — this is a pure hub singleton.
|
|
12669
|
+
* - The hub's DeviceRegistry is the single source of truth for all live devices.
|
|
12670
|
+
* - No shadow registry or cross-node aggregation required.
|
|
12671
|
+
*
|
|
12672
|
+
* Forked workers register devices back to the hub via `ctx.devices`
|
|
12673
|
+
* (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
|
|
12674
|
+
*/
|
|
12657
12675
|
/** One child-placement directive on a container's `childLayout`. Structurally
|
|
12658
12676
|
* identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
|
|
12659
12677
|
* shape for the same field. The child is identified by its re-sync-stable
|
|
@@ -12752,7 +12770,12 @@ var ConfigEntrySchema = object({
|
|
|
12752
12770
|
value: unknown(),
|
|
12753
12771
|
description: string().optional()
|
|
12754
12772
|
});
|
|
12755
|
-
|
|
12773
|
+
/**
|
|
12774
|
+
* Only `manual` since D356: the operator picks, nothing links itself. The
|
|
12775
|
+
* field survives on the wire because a viewer already OTA'd parses it —
|
|
12776
|
+
* drop it once no shipped client reads `mode`.
|
|
12777
|
+
*/
|
|
12778
|
+
var LinkedDevicesModeSchema = _enum(["manual"]);
|
|
12756
12779
|
/** One resolved linked device — the compact projection consumers need. */
|
|
12757
12780
|
var LinkedDeviceSchema = object({
|
|
12758
12781
|
deviceId: number(),
|
|
@@ -18319,6 +18342,9 @@ var RetrainStatusSchema = _enum([
|
|
|
18319
18342
|
*
|
|
18320
18343
|
* `debug` does NOT pin; it is attention, not durability.
|
|
18321
18344
|
*
|
|
18345
|
+
* `debugNote` is the operator's own words about WHAT should be checked on this
|
|
18346
|
+
* track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
|
|
18347
|
+
*
|
|
18322
18348
|
* `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
|
|
18323
18349
|
* A favourited track is skipped by retention the same way `staging` is, but
|
|
18324
18350
|
* it does not enter `none|staging|trained` and has no staging budget.
|
|
@@ -18329,6 +18355,21 @@ var TrackFlagFields = {
|
|
|
18329
18355
|
markForTrain: boolean().optional(),
|
|
18330
18356
|
/** Operator marked this track for diagnostic attention. */
|
|
18331
18357
|
debug: boolean().optional(),
|
|
18358
|
+
/**
|
|
18359
|
+
* What the operator wants CHECKED on this track, in their own words.
|
|
18360
|
+
*
|
|
18361
|
+
* The flag alone says "look at this" and nothing about what for; a debug set
|
|
18362
|
+
* reviewed hours later is a list of tracks with no question attached. Bound
|
|
18363
|
+
* to `debug` on the WRITE side — the body clears it when `debug` goes off,
|
|
18364
|
+
* and refuses it on a track whose debug is off — so a note can never outlive
|
|
18365
|
+
* the attention it belongs to.
|
|
18366
|
+
*
|
|
18367
|
+
* `''` is a real value ("marked, nothing to add"); the ABSENT key means
|
|
18368
|
+
* "leave whatever is stored alone", which is what lets a surface turn debug
|
|
18369
|
+
* on without a note (a cancelled prompt) and what lets it edit the note
|
|
18370
|
+
* without touching the flag.
|
|
18371
|
+
*/
|
|
18372
|
+
debugNote: string().max(500).optional(),
|
|
18332
18373
|
/** Operator favourited this track. Pins it against pruning. */
|
|
18333
18374
|
favourited: boolean().optional()
|
|
18334
18375
|
};
|
|
@@ -18355,6 +18396,12 @@ var TrackFlagsSchema = object({
|
|
|
18355
18396
|
trackId: string(),
|
|
18356
18397
|
markForTrain: boolean(),
|
|
18357
18398
|
debug: boolean(),
|
|
18399
|
+
/** The note as it STANDS after the write — never absent here (a track with no
|
|
18400
|
+
* note reports `''`), for the same reason the booleans are required: a
|
|
18401
|
+
* surface that has just written must be able to render the note it now owns
|
|
18402
|
+
* without a re-fetch, and an absent key would read as "unchanged" on a
|
|
18403
|
+
* screen that has no previous value to keep. */
|
|
18404
|
+
debugNote: string(),
|
|
18358
18405
|
favourited: boolean(),
|
|
18359
18406
|
/** The lifecycle state the boolean was derived from. Required here (unlike on
|
|
18360
18407
|
* a track row) because this shape is only ever produced by the write body,
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-DzYEFQ3h.js");
|
|
6
6
|
let node_crypto = require("node:crypto");
|
|
7
7
|
let node_child_process = require("node:child_process");
|
|
8
8
|
//#region src/ingress/tailscale-cli.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-
|
|
1
|
+
import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-BN95UccC.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { execFile } from "node:child_process";
|
|
4
4
|
import { promisify } from "node:util";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-tailscale",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.65",
|
|
4
4
|
"description": "Tailscale bundle for CamStack — joins the host to a tailnet (client) and exposes the hub via Serve/Funnel (ingress). Multi-entry npm package shipping 2 addons under a single bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|