typesexcel 1.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.
@@ -0,0 +1,140 @@
1
+ /*******************************************************************************
2
+ * Copyright (c) 2026 Maxprograms.
3
+ *
4
+ * This program and the accompanying materials
5
+ * are made available under the terms of the Eclipse Public License 1.0
6
+ * which accompanies this distribution, and is available at
7
+ * https://www.eclipse.org/org/documents/epl-v10.html
8
+ *
9
+ * Contributors:
10
+ * Maxprograms - initial API and implementation
11
+ *******************************************************************************/
12
+ import { deflateRawSync, inflateRawSync } from 'node:zlib';
13
+ import { Crc32 } from './crc32.js';
14
+ const LOCAL_FILE_HEADER_SIGNATURE = 0x04034b50;
15
+ const CENTRAL_DIRECTORY_SIGNATURE = 0x02014b50;
16
+ const END_OF_CENTRAL_DIRECTORY_SIGNATURE = 0x06054b50;
17
+ const METHOD_STORED = 0;
18
+ const METHOD_DEFLATE = 8;
19
+ export class ZipUtils {
20
+ crc32;
21
+ constructor() {
22
+ this.crc32 = new Crc32();
23
+ }
24
+ readZip(buffer) {
25
+ let eocdOffset = this.findEndOfCentralDirectory(buffer);
26
+ let totalEntries = buffer.readUInt16LE(eocdOffset + 10);
27
+ let centralDirectoryOffset = buffer.readUInt32LE(eocdOffset + 16);
28
+ let entries = [];
29
+ let pointer = centralDirectoryOffset;
30
+ for (let i = 0; i < totalEntries; i++) {
31
+ if (buffer.readUInt32LE(pointer) !== CENTRAL_DIRECTORY_SIGNATURE) {
32
+ throw new Error('Corrupt zip entry: central directory signature mismatch');
33
+ }
34
+ let method = buffer.readUInt16LE(pointer + 10);
35
+ let compressedSize = buffer.readUInt32LE(pointer + 20);
36
+ let uncompressedSize = buffer.readUInt32LE(pointer + 24);
37
+ let nameLength = buffer.readUInt16LE(pointer + 28);
38
+ let extraLength = buffer.readUInt16LE(pointer + 30);
39
+ let commentLength = buffer.readUInt16LE(pointer + 32);
40
+ let localHeaderOffset = buffer.readUInt32LE(pointer + 42);
41
+ let name = buffer.toString('utf8', pointer + 46, pointer + 46 + nameLength);
42
+ entries.push({ name, method, compressedSize, uncompressedSize, localHeaderOffset });
43
+ pointer += 46 + nameLength + extraLength + commentLength;
44
+ }
45
+ let result = new Map();
46
+ for (let entry of entries) {
47
+ result.set(entry.name, this.extractEntry(buffer, entry));
48
+ }
49
+ return result;
50
+ }
51
+ writeZip(entries) {
52
+ let localParts = [];
53
+ let centralParts = [];
54
+ let offset = 0;
55
+ let { time, date } = this.dosDateTime(new Date());
56
+ for (let [name, data] of entries) {
57
+ let nameBuffer = Buffer.from(name, 'utf8');
58
+ let compressed = deflateRawSync(data);
59
+ let checksum = this.crc32.compute(data);
60
+ let localHeader = Buffer.alloc(30);
61
+ localHeader.writeUInt32LE(LOCAL_FILE_HEADER_SIGNATURE, 0);
62
+ localHeader.writeUInt16LE(20, 4);
63
+ localHeader.writeUInt16LE(0, 6);
64
+ localHeader.writeUInt16LE(METHOD_DEFLATE, 8);
65
+ localHeader.writeUInt16LE(time, 10);
66
+ localHeader.writeUInt16LE(date, 12);
67
+ localHeader.writeUInt32LE(checksum, 14);
68
+ localHeader.writeUInt32LE(compressed.length, 18);
69
+ localHeader.writeUInt32LE(data.length, 22);
70
+ localHeader.writeUInt16LE(nameBuffer.length, 26);
71
+ localHeader.writeUInt16LE(0, 28);
72
+ localParts.push(localHeader, nameBuffer, compressed);
73
+ let centralHeader = Buffer.alloc(46);
74
+ centralHeader.writeUInt32LE(CENTRAL_DIRECTORY_SIGNATURE, 0);
75
+ centralHeader.writeUInt16LE(20, 4);
76
+ centralHeader.writeUInt16LE(20, 6);
77
+ centralHeader.writeUInt16LE(0, 8);
78
+ centralHeader.writeUInt16LE(METHOD_DEFLATE, 10);
79
+ centralHeader.writeUInt16LE(time, 12);
80
+ centralHeader.writeUInt16LE(date, 14);
81
+ centralHeader.writeUInt32LE(checksum, 16);
82
+ centralHeader.writeUInt32LE(compressed.length, 20);
83
+ centralHeader.writeUInt32LE(data.length, 24);
84
+ centralHeader.writeUInt16LE(nameBuffer.length, 28);
85
+ centralHeader.writeUInt16LE(0, 30);
86
+ centralHeader.writeUInt16LE(0, 32);
87
+ centralHeader.writeUInt16LE(0, 34);
88
+ centralHeader.writeUInt16LE(0, 36);
89
+ centralHeader.writeUInt32LE(0, 38);
90
+ centralHeader.writeUInt32LE(offset, 42);
91
+ centralParts.push(centralHeader, nameBuffer);
92
+ offset += localHeader.length + nameBuffer.length + compressed.length;
93
+ }
94
+ let centralDirectory = Buffer.concat(centralParts);
95
+ let centralDirectoryOffset = offset;
96
+ let eocd = Buffer.alloc(22);
97
+ eocd.writeUInt32LE(END_OF_CENTRAL_DIRECTORY_SIGNATURE, 0);
98
+ eocd.writeUInt16LE(0, 4);
99
+ eocd.writeUInt16LE(0, 6);
100
+ eocd.writeUInt16LE(entries.size, 8);
101
+ eocd.writeUInt16LE(entries.size, 10);
102
+ eocd.writeUInt32LE(centralDirectory.length, 12);
103
+ eocd.writeUInt32LE(centralDirectoryOffset, 16);
104
+ eocd.writeUInt16LE(0, 20);
105
+ return Buffer.concat([...localParts, centralDirectory, eocd]);
106
+ }
107
+ extractEntry(buffer, entry) {
108
+ let offset = entry.localHeaderOffset;
109
+ if (buffer.readUInt32LE(offset) !== LOCAL_FILE_HEADER_SIGNATURE) {
110
+ throw new Error('Corrupt zip entry: local file header signature mismatch for ' + entry.name);
111
+ }
112
+ let nameLength = buffer.readUInt16LE(offset + 26);
113
+ let extraLength = buffer.readUInt16LE(offset + 28);
114
+ let dataStart = offset + 30 + nameLength + extraLength;
115
+ let compressed = buffer.subarray(dataStart, dataStart + entry.compressedSize);
116
+ if (entry.method === METHOD_STORED) {
117
+ return Buffer.from(compressed);
118
+ }
119
+ if (entry.method === METHOD_DEFLATE) {
120
+ return inflateRawSync(compressed);
121
+ }
122
+ throw new Error('Unsupported compression method (' + entry.method + ') for ' + entry.name);
123
+ }
124
+ findEndOfCentralDirectory(buffer) {
125
+ let minOffset = Math.max(0, buffer.length - 22 - 0xFFFF);
126
+ for (let offset = buffer.length - 22; offset >= minOffset; offset--) {
127
+ if (buffer.readUInt32LE(offset) === END_OF_CENTRAL_DIRECTORY_SIGNATURE) {
128
+ return offset;
129
+ }
130
+ }
131
+ throw new Error('Not a valid zip file: end of central directory record not found');
132
+ }
133
+ dosDateTime(value) {
134
+ let year = Math.max(1980, value.getFullYear());
135
+ let date = ((year - 1980) << 9) | ((value.getMonth() + 1) << 5) | value.getDate();
136
+ let time = (value.getHours() << 11) | (value.getMinutes() << 5) | Math.floor(value.getSeconds() / 2);
137
+ return { time, date };
138
+ }
139
+ }
140
+ //# sourceMappingURL=zipUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zipUtils.js","sourceRoot":"","sources":["../ts/zipUtils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "typesexcel",
3
+ "productName": "TypesExcel",
4
+ "version": "1.0.1",
5
+ "description": "TypeScript library for reading and writing Excel (.xlsx) files",
6
+ "keywords": [
7
+ "Excel",
8
+ "XLSX",
9
+ "OOXML",
10
+ "spreadsheet",
11
+ "TypeScript",
12
+ "zip"
13
+ ],
14
+ "type": "module",
15
+ "scripts": {
16
+ "build": "tsc && node dist/copy-assets.js"
17
+ },
18
+ "author": {
19
+ "name": "Rodolfo M. Raya",
20
+ "url": "https://maxprograms.com",
21
+ "email": "rmraya@maxprograms.com"
22
+ },
23
+ "license": "EPL-1.0",
24
+ "main": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js",
30
+ "default": "./dist/index.js"
31
+ },
32
+ "./package.json": "./package.json"
33
+ },
34
+ "files": [
35
+ "dist"
36
+ ],
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/maxprograms-com/TypesExcel.git"
40
+ },
41
+ "dependencies": {
42
+ "typesxml": "^2.2.1"
43
+ },
44
+ "devDependencies": {
45
+ "@types/node": "^24.13.2",
46
+ "typescript": "^6.0.3"
47
+ }
48
+ }