@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 +0 -1
- package/dist/index.js +1 -3
- package/dist/server/index.d.ts +0 -1
- package/dist/server/index.js +1 -3
- package/package.json +1 -3
- package/src/index.ts +0 -1
- package/src/server/index.ts +0 -1
- package/src/utils/getBindingValue.ts +1 -2
- package/tsconfig.json +2 -1
- package/src/utils/generateAchievementFile.ts +0 -72
- package/src/utils/generateDesignFile.ts +0 -72
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateAchievementHTML =
|
|
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";
|
package/dist/server/index.d.ts
CHANGED
package/dist/server/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateAchievementHTML =
|
|
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.
|
|
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";
|
package/src/server/index.ts
CHANGED
|
@@ -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
|
@@ -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
|
-
}
|