@zlooks.cn/images-server 1.0.3 → 1.0.4
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.
- package/dist/assets/read-image-asset.d.ts.map +1 -1
- package/dist/assets/read-image-asset.js +7 -2
- package/dist/assets/read-image-asset.js.map +1 -1
- package/dist/assets/response-policy.d.ts.map +1 -1
- package/dist/assets/response-policy.js +10 -4
- package/dist/assets/response-policy.js.map +1 -1
- package/dist/domain/image-error.d.ts +5 -2
- package/dist/domain/image-error.d.ts.map +1 -1
- package/dist/domain/image-error.js.map +1 -1
- package/dist/domain/output-schema.d.ts +1 -62
- package/dist/domain/output-schema.d.ts.map +1 -1
- package/dist/domain/output-schema.js +1 -24
- package/dist/domain/output-schema.js.map +1 -1
- package/dist/domain/schema.d.ts +1 -68
- package/dist/domain/schema.d.ts.map +1 -1
- package/dist/domain/schema.js +1 -43
- package/dist/domain/schema.js.map +1 -1
- package/dist/identity.d.ts +1 -1
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +1 -1
- package/dist/identity.js.map +1 -1
- package/dist/mcp/provider.d.ts +2 -1
- package/dist/mcp/provider.d.ts.map +1 -1
- package/dist/mcp/provider.js +100 -44
- package/dist/mcp/provider.js.map +1 -1
- package/dist/messages/images/delete.msg.d.ts +3 -0
- package/dist/messages/images/delete.msg.d.ts.map +1 -0
- package/dist/messages/images/delete.msg.js +9 -0
- package/dist/messages/images/delete.msg.js.map +1 -0
- package/dist/messages/images/events.msg.d.ts +3 -0
- package/dist/messages/images/events.msg.d.ts.map +1 -0
- package/dist/messages/images/events.msg.js +9 -0
- package/dist/messages/images/events.msg.js.map +1 -0
- package/dist/messages/images/list.msg.d.ts +3 -0
- package/dist/messages/images/list.msg.d.ts.map +1 -0
- package/dist/messages/images/list.msg.js +9 -0
- package/dist/messages/images/list.msg.js.map +1 -0
- package/dist/messages/images/read.msg.d.ts +3 -0
- package/dist/messages/images/read.msg.d.ts.map +1 -0
- package/dist/messages/images/read.msg.js +9 -0
- package/dist/messages/images/read.msg.js.map +1 -0
- package/dist/messages/images/upload.msg.d.ts +3 -0
- package/dist/messages/images/upload.msg.d.ts.map +1 -0
- package/dist/messages/images/upload.msg.js +9 -0
- package/dist/messages/images/upload.msg.js.map +1 -0
- package/dist/messages/model-message.d.ts +8 -0
- package/dist/messages/model-message.d.ts.map +1 -0
- package/dist/messages/model-message.js +18 -0
- package/dist/messages/model-message.js.map +1 -0
- package/dist/migrations/index.d.ts +2 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +6 -0
- package/dist/migrations/index.js.map +1 -1
- package/dist/models/delete-image.model.js +14 -7
- package/dist/models/delete-image.model.js.map +1 -1
- package/dist/models/list-image.model.js +6 -3
- package/dist/models/list-image.model.js.map +1 -1
- package/dist/models/read-image-event-catalog.model.d.ts +3 -0
- package/dist/models/read-image-event-catalog.model.d.ts.map +1 -0
- package/dist/models/read-image-event-catalog.model.js +7 -0
- package/dist/models/read-image-event-catalog.model.js.map +1 -0
- package/dist/models/read-image.model.js +2 -2
- package/dist/models/read-image.model.js.map +1 -1
- package/dist/models/upload-image.model.d.ts +6 -2
- package/dist/models/upload-image.model.d.ts.map +1 -1
- package/dist/models/upload-image.model.js +8 -7
- package/dist/models/upload-image.model.js.map +1 -1
- package/dist/persistence/entities.d.ts.map +1 -1
- package/dist/persistence/entities.js +85 -12
- package/dist/persistence/entities.js.map +1 -1
- package/dist/services/config.service.js.map +1 -1
- package/dist/services/database.service.js +9 -1
- package/dist/services/database.service.js.map +1 -1
- package/dist/services/images-runtime.service.js +4 -1
- package/dist/services/images-runtime.service.js.map +1 -1
- package/dist/services/mcp-provider.service.js +2 -1
- package/dist/services/mcp-provider.service.js.map +1 -1
- package/dist/services/redis.service.js +12 -4
- package/dist/services/redis.service.js.map +1 -1
- package/dist/storage/local-storage.d.ts.map +1 -1
- package/dist/storage/local-storage.js +13 -5
- package/dist/storage/local-storage.js.map +1 -1
- package/package.json +21 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-image-asset.d.ts","sourceRoot":"","sources":["../../src/assets/read-image-asset.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,wBAAuB,cAAc,CACnC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,WAAW,GAClB,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"read-image-asset.d.ts","sourceRoot":"","sources":["../../src/assets/read-image-asset.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,wBAAuB,cAAc,CACnC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,WAAW,GAClB,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC,CAwFxC"}
|
|
@@ -50,7 +50,9 @@ export async function* readImageAsset(store, storage, input, signal) {
|
|
|
50
50
|
let start = 0;
|
|
51
51
|
let end = row.byteSize - 1;
|
|
52
52
|
let partial = false;
|
|
53
|
-
if (request.method === 'GET' &&
|
|
53
|
+
if (request.method === 'GET' &&
|
|
54
|
+
request.headers.range &&
|
|
55
|
+
permitsImageRange(request.headers['if-range'], etag, modified)) {
|
|
54
56
|
const ranges = rangeParser(row.byteSize, request.headers.range);
|
|
55
57
|
if (typeof ranges === 'number' || ranges.type !== 'bytes' || ranges.length !== 1) {
|
|
56
58
|
const response = emptyImageResponse(416);
|
|
@@ -58,13 +60,16 @@ export async function* readImageAsset(store, storage, input, signal) {
|
|
|
58
60
|
yield response;
|
|
59
61
|
return;
|
|
60
62
|
}
|
|
63
|
+
;
|
|
61
64
|
({ start, end } = ranges[0]);
|
|
62
65
|
partial = true;
|
|
63
66
|
}
|
|
64
67
|
yield {
|
|
65
68
|
status: partial ? 206 : 200,
|
|
66
69
|
headers: {
|
|
67
|
-
...headers,
|
|
70
|
+
...headers,
|
|
71
|
+
'content-length': String(end - start + 1),
|
|
72
|
+
'content-type': row.mediaType,
|
|
68
73
|
...(partial ? { 'content-range': `bytes ${start}-${end}/${row.byteSize}` } : {}),
|
|
69
74
|
},
|
|
70
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-image-asset.js","sourceRoot":"","sources":["../../src/assets/read-image-asset.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAsB,MAAM,yBAAyB,CAAC;AAGpG,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAExH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACnC,KAAiB,EACjB,OAA0B,EAC1B,KAAc,EACd,MAAmB;IAEnB,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"read-image-asset.js","sourceRoot":"","sources":["../../src/assets/read-image-asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-policy.d.ts","sourceRoot":"","sources":["../../src/assets/response-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE3E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"response-policy.d.ts","sourceRoot":"","sources":["../../src/assets/response-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE3E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAWvF;AACD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAEhE;AACD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,IAAI,GACb,GAAG,GAAG,GAAG,GAAG,SAAS,CASvB;AACD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAIlG"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export function imageReadHeaders(etag, modified) {
|
|
2
2
|
return {
|
|
3
|
-
etag,
|
|
3
|
+
etag,
|
|
4
|
+
'last-modified': modified.toUTCString(),
|
|
5
|
+
'accept-ranges': 'bytes',
|
|
4
6
|
'cache-control': 'public, max-age=31536000, immutable',
|
|
5
|
-
'content-disposition': 'inline',
|
|
6
|
-
'
|
|
7
|
+
'content-disposition': 'inline',
|
|
8
|
+
'x-content-type-options': 'nosniff',
|
|
9
|
+
'access-control-allow-origin': '*',
|
|
10
|
+
'cross-origin-resource-policy': 'cross-origin',
|
|
7
11
|
};
|
|
8
12
|
}
|
|
9
13
|
export function emptyImageResponse(status) {
|
|
@@ -41,7 +45,9 @@ function parseDate(value) {
|
|
|
41
45
|
const time = Date.parse(value);
|
|
42
46
|
return Number.isFinite(time) ? Math.floor(time / 1000) : undefined;
|
|
43
47
|
}
|
|
44
|
-
function modifiedSeconds(modified) {
|
|
48
|
+
function modifiedSeconds(modified) {
|
|
49
|
+
return Math.floor(modified.getTime() / 1000);
|
|
50
|
+
}
|
|
45
51
|
function isOlder(value, modified) {
|
|
46
52
|
const date = parseDate(value);
|
|
47
53
|
return date !== undefined && date < modifiedSeconds(modified);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-policy.js","sourceRoot":"","sources":["../../src/assets/response-policy.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAc;IAC3D,OAAO;QACL,IAAI,
|
|
1
|
+
{"version":3,"file":"response-policy.js","sourceRoot":"","sources":["../../src/assets/response-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import type { ImageOperationErrorCode } from '@zlooks.cn/images-shared';
|
|
2
|
+
type ImageErrorCode = ImageOperationErrorCode | 'FORBIDDEN' | 'INVALID_INPUT' | 'UNAVAILABLE';
|
|
1
3
|
export declare class ImageError extends Error {
|
|
2
|
-
readonly code:
|
|
3
|
-
constructor(code:
|
|
4
|
+
readonly code: ImageErrorCode;
|
|
5
|
+
constructor(code: ImageErrorCode, message: string);
|
|
4
6
|
}
|
|
7
|
+
export {};
|
|
5
8
|
//# sourceMappingURL=image-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-error.d.ts","sourceRoot":"","sources":["../../src/domain/image-error.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;aACP,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"image-error.d.ts","sourceRoot":"","sources":["../../src/domain/image-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,KAAK,cAAc,GAAG,uBAAuB,GACzC,WAAW,GACX,eAAe,GACf,aAAa,CAAC;AAElB,qBAAa,UAAW,SAAQ,KAAK;aACP,IAAI,EAAE,cAAc;IAAhD,YAA4B,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAGhE;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-error.js","sourceRoot":"","sources":["../../src/domain/image-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-error.js","sourceRoot":"","sources":["../../src/domain/image-error.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,UAAW,SAAQ,KAAK;IACP,IAAI;IAAhC,YAA4B,IAAoB,EAAE,OAAe;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;oBADW,IAAI;QAE9B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,63 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
/** Public metadata only; persistence paths, request fingerprints and credentials stay private. */
|
|
3
|
-
export declare const imageMetadataSchema: z.ZodObject<{
|
|
4
|
-
id: z.ZodUUID;
|
|
5
|
-
originalFilename: z.ZodNullable<z.ZodString>;
|
|
6
|
-
status: z.ZodEnum<{
|
|
7
|
-
deleted: "deleted";
|
|
8
|
-
deleting: "deleting";
|
|
9
|
-
failed: "failed";
|
|
10
|
-
ready: "ready";
|
|
11
|
-
uploading: "uploading";
|
|
12
|
-
}>;
|
|
13
|
-
url: z.ZodNullable<z.ZodURL>;
|
|
14
|
-
mediaType: z.ZodNullable<z.ZodEnum<{
|
|
15
|
-
"image/avif": "image/avif";
|
|
16
|
-
"image/gif": "image/gif";
|
|
17
|
-
"image/jpeg": "image/jpeg";
|
|
18
|
-
"image/png": "image/png";
|
|
19
|
-
"image/webp": "image/webp";
|
|
20
|
-
}>>;
|
|
21
|
-
byteSize: z.ZodNullable<z.ZodNumber>;
|
|
22
|
-
width: z.ZodNullable<z.ZodNumber>;
|
|
23
|
-
height: z.ZodNullable<z.ZodNumber>;
|
|
24
|
-
sha256: z.ZodNullable<z.ZodString>;
|
|
25
|
-
createdBy: z.ZodString;
|
|
26
|
-
createdAt: z.ZodISODateTime;
|
|
27
|
-
readyAt: z.ZodNullable<z.ZodISODateTime>;
|
|
28
|
-
deletedAt: z.ZodNullable<z.ZodISODateTime>;
|
|
29
|
-
failureCode: z.ZodNullable<z.ZodString>;
|
|
30
|
-
}, z.core.$strict>;
|
|
31
|
-
export declare const imagePageSchema: z.ZodObject<{
|
|
32
|
-
items: z.ZodArray<z.ZodObject<{
|
|
33
|
-
id: z.ZodUUID;
|
|
34
|
-
originalFilename: z.ZodNullable<z.ZodString>;
|
|
35
|
-
status: z.ZodEnum<{
|
|
36
|
-
deleted: "deleted";
|
|
37
|
-
deleting: "deleting";
|
|
38
|
-
failed: "failed";
|
|
39
|
-
ready: "ready";
|
|
40
|
-
uploading: "uploading";
|
|
41
|
-
}>;
|
|
42
|
-
url: z.ZodNullable<z.ZodURL>;
|
|
43
|
-
mediaType: z.ZodNullable<z.ZodEnum<{
|
|
44
|
-
"image/avif": "image/avif";
|
|
45
|
-
"image/gif": "image/gif";
|
|
46
|
-
"image/jpeg": "image/jpeg";
|
|
47
|
-
"image/png": "image/png";
|
|
48
|
-
"image/webp": "image/webp";
|
|
49
|
-
}>>;
|
|
50
|
-
byteSize: z.ZodNullable<z.ZodNumber>;
|
|
51
|
-
width: z.ZodNullable<z.ZodNumber>;
|
|
52
|
-
height: z.ZodNullable<z.ZodNumber>;
|
|
53
|
-
sha256: z.ZodNullable<z.ZodString>;
|
|
54
|
-
createdBy: z.ZodString;
|
|
55
|
-
createdAt: z.ZodISODateTime;
|
|
56
|
-
readyAt: z.ZodNullable<z.ZodISODateTime>;
|
|
57
|
-
deletedAt: z.ZodNullable<z.ZodISODateTime>;
|
|
58
|
-
failureCode: z.ZodNullable<z.ZodString>;
|
|
59
|
-
}, z.core.$strict>>;
|
|
60
|
-
hasMore: z.ZodBoolean;
|
|
61
|
-
nextCursor: z.ZodNullable<z.ZodString>;
|
|
62
|
-
}, z.core.$strict>;
|
|
1
|
+
export { imageMetadataSchema, imagePageSchema } from '@zlooks.cn/images-shared';
|
|
63
2
|
//# sourceMappingURL=output-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-schema.d.ts","sourceRoot":"","sources":["../../src/domain/output-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"output-schema.d.ts","sourceRoot":"","sources":["../../src/domain/output-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,25 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { IMAGE_MAX_BYTES, mediaTypeSchema, statusSchema } from './schema.js';
|
|
3
|
-
/** Public metadata only; persistence paths, request fingerprints and credentials stay private. */
|
|
4
|
-
export const imageMetadataSchema = z.strictObject({
|
|
5
|
-
id: z.uuid().describe('不可变图片 ID;用于 read-image、delete-image 和 images://image/{id}。'),
|
|
6
|
-
originalFilename: z.string().max(200).nullable().describe('上传时提供的原始文件名;未提供时为 null,仅作搜索元数据。'),
|
|
7
|
-
status: statusSchema.describe('uploading 上传中;ready 原图可读;failed 上传失败;deleting 原图已禁用、清理中;deleted 已删除。'),
|
|
8
|
-
url: z.url().nullable().describe('仅 ready 状态返回公开原图 URL,其余为 null。公开 GET/HEAD 无需身份或防盗链参数,缓存副本不能随删除撤销。'),
|
|
9
|
-
mediaType: mediaTypeSchema.nullable().describe('服务检测出的真实图片 MIME type;尚未完成检测时为 null。'),
|
|
10
|
-
byteSize: z.number().int().min(1).max(IMAGE_MAX_BYTES).nullable().describe('原始文件字节数;尚未完成检测时为 null,不是 Base64 字符数。'),
|
|
11
|
-
width: z.number().int().positive().nullable().describe('图片宽度,单位像素;尚未完成检测时为 null。'),
|
|
12
|
-
height: z.number().int().positive().nullable().describe('图片高度,单位像素;动画为单帧高度,尚未完成检测时为 null。'),
|
|
13
|
-
sha256: z.string().regex(/^[a-f0-9]{64}$/).nullable().describe('原始字节 SHA-256;删除时用作 expectedSha256,尚未完成检测时为 null。不表示跨图片去重。'),
|
|
14
|
-
createdBy: z.string().min(1).max(128).describe('创建图片的 MCP clientId,缺失时为 subject。'),
|
|
15
|
-
createdAt: z.iso.datetime().describe('数据库记录创建时间,UTC ISO-8601;list-image 时间筛选基于此字段。'),
|
|
16
|
-
readyAt: z.iso.datetime().nullable().describe('原图持久化并提交 ready 的 UTC 时间;未就绪时为 null,删除后保留。'),
|
|
17
|
-
deletedAt: z.iso.datetime().nullable().describe('完成删除的 UTC 时间;未完成时为 null,重复删除保留首次时间。'),
|
|
18
|
-
failureCode: z.string().max(64).nullable().describe('上传失败或启动恢复记录的安全错误码;无失败时为 null,不含底层异常或本地路径。'),
|
|
19
|
-
});
|
|
20
|
-
export const imagePageSchema = z.strictObject({
|
|
21
|
-
items: z.array(imageMetadataSchema).max(100).describe('当前页图片元数据;空结果为 [],不返回图片字节、本地路径或上传幂等键。'),
|
|
22
|
-
hasMore: z.boolean().describe('是否存在下一页;false 时停止翻页。分页不是跨请求的数据库快照。'),
|
|
23
|
-
nextCursor: z.string().min(1).max(2048).nullable().describe('下一页续查值:保持筛选及排序,将此值作为 cursor;hasMore=false 时为 null。'),
|
|
24
|
-
});
|
|
1
|
+
export { imageMetadataSchema, imagePageSchema } from '@zlooks.cn/images-shared';
|
|
25
2
|
//# sourceMappingURL=output-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-schema.js","sourceRoot":"","sources":["../../src/domain/output-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"output-schema.js","sourceRoot":"","sources":["../../src/domain/output-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/domain/schema.d.ts
CHANGED
|
@@ -1,69 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const IMAGE_MAX_BYTES: number;
|
|
3
|
-
export declare const BASE64_MAX_BYTES: number;
|
|
4
|
-
export declare const mediaTypeSchema: z.ZodEnum<{
|
|
5
|
-
"image/avif": "image/avif";
|
|
6
|
-
"image/gif": "image/gif";
|
|
7
|
-
"image/jpeg": "image/jpeg";
|
|
8
|
-
"image/png": "image/png";
|
|
9
|
-
"image/webp": "image/webp";
|
|
10
|
-
}>;
|
|
11
|
-
export declare const statusSchema: z.ZodEnum<{
|
|
12
|
-
deleted: "deleted";
|
|
13
|
-
deleting: "deleting";
|
|
14
|
-
failed: "failed";
|
|
15
|
-
ready: "ready";
|
|
16
|
-
uploading: "uploading";
|
|
17
|
-
}>;
|
|
18
|
-
export declare const uploadImageSchema: z.ZodObject<{
|
|
19
|
-
idempotencyKey: z.ZodString;
|
|
20
|
-
filename: z.ZodOptional<z.ZodString>;
|
|
21
|
-
source: z.ZodLiteral<"base64">;
|
|
22
|
-
base64: z.ZodString;
|
|
23
|
-
}, z.core.$strict>;
|
|
24
|
-
export declare const readImageSchema: z.ZodObject<{
|
|
25
|
-
id: z.ZodUUID;
|
|
26
|
-
}, z.core.$strict>;
|
|
27
|
-
export declare const deleteImageSchema: z.ZodObject<{
|
|
28
|
-
id: z.ZodUUID;
|
|
29
|
-
expectedSha256: z.ZodString;
|
|
30
|
-
}, z.core.$strict>;
|
|
31
|
-
export declare const listImageSchema: z.ZodObject<{
|
|
32
|
-
createdFrom: z.ZodOptional<z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>>;
|
|
33
|
-
createdTo: z.ZodOptional<z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>>;
|
|
34
|
-
mediaTypes: z.ZodOptional<z.ZodPipe<z.ZodArray<z.ZodEnum<{
|
|
35
|
-
"image/avif": "image/avif";
|
|
36
|
-
"image/gif": "image/gif";
|
|
37
|
-
"image/jpeg": "image/jpeg";
|
|
38
|
-
"image/png": "image/png";
|
|
39
|
-
"image/webp": "image/webp";
|
|
40
|
-
}>>, z.ZodTransform<("image/avif" | "image/gif" | "image/jpeg" | "image/png" | "image/webp")[], ("image/avif" | "image/gif" | "image/jpeg" | "image/png" | "image/webp")[]>>>;
|
|
41
|
-
filenameContains: z.ZodOptional<z.ZodString>;
|
|
42
|
-
minBytes: z.ZodOptional<z.ZodNumber>;
|
|
43
|
-
maxBytes: z.ZodOptional<z.ZodNumber>;
|
|
44
|
-
minWidth: z.ZodOptional<z.ZodNumber>;
|
|
45
|
-
maxWidth: z.ZodOptional<z.ZodNumber>;
|
|
46
|
-
minHeight: z.ZodOptional<z.ZodNumber>;
|
|
47
|
-
maxHeight: z.ZodOptional<z.ZodNumber>;
|
|
48
|
-
statuses: z.ZodPipe<z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
49
|
-
deleted: "deleted";
|
|
50
|
-
deleting: "deleting";
|
|
51
|
-
failed: "failed";
|
|
52
|
-
ready: "ready";
|
|
53
|
-
uploading: "uploading";
|
|
54
|
-
}>>>, z.ZodTransform<("deleted" | "deleting" | "failed" | "ready" | "uploading")[], ("deleted" | "deleting" | "failed" | "ready" | "uploading")[]>>;
|
|
55
|
-
createdBy: z.ZodOptional<z.ZodString>;
|
|
56
|
-
sha256: z.ZodOptional<z.ZodString>;
|
|
57
|
-
order: z.ZodDefault<z.ZodEnum<{
|
|
58
|
-
asc: "asc";
|
|
59
|
-
desc: "desc";
|
|
60
|
-
}>>;
|
|
61
|
-
limit: z.ZodDefault<z.ZodNumber>;
|
|
62
|
-
cursor: z.ZodOptional<z.ZodString>;
|
|
63
|
-
}, z.core.$strict>;
|
|
64
|
-
export type ListImageInput = z.infer<typeof listImageSchema>;
|
|
65
|
-
export type ListImageRequest = z.input<typeof listImageSchema>;
|
|
66
|
-
export type ReadImageInput = z.infer<typeof readImageSchema>;
|
|
67
|
-
export type UploadImageInput = z.infer<typeof uploadImageSchema>;
|
|
68
|
-
export type DeleteImageInput = z.infer<typeof deleteImageSchema>;
|
|
1
|
+
export { BASE64_MAX_BYTES, IMAGE_MAX_BYTES, deleteImageSchema, imageMediaTypeSchema as mediaTypeSchema, imageStatusSchema as statusSchema, listImageSchema, readImageSchema, uploadImageSchema, type DeleteImageInput, type ListImageInput, type ListImageQuery, type ListImageRequest, type ReadImageInput, type UploadImageInput, } from '@zlooks.cn/images-shared';
|
|
69
2
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/domain/schema.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/domain/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,IAAI,eAAe,EACvC,iBAAiB,IAAI,YAAY,EACjC,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC"}
|
package/dist/domain/schema.js
CHANGED
|
@@ -1,44 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export const IMAGE_MAX_BYTES = 20 * 1024 * 1024;
|
|
3
|
-
export const BASE64_MAX_BYTES = 6 * 1024 * 1024;
|
|
4
|
-
export const mediaTypeSchema = z.enum(['image/jpeg', 'image/png', 'image/webp', 'image/gif', 'image/avif']);
|
|
5
|
-
export const statusSchema = z.enum(['uploading', 'ready', 'failed', 'deleting', 'deleted']);
|
|
6
|
-
const idempotencyKey = z.string().min(1).max(128).regex(/^[a-zA-Z0-9._:-]+$/)
|
|
7
|
-
.describe('调用方为一次上传指定的稳定键,1..128 字符,仅字母、数字、点、下划线、冒号和连字符。同一调用方重试相同请求使用原键;不同输入不能复用该键。确认 failed 后新上传使用新键。');
|
|
8
|
-
const filename = z.string().trim().min(1).max(200).refine((value) => !/[\x00-\x1f\x7f/\\]/.test(value), '文件名不得包含路径或控制字符');
|
|
9
|
-
const uploadFields = { idempotencyKey, filename: filename.optional().describe('可选原始文件名,用于元数据和搜索;去除首尾空白后 1..200 字符,不得含路径分隔符或控制字符。不决定存储路径、扩展名或响应头。') };
|
|
10
|
-
export const uploadImageSchema = z.strictObject({ ...uploadFields,
|
|
11
|
-
source: z.literal('base64').describe('提交调用方持有的图片字节,使用 Base64 编码;不接受 URL、文件路径或远程导入。'),
|
|
12
|
-
base64: z.string().min(4).max(Math.ceil(BASE64_MAX_BYTES / 3) * 4).regex(/^[A-Za-z0-9+/]*={0,2}$/).refine((value) => value.length % 4 === 0, 'Invalid Base64 length').describe(`将原图的完整文件字节编码为规范标准 Base64,不能编码文件路径或 URL。字符仅 A-Z、a-z、0-9、+、/;仅末尾可按需使用 1 或 2 个 = 填充,必要的填充不能省略,总长度必须是 4 的倍数。不含空格、换行或 data:image/png;base64, 等 data: 前缀;不接受以 -、_ 替代 +、/ 的 URL-safe 编码。解码后原图最多 6 MiB(${BASE64_MAX_BYTES} 字节),编码文本最多 ${Math.ceil(BASE64_MAX_BYTES / 3) * 4} 个字符(不含 JSON 包装)。必须提交完整编码,不能截断、使用省略号或手工猜测补齐;真实图片格式由服务检测。`),
|
|
13
|
-
});
|
|
14
|
-
export const readImageSchema = z.strictObject({ id: z.uuid().describe('上传、查询或元数据 Resource 返回的不可变图片 UUID,不是文件路径或公开 URL。') });
|
|
15
|
-
export const deleteImageSchema = readImageSchema.extend({ expectedSha256: z.string().regex(/^[a-f0-9]{64}$/).describe('最后读取目标元数据得到的 64 位小写十六进制 SHA-256;先向用户确认目标,摘要不匹配时拒绝删除。与 id 一起标识幂等删除目标,无需删除幂等键。') });
|
|
16
|
-
const timestamp = z.iso.datetime({ offset: true }).transform((value) => new Date(value).toISOString());
|
|
17
|
-
const nonnegativeInt = z.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
|
|
18
|
-
const positiveInt = nonnegativeInt.min(1);
|
|
19
|
-
export const listImageSchema = z.strictObject({
|
|
20
|
-
createdFrom: timestamp.optional().describe('记录创建时间起点(包含),带时区 ISO-8601,例如 2026-09-01T00:00:00+08:00;不是拍摄时间或上传完成时间。'),
|
|
21
|
-
createdTo: timestamp.optional().describe('记录创建时间终点(不包含),带时区 ISO-8601,必须晚于 createdFrom。查询自然日/月请传下一日/月起点,不使用 23:59:59 近似。'),
|
|
22
|
-
mediaTypes: z.array(mediaTypeSchema).min(1).max(5).transform((v) => [...new Set(v)].sort()).optional().describe('真实图片 MIME type,1..5 项;数组内部 OR、自动去重。与其他筛选条件 AND,尚无格式元数据的记录不匹配。'),
|
|
23
|
-
filenameContains: z.string().trim().min(1).max(200).optional().describe('原始文件名包含文本,忽略大小写;去除首尾空白后 1..200 字符。百分号、下划线按字面量匹配,不是通配符或正则;无文件名记录不匹配。'),
|
|
24
|
-
minBytes: nonnegativeInt.optional().describe('原始文件字节数下界(包含),非负安全整数;无大小元数据的记录不匹配。'),
|
|
25
|
-
maxBytes: nonnegativeInt.optional().describe('原始文件字节数上界(包含),非负安全整数,不小于 minBytes。'),
|
|
26
|
-
minWidth: positiveInt.optional().describe('宽度像素下界(包含),正安全整数;无尺寸元数据的记录不匹配。'),
|
|
27
|
-
maxWidth: positiveInt.optional().describe('宽度像素上界(包含),正安全整数,不小于 minWidth。'),
|
|
28
|
-
minHeight: positiveInt.optional().describe('高度像素下界(包含),正安全整数;无尺寸元数据的记录不匹配。'),
|
|
29
|
-
maxHeight: positiveInt.optional().describe('高度像素上界(包含),正安全整数,不小于 minHeight。'),
|
|
30
|
-
statuses: z.array(statusSchema).min(1).max(5).default(['uploading', 'ready', 'failed', 'deleting']).transform((v) => [...new Set(v)].sort()).describe('状态集合,1..5 项,内部 OR、自动去重;省略时排除 deleted。uploading 上传中、ready 可读、failed 失败、deleting 清理中、deleted 已删除。'),
|
|
31
|
-
createdBy: z.string().min(1).max(128).optional().describe('创建者 MCP clientId(缺失时为 subject),精确匹配,1..128 字符。仅筛选,不是身份声明,不扩大 images:read 授权范围。'),
|
|
32
|
-
sha256: z.string().regex(/^[a-f0-9]{64}$/).optional().describe('原始内容 SHA-256,64 位小写十六进制,精确匹配;可查同内容的多个独立记录,无摘要记录不匹配。'),
|
|
33
|
-
order: z.enum(['asc', 'desc']).default('desc').describe('按创建时间及同方向 UUID 排序:默认 desc(新到旧),asc(旧到新)。翻页时不能改变排序方向。'),
|
|
34
|
-
limit: z.number().int().min(1).max(100).default(20).describe('单页最多条数,1..100,默认 20;可在翻页时调整,不提供全量 total。'),
|
|
35
|
-
cursor: z.string().min(1).max(2048).optional().describe('首请求省略;下一页将上次结果的 nextCursor 原样作为 cursor。保留筛选条件和排序方向,不自行拼接;hasMore=false 时停止。游标不是快照或授权凭证。'),
|
|
36
|
-
}).superRefine((value, ctx) => {
|
|
37
|
-
for (const [lower, upper] of [['minBytes', 'maxBytes'], ['minWidth', 'maxWidth'], ['minHeight', 'maxHeight']]) {
|
|
38
|
-
if (value[lower] !== undefined && value[upper] !== undefined && value[lower] > value[upper])
|
|
39
|
-
ctx.addIssue({ code: 'custom', path: [upper], message: '最大值不得小于最小值' });
|
|
40
|
-
}
|
|
41
|
-
if (value.createdFrom && value.createdTo && value.createdFrom >= value.createdTo)
|
|
42
|
-
ctx.addIssue({ code: 'custom', path: ['createdTo'], message: '结束时间必须晚于开始时间' });
|
|
43
|
-
});
|
|
1
|
+
export { BASE64_MAX_BYTES, IMAGE_MAX_BYTES, deleteImageSchema, imageMediaTypeSchema as mediaTypeSchema, imageStatusSchema as statusSchema, listImageSchema, readImageSchema, uploadImageSchema, } from '@zlooks.cn/images-shared';
|
|
44
2
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/domain/schema.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/domain/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,IAAI,eAAe,EACvC,iBAAiB,IAAI,YAAY,EACjC,eAAe,EACf,eAAe,EACf,iBAAiB,GAOlB,MAAM,0BAA0B,CAAC"}
|
package/dist/identity.d.ts
CHANGED
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/identity.js
CHANGED
package/dist/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/mcp/provider.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { type ImagesMicroClient } from '@zlooks.cn/images-shared';
|
|
2
|
+
export declare function createImagesProvider(images: ImagesMicroClient): import("@hile/mcp").McpProviderDefinition;
|
|
2
3
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/mcp/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/mcp/provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAmBlC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,6CAuH7D"}
|