@giteeteam/apps-manifest 0.4.1 → 0.5.0

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.
@@ -19,6 +19,9 @@
19
19
  },
20
20
  "dependVersion": {
21
21
  "$ref": "dependVersion.json"
22
+ },
23
+ "storage": {
24
+ "$ref": "storage.json"
22
25
  }
23
26
  },
24
27
  "required": [
@@ -0,0 +1,61 @@
1
+ {
2
+ "$id": "http://proxima.com/schemas/storage.json",
3
+ "type": "object",
4
+ "properties": {
5
+ "entities": {
6
+ "minItems": 1,
7
+ "uniqueItems": true,
8
+ "uniqueItemProperties": [
9
+ "name"
10
+ ],
11
+ "type": "array",
12
+ "items": {
13
+ "type": "object",
14
+ "properties": {
15
+ "name": {
16
+ "type": "string"
17
+ },
18
+ "attributes": {
19
+ "type": "object",
20
+ "minProperties": 1,
21
+ "patternProperties": {
22
+ "(^_([a-zA-Z0-9]_?)*$)|(^[a-zA-Z](_?[a-zA-Z0-9])*_?$)": {
23
+ "type": "object",
24
+ "anyOf": [
25
+ {
26
+ "type": "object",
27
+ "additionalProperties": true,
28
+ "properties": {
29
+ "type": {
30
+ "type": "string",
31
+ "enum": [
32
+ "String",
33
+ "Boolean",
34
+ "Date",
35
+ "Number"
36
+ ]
37
+ },
38
+ "required": {
39
+ "type": "boolean"
40
+ }
41
+ }
42
+ }
43
+ ],
44
+ "required": [
45
+ "type"
46
+ ]
47
+ }
48
+ }
49
+ }
50
+ },
51
+ "required": [
52
+ "name",
53
+ "attributes"
54
+ ]
55
+ }
56
+ }
57
+ },
58
+ "required": [
59
+ "entities"
60
+ ]
61
+ }
package/lib/types.d.ts CHANGED
@@ -71,6 +71,17 @@ export type TManifestLocalesItem = Record<string, string>;
71
71
  export type TManifestLocalesItems = Record<string, TManifestLocalesItem>;
72
72
  export type TManifestLocales = Record<TManifestLanguage, TManifestLocalesItems>;
73
73
  export type TDependVersion = Record<TDependProduct, string[]>;
74
+ export type TStorageAttributeType = 'String' | 'Number' | 'Date' | 'Boolean';
75
+ export interface IStorageAttribute {
76
+ type: TStorageAttributeType;
77
+ }
78
+ export interface IStorageEntity {
79
+ name: string;
80
+ attributes: Record<string, IStorageAttribute>;
81
+ }
82
+ export interface IStorage {
83
+ entities: IStorageEntity[];
84
+ }
74
85
  export interface IManifest {
75
86
  app: IManifestApp;
76
87
  modules: TManifestModules;
@@ -78,4 +89,5 @@ export interface IManifest {
78
89
  resources?: IManifestResource[];
79
90
  locales?: TManifestLocales;
80
91
  dependVersion?: TDependVersion;
92
+ storage?: IStorage;
81
93
  }
package/lib/validate.d.ts CHANGED
@@ -51,3 +51,10 @@ export declare const validateDependVersion: (json: IManifest) => {
51
51
  message: string | undefined;
52
52
  }[] | null;
53
53
  };
54
+ export declare const validateStorage: (json: IManifest) => {
55
+ pass: boolean | Promise<unknown> | undefined;
56
+ errors: {
57
+ path: string;
58
+ message: string | undefined;
59
+ }[] | null;
60
+ };
package/lib/validate.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateDependVersion = exports.validateLocales = exports.validateTables = exports.validateResources = exports.validateModules = exports.validateApp = exports.validateAll = void 0;
6
+ exports.validateStorage = exports.validateDependVersion = exports.validateLocales = exports.validateTables = exports.validateResources = exports.validateModules = exports.validateApp = exports.validateAll = void 0;
7
7
  const ajv_1 = __importDefault(require("ajv"));
8
8
  const ajv_keywords_1 = __importDefault(require("ajv-keywords"));
9
9
  const lodash_1 = require("lodash");
@@ -20,6 +20,7 @@ const resources_json_1 = __importDefault(require("./schema/resources.json"));
20
20
  const tables_json_1 = __importDefault(require("./schema/tables.json"));
21
21
  const locales_json_1 = __importDefault(require("./schema/locales.json"));
22
22
  const dependVersion_json_1 = __importDefault(require("./schema/dependVersion.json"));
23
+ const storage_json_1 = __importDefault(require("./schema/storage.json"));
23
24
  const validateResource = (json) => {
24
25
  const errors = [];
25
26
  const frontendModules = ['adminPage', 'itemPanel', 'itemActivity', 'appPage'];
@@ -95,6 +96,7 @@ const validateFactory = (schema) => {
95
96
  tables_json_1.default,
96
97
  locales_json_1.default,
97
98
  dependVersion_json_1.default,
99
+ storage_json_1.default,
98
100
  ],
99
101
  });
100
102
  (0, ajv_keywords_1.default)(ajv);
@@ -128,3 +130,4 @@ exports.validateResources = validateFactory('http://proxima.com/schemas/resource
128
130
  exports.validateTables = validateFactory('http://proxima.com/schemas/tables.json');
129
131
  exports.validateLocales = validateFactory('http://proxima.com/schemas/locales.json');
130
132
  exports.validateDependVersion = validateFactory('http://proxima.com/schemas/dependVersion.json');
133
+ exports.validateStorage = validateFactory('http://proxima.com/schemas/storage.json');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@giteeteam/apps-manifest",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "Giteeteam Apps Manifest",
5
5
  "keywords": [
6
6
  "typescript",
@@ -24,7 +24,6 @@
24
24
  "test": "jest --coverage",
25
25
  "dev": "tsc -w",
26
26
  "build": "rm -rf lib && tsc",
27
- "prepare": "pnpm build",
28
27
  "prepack": "pnpm build",
29
28
  "prepublish": "pnpm build"
30
29
  },
@@ -40,7 +39,8 @@
40
39
  "yaml": "^2.1.1"
41
40
  },
42
41
  "devDependencies": {
43
- "@types/lodash": "^4.14.191",
42
+ "typescript": "^4.8.3",
43
+ "@types/lodash": "^4.14.195",
44
44
  "jest": "^29.3.1"
45
45
  }
46
46
  }