@hellkite/pipkin 0.7.0 → 0.8.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 (43) hide show
  1. package/build/src/lib/replacement.d.ts +5 -3
  2. package/build/src/lib/replacement.js +6 -3
  3. package/build/src/lib/replacement.js.map +1 -1
  4. package/build/src/lib/template.d.ts +10 -17
  5. package/build/src/lib/template.js +134 -42
  6. package/build/src/lib/template.js.map +1 -1
  7. package/build/src/lib/types/containers.js +2 -7
  8. package/build/src/lib/types/containers.js.map +1 -1
  9. package/build/src/lib/types/image.d.ts +6 -5
  10. package/build/src/lib/types/image.js +2 -7
  11. package/build/src/lib/types/image.js.map +1 -1
  12. package/build/src/lib/types/index.d.ts +1 -0
  13. package/build/src/lib/types/index.js +1 -0
  14. package/build/src/lib/types/index.js.map +1 -1
  15. package/build/src/lib/types/layer.d.ts +6 -0
  16. package/build/src/lib/types/layer.js +7 -0
  17. package/build/src/lib/types/layer.js.map +1 -1
  18. package/build/src/lib/types/replacement.d.ts +2 -2
  19. package/build/src/lib/types/template.d.ts +13 -0
  20. package/build/src/lib/types/template.js +10 -0
  21. package/build/src/lib/types/template.js.map +1 -0
  22. package/build/src/lib/types/text.d.ts +2 -2
  23. package/build/src/lib/types/text.js +3 -10
  24. package/build/src/lib/types/text.js.map +1 -1
  25. package/build/src/lib/utils/index.d.ts +0 -2
  26. package/build/src/lib/utils/index.js +0 -2
  27. package/build/src/lib/utils/index.js.map +1 -1
  28. package/build/src/test.js +72 -18
  29. package/build/src/test.js.map +1 -1
  30. package/package.json +1 -1
  31. package/roadmap.md +1 -0
  32. package/src/lib/replacement.ts +6 -5
  33. package/src/lib/template.ts +269 -77
  34. package/src/lib/types/containers.ts +2 -4
  35. package/src/lib/types/image.ts +15 -10
  36. package/src/lib/types/index.ts +1 -0
  37. package/src/lib/types/layer.ts +15 -0
  38. package/src/lib/types/replacement.ts +2 -2
  39. package/src/lib/types/template.ts +22 -0
  40. package/src/lib/types/text.ts +6 -7
  41. package/src/lib/utils/index.ts +0 -2
  42. package/src/lib/utils/placeImage.ts +0 -69
  43. package/src/lib/utils/placeText.ts +0 -110
@@ -1,9 +1,11 @@
1
- import { ReplacementMap, ImageType } from "./types";
1
+ import { ReplacementMap, StaticImageRef } from "./types";
2
2
  /**
3
3
  * Represents a replacement map between sets of words and symbols
4
4
  */
5
5
  export declare class Replacement {
6
- private readonly replacementMap;
7
- replace(words: Array<string>, symbol: ImageType): this;
6
+ protected readonly replacementMap: ReplacementMap;
7
+ replace(words: Array<string>, symbol: StaticImageRef): this;
8
+ }
9
+ export declare class ReplacementBuilder extends Replacement {
8
10
  build(): ReplacementMap;
9
11
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Replacement = void 0;
3
+ exports.ReplacementBuilder = exports.Replacement = void 0;
4
4
  /**
5
5
  * Represents a replacement map between sets of words and symbols
6
6
  */
@@ -10,13 +10,16 @@ class Replacement {
10
10
  }
11
11
  replace(words, symbol) {
12
12
  words.forEach(word => {
13
- this.replacementMap[word] = symbol.clone();
13
+ this.replacementMap[word] = symbol;
14
14
  });
15
15
  return this;
16
16
  }
17
+ }
18
+ exports.Replacement = Replacement;
19
+ class ReplacementBuilder extends Replacement {
17
20
  build() {
18
21
  return this.replacementMap;
19
22
  }
20
23
  }
21
- exports.Replacement = Replacement;
24
+ exports.ReplacementBuilder = ReplacementBuilder;
22
25
  //# sourceMappingURL=replacement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replacement.js","sourceRoot":"","sources":["../../../src/lib/replacement.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAW;IAAxB;QAEqB,mBAAc,GAAmB,EAAE,CAAC;IAYzD,CAAC;IAVG,OAAO,CAAC,KAAoB,EAAE,MAAiB;QAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;CACJ;AAdD,kCAcC"}
1
+ {"version":3,"file":"replacement.js","sourceRoot":"","sources":["../../../src/lib/replacement.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAW;IAAxB;QACuB,mBAAc,GAAmB,EAAE,CAAC;IAQ3D,CAAC;IANG,OAAO,CAAC,KAAoB,EAAE,MAAsB;QAChD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AATD,kCASC;AAED,MAAa,kBAAmB,SAAQ,WAAW;IAC/C,KAAK;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;CACJ;AAJD,gDAIC"}
@@ -1,25 +1,14 @@
1
1
  import * as fs from 'fs';
2
- import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions, HyperNode, ElementsFn } from './types';
3
- type RequiredTemplateOptions = {
4
- height: number;
5
- width: number;
6
- color: number;
7
- };
8
- type OptionalTemplateOptions = Partial<{
9
- defaultFontFamily: string;
10
- defaultAssetsPath: string;
11
- }>;
12
- export type TemplateOptions = RequiredTemplateOptions & OptionalTemplateOptions;
13
- export type LayerFnContext = {
14
- debugMode: boolean;
15
- };
2
+ import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions, HyperNode, ElementsFn, TemplateOptions } from './types';
3
+ export type LayerFnContext = {};
16
4
  export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<Array<HyperNode>>;
17
5
  export type TemplateLayerFn<EntryType extends Record<string, string>> = (template: Template<EntryType>) => Template<EntryType>;
18
6
  export declare class Template<EntryType extends Record<string, string>> {
19
7
  private readonly fonts;
20
8
  private readonly layers;
9
+ private readonly debugPoints;
21
10
  private readonly background;
22
- private debugMode;
11
+ private renderBoundingBox?;
23
12
  private defaultFontFamily?;
24
13
  private defaultAssetsPath?;
25
14
  private constructor();
@@ -36,13 +25,17 @@ export declare class Template<EntryType extends Record<string, string>> {
36
25
  loadImage: (imagePath: string | Buffer) => Promise<ImageType>;
37
26
  text: (ref: TextRef<EntryType>, box: BoundingBox, options?: TextLayerOptions<EntryType>) => this;
38
27
  font(path: fs.PathLike, name: string): this;
39
- debug(): this;
28
+ debug: () => this;
40
29
  render(entry: EntryType): Promise<ImageType>;
41
30
  renderAll(entries: Array<EntryType>, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
42
31
  fromCsv(path: string, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
43
32
  private imageFromImageRef;
33
+ private imageFromStaticImageRef;
44
34
  private textFromTextRef;
45
35
  private elementFromElementRef;
46
36
  private shouldSkipLayerForEntry;
37
+ private placeText;
38
+ private prepareText;
39
+ private placeImage;
40
+ private prepareImage;
47
41
  }
48
- export {};
@@ -57,30 +57,26 @@ 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 DEFAULT_TEMPLATE_OPTIONS = {
61
- height: 1050,
62
- width: 750,
63
- color: (0, jimp_1.rgbaToInt)(255, 255, 255, 255),
64
- };
60
+ const replacement_1 = require("./replacement");
65
61
  class Template {
66
62
  // disallow constructor initialization
67
63
  constructor(options) {
68
64
  this.fonts = {};
69
65
  this.layers = [];
70
- this.debugMode = false;
66
+ this.debugPoints = [];
71
67
  this.template = (fn) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
72
68
  const template = fn(this.shadowTemplate());
73
69
  const image = yield template.render(entry);
74
70
  return [
75
- yield (0, utils_1.placeImage)({
71
+ yield this.placeImage({
76
72
  image,
77
73
  box: Object.assign({ left: 0, top: 0 }, this.backgroundSize),
78
74
  options: types_1.DEFAULT_IMAGE_LAYER_OPTIONS,
79
75
  }),
80
76
  ];
81
77
  }));
82
- this.container = (elementsFn, box, packingFn, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
83
- const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_CONTAINER_OPTIONS, options);
78
+ this.container = (elementsFn, box, packingFn, options) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
79
+ const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_CONTAINER_OPTIONS, { renderBoundingBox: this.renderBoundingBox }, options);
84
80
  if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
85
81
  return [];
86
82
  }
@@ -88,7 +84,7 @@ class Template {
88
84
  const elements = yield Promise.all(elementRefs.map(elementRef => this.elementFromElementRef(entry, elementRef)));
89
85
  const result = yield packingFn(box, elements);
90
86
  // debug mode
91
- if (debugMode) {
87
+ if (mergedOptions.renderBoundingBox) {
92
88
  const debugImage = yield (0, utils_1.placeBoundingBox)(box);
93
89
  return [result, debugImage];
94
90
  }
@@ -97,19 +93,22 @@ class Template {
97
93
  this.hbox = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.hboxPackingFn)(options), options);
98
94
  this.vbox = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.vboxPackingFn)(options), options);
99
95
  this.grid = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.gridPackingFn)(options), options);
100
- this.image = (ref, box, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
101
- const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, { assetsPath: this.defaultAssetsPath }, options);
96
+ this.image = (ref, box, options) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
97
+ const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, {
98
+ assetsPath: this.defaultAssetsPath,
99
+ renderBoundingBox: this.renderBoundingBox,
100
+ }, options);
102
101
  if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
103
102
  return [];
104
103
  }
105
- const image = yield this.imageFromImageRef(entry, ref, mergedOptions);
106
- const result = yield (0, utils_1.placeImage)({
104
+ const image = yield this.imageFromImageRef(entry, ref, mergedOptions.assetsPath);
105
+ const result = yield this.placeImage({
107
106
  image,
108
107
  box,
109
108
  options: mergedOptions,
110
109
  });
111
110
  // debug mode
112
- if (debugMode) {
111
+ if (mergedOptions.renderBoundingBox) {
113
112
  const debugImage = yield (0, utils_1.placeBoundingBox)(box);
114
113
  return [result, debugImage];
115
114
  }
@@ -119,32 +118,54 @@ class Template {
119
118
  const image = (yield jimp_1.Jimp.read(imagePath));
120
119
  return image;
121
120
  });
122
- this.text = (ref, box, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
121
+ this.text = (ref, box, options) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
123
122
  const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_TEXT_LAYER_OPTIONS, {
124
123
  font: {
125
124
  family: this.defaultFontFamily,
126
125
  },
126
+ renderBoundingBox: this.renderBoundingBox,
127
127
  }, options);
128
128
  if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
129
129
  return [];
130
130
  }
131
131
  const text = this.textFromTextRef(entry, ref);
132
- const result = yield (0, utils_1.placeText)({
132
+ const result = yield this.placeText({
133
133
  text,
134
134
  box,
135
135
  options: mergedOptions,
136
136
  });
137
137
  // debug mode
138
- if (debugMode) {
138
+ if (mergedOptions.renderBoundingBox) {
139
139
  const debugImage = yield (0, utils_1.placeBoundingBox)(box);
140
140
  return [result, debugImage];
141
141
  }
142
142
  return [result];
143
143
  }));
144
- this.imageFromImageRef = (entry, ref, options) => __awaiter(this, void 0, void 0, function* () {
144
+ this.debug = () => {
145
+ this.debugPoints.push(this.layers.length);
146
+ return this;
147
+ };
148
+ this.imageFromImageRef = (entry, ref, assetsPath) => __awaiter(this, void 0, void 0, function* () {
145
149
  const pathSegments = [];
146
- if (options.assetsPath) {
147
- pathSegments.push(options.assetsPath);
150
+ if (assetsPath.length) {
151
+ pathSegments.push(assetsPath);
152
+ }
153
+ if ('key' in ref) {
154
+ const fileName = entry[ref.key];
155
+ return this.loadImage(path_1.default.join(...pathSegments, fileName));
156
+ }
157
+ else if ('pathFn' in ref) {
158
+ const fileName = ref.pathFn(entry);
159
+ return this.loadImage(path_1.default.join(...pathSegments, fileName));
160
+ }
161
+ else {
162
+ return this.imageFromStaticImageRef(ref, assetsPath);
163
+ }
164
+ });
165
+ this.imageFromStaticImageRef = (ref, assetsPath) => __awaiter(this, void 0, void 0, function* () {
166
+ const pathSegments = [];
167
+ if (assetsPath.length) {
168
+ pathSegments.push(assetsPath);
148
169
  }
149
170
  if ('buffer' in ref) {
150
171
  return this.loadImage(ref.buffer);
@@ -155,14 +176,6 @@ class Template {
155
176
  else if ('absolutePath' in ref) {
156
177
  return this.loadImage(ref.absolutePath);
157
178
  }
158
- else if ('key' in ref) {
159
- const fileName = entry[ref.key];
160
- return this.loadImage(path_1.default.join(...pathSegments, fileName));
161
- }
162
- else if ('pathFn' in ref) {
163
- const fileName = ref.pathFn(entry);
164
- return this.loadImage(path_1.default.join(...pathSegments, fileName));
165
- }
166
179
  else {
167
180
  throw new Error('Unknown ImageRef variant');
168
181
  }
@@ -184,15 +197,15 @@ class Template {
184
197
  this.elementFromElementRef = (entry, ref) => __awaiter(this, void 0, void 0, function* () {
185
198
  if ('text' in ref) {
186
199
  const options = (0, lodash_merge_1.default)({}, types_1.DEFAULT_TEXT_LAYER_OPTIONS, ref.options);
187
- return (0, utils_1.prepareText)({
200
+ return this.prepareText({
188
201
  text: this.textFromTextRef(entry, ref.text),
189
202
  options,
190
203
  });
191
204
  }
192
205
  else if ('image' in ref) {
193
206
  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),
207
+ return this.prepareImage({
208
+ image: yield this.imageFromImageRef(entry, ref.image, options.assetsPath),
196
209
  options,
197
210
  });
198
211
  }
@@ -210,6 +223,83 @@ class Template {
210
223
  }
211
224
  return (_a = options.skip) !== null && _a !== void 0 ? _a : false;
212
225
  };
226
+ this.placeText = (_a) => __awaiter(this, [_a], void 0, function* ({ text, box, options, }) {
227
+ return (0, virtual_dom_1.h)('div', {
228
+ style: Object.assign({ display: 'flex', overflow: 'visible', position: 'absolute', justifyContent: options.justifyContent, alignItems: options.alignItems }, (0, utils_1.boundingBoxToPx)(box)),
229
+ }, [
230
+ yield this.prepareText({
231
+ text,
232
+ options,
233
+ }),
234
+ ]);
235
+ });
236
+ this.prepareText = (_a) => __awaiter(this, [_a], void 0, function* ({ text, options, }) {
237
+ let textChildren = [text];
238
+ const replacementBuilder = new replacement_1.ReplacementBuilder();
239
+ options.replacementFn(replacementBuilder);
240
+ const replacementMap = replacementBuilder.build();
241
+ for (const [word, imageRef] of Object.entries(replacementMap)) {
242
+ const regex = new RegExp(word, 'gi');
243
+ const textOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, { assetsPath: this.defaultAssetsPath }, options);
244
+ const image = yield this.imageFromStaticImageRef(imageRef, textOptions.assetsPath);
245
+ const imageBase64 = yield image.getBase64('image/png');
246
+ let tmpChildren = [];
247
+ for (const textSegment of textChildren) {
248
+ if (typeof textSegment !== 'string') {
249
+ continue;
250
+ }
251
+ const parts = textSegment.split(regex);
252
+ for (let index = 0; index < parts.length; index++) {
253
+ if (index > 0) {
254
+ tmpChildren.push((0, virtual_dom_1.h)('img', {
255
+ style: {
256
+ display: 'inline',
257
+ verticalAlign: 'middle',
258
+ height: (0, utils_1.toPx)(options.font.size),
259
+ width: 'auto',
260
+ },
261
+ src: imageBase64,
262
+ }, []));
263
+ }
264
+ tmpChildren.push(parts[index]);
265
+ }
266
+ }
267
+ textChildren = tmpChildren;
268
+ }
269
+ return (0, virtual_dom_1.h)('div', {
270
+ style: {
271
+ overflow: 'visible',
272
+ overflowWrap: 'word-wrap',
273
+ whiteSpace: 'normal',
274
+ color: options.color,
275
+ fontFamily: options.font.family,
276
+ fontSize: options.font.size,
277
+ fontStyle: options.font.italic ? 'italic' : undefined,
278
+ fontWeight: options.font.bold ? 'bold' : undefined,
279
+ '-webkit-text-stroke': `${options.border.width}px ${options.border.color}`,
280
+ },
281
+ }, textChildren);
282
+ });
283
+ this.placeImage = (_a) => __awaiter(this, [_a], void 0, function* ({ image, box, options, }) {
284
+ return (0, virtual_dom_1.h)('div', {
285
+ style: Object.assign({ display: 'flex', position: 'absolute', scale: 1, justifyContent: options.justifyContent, alignItems: options.alignItems }, (0, utils_1.boundingBoxToPx)(box)),
286
+ }, [yield this.prepareImage({ image, options })]);
287
+ });
288
+ this.prepareImage = (_a) => __awaiter(this, [_a], void 0, function* ({ image, options, }) {
289
+ const imageBase64 = yield image.getBase64('image/png');
290
+ const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[options.scale];
291
+ return (0, virtual_dom_1.h)('img', {
292
+ style: {
293
+ objectFit,
294
+ flex: '1 1 auto',
295
+ minWidth: 0,
296
+ minHeight: 0,
297
+ maxWidth: '100%',
298
+ maxHeight: '100%',
299
+ },
300
+ src: imageBase64,
301
+ }, []);
302
+ });
213
303
  this.background = new jimp_1.Jimp({
214
304
  height: options.height,
215
305
  width: options.width,
@@ -219,7 +309,7 @@ class Template {
219
309
  this.defaultAssetsPath = options.defaultAssetsPath;
220
310
  }
221
311
  static new(options) {
222
- return new Template(Object.assign(Object.assign({}, DEFAULT_TEMPLATE_OPTIONS), options));
312
+ return new Template(Object.assign(Object.assign({}, types_1.DEFAULT_TEMPLATE_OPTIONS), options));
223
313
  }
224
314
  shadowTemplate() {
225
315
  return Template.new({
@@ -242,16 +332,12 @@ class Template {
242
332
  this.fonts[name] = fs.readFileSync(path.toString()).toString('base64');
243
333
  return this;
244
334
  }
245
- debug() {
246
- this.debugMode = true;
247
- return this;
248
- }
249
335
  render(entry) {
250
336
  return __awaiter(this, void 0, void 0, function* () {
251
337
  const results = yield Promise.all(this.layers.map(layerFn => layerFn(entry, {
252
- debugMode: this.debugMode,
338
+ renderBoundingBox: this.renderBoundingBox,
253
339
  })));
254
- const document = (0, virtual_dom_1.h)('html', [
340
+ const buildDocument = (children) => (0, virtual_dom_1.h)('html', [
255
341
  (0, virtual_dom_1.h)('head', [
256
342
  (0, virtual_dom_1.h)('style', Object.entries(this.fonts)
257
343
  .map(([name, data]) => `@font-face {
@@ -260,10 +346,16 @@ class Template {
260
346
  }`)
261
347
  .join('\n')),
262
348
  ]),
263
- (0, virtual_dom_1.h)('body', (0, lodash_flatten_1.default)(results)),
349
+ (0, virtual_dom_1.h)('body', children),
264
350
  ]);
265
- const renderedLayers = yield (0, utils_1.htmlToImage)(document, this.backgroundSize);
266
- return this.background.clone().composite(renderedLayers);
351
+ // TODO: move it to a proper place
352
+ 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);
355
+ yield debugImage.write('assets/debug-1.png');
356
+ }
357
+ const render = yield (0, utils_1.htmlToImage)(buildDocument((0, lodash_flatten_1.default)(results)), this.backgroundSize);
358
+ return this.background.clone().composite(render);
267
359
  });
268
360
  }
269
361
  renderAll(entries, options) {
@@ -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,13 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_GRID_CONTAINER_OPTIONS = exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = exports.DEFAULT_CONTAINER_OPTIONS = void 0;
4
- exports.DEFAULT_CONTAINER_OPTIONS = {
5
- gap: 0,
6
- justifyContent: 'normal',
7
- alignItems: 'center',
8
- scale: 'none',
9
- skip: false,
10
- };
4
+ const layer_1 = require("./layer");
5
+ exports.DEFAULT_CONTAINER_OPTIONS = Object.assign(Object.assign({}, layer_1.DEFAULT_LAYER_OPTIONS), { gap: 0, scale: 'none' });
11
6
  exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = Object.assign(Object.assign({}, exports.DEFAULT_CONTAINER_OPTIONS), { reversed: false });
12
7
  exports.DEFAULT_GRID_CONTAINER_OPTIONS = Object.assign(Object.assign({}, exports.DEFAULT_CONTAINER_OPTIONS), { size: 3, direction: 'rows' });
13
8
  //# sourceMappingURL=containers.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;AAIA,mCAA8D;AAoBjD,QAAA,yBAAyB,mCAG/B,6BAAqB,KACxB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,MAAM,IACf;AAQW,QAAA,mCAAmC,mCAGzC,iCAAyB,KAC5B,QAAQ,EAAE,KAAK,IACjB;AAgBW,QAAA,8BAA8B,mCAGpC,iCAAyB,KAC5B,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,MAAM,IACnB"}
@@ -7,16 +7,17 @@ export type ImageType = JimpInstance;
7
7
  * Static images -> `buffer`, `path`, `absolutePath`
8
8
  * Dynamic images -> `key`, `pathFn`
9
9
  */
10
- export type ImageRef<EntryType extends Record<string, string>> = {
10
+ export type ImageRef<EntryType extends Record<string, string>> = StaticImageRef | {
11
+ key: keyof EntryType;
12
+ } | {
13
+ pathFn: (entry: EntryType) => string;
14
+ };
15
+ export type StaticImageRef = {
11
16
  buffer: Buffer;
12
17
  } | {
13
18
  path: string;
14
19
  } | {
15
20
  absolutePath: string;
16
- } | {
17
- key: keyof EntryType;
18
- } | {
19
- pathFn: (entry: EntryType) => string;
20
21
  };
21
22
  export type ImageLayerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
22
23
  /**
@@ -1,12 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_IMAGE_ALIGNMENT = exports.DEFAULT_IMAGE_LAYER_OPTIONS = void 0;
4
- exports.DEFAULT_IMAGE_LAYER_OPTIONS = {
5
- justifyContent: 'center',
6
- alignItems: 'center',
7
- scale: 'none',
8
- skip: false,
9
- assetsPath: ''
10
- };
4
+ const layer_1 = require("./layer");
5
+ exports.DEFAULT_IMAGE_LAYER_OPTIONS = Object.assign(Object.assign({}, layer_1.DEFAULT_LAYER_OPTIONS), { scale: 'none', assetsPath: '' });
11
6
  exports.DEFAULT_IMAGE_ALIGNMENT = 'center';
12
7
  //# sourceMappingURL=image.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/lib/types/image.ts"],"names":[],"mappings":";;;AAEA,mCAA8D;AAmCjD,QAAA,2BAA2B,mCAGjC,6BAAqB,KACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,EAAE,IAChB;AAQW,QAAA,uBAAuB,GAAc,QAAQ,CAAC"}
@@ -9,3 +9,4 @@ export * from './boundingBox';
9
9
  export * from './css';
10
10
  export * from './layer';
11
11
  export * from './hypernode';
12
+ export * from './template';
@@ -25,4 +25,5 @@ __exportStar(require("./boundingBox"), exports);
25
25
  __exportStar(require("./css"), exports);
26
26
  __exportStar(require("./layer"), exports);
27
27
  __exportStar(require("./hypernode"), exports);
28
+ __exportStar(require("./template"), exports);
28
29
  //# 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"}
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,3 +1,4 @@
1
+ import { RequiredDeep } from "type-fest";
1
2
  import { JustifyContent, AlignItems } from "./css";
2
3
  export type LayerOptions<EntryType extends Record<string, string>> = {
3
4
  /**
@@ -12,4 +13,9 @@ export type LayerOptions<EntryType extends Record<string, string>> = {
12
13
  * Decides if a layer should be rendered or not for a certain entry
13
14
  */
14
15
  skip?: boolean | ((entry: EntryType) => boolean);
16
+ /**
17
+ * Control if should render bounding box for this layer
18
+ */
19
+ renderBoundingBox?: boolean;
15
20
  };
21
+ export declare const DEFAULT_LAYER_OPTIONS: RequiredDeep<LayerOptions<Record<string, string>>>;
@@ -1,3 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_LAYER_OPTIONS = void 0;
4
+ exports.DEFAULT_LAYER_OPTIONS = {
5
+ justifyContent: 'center',
6
+ alignItems: 'center',
7
+ skip: false,
8
+ renderBoundingBox: false,
9
+ };
3
10
  //# sourceMappingURL=layer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../../src/lib/types/layer.ts"],"names":[],"mappings":""}
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,2 +1,2 @@
1
- import { ImageType } from './image';
2
- export type ReplacementMap = Record<string, ImageType>;
1
+ import { StaticImageRef } from './image';
2
+ export type ReplacementMap = Record<string, StaticImageRef>;
@@ -0,0 +1,13 @@
1
+ type RequiredTemplateOptions = {
2
+ height: number;
3
+ width: number;
4
+ color: number;
5
+ };
6
+ type OptionalTemplateOptions = Partial<{
7
+ defaultFontFamily: string;
8
+ defaultAssetsPath: string;
9
+ debug: boolean;
10
+ }>;
11
+ export type TemplateOptions = RequiredTemplateOptions & OptionalTemplateOptions;
12
+ export declare const DEFAULT_TEMPLATE_OPTIONS: RequiredTemplateOptions;
13
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_TEMPLATE_OPTIONS = void 0;
4
+ const jimp_1 = require("jimp");
5
+ exports.DEFAULT_TEMPLATE_OPTIONS = {
6
+ height: 1050,
7
+ width: 750,
8
+ color: (0, jimp_1.rgbaToInt)(255, 255, 255, 255),
9
+ };
10
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/lib/types/template.ts"],"names":[],"mappings":";;;AAAA,+BAAiC;AAiBpB,QAAA,wBAAwB,GAA4B;IAC7D,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAA,gBAAS,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CACvC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { RequiredDeep } from 'type-fest';
2
2
  import { LayerOptions } from './layer';
3
- import { ReplacementMap } from './replacement';
3
+ import { Replacement } from '../replacement';
4
4
  /**
5
5
  * Static text -> `text`
6
6
  * Dynamic text -> `key`, `textFn`
@@ -38,7 +38,7 @@ export type TextLayerOptions<EntryType extends Record<string, string>> = LayerOp
38
38
  width?: number;
39
39
  color?: string;
40
40
  };
41
- replacement?: ReplacementMap;
41
+ replacementFn?: (replace: Replacement) => Replacement;
42
42
  };
43
43
  export declare const DEFAULT_FONT: Required<FontOptions>;
44
44
  export type TextLayerSpecificOptions<EntryType extends Record<string, string>> = Omit<TextLayerOptions<EntryType>, keyof LayerOptions<EntryType>>;