@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.
Files changed (52) hide show
  1. package/build/src/lib/template.d.ts +9 -10
  2. package/build/src/lib/template.js +75 -40
  3. package/build/src/lib/template.js.map +1 -1
  4. package/build/src/lib/types/containers.d.ts +14 -2
  5. package/build/src/lib/types/containers.js.map +1 -1
  6. package/build/src/lib/types/hypernode.d.ts +2 -0
  7. package/build/src/lib/types/hypernode.js +3 -0
  8. package/build/src/lib/types/hypernode.js.map +1 -0
  9. package/build/src/lib/types/image.d.ts +5 -0
  10. package/build/src/lib/types/image.js.map +1 -1
  11. package/build/src/lib/types/index.d.ts +1 -0
  12. package/build/src/lib/types/index.js +1 -0
  13. package/build/src/lib/types/index.js.map +1 -1
  14. package/build/src/lib/types/text.d.ts +11 -2
  15. package/build/src/lib/types/text.js +4 -0
  16. package/build/src/lib/types/text.js.map +1 -1
  17. package/build/src/lib/utils/container.js +10 -45
  18. package/build/src/lib/utils/container.js.map +1 -1
  19. package/build/src/lib/utils/htmlToImage.d.ts +2 -3
  20. package/build/src/lib/utils/htmlToImage.js.map +1 -1
  21. package/build/src/lib/utils/index.d.ts +2 -3
  22. package/build/src/lib/utils/index.js +2 -3
  23. package/build/src/lib/utils/index.js.map +1 -1
  24. package/build/src/lib/utils/placeBoundingBox.d.ts +2 -0
  25. package/build/src/lib/utils/placeBoundingBox.js +21 -0
  26. package/build/src/lib/utils/placeBoundingBox.js.map +1 -0
  27. package/build/src/lib/utils/placeImage.d.ts +7 -6
  28. package/build/src/lib/utils/placeImage.js +20 -20
  29. package/build/src/lib/utils/placeImage.js.map +1 -1
  30. package/build/src/lib/utils/placeText.d.ts +14 -0
  31. package/build/src/lib/utils/placeText.js +69 -0
  32. package/build/src/lib/utils/placeText.js.map +1 -0
  33. package/build/src/lib/utils/renderText.js +1 -0
  34. package/build/src/lib/utils/renderText.js.map +1 -1
  35. package/build/src/test.js +36 -10
  36. package/build/src/test.js.map +1 -1
  37. package/package.json +3 -1
  38. package/roadmap.md +3 -2
  39. package/src/lib/template.ts +100 -70
  40. package/src/lib/types/containers.ts +22 -4
  41. package/src/lib/types/hypernode.ts +4 -0
  42. package/src/lib/types/image.ts +6 -0
  43. package/src/lib/types/index.ts +1 -0
  44. package/src/lib/types/text.ts +18 -4
  45. package/src/lib/utils/container.ts +13 -70
  46. package/src/lib/utils/htmlToImage.ts +3 -3
  47. package/src/lib/utils/index.ts +2 -3
  48. package/src/lib/utils/{drawBoundingBox.ts → placeBoundingBox.ts} +3 -9
  49. package/src/lib/utils/placeImage.ts +34 -27
  50. package/src/lib/utils/placeText.ts +110 -0
  51. package/src/lib/utils/buildFontString.ts +0 -17
  52. package/src/lib/utils/renderText.ts +0 -105
@@ -1,5 +1,5 @@
1
1
  import * as fs from 'fs';
2
- import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions } from './types';
2
+ import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions, HyperNode, ElementsFn } from './types';
3
3
  type RequiredTemplateOptions = {
4
4
  height: number;
5
5
  width: number;
@@ -13,7 +13,7 @@ export type TemplateOptions = RequiredTemplateOptions & OptionalTemplateOptions;
13
13
  export type LayerFnContext = {
14
14
  debugMode: boolean;
15
15
  };
16
- export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<ImageType | undefined>;
16
+ export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<Array<HyperNode>>;
17
17
  export type TemplateLayerFn<EntryType extends Record<string, string>> = (template: Template<EntryType>) => Template<EntryType>;
18
18
  export declare class Template<EntryType extends Record<string, string>> {
19
19
  private readonly fonts;
@@ -25,25 +25,24 @@ export declare class Template<EntryType extends Record<string, string>> {
25
25
  private constructor();
26
26
  static new<EntryType extends Record<string, string>>(options?: Partial<TemplateOptions>): Template<EntryType>;
27
27
  private shadowTemplate;
28
- private shadowBackground;
29
28
  private get backgroundSize();
30
29
  layer(fn: LayerFn<EntryType>): this;
31
30
  template: (fn: TemplateLayerFn<EntryType>) => this;
32
- container: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, packingFn: PackingFn, options?: ContainerOptions<EntryType>) => this;
33
- hbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
34
- vbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
35
- grid: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: GridContainerOptions<EntryType>) => this;
31
+ container: (elementsFn: ElementsFn, box: BoundingBox, packingFn: PackingFn, options?: ContainerOptions<EntryType>) => this;
32
+ hbox: (elementsFn: ElementsFn, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
33
+ vbox: (elementsFn: ElementsFn, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
34
+ grid: (elementsFn: ElementsFn, box: BoundingBox, options?: GridContainerOptions<EntryType>) => this;
36
35
  image: (ref: ImageRef<EntryType>, box: BoundingBox, options: ImageLayerOptions<EntryType>) => this;
37
36
  loadImage: (imagePath: string | Buffer) => Promise<ImageType>;
38
37
  text: (ref: TextRef<EntryType>, box: BoundingBox, options?: TextLayerOptions<EntryType>) => this;
39
38
  font(path: fs.PathLike, name: string): this;
40
39
  debug(): this;
41
- private renderLayers;
42
- render(entry: EntryType, options?: RenderOptions<EntryType>): Promise<ImageType>;
40
+ render(entry: EntryType): Promise<ImageType>;
43
41
  renderAll(entries: Array<EntryType>, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
44
42
  fromCsv(path: string, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
45
- private pathFromImageRef;
43
+ private imageFromImageRef;
46
44
  private textFromTextRef;
45
+ private elementFromElementRef;
47
46
  private shouldSkipLayerForEntry;
48
47
  }
49
48
  export {};
@@ -55,6 +55,8 @@ const path_1 = __importDefault(require("path"));
55
55
  const utils_1 = require("./utils");
56
56
  const types_1 = require("./types");
57
57
  const lodash_merge_1 = __importDefault(require("lodash.merge"));
58
+ const virtual_dom_1 = require("virtual-dom");
59
+ const lodash_flatten_1 = __importDefault(require("lodash.flatten"));
58
60
  const DEFAULT_TEMPLATE_OPTIONS = {
59
61
  height: 1050,
60
62
  width: 750,
@@ -66,45 +68,52 @@ class Template {
66
68
  this.fonts = {};
67
69
  this.layers = [];
68
70
  this.debugMode = false;
69
- this.template = (fn) => this.layer(entry => {
71
+ this.template = (fn) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
70
72
  const template = fn(this.shadowTemplate());
71
- return template.render(entry);
72
- });
73
- this.container = (imagesFn, box, packingFn, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
73
+ const image = yield template.render(entry);
74
+ return [
75
+ yield (0, utils_1.placeImage)({
76
+ image,
77
+ box: Object.assign({ left: 0, top: 0 }, this.backgroundSize),
78
+ options: types_1.DEFAULT_IMAGE_LAYER_OPTIONS,
79
+ }),
80
+ ];
81
+ }));
82
+ this.container = (elementsFn, box, packingFn, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
74
83
  const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_CONTAINER_OPTIONS, options);
75
84
  if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
76
- return undefined;
85
+ return [];
77
86
  }
78
- const images = yield imagesFn(entry);
79
- const result = yield packingFn(box, this.shadowBackground(), images);
87
+ const elementRefs = yield elementsFn(entry);
88
+ const elements = yield Promise.all(elementRefs.map(elementRef => this.elementFromElementRef(entry, elementRef)));
89
+ const result = yield packingFn(box, elements);
80
90
  // debug mode
81
91
  if (debugMode) {
82
- const debugImage = yield (0, utils_1.drawBoundingBox)(box, this.backgroundSize);
83
- return debugImage.composite(result);
92
+ const debugImage = yield (0, utils_1.placeBoundingBox)(box);
93
+ return [result, debugImage];
84
94
  }
85
- return result;
95
+ return [result];
86
96
  }));
87
- this.hbox = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.hboxPackingFn)(options), options);
88
- this.vbox = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.vboxPackingFn)(options), options);
89
- this.grid = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.gridPackingFn)(options), options);
97
+ this.hbox = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.hboxPackingFn)(options), options);
98
+ this.vbox = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.vboxPackingFn)(options), options);
99
+ this.grid = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.gridPackingFn)(options), options);
90
100
  this.image = (ref, box, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
91
101
  const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, { assetsPath: this.defaultAssetsPath }, options);
92
102
  if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
93
- return undefined;
103
+ return [];
94
104
  }
95
- const image = yield this.pathFromImageRef(entry, ref, mergedOptions);
105
+ const image = yield this.imageFromImageRef(entry, ref, mergedOptions);
96
106
  const result = yield (0, utils_1.placeImage)({
97
107
  image,
98
108
  box,
99
- backgroundSize: this.backgroundSize,
100
109
  options: mergedOptions,
101
110
  });
102
111
  // debug mode
103
112
  if (debugMode) {
104
- const debugImage = yield (0, utils_1.drawBoundingBox)(box, this.backgroundSize);
105
- return debugImage.composite(result);
113
+ const debugImage = yield (0, utils_1.placeBoundingBox)(box);
114
+ return [result, debugImage];
106
115
  }
107
- return result;
116
+ return [result];
108
117
  }));
109
118
  this.loadImage = (imagePath) => __awaiter(this, void 0, void 0, function* () {
110
119
  const image = (yield jimp_1.Jimp.read(imagePath));
@@ -117,18 +126,22 @@ class Template {
117
126
  },
118
127
  }, options);
119
128
  if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
120
- return undefined;
129
+ return [];
121
130
  }
122
131
  const text = this.textFromTextRef(entry, ref);
123
- const result = yield (0, utils_1.renderText)(text, box, this.backgroundSize, mergedOptions, this.fonts);
132
+ const result = yield (0, utils_1.placeText)({
133
+ text,
134
+ box,
135
+ options: mergedOptions,
136
+ });
124
137
  // debug mode
125
138
  if (debugMode) {
126
- const debugImage = yield (0, utils_1.drawBoundingBox)(box, this.backgroundSize);
127
- return debugImage.composite(result);
139
+ const debugImage = yield (0, utils_1.placeBoundingBox)(box);
140
+ return [result, debugImage];
128
141
  }
129
- return result;
142
+ return [result];
130
143
  }));
131
- this.pathFromImageRef = (entry, ref, options) => __awaiter(this, void 0, void 0, function* () {
144
+ this.imageFromImageRef = (entry, ref, options) => __awaiter(this, void 0, void 0, function* () {
132
145
  const pathSegments = [];
133
146
  if (options.assetsPath) {
134
147
  pathSegments.push(options.assetsPath);
@@ -168,6 +181,28 @@ class Template {
168
181
  throw new Error('Unknown TextRef variant');
169
182
  }
170
183
  };
184
+ this.elementFromElementRef = (entry, ref) => __awaiter(this, void 0, void 0, function* () {
185
+ if ('text' in ref) {
186
+ const options = (0, lodash_merge_1.default)({}, types_1.DEFAULT_TEXT_LAYER_OPTIONS, ref.options);
187
+ return (0, utils_1.prepareText)({
188
+ text: this.textFromTextRef(entry, ref.text),
189
+ options,
190
+ });
191
+ }
192
+ else if ('image' in ref) {
193
+ const options = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, ref.options);
194
+ return (0, utils_1.prepareImage)({
195
+ image: yield this.imageFromImageRef(entry, ref.image, options),
196
+ options,
197
+ });
198
+ }
199
+ else if ('node' in ref) {
200
+ return ref.node;
201
+ }
202
+ else {
203
+ throw new Error('Unknown TextRef variant');
204
+ }
205
+ });
171
206
  this.shouldSkipLayerForEntry = (entry, options) => {
172
207
  var _a;
173
208
  if (typeof options.skip === 'function') {
@@ -192,12 +227,6 @@ class Template {
192
227
  width: this.background.width,
193
228
  });
194
229
  }
195
- shadowBackground() {
196
- return new jimp_1.Jimp({
197
- width: this.background.width,
198
- height: this.background.height,
199
- });
200
- }
201
230
  get backgroundSize() {
202
231
  return {
203
232
  width: this.background.width,
@@ -217,23 +246,29 @@ class Template {
217
246
  this.debugMode = true;
218
247
  return this;
219
248
  }
220
- renderLayers(entry) {
249
+ render(entry) {
221
250
  return __awaiter(this, void 0, void 0, function* () {
222
251
  const results = yield Promise.all(this.layers.map(layerFn => layerFn(entry, {
223
252
  debugMode: this.debugMode,
224
253
  })));
225
- return results.filter(result => !!result);
226
- });
227
- }
228
- render(entry, options) {
229
- return __awaiter(this, void 0, void 0, function* () {
230
- const renderedLayers = yield this.renderLayers(entry);
231
- return renderedLayers.reduce((acc, layerRender) => acc.composite(layerRender), this.background.clone());
254
+ const document = (0, virtual_dom_1.h)('html', [
255
+ (0, virtual_dom_1.h)('head', [
256
+ (0, virtual_dom_1.h)('style', Object.entries(this.fonts)
257
+ .map(([name, data]) => `@font-face {
258
+ font-family: '${name}';
259
+ src: url(data:font/ttf;base64,${data}) format('truetype');
260
+ }`)
261
+ .join('\n')),
262
+ ]),
263
+ (0, virtual_dom_1.h)('body', (0, lodash_flatten_1.default)(results)),
264
+ ]);
265
+ const renderedLayers = yield (0, utils_1.htmlToImage)(document, this.backgroundSize);
266
+ return this.background.clone().composite(renderedLayers);
232
267
  });
233
268
  }
234
269
  renderAll(entries, options) {
235
270
  return __awaiter(this, void 0, void 0, function* () {
236
- const results = yield Promise.all(entries.map(entry => new Promise(resolve => this.render(entry, options).then(image => {
271
+ const results = yield Promise.all(entries.map(entry => new Promise(resolve => this.render(entry).then(image => {
237
272
  var _a, _b;
238
273
  if (!(options === null || options === void 0 ? void 0 : options.duplication)) {
239
274
  return resolve([image]);
@@ -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,8 +1,10 @@
1
1
  import { RequiredDeep } from 'type-fest';
2
2
  import { BoundingBox } from './boundingBox';
3
- import { ImageType } from './image';
3
+ import { ImageLayerSpecificOptions, ImageRef } from './image';
4
4
  import { ScaleMode } from './scale';
5
5
  import { LayerOptions } from './layer';
6
+ import { HyperNode } from './hypernode';
7
+ import { TextLayerSpecificOptions, TextRef } from './text';
6
8
  export type ContainerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
7
9
  /**
8
10
  * This is treated as a minimum length of an unit of space
@@ -33,4 +35,14 @@ export type GridContainerOptions<EntryType extends Record<string, string>> = Con
33
35
  direction?: 'rows' | 'cols';
34
36
  };
35
37
  export declare const DEFAULT_GRID_CONTAINER_OPTIONS: RequiredDeep<GridContainerOptions<Record<string, string>>>;
36
- export type PackingFn = (box: BoundingBox, background: ImageType, images: Array<ImageType>) => Promise<ImageType>;
38
+ export type ElementRef<EntryType extends Record<string, string>> = {
39
+ image: ImageRef<EntryType>;
40
+ options?: ImageLayerSpecificOptions<EntryType>;
41
+ } | {
42
+ text: TextRef<EntryType>;
43
+ options?: TextLayerSpecificOptions<EntryType>;
44
+ } | {
45
+ node: HyperNode;
46
+ };
47
+ export type ElementsFn = <EntryType extends Record<string, string>>(entry: EntryType) => Promise<Array<ElementRef<EntryType>>>;
48
+ export type PackingFn = (box: BoundingBox, elements: Array<HyperNode>) => Promise<HyperNode>;
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;AAsBa,QAAA,yBAAyB,GAElC;IACA,GAAG,EAAE,CAAC;IACN,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;CACd,CAAC;AAQW,QAAA,mCAAmC,mCAGzC,iCAAyB,KAC5B,QAAQ,EAAE,KAAK,IACjB;AAgBW,QAAA,8BAA8B,mCAGpC,iCAAyB,KAC5B,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,MAAM,IACnB"}
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;AAwBa,QAAA,yBAAyB,GAElC;IACA,GAAG,EAAE,CAAC;IACN,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;CACd,CAAC;AAQW,QAAA,mCAAmC,mCAGzC,iCAAyB,KAC5B,QAAQ,EAAE,KAAK,IACjB;AAgBW,QAAA,8BAA8B,mCAGpC,iCAAyB,KAC5B,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,MAAM,IACnB"}
@@ -0,0 +1,2 @@
1
+ import { VNode } from "virtual-dom";
2
+ export type HyperNode = VNode;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=hypernode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hypernode.js","sourceRoot":"","sources":["../../../../src/lib/types/hypernode.ts"],"names":[],"mappings":""}
@@ -3,6 +3,10 @@ import { ScaleMode } from './scale';
3
3
  import { LayerOptions } from './layer';
4
4
  import { RequiredDeep } from 'type-fest';
5
5
  export type ImageType = JimpInstance;
6
+ /**
7
+ * Static images -> `buffer`, `path`, `absolutePath`
8
+ * Dynamic images -> `key`, `pathFn`
9
+ */
6
10
  export type ImageRef<EntryType extends Record<string, string>> = {
7
11
  buffer: Buffer;
8
12
  } | {
@@ -25,5 +29,6 @@ export type ImageLayerOptions<EntryType extends Record<string, string>> = LayerO
25
29
  scale?: ScaleMode;
26
30
  };
27
31
  export declare const DEFAULT_IMAGE_LAYER_OPTIONS: RequiredDeep<ImageLayerOptions<Record<string, string>>>;
32
+ export type ImageLayerSpecificOptions<EntryType extends Record<string, string>> = Omit<ImageLayerOptions<EntryType>, keyof LayerOptions<EntryType>>;
28
33
  export type Alignment = 'start' | 'center' | 'end';
29
34
  export declare const DEFAULT_IMAGE_ALIGNMENT: Alignment;
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/lib/types/image.ts"],"names":[],"mappings":";;;AA8Ba,QAAA,2BAA2B,GAA4D;IAChG,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,EAAE;CACjB,CAAC;AAIW,QAAA,uBAAuB,GAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/lib/types/image.ts"],"names":[],"mappings":";;;AAkCa,QAAA,2BAA2B,GAA4D;IAChG,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,EAAE;CACjB,CAAC;AAMW,QAAA,uBAAuB,GAAc,QAAQ,CAAC"}
@@ -8,3 +8,4 @@ export * from './text';
8
8
  export * from './boundingBox';
9
9
  export * from './css';
10
10
  export * from './layer';
11
+ export * from './hypernode';
@@ -24,4 +24,5 @@ __exportStar(require("./text"), exports);
24
24
  __exportStar(require("./boundingBox"), exports);
25
25
  __exportStar(require("./css"), exports);
26
26
  __exportStar(require("./layer"), exports);
27
+ __exportStar(require("./hypernode"), exports);
27
28
  //# 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"}
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"}
@@ -1,10 +1,14 @@
1
1
  import type { RequiredDeep } from 'type-fest';
2
2
  import { LayerOptions } from './layer';
3
3
  import { ReplacementMap } from './replacement';
4
+ /**
5
+ * Static text -> `text`
6
+ * Dynamic text -> `key`, `textFn`
7
+ */
4
8
  export type TextRef<EntryType> = {
5
- key: string;
6
- } | {
7
9
  text: string;
10
+ } | {
11
+ key: string;
8
12
  } | {
9
13
  textFn: (entry: EntryType) => string;
10
14
  };
@@ -30,7 +34,12 @@ export type FontOptions = {
30
34
  export type TextLayerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
31
35
  font?: FontOptions;
32
36
  color?: string;
37
+ border?: {
38
+ width?: number;
39
+ color?: string;
40
+ };
33
41
  replacement?: ReplacementMap;
34
42
  };
35
43
  export declare const DEFAULT_FONT: Required<FontOptions>;
44
+ export type TextLayerSpecificOptions<EntryType extends Record<string, string>> = Omit<TextLayerOptions<EntryType>, keyof LayerOptions<EntryType>>;
36
45
  export declare const DEFAULT_TEXT_LAYER_OPTIONS: RequiredDeep<TextLayerOptions<Record<string, string>>>;
@@ -14,5 +14,9 @@ exports.DEFAULT_TEXT_LAYER_OPTIONS = {
14
14
  color: 'black',
15
15
  replacement: {},
16
16
  skip: false,
17
+ border: {
18
+ width: 0,
19
+ color: 'black',
20
+ },
17
21
  };
18
22
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AAuCa,QAAA,YAAY,GAErB;IACA,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;CAChB,CAAC;AAEW,QAAA,0BAA0B,GAEnC;IACA,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,oBAAY;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,KAAK;CACd,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AAgDa,QAAA,YAAY,GAA0B;IAC/C,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;CAChB,CAAC;AAKW,QAAA,0BAA0B,GAEnC;IACA,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,oBAAY;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,KAAK;IACX,MAAM,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,OAAO;KACjB;CACJ,CAAC"}
@@ -17,43 +17,25 @@ const virtual_dom_1 = require("virtual-dom");
17
17
  const types_1 = require("../types");
18
18
  const toPx_1 = require("./toPx");
19
19
  const lodash_merge_1 = __importDefault(require("lodash.merge"));
20
- const htmlToImage_1 = require("./htmlToImage");
21
20
  const lodash_chunk_1 = __importDefault(require("lodash.chunk"));
22
- const vboxPackingFn = (options) => (box, background, images) => directionalPackingFn({
21
+ const vboxPackingFn = (options) => (box, elements) => directionalPackingFn({
23
22
  isVertical: true,
24
- backgroundSize: background,
25
- images,
23
+ elements,
26
24
  box,
27
25
  options,
28
26
  });
29
27
  exports.vboxPackingFn = vboxPackingFn;
30
- const hboxPackingFn = (options) => (box, background, images) => directionalPackingFn({
28
+ const hboxPackingFn = (options) => (box, elements) => directionalPackingFn({
31
29
  isVertical: false,
32
- backgroundSize: background,
33
- images,
30
+ elements,
34
31
  box,
35
32
  options,
36
33
  });
37
34
  exports.hboxPackingFn = hboxPackingFn;
38
- const gridPackingFn = (options) => (box, background, images) => __awaiter(void 0, void 0, void 0, function* () {
35
+ const gridPackingFn = (options) => (box, elements) => __awaiter(void 0, void 0, void 0, function* () {
39
36
  const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_GRID_CONTAINER_OPTIONS, options);
40
- const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[mergedOptions.scale];
41
- const children = yield Promise.all(images.map((image) => __awaiter(void 0, void 0, void 0, function* () {
42
- const imageBase64 = yield image.getBase64('image/png');
43
- return (0, virtual_dom_1.h)('img', {
44
- style: {
45
- objectFit,
46
- flex: '1 1 auto',
47
- minWidth: 0,
48
- minHeight: 0,
49
- maxWidth: '100%',
50
- maxHeight: '100%',
51
- },
52
- src: imageBase64,
53
- }, []);
54
- })));
55
37
  const items = [];
56
- for (const subset of (0, lodash_chunk_1.default)(children)) {
38
+ for (const subset of (0, lodash_chunk_1.default)(elements)) {
57
39
  items.push((0, virtual_dom_1.h)('div', {
58
40
  style: {
59
41
  display: 'flex',
@@ -65,32 +47,15 @@ const gridPackingFn = (options) => (box, background, images) => __awaiter(void 0
65
47
  },
66
48
  }, subset));
67
49
  }
68
- const document = (0, virtual_dom_1.h)('div', {
50
+ return (0, virtual_dom_1.h)('div', {
69
51
  style: Object.assign({ display: 'grid', gridTemplateColumns: `repeat(${mergedOptions.size}, 1fr)`, position: 'absolute', gap: (0, toPx_1.toPx)(mergedOptions.gap) }, (0, toPx_1.boundingBoxToPx)(box)),
70
52
  }, items);
71
- return (0, htmlToImage_1.htmlToImage)(document, background);
72
53
  });
73
54
  exports.gridPackingFn = gridPackingFn;
74
- const directionalPackingFn = (_a) => __awaiter(void 0, [_a], void 0, function* ({ isVertical, backgroundSize: background, images, box, options, }) {
55
+ const directionalPackingFn = (_a) => __awaiter(void 0, [_a], void 0, function* ({ isVertical, elements, box, options, }) {
75
56
  const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_DIRECTION_CONTAINER_OPTIONS, options);
76
- const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[mergedOptions.scale];
77
- const children = yield Promise.all(images.map((image) => __awaiter(void 0, void 0, void 0, function* () {
78
- const imageBase64 = yield image.getBase64('image/png');
79
- return (0, virtual_dom_1.h)('img', {
80
- style: {
81
- objectFit,
82
- flex: '1 1 auto',
83
- minWidth: 0,
84
- minHeight: 0,
85
- maxWidth: '100%',
86
- maxHeight: '100%',
87
- },
88
- src: imageBase64,
89
- }, []);
90
- })));
91
- const document = (0, virtual_dom_1.h)('div', {
57
+ return (0, virtual_dom_1.h)('div', {
92
58
  style: Object.assign({ display: 'flex', position: 'absolute', scale: 1, flexDirection: `${isVertical ? 'column' : 'row'}${mergedOptions.reversed ? '-reversed' : ''}`, gap: (0, toPx_1.toPx)(mergedOptions.gap), justifyContent: mergedOptions.justifyContent, alignItems: mergedOptions.alignItems }, (0, toPx_1.boundingBoxToPx)(box)),
93
- }, children);
94
- return (0, htmlToImage_1.htmlToImage)(document, background);
59
+ }, elements);
95
60
  });
96
61
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":"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"}
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,3 +1,2 @@
1
- import { VNode } from 'virtual-dom';
2
- import { ImageType, Size } from '../types';
3
- export declare const htmlToImage: (document: VNode, backgroundSize: Size) => Promise<ImageType>;
1
+ import { HyperNode, ImageType, Size } from '../types';
2
+ export declare const htmlToImage: (document: HyperNode, backgroundSize: Size) => Promise<ImageType>;
@@ -1 +1 @@
1
- {"version":3,"file":"htmlToImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/htmlToImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA6D;AAC7D,4EAAiD;AACjD,+BAA4B;AAGrB,MAAM,WAAW,GAAG,CACvB,QAAe,EACf,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;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,7 +1,6 @@
1
- export * from './buildFontString';
2
1
  export * from './container';
3
- export * from './drawBoundingBox';
2
+ export * from './placeBoundingBox';
4
3
  export * from './placeImage';
5
- export * from './renderText';
4
+ export * from './placeText';
6
5
  export * from './htmlToImage';
7
6
  export * from './toPx';
@@ -14,11 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./buildFontString"), exports);
18
17
  __exportStar(require("./container"), exports);
19
- __exportStar(require("./drawBoundingBox"), exports);
18
+ __exportStar(require("./placeBoundingBox"), exports);
20
19
  __exportStar(require("./placeImage"), exports);
21
- __exportStar(require("./renderText"), exports);
20
+ __exportStar(require("./placeText"), exports);
22
21
  __exportStar(require("./htmlToImage"), exports);
23
22
  __exportStar(require("./toPx"), exports);
24
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,8CAA4B;AAC5B,oDAAkC;AAClC,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,yCAAuB"}
@@ -0,0 +1,2 @@
1
+ import { BoundingBox, HyperNode } from '../types';
2
+ export declare const placeBoundingBox: (box: BoundingBox) => Promise<HyperNode>;
@@ -0,0 +1,21 @@
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.placeBoundingBox = void 0;
13
+ const virtual_dom_1 = require("virtual-dom");
14
+ const toPx_1 = require("./toPx");
15
+ 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
+ }, []);
19
+ });
20
+ exports.placeBoundingBox = placeBoundingBox;
21
+ //# sourceMappingURL=placeBoundingBox.js.map
@@ -0,0 +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"}