@tak-ps/cloudtak 13.45.1 → 13.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,10 @@
1
1
  export declare function isNativePlatform(): boolean;
2
2
  export declare function supportsServiceWorker(): boolean;
3
3
  /**
4
- * Subscribe to foreground/background transitions in a way that is reliable on
5
- * native platforms. On native we use Capacitor's `App.appStateChange`, which
6
- * fires accurately when the app is suspended/resumed by the OS — unlike the web
7
- * `document.hidden`/`visibilitychange` API, which is unreliable inside an iOS
8
- * WebView. On web we fall back to the Page Visibility API.
9
- *
10
- * The handler is invoked with `true` when the app is backgrounded and `false`
11
- * when it returns to the foreground. Returns a function that removes the
12
- * listener.
4
+ * Subscribe to foreground/background transitions. On native we use Capacitor's
5
+ * `App.appStateChange` because the web `visibilitychange` API is unreliable
6
+ * inside an iOS WebView. The handler receives `true` when backgrounded and
7
+ * `false` when foregrounded; returns a function that removes the listener.
13
8
  */
14
9
  export declare function addBackgroundStateListener(handler: (isBackgrounded: boolean) => void): Promise<() => void>;
15
10
  export declare function openExternalUrl(url: string | URL): Promise<void>;
@@ -4,8 +4,6 @@ import { type Observable } from 'dexie';
4
4
  import type { ProfileChatroomList, ProfileChatList } from '../types.ts';
5
5
  /**
6
6
  * High Level Wrapper around the Profile Chatroom API
7
- *
8
- * @property {string} name - The name of the chatroom
9
7
  */
10
8
  export default class Chatroom {
11
9
  name: string;
@@ -17,11 +15,7 @@ export default class Chatroom {
17
15
  */
18
16
  static from(name: string): Promise<Chatroom | undefined>;
19
17
  /**
20
- * Loads an existing Chatroom from the local DB and refresh it,
21
- *
22
- * @param name - The unique identifier for the chatroom
23
- * @param opts - Options for loading the chatroom
24
- * @param opts.reload - Whether to reload the chatroom from the local DB
18
+ * Loads an existing Chatroom from the local DB and refresh it.
25
19
  */
26
20
  static load(name: string, opts?: {
27
21
  reload?: boolean;
@@ -1,12 +1,10 @@
1
1
  /**
2
- * FeatureManager provides methods for managing Features in both the API
3
- * and the dexie database. It is designed implement BaseInterface and
4
- * provides additional methods specific to the Feature entity, such as counting,
5
- * listing with filters, downloading, and deleting features.
2
+ * FeatureManager manages Features in both the API and the dexie database,
3
+ * implementing BaseInterface with Feature-specific methods (counting, listing
4
+ * with filters, downloading, deleting).
6
5
  *
7
- * Note that it currently does not handle re-rendering calls in the map stack and therefore
8
- * must be used in conjunction with the cot.ts module or atlas-database.ts to ensure
9
- * that re-rendering is triggered.
6
+ * Note: it does not trigger re-rendering in the map stack, so it must be used
7
+ * alongside cot.ts or atlas-database.ts to ensure re-rendering happens.
10
8
  */
11
9
  import { type Observable } from 'dexie';
12
10
  import { type DBFeature } from '../database.ts';
@@ -5,13 +5,6 @@ import jsonata from 'jsonata';
5
5
  *
6
6
  * TODO: Once all COTs are in IndexDB, apply the filter on to a new field in the COT
7
7
  * called "filtered": [ <filterid>, ... ] so we don't have to re-evaluate the filter each time
8
- *
9
- * @property {string} id - The unique identifier for the filter
10
- * @property {string} external - The external ID of the filter
11
- * @property {string} name - The name of the filter
12
- * @property {string} source - The source of the filter
13
- * @property {boolean} internal - Whether the filter is internal
14
- * @property {string} query - The JSONata query string for the filter
15
8
  */
16
9
  export default class Filter {
17
10
  id: string;
@@ -41,14 +41,11 @@ export default class BaseInterface {
41
41
  /**
42
42
  * Returns a single item from the database by its unique identifier
43
43
  *
44
- * @param id - The unique identifier of the item to retrieve
45
- * @param opts - Optional parameters for fetching the item, such as whether to trigger a sync before fetching
44
+ * @param opts - Optional parameters, such as whether to trigger a sync before fetching
46
45
  */
47
46
  static from(id: string, opts?: BaseInterface_FromOptions): Promise<unknown>;
48
47
  /**
49
48
  * Returns a single item from the database by its unique identifier and updates in real-time when the item changes
50
- *
51
- * @param id - The unique identifier of the item to retrieve
52
49
  */
53
50
  static liveFrom(id: string): Observable<unknown>;
54
51
  /**
@@ -57,15 +54,10 @@ export default class BaseInterface {
57
54
  static generate(data: unknown): Promise<unknown>;
58
55
  /**
59
56
  * Updates an item in the database by its unique identifier and attempts to update it via the API
60
- *
61
- * @param id - The unique identifier of the item to update
62
- * @param data - The data to update the item with
63
57
  */
64
58
  static update(id: string, data: unknown): Promise<void>;
65
59
  /**
66
60
  * Deletes an item from the database by its unique identifier and attempts to delete it via the API
67
- *
68
- * @param id - The unique identifier of the item to delete
69
61
  */
70
62
  static delete(id?: unknown): Promise<void>;
71
63
  }
@@ -1,9 +1,6 @@
1
1
  import type { ProfileOverlay, ProfileOverlay_Create } from '../types.ts';
2
2
  import type { LayerSpecification } from 'maplibre-gl';
3
3
  import { type DBOverlay } from '../database.ts';
4
- /**
5
- * @class
6
- */
7
4
  export default class Overlay {
8
5
  _destroyed: boolean;
9
6
  _internal: boolean;
@@ -2,11 +2,7 @@
2
2
  * Register (or refresh) this device's FCM token as a `push` paging source.
3
3
  * Safe to call repeatedly — it only writes to the server when the token
4
4
  * changes. No-op on non-native platforms or when no token is available.
5
- *
6
- * Concurrent calls are serialized through an in-flight promise chain so that
7
- * each caller awaits a real sync attempt (rather than being dropped while
8
- * another sync is in progress). The stored-token comparison inside the sync
9
- * coalesces redundant server writes.
5
+ * Concurrent calls are serialized so each caller awaits a real sync attempt.
10
6
  */
11
7
  export declare function syncPushToken(token: string | null): Promise<void>;
12
8
  /**
@@ -27,9 +27,6 @@ export default class SubscriptionFeature {
27
27
  * This will udpate the feature in the local DB, submit it to the TAK Server and
28
28
  * mark the subscription as dirty for a re-render
29
29
  *
30
- * @param atlas - The Atlas instance
31
- * @param cot - The COT object to upsert
32
- * @param opts - Options for updating the feature
33
30
  * @param opts.skipNetwork - If true, the feature will not be updated on the server - IE in response to a Mission Change event
34
31
  */
35
32
  update(atlas: Atlas, cot: COT, opts?: {
@@ -4,7 +4,7 @@ import SubscriptionContents from './subscription-contents.ts';
4
4
  import SubscriptionFeature from './subscription-feature.ts';
5
5
  import SubscriptionLayer from './subscription-layer.ts';
6
6
  import SubscriptionChat from './subscription-chat.ts';
7
- import type { Mission, MissionRole, MissionList, MissionSubscriptions, MissionInvite } from '../types.ts';
7
+ import type { Mission, MissionRole, MissionRoleType, MissionList, MissionSubscriptions, MissionInvite } from '../types.ts';
8
8
  export declare enum SubscriptionEventType {
9
9
  CREATE = "subscription::create",
10
10
  UPDATE = "subscription::update",
@@ -20,15 +20,6 @@ export type SubscriptionEvent = {
20
20
  };
21
21
  /**
22
22
  * High Level Wrapper around the Data/Mission Sync API
23
- *
24
- * @property {string} guid - The unique identifier for the mission
25
- * @property {string} name - The name of the mission
26
- * @property {Mission} meta - The mission metadata
27
- * @property {MissionRole} role - The role of the user in the mission
28
- * @property {string} token - The CloudTAK Authentication token for API calls
29
- * @property {string} [missiontoken] - The mission token for authentication
30
- *
31
- * @property {boolean} subscribed - Whether the user is subscribed to the mission
32
23
  */
33
24
  export default class Subscription {
34
25
  guid: string;
@@ -61,13 +52,6 @@ export default class Subscription {
61
52
  /**
62
53
  * Loads an existing Subscription from the local DB an refreshes it,
63
54
  * or creates a new Subscription from the server if it does not exist locally.
64
- *
65
- * @param guid - The unique identifier for the mission
66
- * @param opts - Options for loading the subscription
67
- * @param opts.token - The CloudTAK Authentication token for API calls
68
- * @param opts.reload - Whether to reload the mission from the local DB
69
- * @param opts.missiontoken - The mission token for authentication
70
- * @param opts.subscribed - Whether the user is subscribed to the mission
71
55
  */
72
56
  static load(guid: string, opts: {
73
57
  token: string;
@@ -99,10 +83,7 @@ export default class Subscription {
99
83
  /**
100
84
  * List all locally stored missions, with optional filtering
101
85
  *
102
- * @param filter - Filter options for the local mission list
103
86
  * @param filter.role - Filter by minimum role
104
- * @param filter.subscribed - Filter by subscription status
105
- * @param filter.dirty - Filter by dirty status
106
87
  */
107
88
  static localList(filter?: {
108
89
  role?: 'MISSION_OWNER' | 'MISSION_SUBSCRIBER' | 'MISSION_READONLY_SUBSCRIBER';
@@ -118,6 +99,10 @@ export default class Subscription {
118
99
  }): Promise<MissionList>;
119
100
  static headers(token?: string): Record<string, string>;
120
101
  invite(invitee: string, role?: string): Promise<void>;
102
+ changeRole(sub: {
103
+ clientUid: string;
104
+ username: string;
105
+ }, role: MissionRoleType): Promise<void>;
121
106
  invites(): Promise<MissionInvite[]>;
122
107
  deleteInvite(invite: {
123
108
  type: string;
@@ -11,6 +11,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
11
11
  id: number;
12
12
  created: string;
13
13
  updated: string;
14
+ parent: null | number;
14
15
  name: string;
15
16
  url: string;
16
17
  protocol: "zxy" | "mapserver" | "imageserver" | "featureserver" | "hosted";
@@ -1,10 +1,7 @@
1
1
  import Subscription from '../../../../base/subscription.ts';
2
2
  type __VLS_Props = {
3
- menu?: boolean;
4
3
  subscription: Subscription;
5
4
  };
6
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
7
- menu: boolean;
8
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
6
  declare const _default: typeof __VLS_export;
10
7
  export default _default;
@@ -7,9 +7,11 @@ type __VLS_Props = {
7
7
  hover?: boolean;
8
8
  compact?: boolean;
9
9
  };
10
- declare var __VLS_27: {};
10
+ declare var __VLS_27: {}, __VLS_29: {};
11
11
  type __VLS_Slots = {} & {
12
12
  actions?: (props: typeof __VLS_27) => any;
13
+ } & {
14
+ expanded?: (props: typeof __VLS_29) => any;
13
15
  };
14
16
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
17
  chat: (contact: {
@@ -44,8 +44,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
44
44
  background: string;
45
45
  shadow: boolean;
46
46
  fillHeight: boolean;
47
- interactive: boolean;
48
47
  editable: boolean;
48
+ interactive: boolean;
49
49
  editTitle: string;
50
50
  containerClass: string;
51
51
  borderClass: string;
@@ -36,8 +36,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
36
36
  background: string;
37
37
  shadow: boolean;
38
38
  fillHeight: boolean;
39
- tone: "muted" | "accent";
40
39
  editable: boolean;
40
+ tone: "muted" | "accent";
41
41
  editTitle: string;
42
42
  containerClass: string;
43
43
  borderClass: string;
@@ -11,7 +11,6 @@ interface Props {
11
11
  }
12
12
  /**
13
13
  * Resets the component state and file input.
14
- * This function is exposed to be callable from a parent component.
15
14
  */
16
15
  declare function refresh(): void;
17
16
  declare function upload(opts?: {
@@ -18,7 +18,7 @@ export { OrientationPermission } from './device/orientation.ts';
18
18
  export { StoragePermission } from './device/storage.ts';
19
19
  export { WakeLockPermission } from './device/wake-lock.ts';
20
20
  export { NetworkStatus } from './device/network.ts';
21
- export declare const useDeviceStore: import("pinia").StoreDefinition<"device", Pick<{
21
+ export declare const useDeviceStore: import("pinia").SetupStoreDefinition<"device", {
22
22
  permissions: {
23
23
  notification: BrowserPermissionState;
24
24
  storage: BrowserPermissionState;
@@ -60,88 +60,4 @@ export declare const useDeviceStore: import("pinia").StoreDefinition<"device", P
60
60
  requestWakeLockPermission: () => Promise<void>;
61
61
  requestFileSystemPermission: () => Promise<void>;
62
62
  releaseWakeLockSentinel: () => Promise<void>;
63
- }, "notification" | "storage" | "orientation" | "camera" | "wakeLock" | "fileSystem" | "permissions" | "geolocation" | "network">, Pick<{
64
- permissions: {
65
- notification: BrowserPermissionState;
66
- storage: BrowserPermissionState;
67
- orientation: BrowserPermissionState;
68
- location: BrowserPermissionState;
69
- camera: BrowserPermissionState;
70
- wakeLock: BrowserPermissionState;
71
- fileSystem: BrowserPermissionState;
72
- };
73
- network: import("vue").Raw<NetworkStatus>;
74
- geolocation: import("vue").Raw<GeolocationPermission>;
75
- notification: import("vue").Raw<BrowserNotificationPermission>;
76
- orientation: import("vue").Raw<OrientationPermission>;
77
- storage: import("vue").Raw<StoragePermission>;
78
- camera: import("vue").Raw<CameraPermission>;
79
- wakeLock: import("vue").Raw<WakeLockPermission>;
80
- fileSystem: import("vue").Raw<FileSystemPermission>;
81
- setPermissionStatus: (type: BrowserPermissionType, state: BrowserPermissionState) => void;
82
- refreshPermissionStatuses: () => Promise<void>;
83
- initializePermissionSubscriptions: (onLocationGranted?: () => void) => Promise<void>;
84
- hasOrientationSupport: () => boolean;
85
- hasOrientationPermissionRequest: () => boolean;
86
- refreshLocationPermissionStatus: () => Promise<void>;
87
- refreshNotificationPermissionStatus: () => Promise<void>;
88
- getMessagingToken: () => string | null;
89
- refreshMessagingToken: () => Promise<string | null>;
90
- onMessagingToken: (listener: (token: string | null) => void) => () => void;
91
- onNotificationAction: (listener: (data: PushNotificationData) => void) => () => void;
92
- refreshOrientationPermissionStatus: () => Promise<void>;
93
- refreshStoragePermissionStatus: () => Promise<void>;
94
- refreshCameraPermissionStatus: () => Promise<void>;
95
- refreshWakeLockPermissionStatus: () => Promise<void>;
96
- refreshFileSystemPermissionStatus: () => Promise<void>;
97
- requestLocationPermission: (onGranted?: () => void) => Promise<void>;
98
- requestNotificationPermission: () => Promise<void>;
99
- requestOrientationPermission: () => Promise<void>;
100
- requestStoragePermission: () => Promise<void>;
101
- requestCameraPermission: () => Promise<void>;
102
- requestWakeLockPermission: () => Promise<void>;
103
- requestFileSystemPermission: () => Promise<void>;
104
- releaseWakeLockSentinel: () => Promise<void>;
105
- }, never>, Pick<{
106
- permissions: {
107
- notification: BrowserPermissionState;
108
- storage: BrowserPermissionState;
109
- orientation: BrowserPermissionState;
110
- location: BrowserPermissionState;
111
- camera: BrowserPermissionState;
112
- wakeLock: BrowserPermissionState;
113
- fileSystem: BrowserPermissionState;
114
- };
115
- network: import("vue").Raw<NetworkStatus>;
116
- geolocation: import("vue").Raw<GeolocationPermission>;
117
- notification: import("vue").Raw<BrowserNotificationPermission>;
118
- orientation: import("vue").Raw<OrientationPermission>;
119
- storage: import("vue").Raw<StoragePermission>;
120
- camera: import("vue").Raw<CameraPermission>;
121
- wakeLock: import("vue").Raw<WakeLockPermission>;
122
- fileSystem: import("vue").Raw<FileSystemPermission>;
123
- setPermissionStatus: (type: BrowserPermissionType, state: BrowserPermissionState) => void;
124
- refreshPermissionStatuses: () => Promise<void>;
125
- initializePermissionSubscriptions: (onLocationGranted?: () => void) => Promise<void>;
126
- hasOrientationSupport: () => boolean;
127
- hasOrientationPermissionRequest: () => boolean;
128
- refreshLocationPermissionStatus: () => Promise<void>;
129
- refreshNotificationPermissionStatus: () => Promise<void>;
130
- getMessagingToken: () => string | null;
131
- refreshMessagingToken: () => Promise<string | null>;
132
- onMessagingToken: (listener: (token: string | null) => void) => () => void;
133
- onNotificationAction: (listener: (data: PushNotificationData) => void) => () => void;
134
- refreshOrientationPermissionStatus: () => Promise<void>;
135
- refreshStoragePermissionStatus: () => Promise<void>;
136
- refreshCameraPermissionStatus: () => Promise<void>;
137
- refreshWakeLockPermissionStatus: () => Promise<void>;
138
- refreshFileSystemPermissionStatus: () => Promise<void>;
139
- requestLocationPermission: (onGranted?: () => void) => Promise<void>;
140
- requestNotificationPermission: () => Promise<void>;
141
- requestOrientationPermission: () => Promise<void>;
142
- requestStoragePermission: () => Promise<void>;
143
- requestCameraPermission: () => Promise<void>;
144
- requestWakeLockPermission: () => Promise<void>;
145
- requestFileSystemPermission: () => Promise<void>;
146
- releaseWakeLockSentinel: () => Promise<void>;
147
- }, "setPermissionStatus" | "refreshPermissionStatuses" | "initializePermissionSubscriptions" | "hasOrientationSupport" | "hasOrientationPermissionRequest" | "refreshLocationPermissionStatus" | "refreshNotificationPermissionStatus" | "getMessagingToken" | "refreshMessagingToken" | "onMessagingToken" | "onNotificationAction" | "refreshOrientationPermissionStatus" | "refreshStoragePermissionStatus" | "refreshCameraPermissionStatus" | "refreshWakeLockPermissionStatus" | "refreshFileSystemPermissionStatus" | "requestLocationPermission" | "requestNotificationPermission" | "requestOrientationPermission" | "requestStoragePermission" | "requestCameraPermission" | "requestWakeLockPermission" | "requestFileSystemPermission" | "releaseWakeLockSentinel">>;
63
+ }>;
@@ -40,6 +40,7 @@ export type Mission_Create = paths["/api/marti/mission"]["post"]["requestBody"][
40
40
  export type MissionList = paths["/api/marti/mission"]["get"]["responses"]["200"]["content"]["application/json"];
41
41
  export type MissionInvite = paths["/api/marti/mission"]["get"]["responses"]["200"]["content"]["application/json"]["invites"][0];
42
42
  export type MissionRole = paths["/api/marti/missions/{:name}/role"]["get"]["responses"]["200"]["content"]["application/json"];
43
+ export type MissionRoleType = MissionRole["type"];
43
44
  export type MissionLog = paths["/api/marti/missions/{:name}/log/{:logid}"]["patch"]["responses"]["200"]["content"]["application/json"]["data"];
44
45
  export type MissionLogList = paths["/api/marti/missions/{:name}/log"]["get"]["responses"]["200"]["content"]["application/json"];
45
46
  export type MissionLayer = paths["/api/marti/missions/{:name}/layer/{:layerid}"]["get"]["responses"]["200"]["content"]["application/json"]["data"];
@@ -118,12 +118,26 @@ export default class AtlasDatabase {
118
118
  * @param opts.skipSave - Don't save the COT to the Profile Feature Database
119
119
  * @param opts.skipBroadcast - Don't broadcast the COT on the internal message bus to the UI
120
120
  * @param opts.authored - If the COT is authored, append creator information if the CoT is new & potentially add it to a mission
121
+ * @param opts.render - Defaults to true. When false, suppress the Mission_Change_Feature notification that reloads & re-renders the mission overlay. Callers adding many features to a mission at once (eg. a lasso import) should pass false and trigger a single loadMission() when finished.
121
122
  */
122
123
  add(feature: InputFeature, opts?: {
123
124
  skipSave?: boolean;
124
125
  skipBroadcast?: boolean;
125
126
  authored?: boolean;
127
+ render?: boolean;
126
128
  }): Promise<COT | void>;
129
+ /**
130
+ * Batch variant of add() for importing many features at once (eg. a GeoJSON
131
+ * or lasso import). Runs the entire loop inside the worker so the caller
132
+ * pays a single Comlink round-trip instead of one per feature, and returns
133
+ * nothing so no COTs are serialized back across the worker boundary.
134
+ */
135
+ addAll(features: InputFeature[], opts?: {
136
+ skipSave?: boolean;
137
+ skipBroadcast?: boolean;
138
+ authored?: boolean;
139
+ render?: boolean;
140
+ }): Promise<void>;
127
141
  /**
128
142
  * Return a CoT by ID if it exists
129
143
  *
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tak-ps/cloudtak",
3
3
  "type": "module",
4
- "version": "13.45.1",
4
+ "version": "13.47.0",
5
5
  "types": "dist/types/plugin.d.ts",
6
6
  "files": [
7
7
  "dist/types"
@@ -50,9 +50,9 @@
50
50
  "@simplewebauthn/browser": "^13.3.0",
51
51
  "@tabler/core": "^1.4.0",
52
52
  "@tabler/icons-vue": "^3.0.0",
53
- "@tak-ps/node-cot": "^14.20.0",
53
+ "@tak-ps/node-cot": "^14.45.0",
54
54
  "@tak-ps/node-p12": "^1.0.3",
55
- "@tak-ps/vue-tabler": "^4.26.1",
55
+ "@tak-ps/vue-tabler": "^4.29.3",
56
56
  "@turf/area": "^7.2.0",
57
57
  "@turf/bbox": "^7.1.0",
58
58
  "@turf/boolean-point-in-polygon": "^7.3.1",
@@ -84,11 +84,11 @@
84
84
  "hls.js": "^1.6.5",
85
85
  "imask": "^6.0.0",
86
86
  "jsonata": "^2.0.4",
87
- "maplibre-gl": "v6.0.0-21",
87
+ "maplibre-gl": "v6.0.0-22",
88
88
  "milsymbol": "^3.0.2",
89
89
  "openapi-fetch": "^0.17.0",
90
90
  "phone": "^3.1.59",
91
- "pinia": "^3.0.0",
91
+ "pinia": "^4.0.0",
92
92
  "rxjs": "^7.8.2",
93
93
  "sortablejs": "^1.15.2",
94
94
  "swagger-ui-dist": "^5.30.2",
@@ -112,8 +112,9 @@
112
112
  "@types/sortablejs": "^1.15.8",
113
113
  "@types/swagger-ui": "^5.21.1",
114
114
  "@vitejs/plugin-vue": "^6.0.0",
115
- "@vitest/ui": "^4.1.0",
116
115
  "@vitest/coverage-v8": "^4.1.0",
116
+ "@vitest/ui": "^4.1.0",
117
+ "@vue/devtools-api": "^8.1.5",
117
118
  "@vue/test-utils": "^2.4.6",
118
119
  "@vueuse/rxjs": "^14.1.0",
119
120
  "eslint": "^10.0.0",
@@ -1,7 +0,0 @@
1
- import Overlay from '../../../../base/overlay-class.ts';
2
- type __VLS_Props = {
3
- overlay: Overlay;
4
- };
5
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
- declare const _default: typeof __VLS_export;
7
- export default _default;