@corsair-dev/abyssale 0.1.0 → 0.1.1
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/README.md +37 -0
- package/dist/cache-banner.d.ts +18 -0
- package/dist/cache-banner.d.ts.map +1 -0
- package/dist/endpoints/generation.d.ts +20 -0
- package/dist/endpoints/generation.d.ts.map +1 -0
- package/dist/endpoints/index.d.ts +1 -0
- package/dist/endpoints/index.d.ts.map +1 -1
- package/dist/endpoints/shared.d.ts +1 -1
- package/dist/endpoints/shared.d.ts.map +1 -1
- package/dist/endpoints/types.d.ts +261 -0
- package/dist/endpoints/types.d.ts.map +1 -1
- package/dist/index.d.ts +249 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/schema/database.d.ts +56 -0
- package/dist/schema/database.d.ts.map +1 -1
- package/dist/schema/index.d.ts +29 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/webhooks/banners.d.ts +4 -0
- package/dist/webhooks/banners.d.ts.map +1 -0
- package/dist/webhooks/designs.d.ts +3 -0
- package/dist/webhooks/designs.d.ts.map +1 -0
- package/dist/webhooks/exports.d.ts +3 -0
- package/dist/webhooks/exports.d.ts.map +1 -0
- package/dist/webhooks/index.d.ts +196 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/types.d.ts +131 -0
- package/dist/webhooks/types.d.ts.map +1 -0
- package/dist/webhooks.test.d.ts +2 -0
- package/dist/webhooks.test.d.ts.map +1 -0
- package/package.json +9 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import type { AuthTypes, BindEndpoints, BindWebhooks, CorsairEndpoint, CorsairErrorHandler, CorsairPlugin, CorsairPluginContext, KeyBuilderContext, PickAuth, PluginPermissionsConfig } from 'corsair/core';
|
|
1
|
+
import type { AuthTypes, BindEndpoints, BindWebhooks, CorsairEndpoint, CorsairErrorHandler, CorsairPlugin, CorsairPluginContext, CorsairWebhook, KeyBuilderContext, PickAuth, PluginPermissionsConfig } from 'corsair/core';
|
|
2
2
|
import type { AbyssaleEndpointInputs, AbyssaleEndpointOutputs } from './endpoints/types';
|
|
3
3
|
import { AbyssaleSchema } from './schema';
|
|
4
|
+
import type { AbyssaleWebhookOutputs, NewBannerBatchEvent, NewBannerEvent, NewExportEvent, TemplateStatusEvent } from './webhooks';
|
|
4
5
|
export type AbyssalePluginOptions = {
|
|
5
6
|
authType?: PickAuth<'api_key'>;
|
|
6
7
|
key?: string;
|
|
8
|
+
webhookSecret?: string;
|
|
7
9
|
hooks?: InternalAbyssalePlugin['hooks'];
|
|
10
|
+
webhookHooks?: InternalAbyssalePlugin['webhookHooks'];
|
|
8
11
|
errorHandlers?: CorsairErrorHandler;
|
|
9
12
|
permissions?: PluginPermissionsConfig<typeof abyssaleEndpointsNested>;
|
|
10
13
|
};
|
|
@@ -17,9 +20,17 @@ export type AbyssaleEndpoints = {
|
|
|
17
20
|
getDesigns: AbyssaleEndpoint<'getDesigns'>;
|
|
18
21
|
getFonts: AbyssaleEndpoint<'getFonts'>;
|
|
19
22
|
testAuth: AbyssaleEndpoint<'testAuth'>;
|
|
23
|
+
generateImage: AbyssaleEndpoint<'generateImage'>;
|
|
24
|
+
generateBatch: AbyssaleEndpoint<'generateBatch'>;
|
|
25
|
+
getGenerationRequest: AbyssaleEndpoint<'getGenerationRequest'>;
|
|
26
|
+
};
|
|
27
|
+
type AbyssaleWebhook<K extends keyof AbyssaleWebhookOutputs, TEvent> = CorsairWebhook<AbyssaleContext, TEvent, AbyssaleWebhookOutputs[K]>;
|
|
28
|
+
export type AbyssaleWebhooks = {
|
|
29
|
+
newBanner: AbyssaleWebhook<'newBanner', NewBannerEvent>;
|
|
30
|
+
newBannerBatch: AbyssaleWebhook<'newBannerBatch', NewBannerBatchEvent>;
|
|
31
|
+
newExport: AbyssaleWebhook<'newExport', NewExportEvent>;
|
|
32
|
+
templateStatus: AbyssaleWebhook<'templateStatus', TemplateStatusEvent>;
|
|
20
33
|
};
|
|
21
|
-
export type AbyssaleWebhooks = Record<string, never>;
|
|
22
|
-
export type AbyssaleBoundWebhooks = BindWebhooks<AbyssaleWebhooks>;
|
|
23
34
|
declare const abyssaleEndpointsNested: {
|
|
24
35
|
readonly projects: {
|
|
25
36
|
readonly create: AbyssaleEndpoint<"createProject">;
|
|
@@ -33,8 +44,110 @@ declare const abyssaleEndpointsNested: {
|
|
|
33
44
|
readonly auth: {
|
|
34
45
|
readonly test: AbyssaleEndpoint<"testAuth">;
|
|
35
46
|
};
|
|
47
|
+
readonly generation: {
|
|
48
|
+
readonly image: AbyssaleEndpoint<"generateImage">;
|
|
49
|
+
readonly batch: AbyssaleEndpoint<"generateBatch">;
|
|
50
|
+
readonly status: AbyssaleEndpoint<"getGenerationRequest">;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
declare const abyssaleWebhooksNested: {
|
|
54
|
+
readonly banners: {
|
|
55
|
+
readonly created: AbyssaleWebhook<"newBanner", {
|
|
56
|
+
[x: string]: unknown;
|
|
57
|
+
id: string;
|
|
58
|
+
event_type: "NEW_BANNER";
|
|
59
|
+
version?: number | undefined;
|
|
60
|
+
sharing_id?: string | undefined;
|
|
61
|
+
file?: {
|
|
62
|
+
[x: string]: unknown;
|
|
63
|
+
type?: string | undefined;
|
|
64
|
+
url?: string | undefined;
|
|
65
|
+
cdn_url?: string | undefined;
|
|
66
|
+
fallback_image_url?: string | undefined;
|
|
67
|
+
filename?: string | undefined;
|
|
68
|
+
} | undefined;
|
|
69
|
+
format?: {
|
|
70
|
+
[x: string]: unknown;
|
|
71
|
+
id?: string | undefined;
|
|
72
|
+
width?: number | undefined;
|
|
73
|
+
height?: number | undefined;
|
|
74
|
+
unit?: string | undefined;
|
|
75
|
+
} | undefined;
|
|
76
|
+
template?: {
|
|
77
|
+
[x: string]: unknown;
|
|
78
|
+
id?: string | undefined;
|
|
79
|
+
name?: string | undefined;
|
|
80
|
+
created_at?: number | undefined;
|
|
81
|
+
updated_at?: number | undefined;
|
|
82
|
+
} | undefined;
|
|
83
|
+
}>;
|
|
84
|
+
readonly batchCompleted: AbyssaleWebhook<"newBannerBatch", {
|
|
85
|
+
[x: string]: unknown;
|
|
86
|
+
event_type: "NEW_BANNER_BATCH";
|
|
87
|
+
generation_request_id: string;
|
|
88
|
+
banners: {
|
|
89
|
+
[x: string]: unknown;
|
|
90
|
+
id: string;
|
|
91
|
+
version?: number | undefined;
|
|
92
|
+
sharing_id?: string | undefined;
|
|
93
|
+
file?: {
|
|
94
|
+
[x: string]: unknown;
|
|
95
|
+
type?: string | undefined;
|
|
96
|
+
url?: string | undefined;
|
|
97
|
+
cdn_url?: string | undefined;
|
|
98
|
+
fallback_image_url?: string | undefined;
|
|
99
|
+
filename?: string | undefined;
|
|
100
|
+
} | undefined;
|
|
101
|
+
format?: {
|
|
102
|
+
[x: string]: unknown;
|
|
103
|
+
id?: string | undefined;
|
|
104
|
+
width?: number | undefined;
|
|
105
|
+
height?: number | undefined;
|
|
106
|
+
unit?: string | undefined;
|
|
107
|
+
} | undefined;
|
|
108
|
+
template?: {
|
|
109
|
+
[x: string]: unknown;
|
|
110
|
+
id?: string | undefined;
|
|
111
|
+
name?: string | undefined;
|
|
112
|
+
created_at?: number | undefined;
|
|
113
|
+
updated_at?: number | undefined;
|
|
114
|
+
} | undefined;
|
|
115
|
+
project?: {
|
|
116
|
+
[x: string]: unknown;
|
|
117
|
+
id?: string | undefined;
|
|
118
|
+
name?: string | undefined;
|
|
119
|
+
} | undefined;
|
|
120
|
+
}[];
|
|
121
|
+
errors: {
|
|
122
|
+
[x: string]: unknown;
|
|
123
|
+
template_format_name: string;
|
|
124
|
+
reason: string;
|
|
125
|
+
}[];
|
|
126
|
+
}>;
|
|
127
|
+
};
|
|
128
|
+
readonly exports: {
|
|
129
|
+
readonly completed: AbyssaleWebhook<"newExport", {
|
|
130
|
+
[x: string]: unknown;
|
|
131
|
+
event_type: "NEW_EXPORT";
|
|
132
|
+
export_id: string;
|
|
133
|
+
archive_url: string;
|
|
134
|
+
requested_at?: number | undefined;
|
|
135
|
+
generated_at?: number | undefined;
|
|
136
|
+
}>;
|
|
137
|
+
};
|
|
138
|
+
readonly designs: {
|
|
139
|
+
readonly statusChanged: AbyssaleWebhook<"templateStatus", {
|
|
140
|
+
[x: string]: unknown;
|
|
141
|
+
event_type: "TEMPLATE_STATUS";
|
|
142
|
+
id: string;
|
|
143
|
+
status: string;
|
|
144
|
+
name?: string | undefined;
|
|
145
|
+
created_at?: number | undefined;
|
|
146
|
+
updated_at?: number | undefined;
|
|
147
|
+
status_updated_at?: number | undefined;
|
|
148
|
+
}>;
|
|
149
|
+
};
|
|
36
150
|
};
|
|
37
|
-
declare const abyssaleWebhooksNested: {};
|
|
38
151
|
export declare const abyssaleEndpointSchemas: {
|
|
39
152
|
readonly 'projects.create': {
|
|
40
153
|
readonly input: import("zod").ZodObject<{
|
|
@@ -96,7 +209,137 @@ export declare const abyssaleEndpointSchemas: {
|
|
|
96
209
|
version: import("zod").ZodOptional<import("zod").ZodString>;
|
|
97
210
|
}, import("zod/v4/core").$loose>;
|
|
98
211
|
};
|
|
212
|
+
readonly 'generation.image': {
|
|
213
|
+
readonly input: import("zod").ZodObject<{
|
|
214
|
+
designId: import("zod").ZodString;
|
|
215
|
+
elements: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{}, import("zod/v4/core").$loose>>>;
|
|
216
|
+
template_format_name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
217
|
+
image_file_type: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
218
|
+
png: "png";
|
|
219
|
+
jpeg: "jpeg";
|
|
220
|
+
webp: "webp";
|
|
221
|
+
avif: "avif";
|
|
222
|
+
pdf: "pdf";
|
|
223
|
+
auto: "auto";
|
|
224
|
+
}>>;
|
|
225
|
+
file_compression_level: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
226
|
+
original_visual_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
227
|
+
}, import("zod/v4/core").$strip>;
|
|
228
|
+
readonly output: import("zod").ZodObject<{
|
|
229
|
+
id: import("zod").ZodString;
|
|
230
|
+
version: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
231
|
+
sharing_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
232
|
+
file: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
233
|
+
type: import("zod").ZodOptional<import("zod").ZodString>;
|
|
234
|
+
url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
235
|
+
cdn_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
236
|
+
fallback_image_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
237
|
+
filename: import("zod").ZodOptional<import("zod").ZodString>;
|
|
238
|
+
}, import("zod/v4/core").$loose>>;
|
|
239
|
+
format: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
240
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
241
|
+
width: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
242
|
+
height: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
243
|
+
unit: import("zod").ZodOptional<import("zod").ZodString>;
|
|
244
|
+
}, import("zod/v4/core").$loose>>;
|
|
245
|
+
template: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
246
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
247
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
248
|
+
created_at: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
249
|
+
updated_at: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
250
|
+
}, import("zod/v4/core").$loose>>;
|
|
251
|
+
project: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
252
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
253
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
254
|
+
}, import("zod/v4/core").$loose>>;
|
|
255
|
+
}, import("zod/v4/core").$loose>;
|
|
256
|
+
};
|
|
257
|
+
readonly 'generation.batch': {
|
|
258
|
+
readonly input: import("zod").ZodObject<{
|
|
259
|
+
designId: import("zod").ZodString;
|
|
260
|
+
elements: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{}, import("zod/v4/core").$loose>>>;
|
|
261
|
+
template_format_names: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
262
|
+
callback_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
263
|
+
image_file_type: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
264
|
+
png: "png";
|
|
265
|
+
jpeg: "jpeg";
|
|
266
|
+
webp: "webp";
|
|
267
|
+
avif: "avif";
|
|
268
|
+
pdf: "pdf";
|
|
269
|
+
auto: "auto";
|
|
270
|
+
gif: "gif";
|
|
271
|
+
html5: "html5";
|
|
272
|
+
mp4: "mp4";
|
|
273
|
+
}>>;
|
|
274
|
+
file_compression_level: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
275
|
+
html5: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
276
|
+
page_title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
277
|
+
click_tag: import("zod").ZodOptional<import("zod").ZodString>;
|
|
278
|
+
ad_network: import("zod").ZodOptional<import("zod").ZodString>;
|
|
279
|
+
include_backup_image: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
280
|
+
repeat: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
281
|
+
}, import("zod/v4/core").$loose>>;
|
|
282
|
+
gif: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
283
|
+
max_fps: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
284
|
+
repeat: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
285
|
+
}, import("zod/v4/core").$loose>>;
|
|
286
|
+
video: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
287
|
+
fps: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
288
|
+
}, import("zod/v4/core").$loose>>;
|
|
289
|
+
print: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
290
|
+
color_profile: import("zod").ZodOptional<import("zod").ZodString>;
|
|
291
|
+
display_crop_marks: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
292
|
+
}, import("zod/v4/core").$loose>>;
|
|
293
|
+
original_visual_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
294
|
+
pages: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{}, import("zod/v4/core").$loose>>>;
|
|
295
|
+
}, import("zod/v4/core").$strip>;
|
|
296
|
+
readonly output: import("zod").ZodObject<{
|
|
297
|
+
generation_request_id: import("zod").ZodString;
|
|
298
|
+
}, import("zod/v4/core").$loose>;
|
|
299
|
+
};
|
|
300
|
+
readonly 'generation.status': {
|
|
301
|
+
readonly input: import("zod").ZodObject<{
|
|
302
|
+
generationRequestId: import("zod").ZodString;
|
|
303
|
+
}, import("zod/v4/core").$strip>;
|
|
304
|
+
readonly output: import("zod").ZodObject<{
|
|
305
|
+
is_finalized: import("zod").ZodBoolean;
|
|
306
|
+
id: import("zod").ZodString;
|
|
307
|
+
banners: import("zod").ZodArray<import("zod").ZodObject<{
|
|
308
|
+
id: import("zod").ZodString;
|
|
309
|
+
version: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
310
|
+
sharing_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
311
|
+
file: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
312
|
+
type: import("zod").ZodOptional<import("zod").ZodString>;
|
|
313
|
+
url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
314
|
+
cdn_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
315
|
+
fallback_image_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
316
|
+
filename: import("zod").ZodOptional<import("zod").ZodString>;
|
|
317
|
+
}, import("zod/v4/core").$loose>>;
|
|
318
|
+
format: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
319
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
320
|
+
width: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
321
|
+
height: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
322
|
+
unit: import("zod").ZodOptional<import("zod").ZodString>;
|
|
323
|
+
}, import("zod/v4/core").$loose>>;
|
|
324
|
+
template: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
325
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
326
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
327
|
+
created_at: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
328
|
+
updated_at: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
329
|
+
}, import("zod/v4/core").$loose>>;
|
|
330
|
+
project: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
331
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
332
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
333
|
+
}, import("zod/v4/core").$loose>>;
|
|
334
|
+
}, import("zod/v4/core").$loose>>;
|
|
335
|
+
errors: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
336
|
+
template_format_name: import("zod").ZodString;
|
|
337
|
+
reason: import("zod").ZodString;
|
|
338
|
+
}, import("zod/v4/core").$loose>>>>;
|
|
339
|
+
}, import("zod/v4/core").$loose>;
|
|
340
|
+
};
|
|
99
341
|
};
|
|
342
|
+
export type AbyssaleBoundWebhooks = BindWebhooks<typeof abyssaleWebhooksNested>;
|
|
100
343
|
declare const defaultAuthType: AuthTypes;
|
|
101
344
|
export declare const abyssaleAuthConfig: {
|
|
102
345
|
readonly api_key: {};
|
|
@@ -105,5 +348,6 @@ export type BaseAbyssalePlugin<T extends AbyssalePluginOptions> = CorsairPlugin<
|
|
|
105
348
|
export type InternalAbyssalePlugin = BaseAbyssalePlugin<AbyssalePluginOptions>;
|
|
106
349
|
export type ExternalAbyssalePlugin<T extends AbyssalePluginOptions> = BaseAbyssalePlugin<T>;
|
|
107
350
|
export declare function abyssale<const T extends AbyssalePluginOptions>(incomingOptions?: AbyssalePluginOptions & T): ExternalAbyssalePlugin<T>;
|
|
108
|
-
export type { AbyssaleEndpointInputs, AbyssaleEndpointOutputs, CreateProjectInput, CreateProjectResponse, GetDesignsInput, GetDesignsResponse, GetFontsInput, GetFontsResponse, TestAuthInput, TestAuthResponse, } from './endpoints/types';
|
|
351
|
+
export type { AbyssaleEndpointInputs, AbyssaleEndpointOutputs, CreateProjectInput, CreateProjectResponse, GenerateBatchInput, GenerateBatchResponse, GenerateImageInput, GenerateImageResponse, GetDesignsInput, GetDesignsResponse, GetFontsInput, GetFontsResponse, GetGenerationRequestInput, GetGenerationRequestResponse, TestAuthInput, TestAuthResponse, } from './endpoints/types';
|
|
352
|
+
export type { AbyssaleWebhookOutputs, NewBannerBatchEvent, NewBannerEvent, NewExportEvent, TemplateStatusEvent, } from './webhooks/types';
|
|
109
353
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,QAAQ,EAER,uBAAuB,EAIvB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,EACvB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var G=Object.defineProperty;var A=(e,s)=>{for(var n in s)G(e,n,{get:s[n],enumerable:!0})};import{AuthMissingError as D}from"corsair/core";var h={};A(h,{testAuth:()=>Q});import{logEventFromContext as J}from"corsair/core";import{ApiError as k,request as v}from"corsair/http";var y=class extends Error{constructor(n,i,r){super(n,r);this.code=i;this.name="AbyssaleAPIError",r?.cause instanceof k&&(this.status=r.cause.status,this.statusText=r.cause.statusText,this.body=r.cause.body,this.retryAfter=r.cause.retryAfter)}status;statusText;body;retryAfter},q="https://api.abyssale.com",R=2,j=3e4,B=e=>new Promise(s=>setTimeout(s,e));function H(e,s){return e!==void 0&&e>=500?s==="GET":!1}function M(e,s){let n=e.retryAfter;return typeof n=="number"&&n>0?Math.min(n,j):Math.min(2**(s-1)*1e3,j)}async function a(e,s,n={}){let{method:i="GET",body:r,query:d}=n,T={BASE:q,VERSION:"1.0.0",WITH_CREDENTIALS:!1,CREDENTIALS:"omit",TOKEN:void 0,HEADERS:{"Content-Type":"application/json","x-api-key":s}},F={method:i,url:e,body:i==="POST"||i==="PUT"||i==="PATCH"?r:void 0,mediaType:"application/json; charset=utf-8",query:i==="GET"?d:void 0},m;for(let b=1;b<=R;b++)try{return await v(T,F)}catch(f){if(m=f,!(f instanceof k&&b<R&&H(f.status,i)))break;await B(M(f,b))}throw m instanceof k?new y(m.message,void 0,{cause:m}):m instanceof Error?new y(m.message):new y("Unknown error")}import{z as t}from"zod";var W=t.object({name:t.string().min(2).max(100)}),z=t.object({id:t.string().uuid(),name:t.string(),created_at_ts:t.number(),version:t.string().optional()}).loose(),K=t.object({project_id:t.string().uuid().optional(),type:t.enum(["static","animated","printer","printer_multipage"]).optional()}),L=t.object({id:t.string().uuid(),template_id:t.string().uuid().optional(),name:t.string(),type:t.string(),project_id:t.string().uuid().optional(),project_name:t.string().optional(),category_id:t.string().uuid().optional(),category_name:t.string().optional(),version:t.string().optional(),created_at:t.number().optional(),updated_at:t.number().optional(),preview_url:t.string().optional()}).loose(),N=t.array(L),U=t.object({type:t.enum(["google","custom"]).optional()}),Y=t.object({id:t.string(),name:t.string(),type:t.enum(["google","custom"]),available_weights:t.array(t.union([t.number(),t.string()]))}).loose(),X=t.array(Y),$=t.object({}),V=t.object({company:t.string(),version:t.string().optional()}).loose(),c={createProject:W,getDesigns:K,getFonts:U,testAuth:$},l={createProject:z,getDesigns:N,getFonts:X,testAuth:V};function p(e,s){return c[e].parse(s??{})}function u(e,s){return l[e].parse(s)}async function g(e,s,n){let r=e.db?.[s];if(r?.upsertByEntityId){for(let d of n)if(d?.id)try{await r.upsertByEntityId(d.id,d)}catch(T){console.warn(`[abyssale] failed to cache ${s} ${d.id}:`,T)}}}var Q=async(e,s)=>{let n=p("testAuth",s),i=await a("auth",e.key,{method:"POST"}),r=u("testAuth",i);return await J(e,"abyssale.auth.test",{},"completed"),r};var E={};A(E,{getDesigns:()=>ee});import{logEventFromContext as Z}from"corsair/core";var ee=async(e,s)=>{let n=p("getDesigns",s),i=await a("designs",e.key,{method:"GET",query:{project_id:n.project_id,type:n.type}}),r=u("getDesigns",i);return await g(e,"designs",r),await Z(e,"abyssale.designs.list",{project_id:n.project_id,type:n.type},"completed"),r};var P={};A(P,{getFonts:()=>se});import{logEventFromContext as te}from"corsair/core";var se=async(e,s)=>{let n=p("getFonts",s),i=await a("fonts",e.key,{method:"GET",query:{type:n.type}}),r=u("getFonts",i);return await g(e,"fonts",r),await te(e,"abyssale.fonts.list",{type:n.type},"completed"),r};var x={};A(x,{createProject:()=>oe});import{logEventFromContext as ne}from"corsair/core";var oe=async(e,s)=>{let n=p("createProject",s),i=await a("projects",e.key,{method:"POST",body:{name:n.name}}),r=u("createProject",i);return await g(e,"projects",[r]),await ne(e,"abyssale.projects.create",{name:n.name},"completed"),r};import{ApiError as re}from"corsair/http";function S(e){if(e instanceof re||e instanceof y)return e.status}var C={RATE_LIMIT_ERROR:{match:e=>{if(S(e)===429)return!0;let s=e.message.toLowerCase();return s.includes("rate_limited")||s.includes("429")},handler:async()=>({maxRetries:0})},AUTH_ERROR:{match:e=>{let s=S(e);if(s===401||s===403)return!0;let n=e.message.toLowerCase();return n.includes("unauthorized")||n.includes("invalid_auth")||n.includes("401")||n.includes("403")},handler:async()=>({maxRetries:0})},DEFAULT:{match:()=>!0,handler:async()=>({maxRetries:0})}};import{z as o}from"zod";var I=o.object({id:o.string(),name:o.string(),created_at_ts:o.number().optional(),category_name:o.string().optional(),version:o.string().optional()}).loose(),_=o.object({id:o.string(),template_id:o.string().optional(),name:o.string(),type:o.string(),project_id:o.string().optional(),project_name:o.string().optional(),category_id:o.string().optional(),category_name:o.string().optional(),version:o.string().optional(),created_at:o.number().optional(),updated_at:o.number().optional(),preview_url:o.string().optional()}).loose(),w=o.object({id:o.string(),name:o.string(),type:o.enum(["google","custom"]),available_weights:o.array(o.union([o.number(),o.string()]))}).loose();var O={version:"1.0.0",entities:{projects:I,designs:_,fonts:w}};var ie={projects:{create:x.createProject},designs:{list:E.getDesigns},fonts:{list:P.getFonts},auth:{test:h.testAuth}},ae={},pe={"projects.create":{input:c.createProject,output:l.createProject},"designs.list":{input:c.getDesigns,output:l.getDesigns},"fonts.list":{input:c.getFonts,output:l.getFonts},"auth.test":{input:c.testAuth,output:l.testAuth}},ue={},ye="api_key",ce={"projects.create":{riskLevel:"write",description:"Create a new project in Abyssale"},"designs.list":{riskLevel:"read",description:"Get a list of designs in Abyssale"},"fonts.list":{riskLevel:"read",description:"Get a list of available fonts in Abyssale"},"auth.test":{riskLevel:"read",description:"Test Abyssale API key authentication validity"}},le={api_key:{}};function Ye(e={}){let s={...e,authType:e.authType??ye};return{id:"abyssale",authConfig:le,schema:O,options:s,hooks:s.hooks,webhookHooks:void 0,endpoints:ie,webhooks:ae,endpointMeta:ce,endpointSchemas:pe,webhookSchemas:ue,pluginWebhookMatcher:void 0,pluginTenantWebhookMatcher:void 0,oauthWebhookTenantLinkResolver:void 0,errorHandlers:{...C,...s.errorHandlers},keyBuilder:async(n,i)=>{if(i==="endpoint"&&s.key)return s.key;if(i==="endpoint"&&n.authType==="api_key"){let r=await n.keys.get_api_key();if(!r)throw new D("abyssale","api_key");return r}throw new D("abyssale","api_key")}}}export{Ye as abyssale,le as abyssaleAuthConfig,pe as abyssaleEndpointSchemas};
|
|
1
|
+
var le=Object.defineProperty;var v=(e,n)=>{for(var s in n)le(e,s,{get:n[s],enumerable:!0})};import{AuthMissingError as ue}from"corsair/core";var I={};v(I,{testAuth:()=>Ge});import{logEventFromContext as Ce}from"corsair/core";import{ApiError as W,request as ce}from"corsair/http";var A=class extends Error{constructor(s,o,r){super(s,r);this.code=o;this.name="AbyssaleAPIError",r?.cause instanceof W&&(this.status=r.cause.status,this.statusText=r.cause.statusText,this.body=r.cause.body,this.retryAfter=r.cause.retryAfter)}status;statusText;body;retryAfter},de="https://api.abyssale.com",H=2,L=3e4,ye=e=>new Promise(n=>setTimeout(n,e));function me(e,n){return e!==void 0&&e>=500?n==="GET":!1}function ge(e,n){let s=e.retryAfter;return typeof s=="number"&&s>0?Math.min(s,L):Math.min(2**(n-1)*1e3,L)}async function l(e,n,s={}){let{method:o="GET",body:r,query:p}=s,u={BASE:de,VERSION:"1.0.0",WITH_CREDENTIALS:!1,CREDENTIALS:"omit",TOKEN:void 0,HEADERS:{"Content-Type":"application/json","x-api-key":n}},b={method:o,url:e,body:o==="POST"||o==="PUT"||o==="PATCH"?r:void 0,mediaType:"application/json; charset=utf-8",query:o==="GET"?p:void 0},y;for(let w=1;w<=H;w++)try{return await ce(u,b)}catch(f){if(y=f,!(f instanceof W&&w<H&&me(f.status,o)))break;await ye(ge(f,w))}throw y instanceof W?new A(y.message,void 0,{cause:y}):y instanceof Error?new A(y.message):new A("Unknown error")}import{z as t}from"zod";import{z as a}from"zod";var K=a.object({id:a.string(),name:a.string(),created_at_ts:a.number().optional(),category_name:a.string().optional(),version:a.string().optional()}).loose(),U=a.object({id:a.string(),template_id:a.string().optional(),name:a.string(),type:a.string(),project_id:a.string().optional(),project_name:a.string().optional(),category_id:a.string().optional(),category_name:a.string().optional(),version:a.string().optional(),created_at:a.number().optional(),updated_at:a.number().optional(),preview_url:a.string().optional()}).loose(),$=a.object({id:a.string(),name:a.string(),type:a.enum(["google","custom"]),available_weights:a.array(a.union([a.number(),a.string()]))}).loose(),O=a.object({type:a.string().optional(),url:a.string().optional(),cdn_url:a.string().optional(),fallback_image_url:a.string().optional(),filename:a.string().optional()}).loose(),q=a.object({id:a.string().optional(),width:a.number().optional(),height:a.number().optional(),unit:a.string().optional()}).loose(),D=a.object({id:a.string().optional(),name:a.string().optional(),created_at:a.number().optional(),updated_at:a.number().optional()}).loose(),E=a.object({id:a.string(),version:a.number().optional(),sharing_id:a.string().optional(),file:O.optional(),format:q.optional(),template:D.optional(),project:a.object({id:a.string().optional(),name:a.string().optional()}).loose().optional()}).loose();var be=t.object({name:t.string().min(2).max(100)}),he=t.object({id:t.string().uuid(),name:t.string(),created_at_ts:t.number(),version:t.string().optional()}).loose(),fe=t.object({project_id:t.string().uuid().optional(),type:t.enum(["static","animated","printer","printer_multipage"]).optional()}),Ae=t.object({id:t.string().uuid(),template_id:t.string().uuid().optional(),name:t.string(),type:t.string(),project_id:t.string().uuid().optional(),project_name:t.string().optional(),category_id:t.string().uuid().optional(),category_name:t.string().optional(),version:t.string().optional(),created_at:t.number().optional(),updated_at:t.number().optional(),preview_url:t.string().optional()}).loose(),Ee=t.array(Ae),ke=t.object({type:t.enum(["google","custom"]).optional()}),_e=t.object({id:t.string(),name:t.string(),type:t.enum(["google","custom"]),available_weights:t.array(t.union([t.number(),t.string()]))}).loose(),we=t.array(_e),xe=t.object({}),ve=t.object({company:t.string(),version:t.string().optional()}).loose(),X=t.record(t.string(),t.object({}).loose()),Re=t.object({designId:t.string().uuid(),elements:X.optional(),template_format_name:t.string().min(1).optional(),image_file_type:t.enum(["png","jpeg","webp","avif","pdf","auto"]).optional(),file_compression_level:t.number().int().min(1).max(100).optional(),original_visual_id:t.string().uuid().optional()}),Se=E,Be=t.object({designId:t.string().uuid(),elements:X.optional(),template_format_names:t.array(t.string().min(1)).optional(),callback_url:t.string().url().optional(),image_file_type:t.enum(["png","jpeg","webp","avif","gif","pdf","html5","mp4","auto"]).optional(),file_compression_level:t.number().int().min(1).max(100).optional(),html5:t.object({page_title:t.string().optional(),click_tag:t.string().optional(),ad_network:t.string().optional(),include_backup_image:t.boolean().optional(),repeat:t.boolean().optional()}).loose().optional(),gif:t.object({max_fps:t.number().int().min(2).max(9).optional(),repeat:t.boolean().optional()}).loose().optional(),video:t.object({fps:t.number().int().min(2).max(30).optional()}).loose().optional(),print:t.object({color_profile:t.string().uuid().optional(),display_crop_marks:t.boolean().optional()}).loose().optional(),original_visual_id:t.string().uuid().optional(),pages:t.record(t.string(),t.object({}).loose()).optional()}),Te=t.object({generation_request_id:t.string().uuid()}).loose(),Ie=t.object({generationRequestId:t.string().uuid()}),Pe=t.object({is_finalized:t.boolean(),id:t.string().uuid(),banners:t.array(E),errors:t.array(t.object({template_format_name:t.string(),reason:t.string()}).loose()).optional().default([])}).loose(),m={createProject:be,getDesigns:fe,getFonts:ke,testAuth:xe,generateImage:Re,generateBatch:Be,getGenerationRequest:Ie},g={createProject:he,getDesigns:Ee,getFonts:we,testAuth:ve,generateImage:Se,generateBatch:Te,getGenerationRequest:Pe};function c(e,n){return m[e].parse(n??{})}function d(e,n){return g[e].parse(n)}async function h(e,n,s){let r=e.db?.[n];if(r?.upsertByEntityId){for(let p of s)if(p?.id)try{await r.upsertByEntityId(p.id,p)}catch(u){console.warn(`[abyssale] failed to cache ${n} ${p.id}:`,u)}}}var Ge=async(e,n)=>{let s=c("testAuth",n),o=await l("auth",e.key,{method:"POST"}),r=d("testAuth",o);return await Ce(e,"abyssale.auth.test",{},"completed"),r};var P={};v(P,{getDesigns:()=>Ne});import{logEventFromContext as je}from"corsair/core";var Ne=async(e,n)=>{let s=c("getDesigns",n),o=await l("designs",e.key,{method:"GET",query:{project_id:s.project_id,type:s.type}}),r=d("getDesigns",o);return await h(e,"designs",r),await je(e,"abyssale.designs.list",{project_id:s.project_id,type:s.type},"completed"),r};var C={};v(C,{getFonts:()=>Oe});import{logEventFromContext as We}from"corsair/core";var Oe=async(e,n)=>{let s=c("getFonts",n),o=await l("fonts",e.key,{method:"GET",query:{type:s.type}}),r=d("getFonts",o);return await h(e,"fonts",r),await We(e,"abyssale.fonts.list",{type:s.type},"completed"),r};var x={};v(x,{generateBatch:()=>De,generateImage:()=>qe,getGenerationRequest:()=>Fe});import{logEventFromContext as F}from"corsair/core";var qe=async(e,n)=>{let s=c("generateImage",n),{designId:o,...r}=s,p=await l(`banner-builder/${o}/generate`,e.key,{method:"POST",body:r}),u=d("generateImage",p);return await h(e,"banners",[u]),await F(e,"abyssale.generation.image",{design_id:o},"completed"),u},De=async(e,n)=>{let s=c("generateBatch",n),{designId:o,...r}=s,p=await l(`async/banner-builder/${o}/generate`,e.key,{method:"POST",body:r}),u=d("generateBatch",p);return await F(e,"abyssale.generation.batch",{design_id:o,generation_request_id:u.generation_request_id},"completed"),u},Fe=async(e,n)=>{let s=c("getGenerationRequest",n),o=await l(`generation-request/${s.generationRequestId}`,e.key,{method:"GET"}),r=d("getGenerationRequest",o);return r.is_finalized&&r.banners.length>0&&await h(e,"banners",r.banners),await F(e,"abyssale.generation.status",{generation_request_id:s.generationRequestId,is_finalized:r.is_finalized},"completed"),r};var G={};v(G,{createProject:()=>ze});import{logEventFromContext as Me}from"corsair/core";var ze=async(e,n)=>{let s=c("createProject",n),o=await l("projects",e.key,{method:"POST",body:{name:s.name}}),r=d("createProject",o);return await h(e,"projects",[r]),await Me(e,"abyssale.projects.create",{name:s.name},"completed"),r};import{ApiError as He}from"corsair/http";function Y(e){if(e instanceof He||e instanceof A)return e.status}var V={RATE_LIMIT_ERROR:{match:e=>{if(Y(e)===429)return!0;let n=e.message.toLowerCase();return n.includes("rate_limited")||n.includes("429")},handler:async()=>({maxRetries:0})},AUTH_ERROR:{match:e=>{let n=Y(e);if(n===401||n===403)return!0;let s=e.message.toLowerCase();return s.includes("unauthorized")||s.includes("invalid_auth")||s.includes("401")||s.includes("403")},handler:async()=>({maxRetries:0})},DEFAULT:{match:()=>!0,handler:async()=>({maxRetries:0})}};var J={version:"1.1.0",entities:{projects:K,designs:U,fonts:$,banners:E}};import{logEventFromContext as ne}from"corsair/core";async function M(e,n){if(!e.db.banners)return"";try{return(await e.db.banners.upsertByEntityId(n.id,n))?.id||""}catch(s){return console.warn(`[abyssale] failed to cache banner ${n.id}:`,s),""}}import Z from"crypto";import{z as i}from"zod";var j=i.object({event_type:i.string()}).loose(),Le={id:i.uuid(),version:i.number().optional(),sharing_id:i.uuid().optional(),file:O.optional(),format:q.optional(),template:D.optional()},R=j.extend({event_type:i.literal("NEW_BANNER"),...Le}),S=j.extend({event_type:i.literal("NEW_BANNER_BATCH"),generation_request_id:i.uuid(),banners:i.array(E),errors:i.array(i.object({template_format_name:i.string(),reason:i.string()}).loose()).optional().default([])}),B=j.extend({event_type:i.literal("NEW_EXPORT"),export_id:i.uuid(),archive_url:i.url(),requested_at:i.number().optional(),generated_at:i.number().optional()}),T=j.extend({event_type:i.literal("TEMPLATE_STATUS"),id:i.uuid(),name:i.string().optional(),status:i.string(),created_at:i.number().optional(),updated_at:i.number().optional(),status_updated_at:i.number().optional()}),Q=["NEW_BANNER","NEW_BANNER_BATCH","NEW_EXPORT","TEMPLATE_STATUS"];function ee(e){if(typeof e=="string")try{let n=JSON.parse(e);return n===null||typeof n!="object"||Array.isArray(n)?null:n}catch{return null}return e===null||typeof e!="object"||Array.isArray(e)?null:e}function k(e){let n=Q.includes(e);return s=>{if(!n)return!1;let o=ee(s.body);return o!==null&&o.event_type===e}}function te(e){let n=ee(e.body);return n!==null&&Q.some(s=>n.event_type===s)}function Ke(e,n){let s=n.toLowerCase();for(let[o,r]of Object.entries(e))if(o.toLowerCase()===s)return Array.isArray(r)?r[0]:r}var Ue=300;function $e(e){let n,s=[];for(let o of e.split(",")){let r=o.trim(),p=r.indexOf("=");if(p<=0)continue;let u=r.slice(0,p),b=r.slice(p+1);!u||!b||(u==="t"?n=b:u==="v1"&&s.push(b))}return{timestamp:n,signatures:s}}function Xe(e,n){if(e.hubVerified===!0)return{valid:!0};let s=Ke(e.headers,"x-abyssale-signature");if(!s)return{valid:!1,error:n?"Missing x-abyssale-signature header but a webhook secret is configured":"Unsigned delivery received but no webhook secret is configured (set options.webhookSecret or the webhook_signature key)"};if(!n)return{valid:!1,error:"Signed delivery received but no webhook secret is configured (set options.webhookSecret or the webhook_signature key)"};let o=e.rawBody;if(!o)return{valid:!1,error:"Missing raw body for signature verification"};let{timestamp:r,signatures:p}=$e(s);if(!r||!/^\d+$/.test(r))return{valid:!1,error:"Malformed signature timestamp"};if(Math.abs(Math.floor(Date.now()/1e3)-Number(r))>Ue)return{valid:!1,error:"Signature timestamp outside tolerance"};if(p.length===0)return{valid:!1,error:"Malformed signature header: no v1 value"};let b=`v1:webhook:${r}.${o}`,y=Z.createHmac("sha256",n).update(b).digest("hex");for(let w of p){let f=Buffer.from(w,"utf8"),N=Buffer.from(y,"utf8");if(f.length===N.length&&Z.timingSafeEqual(f,N))return{valid:!0}}return{valid:!1,error:"Invalid signature"}}function _(e,n,s,o){let r=Xe(e,n);if(!r.valid)return{ok:!1,statusCode:401,error:r.error||"Signature verification failed"};let p=s.safeParse(e.payload);return p.success?{ok:!0,event:p.data}:{ok:!1,statusCode:400,error:`Invalid ${o} payload`}}var se={match:k("NEW_BANNER"),handler:async(e,n)=>{let s=_(n,e.key,R,"NEW_BANNER");if(!s.ok)return{success:!1,statusCode:s.statusCode,error:s.error};let o=s.event,r=await M(e,{id:o.id,version:o.version,sharing_id:o.sharing_id,file:o.file,format:o.format,template:o.template});return await ne(e,"abyssale.webhook.newBanner",{banner_id:o.id,template_id:o.template?.id,format_id:o.format?.id},"completed"),r?{success:!0,corsairEntityId:r,data:o}:{success:!0,data:o}}},oe={match:k("NEW_BANNER_BATCH"),handler:async(e,n)=>{let s=_(n,e.key,S,"NEW_BANNER_BATCH");if(!s.ok)return{success:!1,statusCode:s.statusCode,error:s.error};let o=s.event,r=[];for(let u=0;u<o.banners.length;u+=8){let b=o.banners.slice(u,u+8);r.push(...await Promise.all(b.map(y=>M(e,y))))}let p=r.find(Boolean);return await ne(e,"abyssale.webhook.newBannerBatch",{generation_request_id:o.generation_request_id,banner_count:o.banners.length,error_count:o.errors.length},"completed"),p?{success:!0,corsairEntityId:p,data:o}:{success:!0,data:o}}};import{logEventFromContext as Ye}from"corsair/core";var re={match:k("TEMPLATE_STATUS"),handler:async(e,n)=>{let s=_(n,e.key,T,"TEMPLATE_STATUS");if(!s.ok)return{success:!1,statusCode:s.statusCode,error:s.error};let o=s.event;return await Ye(e,"abyssale.webhook.templateStatus",{design_id:o.id,status:o.status},"completed"),{success:!0,data:o}}};import{logEventFromContext as Ve}from"corsair/core";var ae={match:k("NEW_EXPORT"),handler:async(e,n)=>{let s=_(n,e.key,B,"NEW_EXPORT");if(!s.ok)return{success:!1,statusCode:s.statusCode,error:s.error};let o=s.event;return await Ve(e,"abyssale.webhook.newExport",{export_id:o.export_id,archive_url:o.archive_url},"completed"),{success:!0,data:o}}};var z={created:se,batchCompleted:oe},ie={statusChanged:re},pe={completed:ae};var Je={projects:{create:G.createProject},designs:{list:P.getDesigns},fonts:{list:C.getFonts},auth:{test:I.testAuth},generation:{image:x.generateImage,batch:x.generateBatch,status:x.getGenerationRequest}},Ze={banners:{created:z.created,batchCompleted:z.batchCompleted},exports:{completed:pe.completed},designs:{statusChanged:ie.statusChanged}},Qe={"projects.create":{input:m.createProject,output:g.createProject},"designs.list":{input:m.getDesigns,output:g.getDesigns},"fonts.list":{input:m.getFonts,output:g.getFonts},"auth.test":{input:m.testAuth,output:g.testAuth},"generation.image":{input:m.generateImage,output:g.generateImage},"generation.batch":{input:m.generateBatch,output:g.generateBatch},"generation.status":{input:m.getGenerationRequest,output:g.getGenerationRequest}},et={"banners.created":{description:"A visual was generated or saved in Abyssale (NEW_BANNER event)",payload:R,response:R},"banners.batchCompleted":{description:"An asynchronous batch generation request completed (NEW_BANNER_BATCH event)",payload:S,response:S},"exports.completed":{description:"A workspace export archive finished processing (NEW_EXPORT event)",payload:B,response:B},"designs.statusChanged":{description:"A design's workflow status was updated (TEMPLATE_STATUS event)",payload:T,response:T}},tt="api_key",nt={"projects.create":{riskLevel:"write",description:"Create a new project in Abyssale"},"designs.list":{riskLevel:"read",description:"Get a list of designs in Abyssale"},"fonts.list":{riskLevel:"read",description:"Get a list of available fonts in Abyssale"},"auth.test":{riskLevel:"read",description:"Test Abyssale API key authentication validity"},"generation.image":{riskLevel:"write",description:"Synchronously generate a single image from an Abyssale design"},"generation.batch":{riskLevel:"write",description:"Start an asynchronous multi-format generation from an Abyssale design"},"generation.status":{riskLevel:"read",description:"Poll the status of an asynchronous generation request"}},st={api_key:{}};function un(e={}){let n={...e,authType:e.authType??tt};return{id:"abyssale",authConfig:st,schema:J,options:n,hooks:n.hooks,webhookHooks:n.webhookHooks,endpoints:Je,webhooks:Ze,endpointMeta:nt,endpointSchemas:Qe,webhookSchemas:et,pluginWebhookMatcher:te,pluginTenantWebhookMatcher:void 0,oauthWebhookTenantLinkResolver:void 0,errorHandlers:{...V,...n.errorHandlers},keyBuilder:async(s,o)=>{if(o==="webhook"&&n.webhookSecret)return n.webhookSecret;if(o==="webhook")return await s.keys.get_webhook_signature()??"";if(o==="endpoint"&&n.key)return n.key;if(o==="endpoint"&&s.authType==="api_key"){let r=await s.keys.get_api_key();if(!r)throw new ue("abyssale","api_key");return r}throw new ue("abyssale","api_key")}}}export{un as abyssale,st as abyssaleAuthConfig,Qe as abyssaleEndpointSchemas};
|
|
@@ -39,7 +39,63 @@ export declare const AbyssaleFont: z.ZodObject<{
|
|
|
39
39
|
}>;
|
|
40
40
|
available_weights: z.ZodArray<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
41
41
|
}, z.core.$loose>;
|
|
42
|
+
/**
|
|
43
|
+
* A generated visual ("banner"), returned by synchronous generation, async
|
|
44
|
+
* batch generation and the `NEW_BANNER` / `NEW_BANNER_BATCH` webhook events.
|
|
45
|
+
*
|
|
46
|
+
* Sub-objects mirror the wire format verbatim; most fields are optional
|
|
47
|
+
* because batch items omit `version` / `sharing_id`, HTML5 (`zip`) output has
|
|
48
|
+
* no `cdn_url` and `printer_multipage` visuals have no `format.id`.
|
|
49
|
+
*/
|
|
50
|
+
export declare const AbyssaleBannerFile: z.ZodObject<{
|
|
51
|
+
type: z.ZodOptional<z.ZodString>;
|
|
52
|
+
url: z.ZodOptional<z.ZodString>;
|
|
53
|
+
cdn_url: z.ZodOptional<z.ZodString>;
|
|
54
|
+
fallback_image_url: z.ZodOptional<z.ZodString>;
|
|
55
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
56
|
+
}, z.core.$loose>;
|
|
57
|
+
export declare const AbyssaleBannerFormat: z.ZodObject<{
|
|
58
|
+
id: z.ZodOptional<z.ZodString>;
|
|
59
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
61
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
62
|
+
}, z.core.$loose>;
|
|
63
|
+
export declare const AbyssaleBannerTemplate: z.ZodObject<{
|
|
64
|
+
id: z.ZodOptional<z.ZodString>;
|
|
65
|
+
name: z.ZodOptional<z.ZodString>;
|
|
66
|
+
created_at: z.ZodOptional<z.ZodNumber>;
|
|
67
|
+
updated_at: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
}, z.core.$loose>;
|
|
69
|
+
export declare const AbyssaleBanner: z.ZodObject<{
|
|
70
|
+
id: z.ZodString;
|
|
71
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
sharing_id: z.ZodOptional<z.ZodString>;
|
|
73
|
+
file: z.ZodOptional<z.ZodObject<{
|
|
74
|
+
type: z.ZodOptional<z.ZodString>;
|
|
75
|
+
url: z.ZodOptional<z.ZodString>;
|
|
76
|
+
cdn_url: z.ZodOptional<z.ZodString>;
|
|
77
|
+
fallback_image_url: z.ZodOptional<z.ZodString>;
|
|
78
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
79
|
+
}, z.core.$loose>>;
|
|
80
|
+
format: z.ZodOptional<z.ZodObject<{
|
|
81
|
+
id: z.ZodOptional<z.ZodString>;
|
|
82
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
83
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
84
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
85
|
+
}, z.core.$loose>>;
|
|
86
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
87
|
+
id: z.ZodOptional<z.ZodString>;
|
|
88
|
+
name: z.ZodOptional<z.ZodString>;
|
|
89
|
+
created_at: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
updated_at: z.ZodOptional<z.ZodNumber>;
|
|
91
|
+
}, z.core.$loose>>;
|
|
92
|
+
project: z.ZodOptional<z.ZodObject<{
|
|
93
|
+
id: z.ZodOptional<z.ZodString>;
|
|
94
|
+
name: z.ZodOptional<z.ZodString>;
|
|
95
|
+
}, z.core.$loose>>;
|
|
96
|
+
}, z.core.$loose>;
|
|
42
97
|
export type AbyssaleProject = z.infer<typeof AbyssaleProject>;
|
|
43
98
|
export type AbyssaleDesign = z.infer<typeof AbyssaleDesign>;
|
|
44
99
|
export type AbyssaleFont = z.infer<typeof AbyssaleFont>;
|
|
100
|
+
export type AbyssaleBanner = z.infer<typeof AbyssaleBanner>;
|
|
45
101
|
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../schema/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,eAAe;;;;;;iBASnB,CAAC;AAEV,sBAAsB;AACtB,eAAO,MAAM,cAAc;;;;;;;;;;;;;iBAelB,CAAC;AAEV,oBAAoB;AACpB,eAAO,MAAM,YAAY;;;;;;;;iBAOhB,CAAC;AAEV,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../schema/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,eAAe;;;;;;iBASnB,CAAC;AAEV,sBAAsB;AACtB,eAAO,MAAM,cAAc;;;;;;;;;;;;;iBAelB,CAAC;AAEV,oBAAoB;AACpB,eAAO,MAAM,YAAY;;;;;;;;iBAOhB,CAAC;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB;;;;;;iBAQtB,CAAC;AAEV,eAAO,MAAM,oBAAoB;;;;;iBAOxB,CAAC;AAEV,eAAO,MAAM,sBAAsB;;;;;iBAO1B,CAAC;AAEV,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBlB,CAAC;AAEV,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const AbyssaleSchema: {
|
|
2
|
-
readonly version: "1.
|
|
2
|
+
readonly version: "1.1.0";
|
|
3
3
|
readonly entities: {
|
|
4
4
|
readonly projects: import("zod").ZodObject<{
|
|
5
5
|
id: import("zod").ZodString;
|
|
@@ -31,6 +31,34 @@ export declare const AbyssaleSchema: {
|
|
|
31
31
|
}>;
|
|
32
32
|
available_weights: import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
|
|
33
33
|
}, import("zod/v4/core").$loose>;
|
|
34
|
+
readonly banners: import("zod").ZodObject<{
|
|
35
|
+
id: import("zod").ZodString;
|
|
36
|
+
version: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
37
|
+
sharing_id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
38
|
+
file: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
39
|
+
type: import("zod").ZodOptional<import("zod").ZodString>;
|
|
40
|
+
url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
41
|
+
cdn_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
42
|
+
fallback_image_url: import("zod").ZodOptional<import("zod").ZodString>;
|
|
43
|
+
filename: import("zod").ZodOptional<import("zod").ZodString>;
|
|
44
|
+
}, import("zod/v4/core").$loose>>;
|
|
45
|
+
format: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
46
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
47
|
+
width: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
48
|
+
height: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
49
|
+
unit: import("zod").ZodOptional<import("zod").ZodString>;
|
|
50
|
+
}, import("zod/v4/core").$loose>>;
|
|
51
|
+
template: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
52
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
53
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
54
|
+
created_at: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
55
|
+
updated_at: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
56
|
+
}, import("zod/v4/core").$loose>>;
|
|
57
|
+
project: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
58
|
+
id: import("zod").ZodOptional<import("zod").ZodString>;
|
|
59
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
60
|
+
}, import("zod/v4/core").$loose>>;
|
|
61
|
+
}, import("zod/v4/core").$loose>;
|
|
34
62
|
};
|
|
35
63
|
};
|
|
36
64
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../schema/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../schema/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banners.d.ts","sourceRoot":"","sources":["../../webhooks/banners.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAQjD,eAAO,MAAM,OAAO,EAAE,gBAAgB,CAAC,WAAW,CA2CjD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CA2C7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designs.d.ts","sourceRoot":"","sources":["../../webhooks/designs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjD,eAAO,MAAM,aAAa,EAAE,gBAAgB,CAAC,gBAAgB,CAmC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../webhooks/exports.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjD,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAmCnD,CAAC"}
|