@giveitsmaller/contracts 0.1.2 → 0.2.3
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/asyncapi/events.yaml +2012 -0
- package/dist/asyncapi/OperationType.d.ts +4 -0
- package/dist/asyncapi/OperationType.js +4 -0
- package/dist/openapi/models/JobType.d.ts +8 -1
- package/dist/openapi/models/JobType.js +8 -1
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.js +3 -3
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +50 -0
- package/dist/openapi/models/MultipartCompleteResponse.js +53 -0
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +54 -0
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.js +3 -3
- package/dist/openapi/models/OperationInputModel.d.ts +3 -1
- package/dist/openapi/models/OperationInputModel.js +3 -1
- package/dist/openapi/models/OperationType.d.ts +24 -2
- package/dist/openapi/models/OperationType.js +24 -2
- package/dist/openapi/models/index.d.ts +2 -0
- package/dist/openapi/models/index.js +2 -0
- package/dist/operations/index.d.ts +1 -0
- package/dist/operations/index.js +1 -0
- package/dist/operations/watermark.d.ts +28 -0
- package/dist/operations/watermark.js +19 -0
- package/openapi/api.yaml +2533 -0
- package/operations/schemas/archive.yaml +22 -0
- package/operations/schemas/compress.yaml +280 -0
- package/operations/schemas/convert.yaml +104 -0
- package/operations/schemas/merge.yaml +211 -0
- package/operations/schemas/thumbnail.yaml +120 -0
- package/operations/schemas/watermark.yaml +87 -0
- package/package.json +14 -3
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
declare enum OperationType {
|
|
2
2
|
COMPRESS = "compress",
|
|
3
3
|
THUMBNAIL = "thumbnail",
|
|
4
|
+
THUMBNAIL_IMAGE = "thumbnail_image",
|
|
5
|
+
THUMBNAIL_VIDEO = "thumbnail_video",
|
|
6
|
+
THUMBNAIL_DOCUMENT = "thumbnail_document",
|
|
7
|
+
THUMBNAIL_OFFICE = "thumbnail_office",
|
|
4
8
|
WATERMARK = "watermark",
|
|
5
9
|
CONVERT = "convert",
|
|
6
10
|
MERGE = "merge",
|
|
@@ -2,6 +2,10 @@ var OperationType;
|
|
|
2
2
|
(function (OperationType) {
|
|
3
3
|
OperationType["COMPRESS"] = "compress";
|
|
4
4
|
OperationType["THUMBNAIL"] = "thumbnail";
|
|
5
|
+
OperationType["THUMBNAIL_IMAGE"] = "thumbnail_image";
|
|
6
|
+
OperationType["THUMBNAIL_VIDEO"] = "thumbnail_video";
|
|
7
|
+
OperationType["THUMBNAIL_DOCUMENT"] = "thumbnail_document";
|
|
8
|
+
OperationType["THUMBNAIL_OFFICE"] = "thumbnail_office";
|
|
5
9
|
OperationType["WATERMARK"] = "watermark";
|
|
6
10
|
OperationType["CONVERT"] = "convert";
|
|
7
11
|
OperationType["MERGE"] = "merge";
|
|
@@ -10,7 +10,14 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
/**
|
|
13
|
-
* Media type category derived from MIME type. Used
|
|
13
|
+
* Media type category derived from MIME type. Used as the
|
|
14
|
+
* `job_type` SNS message attribute on the `job-requests` topic —
|
|
15
|
+
* the single filter attribute that routes compression traffic to
|
|
16
|
+
* per-media-type compression queues. Not used by any other SNS
|
|
17
|
+
* topic; non-compression operations are routed by `operation_type`
|
|
18
|
+
* on the separate `operations` topic.
|
|
19
|
+
*
|
|
20
|
+
* Derivation:
|
|
14
21
|
* - image/* -> image
|
|
15
22
|
* - video/* -> video
|
|
16
23
|
* - audio/* -> audio
|
|
@@ -12,7 +12,14 @@
|
|
|
12
12
|
* Do not edit the class manually.
|
|
13
13
|
*/
|
|
14
14
|
/**
|
|
15
|
-
* Media type category derived from MIME type. Used
|
|
15
|
+
* Media type category derived from MIME type. Used as the
|
|
16
|
+
* `job_type` SNS message attribute on the `job-requests` topic —
|
|
17
|
+
* the single filter attribute that routes compression traffic to
|
|
18
|
+
* per-media-type compression queues. Not used by any other SNS
|
|
19
|
+
* topic; non-compression operations are routed by `operation_type`
|
|
20
|
+
* on the separate `operations` topic.
|
|
21
|
+
*
|
|
22
|
+
* Derivation:
|
|
16
23
|
* - image/* -> image
|
|
17
24
|
* - video/* -> video
|
|
18
25
|
* - audio/* -> audio
|
|
@@ -21,7 +21,7 @@ export interface MultipartCompleteRequest {
|
|
|
21
21
|
* @type {string}
|
|
22
22
|
* @memberof MultipartCompleteRequest
|
|
23
23
|
*/
|
|
24
|
-
|
|
24
|
+
uploadId: string;
|
|
25
25
|
/**
|
|
26
26
|
* ETags for parts 2 through total_parts, collected from S3 PUT responses.
|
|
27
27
|
* Part 1 ETag is already known from the initiate step.
|
|
@@ -16,7 +16,7 @@ import { MultipartCompleteRequestPartsInnerFromJSON, MultipartCompleteRequestPar
|
|
|
16
16
|
* Check if a given object implements the MultipartCompleteRequest interface.
|
|
17
17
|
*/
|
|
18
18
|
export function instanceOfMultipartCompleteRequest(value) {
|
|
19
|
-
if (!('
|
|
19
|
+
if (!('uploadId' in value) || value['uploadId'] === undefined)
|
|
20
20
|
return false;
|
|
21
21
|
if (!('parts' in value) || value['parts'] === undefined)
|
|
22
22
|
return false;
|
|
@@ -30,7 +30,7 @@ export function MultipartCompleteRequestFromJSONTyped(json, ignoreDiscriminator)
|
|
|
30
30
|
return json;
|
|
31
31
|
}
|
|
32
32
|
return {
|
|
33
|
-
'
|
|
33
|
+
'uploadId': json['upload_id'],
|
|
34
34
|
'parts': (json['parts'].map(MultipartCompleteRequestPartsInnerFromJSON)),
|
|
35
35
|
};
|
|
36
36
|
}
|
|
@@ -42,7 +42,7 @@ export function MultipartCompleteRequestToJSONTyped(value, ignoreDiscriminator =
|
|
|
42
42
|
return value;
|
|
43
43
|
}
|
|
44
44
|
return {
|
|
45
|
-
'
|
|
45
|
+
'upload_id': value['uploadId'],
|
|
46
46
|
'parts': (value['parts'].map(MultipartCompleteRequestPartsInnerToJSON)),
|
|
47
47
|
};
|
|
48
48
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GISL Compression API
|
|
3
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 2.0.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Result of finalising a multipart upload. Intentionally narrower than
|
|
14
|
+
* `UploadResponse` (single-upload shape) — the server returns only the
|
|
15
|
+
* finalised `upload_id` and a completion status. Clients who need file
|
|
16
|
+
* metadata (original name, MIME type, size) can use the values captured
|
|
17
|
+
* during initiate, or call `GET /api/uploads/{id}/metadata`.
|
|
18
|
+
*
|
|
19
|
+
* @export
|
|
20
|
+
* @interface MultipartCompleteResponse
|
|
21
|
+
*/
|
|
22
|
+
export interface MultipartCompleteResponse {
|
|
23
|
+
/**
|
|
24
|
+
* UUID v7 format identifier (time-ordered)
|
|
25
|
+
* @type {string}
|
|
26
|
+
* @memberof MultipartCompleteResponse
|
|
27
|
+
*/
|
|
28
|
+
uploadId: string;
|
|
29
|
+
/**
|
|
30
|
+
* Terminal status of the multipart upload session.
|
|
31
|
+
* @type {string}
|
|
32
|
+
* @memberof MultipartCompleteResponse
|
|
33
|
+
*/
|
|
34
|
+
status: MultipartCompleteResponseStatusEnum;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @export
|
|
38
|
+
*/
|
|
39
|
+
export declare const MultipartCompleteResponseStatusEnum: {
|
|
40
|
+
readonly completed: "completed";
|
|
41
|
+
};
|
|
42
|
+
export type MultipartCompleteResponseStatusEnum = typeof MultipartCompleteResponseStatusEnum[keyof typeof MultipartCompleteResponseStatusEnum];
|
|
43
|
+
/**
|
|
44
|
+
* Check if a given object implements the MultipartCompleteResponse interface.
|
|
45
|
+
*/
|
|
46
|
+
export declare function instanceOfMultipartCompleteResponse(value: object): value is MultipartCompleteResponse;
|
|
47
|
+
export declare function MultipartCompleteResponseFromJSON(json: any): MultipartCompleteResponse;
|
|
48
|
+
export declare function MultipartCompleteResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartCompleteResponse;
|
|
49
|
+
export declare function MultipartCompleteResponseToJSON(json: any): MultipartCompleteResponse;
|
|
50
|
+
export declare function MultipartCompleteResponseToJSONTyped(value?: MultipartCompleteResponse | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* @export
|
|
16
|
+
*/
|
|
17
|
+
export const MultipartCompleteResponseStatusEnum = {
|
|
18
|
+
completed: 'completed'
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Check if a given object implements the MultipartCompleteResponse interface.
|
|
22
|
+
*/
|
|
23
|
+
export function instanceOfMultipartCompleteResponse(value) {
|
|
24
|
+
if (!('uploadId' in value) || value['uploadId'] === undefined)
|
|
25
|
+
return false;
|
|
26
|
+
if (!('status' in value) || value['status'] === undefined)
|
|
27
|
+
return false;
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
export function MultipartCompleteResponseFromJSON(json) {
|
|
31
|
+
return MultipartCompleteResponseFromJSONTyped(json, false);
|
|
32
|
+
}
|
|
33
|
+
export function MultipartCompleteResponseFromJSONTyped(json, ignoreDiscriminator) {
|
|
34
|
+
if (json == null) {
|
|
35
|
+
return json;
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
'uploadId': json['upload_id'],
|
|
39
|
+
'status': json['status'],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function MultipartCompleteResponseToJSON(json) {
|
|
43
|
+
return MultipartCompleteResponseToJSONTyped(json, false);
|
|
44
|
+
}
|
|
45
|
+
export function MultipartCompleteResponseToJSONTyped(value, ignoreDiscriminator = false) {
|
|
46
|
+
if (value == null) {
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
'upload_id': value['uploadId'],
|
|
51
|
+
'status': value['status'],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GISL Compression API
|
|
3
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 2.0.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
import type { MultipartCompleteResponse } from './MultipartCompleteResponse.js';
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @export
|
|
16
|
+
* @interface MultipartCompleteSuccessEnvelope
|
|
17
|
+
*/
|
|
18
|
+
export interface MultipartCompleteSuccessEnvelope {
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @type {boolean}
|
|
22
|
+
* @memberof MultipartCompleteSuccessEnvelope
|
|
23
|
+
*/
|
|
24
|
+
success: MultipartCompleteSuccessEnvelopeSuccessEnum;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @type {MultipartCompleteResponse}
|
|
28
|
+
* @memberof MultipartCompleteSuccessEnvelope
|
|
29
|
+
*/
|
|
30
|
+
data: MultipartCompleteResponse;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @export
|
|
34
|
+
*/
|
|
35
|
+
export declare const MultipartCompleteSuccessEnvelopeSuccessEnum: {
|
|
36
|
+
readonly true: true;
|
|
37
|
+
};
|
|
38
|
+
export type MultipartCompleteSuccessEnvelopeSuccessEnum = typeof MultipartCompleteSuccessEnvelopeSuccessEnum[keyof typeof MultipartCompleteSuccessEnvelopeSuccessEnum];
|
|
39
|
+
/**
|
|
40
|
+
* Check if a given object implements the MultipartCompleteSuccessEnvelope interface.
|
|
41
|
+
*/
|
|
42
|
+
export declare function instanceOfMultipartCompleteSuccessEnvelope(value: object): value is MultipartCompleteSuccessEnvelope;
|
|
43
|
+
export declare function MultipartCompleteSuccessEnvelopeFromJSON(json: any): MultipartCompleteSuccessEnvelope;
|
|
44
|
+
export declare function MultipartCompleteSuccessEnvelopeFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartCompleteSuccessEnvelope;
|
|
45
|
+
export declare function MultipartCompleteSuccessEnvelopeToJSON(json: any): MultipartCompleteSuccessEnvelope;
|
|
46
|
+
export declare function MultipartCompleteSuccessEnvelopeToJSONTyped(value?: MultipartCompleteSuccessEnvelope | null, ignoreDiscriminator?: boolean): any;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* GISL Compression API
|
|
5
|
+
* REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, watermark, merge, archive, convert) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (CDN-cacheable), health probes return flat objects, and `POST /api/contact` returns 204 with no body.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 2.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
import { MultipartCompleteResponseFromJSON, MultipartCompleteResponseToJSON, } from './MultipartCompleteResponse.js';
|
|
15
|
+
/**
|
|
16
|
+
* @export
|
|
17
|
+
*/
|
|
18
|
+
export const MultipartCompleteSuccessEnvelopeSuccessEnum = {
|
|
19
|
+
true: true
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Check if a given object implements the MultipartCompleteSuccessEnvelope interface.
|
|
23
|
+
*/
|
|
24
|
+
export function instanceOfMultipartCompleteSuccessEnvelope(value) {
|
|
25
|
+
if (!('success' in value) || value['success'] === undefined)
|
|
26
|
+
return false;
|
|
27
|
+
if (!('data' in value) || value['data'] === undefined)
|
|
28
|
+
return false;
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
export function MultipartCompleteSuccessEnvelopeFromJSON(json) {
|
|
32
|
+
return MultipartCompleteSuccessEnvelopeFromJSONTyped(json, false);
|
|
33
|
+
}
|
|
34
|
+
export function MultipartCompleteSuccessEnvelopeFromJSONTyped(json, ignoreDiscriminator) {
|
|
35
|
+
if (json == null) {
|
|
36
|
+
return json;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
'success': json['success'],
|
|
40
|
+
'data': MultipartCompleteResponseFromJSON(json['data']),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function MultipartCompleteSuccessEnvelopeToJSON(json) {
|
|
44
|
+
return MultipartCompleteSuccessEnvelopeToJSONTyped(json, false);
|
|
45
|
+
}
|
|
46
|
+
export function MultipartCompleteSuccessEnvelopeToJSONTyped(value, ignoreDiscriminator = false) {
|
|
47
|
+
if (value == null) {
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
'success': value['success'],
|
|
52
|
+
'data': MultipartCompleteResponseToJSON(value['data']),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
@@ -16,7 +16,7 @@ import { PresignedUrlPartFromJSON, PresignedUrlPartToJSON, } from './PresignedUr
|
|
|
16
16
|
* Check if a given object implements the MultipartInitiateResponse interface.
|
|
17
17
|
*/
|
|
18
18
|
export function instanceOfMultipartInitiateResponse(value) {
|
|
19
|
-
if (!('
|
|
19
|
+
if (!('uploadId' in value) || value['uploadId'] === undefined)
|
|
20
20
|
return false;
|
|
21
21
|
if (!('mimeType' in value) || value['mimeType'] === undefined)
|
|
22
22
|
return false;
|
|
@@ -40,7 +40,7 @@ export function MultipartInitiateResponseFromJSONTyped(json, ignoreDiscriminator
|
|
|
40
40
|
return json;
|
|
41
41
|
}
|
|
42
42
|
return {
|
|
43
|
-
'
|
|
43
|
+
'uploadId': json['upload_id'],
|
|
44
44
|
'mimeType': json['mime_type'],
|
|
45
45
|
'firstChunkEtag': json['first_chunk_etag'],
|
|
46
46
|
'firstChunkSizeBytes': json['first_chunk_size_bytes'],
|
|
@@ -57,7 +57,7 @@ export function MultipartInitiateResponseToJSONTyped(value, ignoreDiscriminator
|
|
|
57
57
|
return value;
|
|
58
58
|
}
|
|
59
59
|
return {
|
|
60
|
-
'
|
|
60
|
+
'upload_id': value['uploadId'],
|
|
61
61
|
'mime_type': value['mimeType'],
|
|
62
62
|
'first_chunk_etag': value['firstChunkEtag'],
|
|
63
63
|
'first_chunk_size_bytes': value['firstChunkSizeBytes'],
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
*/
|
|
12
12
|
/**
|
|
13
13
|
* Whether the operation accepts a single file or multiple files:
|
|
14
|
-
* - single: One input file (compress, thumbnail,
|
|
14
|
+
* - single: One input file (compress, thumbnail, thumbnail_image,
|
|
15
|
+
* thumbnail_video, thumbnail_document, thumbnail_office,
|
|
16
|
+
* watermark, convert)
|
|
15
17
|
* - multi: Multiple input files (merge, archive)
|
|
16
18
|
*
|
|
17
19
|
* @export
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
*/
|
|
14
14
|
/**
|
|
15
15
|
* Whether the operation accepts a single file or multiple files:
|
|
16
|
-
* - single: One input file (compress, thumbnail,
|
|
16
|
+
* - single: One input file (compress, thumbnail, thumbnail_image,
|
|
17
|
+
* thumbnail_video, thumbnail_document, thumbnail_office,
|
|
18
|
+
* watermark, convert)
|
|
17
19
|
* - multi: Multiple input files (merge, archive)
|
|
18
20
|
*
|
|
19
21
|
* @export
|
|
@@ -12,17 +12,39 @@
|
|
|
12
12
|
/**
|
|
13
13
|
* Available operation types:
|
|
14
14
|
* - compress: Reduce file size (images, audio, video, documents)
|
|
15
|
-
* - thumbnail:
|
|
16
|
-
*
|
|
15
|
+
* - thumbnail: Legacy thumbnail value. Generates a preview image
|
|
16
|
+
* for any media type via a single Lambda. Currently the only
|
|
17
|
+
* thumbnail value the compression_api publisher emits; retirement
|
|
18
|
+
* is planned after the publisher adopts the four sub-type values
|
|
19
|
+
* below in a follow-up API PR.
|
|
20
|
+
* - thumbnail_image: Image thumbnail sub-type. Backed by a dedicated
|
|
21
|
+
* Rust image Lambda. Not yet emitted by the publisher.
|
|
22
|
+
* - thumbnail_video: Video thumbnail sub-type. Backed by a dedicated
|
|
23
|
+
* FFmpeg Lambda. Not yet emitted.
|
|
24
|
+
* - thumbnail_document: PDF/EPUB thumbnail sub-type. Backed by a
|
|
25
|
+
* dedicated Ghostscript Lambda. Not yet emitted.
|
|
26
|
+
* - thumbnail_office: Office document (DOCX/XLSX/PPTX/ODT/ODS/ODP)
|
|
27
|
+
* thumbnail sub-type. Backed by a dedicated LibreOffice Lambda.
|
|
28
|
+
* Not yet emitted.
|
|
29
|
+
* - watermark: Apply branding/protection (images only)
|
|
17
30
|
* - merge: Concatenate/combine multiple files into one (images, video, audio, documents/PDF). Multi-input.
|
|
18
31
|
* - archive: Bundle files into ZIP/tar.gz (all types). Multi-input.
|
|
19
32
|
* - convert: Change file format (all types)
|
|
20
33
|
*
|
|
34
|
+
* Both the legacy `thumbnail` value and the four sub-type values
|
|
35
|
+
* are valid routing targets today during the thumbnail migration
|
|
36
|
+
* window. See `asyncapi/events.yaml` for the full routing
|
|
37
|
+
* vocabulary and the publisher branching rule.
|
|
38
|
+
*
|
|
21
39
|
* @export
|
|
22
40
|
*/
|
|
23
41
|
export declare const OperationType: {
|
|
24
42
|
readonly compress: "compress";
|
|
25
43
|
readonly thumbnail: "thumbnail";
|
|
44
|
+
readonly thumbnail_image: "thumbnail_image";
|
|
45
|
+
readonly thumbnail_video: "thumbnail_video";
|
|
46
|
+
readonly thumbnail_document: "thumbnail_document";
|
|
47
|
+
readonly thumbnail_office: "thumbnail_office";
|
|
26
48
|
readonly watermark: "watermark";
|
|
27
49
|
readonly merge: "merge";
|
|
28
50
|
readonly archive: "archive";
|
|
@@ -14,17 +14,39 @@
|
|
|
14
14
|
/**
|
|
15
15
|
* Available operation types:
|
|
16
16
|
* - compress: Reduce file size (images, audio, video, documents)
|
|
17
|
-
* - thumbnail:
|
|
18
|
-
*
|
|
17
|
+
* - thumbnail: Legacy thumbnail value. Generates a preview image
|
|
18
|
+
* for any media type via a single Lambda. Currently the only
|
|
19
|
+
* thumbnail value the compression_api publisher emits; retirement
|
|
20
|
+
* is planned after the publisher adopts the four sub-type values
|
|
21
|
+
* below in a follow-up API PR.
|
|
22
|
+
* - thumbnail_image: Image thumbnail sub-type. Backed by a dedicated
|
|
23
|
+
* Rust image Lambda. Not yet emitted by the publisher.
|
|
24
|
+
* - thumbnail_video: Video thumbnail sub-type. Backed by a dedicated
|
|
25
|
+
* FFmpeg Lambda. Not yet emitted.
|
|
26
|
+
* - thumbnail_document: PDF/EPUB thumbnail sub-type. Backed by a
|
|
27
|
+
* dedicated Ghostscript Lambda. Not yet emitted.
|
|
28
|
+
* - thumbnail_office: Office document (DOCX/XLSX/PPTX/ODT/ODS/ODP)
|
|
29
|
+
* thumbnail sub-type. Backed by a dedicated LibreOffice Lambda.
|
|
30
|
+
* Not yet emitted.
|
|
31
|
+
* - watermark: Apply branding/protection (images only)
|
|
19
32
|
* - merge: Concatenate/combine multiple files into one (images, video, audio, documents/PDF). Multi-input.
|
|
20
33
|
* - archive: Bundle files into ZIP/tar.gz (all types). Multi-input.
|
|
21
34
|
* - convert: Change file format (all types)
|
|
22
35
|
*
|
|
36
|
+
* Both the legacy `thumbnail` value and the four sub-type values
|
|
37
|
+
* are valid routing targets today during the thumbnail migration
|
|
38
|
+
* window. See `asyncapi/events.yaml` for the full routing
|
|
39
|
+
* vocabulary and the publisher branching rule.
|
|
40
|
+
*
|
|
23
41
|
* @export
|
|
24
42
|
*/
|
|
25
43
|
export const OperationType = {
|
|
26
44
|
compress: 'compress',
|
|
27
45
|
thumbnail: 'thumbnail',
|
|
46
|
+
thumbnail_image: 'thumbnail_image',
|
|
47
|
+
thumbnail_video: 'thumbnail_video',
|
|
48
|
+
thumbnail_document: 'thumbnail_document',
|
|
49
|
+
thumbnail_office: 'thumbnail_office',
|
|
28
50
|
watermark: 'watermark',
|
|
29
51
|
merge: 'merge',
|
|
30
52
|
archive: 'archive',
|
|
@@ -20,6 +20,8 @@ export * from './MetadataSuccessEnvelope.js';
|
|
|
20
20
|
export * from './MimeGroupSchema.js';
|
|
21
21
|
export * from './MultipartCompleteRequest.js';
|
|
22
22
|
export * from './MultipartCompleteRequestPartsInner.js';
|
|
23
|
+
export * from './MultipartCompleteResponse.js';
|
|
24
|
+
export * from './MultipartCompleteSuccessEnvelope.js';
|
|
23
25
|
export * from './MultipartInitiateResponse.js';
|
|
24
26
|
export * from './MultipartInitiateSuccessEnvelope.js';
|
|
25
27
|
export * from './OperationDefinition.js';
|
|
@@ -22,6 +22,8 @@ export * from './MetadataSuccessEnvelope.js';
|
|
|
22
22
|
export * from './MimeGroupSchema.js';
|
|
23
23
|
export * from './MultipartCompleteRequest.js';
|
|
24
24
|
export * from './MultipartCompleteRequestPartsInner.js';
|
|
25
|
+
export * from './MultipartCompleteResponse.js';
|
|
26
|
+
export * from './MultipartCompleteSuccessEnvelope.js';
|
|
25
27
|
export * from './MultipartInitiateResponse.js';
|
|
26
28
|
export * from './MultipartInitiateSuccessEnvelope.js';
|
|
27
29
|
export * from './OperationDefinition.js';
|
package/dist/operations/index.js
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare enum WatermarkImageWatermarkType {
|
|
2
|
+
Image = "image",
|
|
3
|
+
Text = "text"
|
|
4
|
+
}
|
|
5
|
+
export declare enum WatermarkImagePosition {
|
|
6
|
+
Center = "center",
|
|
7
|
+
TopLeft = "top-left",
|
|
8
|
+
TopRight = "top-right",
|
|
9
|
+
BottomLeft = "bottom-left",
|
|
10
|
+
BottomRight = "bottom-right"
|
|
11
|
+
}
|
|
12
|
+
export declare enum WatermarkImageWatermarkMode {
|
|
13
|
+
Single = "single",
|
|
14
|
+
Tiled = "tiled"
|
|
15
|
+
}
|
|
16
|
+
export interface WatermarkImageOptions {
|
|
17
|
+
watermark_type?: WatermarkImageWatermarkType;
|
|
18
|
+
position?: WatermarkImagePosition;
|
|
19
|
+
opacity?: number;
|
|
20
|
+
watermark_bucket?: string;
|
|
21
|
+
watermark_key?: string;
|
|
22
|
+
text?: string;
|
|
23
|
+
font_size?: number;
|
|
24
|
+
color?: string;
|
|
25
|
+
watermark_mode?: WatermarkImageWatermarkMode;
|
|
26
|
+
rotation?: number;
|
|
27
|
+
tile_spacing?: number;
|
|
28
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Auto-generated from watermark.yaml -- do not edit
|
|
2
|
+
export var WatermarkImageWatermarkType;
|
|
3
|
+
(function (WatermarkImageWatermarkType) {
|
|
4
|
+
WatermarkImageWatermarkType["Image"] = "image";
|
|
5
|
+
WatermarkImageWatermarkType["Text"] = "text";
|
|
6
|
+
})(WatermarkImageWatermarkType || (WatermarkImageWatermarkType = {}));
|
|
7
|
+
export var WatermarkImagePosition;
|
|
8
|
+
(function (WatermarkImagePosition) {
|
|
9
|
+
WatermarkImagePosition["Center"] = "center";
|
|
10
|
+
WatermarkImagePosition["TopLeft"] = "top-left";
|
|
11
|
+
WatermarkImagePosition["TopRight"] = "top-right";
|
|
12
|
+
WatermarkImagePosition["BottomLeft"] = "bottom-left";
|
|
13
|
+
WatermarkImagePosition["BottomRight"] = "bottom-right";
|
|
14
|
+
})(WatermarkImagePosition || (WatermarkImagePosition = {}));
|
|
15
|
+
export var WatermarkImageWatermarkMode;
|
|
16
|
+
(function (WatermarkImageWatermarkMode) {
|
|
17
|
+
WatermarkImageWatermarkMode["Single"] = "single";
|
|
18
|
+
WatermarkImageWatermarkMode["Tiled"] = "tiled";
|
|
19
|
+
})(WatermarkImageWatermarkMode || (WatermarkImageWatermarkMode = {}));
|