@rowengine/common 1.1.1 → 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.
- package/build/index.d.ts +3 -0
- package/build/index.js +19 -0
- package/build/interfaces/activity.d.ts +46 -0
- package/build/interfaces/activity.js +18 -0
- package/build/interfaces/bbox.d.ts +6 -0
- package/build/interfaces/bbox.js +2 -0
- package/build/interfaces/center.d.ts +4 -0
- package/build/interfaces/center.js +2 -0
- package/build/interfaces/company.d.ts +12 -0
- package/build/interfaces/company.js +2 -0
- package/build/interfaces/exportable.d.ts +12 -0
- package/build/interfaces/exportable.js +12 -0
- package/build/interfaces/field.d.ts +19 -0
- package/build/interfaces/field.js +2 -0
- package/build/interfaces/geojson.d.ts +12 -0
- package/build/interfaces/geojson.js +2 -0
- package/build/interfaces/grade.d.ts +5 -0
- package/build/interfaces/grade.js +2 -0
- package/build/interfaces/inboundedit.d.ts +23 -0
- package/build/interfaces/inboundedit.js +2 -0
- package/build/interfaces/index.d.ts +17 -0
- package/build/interfaces/index.js +33 -0
- package/build/interfaces/pixviewer-link.d.ts +6 -0
- package/build/interfaces/pixviewer-link.js +2 -0
- package/build/interfaces/project.d.ts +102 -0
- package/build/interfaces/project.js +65 -0
- package/build/interfaces/refund.d.ts +11 -0
- package/build/interfaces/refund.js +2 -0
- package/build/interfaces/reload.d.ts +9 -0
- package/build/interfaces/reload.js +2 -0
- package/build/interfaces/stagetimes.d.ts +31 -0
- package/build/interfaces/stagetimes.js +2 -0
- package/build/interfaces/transaction.d.ts +19 -0
- package/build/interfaces/transaction.js +9 -0
- package/build/interfaces/user.d.ts +18 -0
- package/build/interfaces/user.js +10 -0
- package/build/interfaces/weeds.d.ts +47 -0
- package/build/interfaces/weeds.js +27 -0
- package/build/models/activity.model.d.ts +25 -0
- package/build/models/activity.model.js +83 -0
- package/build/models/company.model.d.ts +15 -0
- package/build/models/company.model.js +44 -0
- package/build/models/index.d.ts +8 -0
- package/build/models/index.js +24 -0
- package/build/models/pixviewer-link.model.d.ts +14 -0
- package/build/models/pixviewer-link.model.js +64 -0
- package/build/models/project.model.d.ts +26 -0
- package/build/models/project.model.js +138 -0
- package/build/models/refund.model.d.ts +18 -0
- package/build/models/refund.model.js +47 -0
- package/build/models/reload.model.d.ts +16 -0
- package/build/models/reload.model.js +49 -0
- package/build/models/transaction.model.d.ts +18 -0
- package/build/models/transaction.model.js +61 -0
- package/build/models/user.model.d.ts +19 -0
- package/build/models/user.model.js +119 -0
- package/build/utils/gc-storage.d.ts +3 -0
- package/build/utils/gc-storage.js +33 -0
- package/build/utils/gc.d.ts +11 -0
- package/build/utils/gc.js +63 -0
- package/build/utils/grades.d.ts +3 -0
- package/build/utils/grades.js +25 -0
- package/build/utils/index.d.ts +3 -0
- package/build/utils/index.js +19 -0
- 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,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,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,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.
|
|
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
|
|
48
|
-
"pub": "git add .
|
|
49
|
-
"pub-linux": "
|
|
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",
|