@things-factory/integration-sftp 9.0.0-beta.27 → 9.0.0-beta.29

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 (80) hide show
  1. package/dist-server/controllers/herbalife/apis/create-serial-number.d.ts +18 -0
  2. package/dist-server/controllers/herbalife/apis/create-serial-number.js +46 -0
  3. package/dist-server/controllers/herbalife/apis/create-serial-number.js.map +1 -0
  4. package/dist-server/controllers/herbalife/apis/create-shipment.d.ts +19 -0
  5. package/dist-server/controllers/herbalife/apis/create-shipment.js +84 -0
  6. package/dist-server/controllers/herbalife/apis/create-shipment.js.map +1 -0
  7. package/dist-server/controllers/herbalife/apis/echo.d.ts +12 -0
  8. package/dist-server/controllers/herbalife/apis/echo.js +18 -0
  9. package/dist-server/controllers/herbalife/apis/echo.js.map +1 -0
  10. package/dist-server/controllers/herbalife/apis/get-outbound-order.d.ts +14 -0
  11. package/dist-server/controllers/herbalife/apis/get-outbound-order.js +107 -0
  12. package/dist-server/controllers/herbalife/apis/get-outbound-order.js.map +1 -0
  13. package/dist-server/controllers/herbalife/apis/index.d.ts +4 -0
  14. package/dist-server/controllers/herbalife/apis/index.js +8 -0
  15. package/dist-server/controllers/herbalife/apis/index.js.map +1 -0
  16. package/dist-server/controllers/herbalife/herbalife.d.ts +8 -0
  17. package/dist-server/controllers/herbalife/herbalife.js +40 -0
  18. package/dist-server/controllers/herbalife/herbalife.js.map +1 -0
  19. package/dist-server/controllers/herbalife/index.d.ts +1 -0
  20. package/dist-server/controllers/herbalife/index.js +9 -0
  21. package/dist-server/controllers/herbalife/index.js.map +1 -0
  22. package/dist-server/controllers/herbalife/platform-action.d.ts +5 -0
  23. package/dist-server/controllers/herbalife/platform-action.js +30 -0
  24. package/dist-server/controllers/herbalife/platform-action.js.map +1 -0
  25. package/dist-server/controllers/index.d.ts +2 -0
  26. package/dist-server/controllers/index.js +6 -0
  27. package/dist-server/controllers/index.js.map +1 -0
  28. package/dist-server/controllers/sftp-api/decorators.d.ts +1 -0
  29. package/dist-server/controllers/sftp-api/decorators.js +28 -0
  30. package/dist-server/controllers/sftp-api/decorators.js.map +1 -0
  31. package/dist-server/controllers/sftp-api/index.d.ts +11 -0
  32. package/dist-server/controllers/sftp-api/index.js +56 -0
  33. package/dist-server/controllers/sftp-api/index.js.map +1 -0
  34. package/dist-server/controllers/sftp-api/types.d.ts +0 -0
  35. package/dist-server/controllers/sftp-api/types.js +1 -0
  36. package/dist-server/controllers/sftp-api/types.js.map +1 -0
  37. package/dist-server/index.d.ts +6 -0
  38. package/dist-server/index.js +10 -0
  39. package/dist-server/index.js.map +1 -0
  40. package/dist-server/middlewares/index.d.ts +1 -0
  41. package/dist-server/middlewares/index.js +7 -0
  42. package/dist-server/middlewares/index.js.map +1 -0
  43. package/dist-server/routes.d.ts +1 -0
  44. package/dist-server/routes.js +25 -0
  45. package/dist-server/routes.js.map +1 -0
  46. package/dist-server/service/index.d.ts +5 -0
  47. package/dist-server/service/index.js +19 -0
  48. package/dist-server/service/index.js.map +1 -0
  49. package/dist-server/service/sftp/index.d.ts +5 -0
  50. package/dist-server/service/sftp/index.js +9 -0
  51. package/dist-server/service/sftp/index.js.map +1 -0
  52. package/dist-server/service/sftp/sftp-mutation.d.ts +15 -0
  53. package/dist-server/service/sftp/sftp-mutation.js +250 -0
  54. package/dist-server/service/sftp/sftp-mutation.js.map +1 -0
  55. package/dist-server/service/sftp/sftp-query.d.ts +11 -0
  56. package/dist-server/service/sftp/sftp-query.js +74 -0
  57. package/dist-server/service/sftp/sftp-query.js.map +1 -0
  58. package/dist-server/service/sftp/sftp-type.d.ts +29 -0
  59. package/dist-server/service/sftp/sftp-type.js +113 -0
  60. package/dist-server/service/sftp/sftp-type.js.map +1 -0
  61. package/dist-server/service/sftp/sftp.d.ts +33 -0
  62. package/dist-server/service/sftp/sftp.js +163 -0
  63. package/dist-server/service/sftp/sftp.js.map +1 -0
  64. package/dist-server/sftp-const.d.ts +11 -0
  65. package/dist-server/sftp-const.js +16 -0
  66. package/dist-server/sftp-const.js.map +1 -0
  67. package/dist-server/sftp-s3.d.ts +1 -0
  68. package/dist-server/sftp-s3.js +67 -0
  69. package/dist-server/sftp-s3.js.map +1 -0
  70. package/dist-server/tsconfig.tsbuildinfo +1 -0
  71. package/dist-server/util/generate-files.d.ts +2 -0
  72. package/dist-server/util/generate-files.js +29 -0
  73. package/dist-server/util/generate-files.js.map +1 -0
  74. package/dist-server/util/get-permitted-directories.d.ts +3 -0
  75. package/dist-server/util/get-permitted-directories.js +15 -0
  76. package/dist-server/util/get-permitted-directories.js.map +1 -0
  77. package/dist-server/util/index.d.ts +2 -0
  78. package/dist-server/util/index.js +6 -0
  79. package/dist-server/util/index.js.map +1 -0
  80. package/package.json +7 -7
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SftpList = exports.SftpPatch = exports.NewSftp = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const sftp_1 = require("./sftp");
7
+ let NewSftp = class NewSftp {
8
+ };
9
+ exports.NewSftp = NewSftp;
10
+ tslib_1.__decorate([
11
+ (0, type_graphql_1.Field)(),
12
+ tslib_1.__metadata("design:type", String)
13
+ ], NewSftp.prototype, "name", void 0);
14
+ tslib_1.__decorate([
15
+ (0, type_graphql_1.Field)({ nullable: true }),
16
+ tslib_1.__metadata("design:type", String)
17
+ ], NewSftp.prototype, "description", void 0);
18
+ tslib_1.__decorate([
19
+ (0, type_graphql_1.Field)(type => sftp_1.SftpStatus, { nullable: true }),
20
+ tslib_1.__metadata("design:type", String)
21
+ ], NewSftp.prototype, "status", void 0);
22
+ tslib_1.__decorate([
23
+ (0, type_graphql_1.Field)({ nullable: true }),
24
+ tslib_1.__metadata("design:type", String)
25
+ ], NewSftp.prototype, "username", void 0);
26
+ tslib_1.__decorate([
27
+ (0, type_graphql_1.Field)({ nullable: true }),
28
+ tslib_1.__metadata("design:type", String)
29
+ ], NewSftp.prototype, "publicKey", void 0);
30
+ tslib_1.__decorate([
31
+ (0, type_graphql_1.Field)({ nullable: true }),
32
+ tslib_1.__metadata("design:type", String)
33
+ ], NewSftp.prototype, "privateKey", void 0);
34
+ tslib_1.__decorate([
35
+ (0, type_graphql_1.Field)({ nullable: true }),
36
+ tslib_1.__metadata("design:type", String)
37
+ ], NewSftp.prototype, "folderPath", void 0);
38
+ tslib_1.__decorate([
39
+ (0, type_graphql_1.Field)({ nullable: true }),
40
+ tslib_1.__metadata("design:type", Boolean)
41
+ ], NewSftp.prototype, "isDevelopment", void 0);
42
+ tslib_1.__decorate([
43
+ (0, type_graphql_1.Field)({ nullable: true }),
44
+ tslib_1.__metadata("design:type", String)
45
+ ], NewSftp.prototype, "platform", void 0);
46
+ exports.NewSftp = NewSftp = tslib_1.__decorate([
47
+ (0, type_graphql_1.InputType)()
48
+ ], NewSftp);
49
+ let SftpPatch = class SftpPatch {
50
+ };
51
+ exports.SftpPatch = SftpPatch;
52
+ tslib_1.__decorate([
53
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
54
+ tslib_1.__metadata("design:type", String)
55
+ ], SftpPatch.prototype, "id", void 0);
56
+ tslib_1.__decorate([
57
+ (0, type_graphql_1.Field)({ nullable: true }),
58
+ tslib_1.__metadata("design:type", String)
59
+ ], SftpPatch.prototype, "name", void 0);
60
+ tslib_1.__decorate([
61
+ (0, type_graphql_1.Field)({ nullable: true }),
62
+ tslib_1.__metadata("design:type", String)
63
+ ], SftpPatch.prototype, "description", void 0);
64
+ tslib_1.__decorate([
65
+ (0, type_graphql_1.Field)(type => sftp_1.SftpStatus, { nullable: true }),
66
+ tslib_1.__metadata("design:type", String)
67
+ ], SftpPatch.prototype, "status", void 0);
68
+ tslib_1.__decorate([
69
+ (0, type_graphql_1.Field)({ nullable: true }),
70
+ tslib_1.__metadata("design:type", String)
71
+ ], SftpPatch.prototype, "username", void 0);
72
+ tslib_1.__decorate([
73
+ (0, type_graphql_1.Field)({ nullable: true }),
74
+ tslib_1.__metadata("design:type", String)
75
+ ], SftpPatch.prototype, "publicKey", void 0);
76
+ tslib_1.__decorate([
77
+ (0, type_graphql_1.Field)({ nullable: true }),
78
+ tslib_1.__metadata("design:type", String)
79
+ ], SftpPatch.prototype, "privateKey", void 0);
80
+ tslib_1.__decorate([
81
+ (0, type_graphql_1.Field)({ nullable: true }),
82
+ tslib_1.__metadata("design:type", String)
83
+ ], SftpPatch.prototype, "folderPath", void 0);
84
+ tslib_1.__decorate([
85
+ (0, type_graphql_1.Field)({ nullable: true }),
86
+ tslib_1.__metadata("design:type", Boolean)
87
+ ], SftpPatch.prototype, "isDevelopment", void 0);
88
+ tslib_1.__decorate([
89
+ (0, type_graphql_1.Field)({ nullable: true }),
90
+ tslib_1.__metadata("design:type", String)
91
+ ], SftpPatch.prototype, "platform", void 0);
92
+ tslib_1.__decorate([
93
+ (0, type_graphql_1.Field)(),
94
+ tslib_1.__metadata("design:type", String)
95
+ ], SftpPatch.prototype, "cuFlag", void 0);
96
+ exports.SftpPatch = SftpPatch = tslib_1.__decorate([
97
+ (0, type_graphql_1.InputType)()
98
+ ], SftpPatch);
99
+ let SftpList = class SftpList {
100
+ };
101
+ exports.SftpList = SftpList;
102
+ tslib_1.__decorate([
103
+ (0, type_graphql_1.Field)(type => [sftp_1.Sftp]),
104
+ tslib_1.__metadata("design:type", Array)
105
+ ], SftpList.prototype, "items", void 0);
106
+ tslib_1.__decorate([
107
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
108
+ tslib_1.__metadata("design:type", Number)
109
+ ], SftpList.prototype, "total", void 0);
110
+ exports.SftpList = SftpList = tslib_1.__decorate([
111
+ (0, type_graphql_1.ObjectType)()
112
+ ], SftpList);
113
+ //# sourceMappingURL=sftp-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftp-type.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AAEpE,iCAAyC;AAGlC,IAAM,OAAO,GAAb,MAAM,OAAO;CA2BnB,CAAA;AA3BY,0BAAO;AAElB;IADC,IAAA,oBAAK,GAAE;;qCACI;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACN;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACH;AAGvB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACT;kBA1BN,OAAO;IADnB,IAAA,wBAAS,GAAE;GACC,OAAO,CA2BnB;AAGM,IAAM,SAAS,GAAf,MAAM,SAAS;CAiCrB,CAAA;AAjCY,8BAAS;AAEpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qCAC3B;AAGX;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACN;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC3B;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACH;AAGvB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACT;AAGjB;IADC,IAAA,oBAAK,GAAE;;yCACM;oBAhCH,SAAS;IADrB,IAAA,wBAAS,GAAE;GACC,SAAS,CAiCrB;AAGM,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAMpB,CAAA;AANY,4BAAQ;AAEnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAI,CAAC,CAAC;;uCACT;AAGb;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;uCACN;mBALF,QAAQ;IADpB,IAAA,yBAAU,GAAE;GACA,QAAQ,CAMpB","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { Sftp, SftpStatus } from './sftp'\n\n@InputType()\nexport class NewSftp {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field(type => SftpStatus, { nullable: true })\n status?: SftpStatus\n\n @Field({ nullable: true })\n username?: string\n\n @Field({ nullable: true })\n publicKey?: string\n\n @Field({ nullable: true })\n privateKey?: string\n\n @Field({ nullable: true })\n folderPath?: string\n\n @Field({ nullable: true })\n isDevelopment?: boolean\n\n @Field({ nullable: true })\n platform?: string\n}\n\n@InputType()\nexport class SftpPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field(type => SftpStatus, { nullable: true })\n status?: SftpStatus\n\n @Field({ nullable: true })\n username?: string\n\n @Field({ nullable: true })\n publicKey?: string\n\n @Field({ nullable: true })\n privateKey?: string\n\n @Field({ nullable: true })\n folderPath?: string\n\n @Field({ nullable: true })\n isDevelopment?: boolean\n\n @Field({ nullable: true })\n platform?: string\n\n @Field()\n cuFlag: string\n}\n\n@ObjectType()\nexport class SftpList {\n @Field(type => [Sftp])\n items: Sftp[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -0,0 +1,33 @@
1
+ import { User } from '@things-factory/auth-base';
2
+ import { FulfillmentCenter } from '@things-factory/integration-fulfillment';
3
+ import { Domain } from '@things-factory/shell';
4
+ export declare enum SftpStatus {
5
+ ACTIVE = "ACTIVE",
6
+ INACTIVE = "INACTIVE",
7
+ TERMINATED = "TERMINATED"
8
+ }
9
+ export declare class Sftp {
10
+ readonly id: string;
11
+ domain?: Domain;
12
+ domainId?: string;
13
+ name: string;
14
+ description?: string;
15
+ status?: SftpStatus;
16
+ username?: string;
17
+ publicKey?: string;
18
+ privateKey?: string;
19
+ folderPath?: string;
20
+ isDevelopment?: boolean;
21
+ platform?: string;
22
+ fulfillmentCenter: FulfillmentCenter;
23
+ responseType: string;
24
+ responseFilePattern: string;
25
+ responseFileTypes: string;
26
+ lastTimeSync?: Date;
27
+ createdAt?: Date;
28
+ updatedAt?: Date;
29
+ creator?: User;
30
+ creatorId?: string;
31
+ updater?: User;
32
+ updaterId?: string;
33
+ }
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Sftp = exports.SftpStatus = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
9
+ const shell_1 = require("@things-factory/shell");
10
+ var SftpStatus;
11
+ (function (SftpStatus) {
12
+ SftpStatus["ACTIVE"] = "ACTIVE";
13
+ SftpStatus["INACTIVE"] = "INACTIVE";
14
+ SftpStatus["TERMINATED"] = "TERMINATED";
15
+ })(SftpStatus || (exports.SftpStatus = SftpStatus = {}));
16
+ (0, type_graphql_1.registerEnumType)(SftpStatus, {
17
+ name: 'SftpStatus',
18
+ description: 'state enumeration of a sftp'
19
+ });
20
+ let Sftp = class Sftp {
21
+ };
22
+ exports.Sftp = Sftp;
23
+ tslib_1.__decorate([
24
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
25
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
26
+ tslib_1.__metadata("design:type", String)
27
+ ], Sftp.prototype, "id", void 0);
28
+ tslib_1.__decorate([
29
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
30
+ (0, type_graphql_1.Field)(type => shell_1.Domain),
31
+ tslib_1.__metadata("design:type", shell_1.Domain)
32
+ ], Sftp.prototype, "domain", void 0);
33
+ tslib_1.__decorate([
34
+ (0, typeorm_1.RelationId)((sftp) => sftp.domain),
35
+ tslib_1.__metadata("design:type", String)
36
+ ], Sftp.prototype, "domainId", void 0);
37
+ tslib_1.__decorate([
38
+ (0, typeorm_1.Column)(),
39
+ (0, type_graphql_1.Field)(),
40
+ tslib_1.__metadata("design:type", String)
41
+ ], Sftp.prototype, "name", void 0);
42
+ tslib_1.__decorate([
43
+ (0, typeorm_1.Column)({
44
+ nullable: true
45
+ }),
46
+ (0, type_graphql_1.Field)({ nullable: true }),
47
+ tslib_1.__metadata("design:type", String)
48
+ ], Sftp.prototype, "description", void 0);
49
+ tslib_1.__decorate([
50
+ (0, typeorm_1.Column)({ nullable: true }),
51
+ (0, type_graphql_1.Field)({ nullable: true }),
52
+ tslib_1.__metadata("design:type", String)
53
+ ], Sftp.prototype, "status", void 0);
54
+ tslib_1.__decorate([
55
+ (0, typeorm_1.Column)({
56
+ nullable: true
57
+ }),
58
+ (0, type_graphql_1.Field)({ nullable: true }),
59
+ tslib_1.__metadata("design:type", String)
60
+ ], Sftp.prototype, "username", void 0);
61
+ tslib_1.__decorate([
62
+ (0, typeorm_1.Column)({
63
+ nullable: true
64
+ }),
65
+ (0, type_graphql_1.Field)({ nullable: true }),
66
+ tslib_1.__metadata("design:type", String)
67
+ ], Sftp.prototype, "publicKey", void 0);
68
+ tslib_1.__decorate([
69
+ (0, typeorm_1.Column)({
70
+ nullable: true
71
+ }),
72
+ (0, type_graphql_1.Field)({ nullable: true }),
73
+ tslib_1.__metadata("design:type", String)
74
+ ], Sftp.prototype, "privateKey", void 0);
75
+ tslib_1.__decorate([
76
+ (0, typeorm_1.Column)({
77
+ nullable: true
78
+ }),
79
+ (0, type_graphql_1.Field)({ nullable: true }),
80
+ tslib_1.__metadata("design:type", String)
81
+ ], Sftp.prototype, "folderPath", void 0);
82
+ tslib_1.__decorate([
83
+ (0, typeorm_1.Column)({
84
+ nullable: true
85
+ }),
86
+ (0, type_graphql_1.Field)({ nullable: true }),
87
+ tslib_1.__metadata("design:type", Boolean)
88
+ ], Sftp.prototype, "isDevelopment", void 0);
89
+ tslib_1.__decorate([
90
+ (0, typeorm_1.Column)({
91
+ nullable: true
92
+ }),
93
+ (0, type_graphql_1.Field)({ nullable: true }),
94
+ tslib_1.__metadata("design:type", String)
95
+ ], Sftp.prototype, "platform", void 0);
96
+ tslib_1.__decorate([
97
+ (0, typeorm_1.ManyToOne)(type => integration_fulfillment_1.FulfillmentCenter, { nullable: true }),
98
+ tslib_1.__metadata("design:type", integration_fulfillment_1.FulfillmentCenter)
99
+ ], Sftp.prototype, "fulfillmentCenter", void 0);
100
+ tslib_1.__decorate([
101
+ (0, typeorm_1.Column)({
102
+ nullable: true
103
+ }),
104
+ (0, type_graphql_1.Field)({ nullable: true }),
105
+ tslib_1.__metadata("design:type", String)
106
+ ], Sftp.prototype, "responseType", void 0);
107
+ tslib_1.__decorate([
108
+ (0, typeorm_1.Column)({
109
+ nullable: true
110
+ }),
111
+ (0, type_graphql_1.Field)({ nullable: true }),
112
+ tslib_1.__metadata("design:type", String)
113
+ ], Sftp.prototype, "responseFilePattern", void 0);
114
+ tslib_1.__decorate([
115
+ (0, typeorm_1.Column)({
116
+ nullable: true
117
+ }),
118
+ (0, type_graphql_1.Field)({ nullable: true }),
119
+ tslib_1.__metadata("design:type", String)
120
+ ], Sftp.prototype, "responseFileTypes", void 0);
121
+ tslib_1.__decorate([
122
+ (0, typeorm_1.Column)({ nullable: true }),
123
+ (0, type_graphql_1.Field)({ nullable: true }),
124
+ tslib_1.__metadata("design:type", Date)
125
+ ], Sftp.prototype, "lastTimeSync", void 0);
126
+ tslib_1.__decorate([
127
+ (0, typeorm_1.CreateDateColumn)(),
128
+ (0, type_graphql_1.Field)({ nullable: true }),
129
+ tslib_1.__metadata("design:type", Date)
130
+ ], Sftp.prototype, "createdAt", void 0);
131
+ tslib_1.__decorate([
132
+ (0, typeorm_1.UpdateDateColumn)(),
133
+ (0, type_graphql_1.Field)({ nullable: true }),
134
+ tslib_1.__metadata("design:type", Date)
135
+ ], Sftp.prototype, "updatedAt", void 0);
136
+ tslib_1.__decorate([
137
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, {
138
+ nullable: true
139
+ }),
140
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
141
+ tslib_1.__metadata("design:type", auth_base_1.User)
142
+ ], Sftp.prototype, "creator", void 0);
143
+ tslib_1.__decorate([
144
+ (0, typeorm_1.RelationId)((sftp) => sftp.creator),
145
+ tslib_1.__metadata("design:type", String)
146
+ ], Sftp.prototype, "creatorId", void 0);
147
+ tslib_1.__decorate([
148
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, {
149
+ nullable: true
150
+ }),
151
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
152
+ tslib_1.__metadata("design:type", auth_base_1.User)
153
+ ], Sftp.prototype, "updater", void 0);
154
+ tslib_1.__decorate([
155
+ (0, typeorm_1.RelationId)((sftp) => sftp.updater),
156
+ tslib_1.__metadata("design:type", String)
157
+ ], Sftp.prototype, "updaterId", void 0);
158
+ exports.Sftp = Sftp = tslib_1.__decorate([
159
+ (0, typeorm_1.Entity)(),
160
+ (0, typeorm_1.Index)('ix_sftp_0', (sftp) => [sftp.domain, sftp.name], { unique: true }),
161
+ (0, type_graphql_1.ObjectType)({ description: 'Entity for Sftp' })
162
+ ], Sftp);
163
+ //# sourceMappingURL=sftp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType, registerEnumType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport { Domain } from '@things-factory/shell'\n\nexport enum SftpStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n TERMINATED = 'TERMINATED'\n}\n\nregisterEnumType(SftpStatus, {\n name: 'SftpStatus',\n description: 'state enumeration of a sftp'\n})\n\n@Entity()\n@Index('ix_sftp_0', (sftp: Sftp) => [sftp.domain, sftp.name], { unique: true })\n@ObjectType({ description: 'Entity for Sftp' })\nexport class Sftp {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((sftp: Sftp) => sftp.domain)\n domainId?: string\n\n @Column()\n @Field()\n name: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n description?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n status?: SftpStatus\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n username?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n publicKey?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n privateKey?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n folderPath?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n isDevelopment?: boolean\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n platform?: string\n\n @ManyToOne(type => FulfillmentCenter, { nullable: true })\n fulfillmentCenter: FulfillmentCenter\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n responseType: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n responseFilePattern: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n responseFileTypes: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n lastTimeSync?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((sftp: Sftp) => sftp.creator)\n creatorId?: string\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((sftp: Sftp) => sftp.updater)\n updaterId?: string\n}\n"]}
@@ -0,0 +1,11 @@
1
+ export declare var SFTPFILESTORAGE: any;
2
+ export declare var SUBMITDATAPATH: string;
3
+ export declare var SUCCESSDATAPATH: string;
4
+ export declare var FAILEDDATAPATH: string;
5
+ export declare var COMPLETEDATAPATH: string;
6
+ export declare var COMPLETESUCCESSDATAPATH: string;
7
+ export declare var COMPLETEFAILEDDATAPATH: string;
8
+ export declare var SNSUBMITDATAPATH: string;
9
+ export declare var SNSUCCESSDATAPATH: string;
10
+ export declare var SNFAILEDDATAPATH: string;
11
+ export declare var BACKUPPATH: string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BACKUPPATH = exports.SNFAILEDDATAPATH = exports.SNSUCCESSDATAPATH = exports.SNSUBMITDATAPATH = exports.COMPLETEFAILEDDATAPATH = exports.COMPLETESUCCESSDATAPATH = exports.COMPLETEDATAPATH = exports.FAILEDDATAPATH = exports.SUCCESSDATAPATH = exports.SUBMITDATAPATH = exports.SFTPFILESTORAGE = void 0;
4
+ const env_1 = require("@things-factory/env");
5
+ exports.SFTPFILESTORAGE = env_1.config.get('sftpFileStorage');
6
+ exports.SUBMITDATAPATH = '/sob/data';
7
+ exports.SUCCESSDATAPATH = '/sob/success';
8
+ exports.FAILEDDATAPATH = '/sob/failed';
9
+ exports.COMPLETEDATAPATH = '/oc/data01';
10
+ exports.COMPLETESUCCESSDATAPATH = '/oc/success';
11
+ exports.COMPLETEFAILEDDATAPATH = '/oc/failed';
12
+ exports.SNSUBMITDATAPATH = '/sn/data';
13
+ exports.SNSUCCESSDATAPATH = '/sn/success';
14
+ exports.SNFAILEDDATAPATH = '/sn/failed';
15
+ exports.BACKUPPATH = 'hatiosea/';
16
+ //# sourceMappingURL=sftp-const.js.map
@@ -0,0 +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,WAAW,CAAA;AACpC,QAAA,eAAe,GAAW,cAAc,CAAA;AACxC,QAAA,cAAc,GAAW,aAAa,CAAA;AACtC,QAAA,gBAAgB,GAAW,YAAY,CAAA;AACvC,QAAA,uBAAuB,GAAW,aAAa,CAAA;AAC/C,QAAA,sBAAsB,GAAW,YAAY,CAAA;AAC7C,QAAA,gBAAgB,GAAW,UAAU,CAAA;AACrC,QAAA,iBAAiB,GAAW,aAAa,CAAA;AACzC,QAAA,gBAAgB,GAAW,YAAY,CAAA;AACvC,QAAA,UAAU,GAAW,WAAW,CAAA","sourcesContent":["import { config } from '@things-factory/env'\n\nexport var SFTPFILESTORAGE: any = config.get('sftpFileStorage')\nexport var SUBMITDATAPATH: string = '/sob/data'\nexport var SUCCESSDATAPATH: string = '/sob/success'\nexport var FAILEDDATAPATH: string = '/sob/failed'\nexport var COMPLETEDATAPATH: string = '/oc/data01'\nexport var COMPLETESUCCESSDATAPATH: string = '/oc/success'\nexport var COMPLETEFAILEDDATAPATH: string = '/oc/failed'\nexport var SNSUBMITDATAPATH: string = '/sn/data'\nexport var SNSUCCESSDATAPATH: string = '/sn/success'\nexport var SNFAILEDDATAPATH: string = '/sn/failed'\nexport var BACKUPPATH: string = 'hatiosea/'\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const aws_sdk_1 = tslib_1.__importDefault(require("aws-sdk"));
5
+ const env_1 = require("@things-factory/env");
6
+ const sftp_const_1 = require("./sftp-const");
7
+ const crypto = require('crypto');
8
+ const { PassThrough } = require('stream');
9
+ if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
10
+ const S3 = new aws_sdk_1.default.S3({
11
+ accessKeyId: sftp_const_1.SFTPFILESTORAGE.accessKeyId,
12
+ secretAccessKey: sftp_const_1.SFTPFILESTORAGE.secretAccessKey
13
+ });
14
+ sftp_const_1.SFTPFILESTORAGE.readFolders = async (params, encoding) => {
15
+ let S3params = {
16
+ Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
17
+ Delimiter: '/',
18
+ Prefix: params.path
19
+ };
20
+ const result = await S3.listObjects(S3params).promise();
21
+ let body = result.Contents;
22
+ return body;
23
+ };
24
+ sftp_const_1.SFTPFILESTORAGE.readFile = async (path, encoding) => {
25
+ const result = await S3.getObject({
26
+ Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
27
+ Key: path
28
+ }).promise();
29
+ var body = result.Body;
30
+ if (encoding) {
31
+ return body.toString(encoding);
32
+ }
33
+ return body;
34
+ };
35
+ sftp_const_1.SFTPFILESTORAGE.moveFile = async (path, encoding) => {
36
+ const copyResult = await S3.copyObject({
37
+ Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
38
+ CopySource: sftp_const_1.SFTPFILESTORAGE.bucketName + '/' + path.source,
39
+ Key: path.destination
40
+ }).promise();
41
+ const copyBody = copyResult.CopyObjectResult;
42
+ const deleteResult = await S3.deleteObject({
43
+ Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
44
+ Key: path.source
45
+ }).promise();
46
+ return true;
47
+ };
48
+ /* upload file */
49
+ sftp_const_1.SFTPFILESTORAGE.uploadFile = ({ stream, filename, uploadPath }) => {
50
+ const id = crypto.randomUUID();
51
+ let size = 0;
52
+ return new Promise((resolve, reject) => stream
53
+ .pipe((() => {
54
+ var pass = new PassThrough();
55
+ S3.upload({
56
+ Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
57
+ Key: uploadPath + '/' + filename,
58
+ Body: pass
59
+ }, (err, data) => (err ? reject(err) : resolve({ id, path: uploadPath, size })));
60
+ return pass;
61
+ })())
62
+ .on('error', error => reject(error))
63
+ .on('data', chunk => (size += chunk.length)));
64
+ };
65
+ env_1.logger.info('S3 Bucket Storage is Ready.');
66
+ }
67
+ //# sourceMappingURL=sftp-s3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftp-s3.js","sourceRoot":"","sources":["../server/sftp-s3.ts"],"names":[],"mappings":"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","sourcesContent":["import AWS from 'aws-sdk'\n\nimport { logger } from '@things-factory/env'\n\nimport { SFTPFILESTORAGE } from './sftp-const'\n\nconst crypto = require('crypto')\n\nconst { PassThrough } = require('stream')\n\nif (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {\n const S3 = new AWS.S3({\n accessKeyId: SFTPFILESTORAGE.accessKeyId,\n secretAccessKey: SFTPFILESTORAGE.secretAccessKey\n })\n\n SFTPFILESTORAGE.readFolders = async (params, encoding) => {\n let S3params = {\n Bucket: SFTPFILESTORAGE.bucketName,\n Delimiter: '/',\n Prefix: params.path\n }\n\n const result = await S3.listObjects(S3params).promise()\n\n let body = result.Contents\n\n return body\n }\n\n SFTPFILESTORAGE.readFile = async (path, encoding) => {\n const result = await S3.getObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: path\n }).promise()\n\n var body = result.Body\n\n if (encoding) {\n return body.toString(encoding)\n }\n\n return body\n }\n\n SFTPFILESTORAGE.moveFile = async (path, encoding) => {\n const copyResult = await S3.copyObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n CopySource: SFTPFILESTORAGE.bucketName + '/' + path.source,\n Key: path.destination\n }).promise()\n\n const copyBody = copyResult.CopyObjectResult\n\n const deleteResult = await S3.deleteObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: path.source\n }).promise()\n\n return true\n }\n\n /* upload file */\n SFTPFILESTORAGE.uploadFile = ({ stream, filename, uploadPath }) => {\n const id = crypto.randomUUID()\n let size: number = 0\n\n return new Promise<{ id: string; path: string; size: number }>((resolve, reject) =>\n stream\n .pipe(\n (() => {\n var pass = new PassThrough()\n\n S3.upload(\n {\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: uploadPath + '/' + filename,\n Body: pass\n },\n (err, data) => (err ? reject(err) : resolve({ id, path: uploadPath, size }))\n )\n\n return pass\n })()\n )\n .on('error', error => reject(error))\n .on('data', chunk => (size += chunk.length))\n )\n }\n\n logger.info('S3 Bucket Storage is Ready.')\n}\n"]}