@things-factory/integration-sftp 4.0.26 → 4.0.31

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.
@@ -90,6 +90,20 @@ __decorate([
90
90
  (0, typeorm_1.ManyToOne)(type => integration_fulfillment_1.FulfillmentCenter, { nullable: true }),
91
91
  __metadata("design:type", typeof (_b = typeof integration_fulfillment_1.FulfillmentCenter !== "undefined" && integration_fulfillment_1.FulfillmentCenter) === "function" ? _b : Object)
92
92
  ], Sftp.prototype, "fulfillmentCenter", void 0);
93
+ __decorate([
94
+ (0, typeorm_1.Column)({
95
+ nullable: true
96
+ }),
97
+ (0, type_graphql_1.Field)({ nullable: true }),
98
+ __metadata("design:type", String)
99
+ ], Sftp.prototype, "responseType", void 0);
100
+ __decorate([
101
+ (0, typeorm_1.Column)({
102
+ nullable: true
103
+ }),
104
+ (0, type_graphql_1.Field)({ nullable: true }),
105
+ __metadata("design:type", String)
106
+ ], Sftp.prototype, "responseFilePattern", void 0);
93
107
  __decorate([
94
108
  (0, typeorm_1.CreateDateColumn)(),
95
109
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FAILEDDATAPATH = exports.SUCCESSDATAPATH = exports.SUBMITDATAPATH = exports.SFTPFILESTORAGE = void 0;
3
+ exports.COMPLETEFAILEDDATAPATH = exports.COMPLETESUCCESSDATAPATH = exports.COMPLETEDATAPATH = exports.FAILEDDATAPATH = exports.SUCCESSDATAPATH = exports.SUBMITDATAPATH = exports.SFTPFILESTORAGE = void 0;
4
4
  const env_1 = require("@things-factory/env");
5
5
  exports.SFTPFILESTORAGE = env_1.config.get('sftpFileStorage');
6
6
  exports.SUBMITDATAPATH = '/submit_outbound/data';
7
7
  exports.SUCCESSDATAPATH = '/submit_outbound/success';
8
8
  exports.FAILEDDATAPATH = '/submit_outbound/failed';
9
+ exports.COMPLETEDATAPATH = '/outbound_complete/data';
10
+ exports.COMPLETESUCCESSDATAPATH = '/outbound_complete/success';
11
+ exports.COMPLETEFAILEDDATAPATH = '/outbound_complete/failed';
9
12
  //# sourceMappingURL=sftp-const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sftp-const.js","sourceRoot":"","sources":["../server/sftp-const.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAEjC,QAAA,eAAe,GAAQ,YAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACpD,QAAA,cAAc,GAAW,uBAAuB,CAAA;AAChD,QAAA,eAAe,GAAW,0BAA0B,CAAA;AACpD,QAAA,cAAc,GAAW,yBAAyB,CAAA"}
1
+ {"version":3,"file":"sftp-const.js","sourceRoot":"","sources":["../server/sftp-const.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAEjC,QAAA,eAAe,GAAQ,YAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACpD,QAAA,cAAc,GAAW,uBAAuB,CAAA;AAChD,QAAA,eAAe,GAAW,0BAA0B,CAAA;AACpD,QAAA,cAAc,GAAW,yBAAyB,CAAA;AAClD,QAAA,gBAAgB,GAAW,yBAAyB,CAAA;AACpD,QAAA,uBAAuB,GAAW,4BAA4B,CAAA;AAC9D,QAAA,sBAAsB,GAAW,2BAA2B,CAAA"}
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const aws_sdk_1 = __importDefault(require("aws-sdk"));
7
+ const v4_1 = __importDefault(require("uuid/v4"));
7
8
  const env_1 = require("@things-factory/env");
8
9
  const sftp_const_1 = require("./sftp-const");
9
- const { PassThrough } = require('stream');
10
- const mime = require('mime');
11
10
  const { fs } = require('memfs');
12
11
  if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
13
12
  const S3 = new aws_sdk_1.default.S3({
@@ -15,13 +14,13 @@ if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
15
14
  secretAccessKey: sftp_const_1.SFTPFILESTORAGE.secretAccessKey
16
15
  });
17
16
  sftp_const_1.SFTPFILESTORAGE.readFolders = async (params, encoding) => {
18
- var S3params = {
17
+ let S3params = {
19
18
  Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
20
19
  Delimiter: '/',
21
20
  Prefix: params.path
22
21
  };
23
22
  const result = await S3.listObjects(S3params).promise();
24
- var body = result.Contents;
23
+ let body = result.Contents;
25
24
  return body;
26
25
  };
27
26
  sftp_const_1.SFTPFILESTORAGE.readFile = async (path, encoding) => {
@@ -41,13 +40,25 @@ if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
41
40
  CopySource: sftp_const_1.SFTPFILESTORAGE.bucketName + '/' + path.source,
42
41
  Key: path.destination
43
42
  }).promise();
44
- var copyBody = copyResult.CopyObjectResult;
43
+ const copyBody = copyResult.CopyObjectResult;
45
44
  const deleteResult = await S3.deleteObject({
46
45
  Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
47
46
  Key: path.source
48
47
  }).promise();
49
48
  return true;
50
49
  };
50
+ /* upload file */
51
+ sftp_const_1.SFTPFILESTORAGE.uploadFile = ({ filename, uploadPath }) => {
52
+ const id = (0, v4_1.default)();
53
+ let size = 0;
54
+ // Read content from the file
55
+ const fileContent = fs.readFileSync(filename);
56
+ return new Promise((resolve, reject) => S3.upload({
57
+ Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
58
+ Key: uploadPath,
59
+ Body: fileContent
60
+ }, (err, data) => (err ? reject(err) : resolve({ id, path: uploadPath, size }))));
61
+ };
51
62
  env_1.logger.info('S3 Bucket Storage is Ready.');
52
63
  }
53
64
  //# sourceMappingURL=sftp-s3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sftp-s3.js","sourceRoot":"","sources":["../server/sftp-s3.ts"],"names":[],"mappings":";;;;;AAAA,sDAAyB;AAEzB,6CAA4C;AAE5C,6CAA8C;AAE9C,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AACzC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE/B,IAAI,4BAAe,IAAI,4BAAe,CAAC,IAAI,IAAI,IAAI,EAAE;IACnD,MAAM,EAAE,GAAG,IAAI,iBAAG,CAAC,EAAE,CAAC;QACpB,WAAW,EAAE,4BAAe,CAAC,WAAW;QACxC,eAAe,EAAE,4BAAe,CAAC,eAAe;KACjD,CAAC,CAAA;IAEF,4BAAe,CAAC,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QACvD,IAAI,QAAQ,GAAG;YACb,MAAM,EAAE,4BAAe,CAAC,UAAU;YAClC,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,MAAM,CAAC,IAAI;SACpB,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAA;QAEvD,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAA;QAE1B,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,4BAAe,CAAC,QAAQ,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC;YAChC,MAAM,EAAE,4BAAe,CAAC,UAAU;YAClC,GAAG,EAAE,IAAI;SACV,CAAC,CAAC,OAAO,EAAE,CAAA;QAEZ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QAEtB,IAAI,QAAQ,EAAE;YACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;SAC/B;QAED,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,4BAAe,CAAC,QAAQ,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC;YACrC,MAAM,EAAE,4BAAe,CAAC,UAAU;YAClC,UAAU,EAAE,4BAAe,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;YAC1D,GAAG,EAAE,IAAI,CAAC,WAAW;SACtB,CAAC,CAAC,OAAO,EAAE,CAAA;QAEZ,IAAI,QAAQ,GAAG,UAAU,CAAC,gBAAgB,CAAA;QAE1C,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC;YACzC,MAAM,EAAE,4BAAe,CAAC,UAAU;YAClC,GAAG,EAAE,IAAI,CAAC,MAAM;SACjB,CAAC,CAAC,OAAO,EAAE,CAAA;QAEZ,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,YAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;CAC3C"}
1
+ {"version":3,"file":"sftp-s3.js","sourceRoot":"","sources":["../server/sftp-s3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateFile = void 0;
4
+ require("../sftp-s3");
5
+ const sftp_const_1 = require("../sftp-const");
6
+ const fs = require('fs');
7
+ async function generateFile(params, context) {
8
+ const { uploadPath, content, title } = params;
9
+ const fileDirectory = './uploaded-files';
10
+ if (!fs.existsSync(fileDirectory)) {
11
+ fs.mkdirSync(fileDirectory);
12
+ }
13
+ const filePath = fileDirectory + '/' + title;
14
+ fs.writeFile(filePath, content, function (err) {
15
+ if (err)
16
+ throw err;
17
+ console.log('File is created successfully.');
18
+ });
19
+ if (uploadPath) {
20
+ await sftp_const_1.SFTPFILESTORAGE.uploadFile({ filename: filePath, uploadPath });
21
+ }
22
+ return true;
23
+ }
24
+ exports.generateFile = generateFile;
25
+ //# sourceMappingURL=generate-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-file.js","sourceRoot":"","sources":["../../server/util/generate-file.ts"],"names":[],"mappings":";;;AAAA,sBAAmB;AAEnB,8CAA+C;AAE/C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEjB,KAAK,UAAU,YAAY,CAAC,MAAW,EAAE,OAAY;IAC1D,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAC7C,MAAM,aAAa,GAAG,kBAAkB,CAAA;IAExC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QACjC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;KAC5B;IAED,MAAM,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,KAAK,CAAA;IAE5C,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG;QAC3C,IAAI,GAAG;YAAE,MAAM,GAAG,CAAA;QAClB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,IAAI,UAAU,EAAE;QACd,MAAM,4BAAe,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAA;KACrE;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AApBD,oCAoBC"}
@@ -11,4 +11,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./get-permitted-directories"), exports);
14
+ __exportStar(require("./generate-file"), exports);
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8DAA2C;AAC3C,kDAA+B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/integration-sftp",
3
- "version": "4.0.26",
3
+ "version": "4.0.31",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,13 +24,13 @@
24
24
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
25
  },
26
26
  "dependencies": {
27
- "@things-factory/auth-base": "^4.0.26",
28
- "@things-factory/biz-base": "^4.0.26",
29
- "@things-factory/env": "^4.0.26",
30
- "@things-factory/integration-fulfillment": "^4.0.26",
31
- "@things-factory/shell": "^4.0.26",
27
+ "@things-factory/auth-base": "^4.0.31",
28
+ "@things-factory/biz-base": "^4.0.31",
29
+ "@things-factory/env": "^4.0.31",
30
+ "@things-factory/integration-fulfillment": "^4.0.31",
31
+ "@things-factory/shell": "^4.0.31",
32
32
  "aws-sdk": "^2.960.0",
33
33
  "xml-js": "^1.6.11"
34
34
  },
35
- "gitHead": "c4b39c74b9ce2472f30c26eb36ec62054c1ecf82"
35
+ "gitHead": "6c021ffdeacc9d123298528f6bba91f61389f33d"
36
36
  }
@@ -78,6 +78,18 @@ export class Sftp {
78
78
  @ManyToOne(type => FulfillmentCenter, { nullable: true })
79
79
  fulfillmentCenter: FulfillmentCenter
80
80
 
81
+ @Column({
82
+ nullable: true
83
+ })
84
+ @Field({ nullable: true })
85
+ responseType: string
86
+
87
+ @Column({
88
+ nullable: true
89
+ })
90
+ @Field({ nullable: true })
91
+ responseFilePattern: string
92
+
81
93
  @CreateDateColumn()
82
94
  @Field({ nullable: true })
83
95
  createdAt?: Date
@@ -4,3 +4,6 @@ export var SFTPFILESTORAGE: any = config.get('sftpFileStorage')
4
4
  export var SUBMITDATAPATH: string = '/submit_outbound/data'
5
5
  export var SUCCESSDATAPATH: string = '/submit_outbound/success'
6
6
  export var FAILEDDATAPATH: string = '/submit_outbound/failed'
7
+ export var COMPLETEDATAPATH: string = '/outbound_complete/data'
8
+ export var COMPLETESUCCESSDATAPATH: string = '/outbound_complete/success'
9
+ export var COMPLETEFAILEDDATAPATH: string = '/outbound_complete/failed'
package/server/sftp-s3.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  import AWS from 'aws-sdk'
2
+ import uuid from 'uuid/v4'
2
3
 
3
4
  import { logger } from '@things-factory/env'
4
5
 
5
6
  import { SFTPFILESTORAGE } from './sftp-const'
6
7
 
7
- const { PassThrough } = require('stream')
8
- const mime = require('mime')
9
8
  const { fs } = require('memfs')
10
9
 
11
10
  if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
@@ -15,7 +14,7 @@ if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
15
14
  })
16
15
 
17
16
  SFTPFILESTORAGE.readFolders = async (params, encoding) => {
18
- var S3params = {
17
+ let S3params = {
19
18
  Bucket: SFTPFILESTORAGE.bucketName,
20
19
  Delimiter: '/',
21
20
  Prefix: params.path
@@ -23,7 +22,7 @@ if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
23
22
 
24
23
  const result = await S3.listObjects(S3params).promise()
25
24
 
26
- var body = result.Contents
25
+ let body = result.Contents
27
26
 
28
27
  return body
29
28
  }
@@ -50,7 +49,7 @@ if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
50
49
  Key: path.destination
51
50
  }).promise()
52
51
 
53
- var copyBody = copyResult.CopyObjectResult
52
+ const copyBody = copyResult.CopyObjectResult
54
53
 
55
54
  const deleteResult = await S3.deleteObject({
56
55
  Bucket: SFTPFILESTORAGE.bucketName,
@@ -60,5 +59,25 @@ if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
60
59
  return true
61
60
  }
62
61
 
62
+ /* upload file */
63
+ SFTPFILESTORAGE.uploadFile = ({ filename, uploadPath }) => {
64
+ const id = uuid()
65
+ let size: number = 0
66
+
67
+ // Read content from the file
68
+ const fileContent = fs.readFileSync(filename)
69
+
70
+ return new Promise<{ id: string; path: string; size: number }>((resolve, reject) =>
71
+ S3.upload(
72
+ {
73
+ Bucket: SFTPFILESTORAGE.bucketName,
74
+ Key: uploadPath,
75
+ Body: fileContent
76
+ },
77
+ (err, data) => (err ? reject(err) : resolve({ id, path: uploadPath, size }))
78
+ )
79
+ )
80
+ }
81
+
63
82
  logger.info('S3 Bucket Storage is Ready.')
64
83
  }
@@ -0,0 +1,27 @@
1
+ import '../sftp-s3'
2
+
3
+ import { SFTPFILESTORAGE } from '../sftp-const'
4
+
5
+ const fs = require('fs')
6
+
7
+ export async function generateFile(params: any, context: any) {
8
+ const { uploadPath, content, title } = params
9
+ const fileDirectory = './uploaded-files'
10
+
11
+ if (!fs.existsSync(fileDirectory)) {
12
+ fs.mkdirSync(fileDirectory)
13
+ }
14
+
15
+ const filePath = fileDirectory + '/' + title
16
+
17
+ fs.writeFile(filePath, content, function (err) {
18
+ if (err) throw err
19
+ console.log('File is created successfully.')
20
+ })
21
+
22
+ if (uploadPath) {
23
+ await SFTPFILESTORAGE.uploadFile({ filename: filePath, uploadPath })
24
+ }
25
+
26
+ return true
27
+ }
@@ -1 +1,2 @@
1
1
  export * from './get-permitted-directories'
2
+ export * from './generate-file'