@blockspoon/cert-badge-renderer 1.0.1 β†’ 1.0.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/README.md CHANGED
@@ -80,9 +80,6 @@ require("fs").writeFileSync("badge.png", png.buffer);
80
80
  ## πŸ” API Key μ‚¬μš© 방식
81
81
 
82
82
  νŒ¨ν‚€μ§€ μ‚¬μš© μ‹œ μ„œλ²„ μš”μ²­μ—λŠ” API Keyκ°€ ν•„μš”ν•©λ‹ˆλ‹€.
83
- μ΄λŠ” μΈμ¦μ„œ 생성 및 검증 μš”μ²­μ˜ λ³΄μ•ˆμ„ μœ„ν•œ 절차이며,
84
- νŒ¨ν‚€μ§€ λ‚΄λΆ€μ˜ Open API 호좜 μ‹œ μžλ™μœΌλ‘œ 토큰이 헀더에 ν¬ν•¨λ©λ‹ˆλ‹€.
85
-
86
83
  μžμ„Έν•œ μ •λ³΄λŠ” https://developers.kolleges.net μ°Έκ³  λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.
87
84
 
88
85
  ---
@@ -0,0 +1 @@
1
+ export { generateAchievementHTML } from "../utils/generateAchievementHTML";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAchievementHTML = void 0;
4
+ // βœ… src/browser/index.ts
5
+ var generateAchievementHTML_1 = require("../utils/generateAchievementHTML");
6
+ Object.defineProperty(exports, "generateAchievementHTML", { enumerable: true, get: function () { return generateAchievementHTML_1.generateAchievementHTML; } });
@@ -0,0 +1,2 @@
1
+ export { generateAchievementFile } from "../utils/generateAchievementFile";
2
+ export { generateAchievementHTML } from "../utils/generateAchievementHTML";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAchievementHTML = exports.generateAchievementFile = void 0;
4
+ // βœ… src/server/index.ts
5
+ var generateAchievementFile_1 = require("../utils/generateAchievementFile");
6
+ Object.defineProperty(exports, "generateAchievementFile", { enumerable: true, get: function () { return generateAchievementFile_1.generateAchievementFile; } });
7
+ var generateAchievementHTML_1 = require("../utils/generateAchievementHTML");
8
+ Object.defineProperty(exports, "generateAchievementHTML", { enumerable: true, get: function () { return generateAchievementHTML_1.generateAchievementHTML; } });
@@ -5,7 +5,7 @@ export declare function generateAchievementFile(data: CertificateData, options?:
5
5
  buffer?: undefined;
6
6
  fileName?: undefined;
7
7
  } | {
8
- buffer: Uint8Array<ArrayBufferLike>;
8
+ buffer: Uint8Array;
9
9
  contentType: string;
10
10
  fileName: string;
11
11
  base64?: undefined;
@@ -40,7 +40,15 @@ function convertImageToBase64(url) {
40
40
  throw new Error(`Not an image! content-type: ${contentType}`);
41
41
  }
42
42
  const buffer = yield response.arrayBuffer();
43
- const base64 = Buffer.from(buffer).toString("base64");
43
+ let base64 = "";
44
+ if (typeof window === "undefined") {
45
+ // Node.js ν™˜κ²½
46
+ base64 = Buffer.from(buffer).toString("base64");
47
+ }
48
+ else {
49
+ // λΈŒλΌμš°μ € ν™˜κ²½
50
+ base64 = btoa(new Uint8Array(buffer).reduce((data, byte) => data + String.fromCharCode(byte), ""));
51
+ }
44
52
  return `data:${contentType};base64,${base64}`;
45
53
  }
46
54
  catch (error) {
@@ -5,7 +5,7 @@ export declare function generateDesignFile(data: IAchievementDesignItem, options
5
5
  buffer?: undefined;
6
6
  fileName?: undefined;
7
7
  } | {
8
- buffer: Uint8Array<ArrayBufferLike>;
8
+ buffer: Uint8Array;
9
9
  contentType: string;
10
10
  fileName: string;
11
11
  base64?: undefined;
package/package.json CHANGED
@@ -1,9 +1,23 @@
1
1
  {
2
2
  "name": "@blockspoon/cert-badge-renderer",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Render certificate and badge designs from Kolleges achievement data into HTML, PNG, or Base64.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/browser/index.js",
10
+ "types": "./dist/browser/index.d.ts"
11
+ },
12
+ "./browser": {
13
+ "import": "./dist/browser/index.js",
14
+ "types": "./dist/browser/index.d.ts"
15
+ },
16
+ "./server": {
17
+ "import": "./dist/server/index.js",
18
+ "types": "./dist/server/index.d.ts"
19
+ }
20
+ },
7
21
  "scripts": {
8
22
  "build": "tsc",
9
23
  "test": "node test/test.js"
@@ -0,0 +1,2 @@
1
+ // βœ… src/browser/index.ts
2
+ export { generateAchievementHTML } from "../utils/generateAchievementHTML";
@@ -0,0 +1,3 @@
1
+ // βœ… src/server/index.ts
2
+ export { generateAchievementFile } from "../utils/generateAchievementFile";
3
+ export { generateAchievementHTML } from "../utils/generateAchievementHTML";
@@ -38,7 +38,20 @@ async function convertImageToBase64(url: string): Promise<string> {
38
38
  }
39
39
 
40
40
  const buffer = await response.arrayBuffer();
41
- const base64 = Buffer.from(buffer).toString("base64");
41
+ let base64 = "";
42
+
43
+ if (typeof window === "undefined") {
44
+ // Node.js ν™˜κ²½
45
+ base64 = Buffer.from(buffer).toString("base64");
46
+ } else {
47
+ // λΈŒλΌμš°μ € ν™˜κ²½
48
+ base64 = btoa(
49
+ new Uint8Array(buffer).reduce(
50
+ (data, byte) => data + String.fromCharCode(byte),
51
+ ""
52
+ )
53
+ );
54
+ }
42
55
  return `data:${contentType};base64,${base64}`;
43
56
  } catch (error) {
44
57
  console.error(`이미지 λ³€ν™˜ μ‹€νŒ¨: ${url}`, error);
Binary file