@blockspoon/cert-badge-renderer 1.0.14 → 1.0.15

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/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- export { generateAchievementFile } from './utils/generateAchievementFile';
2
1
  export { generateAchievementHTML } from './utils/generateAchievementHTML';
3
2
  export type { CertificateData, CertificateOptions } from './interface';
package/dist/index.js CHANGED
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateAchievementHTML = exports.generateAchievementFile = void 0;
4
- var generateAchievementFile_1 = require("./utils/generateAchievementFile");
5
- Object.defineProperty(exports, "generateAchievementFile", { enumerable: true, get: function () { return generateAchievementFile_1.generateAchievementFile; } });
3
+ exports.generateAchievementHTML = void 0;
6
4
  var generateAchievementHTML_1 = require("./utils/generateAchievementHTML");
7
5
  Object.defineProperty(exports, "generateAchievementHTML", { enumerable: true, get: function () { return generateAchievementHTML_1.generateAchievementHTML; } });
8
6
  // export { getBindingValue } from "./utils/getBindingValue";
@@ -1,2 +1 @@
1
- export { generateAchievementFile } from "../utils/generateAchievementFile";
2
1
  export { generateAchievementHTML } from "../utils/generateAchievementHTML";
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateAchievementHTML = exports.generateAchievementFile = void 0;
3
+ exports.generateAchievementHTML = void 0;
4
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
5
  var generateAchievementHTML_1 = require("../utils/generateAchievementHTML");
8
6
  Object.defineProperty(exports, "generateAchievementHTML", { enumerable: true, get: function () { return generateAchievementHTML_1.generateAchievementHTML; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockspoon/cert-badge-renderer",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
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",
@@ -26,9 +26,7 @@
26
26
  "author": "Blockspoon <support@kolleges.net>",
27
27
  "license": "MIT",
28
28
  "dependencies": {
29
- "@sparticuz/chromium": "^133.0.0",
30
29
  "date-fns": "^4.1.0",
31
- "puppeteer": "^24.4.0",
32
30
  "qrcode": "^1.5.4"
33
31
  },
34
32
  "devDependencies": {
package/src/index.ts CHANGED
@@ -1,4 +1,3 @@
1
- export { generateAchievementFile } from './utils/generateAchievementFile';
2
1
  export { generateAchievementHTML } from './utils/generateAchievementHTML';
3
2
  export type { CertificateData, CertificateOptions } from './interface';
4
3
  // export { getBindingValue } from "./utils/getBindingValue";
@@ -1,3 +1,2 @@
1
1
  // ✅ src/server/index.ts
2
- export { generateAchievementFile } from "../utils/generateAchievementFile";
3
2
  export { generateAchievementHTML } from "../utils/generateAchievementHTML";
@@ -131,7 +131,6 @@ export const getBindingValue = (
131
131
  bindingKey: string,
132
132
  data: any
133
133
  ) => {
134
-
135
134
  switch (type) {
136
135
  case "achievement":
137
136
  return getAchievementValue(bindingKey, data);
@@ -141,7 +140,7 @@ export const getBindingValue = (
141
140
  return getClubValue(
142
141
  bindingKey,
143
142
  data?.achievementForm?.club || data?.club,
144
- data
143
+ data
145
144
  );
146
145
  case "custom":
147
146
  return getCustomValue(bindingKey, data);
package/tsconfig.json CHANGED
@@ -3,10 +3,11 @@
3
3
  "outDir": "dist",
4
4
  "module": "CommonJS",
5
5
  "target": "ES6",
6
+ "lib": ["esnext", "dom"],
6
7
  "declaration": true,
7
8
  "esModuleInterop": true,
8
9
  "moduleResolution": "node"
9
10
  // "strict": true
10
11
  },
11
12
  "include": ["src"]
12
- }
13
+ }
@@ -1,72 +0,0 @@
1
- import puppeteer from "puppeteer";
2
- import { generateAchievementHTML } from "./generateAchievementHTML";
3
- import { CertificateData, CertificateOptions } from "../interface";
4
-
5
- export async function generateAchievementFile(
6
- data: CertificateData,
7
- options: CertificateOptions = {}
8
- ) {
9
- const { returnType = "file", type = "certificate", size = 600 } = options;
10
- const browser = await puppeteer.launch({
11
- headless: true,
12
- args: [
13
- "--no-sandbox",
14
- "--disable-setuid-sandbox",
15
- "--disable-dev-shm-usage",
16
- "--disable-gpu",
17
- "--disable-software-rasterizer",
18
- ],
19
- });
20
-
21
- const page = await browser.newPage();
22
-
23
- await page.setRequestInterception(true);
24
- page.on("request", (request) => {
25
- if (request.resourceType() === "image") {
26
- request.continue();
27
- } else {
28
- request.continue();
29
- }
30
- });
31
-
32
- const htmlContent = await generateAchievementHTML(data, { type, size });
33
-
34
- await page.setContent(htmlContent, {
35
- waitUntil: "domcontentloaded",
36
- });
37
-
38
- await new Promise((resolve) => setTimeout(resolve, 500));
39
-
40
- await page.setViewport({
41
- width: size,
42
- height: size,
43
- });
44
-
45
- const buffer = await page.screenshot({
46
- type: "png",
47
- clip: {
48
- x: 0,
49
- y: 0,
50
- width: size,
51
- height: size,
52
- },
53
- omitBackground: true,
54
- encoding: "binary",
55
- });
56
-
57
- await browser.close();
58
-
59
- if (returnType === "base64") {
60
- const base64 = Buffer.from(buffer).toString("base64");
61
- return {
62
- base64: `data:image/png;base64,${base64}`,
63
- contentType: "image/png",
64
- };
65
- }
66
-
67
- return {
68
- buffer,
69
- contentType: "image/png",
70
- fileName: "certificate.png",
71
- };
72
- }
@@ -1,72 +0,0 @@
1
- import puppeteer from "puppeteer";
2
- import { generateDesignHTML } from "./generateDesignHTML";
3
- import { IAchievementDesignItem, DesignOptions } from "../interface";
4
-
5
- export async function generateDesignFile(
6
- data: IAchievementDesignItem,
7
- options: DesignOptions = {}
8
- ) {
9
- const { returnType = "file", size = 600 } = options;
10
- const browser = await puppeteer.launch({
11
- headless: true,
12
- args: [
13
- "--no-sandbox",
14
- "--disable-setuid-sandbox",
15
- "--disable-dev-shm-usage",
16
- "--disable-gpu",
17
- "--disable-software-rasterizer",
18
- ],
19
- });
20
-
21
- const page = await browser.newPage();
22
-
23
- await page.setRequestInterception(true);
24
- page.on("request", (request) => {
25
- if (request.resourceType() === "image") {
26
- request.continue();
27
- } else {
28
- request.continue();
29
- }
30
- });
31
-
32
- const htmlContent = await generateDesignHTML(data, { size });
33
-
34
- await page.setContent(htmlContent, {
35
- waitUntil: "domcontentloaded",
36
- });
37
-
38
- await new Promise((resolve) => setTimeout(resolve, 500));
39
-
40
- await page.setViewport({
41
- width: size,
42
- height: size,
43
- });
44
-
45
- const buffer = await page.screenshot({
46
- type: "png",
47
- clip: {
48
- x: 0,
49
- y: 0,
50
- width: size,
51
- height: size,
52
- },
53
- omitBackground: true,
54
- encoding: "binary",
55
- });
56
-
57
- await browser.close();
58
-
59
- if (returnType === "base64") {
60
- const base64 = Buffer.from(buffer).toString("base64");
61
- return {
62
- base64: `data:image/png;base64,${base64}`,
63
- contentType: "image/png",
64
- };
65
- }
66
-
67
- return {
68
- buffer,
69
- contentType: "image/png",
70
- fileName: "design.png",
71
- };
72
- }