@dyrected/storage-cloudinary 2.10.1 → 2.12.0
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/__tests__/storage.test.d.ts +2 -0
- package/dist/__tests__/storage.test.d.ts.map +1 -0
- package/dist/__tests__/storage.test.js +45 -0
- package/dist/__tests__/storage.test.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -3
- package/dist/index.js.map +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/storage.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { CloudinaryStorageAdapter } from "../index.js";
|
|
3
|
+
describe("CloudinaryStorageAdapter - Dynamic URL Transformations", () => {
|
|
4
|
+
const adapter = new CloudinaryStorageAdapter({
|
|
5
|
+
cloudName: "demo-cloud",
|
|
6
|
+
apiKey: "test-api-key",
|
|
7
|
+
apiSecret: "test-api-secret",
|
|
8
|
+
});
|
|
9
|
+
it("returns base secure URL when no transform is requested", () => {
|
|
10
|
+
const url = adapter.getURL({ filename: "samples/nature.jpg" });
|
|
11
|
+
expect(url).toContain("res.cloudinary.com/demo-cloud/image/upload");
|
|
12
|
+
expect(url).toContain("samples/nature.jpg");
|
|
13
|
+
});
|
|
14
|
+
it("generates dynamic width, height, crop, format, and quality parameters", () => {
|
|
15
|
+
const url = adapter.getURL({
|
|
16
|
+
filename: "samples/nature.jpg",
|
|
17
|
+
transform: {
|
|
18
|
+
width: 800,
|
|
19
|
+
height: 600,
|
|
20
|
+
crop: "fill",
|
|
21
|
+
format: "webp",
|
|
22
|
+
quality: 85,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
expect(url).toContain("c_fill");
|
|
26
|
+
expect(url).toContain("h_600");
|
|
27
|
+
expect(url).toContain("w_800");
|
|
28
|
+
expect(url).toContain("f_webp");
|
|
29
|
+
expect(url).toContain("q_85");
|
|
30
|
+
});
|
|
31
|
+
it("generates focal point coordinates when provided", () => {
|
|
32
|
+
const url = adapter.getURL({
|
|
33
|
+
filename: "samples/portrait.jpg",
|
|
34
|
+
transform: {
|
|
35
|
+
width: 400,
|
|
36
|
+
height: 400,
|
|
37
|
+
focalPoint: { x: 0.65, y: 0.35 },
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
expect(url).toContain("g_xy_center");
|
|
41
|
+
expect(url).toContain("x_0.65");
|
|
42
|
+
expect(url).toContain("y_0.35");
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=storage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../src/__tests__/storage.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,QAAQ,CAAC,wDAAwD,EAAE,GAAG,EAAE;IACtE,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAAC;QAC3C,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,oBAAoB;YAC9B,SAAS,EAAE;gBACT,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE;aACZ;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,sBAAsB;YAChC,SAAS,EAAE;gBACT,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACjC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StorageAdapter, FileData } from '@dyrected/core';
|
|
1
|
+
import { StorageAdapter, FileData, ImageTransformOptions } from '@dyrected/core';
|
|
2
2
|
export interface CloudinaryStorageConfig {
|
|
3
3
|
cloudName: string;
|
|
4
4
|
apiKey: string;
|
|
@@ -19,6 +19,7 @@ export declare class CloudinaryStorageAdapter implements StorageAdapter {
|
|
|
19
19
|
}): Promise<void>;
|
|
20
20
|
getURL(args: {
|
|
21
21
|
filename: string;
|
|
22
|
+
transform?: ImageTransformOptions;
|
|
22
23
|
}): string;
|
|
23
24
|
}
|
|
24
25
|
export declare const cloudinaryStorage: (config: CloudinaryStorageConfig) => CloudinaryStorageAdapter;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGjF,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,wBAAyB,YAAW,cAAc;IACjD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,uBAAuB;IAQ7C,MAAM,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuD5G,MAAM,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,MAAM,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;KAAE,GAAG,MAAM;CA4C9E;AAED,eAAO,MAAM,iBAAiB,GAAI,QAAQ,uBAAuB,6BAAyC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -38,13 +38,18 @@ export class CloudinaryStorageAdapter {
|
|
|
38
38
|
return reject(error);
|
|
39
39
|
if (!result)
|
|
40
40
|
return reject(new Error('Upload failed'));
|
|
41
|
+
const width = result.width;
|
|
42
|
+
const height = result.height;
|
|
43
|
+
const aspectRatio = width && height ? width / height : undefined;
|
|
41
44
|
resolve({
|
|
42
45
|
filename: result.public_id,
|
|
46
|
+
originalFilename: args.filename,
|
|
43
47
|
filesize: result.bytes,
|
|
44
48
|
mimeType: args.mimeType,
|
|
45
49
|
url: result.secure_url,
|
|
46
|
-
width
|
|
47
|
-
height
|
|
50
|
+
width,
|
|
51
|
+
height,
|
|
52
|
+
aspectRatio,
|
|
48
53
|
provider_metadata: result,
|
|
49
54
|
});
|
|
50
55
|
});
|
|
@@ -55,7 +60,50 @@ export class CloudinaryStorageAdapter {
|
|
|
55
60
|
await cloudinary.uploader.destroy(args.filename);
|
|
56
61
|
}
|
|
57
62
|
getURL(args) {
|
|
58
|
-
|
|
63
|
+
const { filename, transform } = args;
|
|
64
|
+
if (!transform) {
|
|
65
|
+
return cloudinary.url(filename, { secure: true });
|
|
66
|
+
}
|
|
67
|
+
const options = {
|
|
68
|
+
secure: true,
|
|
69
|
+
fetch_format: transform.format ?? 'auto',
|
|
70
|
+
quality: transform.quality ?? 'auto',
|
|
71
|
+
};
|
|
72
|
+
if (transform.width)
|
|
73
|
+
options.width = transform.width;
|
|
74
|
+
if (transform.height)
|
|
75
|
+
options.height = transform.height;
|
|
76
|
+
if (transform.aspectRatio)
|
|
77
|
+
options.aspect_ratio = transform.aspectRatio;
|
|
78
|
+
if (transform.crop) {
|
|
79
|
+
options.crop =
|
|
80
|
+
transform.crop === 'cover'
|
|
81
|
+
? 'fill'
|
|
82
|
+
: transform.crop === 'contain'
|
|
83
|
+
? 'fit'
|
|
84
|
+
: transform.crop;
|
|
85
|
+
}
|
|
86
|
+
else if (transform.width || transform.height) {
|
|
87
|
+
options.crop = 'fill';
|
|
88
|
+
}
|
|
89
|
+
if (transform.focalPoint && typeof transform.focalPoint.x === 'number' && typeof transform.focalPoint.y === 'number') {
|
|
90
|
+
options.gravity = 'xy_center';
|
|
91
|
+
const normX = transform.focalPoint.x > 1 ? transform.focalPoint.x / 100 : transform.focalPoint.x;
|
|
92
|
+
const normY = transform.focalPoint.y > 1 ? transform.focalPoint.y / 100 : transform.focalPoint.y;
|
|
93
|
+
options.x = Math.round(normX * 100) / 100;
|
|
94
|
+
options.y = Math.round(normY * 100) / 100;
|
|
95
|
+
}
|
|
96
|
+
else if (transform.gravity) {
|
|
97
|
+
options.gravity =
|
|
98
|
+
transform.gravity === 'focal' ? 'auto:focal' : transform.gravity;
|
|
99
|
+
}
|
|
100
|
+
if (transform.blur)
|
|
101
|
+
options.effect = `blur:${transform.blur}`;
|
|
102
|
+
if (transform.rotate)
|
|
103
|
+
options.angle = transform.rotate;
|
|
104
|
+
if (transform.dpr)
|
|
105
|
+
options.dpr = transform.dpr;
|
|
106
|
+
return cloudinary.url(filename, options);
|
|
59
107
|
}
|
|
60
108
|
}
|
|
61
109
|
export const cloudinaryStorage = (config) => new CloudinaryStorageAdapter(config);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,UAAU,EAAqB,MAAM,YAAY,CAAC;AASjE,MAAM,OAAO,wBAAwB;IACf;IAApB,YAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QACjD,UAAU,CAAC,MAAM,CAAC;YAChB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,UAAU,EAAE,MAAM,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiF;QAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YACxB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChG,MAAM,aAAa,GAAG,QAAQ;aAC3B,WAAW,EAAE;aACb,SAAS,CAAC,MAAM,CAAC;aACjB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;aAC/B,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;aAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;QAEnC,qFAAqF;QACrF,wDAAwD;QACxD,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,aAAa,CAAC;YAC/D,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,GAAG,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAEnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CACpD;gBACE,SAAS,EAAE,QAAQ;gBACnB,MAAM;gBACN,SAAS,EAAE,KAAK;gBAChB,aAAa,EAAE,MAAM;aACtB,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBAChB,IAAI,KAAK;oBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,MAAM;oBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBAEvD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,UAAU,EAAqB,MAAM,YAAY,CAAC;AASjE,MAAM,OAAO,wBAAwB;IACf;IAApB,YAAoB,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QACjD,UAAU,CAAC,MAAM,CAAC;YAChB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,UAAU,EAAE,MAAM,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAiF;QAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YACxB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChG,MAAM,aAAa,GAAG,QAAQ;aAC3B,WAAW,EAAE;aACb,SAAS,CAAC,MAAM,CAAC;aACjB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;aAC/B,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;aAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;QAEnC,qFAAqF;QACrF,wDAAwD;QACxD,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,aAAa,CAAC;YAC/D,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,GAAG,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAEnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CACpD;gBACE,SAAS,EAAE,QAAQ;gBACnB,MAAM;gBACN,SAAS,EAAE,KAAK;gBAChB,aAAa,EAAE,MAAM;aACtB,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBAChB,IAAI,KAAK;oBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,MAAM;oBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBAEvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,MAAM,WAAW,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEjE,OAAO,CAAC;oBACN,QAAQ,EAAE,MAAM,CAAC,SAAS;oBAC1B,gBAAgB,EAAE,IAAI,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK;oBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,GAAG,EAAE,MAAM,CAAC,UAAU;oBACtB,KAAK;oBACL,MAAM;oBACN,WAAW;oBACX,iBAAiB,EAAE,MAAM;iBAC1B,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAA0B;QACrC,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,IAA6D;QAClE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,OAAO,GAAwB;YACnC,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,SAAS,CAAC,MAAM,IAAI,MAAM;YACxC,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,MAAM;SACrC,CAAC;QAEF,IAAI,SAAS,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACrD,IAAI,SAAS,CAAC,MAAM;YAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACxD,IAAI,SAAS,CAAC,WAAW;YAAE,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC;QAExE,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI;gBACV,SAAS,CAAC,IAAI,KAAK,OAAO;oBACxB,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;wBAC5B,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;QACxB,CAAC;QAED,IAAI,SAAS,CAAC,UAAU,IAAI,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACrH,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;YAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YACjG,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YACjG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAC1C,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC5C,CAAC;aAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,OAAO;gBACb,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;QACrE,CAAC;QAED,IAAI,SAAS,CAAC,IAAI;YAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,SAAS,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;QACvD,IAAI,SAAS,CAAC,GAAG;YAAE,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QAE/C,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dyrected/storage-cloudinary",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.12.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
],
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"cloudinary": "^2.2.0",
|
|
12
|
-
"@dyrected/core": "2.
|
|
12
|
+
"@dyrected/core": "2.12.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/node": "^20.12.12",
|
|
16
|
-
"typescript": "^5.4.5"
|
|
16
|
+
"typescript": "^5.4.5",
|
|
17
|
+
"vitest": "^1.6.0"
|
|
17
18
|
},
|
|
18
19
|
"license": "BSL-1.1",
|
|
19
20
|
"author": "Busola Okeowo <busolaokemoney@gmail.com>",
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
"description": "Cloudinary storage adapter for Dyrected CMS",
|
|
29
30
|
"scripts": {
|
|
30
31
|
"build": "tsc",
|
|
31
|
-
"dev": "tsc --watch"
|
|
32
|
+
"dev": "tsc --watch",
|
|
33
|
+
"test": "vitest run"
|
|
32
34
|
}
|
|
33
35
|
}
|