@rowengine/common 1.1.2 → 1.1.3

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 (65) hide show
  1. package/build/index.d.ts +3 -0
  2. package/build/index.js +19 -0
  3. package/build/interfaces/activity.d.ts +46 -0
  4. package/build/interfaces/activity.js +18 -0
  5. package/build/interfaces/bbox.d.ts +6 -0
  6. package/build/interfaces/bbox.js +2 -0
  7. package/build/interfaces/center.d.ts +4 -0
  8. package/build/interfaces/center.js +2 -0
  9. package/build/interfaces/company.d.ts +12 -0
  10. package/build/interfaces/company.js +2 -0
  11. package/build/interfaces/exportable.d.ts +12 -0
  12. package/build/interfaces/exportable.js +12 -0
  13. package/build/interfaces/field.d.ts +19 -0
  14. package/build/interfaces/field.js +2 -0
  15. package/build/interfaces/geojson.d.ts +12 -0
  16. package/build/interfaces/geojson.js +2 -0
  17. package/build/interfaces/grade.d.ts +5 -0
  18. package/build/interfaces/grade.js +2 -0
  19. package/build/interfaces/inboundedit.d.ts +23 -0
  20. package/build/interfaces/inboundedit.js +2 -0
  21. package/build/interfaces/index.d.ts +17 -0
  22. package/build/interfaces/index.js +33 -0
  23. package/build/interfaces/pixviewer-link.d.ts +6 -0
  24. package/build/interfaces/pixviewer-link.js +2 -0
  25. package/build/interfaces/project.d.ts +102 -0
  26. package/build/interfaces/project.js +65 -0
  27. package/build/interfaces/refund.d.ts +11 -0
  28. package/build/interfaces/refund.js +2 -0
  29. package/build/interfaces/reload.d.ts +9 -0
  30. package/build/interfaces/reload.js +2 -0
  31. package/build/interfaces/stagetimes.d.ts +31 -0
  32. package/build/interfaces/stagetimes.js +2 -0
  33. package/build/interfaces/transaction.d.ts +19 -0
  34. package/build/interfaces/transaction.js +9 -0
  35. package/build/interfaces/user.d.ts +18 -0
  36. package/build/interfaces/user.js +10 -0
  37. package/build/interfaces/weeds.d.ts +47 -0
  38. package/build/interfaces/weeds.js +27 -0
  39. package/build/models/activity.model.d.ts +25 -0
  40. package/build/models/activity.model.js +83 -0
  41. package/build/models/company.model.d.ts +15 -0
  42. package/build/models/company.model.js +44 -0
  43. package/build/models/index.d.ts +8 -0
  44. package/build/models/index.js +24 -0
  45. package/build/models/pixviewer-link.model.d.ts +14 -0
  46. package/build/models/pixviewer-link.model.js +64 -0
  47. package/build/models/project.model.d.ts +26 -0
  48. package/build/models/project.model.js +138 -0
  49. package/build/models/refund.model.d.ts +18 -0
  50. package/build/models/refund.model.js +47 -0
  51. package/build/models/reload.model.d.ts +16 -0
  52. package/build/models/reload.model.js +49 -0
  53. package/build/models/transaction.model.d.ts +18 -0
  54. package/build/models/transaction.model.js +61 -0
  55. package/build/models/user.model.d.ts +19 -0
  56. package/build/models/user.model.js +119 -0
  57. package/build/utils/gc-storage.d.ts +3 -0
  58. package/build/utils/gc-storage.js +33 -0
  59. package/build/utils/gc.d.ts +11 -0
  60. package/build/utils/gc.js +63 -0
  61. package/build/utils/grades.d.ts +3 -0
  62. package/build/utils/grades.js +25 -0
  63. package/build/utils/index.d.ts +3 -0
  64. package/build/utils/index.js +19 -0
  65. package/package.json +4 -4
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TransactionModel = void 0;
7
+ const mongoose_1 = __importDefault(require("mongoose"));
8
+ const interfaces_1 = require("../interfaces");
9
+ const transactionSchema = new mongoose_1.default.Schema({
10
+ company: {
11
+ type: mongoose_1.default.Schema.Types.ObjectId,
12
+ ref: 'Company',
13
+ required: true,
14
+ },
15
+ userEmail: {
16
+ type: String,
17
+ required: true,
18
+ },
19
+ project: {
20
+ type: Object,
21
+ required: false,
22
+ },
23
+ currentBalance: {
24
+ type: Number,
25
+ required: true,
26
+ },
27
+ value: {
28
+ type: Number,
29
+ required: true,
30
+ },
31
+ type: {
32
+ type: String,
33
+ enum: Object.values(interfaces_1.TransactionType),
34
+ required: true,
35
+ },
36
+ createdAt: {
37
+ type: Date,
38
+ required: true,
39
+ },
40
+ }, {
41
+ toJSON: {
42
+ transform(doc, ret) {
43
+ ret.id = ret._id;
44
+ delete ret._id;
45
+ delete ret.__v;
46
+ },
47
+ },
48
+ });
49
+ const autoPopulate = function (next) {
50
+ // @ts-ignore
51
+ this.populate('company');
52
+ next();
53
+ };
54
+ transactionSchema.pre('findOne', autoPopulate);
55
+ transactionSchema.pre('find', autoPopulate);
56
+ // Pass the ts interface.
57
+ transactionSchema.statics.build = (attrs) => {
58
+ return new TransactionModel(attrs);
59
+ };
60
+ const TransactionModel = mongoose_1.default.model('Transaction', transactionSchema);
61
+ exports.TransactionModel = TransactionModel;
@@ -0,0 +1,19 @@
1
+ import mongoose from 'mongoose';
2
+ import { CompanyDoc } from './company.model';
3
+ import { User } from '../interfaces';
4
+ import { UserLevel } from '../interfaces';
5
+ interface UserAttrs {
6
+ email: string;
7
+ company: CompanyDoc;
8
+ name: string;
9
+ level: String;
10
+ password: string;
11
+ createdAt: Date;
12
+ createdBy: string;
13
+ }
14
+ type UserDoc = User & mongoose.Document;
15
+ interface UserModel extends mongoose.Model<UserDoc> {
16
+ build(attrs: UserAttrs): UserDoc;
17
+ }
18
+ declare const UserModel: UserModel;
19
+ export { UserModel, UserDoc, UserLevel };
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.UserLevel = exports.UserModel = void 0;
49
+ const mongoose_1 = __importStar(require("mongoose"));
50
+ const bcrypt_1 = __importDefault(require("bcrypt"));
51
+ const interfaces_1 = require("../interfaces");
52
+ Object.defineProperty(exports, "UserLevel", { enumerable: true, get: function () { return interfaces_1.UserLevel; } });
53
+ const userSchema = new mongoose_1.default.Schema({
54
+ email: {
55
+ type: String,
56
+ required: true,
57
+ },
58
+ company: {
59
+ type: mongoose_1.Schema.Types.ObjectId,
60
+ ref: 'Company',
61
+ required: true,
62
+ },
63
+ name: {
64
+ type: String,
65
+ required: true,
66
+ },
67
+ level: {
68
+ type: String,
69
+ required: true,
70
+ enum: Object.values(interfaces_1.UserLevel),
71
+ },
72
+ blocked: {
73
+ type: Boolean,
74
+ required: false,
75
+ default: false,
76
+ },
77
+ password: {
78
+ type: String,
79
+ required: true,
80
+ },
81
+ createdAt: {
82
+ type: Date,
83
+ required: true,
84
+ },
85
+ createdBy: {
86
+ type: String,
87
+ required: true,
88
+ },
89
+ }, {
90
+ toJSON: {
91
+ transform(_, ret) {
92
+ ret.id = ret._id;
93
+ delete ret._id;
94
+ delete ret.password;
95
+ },
96
+ },
97
+ });
98
+ const autoPopulate = function (next) {
99
+ //@ts-ignore
100
+ this.populate('company');
101
+ next();
102
+ };
103
+ userSchema.pre('findOne', autoPopulate).pre('find', autoPopulate);
104
+ // Hash the user password before saving it to the db.
105
+ userSchema.pre('save', function (done) {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ if (this.isModified('password')) {
108
+ const hashedPass = bcrypt_1.default.hashSync(this.get('password'), 12);
109
+ this.set('password', hashedPass);
110
+ }
111
+ done();
112
+ });
113
+ });
114
+ // Create function to pass ts interface.
115
+ userSchema.statics.build = (attrs) => {
116
+ return new UserModel(attrs);
117
+ };
118
+ const UserModel = mongoose_1.default.model('User', userSchema);
119
+ exports.UserModel = UserModel;
@@ -0,0 +1,3 @@
1
+ import { Bucket } from '@google-cloud/storage';
2
+ declare const _default: Bucket;
3
+ export default _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const storage_1 = require("@google-cloud/storage");
4
+ class GoogleCloudStorage {
5
+ constructor() {
6
+ // Create a new Storage object using the environment variables for credentials and project ID
7
+ this.storage = new storage_1.Storage({
8
+ projectId: process.env.GCS_PROJECT,
9
+ credentials: {
10
+ client_email: process.env.GCS_EMAIL,
11
+ private_key: process.env.NODE_ENV === 'test'
12
+ ? 'fake_key'
13
+ : process.env.GCS_KEY
14
+ .split(String.raw `\n`)
15
+ .join('\n'),
16
+ },
17
+ });
18
+ }
19
+ static getInstance() {
20
+ // Create a new instance of GoogleCloudStorage if one does not already exist
21
+ if (!GoogleCloudStorage.instance) {
22
+ GoogleCloudStorage.instance = new GoogleCloudStorage();
23
+ }
24
+ return GoogleCloudStorage.instance;
25
+ }
26
+ getStorage() {
27
+ // Return the Storage object for the Google Cloud Storage connection
28
+ return this.storage.bucket(process.env.NODE_ENV === 'test'
29
+ ? 'fake_bucket'
30
+ : process.env.GCS_BUCKET);
31
+ }
32
+ }
33
+ exports.default = GoogleCloudStorage.getInstance().getStorage();
@@ -0,0 +1,11 @@
1
+ interface UploadFileToGCS {
2
+ filePath: string;
3
+ gcsFilePath: string;
4
+ }
5
+ interface UploadFileToGCSResponse {
6
+ filename: string;
7
+ size: number;
8
+ }
9
+ export declare const uploadFileToGCS: ({ filePath, gcsFilePath, }: UploadFileToGCS) => Promise<UploadFileToGCSResponse>;
10
+ export declare const uploadFolderToGCS: (folderPath: string, gcsPath: string) => Promise<void>;
11
+ export {};
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.uploadFolderToGCS = exports.uploadFileToGCS = void 0;
16
+ const gc_storage_1 = __importDefault(require("./gc-storage"));
17
+ const path_1 = __importDefault(require("path"));
18
+ const fs_1 = __importDefault(require("fs"));
19
+ const p_limit_1 = __importDefault(require("p-limit"));
20
+ const uploadFileToGCS = ({ filePath, gcsFilePath, }) => {
21
+ return new Promise((resolve, reject) => {
22
+ if (!fs_1.default.existsSync(filePath))
23
+ throw new Error('File not found');
24
+ const { size } = fs_1.default.statSync(filePath);
25
+ const blob = gc_storage_1.default.file(gcsFilePath);
26
+ const blobStream = blob.createWriteStream({
27
+ resumable: false,
28
+ });
29
+ const readStream = fs_1.default.createReadStream(filePath);
30
+ readStream.pipe(blobStream);
31
+ blobStream.on('error', (err) => {
32
+ reject(err);
33
+ });
34
+ blobStream.on('finish', () => {
35
+ resolve({
36
+ filename: path_1.default.basename(filePath),
37
+ size: size / 1024 / 1024,
38
+ });
39
+ });
40
+ });
41
+ };
42
+ exports.uploadFileToGCS = uploadFileToGCS;
43
+ const uploadFolderToGCS = (folderPath, gcsPath) => __awaiter(void 0, void 0, void 0, function* () {
44
+ const limit = (0, p_limit_1.default)(4);
45
+ const files = fs_1.default.readdirSync(folderPath);
46
+ let promises = [];
47
+ for (const file of files) {
48
+ // If file is directory, we need to upload it recursively.
49
+ if (fs_1.default.lstatSync(path_1.default.join(folderPath, file)).isDirectory()) {
50
+ yield (0, exports.uploadFolderToGCS)(path_1.default.join(folderPath, file), path_1.default.join(gcsPath, file));
51
+ }
52
+ else {
53
+ const filePath = path_1.default.join(folderPath, file);
54
+ const gcsFilePath = path_1.default.join(gcsPath, file);
55
+ promises.push(limit(() => {
56
+ return (0, exports.uploadFileToGCS)({ filePath, gcsFilePath });
57
+ }));
58
+ }
59
+ }
60
+ const res = yield Promise.all(promises);
61
+ const totalSize = res.reduce((acc, curr) => acc + curr.size, 0);
62
+ });
63
+ exports.uploadFolderToGCS = uploadFolderToGCS;
@@ -0,0 +1,3 @@
1
+ export declare const gradeClasses: number[];
2
+ export declare const gradeColors: string[];
3
+ export declare const getGradeColor: (value: number) => string;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGradeColor = exports.gradeColors = exports.gradeClasses = void 0;
4
+ exports.gradeClasses = [0, 0.4, 0.6, 0.8];
5
+ exports.gradeColors = [
6
+ "#f44336", // Red
7
+ "#ff9800", // Orange
8
+ "#ffc107", // Yellow
9
+ "#4caf50", // Green
10
+ ];
11
+ const getGradeColor = (value) => {
12
+ if (value < exports.gradeClasses[0]) {
13
+ return exports.gradeColors[0]; // Red
14
+ }
15
+ else if (value < exports.gradeClasses[1]) {
16
+ return exports.gradeColors[1]; // Orange
17
+ }
18
+ else if (value < exports.gradeClasses[2]) {
19
+ return exports.gradeColors[2]; // Yellow
20
+ }
21
+ else {
22
+ return exports.gradeColors[3]; // Green
23
+ }
24
+ };
25
+ exports.getGradeColor = getGradeColor;
@@ -0,0 +1,3 @@
1
+ export * from './grades';
2
+ export * from './gc';
3
+ export * from './gc-storage';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./grades"), exports);
18
+ __exportStar(require("./gc"), exports);
19
+ __exportStar(require("./gc-storage"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rowengine/common",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "private": false,
@@ -44,9 +44,9 @@
44
44
  ],
45
45
  "scripts": {
46
46
  "clean": "rm -rf ./build",
47
- "build": "npm run clean & tsc",
48
- "pub": "git add . & git commit -m \"updated common package\" & npm version patch & npm run build & npm publish",
49
- "pub-linux": "npm run build ; git add . ; git commit -m \"updated common package\" ; npm version patch ; npm publish"
47
+ "build": "npm run clean && tsc",
48
+ "pub": "npm run build && git add . && git commit -m \"updated common package\" && npm version patch && npm publish",
49
+ "pub-linux": "npm run build && git add . && git commit -m \"updated common package\" && npm version patch && npm publish"
50
50
  },
51
51
  "author": "Leonardo Ribeiro",
52
52
  "license": "ISC",