@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.
- package/dist-server/controllers/herbalife/apis/create-serial-number.d.ts +18 -0
- package/dist-server/controllers/herbalife/apis/create-serial-number.js +46 -0
- package/dist-server/controllers/herbalife/apis/create-serial-number.js.map +1 -0
- package/dist-server/controllers/herbalife/apis/create-shipment.d.ts +19 -0
- package/dist-server/controllers/herbalife/apis/create-shipment.js +84 -0
- package/dist-server/controllers/herbalife/apis/create-shipment.js.map +1 -0
- package/dist-server/controllers/herbalife/apis/echo.d.ts +12 -0
- package/dist-server/controllers/herbalife/apis/echo.js +18 -0
- package/dist-server/controllers/herbalife/apis/echo.js.map +1 -0
- package/dist-server/controllers/herbalife/apis/get-outbound-order.d.ts +14 -0
- package/dist-server/controllers/herbalife/apis/get-outbound-order.js +107 -0
- package/dist-server/controllers/herbalife/apis/get-outbound-order.js.map +1 -0
- package/dist-server/controllers/herbalife/apis/index.d.ts +4 -0
- package/dist-server/controllers/herbalife/apis/index.js +8 -0
- package/dist-server/controllers/herbalife/apis/index.js.map +1 -0
- package/dist-server/controllers/herbalife/herbalife.d.ts +8 -0
- package/dist-server/controllers/herbalife/herbalife.js +40 -0
- package/dist-server/controllers/herbalife/herbalife.js.map +1 -0
- package/dist-server/controllers/herbalife/index.d.ts +1 -0
- package/dist-server/controllers/herbalife/index.js +9 -0
- package/dist-server/controllers/herbalife/index.js.map +1 -0
- package/dist-server/controllers/herbalife/platform-action.d.ts +5 -0
- package/dist-server/controllers/herbalife/platform-action.js +30 -0
- package/dist-server/controllers/herbalife/platform-action.js.map +1 -0
- package/dist-server/controllers/index.d.ts +2 -0
- package/dist-server/controllers/index.js +6 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/controllers/sftp-api/decorators.d.ts +1 -0
- package/dist-server/controllers/sftp-api/decorators.js +28 -0
- package/dist-server/controllers/sftp-api/decorators.js.map +1 -0
- package/dist-server/controllers/sftp-api/index.d.ts +11 -0
- package/dist-server/controllers/sftp-api/index.js +56 -0
- package/dist-server/controllers/sftp-api/index.js.map +1 -0
- package/dist-server/controllers/sftp-api/types.d.ts +0 -0
- package/dist-server/controllers/sftp-api/types.js +1 -0
- package/dist-server/controllers/sftp-api/types.js.map +1 -0
- package/dist-server/index.d.ts +6 -0
- package/dist-server/index.js +10 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/middlewares/index.d.ts +1 -0
- package/dist-server/middlewares/index.js +7 -0
- package/dist-server/middlewares/index.js.map +1 -0
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +25 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/index.d.ts +5 -0
- package/dist-server/service/index.js +19 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/sftp/index.d.ts +5 -0
- package/dist-server/service/sftp/index.js +9 -0
- package/dist-server/service/sftp/index.js.map +1 -0
- package/dist-server/service/sftp/sftp-mutation.d.ts +15 -0
- package/dist-server/service/sftp/sftp-mutation.js +250 -0
- package/dist-server/service/sftp/sftp-mutation.js.map +1 -0
- package/dist-server/service/sftp/sftp-query.d.ts +11 -0
- package/dist-server/service/sftp/sftp-query.js +74 -0
- package/dist-server/service/sftp/sftp-query.js.map +1 -0
- package/dist-server/service/sftp/sftp-type.d.ts +29 -0
- package/dist-server/service/sftp/sftp-type.js +113 -0
- package/dist-server/service/sftp/sftp-type.js.map +1 -0
- package/dist-server/service/sftp/sftp.d.ts +33 -0
- package/dist-server/service/sftp/sftp.js +163 -0
- package/dist-server/service/sftp/sftp.js.map +1 -0
- package/dist-server/sftp-const.d.ts +11 -0
- package/dist-server/sftp-const.js +16 -0
- package/dist-server/sftp-const.js.map +1 -0
- package/dist-server/sftp-s3.d.ts +1 -0
- package/dist-server/sftp-s3.js +67 -0
- package/dist-server/sftp-s3.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/dist-server/util/generate-files.d.ts +2 -0
- package/dist-server/util/generate-files.js +29 -0
- package/dist-server/util/generate-files.js.map +1 -0
- package/dist-server/util/get-permitted-directories.d.ts +3 -0
- package/dist-server/util/get-permitted-directories.js +15 -0
- package/dist-server/util/get-permitted-directories.js.map +1 -0
- package/dist-server/util/index.d.ts +2 -0
- package/dist-server/util/index.js +6 -0
- package/dist-server/util/index.js.map +1 -0
- 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"]}
|