node-opcua-file-transfer 2.91.1 → 2.92.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.
@@ -7,11 +7,34 @@ import { NodeId } from "node-opcua-nodeid";
7
7
  import { IBasicSession } from "node-opcua-pseudo-session";
8
8
  import { OpenFileMode } from "../open_mode";
9
9
  export { OpenFileMode } from "../open_mode";
10
+ export interface IClientFile {
11
+ fileHandle: number;
12
+ open(mode: OpenFileMode): Promise<number>;
13
+ close(): Promise<void>;
14
+ getPosition(): Promise<UInt64>;
15
+ setPosition(position: UInt64 | UInt32): Promise<void>;
16
+ read(bytesToRead: UInt32 | Int32 | Int64 | UInt64): Promise<Buffer>;
17
+ write(data: Buffer): Promise<void>;
18
+ openCount(): Promise<UInt16>;
19
+ size(): Promise<UInt64>;
20
+ }
21
+ export interface IClientFilePriv extends IClientFile {
22
+ readonly fileNodeId: NodeId;
23
+ openMethodNodeId?: NodeId;
24
+ closeMethodNodeId?: NodeId;
25
+ setPositionNodeId?: NodeId;
26
+ getPositionNodeId?: NodeId;
27
+ readNodeId?: NodeId;
28
+ writeNodeId?: NodeId;
29
+ openCountNodeId?: NodeId;
30
+ sizeNodeId?: NodeId;
31
+ ensureInitialized(): Promise<void>;
32
+ }
10
33
  /**
11
34
  *
12
35
  *
13
36
  */
14
- export declare class ClientFile {
37
+ export declare class ClientFile implements IClientFile {
15
38
  static useGlobalMethod: boolean;
16
39
  fileHandle: number;
17
40
  protected session: IBasicSession;
@@ -36,8 +59,8 @@ export declare class ClientFile {
36
59
  protected extractMethodsIds(): Promise<void>;
37
60
  protected ensureInitialized(): Promise<void>;
38
61
  }
39
- export declare function readFile(clientFile: ClientFile): Promise<Buffer>;
40
- export declare function readOPCUAFile(clientFile: ClientFile): Promise<Buffer>;
62
+ export declare function readFile(clientFile: IClientFile): Promise<Buffer>;
63
+ export declare function readOPCUAFile(clientFile: IClientFile): Promise<Buffer>;
41
64
  /**
42
65
  * 5.2.10 UserRolePermissions
43
66
  *
@@ -278,9 +278,24 @@ function readFile(clientFile) {
278
278
  return __awaiter(this, void 0, void 0, function* () {
279
279
  yield clientFile.open(open_mode_1.OpenFileMode.Read);
280
280
  try {
281
- const fileSize = yield clientFile.size();
281
+ const fileSize = (0, node_opcua_basic_types_1.coerceInt32)(yield clientFile.size());
282
+ /**
283
+ * Read file
284
+ */
282
285
  const data = yield clientFile.read(fileSize);
283
- return data;
286
+ if (data.length >= fileSize) {
287
+ // everything has been read
288
+ return data;
289
+ }
290
+ // wee need to loop to complete the read
291
+ const chunks = [data];
292
+ let remaining = fileSize - data.length;
293
+ while (remaining > 0) {
294
+ const buf = yield clientFile.read(remaining);
295
+ chunks.push(buf);
296
+ remaining -= buf.length;
297
+ }
298
+ return Buffer.concat(chunks);
284
299
  }
285
300
  finally {
286
301
  yield clientFile.close();
@@ -1 +1 @@
1
- {"version":3,"file":"client_file.js","sourceRoot":"","sources":["../../source/client/client_file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client_file.js","sourceRoot":"","sources":["../../source/client/client_file.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,12 @@ export interface FileOptions {
35
35
  mimeType?: string;
36
36
  fileSystem?: AbstractFs;
37
37
  nodeId?: NodeIdLike;
38
+ /**
39
+ * the maximum number of bytes that can be read from the file
40
+ * in a single read call
41
+ * - if not specified or 0, we assume Int32 limit
42
+ */
43
+ maxChunkSize?: number;
38
44
  refreshFileContentFunc?: () => Promise<void>;
39
45
  }
40
46
  export interface UAFileType extends UAObjectType, UAFile_Base {
@@ -47,9 +53,11 @@ export declare class FileTypeData {
47
53
  filename: string;
48
54
  maxSize: number;
49
55
  mimeType: string;
56
+ maxChunkSizeBytes: number;
50
57
  private file;
51
58
  private _openCount;
52
59
  private _fileSize;
60
+ static maxChunkSize: number;
53
61
  refreshFileContentFunc?: () => Promise<void>;
54
62
  constructor(options: FileOptions, file: UAFile);
55
63
  set openCount(value: number);
@@ -16,6 +16,7 @@ exports.installFileType = exports.defaultMaxSize = exports.getFileData = exports
16
16
  const fsOrig = require("fs");
17
17
  const util_1 = require("util");
18
18
  const node_opcua_assert_1 = require("node-opcua-assert");
19
+ const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
19
20
  const node_opcua_debug_1 = require("node-opcua-debug");
20
21
  const node_opcua_nodeid_1 = require("node-opcua-nodeid");
21
22
  const node_opcua_status_code_1 = require("node-opcua-status-code");
@@ -33,6 +34,7 @@ class FileTypeData {
33
34
  this.filename = "";
34
35
  this.maxSize = 0;
35
36
  this.mimeType = "";
37
+ this.maxChunkSizeBytes = 0;
36
38
  this._openCount = 0;
37
39
  this._fileSize = 0;
38
40
  this.file = file;
@@ -41,6 +43,7 @@ class FileTypeData {
41
43
  this.filename = options.filename;
42
44
  this.maxSize = options.maxSize;
43
45
  this.mimeType = options.mimeType || "";
46
+ this.maxChunkSizeBytes = options.maxChunkSize || FileTypeData.maxChunkSize;
44
47
  // openCount indicates the number of currently valid file handles on the file.
45
48
  this._openCount = 0;
46
49
  file.openCount.bindVariable({
@@ -108,6 +111,7 @@ class FileTypeData {
108
111
  }
109
112
  }
110
113
  exports.FileTypeData = FileTypeData;
114
+ FileTypeData.maxChunkSize = 16 * 1024 * 1024; // 16 MB
111
115
  function writeFile(fileSystem, filename, content) {
112
116
  return __awaiter(this, void 0, void 0, function* () {
113
117
  yield new Promise((resolve, reject) => {
@@ -141,6 +145,9 @@ function getFileData(opcuaFile2) {
141
145
  return opcuaFile2.$fileData;
142
146
  }
143
147
  exports.getFileData = getFileData;
148
+ function getFileDataFromContext(context) {
149
+ return getFileData(context.object);
150
+ }
144
151
  function _prepare(addressSpace, context) {
145
152
  const _context = addressSpace;
146
153
  _context.$$currentFileHandle = _context.$$currentFileHandle ? _context.$$currentFileHandle : 41;
@@ -272,7 +279,7 @@ function _openFile(inputArguments, context) {
272
279
  if (!_fileInfo) {
273
280
  return { statusCode: node_opcua_status_code_1.StatusCodes.BadInvalidArgument };
274
281
  }
275
- const fileData = context.object.$fileData;
282
+ const fileData = getFileDataFromContext(context);
276
283
  const filename = fileData.filename;
277
284
  // make sure file is up to date ... by delegating
278
285
  if (mode === open_mode_1.OpenFileMode.Read) {
@@ -315,7 +322,7 @@ function _openFile(inputArguments, context) {
315
322
  });
316
323
  }
317
324
  function _getFileSystem(context) {
318
- const fs = context.object.$fileData._fs;
325
+ const fs = getFileDataFromContext(context)._fs;
319
326
  return fs;
320
327
  }
321
328
  /**
@@ -335,11 +342,11 @@ function _closeFile(inputArguments, context) {
335
342
  if (!_fileInfo) {
336
343
  return { statusCode: node_opcua_status_code_1.StatusCodes.BadInvalidArgument };
337
344
  }
338
- const data = context.object.$fileData;
339
- debugLog("Closing file handle ", fileHandle, "filename: ", data.filename, "openCount: ", data.openCount);
345
+ const fileData = getFileDataFromContext(context);
346
+ debugLog("Closing file handle ", fileHandle, "filename: ", fileData.filename, "openCount: ", fileData.openCount);
340
347
  yield (0, util_1.promisify)(abstractFs.close)(_fileInfo.fd);
341
348
  _close(addressSpace, context, _fileInfo);
342
- data.openCount -= 1;
349
+ fileData.openCount -= 1;
343
350
  return {
344
351
  statusCode: node_opcua_status_code_1.StatusCodes.Good
345
352
  };
@@ -377,6 +384,17 @@ function _readFile(inputArguments, context) {
377
384
  // open mode did not specify Read Flag
378
385
  return { statusCode: node_opcua_status_code_1.StatusCodes.BadInvalidState };
379
386
  }
387
+ // length cannot exceed maxChunkSizeBytes
388
+ const fileData = getFileDataFromContext(context);
389
+ const maxChunkSizeBytes = fileData.maxChunkSizeBytes;
390
+ if (length > maxChunkSizeBytes) {
391
+ length = maxChunkSizeBytes;
392
+ }
393
+ // length cannot either exceed ByteStream.maxChunkSizeBytes
394
+ if (length > node_opcua_binary_stream_1.BinaryStream.maxByteStringLength) {
395
+ length = node_opcua_binary_stream_1.BinaryStream.maxByteStringLength;
396
+ }
397
+ // length cannot either exceed remaining buffer size from current position
380
398
  length = Math.min(_fileInfo.size - _fileInfo.position[1], length);
381
399
  const data = Buffer.alloc(length);
382
400
  let ret = { bytesRead: 0 };
@@ -434,10 +452,10 @@ function _writeFile(inputArguments, context) {
434
452
  (0, node_opcua_assert_1.assert)(typeof ret.bytesWritten === "number");
435
453
  _fileInfo.position[1] += ret.bytesWritten;
436
454
  _fileInfo.size = Math.max(_fileInfo.size, _fileInfo.position[1]);
437
- const fileTypeData = context.object.$fileData;
438
- debugLog(fileTypeData.fileSize);
439
- fileTypeData.fileSize = Math.max(fileTypeData.fileSize, _fileInfo.position[1]);
440
- debugLog(fileTypeData.fileSize);
455
+ const fileData = getFileDataFromContext(context);
456
+ debugLog(fileData.fileSize);
457
+ fileData.fileSize = Math.max(fileData.fileSize, _fileInfo.position[1]);
458
+ debugLog(fileData.fileSize);
441
459
  }
442
460
  catch (err) {
443
461
  if (err instanceof Error) {
@@ -1 +1 @@
1
- {"version":3,"file":"file_type_helpers.js","sourceRoot":"","sources":["../../source/server/file_type_helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;GAEG;AACH,6BAA6B;AAG7B,+BAA8C;AAE9C,yDAA2C;AAW3C,uDAAiG;AACjG,yDAAmE;AAEnE,mEAAqD;AACrD,2DAAyE;AAEzE,4CAA8D;AAE9D,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,UAAU,GAAG,IAAA,kCAAe,EAAC,UAAU,CAAC,CAAC;AAC/C,MAAM,OAAO,GAAG,IAAA,iCAAc,EAAC,UAAU,CAAC,CAAC;AAqE3C;;GAEG;AACH,MAAa,YAAY;IAYrB,YAAY,OAAoB,EAAE,IAAY;QAVvC,aAAQ,GAAG,EAAE,CAAC;QACd,YAAO,GAAG,CAAC,CAAC;QACZ,aAAQ,GAAG,EAAE,CAAC;QAGb,eAAU,GAAG,CAAC,CAAC;QACf,cAAS,GAAG,CAAC,CAAC;QAKlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;QACxC,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAE7D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,8EAA8E;QAC9E,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,YAAY,CACvB;YACI,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,4BAAO,CAAC,EAAE,QAAQ,EAAE,6BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;SAChF,EACD,IAAI,CACP,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,sBAAsB;QAElE,IAAI,CAAC,IAAI,CAAC,YAAY,CAClB;YACI,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,4BAAO,CAAC,EAAE,QAAQ,EAAE,6BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;SAC/E,EACD,IAAI,CACP,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,sBAAsB;QAE7D,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACU,OAAO;;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;YAE5B,4CAA4C;YAC5C,MAAM,CAAC,SAAe,eAAe,CAAC,IAAkB;;oBACpD,IAAI;wBACA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;4BACvC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;4BACnB,OAAO;yBACV;wBACD,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAS,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC3B,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC9E;oBAAC,OAAO,GAAG,EAAE;wBACV,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;wBACnB,IAAI,GAAG,YAAY,KAAK,EAAE;4BACtB,UAAU,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;yBACjE;qBACJ;gBACL,CAAC;aAAA,CAAC,CAAC,IAAI,CAAC,CAAC;QACb,CAAC;KAAA;IAEY,kBAAkB;;YAC3B,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;aACxB;QACL,CAAC;KAAA;CACJ;AA9FD,oCA8FC;AAED,SAAsB,SAAS,CAAC,UAAsB,EAAE,QAAgB,EAAE,OAAe;;QACrF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;gBACvC,uBAAuB;gBACvB,IAAI,GAAG,EAAE;oBACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;iBACtB;gBACD,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;oBACxD,uBAAuB;oBACvB,IAAI,GAAG,EAAE;wBACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;qBACtB;oBACD,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;wBACzB,uBAAuB;wBACvB,IAAI,GAAG,EAAE;4BACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;yBACtB;wBACD,OAAO,EAAE,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CAAA;AAtBD,8BAsBC;AASD;;GAEG;AACH,SAAgB,WAAW,CAAC,UAAkB;IAC1C,OAAQ,UAAuB,CAAC,SAAS,CAAC;AAC9C,CAAC;AAFD,kCAEC;AAiBD,SAAS,QAAQ,CAAC,YAA2B,EAAE,OAAwB;IACnE,MAAM,QAAQ,GAAG,YAAgC,CAAC;IAClD,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAC1C,OAAO,QAAqB,CAAC;AACjC,CAAC;AACD,SAAS,aAAa,CAAC,OAAwB;;IAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QAClB,OAAO,IAAI,0BAAM,EAAE,CAAC;KACvB;IACD,IAAA,0BAAM,EAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACxD,OAAO,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,YAAY,EAAE,KAAI,IAAI,0BAAM,EAAE,CAAC;AAC3D,CAAC;AACD,SAAS,QAAQ,CAAC,YAA2B,EAAE,OAAwB,EAAE,QAAsB;IAC3F,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAW,QAAQ,CAAC,mBAAmB,CAAC;IACxD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,SAAS,GAAmB;QAC9B,EAAE,EAAE,CAAC,CAAC;QACN,MAAM,EAAE,UAAU;QAClB,QAAQ;QACR,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,EAAE,CAAC;QACP,SAAS;KACZ,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAEzC,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,YAA2B,EAAE,OAAwB,EAAE,UAAkB;IAC3F,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,8BAAU,EAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;QAC3D,QAAQ,CAAC,wEAAwE,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;KACf;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,MAAM,CAAC,YAA2B,EAAE,OAAwB,EAAE,QAAwB;IAC3F,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,SAAuB;IACzC,IAAI,KAAa,CAAC;IAClB,QAAQ,SAAS,EAAE;QACf,KAAK,wBAAY,CAAC,IAAI;YAClB,KAAK,GAAG,GAAG,CAAC;YACZ,MAAM;QACV,KAAK,wBAAY,CAAC,SAAS,CAAC;QAC5B,KAAK,wBAAY,CAAC,KAAK;YACnB,KAAK,GAAG,IAAI,CAAC;YACb,MAAM;QACV,KAAK,wBAAY,CAAC,eAAe,CAAC;QAClC,KAAK,wBAAY,CAAC,WAAW;YACzB,KAAK,GAAG,IAAI,CAAC;YACb,MAAM;QACV,KAAK,wBAAY,CAAC,kBAAkB,CAAC;QACrC,KAAK,wBAAY,CAAC,sBAAsB;YACpC,KAAK,GAAG,IAAI,CAAC;YACb,MAAM;QACV;YACI,KAAK,GAAG,GAAG,CAAC;YACZ,MAAM;KACb;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,SAAe,SAAS,CAAiB,cAAyB,EAAE,OAAwB;;QACxF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,KAAa,CAAC;QAE7C;;;;;;;;;;;;;;;;;WAiBG;QAEH,0DAA0D;QAE1D,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,GAAG,EAAE;YACf,QAAQ,CAAC,eAAe,GAAG,wBAAY,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACnE,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED;;;;;;;WAOG;QACH,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,IAAoB,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED,MAAM,QAAQ,GAAI,OAAO,CAAC,MAAmB,CAAC,SAAS,CAAC;QAExD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEnC,iDAAiD;QACjD,IAAI,IAAI,KAAK,wBAAY,CAAC,IAAI,EAAE;YAC5B,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;SACvC;QAED,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI;YACA,SAAS,CAAC,EAAE,GAAG,MAAM,IAAA,gBAAS,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAEjE,kBAAkB;YAClB,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE5B,MAAM,UAAU,GAAG,CAAC,MAAM,IAAA,gBAAS,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;YAE5B,sCAAsC;YACtC,IAAI,CAAC,IAAI,GAAG,4BAAgB,CAAC,SAAS,CAAC,KAAK,4BAAgB,CAAC,SAAS,EAAE;gBACpE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;aACtC;YACD,IAAI,CAAC,IAAI,GAAG,4BAAgB,CAAC,gBAAgB,CAAC,KAAK,4BAAgB,CAAC,gBAAgB,EAAE;gBAClF,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;aACtB;YAED,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;SAC3B;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,KAAK,EAAE;gBACtB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACvB;YACD,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED,QAAQ,CAAC,sBAAsB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEjH,MAAM,gBAAgB,GAAG;YACrB,eAAe,EAAE;gBACb;oBACI,QAAQ,EAAE,6BAAQ,CAAC,MAAM;oBACzB,KAAK,EAAE,UAAU;iBACpB;aACJ;YACD,UAAU,EAAE,oCAAW,CAAC,IAAI;SAC/B,CAAC;QACF,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CAAA;AAED,SAAS,cAAc,CAAC,OAAwB;IAC5C,MAAM,EAAE,GAAgB,OAAO,CAAC,MAAmB,CAAC,SAAS,CAAC,GAAG,CAAC;IAClE,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAe,UAAU,CAAiB,cAAyB,EAAE,OAAwB;;QACzF,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,MAAM,UAAU,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QAE7D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED,MAAM,IAAI,GAAI,OAAO,CAAC,MAAmB,CAAC,SAAyB,CAAC;QAEpE,QAAQ,CAAC,sBAAsB,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzG,MAAM,IAAA,gBAAS,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAEpB,OAAO;YACH,UAAU,EAAE,oCAAW,CAAC,IAAI;SAC/B,CAAC;IACN,CAAC;CAAA;AAED;;;;;;;GAOG;AACH,SAAe,SAAS,CAAiB,cAAyB,EAAE,OAAwB;;QACxF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3C,6EAA6E;QAC7E,6BAA6B;QAC7B,MAAM,UAAU,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QAE7D,gGAAgG;QAChG,mGAAmG;QACnG,6EAA6E;QAC7E,IAAI,MAAM,GAAU,cAAc,CAAC,CAAC,CAAC,CAAC,KAAc,CAAC;QAErD,oCAAoC;QACpC,IAAI,MAAM,GAAG,CAAC,EAAE;YACZ,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,eAAe,EAAE,CAAC;SACtD;QACD,sCAAsC;QACtC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,4BAAgB,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;YACzD,sCAAsC;YACtC,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,eAAe,EAAE,CAAC;SACtD;QAED,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3B,IAAI;YACA,kEAAkE;YAClE,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACxC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;gBAC3F,IAAI,GAAG,EAAE;oBACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;iBACtB;gBACD,OAAO,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC,CACL,CAAC;YACF,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC;SAC1C;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,KAAK,EAAE;gBACtB,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;aAC1C;YACD,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED,sGAAsG;QACtG,8BAA8B;QAC9B,OAAO;YACH,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,6BAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5F,UAAU,EAAE,oCAAW,CAAC,IAAI;SAC/B,CAAC;IACN,CAAC;CAAA;AAED,SAAe,UAAU,CAAiB,cAAyB,EAAE,OAAwB;;QACzF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QAE7D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED,sCAAsC;QACtC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,4BAAgB,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC3D,yCAAyC;YACzC,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,eAAe,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QAEvD,IAAI,GAAG,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAC9B,IAAI;YACA,kEAAkE;YAClE,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACxC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;oBAC9F,IAAI,GAAG,EAAE;wBACL,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACrB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;qBACtB;oBACD,OAAO,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,IAAA,0BAAM,EAAC,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;YAC7C,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC;YAC1C,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjE,MAAM,YAAY,GAAI,OAAO,CAAC,MAAmB,CAAC,SAAyB,CAAC;YAC5E,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAChC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACnC;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,KAAK,EAAE;gBACtB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;aAC3C;YACD,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED,OAAO;YACH,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,oCAAW,CAAC,IAAI;SAC/B,CAAC;IACN,CAAC;CAAA;AAED,SAAe,gBAAgB,CAE3B,cAAyB,EACzB,OAAwB;;QAExB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,MAAM,UAAU,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QAC7D,MAAM,QAAQ,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QAE3D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QACD,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;CAAA;AAED,SAAe,gBAAgB,CAE3B,cAAyB,EACzB,OAAwB;;QAExB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,MAAM,UAAU,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC;QAE7D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC;SACzD;QAED,OAAO;YACH,eAAe,EAAE;gBACb;oBACI,SAAS,EAAE,qCAAgB,CAAC,MAAM;oBAClC,QAAQ,EAAE,6BAAQ,CAAC,MAAM;oBACzB,KAAK,EAAE,SAAS,CAAC,QAAQ;iBAC5B;aACJ;YACD,UAAU,EAAE,oCAAW,CAAC,IAAI;SAC/B,CAAC;IACN,CAAC;CAAA;AAEY,QAAA,cAAc,GAAG,SAAS,CAAC;AAExC,SAAS,6BAA6B,CAAC,YAA2B;IAC9D,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,CAAsB,CAAC;IAC9E,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;QACzB,OAAO;KACV;IACD,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAClD,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAa,EAAE,OAAoB;IAC/D,MAAM,IAAI,GAAG,KAAiB,CAAC;IAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;QAChB,QAAQ,CAAC,yBAAyB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxF,OAAO;KACV;IAED,kDAAkD;IAClD,6BAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEjD,sEAAsE;IACtE,mEAAmE;IACnE,kCAAkC;IAClC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAEnF,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAE3B,0BAA0B;IAC1B,IAAI,OAAO,CAAC,QAAQ,EAAE;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACvB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,4BAAO,CAAC,EAAE,QAAQ,EAAE,6BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aACxF,CAAC,CAAC;SACN;KACJ;IAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC9C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAClD,CAAC;AAjCD,0CAiCC"}
1
+ {"version":3,"file":"file_type_helpers.js","sourceRoot":"","sources":["../../source/server/file_type_helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-file-transfer",
3
- "version": "2.91.1",
3
+ "version": "2.92.0",
4
4
  "description": "pure nodejs OPCUA SDK - module -server",
5
5
  "scripts": {
6
6
  "build": "tsc -b",
@@ -11,23 +11,24 @@
11
11
  "main": "./dist/index.js",
12
12
  "types": "./dist/index.d.ts",
13
13
  "dependencies": {
14
- "node-opcua-address-space": "2.91.1",
14
+ "node-opcua-address-space": "2.92.0",
15
15
  "node-opcua-assert": "2.88.0",
16
- "node-opcua-basic-types": "2.90.1",
16
+ "node-opcua-basic-types": "2.92.0",
17
+ "node-opcua-binary-stream": "2.90.1",
17
18
  "node-opcua-constants": "2.88.0",
18
- "node-opcua-data-model": "2.90.1",
19
+ "node-opcua-data-model": "2.92.0",
19
20
  "node-opcua-debug": "2.90.1",
20
21
  "node-opcua-nodeid": "2.90.1",
21
- "node-opcua-pseudo-session": "2.91.1",
22
- "node-opcua-service-call": "2.90.1",
23
- "node-opcua-service-read": "2.90.1",
24
- "node-opcua-service-translate-browse-path": "2.90.1",
22
+ "node-opcua-pseudo-session": "2.92.0",
23
+ "node-opcua-service-call": "2.92.0",
24
+ "node-opcua-service-read": "2.92.0",
25
+ "node-opcua-service-translate-browse-path": "2.92.0",
25
26
  "node-opcua-status-code": "2.90.1",
26
- "node-opcua-variant": "2.90.1"
27
+ "node-opcua-variant": "2.92.0"
27
28
  },
28
29
  "devDependencies": {
29
30
  "memfs": "^3.4.13",
30
- "node-opcua-client": "2.91.1",
31
+ "node-opcua-client": "2.92.0",
31
32
  "node-opcua-leak-detector": "2.90.1",
32
33
  "node-opcua-nodesets": "2.88.0",
33
34
  "should": "^13.2.3"
@@ -47,5 +48,5 @@
47
48
  "internet of things"
48
49
  ],
49
50
  "homepage": "http://node-opcua.github.io/",
50
- "gitHead": "4f52fe3bed20f4bfd35828fca51f3a2b32620a44"
51
+ "gitHead": "6ee0f52395af2c1f4f03518e675dc3f6edb7a455"
51
52
  }
package/readme.md CHANGED
@@ -253,7 +253,7 @@ Contact Sterfive SAS (mailto:contact@sterfive.com) for additional companion modu
253
253
 
254
254
  # Copyright
255
255
 
256
- Copyright (c) 2022-2023 Sterfive SAS
256
+ Copyright (c) 2022-2023 Sterfive SAS - https://www.sterfive.com
257
257
 
258
258
  Copyright (c) 2014-2022 Etienne Rossignon
259
259
 
@@ -20,11 +20,36 @@ const doDebug = checkDebugFlag("FileType");
20
20
  import { OpenFileMode } from "../open_mode";
21
21
  export { OpenFileMode } from "../open_mode";
22
22
 
23
+
24
+ export interface IClientFile {
25
+ fileHandle: number;
26
+ open(mode: OpenFileMode): Promise<number>;
27
+ close(): Promise<void>;
28
+ getPosition(): Promise<UInt64>;
29
+ setPosition(position: UInt64 | UInt32): Promise<void>;
30
+ read(bytesToRead: UInt32 | Int32 | Int64 | UInt64): Promise<Buffer>;
31
+ write(data: Buffer): Promise<void>;
32
+ openCount(): Promise<UInt16>;
33
+ size(): Promise<UInt64>;
34
+ }
35
+ export interface IClientFilePriv extends IClientFile {
36
+ readonly fileNodeId: NodeId;
37
+ openMethodNodeId?: NodeId;
38
+ closeMethodNodeId?: NodeId;
39
+ setPositionNodeId?: NodeId;
40
+ getPositionNodeId?: NodeId;
41
+ readNodeId?: NodeId;
42
+ writeNodeId?: NodeId;
43
+ openCountNodeId?: NodeId;
44
+ sizeNodeId?: NodeId;
45
+ ensureInitialized(): Promise<void>;
46
+ }
47
+
23
48
  /**
24
49
  *
25
50
  *
26
51
  */
27
- export class ClientFile {
52
+ export class ClientFile implements IClientFile {
28
53
  public static useGlobalMethod = false;
29
54
 
30
55
  public fileHandle = 0;
@@ -281,18 +306,35 @@ export class ClientFile {
281
306
  }
282
307
  }
283
308
 
284
- export async function readFile(clientFile: ClientFile): Promise<Buffer> {
309
+
310
+ export async function readFile(clientFile: IClientFile): Promise<Buffer> {
285
311
  await clientFile.open(OpenFileMode.Read);
286
312
  try {
287
- const fileSize = await clientFile.size();
313
+ const fileSize = coerceInt32(await clientFile.size());
314
+ /**
315
+ * Read file
316
+ */
288
317
  const data = await clientFile.read(fileSize);
289
- return data;
318
+ if (data.length >= fileSize) {
319
+ // everything has been read
320
+ return data;
321
+ }
322
+
323
+ // wee need to loop to complete the read
324
+ const chunks = [data];
325
+ let remaining = fileSize - data.length;
326
+ while (remaining > 0) {
327
+ const buf = await clientFile.read(remaining);
328
+ chunks.push(buf);
329
+ remaining -= buf.length;
330
+ }
331
+ return Buffer.concat(chunks);
290
332
  } finally {
291
333
  await clientFile.close();
292
334
  }
293
335
  }
294
336
 
295
- export async function readOPCUAFile(clientFile: ClientFile): Promise<Buffer> {
337
+ export async function readOPCUAFile(clientFile: IClientFile): Promise<Buffer> {
296
338
  return await readFile(clientFile);
297
339
  }
298
340
 
@@ -17,6 +17,7 @@ import {
17
17
  UAObjectType
18
18
  } from "node-opcua-address-space";
19
19
  import { Byte, Int32, UInt32, UInt64 } from "node-opcua-basic-types";
20
+ import { BinaryStream } from "node-opcua-binary-stream";
20
21
  import { checkDebugFlag, make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
21
22
  import { NodeId, NodeIdLike, sameNodeId } from "node-opcua-nodeid";
22
23
  import { CallMethodResultOptions } from "node-opcua-service-call";
@@ -93,10 +94,17 @@ export interface FileOptions {
93
94
 
94
95
  nodeId?: NodeIdLike;
95
96
 
97
+ /**
98
+ * the maximum number of bytes that can be read from the file
99
+ * in a single read call
100
+ * - if not specified or 0, we assume Int32 limit
101
+ */
102
+ maxChunkSize?: number;
103
+
96
104
  refreshFileContentFunc?: () => Promise<void>;
97
105
  }
98
106
 
99
- export interface UAFileType extends UAObjectType, UAFile_Base {}
107
+ export interface UAFileType extends UAObjectType, UAFile_Base { }
100
108
  /**
101
109
  *
102
110
  */
@@ -105,11 +113,14 @@ export class FileTypeData {
105
113
  public filename = "";
106
114
  public maxSize = 0;
107
115
  public mimeType = "";
116
+ public maxChunkSizeBytes = 0;
108
117
 
109
118
  private file: UAFile;
110
119
  private _openCount = 0;
111
120
  private _fileSize = 0;
112
121
 
122
+ public static maxChunkSize = 16 * 1024 * 1024; // 16 MB
123
+
113
124
  public refreshFileContentFunc?: () => Promise<void>;
114
125
 
115
126
  constructor(options: FileOptions, file: UAFile) {
@@ -120,6 +131,8 @@ export class FileTypeData {
120
131
  this.filename = options.filename;
121
132
  this.maxSize = options.maxSize!;
122
133
  this.mimeType = options.mimeType || "";
134
+ this.maxChunkSizeBytes = options.maxChunkSize || FileTypeData.maxChunkSize;
135
+
123
136
  // openCount indicates the number of currently valid file handles on the file.
124
137
  this._openCount = 0;
125
138
  file.openCount.bindVariable(
@@ -234,6 +247,10 @@ export function getFileData(opcuaFile2: UAFile): FileTypeData {
234
247
  return (opcuaFile2 as UAFileEx).$fileData;
235
248
  }
236
249
 
250
+ function getFileDataFromContext(context: ISessionContext): FileTypeData {
251
+ return getFileData(context.object as UAFile);
252
+ }
253
+
237
254
  interface FileAccessData {
238
255
  handle: number;
239
256
  fd: number; // nodejs handler
@@ -248,7 +265,7 @@ interface FileTypeM {
248
265
  $$files: { [key: number]: FileAccessData };
249
266
  }
250
267
 
251
- interface AddressSpacePriv extends IAddressSpace, FileTypeM {}
268
+ interface AddressSpacePriv extends IAddressSpace, FileTypeM { }
252
269
  function _prepare(addressSpace: IAddressSpace, context: ISessionContext): FileTypeM {
253
270
  const _context = addressSpace as AddressSpacePriv;
254
271
  _context.$$currentFileHandle = _context.$$currentFileHandle ? _context.$$currentFileHandle : 41;
@@ -391,7 +408,7 @@ async function _openFile(this: UAMethod, inputArguments: Variant[], context: ISe
391
408
  return { statusCode: StatusCodes.BadInvalidArgument };
392
409
  }
393
410
 
394
- const fileData = (context.object as UAFileEx).$fileData;
411
+ const fileData = getFileDataFromContext(context);
395
412
 
396
413
  const filename = fileData.filename;
397
414
 
@@ -443,7 +460,7 @@ async function _openFile(this: UAMethod, inputArguments: Variant[], context: ISe
443
460
  }
444
461
 
445
462
  function _getFileSystem(context: ISessionContext): AbstractFs {
446
- const fs: AbstractFs = (context.object as UAFileEx).$fileData._fs;
463
+ const fs: AbstractFs = getFileDataFromContext(context)._fs;
447
464
  return fs;
448
465
  }
449
466
 
@@ -467,13 +484,13 @@ async function _closeFile(this: UAMethod, inputArguments: Variant[], context: IS
467
484
  return { statusCode: StatusCodes.BadInvalidArgument };
468
485
  }
469
486
 
470
- const data = (context.object as UAFileEx).$fileData as FileTypeData;
471
-
472
- debugLog("Closing file handle ", fileHandle, "filename: ", data.filename, "openCount: ", data.openCount);
487
+ const fileData = getFileDataFromContext(context);
488
+
489
+ debugLog("Closing file handle ", fileHandle, "filename: ", fileData.filename, "openCount: ", fileData.openCount);
473
490
 
474
491
  await promisify(abstractFs.close)(_fileInfo.fd);
475
492
  _close(addressSpace, context, _fileInfo);
476
- data.openCount -= 1;
493
+ fileData.openCount -= 1;
477
494
 
478
495
  return {
479
496
  statusCode: StatusCodes.Good
@@ -507,6 +524,7 @@ async function _readFile(this: UAMethod, inputArguments: Variant[], context: ISe
507
524
  return { statusCode: StatusCodes.BadInvalidArgument };
508
525
  }
509
526
 
527
+
510
528
  const _fileInfo = _getFileInfo(addressSpace, context, fileHandle);
511
529
  if (!_fileInfo) {
512
530
  return { statusCode: StatusCodes.BadInvalidState };
@@ -517,6 +535,19 @@ async function _readFile(this: UAMethod, inputArguments: Variant[], context: ISe
517
535
  return { statusCode: StatusCodes.BadInvalidState };
518
536
  }
519
537
 
538
+ // length cannot exceed maxChunkSizeBytes
539
+ const fileData = getFileDataFromContext(context);
540
+
541
+ const maxChunkSizeBytes = fileData.maxChunkSizeBytes;
542
+ if (length > maxChunkSizeBytes) {
543
+ length = maxChunkSizeBytes;
544
+ }
545
+ // length cannot either exceed ByteStream.maxChunkSizeBytes
546
+ if (length > BinaryStream.maxByteStringLength) {
547
+ length = BinaryStream.maxByteStringLength;
548
+ }
549
+
550
+ // length cannot either exceed remaining buffer size from current position
520
551
  length = Math.min(_fileInfo.size - _fileInfo.position[1], length);
521
552
 
522
553
  const data = Buffer.alloc(length);
@@ -584,10 +615,10 @@ async function _writeFile(this: UAMethod, inputArguments: Variant[], context: IS
584
615
  _fileInfo.position[1] += ret.bytesWritten;
585
616
  _fileInfo.size = Math.max(_fileInfo.size, _fileInfo.position[1]);
586
617
 
587
- const fileTypeData = (context.object as UAFileEx).$fileData as FileTypeData;
588
- debugLog(fileTypeData.fileSize);
589
- fileTypeData.fileSize = Math.max(fileTypeData.fileSize, _fileInfo.position[1]);
590
- debugLog(fileTypeData.fileSize);
618
+ const fileData = getFileDataFromContext(context);
619
+ debugLog(fileData.fileSize);
620
+ fileData.fileSize = Math.max(fileData.fileSize, _fileInfo.position[1]);
621
+ debugLog(fileData.fileSize);
591
622
  } catch (err) {
592
623
  if (err instanceof Error) {
593
624
  errorLog("Write error : ", err.message);