mirror of
https://github.com/immich-app/immich.git
synced 2025-12-23 09:15:05 +03:00
feat: db insertions for edits feat: get asset edits endpoint feat: wip apply edits feat: finish asset files changes feat: wip feat: wip fix: openapi fix: tests the failing tests were so scuffed. Simply solved by adding [] to the param list feat: more wip feat: more wip feat: some more tests and fixes chore: fix default for getting thumbnail and add todo for tests feat: LRTB validation chore: code cleanup chore: more test checks for cleanup feat: show edit pane fix: state issues chore: restructure web editor feat: restructure edit manager feat: refactor cropManager chore: combine all editing chore: web editing improvements fix: handling when no crops fix: openapi enum chore: more edit refactoring fix: make image decoding more efficient chore: more refactoring fix: getCrop LRTB algorithm fix: missing await chore: use relative coordinates for edit chore: update sql fix: use resize observer instead of svelte:doc resize hook chore: simplify quad box generation fix: light mode styling chore: refactor to not be a recursive job call this simplifies the logic and the job only completes once thumbhash and others are properly updated chore: more refactoring feat: use affine transforms for most operations feat: bounding box edit transformation feat: tests chore: sql and openapi sync fix: medium tests fix: rotated OCR chore: cleanup transform test fix: remove rebase issue fix(server): block edits for live photos, gifs, panoramic photos fix: openapi enum validation chore: rename edit endpoint chore: remove public modifiers feat: delete endpoint chore: use === and !== explicitly fix: require 1 edit for the editAsset endpoint fix: remove thumbnail edit notification and use on_upload_success instead fix: primary key on asset edit table chore: refactor to isPanorama chore: rename editRepository to assetEditRepository fix: missing toLowerCase fix: db migrations chore: update sql files
161 lines
4.6 KiB
TypeScript
161 lines
4.6 KiB
TypeScript
import { SourceType } from 'src/enum';
|
|
import { assetStub } from 'test/fixtures/asset.stub';
|
|
import { personStub } from 'test/fixtures/person.stub';
|
|
|
|
export const faceStub = {
|
|
face1: Object.freeze({
|
|
id: 'assetFaceId1',
|
|
assetId: assetStub.image.id,
|
|
asset: {
|
|
...assetStub.image,
|
|
libraryId: null,
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
stackId: null,
|
|
},
|
|
personId: personStub.withName.id,
|
|
person: personStub.withName,
|
|
boundingBoxX1: 0,
|
|
boundingBoxY1: 0,
|
|
boundingBoxX2: 1,
|
|
boundingBoxY2: 1,
|
|
imageHeight: 1024,
|
|
imageWidth: 1024,
|
|
sourceType: SourceType.MachineLearning,
|
|
faceSearch: { faceId: 'assetFaceId1', embedding: '[1, 2, 3, 4]' },
|
|
deletedAt: new Date(),
|
|
updatedAt: new Date('2023-01-01T00:00:00Z'),
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
isVisible: true,
|
|
}),
|
|
primaryFace1: Object.freeze({
|
|
id: 'assetFaceId2',
|
|
assetId: assetStub.image.id,
|
|
asset: assetStub.image,
|
|
personId: personStub.primaryPerson.id,
|
|
person: personStub.primaryPerson,
|
|
boundingBoxX1: 0,
|
|
boundingBoxY1: 0,
|
|
boundingBoxX2: 1,
|
|
boundingBoxY2: 1,
|
|
imageHeight: 1024,
|
|
imageWidth: 1024,
|
|
sourceType: SourceType.MachineLearning,
|
|
faceSearch: { faceId: 'assetFaceId2', embedding: '[1, 2, 3, 4]' },
|
|
deletedAt: null,
|
|
updatedAt: new Date('2023-01-01T00:00:00Z'),
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
isVisible: true,
|
|
}),
|
|
mergeFace1: Object.freeze({
|
|
id: 'assetFaceId3',
|
|
assetId: assetStub.image.id,
|
|
asset: assetStub.image,
|
|
personId: personStub.mergePerson.id,
|
|
person: personStub.mergePerson,
|
|
boundingBoxX1: 0,
|
|
boundingBoxY1: 0,
|
|
boundingBoxX2: 1,
|
|
boundingBoxY2: 1,
|
|
imageHeight: 1024,
|
|
imageWidth: 1024,
|
|
sourceType: SourceType.MachineLearning,
|
|
faceSearch: { faceId: 'assetFaceId3', embedding: '[1, 2, 3, 4]' },
|
|
deletedAt: null,
|
|
updatedAt: new Date('2023-01-01T00:00:00Z'),
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
isVisible: true,
|
|
}),
|
|
noPerson1: Object.freeze({
|
|
id: 'assetFaceId8',
|
|
assetId: assetStub.image.id,
|
|
asset: assetStub.image,
|
|
personId: null,
|
|
person: null,
|
|
boundingBoxX1: 0,
|
|
boundingBoxY1: 0,
|
|
boundingBoxX2: 1,
|
|
boundingBoxY2: 1,
|
|
imageHeight: 1024,
|
|
imageWidth: 1024,
|
|
sourceType: SourceType.MachineLearning,
|
|
faceSearch: { faceId: 'assetFaceId8', embedding: '[1, 2, 3, 4]' },
|
|
deletedAt: null,
|
|
updatedAt: new Date('2023-01-01T00:00:00Z'),
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
isVisible: true,
|
|
}),
|
|
noPerson2: Object.freeze({
|
|
id: 'assetFaceId9',
|
|
assetId: assetStub.image.id,
|
|
asset: assetStub.image,
|
|
personId: null,
|
|
person: null,
|
|
boundingBoxX1: 0,
|
|
boundingBoxY1: 0,
|
|
boundingBoxX2: 1,
|
|
boundingBoxY2: 1,
|
|
imageHeight: 1024,
|
|
imageWidth: 1024,
|
|
sourceType: SourceType.MachineLearning,
|
|
faceSearch: { faceId: 'assetFaceId9', embedding: '[1, 2, 3, 4]' },
|
|
deletedAt: null,
|
|
updatedAt: new Date('2023-01-01T00:00:00Z'),
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
isVisible: true,
|
|
}),
|
|
fromExif1: Object.freeze({
|
|
id: 'assetFaceId9',
|
|
assetId: assetStub.image.id,
|
|
asset: assetStub.image,
|
|
personId: personStub.randomPerson.id,
|
|
person: personStub.randomPerson,
|
|
boundingBoxX1: 100,
|
|
boundingBoxY1: 100,
|
|
boundingBoxX2: 200,
|
|
boundingBoxY2: 200,
|
|
imageHeight: 500,
|
|
imageWidth: 400,
|
|
sourceType: SourceType.Exif,
|
|
deletedAt: null,
|
|
updatedAt: new Date('2023-01-01T00:00:00Z'),
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
isVisible: true,
|
|
}),
|
|
fromExif2: Object.freeze({
|
|
id: 'assetFaceId9',
|
|
assetId: assetStub.image.id,
|
|
asset: assetStub.image,
|
|
personId: personStub.randomPerson.id,
|
|
person: personStub.randomPerson,
|
|
boundingBoxX1: 0,
|
|
boundingBoxY1: 0,
|
|
boundingBoxX2: 1,
|
|
boundingBoxY2: 1,
|
|
imageHeight: 1024,
|
|
imageWidth: 1024,
|
|
sourceType: SourceType.Exif,
|
|
deletedAt: null,
|
|
updatedAt: new Date('2023-01-01T00:00:00Z'),
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
isVisible: true,
|
|
}),
|
|
withBirthDate: Object.freeze({
|
|
id: 'assetFaceId10',
|
|
assetId: assetStub.image.id,
|
|
asset: assetStub.image,
|
|
personId: personStub.withBirthDate.id,
|
|
person: personStub.withBirthDate,
|
|
boundingBoxX1: 0,
|
|
boundingBoxY1: 0,
|
|
boundingBoxX2: 1,
|
|
boundingBoxY2: 1,
|
|
imageHeight: 1024,
|
|
imageWidth: 1024,
|
|
sourceType: SourceType.MachineLearning,
|
|
deletedAt: null,
|
|
updatedAt: new Date('2023-01-01T00:00:00Z'),
|
|
updateId: '0d1173e3-4d80-4d76-b41e-57d56de21125',
|
|
isVisible: true,
|
|
}),
|
|
};
|