not-node 4.0.21 → 5.0.1

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 (59) hide show
  1. package/.eslintrc.json +2 -7
  2. package/package.json +9 -9
  3. package/src/app.js +2 -2
  4. package/src/core/config.json +2 -16
  5. package/src/core/fields/ID.js +2 -2
  6. package/src/core/fields/__closed.js +5 -0
  7. package/src/core/fields/__latest.js +5 -0
  8. package/src/core/fields/__version.js +5 -0
  9. package/src/core/fields/__versions.js +5 -0
  10. package/src/core/fields/active.js +1 -1
  11. package/src/core/fields/codeName.js +2 -2
  12. package/src/core/fields/createdAt.js +2 -2
  13. package/src/core/fields/default.js +1 -1
  14. package/src/core/fields/description.js +2 -2
  15. package/src/core/fields/enabled.js +1 -1
  16. package/src/core/fields/expiredAt.js +2 -2
  17. package/src/core/fields/height.js +2 -2
  18. package/src/core/fields/ip.js +2 -2
  19. package/src/core/fields/objectId.js +13 -0
  20. package/src/core/fields/owner.js +3 -0
  21. package/src/core/fields/ownerModel.js +3 -0
  22. package/src/core/fields/price.js +2 -2
  23. package/src/core/fields/session.js +2 -2
  24. package/src/core/fields/size.js +2 -2
  25. package/src/core/fields/title.js +2 -2
  26. package/src/core/fields/updatedAt.js +2 -2
  27. package/src/core/fields/userId.js +2 -2
  28. package/src/core/fields/uuid.js +2 -2
  29. package/src/core/fields/validators/owner.js +1 -1
  30. package/src/core/fields/width.js +2 -2
  31. package/src/core/index.js +6 -0
  32. package/src/domain.js +71 -48
  33. package/src/fields/.old.js +193 -0
  34. package/src/fields/index.js +106 -92
  35. package/src/form/form.js +138 -35
  36. package/src/init/app.js +8 -1
  37. package/src/init/db/ioredis.js +0 -1
  38. package/src/init/index.js +1 -1
  39. package/src/init/layers/fields.js +7 -0
  40. package/src/init/layers/forms.js +0 -0
  41. package/src/init/layers/models.js +0 -0
  42. package/src/init/layers/routes.js +0 -0
  43. package/src/init/sequence.standart.js +3 -3
  44. package/src/manifest/batchRunner.js +33 -0
  45. package/src/manifest/initializator/forms.js +30 -0
  46. package/src/manifest/initializator/index.js +24 -0
  47. package/src/manifest/initializator/manifests.js +47 -0
  48. package/src/manifest/initializator/models.js +39 -0
  49. package/src/manifest/module.js +55 -29
  50. package/src/manifest/registrator/fields.js +17 -16
  51. package/src/manifest/registrator/forms.js +2 -2
  52. package/src/manifest/registrator/index.js +3 -27
  53. package/src/manifest/registrator/locales.js +1 -1
  54. package/src/manifest/registrator/logics.js +3 -3
  55. package/src/manifest/registrator/models.js +3 -3
  56. package/src/manifest/registrator/routes.js +1 -1
  57. package/src/model/enrich.js +4 -4
  58. package/src/model/proto.js +0 -1
  59. package/test/notApp.js +2 -2
package/.eslintrc.json CHANGED
@@ -1,5 +1,4 @@
1
1
  {
2
- "parser": "@babel/eslint-parser",
3
2
  "parserOptions": {
4
3
  "requireConfigFile": false,
5
4
  "sourceType": "module",
@@ -7,7 +6,7 @@
7
6
  "ecmaFeatures": {
8
7
  "globalReturn": false
9
8
  },
10
- "ecmaVersion": 2020
9
+ "ecmaVersion": "latest"
11
10
  },
12
11
  "env": {
13
12
  "es6": true,
@@ -18,10 +17,8 @@
18
17
  "extends": [
19
18
  "eslint:recommended",
20
19
  "plugin:node/recommended",
21
- "plugin:sonarjs/recommended",
22
- "plugin:promise/recommended"
20
+ "plugin:sonarjs/recommended"
23
21
  ],
24
- "plugins": ["promise"],
25
22
  "rules": {
26
23
  "node/exports-style": ["error", "module.exports"],
27
24
  "node/file-extension-in-import": ["error", "always"],
@@ -30,8 +27,6 @@
30
27
  "node/prefer-global/process": ["error", "always"],
31
28
  "node/prefer-global/url-search-params": ["error", "always"],
32
29
  "node/prefer-global/url": ["error", "always"],
33
- "node/prefer-promises/dns": "error",
34
- "node/prefer-promises/fs": "error",
35
30
  "node/no-unpublished-require": "warn",
36
31
  "indent": ["error", 2],
37
32
  "linebreak-style": [
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "not-node",
3
- "version": "4.0.21",
3
+ "version": "5.0.1",
4
4
  "description": "node complimentary part for client side notFramework.",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "test": "./node_modules/.bin/mocha --require mocha-suppress-logs --reporter spec --timeout 12000",
8
- "lint": "./node_modules/.bin/eslint ./src/**/**/**/**.js --fix",
9
- "pretest": "./node_modules/.bin/eslint ./src/**/**/**/**.js",
8
+ "lint": "./node_modules/.bin/eslint ./src --fix",
9
+ "pretest": "./node_modules/.bin/eslint ./src",
10
10
  "docs": "./node_modules/.bin/jsdoc -c jsdoc.json",
11
11
  "js-watch": "watch 'npm run cover' ./src ./test --interval=5",
12
12
  "watch:build:cover:dev": "npm-run-all --parallel js-watch",
@@ -33,7 +33,7 @@
33
33
  "url": "https://github.com/interrupter/not-node/issues"
34
34
  },
35
35
  "dependencies": {
36
- "body-parser": "^1.19.0",
36
+ "body-parser": "^1.19.1",
37
37
  "compression": "^1.7.4",
38
38
  "connect-mongodb-session": "^3.1.1",
39
39
  "connect-redis": "^6.0.0",
@@ -42,7 +42,7 @@
42
42
  "deepmerge": "^4.2.2",
43
43
  "ejs": "^3.1.6",
44
44
  "escape-string-regexp": "*",
45
- "express": "^4.17.1",
45
+ "express": "^4.17.2",
46
46
  "express-fileupload": "^1.2.1",
47
47
  "express-session": "^1.17.2",
48
48
  "fs-extra": "*",
@@ -61,22 +61,22 @@
61
61
  "not-log": "^0.0.20",
62
62
  "not-monitor": "^0.0.13",
63
63
  "not-path": "*",
64
+ "not-validation": "^0.0.1",
64
65
  "rate-limiter-flexible": "^2.3.6",
65
- "redis": "^4.0.0",
66
+ "redis": "^4.0.1",
66
67
  "rfdc": "^1.3.0",
67
68
  "rmdir": "^1.2.0",
68
69
  "serve-static": "*",
69
70
  "simple-git": "*",
71
+ "validator": "*",
70
72
  "yargs": "*"
71
73
  },
72
74
  "devDependencies": {
73
- "@babel/eslint-parser": "^7.16.3",
74
75
  "babel-eslint": "^10.1.0",
75
76
  "chai": "*",
76
77
  "chai-as-promised": "*",
77
- "eslint": "^7.0.0",
78
+ "eslint": "^8.4.1",
78
79
  "eslint-plugin-node": "^11.1.0",
79
- "eslint-plugin-promise": "^5.2.0",
80
80
  "eslint-plugin-sonarjs": "^0.11.0",
81
81
  "ink-docstrap": "^1.3.2",
82
82
  "ioredis": "^4.28.2",
package/src/app.js CHANGED
@@ -61,8 +61,8 @@ class notApp extends notDomain {
61
61
  **/
62
62
  collectManifest(creds){
63
63
  let manifest = {};
64
- for (let modName of Object.keys(this.modules)) {
65
- manifest = merge(manifest, this.modules[modName].getManifest(creds));
64
+ for (let modName of this.getModulesNames()) {
65
+ manifest = merge(manifest, this.getModule(modName).getManifest(creds));
66
66
  }
67
67
  return manifest;
68
68
  }
@@ -54,8 +54,6 @@
54
54
  },
55
55
  "lang": {},
56
56
  "modules": {
57
- "options": {},
58
- "informer": {},
59
57
  "filter": {
60
58
  "size": 15,
61
59
  "default": {
@@ -73,25 +71,13 @@
73
71
  }
74
72
  },
75
73
  "middleware": {
76
- "not-user": {},
77
- "not-locale": {},
78
- "not-options": {}
74
+ "not-locale": {}
79
75
  },
80
76
  "importModulesFromNPM": [
81
- "not-user",
82
- "not-notification",
83
- "not-inform",
84
77
  "not-locale",
85
- "not-inform-rule-tag",
86
- "not-inform-sink-email",
87
- "not-inform-sink-notification",
88
- "not-inform-sink-ws",
89
78
  "not-dbdump",
90
79
  "not-ws",
91
- "not-options",
92
80
  "not-filter",
93
- "not-one-time-code",
94
- "not-error",
95
- "not-key"
81
+ "not-error"
96
82
  ]
97
83
  }
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui: {
3
3
  component: 'UITextfield',
4
- placeholder: 'core:field_ID_placeholder',
5
- label: 'core:field_ID_label',
4
+ placeholder: 'not-node:field_ID_placeholder',
5
+ label: 'not-node:field_ID_label',
6
6
  readonly: true
7
7
  }
8
8
  };
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ ui:{
3
+ component: 'UIHidden'
4
+ }
5
+ };
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ ui:{
3
+ component: 'UIHidden'
4
+ }
5
+ };
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ ui:{
3
+ component: 'UIHidden'
4
+ }
5
+ };
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ ui:{
3
+ component: 'UIHidden'
4
+ }
5
+ };
@@ -1,7 +1,7 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UISwitch',
4
- label: 'core:field_active_label'
4
+ label: 'not-node:field_active_label'
5
5
  },
6
6
  model:{
7
7
  type: Boolean,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui: {
3
3
  component: 'UITextfield',
4
- placeholder: 'core:field_codeName_placeholder',
5
- label: 'core:field_codeName_label'
4
+ placeholder: 'not-node:field_codeName_placeholder',
5
+ label: 'not-node:field_codeName_label'
6
6
  },
7
7
  model: {
8
8
  type: String,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- label: 'core:field_createdAt_label',
5
- placeholder: "core:field_createdAt_placeholder",
4
+ label: 'not-node:field_createdAt_label',
5
+ placeholder: "not-node:field_createdAt_placeholder",
6
6
  readonly: true
7
7
  },
8
8
  model: {
@@ -1,7 +1,7 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UISwitch',
4
- label: 'core:field_default_label'
4
+ label: 'not-node:field_default_label'
5
5
  },
6
6
  model:{
7
7
  type: Boolean,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextarea',
4
- placeholder: 'core:field_description_placeholder',
5
- label: 'core:field_description_label'
4
+ placeholder: 'not-node:field_description_placeholder',
5
+ label: 'not-node:field_description_label'
6
6
  },
7
7
  model:{
8
8
  type: String,
@@ -1,7 +1,7 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UISwitch',
4
- label: 'core:field_enabled_label'
4
+ label: 'not-node:field_enabled_label'
5
5
  },
6
6
  model:{
7
7
  type: Boolean,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- label: 'core:field_expiredAt_label',
5
- placeholder: 'core:field_expiredAt_placeholder',
4
+ label: 'not-node:field_expiredAt_label',
5
+ placeholder: 'not-node:field_expiredAt_placeholder',
6
6
  readonly: true
7
7
  },
8
8
  model:{
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- label: 'core:field_height_label',
5
- placeholder: 'core:field_height_placeholder'
4
+ label: 'not-node:field_height_label',
5
+ placeholder: 'not-node:field_height_placeholder'
6
6
  },
7
7
  model:{
8
8
  type: Number,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- label: 'core:field_IP_label',
5
- placeholder: 'core:field_IP_placeholder'
4
+ label: 'not-node:field_IP_label',
5
+ placeholder: 'not-node:field_IP_placeholder'
6
6
  },
7
7
  model:{
8
8
  type: String,
@@ -0,0 +1,13 @@
1
+ const ObjectId = require('mongoose').Schema.Types.ObjectId;
2
+
3
+ module.exports = {
4
+ model: {
5
+ type: ObjectId,
6
+ required: true,
7
+ default: {},
8
+ safe: {
9
+ update: ['@owner', 'root', 'admin'],
10
+ read: ['@owner', 'root', 'admin']
11
+ }
12
+ }
13
+ };
@@ -8,5 +8,8 @@ module.exports = {
8
8
  update: ['root', 'admin'],
9
9
  read: ['@owner', 'root', 'admin']
10
10
  }
11
+ },
12
+ ui:{
13
+ component: 'UIHidden'
11
14
  }
12
15
  };
@@ -6,5 +6,8 @@ module.exports = {
6
6
  update: ['@owner', 'root', 'admin'],
7
7
  read: ['@owner', 'root', 'admin']
8
8
  }
9
+ },
10
+ ui:{
11
+ component: 'UIHidden'
9
12
  }
10
13
  };
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- placeholder: 'core:field_price_placeholder',
5
- label: 'core:field_price_label'
4
+ placeholder: 'not-node:field_price_placeholder',
5
+ label: 'not-node:field_price_label'
6
6
  },
7
7
  model:{
8
8
  type: Number,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- label: 'core:field_session_label',
5
- placeholder: 'core:field_session_placeholder'
4
+ label: 'not-node:field_session_label',
5
+ placeholder: 'not-node:field_session_placeholder'
6
6
  },
7
7
  model:{
8
8
  type: String,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- label: 'core:field_size_label',
5
- placeholder: 'core:field_size_placeholder'
4
+ label: 'not-node:field_size_label',
5
+ placeholder: 'not-node:field_size_placeholder'
6
6
  },
7
7
  model:{
8
8
  type: Number,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui: {
3
3
  component: 'UITextfield',
4
- label: 'core:field_title_label',
5
- placeholder: 'core:field_title_placeholder',
4
+ label: 'not-node:field_title_label',
5
+ placeholder: 'not-node:field_title_placeholder',
6
6
  },
7
7
  model: {
8
8
  type: String,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- label: 'core:field_updatedAt_label',
5
- placeholder: 'core:field_updatedAt_placeholder',
4
+ label: 'not-node:field_updatedAt_label',
5
+ placeholder: 'not-node:field_updatedAt_placeholder',
6
6
  readonly: true
7
7
  },
8
8
  model: {
@@ -4,8 +4,8 @@ const Schema = require('mongoose').Schema;
4
4
  module.exports = {
5
5
  ui:{
6
6
  component: 'UITextfield',
7
- label: 'core:field_userId_label',
8
- placeholder: 'core:field_userId_placeholder'
7
+ label: 'not-node:field_userId_label',
8
+ placeholder: 'not-node:field_userId_placeholder'
9
9
  },
10
10
  model: {
11
11
  type: Schema.Types.ObjectId,
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui: {
3
3
  component: 'UITextfield',
4
- placeholder: 'core:field_UUID_placeholder',
5
- label: 'core:field_UUID_label',
4
+ placeholder: 'not-node:field_UUID_placeholder',
5
+ label: 'not-node:field_UUID_label',
6
6
  readonly: true
7
7
  },
8
8
  model:{
@@ -1,4 +1,4 @@
1
1
  module.exports = [{
2
2
  validator: 'isMongoId',
3
- message: 'owner_is_not_valid'
3
+ message: 'not-node:owner_is_not_valid'
4
4
  }];
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  ui:{
3
3
  component: 'UITextfield',
4
- placeholder: 'core:field_width_placeholder',
5
- label: 'core:field_width_label'
4
+ placeholder: 'not-node:field_width_placeholder',
5
+ label: 'not-node:field_width_label'
6
6
  },
7
7
  model:{
8
8
  type: Number,
@@ -0,0 +1,6 @@
1
+ const {generatePaths} = require('../common');
2
+
3
+ module.exports = {
4
+ name: 'not-node',
5
+ paths: generatePaths(['fields', 'locales'], __dirname)
6
+ };