@brightchain/db 0.20.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.
- package/README.md +81 -0
- package/package.json +18 -0
- package/src/__tests__/helpers/mockBlockStore.d.ts +113 -0
- package/src/__tests__/helpers/mockBlockStore.js +380 -0
- package/src/__tests__/helpers/mockBlockStore.js.map +1 -0
- package/src/index.d.ts +31 -0
- package/src/index.js +78 -0
- package/src/index.js.map +1 -0
- package/src/lib/aggregation.d.ts +18 -0
- package/src/lib/aggregation.js +407 -0
- package/src/lib/aggregation.js.map +1 -0
- package/src/lib/cblIndex.d.ts +268 -0
- package/src/lib/cblIndex.js +856 -0
- package/src/lib/cblIndex.js.map +1 -0
- package/src/lib/collection.d.ts +305 -0
- package/src/lib/collection.js +991 -0
- package/src/lib/collection.js.map +1 -0
- package/src/lib/cursor.d.ts +8 -0
- package/src/lib/cursor.js +13 -0
- package/src/lib/cursor.js.map +1 -0
- package/src/lib/database.d.ts +158 -0
- package/src/lib/database.js +332 -0
- package/src/lib/database.js.map +1 -0
- package/src/lib/errors.d.ts +85 -0
- package/src/lib/errors.js +103 -0
- package/src/lib/errors.js.map +1 -0
- package/src/lib/expressMiddleware.d.ts +57 -0
- package/src/lib/expressMiddleware.js +488 -0
- package/src/lib/expressMiddleware.js.map +1 -0
- package/src/lib/headRegistry.d.ts +60 -0
- package/src/lib/headRegistry.js +216 -0
- package/src/lib/headRegistry.js.map +1 -0
- package/src/lib/indexing.d.ts +7 -0
- package/src/lib/indexing.js +14 -0
- package/src/lib/indexing.js.map +1 -0
- package/src/lib/model.d.ts +162 -0
- package/src/lib/model.js +260 -0
- package/src/lib/model.js.map +1 -0
- package/src/lib/pooledStoreAdapter.d.ts +44 -0
- package/src/lib/pooledStoreAdapter.js +109 -0
- package/src/lib/pooledStoreAdapter.js.map +1 -0
- package/src/lib/queryEngine.d.ts +48 -0
- package/src/lib/queryEngine.js +461 -0
- package/src/lib/queryEngine.js.map +1 -0
- package/src/lib/schemaValidation.d.ts +80 -0
- package/src/lib/schemaValidation.js +353 -0
- package/src/lib/schemaValidation.js.map +1 -0
- package/src/lib/transaction.d.ts +7 -0
- package/src/lib/transaction.js +12 -0
- package/src/lib/transaction.js.map +1 -0
- package/src/lib/types.d.ts +360 -0
- package/src/lib/types.js +6 -0
- package/src/lib/types.js.map +1 -0
- package/src/lib/updateEngine.d.ts +7 -0
- package/src/lib/updateEngine.js +13 -0
- package/src/lib/updateEngine.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryEngine.js","sourceRoot":"","sources":["../../../../brightchain-db/src/lib/queryEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema validation for brightchain-db collections.
|
|
3
|
+
*
|
|
4
|
+
* Provides a lightweight JSON-Schema-like validator that can enforce
|
|
5
|
+
* document structure on insert and update operations.
|
|
6
|
+
*
|
|
7
|
+
* Supported types: 'string', 'number', 'boolean', 'object', 'array', 'null', 'date', 'any'
|
|
8
|
+
* Supported constraints:
|
|
9
|
+
* - required: array of required field names
|
|
10
|
+
* - properties: per-field type + constraints
|
|
11
|
+
* - minLength / maxLength: for strings and arrays
|
|
12
|
+
* - minimum / maximum: for numbers
|
|
13
|
+
* - pattern: regex pattern for strings
|
|
14
|
+
* - enum: allowed values
|
|
15
|
+
* - items: schema for array elements
|
|
16
|
+
* - additionalProperties: whether extra fields are allowed (default: true)
|
|
17
|
+
*/
|
|
18
|
+
import { ValidationFieldError } from './errors';
|
|
19
|
+
import { BsonDocument } from './types';
|
|
20
|
+
export type SchemaType = 'string' | 'number' | 'boolean' | 'object' | 'array' | 'null' | 'date' | 'any' | 'branded-primitive' | 'branded-interface';
|
|
21
|
+
export interface FieldSchema {
|
|
22
|
+
/** Expected type */
|
|
23
|
+
type?: SchemaType | SchemaType[];
|
|
24
|
+
/** Whether this field is required (also settable at parent level via `required` array) */
|
|
25
|
+
required?: boolean;
|
|
26
|
+
/** Minimum value (number) or minimum length (string/array) */
|
|
27
|
+
minimum?: number;
|
|
28
|
+
/** Maximum value (number) or maximum length (string/array) */
|
|
29
|
+
maximum?: number;
|
|
30
|
+
/** Minimum string/array length */
|
|
31
|
+
minLength?: number;
|
|
32
|
+
/** Maximum string/array length */
|
|
33
|
+
maxLength?: number;
|
|
34
|
+
/** Regex pattern for string values */
|
|
35
|
+
pattern?: string;
|
|
36
|
+
/** Allowed values */
|
|
37
|
+
enum?: unknown[];
|
|
38
|
+
/** Schema for nested object properties */
|
|
39
|
+
properties?: Record<string, FieldSchema>;
|
|
40
|
+
/** Required fields in nested object */
|
|
41
|
+
requiredFields?: string[];
|
|
42
|
+
/** Schema for array items */
|
|
43
|
+
items?: FieldSchema;
|
|
44
|
+
/** Default value if field is missing */
|
|
45
|
+
default?: unknown;
|
|
46
|
+
/** Whether to allow extra properties (for objects) */
|
|
47
|
+
additionalProperties?: boolean;
|
|
48
|
+
/** Custom validation function */
|
|
49
|
+
validate?: (value: unknown) => boolean | string;
|
|
50
|
+
/** Reference name for branded-primitive or branded-interface types */
|
|
51
|
+
ref?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface CollectionSchema {
|
|
54
|
+
/** Name of the schema (for error messages) */
|
|
55
|
+
name?: string;
|
|
56
|
+
/** Per-field definitions */
|
|
57
|
+
properties: Record<string, FieldSchema>;
|
|
58
|
+
/** Which fields are required */
|
|
59
|
+
required?: string[];
|
|
60
|
+
/** Allow fields not defined in properties (default: true) */
|
|
61
|
+
additionalProperties?: boolean;
|
|
62
|
+
/** When to validate: 'strict' = inserts and updates, 'moderate' = inserts only */
|
|
63
|
+
validationLevel?: 'strict' | 'moderate' | 'off';
|
|
64
|
+
/** What to do on failure: 'error' = throw, 'warn' = log and continue */
|
|
65
|
+
validationAction?: 'error' | 'warn';
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Validate a document against a collection schema.
|
|
69
|
+
*
|
|
70
|
+
* @param doc - The document to validate
|
|
71
|
+
* @param schema - The collection schema
|
|
72
|
+
* @param collectionName - Collection name for error messages
|
|
73
|
+
* @throws ValidationError if validationAction is 'error'
|
|
74
|
+
* @returns Array of validation field errors (empty if valid)
|
|
75
|
+
*/
|
|
76
|
+
export declare function validateDocument(doc: BsonDocument, schema: CollectionSchema, collectionName: string): ValidationFieldError[];
|
|
77
|
+
/**
|
|
78
|
+
* Apply default values from schema to a document (mutates a copy).
|
|
79
|
+
*/
|
|
80
|
+
export declare function applyDefaults(doc: BsonDocument, schema: CollectionSchema): BsonDocument;
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Schema validation for brightchain-db collections.
|
|
4
|
+
*
|
|
5
|
+
* Provides a lightweight JSON-Schema-like validator that can enforce
|
|
6
|
+
* document structure on insert and update operations.
|
|
7
|
+
*
|
|
8
|
+
* Supported types: 'string', 'number', 'boolean', 'object', 'array', 'null', 'date', 'any'
|
|
9
|
+
* Supported constraints:
|
|
10
|
+
* - required: array of required field names
|
|
11
|
+
* - properties: per-field type + constraints
|
|
12
|
+
* - minLength / maxLength: for strings and arrays
|
|
13
|
+
* - minimum / maximum: for numbers
|
|
14
|
+
* - pattern: regex pattern for strings
|
|
15
|
+
* - enum: allowed values
|
|
16
|
+
* - items: schema for array elements
|
|
17
|
+
* - additionalProperties: whether extra fields are allowed (default: true)
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.validateDocument = validateDocument;
|
|
21
|
+
exports.applyDefaults = applyDefaults;
|
|
22
|
+
const errors_1 = require("./errors");
|
|
23
|
+
// Lazy import for branded-interface registry to avoid hard dependency
|
|
24
|
+
let _getInterfaceById;
|
|
25
|
+
// ── Validator ──
|
|
26
|
+
/**
|
|
27
|
+
* Validate a document against a collection schema.
|
|
28
|
+
*
|
|
29
|
+
* @param doc - The document to validate
|
|
30
|
+
* @param schema - The collection schema
|
|
31
|
+
* @param collectionName - Collection name for error messages
|
|
32
|
+
* @throws ValidationError if validationAction is 'error'
|
|
33
|
+
* @returns Array of validation field errors (empty if valid)
|
|
34
|
+
*/
|
|
35
|
+
function validateDocument(doc, schema, collectionName) {
|
|
36
|
+
if (schema.validationLevel === 'off')
|
|
37
|
+
return [];
|
|
38
|
+
const errors = [];
|
|
39
|
+
// Check required fields
|
|
40
|
+
if (schema.required) {
|
|
41
|
+
for (const field of schema.required) {
|
|
42
|
+
if (field === '_id')
|
|
43
|
+
continue; // _id is managed internally
|
|
44
|
+
if (!(field in doc) || doc[field] === undefined) {
|
|
45
|
+
errors.push({ field, message: `Required field "${field}" is missing` });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Check defined properties
|
|
50
|
+
if (schema.properties) {
|
|
51
|
+
for (const [field, fieldSchema] of Object.entries(schema.properties)) {
|
|
52
|
+
if (field === '_id')
|
|
53
|
+
continue;
|
|
54
|
+
const value = doc[field];
|
|
55
|
+
if (value === undefined) {
|
|
56
|
+
// Already checked in required above
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const fieldErrors = validateField(value, fieldSchema, field);
|
|
60
|
+
errors.push(...fieldErrors);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Check additional properties
|
|
64
|
+
if (schema.additionalProperties === false && schema.properties) {
|
|
65
|
+
const allowed = new Set([...Object.keys(schema.properties), '_id']);
|
|
66
|
+
for (const key of Object.keys(doc)) {
|
|
67
|
+
if (!allowed.has(key)) {
|
|
68
|
+
errors.push({
|
|
69
|
+
field: key,
|
|
70
|
+
message: `Additional property "${key}" is not allowed`,
|
|
71
|
+
value: doc[key],
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (errors.length > 0 && schema.validationAction !== 'warn') {
|
|
77
|
+
throw new errors_1.ValidationError(collectionName, errors);
|
|
78
|
+
}
|
|
79
|
+
return errors;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Validate a single field value against a field schema.
|
|
83
|
+
*/
|
|
84
|
+
function validateField(value, schema, fieldPath) {
|
|
85
|
+
const errors = [];
|
|
86
|
+
// Type check
|
|
87
|
+
if (schema.type) {
|
|
88
|
+
const types = Array.isArray(schema.type) ? schema.type : [schema.type];
|
|
89
|
+
if (!types.some((t) => matchesSchemaType(value, t))) {
|
|
90
|
+
errors.push({
|
|
91
|
+
field: fieldPath,
|
|
92
|
+
message: `Expected type ${types.join(' | ')}, got ${getValueType(value)}`,
|
|
93
|
+
value,
|
|
94
|
+
});
|
|
95
|
+
return errors; // Stop further checks if type is wrong
|
|
96
|
+
}
|
|
97
|
+
// Branded type validation via @digitaldefiance/branded-interface registry
|
|
98
|
+
const singleType = types.length === 1 ? types[0] : undefined;
|
|
99
|
+
if (singleType === 'branded-primitive' ||
|
|
100
|
+
singleType === 'branded-interface') {
|
|
101
|
+
const brandedErrors = validateBrandedField(value, schema, fieldPath, singleType);
|
|
102
|
+
if (brandedErrors.length > 0) {
|
|
103
|
+
errors.push(...brandedErrors);
|
|
104
|
+
return errors;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Enum check
|
|
109
|
+
if (schema.enum) {
|
|
110
|
+
if (!schema.enum.some((e) => e === value)) {
|
|
111
|
+
errors.push({
|
|
112
|
+
field: fieldPath,
|
|
113
|
+
message: `Value must be one of: ${schema.enum.map(String).join(', ')}`,
|
|
114
|
+
value,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// String constraints
|
|
119
|
+
if (typeof value === 'string') {
|
|
120
|
+
if (schema.minLength !== undefined && value.length < schema.minLength) {
|
|
121
|
+
errors.push({
|
|
122
|
+
field: fieldPath,
|
|
123
|
+
message: `String length ${value.length} is less than minimum ${schema.minLength}`,
|
|
124
|
+
value,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (schema.maxLength !== undefined && value.length > schema.maxLength) {
|
|
128
|
+
errors.push({
|
|
129
|
+
field: fieldPath,
|
|
130
|
+
message: `String length ${value.length} exceeds maximum ${schema.maxLength}`,
|
|
131
|
+
value,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
if (schema.pattern) {
|
|
135
|
+
const re = new RegExp(schema.pattern);
|
|
136
|
+
if (!re.test(value)) {
|
|
137
|
+
errors.push({
|
|
138
|
+
field: fieldPath,
|
|
139
|
+
message: `String does not match pattern "${schema.pattern}"`,
|
|
140
|
+
value,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Number constraints
|
|
146
|
+
if (typeof value === 'number') {
|
|
147
|
+
if (schema.minimum !== undefined && value < schema.minimum) {
|
|
148
|
+
errors.push({
|
|
149
|
+
field: fieldPath,
|
|
150
|
+
message: `Value ${value} is less than minimum ${schema.minimum}`,
|
|
151
|
+
value,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (schema.maximum !== undefined && value > schema.maximum) {
|
|
155
|
+
errors.push({
|
|
156
|
+
field: fieldPath,
|
|
157
|
+
message: `Value ${value} exceeds maximum ${schema.maximum}`,
|
|
158
|
+
value,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// Array constraints
|
|
163
|
+
if (Array.isArray(value)) {
|
|
164
|
+
if (schema.minLength !== undefined && value.length < schema.minLength) {
|
|
165
|
+
errors.push({
|
|
166
|
+
field: fieldPath,
|
|
167
|
+
message: `Array length ${value.length} is less than minimum ${schema.minLength}`,
|
|
168
|
+
value,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
if (schema.maxLength !== undefined && value.length > schema.maxLength) {
|
|
172
|
+
errors.push({
|
|
173
|
+
field: fieldPath,
|
|
174
|
+
message: `Array length ${value.length} exceeds maximum ${schema.maxLength}`,
|
|
175
|
+
value,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
if (schema.items) {
|
|
179
|
+
for (let i = 0; i < value.length; i++) {
|
|
180
|
+
const itemErrors = validateField(value[i], schema.items, `${fieldPath}[${i}]`);
|
|
181
|
+
errors.push(...itemErrors);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Nested object constraints
|
|
186
|
+
if (typeof value === 'object' &&
|
|
187
|
+
value !== null &&
|
|
188
|
+
!Array.isArray(value) &&
|
|
189
|
+
!(value instanceof Date)) {
|
|
190
|
+
const obj = value;
|
|
191
|
+
if (schema.requiredFields) {
|
|
192
|
+
for (const req of schema.requiredFields) {
|
|
193
|
+
if (!(req in obj)) {
|
|
194
|
+
errors.push({
|
|
195
|
+
field: `${fieldPath}.${req}`,
|
|
196
|
+
message: `Required field "${req}" is missing`,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (schema.properties) {
|
|
202
|
+
for (const [key, propSchema] of Object.entries(schema.properties)) {
|
|
203
|
+
if (obj[key] !== undefined) {
|
|
204
|
+
const propErrors = validateField(obj[key], propSchema, `${fieldPath}.${key}`);
|
|
205
|
+
errors.push(...propErrors);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (schema.additionalProperties === false && schema.properties) {
|
|
210
|
+
const allowed = new Set(Object.keys(schema.properties));
|
|
211
|
+
for (const key of Object.keys(obj)) {
|
|
212
|
+
if (!allowed.has(key)) {
|
|
213
|
+
errors.push({
|
|
214
|
+
field: `${fieldPath}.${key}`,
|
|
215
|
+
message: `Additional property "${key}" is not allowed`,
|
|
216
|
+
value: obj[key],
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Custom validation
|
|
223
|
+
if (schema.validate) {
|
|
224
|
+
const result = schema.validate(value);
|
|
225
|
+
if (result !== true) {
|
|
226
|
+
errors.push({
|
|
227
|
+
field: fieldPath,
|
|
228
|
+
message: typeof result === 'string' ? result : `Custom validation failed`,
|
|
229
|
+
value,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return errors;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Apply default values from schema to a document (mutates a copy).
|
|
237
|
+
*/
|
|
238
|
+
function applyDefaults(doc, schema) {
|
|
239
|
+
if (!schema.properties)
|
|
240
|
+
return doc;
|
|
241
|
+
const result = { ...doc };
|
|
242
|
+
for (const [field, fieldSchema] of Object.entries(schema.properties)) {
|
|
243
|
+
if (field === '_id')
|
|
244
|
+
continue;
|
|
245
|
+
if (result[field] === undefined && fieldSchema.default !== undefined) {
|
|
246
|
+
result[field] =
|
|
247
|
+
typeof fieldSchema.default === 'function'
|
|
248
|
+
? fieldSchema.default()
|
|
249
|
+
: fieldSchema.default;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return result;
|
|
253
|
+
}
|
|
254
|
+
// ── Helpers ──
|
|
255
|
+
/**
|
|
256
|
+
* Validate a branded-primitive or branded-interface field against the
|
|
257
|
+
* @digitaldefiance/branded-interface registry.
|
|
258
|
+
*/
|
|
259
|
+
function validateBrandedField(value, schema, fieldPath, schemaType) {
|
|
260
|
+
const errors = [];
|
|
261
|
+
const ref = schema.ref;
|
|
262
|
+
if (!ref) {
|
|
263
|
+
errors.push({
|
|
264
|
+
field: fieldPath,
|
|
265
|
+
message: `Field type "${schemaType}" requires a "ref" pointing to a registered branded type`,
|
|
266
|
+
value,
|
|
267
|
+
});
|
|
268
|
+
return errors;
|
|
269
|
+
}
|
|
270
|
+
// Lazy-load the registry lookup to avoid hard dependency
|
|
271
|
+
if (!_getInterfaceById) {
|
|
272
|
+
try {
|
|
273
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
274
|
+
const mod = require('@digitaldefiance/branded-interface');
|
|
275
|
+
_getInterfaceById = mod.getInterfaceById;
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
// Library not available — skip branded validation
|
|
279
|
+
return errors;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
const entry = _getInterfaceById(ref);
|
|
283
|
+
if (!entry) {
|
|
284
|
+
errors.push({
|
|
285
|
+
field: fieldPath,
|
|
286
|
+
message: `Branded type ref "${ref}" is not registered`,
|
|
287
|
+
value,
|
|
288
|
+
});
|
|
289
|
+
return errors;
|
|
290
|
+
}
|
|
291
|
+
// Kind mismatch check
|
|
292
|
+
const expectedKind = schemaType === 'branded-primitive' ? 'primitive' : 'interface';
|
|
293
|
+
if (entry.kind !== expectedKind) {
|
|
294
|
+
errors.push({
|
|
295
|
+
field: fieldPath,
|
|
296
|
+
message: `Branded type ref "${ref}" is kind "${entry.kind}" but field type is "${schemaType}" (expected kind "${expectedKind}")`,
|
|
297
|
+
value,
|
|
298
|
+
});
|
|
299
|
+
return errors;
|
|
300
|
+
}
|
|
301
|
+
// Delegate to the registered definition's validate function
|
|
302
|
+
if (entry.definition && typeof entry.definition.validate === 'function') {
|
|
303
|
+
if (!entry.definition.validate(value)) {
|
|
304
|
+
errors.push({
|
|
305
|
+
field: fieldPath,
|
|
306
|
+
message: `Value failed validation for branded type "${ref}"`,
|
|
307
|
+
value,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return errors;
|
|
312
|
+
}
|
|
313
|
+
function matchesSchemaType(value, type) {
|
|
314
|
+
switch (type) {
|
|
315
|
+
case 'string':
|
|
316
|
+
return typeof value === 'string';
|
|
317
|
+
case 'number':
|
|
318
|
+
return typeof value === 'number' && !isNaN(value);
|
|
319
|
+
case 'boolean':
|
|
320
|
+
return typeof value === 'boolean';
|
|
321
|
+
case 'null':
|
|
322
|
+
return value === null;
|
|
323
|
+
case 'date':
|
|
324
|
+
return value instanceof Date;
|
|
325
|
+
case 'array':
|
|
326
|
+
return Array.isArray(value);
|
|
327
|
+
case 'object':
|
|
328
|
+
return (typeof value === 'object' &&
|
|
329
|
+
value !== null &&
|
|
330
|
+
!Array.isArray(value) &&
|
|
331
|
+
!(value instanceof Date));
|
|
332
|
+
case 'any':
|
|
333
|
+
return true;
|
|
334
|
+
case 'branded-primitive':
|
|
335
|
+
return true; // Defer to branded validation for actual type checking
|
|
336
|
+
case 'branded-interface':
|
|
337
|
+
return true; // Defer to branded validation for actual type checking
|
|
338
|
+
default:
|
|
339
|
+
return false;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
function getValueType(value) {
|
|
343
|
+
if (value === null)
|
|
344
|
+
return 'null';
|
|
345
|
+
if (value === undefined)
|
|
346
|
+
return 'undefined';
|
|
347
|
+
if (Array.isArray(value))
|
|
348
|
+
return 'array';
|
|
349
|
+
if (value instanceof Date)
|
|
350
|
+
return 'date';
|
|
351
|
+
return typeof value;
|
|
352
|
+
}
|
|
353
|
+
//# sourceMappingURL=schemaValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaValidation.js","sourceRoot":"","sources":["../../../../brightchain-db/src/lib/schemaValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transaction engine – re-exports from @brightchain/brightchain-lib.
|
|
3
|
+
*
|
|
4
|
+
* The platform-agnostic transaction engine now lives in brightchain-lib.
|
|
5
|
+
* This file re-exports everything for backward compatibility.
|
|
6
|
+
*/
|
|
7
|
+
export { DbSession, type CommitCallback, type JournalOp, type RollbackCallback, } from '@brightchain/brightchain-lib/lib/db/transaction';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DbSession = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Transaction engine – re-exports from @brightchain/brightchain-lib.
|
|
6
|
+
*
|
|
7
|
+
* The platform-agnostic transaction engine now lives in brightchain-lib.
|
|
8
|
+
* This file re-exports everything for backward compatibility.
|
|
9
|
+
*/
|
|
10
|
+
var transaction_1 = require("@brightchain/brightchain-lib/lib/db/transaction");
|
|
11
|
+
Object.defineProperty(exports, "DbSession", { enumerable: true, get: function () { return transaction_1.DbSession; } });
|
|
12
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../brightchain-db/src/lib/transaction.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,+EAKyD;AAJvD,wGAAA,SAAS,OAAA"}
|