@camstack/addon-tailscale 1.2.17 → 1.2.18
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-CDYOSmZP.js → dist-DbpUYHfo.js} +81 -7
- package/dist/{dist-uBwggMrS.mjs → dist-jVhbn7qz.mjs} +81 -7
- 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-DbpUYHfo.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-jVhbn7qz.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";
|
|
@@ -10832,6 +10832,8 @@ var QueryFilterSchema = object({
|
|
|
10832
10832
|
where: record(string(), unknown()).optional(),
|
|
10833
10833
|
whereIn: record(string(), array(unknown())).optional(),
|
|
10834
10834
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
10835
|
+
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
10836
|
+
whereNot: record(string(), unknown()).optional(),
|
|
10835
10837
|
orderBy: object({
|
|
10836
10838
|
field: string(),
|
|
10837
10839
|
direction: _enum(["asc", "desc"])
|
|
@@ -10851,7 +10853,8 @@ var QueryFilterSchema = object({
|
|
|
10851
10853
|
var MutationFilterSchema = object({
|
|
10852
10854
|
where: record(string(), unknown()).optional(),
|
|
10853
10855
|
whereIn: record(string(), array(unknown())).optional(),
|
|
10854
|
-
whereBetween: record(string(), tuple([unknown(), unknown()])).optional()
|
|
10856
|
+
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
10857
|
+
whereNot: record(string(), unknown()).optional()
|
|
10855
10858
|
});
|
|
10856
10859
|
/** A single stored record: `{ id, data }`. */
|
|
10857
10860
|
var SettingsRecordSchema = object({
|
|
@@ -16744,7 +16747,10 @@ var RecentTracksQueryInput = object({
|
|
|
16744
16747
|
* Encodes the (lastSeen, trackId) sort position — treat as opaque. */
|
|
16745
16748
|
cursor: string().optional(),
|
|
16746
16749
|
/** See {@link TrackProjectionSchema}. Default `full`. */
|
|
16747
|
-
projection: TrackProjectionSchema.optional()
|
|
16750
|
+
projection: TrackProjectionSchema.optional(),
|
|
16751
|
+
/** Include stationary-promoted rows (parked objects). Default false: the
|
|
16752
|
+
* feed lists passages; parking records live on the stationary registry. */
|
|
16753
|
+
includeStationary: boolean().optional()
|
|
16748
16754
|
});
|
|
16749
16755
|
var RecentTracksPageSchema = object({
|
|
16750
16756
|
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
@@ -16962,7 +16968,11 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16962
16968
|
zone: TrackZoneFilterSchema.optional(),
|
|
16963
16969
|
/** See {@link TrackProjectionSchema}. Default `full` (backward
|
|
16964
16970
|
* compatible — omitting the field keeps today's exact behaviour). */
|
|
16965
|
-
projection: TrackProjectionSchema.optional()
|
|
16971
|
+
projection: TrackProjectionSchema.optional(),
|
|
16972
|
+
/** Include stationary-promoted rows (parked objects handed to the
|
|
16973
|
+
* stationary registry). Default false: the timeline lists passages,
|
|
16974
|
+
* not parking records (operator decision, 2026-08-15). */
|
|
16975
|
+
includeStationary: boolean().optional()
|
|
16966
16976
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
|
|
16967
16977
|
kind: "mutation",
|
|
16968
16978
|
auth: "admin"
|
|
@@ -17126,11 +17136,16 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
17126
17136
|
auth: "admin"
|
|
17127
17137
|
}), method(object({
|
|
17128
17138
|
eventId: string(),
|
|
17129
|
-
kind: MediaFileKindEnum.optional()
|
|
17139
|
+
kind: MediaFileKindEnum.optional(),
|
|
17140
|
+
deviceId: number()
|
|
17141
|
+
}), array(MediaFileSchema).readonly()), method(object({
|
|
17142
|
+
trackId: string(),
|
|
17143
|
+
kinds: array(MediaFileKindEnum).optional(),
|
|
17144
|
+
deviceId: number()
|
|
17130
17145
|
}), array(MediaFileSchema).readonly()), method(object({
|
|
17131
17146
|
trackId: string(),
|
|
17132
|
-
|
|
17133
|
-
}), array(
|
|
17147
|
+
deviceId: number()
|
|
17148
|
+
}), array(MediaFileInfoSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), method(object({}), WipeObjectEmbeddingsResultSchema, {
|
|
17134
17149
|
kind: "mutation",
|
|
17135
17150
|
auth: "admin"
|
|
17136
17151
|
}), method(RebuildObjectEmbeddingsInput, RebuildObjectEmbeddingsResultSchema, {
|
|
@@ -19109,7 +19124,16 @@ targets: array(object({
|
|
|
19109
19124
|
/** A sleeping battery camera: the frame is deliberately stale and will
|
|
19110
19125
|
* NOT refresh in the background. A surface should say so rather than
|
|
19111
19126
|
* present it as current. */
|
|
19112
|
-
sleeping: boolean()
|
|
19127
|
+
sleeping: boolean(),
|
|
19128
|
+
/** Current device state rendered over the cached frame. State images
|
|
19129
|
+
* remain authoritative even when their photographic background is
|
|
19130
|
+
* old; null means the link must carry a current camera frame. */
|
|
19131
|
+
stateReason: _enum([
|
|
19132
|
+
"disabled",
|
|
19133
|
+
"sleeping",
|
|
19134
|
+
"unreachable",
|
|
19135
|
+
"waking"
|
|
19136
|
+
]).nullable()
|
|
19113
19137
|
})));
|
|
19114
19138
|
/**
|
|
19115
19139
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -20631,6 +20655,25 @@ var BatteryStatusSchema = object({
|
|
|
20631
20655
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
20632
20656
|
lastUpdated: number(),
|
|
20633
20657
|
/**
|
|
20658
|
+
* Ms epoch of the last time the device PROVED it was reachable — a
|
|
20659
|
+
* completed firmware round-trip, an observed wake, or an inbound push
|
|
20660
|
+
* (firmware event, email). `0`/absent = never since this slice was born.
|
|
20661
|
+
*
|
|
20662
|
+
* This is the ONLY input that separates "asleep" from "gone", and it is
|
|
20663
|
+
* fed exclusively by PASSIVE signals: nothing may write it by reaching
|
|
20664
|
+
* for the radio, because a poll that confirms reachability is the same
|
|
20665
|
+
* poll that drains the battery. See {@link deriveBatteryPresence} — the
|
|
20666
|
+
* single derivation every consumer must use; no surface computes its own.
|
|
20667
|
+
*
|
|
20668
|
+
* It is deliberately NOT a clock in the
|
|
20669
|
+
* `scripts/check-runtime-state-durability.ts` sense: it is the
|
|
20670
|
+
* observation itself, and it is the only thing a 30-hour silence is
|
|
20671
|
+
* visible in. Writers quantise it (see `CONTACT_WRITE_QUANTUM_MS` in the
|
|
20672
|
+
* Reolink provider) so a value that means "recently" cannot cost a
|
|
20673
|
+
* SQLite commit per round-trip.
|
|
20674
|
+
*/
|
|
20675
|
+
lastContactAt: number().optional(),
|
|
20676
|
+
/**
|
|
20634
20677
|
* True when the source is a BINARY low-battery indicator (HA
|
|
20635
20678
|
* `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
|
|
20636
20679
|
* charge level — `percentage` is then a coarse stand-in (100 = normal,
|
|
@@ -24969,6 +25012,16 @@ var CamStreamDescriptorSchema = object({
|
|
|
24969
25012
|
/** Transport-specific opaque metadata (e.g. rfc4571 SDP). */
|
|
24970
25013
|
metadata: record(string(), unknown()).optional()
|
|
24971
25014
|
});
|
|
25015
|
+
object({
|
|
25016
|
+
/** The descriptors as last built from a real camera response. Never a guess:
|
|
25017
|
+
* a failed or refused build writes NOTHING, so a restored catalog is always
|
|
25018
|
+
* one the camera itself once produced. */
|
|
25019
|
+
descriptors: array(CamStreamDescriptorSchema),
|
|
25020
|
+
/** Ms epoch of the build that produced {@link descriptors}. Lets the wake
|
|
25021
|
+
* path decide whether the camera's own awake window is worth spending on a
|
|
25022
|
+
* re-read. */
|
|
25023
|
+
lastFetchedAt: number()
|
|
25024
|
+
});
|
|
24972
25025
|
DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), array(CamStreamDescriptorSchema).readonly());
|
|
24973
25026
|
/** One of the camera's stream profiles. */
|
|
24974
25027
|
var StreamProfileSchema = _enum([
|
|
@@ -32399,6 +32452,11 @@ Object.freeze({
|
|
|
32399
32452
|
form: "single",
|
|
32400
32453
|
optional: false
|
|
32401
32454
|
}],
|
|
32455
|
+
"pipelineAnalytics.getEventMedia": [{
|
|
32456
|
+
name: "deviceId",
|
|
32457
|
+
form: "single",
|
|
32458
|
+
optional: false
|
|
32459
|
+
}],
|
|
32402
32460
|
"pipelineAnalytics.getKeyEvents": [{
|
|
32403
32461
|
name: "deviceId",
|
|
32404
32462
|
form: "single",
|
|
@@ -32429,6 +32487,11 @@ Object.freeze({
|
|
|
32429
32487
|
form: "single",
|
|
32430
32488
|
optional: false
|
|
32431
32489
|
}],
|
|
32490
|
+
"pipelineAnalytics.getTrackMedia": [{
|
|
32491
|
+
name: "deviceId",
|
|
32492
|
+
form: "single",
|
|
32493
|
+
optional: false
|
|
32494
|
+
}],
|
|
32432
32495
|
"pipelineAnalytics.getTrainingExportSummary": [{
|
|
32433
32496
|
name: "deviceIds",
|
|
32434
32497
|
form: "array",
|
|
@@ -32464,6 +32527,11 @@ Object.freeze({
|
|
|
32464
32527
|
form: "array",
|
|
32465
32528
|
optional: true
|
|
32466
32529
|
}],
|
|
32530
|
+
"pipelineAnalytics.listTrackMedia": [{
|
|
32531
|
+
name: "deviceId",
|
|
32532
|
+
form: "single",
|
|
32533
|
+
optional: false
|
|
32534
|
+
}],
|
|
32467
32535
|
"pipelineAnalytics.listTracks": [{
|
|
32468
32536
|
name: "deviceId",
|
|
32469
32537
|
form: "single",
|
|
@@ -32904,6 +32972,12 @@ Object.freeze({
|
|
|
32904
32972
|
form: "single",
|
|
32905
32973
|
optional: false
|
|
32906
32974
|
}],
|
|
32975
|
+
"snapshot.getSnapshotLinks": [{
|
|
32976
|
+
name: "targets",
|
|
32977
|
+
form: "object-array",
|
|
32978
|
+
optional: false,
|
|
32979
|
+
itemField: "deviceId"
|
|
32980
|
+
}],
|
|
32907
32981
|
"snapshot.getSnapshotOverview": [{
|
|
32908
32982
|
name: "deviceIds",
|
|
32909
32983
|
form: "array",
|
|
@@ -10832,6 +10832,8 @@ var QueryFilterSchema = object({
|
|
|
10832
10832
|
where: record(string(), unknown()).optional(),
|
|
10833
10833
|
whereIn: record(string(), array(unknown())).optional(),
|
|
10834
10834
|
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
10835
|
+
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
10836
|
+
whereNot: record(string(), unknown()).optional(),
|
|
10835
10837
|
orderBy: object({
|
|
10836
10838
|
field: string(),
|
|
10837
10839
|
direction: _enum(["asc", "desc"])
|
|
@@ -10851,7 +10853,8 @@ var QueryFilterSchema = object({
|
|
|
10851
10853
|
var MutationFilterSchema = object({
|
|
10852
10854
|
where: record(string(), unknown()).optional(),
|
|
10853
10855
|
whereIn: record(string(), array(unknown())).optional(),
|
|
10854
|
-
whereBetween: record(string(), tuple([unknown(), unknown()])).optional()
|
|
10856
|
+
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
10857
|
+
whereNot: record(string(), unknown()).optional()
|
|
10855
10858
|
});
|
|
10856
10859
|
/** A single stored record: `{ id, data }`. */
|
|
10857
10860
|
var SettingsRecordSchema = object({
|
|
@@ -16744,7 +16747,10 @@ var RecentTracksQueryInput = object({
|
|
|
16744
16747
|
* Encodes the (lastSeen, trackId) sort position — treat as opaque. */
|
|
16745
16748
|
cursor: string().optional(),
|
|
16746
16749
|
/** See {@link TrackProjectionSchema}. Default `full`. */
|
|
16747
|
-
projection: TrackProjectionSchema.optional()
|
|
16750
|
+
projection: TrackProjectionSchema.optional(),
|
|
16751
|
+
/** Include stationary-promoted rows (parked objects). Default false: the
|
|
16752
|
+
* feed lists passages; parking records live on the stationary registry. */
|
|
16753
|
+
includeStationary: boolean().optional()
|
|
16748
16754
|
});
|
|
16749
16755
|
var RecentTracksPageSchema = object({
|
|
16750
16756
|
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
@@ -16962,7 +16968,11 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16962
16968
|
zone: TrackZoneFilterSchema.optional(),
|
|
16963
16969
|
/** See {@link TrackProjectionSchema}. Default `full` (backward
|
|
16964
16970
|
* compatible — omitting the field keeps today's exact behaviour). */
|
|
16965
|
-
projection: TrackProjectionSchema.optional()
|
|
16971
|
+
projection: TrackProjectionSchema.optional(),
|
|
16972
|
+
/** Include stationary-promoted rows (parked objects handed to the
|
|
16973
|
+
* stationary registry). Default false: the timeline lists passages,
|
|
16974
|
+
* not parking records (operator decision, 2026-08-15). */
|
|
16975
|
+
includeStationary: boolean().optional()
|
|
16966
16976
|
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
|
|
16967
16977
|
kind: "mutation",
|
|
16968
16978
|
auth: "admin"
|
|
@@ -17126,11 +17136,16 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
17126
17136
|
auth: "admin"
|
|
17127
17137
|
}), method(object({
|
|
17128
17138
|
eventId: string(),
|
|
17129
|
-
kind: MediaFileKindEnum.optional()
|
|
17139
|
+
kind: MediaFileKindEnum.optional(),
|
|
17140
|
+
deviceId: number()
|
|
17141
|
+
}), array(MediaFileSchema).readonly()), method(object({
|
|
17142
|
+
trackId: string(),
|
|
17143
|
+
kinds: array(MediaFileKindEnum).optional(),
|
|
17144
|
+
deviceId: number()
|
|
17130
17145
|
}), array(MediaFileSchema).readonly()), method(object({
|
|
17131
17146
|
trackId: string(),
|
|
17132
|
-
|
|
17133
|
-
}), array(
|
|
17147
|
+
deviceId: number()
|
|
17148
|
+
}), array(MediaFileInfoSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), method(object({}), WipeObjectEmbeddingsResultSchema, {
|
|
17134
17149
|
kind: "mutation",
|
|
17135
17150
|
auth: "admin"
|
|
17136
17151
|
}), method(RebuildObjectEmbeddingsInput, RebuildObjectEmbeddingsResultSchema, {
|
|
@@ -19109,7 +19124,16 @@ targets: array(object({
|
|
|
19109
19124
|
/** A sleeping battery camera: the frame is deliberately stale and will
|
|
19110
19125
|
* NOT refresh in the background. A surface should say so rather than
|
|
19111
19126
|
* present it as current. */
|
|
19112
|
-
sleeping: boolean()
|
|
19127
|
+
sleeping: boolean(),
|
|
19128
|
+
/** Current device state rendered over the cached frame. State images
|
|
19129
|
+
* remain authoritative even when their photographic background is
|
|
19130
|
+
* old; null means the link must carry a current camera frame. */
|
|
19131
|
+
stateReason: _enum([
|
|
19132
|
+
"disabled",
|
|
19133
|
+
"sleeping",
|
|
19134
|
+
"unreachable",
|
|
19135
|
+
"waking"
|
|
19136
|
+
]).nullable()
|
|
19113
19137
|
})));
|
|
19114
19138
|
/**
|
|
19115
19139
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -20631,6 +20655,25 @@ var BatteryStatusSchema = object({
|
|
|
20631
20655
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
20632
20656
|
lastUpdated: number(),
|
|
20633
20657
|
/**
|
|
20658
|
+
* Ms epoch of the last time the device PROVED it was reachable — a
|
|
20659
|
+
* completed firmware round-trip, an observed wake, or an inbound push
|
|
20660
|
+
* (firmware event, email). `0`/absent = never since this slice was born.
|
|
20661
|
+
*
|
|
20662
|
+
* This is the ONLY input that separates "asleep" from "gone", and it is
|
|
20663
|
+
* fed exclusively by PASSIVE signals: nothing may write it by reaching
|
|
20664
|
+
* for the radio, because a poll that confirms reachability is the same
|
|
20665
|
+
* poll that drains the battery. See {@link deriveBatteryPresence} — the
|
|
20666
|
+
* single derivation every consumer must use; no surface computes its own.
|
|
20667
|
+
*
|
|
20668
|
+
* It is deliberately NOT a clock in the
|
|
20669
|
+
* `scripts/check-runtime-state-durability.ts` sense: it is the
|
|
20670
|
+
* observation itself, and it is the only thing a 30-hour silence is
|
|
20671
|
+
* visible in. Writers quantise it (see `CONTACT_WRITE_QUANTUM_MS` in the
|
|
20672
|
+
* Reolink provider) so a value that means "recently" cannot cost a
|
|
20673
|
+
* SQLite commit per round-trip.
|
|
20674
|
+
*/
|
|
20675
|
+
lastContactAt: number().optional(),
|
|
20676
|
+
/**
|
|
20634
20677
|
* True when the source is a BINARY low-battery indicator (HA
|
|
20635
20678
|
* `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
|
|
20636
20679
|
* charge level — `percentage` is then a coarse stand-in (100 = normal,
|
|
@@ -24969,6 +25012,16 @@ var CamStreamDescriptorSchema = object({
|
|
|
24969
25012
|
/** Transport-specific opaque metadata (e.g. rfc4571 SDP). */
|
|
24970
25013
|
metadata: record(string(), unknown()).optional()
|
|
24971
25014
|
});
|
|
25015
|
+
object({
|
|
25016
|
+
/** The descriptors as last built from a real camera response. Never a guess:
|
|
25017
|
+
* a failed or refused build writes NOTHING, so a restored catalog is always
|
|
25018
|
+
* one the camera itself once produced. */
|
|
25019
|
+
descriptors: array(CamStreamDescriptorSchema),
|
|
25020
|
+
/** Ms epoch of the build that produced {@link descriptors}. Lets the wake
|
|
25021
|
+
* path decide whether the camera's own awake window is worth spending on a
|
|
25022
|
+
* re-read. */
|
|
25023
|
+
lastFetchedAt: number()
|
|
25024
|
+
});
|
|
24972
25025
|
DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), array(CamStreamDescriptorSchema).readonly());
|
|
24973
25026
|
/** One of the camera's stream profiles. */
|
|
24974
25027
|
var StreamProfileSchema = _enum([
|
|
@@ -32399,6 +32452,11 @@ Object.freeze({
|
|
|
32399
32452
|
form: "single",
|
|
32400
32453
|
optional: false
|
|
32401
32454
|
}],
|
|
32455
|
+
"pipelineAnalytics.getEventMedia": [{
|
|
32456
|
+
name: "deviceId",
|
|
32457
|
+
form: "single",
|
|
32458
|
+
optional: false
|
|
32459
|
+
}],
|
|
32402
32460
|
"pipelineAnalytics.getKeyEvents": [{
|
|
32403
32461
|
name: "deviceId",
|
|
32404
32462
|
form: "single",
|
|
@@ -32429,6 +32487,11 @@ Object.freeze({
|
|
|
32429
32487
|
form: "single",
|
|
32430
32488
|
optional: false
|
|
32431
32489
|
}],
|
|
32490
|
+
"pipelineAnalytics.getTrackMedia": [{
|
|
32491
|
+
name: "deviceId",
|
|
32492
|
+
form: "single",
|
|
32493
|
+
optional: false
|
|
32494
|
+
}],
|
|
32432
32495
|
"pipelineAnalytics.getTrainingExportSummary": [{
|
|
32433
32496
|
name: "deviceIds",
|
|
32434
32497
|
form: "array",
|
|
@@ -32464,6 +32527,11 @@ Object.freeze({
|
|
|
32464
32527
|
form: "array",
|
|
32465
32528
|
optional: true
|
|
32466
32529
|
}],
|
|
32530
|
+
"pipelineAnalytics.listTrackMedia": [{
|
|
32531
|
+
name: "deviceId",
|
|
32532
|
+
form: "single",
|
|
32533
|
+
optional: false
|
|
32534
|
+
}],
|
|
32467
32535
|
"pipelineAnalytics.listTracks": [{
|
|
32468
32536
|
name: "deviceId",
|
|
32469
32537
|
form: "single",
|
|
@@ -32904,6 +32972,12 @@ Object.freeze({
|
|
|
32904
32972
|
form: "single",
|
|
32905
32973
|
optional: false
|
|
32906
32974
|
}],
|
|
32975
|
+
"snapshot.getSnapshotLinks": [{
|
|
32976
|
+
name: "targets",
|
|
32977
|
+
form: "object-array",
|
|
32978
|
+
optional: false,
|
|
32979
|
+
itemField: "deviceId"
|
|
32980
|
+
}],
|
|
32907
32981
|
"snapshot.getSnapshotOverview": [{
|
|
32908
32982
|
name: "deviceIds",
|
|
32909
32983
|
form: "array",
|
|
@@ -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-DbpUYHfo.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-jVhbn7qz.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.18",
|
|
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",
|