@epam/pdf-highlighter-kit 0.0.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 (77) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +219 -0
  3. package/dist/PDFHighlightViewer.d.ts +219 -0
  4. package/dist/PDFHighlightViewer.d.ts.map +1 -0
  5. package/dist/PDFHighlightViewer.js +1551 -0
  6. package/dist/PDFHighlightViewer.js.map +1 -0
  7. package/dist/api.d.ts +59 -0
  8. package/dist/api.d.ts.map +1 -0
  9. package/dist/api.js +2 -0
  10. package/dist/api.js.map +1 -0
  11. package/dist/config.d.ts +12 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +32 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/core/interaction-handler.d.ts +63 -0
  16. package/dist/core/interaction-handler.d.ts.map +1 -0
  17. package/dist/core/interaction-handler.js +430 -0
  18. package/dist/core/interaction-handler.js.map +1 -0
  19. package/dist/core/pdf-engine.d.ts +37 -0
  20. package/dist/core/pdf-engine.d.ts.map +1 -0
  21. package/dist/core/pdf-engine.js +281 -0
  22. package/dist/core/pdf-engine.js.map +1 -0
  23. package/dist/core/performance-optimizer.d.ts +91 -0
  24. package/dist/core/performance-optimizer.d.ts.map +1 -0
  25. package/dist/core/performance-optimizer.js +473 -0
  26. package/dist/core/performance-optimizer.js.map +1 -0
  27. package/dist/core/style-manager.d.ts +88 -0
  28. package/dist/core/style-manager.d.ts.map +1 -0
  29. package/dist/core/style-manager.js +413 -0
  30. package/dist/core/style-manager.js.map +1 -0
  31. package/dist/core/text-segmentation.d.ts +41 -0
  32. package/dist/core/text-segmentation.d.ts.map +1 -0
  33. package/dist/core/text-segmentation.js +338 -0
  34. package/dist/core/text-segmentation.js.map +1 -0
  35. package/dist/core/unified-layer-builder.d.ts +27 -0
  36. package/dist/core/unified-layer-builder.d.ts.map +1 -0
  37. package/dist/core/unified-layer-builder.js +331 -0
  38. package/dist/core/unified-layer-builder.js.map +1 -0
  39. package/dist/core/viewport-manager.d.ts +103 -0
  40. package/dist/core/viewport-manager.d.ts.map +1 -0
  41. package/dist/core/viewport-manager.js +222 -0
  42. package/dist/core/viewport-manager.js.map +1 -0
  43. package/dist/index.d.ts +27 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +57 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/pdf-highlight-viewer.css +488 -0
  48. package/dist/types.d.ts +279 -0
  49. package/dist/types.d.ts.map +1 -0
  50. package/dist/types.js +2 -0
  51. package/dist/types.js.map +1 -0
  52. package/dist/utils/highlight-adapter.d.ts +31 -0
  53. package/dist/utils/highlight-adapter.d.ts.map +1 -0
  54. package/dist/utils/highlight-adapter.js +202 -0
  55. package/dist/utils/highlight-adapter.js.map +1 -0
  56. package/dist/utils/pdf-utils.d.ts +14 -0
  57. package/dist/utils/pdf-utils.d.ts.map +1 -0
  58. package/dist/utils/pdf-utils.js +120 -0
  59. package/dist/utils/pdf-utils.js.map +1 -0
  60. package/dist/utils/worker-loader-simple.d.ts +8 -0
  61. package/dist/utils/worker-loader-simple.d.ts.map +1 -0
  62. package/dist/utils/worker-loader-simple.js +65 -0
  63. package/dist/utils/worker-loader-simple.js.map +1 -0
  64. package/dist/vite.config.d.ts +3 -0
  65. package/dist/vite.config.d.ts.map +1 -0
  66. package/dist/vite.config.js +20 -0
  67. package/dist/vite.config.js.map +1 -0
  68. package/dist/vitest.config.d.ts +3 -0
  69. package/dist/vitest.config.d.ts.map +1 -0
  70. package/dist/vitest.config.js +24 -0
  71. package/dist/vitest.config.js.map +1 -0
  72. package/dist/vitest.setup.d.ts +2 -0
  73. package/dist/vitest.setup.d.ts.map +1 -0
  74. package/dist/vitest.setup.js +8 -0
  75. package/dist/vitest.setup.js.map +1 -0
  76. package/package.json +74 -0
  77. package/styles/pdf-highlight-viewer.css +488 -0
@@ -0,0 +1,120 @@
1
+ export const b64toBlob = (b64Data, contentType = 'application/pdf', sliceSize = 512) => {
2
+ const byteCharacters = atob(b64Data);
3
+ const byteArrays = [];
4
+ for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
5
+ const slice = byteCharacters.slice(offset, offset + sliceSize);
6
+ const byteNumbers = new Array(slice.length);
7
+ for (let i = 0; i < slice.length; i++) {
8
+ byteNumbers[i] = slice.charCodeAt(i);
9
+ }
10
+ const byteArray = new Uint8Array(byteNumbers);
11
+ byteArrays.push(byteArray);
12
+ }
13
+ return new Blob(byteArrays, { type: contentType });
14
+ };
15
+ export const b64toArrayBuffer = (b64Data) => {
16
+ const byteCharacters = atob(b64Data);
17
+ const byteArray = new Uint8Array(byteCharacters.length);
18
+ for (let i = 0; i < byteCharacters.length; i++) {
19
+ byteArray[i] = byteCharacters.charCodeAt(i);
20
+ }
21
+ return byteArray.buffer;
22
+ };
23
+ export const blobToArrayBuffer = (blob) => {
24
+ return new Promise((resolve, reject) => {
25
+ const reader = new FileReader();
26
+ reader.onload = () => {
27
+ if (reader.result instanceof ArrayBuffer) {
28
+ resolve(reader.result);
29
+ }
30
+ else {
31
+ reject(new Error('Failed to convert Blob to ArrayBuffer'));
32
+ }
33
+ };
34
+ reader.onerror = () => reject(reader.error);
35
+ reader.readAsArrayBuffer(blob);
36
+ });
37
+ };
38
+ export const detectPDFSourceType = (source) => {
39
+ if (typeof source === 'string') {
40
+ if (source.startsWith('http') || source.startsWith('/') || source.startsWith('./')) {
41
+ return 'url';
42
+ }
43
+ else {
44
+ return 'base64';
45
+ }
46
+ }
47
+ else if (source instanceof Blob) {
48
+ return 'blob';
49
+ }
50
+ else if (source instanceof ArrayBuffer) {
51
+ return 'arrayBuffer';
52
+ }
53
+ else {
54
+ throw new Error('Unsupported PDF source type');
55
+ }
56
+ };
57
+ export const normalizePDFSource = async (source) => {
58
+ const sourceType = detectPDFSourceType(source);
59
+ switch (sourceType) {
60
+ case 'url': {
61
+ const response = await fetch(source);
62
+ if (!response.ok) {
63
+ throw new Error(`Failed to fetch PDF from URL: ${response.statusText}`);
64
+ }
65
+ return await response.arrayBuffer();
66
+ }
67
+ case 'base64': {
68
+ const base64Data = source.replace(/^data:application\/pdf;base64,/, '');
69
+ return b64toArrayBuffer(base64Data);
70
+ }
71
+ case 'blob':
72
+ return await blobToArrayBuffer(source);
73
+ case 'arrayBuffer':
74
+ return source;
75
+ default:
76
+ throw new Error(`Unsupported PDF source type: ${sourceType}`);
77
+ }
78
+ };
79
+ export const validateBase64PDF = (base64String) => {
80
+ try {
81
+ const cleanBase64 = base64String.replace(/^data:application\/pdf;base64,/, '');
82
+ const decoded = atob(cleanBase64);
83
+ return decoded.startsWith('%PDF');
84
+ }
85
+ catch (error) {
86
+ return false;
87
+ }
88
+ };
89
+ export const extractPDFMetadata = (base64String) => {
90
+ try {
91
+ const cleanBase64 = base64String.replace(/^data:application\/pdf;base64,/, '');
92
+ const decoded = atob(cleanBase64);
93
+ const versionMatch = decoded.match(/%PDF-(\d+\.\d+)/);
94
+ const version = versionMatch ? versionMatch[1] : undefined;
95
+ return {
96
+ size: decoded.length,
97
+ version,
98
+ };
99
+ }
100
+ catch (error) {
101
+ throw new Error('Failed to extract PDF metadata from base64 string');
102
+ }
103
+ };
104
+ export const createPDFDataURL = (base64Data) => {
105
+ const cleanBase64 = base64Data.replace(/^data:application\/pdf;base64,/, '');
106
+ return `data:application/pdf;base64,${cleanBase64}`;
107
+ };
108
+ export const processBase64InChunks = (base64Data, chunkSize = 8192, processor) => {
109
+ const cleanBase64 = base64Data.replace(/^data:application\/pdf;base64,/, '');
110
+ for (let i = 0; i < cleanBase64.length; i += chunkSize) {
111
+ const chunk = cleanBase64.slice(i, i + chunkSize);
112
+ const binaryChunk = atob(chunk);
113
+ const uint8Array = new Uint8Array(binaryChunk.length);
114
+ for (let j = 0; j < binaryChunk.length; j++) {
115
+ uint8Array[j] = binaryChunk.charCodeAt(j);
116
+ }
117
+ processor(uint8Array);
118
+ }
119
+ };
120
+ //# sourceMappingURL=pdf-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-utils.js","sourceRoot":"","sources":["../../utils/pdf-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function setupWorker(options?: {
2
+ workerSrc?: string;
3
+ debug?: boolean;
4
+ cdnFallback?: boolean;
5
+ }): Promise<string>;
6
+ export declare function getWorkerSource(): string | undefined;
7
+ export declare function isWorkerReady(): boolean;
8
+ //# sourceMappingURL=worker-loader-simple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-loader-simple.d.ts","sourceRoot":"","sources":["../../utils/worker-loader-simple.ts"],"names":[],"mappings":"AAEA,wBAAsB,WAAW,CAC/B,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CAClB,GACL,OAAO,CAAC,MAAM,CAAC,CAwDjB;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
@@ -0,0 +1,65 @@
1
+ import * as pdfjsLib from 'pdfjs-dist';
2
+ export async function setupWorker(options = {}) {
3
+ const { workerSrc, debug = false, cdnFallback = true } = options;
4
+ if (pdfjsLib.GlobalWorkerOptions.workerSrc) {
5
+ return pdfjsLib.GlobalWorkerOptions.workerSrc;
6
+ }
7
+ if (workerSrc) {
8
+ pdfjsLib.GlobalWorkerOptions.workerSrc = workerSrc;
9
+ if (debug)
10
+ console.log('[Worker] Using provided source:', workerSrc);
11
+ return workerSrc;
12
+ }
13
+ const paths = [
14
+ '/pdf.worker.min.mjs',
15
+ '/pdf.worker.mjs',
16
+ './pdf.worker.min.mjs',
17
+ '/static/pdf.worker.min.mjs',
18
+ '/assets/pdf.worker.min.mjs',
19
+ '/node_modules/pdfjs-dist/build/pdf.worker.min.mjs',
20
+ './node_modules/pdfjs-dist/build/pdf.worker.min.mjs',
21
+ '../node_modules/pdfjs-dist/build/pdf.worker.min.mjs',
22
+ ];
23
+ if (typeof fetch !== 'undefined') {
24
+ for (const path of paths) {
25
+ try {
26
+ const response = await fetch(path, { method: 'HEAD' });
27
+ if (response.ok) {
28
+ pdfjsLib.GlobalWorkerOptions.workerSrc = path;
29
+ if (debug)
30
+ console.log('[Worker] Found at:', path);
31
+ return path;
32
+ }
33
+ }
34
+ catch { }
35
+ }
36
+ }
37
+ if (cdnFallback) {
38
+ const cdnUrl = 'https://unpkg.com/pdfjs-dist@5.4.149/build/pdf.worker.min.mjs';
39
+ pdfjsLib.GlobalWorkerOptions.workerSrc = cdnUrl;
40
+ if (debug)
41
+ console.log('[Worker] Using CDN fallback:', cdnUrl);
42
+ return cdnUrl;
43
+ }
44
+ try {
45
+ const fallbackPath = 'pdfjs-dist/build/pdf.worker.min.mjs';
46
+ pdfjsLib.GlobalWorkerOptions.workerSrc = fallbackPath;
47
+ if (debug)
48
+ console.log('[Worker] Using package path:', fallbackPath);
49
+ return fallbackPath;
50
+ }
51
+ catch {
52
+ const cdnUrl = 'https://unpkg.com/pdfjs-dist@5.4.149/build/pdf.worker.min.mjs';
53
+ pdfjsLib.GlobalWorkerOptions.workerSrc = cdnUrl;
54
+ if (debug)
55
+ console.log('[Worker] Final CDN fallback:', cdnUrl);
56
+ return cdnUrl;
57
+ }
58
+ }
59
+ export function getWorkerSource() {
60
+ return pdfjsLib.GlobalWorkerOptions.workerSrc;
61
+ }
62
+ export function isWorkerReady() {
63
+ return !!pdfjsLib.GlobalWorkerOptions.workerSrc;
64
+ }
65
+ //# sourceMappingURL=worker-loader-simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-loader-simple.js","sourceRoot":"","sources":["../../utils/worker-loader-simple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAII,EAAE;IAEN,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEjE,IAAI,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,SAAS,CAAC;QACnD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,qBAAqB;QACrB,iBAAiB;QACjB,sBAAsB;QACtB,4BAA4B;QAC5B,4BAA4B;QAE5B,mDAAmD;QACnD,oDAAoD;QACpD,qDAAqD;KACtD,CAAC;IAEF,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvD,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC9C,IAAI,KAAK;wBAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;oBACnD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,+DAA+D,CAAC;QAC/E,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;QAChD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,qCAAqC,CAAC;QAC3D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,YAAY,CAAC;QACtD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC;QACrE,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,GAAG,+DAA+D,CAAC;QAC/E,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;QAChD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC;AAClD,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
3
+ //# sourceMappingURL=vite.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.config.d.ts","sourceRoot":"","sources":["../vite.config.ts"],"names":[],"mappings":";AACA,wBAiBG"}
@@ -0,0 +1,20 @@
1
+ import { defineConfig } from 'vite';
2
+ export default defineConfig({
3
+ build: {
4
+ lib: {
5
+ entry: './index.ts',
6
+ name: 'PDFHighlightViewer',
7
+ formats: ['es', 'cjs'],
8
+ fileName: (format) => `index.${format === 'es' ? 'esm' : format}.js`,
9
+ },
10
+ rollupOptions: {
11
+ external: ['pdfjs-dist'],
12
+ output: {
13
+ globals: {
14
+ 'pdfjs-dist': 'pdfjsLib',
15
+ },
16
+ },
17
+ },
18
+ },
19
+ });
20
+ //# sourceMappingURL=vite.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.config.js","sourceRoot":"","sources":["../vite.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,eAAe,YAAY,CAAC;IAC1B,KAAK,EAAE;QACL,GAAG,EAAE;YACH,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;YACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK;SACrE;QACD,aAAa,EAAE;YACb,QAAQ,EAAE,CAAC,YAAY,CAAC;YACxB,MAAM,EAAE;gBACN,OAAO,EAAE;oBACP,YAAY,EAAE,UAAU;iBACzB;aACF;SACF;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
3
+ //# sourceMappingURL=vitest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAEA,wBAqBG"}
@@ -0,0 +1,24 @@
1
+ import { defineConfig } from 'vitest/config';
2
+ export default defineConfig({
3
+ test: {
4
+ globals: true,
5
+ environment: 'happy-dom',
6
+ setupFiles: ['./vitest.setup.ts'],
7
+ include: ['**/*.test.ts', '**/*.test.tsx'],
8
+ exclude: ['node_modules', 'dist', 'example'],
9
+ coverage: {
10
+ provider: 'v8',
11
+ reporter: ['text', 'json', 'html'],
12
+ exclude: [
13
+ 'node_modules',
14
+ 'dist',
15
+ 'example',
16
+ '**/*.test.ts',
17
+ '**/*.test.tsx',
18
+ 'vitest.config.ts',
19
+ 'vitest.setup.ts',
20
+ ],
21
+ },
22
+ },
23
+ });
24
+ //# sourceMappingURL=vitest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,OAAO,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;QAC1C,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC;QAC5C,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAClC,OAAO,EAAE;gBACP,cAAc;gBACd,MAAM;gBACN,SAAS;gBACT,cAAc;gBACd,eAAe;gBACf,kBAAkB;gBAClB,iBAAiB;aAClB;SACF;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=vitest.setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.setup.d.ts","sourceRoot":"","sources":["../vitest.setup.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { expect, afterEach } from 'vitest';
2
+ import { cleanup } from '@testing-library/react';
3
+ import * as matchers from '@testing-library/jest-dom/matchers';
4
+ expect.extend(matchers);
5
+ afterEach(() => {
6
+ cleanup();
7
+ });
8
+ //# sourceMappingURL=vitest.setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.setup.js","sourceRoot":"","sources":["../vitest.setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,oCAAoC,CAAC;AAE/D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAExB,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "@epam/pdf-highlighter-kit",
3
+ "version": "0.0.1",
4
+ "description": "High-performance PDF viewer with intelligent highlighting and text selection capabilities",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.esm.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "styles",
11
+ "README.md"
12
+ ],
13
+ "scripts": {
14
+ "build": "npm run build:ts && npm run build:css",
15
+ "build:ts": "tsc -p tsconfig.json",
16
+ "build:css": "cp styles/*.css dist/",
17
+ "prepublishOnly": "npm run build",
18
+ "dev": "tsc -w",
19
+ "dev:example": "cd example && npm run dev",
20
+ "format": "prettier --check \"**/*.{ts,tsx,js,jsx,json,md,css}\"",
21
+ "format:fix": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md,css}\"",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest",
24
+ "test:ui": "vitest --ui",
25
+ "test:coverage": "vitest run --coverage",
26
+ "lint": "eslint .",
27
+ "lint:fix": "eslint . --fix",
28
+ "typecheck": "tsc --noEmit"
29
+ },
30
+ "keywords": [
31
+ "pdf",
32
+ "viewer",
33
+ "highlight",
34
+ "annotation",
35
+ "text-selection",
36
+ "ner",
37
+ "named-entity-recognition",
38
+ "performance",
39
+ "typescript"
40
+ ],
41
+ "author": "Podruzhinskii Stanislav",
42
+ "license": "MIT",
43
+ "peerDependencies": {
44
+ "pdfjs-dist": "^5.4.149"
45
+ },
46
+ "devDependencies": {
47
+ "@testing-library/jest-dom": "^6.1.5",
48
+ "@testing-library/react": "^14.1.2",
49
+ "@types/react": "^19.2.7",
50
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
51
+ "@typescript-eslint/parser": "^6.0.0",
52
+ "@vitest/ui": "^1.0.4",
53
+ "eslint": "^8.0.0",
54
+ "eslint-config-prettier": "^10.1.8",
55
+ "globals": "^16.5.0",
56
+ "happy-dom": "^12.10.3",
57
+ "prettier": "^3.7.4",
58
+ "typescript": "^5.0.0",
59
+ "typescript-eslint": "^8.50.0",
60
+ "vite": "^7.3.0",
61
+ "vitest": "^1.0.4"
62
+ },
63
+ "engines": {
64
+ "node": ">=14.0.0"
65
+ },
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "https://github.com/epam/pdf-highlighter-kit.git"
69
+ },
70
+ "homepage": "https://github.com/epam/pdf-highlighter-kit#readme",
71
+ "bugs": {
72
+ "url": "https://github.com/epam/pdf-highlighter-kit/issues"
73
+ }
74
+ }