not-node 4.0.20 → 5.0.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.
Files changed (73) hide show
  1. package/.eslintrc.json +2 -7
  2. package/.github/workflows/codesee-arch-diagram.yml +81 -0
  3. package/.idea/codeStyles/Project.xml +16 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  6. package/.idea/modules.xml +8 -0
  7. package/.idea/project.iml +12 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.idea/workspace.xml +24 -0
  10. package/package.json +20 -20
  11. package/src/app.js +2 -2
  12. package/src/common.js +7 -3
  13. package/src/core/config.json +2 -16
  14. package/src/core/fields/ID.js +2 -2
  15. package/src/core/fields/__closed.js +5 -0
  16. package/src/core/fields/__latest.js +5 -0
  17. package/src/core/fields/__version.js +5 -0
  18. package/src/core/fields/__versions.js +5 -0
  19. package/src/core/fields/active.js +1 -1
  20. package/src/core/fields/codeName.js +2 -2
  21. package/src/core/fields/createdAt.js +2 -2
  22. package/src/core/fields/default.js +1 -1
  23. package/src/core/fields/description.js +2 -2
  24. package/src/core/fields/email.js +11 -0
  25. package/src/core/fields/enabled.js +1 -1
  26. package/src/core/fields/expiredAt.js +2 -2
  27. package/src/core/fields/height.js +2 -2
  28. package/src/core/fields/ip.js +2 -2
  29. package/src/core/fields/objectId.js +13 -0
  30. package/src/core/fields/owner.js +4 -1
  31. package/src/core/fields/ownerModel.js +3 -0
  32. package/src/core/fields/price.js +2 -2
  33. package/src/core/fields/session.js +2 -2
  34. package/src/core/fields/size.js +2 -2
  35. package/src/core/fields/telephone.js +11 -0
  36. package/src/core/fields/title.js +2 -2
  37. package/src/core/fields/updatedAt.js +2 -2
  38. package/src/core/fields/userId.js +2 -2
  39. package/src/core/fields/uuid.js +2 -2
  40. package/src/core/fields/validators/email.js +4 -0
  41. package/src/core/fields/validators/owner.js +4 -0
  42. package/src/core/fields/width.js +2 -2
  43. package/src/core/index.js +6 -0
  44. package/src/core/locales/en.json +6 -0
  45. package/src/core/locales/ru.json +6 -0
  46. package/src/domain.js +71 -48
  47. package/src/fields/.old.js +193 -0
  48. package/src/fields/index.js +114 -100
  49. package/src/form/form.js +138 -35
  50. package/src/init/app.js +8 -1
  51. package/src/init/db/ioredis.js +0 -1
  52. package/src/init/index.js +4 -3
  53. package/src/init/layers/fields.js +7 -0
  54. package/src/init/layers/forms.js +0 -0
  55. package/src/init/layers/models.js +0 -0
  56. package/src/init/layers/routes.js +0 -0
  57. package/src/init/sequence.standart.js +3 -3
  58. package/src/manifest/batchRunner.js +33 -0
  59. package/src/manifest/initializator/forms.js +30 -0
  60. package/src/manifest/initializator/index.js +24 -0
  61. package/src/manifest/initializator/manifests.js +47 -0
  62. package/src/manifest/initializator/models.js +39 -0
  63. package/src/manifest/module.js +55 -29
  64. package/src/manifest/registrator/fields.js +17 -16
  65. package/src/manifest/registrator/forms.js +2 -2
  66. package/src/manifest/registrator/index.js +3 -27
  67. package/src/manifest/registrator/locales.js +1 -1
  68. package/src/manifest/registrator/logics.js +3 -3
  69. package/src/manifest/registrator/models.js +3 -3
  70. package/src/manifest/registrator/routes.js +1 -1
  71. package/src/model/enrich.js +4 -4
  72. package/src/model/proto.js +0 -1
  73. 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": [
@@ -0,0 +1,81 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - master
5
+ pull_request_target:
6
+ types: [opened, synchronize, reopened]
7
+
8
+ name: CodeSee Map
9
+
10
+ jobs:
11
+ test_map_action:
12
+ runs-on: ubuntu-latest
13
+ continue-on-error: true
14
+ name: Run CodeSee Map Analysis
15
+ steps:
16
+ - name: checkout
17
+ id: checkout
18
+ uses: actions/checkout@v2
19
+ with:
20
+ repository: ${{ github.event.pull_request.head.repo.full_name }}
21
+ ref: ${{ github.event.pull_request.head.ref }}
22
+ fetch-depth: 0
23
+
24
+ # codesee-detect-languages has an output with id languages.
25
+ - name: Detect Languages
26
+ id: detect-languages
27
+ uses: Codesee-io/codesee-detect-languages-action@latest
28
+
29
+ - name: Configure JDK 16
30
+ uses: actions/setup-java@v2
31
+ if: ${{ fromJSON(steps.detect-languages.outputs.languages).java }}
32
+ with:
33
+ java-version: '16'
34
+ distribution: 'zulu'
35
+
36
+ # CodeSee Maps Go support uses a static binary so there's no setup step required.
37
+
38
+ - name: Configure Node.js 14
39
+ uses: actions/setup-node@v2
40
+ if: ${{ fromJSON(steps.detect-languages.outputs.languages).javascript }}
41
+ with:
42
+ node-version: '14'
43
+
44
+ - name: Configure Python 3.x
45
+ uses: actions/setup-python@v2
46
+ if: ${{ fromJSON(steps.detect-languages.outputs.languages).python }}
47
+ with:
48
+ python-version: '3.x'
49
+ architecture: 'x64'
50
+
51
+ - name: Configure Ruby '3.x'
52
+ uses: ruby/setup-ruby@v1
53
+ if: ${{ fromJSON(steps.detect-languages.outputs.languages).ruby }}
54
+ with:
55
+ ruby-version: '3.0'
56
+
57
+ # CodeSee Maps Rust support uses a static binary so there's no setup step required.
58
+
59
+ - name: Generate Map
60
+ id: generate-map
61
+ uses: Codesee-io/codesee-map-action@latest
62
+ with:
63
+ step: map
64
+ github_ref: ${{ github.ref }}
65
+ languages: ${{ steps.detect-languages.outputs.languages }}
66
+
67
+ - name: Upload Map
68
+ id: upload-map
69
+ uses: Codesee-io/codesee-map-action@latest
70
+ with:
71
+ step: mapUpload
72
+ api_token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }}
73
+ github_ref: ${{ github.ref }}
74
+
75
+ - name: Insights
76
+ id: insights
77
+ uses: Codesee-io/codesee-map-action@latest
78
+ with:
79
+ step: insights
80
+ api_token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }}
81
+ github_ref: ${{ github.ref }}
@@ -0,0 +1,16 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <code_scheme name="Project" version="173">
3
+ <JSCodeStyleSettings version="0">
4
+ <option name="FORCE_SEMICOLON_STYLE" value="true" />
5
+ </JSCodeStyleSettings>
6
+ <codeStyleSettings language="JavaScript">
7
+ <option name="INDENT_CASE_FROM_SWITCH" value="false" />
8
+ <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
9
+ <option name="ALIGN_MULTILINE_FOR" value="false" />
10
+ <indentOptions>
11
+ <option name="INDENT_SIZE" value="2" />
12
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
13
+ </indentOptions>
14
+ </codeStyleSettings>
15
+ </code_scheme>
16
+ </component>
@@ -0,0 +1,5 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <state>
3
+ <option name="USE_PER_PROJECT_SETTINGS" value="true" />
4
+ </state>
5
+ </component>
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ </profile>
6
+ </component>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/project.iml" filepath="$PROJECT_DIR$/.idea/project.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ </content>
9
+ <orderEntry type="inheritedJdk" />
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ </module>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="74929b6a-6f9b-4d33-bcd5-317dea0a2db1" name="Changes" comment="" />
5
+ <option name="SHOW_DIALOG" value="false" />
6
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
7
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
8
+ <option name="LAST_RESOLUTION" value="IGNORE" />
9
+ </component>
10
+ <component name="Git.Settings">
11
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
12
+ </component>
13
+ <component name="ProjectId" id="22q8JXHHJZy9UWkJAROmOSSPtVz" />
14
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
15
+ <component name="PropertiesComponent">
16
+ <property name="node.js.detected.package.eslint" value="true" />
17
+ <property name="node.js.selected.package.eslint" value="(autodetect)" />
18
+ <property name="vue.rearranger.settings.migration" value="true" />
19
+ </component>
20
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
21
+ <component name="TypeScriptGeneratedFilesManager">
22
+ <option name="version" value="3" />
23
+ </component>
24
+ </project>
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "not-node",
3
- "version": "4.0.20",
3
+ "version": "5.0.2",
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,60 +33,60 @@
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.20.0",
37
37
  "compression": "^1.7.4",
38
38
  "connect-mongodb-session": "^3.1.1",
39
- "connect-redis": "^6.0.0",
39
+ "connect-redis": "^6.1.3",
40
40
  "cors": "^2.8.5",
41
41
  "deep-diff": "*",
42
42
  "deepmerge": "^4.2.2",
43
43
  "ejs": "^3.1.6",
44
44
  "escape-string-regexp": "*",
45
- "express": "^4.17.1",
46
- "express-fileupload": "^1.2.1",
45
+ "express": "^4.17.3",
46
+ "express-fileupload": "^1.3.1",
47
47
  "express-session": "^1.17.2",
48
48
  "fs-extra": "*",
49
- "helmet": "^4.6.0",
49
+ "helmet": "^5.0.2",
50
50
  "lower-case": "*",
51
51
  "method-override": "^3.0.0",
52
52
  "mock-require": "^3.0.3",
53
53
  "mongoose": "*",
54
54
  "mongoose-validator": "*",
55
55
  "nconf": "*",
56
- "not-config": "^0.1.4",
57
- "not-error": "^0.2.1",
56
+ "not-config": "^0.1.5",
57
+ "not-error": "^0.2.5",
58
58
  "not-filter": "*",
59
- "not-inform": "^0.0.27",
59
+ "not-inform": "^0.0.28",
60
60
  "not-locale": "*",
61
61
  "not-log": "^0.0.20",
62
62
  "not-monitor": "^0.0.13",
63
63
  "not-path": "*",
64
+ "not-validation": "^0.0.7",
64
65
  "rate-limiter-flexible": "^2.3.6",
65
- "redis": "^4.0.0",
66
+ "redis": "^4.0.6",
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.12.0",
78
79
  "eslint-plugin-node": "^11.1.0",
79
- "eslint-plugin-promise": "^5.2.0",
80
- "eslint-plugin-sonarjs": "^0.11.0",
80
+ "eslint-plugin-sonarjs": "^0.13.0",
81
81
  "ink-docstrap": "^1.3.2",
82
- "ioredis": "^4.28.2",
83
- "jsdoc": "^3.6.7",
82
+ "ioredis": "^5.0.3",
83
+ "jsdoc": "^3.6.10",
84
84
  "mocha": "*",
85
85
  "mocha-suppress-logs": "^0.3.1",
86
- "mongodb-memory-server": "^8.0.4",
86
+ "mongodb-memory-server": "^8.4.2",
87
87
  "npm-run-all": "^4.1.5",
88
88
  "nyc": "^15.1.0",
89
- "retire": "^3.0.3"
89
+ "retire": "^3.0.6"
90
90
  },
91
91
  "homepage": "https://github.com/interrupter/not-node#readme",
92
92
  "nyc": {
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
  }
package/src/common.js CHANGED
@@ -80,7 +80,11 @@ module.exports.getTodayDate = () => {
80
80
  * @param {string} name field name
81
81
  * @return {boolean} if object contains field with name
82
82
  **/
83
- const objHas = (obj, name) => Object.prototype.hasOwnProperty.call(obj, name);
83
+ const objHas = (obj, name) => {
84
+ if(typeof obj === 'undefined') return false;
85
+ if(obj === null) return false;
86
+ return Object.prototype.hasOwnProperty.call(obj, name);
87
+ };
84
88
  module.exports.objHas = objHas;
85
89
 
86
90
 
@@ -183,11 +187,11 @@ module.exports.tryFile = (filePath) => {
183
187
  * Generates paths object for module/index.js files based on content and relative
184
188
  * path
185
189
  * @param {Array<string>} content list of module components ['models', 'logics', 'routes',...]
186
- * @param {string} relative relative path to parent folder of components
190
+ * @param {string} relative path to parent folder of components
187
191
  * @param {Object} paths object for module/index.js
188
192
  **/
189
193
  module.exports.generatePaths = (content = [], relative = 'src') => {
190
- const toPath = (name) => path.join(__dirname, relative, name);
194
+ const toPath = (name) => path.join(relative, name);
191
195
  return content.reduce((prev, cur) => {
192
196
  prev[cur] = toPath(cur);
193
197
  return prev;
@@ -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,
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ ui: {
3
+ component: 'UIEmail',
4
+ placeholder: 'not-node:field_email_placeholder',
5
+ label: 'not-node:field_email_label'
6
+ },
7
+ model: {
8
+ type: String,
9
+ required: true
10
+ }
11
+ };
@@ -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
+ };
@@ -5,8 +5,11 @@ module.exports = {
5
5
  refPath: 'ownerModel',
6
6
  required: false,
7
7
  safe: {
8
- update: ['@owner', 'root', 'admin'],
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,
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ ui: {
3
+ component: 'UITelephone',
4
+ placeholder: 'not-node:field_telephone_placeholder',
5
+ label: 'not-node:field_telephone_label'
6
+ },
7
+ model: {
8
+ type: String,
9
+ required: true
10
+ }
11
+ };
@@ -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: {