@chanomhub/sdk 1.2.1 → 1.2.2
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__/imageUrl.test.js +38 -13
- package/dist/__tests__/imageUrl.test.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/examples/manage-article.js +20 -4
- package/dist/examples/manage-article.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/transforms/imageUrl.d.ts +9 -0
- package/dist/transforms/imageUrl.d.ts.map +1 -1
- package/dist/transforms/imageUrl.js +33 -0
- package/dist/transforms/imageUrl.js.map +1 -1
- package/package.json +12 -12
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const vitest_1 = require("vitest");
|
|
4
4
|
const imageUrl_1 = require("../transforms/imageUrl");
|
|
5
|
-
const CDN_URL = 'https://cdn.chanomhub.com';
|
|
5
|
+
const CDN_URL = 'https://cdn.chanomhub.com/cdn-cgi/image/format=auto';
|
|
6
|
+
const STORAGE_URL = 'https://cdn.chanomhub.com';
|
|
6
7
|
(0, vitest_1.describe)('resolveImageUrl', () => {
|
|
7
8
|
(0, vitest_1.it)('should return null for null input', () => {
|
|
8
9
|
(0, vitest_1.expect)((0, imageUrl_1.resolveImageUrl)(null, CDN_URL)).toBeNull();
|
|
@@ -19,10 +20,10 @@ const CDN_URL = 'https://cdn.chanomhub.com';
|
|
|
19
20
|
(0, vitest_1.expect)((0, imageUrl_1.resolveImageUrl)(url, CDN_URL)).toBe(url);
|
|
20
21
|
});
|
|
21
22
|
(0, vitest_1.it)('should prepend CDN URL for filename only', () => {
|
|
22
|
-
(0, vitest_1.expect)((0, imageUrl_1.resolveImageUrl)('abc.jpg', CDN_URL)).toBe(
|
|
23
|
+
(0, vitest_1.expect)((0, imageUrl_1.resolveImageUrl)('abc.jpg', CDN_URL)).toBe(`${CDN_URL}/abc.jpg`);
|
|
23
24
|
});
|
|
24
25
|
(0, vitest_1.it)('should handle filenames with paths', () => {
|
|
25
|
-
(0, vitest_1.expect)((0, imageUrl_1.resolveImageUrl)('uploads/abc.jpg', CDN_URL)).toBe(
|
|
26
|
+
(0, vitest_1.expect)((0, imageUrl_1.resolveImageUrl)('uploads/abc.jpg', CDN_URL)).toBe(`${CDN_URL}/uploads/abc.jpg`);
|
|
26
27
|
});
|
|
27
28
|
});
|
|
28
29
|
(0, vitest_1.describe)('transformImageUrlsDeep', () => {
|
|
@@ -39,10 +40,10 @@ const CDN_URL = 'https://cdn.chanomhub.com';
|
|
|
39
40
|
title: 'Test Article',
|
|
40
41
|
};
|
|
41
42
|
const result = (0, imageUrl_1.transformImageUrlsDeep)(data, CDN_URL);
|
|
42
|
-
(0, vitest_1.expect)(result.mainImage).toBe(
|
|
43
|
-
(0, vitest_1.expect)(result.coverImage).toBe(
|
|
44
|
-
(0, vitest_1.expect)(result.backgroundImage).toBe(
|
|
45
|
-
(0, vitest_1.expect)(result.image).toBe(
|
|
43
|
+
(0, vitest_1.expect)(result.mainImage).toBe(`${CDN_URL}/main.jpg`);
|
|
44
|
+
(0, vitest_1.expect)(result.coverImage).toBe(`${CDN_URL}/cover.jpg`);
|
|
45
|
+
(0, vitest_1.expect)(result.backgroundImage).toBe(`${CDN_URL}/bg.jpg`);
|
|
46
|
+
(0, vitest_1.expect)(result.image).toBe(`${CDN_URL}/profile.jpg`);
|
|
46
47
|
(0, vitest_1.expect)(result.title).toBe('Test Article'); // Non-image field unchanged
|
|
47
48
|
});
|
|
48
49
|
(0, vitest_1.it)('should not transform already full URLs', () => {
|
|
@@ -57,8 +58,8 @@ const CDN_URL = 'https://cdn.chanomhub.com';
|
|
|
57
58
|
images: [{ url: 'image1.jpg' }, { url: 'image2.jpg' }],
|
|
58
59
|
};
|
|
59
60
|
const result = (0, imageUrl_1.transformImageUrlsDeep)(data, CDN_URL);
|
|
60
|
-
(0, vitest_1.expect)(result.images[0].url).toBe(
|
|
61
|
-
(0, vitest_1.expect)(result.images[1].url).toBe(
|
|
61
|
+
(0, vitest_1.expect)(result.images[0].url).toBe(`${CDN_URL}/image1.jpg`);
|
|
62
|
+
(0, vitest_1.expect)(result.images[1].url).toBe(`${CDN_URL}/image2.jpg`);
|
|
62
63
|
});
|
|
63
64
|
(0, vitest_1.it)('should recursively transform nested objects', () => {
|
|
64
65
|
const data = {
|
|
@@ -70,14 +71,38 @@ const CDN_URL = 'https://cdn.chanomhub.com';
|
|
|
70
71
|
},
|
|
71
72
|
};
|
|
72
73
|
const result = (0, imageUrl_1.transformImageUrlsDeep)(data, CDN_URL);
|
|
73
|
-
(0, vitest_1.expect)(result.article.mainImage).toBe(
|
|
74
|
-
(0, vitest_1.expect)(result.article.author.image).toBe(
|
|
74
|
+
(0, vitest_1.expect)(result.article.mainImage).toBe(`${CDN_URL}/article.jpg`);
|
|
75
|
+
(0, vitest_1.expect)(result.article.author.image).toBe(`${CDN_URL}/author.jpg`);
|
|
75
76
|
});
|
|
76
77
|
(0, vitest_1.it)('should handle arrays at root level', () => {
|
|
77
78
|
const data = [{ mainImage: 'img1.jpg' }, { mainImage: 'img2.jpg' }];
|
|
78
79
|
const result = (0, imageUrl_1.transformImageUrlsDeep)(data, CDN_URL);
|
|
79
|
-
(0, vitest_1.expect)(result[0].mainImage).toBe(
|
|
80
|
-
(0, vitest_1.expect)(result[1].mainImage).toBe(
|
|
80
|
+
(0, vitest_1.expect)(result[0].mainImage).toBe(`${CDN_URL}/img1.jpg`);
|
|
81
|
+
(0, vitest_1.expect)(result[1].mainImage).toBe(`${CDN_URL}/img2.jpg`);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
(0, vitest_1.describe)('getFallbackUrl', () => {
|
|
85
|
+
(0, vitest_1.it)('should return null for null/undefined input', () => {
|
|
86
|
+
(0, vitest_1.expect)((0, imageUrl_1.getFallbackUrl)(null, CDN_URL)).toBeNull();
|
|
87
|
+
(0, vitest_1.expect)((0, imageUrl_1.getFallbackUrl)(undefined, CDN_URL)).toBeNull();
|
|
88
|
+
});
|
|
89
|
+
(0, vitest_1.it)('should return filename as-is if just filename', () => {
|
|
90
|
+
(0, vitest_1.expect)((0, imageUrl_1.getFallbackUrl)('abc.jpg', CDN_URL)).toBe('abc.jpg');
|
|
91
|
+
});
|
|
92
|
+
(0, vitest_1.it)('should strip CDN URL from full URL', () => {
|
|
93
|
+
const fullUrl = `${CDN_URL}/abc.jpg`;
|
|
94
|
+
(0, vitest_1.expect)((0, imageUrl_1.getFallbackUrl)(fullUrl, CDN_URL)).toBe('abc.jpg');
|
|
95
|
+
});
|
|
96
|
+
(0, vitest_1.it)('should handle optional storageUrl', () => {
|
|
97
|
+
const fullUrl = `${CDN_URL}/abc.jpg`;
|
|
98
|
+
(0, vitest_1.expect)((0, imageUrl_1.getFallbackUrl)(fullUrl, CDN_URL, STORAGE_URL)).toBe(`${STORAGE_URL}/abc.jpg`);
|
|
99
|
+
});
|
|
100
|
+
(0, vitest_1.it)('should return other external URLs as-is', () => {
|
|
101
|
+
const url = 'https://other-cdn.com/image.jpg';
|
|
102
|
+
(0, vitest_1.expect)((0, imageUrl_1.getFallbackUrl)(url, CDN_URL, STORAGE_URL)).toBe(url);
|
|
103
|
+
});
|
|
104
|
+
(0, vitest_1.it)('should prepend storageUrl to filename if provided', () => {
|
|
105
|
+
(0, vitest_1.expect)((0, imageUrl_1.getFallbackUrl)('abc.jpg', CDN_URL, STORAGE_URL)).toBe(`${STORAGE_URL}/abc.jpg`);
|
|
81
106
|
});
|
|
82
107
|
});
|
|
83
108
|
//# sourceMappingURL=imageUrl.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageUrl.test.js","sourceRoot":"","sources":["../../__tests__/imageUrl.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"imageUrl.test.js","sourceRoot":"","sources":["../../__tests__/imageUrl.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export interface ChanomhubConfig {
|
|
|
6
6
|
apiUrl: string;
|
|
7
7
|
/** CDN base URL for images */
|
|
8
8
|
cdnUrl: string;
|
|
9
|
+
/** Original storage base URL (fallback) */
|
|
10
|
+
storageUrl?: string;
|
|
9
11
|
/** Authentication token (optional) */
|
|
10
12
|
token?: string;
|
|
11
13
|
/** Default cache duration in seconds (0 = no cache) */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC5B,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC5B,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,eAK5B,CAAC;AAEF,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GACnB,OAAO,GACP,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,cAAc,GACd,gBAAgB,CAAC;AAEvB,uBAAuB;AACvB,MAAM,MAAM,UAAU,GAChB,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,eAAe,GACf,SAAS,GACT,UAAU,GACV,OAAO,GACP,aAAa,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.DEFAULT_CONFIG = void 0;
|
|
|
7
7
|
exports.DEFAULT_CONFIG = {
|
|
8
8
|
apiUrl: 'https://api.chanomhub.com',
|
|
9
9
|
cdnUrl: 'https://cdn.chanomhub.com/cdn-cgi/image/format=auto',
|
|
10
|
+
storageUrl: 'https://cdn.chanomhub.com', // Fallback to raw CDN URL
|
|
10
11
|
defaultCacheSeconds: 3600,
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAmBU,QAAA,cAAc,GAAoB;IAC3C,MAAM,EAAE,2BAA2B;IACnC,MAAM,EAAE,qDAAqD;IAC7D,UAAU,EAAE,2BAA2B,EAAE,0BAA0B;IACnE,mBAAmB,EAAE,IAAI;CAC5B,CAAC"}
|
|
@@ -18,10 +18,11 @@ async function main() {
|
|
|
18
18
|
ver: '1.0.0',
|
|
19
19
|
status: 'DRAFT',
|
|
20
20
|
engine: 'RENPY',
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
// Metadata fields
|
|
22
|
+
tags: ['Hentai', 'Visual Novel'],
|
|
23
|
+
categories: ['Game'],
|
|
24
|
+
platforms: ['Windows', 'Android'],
|
|
25
|
+
creator: 'Awesome Studio', // Creator / Studio name
|
|
25
26
|
};
|
|
26
27
|
try {
|
|
27
28
|
console.log('Creating article...');
|
|
@@ -32,6 +33,21 @@ async function main() {
|
|
|
32
33
|
description: 'Updated description',
|
|
33
34
|
});
|
|
34
35
|
console.log('Updated article:', JSON.stringify(updated, null, 2));
|
|
36
|
+
console.log('Fetching full article details (what you get on web page load)...');
|
|
37
|
+
const fullArticle = await client.articles.getBySlug(created.slug);
|
|
38
|
+
if (fullArticle) {
|
|
39
|
+
console.log('Full Article Data:');
|
|
40
|
+
console.log('- Title:', fullArticle.title);
|
|
41
|
+
console.log('- Tags:', fullArticle.tags);
|
|
42
|
+
console.log('- Categories:', fullArticle.categories);
|
|
43
|
+
console.log('- Platforms:', fullArticle.platforms);
|
|
44
|
+
console.log('- Creators:', fullArticle.creators);
|
|
45
|
+
console.log('- Engine:', fullArticle.engine);
|
|
46
|
+
console.log('- Author:', fullArticle.author);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.error('Failed to fetch full article');
|
|
50
|
+
}
|
|
35
51
|
console.log('Deleting article...');
|
|
36
52
|
await client.articles.delete(created.slug);
|
|
37
53
|
console.log('Deleted article');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage-article.js","sourceRoot":"","sources":["../../examples/manage-article.ts"],"names":[],"mappings":";;AACA,oCAAiD;AAGjD,KAAK,UAAU,IAAI;IACf,4CAA4C;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,6BAAqB,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAkB;QAC9B,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE;QACtC,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"manage-article.js","sourceRoot":"","sources":["../../examples/manage-article.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ import { type ChanomhubConfig } from './config';
|
|
|
36
36
|
export * from './types';
|
|
37
37
|
export * from './config';
|
|
38
38
|
export * from './errors';
|
|
39
|
-
export { resolveImageUrl } from './transforms/imageUrl';
|
|
39
|
+
export { resolveImageUrl, getFallbackUrl } from './transforms/imageUrl';
|
|
40
40
|
/** Chanomhub SDK Client interface */
|
|
41
41
|
export interface ChanomhubClient {
|
|
42
42
|
/** Article operations */
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,EAMH,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhE,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,EAMH,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhE,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAExE,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC5B,yBAAyB;IACzB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,2BAA2B;IAC3B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,8BAA8B;IAC9B,KAAK,EAAE,eAAe,CAAC;IACvB,wBAAwB;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,6CAA6C;IAC7C,OAAO,EAAE,cAAc,CAAC;IACxB,wBAAwB;IACxB,MAAM,EAAE,eAAe,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAuB5F;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACtC,eAAe,CAMjB;AAGD,eAAe,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -46,7 +46,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
46
46
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
47
47
|
};
|
|
48
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
exports.resolveImageUrl = void 0;
|
|
49
|
+
exports.getFallbackUrl = exports.resolveImageUrl = void 0;
|
|
50
50
|
exports.createChanomhubClient = createChanomhubClient;
|
|
51
51
|
exports.createAuthenticatedClient = createAuthenticatedClient;
|
|
52
52
|
const client_1 = require("./client");
|
|
@@ -58,6 +58,7 @@ __exportStar(require("./config"), exports);
|
|
|
58
58
|
__exportStar(require("./errors"), exports);
|
|
59
59
|
var imageUrl_1 = require("./transforms/imageUrl");
|
|
60
60
|
Object.defineProperty(exports, "resolveImageUrl", { enumerable: true, get: function () { return imageUrl_1.resolveImageUrl; } });
|
|
61
|
+
Object.defineProperty(exports, "getFallbackUrl", { enumerable: true, get: function () { return imageUrl_1.getFallbackUrl; } });
|
|
61
62
|
/**
|
|
62
63
|
* Creates a Chanomhub API client
|
|
63
64
|
*
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;;;;;;;;;;;;;;;;;AA+DH,sDAuBC;AAUD,8DASC;AAvGD,qCAAsF;AACtF,iDAWwB;AACxB,qCAAgE;AAEhE,kBAAkB;AAClB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;;;;;;;;;;;;;;;;;AA+DH,sDAuBC;AAUD,8DASC;AAvGD,qCAAsF;AACtF,iDAWwB;AACxB,qCAAgE;AAEhE,kBAAkB;AAClB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,kDAAwE;AAA/D,2GAAA,eAAe,OAAA;AAAE,0GAAA,cAAc,OAAA;AAoBxC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,qBAAqB,CAAC,SAAmC,EAAE;IACvE,MAAM,UAAU,GAAoB;QAChC,GAAG,uBAAc;QACjB,GAAG,MAAM;KACZ,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,4BAAmB,EAAC,UAAU,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAA,sCAAuB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAA,wCAAyB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAA,oCAAqB,EAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAA,qCAAsB,EAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAA,mCAAoB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEpD,OAAO;QACH,QAAQ;QACR,SAAS;QACT,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,UAAU;KACrB,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CACrC,KAAa,EACb,SAAmC,EAAE;IAErC,OAAO,qBAAqB,CAAC;QACzB,GAAG,MAAM;QACT,KAAK;QACL,mBAAmB,EAAE,CAAC,EAAE,2CAA2C;KACtE,CAAC,CAAC;AACP,CAAC;AAED,iBAAiB;AACjB,kBAAe,qBAAqB,CAAC"}
|
|
@@ -10,6 +10,15 @@
|
|
|
10
10
|
* - Handles null/undefined gracefully
|
|
11
11
|
*/
|
|
12
12
|
export declare function resolveImageUrl(imageUrl: string | null | undefined, cdnUrl: string): string | null;
|
|
13
|
+
/**
|
|
14
|
+
* Generates a fallback URL (original source) for an image.
|
|
15
|
+
* Useful when the CDN is unavailable or fails to load.
|
|
16
|
+
*
|
|
17
|
+
* @param imageUrl - The full image URL (potentially from CDN) or filename
|
|
18
|
+
* @param cdnUrl - The CDN base URL to strip (if present)
|
|
19
|
+
* @param storageUrl - The original storage base URL to prepend
|
|
20
|
+
*/
|
|
21
|
+
export declare function getFallbackUrl(imageUrl: string | null | undefined, cdnUrl: string, storageUrl?: string): string | null;
|
|
13
22
|
/**
|
|
14
23
|
* Deep transforms all image URLs in an object/array recursively.
|
|
15
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageUrl.d.ts","sourceRoot":"","sources":["../../transforms/imageUrl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,MAAM,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAUf;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAoCpE"}
|
|
1
|
+
{"version":3,"file":"imageUrl.d.ts","sourceRoot":"","sources":["../../transforms/imageUrl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,MAAM,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAUf;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GACpB,MAAM,GAAG,IAAI,CAyBf;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAoCpE"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.resolveImageUrl = resolveImageUrl;
|
|
9
|
+
exports.getFallbackUrl = getFallbackUrl;
|
|
9
10
|
exports.transformImageUrlsDeep = transformImageUrlsDeep;
|
|
10
11
|
/**
|
|
11
12
|
* Resolves an image URL.
|
|
@@ -23,6 +24,38 @@ function resolveImageUrl(imageUrl, cdnUrl) {
|
|
|
23
24
|
// Filename only - prepend CDN base URL
|
|
24
25
|
return `${cdnUrl}/${imageUrl}`;
|
|
25
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Generates a fallback URL (original source) for an image.
|
|
29
|
+
* Useful when the CDN is unavailable or fails to load.
|
|
30
|
+
*
|
|
31
|
+
* @param imageUrl - The full image URL (potentially from CDN) or filename
|
|
32
|
+
* @param cdnUrl - The CDN base URL to strip (if present)
|
|
33
|
+
* @param storageUrl - The original storage base URL to prepend
|
|
34
|
+
*/
|
|
35
|
+
function getFallbackUrl(imageUrl, cdnUrl, storageUrl) {
|
|
36
|
+
if (!imageUrl)
|
|
37
|
+
return null;
|
|
38
|
+
let filename = imageUrl;
|
|
39
|
+
// If it's a full CDN URL, strip the CDN prefix
|
|
40
|
+
if (imageUrl.startsWith(cdnUrl)) {
|
|
41
|
+
// Remove cdnUrl and any leading slash
|
|
42
|
+
const relativePath = imageUrl.slice(cdnUrl.length);
|
|
43
|
+
filename = relativePath.startsWith('/') ? relativePath.slice(1) : relativePath;
|
|
44
|
+
}
|
|
45
|
+
else if (imageUrl.startsWith('http://') || imageUrl.startsWith('https://')) {
|
|
46
|
+
// If it's another full URL (not our CDN), return as-is or null?
|
|
47
|
+
// Assume if it's not our CDN, we can't fallback easily unless it's just a filename
|
|
48
|
+
// But if the input was already just a filename, we use it.
|
|
49
|
+
// If it is some other external URL, we probably just return it as is or null.
|
|
50
|
+
// For safety, if it doesn't start with CDN url, and is a full url, we assume it might already be the fallback or external.
|
|
51
|
+
return imageUrl;
|
|
52
|
+
}
|
|
53
|
+
// Prepend storage URL if available
|
|
54
|
+
if (storageUrl) {
|
|
55
|
+
return `${storageUrl}/${filename}`;
|
|
56
|
+
}
|
|
57
|
+
return filename;
|
|
58
|
+
}
|
|
26
59
|
/** Known image field names */
|
|
27
60
|
const IMAGE_FIELDS = new Set(['mainImage', 'backgroundImage', 'coverImage', 'image']);
|
|
28
61
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageUrl.js","sourceRoot":"","sources":["../../transforms/imageUrl.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAQH,0CAaC;AAQD,wDAoCC;
|
|
1
|
+
{"version":3,"file":"imageUrl.js","sourceRoot":"","sources":["../../transforms/imageUrl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chanomhub/sdk",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "ChanomHub SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -48,23 +48,23 @@
|
|
|
48
48
|
"author": "",
|
|
49
49
|
"license": "ISC",
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@supabase/supabase-js": "^2.
|
|
52
|
-
"@types/node": "^25.0.
|
|
53
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
54
|
-
"@typescript-eslint/parser": "^8.
|
|
55
|
-
"@vitest/coverage-v8": "^4.0.
|
|
51
|
+
"@supabase/supabase-js": "^2.93.2",
|
|
52
|
+
"@types/node": "^25.0.10",
|
|
53
|
+
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
54
|
+
"@typescript-eslint/parser": "^8.54.0",
|
|
55
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
56
56
|
"eslint": "^9.39.2",
|
|
57
57
|
"eslint-config-prettier": "^10.1.8",
|
|
58
|
-
"eslint-plugin-prettier": "^5.5.
|
|
58
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
59
59
|
"msw": "^2.12.7",
|
|
60
|
-
"next": "^16.1.
|
|
61
|
-
"prettier": "^3.
|
|
60
|
+
"next": "^16.1.6",
|
|
61
|
+
"prettier": "^3.8.1",
|
|
62
62
|
"starlight-typedoc": "^0.21.5",
|
|
63
|
-
"typedoc": "^0.28.
|
|
63
|
+
"typedoc": "^0.28.16",
|
|
64
64
|
"typedoc-plugin-markdown": "^4.9.0",
|
|
65
65
|
"typescript": "^5.9.3",
|
|
66
|
-
"typescript-eslint": "^8.
|
|
67
|
-
"vitest": "^4.0.
|
|
66
|
+
"typescript-eslint": "^8.54.0",
|
|
67
|
+
"vitest": "^4.0.18"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
70
|
"@supabase/supabase-js": ">=2.0.0",
|