@hellkite/pipkin 0.6.1 → 0.7.0
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/build/src/lib/template.d.ts +9 -10
- package/build/src/lib/template.js +75 -40
- package/build/src/lib/template.js.map +1 -1
- package/build/src/lib/types/containers.d.ts +14 -2
- package/build/src/lib/types/containers.js.map +1 -1
- package/build/src/lib/types/hypernode.d.ts +2 -0
- package/build/src/lib/types/hypernode.js +3 -0
- package/build/src/lib/types/hypernode.js.map +1 -0
- package/build/src/lib/types/image.d.ts +5 -0
- package/build/src/lib/types/image.js.map +1 -1
- package/build/src/lib/types/index.d.ts +1 -0
- package/build/src/lib/types/index.js +1 -0
- package/build/src/lib/types/index.js.map +1 -1
- package/build/src/lib/types/text.d.ts +11 -2
- package/build/src/lib/types/text.js +4 -0
- package/build/src/lib/types/text.js.map +1 -1
- package/build/src/lib/utils/container.js +10 -45
- package/build/src/lib/utils/container.js.map +1 -1
- package/build/src/lib/utils/htmlToImage.d.ts +2 -3
- package/build/src/lib/utils/htmlToImage.js.map +1 -1
- package/build/src/lib/utils/index.d.ts +2 -3
- package/build/src/lib/utils/index.js +2 -3
- package/build/src/lib/utils/index.js.map +1 -1
- package/build/src/lib/utils/placeBoundingBox.d.ts +2 -0
- package/build/src/lib/utils/placeBoundingBox.js +21 -0
- package/build/src/lib/utils/placeBoundingBox.js.map +1 -0
- package/build/src/lib/utils/placeImage.d.ts +7 -6
- package/build/src/lib/utils/placeImage.js +20 -20
- package/build/src/lib/utils/placeImage.js.map +1 -1
- package/build/src/lib/utils/placeText.d.ts +14 -0
- package/build/src/lib/utils/placeText.js +69 -0
- package/build/src/lib/utils/placeText.js.map +1 -0
- package/build/src/lib/utils/renderText.js +1 -0
- package/build/src/lib/utils/renderText.js.map +1 -1
- package/build/src/test.js +36 -10
- package/build/src/test.js.map +1 -1
- package/package.json +3 -1
- package/roadmap.md +3 -2
- package/src/lib/template.ts +100 -70
- package/src/lib/types/containers.ts +22 -4
- package/src/lib/types/hypernode.ts +4 -0
- package/src/lib/types/image.ts +6 -0
- package/src/lib/types/index.ts +1 -0
- package/src/lib/types/text.ts +18 -4
- package/src/lib/utils/container.ts +13 -70
- package/src/lib/utils/htmlToImage.ts +3 -3
- package/src/lib/utils/index.ts +2 -3
- package/src/lib/utils/{drawBoundingBox.ts → placeBoundingBox.ts} +3 -9
- package/src/lib/utils/placeImage.ts +34 -27
- package/src/lib/utils/placeText.ts +110 -0
- package/src/lib/utils/buildFontString.ts +0 -17
- package/src/lib/utils/renderText.ts +0 -105
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { ImageLayerOptions, ImageType, BoundingBox } from '../types';
|
|
1
|
+
import { ImageLayerOptions, ImageType, BoundingBox, HyperNode, ImageLayerSpecificOptions } from '../types';
|
|
2
2
|
import { RequiredDeep } from 'type-fest';
|
|
3
3
|
type PlaceImageProps<EntryType extends Record<string, string>> = {
|
|
4
4
|
image: ImageType;
|
|
5
5
|
box: BoundingBox;
|
|
6
|
-
backgroundSize: {
|
|
7
|
-
width: number;
|
|
8
|
-
height: number;
|
|
9
|
-
};
|
|
10
6
|
options: RequiredDeep<ImageLayerOptions<EntryType>>;
|
|
11
7
|
};
|
|
12
|
-
export declare const placeImage: <EntryType extends Record<string, string>>({ image, box,
|
|
8
|
+
export declare const placeImage: <EntryType extends Record<string, string>>({ image, box, options, }: PlaceImageProps<EntryType>) => Promise<HyperNode>;
|
|
9
|
+
type PrepareImageProps<EntryType extends Record<string, string>> = {
|
|
10
|
+
image: ImageType;
|
|
11
|
+
options: RequiredDeep<ImageLayerSpecificOptions<EntryType>>;
|
|
12
|
+
};
|
|
13
|
+
export declare const prepareImage: <EntryType extends Record<string, string>>({ image, options, }: PrepareImageProps<EntryType>) => Promise<HyperNode>;
|
|
13
14
|
export {};
|
|
@@ -9,30 +9,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.placeImage = void 0;
|
|
12
|
+
exports.prepareImage = exports.placeImage = void 0;
|
|
13
13
|
const virtual_dom_1 = require("virtual-dom");
|
|
14
14
|
const toPx_1 = require("./toPx");
|
|
15
15
|
const types_1 = require("../types");
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
const imageBase64 = yield image.getBase64('image/png');
|
|
19
|
-
const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[options.scale];
|
|
20
|
-
const document = (0, virtual_dom_1.h)('div', {
|
|
16
|
+
const placeImage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ image, box, options, }) {
|
|
17
|
+
return (0, virtual_dom_1.h)('div', {
|
|
21
18
|
style: Object.assign({ display: 'flex', position: 'absolute', scale: 1, justifyContent: options.justifyContent, alignItems: options.alignItems }, (0, toPx_1.boundingBoxToPx)(box)),
|
|
22
|
-
}, [
|
|
23
|
-
(0, virtual_dom_1.h)('img', {
|
|
24
|
-
style: {
|
|
25
|
-
objectFit,
|
|
26
|
-
flex: '1 1 auto',
|
|
27
|
-
minWidth: 0,
|
|
28
|
-
minHeight: 0,
|
|
29
|
-
maxWidth: '100%',
|
|
30
|
-
maxHeight: '100%',
|
|
31
|
-
},
|
|
32
|
-
src: imageBase64,
|
|
33
|
-
}, []),
|
|
34
|
-
]);
|
|
35
|
-
return (0, htmlToImage_1.htmlToImage)(document, backgroundSize);
|
|
19
|
+
}, [yield (0, exports.prepareImage)({ image, options })]);
|
|
36
20
|
});
|
|
37
21
|
exports.placeImage = placeImage;
|
|
22
|
+
const prepareImage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ image, options, }) {
|
|
23
|
+
const imageBase64 = yield image.getBase64('image/png');
|
|
24
|
+
const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[options.scale];
|
|
25
|
+
return (0, virtual_dom_1.h)('img', {
|
|
26
|
+
style: {
|
|
27
|
+
objectFit,
|
|
28
|
+
flex: '1 1 auto',
|
|
29
|
+
minWidth: 0,
|
|
30
|
+
minHeight: 0,
|
|
31
|
+
maxWidth: '100%',
|
|
32
|
+
maxHeight: '100%',
|
|
33
|
+
},
|
|
34
|
+
src: imageBase64,
|
|
35
|
+
}, []);
|
|
36
|
+
});
|
|
37
|
+
exports.prepareImage = prepareImage;
|
|
38
38
|
//# sourceMappingURL=placeImage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placeImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeImage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,iCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"placeImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeImage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,iCAAyC;AACzC,oCAOkB;AASX,MAAM,UAAU,GAAG,KAIyB,EAAE,4CAJsB,EACvE,KAAK,EACL,GAAG,EACH,OAAO,GACkB;IACzB,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,CAAC,EAER,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,UAAU,EAAE,OAAO,CAAC,UAAU,IAE3B,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,CAAC,MAAM,IAAA,oBAAY,EAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAC3C,CAAC;AACN,CAAC,CAAA,CAAC;AArBW,QAAA,UAAU,cAqBrB;AAOK,MAAM,YAAY,GAAG,KAGyB,EAAE,4CAHsB,EACzE,KAAK,EACL,OAAO,GACoB;IAC3B,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,gCAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE1D,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,EAAE;YACH,SAAS;YACT,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,MAAM;SACpB;QACD,GAAG,EAAE,WAAW;KACnB,EACD,EAAE,CACL,CAAC;AACN,CAAC,CAAA,CAAC;AAtBW,QAAA,YAAY,gBAsBvB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BoundingBox, TextLayerOptions, HyperNode, TextLayerSpecificOptions } from '../types';
|
|
2
|
+
import { RequiredDeep } from 'type-fest';
|
|
3
|
+
type PlaceTextProps<EntryType extends Record<string, string>> = {
|
|
4
|
+
text: string;
|
|
5
|
+
box: BoundingBox;
|
|
6
|
+
options: RequiredDeep<TextLayerOptions<EntryType>>;
|
|
7
|
+
};
|
|
8
|
+
export declare const placeText: <EntryType extends Record<string, string>>({ text, box, options, }: PlaceTextProps<EntryType>) => Promise<HyperNode>;
|
|
9
|
+
type PrepareTextProps<EntryType extends Record<string, string>> = {
|
|
10
|
+
text: string;
|
|
11
|
+
options: RequiredDeep<TextLayerSpecificOptions<EntryType>>;
|
|
12
|
+
};
|
|
13
|
+
export declare const prepareText: <EntryType extends Record<string, string>>({ text, options, }: PrepareTextProps<EntryType>) => Promise<HyperNode>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.prepareText = exports.placeText = void 0;
|
|
13
|
+
const virtual_dom_1 = require("virtual-dom");
|
|
14
|
+
const toPx_1 = require("./toPx");
|
|
15
|
+
const placeText = (_a) => __awaiter(void 0, [_a], void 0, function* ({ text, box, options, }) {
|
|
16
|
+
return (0, virtual_dom_1.h)('div', {
|
|
17
|
+
style: Object.assign({ display: 'flex', overflow: 'visible', position: 'absolute', justifyContent: options.justifyContent, alignItems: options.alignItems }, (0, toPx_1.boundingBoxToPx)(box)),
|
|
18
|
+
}, [
|
|
19
|
+
yield (0, exports.prepareText)({
|
|
20
|
+
text,
|
|
21
|
+
options,
|
|
22
|
+
}),
|
|
23
|
+
]);
|
|
24
|
+
});
|
|
25
|
+
exports.placeText = placeText;
|
|
26
|
+
const prepareText = (_a) => __awaiter(void 0, [_a], void 0, function* ({ text, options, }) {
|
|
27
|
+
let textChildren = [text];
|
|
28
|
+
for (const [word, image] of Object.entries(options.replacement)) {
|
|
29
|
+
const regex = new RegExp(word, 'gi');
|
|
30
|
+
const imageBase64 = yield image.getBase64('image/png');
|
|
31
|
+
let tmpChildren = [];
|
|
32
|
+
for (const textSegment of textChildren) {
|
|
33
|
+
if (typeof textSegment !== 'string') {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const parts = textSegment.split(regex);
|
|
37
|
+
for (let index = 0; index < parts.length; index++) {
|
|
38
|
+
if (index > 0) {
|
|
39
|
+
tmpChildren.push((0, virtual_dom_1.h)('img', {
|
|
40
|
+
style: {
|
|
41
|
+
display: 'inline',
|
|
42
|
+
verticalAlign: 'middle',
|
|
43
|
+
height: (0, toPx_1.toPx)(options.font.size),
|
|
44
|
+
width: 'auto',
|
|
45
|
+
},
|
|
46
|
+
src: imageBase64,
|
|
47
|
+
}, []));
|
|
48
|
+
}
|
|
49
|
+
tmpChildren.push(parts[index]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
textChildren = tmpChildren;
|
|
53
|
+
}
|
|
54
|
+
return (0, virtual_dom_1.h)('div', {
|
|
55
|
+
style: {
|
|
56
|
+
overflow: 'visible',
|
|
57
|
+
overflowWrap: 'word-wrap',
|
|
58
|
+
whiteSpace: 'normal',
|
|
59
|
+
color: options.color,
|
|
60
|
+
fontFamily: options.font.family,
|
|
61
|
+
fontSize: options.font.size,
|
|
62
|
+
fontStyle: options.font.italic ? 'italic' : undefined,
|
|
63
|
+
fontWeight: options.font.bold ? 'bold' : undefined,
|
|
64
|
+
'-webkit-text-stroke': `${options.border.width}px ${options.border.color}`,
|
|
65
|
+
},
|
|
66
|
+
}, textChildren);
|
|
67
|
+
});
|
|
68
|
+
exports.prepareText = prepareText;
|
|
69
|
+
//# sourceMappingURL=placeText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeText.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeText.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,7 @@ const renderText = (text, box, backgroundSize, options, fonts) => __awaiter(void
|
|
|
54
54
|
fontSize: options.font.size,
|
|
55
55
|
fontStyle: options.font.italic ? 'italic' : undefined,
|
|
56
56
|
fontWeight: options.font.bold ? 'bold' : undefined,
|
|
57
|
+
'-webkit-text-stroke': `${options.border.width}px ${options.border.color}`
|
|
57
58
|
},
|
|
58
59
|
}, textChildren),
|
|
59
60
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderText.js","sourceRoot":"","sources":["../../../../src/lib/utils/renderText.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAuC;AAEvC,iCAA+C;AAC/C,+CAA4C;AAGrC,MAAM,UAAU,GAAG,CACtB,IAAY,EACZ,GAAgB,EAChB,cAAoB,EACpB,OAAkD,EAClD,KAA6B,EACX,EAAE;IACpB,IAAI,YAAY,GAA0B,CAAC,IAAI,CAAC,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAEvD,IAAI,WAAW,GAA0B,EAAE,CAAC;QAC5C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACrC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAClC,SAAS;YACb,CAAC;YAED,MAAM,KAAK,GAAI,WAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBAChD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACZ,WAAW,CAAC,IAAI,CACZ,IAAA,eAAC,EACG,KAAK,EACL;wBACI,KAAK,EAAE;4BACH,OAAO,EAAE,QAAQ;4BACjB,aAAa,EAAE,QAAQ;4BACvB,MAAM,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;4BAC/B,KAAK,EAAE,MAAM;yBAChB;wBACD,GAAG,EAAE,WAAW;qBACnB,EACD,EAAE,CACL,CACJ,CAAC;gBACN,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAED,YAAY,GAAG,WAAW,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,eAAC,EACb,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,UAAU,EAEpB,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,UAAU,EAAE,OAAO,CAAC,UAAU,IAE3B,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD;QACI,IAAA,eAAC,EACG,KAAK,EACL;YACI,KAAK,EAAE;gBACH,QAAQ,EAAE,SAAS;gBACnB,YAAY,EAAE,WAAW;gBACzB,UAAU,EAAE,QAAQ;gBAEpB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;gBAC/B,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;gBAC3B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACrD,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"renderText.js","sourceRoot":"","sources":["../../../../src/lib/utils/renderText.ts"],"names":[],"mappings":"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"}
|
package/build/src/test.js
CHANGED
|
@@ -17,7 +17,7 @@ const lib_1 = require("./lib");
|
|
|
17
17
|
const result = yield lib_1.Template.new({
|
|
18
18
|
defaultFontFamily: 'branela',
|
|
19
19
|
defaultAssetsPath: 'assets',
|
|
20
|
-
color:
|
|
20
|
+
color: 0xc3c3c3ff,
|
|
21
21
|
})
|
|
22
22
|
.text({ key: 'title' }, {
|
|
23
23
|
left: 25,
|
|
@@ -29,6 +29,10 @@ const lib_1 = require("./lib");
|
|
|
29
29
|
size: 48,
|
|
30
30
|
family: 'blackflag',
|
|
31
31
|
},
|
|
32
|
+
border: {
|
|
33
|
+
width: 1,
|
|
34
|
+
color: 'red',
|
|
35
|
+
},
|
|
32
36
|
})
|
|
33
37
|
.font('assets/BlackFlag.ttf', 'blackflag')
|
|
34
38
|
.text({ key: 'subtitle' }, {
|
|
@@ -40,8 +44,12 @@ const lib_1 = require("./lib");
|
|
|
40
44
|
font: {
|
|
41
45
|
size: 38,
|
|
42
46
|
},
|
|
43
|
-
color: '
|
|
44
|
-
|
|
47
|
+
color: 'pink',
|
|
48
|
+
border: {
|
|
49
|
+
width: 2,
|
|
50
|
+
color: 'purple',
|
|
51
|
+
},
|
|
52
|
+
skip: entry => entry.title.toLowerCase() === 'luigi',
|
|
45
53
|
})
|
|
46
54
|
.font('assets/branela.otf', 'branela')
|
|
47
55
|
.image({ pathFn: entry => `${entry.title.toLowerCase()}.png` }, { left: 25, top: 225, width: 700, height: 700 }, {
|
|
@@ -61,7 +69,12 @@ const lib_1 = require("./lib");
|
|
|
61
69
|
.replace(['Fireball'], fireball)
|
|
62
70
|
.build(),
|
|
63
71
|
})
|
|
64
|
-
.hbox(() =>
|
|
72
|
+
.hbox(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
return [
|
|
74
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') }, options: { scale: 'keep-ratio' } },
|
|
75
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') }, options: { scale: 'keep-ratio' } },
|
|
76
|
+
];
|
|
77
|
+
}), {
|
|
65
78
|
left: 25,
|
|
66
79
|
top: 25,
|
|
67
80
|
width: 300,
|
|
@@ -69,7 +82,12 @@ const lib_1 = require("./lib");
|
|
|
69
82
|
}, {
|
|
70
83
|
gap: 100,
|
|
71
84
|
})
|
|
72
|
-
.vbox(() =>
|
|
85
|
+
.vbox(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
86
|
+
return [
|
|
87
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') }, options: { scale: 'stretch' } },
|
|
88
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') }, options: { scale: 'stretch' } },
|
|
89
|
+
];
|
|
90
|
+
}), {
|
|
73
91
|
left: 25,
|
|
74
92
|
top: 325,
|
|
75
93
|
width: 100,
|
|
@@ -78,11 +96,19 @@ const lib_1 = require("./lib");
|
|
|
78
96
|
scale: 'stretch',
|
|
79
97
|
gap: 50,
|
|
80
98
|
})
|
|
81
|
-
.grid(() =>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
99
|
+
.grid(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
100
|
+
return [
|
|
101
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
102
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
103
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
104
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
105
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
106
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
107
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
108
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
109
|
+
{ image: { buffer: yield luigi.clone().getBuffer('image/png') } },
|
|
110
|
+
];
|
|
111
|
+
}), {
|
|
86
112
|
left: 300,
|
|
87
113
|
top: 325,
|
|
88
114
|
width: 400,
|
package/build/src/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+BAA4B;AAC5B,+
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hellkite/pipkin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Library for board game card generation",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"types": "build/src/index.d.ts",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"lodash.camelcase": "^4.3.0",
|
|
21
21
|
"lodash.chunk": "^4.2.0",
|
|
22
22
|
"lodash.concat": "^4.5.0",
|
|
23
|
+
"lodash.flatten": "^4.4.0",
|
|
23
24
|
"lodash.merge": "^4.6.2",
|
|
24
25
|
"node-html-to-image": "^5.0.0",
|
|
25
26
|
"papaparse": "^5.5.2",
|
|
@@ -30,6 +31,7 @@
|
|
|
30
31
|
"@types/lodash.camelcase": "^4.3.9",
|
|
31
32
|
"@types/lodash.chunk": "^4.2.9",
|
|
32
33
|
"@types/lodash.concat": "^4.5.9",
|
|
34
|
+
"@types/lodash.flatten": "^4.4.9",
|
|
33
35
|
"@types/lodash.merge": "^4.6.9",
|
|
34
36
|
"@types/node": "^22.7.5",
|
|
35
37
|
"@types/papaparse": "^5.3.15",
|
package/roadmap.md
CHANGED
|
@@ -5,15 +5,16 @@
|
|
|
5
5
|
- [ ] Storage adaptors for fs, web, browser, s3, etc
|
|
6
6
|
- [ ] Draw geometry
|
|
7
7
|
- [ ] Noise/texture overlays
|
|
8
|
-
- [
|
|
8
|
+
- [x] Text border
|
|
9
9
|
|
|
10
10
|
### Bugfixes
|
|
11
11
|
- [x] Broken custom fonts
|
|
12
|
+
- [ ] keep-ration scale option seem broken
|
|
12
13
|
|
|
13
14
|
### Optimizations
|
|
14
15
|
- [ ] Optional image registry that reduce repeating loading of same images
|
|
15
16
|
- [ ] Stream processing support
|
|
16
|
-
- [
|
|
17
|
+
- [x] Overlay the entire card in HTML and render to image only once
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
### Quality of Life Improvements
|