mirror of
https://github.com/dfpc-coe/CloudTAK.git
synced 2025-12-22 13:47:22 +00:00
@@ -443,6 +443,7 @@ export default class VideoServiceControl {
|
||||
recording: boolean;
|
||||
publish: boolean;
|
||||
secure: boolean;
|
||||
share: boolean;
|
||||
channel?: string | null;
|
||||
proxy?: string | null;
|
||||
}): Promise<Static<typeof VideoLeaseResponse>> {
|
||||
@@ -453,6 +454,10 @@ export default class VideoServiceControl {
|
||||
|
||||
if (opts.username && opts.connection) {
|
||||
throw new Err(400, null, 'Either username or connection must be set but not both');
|
||||
} else if (opts.share && !opts.channel) {
|
||||
throw new Err(400, null, 'Channel must be set when share is true');
|
||||
} else if (opts.publish && !opts.channel) {
|
||||
throw new Err(400, null, 'Channel must be set when publish is true');
|
||||
}
|
||||
|
||||
const lease = await this.config.models.VideoLease.generate({
|
||||
@@ -468,6 +473,7 @@ export default class VideoServiceControl {
|
||||
username: opts.username,
|
||||
connection: opts.connection,
|
||||
layer: opts.layer,
|
||||
share: opts.share,
|
||||
channel: opts.channel,
|
||||
proxy: opts.proxy
|
||||
});
|
||||
@@ -479,6 +485,37 @@ export default class VideoServiceControl {
|
||||
|
||||
headers.append('Content-Type', 'application/json');
|
||||
|
||||
if (lease.publish) {
|
||||
const auth = this.config.serverCert();
|
||||
const api = await TAKAPI.init(
|
||||
new URL(String(this.config.server.api)),
|
||||
new APIAuthCertificate(auth.cert, auth.key)
|
||||
);
|
||||
|
||||
try {
|
||||
const protocols = await this.protocols(lease, ProtocolPopulation.READ)
|
||||
|
||||
if (protocols.hls) {
|
||||
await api.Video.create({
|
||||
uuid: lease.path,
|
||||
active: true,
|
||||
alias: lease.name,
|
||||
groups: [ lease.channel! ],
|
||||
feeds: [{
|
||||
uuid: lease.path,
|
||||
active: true,
|
||||
alias: lease.name,
|
||||
url: protocols.hls.url,
|
||||
}]
|
||||
})
|
||||
} else {
|
||||
throw new Err(400, null, 'Only HLS shared video streams are supported at this time');
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
|
||||
if (lease.proxy) {
|
||||
try {
|
||||
const proxy = new URL(lease.proxy);
|
||||
@@ -574,7 +611,7 @@ export default class VideoServiceControl {
|
||||
const groups = (await api.Group.list({ useCache: true }))
|
||||
.data.map((group) => group.name);
|
||||
|
||||
if (lease.username !== opts.username && (!lease.channel || !groups.includes(lease.channel))) {
|
||||
if (lease.username !== opts.username && (!lease.share || !lease.channel || !groups.includes(lease.channel))) {
|
||||
throw new Err(400, null, 'You can only access a lease you created or that is assigned to a channel you are in');
|
||||
}
|
||||
|
||||
@@ -590,6 +627,7 @@ export default class VideoServiceControl {
|
||||
body: {
|
||||
name?: string,
|
||||
channel?: string | null,
|
||||
share?: boolean,
|
||||
secure?: boolean,
|
||||
secure_rotate?: boolean
|
||||
expiration?: string | null,
|
||||
@@ -615,6 +653,18 @@ export default class VideoServiceControl {
|
||||
throw new Err(400, null, 'Lease must be edited in the context of a Connection');
|
||||
} else if (lease.username && !opts.username) {
|
||||
throw new Err(400, null, 'Lease must be edited in the context of the CloudTAK Map');
|
||||
} else if (
|
||||
(body.share && body.channel === undefined && !lease.channel)
|
||||
|| (body.share && body.channel === null)
|
||||
|| (lease.share && body.channel === null)
|
||||
) {
|
||||
throw new Err(400, null, 'Channel must be set when share is true');
|
||||
} else if (
|
||||
(body.publish && body.channel === undefined && !lease.channel)
|
||||
|| (body.publish && body.channel === null)
|
||||
|| (lease.publish && body.channel === null)
|
||||
) {
|
||||
throw new Err(400, null, 'Channel must be set when publish is true');
|
||||
}
|
||||
|
||||
if (body.secure !== undefined) {
|
||||
@@ -624,6 +674,46 @@ export default class VideoServiceControl {
|
||||
|
||||
lease = await this.config.models.VideoLease.commit(leaseid, body);
|
||||
|
||||
try {
|
||||
const auth = this.config.serverCert();
|
||||
const api = await TAKAPI.init(
|
||||
new URL(String(this.config.server.api)),
|
||||
new APIAuthCertificate(auth.cert, auth.key)
|
||||
);
|
||||
|
||||
try {
|
||||
await api.Video.delete(lease.path);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
// We can't change channels so just delete and recreate
|
||||
try {
|
||||
const protocols = await this.protocols(lease, ProtocolPopulation.READ)
|
||||
|
||||
if (protocols.hls) {
|
||||
await api.Video.create({
|
||||
uuid: lease.path,
|
||||
active: true,
|
||||
alias: lease.name,
|
||||
groups: [ lease.channel! ],
|
||||
feeds: [{
|
||||
uuid: lease.path,
|
||||
active: true,
|
||||
alias: lease.name,
|
||||
url: protocols.hls.url,
|
||||
}]
|
||||
})
|
||||
} else {
|
||||
throw new Err(400, null, 'Only HLS shared video streams are supported at this time');
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
try {
|
||||
await this.path(lease.path);
|
||||
|
||||
@@ -754,6 +844,18 @@ export default class VideoServiceControl {
|
||||
headers,
|
||||
})
|
||||
|
||||
try {
|
||||
const auth = this.config.serverCert();
|
||||
const api = await TAKAPI.init(
|
||||
new URL(String(this.config.server.api)),
|
||||
new APIAuthCertificate(auth.cert, auth.key)
|
||||
);
|
||||
|
||||
await api.Video.delete(lease.path);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,6 +128,7 @@ export const VideoLease = pgTable('video_lease', {
|
||||
// Publish to the TAK Server Video Config API
|
||||
publish: boolean().notNull().default(false),
|
||||
recording: boolean().notNull().default(false),
|
||||
share: boolean().notNull().default(false),
|
||||
|
||||
ephemeral: boolean().notNull().default(false),
|
||||
channel: text().default(sql`null`),
|
||||
|
||||
3
api/migrations/0139_square_lionheart.sql
Normal file
3
api/migrations/0139_square_lionheart.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE "video_lease" ADD COLUMN "share" boolean DEFAULT false NOT NULL;
|
||||
|
||||
UPDATE "video_lease" SET "share" = true WHERE "channel" IS NOT NULL;
|
||||
2784
api/migrations/meta/0139_snapshot.json
Normal file
2784
api/migrations/meta/0139_snapshot.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -974,6 +974,13 @@
|
||||
"when": 1765830173974,
|
||||
"tag": "0138_pink_lockjaw",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 139,
|
||||
"version": "7",
|
||||
"when": 1765841295112,
|
||||
"tag": "0139_square_lionheart",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
1330
api/package-lock.json
generated
1330
api/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -103,7 +103,7 @@
|
||||
"@types/memjs": "^1.3.0",
|
||||
"@types/minimist": "^1.2.2",
|
||||
"@types/morgan": "^1.9.9",
|
||||
"@types/node": "^24.0.0",
|
||||
"@types/node": "^25.0.0",
|
||||
"@types/pem": "^1.9.6",
|
||||
"@types/pg": "^8.6.6",
|
||||
"@types/qr-image": "^3.2.9",
|
||||
@@ -125,4 +125,4 @@
|
||||
"typescript": "^5.0.0",
|
||||
"typescript-eslint": "^8.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,6 +174,10 @@ export default async function router(schema: Schema, config: Config) {
|
||||
default: false,
|
||||
description: 'Publish stream URL to TAK Server Video Manager'
|
||||
}),
|
||||
share: Type.Boolean({
|
||||
default: false,
|
||||
description: 'Allow other users to manage lease if they are also members of the channel'
|
||||
}),
|
||||
secure: Type.Boolean({
|
||||
default: false,
|
||||
description: 'Increase stream security by enforcing a seperate read and write username/password'
|
||||
@@ -216,6 +220,7 @@ export default async function router(schema: Schema, config: Config) {
|
||||
source_type: req.body.source_type,
|
||||
source_model: req.body.source_model,
|
||||
recording: req.body.recording,
|
||||
share: req.body.share,
|
||||
publish: req.body.publish,
|
||||
path: randomUUID(),
|
||||
secure: req.body.secure,
|
||||
@@ -252,6 +257,9 @@ export default async function router(schema: Schema, config: Config) {
|
||||
source_model: Type.Optional(Type.String()),
|
||||
channel: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
||||
secure: Type.Optional(Type.Boolean()),
|
||||
share: Type.Optional(Type.Boolean({
|
||||
description: 'Allow other users to manage lease if they are also members of the channel'
|
||||
})),
|
||||
secure_rotate: Type.Boolean({
|
||||
default: false,
|
||||
description: 'Rotate Read-User Credentials if using seperate read/write user - infers secure: true'
|
||||
@@ -312,6 +320,7 @@ export default async function router(schema: Schema, config: Config) {
|
||||
secure_rotate: req.body.secure_rotate,
|
||||
expiration,
|
||||
recording: req.body.recording,
|
||||
share: req.body.share,
|
||||
publish: req.body.publish,
|
||||
source_id: req.body.source_id,
|
||||
source_type: req.body.source_type,
|
||||
|
||||
@@ -398,6 +398,10 @@ export default async function router(schema: Schema, config: Config) {
|
||||
default: false,
|
||||
description: 'Publish stream URL to TAK Server Video Manager'
|
||||
}),
|
||||
share: Type.Boolean({
|
||||
default: false,
|
||||
description: 'Allow other users to manage lease if they are also members of the channel'
|
||||
}),
|
||||
secure: Type.Boolean({
|
||||
default: false,
|
||||
description: 'Increase stream security by enforcing a seperate read and write username/password'
|
||||
@@ -423,6 +427,7 @@ export default async function router(schema: Schema, config: Config) {
|
||||
name: req.body.name,
|
||||
ephemeral: req.body.ephemeral,
|
||||
channel: req.body.channel,
|
||||
share: req.body.share,
|
||||
expiration: req.body.permanent ? null : moment().add(req.body.duration, 'seconds').toISOString(),
|
||||
source_id: req.body.source_id,
|
||||
source_type: req.body.source_type,
|
||||
@@ -460,16 +465,18 @@ export default async function router(schema: Schema, config: Config) {
|
||||
source_model: Type.Optional(Type.String()),
|
||||
channel: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
||||
secure: Type.Optional(Type.Boolean()),
|
||||
recording: Type.Boolean({
|
||||
recording: Type.Optional(Type.Boolean({
|
||||
description: 'Record streams to disk'
|
||||
}),
|
||||
publish: Type.Boolean({
|
||||
})),
|
||||
publish: Type.Optional(Type.Boolean({
|
||||
description: 'Publish stream URL to TAK Server Video Manager'
|
||||
}),
|
||||
permanent: Type.Boolean({
|
||||
default: false,
|
||||
})),
|
||||
share: Type.Optional(Type.Boolean({
|
||||
description: 'Allow other users to manage lease if they are also members of the channel'
|
||||
})),
|
||||
permanent: Type.Optional(Type.Boolean({
|
||||
description: 'System Admins can create non-expiring leases'
|
||||
}),
|
||||
})),
|
||||
proxy: Type.Optional(Type.String())
|
||||
}),
|
||||
res: VideoLeaseResponse
|
||||
@@ -486,6 +493,7 @@ export default async function router(schema: Schema, config: Config) {
|
||||
const lease = await videoControl.commit(req.params.lease, {
|
||||
name: req.body.name,
|
||||
channel: req.body.channel ? req.body.channel : null,
|
||||
share: req.body.share,
|
||||
secure: req.body.secure,
|
||||
recording: req.body.recording,
|
||||
publish: req.body.publish,
|
||||
|
||||
448
api/web/package-lock.json
generated
448
api/web/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@tak-ps/CloudTAK.web",
|
||||
"version": "12.27.2",
|
||||
"version": "12.29.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@tak-ps/CloudTAK.web",
|
||||
"version": "12.27.2",
|
||||
"version": "12.29.0",
|
||||
"dependencies": {
|
||||
"@react-hookz/deep-equal": "^3.0.3",
|
||||
"@tabler/core": "^1.4.0",
|
||||
@@ -78,7 +78,7 @@
|
||||
"vue-tsc": "^3.0.0-alpha.10"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 22"
|
||||
"node": ">= 24"
|
||||
}
|
||||
},
|
||||
"node_modules/@acemir/cssom": {
|
||||
@@ -89,9 +89,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@asamuzakjp/css-color": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.0.tgz",
|
||||
"integrity": "sha512-9xiBAtLn4aNsa4mDnpovJvBn72tNEIACyvlqaNJ+ADemR+yeMJWnBudOi2qGDviJa7SwcDOU/TRh5dnET7qk0w==",
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.1.tgz",
|
||||
"integrity": "sha512-B0Hv6G3gWGMn0xKJ0txEi/jM5iFpT3MfDxmhZFb4W047GvytCf1DHQ1D69W3zHI4yWe2aTZAA0JnbMZ7Xc8DuQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -99,7 +99,7 @@
|
||||
"@csstools/css-color-parser": "^3.1.0",
|
||||
"@csstools/css-parser-algorithms": "^3.0.5",
|
||||
"@csstools/css-tokenizer": "^3.0.4",
|
||||
"lru-cache": "^11.2.2"
|
||||
"lru-cache": "^11.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@asamuzakjp/dom-selector": {
|
||||
@@ -1669,9 +1669,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz",
|
||||
"integrity": "sha512-PWU3Y92H4DD0bOqorEPp1Y0tbzwAurFmIYpjcObv5axGVOtcTlB0b2UKMd2echo08MgN7jO8WQZSSysvfisFSQ==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz",
|
||||
"integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -1683,9 +1683,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm64": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.4.tgz",
|
||||
"integrity": "sha512-Gw0/DuVm3rGsqhMGYkSOXXIx20cC3kTlivZeuaGt4gEgILivykNyBWxeUV5Cf2tDA2nPLah26vq3emlRrWVbng==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz",
|
||||
"integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1697,9 +1697,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.4.tgz",
|
||||
"integrity": "sha512-+w06QvXsgzKwdVg5qRLZpTHh1bigHZIqoIUPtiqh05ZiJVUQ6ymOxaPkXTvRPRLH88575ZCRSRM3PwIoNma01Q==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz",
|
||||
"integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1711,9 +1711,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-x64": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.4.tgz",
|
||||
"integrity": "sha512-EB4Na9G2GsrRNRNFPuxfwvDRDUwQEzJPpiK1vo2zMVhEeufZ1k7J1bKnT0JYDfnPC7RNZ2H5YNQhW6/p2QKATw==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz",
|
||||
"integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1725,9 +1725,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-arm64": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.4.tgz",
|
||||
"integrity": "sha512-bldA8XEqPcs6OYdknoTMaGhjytnwQ0NClSPpWpmufOuGPN5dDmvIa32FygC2gneKK4A1oSx86V1l55hyUWUYFQ==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz",
|
||||
"integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1739,9 +1739,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-x64": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.4.tgz",
|
||||
"integrity": "sha512-3T8GPjH6mixCd0YPn0bXtcuSXi1Lj+15Ujw2CEb7dd24j9thcKscCf88IV7n76WaAdorOzAgSSbuVRg4C8V8Qw==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz",
|
||||
"integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1753,9 +1753,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.4.tgz",
|
||||
"integrity": "sha512-UPMMNeC4LXW7ZSHxeP3Edv09aLsFUMaD1TSVW6n1CWMECnUIJMFFB7+XC2lZTdPtvB36tYC0cJWc86mzSsaviw==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz",
|
||||
"integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -1767,9 +1767,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.4.tgz",
|
||||
"integrity": "sha512-H8uwlV0otHs5Q7WAMSoyvjV9DJPiy5nJ/xnHolY0QptLPjaSsuX7tw+SPIfiYH6cnVx3fe4EWFafo6gH6ekZKA==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz",
|
||||
"integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -1781,9 +1781,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.4.tgz",
|
||||
"integrity": "sha512-BLRwSRwICXz0TXkbIbqJ1ibK+/dSBpTJqDClF61GWIrxTXZWQE78ROeIhgl5MjVs4B4gSLPCFeD4xML9vbzvCQ==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz",
|
||||
"integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1795,9 +1795,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.4.tgz",
|
||||
"integrity": "sha512-6bySEjOTbmVcPJAywjpGLckK793A0TJWSbIa0sVwtVGfe/Nz6gOWHOwkshUIAp9j7wg2WKcA4Snu7Y1nUZyQew==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz",
|
||||
"integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1809,9 +1809,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-loong64-gnu": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.4.tgz",
|
||||
"integrity": "sha512-U0ow3bXYJZ5MIbchVusxEycBw7bO6C2u5UvD31i5IMTrnt2p4Fh4ZbHSdc/31TScIJQYHwxbj05BpevB3201ug==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz",
|
||||
"integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
@@ -1823,9 +1823,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.4.tgz",
|
||||
"integrity": "sha512-iujDk07ZNwGLVn0YIWM80SFN039bHZHCdCCuX9nyx3Jsa2d9V/0Y32F+YadzwbvDxhSeVo9zefkoPnXEImnM5w==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz",
|
||||
"integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@@ -1837,9 +1837,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.4.tgz",
|
||||
"integrity": "sha512-MUtAktiOUSu+AXBpx1fkuG/Bi5rhlorGs3lw5QeJ2X3ziEGAq7vFNdWVde6XGaVqi0LGSvugwjoxSNJfHFTC0g==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz",
|
||||
"integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -1851,9 +1851,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-musl": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.4.tgz",
|
||||
"integrity": "sha512-btm35eAbDfPtcFEgaXCI5l3c2WXyzwiE8pArhd66SDtoLWmgK5/M7CUxmUglkwtniPzwvWioBKKl6IXLbPf2sQ==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz",
|
||||
"integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -1865,9 +1865,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.4.tgz",
|
||||
"integrity": "sha512-uJlhKE9ccUTCUlK+HUz/80cVtx2RayadC5ldDrrDUFaJK0SNb8/cCmC9RhBhIWuZ71Nqj4Uoa9+xljKWRogdhA==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz",
|
||||
"integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
@@ -1879,9 +1879,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.4.tgz",
|
||||
"integrity": "sha512-jjEMkzvASQBbzzlzf4os7nzSBd/cvPrpqXCUOqoeCh1dQ4BP3RZCJk8XBeik4MUln3m+8LeTJcY54C/u8wb3DQ==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz",
|
||||
"integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1893,9 +1893,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.4.tgz",
|
||||
"integrity": "sha512-lu90KG06NNH19shC5rBPkrh6mrTpq5kviFylPBXQVpdEu0yzb0mDgyxLr6XdcGdBIQTH/UAhDJnL+APZTBu1aQ==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz",
|
||||
"integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1907,9 +1907,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-openharmony-arm64": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.4.tgz",
|
||||
"integrity": "sha512-dFDcmLwsUzhAm/dn0+dMOQZoONVYBtgik0VuY/d5IJUUb787L3Ko/ibvTvddqhb3RaB7vFEozYevHN4ox22R/w==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz",
|
||||
"integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1921,9 +1921,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.4.tgz",
|
||||
"integrity": "sha512-WvUpUAWmUxZKtRnQWpRKnLW2DEO8HB/l8z6oFFMNuHndMzFTJEXzaYJ5ZAmzNw0L21QQJZsUQFt2oPf3ykAD/w==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz",
|
||||
"integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -1935,9 +1935,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.4.tgz",
|
||||
"integrity": "sha512-JGbeF2/FDU0x2OLySw/jgvkwWUo05BSiJK0dtuI4LyuXbz3wKiC1xHhLB1Tqm5VU6ZZDmAorj45r/IgWNWku5g==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz",
|
||||
"integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -1949,9 +1949,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-gnu": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.4.tgz",
|
||||
"integrity": "sha512-zuuC7AyxLWLubP+mlUwEyR8M1ixW1ERNPHJfXm8x7eQNP4Pzkd7hS3qBuKBR70VRiQ04Kw8FNfRMF5TNxuZq2g==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz",
|
||||
"integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1963,9 +1963,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.4.tgz",
|
||||
"integrity": "sha512-Sbx45u/Lbb5RyptSbX7/3deP+/lzEmZ0BTSHxwxN/IMOZDZf8S0AGo0hJD5n/LQssxb5Z3B4og4P2X6Dd8acCA==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz",
|
||||
"integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -3090,16 +3090,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/expect": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.15.tgz",
|
||||
"integrity": "sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.16.tgz",
|
||||
"integrity": "sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@standard-schema/spec": "^1.0.0",
|
||||
"@types/chai": "^5.2.2",
|
||||
"@vitest/spy": "4.0.15",
|
||||
"@vitest/utils": "4.0.15",
|
||||
"@vitest/spy": "4.0.16",
|
||||
"@vitest/utils": "4.0.16",
|
||||
"chai": "^6.2.1",
|
||||
"tinyrainbow": "^3.0.3"
|
||||
},
|
||||
@@ -3108,13 +3108,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/mocker": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.15.tgz",
|
||||
"integrity": "sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz",
|
||||
"integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vitest/spy": "4.0.15",
|
||||
"@vitest/spy": "4.0.16",
|
||||
"estree-walker": "^3.0.3",
|
||||
"magic-string": "^0.30.21"
|
||||
},
|
||||
@@ -3135,9 +3135,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/pretty-format": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.15.tgz",
|
||||
"integrity": "sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.16.tgz",
|
||||
"integrity": "sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -3148,13 +3148,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/runner": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.15.tgz",
|
||||
"integrity": "sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.16.tgz",
|
||||
"integrity": "sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vitest/utils": "4.0.15",
|
||||
"@vitest/utils": "4.0.16",
|
||||
"pathe": "^2.0.3"
|
||||
},
|
||||
"funding": {
|
||||
@@ -3162,13 +3162,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/snapshot": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.15.tgz",
|
||||
"integrity": "sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.16.tgz",
|
||||
"integrity": "sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vitest/pretty-format": "4.0.15",
|
||||
"@vitest/pretty-format": "4.0.16",
|
||||
"magic-string": "^0.30.21",
|
||||
"pathe": "^2.0.3"
|
||||
},
|
||||
@@ -3177,9 +3177,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/spy": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.15.tgz",
|
||||
"integrity": "sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz",
|
||||
"integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
@@ -3187,13 +3187,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/ui": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.15.tgz",
|
||||
"integrity": "sha512-sxSyJMaKp45zI0u+lHrPuZM1ZJQ8FaVD35k+UxVrha1yyvQ+TZuUYllUixwvQXlB7ixoDc7skf3lQPopZIvaQw==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.16.tgz",
|
||||
"integrity": "sha512-rkoPH+RqWopVxDnCBE/ysIdfQ2A7j1eDmW8tCxxrR9nnFBa9jKf86VgsSAzxBd1x+ny0GC4JgiD3SNfRHv3pOg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vitest/utils": "4.0.15",
|
||||
"@vitest/utils": "4.0.16",
|
||||
"fflate": "^0.8.2",
|
||||
"flatted": "^3.3.3",
|
||||
"pathe": "^2.0.3",
|
||||
@@ -3205,17 +3205,17 @@
|
||||
"url": "https://opencollective.com/vitest"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vitest": "4.0.15"
|
||||
"vitest": "4.0.16"
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/utils": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.15.tgz",
|
||||
"integrity": "sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.16.tgz",
|
||||
"integrity": "sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vitest/pretty-format": "4.0.15",
|
||||
"@vitest/pretty-format": "4.0.16",
|
||||
"tinyrainbow": "^3.0.3"
|
||||
},
|
||||
"funding": {
|
||||
@@ -7153,9 +7153,9 @@
|
||||
"license": "Unlicense"
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.53.4",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.4.tgz",
|
||||
"integrity": "sha512-YpXaaArg0MvrnJpvduEDYIp7uGOqKXbH9NsHGQ6SxKCOsNAjZF018MmxefFUulVP2KLtiGw1UvZbr+/ekjvlDg==",
|
||||
"version": "4.53.5",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz",
|
||||
"integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -7169,28 +7169,28 @@
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.53.4",
|
||||
"@rollup/rollup-android-arm64": "4.53.4",
|
||||
"@rollup/rollup-darwin-arm64": "4.53.4",
|
||||
"@rollup/rollup-darwin-x64": "4.53.4",
|
||||
"@rollup/rollup-freebsd-arm64": "4.53.4",
|
||||
"@rollup/rollup-freebsd-x64": "4.53.4",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.53.4",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.53.4",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.53.4",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.53.4",
|
||||
"@rollup/rollup-linux-loong64-gnu": "4.53.4",
|
||||
"@rollup/rollup-linux-ppc64-gnu": "4.53.4",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.53.4",
|
||||
"@rollup/rollup-linux-riscv64-musl": "4.53.4",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.53.4",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.53.4",
|
||||
"@rollup/rollup-linux-x64-musl": "4.53.4",
|
||||
"@rollup/rollup-openharmony-arm64": "4.53.4",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.53.4",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.53.4",
|
||||
"@rollup/rollup-win32-x64-gnu": "4.53.4",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.53.4",
|
||||
"@rollup/rollup-android-arm-eabi": "4.53.5",
|
||||
"@rollup/rollup-android-arm64": "4.53.5",
|
||||
"@rollup/rollup-darwin-arm64": "4.53.5",
|
||||
"@rollup/rollup-darwin-x64": "4.53.5",
|
||||
"@rollup/rollup-freebsd-arm64": "4.53.5",
|
||||
"@rollup/rollup-freebsd-x64": "4.53.5",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.53.5",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.53.5",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.53.5",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.53.5",
|
||||
"@rollup/rollup-linux-loong64-gnu": "4.53.5",
|
||||
"@rollup/rollup-linux-ppc64-gnu": "4.53.5",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.53.5",
|
||||
"@rollup/rollup-linux-riscv64-musl": "4.53.5",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.53.5",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.53.5",
|
||||
"@rollup/rollup-linux-x64-musl": "4.53.5",
|
||||
"@rollup/rollup-openharmony-arm64": "4.53.5",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.53.5",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.53.5",
|
||||
"@rollup/rollup-win32-x64-gnu": "4.53.5",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.53.5",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
@@ -7254,9 +7254,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.96.0.tgz",
|
||||
"integrity": "sha512-8u4xqqUeugGNCYwr9ARNtQKTOj4KmYiJAVKXf2CTIivTCR51j96htbMKWDru8H5SaQWpyVgTfOF8Ylyf5pun1Q==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.97.0.tgz",
|
||||
"integrity": "sha512-KR0igP1z4avUJetEuIeOdDlwaUDvkH8wSx7FdSjyYBS3dpyX3TzHfAMO0G1Q4/3cdjcmi3r7idh+KCmKqS+KeQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
@@ -7276,9 +7276,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.96.0.tgz",
|
||||
"integrity": "sha512-z9PQ7owvdhn7UuZGrpPccdkcH9xJd9iCv+UQhcPqppBslYEp0R9LRQVyyPTZg7jfA77bGxz/I8V48LXJR5LjXQ==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.97.0.tgz",
|
||||
"integrity": "sha512-Unwu0MtlAt9hQGHutB2NJhwhPcxiJX99AI7PSz7W4lkikQg9S/HYFtgxtIjpTB4DW7sOYX2xnxvtU/nep9HXTA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -7298,30 +7298,30 @@
|
||||
"node": ">=16.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"sass-embedded-all-unknown": "1.96.0",
|
||||
"sass-embedded-android-arm": "1.96.0",
|
||||
"sass-embedded-android-arm64": "1.96.0",
|
||||
"sass-embedded-android-riscv64": "1.96.0",
|
||||
"sass-embedded-android-x64": "1.96.0",
|
||||
"sass-embedded-darwin-arm64": "1.96.0",
|
||||
"sass-embedded-darwin-x64": "1.96.0",
|
||||
"sass-embedded-linux-arm": "1.96.0",
|
||||
"sass-embedded-linux-arm64": "1.96.0",
|
||||
"sass-embedded-linux-musl-arm": "1.96.0",
|
||||
"sass-embedded-linux-musl-arm64": "1.96.0",
|
||||
"sass-embedded-linux-musl-riscv64": "1.96.0",
|
||||
"sass-embedded-linux-musl-x64": "1.96.0",
|
||||
"sass-embedded-linux-riscv64": "1.96.0",
|
||||
"sass-embedded-linux-x64": "1.96.0",
|
||||
"sass-embedded-unknown-all": "1.96.0",
|
||||
"sass-embedded-win32-arm64": "1.96.0",
|
||||
"sass-embedded-win32-x64": "1.96.0"
|
||||
"sass-embedded-all-unknown": "1.97.0",
|
||||
"sass-embedded-android-arm": "1.97.0",
|
||||
"sass-embedded-android-arm64": "1.97.0",
|
||||
"sass-embedded-android-riscv64": "1.97.0",
|
||||
"sass-embedded-android-x64": "1.97.0",
|
||||
"sass-embedded-darwin-arm64": "1.97.0",
|
||||
"sass-embedded-darwin-x64": "1.97.0",
|
||||
"sass-embedded-linux-arm": "1.97.0",
|
||||
"sass-embedded-linux-arm64": "1.97.0",
|
||||
"sass-embedded-linux-musl-arm": "1.97.0",
|
||||
"sass-embedded-linux-musl-arm64": "1.97.0",
|
||||
"sass-embedded-linux-musl-riscv64": "1.97.0",
|
||||
"sass-embedded-linux-musl-x64": "1.97.0",
|
||||
"sass-embedded-linux-riscv64": "1.97.0",
|
||||
"sass-embedded-linux-x64": "1.97.0",
|
||||
"sass-embedded-unknown-all": "1.97.0",
|
||||
"sass-embedded-win32-arm64": "1.97.0",
|
||||
"sass-embedded-win32-x64": "1.97.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-all-unknown": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.96.0.tgz",
|
||||
"integrity": "sha512-UfUHoWZtxmsDjDfK+fKCy0aJe6zThu7oaIQx0c/vnHgvprcddEPIay01qTXhiUa3cFcsMmvlBvPTVw0gjKVtVQ==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.97.0.tgz",
|
||||
"integrity": "sha512-9F6MyQcwp3YiuGMk5bC7g9jL+D1KkW/ONQgrkoTQ7ALcmoPKmsauZg5WgRhLYW9UhpnGTgANrWrZdiREAR1YkA==",
|
||||
"cpu": [
|
||||
"!arm",
|
||||
"!arm64",
|
||||
@@ -7332,13 +7332,13 @@
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"sass": "1.96.0"
|
||||
"sass": "1.97.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-arm": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.96.0.tgz",
|
||||
"integrity": "sha512-0mwVRBFig9hH8vFcRExBuBoR+CfUOcWdwarZwbxIFGI1IyH4BLBGiX85vVn6ssSCVNydpE6lFGm45CN8O0tQig==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.97.0.tgz",
|
||||
"integrity": "sha512-VLxeVR5FMwSZoOliBY8Qy2trZCWYz3w4ILf0QZ68eep3mIQjtykY3BSKC2R/w9DkPQDNJXdgbgnxeOubC8k5xw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -7353,9 +7353,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-arm64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.96.0.tgz",
|
||||
"integrity": "sha512-TJiebTo4TBF5Wrn+lFkUfSN3wazvl8kkFm9a1nA9ZtRdaE0nsJLGnMM6KLQLP2Vl+IOf6ovetZseISkClRoGXw==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.97.0.tgz",
|
||||
"integrity": "sha512-uDG/0DS6A+KRiOYUV1UNHBq67DHvO+/54Ja+dg8S5fl5uvPwZGHpJFheemA9R6vvddwyjGmzVacvCQxdmECcfQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -7370,9 +7370,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-riscv64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.96.0.tgz",
|
||||
"integrity": "sha512-7AVu/EeJqKN3BGNhm+tc1XzmoqbOtCwHG2VgN6j6Lyqh1JZlx0dglRtyQuKDZ7odTKiWmotEIuYZ6OxLmr2Ejg==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.97.0.tgz",
|
||||
"integrity": "sha512-yrwsyPR08CXW5Ggr0kI1jTUcKkBOtjODbDj11nRrBwyrXRqhf1obqfchQxTW0HlYT8VZmZGfnHvPNNDwOSdfZg==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -7387,9 +7387,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-android-x64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.96.0.tgz",
|
||||
"integrity": "sha512-ei/UsT0q8rF5JzWhn1A7B0M1y/IiWVY3l4zibQrXk5MGaOXHlCM6ffZD+2j7C613Jm9/KAQ7yX1NIIu72LPgDQ==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.97.0.tgz",
|
||||
"integrity": "sha512-a1QW1pFykLCtV8J3AZ+wtrwOx0ORZsW4orF6fOrBYL2sLhlzhB3iK+QzWezFvH5+FMgLQBC4xgYYk4NV9WCO9g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -7404,9 +7404,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-darwin-arm64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.96.0.tgz",
|
||||
"integrity": "sha512-OMvN5NWcrrisC24ZR3GyaWJ1uFxw25qLnUkpEso9TSlaMWiomjU82/uQ/AkQvIMl+EMlJqeYLxZWvq/byLH5Xg==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.97.0.tgz",
|
||||
"integrity": "sha512-5XV42FEqhQEGFQ/w8HUk///k0XMHLyBt1j2alxTr9ZI77HqiAIl6kVZp0kxJ++gt/y3E6hKoMLngHHC6zIBR5A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -7421,9 +7421,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-darwin-x64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.96.0.tgz",
|
||||
"integrity": "sha512-J/R5sv0eW+/DU98rccHPO1f3lsTFjVTpdkU9d3P1yB7BFmQjw5PYde9BVRlXeOawPwfgT3p/hvY4RELScICdww==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.97.0.tgz",
|
||||
"integrity": "sha512-Kc0aKFfKPd/kz8mSGtRKTEN7FKnqs30iZf6APb0ZHMuvMVfOfdD+fZ/85htT+j5k2F+UUSFBpbx04W0gZW020A==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -7438,9 +7438,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-arm": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.96.0.tgz",
|
||||
"integrity": "sha512-XuQvV6gNld5Bz3rX0SFLtKPGMu4UQdXNp//9A+bDmtVGZ6yu8REIqphQBxOMpgkAKsA4JZLKKk1N97woeVsIlA==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.97.0.tgz",
|
||||
"integrity": "sha512-pwM5A1+w3l1T/FXwJNqZD0WukCENeRkgxPSpZmsO4/QNLdTpGCz16D5spYPQ7f7GZo9aNaHt1EaDLHCjlEA8LQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -7455,9 +7455,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-arm64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.96.0.tgz",
|
||||
"integrity": "sha512-VcbVjK0/O/mru0h0FC1WSUWIzMqRrzuJ8eZNMXTs4vApfkh28pxNaUodwU81f1L1nngJ3vpFDBniUKpW6NwJhw==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.97.0.tgz",
|
||||
"integrity": "sha512-ofm9esPA9P0sB6wJPcDhQYjSDfa7RoVKD0IHvFPMrK9OLTKg8lw80/afH49a9URYeYiE4wFP76Fr9t+s7A6E1Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -7472,9 +7472,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-arm": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.96.0.tgz",
|
||||
"integrity": "sha512-qK7FrnczCVECZXtyYOoI3azFlMDZn70GI1yJPPuZLpWvwIPYoZOLv3u6JSec5o3wT6KeKyWG3ZpGIpigLUjPig==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.97.0.tgz",
|
||||
"integrity": "sha512-+rsW0OreW4sPtdXDewDESxJLJdxW3B0EL7ICajkRFs3KbeNdgOVnP5DJQ39hquAoZH0AcEEGcd6236ZMMzEbwQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -7489,9 +7489,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-arm64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.96.0.tgz",
|
||||
"integrity": "sha512-lVyLObEeu8Wgw8riC6dSMlkF7jVNAjdZ1jIBhvX1yDsrQwwaI60pM21YXmnZSFyCE6KVFkKAgwRQNO/IkoCwMA==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.97.0.tgz",
|
||||
"integrity": "sha512-8VF4nc7oUklhUGGAY0T6Ktd9T9ZFwoOsWje7ocOV57tjbocFp/eeAPqX1v2BpiZtMVURyYwaZsRSAL79DT7oRw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -7506,9 +7506,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-riscv64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.96.0.tgz",
|
||||
"integrity": "sha512-Y+DuGVRsM2zGl268QN5aF/Y6OFYTILb3f+6huEXKlGL6FK2MXadsmeoVbmKVrTamQHzyA2bWWMU1C0jhVFtlzg==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.97.0.tgz",
|
||||
"integrity": "sha512-nlaeeZ5P7tde/c/aMiIl5UduQZPA9ftEyWJxdmWcs3pASFSykslVJR5D4L161EUHzB5z+MxSnbbzcrck0F1slA==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -7523,9 +7523,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-musl-x64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.96.0.tgz",
|
||||
"integrity": "sha512-sAQtUQ8fFNxnxSf3fncOh892Hfxa4PW4e5qrnSE0Y1IGV/wsTzk7m5Z6IeT7sa3BsvXh5TFN6+JGbUoOJ5RigA==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.97.0.tgz",
|
||||
"integrity": "sha512-QB6JLr2p1UuEXhiTXEYNypf+w2x/SCMY17vcnXKM47CeaJ88v2C9fJ9oVne6eZntlCylSow/vZCov0JMhklknA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -7540,9 +7540,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-riscv64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.96.0.tgz",
|
||||
"integrity": "sha512-Bf6bAjuUm6sfGHo0XoZEstjVkEWwmmtOSomGoPuAwXFS9GQnFcqDz9EXKNkZEOsQi2D+aDeDxs8HcU9/OLMT9g==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.97.0.tgz",
|
||||
"integrity": "sha512-m7QaK4M+YhQ6FZWMI9O8g4tqmM4JrvzJl/YC/eEJXpfgwxMeXsDsPVQWFiBdWOuxqMSH8WhFksw/Bg0J+kK6VQ==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@@ -7557,9 +7557,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-linux-x64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.96.0.tgz",
|
||||
"integrity": "sha512-U4GROkS0XM6ekqs/ubroWwFAGY9N35wqrt5q6Y+MJCpTK5bHPHlgFo7J75ZUSaEObL+UrDqvMDQkCdYEFiiQbg==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.97.0.tgz",
|
||||
"integrity": "sha512-yc7yLWJrAtTBCjEAoNxvE040EGYdsgmaWMSyI9LSIOFlSwrOc4x+W/8IMhLWCygTAgorNPuNlRfPDgkQm1sJmw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -7574,9 +7574,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-unknown-all": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.96.0.tgz",
|
||||
"integrity": "sha512-OHzGEr2VElK2SaQdkkTX0O0KwTbiv1N/EhnHgzXYaZWOTvv0gxEfR7q7x/oScCBIZc2x8dSfvThfBnohIClo/w==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.97.0.tgz",
|
||||
"integrity": "sha512-dDky3ETKeOo543myScL4sp3pj2cANLNKea5aR6v8ZCpDSCDTRxqv4Sj/goTmkVqnp/HOVF88qB3GHtQ8rFtULQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
@@ -7587,13 +7587,13 @@
|
||||
"!win32"
|
||||
],
|
||||
"dependencies": {
|
||||
"sass": "1.96.0"
|
||||
"sass": "1.97.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-win32-arm64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.96.0.tgz",
|
||||
"integrity": "sha512-KKz1h5pr45fwrKcxrxHsujo3f/HgVkX64YNJ9PRPuOuX7lU8g18IEgDxoTGQ64PPBQ5RXOt6jxpT+x2OLPVnCw==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.97.0.tgz",
|
||||
"integrity": "sha512-JMU2SKIgUJDw4oaKBcVbuobWRU6f2XmFuYqJdkxJhlITAGimwjZ860gttlzjNtZcVI4+p4ovT14HwpsEcIzfnw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -7608,9 +7608,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sass-embedded-win32-x64": {
|
||||
"version": "1.96.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.96.0.tgz",
|
||||
"integrity": "sha512-MDreKaWcgiyKD5YPShaRvUBoe5dC2y8IPJK49G7iQjoMfw9INDCBkDdLcz00Mn0eJq4nJJp5UEE98M6ljIrBRg==",
|
||||
"version": "1.97.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.97.0.tgz",
|
||||
"integrity": "sha512-mKIJGXxEl6OoWEoT4ee5OsBOfExla2ilY5J8tupVwSCxf/i3aOJNLm7ZzRWG9er2K3bC8aovgMisMIVGlBM5hw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -8517,19 +8517,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vitest": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.15.tgz",
|
||||
"integrity": "sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==",
|
||||
"version": "4.0.16",
|
||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.16.tgz",
|
||||
"integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vitest/expect": "4.0.15",
|
||||
"@vitest/mocker": "4.0.15",
|
||||
"@vitest/pretty-format": "4.0.15",
|
||||
"@vitest/runner": "4.0.15",
|
||||
"@vitest/snapshot": "4.0.15",
|
||||
"@vitest/spy": "4.0.15",
|
||||
"@vitest/utils": "4.0.15",
|
||||
"@vitest/expect": "4.0.16",
|
||||
"@vitest/mocker": "4.0.16",
|
||||
"@vitest/pretty-format": "4.0.16",
|
||||
"@vitest/runner": "4.0.16",
|
||||
"@vitest/snapshot": "4.0.16",
|
||||
"@vitest/spy": "4.0.16",
|
||||
"@vitest/utils": "4.0.16",
|
||||
"es-module-lexer": "^1.7.0",
|
||||
"expect-type": "^1.2.2",
|
||||
"magic-string": "^0.30.21",
|
||||
@@ -8557,10 +8557,10 @@
|
||||
"@edge-runtime/vm": "*",
|
||||
"@opentelemetry/api": "^1.9.0",
|
||||
"@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
|
||||
"@vitest/browser-playwright": "4.0.15",
|
||||
"@vitest/browser-preview": "4.0.15",
|
||||
"@vitest/browser-webdriverio": "4.0.15",
|
||||
"@vitest/ui": "4.0.15",
|
||||
"@vitest/browser-playwright": "4.0.16",
|
||||
"@vitest/browser-preview": "4.0.16",
|
||||
"@vitest/browser-webdriverio": "4.0.16",
|
||||
"@vitest/ui": "4.0.16",
|
||||
"happy-dom": "*",
|
||||
"jsdom": "*"
|
||||
},
|
||||
|
||||
@@ -320,6 +320,14 @@ watch(leasePaging.value, async () => {
|
||||
await fetchLeases();
|
||||
});
|
||||
|
||||
watch(mode, async () => {
|
||||
if (mode.value === 'connections') {
|
||||
await fetchConnections();
|
||||
} else if (mode.value === 'lease') {
|
||||
await fetchLeases();
|
||||
}
|
||||
});
|
||||
|
||||
onMounted(async () => {
|
||||
if (await mapStore.worker.profile.isSystemAdmin()) {
|
||||
isSystemAdmin.value = true;
|
||||
|
||||
@@ -24,6 +24,20 @@
|
||||
/>
|
||||
</TablerInput>
|
||||
</div>
|
||||
<div
|
||||
v-if='route.params.connectionid === "new"'
|
||||
class='col-12'
|
||||
>
|
||||
<label class='px-2 w-100'>Channels</label>
|
||||
|
||||
<div style='max-height: 20vh; min-height: 200px; overflow-y: auto;'>
|
||||
<GroupSelect
|
||||
v-model='groups'
|
||||
:active='true'
|
||||
direction='IN'
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-12 d-flex'>
|
||||
<label>Feeds</label>
|
||||
|
||||
@@ -80,6 +94,7 @@ import type { VideoConnection, VideoConnectionFeed } from '../../../types.ts';
|
||||
import VideosRemoteFeed from './Videos/VideosRemoteFeed.vue';
|
||||
import { std } from '../../../std.ts';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
import GroupSelect from '../../util/GroupSelect.vue';
|
||||
import {
|
||||
TablerInput,
|
||||
TablerDelete,
|
||||
@@ -98,6 +113,9 @@ const route = useRoute();
|
||||
const router = useRouter();
|
||||
const loading = ref(String(route.params.connectionid) !== "new");
|
||||
const err = ref<Error | undefined>(undefined);
|
||||
|
||||
const groups = ref<string[]>([]);
|
||||
|
||||
const connection = ref<VideoConnection>({
|
||||
uuid: randomUUID(),
|
||||
active: true,
|
||||
@@ -151,7 +169,10 @@ async function saveConnection() {
|
||||
} else {
|
||||
await std('/api/marti/video', {
|
||||
method: 'POST',
|
||||
body: connection.value
|
||||
body: {
|
||||
groups: groups.value,
|
||||
...connection.value
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -67,8 +67,7 @@
|
||||
<div class='d-flex align-items-center w-100 justify-content-center'>
|
||||
<div class='py-2'>
|
||||
<img
|
||||
height='600px'
|
||||
width='600px'
|
||||
style='max-width: 100%; height: auto; max-height: 600px;'
|
||||
alt='UAS Tool Wizard Image'
|
||||
:src='`/wizard/Step${wizard}.png`'
|
||||
class='rounded'
|
||||
@@ -142,7 +141,7 @@
|
||||
class='d-flex align-items-center user-select-none'
|
||||
>
|
||||
<IconServer
|
||||
:size='32'
|
||||
:size='24'
|
||||
stroke='1'
|
||||
/>
|
||||
<span class='ms-2'>External Stream URL</span>
|
||||
@@ -153,14 +152,14 @@
|
||||
>
|
||||
<IconArrowsLeftRight
|
||||
v-tooltip='"Read/Write User"'
|
||||
:size='32'
|
||||
:size='24'
|
||||
stroke='1'
|
||||
/>
|
||||
<span class='ms-2'>Read-Write User</span>
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
class='px-2 py-2 round btn-group w-100'
|
||||
class='p-1 round btn-group w-100'
|
||||
role='group'
|
||||
>
|
||||
<input
|
||||
@@ -178,7 +177,7 @@
|
||||
>
|
||||
<IconBook2
|
||||
v-tooltip='"Read User"'
|
||||
:size='32'
|
||||
:size='24'
|
||||
stroke='1'
|
||||
/>
|
||||
<span class='mx-2'>Read User</span>
|
||||
@@ -199,7 +198,7 @@
|
||||
>
|
||||
<IconPencil
|
||||
v-tooltip='"Write User"'
|
||||
:size='32'
|
||||
:size='24'
|
||||
stroke='1'
|
||||
/>
|
||||
<span class='mx-2'>Write User</span>
|
||||
@@ -283,6 +282,33 @@
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div
|
||||
v-if='disabled'
|
||||
class='col-12 pt-2'
|
||||
>
|
||||
<div class='col-12 d-flex align-items-center mb-1'>
|
||||
<label>Expiration</label>
|
||||
|
||||
<div class='ms-auto'>
|
||||
<span
|
||||
v-if='expired(editLease.expiration)'
|
||||
class='badge bg-red text-white mt-2'
|
||||
>Expired</span>
|
||||
<span
|
||||
v-else-if='editLease.expiration === null'
|
||||
class='badge bg-blue text-white mt-2'
|
||||
>Permanent</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col-12'>
|
||||
<CopyField
|
||||
v-if='editLease.expiration'
|
||||
:model-value='editLease.expiration'
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div
|
||||
@@ -320,7 +346,7 @@
|
||||
>
|
||||
<div class='col-12'>
|
||||
<div
|
||||
class='px-2 py-2 round btn-group w-100'
|
||||
class='p-1 round btn-group w-100'
|
||||
role='group'
|
||||
>
|
||||
<input
|
||||
@@ -337,7 +363,7 @@
|
||||
class='btn btn-sm'
|
||||
><IconDrone
|
||||
v-tooltip='"Provide a stream URL to push data to"'
|
||||
:size='32'
|
||||
:size='24'
|
||||
stroke='1'
|
||||
/><span class='ms-2'>Hosted Stream URL</span></label>
|
||||
|
||||
@@ -355,7 +381,7 @@
|
||||
class='btn btn-sm'
|
||||
><IconServer
|
||||
v-tooltip='"Pull from existing external Stream URL"'
|
||||
:size='32'
|
||||
:size='24'
|
||||
stroke='1'
|
||||
/><span class='ms-2'>External Stream URL</span></label>
|
||||
</div>
|
||||
@@ -378,7 +404,7 @@
|
||||
description='Leases remain active on the server for the duration specified. Once the lease expires the lease can be renewed without the Lease URL changing'
|
||||
/>
|
||||
</div>
|
||||
<div class='col-12 col-md-8'>
|
||||
<div class='col-12 col-md-6'>
|
||||
<TablerEnum
|
||||
v-model='editLease.source_type'
|
||||
default='unknown'
|
||||
@@ -398,7 +424,7 @@
|
||||
description='The type of sensor that is broadcasting'
|
||||
/>
|
||||
</div>
|
||||
<div class='col-12 col-md-4'>
|
||||
<div class='col-12 col-md-6'>
|
||||
<TablerInput
|
||||
v-model='editLease.source_model'
|
||||
:disabled='disabled'
|
||||
@@ -419,7 +445,7 @@
|
||||
description='Pull media into the Video Manager from an existing URL.'
|
||||
/>
|
||||
</div>
|
||||
<div class='col-12'>
|
||||
<div class='col-12 col-md-6'>
|
||||
<TablerToggle
|
||||
v-model='editLease.publish'
|
||||
label='Publish to TAK Server'
|
||||
@@ -427,7 +453,7 @@
|
||||
description='Publish the non-geolocated Video Stream to the Video Manager'
|
||||
/>
|
||||
</div>
|
||||
<div class='col-12'>
|
||||
<div class='col-12 col-md-6'>
|
||||
<TablerToggle
|
||||
v-model='editLease.recording'
|
||||
label='Record Stream'
|
||||
@@ -437,7 +463,7 @@
|
||||
</div>
|
||||
<div
|
||||
v-if='typeof editLease.proxy !== "string"'
|
||||
class='col-12'
|
||||
class='col-12 col-md-6'
|
||||
>
|
||||
<TablerToggle
|
||||
v-model='secure'
|
||||
@@ -446,60 +472,37 @@
|
||||
description='Create a seperate Read/Write user to ensure unauthorized users cannot publish to a stream'
|
||||
/>
|
||||
</div>
|
||||
<div class='col-12'>
|
||||
<div class='col-12 col-md-6'>
|
||||
<TablerToggle
|
||||
v-model='shared'
|
||||
v-model='editLease.share'
|
||||
description='By default only the user that created a Lease can manage it. If you are operating as part of an agency, turn on Lease Sharing to allow all users in your Channel to manage the lease'
|
||||
:disabled='disabled'
|
||||
label='Shared Lease'
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if='shared'
|
||||
v-if='editLease.share || editLease.publish'
|
||||
class='col-12'
|
||||
>
|
||||
<GroupSelect
|
||||
<div
|
||||
v-if='!disabled'
|
||||
v-model='channels'
|
||||
:limit='1'
|
||||
/>
|
||||
style='height: 20vh; min-height: 200px; overflow-y: auto;'
|
||||
>
|
||||
<GroupSelect
|
||||
v-model='channels'
|
||||
:limit='1'
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
class='border border-white rounded px-2 py-2'
|
||||
>
|
||||
<IconAffiliate
|
||||
:size='24'
|
||||
:size='32'
|
||||
stroke='1'
|
||||
/> <span v-text='editLease.channel' />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if='editLease.expiration !== undefined'
|
||||
class='col-12'
|
||||
>
|
||||
<div class='col-12 d-flex align-items-center mb-1'>
|
||||
<label>Expiration</label>
|
||||
|
||||
<div class='ms-auto'>
|
||||
<span
|
||||
v-if='expired(editLease.expiration)'
|
||||
class='badge bg-red text-white mt-2'
|
||||
>Expired</span>
|
||||
<span
|
||||
v-else-if='editLease.expiration === null'
|
||||
class='badge bg-blue text-white mt-2'
|
||||
>Permanent</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col-12'>
|
||||
<CopyField
|
||||
v-if='editLease.expiration'
|
||||
:model-value='editLease.expiration'
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='modal-footer d-flex'>
|
||||
<button
|
||||
@@ -546,7 +549,7 @@
|
||||
import { std } from '../../../../std.ts';
|
||||
import { validateURL } from '../../../../base/validators.ts';
|
||||
import CopyField from '../../util/CopyField.vue';
|
||||
import { ref, watch, onMounted } from 'vue';
|
||||
import { ref, onMounted } from 'vue';
|
||||
import type { VideoLease, VideoLeaseResponse, VideoLeaseProtocols, VideoLeaseMetadata } from '../../../../types.ts';
|
||||
import VideoLeaseSourceType from '../../util/VideoLeaseSourceType.vue'
|
||||
import GroupSelect from '../../../util/GroupSelect.vue';
|
||||
@@ -593,18 +596,17 @@ const channels = ref<string[]>([]);
|
||||
|
||||
const durations = ref<Array<string>>(["16 Hours", "12 Hours", "6 Hours", "1 Hour"]);
|
||||
|
||||
const shared = ref(false);
|
||||
|
||||
const editLease = ref<{
|
||||
id?: number
|
||||
name: string
|
||||
duration: string
|
||||
recording: boolean
|
||||
publish: boolean
|
||||
share: boolean
|
||||
channel: string | null
|
||||
source_type: string
|
||||
source_model: string
|
||||
proxy?: string | null
|
||||
proxy?: string | null
|
||||
expiration?: string | null
|
||||
stream_user: string | null
|
||||
stream_pass: string | null
|
||||
@@ -616,6 +618,7 @@ const editLease = ref<{
|
||||
channel: null,
|
||||
recording: false,
|
||||
publish: false,
|
||||
share: true,
|
||||
source_type: 'unknown',
|
||||
source_model: '',
|
||||
stream_user: '',
|
||||
@@ -643,12 +646,6 @@ onMounted(async () => {
|
||||
loading.value = false
|
||||
});
|
||||
|
||||
watch(shared, () => {
|
||||
if (!shared.value) {
|
||||
channels.value = [];
|
||||
}
|
||||
});
|
||||
|
||||
function expired(expiration?: string | null) {
|
||||
if (!expiration) return false;
|
||||
return +new Date(expiration) < +new Date();
|
||||
@@ -680,12 +677,6 @@ async function fetchLease() {
|
||||
channels.value = [];
|
||||
}
|
||||
|
||||
if (res.channel) {
|
||||
shared.value = true;
|
||||
} else {
|
||||
shared.value = false;
|
||||
}
|
||||
|
||||
const resMetadata = await std(`/api/video/lease/${editLease.value.id}/metadata`, {
|
||||
method: 'GET',
|
||||
}) as VideoLeaseMetadata;
|
||||
@@ -729,6 +720,7 @@ async function saveLease() {
|
||||
permanent: editLease.value.duration === 'Permanent' ? true : false,
|
||||
recording: editLease.value.recording,
|
||||
publish: editLease.value.publish,
|
||||
share: editLease.value.share,
|
||||
source_type: editLease.value.source_type,
|
||||
source_model: editLease.value.source_model,
|
||||
}
|
||||
@@ -745,6 +737,7 @@ async function saveLease() {
|
||||
permanent: editLease.value.duration === 'Permanent' ? true : false,
|
||||
recording: editLease.value.recording,
|
||||
publish: editLease.value.publish,
|
||||
share: editLease.value.share,
|
||||
source_type: editLease.value.source_type,
|
||||
source_model: editLease.value.source_model,
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<div
|
||||
class='rounded mx-2 my-2'
|
||||
style='
|
||||
border-style: solid;
|
||||
border-color: #3E5E84;
|
||||
border-width: 1px;
|
||||
'
|
||||
border-style: solid;
|
||||
border-color: #3E5E84;
|
||||
border-width: 1px;
|
||||
'
|
||||
>
|
||||
<div class='d-flex mt-2 mx-2'>
|
||||
<div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<svg
|
||||
ref='icons'
|
||||
id='icons'
|
||||
ref='icons'
|
||||
class='d-none'
|
||||
>
|
||||
<symbol
|
||||
|
||||
@@ -49,7 +49,10 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class='flex-grow-1 d-flex flex-column gap-1 py-2' style='min-width: 0;'>
|
||||
<div
|
||||
class='flex-grow-1 d-flex flex-column gap-1 py-2'
|
||||
style='min-width: 0;'
|
||||
>
|
||||
<div class='d-flex align-items-center gap-2'>
|
||||
<span
|
||||
class='fw-semibold text-truncate'
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class='sticky-top py-2 border-bottom'>
|
||||
<div
|
||||
class='sticky-top py-2 border-bottom'
|
||||
style='background-color: var(--tblr-bg-surface, #fff)'
|
||||
>
|
||||
<TablerInput
|
||||
v-model='filter'
|
||||
icon='search'
|
||||
|
||||
37
api/web/src/derived-types.d.ts
vendored
37
api/web/src/derived-types.d.ts
vendored
@@ -10468,7 +10468,7 @@ export interface paths {
|
||||
/** @description Order in which results are returned based on the "sort" query param */
|
||||
order: "asc" | "desc";
|
||||
/** @description No Description */
|
||||
sort: "id" | "name" | "created" | "updated" | "username" | "connection" | "layer" | "source_id" | "source_type" | "source_model" | "publish" | "recording" | "ephemeral" | "channel" | "expiration" | "path" | "stream_user" | "stream_pass" | "read_user" | "read_pass" | "proxy" | "enableRLS";
|
||||
sort: "id" | "name" | "created" | "updated" | "username" | "connection" | "layer" | "source_id" | "source_type" | "source_model" | "publish" | "recording" | "share" | "ephemeral" | "channel" | "expiration" | "path" | "stream_user" | "stream_pass" | "read_user" | "read_pass" | "proxy" | "enableRLS";
|
||||
/** @description Filter results by a human readable name field */
|
||||
filter: string;
|
||||
};
|
||||
@@ -10502,6 +10502,7 @@ export interface paths {
|
||||
source_model: string;
|
||||
publish: boolean;
|
||||
recording: boolean;
|
||||
share: boolean;
|
||||
ephemeral: boolean;
|
||||
channel: null | string;
|
||||
expiration: null | string;
|
||||
@@ -10614,6 +10615,11 @@ export interface paths {
|
||||
* @default false
|
||||
*/
|
||||
publish: boolean;
|
||||
/**
|
||||
* @description Allow other users to manage lease if they are also members of the channel
|
||||
* @default false
|
||||
*/
|
||||
share: boolean;
|
||||
/**
|
||||
* @description Increase stream security by enforcing a seperate read and write username/password
|
||||
* @default false
|
||||
@@ -10648,6 +10654,7 @@ export interface paths {
|
||||
source_model: string;
|
||||
publish: boolean;
|
||||
recording: boolean;
|
||||
share: boolean;
|
||||
ephemeral: boolean;
|
||||
channel: null | string;
|
||||
expiration: null | string;
|
||||
@@ -10879,6 +10886,7 @@ export interface paths {
|
||||
source_model: string;
|
||||
publish: boolean;
|
||||
recording: boolean;
|
||||
share: boolean;
|
||||
ephemeral: boolean;
|
||||
channel: null | string;
|
||||
expiration: null | string;
|
||||
@@ -11093,6 +11101,8 @@ export interface paths {
|
||||
source_model?: string;
|
||||
channel?: string | null;
|
||||
secure?: boolean;
|
||||
/** @description Allow other users to manage lease if they are also members of the channel */
|
||||
share?: boolean;
|
||||
/**
|
||||
* @description Rotate Read-User Credentials if using seperate read/write user - infers secure: true
|
||||
* @default false
|
||||
@@ -11129,6 +11139,7 @@ export interface paths {
|
||||
source_model: string;
|
||||
publish: boolean;
|
||||
recording: boolean;
|
||||
share: boolean;
|
||||
ephemeral: boolean;
|
||||
channel: null | string;
|
||||
expiration: null | string;
|
||||
@@ -32705,7 +32716,7 @@ export interface paths {
|
||||
/** @description Order in which results are returned based on the "sort" query param */
|
||||
order: "asc" | "desc";
|
||||
/** @description No Description */
|
||||
sort: "id" | "name" | "created" | "updated" | "username" | "connection" | "layer" | "source_id" | "source_type" | "source_model" | "publish" | "recording" | "ephemeral" | "channel" | "expiration" | "path" | "stream_user" | "stream_pass" | "read_user" | "read_pass" | "proxy" | "enableRLS";
|
||||
sort: "id" | "name" | "created" | "updated" | "username" | "connection" | "layer" | "source_id" | "source_type" | "source_model" | "publish" | "recording" | "share" | "ephemeral" | "channel" | "expiration" | "path" | "stream_user" | "stream_pass" | "read_user" | "read_pass" | "proxy" | "enableRLS";
|
||||
/** @description No Description */
|
||||
expired: "true" | "false" | "all";
|
||||
/** @description No Description */
|
||||
@@ -32740,6 +32751,7 @@ export interface paths {
|
||||
source_model: string;
|
||||
publish: boolean;
|
||||
recording: boolean;
|
||||
share: boolean;
|
||||
ephemeral: boolean;
|
||||
channel: null | string;
|
||||
expiration: null | string;
|
||||
@@ -32854,6 +32866,11 @@ export interface paths {
|
||||
* @default false
|
||||
*/
|
||||
publish: boolean;
|
||||
/**
|
||||
* @description Allow other users to manage lease if they are also members of the channel
|
||||
* @default false
|
||||
*/
|
||||
share: boolean;
|
||||
/**
|
||||
* @description Increase stream security by enforcing a seperate read and write username/password
|
||||
* @default false
|
||||
@@ -32887,6 +32904,7 @@ export interface paths {
|
||||
source_model: string;
|
||||
publish: boolean;
|
||||
recording: boolean;
|
||||
share: boolean;
|
||||
ephemeral: boolean;
|
||||
channel: null | string;
|
||||
expiration: null | string;
|
||||
@@ -33006,6 +33024,7 @@ export interface paths {
|
||||
source_model: string;
|
||||
publish: boolean;
|
||||
recording: boolean;
|
||||
share: boolean;
|
||||
ephemeral: boolean;
|
||||
channel: null | string;
|
||||
expiration: null | string;
|
||||
@@ -33197,14 +33216,13 @@ export interface paths {
|
||||
channel?: string | null;
|
||||
secure?: boolean;
|
||||
/** @description Record streams to disk */
|
||||
recording: boolean;
|
||||
recording?: boolean;
|
||||
/** @description Publish stream URL to TAK Server Video Manager */
|
||||
publish: boolean;
|
||||
/**
|
||||
* @description System Admins can create non-expiring leases
|
||||
* @default false
|
||||
*/
|
||||
permanent: boolean;
|
||||
publish?: boolean;
|
||||
/** @description Allow other users to manage lease if they are also members of the channel */
|
||||
share?: boolean;
|
||||
/** @description System Admins can create non-expiring leases */
|
||||
permanent?: boolean;
|
||||
proxy?: string;
|
||||
};
|
||||
};
|
||||
@@ -33229,6 +33247,7 @@ export interface paths {
|
||||
source_model: string;
|
||||
publish: boolean;
|
||||
recording: boolean;
|
||||
share: boolean;
|
||||
ephemeral: boolean;
|
||||
channel: null | string;
|
||||
expiration: null | string;
|
||||
|
||||
Reference in New Issue
Block a user