pst-extractor 1.10.0 → 1.11.0
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/dist/PSTFile.class.js +23 -11
- package/dist/PSTNodeInputStream.class.js +17 -7
- package/dist/PSTTable7C.class.js +2 -1
- package/example/package.json +5 -5
- package/example/yarn.lock +64 -62
- package/junit.xml +34 -34
- package/package.json +17 -17
- package/readme.md +2 -0
package/dist/PSTFile.class.js
CHANGED
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -218,10 +228,12 @@ class PSTFile {
|
|
|
218
228
|
// identifier is a string
|
|
219
229
|
// key is byte offset into the String stream in which the string name of the property is stored.
|
|
220
230
|
const len = PSTUtil_class_1.PSTUtil.convertLittleEndianBytesToLong(stringNameToIdByte, key, key + 4).toNumber();
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
231
|
+
if (len > 0 && len <= stringNameToIdByte.length) {
|
|
232
|
+
const keyByteValue = Buffer.alloc(len);
|
|
233
|
+
PSTUtil_class_1.PSTUtil.arraycopy(stringNameToIdByte, key + 4, keyByteValue, 0, keyByteValue.length);
|
|
234
|
+
propId += 0x8000;
|
|
235
|
+
PSTFile.nodeMap.setId(keyByteValue.toString('utf16le').replace(/\0/g, ''), propId);
|
|
236
|
+
}
|
|
225
237
|
}
|
|
226
238
|
}
|
|
227
239
|
}
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
package/dist/PSTTable7C.class.js
CHANGED
|
@@ -185,7 +185,8 @@ class PSTTable7C extends PSTTable_class_1.PSTTable {
|
|
|
185
185
|
// Does this column exist for this row?
|
|
186
186
|
const bitIndex = Math.trunc(this.columnDescriptors[col].iBit / 8);
|
|
187
187
|
const bit = this.columnDescriptors[col].iBit % 8;
|
|
188
|
-
|
|
188
|
+
// https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-pst/c48fa6b4-bfd4-49d7-80f8-8718bc4bcddc
|
|
189
|
+
if (bitIndex >= bitmap.length || (bitmap[bitIndex] & (1 << (7 - bit))) == 0) {
|
|
189
190
|
// Column doesn't exist
|
|
190
191
|
continue;
|
|
191
192
|
}
|
package/example/package.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"pst-extractor": "link:.."
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
|
-
"@types/node": "^
|
|
10
|
-
"eslint-config-prettier": "^
|
|
11
|
-
"eslint-plugin-prettier": "^5.
|
|
12
|
-
"prettier": "^3.
|
|
9
|
+
"@types/node": "^22.10.7",
|
|
10
|
+
"eslint-config-prettier": "^10.0.1",
|
|
11
|
+
"eslint-plugin-prettier": "^5.2.2",
|
|
12
|
+
"prettier": "^3.4.2",
|
|
13
13
|
"ts-node": "^10.9.2",
|
|
14
|
-
"typescript": "^5.
|
|
14
|
+
"typescript": "^5.7.3"
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
17
|
"start": "ts-node test-min.ts",
|
package/example/yarn.lock
CHANGED
|
@@ -33,41 +33,43 @@
|
|
|
33
33
|
integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
|
|
34
34
|
|
|
35
35
|
"@tsconfig/node10@^1.0.7":
|
|
36
|
-
version "1.0.
|
|
37
|
-
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.
|
|
38
|
-
integrity sha512-
|
|
36
|
+
version "1.0.11"
|
|
37
|
+
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
|
|
38
|
+
integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==
|
|
39
39
|
|
|
40
40
|
"@tsconfig/node12@^1.0.7":
|
|
41
|
-
version "1.0.
|
|
42
|
-
resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.
|
|
43
|
-
integrity sha512
|
|
41
|
+
version "1.0.11"
|
|
42
|
+
resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
|
|
43
|
+
integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
|
|
44
44
|
|
|
45
45
|
"@tsconfig/node14@^1.0.0":
|
|
46
|
-
version "1.0.
|
|
47
|
-
resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.
|
|
48
|
-
integrity sha512-
|
|
46
|
+
version "1.0.3"
|
|
47
|
+
resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
|
|
48
|
+
integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
|
|
49
49
|
|
|
50
50
|
"@tsconfig/node16@^1.0.2":
|
|
51
|
-
version "1.0.
|
|
52
|
-
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.
|
|
53
|
-
integrity sha512-
|
|
54
|
-
|
|
55
|
-
"@types/node@^
|
|
56
|
-
version "
|
|
57
|
-
resolved "https://registry.yarnpkg.com/@types/node/-/node-
|
|
58
|
-
integrity sha512-
|
|
51
|
+
version "1.0.4"
|
|
52
|
+
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
|
|
53
|
+
integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
|
|
54
|
+
|
|
55
|
+
"@types/node@^22.10.7":
|
|
56
|
+
version "22.10.7"
|
|
57
|
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.7.tgz#14a1ca33fd0ebdd9d63593ed8d3fbc882a6d28d7"
|
|
58
|
+
integrity sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==
|
|
59
59
|
dependencies:
|
|
60
|
-
undici-types "~
|
|
60
|
+
undici-types "~6.20.0"
|
|
61
61
|
|
|
62
62
|
acorn-walk@^8.1.1:
|
|
63
|
-
version "8.
|
|
64
|
-
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.
|
|
65
|
-
integrity sha512-
|
|
63
|
+
version "8.3.4"
|
|
64
|
+
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
|
|
65
|
+
integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
|
|
66
|
+
dependencies:
|
|
67
|
+
acorn "^8.11.0"
|
|
66
68
|
|
|
67
|
-
acorn@^8.4.1:
|
|
68
|
-
version "8.
|
|
69
|
-
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.
|
|
70
|
-
integrity sha512-
|
|
69
|
+
acorn@^8.11.0, acorn@^8.4.1:
|
|
70
|
+
version "8.14.0"
|
|
71
|
+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
|
|
72
|
+
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
|
|
71
73
|
|
|
72
74
|
arg@^4.1.0:
|
|
73
75
|
version "4.1.3"
|
|
@@ -84,23 +86,23 @@ diff@^4.0.1:
|
|
|
84
86
|
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
|
|
85
87
|
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
|
|
86
88
|
|
|
87
|
-
eslint-config-prettier@^
|
|
88
|
-
version "
|
|
89
|
-
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-
|
|
90
|
-
integrity sha512-
|
|
89
|
+
eslint-config-prettier@^10.0.1:
|
|
90
|
+
version "10.0.1"
|
|
91
|
+
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz#fbb03bfc8db0651df9ce4e8b7150d11c5fe3addf"
|
|
92
|
+
integrity sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==
|
|
91
93
|
|
|
92
|
-
eslint-plugin-prettier@^5.
|
|
93
|
-
version "5.
|
|
94
|
-
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.
|
|
95
|
-
integrity sha512-
|
|
94
|
+
eslint-plugin-prettier@^5.2.2:
|
|
95
|
+
version "5.2.2"
|
|
96
|
+
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.2.tgz#d1f068f65dc8490f102eda21d1f4cd150c205211"
|
|
97
|
+
integrity sha512-1yI3/hf35wmlq66C8yOyrujQnel+v5l1Vop5Cl2I6ylyNTT1JbuUUnV3/41PzwTzcyDp/oF0jWE3HXvcH5AQOQ==
|
|
96
98
|
dependencies:
|
|
97
99
|
prettier-linter-helpers "^1.0.0"
|
|
98
|
-
synckit "^0.
|
|
100
|
+
synckit "^0.9.1"
|
|
99
101
|
|
|
100
102
|
fast-diff@^1.1.2:
|
|
101
|
-
version "1.
|
|
102
|
-
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.
|
|
103
|
-
integrity sha512-
|
|
103
|
+
version "1.3.0"
|
|
104
|
+
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
|
|
105
|
+
integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
|
|
104
106
|
|
|
105
107
|
iconv-lite@^0.6.3:
|
|
106
108
|
version "0.6.3"
|
|
@@ -109,10 +111,10 @@ iconv-lite@^0.6.3:
|
|
|
109
111
|
dependencies:
|
|
110
112
|
safer-buffer ">= 2.1.2 < 3.0.0"
|
|
111
113
|
|
|
112
|
-
long@^5.2.
|
|
113
|
-
version "5.2.
|
|
114
|
-
resolved "https://registry.yarnpkg.com/long/-/long-5.2.
|
|
115
|
-
integrity sha512-
|
|
114
|
+
long@^5.2.3:
|
|
115
|
+
version "5.2.4"
|
|
116
|
+
resolved "https://registry.yarnpkg.com/long/-/long-5.2.4.tgz#ee651d5c7c25901cfca5e67220ae9911695e99b2"
|
|
117
|
+
integrity sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==
|
|
116
118
|
|
|
117
119
|
make-error@^1.1.1:
|
|
118
120
|
version "1.3.6"
|
|
@@ -126,10 +128,10 @@ prettier-linter-helpers@^1.0.0:
|
|
|
126
128
|
dependencies:
|
|
127
129
|
fast-diff "^1.1.2"
|
|
128
130
|
|
|
129
|
-
prettier@^3.
|
|
130
|
-
version "3.
|
|
131
|
-
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.
|
|
132
|
-
integrity sha512-
|
|
131
|
+
prettier@^3.4.2:
|
|
132
|
+
version "3.4.2"
|
|
133
|
+
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f"
|
|
134
|
+
integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==
|
|
133
135
|
|
|
134
136
|
"pst-extractor@link:..":
|
|
135
137
|
version "0.0.0"
|
|
@@ -140,10 +142,10 @@ prettier@^3.3.3:
|
|
|
140
142
|
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
|
141
143
|
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
|
142
144
|
|
|
143
|
-
synckit@^0.
|
|
144
|
-
version "0.
|
|
145
|
-
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.
|
|
146
|
-
integrity sha512-
|
|
145
|
+
synckit@^0.9.1:
|
|
146
|
+
version "0.9.2"
|
|
147
|
+
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.2.tgz#a3a935eca7922d48b9e7d6c61822ee6c3ae4ec62"
|
|
148
|
+
integrity sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==
|
|
147
149
|
dependencies:
|
|
148
150
|
"@pkgr/core" "^0.1.0"
|
|
149
151
|
tslib "^2.6.2"
|
|
@@ -168,19 +170,19 @@ ts-node@^10.9.2:
|
|
|
168
170
|
yn "3.1.1"
|
|
169
171
|
|
|
170
172
|
tslib@^2.6.2:
|
|
171
|
-
version "2.
|
|
172
|
-
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.
|
|
173
|
-
integrity sha512-
|
|
174
|
-
|
|
175
|
-
typescript@^5.
|
|
176
|
-
version "5.
|
|
177
|
-
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.
|
|
178
|
-
integrity sha512
|
|
179
|
-
|
|
180
|
-
undici-types@~
|
|
181
|
-
version "
|
|
182
|
-
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-
|
|
183
|
-
integrity sha512-
|
|
173
|
+
version "2.8.1"
|
|
174
|
+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
|
|
175
|
+
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
|
176
|
+
|
|
177
|
+
typescript@^5.7.3:
|
|
178
|
+
version "5.7.3"
|
|
179
|
+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e"
|
|
180
|
+
integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==
|
|
181
|
+
|
|
182
|
+
undici-types@~6.20.0:
|
|
183
|
+
version "6.20.0"
|
|
184
|
+
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
|
|
185
|
+
integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
|
|
184
186
|
|
|
185
187
|
uuid-parse@^1.1.0:
|
|
186
188
|
version "1.1.0"
|
package/junit.xml
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<testsuites name="jest tests" tests="22" failures="0" errors="0" time="
|
|
3
|
-
<testsuite name="
|
|
4
|
-
<testcase classname="
|
|
2
|
+
<testsuites name="jest tests" tests="22" failures="0" errors="0" time="1.693">
|
|
3
|
+
<testsuite name="PSTfile tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.057" tests="1">
|
|
4
|
+
<testcase classname="PSTfile tests should open the file" name="PSTfile tests should open the file" time="0.006">
|
|
5
5
|
</testcase>
|
|
6
6
|
</testsuite>
|
|
7
|
-
<testsuite name="PSTFolder tests" errors="0" failures="0" skipped="0" timestamp="
|
|
8
|
-
<testcase classname="PSTFolder tests should have a root folder" name="PSTFolder tests should have a root folder" time="0.
|
|
7
|
+
<testsuite name="PSTFolder tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.068" tests="2">
|
|
8
|
+
<testcase classname="PSTFolder tests should have a root folder" name="PSTFolder tests should have a root folder" time="0.013">
|
|
9
9
|
</testcase>
|
|
10
|
-
<testcase classname="PSTFolder tests root folder should have sub folders" name="PSTFolder tests root folder should have sub folders" time="0.
|
|
10
|
+
<testcase classname="PSTFolder tests root folder should have sub folders" name="PSTFolder tests root folder should have sub folders" time="0.023">
|
|
11
11
|
</testcase>
|
|
12
12
|
</testsuite>
|
|
13
|
-
<testsuite name="
|
|
14
|
-
<testcase classname="
|
|
13
|
+
<testsuite name="PSTObject tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.084" tests="1">
|
|
14
|
+
<testcase classname="PSTObject tests should have basic attributes" name="PSTObject tests should have basic attributes" time="0.044">
|
|
15
15
|
</testcase>
|
|
16
16
|
</testsuite>
|
|
17
|
-
<testsuite name="PSTRecipient tests" errors="0" failures="0" skipped="0" timestamp="
|
|
18
|
-
<testcase classname="PSTRecipient tests should have email messages" name="PSTRecipient tests should have email messages" time="0.
|
|
17
|
+
<testsuite name="PSTRecipient tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.105" tests="1">
|
|
18
|
+
<testcase classname="PSTRecipient tests should have email messages" name="PSTRecipient tests should have email messages" time="0.05">
|
|
19
19
|
</testcase>
|
|
20
20
|
</testsuite>
|
|
21
|
-
<testsuite name="PSTMessage tests" errors="0" failures="0" skipped="0" timestamp="
|
|
22
|
-
<testcase classname="PSTMessage tests should have email messages" name="PSTMessage tests should have email messages" time="0.
|
|
21
|
+
<testsuite name="PSTMessage tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.114" tests="2">
|
|
22
|
+
<testcase classname="PSTMessage tests should have email messages" name="PSTMessage tests should have email messages" time="0.032">
|
|
23
23
|
</testcase>
|
|
24
|
-
<testcase classname="PSTMessage tests should have email message which uses block skip points" name="PSTMessage tests should have email message which uses block skip points" time="0.
|
|
24
|
+
<testcase classname="PSTMessage tests should have email message which uses block skip points" name="PSTMessage tests should have email message which uses block skip points" time="0.014">
|
|
25
25
|
</testcase>
|
|
26
26
|
</testsuite>
|
|
27
|
-
<testsuite name="
|
|
28
|
-
<testcase classname="
|
|
27
|
+
<testsuite name="PSTTask tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.162" tests="2">
|
|
28
|
+
<testcase classname="PSTTask tests should have a Tasks folder" name="PSTTask tests should have a Tasks folder" time="0.004">
|
|
29
29
|
</testcase>
|
|
30
|
-
<testcase classname="
|
|
30
|
+
<testcase classname="PSTTask tests should have two tasks" name="PSTTask tests should have two tasks" time="0.01">
|
|
31
31
|
</testcase>
|
|
32
32
|
</testsuite>
|
|
33
|
-
<testsuite name="PSTActivity tests" errors="0" failures="0" skipped="0" timestamp="
|
|
34
|
-
<testcase classname="PSTActivity tests should have a Journal folder" name="PSTActivity tests should have a Journal folder" time="0.
|
|
33
|
+
<testsuite name="PSTActivity tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.165" tests="2">
|
|
34
|
+
<testcase classname="PSTActivity tests should have a Journal folder" name="PSTActivity tests should have a Journal folder" time="0.004">
|
|
35
35
|
</testcase>
|
|
36
|
-
<testcase classname="PSTActivity tests root folder should have a journal entry" name="PSTActivity tests root folder should have a journal entry" time="0.
|
|
36
|
+
<testcase classname="PSTActivity tests root folder should have a journal entry" name="PSTActivity tests root folder should have a journal entry" time="0.009">
|
|
37
37
|
</testcase>
|
|
38
38
|
</testsuite>
|
|
39
|
-
<testsuite name="PSTAppointment tests" errors="0" failures="0" skipped="0" timestamp="
|
|
40
|
-
<testcase classname="PSTAppointment tests should have a Calendar folder" name="PSTAppointment tests should have a Calendar folder" time="0.
|
|
39
|
+
<testsuite name="PSTAppointment tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.188" tests="2">
|
|
40
|
+
<testcase classname="PSTAppointment tests should have a Calendar folder" name="PSTAppointment tests should have a Calendar folder" time="0.003">
|
|
41
41
|
</testcase>
|
|
42
|
-
<testcase classname="PSTAppointment tests should have two calendar items" name="PSTAppointment tests should have two calendar items" time="0.
|
|
42
|
+
<testcase classname="PSTAppointment tests should have two calendar items" name="PSTAppointment tests should have two calendar items" time="0.017">
|
|
43
43
|
</testcase>
|
|
44
44
|
</testsuite>
|
|
45
|
-
<testsuite name="
|
|
46
|
-
<testcase classname="
|
|
45
|
+
<testsuite name="RecurrencePattern tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.199" tests="2">
|
|
46
|
+
<testcase classname="RecurrencePattern tests should have a Calendar folder" name="RecurrencePattern tests should have a Calendar folder" time="0.004">
|
|
47
47
|
</testcase>
|
|
48
|
-
<testcase classname="
|
|
48
|
+
<testcase classname="RecurrencePattern tests should have repeating events" name="RecurrencePattern tests should have repeating events" time="0.025">
|
|
49
49
|
</testcase>
|
|
50
50
|
</testsuite>
|
|
51
|
-
<testsuite name="PSTContact tests" errors="0" failures="0" skipped="0" timestamp="
|
|
52
|
-
<testcase classname="PSTContact tests should have a Contact folder" name="PSTContact tests should have a Contact folder" time="0.
|
|
51
|
+
<testsuite name="PSTContact tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.199" tests="2">
|
|
52
|
+
<testcase classname="PSTContact tests should have a Contact folder" name="PSTContact tests should have a Contact folder" time="0.004">
|
|
53
53
|
</testcase>
|
|
54
|
-
<testcase classname="PSTContact tests should have a contact with several fields" name="PSTContact tests should have a contact with several fields" time="0.
|
|
54
|
+
<testcase classname="PSTContact tests should have a contact with several fields" name="PSTContact tests should have a contact with several fields" time="0.019">
|
|
55
55
|
</testcase>
|
|
56
56
|
</testsuite>
|
|
57
|
-
<testsuite name="PSTAttachment tests" errors="0" failures="0" skipped="0" timestamp="
|
|
58
|
-
<testcase classname="PSTAttachment tests should have a contact with an attachment" name="PSTAttachment tests should have a contact with an attachment" time="0.
|
|
57
|
+
<testsuite name="PSTAttachment tests" errors="0" failures="0" skipped="0" timestamp="2025-01-18T18:35:49" time="1.396" tests="5">
|
|
58
|
+
<testcase classname="PSTAttachment tests should have a contact with an attachment" name="PSTAttachment tests should have a contact with an attachment" time="0.092">
|
|
59
59
|
</testcase>
|
|
60
|
-
<testcase classname="PSTAttachment tests should have a task with an attachment" name="PSTAttachment tests should have a task with an attachment" time="0.
|
|
60
|
+
<testcase classname="PSTAttachment tests should have a task with an attachment" name="PSTAttachment tests should have a task with an attachment" time="0.054">
|
|
61
61
|
</testcase>
|
|
62
|
-
<testcase classname="PSTAttachment tests should have email with word attachment" name="PSTAttachment tests should have email with word attachment" time="0.
|
|
62
|
+
<testcase classname="PSTAttachment tests should have email with word attachment" name="PSTAttachment tests should have email with word attachment" time="0.053">
|
|
63
63
|
</testcase>
|
|
64
|
-
<testcase classname="PSTAttachment tests should have email with excel attachment" name="PSTAttachment tests should have email with excel attachment" time="0.
|
|
64
|
+
<testcase classname="PSTAttachment tests should have email with excel attachment" name="PSTAttachment tests should have email with excel attachment" time="0.053">
|
|
65
65
|
</testcase>
|
|
66
|
-
<testcase classname="PSTAttachment tests should have email with jpg attachment" name="PSTAttachment tests should have email with jpg attachment" time="0.
|
|
66
|
+
<testcase classname="PSTAttachment tests should have email with jpg attachment" name="PSTAttachment tests should have email with jpg attachment" time="0.058">
|
|
67
67
|
</testcase>
|
|
68
68
|
</testsuite>
|
|
69
69
|
</testsuites>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pst-extractor",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0",
|
|
4
4
|
"description": "Extract objects from MS Outlook/Exchange PST files",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,40 +18,40 @@
|
|
|
18
18
|
"author": "Ed Pfromer (epfromer@gmail.com)",
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@babel/core": "^7.
|
|
21
|
+
"@babel/core": "^7.26.0",
|
|
22
22
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
23
|
-
"@babel/preset-env": "^7.
|
|
24
|
-
"@babel/preset-typescript": "^7.
|
|
23
|
+
"@babel/preset-env": "^7.26.0",
|
|
24
|
+
"@babel/preset-typescript": "^7.26.0",
|
|
25
25
|
"@types/debug": "4.1.12",
|
|
26
|
-
"@types/jest": "^29.5.
|
|
26
|
+
"@types/jest": "^29.5.14",
|
|
27
27
|
"@types/long": "^5.0.0",
|
|
28
|
-
"@types/node": "^
|
|
29
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
30
|
-
"@typescript-eslint/parser": "^
|
|
28
|
+
"@types/node": "^22.10.7",
|
|
29
|
+
"@typescript-eslint/eslint-plugin": "^8.20.0",
|
|
30
|
+
"@typescript-eslint/parser": "^8.20.0",
|
|
31
31
|
"babel-eslint": "^10.1.0",
|
|
32
32
|
"babel-jest": "^29.7.0",
|
|
33
33
|
"cross-env": "^7.0.3",
|
|
34
|
-
"debug": "^4.
|
|
35
|
-
"eslint": "^9.
|
|
36
|
-
"eslint-config-prettier": "^
|
|
34
|
+
"debug": "^4.4.0",
|
|
35
|
+
"eslint": "^9.18.0",
|
|
36
|
+
"eslint-config-prettier": "^10.0.1",
|
|
37
37
|
"eslint-config-standard": "^17.1.0",
|
|
38
|
-
"eslint-plugin-import": "^2.
|
|
38
|
+
"eslint-plugin-import": "^2.31.0",
|
|
39
39
|
"eslint-plugin-node": "^11.1.0",
|
|
40
|
-
"eslint-plugin-prettier": "^5.
|
|
41
|
-
"eslint-plugin-promise": "^
|
|
40
|
+
"eslint-plugin-prettier": "^5.2.2",
|
|
41
|
+
"eslint-plugin-promise": "^7.2.1",
|
|
42
42
|
"eslint-plugin-standard": "^5.0.0",
|
|
43
43
|
"jest": "^29.7.0",
|
|
44
44
|
"jest-junit": "^16.0.0",
|
|
45
45
|
"npm-run-all": "^4.1.5",
|
|
46
|
-
"prettier": "^3.
|
|
46
|
+
"prettier": "^3.4.2",
|
|
47
47
|
"rimraf": "^6.0.1",
|
|
48
48
|
"source-map-support": "^0.5.21",
|
|
49
49
|
"ts-node": "^10.9.2",
|
|
50
|
-
"typescript": "^5.
|
|
50
|
+
"typescript": "^5.7.3"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"iconv-lite": "^0.6.3",
|
|
54
|
-
"long": "^5.2.
|
|
54
|
+
"long": "^5.2.4",
|
|
55
55
|
"uuid-parse": "^1.1.0"
|
|
56
56
|
},
|
|
57
57
|
"eslintConfig": {
|
package/readme.md
CHANGED
|
@@ -12,6 +12,8 @@ This is based off code from https://github.com/rjohnsondev/java-libpst. Thanks t
|
|
|
12
12
|
|
|
13
13
|
A spec from Microsoft on the PST file format is at https://msdn.microsoft.com/en-us/library/ff385210(v=office.12).aspx.
|
|
14
14
|
|
|
15
|
+
Note that this tool does NOT work with corrupt PST files.
|
|
16
|
+
|
|
15
17
|
## Install
|
|
16
18
|
|
|
17
19
|
```npm install --save pst-extractor```
|