@jackgreen2018/pdf-engine 1.0.111 → 1.0.113
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.
- package/README.md +6 -25
- package/dist/cli.js +0 -18
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/package.json +1 -1
- package/pkg/README.md +7 -25
- package/pkg/package.json +1 -1
- package/pkg/pdf_engine_bg.wasm +0 -0
- package/src/cli.ts +0 -18
- package/src/index.ts +5 -0
- package/src/lib.rs +3 -4
- package/dist/cli.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/readme.numbers +0 -0
package/README.md
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/@jackgreen2018/pdf-engine)
|
|
6
6
|
[](https://www.npmjs.com/package/@jackgreen2018/pdf-engine)
|
|
7
7
|
[](LICENSE)
|
|
8
|
-
[](https://github.com/sponsors/jackgreen)
|
|
9
8
|
|
|
10
9
|
A high-performance PDF processing library for Node.js and the browser. Built with Rust + WebAssembly. Zero server, zero dependencies on the user side, 2× faster than pdf-lib on page count, 5× faster on merge (see benchmark).
|
|
11
10
|
|
|
@@ -131,24 +130,16 @@ npm run benchmark
|
|
|
131
130
|
|
|
132
131
|
| Operation | pdf-engine (ms) | pdf-lib (ms) |
|
|
133
132
|
|-----------|-----------------|--------------|
|
|
134
|
-
| Page Count | 0.
|
|
133
|
+
| Page Count | 0.73 | 1.48 |
|
|
135
134
|
| Text Extraction | 0.30 | — |
|
|
136
|
-
| Merge (2 files) |
|
|
137
|
-
| Split (pages [0,1]) | 0.
|
|
138
|
-
| Encrypt (V4 AES-128) | 0.
|
|
139
|
-
| Decrypt | 0.
|
|
135
|
+
| Merge (2 files) | 0.79 | 4.49 |
|
|
136
|
+
| Split (pages [0,1]) | 0.24 | 2.39 |
|
|
137
|
+
| Encrypt (V4 AES-128) | 0.79 | — |
|
|
138
|
+
| Decrypt | 0.38 | — |
|
|
140
139
|
|
|
141
140
|
*extractText correctness: PASS — gated via `tests/fixtures/text-fixture.pdf` (FlateDecode-compressed, real-world content stream). v1.0.30 fixes extractText to return actual text instead of "No text extracted."*
|
|
142
141
|
|
|
143
|
-
*Run 2026-08-03 (v1.0.
|
|
144
|
-
|
|
145
|
-
## Commercial license & support
|
|
146
|
-
|
|
147
|
-
Need to ship `pdf-engine` in closed-source software without the MIT attribution requirement, or need it for procurement/legal sign-off? A perpetual, per-seat commercial license is $49 one-time.
|
|
148
|
-
|
|
149
|
-
**[Buy the commercial license →](https://creem.io/product/prod_3ZlNAxFzbn9vwfT4Ho3OKJ)**
|
|
150
|
-
|
|
151
|
-
See [COMMERCIAL-LICENSE.md](./COMMERCIAL-LICENSE.md) for full terms. Team licenses, POs, or questions: `jackgreen2018+sponsors@gmail.com`.
|
|
142
|
+
*Run 2026-08-03 (v1.0.113); raw JSON at benchmark-results.json.*
|
|
152
143
|
|
|
153
144
|
## License
|
|
154
145
|
|
|
@@ -181,16 +172,6 @@ m.initialize().then(() => m.getPageCount(new Uint8Array(buf)))
|
|
|
181
172
|
| AC-8 | Final app repository commit is tagged `v1.0.0`; cycle scratch is absent and no web-deployment artifacts were added. | `evidence/git-tag.log`, final tree inspection |
|
|
182
173
|
| AC-9 | Encrypt/decrypt round-trip preserves page count; `isEncrypted` correctly reports true for encrypted and false for unencrypted PDFs. | `tests/smoke.js` encrypt/decrypt tests, benchmark `encrypt` gate |
|
|
183
174
|
|
|
184
|
-
## Launch post
|
|
185
|
-
|
|
186
|
-
Draft lives at [`evidence/devto-launch-post.md`](./evidence/devto-launch-post.md).
|
|
187
|
-
Posting requires a `DEVTO_API_KEY` (manual step). README's published benchmark
|
|
188
|
-
numbers (`evidence/benchmark.log`) are the source of truth until the dev.to URL exists.
|
|
189
|
-
|
|
190
175
|
## See Also
|
|
191
176
|
|
|
192
177
|
- [pdf-lib](https://www.npmjs.com/package/pdf-lib) — A popular JavaScript PDF library for comparison
|
|
193
|
-
|
|
194
|
-
## Backlinks
|
|
195
|
-
|
|
196
|
-
- Dev.to launch post (canonical for this version): https://www.npmjs.com/package/@jackgreen2018/pdf-engine
|
package/dist/cli.js
CHANGED
|
@@ -12,8 +12,6 @@ Commands:
|
|
|
12
12
|
extract-text <file> Extract text from a PDF
|
|
13
13
|
merge <file1> <file2> ... Merge PDFs into a single output
|
|
14
14
|
split <file> <page1> ... Split a PDF by 0-based page indices
|
|
15
|
-
encrypt <file> <password> Encrypt a PDF with a password
|
|
16
|
-
decrypt <file> <password> Decrypt a password-protected PDF
|
|
17
15
|
help Print this message
|
|
18
16
|
`;
|
|
19
17
|
async function main() {
|
|
@@ -51,22 +49,6 @@ async function main() {
|
|
|
51
49
|
process.stdout.write(`wrote ${out.length} part-*.pdf files\n`);
|
|
52
50
|
return 0;
|
|
53
51
|
}
|
|
54
|
-
case 'encrypt': {
|
|
55
|
-
const [file, password, ownerPassword = ""] = args;
|
|
56
|
-
const encrypted = await pdfEngine.encrypt(await read(file), password, ownerPassword);
|
|
57
|
-
const outFile = file.replace(/\.pdf$/, '') + '.enc.pdf';
|
|
58
|
-
await fs.writeFile(outFile, encrypted);
|
|
59
|
-
process.stdout.write(`wrote ${outFile} (${encrypted.byteLength} bytes)\n`);
|
|
60
|
-
return 0;
|
|
61
|
-
}
|
|
62
|
-
case 'decrypt': {
|
|
63
|
-
const [file, password] = args;
|
|
64
|
-
const decrypted = await pdfEngine.decrypt(await read(file), password);
|
|
65
|
-
const outFile = file.replace(/\.pdf$/, '') + '.dec.pdf';
|
|
66
|
-
await fs.writeFile(outFile, decrypted);
|
|
67
|
-
process.stdout.write(`wrote ${outFile} (${decrypted.byteLength} bytes)\n`);
|
|
68
|
-
return 0;
|
|
69
|
-
}
|
|
70
52
|
default:
|
|
71
53
|
process.stderr.write(`unknown command: ${cmd}\n${USAGE}`);
|
|
72
54
|
return 1;
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare class PdfEngineImpl {
|
|
|
14
14
|
extractText(buffer: Uint8Array): Promise<string>;
|
|
15
15
|
merge(pdfBuffers: Uint8Array[]): Promise<Uint8Array>;
|
|
16
16
|
split(buffer: Uint8Array, pages: number[]): Promise<Uint8Array[]>;
|
|
17
|
+
isEncrypted(buffer: Uint8Array): Promise<boolean>;
|
|
17
18
|
encrypt(buffer: Uint8Array, userPassword: string, ownerPassword: string, version?: number): Promise<Uint8Array>;
|
|
18
19
|
decrypt(buffer: Uint8Array, password: string): Promise<Uint8Array>;
|
|
19
20
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtE;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAGzE;AAED,wBAAsB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAGtF;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED,wBAAsB,OAAO,CACzB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,SAAI,GACZ,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvF;AAED,qBAAa,aAAa;IACtB,cAEC;IACD,OAAO,CAAC,WAAW,CAAS;IAEtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAK1B;IAEK,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtD;IAEK,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrD;IAEK,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAGzD;IAEK,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAGtE;IAEK,OAAO,CACT,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,SAAI,GACZ,OAAO,CAAC,UAAU,CAAC,CAGrB;IAEK,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvE;CACJ;AAED,QAAA,MAAM,SAAS,eAAsB,CAAC;eACvB,SAAS"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtE;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAGzE;AAED,wBAAsB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAGtF;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED,wBAAsB,OAAO,CACzB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,SAAI,GACZ,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvF;AAED,qBAAa,aAAa;IACtB,cAEC;IACD,OAAO,CAAC,WAAW,CAAS;IAEtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAK1B;IAEK,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtD;IAEK,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrD;IAEK,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAGzD;IAEK,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAGtE;IAEK,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtD;IAEK,OAAO,CACT,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,SAAI,GACZ,OAAO,CAAC,UAAU,CAAC,CAGrB;IAEK,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvE;CACJ;AAED,QAAA,MAAM,SAAS,eAAsB,CAAC;eACvB,SAAS"}
|
package/dist/index.js
CHANGED
|
@@ -56,6 +56,10 @@ export class PdfEngineImpl {
|
|
|
56
56
|
await this.init();
|
|
57
57
|
return await split(buffer, pages);
|
|
58
58
|
}
|
|
59
|
+
async isEncrypted(buffer) {
|
|
60
|
+
await this.init();
|
|
61
|
+
return await isEncrypted(buffer);
|
|
62
|
+
}
|
|
59
63
|
async encrypt(buffer, userPassword, ownerPassword, version = 4) {
|
|
60
64
|
await this.init();
|
|
61
65
|
return await encrypt(buffer, userPassword, ownerPassword, version);
|
package/package.json
CHANGED
package/pkg/README.md
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/@jackgreen2018/pdf-engine)
|
|
6
6
|
[](https://www.npmjs.com/package/@jackgreen2018/pdf-engine)
|
|
7
7
|
[](LICENSE)
|
|
8
|
-
[](https://github.com/sponsors/jackgreen)
|
|
9
8
|
|
|
10
9
|
A high-performance PDF processing library for Node.js and the browser. Built with Rust + WebAssembly. Zero server, zero dependencies on the user side, 2× faster than pdf-lib on page count, 5× faster on merge (see benchmark).
|
|
11
10
|
|
|
@@ -131,23 +130,16 @@ npm run benchmark
|
|
|
131
130
|
|
|
132
131
|
| Operation | pdf-engine (ms) | pdf-lib (ms) |
|
|
133
132
|
|-----------|-----------------|--------------|
|
|
134
|
-
| Page Count | 0.
|
|
135
|
-
| Text Extraction | 0.
|
|
136
|
-
| Merge (2 files) |
|
|
137
|
-
| Split (pages [0,1]) | 0.
|
|
138
|
-
| Encrypt (V4 AES-128) |
|
|
133
|
+
| Page Count | 0.73 | 1.48 |
|
|
134
|
+
| Text Extraction | 0.30 | — |
|
|
135
|
+
| Merge (2 files) | 0.79 | 4.49 |
|
|
136
|
+
| Split (pages [0,1]) | 0.24 | 2.39 |
|
|
137
|
+
| Encrypt (V4 AES-128) | 0.79 | — |
|
|
138
|
+
| Decrypt | 0.38 | — |
|
|
139
139
|
|
|
140
140
|
*extractText correctness: PASS — gated via `tests/fixtures/text-fixture.pdf` (FlateDecode-compressed, real-world content stream). v1.0.30 fixes extractText to return actual text instead of "No text extracted."*
|
|
141
141
|
|
|
142
|
-
*Run 2026-08-03 (v1.0.
|
|
143
|
-
|
|
144
|
-
## Commercial license & support
|
|
145
|
-
|
|
146
|
-
Need to ship `pdf-engine` in closed-source software without the MIT attribution requirement, or need it for procurement/legal sign-off? A perpetual, per-seat commercial license is $49 one-time.
|
|
147
|
-
|
|
148
|
-
**[Buy the commercial license →](https://creem.io/product/prod_3ZlNAxFzbn9vwfT4Ho3OKJ)**
|
|
149
|
-
|
|
150
|
-
See [COMMERCIAL-LICENSE.md](./COMMERCIAL-LICENSE.md) for full terms. Team licenses, POs, or questions: `jackgreen2018+sponsors@gmail.com`.
|
|
142
|
+
*Run 2026-08-03 (v1.0.113); raw JSON at benchmark-results.json.*
|
|
151
143
|
|
|
152
144
|
## License
|
|
153
145
|
|
|
@@ -180,16 +172,6 @@ m.initialize().then(() => m.getPageCount(new Uint8Array(buf)))
|
|
|
180
172
|
| AC-8 | Final app repository commit is tagged `v1.0.0`; cycle scratch is absent and no web-deployment artifacts were added. | `evidence/git-tag.log`, final tree inspection |
|
|
181
173
|
| AC-9 | Encrypt/decrypt round-trip preserves page count; `isEncrypted` correctly reports true for encrypted and false for unencrypted PDFs. | `tests/smoke.js` encrypt/decrypt tests, benchmark `encrypt` gate |
|
|
182
174
|
|
|
183
|
-
## Launch post
|
|
184
|
-
|
|
185
|
-
Draft lives at [`evidence/devto-launch-post.md`](./evidence/devto-launch-post.md).
|
|
186
|
-
Posting requires a `DEVTO_API_KEY` (manual step). README's published benchmark
|
|
187
|
-
numbers (`evidence/benchmark.log`) are the source of truth until the dev.to URL exists.
|
|
188
|
-
|
|
189
175
|
## See Also
|
|
190
176
|
|
|
191
177
|
- [pdf-lib](https://www.npmjs.com/package/pdf-lib) — A popular JavaScript PDF library for comparison
|
|
192
|
-
|
|
193
|
-
## Backlinks
|
|
194
|
-
|
|
195
|
-
- Dev.to launch post (canonical for this version): https://www.npmjs.com/package/@jackgreen2018/pdf-engine
|
package/pkg/package.json
CHANGED
package/pkg/pdf_engine_bg.wasm
CHANGED
|
Binary file
|
package/src/cli.ts
CHANGED
|
@@ -13,8 +13,6 @@ Commands:
|
|
|
13
13
|
extract-text <file> Extract text from a PDF
|
|
14
14
|
merge <file1> <file2> ... Merge PDFs into a single output
|
|
15
15
|
split <file> <page1> ... Split a PDF by 0-based page indices
|
|
16
|
-
encrypt <file> <password> Encrypt a PDF with a password
|
|
17
|
-
decrypt <file> <password> Decrypt a password-protected PDF
|
|
18
16
|
help Print this message
|
|
19
17
|
`;
|
|
20
18
|
|
|
@@ -56,22 +54,6 @@ async function main(): Promise<number> {
|
|
|
56
54
|
process.stdout.write(`wrote ${out.length} part-*.pdf files\n`);
|
|
57
55
|
return 0;
|
|
58
56
|
}
|
|
59
|
-
case 'encrypt': {
|
|
60
|
-
const [file, password, ownerPassword = ""] = args;
|
|
61
|
-
const encrypted = await pdfEngine.encrypt(await read(file), password, ownerPassword);
|
|
62
|
-
const outFile = file.replace(/\.pdf$/, '') + '.enc.pdf';
|
|
63
|
-
await fs.writeFile(outFile, encrypted);
|
|
64
|
-
process.stdout.write(`wrote ${outFile} (${encrypted.byteLength} bytes)\n`);
|
|
65
|
-
return 0;
|
|
66
|
-
}
|
|
67
|
-
case 'decrypt': {
|
|
68
|
-
const [file, password] = args;
|
|
69
|
-
const decrypted = await pdfEngine.decrypt(await read(file), password);
|
|
70
|
-
const outFile = file.replace(/\.pdf$/, '') + '.dec.pdf';
|
|
71
|
-
await fs.writeFile(outFile, decrypted);
|
|
72
|
-
process.stdout.write(`wrote ${outFile} (${decrypted.byteLength} bytes)\n`);
|
|
73
|
-
return 0;
|
|
74
|
-
}
|
|
75
57
|
default:
|
|
76
58
|
process.stderr.write(`unknown command: ${cmd}\n${USAGE}`);
|
|
77
59
|
return 1;
|
package/src/index.ts
CHANGED
|
@@ -77,6 +77,11 @@ export class PdfEngineImpl {
|
|
|
77
77
|
return await split(buffer, pages);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
async isEncrypted(buffer: Uint8Array): Promise<boolean> {
|
|
81
|
+
await this.init();
|
|
82
|
+
return await isEncrypted(buffer);
|
|
83
|
+
}
|
|
84
|
+
|
|
80
85
|
async encrypt(
|
|
81
86
|
buffer: Uint8Array,
|
|
82
87
|
userPassword: string,
|
package/src/lib.rs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
use wasm_bindgen::prelude::*;
|
|
2
2
|
use js_sys::{Array, Uint8Array};
|
|
3
|
-
use std::sync::Arc;
|
|
4
|
-
use std::collections::BTreeMap;
|
|
5
3
|
use lopdf::{Document, Object, ObjectId, encryption::{EncryptionState, EncryptionVersion, Permissions}};
|
|
6
4
|
use lopdf::encryption::crypt_filters::{CryptFilter, Aes128CryptFilter};
|
|
5
|
+
use std::collections::BTreeMap;
|
|
6
|
+
use std::sync::Arc;
|
|
7
7
|
|
|
8
8
|
#[wasm_bindgen]
|
|
9
9
|
pub fn init() -> Result<(), JsValue> {
|
|
@@ -301,7 +301,6 @@ pub fn encrypt(
|
|
|
301
301
|
.map_err(|e| JsValue::from_str(&format!("PDF load error: {}", e)))?;
|
|
302
302
|
|
|
303
303
|
// Ensure /ID trailer entry exists (required by PDF encryption spec)
|
|
304
|
-
// PDF spec requires /ID to be an array of two byte strings
|
|
305
304
|
let mut doc = doc;
|
|
306
305
|
if doc.trailer.get(b"ID").is_err() {
|
|
307
306
|
doc.trailer.set(b"ID", Object::Array(vec![
|
|
@@ -311,7 +310,7 @@ pub fn encrypt(
|
|
|
311
310
|
}
|
|
312
311
|
|
|
313
312
|
// ponytail: version arg maps 1→V1/RC4, 2→V2/RC4-40bit, 4→V4/AES-128
|
|
314
|
-
// V5 requires raw file_encryption_key from user;
|
|
313
|
+
// V5 requires raw file_encryption_key from user; omitted for now
|
|
315
314
|
let state = match version {
|
|
316
315
|
1 => {
|
|
317
316
|
EncryptionState::try_from(EncryptionVersion::V1 {
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,UAAU;IAC5B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAkB;IACjD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAkB;IAChD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,UAAwB;IAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAkB,EAAE,KAAe;IAC3D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAiB,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,OAAO,aAAa;IACtB;QAGQ,gBAAW,GAAG,KAAK,CAAC;QAFxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;IAGD,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAkB;QACjC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAkB;QAChC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAwB;QAChC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAkB,EAAE,KAAe;QAC3C,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;CACJ;AAED,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;AACtC,eAAe,SAAS,CAAC"}
|
package/readme.numbers
DELETED
|
File without changes
|