@hellkite/pipkin 0.5.0 → 0.5.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.
Files changed (92) hide show
  1. package/build/src/lib/bundler.d.ts +1 -2
  2. package/build/src/lib/bundler.js.map +1 -1
  3. package/build/src/lib/replacement.d.ts +1 -2
  4. package/build/src/lib/replacement.js.map +1 -1
  5. package/build/src/lib/template.d.ts +13 -14
  6. package/build/src/lib/template.js +102 -37
  7. package/build/src/lib/template.js.map +1 -1
  8. package/build/src/lib/types/2d.d.ts +4 -5
  9. package/build/src/lib/types/boundingBox.d.ts +19 -0
  10. package/build/src/lib/types/boundingBox.js +3 -0
  11. package/build/src/lib/types/boundingBox.js.map +1 -0
  12. package/build/src/lib/types/containers.d.ts +13 -27
  13. package/build/src/lib/types/containers.js +3 -2
  14. package/build/src/lib/types/containers.js.map +1 -1
  15. package/build/src/lib/types/css.d.ts +4 -1
  16. package/build/src/lib/types/css.js +6 -3
  17. package/build/src/lib/types/css.js.map +1 -1
  18. package/build/src/lib/types/image.d.ts +17 -38
  19. package/build/src/lib/types/image.js +8 -2
  20. package/build/src/lib/types/image.js.map +1 -1
  21. package/build/src/lib/types/index.d.ts +3 -2
  22. package/build/src/lib/types/index.js +3 -2
  23. package/build/src/lib/types/index.js.map +1 -1
  24. package/build/src/lib/types/layer.d.ts +15 -0
  25. package/build/src/lib/types/layer.js +3 -0
  26. package/build/src/lib/types/layer.js.map +1 -0
  27. package/build/src/lib/types/position.d.ts +21 -0
  28. package/build/src/lib/types/position.js +42 -0
  29. package/build/src/lib/types/position.js.map +1 -0
  30. package/build/src/lib/types/scale.d.ts +9 -1
  31. package/build/src/lib/types/scale.js +2 -0
  32. package/build/src/lib/types/scale.js.map +1 -1
  33. package/build/src/lib/types/size.d.ts +4 -0
  34. package/build/src/lib/types/size.js +3 -0
  35. package/build/src/lib/types/size.js.map +1 -0
  36. package/build/src/lib/types/text.d.ts +29 -33
  37. package/build/src/lib/types/text.js +13 -4
  38. package/build/src/lib/types/text.js.map +1 -1
  39. package/build/src/lib/utils/buildFontString.d.ts +2 -2
  40. package/build/src/lib/utils/buildFontString.js.map +1 -1
  41. package/build/src/lib/utils/canvasToImage.d.ts +1 -1
  42. package/build/src/lib/utils/container.d.ts +4 -4
  43. package/build/src/lib/utils/container.js +52 -46
  44. package/build/src/lib/utils/container.js.map +1 -1
  45. package/build/src/lib/utils/drawBoundingBox.d.ts +1 -2
  46. package/build/src/lib/utils/drawBoundingBox.js +7 -47
  47. package/build/src/lib/utils/drawBoundingBox.js.map +1 -1
  48. package/build/src/lib/utils/htmlToImage.d.ts +3 -0
  49. package/build/src/lib/utils/htmlToImage.js +36 -0
  50. package/build/src/lib/utils/htmlToImage.js.map +1 -0
  51. package/build/src/lib/utils/index.d.ts +2 -1
  52. package/build/src/lib/utils/index.js +2 -1
  53. package/build/src/lib/utils/index.js.map +1 -1
  54. package/build/src/lib/utils/placeImage.d.ts +10 -5
  55. package/build/src/lib/utils/placeImage.js +25 -36
  56. package/build/src/lib/utils/placeImage.js.map +1 -1
  57. package/build/src/lib/utils/renderText.d.ts +3 -2
  58. package/build/src/lib/utils/renderText.js +12 -39
  59. package/build/src/lib/utils/renderText.js.map +1 -1
  60. package/build/src/lib/utils/toPx.d.ts +3 -0
  61. package/build/src/lib/utils/toPx.js +12 -0
  62. package/build/src/lib/utils/toPx.js.map +1 -0
  63. package/build/src/lib/utils/vNodeToImage.d.ts +4 -0
  64. package/build/src/lib/utils/vNodeToImage.js +36 -0
  65. package/build/src/lib/utils/vNodeToImage.js.map +1 -0
  66. package/build/src/test.js +55 -69
  67. package/build/src/test.js.map +1 -1
  68. package/package.json +6 -3
  69. package/roadmap.md +0 -1
  70. package/src/lib/bundler.ts +1 -2
  71. package/src/lib/replacement.ts +1 -2
  72. package/src/lib/template.ts +190 -68
  73. package/src/lib/types/boundingBox.ts +28 -0
  74. package/src/lib/types/containers.ts +55 -60
  75. package/src/lib/types/css.ts +32 -1
  76. package/src/lib/types/image.ts +32 -57
  77. package/src/lib/types/index.ts +3 -2
  78. package/src/lib/types/layer.ts +18 -0
  79. package/src/lib/types/scale.ts +11 -0
  80. package/src/lib/types/size.ts +4 -0
  81. package/src/lib/types/text.ts +47 -56
  82. package/src/lib/utils/buildFontString.ts +2 -2
  83. package/src/lib/utils/container.ts +118 -57
  84. package/src/lib/utils/drawBoundingBox.ts +19 -16
  85. package/src/lib/utils/htmlToImage.ts +24 -0
  86. package/src/lib/utils/index.ts +2 -1
  87. package/src/lib/utils/placeImage.ts +55 -58
  88. package/src/lib/utils/renderText.ts +19 -43
  89. package/src/lib/utils/toPx.ts +11 -0
  90. package/src/lib/types/2d.ts +0 -11
  91. package/src/lib/types/omitArgument.ts +0 -17
  92. package/src/lib/utils/canvasToImage.ts +0 -19
@@ -9,41 +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;
13
+ const virtual_dom_1 = require("virtual-dom");
14
+ const toPx_1 = require("./toPx");
15
+ const types_1 = require("../types");
16
+ const htmlToImage_1 = require("./htmlToImage");
17
+ const placeImage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ image, box, backgroundSize, options, }) {
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', {
21
+ 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);
36
+ });
12
37
  exports.placeImage = placeImage;
13
- const image_1 = require("../types/image");
14
- function computeOffsetFromAlignment(alignment, size, boxSize) {
15
- if (alignment === 'start') {
16
- return 0;
17
- }
18
- else if (alignment === 'center') {
19
- return Math.floor((boxSize - size) / 2);
20
- }
21
- else {
22
- return -(boxSize - size);
23
- }
24
- }
25
- function placeImage(_a) {
26
- return __awaiter(this, arguments, void 0, function* (
27
- // TODO: pass background size only
28
- { background, image, position }) {
29
- var _b, _c, _d, _e, _f;
30
- // handle alignment inside the bounding box
31
- const xAlignment = (_c = (_b = position.xAlignment) !== null && _b !== void 0 ? _b : position.alignment) !== null && _c !== void 0 ? _c : image_1.DEFAULT_IMAGE_ALIGNMENT;
32
- const yAlignment = (_e = (_d = position.yAlignment) !== null && _d !== void 0 ? _d : position.alignment) !== null && _e !== void 0 ? _e : image_1.DEFAULT_IMAGE_ALIGNMENT;
33
- const scale = (_f = position.scale) !== null && _f !== void 0 ? _f : image_1.DEFAULT_SCALE_MODE;
34
- if (scale === 'keep-ratio') {
35
- // TODO: handle case when box has a size equal to 0
36
- const ratio = Math.min(position.width / image.width, position.height / image.height);
37
- image.scale(ratio);
38
- }
39
- if (scale === 'stretch') {
40
- image.scaleToFit({ w: position.width, h: position.height });
41
- }
42
- const xOffset = position.x +
43
- computeOffsetFromAlignment(xAlignment, image.width, position.width);
44
- const yOffset = position.y +
45
- computeOffsetFromAlignment(yAlignment, image.height, position.height);
46
- return background.composite(image, xOffset, yOffset);
47
- });
48
- }
49
38
  //# sourceMappingURL=placeImage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"placeImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeImage.ts"],"names":[],"mappings":";;;;;;;;;;;AA+BA,gCAiCC;AA9DD,0CAOwB;AAExB,SAAS,0BAA0B,CAC/B,SAAoB,EACpB,IAAY,EACZ,OAAe;IAEf,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACb,CAAC;SAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC;AAQD,SAAsB,UAAU;;IAC5B,kCAAkC;IAClC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAmB;;QAEhD,2CAA2C;QAC3C,MAAM,UAAU,GACZ,MAAA,MAAA,QAAQ,CAAC,UAAU,mCAAI,QAAQ,CAAC,SAAS,mCAAI,+BAAuB,CAAC;QACzE,MAAM,UAAU,GACZ,MAAA,MAAA,QAAQ,CAAC,UAAU,mCAAI,QAAQ,CAAC,SAAS,mCAAI,+BAAuB,CAAC;QAEzE,MAAM,KAAK,GAAG,MAAA,QAAQ,CAAC,KAAK,mCAAI,0BAAkB,CAAC;QAEnD,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YACzB,mDAAmD;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAClB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAC5B,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CACjC,CAAC;YACF,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GACT,QAAQ,CAAC,CAAC;YACV,0BAA0B,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,OAAO,GACT,QAAQ,CAAC,CAAC;YACV,0BAA0B,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE1E,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;CAAA"}
1
+ {"version":3,"file":"placeImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeImage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,iCAAyC;AACzC,oCAKkB;AAClB,+CAA4C;AAUrC,MAAM,UAAU,GAAG,KAKyB,EAAE,4CALsB,EACvE,KAAK,EACL,GAAG,EACH,cAAc,EACd,OAAO,GACkB;IACzB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,gCAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,QAAQ,GAAG,IAAA,eAAC,EACd,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;QACI,IAAA,eAAC,EACG,KAAK,EACL;YACI,KAAK,EAAE;gBACH,SAAS;gBACT,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;aACpB;YACD,GAAG,EAAE,WAAW;SACnB,EACD,EAAE,CACL;KACJ,CACJ,CAAC;IAEF,OAAO,IAAA,yBAAW,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACjD,CAAC,CAAA,CAAA;AA3CY,QAAA,UAAU,cA2CtB"}
@@ -1,2 +1,3 @@
1
- import { ImageType, Size, TextLayerOptions, TextPosition } from '../types';
2
- export declare const renderText: (text: string, position: TextPosition, backgroundSize: Size, options?: TextLayerOptions) => Promise<ImageType>;
1
+ import { ImageType, BoundingBox, Size, TextLayerOptions } from '../types';
2
+ import { RequiredDeep } from 'type-fest';
3
+ export declare const renderText: <EntryType extends Record<string, string>>(text: string, box: BoundingBox, backgroundSize: Size, options: RequiredDeep<TextLayerOptions<EntryType>>) => Promise<ImageType>;
@@ -8,19 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.renderText = void 0;
16
13
  const virtual_dom_1 = require("virtual-dom");
17
- const types_1 = require("../types");
18
- const node_html_to_image_1 = __importDefault(require("node-html-to-image"));
19
- const jimp_1 = require("jimp");
20
- const renderText = (text, position, backgroundSize, options) => __awaiter(void 0, void 0, void 0, function* () {
21
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
14
+ const toPx_1 = require("./toPx");
15
+ const htmlToImage_1 = require("./htmlToImage");
16
+ const renderText = (text, box, backgroundSize, options) => __awaiter(void 0, void 0, void 0, function* () {
22
17
  let textChildren = [text];
23
- for (const [word, image] of Object.entries((_a = options === null || options === void 0 ? void 0 : options.replacement) !== null && _a !== void 0 ? _a : {})) {
18
+ for (const [word, image] of Object.entries(options.replacement)) {
24
19
  const regex = new RegExp(word, 'gi');
25
20
  const imageBase64 = yield image.getBase64('image/png');
26
21
  let tmpChildren = [];
@@ -35,7 +30,7 @@ const renderText = (text, position, backgroundSize, options) => __awaiter(void 0
35
30
  style: {
36
31
  display: 'inline',
37
32
  verticalAlign: 'middle',
38
- height: (0, types_1.toPx)((_c = (_b = options === null || options === void 0 ? void 0 : options.font) === null || _b === void 0 ? void 0 : _b.size) !== null && _c !== void 0 ? _c : 28), // TODO: use constant
33
+ height: (0, toPx_1.toPx)(options.font.size),
39
34
  width: 'auto',
40
35
  },
41
36
  src: imageBase64,
@@ -47,44 +42,22 @@ const renderText = (text, position, backgroundSize, options) => __awaiter(void 0
47
42
  textChildren = tmpChildren;
48
43
  }
49
44
  const document = (0, virtual_dom_1.h)('div', {
50
- style: {
51
- display: 'flex',
52
- overflow: 'visible',
53
- position: 'absolute',
54
- top: (0, types_1.toPx)(position.y),
55
- left: (0, types_1.toPx)(position.x),
56
- height: (0, types_1.toPx)(position.height),
57
- width: (0, types_1.toPx)(position.width),
58
- justifyContent: (_d = options === null || options === void 0 ? void 0 : options.xAlign) !== null && _d !== void 0 ? _d : types_1.DEFAULT_TEXT_LAYER_OPTIONS.xAlign,
59
- alignItems: (_e = options === null || options === void 0 ? void 0 : options.yAlign) !== null && _e !== void 0 ? _e : types_1.DEFAULT_TEXT_LAYER_OPTIONS.yAlign,
60
- },
45
+ style: Object.assign({ display: 'flex', overflow: 'visible', position: 'absolute', justifyContent: options.justifyContent, alignItems: options.alignItems }, (0, toPx_1.boundingBoxToPx)(box)),
61
46
  }, [
62
47
  (0, virtual_dom_1.h)('div', {
63
48
  style: {
64
49
  overflow: 'visible',
65
50
  overflowWrap: 'word-wrap',
66
51
  whiteSpace: 'normal',
67
- color: options === null || options === void 0 ? void 0 : options.color,
68
- fontFamily: (_f = options === null || options === void 0 ? void 0 : options.font) === null || _f === void 0 ? void 0 : _f.family,
69
- fontSize: (_g = options === null || options === void 0 ? void 0 : options.font) === null || _g === void 0 ? void 0 : _g.size,
70
- fontStyle: ((_h = options === null || options === void 0 ? void 0 : options.font) === null || _h === void 0 ? void 0 : _h.italic) ? 'italic' : undefined,
71
- fontWeight: ((_j = options === null || options === void 0 ? void 0 : options.font) === null || _j === void 0 ? void 0 : _j.bold) ? 'bold' : undefined,
52
+ color: options.color,
53
+ fontFamily: options.font.family,
54
+ fontSize: options.font.size,
55
+ fontStyle: options.font.italic ? 'italic' : undefined,
56
+ fontWeight: options.font.bold ? 'bold' : undefined,
72
57
  },
73
58
  }, textChildren),
74
59
  ]);
75
- const rootNode = (0, virtual_dom_1.create)(document);
76
- const image = yield (0, node_html_to_image_1.default)({
77
- html: rootNode.toString(),
78
- transparent: true,
79
- type: 'png',
80
- puppeteerArgs: {
81
- defaultViewport: {
82
- width: backgroundSize.width,
83
- height: backgroundSize.height,
84
- },
85
- },
86
- });
87
- return jimp_1.Jimp.read(image);
60
+ return (0, htmlToImage_1.htmlToImage)(document, backgroundSize);
88
61
  });
89
62
  exports.renderText = renderText;
90
63
  //# sourceMappingURL=renderText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderText.js","sourceRoot":"","sources":["../../../../src/lib/utils/renderText.ts"],"names":[],"mappings":"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"}
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,EAChC,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,QAAQ,GAAG,IAAA,eAAC,EACd,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;aACrD;SACJ,EACD,YAAY,CACf;KACJ,CACJ,CAAC;IAEF,OAAO,IAAA,yBAAW,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACjD,CAAC,CAAA,CAAC;AA/EW,QAAA,UAAU,cA+ErB"}
@@ -0,0 +1,3 @@
1
+ import { BoundingBox } from '../types';
2
+ export declare const toPx: (value: number) => string;
3
+ export declare const boundingBoxToPx: (boundingBox: BoundingBox) => Record<string, string>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.boundingBoxToPx = exports.toPx = void 0;
4
+ const toPx = (value) => `${value}px`;
5
+ exports.toPx = toPx;
6
+ const boundingBoxToPx = (boundingBox) => {
7
+ return Object.entries(boundingBox)
8
+ .map(([key, value]) => [key, (0, exports.toPx)(value)])
9
+ .reduce((acc, [key, value]) => (Object.assign(Object.assign({}, acc), { [key]: value })), {});
10
+ };
11
+ exports.boundingBoxToPx = boundingBoxToPx;
12
+ //# sourceMappingURL=toPx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toPx.js","sourceRoot":"","sources":["../../../../src/lib/utils/toPx.ts"],"names":[],"mappings":";;;AAEO,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;AAA/C,QAAA,IAAI,QAA2C;AAErD,MAAM,eAAe,GAAG,CAC3B,WAAwB,EACF,EAAE;IACxB,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAA,YAAI,EAAC,KAAK,CAAC,CAAC,CAAC;SACzC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAG,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B"}
@@ -0,0 +1,4 @@
1
+ import { ImageType } from '../types/image';
2
+ import { VNode } from 'virtual-dom';
3
+ import { Size } from '../types';
4
+ export declare const vNodeToImage: (document: VNode, backgroundSize: Size) => Promise<ImageType>;
@@ -0,0 +1,36 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.vNodeToImage = void 0;
16
+ const virtual_dom_1 = require("virtual-dom");
17
+ const node_html_to_image_1 = __importDefault(require("node-html-to-image"));
18
+ const jimp_1 = require("jimp");
19
+ const vNodeToImage = (document, backgroundSize) => __awaiter(void 0, void 0, void 0, function* () {
20
+ const html = (0, virtual_dom_1.create)(document).toString();
21
+ // TODO: extract this in a dif function
22
+ const image = yield (0, node_html_to_image_1.default)({
23
+ html,
24
+ transparent: true,
25
+ type: 'png',
26
+ puppeteerArgs: {
27
+ defaultViewport: {
28
+ width: backgroundSize.width,
29
+ height: backgroundSize.height,
30
+ },
31
+ },
32
+ });
33
+ return jimp_1.Jimp.read(image);
34
+ });
35
+ exports.vNodeToImage = vNodeToImage;
36
+ //# sourceMappingURL=vNodeToImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vNodeToImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/vNodeToImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,6CAA6D;AAC7D,4EAAiD;AACjD,+BAA4B;AAGrB,MAAM,YAAY,GAAG,CACxB,QAAe,EACf,cAAoB,EACF,EAAE;IACpB,MAAM,IAAI,GAAG,IAAA,oBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,uCAAuC;IACvC,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAe,EAAC;QAChC,IAAI;QACJ,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,KAAK;QACX,aAAa,EAAE;YACX,eAAe,EAAE;gBACb,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,MAAM,EAAE,cAAc,CAAC,MAAM;aAChC;SACJ;KACJ,CAAC,CAAC;IACH,OAAO,WAAI,CAAC,IAAI,CAAC,KAAe,CAAuB,CAAC;AAC5D,CAAC,CAAA,CAAC;AAlBW,QAAA,YAAY,gBAkBvB"}
package/build/src/test.js CHANGED
@@ -10,111 +10,97 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const jimp_1 = require("jimp");
13
- const bundler_1 = require("./lib/bundler");
14
- const replacement_1 = require("./lib/replacement");
15
- const template_1 = require("./lib/template");
13
+ const lib_1 = require("./lib");
16
14
  (() => __awaiter(void 0, void 0, void 0, function* () {
17
15
  const fireball = (yield jimp_1.Jimp.read('assets/fireball.png'));
18
16
  const luigi = (yield jimp_1.Jimp.read('assets/luigi.png'));
19
- const result = yield template_1.Template.new({
17
+ const result = yield lib_1.Template.new({
20
18
  defaultFontFamily: 'branela',
21
19
  defaultAssetsPath: 'assets',
20
+ color: 0xC3C3C3FF,
22
21
  })
23
- .text({
24
- key: 'subtitle',
25
- position: {
26
- x: 25,
27
- y: 25,
28
- width: 700,
29
- height: 100,
30
- },
31
- options: {
32
- font: {
33
- size: 48,
34
- family: 'blackflag',
35
- },
22
+ .text({ key: 'title' }, {
23
+ left: 25,
24
+ top: 25,
25
+ width: 700,
26
+ height: 100,
27
+ }, {
28
+ font: {
29
+ size: 48,
30
+ family: 'blackflag',
36
31
  },
37
32
  })
38
33
  .font('assets/BlackFlag.ttf', 'blackflag')
39
- .text({
40
- key: 'subtitle',
41
- position: {
42
- x: 25,
43
- y: 125,
44
- width: 700,
45
- height: 100,
46
- },
47
- options: {
48
- font: {
49
- size: 38,
50
- },
51
- color: 'purple',
34
+ .text({ key: 'subtitle' }, {
35
+ left: 25,
36
+ top: 125,
37
+ width: 700,
38
+ height: 100,
39
+ }, {
40
+ font: {
41
+ size: 38,
52
42
  },
43
+ color: 'purple',
44
+ skip: (entry) => entry.title.toLowerCase() === 'luigi'
53
45
  })
54
46
  .font('assets/branela.otf', 'branela')
55
- .image({
56
- key: 'title',
57
- position: {
58
- x: 25,
59
- y: 225,
60
- width: 700,
61
- height: 700,
62
- scale: 'stretch',
63
- },
64
- options: {
65
- assetsPath: 'assets',
66
- pathFn: (title) => `${title.toLowerCase()}.png`,
67
- },
47
+ .image({ pathFn: entry => `${entry.title.toLowerCase()}.png` }, { left: 25, top: 225, width: 700, height: 700 }, {
48
+ scale: 'stretch',
49
+ assetsPath: 'assets',
68
50
  })
69
- .text({
70
- key: 'effect',
71
- position: {
72
- x: 75,
73
- y: 900,
74
- width: 600,
75
- height: 150,
76
- },
77
- options: {
78
- font: {
79
- size: 32,
80
- },
81
- replacement: new replacement_1.Replacement()
82
- .replace(['Fireball'], fireball)
83
- .build(),
51
+ .text({ key: 'effect' }, {
52
+ left: 75,
53
+ top: 900,
54
+ width: 600,
55
+ height: 150,
56
+ }, {
57
+ font: {
58
+ size: 32,
84
59
  },
60
+ replacement: new lib_1.Replacement()
61
+ .replace(['Fireball'], fireball)
62
+ .build(),
85
63
  })
86
64
  .hbox(() => Promise.resolve([luigi.clone(), luigi.clone()]), {
87
- x: 25,
88
- y: 25,
65
+ left: 25,
66
+ top: 25,
89
67
  width: 300,
90
68
  height: 300,
91
69
  }, {
92
70
  gap: 100,
93
71
  })
94
72
  .vbox(() => Promise.resolve([luigi.clone(), luigi.clone()]), {
95
- x: 25,
96
- y: 325,
73
+ left: 25,
74
+ top: 325,
97
75
  width: 100,
98
76
  height: 600,
99
77
  }, {
100
78
  scale: 'stretch',
101
79
  gap: 50,
102
80
  })
103
- .vbox(() => Promise.resolve([luigi.clone(), luigi.clone()]), {
104
- x: 300,
105
- y: 325,
106
- width: 100,
81
+ .grid(() => Promise.resolve([
82
+ luigi.clone(), luigi.clone(), luigi.clone(),
83
+ luigi.clone(), luigi.clone(), luigi.clone(),
84
+ luigi.clone(), luigi.clone(), luigi.clone(),
85
+ ]), {
86
+ left: 300,
87
+ top: 325,
88
+ width: 400,
107
89
  height: 600,
108
90
  }, {
109
- scale: 'keep-ratio',
110
- gap: 50,
91
+ scale: 'stretch',
92
+ gap: 10,
93
+ alignItems: 'flex-start',
94
+ justifyContent: 'flex-start',
95
+ skip: true,
111
96
  })
97
+ .debug()
112
98
  .fromCsv('assets/data.csv', {
113
99
  duplication: {
114
100
  countField: 'copies',
115
101
  },
116
102
  });
117
- yield Promise.all(bundler_1.Bundler.new()
103
+ yield Promise.all(lib_1.Bundler.new()
118
104
  .bundle(result)
119
105
  .map((r, index) => r.write(`assets/test-${index + 1}.png`)));
120
106
  }))();
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/test.ts"],"names":[],"mappings":"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"}
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.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "Library for board game card generation",
5
5
  "main": "build/src/index.js",
6
6
  "types": "build/src/index.d.ts",
@@ -16,11 +16,11 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "canvas": "^3.1.0",
19
- "fabric": "^6.6.1",
20
- "html2canvas": "^1.4.1",
21
19
  "jimp": "^1.6.0",
22
20
  "lodash.camelcase": "^4.3.0",
21
+ "lodash.chunk": "^4.2.0",
23
22
  "lodash.concat": "^4.5.0",
23
+ "lodash.merge": "^4.6.2",
24
24
  "node-html-to-image": "^5.0.0",
25
25
  "papaparse": "^5.5.2",
26
26
  "ts-node": "^10.9.2",
@@ -28,11 +28,14 @@
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/lodash.camelcase": "^4.3.9",
31
+ "@types/lodash.chunk": "^4.2.9",
31
32
  "@types/lodash.concat": "^4.5.9",
33
+ "@types/lodash.merge": "^4.6.9",
32
34
  "@types/node": "^22.7.5",
33
35
  "@types/papaparse": "^5.3.15",
34
36
  "@types/virtual-dom": "^2.1.4",
35
37
  "gts": "^6.0.2",
38
+ "type-fest": "^4.40.0",
36
39
  "typescript": "^5.6.3"
37
40
  }
38
41
  }
package/roadmap.md CHANGED
@@ -17,4 +17,3 @@
17
17
  ### Quality of Life Improvements
18
18
  - [ ] Expose logging, warnings, stats and progress status data
19
19
  - [ ] Runtime resource configuration
20
-
@@ -1,6 +1,5 @@
1
1
  import { Jimp } from 'jimp';
2
- import { Size } from './types/2d';
3
- import { ImageType } from './types/image';
2
+ import { Size, ImageType } from './types';
4
3
 
5
4
  type RequiredBundlerOptions = {
6
5
  size: Size;
@@ -1,5 +1,4 @@
1
- import { ImageType } from "./types/image";
2
- import { ReplacementMap } from "./types/replacement";
1
+ import { ReplacementMap, ImageType } from "./types";
3
2
 
4
3
  /**
5
4
  * Represents a replacement map between sets of words and symbols