@hiraokahypertools/pst-extractor 0.1.0-alpha.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 (90) hide show
  1. package/dist/BTHeap.d.ts +15 -0
  2. package/dist/BTHeap.js +76 -0
  3. package/dist/CollectionAsyncProvider.d.ts +15 -0
  4. package/dist/CollectionAsyncProvider.js +44 -0
  5. package/dist/KeyedDelay.d.ts +8 -0
  6. package/dist/KeyedDelay.js +37 -0
  7. package/dist/LZFu.class.d.ts +12 -0
  8. package/dist/LZFu.class.js +95 -0
  9. package/dist/NodeMap.class.d.ts +35 -0
  10. package/dist/NodeMap.class.js +86 -0
  11. package/dist/OutlookProperties.d.ts +278 -0
  12. package/dist/OutlookProperties.js +284 -0
  13. package/dist/PAUtil.d.ts +17 -0
  14. package/dist/PAUtil.js +145 -0
  15. package/dist/PHNodeHeap.d.ts +16 -0
  16. package/dist/PHNodeHeap.js +2 -0
  17. package/dist/PHNodeHeapReader.d.ts +6 -0
  18. package/dist/PHNodeHeapReader.js +5 -0
  19. package/dist/PHUtil.d.ts +6 -0
  20. package/dist/PHUtil.js +103 -0
  21. package/dist/PLMisc.d.ts +8 -0
  22. package/dist/PLMisc.js +16 -0
  23. package/dist/PLNode.d.ts +11 -0
  24. package/dist/PLNode.js +5 -0
  25. package/dist/PLStore.d.ts +9 -0
  26. package/dist/PLStore.js +5 -0
  27. package/dist/PLSubNode.d.ts +8 -0
  28. package/dist/PLSubNode.js +5 -0
  29. package/dist/PLUtil.d.ts +29 -0
  30. package/dist/PLUtil.js +683 -0
  31. package/dist/PSTActivity.class.d.ts +103 -0
  32. package/dist/PSTActivity.class.js +144 -0
  33. package/dist/PSTAppointment.class.d.ts +275 -0
  34. package/dist/PSTAppointment.class.js +381 -0
  35. package/dist/PSTAttachment.class.d.ts +168 -0
  36. package/dist/PSTAttachment.class.js +286 -0
  37. package/dist/PSTContact.class.d.ts +900 -0
  38. package/dist/PSTContact.class.js +1253 -0
  39. package/dist/PSTFile.class.d.ts +144 -0
  40. package/dist/PSTFile.class.js +221 -0
  41. package/dist/PSTFolder.class.d.ts +111 -0
  42. package/dist/PSTFolder.class.js +269 -0
  43. package/dist/PSTMessage.class.d.ts +773 -0
  44. package/dist/PSTMessage.class.js +1264 -0
  45. package/dist/PSTMessageStore.class.d.ts +16 -0
  46. package/dist/PSTMessageStore.class.js +18 -0
  47. package/dist/PSTObject.class.d.ts +107 -0
  48. package/dist/PSTObject.class.js +208 -0
  49. package/dist/PSTOpts.d.ts +24 -0
  50. package/dist/PSTOpts.js +2 -0
  51. package/dist/PSTRecipient.class.d.ts +68 -0
  52. package/dist/PSTRecipient.class.js +105 -0
  53. package/dist/PSTTask.class.d.ts +146 -0
  54. package/dist/PSTTask.class.js +206 -0
  55. package/dist/PSTUtil.class.d.ts +134 -0
  56. package/dist/PSTUtil.class.js +804 -0
  57. package/dist/Property.d.ts +38 -0
  58. package/dist/Property.js +2 -0
  59. package/dist/PropertyContext.d.ts +6 -0
  60. package/dist/PropertyContext.js +2 -0
  61. package/dist/PropertyContextUtil.d.ts +4 -0
  62. package/dist/PropertyContextUtil.js +77 -0
  63. package/dist/PropertyTypeObject.d.ts +12 -0
  64. package/dist/PropertyTypeObject.js +21 -0
  65. package/dist/PropertyValueResolver.d.ts +4 -0
  66. package/dist/PropertyValueResolver.js +2 -0
  67. package/dist/PropertyValueResolverV1.d.ts +7 -0
  68. package/dist/PropertyValueResolverV1.js +253 -0
  69. package/dist/RawProperty.d.ts +8 -0
  70. package/dist/RawProperty.js +2 -0
  71. package/dist/RecurrencePattern.class.d.ts +50 -0
  72. package/dist/RecurrencePattern.class.js +120 -0
  73. package/dist/RootProvider.d.ts +12 -0
  74. package/dist/RootProvider.js +2 -0
  75. package/dist/SingleAsyncProvider.d.ts +5 -0
  76. package/dist/SingleAsyncProvider.js +30 -0
  77. package/dist/TableContext.d.ts +4 -0
  78. package/dist/TableContext.js +2 -0
  79. package/dist/TableContextUtil.d.ts +4 -0
  80. package/dist/TableContextUtil.js +147 -0
  81. package/dist/TableRow.d.ts +6 -0
  82. package/dist/TableRow.js +2 -0
  83. package/dist/index.d.ts +15 -0
  84. package/dist/index.js +28 -0
  85. package/dist/msftUuidStringify.d.ts +17 -0
  86. package/dist/msftUuidStringify.js +48 -0
  87. package/dist/openPstFile.d.ts +19 -0
  88. package/dist/openPstFile.js +67 -0
  89. package/package.json +105 -0
  90. package/readme.md +16 -0
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PSTTask = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ const OutlookProperties_1 = require("./OutlookProperties");
6
+ const PSTMessage_class_1 = require("./PSTMessage.class");
7
+ const PSTFile_class_1 = require("./PSTFile.class");
8
+ const RecurrencePattern_class_1 = require("./RecurrencePattern.class");
9
+ class PSTTask extends PSTMessage_class_1.PSTMessage {
10
+ /**
11
+ * Creates an instance of PSTTask.
12
+ * @internal
13
+ * @param {PSTFile} rootProvider
14
+ * @param {DescriptorIndexNode} descriptorIndexNode
15
+ * @param {Map<number, PSTDescriptorItem>} [localDescriptorItems]
16
+ * @memberof PSTTask
17
+ */
18
+ constructor(rootProvider, node, subNode, propertyFinder) {
19
+ super(rootProvider, node, subNode, propertyFinder);
20
+ }
21
+ /**
22
+ * Specifies the status of the user's progress on the task.
23
+ * https://msdn.microsoft.com/en-us/library/office/cc842120.aspx
24
+ * @readonly
25
+ * @type {number}
26
+ * @memberof PSTTask
27
+ */
28
+ get taskStatus() {
29
+ return this.getIntItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskStatus, PSTFile_class_1.PSTFile.PSETID_Task));
30
+ }
31
+ /**
32
+ * Indicates the progress the user has made on a task.
33
+ * https://msdn.microsoft.com/en-us/library/office/cc839932.aspx
34
+ * @readonly
35
+ * @type {number}
36
+ * @memberof PSTTask
37
+ */
38
+ get percentComplete() {
39
+ return this.getDoubleItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidPercentComplete, PSTFile_class_1.PSTFile.PSETID_Task));
40
+ }
41
+ /**
42
+ * Specifies the date when the user completes the task.
43
+ * https://msdn.microsoft.com/en-us/library/office/cc815753.aspx
44
+ * @readonly
45
+ * @type {Date}
46
+ * @memberof PSTTask
47
+ */
48
+ get taskDateCompleted() {
49
+ return this.getDateItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskDateCompleted, PSTFile_class_1.PSTFile.PSETID_Task));
50
+ }
51
+ /**
52
+ * Indicates the number of minutes that the user performed a task.
53
+ * https://msdn.microsoft.com/en-us/library/office/cc842253.aspx
54
+ * @readonly
55
+ * @type {number}
56
+ * @memberof PSTTask
57
+ */
58
+ get taskActualEffort() {
59
+ return this.getIntItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskActualEffort, PSTFile_class_1.PSTFile.PSETID_Task));
60
+ }
61
+ /**
62
+ * Indicates the amount of time, in minutes, that the user expects to perform a task.
63
+ * https://msdn.microsoft.com/en-us/library/office/cc842485.aspx
64
+ * @readonly
65
+ * @type {number}
66
+ * @memberof PSTTask
67
+ */
68
+ get taskEstimatedEffort() {
69
+ return this.getIntItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskEstimatedEffort, PSTFile_class_1.PSTFile.PSETID_Task));
70
+ }
71
+ /**
72
+ * Indicates which copy is the latest update of a task.
73
+ * https://msdn.microsoft.com/en-us/library/office/cc815510.aspx
74
+ * @readonly
75
+ * @type {number}
76
+ * @memberof PSTTask
77
+ */
78
+ get taskVersion() {
79
+ return this.getIntItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskVersion, PSTFile_class_1.PSTFile.PSETID_Task));
80
+ }
81
+ /**
82
+ * Indicates the task is complete.
83
+ * https://msdn.microsoft.com/en-us/library/office/cc839514.aspx
84
+ * @readonly
85
+ * @type {boolean}
86
+ * @memberof PSTTask
87
+ */
88
+ get isTaskComplete() {
89
+ return this.getBooleanItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskComplete, PSTFile_class_1.PSTFile.PSETID_Task));
90
+ }
91
+ /**
92
+ * Contains the name of the task owner.
93
+ * https://msdn.microsoft.com/en-us/library/office/cc842363.aspx
94
+ * @readonly
95
+ * @type {string}
96
+ * @memberof PSTTask
97
+ */
98
+ get taskOwner() {
99
+ return this.getStringItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskOwner, PSTFile_class_1.PSTFile.PSETID_Task));
100
+ }
101
+ /**
102
+ * Names the user who was last assigned the task.
103
+ * https://msdn.microsoft.com/en-us/library/office/cc815865.aspx
104
+ * @readonly
105
+ * @type {string}
106
+ * @memberof PSTTask
107
+ */
108
+ get taskAssigner() {
109
+ return this.getStringItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskAssigner, PSTFile_class_1.PSTFile.PSETID_Task));
110
+ }
111
+ /**
112
+ * Names the most recent user who was the task owner.
113
+ * https://msdn.microsoft.com/en-us/library/office/cc842278.aspx
114
+ * @readonly
115
+ * @type {string}
116
+ * @memberof PSTTask
117
+ */
118
+ get taskLastUser() {
119
+ return this.getStringItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskLastUser, PSTFile_class_1.PSTFile.PSETID_Task));
120
+ }
121
+ /**
122
+ * Provides an aid to custom sorting tasks.
123
+ * https://msdn.microsoft.com/en-us/library/office/cc765654.aspx
124
+ * @readonly
125
+ * @type {number}
126
+ * @memberof PSTTask
127
+ */
128
+ get taskOrdinal() {
129
+ return this.getIntItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskOrdinal, PSTFile_class_1.PSTFile.PSETID_Task));
130
+ }
131
+ /**
132
+ * Indicates whether the task includes a recurrence pattern.
133
+ * https://msdn.microsoft.com/en-us/library/office/cc765875.aspx
134
+ * @type {boolean}
135
+ * @memberof PSTTask
136
+ */
137
+ get isTaskRecurring() {
138
+ return this.getBooleanItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskFRecurring, PSTFile_class_1.PSTFile.PSETID_Task));
139
+ }
140
+ /**
141
+ * https://docs.microsoft.com/en-us/office/client-developer/outlook/mapi/pidlidtaskrecurrence-canonical-property
142
+ * @type {RecurrencePattern}
143
+ * @memberof PSTTask
144
+ */
145
+ get taskRecurrencePattern() {
146
+ const recurrenceBLOB = this.getBinaryItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskRecurrence, PSTFile_class_1.PSTFile.PSETID_Task));
147
+ return recurrenceBLOB && new RecurrencePattern_class_1.RecurrencePattern(recurrenceBLOB);
148
+ }
149
+ /**
150
+ * https://docs.microsoft.com/en-us/office/client-developer/outlook/mapi/pidlidtaskdeadoccurrence-canonical-property
151
+ * @type {boolean}
152
+ * @memberof PSTTask
153
+ */
154
+ get taskDeadOccurrence() {
155
+ return this.getBooleanItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskDeadOccurrence, PSTFile_class_1.PSTFile.PSETID_Task));
156
+ }
157
+ /**
158
+ * Indicates the role of the current user relative to the task.
159
+ * https://msdn.microsoft.com/en-us/library/office/cc842113.aspx
160
+ * @readonly
161
+ * @type {number}
162
+ * @memberof PSTTask
163
+ */
164
+ get taskOwnership() {
165
+ return this.getIntItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskOwnership, PSTFile_class_1.PSTFile.PSETID_Task));
166
+ }
167
+ /**
168
+ * Indicates the acceptance state of the task.
169
+ * https://msdn.microsoft.com/en-us/library/office/cc839689.aspx
170
+ * @readonly
171
+ * @type {number}
172
+ * @memberof PSTTask
173
+ */
174
+ get acceptanceState() {
175
+ return this.getIntItem(this._rootProvider.getNameToIdMapItem(OutlookProperties_1.OutlookProperties.PidLidTaskAcceptanceState, PSTFile_class_1.PSTFile.PSETID_Task));
176
+ }
177
+ /**
178
+ * JSON stringify the object properties.
179
+ * @returns {string}
180
+ * @memberof PSTTask
181
+ */
182
+ toJSON() {
183
+ const clone = Object.assign({
184
+ messageClass: this.messageClass,
185
+ subject: this.subject,
186
+ importance: this.importance,
187
+ transportMessageHeaders: this.transportMessageHeaders,
188
+ taskStatus: this.taskStatus,
189
+ percentComplete: this.percentComplete,
190
+ taskDateCompleted: this.taskDateCompleted,
191
+ taskActualEffort: this.taskActualEffort,
192
+ taskEstimatedEffort: this.taskEstimatedEffort,
193
+ taskVersion: this.taskVersion,
194
+ isTaskComplete: this.isTaskComplete,
195
+ taskOwner: this.taskOwner,
196
+ taskAssigner: this.taskAssigner,
197
+ taskLastUser: this.taskLastUser,
198
+ taskOrdinal: this.taskOrdinal,
199
+ isTaskRecurring: this.isTaskRecurring,
200
+ taskOwnership: this.taskOwnership,
201
+ acceptanceState: this.acceptanceState,
202
+ }, this);
203
+ return clone;
204
+ }
205
+ }
206
+ exports.PSTTask = PSTTask;
@@ -0,0 +1,134 @@
1
+ /// <reference types="node" />
2
+ import Long from 'long';
3
+ import { PSTMessage } from './PSTMessage.class';
4
+ import { PLNode } from './PLNode';
5
+ import { PropertyValueResolver } from './PropertyValueResolver';
6
+ import { PropertyFinder } from './PAUtil';
7
+ import { PLSubNode } from './PLSubNode';
8
+ import { RootProvider } from './RootProvider';
9
+ /**
10
+ * Utility functions for PST components
11
+ * @export
12
+ * @class PSTUtil
13
+ */
14
+ export declare class PSTUtil {
15
+ static compEnc: number[];
16
+ static codePages: Map<number, string>;
17
+ static propertyName: Map<number, string>;
18
+ static NID_TYPE_HID: number;
19
+ static NID_TYPE_INTERNAL: number;
20
+ static NID_TYPE_NORMAL_FOLDER: number;
21
+ static NID_TYPE_SEARCH_FOLDER: number;
22
+ static NID_TYPE_NORMAL_MESSAGE: number;
23
+ static NID_TYPE_ATTACHMENT: number;
24
+ static NID_TYPE_SEARCH_UPDATE_QUEUE: number;
25
+ static NID_TYPE_SEARCH_CRITERIA_OBJECT: number;
26
+ static NID_TYPE_ASSOC_MESSAGE: number;
27
+ static NID_TYPE_CONTENTS_TABLE_INDEX: number;
28
+ static NID_TYPE_RECEIVE_FOLDER_TABLE: number;
29
+ static NID_TYPE_OUTGOING_QUEUE_TABLE: number;
30
+ static NID_TYPE_HIERARCHY_TABLE: number;
31
+ static NID_TYPE_CONTENTS_TABLE: number;
32
+ static NID_TYPE_ASSOC_CONTENTS_TABLE: number;
33
+ static NID_TYPE_SEARCH_CONTENTS_TABLE: number;
34
+ static NID_TYPE_ATTACHMENT_TABLE: number;
35
+ static NID_TYPE_RECIPIENT_TABLE: number;
36
+ static NID_TYPE_SEARCH_TABLE_INDEX: number;
37
+ static NID_TYPE_LTP: number;
38
+ /**
39
+ * Convert little endian bytes to long
40
+ * @static
41
+ * @param {Buffer} data
42
+ * @param {number} [start]
43
+ * @param {number} [end]
44
+ * @returns {long}
45
+ * @memberof PSTUtil
46
+ */
47
+ static convertLittleEndianBytesToLong(data: Buffer, start?: number, end?: number): Long;
48
+ /**
49
+ * Convert big endian bytes to long
50
+ * @static
51
+ * @param {Buffer} data
52
+ * @param {number} [start]
53
+ * @param {number} [end]
54
+ * @returns {long}
55
+ * @memberof PSTUtil
56
+ */
57
+ static convertBigEndianBytesToLong(data: Buffer, start?: number, end?: number): Long;
58
+ /**
59
+ * Handle strings using codepages.
60
+ * @static
61
+ * @param {number} propertyId
62
+ * @returns
63
+ * @memberof PSTUtil
64
+ */
65
+ static getInternetCodePageCharset(propertyId: number): string | undefined;
66
+ /**
67
+ * Create JS string from buffer.
68
+ * @static
69
+ * @param {Buffer} data
70
+ * @param {number} stringType
71
+ * @param {string} codepage
72
+ * @returns
73
+ * @memberof PSTUtil
74
+ */
75
+ static createJavascriptString(data: Buffer, stringType: number, codepage?: string): string;
76
+ /**
77
+ * Copy from one array to another
78
+ * @static
79
+ * @param {Buffer} src
80
+ * @param {number} srcPos
81
+ * @param {Buffer} dest
82
+ * @param {number} destPos
83
+ * @param {number} length
84
+ * @memberof PSTUtil
85
+ */
86
+ static arraycopy(src: Buffer, srcPos: number, dest: Buffer, destPos: number, length: number): void;
87
+ /**
88
+ * Determine if character is alphanumeric
89
+ *
90
+ * @static
91
+ * @memberof PSTUtil
92
+ */
93
+ static isAlphaNumeric: (ch: string) => boolean;
94
+ /**
95
+ * Decode a lump of data that has been encrypted with the compressible encryption
96
+ * @static
97
+ * @param {Buffer} data
98
+ * @returns {Buffer}
99
+ * @memberof PSTUtil
100
+ */
101
+ static decode(data: Buffer): Buffer;
102
+ /**
103
+ * Decode a lump of data that has been encrypted with the compressible encryption
104
+ * @static
105
+ * @param {Buffer} data
106
+ * @returns {Buffer}
107
+ * @memberof PSTUtil
108
+ */
109
+ static decodeArray(data: Uint8Array): Uint8Array;
110
+ /**
111
+ * Creates object based on message class
112
+ * https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/item-types-and-message-classes
113
+ * @static
114
+ * @param {PSTFile} rootProvider
115
+ * @param {DescriptorIndexNode} folderIndexNode
116
+ * @param {PSTTableBC} table
117
+ * @param {Map<number, PSTDescriptorItem>} localDescriptorItems
118
+ * @returns {PSTMessage}
119
+ * @memberof PSTUtil
120
+ */
121
+ static createAppropriatePSTMessageObject(rootProvider: RootProvider, node: PLNode, subNode: PLSubNode, resolver: PropertyValueResolver, propertyFinderDelegation: PropertyFinder | undefined): Promise<PSTMessage>;
122
+ /**
123
+ * Converts a Windows FILETIME into a {@link Date}. The Windows FILETIME structure holds a date and time associated with a
124
+ * file. The structure identifies a 64-bit integer specifying the number of 100-nanosecond intervals which have passed since
125
+ * January 1, 1601. This 64-bit value is split into the two double words stored in the structure.
126
+ *
127
+ * @static
128
+ * @param {long} hi
129
+ * @param {long} low
130
+ * @returns {Date}
131
+ * @memberof PSTUtil
132
+ */
133
+ static filetimeToDate(hi: Long, low: Long): Date;
134
+ }