@hellkite/pipkin 0.8.0 → 0.8.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 (53) hide show
  1. package/build/src/lib/bundler.js.map +1 -1
  2. package/build/src/lib/index.d.ts +0 -1
  3. package/build/src/lib/index.js +0 -1
  4. package/build/src/lib/index.js.map +1 -1
  5. package/build/src/lib/template.d.ts +18 -6
  6. package/build/src/lib/template.js +49 -10
  7. package/build/src/lib/template.js.map +1 -1
  8. package/build/src/lib/types/hypernode.d.ts +1 -1
  9. package/build/src/lib/types/index.d.ts +1 -0
  10. package/build/src/lib/types/index.js +1 -0
  11. package/build/src/lib/types/index.js.map +1 -1
  12. package/build/src/lib/types/layer.d.ts +5 -2
  13. package/build/src/lib/types/layer.js.map +1 -1
  14. package/build/src/lib/types/pdf.d.ts +1 -0
  15. package/build/src/lib/types/pdf.js +3 -0
  16. package/build/src/lib/types/pdf.js.map +1 -0
  17. package/build/src/lib/types/text.d.ts +1 -1
  18. package/build/src/lib/utils/container.js.map +1 -1
  19. package/build/src/lib/utils/htmlToImage.js +0 -1
  20. package/build/src/lib/utils/htmlToImage.js.map +1 -1
  21. package/build/src/lib/utils/imagesToPdf.d.ts +2 -0
  22. package/build/src/lib/utils/imagesToPdf.js +31 -0
  23. package/build/src/lib/utils/imagesToPdf.js.map +1 -0
  24. package/build/src/lib/utils/index.d.ts +1 -0
  25. package/build/src/lib/utils/index.js +1 -0
  26. package/build/src/lib/utils/index.js.map +1 -1
  27. package/build/src/lib/utils/placeBoundingBox.js +11 -3
  28. package/build/src/lib/utils/placeBoundingBox.js.map +1 -1
  29. package/build/src/lib/utils/reduceBoundingBox.d.ts +2 -0
  30. package/build/src/lib/utils/reduceBoundingBox.js +16 -0
  31. package/build/src/lib/utils/reduceBoundingBox.js.map +1 -0
  32. package/build/src/test.js +43 -9
  33. package/build/src/test.js.map +1 -1
  34. package/package.json +2 -1
  35. package/roadmap.md +1 -1
  36. package/src/lib/bundler.ts +1 -1
  37. package/src/lib/index.ts +0 -1
  38. package/src/lib/template.ts +67 -16
  39. package/src/lib/types/containers.ts +1 -1
  40. package/src/lib/types/hypernode.ts +1 -2
  41. package/src/lib/types/index.ts +1 -0
  42. package/src/lib/types/layer.ts +10 -2
  43. package/src/lib/types/pdf.ts +1 -0
  44. package/src/lib/types/render.ts +2 -4
  45. package/src/lib/types/template.ts +1 -1
  46. package/src/lib/types/text.ts +1 -1
  47. package/src/lib/utils/container.ts +0 -1
  48. package/src/lib/utils/htmlToImage.ts +0 -1
  49. package/src/lib/utils/imagesToPdf.ts +24 -0
  50. package/src/lib/utils/index.ts +1 -0
  51. package/src/lib/utils/placeBoundingBox.ts +33 -13
  52. package/src/lib/utils/reduceBoundingBox.ts +21 -0
  53. package/src/lib/replacement.ts +0 -22
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/lib/bundler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/lib/bundler.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAS5B,MAAM,iBAAiB,GAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAE9D,MAAM,iBAAiB,GAAS,iBAAiB,CAAC;AAElD,MAAM,uBAAuB,GAA2B;IACpD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;CACV,CAAC;AA6BF;;;;GAIG;AACH,MAAa,OAAO;IAChB,sCAAsC;IACtC,YAAqC,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAEhE,MAAM,CAAC,GAAG,CAAC,OAAiC;QACxC,OAAO,IAAI,OAAO,iCACX,uBAAuB,GACvB,OAAO,EACZ,CAAC;IACP,CAAC;IAED,MAAM,CAAC,MAAwB;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3D,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,YAAY,EAAE,CAAC;YACnE,OAAO,CAAC,IAAI,CACR,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAC/D,CAAC;QACN,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,UAAU,CAAC,MAAwB;;QACvC,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;YAChC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;YAC9B,KAAK,EAAE,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,mCAAI,UAAU;SAC5C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAS;YACnB,KAAK,EACD,CAAC,IAAI,CAAC,KAAK;gBACP,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI;YACrB,MAAM,EACF,CAAC,IAAI,CAAC,MAAM;gBACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI;SACxB,CAAC;QACF,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC9D,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;gBAC9D,MAAM,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;gBACD,KAAK,CAAC,UAAU,CAAC;oBACb,CAAC,EAAE,QAAQ,CAAC,KAAK;oBACjB,CAAC,EAAE,QAAQ,CAAC,MAAM;iBACrB,CAAC,CAAC;gBACH,MAAM,OAAO,GACT,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;oBACvB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC9B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC9B,MAAM,OAAO,GACT,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;oBACtB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC9B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,SAA2B;;QACtC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,CACH,MAAA,CAAC,SAAS,KAAK,MAAM;gBACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;gBACvB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,CAAC,CACpC,CAAC;QACN,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAEO,UAAU,CAAC,SAA2B;;QAC1C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClD,IACI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC9B,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAChC,CAAC;gBACC,QAAQ,SAAS,EAAE,CAAC;oBAChB,KAAK,KAAK,CAAC;oBACX,KAAK,QAAQ;wBACT,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,mCAAI,CAAC,CAAC;oBAC1C,KAAK,OAAO,CAAC;oBACb,KAAK,MAAM;wBACP,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,mCAAI,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,MAAC,IAAI,CAAC,OAAO,CAAC,OAAsB,CAAC,SAAS,CAAC,mCAAI,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;CACJ;AAtGD,0BAsGC"}
@@ -1,5 +1,4 @@
1
1
  export * from './template';
2
2
  export * from './bundler';
3
- export * from './replacement';
4
3
  export * from './types';
5
4
  export * from './utils';
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./template"), exports);
18
18
  __exportStar(require("./bundler"), exports);
19
- __exportStar(require("./replacement"), exports);
20
19
  __exportStar(require("./types"), exports);
21
20
  __exportStar(require("./utils"), exports);
22
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,gDAA8B;AAC9B,0CAAwB;AACxB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB"}
@@ -1,16 +1,21 @@
1
1
  import * as fs from 'fs';
2
- import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions, HyperNode, ElementsFn, TemplateOptions } from './types';
3
- export type LayerFnContext = {};
4
- export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<Array<HyperNode>>;
2
+ import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions, ElementsFn, StaticImageRef, TemplateOptions, LayerFn, ReplacementMap } from './types';
5
3
  export type TemplateLayerFn<EntryType extends Record<string, string>> = (template: Template<EntryType>) => Template<EntryType>;
6
4
  export declare class Template<EntryType extends Record<string, string>> {
7
- private readonly fonts;
8
- private readonly layers;
9
- private readonly debugPoints;
5
+ /**
6
+ * Template data
7
+ */
10
8
  private readonly background;
9
+ private readonly layers;
10
+ private readonly fonts;
11
11
  private renderBoundingBox?;
12
12
  private defaultFontFamily?;
13
13
  private defaultAssetsPath?;
14
+ /**
15
+ * Render data
16
+ */
17
+ private readonly debugPoints;
18
+ private bundler?;
14
19
  private constructor();
15
20
  static new<EntryType extends Record<string, string>>(options?: Partial<TemplateOptions>): Template<EntryType>;
16
21
  private shadowTemplate;
@@ -39,3 +44,10 @@ export declare class Template<EntryType extends Record<string, string>> {
39
44
  private placeImage;
40
45
  private prepareImage;
41
46
  }
47
+ /**
48
+ * Represents a replacement map between sets of words and symbols
49
+ */
50
+ export declare class Replacement {
51
+ protected readonly replacementMap: ReplacementMap;
52
+ replace(words: Array<string>, symbol: StaticImageRef): this;
53
+ }
@@ -45,7 +45,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
45
45
  return (mod && mod.__esModule) ? mod : { "default": mod };
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.Template = void 0;
48
+ exports.Replacement = exports.Template = void 0;
49
49
  const fs = __importStar(require("fs"));
50
50
  const papaparse_1 = require("papaparse");
51
51
  const jimp_1 = require("jimp");
@@ -57,12 +57,14 @@ const types_1 = require("./types");
57
57
  const lodash_merge_1 = __importDefault(require("lodash.merge"));
58
58
  const virtual_dom_1 = require("virtual-dom");
59
59
  const lodash_flatten_1 = __importDefault(require("lodash.flatten"));
60
- const replacement_1 = require("./replacement");
61
60
  class Template {
62
61
  // disallow constructor initialization
63
62
  constructor(options) {
64
- this.fonts = {};
65
63
  this.layers = [];
64
+ this.fonts = {};
65
+ /**
66
+ * Render data
67
+ */
66
68
  this.debugPoints = [];
67
69
  this.template = (fn) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
68
70
  const template = fn(this.shadowTemplate());
@@ -142,7 +144,9 @@ class Template {
142
144
  return [result];
143
145
  }));
144
146
  this.debug = () => {
145
- this.debugPoints.push(this.layers.length);
147
+ this.debugPoints.push({
148
+ index: this.layers.length,
149
+ });
146
150
  return this;
147
151
  };
148
152
  this.imageFromImageRef = (entry, ref, assetsPath) => __awaiter(this, void 0, void 0, function* () {
@@ -235,7 +239,7 @@ class Template {
235
239
  });
236
240
  this.prepareText = (_a) => __awaiter(this, [_a], void 0, function* ({ text, options, }) {
237
241
  let textChildren = [text];
238
- const replacementBuilder = new replacement_1.ReplacementBuilder();
242
+ const replacementBuilder = new ReplacementBuilder();
239
243
  options.replacementFn(replacementBuilder);
240
244
  const replacementMap = replacementBuilder.build();
241
245
  for (const [word, imageRef] of Object.entries(replacementMap)) {
@@ -243,7 +247,7 @@ class Template {
243
247
  const textOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, { assetsPath: this.defaultAssetsPath }, options);
244
248
  const image = yield this.imageFromStaticImageRef(imageRef, textOptions.assetsPath);
245
249
  const imageBase64 = yield image.getBase64('image/png');
246
- let tmpChildren = [];
250
+ const tmpChildren = [];
247
251
  for (const textSegment of textChildren) {
248
252
  if (typeof textSegment !== 'string') {
249
253
  continue;
@@ -339,19 +343,34 @@ class Template {
339
343
  })));
340
344
  const buildDocument = (children) => (0, virtual_dom_1.h)('html', [
341
345
  (0, virtual_dom_1.h)('head', [
342
- (0, virtual_dom_1.h)('style', Object.entries(this.fonts)
346
+ (0, virtual_dom_1.h)('style',
347
+ // load fonts
348
+ Object.entries(this.fonts)
343
349
  .map(([name, data]) => `@font-face {
344
350
  font-family: '${name}';
345
351
  src: url(data:font/ttf;base64,${data}) format('truetype');
346
352
  }`)
347
353
  .join('\n')),
348
354
  ]),
349
- (0, virtual_dom_1.h)('body', children),
355
+ // fix chromium headless padding issue
356
+ (0, virtual_dom_1.h)('body', {
357
+ style: {
358
+ margin: 0,
359
+ },
360
+ }, [
361
+ (0, virtual_dom_1.h)('div', {
362
+ style: {
363
+ marginLeft: '-8px',
364
+ },
365
+ }, children),
366
+ ]),
350
367
  ]);
351
368
  // TODO: move it to a proper place
352
369
  for (const debugPoint of this.debugPoints) {
353
- const debugRender = yield (0, utils_1.htmlToImage)(buildDocument((0, lodash_flatten_1.default)(results.slice(0, debugPoint))), this.backgroundSize);
354
- const debugImage = yield this.background.clone().composite(debugRender);
370
+ const debugRender = yield (0, utils_1.htmlToImage)(buildDocument((0, lodash_flatten_1.default)(results.slice(0, debugPoint.index))), this.backgroundSize);
371
+ const debugImage = yield this.background
372
+ .clone()
373
+ .composite(debugRender);
355
374
  yield debugImage.write('assets/debug-1.png');
356
375
  }
357
376
  const render = yield (0, utils_1.htmlToImage)(buildDocument((0, lodash_flatten_1.default)(results)), this.backgroundSize);
@@ -399,4 +418,24 @@ class Template {
399
418
  }
400
419
  }
401
420
  exports.Template = Template;
421
+ /**
422
+ * Represents a replacement map between sets of words and symbols
423
+ */
424
+ class Replacement {
425
+ constructor() {
426
+ this.replacementMap = {};
427
+ }
428
+ replace(words, symbol) {
429
+ words.forEach(word => {
430
+ this.replacementMap[word] = symbol;
431
+ });
432
+ return this;
433
+ }
434
+ }
435
+ exports.Replacement = Replacement;
436
+ class ReplacementBuilder extends Replacement {
437
+ build() {
438
+ return this.replacementMap;
439
+ }
440
+ }
402
441
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { VNode } from "virtual-dom";
1
+ import { VNode } from 'virtual-dom';
2
2
  export type HyperNode = VNode;
@@ -10,3 +10,4 @@ export * from './css';
10
10
  export * from './layer';
11
11
  export * from './hypernode';
12
12
  export * from './template';
13
+ export * from './pdf';
@@ -26,4 +26,5 @@ __exportStar(require("./css"), exports);
26
26
  __exportStar(require("./layer"), exports);
27
27
  __exportStar(require("./hypernode"), exports);
28
28
  __exportStar(require("./template"), exports);
29
+ __exportStar(require("./pdf"), exports);
29
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,gDAA8B;AAC9B,wCAAsB;AACtB,0CAAwB;AACxB,8CAA4B;AAC5B,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,gDAA8B;AAC9B,wCAAsB;AACtB,0CAAwB;AACxB,8CAA4B;AAC5B,6CAA2B;AAC3B,wCAAsB"}
@@ -1,5 +1,6 @@
1
- import { RequiredDeep } from "type-fest";
2
- import { JustifyContent, AlignItems } from "./css";
1
+ import { RequiredDeep } from 'type-fest';
2
+ import { JustifyContent, AlignItems } from './css';
3
+ import { HyperNode } from './hypernode';
3
4
  export type LayerOptions<EntryType extends Record<string, string>> = {
4
5
  /**
5
6
  * default `center`
@@ -19,3 +20,5 @@ export type LayerOptions<EntryType extends Record<string, string>> = {
19
20
  renderBoundingBox?: boolean;
20
21
  };
21
22
  export declare const DEFAULT_LAYER_OPTIONS: RequiredDeep<LayerOptions<Record<string, string>>>;
23
+ export type LayerFnContext = {};
24
+ export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<Array<HyperNode>>;
@@ -1 +1 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../../src/lib/types/layer.ts"],"names":[],"mappings":";;;AAyBa,QAAA,qBAAqB,GAE9B;IACA,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,KAAK;IACX,iBAAiB,EAAE,KAAK;CAC3B,CAAC"}
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../../src/lib/types/layer.ts"],"names":[],"mappings":";;;AA0Ba,QAAA,qBAAqB,GAE9B;IACA,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,KAAK;IACX,iBAAiB,EAAE,KAAK;CAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ export type PDFData = Uint8Array<ArrayBufferLike>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../../src/lib/types/pdf.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import type { RequiredDeep } from 'type-fest';
2
2
  import { LayerOptions } from './layer';
3
- import { Replacement } from '../replacement';
3
+ import { Replacement } from '../template';
4
4
  /**
5
5
  * Static text -> `text`
6
6
  * Dynamic text -> `key`, `textFn`
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAgC;AAChC,oCASkB;AAClB,iCAA+C;AAC/C,gEAAiC;AACjC,gEAAiC;AAE1B,MAAM,aAAa,GACtB,CACI,OAA8C,EACrC,EAAE,CACf,CAAC,GAAgB,EAAE,QAA0B,EAAE,EAAE,CAC7C,oBAAoB,CAAC;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ;IACR,GAAG;IACH,OAAO;CACV,CAAC,CAAC;AAVE,QAAA,aAAa,iBAUf;AAEJ,MAAM,aAAa,GACtB,CACI,OAA8C,EACrC,EAAE,CACf,CAAC,GAAgB,EAAE,QAA0B,EAAE,EAAE,CAC7C,oBAAoB,CAAC;IACjB,UAAU,EAAE,KAAK;IACjB,QAAQ;IACR,GAAG;IACH,OAAO;CACV,CAAC,CAAC;AAVE,QAAA,aAAa,iBAUf;AAEJ,MAAM,aAAa,GACtB,CACI,OAAyC,EAChC,EAAE,CACf,CAAO,GAAgB,EAAE,QAA0B,EAAE,EAAE;IACnD,MAAM,aAAa,GAAG,IAAA,sBAAK,EACvB,EAAE,EACF,sCAA8B,EAC9B,OAAO,CACV,CAAC;IAEF,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,MAAM,IAAI,IAAA,sBAAK,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACN,IAAA,eAAC,EACG,KAAK,EACL;YACI,KAAK,EAAE;gBACH,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,QAAQ;gBAElB,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC;gBAC5B,cAAc,EAAE,aAAa,CAAC,cAAc;gBAC5C,UAAU,EAAE,aAAa,CAAC,UAAU;aACvC;SACJ,EACD,MAAM,CACT,CACJ,CAAC;IACN,CAAC;IACD,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,UAAU,aAAa,CAAC,IAAI,QAAQ,EACzD,QAAQ,EAAE,UAAU,EAEpB,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC,IACzB,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,KAAK,CACR,CAAC;AACN,CAAC,CAAA,CAAC;AA7CO,QAAA,aAAa,iBA6CpB;AAEN,MAAM,oBAAoB,GAAG,KAUN,EAAE,4CAVqD,EAC1E,UAAU,EACV,QAAQ,EACR,GAAG,EACH,OAAO,GAMV;IACG,MAAM,aAAa,GAAG,IAAA,sBAAK,EACvB,EAAE,EACF,2CAAmC,EACnC,OAAO,CACV,CAAC;IAEF,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,CAAC,EAER,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAC7F,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC,EAC5B,cAAc,EAAE,aAAa,CAAC,cAAc,EAC5C,UAAU,EAAE,aAAa,CAAC,UAAU,IAEjC,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,QAAQ,CACX,CAAC;AACN,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAgC;AAChC,oCAQkB;AAClB,iCAA+C;AAC/C,gEAAiC;AACjC,gEAAiC;AAE1B,MAAM,aAAa,GACtB,CACI,OAA8C,EACrC,EAAE,CACf,CAAC,GAAgB,EAAE,QAA0B,EAAE,EAAE,CAC7C,oBAAoB,CAAC;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ;IACR,GAAG;IACH,OAAO;CACV,CAAC,CAAC;AAVE,QAAA,aAAa,iBAUf;AAEJ,MAAM,aAAa,GACtB,CACI,OAA8C,EACrC,EAAE,CACf,CAAC,GAAgB,EAAE,QAA0B,EAAE,EAAE,CAC7C,oBAAoB,CAAC;IACjB,UAAU,EAAE,KAAK;IACjB,QAAQ;IACR,GAAG;IACH,OAAO;CACV,CAAC,CAAC;AAVE,QAAA,aAAa,iBAUf;AAEJ,MAAM,aAAa,GACtB,CACI,OAAyC,EAChC,EAAE,CACf,CAAO,GAAgB,EAAE,QAA0B,EAAE,EAAE;IACnD,MAAM,aAAa,GAAG,IAAA,sBAAK,EACvB,EAAE,EACF,sCAA8B,EAC9B,OAAO,CACV,CAAC;IAEF,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,MAAM,IAAI,IAAA,sBAAK,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACN,IAAA,eAAC,EACG,KAAK,EACL;YACI,KAAK,EAAE;gBACH,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,QAAQ;gBAElB,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC;gBAC5B,cAAc,EAAE,aAAa,CAAC,cAAc;gBAC5C,UAAU,EAAE,aAAa,CAAC,UAAU;aACvC;SACJ,EACD,MAAM,CACT,CACJ,CAAC;IACN,CAAC;IACD,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,UAAU,aAAa,CAAC,IAAI,QAAQ,EACzD,QAAQ,EAAE,UAAU,EAEpB,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC,IACzB,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,KAAK,CACR,CAAC;AACN,CAAC,CAAA,CAAC;AA7CO,QAAA,aAAa,iBA6CpB;AAEN,MAAM,oBAAoB,GAAG,KAUN,EAAE,4CAVqD,EAC1E,UAAU,EACV,QAAQ,EACR,GAAG,EACH,OAAO,GAMV;IACG,MAAM,aAAa,GAAG,IAAA,sBAAK,EACvB,EAAE,EACF,2CAAmC,EACnC,OAAO,CACV,CAAC;IAEF,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,CAAC,EAER,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAC7F,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC,EAC5B,cAAc,EAAE,aAAa,CAAC,cAAc,EAC5C,UAAU,EAAE,aAAa,CAAC,UAAU,IAEjC,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,QAAQ,CACX,CAAC;AACN,CAAC,CAAA,CAAC"}
@@ -26,7 +26,6 @@ const htmlToImage = (document, backgroundSize) => __awaiter(void 0, void 0, void
26
26
  defaultViewport: {
27
27
  width: backgroundSize.width,
28
28
  height: backgroundSize.height,
29
- deviceScaleFactor: 1,
30
29
  },
31
30
  },
32
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"htmlToImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/htmlToImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAsD;AACtD,4EAAiD;AACjD,+BAA4B;AAGrB,MAAM,WAAW,GAAG,CACvB,QAAmB,EACnB,cAAoB,EACF,EAAE;IACpB,MAAM,IAAI,GAAG,IAAA,oBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,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;gBAC7B,iBAAiB,EAAE,CAAC;aACvB;SACJ;KACJ,CAAC,CAAC;IACH,OAAO,WAAI,CAAC,IAAI,CAAC,KAAe,CAAuB,CAAC;AAC5D,CAAC,CAAA,CAAC;AAlBW,QAAA,WAAW,eAkBtB"}
1
+ {"version":3,"file":"htmlToImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/htmlToImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAsD;AACtD,4EAAiD;AACjD,+BAA4B;AAGrB,MAAM,WAAW,GAAG,CACvB,QAAmB,EACnB,cAAoB,EACF,EAAE;IACpB,MAAM,IAAI,GAAG,IAAA,oBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,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;AAjBW,QAAA,WAAW,eAiBtB"}
@@ -0,0 +1,2 @@
1
+ import { ImageType, PDFData } from '../types';
2
+ export declare const imagesToPdf: (images: Array<ImageType>) => Promise<PDFData>;
@@ -0,0 +1,31 @@
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.imagesToPdf = void 0;
13
+ const pdf_lib_1 = require("pdf-lib");
14
+ const imagesToPdf = (images) => __awaiter(void 0, void 0, void 0, function* () {
15
+ const pdf = yield pdf_lib_1.PDFDocument.create();
16
+ for (const image of images) {
17
+ const imageBase64 = yield image.getBase64('image/png');
18
+ const embeddedImage = yield pdf.embedPng(imageBase64);
19
+ const { width, height } = embeddedImage.scale(1);
20
+ const page = pdf.addPage([width, height]);
21
+ page.drawImage(embeddedImage, {
22
+ x: 0,
23
+ y: 0,
24
+ width,
25
+ height,
26
+ });
27
+ }
28
+ return pdf.save();
29
+ });
30
+ exports.imagesToPdf = imagesToPdf;
31
+ //# sourceMappingURL=imagesToPdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imagesToPdf.js","sourceRoot":"","sources":["../../../../src/lib/utils/imagesToPdf.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAsC;AAG/B,MAAM,WAAW,GAAG,CACvB,MAAwB,EACR,EAAE;IAClB,MAAM,GAAG,GAAG,MAAM,qBAAW,CAAC,MAAM,EAAE,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YAC1B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK;YACL,MAAM;SACT,CAAC,CAAC;IACP,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC,CAAA,CAAC;AApBW,QAAA,WAAW,eAoBtB"}
@@ -2,3 +2,4 @@ export * from './container';
2
2
  export * from './placeBoundingBox';
3
3
  export * from './htmlToImage';
4
4
  export * from './toPx';
5
+ export * from './reduceBoundingBox';
@@ -18,4 +18,5 @@ __exportStar(require("./container"), exports);
18
18
  __exportStar(require("./placeBoundingBox"), exports);
19
19
  __exportStar(require("./htmlToImage"), exports);
20
20
  __exportStar(require("./toPx"), exports);
21
+ __exportStar(require("./reduceBoundingBox"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,qDAAmC;AACnC,gDAA8B;AAC9B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,qDAAmC;AACnC,gDAA8B;AAC9B,yCAAuB;AACvB,sDAAoC"}
@@ -12,10 +12,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.placeBoundingBox = void 0;
13
13
  const virtual_dom_1 = require("virtual-dom");
14
14
  const toPx_1 = require("./toPx");
15
+ const reduceBoundingBox_1 = require("./reduceBoundingBox");
15
16
  const placeBoundingBox = (box) => __awaiter(void 0, void 0, void 0, function* () {
16
- return (0, virtual_dom_1.h)('div', {
17
- style: Object.assign({ position: 'absolute', border: '2px solid red', background: 'transparent', boxSizing: 'border-box' }, (0, toPx_1.boundingBoxToPx)(box)),
18
- }, []);
17
+ const borderWidthPx = 2;
18
+ const reducedBoundingBox = (0, reduceBoundingBox_1.reduceBoundingBox)(box, borderWidthPx);
19
+ return (0, virtual_dom_1.h)('div', {}, [
20
+ (0, virtual_dom_1.h)('div', {
21
+ style: Object.assign({ position: 'absolute', border: `${borderWidthPx}px solid red`, background: 'transparent', boxSizing: 'border-box' }, (0, toPx_1.boundingBoxToPx)(box)),
22
+ }, []),
23
+ (0, virtual_dom_1.h)('div', {
24
+ style: Object.assign({ position: 'absolute', border: `${borderWidthPx}px dashed blue`, background: 'transparent', boxSizing: 'border-box' }, (0, toPx_1.boundingBoxToPx)(reducedBoundingBox)),
25
+ }, []),
26
+ ]);
19
27
  });
20
28
  exports.placeBoundingBox = placeBoundingBox;
21
29
  //# sourceMappingURL=placeBoundingBox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"placeBoundingBox.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeBoundingBox.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,iCAAyC;AAGlC,MAAM,gBAAgB,GAAG,CAAO,GAAgB,EAAsB,EAAE;IAC3E,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,YAAY,IACpB,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,EAAE,CACL,CAAC;AACN,CAAC,CAAA,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
1
+ {"version":3,"file":"placeBoundingBox.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeBoundingBox.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,iCAAyC;AAEzC,2DAAwD;AAEjD,MAAM,gBAAgB,GAAG,CAC5B,GAAgB,EACE,EAAE;IACpB,MAAM,aAAa,GAAG,CAAC,CAAC;IACxB,MAAM,kBAAkB,GAAG,IAAA,qCAAiB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACjE,OAAO,IAAA,eAAC,EAAC,KAAK,EAAE,EAAE,EAAE;QAChB,IAAA,eAAC,EACG,KAAK,EACL;YACI,KAAK,kBACD,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,GAAG,aAAa,cAAc,EACtC,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,YAAY,IACpB,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;SACJ,EACD,EAAE,CACL;QACD,IAAA,eAAC,EACG,KAAK,EACL;YACI,KAAK,kBACD,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,GAAG,aAAa,gBAAgB,EACxC,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,YAAY,IACpB,IAAA,sBAAe,EAAC,kBAAkB,CAAC,CACzC;SACJ,EACD,EAAE,CACL;KACJ,CAAC,CAAC;AACP,CAAC,CAAA,CAAC;AAjCW,QAAA,gBAAgB,oBAiC3B"}
@@ -0,0 +1,2 @@
1
+ import { BoundingBox } from '../types';
2
+ export declare const reduceBoundingBox: (boundingBox: BoundingBox, reduceWithPx: number) => BoundingBox;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reduceBoundingBox = void 0;
4
+ const reduceBoundingBox = (boundingBox, reduceWithPx) => {
5
+ return Object.entries(boundingBox)
6
+ .map(([key, value]) => [
7
+ key,
8
+ value +
9
+ (key === 'width' || key === 'height'
10
+ ? -reduceWithPx * 2
11
+ : reduceWithPx),
12
+ ])
13
+ .reduce((box, [key, value]) => (Object.assign(Object.assign({}, box), { [key]: value })), {});
14
+ };
15
+ exports.reduceBoundingBox = reduceBoundingBox;
16
+ //# sourceMappingURL=reduceBoundingBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduceBoundingBox.js","sourceRoot":"","sources":["../../../../src/lib/utils/reduceBoundingBox.ts"],"names":[],"mappings":";;;AAIO,MAAM,iBAAiB,GAAG,CAC7B,WAAwB,EACxB,YAAoB,EACT,EAAE;IACb,OAAQ,MAAM,CAAC,OAAO,CAAC,WAAW,CAA0C;SACvE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACnB,GAAG;QACH,KAAK;YACD,CAAC,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ;gBAChC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC;gBACnB,CAAC,CAAC,YAAY,CAAC;KAC1B,CAAC;SACD,MAAM,CACH,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAG,EACjD,EAAiB,CACpB,CAAC;AACV,CAAC,CAAC;AAhBW,QAAA,iBAAiB,qBAgB5B"}
package/build/src/test.js CHANGED
@@ -11,16 +11,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const jimp_1 = require("jimp");
13
13
  const lib_1 = require("./lib");
14
+ const imagesToPdf_1 = require("./lib/utils/imagesToPdf");
15
+ const promises_1 = require("fs/promises");
14
16
  (() => __awaiter(void 0, void 0, void 0, function* () {
15
17
  const luigi = (yield jimp_1.Jimp.read('assets/luigi.png'));
16
- const result = yield lib_1.Template.new({
18
+ const results = yield lib_1.Template.new({
19
+ height: 1050,
20
+ width: 750,
17
21
  defaultFontFamily: 'branela',
18
22
  defaultAssetsPath: 'assets',
19
23
  color: 0xc3c3c3ff,
20
24
  })
21
25
  .text({ key: 'title' }, {
22
26
  left: 25,
23
- top: 25,
27
+ top: 0,
24
28
  width: 700,
25
29
  height: 100,
26
30
  }, {
@@ -32,6 +36,7 @@ const lib_1 = require("./lib");
32
36
  width: 1,
33
37
  color: 'red',
34
38
  },
39
+ renderBoundingBox: true,
35
40
  })
36
41
  .font('assets/BlackFlag.ttf', 'blackflag')
37
42
  .text({ key: 'subtitle' }, {
@@ -51,14 +56,15 @@ const lib_1 = require("./lib");
51
56
  skip: entry => entry.title.toLowerCase() === 'luigi',
52
57
  })
53
58
  .font('assets/branela.otf', 'branela')
54
- .image({ pathFn: entry => `${entry.title.toLowerCase()}.png` }, { left: 25, top: 225, width: 700, height: 700 }, {
59
+ .image({ pathFn: entry => `${entry.title.toLowerCase()}.png` }, { left: 0, top: 225, width: 750, height: 700 }, {
55
60
  scale: 'stretch',
56
61
  assetsPath: 'assets',
62
+ renderBoundingBox: true,
57
63
  })
58
64
  .text({ key: 'effect' }, {
59
- left: 75,
65
+ left: 0,
60
66
  top: 900,
61
- width: 600,
67
+ width: 750,
62
68
  height: 150,
63
69
  }, {
64
70
  renderBoundingBox: true,
@@ -107,13 +113,39 @@ const lib_1 = require("./lib");
107
113
  },
108
114
  ];
109
115
  }), {
110
- left: 25,
116
+ left: 0,
111
117
  top: 325,
112
118
  width: 100,
113
119
  height: 600,
114
120
  }, {
115
121
  scale: 'stretch',
116
122
  gap: 50,
123
+ renderBoundingBox: true,
124
+ })
125
+ .vbox(() => __awaiter(void 0, void 0, void 0, function* () {
126
+ return [
127
+ {
128
+ image: {
129
+ buffer: yield luigi.clone().getBuffer('image/png'),
130
+ },
131
+ options: { scale: 'stretch' },
132
+ },
133
+ {
134
+ image: {
135
+ buffer: yield luigi.clone().getBuffer('image/png'),
136
+ },
137
+ options: { scale: 'stretch' },
138
+ },
139
+ ];
140
+ }), {
141
+ right: 0,
142
+ top: 325,
143
+ width: 100,
144
+ height: 600,
145
+ }, {
146
+ scale: 'stretch',
147
+ gap: 50,
148
+ renderBoundingBox: true,
117
149
  })
118
150
  .grid(() => __awaiter(void 0, void 0, void 0, function* () {
119
151
  return [
@@ -180,8 +212,10 @@ const lib_1 = require("./lib");
180
212
  countField: 'copies',
181
213
  },
182
214
  });
183
- yield Promise.all(lib_1.Bundler.new()
184
- .bundle(result)
185
- .map((r, index) => r.write(`assets/test-${index + 1}.png`)));
215
+ yield Promise.all(results.map((result, index) => result.write(`assets/test-${index + 1}.png`)));
216
+ const bundledImages = lib_1.Bundler.new().bundle(results);
217
+ yield Promise.all(bundledImages.map((r, index) => r.write(`assets/test-bundled-${index + 1}.png`)));
218
+ const pdf = yield (0, imagesToPdf_1.imagesToPdf)(bundledImages);
219
+ yield (0, promises_1.writeFile)('assets/result.pdf', pdf);
186
220
  }))();
187
221
  //# sourceMappingURL=test.js.map
@@ -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.8.0",
3
+ "version": "0.8.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",
@@ -24,6 +24,7 @@
24
24
  "lodash.merge": "^4.6.2",
25
25
  "node-html-to-image": "^5.0.0",
26
26
  "papaparse": "^5.5.2",
27
+ "pdf-lib": "^1.17.1",
27
28
  "ts-node": "^10.9.2",
28
29
  "virtual-dom": "^2.1.1"
29
30
  },
package/roadmap.md CHANGED
@@ -6,7 +6,7 @@
6
6
  - [ ] Draw geometry
7
7
  - [ ] Noise/texture overlays
8
8
  - [x] Text border
9
- - [ ] Bundle to PDFs
9
+ - [x] Bundle to PDFs
10
10
 
11
11
  ### Bugfixes
12
12
  - [x] Broken custom fonts
@@ -108,7 +108,7 @@ export class Bundler {
108
108
  colIndex * cardSize.width;
109
109
  const offsetY =
110
110
  this.getPadding('top') +
111
- rowIndex* this.getGap('rows') +
111
+ rowIndex * this.getGap('rows') +
112
112
  rowIndex * cardSize.height;
113
113
  page.composite(image, offsetX, offsetY);
114
114
  }
package/src/lib/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './template';
2
2
  export * from './bundler';
3
- export * from './replacement';
4
3
  export * from './types';
5
4
  export * from './utils';
@@ -40,33 +40,36 @@ import {
40
40
  StaticImageRef,
41
41
  TemplateOptions,
42
42
  DEFAULT_TEMPLATE_OPTIONS,
43
+ LayerFn,
44
+ ReplacementMap,
43
45
  } from './types';
44
46
  import merge from 'lodash.merge';
45
47
  import { RequiredDeep } from 'type-fest';
46
48
  import { h } from 'virtual-dom';
47
49
  import flatten from 'lodash.flatten';
48
- import { ReplacementBuilder } from './replacement';
49
-
50
- export type LayerFnContext = {};
51
-
52
- export type LayerFn<EntryType> = (
53
- entry: EntryType,
54
- context: LayerFnContext,
55
- ) => Promise<Array<HyperNode>>;
50
+ import { Bundler } from './bundler';
56
51
 
57
52
  export type TemplateLayerFn<EntryType extends Record<string, string>> = (
58
53
  template: Template<EntryType>,
59
54
  ) => Template<EntryType>;
60
55
 
61
56
  export class Template<EntryType extends Record<string, string>> {
62
- private readonly fonts: Record<string, string> = {};
63
- private readonly layers: LayerFn<EntryType>[] = [];
64
- private readonly debugPoints: Array<number> = [];
57
+ /**
58
+ * Template data
59
+ */
65
60
  private readonly background: ImageType;
61
+ private readonly layers: LayerFn<EntryType>[] = [];
62
+ private readonly fonts: Record<string, string> = {};
66
63
  private renderBoundingBox?: boolean;
67
64
  private defaultFontFamily?: string;
68
65
  private defaultAssetsPath?: string;
69
66
 
67
+ /**
68
+ * Render data
69
+ */
70
+ private readonly debugPoints: Array<DebugPoint> = [];
71
+ private bundler?: Bundler;
72
+
70
73
  // disallow constructor initialization
71
74
  private constructor(options: TemplateOptions) {
72
75
  this.background = new Jimp({
@@ -265,7 +268,9 @@ export class Template<EntryType extends Record<string, string>> {
265
268
  }
266
269
 
267
270
  debug = (): this => {
268
- this.debugPoints.push(this.layers.length);
271
+ this.debugPoints.push({
272
+ index: this.layers.length,
273
+ });
269
274
  return this;
270
275
  };
271
276
 
@@ -282,6 +287,7 @@ export class Template<EntryType extends Record<string, string>> {
282
287
  h('head', [
283
288
  h(
284
289
  'style',
290
+ // load fonts
285
291
  Object.entries(this.fonts)
286
292
  .map(
287
293
  ([name, data]) =>
@@ -293,16 +299,37 @@ export class Template<EntryType extends Record<string, string>> {
293
299
  .join('\n'),
294
300
  ),
295
301
  ]),
296
- h('body', children),
302
+ // fix chromium headless padding issue
303
+ h(
304
+ 'body',
305
+ {
306
+ style: {
307
+ margin: 0,
308
+ },
309
+ },
310
+ [
311
+ h(
312
+ 'div',
313
+ {
314
+ style: {
315
+ marginLeft: '-8px',
316
+ },
317
+ },
318
+ children,
319
+ ),
320
+ ],
321
+ ),
297
322
  ]);
298
323
 
299
324
  // TODO: move it to a proper place
300
325
  for (const debugPoint of this.debugPoints) {
301
326
  const debugRender = await htmlToImage(
302
- buildDocument(flatten(results.slice(0, debugPoint))),
327
+ buildDocument(flatten(results.slice(0, debugPoint.index))),
303
328
  this.backgroundSize,
304
329
  );
305
- const debugImage: ImageType = await this.background.clone().composite(debugRender);
330
+ const debugImage: ImageType = await this.background
331
+ .clone()
332
+ .composite(debugRender);
306
333
  await debugImage.write('assets/debug-1.png');
307
334
  }
308
335
 
@@ -520,7 +547,7 @@ export class Template<EntryType extends Record<string, string>> {
520
547
  );
521
548
  const imageBase64 = await image.getBase64('image/png');
522
549
 
523
- let tmpChildren: Array<string | HyperNode> = [];
550
+ const tmpChildren: Array<string | HyperNode> = [];
524
551
  for (const textSegment of textChildren) {
525
552
  if (typeof textSegment !== 'string') {
526
553
  continue;
@@ -627,3 +654,27 @@ export class Template<EntryType extends Record<string, string>> {
627
654
  );
628
655
  };
629
656
  }
657
+
658
+ /**
659
+ * Represents a replacement map between sets of words and symbols
660
+ */
661
+ export class Replacement {
662
+ protected readonly replacementMap: ReplacementMap = {};
663
+
664
+ replace(words: Array<string>, symbol: StaticImageRef): this {
665
+ words.forEach(word => {
666
+ this.replacementMap[word] = symbol;
667
+ });
668
+ return this;
669
+ }
670
+ }
671
+
672
+ class ReplacementBuilder extends Replacement {
673
+ build(): ReplacementMap {
674
+ return this.replacementMap;
675
+ }
676
+ }
677
+
678
+ type DebugPoint = {
679
+ index: number;
680
+ };
@@ -1,6 +1,6 @@
1
1
  import { RequiredDeep } from 'type-fest';
2
2
  import { BoundingBox } from './boundingBox';
3
- import { ImageLayerSpecificOptions, ImageRef, ImageType } from './image';
3
+ import { ImageLayerSpecificOptions, ImageRef } from './image';
4
4
  import { ScaleMode } from './scale';
5
5
  import { DEFAULT_LAYER_OPTIONS, LayerOptions } from './layer';
6
6
  import { HyperNode } from './hypernode';
@@ -1,4 +1,3 @@
1
- import { VNode } from "virtual-dom";
1
+ import { VNode } from 'virtual-dom';
2
2
 
3
3
  export type HyperNode = VNode;
4
-
@@ -10,3 +10,4 @@ export * from './css';
10
10
  export * from './layer';
11
11
  export * from './hypernode';
12
12
  export * from './template';
13
+ export * from './pdf';
@@ -1,5 +1,6 @@
1
- import { RequiredDeep } from "type-fest";
2
- import { JustifyContent, AlignItems } from "./css";
1
+ import { RequiredDeep } from 'type-fest';
2
+ import { JustifyContent, AlignItems } from './css';
3
+ import { HyperNode } from './hypernode';
3
4
 
4
5
  export type LayerOptions<EntryType extends Record<string, string>> = {
5
6
  /**
@@ -31,3 +32,10 @@ export const DEFAULT_LAYER_OPTIONS: RequiredDeep<
31
32
  skip: false,
32
33
  renderBoundingBox: false,
33
34
  };
35
+
36
+ export type LayerFnContext = {};
37
+
38
+ export type LayerFn<EntryType> = (
39
+ entry: EntryType,
40
+ context: LayerFnContext,
41
+ ) => Promise<Array<HyperNode>>;
@@ -0,0 +1 @@
1
+ export type PDFData = Uint8Array<ArrayBufferLike>;
@@ -1,8 +1,6 @@
1
-
2
-
3
1
  export type RenderOptions<EntryType extends Record<string, string>> = {
4
2
  duplication?: DuplicationOptions<EntryType>;
5
- }
3
+ };
6
4
 
7
5
  export type DuplicationOptions<EntryType extends Record<string, string>> = {
8
6
  /**
@@ -20,4 +18,4 @@ export type DuplicationOptions<EntryType extends Record<string, string>> = {
20
18
  * default: 1
21
19
  */
22
20
  default?: number;
23
- }
21
+ };
@@ -1,4 +1,4 @@
1
- import { rgbaToInt } from "jimp";
1
+ import { rgbaToInt } from 'jimp';
2
2
 
3
3
  type RequiredTemplateOptions = {
4
4
  height: number;
@@ -1,6 +1,6 @@
1
1
  import type { RequiredDeep } from 'type-fest';
2
2
  import { DEFAULT_LAYER_OPTIONS, LayerOptions } from './layer';
3
- import { Replacement } from '../replacement';
3
+ import { Replacement } from '../template';
4
4
 
5
5
  /**
6
6
  * Static text -> `text`
@@ -4,7 +4,6 @@ import {
4
4
  DirectionContainerOptions,
5
5
  PackingFn,
6
6
  BoundingBox,
7
- SCALE_MODE_TO_OBJECT_FIT,
8
7
  GridContainerOptions,
9
8
  DEFAULT_GRID_CONTAINER_OPTIONS,
10
9
  HyperNode,
@@ -16,7 +16,6 @@ export const htmlToImage = async (
16
16
  defaultViewport: {
17
17
  width: backgroundSize.width,
18
18
  height: backgroundSize.height,
19
- deviceScaleFactor: 1,
20
19
  },
21
20
  },
22
21
  });
@@ -0,0 +1,24 @@
1
+ import { PDFDocument } from 'pdf-lib';
2
+ import { ImageType, PDFData } from '../types';
3
+
4
+ export const imagesToPdf = async (
5
+ images: Array<ImageType>,
6
+ ): Promise<PDFData> => {
7
+ const pdf = await PDFDocument.create();
8
+
9
+ for (const image of images) {
10
+ const imageBase64 = await image.getBase64('image/png');
11
+ const embeddedImage = await pdf.embedPng(imageBase64);
12
+ const { width, height } = embeddedImage.scale(1);
13
+ const page = pdf.addPage([width, height]);
14
+
15
+ page.drawImage(embeddedImage, {
16
+ x: 0,
17
+ y: 0,
18
+ width,
19
+ height,
20
+ });
21
+ }
22
+
23
+ return pdf.save();
24
+ };
@@ -2,3 +2,4 @@ export * from './container';
2
2
  export * from './placeBoundingBox';
3
3
  export * from './htmlToImage';
4
4
  export * from './toPx';
5
+ export * from './reduceBoundingBox';
@@ -1,19 +1,39 @@
1
1
  import { h } from 'virtual-dom';
2
2
  import { boundingBoxToPx } from './toPx';
3
3
  import { BoundingBox, HyperNode } from '../types';
4
+ import { reduceBoundingBox } from './reduceBoundingBox';
4
5
 
5
- export const placeBoundingBox = async (box: BoundingBox): Promise<HyperNode> => {
6
- return h(
7
- 'div',
8
- {
9
- style: {
10
- position: 'absolute',
11
- border: '2px solid red',
12
- background: 'transparent',
13
- boxSizing: 'border-box',
14
- ...boundingBoxToPx(box),
6
+ export const placeBoundingBox = async (
7
+ box: BoundingBox,
8
+ ): Promise<HyperNode> => {
9
+ const borderWidthPx = 2;
10
+ const reducedBoundingBox = reduceBoundingBox(box, borderWidthPx);
11
+ return h('div', {}, [
12
+ h(
13
+ 'div',
14
+ {
15
+ style: {
16
+ position: 'absolute',
17
+ border: `${borderWidthPx}px solid red`,
18
+ background: 'transparent',
19
+ boxSizing: 'border-box',
20
+ ...boundingBoxToPx(box),
21
+ },
15
22
  },
16
- },
17
- [],
18
- );
23
+ [],
24
+ ),
25
+ h(
26
+ 'div',
27
+ {
28
+ style: {
29
+ position: 'absolute',
30
+ border: `${borderWidthPx}px dashed blue`,
31
+ background: 'transparent',
32
+ boxSizing: 'border-box',
33
+ ...boundingBoxToPx(reducedBoundingBox),
34
+ },
35
+ },
36
+ [],
37
+ ),
38
+ ]);
19
39
  };
@@ -0,0 +1,21 @@
1
+ import { BoundingBox } from '../types';
2
+
3
+ type KeysOfUnion<T> = T extends unknown ? keyof T : never;
4
+
5
+ export const reduceBoundingBox = (
6
+ boundingBox: BoundingBox,
7
+ reduceWithPx: number,
8
+ ): BoundingBox => {
9
+ return (Object.entries(boundingBox) as [KeysOfUnion<BoundingBox>, number][])
10
+ .map(([key, value]) => [
11
+ key,
12
+ value +
13
+ (key === 'width' || key === 'height'
14
+ ? -reduceWithPx * 2
15
+ : reduceWithPx),
16
+ ])
17
+ .reduce(
18
+ (box, [key, value]) => ({ ...box, [key]: value }),
19
+ {} as BoundingBox,
20
+ );
21
+ };
@@ -1,22 +0,0 @@
1
- import { ReplacementMap, StaticImageRef } from "./types";
2
-
3
- /**
4
- * Represents a replacement map between sets of words and symbols
5
- */
6
- export class Replacement {
7
- protected readonly replacementMap: ReplacementMap = {};
8
-
9
- replace(words: Array<string>, symbol: StaticImageRef): this {
10
- words.forEach(word => {
11
- this.replacementMap[word] = symbol;
12
- });
13
- return this;
14
- }
15
- }
16
-
17
- export class ReplacementBuilder extends Replacement {
18
- build(): ReplacementMap {
19
- return this.replacementMap;
20
- }
21
- }
22
-