mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dda4b392f3 |
@@ -2,7 +2,7 @@ import { LoginResponseDto, ManualJobName } from '@immich/sdk';
|
|||||||
import { errorDto } from 'src/responses';
|
import { errorDto } from 'src/responses';
|
||||||
import { app, utils } from 'src/utils';
|
import { app, utils } from 'src/utils';
|
||||||
import request from 'supertest';
|
import request from 'supertest';
|
||||||
import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest';
|
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
|
||||||
|
|
||||||
describe('/admin/database-backups', () => {
|
describe('/admin/database-backups', () => {
|
||||||
let cookie: string | undefined;
|
let cookie: string | undefined;
|
||||||
@@ -13,9 +13,6 @@ describe('/admin/database-backups', () => {
|
|||||||
admin = await utils.adminSetup({
|
admin = await utils.adminSetup({
|
||||||
onboarding: false,
|
onboarding: false,
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
await utils.resetBackups(admin.accessToken);
|
await utils.resetBackups(admin.accessToken);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -568,8 +568,6 @@ export const utils = {
|
|||||||
name: ManualJobName.BackupDatabase,
|
name: ManualJobName.BackupDatabase,
|
||||||
});
|
});
|
||||||
|
|
||||||
await utils.waitForQueueFinish(accessToken, 'backupDatabase');
|
|
||||||
|
|
||||||
return utils.poll(
|
return utils.poll(
|
||||||
() => request(app).get('/admin/database-backups').set('Authorization', `Bearer ${accessToken}`),
|
() => request(app).get('/admin/database-backups').set('Authorization', `Bearer ${accessToken}`),
|
||||||
({ status, body }) => status === 200 && body.backups.length === 1,
|
({ status, body }) => status === 200 && body.backups.length === 1,
|
||||||
|
|||||||
@@ -197,16 +197,6 @@ class SyncStreamRepository extends DriftDatabaseRepository {
|
|||||||
try {
|
try {
|
||||||
await _db.batch((batch) {
|
await _db.batch((batch) {
|
||||||
for (final asset in data) {
|
for (final asset in data) {
|
||||||
// Avoid SqliteException(2067) when server re-issues a new id for
|
|
||||||
// the same (ownerId, checksum). #22522 #27186
|
|
||||||
_enqueueRemoteAssetDedupe(
|
|
||||||
batch,
|
|
||||||
id: asset.id,
|
|
||||||
ownerId: asset.ownerId,
|
|
||||||
checksum: asset.checksum,
|
|
||||||
libraryId: asset.libraryId,
|
|
||||||
);
|
|
||||||
|
|
||||||
final companion = RemoteAssetEntityCompanion(
|
final companion = RemoteAssetEntityCompanion(
|
||||||
name: Value(asset.originalFileName),
|
name: Value(asset.originalFileName),
|
||||||
type: Value(asset.type.toAssetType()),
|
type: Value(asset.type.toAssetType()),
|
||||||
@@ -246,15 +236,6 @@ class SyncStreamRepository extends DriftDatabaseRepository {
|
|||||||
try {
|
try {
|
||||||
await _db.batch((batch) {
|
await _db.batch((batch) {
|
||||||
for (final asset in data) {
|
for (final asset in data) {
|
||||||
// See updateAssetsV1 for why this dedupe is required. #22522 #27186
|
|
||||||
_enqueueRemoteAssetDedupe(
|
|
||||||
batch,
|
|
||||||
id: asset.id,
|
|
||||||
ownerId: asset.ownerId,
|
|
||||||
checksum: asset.checksum,
|
|
||||||
libraryId: asset.libraryId,
|
|
||||||
);
|
|
||||||
|
|
||||||
final companion = RemoteAssetEntityCompanion(
|
final companion = RemoteAssetEntityCompanion(
|
||||||
name: Value(asset.originalFileName),
|
name: Value(asset.originalFileName),
|
||||||
type: Value(asset.type.toAssetType()),
|
type: Value(asset.type.toAssetType()),
|
||||||
@@ -290,39 +271,6 @@ class SyncStreamRepository extends DriftDatabaseRepository {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Queues a DELETE that prunes any stale remote_asset row matching the
|
|
||||||
/// partial UNIQUE index for the incoming asset:
|
|
||||||
/// - libraryId IS NULL -> (owner_id, checksum)
|
|
||||||
/// - libraryId NOT NULL -> (owner_id, library_id, checksum)
|
|
||||||
/// The current id is excluded so a same-id update does not delete itself.
|
|
||||||
void _enqueueRemoteAssetDedupe(
|
|
||||||
Batch batch, {
|
|
||||||
required String id,
|
|
||||||
required String ownerId,
|
|
||||||
required String checksum,
|
|
||||||
required String? libraryId,
|
|
||||||
}) {
|
|
||||||
if (libraryId == null) {
|
|
||||||
batch.deleteWhere(
|
|
||||||
_db.remoteAssetEntity,
|
|
||||||
(row) =>
|
|
||||||
row.ownerId.equals(ownerId) &
|
|
||||||
row.checksum.equals(checksum) &
|
|
||||||
row.libraryId.isNull() &
|
|
||||||
row.id.equals(id).not(),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
batch.deleteWhere(
|
|
||||||
_db.remoteAssetEntity,
|
|
||||||
(row) =>
|
|
||||||
row.ownerId.equals(ownerId) &
|
|
||||||
row.checksum.equals(checksum) &
|
|
||||||
row.libraryId.equals(libraryId) &
|
|
||||||
row.id.equals(id).not(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> updateAssetsExifV1(Iterable<SyncAssetExifV1> data, {String debugLabel = 'user'}) async {
|
Future<void> updateAssetsExifV1(Iterable<SyncAssetExifV1> data, {String debugLabel = 'user'}) async {
|
||||||
try {
|
try {
|
||||||
await _db.batch((batch) {
|
await _db.batch((batch) {
|
||||||
|
|||||||
@@ -35,11 +35,10 @@ class BaseActionButton extends ConsumerWidget {
|
|||||||
final miniWidth = minWidth ?? (context.isMobile ? context.width / 4.5 : 75.0);
|
final miniWidth = minWidth ?? (context.isMobile ? context.width / 4.5 : 75.0);
|
||||||
final iconTheme = IconTheme.of(context);
|
final iconTheme = IconTheme.of(context);
|
||||||
final iconSize = iconTheme.size ?? 24.0;
|
final iconSize = iconTheme.size ?? 24.0;
|
||||||
|
final iconColor = this.iconColor ?? iconTheme.color ?? context.themeData.iconTheme.color;
|
||||||
final textColor = context.themeData.textTheme.labelLarge?.color;
|
final textColor = context.themeData.textTheme.labelLarge?.color;
|
||||||
|
|
||||||
if (iconOnly) {
|
if (iconOnly) {
|
||||||
final iconColor = this.iconColor ?? iconTheme.color ?? context.themeData.iconTheme.color;
|
|
||||||
|
|
||||||
return IconButton(
|
return IconButton(
|
||||||
onPressed: onPressed,
|
onPressed: onPressed,
|
||||||
icon: Icon(iconData, size: iconSize, color: iconColor),
|
icon: Icon(iconData, size: iconSize, color: iconColor),
|
||||||
@@ -47,18 +46,17 @@ class BaseActionButton extends ConsumerWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (menuItem) {
|
if (menuItem) {
|
||||||
final iconColor = this.iconColor;
|
final theme = context.themeData;
|
||||||
|
final effectiveIconColor = iconColor ?? theme.iconTheme.color ?? theme.colorScheme.onSurfaceVariant;
|
||||||
|
|
||||||
return MenuItemButton(
|
return MenuItemButton(
|
||||||
style: MenuItemButton.styleFrom(alignment: Alignment.centerLeft, padding: const EdgeInsets.all(16)),
|
style: MenuItemButton.styleFrom(alignment: Alignment.centerLeft, padding: const EdgeInsets.all(16)),
|
||||||
leadingIcon: Icon(iconData, color: iconColor),
|
leadingIcon: Icon(iconData, color: effectiveIconColor),
|
||||||
onPressed: onPressed,
|
onPressed: onPressed,
|
||||||
child: Text(label, style: TextStyle(fontSize: 16, color: iconColor)),
|
child: Text(label, style: theme.textTheme.labelLarge?.copyWith(fontSize: 16, color: iconColor)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
final iconColor = this.iconColor ?? iconTheme.color ?? context.themeData.iconTheme.color;
|
|
||||||
|
|
||||||
return ConstrainedBox(
|
return ConstrainedBox(
|
||||||
constraints: BoxConstraints(maxWidth: maxWidth),
|
constraints: BoxConstraints(maxWidth: maxWidth),
|
||||||
child: MaterialButton(
|
child: MaterialButton(
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class ViewerKebabMenu extends ConsumerWidget {
|
|||||||
timelineOrigin: timelineOrigin,
|
timelineOrigin: timelineOrigin,
|
||||||
);
|
);
|
||||||
|
|
||||||
final menuChildren = ActionButtonBuilder.buildViewerKebabMenu(actionContext, context, ref);
|
final menuChildren = ActionButtonBuilder.buildViewerKebabMenu(actionContext, context);
|
||||||
|
|
||||||
return MenuAnchor(
|
return MenuAnchor(
|
||||||
consumeOutsideTap: true,
|
consumeOutsideTap: true,
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ class ActionButtonBuilder {
|
|||||||
return _actionTypes.where((type) => type.shouldShow(context)).map((type) => type.buildButton(context)).toList();
|
return _actionTypes.where((type) => type.shouldShow(context)).map((type) => type.buildButton(context)).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
static List<Widget> buildViewerKebabMenu(ActionButtonContext context, BuildContext buildContext, WidgetRef ref) {
|
static List<Widget> buildViewerKebabMenu(ActionButtonContext context, BuildContext buildContext) {
|
||||||
final visibleButtons = defaultViewerKebabMenuOrder
|
final visibleButtons = defaultViewerKebabMenuOrder
|
||||||
.where((type) => !defaultViewerBottomBarButtons.contains(type) && type.shouldShow(context))
|
.where((type) => !defaultViewerBottomBarButtons.contains(type) && type.shouldShow(context))
|
||||||
.toList();
|
.toList();
|
||||||
@@ -346,7 +346,7 @@ class ActionButtonBuilder {
|
|||||||
if (lastGroup != null && type.kebabMenuGroup != lastGroup) {
|
if (lastGroup != null && type.kebabMenuGroup != lastGroup) {
|
||||||
result.add(const Divider(height: 1));
|
result.add(const Divider(height: 1));
|
||||||
}
|
}
|
||||||
result.add(type.buildButton(context, buildContext, false, true).build(buildContext, ref));
|
result.add(type.buildButton(context, buildContext, false, true));
|
||||||
lastGroup = type.kebabMenuGroup;
|
lastGroup = type.kebabMenuGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ SyncAssetV1 _createAsset({
|
|||||||
String ownerId = 'user-1',
|
String ownerId = 'user-1',
|
||||||
int? width,
|
int? width,
|
||||||
int? height,
|
int? height,
|
||||||
String? libraryId,
|
|
||||||
}) {
|
}) {
|
||||||
return SyncAssetV1(
|
return SyncAssetV1(
|
||||||
id: id,
|
id: id,
|
||||||
@@ -46,38 +45,7 @@ SyncAssetV1 _createAsset({
|
|||||||
height: height,
|
height: height,
|
||||||
deletedAt: null,
|
deletedAt: null,
|
||||||
duration: null,
|
duration: null,
|
||||||
libraryId: libraryId,
|
libraryId: null,
|
||||||
livePhotoVideoId: null,
|
|
||||||
stackId: null,
|
|
||||||
thumbhash: null,
|
|
||||||
isEdited: false,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
SyncAssetV2 _createAssetV2({
|
|
||||||
required String id,
|
|
||||||
required String checksum,
|
|
||||||
required String fileName,
|
|
||||||
String ownerId = 'user-1',
|
|
||||||
String? libraryId,
|
|
||||||
}) {
|
|
||||||
return SyncAssetV2(
|
|
||||||
id: id,
|
|
||||||
checksum: checksum,
|
|
||||||
originalFileName: fileName,
|
|
||||||
type: AssetTypeEnum.IMAGE,
|
|
||||||
ownerId: ownerId,
|
|
||||||
isFavorite: false,
|
|
||||||
fileCreatedAt: DateTime(2024, 1, 1),
|
|
||||||
fileModifiedAt: DateTime(2024, 1, 1),
|
|
||||||
createdAt: DateTime(2024, 1, 1),
|
|
||||||
localDateTime: DateTime(2024, 1, 1),
|
|
||||||
visibility: AssetVisibility.timeline,
|
|
||||||
width: null,
|
|
||||||
height: null,
|
|
||||||
deletedAt: null,
|
|
||||||
duration: 0,
|
|
||||||
libraryId: libraryId,
|
|
||||||
livePhotoVideoId: null,
|
livePhotoVideoId: null,
|
||||||
stackId: null,
|
stackId: null,
|
||||||
thumbhash: null,
|
thumbhash: null,
|
||||||
@@ -272,82 +240,4 @@ void main() {
|
|||||||
expect(after.backupSelection, equals(BackupSelection.none));
|
expect(after.backupSelection, equals(BackupSelection.none));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('SyncStreamRepository - updateAssetsV1 dedupe (#22522 #27186)', () {
|
|
||||||
test('replaces stale row when new id arrives with same (ownerId, checksum) and library is null', () async {
|
|
||||||
await sut.updateUsersV1([_createUser()]);
|
|
||||||
await sut.updateAssetsV1([_createAsset(id: 'old-id', checksum: 'AAA', fileName: 'photo.jpg')]);
|
|
||||||
|
|
||||||
// Server re-issues a new id for the same content (replace-with-upload, immich-go, etc.)
|
|
||||||
await sut.updateAssetsV1([_createAsset(id: 'new-id', checksum: 'AAA', fileName: 'photo.jpg')]);
|
|
||||||
|
|
||||||
final rows = await db.remoteAssetEntity.select().get();
|
|
||||||
expect(rows, hasLength(1));
|
|
||||||
expect(rows.single.id, equals('new-id'));
|
|
||||||
expect(rows.single.checksum, equals('AAA'));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('replaces stale row by (ownerId, libraryId, checksum) when library is not null', () async {
|
|
||||||
await sut.updateUsersV1([_createUser()]);
|
|
||||||
await sut.updateAssetsV1([
|
|
||||||
_createAsset(id: 'old-id', checksum: 'AAA', fileName: 'photo.jpg', libraryId: 'lib-1'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
await sut.updateAssetsV1([
|
|
||||||
_createAsset(id: 'new-id', checksum: 'AAA', fileName: 'photo.jpg', libraryId: 'lib-1'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
final rows = await db.remoteAssetEntity.select().get();
|
|
||||||
expect(rows, hasLength(1));
|
|
||||||
expect(rows.single.id, equals('new-id'));
|
|
||||||
expect(rows.single.libraryId, equals('lib-1'));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('library and non-library rows with same (ownerId, checksum) coexist', () async {
|
|
||||||
await sut.updateUsersV1([_createUser()]);
|
|
||||||
await sut.updateAssetsV1([
|
|
||||||
_createAsset(id: 'lib-row', checksum: 'AAA', fileName: 'photo.jpg', libraryId: 'lib-1'),
|
|
||||||
_createAsset(id: 'main-row', checksum: 'AAA', fileName: 'photo.jpg'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
final rows = await db.remoteAssetEntity.select().get();
|
|
||||||
expect(rows, hasLength(2), reason: 'library NULL and NOT NULL match different partial indexes');
|
|
||||||
expect(rows.map((r) => r.id).toSet(), equals({'lib-row', 'main-row'}));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('different owners with same checksum coexist', () async {
|
|
||||||
await sut.updateUsersV1([_createUser(id: 'user-1')]);
|
|
||||||
await sut.updateUsersV1([_createUser(id: 'user-2')]);
|
|
||||||
await sut.updateAssetsV1([
|
|
||||||
_createAsset(id: 'a-id', checksum: 'AAA', fileName: 'photo.jpg', ownerId: 'user-1'),
|
|
||||||
_createAsset(id: 'b-id', checksum: 'AAA', fileName: 'photo.jpg', ownerId: 'user-2'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
final rows = await db.remoteAssetEntity.select().get();
|
|
||||||
expect(rows, hasLength(2));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('same id arriving again updates in place (no self-delete)', () async {
|
|
||||||
await sut.updateUsersV1([_createUser()]);
|
|
||||||
await sut.updateAssetsV1([_createAsset(id: 'same-id', checksum: 'AAA', fileName: 'photo.jpg')]);
|
|
||||||
|
|
||||||
await sut.updateAssetsV1([_createAsset(id: 'same-id', checksum: 'AAA', fileName: 'renamed.jpg')]);
|
|
||||||
|
|
||||||
final rows = await db.remoteAssetEntity.select().get();
|
|
||||||
expect(rows, hasLength(1));
|
|
||||||
expect(rows.single.id, equals('same-id'));
|
|
||||||
expect(rows.single.name, equals('renamed.jpg'), reason: 'ON CONFLICT(id) DO UPDATE path still works');
|
|
||||||
});
|
|
||||||
|
|
||||||
test('updateAssetsV2 dedupes the same way', () async {
|
|
||||||
await sut.updateUsersV1([_createUser()]);
|
|
||||||
await sut.updateAssetsV2([_createAssetV2(id: 'old-id', checksum: 'AAA', fileName: 'photo.jpg')]);
|
|
||||||
|
|
||||||
await sut.updateAssetsV2([_createAssetV2(id: 'new-id', checksum: 'AAA', fileName: 'photo.jpg')]);
|
|
||||||
|
|
||||||
final rows = await db.remoteAssetEntity.select().get();
|
|
||||||
expect(rows, hasLength(1));
|
|
||||||
expect(rows.single.id, equals('new-id'));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+83
-83
@@ -732,7 +732,7 @@ importers:
|
|||||||
version: link:../packages/sdk
|
version: link:../packages/sdk
|
||||||
'@immich/ui':
|
'@immich/ui':
|
||||||
specifier: ^0.77.0
|
specifier: ^0.77.0
|
||||||
version: 0.77.3(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)
|
version: 0.77.3(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)
|
||||||
'@mapbox/mapbox-gl-rtl-text':
|
'@mapbox/mapbox-gl-rtl-text':
|
||||||
specifier: 0.4.0
|
specifier: 0.4.0
|
||||||
version: 0.4.0
|
version: 0.4.0
|
||||||
@@ -768,7 +768,7 @@ importers:
|
|||||||
version: 0.42.0
|
version: 0.42.0
|
||||||
'@zoom-image/svelte':
|
'@zoom-image/svelte':
|
||||||
specifier: ^0.3.0
|
specifier: ^0.3.0
|
||||||
version: 0.3.9(svelte@5.55.2)
|
version: 0.3.9(svelte@5.55.7)
|
||||||
dom-to-image:
|
dom-to-image:
|
||||||
specifier: ^2.6.0
|
specifier: ^2.6.0
|
||||||
version: 2.6.0
|
version: 2.6.0
|
||||||
@@ -822,16 +822,16 @@ importers:
|
|||||||
version: 5.2.2
|
version: 5.2.2
|
||||||
svelte-i18n:
|
svelte-i18n:
|
||||||
specifier: ^4.0.1
|
specifier: ^4.0.1
|
||||||
version: 4.0.1(svelte@5.55.2)
|
version: 4.0.1(svelte@5.55.7)
|
||||||
svelte-jsoneditor:
|
svelte-jsoneditor:
|
||||||
specifier: ^3.10.0
|
specifier: ^3.10.0
|
||||||
version: 3.12.0(svelte@5.55.2)
|
version: 3.12.0(svelte@5.55.7)
|
||||||
svelte-maplibre:
|
svelte-maplibre:
|
||||||
specifier: ^1.2.5
|
specifier: ^1.2.5
|
||||||
version: 1.3.0(svelte@5.55.2)
|
version: 1.3.0(svelte@5.55.7)
|
||||||
svelte-persisted-store:
|
svelte-persisted-store:
|
||||||
specifier: ^0.12.0
|
specifier: ^0.12.0
|
||||||
version: 0.12.0(svelte@5.55.2)
|
version: 0.12.0(svelte@5.55.7)
|
||||||
tabbable:
|
tabbable:
|
||||||
specifier: ^6.2.0
|
specifier: ^6.2.0
|
||||||
version: 6.4.0
|
version: 6.4.0
|
||||||
@@ -865,16 +865,16 @@ importers:
|
|||||||
version: 3.1.2
|
version: 3.1.2
|
||||||
'@sveltejs/adapter-static':
|
'@sveltejs/adapter-static':
|
||||||
specifier: ^3.0.8
|
specifier: ^3.0.8
|
||||||
version: 3.0.10(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))
|
version: 3.0.10(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))
|
||||||
'@sveltejs/enhanced-img':
|
'@sveltejs/enhanced-img':
|
||||||
specifier: ^0.10.4
|
specifier: ^0.10.4
|
||||||
version: 0.10.4(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(rollup@4.55.1)(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
version: 0.10.4(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(rollup@4.55.1)(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
'@sveltejs/kit':
|
'@sveltejs/kit':
|
||||||
specifier: ^2.56.1
|
specifier: ^2.56.1
|
||||||
version: 2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
version: 2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
'@sveltejs/vite-plugin-svelte':
|
'@sveltejs/vite-plugin-svelte':
|
||||||
specifier: 7.0.0
|
specifier: 7.0.0
|
||||||
version: 7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
version: 7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
'@tailwindcss/vite':
|
'@tailwindcss/vite':
|
||||||
specifier: ^4.2.4
|
specifier: ^4.2.4
|
||||||
version: 4.2.4(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
version: 4.2.4(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
@@ -883,13 +883,13 @@ importers:
|
|||||||
version: 6.9.1
|
version: 6.9.1
|
||||||
'@testing-library/svelte':
|
'@testing-library/svelte':
|
||||||
specifier: ^5.2.8
|
specifier: ^5.2.8
|
||||||
version: 5.3.1(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.5)
|
version: 5.3.1(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.5)
|
||||||
'@testing-library/user-event':
|
'@testing-library/user-event':
|
||||||
specifier: ^14.5.2
|
specifier: ^14.5.2
|
||||||
version: 14.6.1(@testing-library/dom@10.4.1)
|
version: 14.6.1(@testing-library/dom@10.4.1)
|
||||||
'@trivago/prettier-plugin-sort-imports':
|
'@trivago/prettier-plugin-sort-imports':
|
||||||
specifier: ^6.0.2
|
specifier: ^6.0.2
|
||||||
version: 6.0.2(prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.2))(prettier@3.8.3)(svelte@5.55.2)
|
version: 6.0.2(prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.7))(prettier@3.8.3)(svelte@5.55.7)
|
||||||
'@types/chromecast-caf-sender':
|
'@types/chromecast-caf-sender':
|
||||||
specifier: ^1.0.11
|
specifier: ^1.0.11
|
||||||
version: 1.0.11
|
version: 1.0.11
|
||||||
@@ -928,7 +928,7 @@ importers:
|
|||||||
version: 7.0.1(eslint@10.2.1(jiti@2.6.1))
|
version: 7.0.1(eslint@10.2.1(jiti@2.6.1))
|
||||||
eslint-plugin-svelte:
|
eslint-plugin-svelte:
|
||||||
specifier: ^3.12.4
|
specifier: ^3.12.4
|
||||||
version: 3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.2)
|
version: 3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.7)
|
||||||
eslint-plugin-unicorn:
|
eslint-plugin-unicorn:
|
||||||
specifier: ^64.0.0
|
specifier: ^64.0.0
|
||||||
version: 64.0.0(eslint@10.2.1(jiti@2.6.1))
|
version: 64.0.0(eslint@10.2.1(jiti@2.6.1))
|
||||||
@@ -946,19 +946,19 @@ importers:
|
|||||||
version: 4.2.0(prettier@3.8.3)
|
version: 4.2.0(prettier@3.8.3)
|
||||||
prettier-plugin-svelte:
|
prettier-plugin-svelte:
|
||||||
specifier: ^3.3.3
|
specifier: ^3.3.3
|
||||||
version: 3.5.1(prettier@3.8.3)(svelte@5.55.2)
|
version: 3.5.1(prettier@3.8.3)(svelte@5.55.7)
|
||||||
rollup-plugin-visualizer:
|
rollup-plugin-visualizer:
|
||||||
specifier: ^7.0.0
|
specifier: ^7.0.0
|
||||||
version: 7.0.1(rolldown@1.0.0-rc.17)(rollup@4.55.1)
|
version: 7.0.1(rolldown@1.0.0-rc.17)(rollup@4.55.1)
|
||||||
svelte:
|
svelte:
|
||||||
specifier: 5.55.2
|
specifier: 5.55.7
|
||||||
version: 5.55.2
|
version: 5.55.7
|
||||||
svelte-check:
|
svelte-check:
|
||||||
specifier: ^4.4.6
|
specifier: ^4.4.6
|
||||||
version: 4.4.6(picomatch@4.0.4)(svelte@5.55.2)(typescript@6.0.3)
|
version: 4.4.6(picomatch@4.0.4)(svelte@5.55.7)(typescript@6.0.3)
|
||||||
svelte-eslint-parser:
|
svelte-eslint-parser:
|
||||||
specifier: ^1.3.3
|
specifier: ^1.3.3
|
||||||
version: 1.6.0(svelte@5.55.2)
|
version: 1.6.0(svelte@5.55.7)
|
||||||
tailwindcss:
|
tailwindcss:
|
||||||
specifier: ^4.2.4
|
specifier: ^4.2.4
|
||||||
version: 4.2.4
|
version: 4.2.4
|
||||||
@@ -7062,8 +7062,8 @@ packages:
|
|||||||
engines: {node: '>= 4.0.0'}
|
engines: {node: '>= 4.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
devalue@5.7.1:
|
devalue@5.8.1:
|
||||||
resolution: {integrity: sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==}
|
resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==}
|
||||||
|
|
||||||
devlop@1.1.0:
|
devlop@1.1.0:
|
||||||
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
||||||
@@ -11559,8 +11559,8 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
svelte: ^5.30.2
|
svelte: ^5.30.2
|
||||||
|
|
||||||
svelte@5.55.2:
|
svelte@5.55.7:
|
||||||
resolution: {integrity: sha512-z41M/hi0ZPTzrwVKLvB/R1/Oo08gL1uIib8HZ+FncqxxtY9MLb01emg2fqk+WLZ/lNrrtNDFh7BZLDxAHvMgLw==}
|
resolution: {integrity: sha512-ymI5ykLPwIHW839E053FQbI1G+jnRFJEw3Kv5Y4njixVWywQBx+NUFpkkKyk5LIb36Fg9DVXSYpqiGekLD0hyw==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
svg-parser@2.0.4:
|
svg-parser@2.0.4:
|
||||||
@@ -15408,15 +15408,15 @@ snapshots:
|
|||||||
pg-connection-string: 2.12.0
|
pg-connection-string: 2.12.0
|
||||||
postgres: 3.4.9
|
postgres: 3.4.9
|
||||||
|
|
||||||
'@immich/ui@0.77.3(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)':
|
'@immich/ui@0.77.3(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@internationalized/date': 3.12.1
|
'@internationalized/date': 3.12.1
|
||||||
'@mdi/js': 7.4.47
|
'@mdi/js': 7.4.47
|
||||||
'@sveltejs/kit': 2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
'@sveltejs/kit': 2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)
|
bits-ui: 2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)
|
||||||
luxon: 3.7.2
|
luxon: 3.7.2
|
||||||
simple-icons: 16.17.0
|
simple-icons: 16.17.0
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
svelte-highlight: 7.9.0
|
svelte-highlight: 7.9.0
|
||||||
tailwind-merge: 3.5.0
|
tailwind-merge: 3.5.0
|
||||||
tailwind-variants: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.4)
|
tailwind-variants: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.4)
|
||||||
@@ -16938,17 +16938,17 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.16.0
|
acorn: 8.16.0
|
||||||
|
|
||||||
'@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))':
|
'@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/kit': 2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
'@sveltejs/kit': 2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
|
|
||||||
'@sveltejs/enhanced-img@0.10.4(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(rollup@4.55.1)(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))':
|
'@sveltejs/enhanced-img@0.10.4(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(rollup@4.55.1)(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
'@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
sharp: 0.34.5
|
sharp: 0.34.5
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
svelte-parse-markup: 0.1.5(svelte@5.55.2)
|
svelte-parse-markup: 0.1.5(svelte@5.55.7)
|
||||||
vite: 8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)
|
vite: 8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)
|
||||||
vite-imagetools: 9.0.3(rollup@4.55.1)
|
vite-imagetools: 9.0.3(rollup@4.55.1)
|
||||||
zimmerframe: 1.1.4
|
zimmerframe: 1.1.4
|
||||||
@@ -16956,33 +16956,33 @@ snapshots:
|
|||||||
- rollup
|
- rollup
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))':
|
'@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@standard-schema/spec': 1.1.0
|
'@standard-schema/spec': 1.1.0
|
||||||
'@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0)
|
'@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0)
|
||||||
'@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
'@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
'@types/cookie': 0.6.0
|
'@types/cookie': 0.6.0
|
||||||
acorn: 8.16.0
|
acorn: 8.16.0
|
||||||
cookie: 0.6.0
|
cookie: 0.6.0
|
||||||
devalue: 5.7.1
|
devalue: 5.8.1
|
||||||
esm-env: 1.2.2
|
esm-env: 1.2.2
|
||||||
kleur: 4.1.5
|
kleur: 4.1.5
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
mrmime: 2.0.1
|
mrmime: 2.0.1
|
||||||
set-cookie-parser: 3.1.0
|
set-cookie-parser: 3.1.0
|
||||||
sirv: 3.0.2
|
sirv: 3.0.2
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
vite: 8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)
|
vite: 8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@opentelemetry/api': 1.9.1
|
'@opentelemetry/api': 1.9.1
|
||||||
typescript: 6.0.3
|
typescript: 6.0.3
|
||||||
|
|
||||||
'@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))':
|
'@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
deepmerge: 4.3.1
|
deepmerge: 4.3.1
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
obug: 2.1.1
|
obug: 2.1.1
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
vite: 8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)
|
vite: 8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)
|
||||||
vitefu: 1.1.2(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
vitefu: 1.1.2(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
|
|
||||||
@@ -17236,15 +17236,15 @@ snapshots:
|
|||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
redent: 3.0.0
|
redent: 3.0.0
|
||||||
|
|
||||||
'@testing-library/svelte-core@1.0.0(svelte@5.55.2)':
|
'@testing-library/svelte-core@1.0.0(svelte@5.55.7)':
|
||||||
dependencies:
|
dependencies:
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
|
|
||||||
'@testing-library/svelte@5.3.1(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.5)':
|
'@testing-library/svelte@5.3.1(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@testing-library/dom': 10.4.1
|
'@testing-library/dom': 10.4.1
|
||||||
'@testing-library/svelte-core': 1.0.0(svelte@5.55.2)
|
'@testing-library/svelte-core': 1.0.0(svelte@5.55.7)
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)
|
vite: 8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)
|
||||||
vitest: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(happy-dom@20.9.0)(jsdom@26.1.0(canvas@3.2.3))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
vitest: 4.1.5(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(happy-dom@20.9.0)(jsdom@26.1.0(canvas@3.2.3))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
@@ -17262,7 +17262,7 @@ snapshots:
|
|||||||
|
|
||||||
'@tokenizer/token@0.3.0': {}
|
'@tokenizer/token@0.3.0': {}
|
||||||
|
|
||||||
'@trivago/prettier-plugin-sort-imports@6.0.2(prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.2))(prettier@3.8.3)(svelte@5.55.2)':
|
'@trivago/prettier-plugin-sort-imports@6.0.2(prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.7))(prettier@3.8.3)(svelte@5.55.7)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/generator': 7.29.1
|
'@babel/generator': 7.29.1
|
||||||
'@babel/parser': 7.29.2
|
'@babel/parser': 7.29.2
|
||||||
@@ -17274,8 +17274,8 @@ snapshots:
|
|||||||
parse-imports-exports: 0.2.4
|
parse-imports-exports: 0.2.4
|
||||||
prettier: 3.8.3
|
prettier: 3.8.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
prettier-plugin-svelte: 3.5.1(prettier@3.8.3)(svelte@5.55.2)
|
prettier-plugin-svelte: 3.5.1(prettier@3.8.3)(svelte@5.55.7)
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -18171,10 +18171,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@namnode/store': 0.1.0
|
'@namnode/store': 0.1.0
|
||||||
|
|
||||||
'@zoom-image/svelte@0.3.9(svelte@5.55.2)':
|
'@zoom-image/svelte@0.3.9(svelte@5.55.7)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@zoom-image/core': 0.42.0
|
'@zoom-image/core': 0.42.0
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
|
|
||||||
abbrev@1.1.1: {}
|
abbrev@1.1.1: {}
|
||||||
|
|
||||||
@@ -18539,15 +18539,15 @@ snapshots:
|
|||||||
|
|
||||||
binary-extensions@2.3.0: {}
|
binary-extensions@2.3.0: {}
|
||||||
|
|
||||||
bits-ui@2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2):
|
bits-ui@2.18.0(@internationalized/date@3.12.1)(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@floating-ui/core': 1.7.5
|
'@floating-ui/core': 1.7.5
|
||||||
'@floating-ui/dom': 1.7.6
|
'@floating-ui/dom': 1.7.6
|
||||||
'@internationalized/date': 3.12.1
|
'@internationalized/date': 3.12.1
|
||||||
esm-env: 1.2.2
|
esm-env: 1.2.2
|
||||||
runed: 0.35.1(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)
|
runed: 0.35.1(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
svelte-toolbelt: 0.10.6(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)
|
svelte-toolbelt: 0.10.6(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)
|
||||||
tabbable: 6.4.0
|
tabbable: 6.4.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@sveltejs/kit'
|
- '@sveltejs/kit'
|
||||||
@@ -19641,7 +19641,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
devalue@5.7.1: {}
|
devalue@5.8.1: {}
|
||||||
|
|
||||||
devlop@1.1.0:
|
devlop@1.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -20074,7 +20074,7 @@ snapshots:
|
|||||||
'@types/eslint': 9.6.1
|
'@types/eslint': 9.6.1
|
||||||
eslint-config-prettier: 10.1.8(eslint@10.2.1(jiti@2.6.1))
|
eslint-config-prettier: 10.1.8(eslint@10.2.1(jiti@2.6.1))
|
||||||
|
|
||||||
eslint-plugin-svelte@3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.2):
|
eslint-plugin-svelte@3.17.1(eslint@10.2.1(jiti@2.6.1))(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1))
|
'@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1))
|
||||||
'@jridgewell/sourcemap-codec': 1.5.5
|
'@jridgewell/sourcemap-codec': 1.5.5
|
||||||
@@ -20086,9 +20086,9 @@ snapshots:
|
|||||||
postcss-load-config: 3.1.4(postcss@8.5.12)
|
postcss-load-config: 3.1.4(postcss@8.5.12)
|
||||||
postcss-safe-parser: 7.0.1(postcss@8.5.12)
|
postcss-safe-parser: 7.0.1(postcss@8.5.12)
|
||||||
semver: 7.7.4
|
semver: 7.7.4
|
||||||
svelte-eslint-parser: 1.6.0(svelte@5.55.2)
|
svelte-eslint-parser: 1.6.0(svelte@5.55.7)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- ts-node
|
- ts-node
|
||||||
|
|
||||||
@@ -23794,10 +23794,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
prettier: 3.8.3
|
prettier: 3.8.3
|
||||||
|
|
||||||
prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.2):
|
prettier-plugin-svelte@3.5.1(prettier@3.8.3)(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
prettier: 3.8.3
|
prettier: 3.8.3
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
|
|
||||||
prettier@3.8.3: {}
|
prettier@3.8.3: {}
|
||||||
|
|
||||||
@@ -24421,14 +24421,14 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
queue-microtask: 1.2.3
|
queue-microtask: 1.2.3
|
||||||
|
|
||||||
runed@0.35.1(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2):
|
runed@0.35.1(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
dequal: 2.0.3
|
dequal: 2.0.3
|
||||||
esm-env: 1.2.2
|
esm-env: 1.2.2
|
||||||
lz-string: 1.5.0
|
lz-string: 1.5.0
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@sveltejs/kit': 2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
'@sveltejs/kit': 2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))
|
||||||
|
|
||||||
rw@1.3.3: {}
|
rw@1.3.3: {}
|
||||||
|
|
||||||
@@ -25045,23 +25045,23 @@ snapshots:
|
|||||||
|
|
||||||
supports-preserve-symlinks-flag@1.0.0: {}
|
supports-preserve-symlinks-flag@1.0.0: {}
|
||||||
|
|
||||||
svelte-awesome@3.3.5(svelte@5.55.2):
|
svelte-awesome@3.3.5(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
|
|
||||||
svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.2)(typescript@6.0.3):
|
svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.7)(typescript@6.0.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.31
|
'@jridgewell/trace-mapping': 0.3.31
|
||||||
chokidar: 4.0.3
|
chokidar: 4.0.3
|
||||||
fdir: 6.5.0(picomatch@4.0.4)
|
fdir: 6.5.0(picomatch@4.0.4)
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
sade: 1.8.1
|
sade: 1.8.1
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
typescript: 6.0.3
|
typescript: 6.0.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- picomatch
|
- picomatch
|
||||||
|
|
||||||
svelte-eslint-parser@1.6.0(svelte@5.55.2):
|
svelte-eslint-parser@1.6.0(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint-scope: 8.4.0
|
eslint-scope: 8.4.0
|
||||||
eslint-visitor-keys: 4.2.1
|
eslint-visitor-keys: 4.2.1
|
||||||
@@ -25071,7 +25071,7 @@ snapshots:
|
|||||||
postcss-selector-parser: 7.1.1
|
postcss-selector-parser: 7.1.1
|
||||||
semver: 7.7.4
|
semver: 7.7.4
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
|
|
||||||
svelte-floating-ui@1.5.8:
|
svelte-floating-ui@1.5.8:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -25084,7 +25084,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
highlight.js: 11.11.1
|
highlight.js: 11.11.1
|
||||||
|
|
||||||
svelte-i18n@4.0.1(svelte@5.55.2):
|
svelte-i18n@4.0.1(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
cli-color: 2.0.4
|
cli-color: 2.0.4
|
||||||
deepmerge: 4.3.1
|
deepmerge: 4.3.1
|
||||||
@@ -25092,10 +25092,10 @@ snapshots:
|
|||||||
estree-walker: 2.0.2
|
estree-walker: 2.0.2
|
||||||
intl-messageformat: 10.7.18
|
intl-messageformat: 10.7.18
|
||||||
sade: 1.8.1
|
sade: 1.8.1
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
tiny-glob: 0.2.9
|
tiny-glob: 0.2.9
|
||||||
|
|
||||||
svelte-jsoneditor@3.12.0(svelte@5.55.2):
|
svelte-jsoneditor@3.12.0(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@codemirror/autocomplete': 6.20.1
|
'@codemirror/autocomplete': 6.20.1
|
||||||
'@codemirror/commands': 6.10.3
|
'@codemirror/commands': 6.10.3
|
||||||
@@ -25122,42 +25122,42 @@ snapshots:
|
|||||||
memoize-one: 6.0.0
|
memoize-one: 6.0.0
|
||||||
natural-compare-lite: 1.4.0
|
natural-compare-lite: 1.4.0
|
||||||
sass: 1.99.0
|
sass: 1.99.0
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
svelte-awesome: 3.3.5(svelte@5.55.2)
|
svelte-awesome: 3.3.5(svelte@5.55.7)
|
||||||
svelte-select: 5.8.3
|
svelte-select: 5.8.3
|
||||||
vanilla-picker: 2.12.3
|
vanilla-picker: 2.12.3
|
||||||
|
|
||||||
svelte-maplibre@1.3.0(svelte@5.55.2):
|
svelte-maplibre@1.3.0(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
d3-geo: 3.1.1
|
d3-geo: 3.1.1
|
||||||
dequal: 2.0.3
|
dequal: 2.0.3
|
||||||
just-compare: 2.3.0
|
just-compare: 2.3.0
|
||||||
maplibre-gl: 5.24.0
|
maplibre-gl: 5.24.0
|
||||||
pmtiles: 3.2.1
|
pmtiles: 3.2.1
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
|
|
||||||
svelte-parse-markup@0.1.5(svelte@5.55.2):
|
svelte-parse-markup@0.1.5(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
|
|
||||||
svelte-persisted-store@0.12.0(svelte@5.55.2):
|
svelte-persisted-store@0.12.0(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
|
|
||||||
svelte-select@5.8.3:
|
svelte-select@5.8.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
svelte-floating-ui: 1.5.8
|
svelte-floating-ui: 1.5.8
|
||||||
|
|
||||||
svelte-toolbelt@0.10.6(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2):
|
svelte-toolbelt@0.10.6(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
runed: 0.35.1(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.2)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.2)
|
runed: 0.35.1(@sveltejs/kit@2.57.1(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)(typescript@6.0.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.99.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3)))(svelte@5.55.7)
|
||||||
style-to-object: 1.0.14
|
style-to-object: 1.0.14
|
||||||
svelte: 5.55.2
|
svelte: 5.55.7
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@sveltejs/kit'
|
- '@sveltejs/kit'
|
||||||
|
|
||||||
svelte@5.55.2:
|
svelte@5.55.7:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/remapping': 2.3.5
|
'@jridgewell/remapping': 2.3.5
|
||||||
'@jridgewell/sourcemap-codec': 1.5.5
|
'@jridgewell/sourcemap-codec': 1.5.5
|
||||||
@@ -25168,7 +25168,7 @@ snapshots:
|
|||||||
aria-query: 5.3.1
|
aria-query: 5.3.1
|
||||||
axobject-query: 4.1.0
|
axobject-query: 4.1.0
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
devalue: 5.7.1
|
devalue: 5.8.1
|
||||||
esm-env: 1.2.2
|
esm-env: 1.2.2
|
||||||
esrap: 2.2.4
|
esrap: 2.2.4
|
||||||
is-reference: 3.0.3
|
is-reference: 3.0.3
|
||||||
|
|||||||
@@ -171,8 +171,8 @@ export class JobRepository {
|
|||||||
options: this.getJobOptions(item) || undefined,
|
options: this.getJobOptions(item) || undefined,
|
||||||
} as JobItem & { data: any; options: JobsOptions | undefined };
|
} as JobItem & { data: any; options: JobsOptions | undefined };
|
||||||
|
|
||||||
if (job.options?.jobId || job.options?.deduplication) {
|
if (job.options?.jobId) {
|
||||||
// need to use add() instead of addBulk() for jobId/deduplication to take effect
|
// need to use add() instead of addBulk() for jobId deduplication
|
||||||
promises.push(this.getQueue(queueName).add(item.name, item.data, job.options));
|
promises.push(this.getQueue(queueName).add(item.name, item.data, job.options));
|
||||||
} else {
|
} else {
|
||||||
itemsByQueue[queueName] = itemsByQueue[queueName] || [];
|
itemsByQueue[queueName] = itemsByQueue[queueName] || [];
|
||||||
@@ -230,13 +230,10 @@ export class JobRepository {
|
|||||||
return { priority: 1 };
|
return { priority: 1 };
|
||||||
}
|
}
|
||||||
case JobName.FacialRecognitionQueueAll: {
|
case JobName.FacialRecognitionQueueAll: {
|
||||||
return { deduplication: { id: JobName.FacialRecognitionQueueAll } };
|
return { jobId: JobName.FacialRecognitionQueueAll };
|
||||||
}
|
}
|
||||||
case JobName.VersionCheck: {
|
case JobName.VersionCheck: {
|
||||||
return { deduplication: { id: JobName.VersionCheck } };
|
return { jobId: JobName.VersionCheck };
|
||||||
}
|
|
||||||
case JobName.DatabaseBackup: {
|
|
||||||
return { deduplication: { id: JobName.DatabaseBackup } };
|
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
+1
-1
@@ -103,7 +103,7 @@
|
|||||||
"prettier-plugin-sort-json": "^4.1.1",
|
"prettier-plugin-sort-json": "^4.1.1",
|
||||||
"prettier-plugin-svelte": "^3.3.3",
|
"prettier-plugin-svelte": "^3.3.3",
|
||||||
"rollup-plugin-visualizer": "^7.0.0",
|
"rollup-plugin-visualizer": "^7.0.0",
|
||||||
"svelte": "5.55.2",
|
"svelte": "5.55.7",
|
||||||
"svelte-check": "^4.4.6",
|
"svelte-check": "^4.4.6",
|
||||||
"svelte-eslint-parser": "^1.3.3",
|
"svelte-eslint-parser": "^1.3.3",
|
||||||
"tailwindcss": "^4.2.4",
|
"tailwindcss": "^4.2.4",
|
||||||
|
|||||||
@@ -4,18 +4,15 @@
|
|||||||
import OnEvents from '$lib/components/OnEvents.svelte';
|
import OnEvents from '$lib/components/OnEvents.svelte';
|
||||||
import EmptyPlaceholder from '$lib/components/shared-components/EmptyPlaceholder.svelte';
|
import EmptyPlaceholder from '$lib/components/shared-components/EmptyPlaceholder.svelte';
|
||||||
import SingleGridRow from '$lib/components/shared-components/SingleGridRow.svelte';
|
import SingleGridRow from '$lib/components/shared-components/SingleGridRow.svelte';
|
||||||
import { assetViewerManager } from '$lib/managers/asset-viewer-manager.svelte';
|
|
||||||
import { Route } from '$lib/route';
|
import { Route } from '$lib/route';
|
||||||
import { getAssetMediaUrl, getPeopleThumbnailUrl } from '$lib/utils';
|
import { getAssetMediaUrl, getPeopleThumbnailUrl } from '$lib/utils';
|
||||||
import { getAssetInfo, AssetMediaSize, type SearchExploreResponseDto } from '@immich/sdk';
|
import { AssetMediaSize, type SearchExploreResponseDto } from '@immich/sdk';
|
||||||
import { authManager } from '$lib/managers/auth-manager.svelte';
|
|
||||||
import { Icon } from '@immich/ui';
|
import { Icon } from '@immich/ui';
|
||||||
import { mdiHeart } from '@mdi/js';
|
import { mdiHeart } from '@mdi/js';
|
||||||
import { t } from 'svelte-i18n';
|
import { t } from 'svelte-i18n';
|
||||||
import type { PageData } from './$types';
|
import type { PageData } from './$types';
|
||||||
import { toTimelineAsset } from '$lib/utils/timeline-util';
|
import { toTimelineAsset } from '$lib/utils/timeline-util';
|
||||||
import { getAltText } from '$lib/utils/thumbnail-util';
|
import { getAltText } from '$lib/utils/thumbnail-util';
|
||||||
import Portal from '$lib/elements/Portal.svelte';
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
data: PageData;
|
data: PageData;
|
||||||
@@ -43,15 +40,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onViewAsset = async (id: string) => {
|
|
||||||
const asset = await getAssetInfo({ ...authManager.params, id });
|
|
||||||
assetViewerManager.setAsset(asset);
|
|
||||||
};
|
|
||||||
|
|
||||||
const assetCursor = $derived({
|
|
||||||
current: assetViewerManager.asset!,
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<OnEvents {onPersonThumbnailReady} />
|
<OnEvents {onPersonThumbnailReady} />
|
||||||
@@ -134,20 +122,15 @@
|
|||||||
draggable="false">{$t('view_all')}</a
|
draggable="false">{$t('view_all')}</a
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex h-24 max-w-fit flex-wrap gap-x-1 overflow-hidden md:h-42">
|
<div class="flex h-24 flex-wrap gap-x-1 overflow-hidden md:h-42">
|
||||||
{#each recents as item (item.data.id)}
|
{#each recents as item (item.data.id)}
|
||||||
<button
|
<a class="relative h-full flex-auto" href={Route.viewAsset({ id: item.data.id })} draggable="false">
|
||||||
type="button"
|
|
||||||
class="relative h-full flex-auto"
|
|
||||||
onclick={() => onViewAsset(item.data.id)}
|
|
||||||
draggable="false"
|
|
||||||
>
|
|
||||||
<img
|
<img
|
||||||
src={getAssetMediaUrl({ id: item.data.id, size: AssetMediaSize.Thumbnail })}
|
src={getAssetMediaUrl({ id: item.data.id, size: AssetMediaSize.Thumbnail })}
|
||||||
alt={$getAltText(toTimelineAsset(item.data))}
|
alt={$getAltText(toTimelineAsset(item.data))}
|
||||||
class="size-full min-w-max rounded-xl object-cover"
|
class="size-full min-w-max rounded-xl object-cover"
|
||||||
/>
|
/>
|
||||||
</button>
|
</a>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -157,15 +140,3 @@
|
|||||||
<EmptyPlaceholder text={$t('no_explore_results_message')} class="mx-auto mt-10" />
|
<EmptyPlaceholder text={$t('no_explore_results_message')} class="mx-auto mt-10" />
|
||||||
{/if}
|
{/if}
|
||||||
</UserPageLayout>
|
</UserPageLayout>
|
||||||
|
|
||||||
{#if assetViewerManager.isViewing}
|
|
||||||
{#await import('$lib/components/asset-viewer/AssetViewer.svelte') then { default: AssetViewer }}
|
|
||||||
<Portal target="body">
|
|
||||||
<AssetViewer
|
|
||||||
cursor={assetCursor}
|
|
||||||
showNavigation={false}
|
|
||||||
onClose={() => assetViewerManager.showAssetViewer(false)}
|
|
||||||
/>
|
|
||||||
</Portal>
|
|
||||||
{/await}
|
|
||||||
{/if}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user