@semiont/core 0.1.0-build.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.
- package/README.md +265 -0
- package/dist/annotation-history-utils.d.ts +42 -0
- package/dist/annotation-history-utils.d.ts.map +1 -0
- package/dist/annotation-history-utils.js +258 -0
- package/dist/annotation-history-utils.js.map +1 -0
- package/dist/annotation-types.d.ts +15 -0
- package/dist/annotation-types.d.ts.map +1 -0
- package/dist/annotation-types.js +6 -0
- package/dist/annotation-types.js.map +1 -0
- package/dist/annotation-utils.d.ts +18 -0
- package/dist/annotation-utils.d.ts.map +1 -0
- package/dist/annotation-utils.js +70 -0
- package/dist/annotation-utils.js.map +1 -0
- package/dist/auth-types.d.ts +8 -0
- package/dist/auth-types.d.ts.map +1 -0
- package/dist/auth-types.js +6 -0
- package/dist/auth-types.js.map +1 -0
- package/dist/config/config-validator.d.ts +25 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +112 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/config.schema.json +678 -0
- package/dist/config/config.types.d.ts +574 -0
- package/dist/config/config.types.d.ts.map +1 -0
- package/dist/config/config.types.js +4 -0
- package/dist/config/config.types.js.map +1 -0
- package/dist/config/configuration-error.d.ts +17 -0
- package/dist/config/configuration-error.d.ts.map +1 -0
- package/dist/config/configuration-error.js +36 -0
- package/dist/config/configuration-error.js.map +1 -0
- package/dist/config/environment-loader.d.ts +98 -0
- package/dist/config/environment-loader.d.ts.map +1 -0
- package/dist/config/environment-loader.js +229 -0
- package/dist/config/environment-loader.js.map +1 -0
- package/dist/config/environment-validator.d.ts +22 -0
- package/dist/config/environment-validator.d.ts.map +1 -0
- package/dist/config/environment-validator.js +50 -0
- package/dist/config/environment-validator.js.map +1 -0
- package/dist/config/platform-types.d.ts +26 -0
- package/dist/config/platform-types.d.ts.map +1 -0
- package/dist/config/platform-types.js +28 -0
- package/dist/config/platform-types.js.map +1 -0
- package/dist/config/project-discovery.d.ts +35 -0
- package/dist/config/project-discovery.d.ts.map +1 -0
- package/dist/config/project-discovery.js +99 -0
- package/dist/config/project-discovery.js.map +1 -0
- package/dist/creation-methods.d.ts +19 -0
- package/dist/creation-methods.d.ts.map +1 -0
- package/dist/creation-methods.js +18 -0
- package/dist/creation-methods.js.map +1 -0
- package/dist/crypto.d.ts +32 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +52 -0
- package/dist/crypto.js.map +1 -0
- package/dist/did-utils.d.ts +51 -0
- package/dist/did-utils.d.ts.map +1 -0
- package/dist/did-utils.js +62 -0
- package/dist/did-utils.js.map +1 -0
- package/dist/errors.d.ts +51 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +89 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +223 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +45 -0
- package/dist/events.js.map +1 -0
- package/dist/graph.d.ts +31 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +6 -0
- package/dist/graph.js.map +1 -0
- package/dist/http-client.d.ts +32 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +56 -0
- package/dist/http-client.js.map +1 -0
- package/dist/identifiers.d.ts +24 -0
- package/dist/identifiers.d.ts.map +1 -0
- package/dist/identifiers.js +40 -0
- package/dist/identifiers.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +80 -0
- package/dist/index.js.map +1 -0
- package/dist/resource-types.d.ts +15 -0
- package/dist/resource-types.d.ts.map +1 -0
- package/dist/resource-types.js +6 -0
- package/dist/resource-types.js.map +1 -0
- package/dist/type-guards.d.ts +44 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +76 -0
- package/dist/type-guards.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Backend-specific annotation utility functions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.bodyItemsMatch = bodyItemsMatch;
|
|
7
|
+
exports.findBodyItem = findBodyItem;
|
|
8
|
+
/**
|
|
9
|
+
* Check if two body items match (for remove/replace operations)
|
|
10
|
+
* Matches by type, value/source, and purpose fields
|
|
11
|
+
*/
|
|
12
|
+
function bodyItemsMatch(item1, item2) {
|
|
13
|
+
// Type must match
|
|
14
|
+
if (item1.type !== item2.type) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
// Purpose must match
|
|
18
|
+
if (item1.purpose !== item2.purpose) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
// For TextualBody, match by value
|
|
22
|
+
if (item1.type === 'TextualBody' && item2.type === 'TextualBody') {
|
|
23
|
+
return item1.value === item2.value;
|
|
24
|
+
}
|
|
25
|
+
// For SpecificResource, match by source
|
|
26
|
+
if (item1.type === 'SpecificResource' && item2.type === 'SpecificResource') {
|
|
27
|
+
return item1.source === item2.source;
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Find a body item in an array
|
|
33
|
+
* Returns the index of the first matching item, or -1 if not found
|
|
34
|
+
*/
|
|
35
|
+
function findBodyItem(body, targetItem) {
|
|
36
|
+
if (!Array.isArray(body)) {
|
|
37
|
+
return -1;
|
|
38
|
+
}
|
|
39
|
+
for (let i = 0; i < body.length; i++) {
|
|
40
|
+
const item = body[i];
|
|
41
|
+
// Check if this is a valid body item that can be matched
|
|
42
|
+
if (typeof item === 'object' &&
|
|
43
|
+
item !== null &&
|
|
44
|
+
'type' in item &&
|
|
45
|
+
'purpose' in item) {
|
|
46
|
+
const itemType = item.type;
|
|
47
|
+
const itemPurpose = item.purpose;
|
|
48
|
+
// Type and purpose must match
|
|
49
|
+
if (itemType !== targetItem.type || itemPurpose !== targetItem.purpose) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// For TextualBody, match by value
|
|
53
|
+
if (targetItem.type === 'TextualBody' && 'value' in item) {
|
|
54
|
+
const itemValue = item.value;
|
|
55
|
+
if (itemValue === targetItem.value) {
|
|
56
|
+
return i;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// For SpecificResource, match by source
|
|
60
|
+
if (targetItem.type === 'SpecificResource' && 'source' in item) {
|
|
61
|
+
const itemSource = item.source;
|
|
62
|
+
if (itemSource === targetItem.source) {
|
|
63
|
+
return i;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return -1;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=annotation-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-utils.js","sourceRoot":"","sources":["../src/annotation-utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAWH,wCAsBC;AAMD,oCA0CC;AA1ED;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAe,EAAE,KAAe;IAC7D,kBAAkB;IAClB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kCAAkC;IAClC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;IACrC,CAAC;IAED,wCAAwC;IACxC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAwB,EAAE,UAAoB;IACzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,yDAAyD;QACzD,IACE,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,MAAM,IAAI,IAAI;YACd,SAAS,IAAI,IAAI,EACjB,CAAC;YACD,MAAM,QAAQ,GAAI,IAA0B,CAAC,IAAI,CAAC;YAClD,MAAM,WAAW,GAAI,IAA6B,CAAC,OAAO,CAAC;YAE3D,8BAA8B;YAC9B,IAAI,QAAQ,KAAK,UAAU,CAAC,IAAI,IAAI,WAAW,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvE,SAAS;YACX,CAAC;YAED,kCAAkC;YAClC,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACzD,MAAM,SAAS,GAAI,IAA2B,CAAC,KAAK,CAAC;gBACrD,IAAI,SAAS,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnC,OAAO,CAAC,CAAC;gBACX,CAAC;YACH,CAAC;YAED,wCAAwC;YACxC,IAAI,UAAU,CAAC,IAAI,KAAK,kBAAkB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC/D,MAAM,UAAU,GAAI,IAA4B,CAAC,MAAM,CAAC;gBACxD,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;oBACrC,OAAO,CAAC,CAAC;gBACX,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-types.d.ts","sourceRoot":"","sources":["../src/auth-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-types.js","sourceRoot":"","sources":["../src/auth-types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Schema Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates configuration data against JSON Schema using Ajv (JSON Schema validator).
|
|
5
|
+
* Provides runtime validation for semiont.json and environment config files.
|
|
6
|
+
*/
|
|
7
|
+
import { type ErrorObject } from 'ajv';
|
|
8
|
+
export interface ValidationResult {
|
|
9
|
+
valid: boolean;
|
|
10
|
+
errors: ErrorObject[] | null;
|
|
11
|
+
errorMessage?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Validate semiont.json config
|
|
15
|
+
*/
|
|
16
|
+
export declare function validateSemiontConfig(data: unknown): ValidationResult;
|
|
17
|
+
/**
|
|
18
|
+
* Validate environment config (environments/*.json)
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateEnvironmentConfig(data: unknown): ValidationResult;
|
|
21
|
+
/**
|
|
22
|
+
* Validate site config
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateSiteConfig(data: unknown): ValidationResult;
|
|
25
|
+
//# sourceMappingURL=config-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../src/config/config-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAY,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAmB5C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAiBrE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAiBzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAiBlE"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config Schema Validator
|
|
4
|
+
*
|
|
5
|
+
* Validates configuration data against JSON Schema using Ajv (JSON Schema validator).
|
|
6
|
+
* Provides runtime validation for semiont.json and environment config files.
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.validateSemiontConfig = validateSemiontConfig;
|
|
13
|
+
exports.validateEnvironmentConfig = validateEnvironmentConfig;
|
|
14
|
+
exports.validateSiteConfig = validateSiteConfig;
|
|
15
|
+
const ajv_1 = __importDefault(require("ajv"));
|
|
16
|
+
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
17
|
+
const config_schema_json_1 = __importDefault(require("./config.schema.json"));
|
|
18
|
+
// Initialize Ajv with config-compatible settings
|
|
19
|
+
const ajv = new ajv_1.default({
|
|
20
|
+
allErrors: true, // Return all errors, not just the first one
|
|
21
|
+
coerceTypes: true, // Coerce types (e.g., "123" -> 123)
|
|
22
|
+
removeAdditional: false, // Don't remove additional properties
|
|
23
|
+
useDefaults: true, // Apply default values from schema
|
|
24
|
+
strict: false
|
|
25
|
+
});
|
|
26
|
+
// Add format validators (email, uri, date-time, etc.)
|
|
27
|
+
(0, ajv_formats_1.default)(ajv);
|
|
28
|
+
// Load schema
|
|
29
|
+
ajv.addSchema(config_schema_json_1.default, 'config');
|
|
30
|
+
/**
|
|
31
|
+
* Validate semiont.json config
|
|
32
|
+
*/
|
|
33
|
+
function validateSemiontConfig(data) {
|
|
34
|
+
const validate = ajv.getSchema('config#/definitions/SemiontConfig');
|
|
35
|
+
if (!validate) {
|
|
36
|
+
throw new Error('SemiontConfig schema not found');
|
|
37
|
+
}
|
|
38
|
+
const valid = validate(data);
|
|
39
|
+
if (!valid) {
|
|
40
|
+
return {
|
|
41
|
+
valid: false,
|
|
42
|
+
errors: validate.errors || null,
|
|
43
|
+
errorMessage: formatErrors(validate.errors || [])
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return { valid: true, errors: null };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Validate environment config (environments/*.json)
|
|
50
|
+
*/
|
|
51
|
+
function validateEnvironmentConfig(data) {
|
|
52
|
+
const validate = ajv.getSchema('config#/definitions/EnvironmentConfig');
|
|
53
|
+
if (!validate) {
|
|
54
|
+
throw new Error('EnvironmentConfig schema not found');
|
|
55
|
+
}
|
|
56
|
+
const valid = validate(data);
|
|
57
|
+
if (!valid) {
|
|
58
|
+
return {
|
|
59
|
+
valid: false,
|
|
60
|
+
errors: validate.errors || null,
|
|
61
|
+
errorMessage: formatErrors(validate.errors || [])
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return { valid: true, errors: null };
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Validate site config
|
|
68
|
+
*/
|
|
69
|
+
function validateSiteConfig(data) {
|
|
70
|
+
const validate = ajv.getSchema('config#/definitions/SiteConfig');
|
|
71
|
+
if (!validate) {
|
|
72
|
+
throw new Error('SiteConfig schema not found');
|
|
73
|
+
}
|
|
74
|
+
const valid = validate(data);
|
|
75
|
+
if (!valid) {
|
|
76
|
+
return {
|
|
77
|
+
valid: false,
|
|
78
|
+
errors: validate.errors || null,
|
|
79
|
+
errorMessage: formatErrors(validate.errors || [])
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
return { valid: true, errors: null };
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Format validation errors into human-readable message
|
|
86
|
+
*/
|
|
87
|
+
function formatErrors(errors) {
|
|
88
|
+
if (errors.length === 0)
|
|
89
|
+
return 'Validation failed';
|
|
90
|
+
const messages = errors.map(err => {
|
|
91
|
+
const path = err.instancePath || 'root';
|
|
92
|
+
const message = err.message || 'validation error';
|
|
93
|
+
if (err.keyword === 'required' && 'missingProperty' in err.params) {
|
|
94
|
+
return `Missing required property: ${err.params.missingProperty}`;
|
|
95
|
+
}
|
|
96
|
+
if (err.keyword === 'type' && 'type' in err.params) {
|
|
97
|
+
return `${path}: ${message} (expected ${err.params.type})`;
|
|
98
|
+
}
|
|
99
|
+
if (err.keyword === 'enum' && 'allowedValues' in err.params) {
|
|
100
|
+
return `${path}: must be one of [${err.params.allowedValues.join(', ')}]`;
|
|
101
|
+
}
|
|
102
|
+
if (err.keyword === 'format') {
|
|
103
|
+
return `${path}: invalid format (${message})`;
|
|
104
|
+
}
|
|
105
|
+
if (err.keyword === 'minLength' || err.keyword === 'minItems') {
|
|
106
|
+
return `${path}: ${message}`;
|
|
107
|
+
}
|
|
108
|
+
return `${path}: ${message}`;
|
|
109
|
+
});
|
|
110
|
+
return messages.join('; ');
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=config-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../src/config/config-validator.ts"],"names":[],"mappings":"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"}
|