refactor: plugin sdk types (#28674)
parent
0d6cce4a5b
commit
96923f6115
|
|
@ -54,8 +54,8 @@ lockfile = true
|
||||||
|
|
||||||
[tasks.plugins]
|
[tasks.plugins]
|
||||||
run = [
|
run = [
|
||||||
"pnpm --filter @immich/plugin-sdk --filter @immich/plugin-core install --frozen-lockfile",
|
"pnpm --filter @immich/sdk --filter @immich/plugin-sdk --filter @immich/plugin-core install --frozen-lockfile",
|
||||||
"pnpm --filter @immich/plugin-sdk --filter @immich/plugin-core build",
|
"pnpm --filter @immich/sdk --filter @immich/plugin-sdk --filter @immich/plugin-core build",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tasks.open-api-typescript]
|
[tasks.open-api-typescript]
|
||||||
|
|
@ -108,7 +108,7 @@ depends = "//:plugins"
|
||||||
dir = "docker"
|
dir = "docker"
|
||||||
interactive = true
|
interactive = true
|
||||||
env = { COMPOSE_BAKE = true }
|
env = { COMPOSE_BAKE = true }
|
||||||
run = "docker compose -f ./docker-compose.prod.yml up --remove-orphans"
|
run = "docker compose -f ./docker-compose.prod.yml up --build --remove-orphans"
|
||||||
depends_post = "//:prod-down"
|
depends_post = "//:prod-down"
|
||||||
|
|
||||||
[tasks.prod-scale]
|
[tasks.prod-scale]
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
"packageManager": "pnpm@10.33.4",
|
"packageManager": "pnpm@10.33.4",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@extism/js-pdk": "^1.1.1",
|
"@extism/js-pdk": "^1.1.1",
|
||||||
|
"@immich/sdk": "workspace:*",
|
||||||
"@types/node": "^24.12.4",
|
"@types/node": "^24.12.4",
|
||||||
"esbuild": "^0.28.0",
|
"esbuild": "^0.28.0",
|
||||||
"tsc-alias": "^1.8.16",
|
"tsc-alias": "^1.8.16",
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
import { type BulkIdResponseDto, type BulkIdsDto } from '@immich/sdk';
|
||||||
|
|
||||||
|
// keep in sync with plugin-core/src/index.d.ts';
|
||||||
declare module 'extism:host' {
|
declare module 'extism:host' {
|
||||||
interface user {
|
interface user {
|
||||||
albumAddAssets(ptr: PTR): I64;
|
albumAddAssets(ptr: PTR): I64;
|
||||||
|
|
@ -45,7 +48,11 @@ type AlbumsToAssets = {
|
||||||
|
|
||||||
export const hostFunctions = (authToken: string) => ({
|
export const hostFunctions = (authToken: string) => ({
|
||||||
albumAddAssets: (albumId: string, assetIds: string[]) =>
|
albumAddAssets: (albumId: string, assetIds: string[]) =>
|
||||||
call('albumAddAssets', authToken, [albumId, { ids: assetIds }]),
|
call<[string, BulkIdsDto], BulkIdResponseDto[]>(
|
||||||
|
'albumAddAssets',
|
||||||
|
authToken,
|
||||||
|
[albumId, { ids: assetIds }],
|
||||||
|
),
|
||||||
addAssetsToAlbums: ({ assetIds, albumIds }: AlbumsToAssets) =>
|
addAssetsToAlbums: ({ assetIds, albumIds }: AlbumsToAssets) =>
|
||||||
call('addAssetsToAlbums', authToken, [{ albumIds, assetIds }]),
|
call('addAssetsToAlbums', authToken, [{ albumIds, assetIds }]),
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -332,6 +332,9 @@ importers:
|
||||||
'@extism/js-pdk':
|
'@extism/js-pdk':
|
||||||
specifier: ^1.1.1
|
specifier: ^1.1.1
|
||||||
version: 1.1.1
|
version: 1.1.1
|
||||||
|
'@immich/sdk':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../sdk
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^24.12.4
|
specifier: ^24.12.4
|
||||||
version: 24.12.4
|
version: 24.12.4
|
||||||
|
|
|
||||||
|
|
@ -13,14 +13,15 @@ FROM builder AS server
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY ./server ./server/
|
COPY ./server ./server/
|
||||||
|
COPY ./packages/sdk ./packages/sdk/
|
||||||
COPY ./packages/plugin-sdk ./packages/plugin-sdk/
|
COPY ./packages/plugin-sdk ./packages/plugin-sdk/
|
||||||
RUN --mount=type=cache,id=pnpm-server,target=/buildcache/pnpm-store \
|
RUN --mount=type=cache,id=pnpm-server,target=/buildcache/pnpm-store \
|
||||||
--mount=type=bind,source=package.json,target=package.json \
|
--mount=type=bind,source=package.json,target=package.json \
|
||||||
--mount=type=bind,source=.pnpmfile.cjs,target=.pnpmfile.cjs \
|
--mount=type=bind,source=.pnpmfile.cjs,target=.pnpmfile.cjs \
|
||||||
--mount=type=bind,source=pnpm-lock.yaml,target=pnpm-lock.yaml \
|
--mount=type=bind,source=pnpm-lock.yaml,target=pnpm-lock.yaml \
|
||||||
--mount=type=bind,source=pnpm-workspace.yaml,target=pnpm-workspace.yaml \
|
--mount=type=bind,source=pnpm-workspace.yaml,target=pnpm-workspace.yaml \
|
||||||
SHARP_IGNORE_GLOBAL_LIBVIPS=true pnpm --filter immich --filter @immich/plugin-sdk --frozen-lockfile build && \
|
SHARP_IGNORE_GLOBAL_LIBVIPS=true pnpm --filter @immich/sdk --filter @immich/plugin-sdk --filter immich --frozen-lockfile build && \
|
||||||
SHARP_FORCE_GLOBAL_LIBVIPS=true pnpm --filter immich --frozen-lockfile --prod --no-optional deploy /output/server-pruned
|
SHARP_FORCE_GLOBAL_LIBVIPS=true pnpm --filter immich --frozen-lockfile --prod --no-optional deploy /output/server-pruned
|
||||||
|
|
||||||
FROM builder AS web
|
FROM builder AS web
|
||||||
|
|
||||||
|
|
@ -66,6 +67,7 @@ ENV MISE_DISABLE_TOOLS=flutter
|
||||||
RUN --mount=type=cache,id=mise-tools-${TARGETPLATFORM},target=/buildcache/mise \
|
RUN --mount=type=cache,id=mise-tools-${TARGETPLATFORM},target=/buildcache/mise \
|
||||||
mise install
|
mise install
|
||||||
|
|
||||||
|
COPY ./packages/sdk ./packages/sdk/
|
||||||
COPY ./packages/plugin-core ./packages/plugin-core/
|
COPY ./packages/plugin-core ./packages/plugin-core/
|
||||||
COPY ./packages/plugin-sdk ./packages/plugin-sdk/
|
COPY ./packages/plugin-sdk ./packages/plugin-sdk/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@ run = [
|
||||||
[tasks.ci-medium]
|
[tasks.ci-medium]
|
||||||
run = [
|
run = [
|
||||||
{ task = ":install" },
|
{ task = ":install" },
|
||||||
|
{ task = "//:plugins" },
|
||||||
{ task = "//packages/plugin-core:build" },
|
{ task = "//packages/plugin-core:build" },
|
||||||
{ task = ":test-medium --run" },
|
{ task = ":test-medium --run" },
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -359,7 +359,6 @@ export class WorkflowExecutionService extends BaseService {
|
||||||
},
|
},
|
||||||
session: {
|
session: {
|
||||||
id: DummyValue.UUID,
|
id: DummyValue.UUID,
|
||||||
// TODO move this to auth.elevated or similar
|
|
||||||
hasElevatedPermission: true,
|
hasElevatedPermission: true,
|
||||||
},
|
},
|
||||||
} as AuthDto,
|
} as AuthDto,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue