@pdfme/manipulator 5.4.0 → 5.4.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 (85) hide show
  1. package/dist/cjs/__tests__/e2e/insert.e2e.test.js +32 -0
  2. package/dist/cjs/__tests__/e2e/insert.e2e.test.js.map +1 -0
  3. package/dist/cjs/__tests__/e2e/merge.e2e.test.js +20 -0
  4. package/dist/cjs/__tests__/e2e/merge.e2e.test.js.map +1 -0
  5. package/dist/cjs/__tests__/e2e/move.e2e.test.js +18 -0
  6. package/dist/cjs/__tests__/e2e/move.e2e.test.js.map +1 -0
  7. package/dist/cjs/__tests__/e2e/organize-complex.e2e.test.js +96 -0
  8. package/dist/cjs/__tests__/e2e/organize-complex.e2e.test.js.map +1 -0
  9. package/dist/cjs/__tests__/e2e/organize-single.e2e.test.js +68 -0
  10. package/dist/cjs/__tests__/e2e/organize-single.e2e.test.js.map +1 -0
  11. package/dist/cjs/__tests__/e2e/remove.e2e.test.js +28 -0
  12. package/dist/cjs/__tests__/e2e/remove.e2e.test.js.map +1 -0
  13. package/dist/cjs/__tests__/e2e/rotate.e2e.test.js +38 -0
  14. package/dist/cjs/__tests__/e2e/rotate.e2e.test.js.map +1 -0
  15. package/dist/cjs/__tests__/e2e/split.e2e.test.js +27 -0
  16. package/dist/cjs/__tests__/e2e/split.e2e.test.js.map +1 -0
  17. package/dist/cjs/__tests__/insert.test.js +18 -0
  18. package/dist/cjs/__tests__/insert.test.js.map +1 -0
  19. package/dist/cjs/__tests__/merge.test.js +16 -0
  20. package/dist/cjs/__tests__/merge.test.js.map +1 -0
  21. package/dist/cjs/__tests__/move.test.js +16 -0
  22. package/dist/cjs/__tests__/move.test.js.map +1 -0
  23. package/dist/cjs/__tests__/organize.test.js +75 -0
  24. package/dist/cjs/__tests__/organize.test.js.map +1 -0
  25. package/dist/cjs/__tests__/remove.test.js +20 -0
  26. package/dist/cjs/__tests__/remove.test.js.map +1 -0
  27. package/dist/cjs/__tests__/rotate.test.js +17 -0
  28. package/dist/cjs/__tests__/rotate.test.js.map +1 -0
  29. package/dist/cjs/__tests__/split.test.js +21 -0
  30. package/dist/cjs/__tests__/split.test.js.map +1 -0
  31. package/dist/cjs/__tests__/test-helpers.js +44 -0
  32. package/dist/cjs/__tests__/test-helpers.js.map +1 -0
  33. package/dist/esm/__tests__/e2e/insert.e2e.test.js +30 -0
  34. package/dist/esm/__tests__/e2e/insert.e2e.test.js.map +1 -0
  35. package/dist/esm/__tests__/e2e/merge.e2e.test.js +18 -0
  36. package/dist/esm/__tests__/e2e/merge.e2e.test.js.map +1 -0
  37. package/dist/esm/__tests__/e2e/move.e2e.test.js +16 -0
  38. package/dist/esm/__tests__/e2e/move.e2e.test.js.map +1 -0
  39. package/dist/esm/__tests__/e2e/organize-complex.e2e.test.js +94 -0
  40. package/dist/esm/__tests__/e2e/organize-complex.e2e.test.js.map +1 -0
  41. package/dist/esm/__tests__/e2e/organize-single.e2e.test.js +66 -0
  42. package/dist/esm/__tests__/e2e/organize-single.e2e.test.js.map +1 -0
  43. package/dist/esm/__tests__/e2e/remove.e2e.test.js +26 -0
  44. package/dist/esm/__tests__/e2e/remove.e2e.test.js.map +1 -0
  45. package/dist/esm/__tests__/e2e/rotate.e2e.test.js +36 -0
  46. package/dist/esm/__tests__/e2e/rotate.e2e.test.js.map +1 -0
  47. package/dist/esm/__tests__/e2e/split.e2e.test.js +25 -0
  48. package/dist/esm/__tests__/e2e/split.e2e.test.js.map +1 -0
  49. package/dist/esm/__tests__/insert.test.js +16 -0
  50. package/dist/esm/__tests__/insert.test.js.map +1 -0
  51. package/dist/esm/__tests__/merge.test.js +14 -0
  52. package/dist/esm/__tests__/merge.test.js.map +1 -0
  53. package/dist/esm/__tests__/move.test.js +14 -0
  54. package/dist/esm/__tests__/move.test.js.map +1 -0
  55. package/dist/esm/__tests__/organize.test.js +73 -0
  56. package/dist/esm/__tests__/organize.test.js.map +1 -0
  57. package/dist/esm/__tests__/remove.test.js +18 -0
  58. package/dist/esm/__tests__/remove.test.js.map +1 -0
  59. package/dist/esm/__tests__/rotate.test.js +15 -0
  60. package/dist/esm/__tests__/rotate.test.js.map +1 -0
  61. package/dist/esm/__tests__/split.test.js +19 -0
  62. package/dist/esm/__tests__/split.test.js.map +1 -0
  63. package/dist/esm/__tests__/test-helpers.js +32 -0
  64. package/dist/esm/__tests__/test-helpers.js.map +1 -0
  65. package/dist/types/__tests__/e2e/merge.e2e.test.d.ts +1 -0
  66. package/dist/types/__tests__/e2e/move.e2e.test.d.ts +1 -0
  67. package/dist/types/__tests__/e2e/organize-complex.e2e.test.d.ts +1 -0
  68. package/dist/types/__tests__/e2e/organize-single.e2e.test.d.ts +1 -0
  69. package/dist/types/__tests__/e2e/remove.e2e.test.d.ts +1 -0
  70. package/dist/types/__tests__/e2e/rotate.e2e.test.d.ts +1 -0
  71. package/dist/types/__tests__/e2e/split.e2e.test.d.ts +1 -0
  72. package/dist/types/__tests__/insert.test.d.ts +1 -0
  73. package/dist/types/__tests__/merge.test.d.ts +1 -0
  74. package/dist/types/__tests__/move.test.d.ts +1 -0
  75. package/dist/types/__tests__/organize.test.d.ts +1 -0
  76. package/dist/types/__tests__/remove.test.d.ts +1 -0
  77. package/dist/types/__tests__/rotate.test.d.ts +1 -0
  78. package/dist/types/__tests__/split.test.d.ts +1 -0
  79. package/dist/types/__tests__/test-helpers.d.ts +6 -0
  80. package/package.json +1 -1
  81. package/dist/cjs/__tests__/index.test.js +0 -532
  82. package/dist/cjs/__tests__/index.test.js.map +0 -1
  83. package/dist/esm/__tests__/index.test.js +0 -527
  84. package/dist/esm/__tests__/index.test.js.map +0 -1
  85. /package/dist/types/__tests__/{index.test.d.ts → e2e/insert.e2e.test.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../__tests__/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,527 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { PDFDocument } from '@pdfme/pdf-lib';
4
- import { pdf2img } from '@pdfme/converter';
5
- import { merge, split, remove, insert, rotate, move, organize } from '../src/index.js';
6
- import 'jest-image-snapshot';
7
- const createTestPDF = async (pageCount) => {
8
- const pdfDoc = await PDFDocument.create();
9
- for (let i = 0; i < pageCount; i++) {
10
- const page = pdfDoc.addPage([500, 500]);
11
- page.drawText(`Page ${i + 1}`, {
12
- x: 50,
13
- y: 450,
14
- size: 20,
15
- });
16
- }
17
- return pdfDoc.save();
18
- };
19
- const pdfToImages = async (pdf) => {
20
- const arrayBuffers = await pdf2img(pdf, { imageType: 'png' });
21
- return arrayBuffers.map((buf) => Buffer.from(new Uint8Array(buf)));
22
- };
23
- const getPDFPageCount = async (pdf) => {
24
- const pdfDoc = await PDFDocument.load(pdf);
25
- return pdfDoc.getPageCount();
26
- };
27
- describe('merge', () => {
28
- test('merges multiple PDFs', async () => {
29
- const pdf1 = await createTestPDF(2);
30
- const pdf2 = await createTestPDF(3);
31
- const merged = await merge([pdf1, pdf2]);
32
- expect(await getPDFPageCount(merged)).toBe(5);
33
- });
34
- test('throws error when no PDFs provided', async () => {
35
- await expect(merge([])).rejects.toThrow('[@pdfme/manipulator] At least one PDF is required');
36
- });
37
- });
38
- describe('split', () => {
39
- test('splits PDF into ranges', async () => {
40
- const pdf = await createTestPDF(5);
41
- const splits = await split(pdf, [
42
- { start: 0, end: 1 },
43
- { start: 2, end: 4 },
44
- ]);
45
- expect(splits.length).toBe(2);
46
- expect(await getPDFPageCount(splits[0])).toBe(2);
47
- expect(await getPDFPageCount(splits[1])).toBe(3);
48
- });
49
- test('throws error for invalid ranges', async () => {
50
- const pdf = await createTestPDF(3);
51
- await expect(split(pdf, [{ start: 1, end: 0 }])).rejects.toThrow('[@pdfme/manipulator] Invalid range');
52
- });
53
- });
54
- describe('remove', () => {
55
- test('removes specified pages from PDF', async () => {
56
- const pdf = await createTestPDF(5);
57
- const result = await remove(pdf, [1, 3]);
58
- expect(await getPDFPageCount(result)).toBe(3);
59
- });
60
- test('throws error when no pages provided', async () => {
61
- const pdf = await createTestPDF(3);
62
- await expect(remove(pdf, [])).rejects.toThrow('[@pdfme/manipulator] At least one page number is required');
63
- });
64
- test('throws error for invalid page numbers', async () => {
65
- const pdf = await createTestPDF(3);
66
- await expect(remove(pdf, [3])).rejects.toThrow('[@pdfme/manipulator] Invalid page number');
67
- });
68
- });
69
- describe('insert', () => {
70
- test('inserts PDF at specified position', async () => {
71
- const basePdf = await createTestPDF(3);
72
- const insertPdf = await createTestPDF(2);
73
- const result = await insert(basePdf, [{ pdf: insertPdf, position: 1 }]);
74
- expect(await getPDFPageCount(result)).toBe(5);
75
- });
76
- test('throws error for invalid position', async () => {
77
- const basePdf = await createTestPDF(3);
78
- const insertPdf = await createTestPDF(2);
79
- await expect(insert(basePdf, [{ pdf: insertPdf, position: 4 }])).rejects.toThrow('[@pdfme/manipulator] Invalid position');
80
- });
81
- });
82
- describe('rotate', () => {
83
- test('rotates PDF pages by specified degrees', async () => {
84
- const pdf = await createTestPDF(2);
85
- const result = await rotate(pdf, 90);
86
- expect(await getPDFPageCount(result)).toBe(2);
87
- });
88
- test('throws error for non-90-degree rotation', async () => {
89
- const pdf = await createTestPDF(2);
90
- // @ts-expect-error
91
- await expect(rotate(pdf, 45)).rejects.toThrow('[@pdfme/manipulator] Rotation degrees must be a multiple of 90');
92
- });
93
- });
94
- describe('move', () => {
95
- test('moves page from one position to another', async () => {
96
- const pdf = await createTestPDF(3);
97
- const result = await move(pdf, { from: 0, to: 2 });
98
- expect(await getPDFPageCount(result)).toBe(3);
99
- });
100
- test('throws error for invalid page numbers', async () => {
101
- const pdf = await createTestPDF(3);
102
- await expect(move(pdf, { from: 3, to: 0 })).rejects.toThrow('[@pdfme/manipulator] Invalid page number: from=3, to=0, total pages=3');
103
- });
104
- });
105
- describe('organize', () => {
106
- test('performs single remove operation', async () => {
107
- const pdf = await createTestPDF(5);
108
- const result = await organize(pdf, [
109
- { type: 'remove', data: { position: 1 } },
110
- { type: 'remove', data: { position: 3 } },
111
- ]);
112
- expect(await getPDFPageCount(result)).toBe(3);
113
- });
114
- test('performs single insert operation', async () => {
115
- const pdf = await createTestPDF(3);
116
- const insertPdf = await createTestPDF(2);
117
- const result = await organize(pdf, [{ type: 'insert', data: { pdf: insertPdf, position: 1 } }]);
118
- expect(await getPDFPageCount(result)).toBe(5);
119
- });
120
- test('performs single replace operation', async () => {
121
- const pdf = await createTestPDF(3);
122
- const replacePdf = await createTestPDF(1);
123
- const result = await organize(pdf, [
124
- { type: 'replace', data: { position: 1, pdf: replacePdf } },
125
- ]);
126
- expect(await getPDFPageCount(result)).toBe(3);
127
- });
128
- test('performs single rotate operation', async () => {
129
- const pdf = await createTestPDF(3);
130
- const result = await organize(pdf, [
131
- { type: 'rotate', data: { position: 0, degrees: 90 } },
132
- { type: 'rotate', data: { position: 2, degrees: 90 } },
133
- ]);
134
- expect(await getPDFPageCount(result)).toBe(3);
135
- });
136
- test('performs multiple operations in sequence', async () => {
137
- const pdf = await createTestPDF(5);
138
- const insertPdf = await createTestPDF(2);
139
- const replacePdf = await createTestPDF(1);
140
- const result = await organize(pdf, [
141
- { type: 'remove', data: { position: 1 } },
142
- { type: 'remove', data: { position: 3 } }, // 5 -> 3 pages
143
- { type: 'insert', data: { pdf: insertPdf, position: 1 } }, // 3 -> 5 pages
144
- { type: 'replace', data: { position: 2, pdf: replacePdf } }, // Still 5 pages
145
- { type: 'rotate', data: { position: 0, degrees: 90 } },
146
- { type: 'rotate', data: { position: 3, degrees: 90 } }, // Still 5 pages
147
- ]);
148
- expect(await getPDFPageCount(result)).toBe(5);
149
- });
150
- test('throws error for invalid page numbers', async () => {
151
- const pdf = await createTestPDF(3);
152
- await expect(organize(pdf, [{ type: 'remove', data: { position: 3 } }])).rejects.toThrow('[@pdfme/manipulator] Invalid page number');
153
- });
154
- test('throws error for invalid position', async () => {
155
- const pdf = await createTestPDF(3);
156
- const insertPdf = await createTestPDF(1);
157
- await expect(organize(pdf, [{ type: 'insert', data: { pdf: insertPdf, position: 4 } }])).rejects.toThrow('[@pdfme/manipulator] Invalid position');
158
- });
159
- test('throws error for invalid rotation degrees', async () => {
160
- const pdf = await createTestPDF(3);
161
- await expect(
162
- // @ts-expect-error
163
- organize(pdf, [{ type: 'rotate', data: { pages: [0], degrees: 45 } }])).rejects.toThrow('[@pdfme/manipulator] Rotation degrees must be a multiple of 90');
164
- });
165
- test('throws error for empty actions array', async () => {
166
- const pdf = await createTestPDF(3);
167
- await expect(organize(pdf, [])).rejects.toThrow('[@pdfme/manipulator] At least one action is required');
168
- });
169
- test('throws error for unknown action type', async () => {
170
- const pdf = await createTestPDF(3);
171
- // @ts-expect-error
172
- await expect(organize(pdf, [{ type: 'invalid', data: { pages: [] } }])).rejects.toThrow('[@pdfme/manipulator] Unknown action type: invalid');
173
- });
174
- });
175
- describe('organize', () => {
176
- test('performs single remove operation', async () => {
177
- const pdf = await createTestPDF(5);
178
- const result = await organize(pdf, [
179
- { type: 'remove', data: { position: 1 } },
180
- { type: 'remove', data: { position: 3 } },
181
- ]);
182
- expect(await getPDFPageCount(result)).toBe(3);
183
- });
184
- test('performs single insert operation', async () => {
185
- const pdf = await createTestPDF(3);
186
- const insertPdf = await createTestPDF(2);
187
- const result = await organize(pdf, [{ type: 'insert', data: { pdf: insertPdf, position: 1 } }]);
188
- expect(await getPDFPageCount(result)).toBe(5);
189
- });
190
- test('performs single replace operation', async () => {
191
- const pdf = await createTestPDF(3);
192
- const replacePdf = await createTestPDF(1);
193
- const result = await organize(pdf, [
194
- { type: 'replace', data: { position: 1, pdf: replacePdf } },
195
- ]);
196
- expect(await getPDFPageCount(result)).toBe(3);
197
- });
198
- test('performs single rotate operation', async () => {
199
- const pdf = await createTestPDF(3);
200
- const result = await organize(pdf, [
201
- { type: 'rotate', data: { position: 0, degrees: 90 } },
202
- { type: 'rotate', data: { position: 2, degrees: 90 } },
203
- ]);
204
- expect(await getPDFPageCount(result)).toBe(3);
205
- });
206
- test('performs multiple operations in sequence', async () => {
207
- const pdf = await createTestPDF(5);
208
- const insertPdf = await createTestPDF(2);
209
- const replacePdf = await createTestPDF(1);
210
- const result = await organize(pdf, [
211
- { type: 'remove', data: { position: 1 } },
212
- { type: 'remove', data: { position: 3 } }, // 5 -> 3 pages
213
- { type: 'insert', data: { pdf: insertPdf, position: 1 } }, // 3 -> 5 pages
214
- { type: 'replace', data: { position: 2, pdf: replacePdf } }, // Still 5 pages
215
- { type: 'rotate', data: { position: 0, degrees: 90 } },
216
- { type: 'rotate', data: { position: 3, degrees: 90 } }, // Still 5 pages
217
- ]);
218
- expect(await getPDFPageCount(result)).toBe(5);
219
- });
220
- test('throws error for invalid page numbers', async () => {
221
- const pdf = await createTestPDF(3);
222
- await expect(organize(pdf, [{ type: 'remove', data: { position: 3 } }])).rejects.toThrow('[@pdfme/manipulator] Invalid page number');
223
- });
224
- test('throws error for invalid position', async () => {
225
- const pdf = await createTestPDF(3);
226
- const insertPdf = await createTestPDF(1);
227
- await expect(organize(pdf, [{ type: 'insert', data: { pdf: insertPdf, position: 4 } }])).rejects.toThrow('[@pdfme/manipulator] Invalid position');
228
- });
229
- test('throws error for invalid rotation degrees', async () => {
230
- const pdf = await createTestPDF(3);
231
- await expect(
232
- // @ts-expect-error
233
- organize(pdf, [{ type: 'rotate', data: { pages: [0], degrees: 45 } }])).rejects.toThrow('[@pdfme/manipulator] Rotation degrees must be a multiple of 90');
234
- });
235
- test('throws error for empty actions array', async () => {
236
- const pdf = await createTestPDF(3);
237
- await expect(organize(pdf, [])).rejects.toThrow('[@pdfme/manipulator] At least one action is required');
238
- });
239
- test('throws error for unknown action type', async () => {
240
- const pdf = await createTestPDF(3);
241
- // @ts-expect-error
242
- await expect(organize(pdf, [{ type: 'invalid', data: { pages: [] } }])).rejects.toThrow('[@pdfme/manipulator] Unknown action type: invalid');
243
- });
244
- });
245
- describe('PDF manipulator E2E Tests with real PDF files', () => {
246
- const assetPath = (fileName) => path.join(__dirname, 'assets/pdfs', fileName);
247
- function toArrayBuffer(buf) {
248
- return new Uint8Array(buf);
249
- }
250
- const fiveP = toArrayBuffer(fs.readFileSync(assetPath('5p.pdf')));
251
- const aPdf = toArrayBuffer(fs.readFileSync(assetPath('a.pdf')));
252
- const bPdf = toArrayBuffer(fs.readFileSync(assetPath('b.pdf')));
253
- const cPdf = toArrayBuffer(fs.readFileSync(assetPath('c.pdf')));
254
- //
255
- // merge
256
- //
257
- test('merge: merge a.pdf, b.pdf, c.pdf in order', async () => {
258
- const mergedBuffer = await merge([aPdf, bPdf, cPdf]);
259
- const images = await pdfToImages(mergedBuffer);
260
- for (let i = 0; i < images.length; i++) {
261
- expect(images[i]).toMatchImageSnapshot({
262
- customSnapshotIdentifier: `merge-abc-page${i + 1}`,
263
- });
264
- }
265
- });
266
- //
267
- // split
268
- //
269
- test('split: split 5p.pdf into pages 1-2 and 3-5', async () => {
270
- const [split12, split35] = await split(fiveP, [
271
- { start: 0, end: 1 }, // pages 1-2
272
- { start: 2, end: 4 }, // pages 3-5
273
- ]);
274
- const images12 = await pdfToImages(split12);
275
- const images35 = await pdfToImages(split35);
276
- for (let i = 0; i < images12.length; i++) {
277
- expect(images12[i]).toMatchImageSnapshot({
278
- customSnapshotIdentifier: `split-5p-1-2-page${i + 1}`,
279
- });
280
- }
281
- for (let i = 0; i < images35.length; i++) {
282
- expect(images35[i]).toMatchImageSnapshot({
283
- customSnapshotIdentifier: `split-5p-3-5-page${i + 1}`,
284
- });
285
- }
286
- });
287
- //
288
- // remove
289
- //
290
- test('remove: remove the 1st page of 5p.pdf', async () => {
291
- const removed = await remove(fiveP, [0]);
292
- const images = await pdfToImages(removed);
293
- for (let i = 0; i < images.length; i++) {
294
- expect(images[i]).toMatchImageSnapshot({
295
- customSnapshotIdentifier: `remove-5p-page1-result-page${i + 1}`,
296
- });
297
- }
298
- });
299
- test('remove: remove the 1st and 3rd pages of 5p.pdf', async () => {
300
- // Note: This assumes removing all at once, not one by one with index shifting
301
- const removed = await remove(fiveP, [0, 2]);
302
- const images = await pdfToImages(removed);
303
- for (let i = 0; i < images.length; i++) {
304
- expect(images[i]).toMatchImageSnapshot({
305
- customSnapshotIdentifier: `remove-5p-pages1-3-result-page${i + 1}`,
306
- });
307
- }
308
- });
309
- //
310
- // insert
311
- //
312
- test('insert: insert a.pdf at position 0 in 5p.pdf', async () => {
313
- const inserted = await insert(fiveP, [{ pdf: aPdf, position: 0 }]);
314
- const images = await pdfToImages(inserted);
315
- for (let i = 0; i < images.length; i++) {
316
- expect(images[i]).toMatchImageSnapshot({
317
- customSnapshotIdentifier: `insert-5p-a-at-0-result-page${i + 1}`,
318
- });
319
- }
320
- });
321
- test('insert: insert a.pdf at position 0 and 2 in 5p.pdf', async () => {
322
- // Note: the second insert is done in the same buffer, so the offset changes after the first insert
323
- const inserted = await insert(fiveP, [
324
- { pdf: aPdf, position: 0 },
325
- { pdf: aPdf, position: 2 }, // The PDF is 6 pages after the first insert
326
- ]);
327
- const images = await pdfToImages(inserted);
328
- for (let i = 0; i < images.length; i++) {
329
- expect(images[i]).toMatchImageSnapshot({
330
- customSnapshotIdentifier: `insert-5p-a-at-0-and-2-result-page${i + 1}`,
331
- });
332
- }
333
- });
334
- //
335
- // rotate
336
- //
337
- test('rotate: rotate all pages of 5p.pdf by 90 degrees', async () => {
338
- const rotated = await rotate(fiveP, 90);
339
- const images = await pdfToImages(rotated);
340
- for (let i = 0; i < images.length; i++) {
341
- expect(images[i]).toMatchImageSnapshot({
342
- customSnapshotIdentifier: `rotate-5p-90deg-all-result-page${i + 1}`,
343
- });
344
- }
345
- });
346
- test('rotate: rotate only the 2nd page of 5p.pdf by 180 degrees', async () => {
347
- // pageNumbers=[1] -> only the 2nd page is rotated by 180 degrees
348
- const rotated = await rotate(fiveP, 180, [1]);
349
- const images = await pdfToImages(rotated);
350
- for (let i = 0; i < images.length; i++) {
351
- expect(images[i]).toMatchImageSnapshot({
352
- customSnapshotIdentifier: `rotate-5p-180deg-page1-result-page${i + 1}`,
353
- });
354
- }
355
- });
356
- test('rotate: rotate pages 2 and 4 of 5p.pdf by 270 degrees', async () => {
357
- // Rotate the 2nd and 4th pages by 270 degrees
358
- const rotated = await rotate(fiveP, 270, [1, 3]);
359
- const images = await pdfToImages(rotated);
360
- for (let i = 0; i < images.length; i++) {
361
- expect(images[i]).toMatchImageSnapshot({
362
- customSnapshotIdentifier: `rotate-5p-270deg-pages1-3-result-page${i + 1}`,
363
- });
364
- }
365
- });
366
- //
367
- // move
368
- //
369
- test('move: move the 1st page (index:0) of 5p.pdf to the 3rd position (index:2)', async () => {
370
- const moved = await move(fiveP, { from: 0, to: 2 });
371
- const images = await pdfToImages(moved);
372
- for (let i = 0; i < images.length; i++) {
373
- expect(images[i]).toMatchImageSnapshot({
374
- customSnapshotIdentifier: `move-5p-page0-to-2-result-page${i + 1}`,
375
- });
376
- }
377
- });
378
- //
379
- // organize (single operation)
380
- //
381
- test('organize: single remove (remove the 2nd page)', async () => {
382
- const result = await organize(fiveP, [{ type: 'remove', data: { position: 1 } }]);
383
- const images = await pdfToImages(result);
384
- for (let i = 0; i < images.length; i++) {
385
- expect(images[i]).toMatchImageSnapshot({
386
- customSnapshotIdentifier: `organize-remove-only-result-page${i + 1}`,
387
- });
388
- }
389
- });
390
- test('organize: single insert (insert a.pdf at page 1)', async () => {
391
- const result = await organize(fiveP, [{ type: 'insert', data: { pdf: aPdf, position: 0 } }]);
392
- const images = await pdfToImages(result);
393
- for (let i = 0; i < images.length; i++) {
394
- expect(images[i]).toMatchImageSnapshot({
395
- customSnapshotIdentifier: `organize-insert-only-result-page${i + 1}`,
396
- });
397
- }
398
- });
399
- test('organize: single replace (replace 2nd page with a.pdf)', async () => {
400
- const result = await organize(fiveP, [{ type: 'replace', data: { pdf: aPdf, position: 1 } }]);
401
- const images = await pdfToImages(result);
402
- for (let i = 0; i < images.length; i++) {
403
- expect(images[i]).toMatchImageSnapshot({
404
- customSnapshotIdentifier: `organize-replace-only-result-page${i + 1}`,
405
- });
406
- }
407
- });
408
- test('organize: single rotate (rotate pages 1 and 3 by 90 degrees)', async () => {
409
- const result = await organize(fiveP, [
410
- { type: 'rotate', data: { position: 0, degrees: 90 } },
411
- { type: 'rotate', data: { position: 2, degrees: 90 } },
412
- ]);
413
- const images = await pdfToImages(result);
414
- for (let i = 0; i < images.length; i++) {
415
- expect(images[i]).toMatchImageSnapshot({
416
- customSnapshotIdentifier: `organize-rotate-only-result-page${i + 1}`,
417
- });
418
- }
419
- });
420
- test('organize: multiple operations (remove -> remove -> insert -> replace -> rotate -> rotate)', async () => {
421
- const insertPdf = aPdf;
422
- const replacePdf = bPdf;
423
- const result = await organize(fiveP, [
424
- { type: 'remove', data: { position: 1 } },
425
- { type: 'remove', data: { position: 3 } }, // 5 -> 3 pages
426
- { type: 'insert', data: { pdf: insertPdf, position: 1 } }, // 3 -> 4 pages
427
- { type: 'replace', data: { position: 2, pdf: replacePdf } }, // still 4 pages
428
- { type: 'rotate', data: { position: 0, degrees: 90 } },
429
- { type: 'rotate', data: { position: 3, degrees: 90 } },
430
- ]);
431
- const images = await pdfToImages(result);
432
- for (let i = 0; i < images.length; i++) {
433
- expect(images[i]).toMatchImageSnapshot({
434
- customSnapshotIdentifier: `organize-multiple-ops-result-page${i + 1}`,
435
- });
436
- }
437
- });
438
- //
439
- // organize - complex examples
440
- //
441
- test('organize: Remove -> Insert -> Move (check index changes)', async () => {
442
- // Remove the 2nd page (index:1) => 4 pages
443
- // Insert a.pdf at the 2nd page (index:1) => 5 pages
444
- // Move the newly inserted page (index:1) to the 1st page (index:0) => 5 pages
445
- const result = await organize(fiveP, [
446
- { type: 'remove', data: { position: 1 } },
447
- { type: 'insert', data: { pdf: aPdf, position: 1 } },
448
- { type: 'move', data: { from: 1, to: 0 } },
449
- ]);
450
- const images = await pdfToImages(result);
451
- for (let i = 0; i < images.length; i++) {
452
- expect(images[i]).toMatchImageSnapshot({
453
- customSnapshotIdentifier: `organize-composite-1-result-page${i + 1}`,
454
- });
455
- }
456
- });
457
- test('organize: Replace -> Rotate -> Remove', async () => {
458
- // Replace the 3rd page with a.pdf => 5 pages
459
- // Rotate the 3rd page by 180 => 5 pages
460
- // Remove the 1st page => 4 pages
461
- const result = await organize(fiveP, [
462
- { type: 'replace', data: { pdf: aPdf, position: 2 } },
463
- { type: 'rotate', data: { position: 2, degrees: 180 } },
464
- { type: 'remove', data: { position: 0 } },
465
- ]);
466
- const images = await pdfToImages(result);
467
- for (let i = 0; i < images.length; i++) {
468
- expect(images[i]).toMatchImageSnapshot({
469
- customSnapshotIdentifier: `organize-composite-2-result-page${i + 1}`,
470
- });
471
- }
472
- });
473
- test('organize: Insert -> Insert -> Move -> Move', async () => {
474
- // Insert a.pdf at the end (index:5) => 6 pages
475
- // Insert b.pdf at the start (index:0) => 7 pages
476
- // Move the 3rd page (index:2) to the 6th page (index:5) => 7 pages
477
- // Move the 4th page (index:3) to the 2nd page (index:1) => 7 pages
478
- const result = await organize(fiveP, [
479
- { type: 'insert', data: { pdf: aPdf, position: 5 } },
480
- { type: 'insert', data: { pdf: bPdf, position: 0 } },
481
- { type: 'move', data: { from: 2, to: 5 } },
482
- { type: 'move', data: { from: 3, to: 1 } },
483
- ]);
484
- const images = await pdfToImages(result);
485
- for (let i = 0; i < images.length; i++) {
486
- expect(images[i]).toMatchImageSnapshot({
487
- customSnapshotIdentifier: `organize-composite-3-result-page${i + 1}`,
488
- });
489
- }
490
- });
491
- test('organize: Rotate -> Rotate -> Remove', async () => {
492
- // Rotate the 2nd and 4th pages by 90 => 5 pages
493
- // Rotate the 3rd page by 270 => 5 pages
494
- // Remove the 1st page => 4 pages
495
- const result = await organize(fiveP, [
496
- { type: 'rotate', data: { position: 1, degrees: 90 } },
497
- { type: 'rotate', data: { position: 3, degrees: 90 } },
498
- { type: 'rotate', data: { position: 2, degrees: 270 } },
499
- { type: 'remove', data: { position: 0 } },
500
- ]);
501
- const images = await pdfToImages(result);
502
- for (let i = 0; i < images.length; i++) {
503
- expect(images[i]).toMatchImageSnapshot({
504
- customSnapshotIdentifier: `organize-composite-4-result-page${i + 1}`,
505
- });
506
- }
507
- });
508
- test('organize: Remove -> Insert -> Remove -> Insert (multiple times)', async () => {
509
- // Remove the 5th page (index:4) => 4 pages
510
- // Insert a.pdf at the 2nd page (index:1) => 5 pages
511
- // Remove the 1st page (index:0) => 4 pages
512
- // Insert b.pdf at the end (index:4) => 5 pages
513
- const result = await organize(fiveP, [
514
- { type: 'remove', data: { position: 4 } },
515
- { type: 'insert', data: { pdf: aPdf, position: 1 } },
516
- { type: 'remove', data: { position: 0 } },
517
- { type: 'insert', data: { pdf: bPdf, position: 4 } },
518
- ]);
519
- const images = await pdfToImages(result);
520
- for (let i = 0; i < images.length; i++) {
521
- expect(images[i]).toMatchImageSnapshot({
522
- customSnapshotIdentifier: `organize-composite-5-result-page${i + 1}`,
523
- });
524
- }
525
- });
526
- });
527
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../__tests__/index.test.ts"],"names":[],"mappings":"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"}