@blockspoon/cert-badge-renderer 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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; } });
@@ -19,36 +19,6 @@ const qrcode_1 = __importDefault(require("qrcode"));
19
19
  const svgTemplate_1 = require("../templates/svgTemplate");
20
20
  const certificates_1 = __importDefault(require("../templates/certificates"));
21
21
  const componentsDirection_1 = require("../constants/componentsDirection");
22
- function convertImageToBase64(url) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- try {
25
- // URL이 이미 baseUrl을 포함하고 있는지 확인
26
- let finalUrls = [];
27
- finalUrls = url.split("https://");
28
- const finalUrl = "https://" + finalUrls.pop();
29
- const response = yield fetch(finalUrl, {
30
- credentials: "include",
31
- headers: {
32
- Accept: "image/*",
33
- },
34
- });
35
- if (!response.ok) {
36
- throw new Error(`HTTP error! status: ${response.status}`);
37
- }
38
- const contentType = response.headers.get("content-type");
39
- if (!(contentType === null || contentType === void 0 ? void 0 : contentType.startsWith("image/"))) {
40
- throw new Error(`Not an image! content-type: ${contentType}`);
41
- }
42
- const buffer = yield response.arrayBuffer();
43
- const base64 = Buffer.from(buffer).toString("base64");
44
- return `data:${contentType};base64,${base64}`;
45
- }
46
- catch (error) {
47
- console.error(`이미지 변환 실패: ${url}`, error);
48
- return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
49
- }
50
- });
51
- }
52
22
  function generateAchievementHTML(data_1) {
53
23
  return __awaiter(this, arguments, void 0, function* (data, options = {}) {
54
24
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
@@ -272,9 +242,9 @@ function generateAchievementHTML(data_1) {
272
242
  }
273
243
  else if (element.src) {
274
244
  // 이미지를 base64로 변환
275
- const base64Image = yield convertImageToBase64(element.src);
245
+ // const base64Image = await convertImageToBase64(element.src);
276
246
  html += `<img
277
- src="${base64Image}"
247
+ src="${element.src}"
278
248
  alt="Uploaded"
279
249
  style="
280
250
  width: 100%;
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.3",
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";
@@ -14,38 +14,6 @@ import {
14
14
  import Certificates from "../templates/certificates";
15
15
  import { portraitComponents } from "../constants/componentsDirection";
16
16
 
17
- async function convertImageToBase64(url: string): Promise<string> {
18
- try {
19
- // URL이 이미 baseUrl을 포함하고 있는지 확인
20
- let finalUrls = [];
21
- finalUrls = url.split("https://");
22
- const finalUrl = "https://" + finalUrls.pop();
23
-
24
- const response = await fetch(finalUrl, {
25
- credentials: "include",
26
- headers: {
27
- Accept: "image/*",
28
- },
29
- });
30
-
31
- if (!response.ok) {
32
- throw new Error(`HTTP error! status: ${response.status}`);
33
- }
34
-
35
- const contentType = response.headers.get("content-type");
36
- if (!contentType?.startsWith("image/")) {
37
- throw new Error(`Not an image! content-type: ${contentType}`);
38
- }
39
-
40
- const buffer = await response.arrayBuffer();
41
- const base64 = Buffer.from(buffer).toString("base64");
42
- return `data:${contentType};base64,${base64}`;
43
- } catch (error) {
44
- console.error(`이미지 변환 실패: ${url}`, error);
45
- return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
46
- }
47
- }
48
-
49
17
  export async function generateAchievementHTML(
50
18
  data: CertificateData,
51
19
  options: CertificateOptions = {}
@@ -317,9 +285,9 @@ export async function generateAchievementHTML(
317
285
  }
318
286
  } else if (element.src) {
319
287
  // 이미지를 base64로 변환
320
- const base64Image = await convertImageToBase64(element.src);
288
+ // const base64Image = await convertImageToBase64(element.src);
321
289
  html += `<img
322
- src="${base64Image}"
290
+ src="${element.src}"
323
291
  alt="Uploaded"
324
292
  style="
325
293
  width: 100%;
Binary file