not-node 5.0.22 → 5.1.2
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/.eslintrc.json +1 -1
- package/bin/not-deploy.js +52 -0
- package/index.js +21 -19
- package/package.json +1 -1
- package/src/app.js +61 -58
- package/src/auth/abstract.js +17 -19
- package/src/auth/const.js +8 -12
- package/src/auth/fields.js +143 -124
- package/src/auth/index.js +14 -14
- package/src/auth/roles.js +64 -63
- package/src/auth/routes.js +89 -54
- package/src/auth/rules.js +63 -63
- package/src/auth/session.js +60 -62
- package/src/bootstrap/form.js +13 -13
- package/src/bootstrap/logic.js +45 -41
- package/src/bootstrap/model.js +14 -17
- package/src/bootstrap/route.js +132 -53
- package/src/common.js +86 -79
- package/src/core/fields/ID.js +6 -6
- package/src/core/fields/__closed.js +3 -3
- package/src/core/fields/__latest.js +3 -3
- package/src/core/fields/__version.js +3 -3
- package/src/core/fields/__versions.js +3 -3
- package/src/core/fields/_id.js +6 -6
- package/src/core/fields/active.js +9 -9
- package/src/core/fields/codeName.js +9 -9
- package/src/core/fields/createdAt.js +17 -17
- package/src/core/fields/default.js +9 -9
- package/src/core/fields/description.js +11 -11
- package/src/core/fields/email.js +9 -9
- package/src/core/fields/enabled.js +9 -9
- package/src/core/fields/expiredAt.js +16 -16
- package/src/core/fields/height.js +11 -11
- package/src/core/fields/ip.js +10 -10
- package/src/core/fields/objectId.js +10 -10
- package/src/core/fields/owner.js +13 -13
- package/src/core/fields/ownerModel.js +11 -11
- package/src/core/fields/price.js +11 -11
- package/src/core/fields/requiredObject.js +10 -10
- package/src/core/fields/session.js +10 -10
- package/src/core/fields/size.js +11 -11
- package/src/core/fields/telephone.js +9 -9
- package/src/core/fields/title.js +15 -15
- package/src/core/fields/updatedAt.js +17 -17
- package/src/core/fields/userId.js +11 -12
- package/src/core/fields/uuid.js +11 -11
- package/src/core/fields/validators/email.js +6 -4
- package/src/core/fields/validators/owner.js +6 -4
- package/src/core/fields/width.js +11 -11
- package/src/domain.js +435 -431
- package/src/env.js +23 -23
- package/src/error.js +20 -23
- package/src/exceptions/db.js +23 -0
- package/src/exceptions/http.js +43 -0
- package/src/fields/index.js +106 -111
- package/src/form/fabric.js +19 -24
- package/src/form/form.js +195 -186
- package/src/form/index.js +2 -2
- package/src/generic/index.js +2 -0
- package/src/generic/logic.js +595 -0
- package/src/generic/route.js +76 -0
- package/src/init/additional.js +7 -7
- package/src/init/app.js +75 -68
- package/src/init/bodyparser.js +14 -14
- package/src/init/compression.js +6 -7
- package/src/init/core.js +12 -12
- package/src/init/cors.js +22 -24
- package/src/init/db/index.js +41 -43
- package/src/init/db/ioredis.js +28 -20
- package/src/init/db/mongoose.js +42 -32
- package/src/init/db/redis.js +59 -48
- package/src/init/env.js +44 -36
- package/src/init/express.js +18 -21
- package/src/init/fileupload.js +8 -10
- package/src/init/http.js +65 -47
- package/src/init/index.js +141 -148
- package/src/init/informer.js +7 -9
- package/src/init/methodoverride.js +4 -6
- package/src/init/middleware.js +23 -26
- package/src/init/modules.js +4 -4
- package/src/init/monitoring.js +8 -8
- package/src/init/rateLimiter.js +53 -45
- package/src/init/routes.js +67 -69
- package/src/init/security.js +37 -33
- package/src/init/sequence.js +111 -107
- package/src/init/sequence.standart.js +54 -56
- package/src/init/sessions/index.js +21 -21
- package/src/init/sessions/mongoose.js +49 -36
- package/src/init/sessions/redis.js +28 -27
- package/src/init/static.js +53 -40
- package/src/init/template.js +17 -17
- package/src/lib.js +230 -200
- package/src/manifest/batchRunner.js +26 -25
- package/src/manifest/initializator/forms.js +24 -24
- package/src/manifest/initializator/index.js +8 -10
- package/src/manifest/initializator/manifests.js +45 -42
- package/src/manifest/initializator/models.js +37 -34
- package/src/manifest/manifest.filter.js +130 -97
- package/src/manifest/manifest.js +103 -77
- package/src/manifest/module.js +350 -360
- package/src/manifest/registrator/fields.js +90 -85
- package/src/manifest/registrator/forms.js +47 -47
- package/src/manifest/registrator/index.js +14 -16
- package/src/manifest/registrator/locales.js +17 -16
- package/src/manifest/registrator/logics.js +66 -64
- package/src/manifest/registrator/models.js +64 -62
- package/src/manifest/registrator/routes.js +171 -132
- package/src/manifest/registrator/routes.ws.js +109 -103
- package/src/manifest/route.js +216 -161
- package/src/model/buildValidator.js +53 -42
- package/src/model/default.js +304 -286
- package/src/model/enrich.js +69 -61
- package/src/model/increment.js +124 -137
- package/src/model/proto.js +179 -148
- package/src/model/routine.js +85 -76
- package/src/model/utils.js +33 -0
- package/src/model/versioning.js +148 -130
- package/src/obsolete.js +12 -8
- package/src/parser.js +29 -22
- package/src/repos.js +29 -31
- package/src/rollup.js +75 -65
- package/src/shell.helpers.js +28 -28
- package/static.js +31 -0
- package/src/generic/router.js +0 -16
- package/src/manifest/module.models.js +0 -0
- package/src/manifest/module.status.js +0 -0
package/src/model/versioning.js
CHANGED
|
@@ -1,147 +1,165 @@
|
|
|
1
1
|
/** @module Model/Versioning */
|
|
2
2
|
|
|
3
|
-
const diff = require(
|
|
3
|
+
const diff = require("deep-diff").diff;
|
|
4
|
+
|
|
5
|
+
const TECH_FIELDS = [
|
|
6
|
+
"_id",
|
|
7
|
+
"__version",
|
|
8
|
+
"__versions",
|
|
9
|
+
"__v",
|
|
10
|
+
"__latest",
|
|
11
|
+
"__closed",
|
|
12
|
+
];
|
|
13
|
+
|
|
14
|
+
const ERR_NO_PREVIOUS_VERSIONS = "No previous version!";
|
|
15
|
+
const ERR_SAME_OLD_DATA = "Same old data";
|
|
16
|
+
|
|
17
|
+
class ModelVersioning {
|
|
18
|
+
static versionsHistoryExists(data) {
|
|
19
|
+
return Array.isArray(data.__versions) && data.__versions.length > 0;
|
|
20
|
+
}
|
|
4
21
|
|
|
5
|
-
|
|
22
|
+
static extractVersionNumber(data) {
|
|
23
|
+
return typeof data.__version !== "undefined" && data.__version !== null
|
|
24
|
+
? data.__version
|
|
25
|
+
: 0;
|
|
26
|
+
}
|
|
6
27
|
|
|
7
|
-
|
|
8
|
-
|
|
28
|
+
static getLatestVersionId(data) {
|
|
29
|
+
return data.__versions[0];
|
|
30
|
+
}
|
|
9
31
|
|
|
10
|
-
|
|
32
|
+
static addVersionToHistory(doc, version) {
|
|
33
|
+
if (!ModelVersioning.versionsHistoryExists(doc)) {
|
|
34
|
+
doc.__versions = [];
|
|
35
|
+
}
|
|
36
|
+
doc.__versions.unshift(version._id); //первая в массиве последняя [3,2,1,0]
|
|
37
|
+
return doc.save();
|
|
38
|
+
}
|
|
11
39
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
40
|
+
static stripTechData(a) {
|
|
41
|
+
TECH_FIELDS.forEach((f) => {
|
|
42
|
+
delete a[f];
|
|
43
|
+
});
|
|
44
|
+
return a;
|
|
45
|
+
}
|
|
15
46
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
47
|
+
static jsonCopy(a) {
|
|
48
|
+
return JSON.parse(JSON.stringify(a));
|
|
49
|
+
}
|
|
19
50
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
51
|
+
static isThisDocsDifferent(a, b) {
|
|
52
|
+
a = ModelVersioning.stripTechData(a);
|
|
53
|
+
b = ModelVersioning.stripTechData(b);
|
|
54
|
+
const plainA = ModelVersioning.jsonCopy(a);
|
|
55
|
+
const plainB = ModelVersioning.jsonCopy(b);
|
|
56
|
+
const diffLog = diff(plainA, plainB);
|
|
57
|
+
return typeof diffLog !== "undefined";
|
|
58
|
+
}
|
|
23
59
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Compares latest version in __versions list in data with data
|
|
62
|
+
* @param {MongooseModel} thisModel model of data
|
|
63
|
+
* @param {Object} data data to save
|
|
64
|
+
* @return {boolean} if data differs from latest version
|
|
65
|
+
*/
|
|
66
|
+
static async isNew(thisModel, data) {
|
|
67
|
+
let latestId = ModelVersioning.getLatestVersionId(data);
|
|
68
|
+
let previous = await thisModel.findById(latestId);
|
|
69
|
+
if (typeof previous !== "undefined" && previous !== null) {
|
|
70
|
+
return ModelVersioning.isThisDocsDifferent(
|
|
71
|
+
data,
|
|
72
|
+
previous.toObject()
|
|
73
|
+
);
|
|
74
|
+
} else {
|
|
75
|
+
throw new Error(ERR_NO_PREVIOUS_VERSIONS);
|
|
76
|
+
}
|
|
27
77
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
*/
|
|
58
|
-
static async isNew(thisModel, data) {
|
|
59
|
-
let latestId = ModelVersioning.getLatestVersionId(data);
|
|
60
|
-
let previous = await thisModel.findById(latestId);
|
|
61
|
-
if (typeof previous !== 'undefined' && previous !== null) {
|
|
62
|
-
return ModelVersioning.isThisDocsDifferent(data, previous.toObject());
|
|
63
|
-
} else {
|
|
64
|
-
throw new Error(ERR_NO_PREVIOUS_VERSIONS);
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Saves current version to versions archive, updates current version versioning tags
|
|
81
|
+
* @param {ObjectId} id current version _id (just saved version)
|
|
82
|
+
* @param {Object} data data to save
|
|
83
|
+
* @param {MongooseModel} thisModel model to use
|
|
84
|
+
* @return {Promise<MongooseDocument>} current version with updated versioning tags
|
|
85
|
+
*/
|
|
86
|
+
static async saveVersion(id, data, model) {
|
|
87
|
+
let preservedVersionNumber = ModelVersioning.extractVersionNumber(data),
|
|
88
|
+
preservedVersionsList = [...data.__versions]; //making copy
|
|
89
|
+
let different = await ModelVersioning.isNew(model, data);
|
|
90
|
+
if (different) {
|
|
91
|
+
//it's not latest version, it's archived copy
|
|
92
|
+
delete data.__latest;
|
|
93
|
+
//saves to archive with preserved data
|
|
94
|
+
let versionDoc = new model(data);
|
|
95
|
+
versionDoc.__version = preservedVersionNumber;
|
|
96
|
+
versionDoc.__versions = preservedVersionsList;
|
|
97
|
+
await versionDoc.save();
|
|
98
|
+
//updating history
|
|
99
|
+
let originalDoc = await model.findById(id).exec();
|
|
100
|
+
originalDoc.__version = preservedVersionNumber + 1;
|
|
101
|
+
return await ModelVersioning.addVersionToHistory(
|
|
102
|
+
originalDoc,
|
|
103
|
+
versionDoc
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
throw new Error(ERR_SAME_OLD_DATA);
|
|
65
107
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
originalDoc.__version = preservedVersionNumber + 1;
|
|
90
|
-
return await ModelVersioning.addVersionToHistory(originalDoc, versionDoc);
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Saves first version. Run AFTER doing .save() on document.
|
|
111
|
+
* @param {ObjectId} id current version _id (just saved version)
|
|
112
|
+
* @param {Object} data data to save
|
|
113
|
+
* @param {MongooseModel} thisModel model to use
|
|
114
|
+
* @return {Promise<MongooseDocument>} current version with updated versions tags
|
|
115
|
+
*/
|
|
116
|
+
static async saveFirstVersion(id, data, thisModel) {
|
|
117
|
+
//it's not latest version, it's archived copy
|
|
118
|
+
delete data.__latest;
|
|
119
|
+
//saves to archive
|
|
120
|
+
let versionDoc = new thisModel(data);
|
|
121
|
+
await versionDoc.save();
|
|
122
|
+
//retrieving original
|
|
123
|
+
let originalDoc = await thisModel.findById(id).exec();
|
|
124
|
+
//first version
|
|
125
|
+
originalDoc.__version = 1;
|
|
126
|
+
//adding to history
|
|
127
|
+
return await ModelVersioning.addVersionToHistory(
|
|
128
|
+
originalDoc,
|
|
129
|
+
versionDoc
|
|
130
|
+
);
|
|
91
131
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
let originalDoc = await thisModel.findById(id).exec();
|
|
110
|
-
//first version
|
|
111
|
-
originalDoc.__version = 1;
|
|
112
|
-
//adding to history
|
|
113
|
-
return await ModelVersioning.addVersionToHistory(originalDoc, versionDoc);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Save document
|
|
118
|
-
* if document is new - creates document
|
|
119
|
-
* if it's updated document - updates document and versioning history
|
|
120
|
-
* @param {MongooseModel} doc document to save
|
|
121
|
-
* @return {Promise<MongooseDocument>} current version with updated versions tags
|
|
122
|
-
*/
|
|
123
|
-
static saveDiff(doc){
|
|
124
|
-
let data = doc.toObject(),
|
|
125
|
-
id = data._id;
|
|
126
|
-
delete data._id;
|
|
127
|
-
if (ModelVersioning.versionsHistoryExists(data)) {
|
|
128
|
-
return ModelVersioning.saveVersion(id, data, this);
|
|
129
|
-
} else {
|
|
130
|
-
return ModelVersioning.saveFirstVersion(id, data, this);
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Save document
|
|
135
|
+
* if document is new - creates document
|
|
136
|
+
* if it's updated document - updates document and versioning history
|
|
137
|
+
* @param {MongooseModel} doc document to save
|
|
138
|
+
* @return {Promise<MongooseDocument>} current version with updated versions tags
|
|
139
|
+
*/
|
|
140
|
+
static saveDiff(doc) {
|
|
141
|
+
let data = doc.toObject(),
|
|
142
|
+
id = data._id;
|
|
143
|
+
delete data._id;
|
|
144
|
+
if (ModelVersioning.versionsHistoryExists(data)) {
|
|
145
|
+
return ModelVersioning.saveVersion(id, data, this);
|
|
146
|
+
} else {
|
|
147
|
+
return ModelVersioning.saveFirstVersion(id, data, this);
|
|
148
|
+
}
|
|
131
149
|
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Idea is that you first save or update your doc
|
|
136
|
-
* then you run Doc.version(_id_of_just_saved_doc)
|
|
137
|
-
* and it will create archived copy of current document,
|
|
138
|
-
* add _id of copy to list of document.__versions
|
|
139
|
-
* and increment __version number
|
|
140
|
-
**/
|
|
141
|
-
static version(id){
|
|
142
|
-
return this.findById(id).exec().then(ModelVersioning.saveDiff.bind(this));
|
|
143
|
-
}
|
|
144
150
|
|
|
151
|
+
/**
|
|
152
|
+
* Idea is that you first save or update your doc
|
|
153
|
+
* then you run Doc.version(_id_of_just_saved_doc)
|
|
154
|
+
* and it will create archived copy of current document,
|
|
155
|
+
* add _id of copy to list of document.__versions
|
|
156
|
+
* and increment __version number
|
|
157
|
+
**/
|
|
158
|
+
static version(id) {
|
|
159
|
+
return this.findById(id)
|
|
160
|
+
.exec()
|
|
161
|
+
.then(ModelVersioning.saveDiff.bind(this));
|
|
162
|
+
}
|
|
145
163
|
}
|
|
146
164
|
|
|
147
165
|
ModelVersioning.ERR_NO_PREVIOUS_VERSIONS = ERR_NO_PREVIOUS_VERSIONS;
|
package/src/obsolete.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
const log = require(
|
|
1
|
+
const log = require("not-log")(module, "Auth");
|
|
2
2
|
|
|
3
|
-
module.exports = function(rule, url =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
module.exports = function (rule, url = "") {
|
|
4
|
+
if (Object.prototype.hasOwnProperty.call(rule, "user")) {
|
|
5
|
+
log.error(
|
|
6
|
+
`Missformed rule, field "user" is not allowed, use "auth" instead: ${url}`
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
if (Object.prototype.hasOwnProperty.call(rule, "admin")) {
|
|
10
|
+
log.error(
|
|
11
|
+
`Missformed rule, field "admin" is obsolete, use "root" instead: ${url}`
|
|
12
|
+
);
|
|
13
|
+
}
|
|
10
14
|
};
|
package/src/parser.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const {objHas} = require(
|
|
1
|
+
const { objHas } = require("./common");
|
|
2
2
|
|
|
3
3
|
/** @module Parser */
|
|
4
4
|
|
|
@@ -11,18 +11,20 @@ const {objHas} = require('./common');
|
|
|
11
11
|
* record[fieldName] - is for client side mostly, shows what model field walue should be placed there. Samples ':record[_id]', ':record[authorId]'
|
|
12
12
|
* @return {string} resolved line
|
|
13
13
|
*/
|
|
14
|
-
module.exports.parseLine = function(line, modelName, actionName) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
module.exports.parseLine = function (line, modelName, actionName) {
|
|
15
|
+
var recStart = ":record[",
|
|
16
|
+
recEnd = "]";
|
|
17
|
+
//remove client-side markers and replace them with name of field. :record[_id] turns into :_id
|
|
18
|
+
while (line.indexOf(recStart) > -1) {
|
|
19
|
+
line = line.replace(recStart, ":");
|
|
20
|
+
line = line.replace(recEnd, "");
|
|
21
|
+
}
|
|
22
|
+
//place server-side markers
|
|
23
|
+
if (typeof modelName !== "undefined")
|
|
24
|
+
line = line.replace(":modelName", modelName);
|
|
25
|
+
if (typeof actionName !== "undefined")
|
|
26
|
+
line = line.replace(":actionName", actionName);
|
|
27
|
+
return line;
|
|
26
28
|
};
|
|
27
29
|
|
|
28
30
|
/**
|
|
@@ -34,13 +36,18 @@ module.exports.parseLine = function(line, modelName, actionName) {
|
|
|
34
36
|
* @param {object} actionData data from manifest for this action
|
|
35
37
|
* @return {string} resolved router line
|
|
36
38
|
*/
|
|
37
|
-
module.exports.getRouteLine = function(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
module.exports.getRouteLine = function (
|
|
40
|
+
url,
|
|
41
|
+
modelName,
|
|
42
|
+
actionName,
|
|
43
|
+
actionData
|
|
44
|
+
) {
|
|
45
|
+
let part1 = this.parseLine(url, modelName, actionName),
|
|
46
|
+
part2 = "";
|
|
47
|
+
if (objHas(actionData, "postFix")) {
|
|
48
|
+
part2 = this.parseLine(actionData.postFix, modelName, actionName);
|
|
49
|
+
} else {
|
|
50
|
+
part2 = "";
|
|
51
|
+
}
|
|
52
|
+
return part1 + part2;
|
|
46
53
|
};
|
package/src/repos.js
CHANGED
|
@@ -1,37 +1,35 @@
|
|
|
1
1
|
/** @module Repos */
|
|
2
2
|
|
|
3
3
|
module.exports = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
gallery: {
|
|
16
|
-
extends: ['default'],
|
|
17
|
-
dir: './',
|
|
18
|
-
url:'https://github.com/interrupter/not-project-gallery.git',
|
|
19
|
-
clear: {
|
|
20
|
-
dirs: ['.git'],
|
|
21
|
-
files: ['.gitignore'],
|
|
4
|
+
default: {
|
|
5
|
+
url: "https://github.com/interrupter/not-project.git",
|
|
6
|
+
dir: "./",
|
|
7
|
+
clear: {
|
|
8
|
+
dirs: [".git"],
|
|
9
|
+
files: ["package-lock.json"],
|
|
10
|
+
},
|
|
11
|
+
exec: {
|
|
12
|
+
after: ["init.sh"],
|
|
13
|
+
},
|
|
22
14
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
gallery: {
|
|
16
|
+
extends: ["default"],
|
|
17
|
+
dir: "./",
|
|
18
|
+
url: "https://github.com/interrupter/not-project-gallery.git",
|
|
27
19
|
clear: {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
20
|
+
dirs: [".git"],
|
|
21
|
+
files: [".gitignore"],
|
|
22
|
+
},
|
|
23
|
+
use: [
|
|
24
|
+
{
|
|
25
|
+
url: "https://github.com/interrupter/not-store.git",
|
|
26
|
+
dir: "server/app/modules",
|
|
27
|
+
clear: {
|
|
28
|
+
dirs: [".git"],
|
|
29
|
+
files: [".gitignore"],
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
npm: ["not-store"],
|
|
34
|
+
},
|
|
37
35
|
};
|
package/src/rollup.js
CHANGED
|
@@ -1,79 +1,89 @@
|
|
|
1
1
|
/** @module Rollup */
|
|
2
2
|
|
|
3
3
|
// Rollup plugins
|
|
4
|
-
import babel from
|
|
5
|
-
import eslint from
|
|
6
|
-
import commonjs from
|
|
7
|
-
import resolve from
|
|
8
|
-
import replace from
|
|
9
|
-
import uglify from
|
|
10
|
-
import filesize from
|
|
11
|
-
import postcss from
|
|
4
|
+
import babel from "rollup-plugin-babel";
|
|
5
|
+
import eslint from "rollup-plugin-eslint";
|
|
6
|
+
import commonjs from "rollup-plugin-commonjs";
|
|
7
|
+
import resolve from "rollup-plugin-node-resolve";
|
|
8
|
+
import replace from "rollup-plugin-replace";
|
|
9
|
+
import uglify from "rollup-plugin-uglify";
|
|
10
|
+
import filesize from "rollup-plugin-filesize";
|
|
11
|
+
import postcss from "rollup-plugin-postcss";
|
|
12
12
|
|
|
13
13
|
// PostCSS plugins
|
|
14
|
-
import simplevars from
|
|
15
|
-
import nested from
|
|
16
|
-
import cssnext from
|
|
17
|
-
import envReplace from
|
|
18
|
-
import cssnano from
|
|
14
|
+
import simplevars from "postcss-simple-vars";
|
|
15
|
+
import nested from "postcss-nested";
|
|
16
|
+
import cssnext from "postcss-cssnext";
|
|
17
|
+
import envReplace from "postcss-env-replace";
|
|
18
|
+
import cssnano from "cssnano";
|
|
19
19
|
|
|
20
20
|
let replacerOpts = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
ENV: JSON.stringify(process.env.NODE_ENV || "development"),
|
|
22
|
+
},
|
|
23
|
+
baseHost =
|
|
24
|
+
replacerOpts.ROLLUP_ENV_PORT +
|
|
25
|
+
"://" +
|
|
26
|
+
replacerOpts.ROLLUP_ENV_HOST +
|
|
27
|
+
":" +
|
|
28
|
+
replacerOpts.ROLLUP_ENV_PORT +
|
|
29
|
+
"/editor";
|
|
24
30
|
|
|
25
|
-
if ([
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
if (["production", "stage", "develpment"].indexOf(process.env.NODE_ENV) > -1) {
|
|
32
|
+
replacerOpts = Object.assign(
|
|
33
|
+
replacerOpts,
|
|
34
|
+
replaceSets[process.env.NODE_ENV]
|
|
35
|
+
);
|
|
36
|
+
} else {
|
|
37
|
+
replacerOpts = Object.assign(replacerOpts, replaceSets.development);
|
|
29
38
|
}
|
|
30
39
|
|
|
31
40
|
export default {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
input: "src/client/app.js",
|
|
42
|
+
output: {
|
|
43
|
+
file: "build/client/core.js",
|
|
44
|
+
format: "iife",
|
|
45
|
+
},
|
|
46
|
+
name: "Project",
|
|
47
|
+
sourceMap:
|
|
48
|
+
false && (process.env.NODE_ENV === "production" ? false : "inline"),
|
|
49
|
+
plugins: [
|
|
50
|
+
postcss({
|
|
51
|
+
plugins: [
|
|
52
|
+
envReplace({
|
|
53
|
+
environment: process.env.NODE_ENV || "development",
|
|
54
|
+
replacements: {
|
|
55
|
+
BASE_URL: {
|
|
56
|
+
stage: baseHost,
|
|
57
|
+
production: baseHost,
|
|
58
|
+
development: baseHost,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
}),
|
|
62
|
+
simplevars(),
|
|
63
|
+
nested(),
|
|
64
|
+
cssnext({
|
|
65
|
+
warnForDuplicates: false,
|
|
66
|
+
}),
|
|
67
|
+
cssnano(),
|
|
68
|
+
],
|
|
69
|
+
extensions: [".css"],
|
|
51
70
|
}),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
71
|
+
resolve({
|
|
72
|
+
jsnext: true,
|
|
73
|
+
main: true,
|
|
74
|
+
browser: true,
|
|
56
75
|
}),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}),
|
|
72
|
-
replace(replacerOpts),
|
|
73
|
-
(process.env.NODE_ENV === 'production' && babel({
|
|
74
|
-
exclude: ['build/**']
|
|
75
|
-
})),
|
|
76
|
-
(process.env.NODE_ENV === 'production' && uglify()),
|
|
77
|
-
filesize()
|
|
78
|
-
]
|
|
76
|
+
commonjs(),
|
|
77
|
+
eslint({
|
|
78
|
+
exclude: ["build/**", "src/css/**"],
|
|
79
|
+
rules: { "useless-escape": "off" },
|
|
80
|
+
}),
|
|
81
|
+
replace(replacerOpts),
|
|
82
|
+
process.env.NODE_ENV === "production" &&
|
|
83
|
+
babel({
|
|
84
|
+
exclude: ["build/**"],
|
|
85
|
+
}),
|
|
86
|
+
process.env.NODE_ENV === "production" && uglify(),
|
|
87
|
+
filesize(),
|
|
88
|
+
],
|
|
79
89
|
};
|