postext 1.51.0 → 1.51.1

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 (49) hide show
  1. package/dist/__tests__/defaults/stripRoundTrip.harness.d.ts +65 -0
  2. package/dist/__tests__/defaults/stripRoundTrip.harness.d.ts.map +1 -0
  3. package/dist/__tests__/defaults/stripRoundTrip.harness.js +493 -0
  4. package/dist/__tests__/defaults/stripRoundTrip.harness.js.map +1 -0
  5. package/dist/__tests__/defaults/stripRoundTrip.part1.test.d.ts +2 -0
  6. package/dist/__tests__/defaults/stripRoundTrip.part1.test.d.ts.map +1 -0
  7. package/dist/__tests__/defaults/stripRoundTrip.part1.test.js +4 -0
  8. package/dist/__tests__/defaults/stripRoundTrip.part1.test.js.map +1 -0
  9. package/dist/__tests__/defaults/stripRoundTrip.part2.test.d.ts +2 -0
  10. package/dist/__tests__/defaults/stripRoundTrip.part2.test.d.ts.map +1 -0
  11. package/dist/__tests__/defaults/stripRoundTrip.part2.test.js +4 -0
  12. package/dist/__tests__/defaults/stripRoundTrip.part2.test.js.map +1 -0
  13. package/dist/__tests__/defaults/stripRoundTrip.part3.test.d.ts +2 -0
  14. package/dist/__tests__/defaults/stripRoundTrip.part3.test.d.ts.map +1 -0
  15. package/dist/__tests__/defaults/stripRoundTrip.part3.test.js +4 -0
  16. package/dist/__tests__/defaults/stripRoundTrip.part3.test.js.map +1 -0
  17. package/dist/__tests__/defaults/stripRoundTrip.part4.test.d.ts +2 -0
  18. package/dist/__tests__/defaults/stripRoundTrip.part4.test.d.ts.map +1 -0
  19. package/dist/__tests__/defaults/stripRoundTrip.part4.test.js +4 -0
  20. package/dist/__tests__/defaults/stripRoundTrip.part4.test.js.map +1 -0
  21. package/dist/__tests__/defaults/stripRoundTrip.part5.test.d.ts +2 -0
  22. package/dist/__tests__/defaults/stripRoundTrip.part5.test.d.ts.map +1 -0
  23. package/dist/__tests__/defaults/stripRoundTrip.part5.test.js +4 -0
  24. package/dist/__tests__/defaults/stripRoundTrip.part5.test.js.map +1 -0
  25. package/dist/__tests__/defaults/stripRoundTrip.part6.test.d.ts +2 -0
  26. package/dist/__tests__/defaults/stripRoundTrip.part6.test.d.ts.map +1 -0
  27. package/dist/__tests__/defaults/stripRoundTrip.part6.test.js +4 -0
  28. package/dist/__tests__/defaults/stripRoundTrip.part6.test.js.map +1 -0
  29. package/dist/__tests__/defaults/stripRoundTrip.test.js +10 -444
  30. package/dist/__tests__/defaults/stripRoundTrip.test.js.map +1 -1
  31. package/dist/comics/lettering/__tests__/strictPlacement.fixtures.d.ts +12 -0
  32. package/dist/comics/lettering/__tests__/strictPlacement.fixtures.d.ts.map +1 -0
  33. package/dist/comics/lettering/__tests__/strictPlacement.fixtures.js +22 -0
  34. package/dist/comics/lettering/__tests__/strictPlacement.fixtures.js.map +1 -0
  35. package/dist/comics/lettering/__tests__/strictPlacement.ja.test.d.ts +2 -0
  36. package/dist/comics/lettering/__tests__/strictPlacement.ja.test.d.ts.map +1 -0
  37. package/dist/comics/lettering/__tests__/strictPlacement.ja.test.js +13 -0
  38. package/dist/comics/lettering/__tests__/strictPlacement.ja.test.js.map +1 -0
  39. package/dist/comics/lettering/__tests__/strictPlacement.off.test.d.ts +2 -0
  40. package/dist/comics/lettering/__tests__/strictPlacement.off.test.d.ts.map +1 -0
  41. package/dist/comics/lettering/__tests__/strictPlacement.off.test.js +17 -0
  42. package/dist/comics/lettering/__tests__/strictPlacement.off.test.js.map +1 -0
  43. package/dist/comics/lettering/__tests__/strictPlacement.test.js +2 -49
  44. package/dist/comics/lettering/__tests__/strictPlacement.test.js.map +1 -1
  45. package/dist/comics/lettering/__tests__/strictPlacement.zh.test.d.ts +2 -0
  46. package/dist/comics/lettering/__tests__/strictPlacement.zh.test.d.ts.map +1 -0
  47. package/dist/comics/lettering/__tests__/strictPlacement.zh.test.js +23 -0
  48. package/dist/comics/lettering/__tests__/strictPlacement.zh.test.js.map +1 -0
  49. package/package.json +1 -1
@@ -0,0 +1,22 @@
1
+ // The panel the strictPlacement tests letter (#728), shared by the files
2
+ // they are split in so the workers share the minute they take (#1118).
3
+ import { letterPanelDetailed } from '../letter';
4
+ import { presetLetteringStyles } from '../presets';
5
+ export const rect = (x, y, width, height) => ({ x, y, width, height });
6
+ export const corners = (r) => [{ x: r.x, y: r.y }, { x: r.x + r.width, y: r.y }, { x: r.x + r.width, y: r.y + r.height }, { x: r.x, y: r.y + r.height }];
7
+ /** Two figures side by side in a panel `w` × `h`, and three balloons. */
8
+ export function roof(w, h, em, locale, texts, env) {
9
+ const st = presetLetteringStyles({ fontSizePx: em, locale, fontFamily: 'Test' });
10
+ const cell = rect(0, 0, w, h);
11
+ const anchors = [
12
+ { id: 'hana', mouth: { x: w * 0.36, y: h * 0.62 }, face: rect(w * 0.28, h * 0.42, w * 0.16, h * 0.4), visible: true },
13
+ { id: 'sora', mouth: { x: w * 0.64, y: h * 0.62 }, face: rect(w * 0.56, h * 0.42, w * 0.16, h * 0.4), visible: true },
14
+ ];
15
+ const panel = { index: 0, polygon: corners(cell), bbox: cell, insetPx: 5, direction: 'ltr', writingMode: 'horizontal', locale, anchors, dpi: 96 };
16
+ const item = (id, order, speaker, text) => ({ id, order, kind: 'balloon', speaker, text, sourceStart: order * 100, sourceEnd: order * 100 + 10, style: st.speech });
17
+ const r = letterPanelDetailed(panel, [item('a', 0, 'hana', texts[0]), item('b', 1, 'sora', texts[1]), item('c', 2, 'hana', texts[2])], env);
18
+ return { lines: r.balloons.map((b) => b.text[0].lines.map((l) => l.text).join('/')), boxes: r.balloons.map((b) => b.bbox), diagnostics: r.diagnostics };
19
+ }
20
+ export const ZH = ['……其实,我有点害怕', '我也是。明明我又不上场', '噗,你在说什么呀'];
21
+ export const JA = ['……ほんとはね、ちょっと怖いんだ', '僕も。試合に出ないのに', 'ふふっ、なにそれ'];
22
+ //# sourceMappingURL=strictPlacement.fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictPlacement.fixtures.js","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.fixtures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=strictPlacement.ja.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictPlacement.ja.test.d.ts","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.ja.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ // #728 strictPlacement on Japanese lettering (split from strictPlacement.test.ts, #1118).
2
+ import { describe, it, expect, beforeAll } from 'vitest';
3
+ import { installStubMeasure } from './stubMeasure';
4
+ import { roof, JA } from './strictPlacement.fixtures';
5
+ beforeAll(() => installStubMeasure());
6
+ describe('strictPlacement (#728)', () => {
7
+ for (const [w, h, em] of [[300, 130, 12], [340, 150, 14], [380, 170, 16]]) {
8
+ it(`does not touch Japanese lettering, a ${w} × ${h} panel`, () => {
9
+ expect(roof(w, h, em, 'ja', JA, { strictPlacement: true })).toEqual(roof(w, h, em, 'ja', JA, {}));
10
+ });
11
+ }
12
+ });
13
+ //# sourceMappingURL=strictPlacement.ja.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictPlacement.ja.test.js","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.ja.test.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAEtD,SAAS,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAEtC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAU,EAAE,CAAC;QACnF,EAAE,CAAC,wCAAwC,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=strictPlacement.off.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictPlacement.off.test.d.ts","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.off.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ // #728 strictPlacement off, and on Latin lettering (split from strictPlacement.test.ts, #1118).
2
+ import { describe, it, expect, beforeAll } from 'vitest';
3
+ import { installStubMeasure } from './stubMeasure';
4
+ import { roof, ZH } from './strictPlacement.fixtures';
5
+ beforeAll(() => installStubMeasure());
6
+ describe('strictPlacement (#728)', () => {
7
+ it('false, or unset, letters a panel as before', () => {
8
+ const unset = roof(300, 130, 12, 'zh-Hans', ZH, {});
9
+ const off = roof(300, 130, 12, 'zh-Hans', ZH, { strictPlacement: false });
10
+ expect(off).toEqual(unset);
11
+ });
12
+ it('does not touch Latin lettering', () => {
13
+ const en = ['Honestly, I am a little scared.', 'Me too. And I am not even playing.', 'Pff, what are you on about?'];
14
+ expect(roof(300, 130, 12, 'en', en, { strictPlacement: true })).toEqual(roof(300, 130, 12, 'en', en, {}));
15
+ });
16
+ });
17
+ //# sourceMappingURL=strictPlacement.off.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictPlacement.off.test.js","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.off.test.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAEtD,SAAS,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAEtC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,EAAE,GAA6B,CAAC,iCAAiC,EAAE,oCAAoC,EAAE,6BAA6B,CAAC,CAAC;QAC9I,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -6,29 +6,13 @@
6
6
  // postext 1.27 lettered it.
7
7
  import { describe, it, expect, beforeAll } from 'vitest';
8
8
  import { installStubMeasure } from './stubMeasure';
9
- import { letterPanelDetailed } from '../letter';
10
9
  import { presetLetteringStyles } from '../presets';
11
10
  import { prepareText, readLetteringText, breakPoints } from '../text';
12
11
  import { shapeText } from '../shape-text';
13
12
  import { buildDocument } from '../../../pipeline';
13
+ import { ZH } from './strictPlacement.fixtures';
14
+ // The panel tests are in strictPlacement.{zh,off,ja}.test.ts (#1118).
14
15
  beforeAll(() => installStubMeasure());
15
- const rect = (x, y, width, height) => ({ x, y, width, height });
16
- const corners = (r) => [{ x: r.x, y: r.y }, { x: r.x + r.width, y: r.y }, { x: r.x + r.width, y: r.y + r.height }, { x: r.x, y: r.y + r.height }];
17
- /** Two figures side by side in a panel `w` × `h`, and three balloons. */
18
- function roof(w, h, em, locale, texts, env) {
19
- const st = presetLetteringStyles({ fontSizePx: em, locale, fontFamily: 'Test' });
20
- const cell = rect(0, 0, w, h);
21
- const anchors = [
22
- { id: 'hana', mouth: { x: w * 0.36, y: h * 0.62 }, face: rect(w * 0.28, h * 0.42, w * 0.16, h * 0.4), visible: true },
23
- { id: 'sora', mouth: { x: w * 0.64, y: h * 0.62 }, face: rect(w * 0.56, h * 0.42, w * 0.16, h * 0.4), visible: true },
24
- ];
25
- const panel = { index: 0, polygon: corners(cell), bbox: cell, insetPx: 5, direction: 'ltr', writingMode: 'horizontal', locale, anchors, dpi: 96 };
26
- const item = (id, order, speaker, text) => ({ id, order, kind: 'balloon', speaker, text, sourceStart: order * 100, sourceEnd: order * 100 + 10, style: st.speech });
27
- const r = letterPanelDetailed(panel, [item('a', 0, 'hana', texts[0]), item('b', 1, 'sora', texts[1]), item('c', 2, 'hana', texts[2])], env);
28
- return { lines: r.balloons.map((b) => b.text[0].lines.map((l) => l.text).join('/')), boxes: r.balloons.map((b) => b.bbox), diagnostics: r.diagnostics };
29
- }
30
- const ZH = ['……其实,我有点害怕', '我也是。明明我又不上场', '噗,你在说什么呀'];
31
- const JA = ['……ほんとはね、ちょっと怖いんだ', '僕も。試合に出ないのに', 'ふふっ、なにそれ'];
32
16
  describe('the words a text may be cut in', () => {
33
17
  const cuts = (text, locale) => {
34
18
  const style = presetLetteringStyles({ fontSizePx: 12, locale, fontFamily: 'Test' }).speech;
@@ -59,37 +43,6 @@ describe('the words a text may be cut in', () => {
59
43
  expect(narrow.wordCuts).toBe(1);
60
44
  });
61
45
  });
62
- describe('strictPlacement (#728)', () => {
63
- // Panels whose lettering is clean either way (no diagnostic): what
64
- // changes is the shape the first balloon is given.
65
- for (const [w, h, em] of [[300, 130, 12], [340, 150, 14], [380, 170, 16]]) {
66
- it(`a ${w} × ${h} panel: 其实 is cut without it, whole with it`, () => {
67
- const lax = roof(w, h, em, 'zh-Hans', ZH, {});
68
- const strict = roof(w, h, em, 'zh-Hans', ZH, { strictPlacement: true });
69
- expect(lax.diagnostics).toEqual([]);
70
- expect(strict.diagnostics).toEqual([]);
71
- expect(lax.lines[0]).toContain('其/实');
72
- expect(strict.lines[0]).not.toContain('其/实');
73
- expect(strict.lines[0]).toContain('其实,');
74
- // The other two balloons keep their lines.
75
- expect(strict.lines.slice(1)).toEqual(lax.lines.slice(1));
76
- });
77
- }
78
- it('false, or unset, letters a panel as before', () => {
79
- const unset = roof(300, 130, 12, 'zh-Hans', ZH, {});
80
- const off = roof(300, 130, 12, 'zh-Hans', ZH, { strictPlacement: false });
81
- expect(off).toEqual(unset);
82
- });
83
- it('does not touch Japanese lettering', () => {
84
- for (const [w, h, em] of [[300, 130, 12], [340, 150, 14], [380, 170, 16]]) {
85
- expect(roof(w, h, em, 'ja', JA, { strictPlacement: true })).toEqual(roof(w, h, em, 'ja', JA, {}));
86
- }
87
- });
88
- it('does not touch Latin lettering', () => {
89
- const en = ['Honestly, I am a little scared.', 'Me too. And I am not even playing.', 'Pff, what are you on about?'];
90
- expect(roof(300, 130, 12, 'en', en, { strictPlacement: true })).toEqual(roof(300, 130, 12, 'en', en, {}));
91
- });
92
- });
93
46
  describe('comics.lettering.strictPlacement in the build (#728)', () => {
94
47
  // One panel that fills a page of 340 × 154 px: two figures, three lines.
95
48
  const picture = {
@@ -1 +1 @@
1
- {"version":3,"file":"strictPlacement.test.js","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strictPlacement.test.js","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=strictPlacement.zh.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictPlacement.zh.test.d.ts","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.zh.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ // #728 strictPlacement on Chinese panels (split from strictPlacement.test.ts, #1118).
2
+ import { describe, it, expect, beforeAll } from 'vitest';
3
+ import { installStubMeasure } from './stubMeasure';
4
+ import { roof, ZH } from './strictPlacement.fixtures';
5
+ beforeAll(() => installStubMeasure());
6
+ describe('strictPlacement (#728)', () => {
7
+ // Panels whose lettering is clean either way (no diagnostic): what
8
+ // changes is the shape the first balloon is given.
9
+ for (const [w, h, em] of [[300, 130, 12], [340, 150, 14], [380, 170, 16]]) {
10
+ it(`a ${w} × ${h} panel: 其实 is cut without it, whole with it`, () => {
11
+ const lax = roof(w, h, em, 'zh-Hans', ZH, {});
12
+ const strict = roof(w, h, em, 'zh-Hans', ZH, { strictPlacement: true });
13
+ expect(lax.diagnostics).toEqual([]);
14
+ expect(strict.diagnostics).toEqual([]);
15
+ expect(lax.lines[0]).toContain('其/实');
16
+ expect(strict.lines[0]).not.toContain('其/实');
17
+ expect(strict.lines[0]).toContain('其实,');
18
+ // The other two balloons keep their lines.
19
+ expect(strict.lines.slice(1)).toEqual(lax.lines.slice(1));
20
+ });
21
+ }
22
+ });
23
+ //# sourceMappingURL=strictPlacement.zh.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictPlacement.zh.test.js","sourceRoot":"","sources":["../../../../src/comics/lettering/__tests__/strictPlacement.zh.test.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAEtD,SAAS,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAEtC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,mEAAmE;IACnE,mDAAmD;IACnD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAU,EAAE,CAAC;QACnF,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,EAAE,GAAG,EAAE;YAClE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACzC,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -32,7 +32,7 @@
32
32
  "react",
33
33
  "web-worker"
34
34
  ],
35
- "version": "1.51.0",
35
+ "version": "1.51.1",
36
36
  "type": "module",
37
37
  "license": "MIT",
38
38
  "homepage": "https://postext.dev/",