@bedrockio/model 0.2.2 → 0.2.4
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/dist/cjs/validation.js +8 -7
- package/package.json +1 -1
- package/src/validation.js +7 -4
- package/types/load.d.ts +67 -1
- package/types/load.d.ts.map +1 -1
- package/types/schema.d.ts +15 -9
- package/types/schema.d.ts.map +1 -1
- package/types/testing.d.ts +1 -1
- package/types/testing.d.ts.map +1 -1
- package/types/validation.d.ts.map +1 -1
package/dist/cjs/validation.js
CHANGED
|
@@ -145,7 +145,8 @@ function applyValidation(schema, definition) {
|
|
|
145
145
|
});
|
|
146
146
|
schema.static('getBaseSchema', function getBaseSchema() {
|
|
147
147
|
return getSchemaFromMongoose(schema, {
|
|
148
|
-
stripDeleted: true
|
|
148
|
+
stripDeleted: true,
|
|
149
|
+
requireReadAccess: true
|
|
149
150
|
});
|
|
150
151
|
});
|
|
151
152
|
}
|
|
@@ -375,13 +376,13 @@ function isRequired(typedef, options) {
|
|
|
375
376
|
}
|
|
376
377
|
function isExcludedField(field, options) {
|
|
377
378
|
if ((0, _utils.isSchemaTypedef)(field)) {
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
return false;
|
|
379
|
+
if (options.requireWriteAccess) {
|
|
380
|
+
return field.writeAccess === 'none';
|
|
381
|
+
} else if (options.requireReadAccess) {
|
|
382
|
+
return field.readAccess === 'none' || field.readAccess === 'self';
|
|
383
|
+
}
|
|
384
384
|
}
|
|
385
|
+
return false;
|
|
385
386
|
}
|
|
386
387
|
function validateReadAccess(schema, allowed, options) {
|
|
387
388
|
return validateAccess('read', schema, allowed, options);
|
package/package.json
CHANGED
package/src/validation.js
CHANGED
|
@@ -163,6 +163,7 @@ export function applyValidation(schema, definition) {
|
|
|
163
163
|
schema.static('getBaseSchema', function getBaseSchema() {
|
|
164
164
|
return getSchemaFromMongoose(schema, {
|
|
165
165
|
stripDeleted: true,
|
|
166
|
+
requireReadAccess: true,
|
|
166
167
|
});
|
|
167
168
|
});
|
|
168
169
|
}
|
|
@@ -430,11 +431,13 @@ function isRequired(typedef, options) {
|
|
|
430
431
|
|
|
431
432
|
function isExcludedField(field, options) {
|
|
432
433
|
if (isSchemaTypedef(field)) {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
434
|
+
if (options.requireWriteAccess) {
|
|
435
|
+
return field.writeAccess === 'none';
|
|
436
|
+
} else if (options.requireReadAccess) {
|
|
437
|
+
return field.readAccess === 'none' || field.readAccess === 'self';
|
|
438
|
+
}
|
|
437
439
|
}
|
|
440
|
+
return false;
|
|
438
441
|
}
|
|
439
442
|
|
|
440
443
|
function validateReadAccess(schema, allowed, options) {
|
package/types/load.d.ts
CHANGED
|
@@ -4,7 +4,73 @@
|
|
|
4
4
|
* @param {string} name
|
|
5
5
|
* @returns mongoose.Model
|
|
6
6
|
*/
|
|
7
|
-
export function loadModel(definition: object, name: string): any
|
|
7
|
+
export function loadModel(definition: object, name: string): mongoose.Model<any, any, any, any, any, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, any, any, any, {
|
|
8
|
+
[x: string]: any;
|
|
9
|
+
}, {
|
|
10
|
+
autoIndex?: boolean;
|
|
11
|
+
autoCreate?: boolean;
|
|
12
|
+
bufferCommands?: boolean;
|
|
13
|
+
bufferTimeoutMS?: number;
|
|
14
|
+
capped?: number | boolean | {
|
|
15
|
+
size?: number;
|
|
16
|
+
max?: number;
|
|
17
|
+
autoIndexId?: boolean;
|
|
18
|
+
};
|
|
19
|
+
collation?: mongoose.mongo.CollationOptions;
|
|
20
|
+
collectionOptions?: mongoose.mongo.CreateCollectionOptions;
|
|
21
|
+
timeseries?: mongoose.mongo.TimeSeriesCollectionOptions;
|
|
22
|
+
expireAfterSeconds?: number;
|
|
23
|
+
expires?: string | number;
|
|
24
|
+
collection?: string;
|
|
25
|
+
discriminatorKey?: string;
|
|
26
|
+
excludeIndexes?: boolean;
|
|
27
|
+
id?: boolean;
|
|
28
|
+
_id?: boolean;
|
|
29
|
+
minimize?: boolean;
|
|
30
|
+
optimisticConcurrency?: boolean;
|
|
31
|
+
pluginTags?: string[];
|
|
32
|
+
read?: string;
|
|
33
|
+
writeConcern?: mongoose.mongo.WriteConcern;
|
|
34
|
+
safe?: boolean | {
|
|
35
|
+
w?: string | number;
|
|
36
|
+
wtimeout?: number;
|
|
37
|
+
j?: boolean;
|
|
38
|
+
};
|
|
39
|
+
shardKey?: Record<string, unknown>;
|
|
40
|
+
strict?: boolean | "throw";
|
|
41
|
+
strictQuery?: boolean | "throw";
|
|
42
|
+
toJSON: {
|
|
43
|
+
getters: boolean;
|
|
44
|
+
versionKey: boolean;
|
|
45
|
+
transform: (doc: any, ret: any, options: any) => void;
|
|
46
|
+
} | mongoose.ToObjectOptions<any>;
|
|
47
|
+
toObject: {
|
|
48
|
+
getters: boolean;
|
|
49
|
+
versionKey: boolean;
|
|
50
|
+
transform: (doc: any, ret: any, options: any) => void;
|
|
51
|
+
} | mongoose.ToObjectOptions<any>;
|
|
52
|
+
typeKey?: string;
|
|
53
|
+
validateBeforeSave?: boolean;
|
|
54
|
+
validateModifiedOnly?: boolean;
|
|
55
|
+
versionKey?: string | boolean;
|
|
56
|
+
selectPopulatedPaths?: boolean;
|
|
57
|
+
skipVersioning?: {
|
|
58
|
+
[key: string]: boolean;
|
|
59
|
+
};
|
|
60
|
+
storeSubdocValidationError?: boolean;
|
|
61
|
+
timestamps: boolean | mongoose.SchemaTimestampsConfig;
|
|
62
|
+
suppressReservedKeysWarning?: boolean;
|
|
63
|
+
statics?: {
|
|
64
|
+
[x: string]: any;
|
|
65
|
+
};
|
|
66
|
+
methods?: any;
|
|
67
|
+
query?: any;
|
|
68
|
+
castNonArrays?: boolean;
|
|
69
|
+
virtuals?: mongoose.SchemaOptionsVirtualsPropertyType<any, any, any>;
|
|
70
|
+
overwriteModels?: boolean;
|
|
71
|
+
}, any, any>> & {
|
|
72
|
+
[x: string]: any;
|
|
73
|
+
};
|
|
8
74
|
/**
|
|
9
75
|
* Loads all model definitions in the given directory.
|
|
10
76
|
* Returns the full loaded model set.
|
package/types/load.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,sCAJW,MAAM,QACN,MAAM
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,sCAJW,MAAM,QACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAahB;AAED;;;;GAIG;AACH,sCAFW,MAAM,mBAkBhB"}
|
package/types/schema.d.ts
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
* @param {mongoose.SchemaOptions} options
|
|
7
7
|
* @returns mongoose.Schema
|
|
8
8
|
*/
|
|
9
|
-
export function createSchema(definition: object, options?: mongoose.SchemaOptions): mongoose.Schema<any, mongoose.Model<any, any, any, any, any
|
|
9
|
+
export function createSchema(definition: object, options?: mongoose.SchemaOptions): mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, any, any, any, {
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
}, {
|
|
10
12
|
autoIndex?: boolean;
|
|
11
13
|
autoCreate?: boolean;
|
|
12
14
|
bufferCommands?: boolean;
|
|
@@ -16,8 +18,9 @@ export function createSchema(definition: object, options?: mongoose.SchemaOption
|
|
|
16
18
|
max?: number;
|
|
17
19
|
autoIndexId?: boolean;
|
|
18
20
|
};
|
|
19
|
-
collation?:
|
|
20
|
-
|
|
21
|
+
collation?: mongoose.mongo.CollationOptions;
|
|
22
|
+
collectionOptions?: mongoose.mongo.CreateCollectionOptions;
|
|
23
|
+
timeseries?: mongoose.mongo.TimeSeriesCollectionOptions;
|
|
21
24
|
expireAfterSeconds?: number;
|
|
22
25
|
expires?: string | number;
|
|
23
26
|
collection?: string;
|
|
@@ -29,7 +32,7 @@ export function createSchema(definition: object, options?: mongoose.SchemaOption
|
|
|
29
32
|
optimisticConcurrency?: boolean;
|
|
30
33
|
pluginTags?: string[];
|
|
31
34
|
read?: string;
|
|
32
|
-
writeConcern?:
|
|
35
|
+
writeConcern?: mongoose.mongo.WriteConcern;
|
|
33
36
|
safe?: boolean | {
|
|
34
37
|
w?: string | number;
|
|
35
38
|
wtimeout?: number;
|
|
@@ -42,14 +45,15 @@ export function createSchema(definition: object, options?: mongoose.SchemaOption
|
|
|
42
45
|
getters: boolean;
|
|
43
46
|
versionKey: boolean;
|
|
44
47
|
transform: (doc: any, ret: any, options: any) => void;
|
|
45
|
-
} | mongoose.ToObjectOptions
|
|
48
|
+
} | mongoose.ToObjectOptions<any>;
|
|
46
49
|
toObject: {
|
|
47
50
|
getters: boolean;
|
|
48
51
|
versionKey: boolean;
|
|
49
52
|
transform: (doc: any, ret: any, options: any) => void;
|
|
50
|
-
} | mongoose.ToObjectOptions
|
|
53
|
+
} | mongoose.ToObjectOptions<any>;
|
|
51
54
|
typeKey?: string;
|
|
52
55
|
validateBeforeSave?: boolean;
|
|
56
|
+
validateModifiedOnly?: boolean;
|
|
53
57
|
versionKey?: string | boolean;
|
|
54
58
|
selectPopulatedPaths?: boolean;
|
|
55
59
|
skipVersioning?: {
|
|
@@ -57,14 +61,16 @@ export function createSchema(definition: object, options?: mongoose.SchemaOption
|
|
|
57
61
|
};
|
|
58
62
|
storeSubdocValidationError?: boolean;
|
|
59
63
|
timestamps: boolean | mongoose.SchemaTimestampsConfig;
|
|
60
|
-
|
|
61
|
-
statics?:
|
|
64
|
+
suppressReservedKeysWarning?: boolean;
|
|
65
|
+
statics?: {
|
|
66
|
+
[x: string]: any;
|
|
67
|
+
};
|
|
62
68
|
methods?: any;
|
|
63
69
|
query?: any;
|
|
64
70
|
castNonArrays?: boolean;
|
|
65
71
|
virtuals?: mongoose.SchemaOptionsVirtualsPropertyType<any, any, any>;
|
|
66
72
|
overwriteModels?: boolean;
|
|
67
|
-
}, any>;
|
|
73
|
+
}, any, any>;
|
|
68
74
|
export function normalizeAttributes(arg: any, path?: any[]): any;
|
|
69
75
|
import mongoose from "mongoose";
|
|
70
76
|
//# sourceMappingURL=schema.d.ts.map
|
package/types/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.js"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AACH,yCAJW,MAAM,YACN,SAAS,aAAa
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.js"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AACH,yCAJW,MAAM,YACN,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAuChC;AAED,iEAsBC"}
|
package/types/testing.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* [Link](https://github.com/bedrockio/model#testing)
|
|
6
6
|
* @returns mongoose.Model
|
|
7
7
|
*/
|
|
8
|
-
export function createTestModel(...args: any[]): mongoose.Model<any, unknown, unknown, unknown, any>;
|
|
8
|
+
export function createTestModel(...args: any[]): mongoose.Model<any, unknown, unknown, unknown, any, any>;
|
|
9
9
|
export function getTestModelName(): string;
|
|
10
10
|
import mongoose from "mongoose";
|
|
11
11
|
//# sourceMappingURL=testing.d.ts.map
|
package/types/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.js"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.js"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,0GAiBC;AAED,2CAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.js"],"names":[],"mappings":"AAiFA,kDAEC;AAED,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.js"],"names":[],"mappings":"AAiFA,kDAEC;AAED,oEAmFC;AAsBD,wEAkBC;AA0RD;;;EAEC;AAED;;;EAOC;AAneD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQK"}
|