conftree 0.1.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/LICENSE +21 -0
- package/README.md +143 -0
- package/dist/cache/cache.d.ts +23 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/cache.js +95 -0
- package/dist/cache/cache.js.map +1 -0
- package/dist/cache/change-bus.d.ts +16 -0
- package/dist/cache/change-bus.d.ts.map +1 -0
- package/dist/cache/change-bus.js +14 -0
- package/dist/cache/change-bus.js.map +1 -0
- package/dist/core/errors.d.ts +27 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +58 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/types.d.ts +52 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/engine/auditor.d.ts +8 -0
- package/dist/engine/auditor.d.ts.map +1 -0
- package/dist/engine/auditor.js +22 -0
- package/dist/engine/auditor.js.map +1 -0
- package/dist/engine/engine.d.ts +25 -0
- package/dist/engine/engine.d.ts.map +1 -0
- package/dist/engine/engine.js +24 -0
- package/dist/engine/engine.js.map +1 -0
- package/dist/engine/hierarchy-cache-sync.d.ts +4 -0
- package/dist/engine/hierarchy-cache-sync.d.ts.map +1 -0
- package/dist/engine/hierarchy-cache-sync.js +26 -0
- package/dist/engine/hierarchy-cache-sync.js.map +1 -0
- package/dist/engine/resolver.d.ts +24 -0
- package/dist/engine/resolver.d.ts.map +1 -0
- package/dist/engine/resolver.js +195 -0
- package/dist/engine/resolver.js.map +1 -0
- package/dist/engine/writer.d.ts +32 -0
- package/dist/engine/writer.d.ts.map +1 -0
- package/dist/engine/writer.js +178 -0
- package/dist/engine/writer.js.map +1 -0
- package/dist/hierarchy/scope-hierarchy.d.ts +15 -0
- package/dist/hierarchy/scope-hierarchy.d.ts.map +1 -0
- package/dist/hierarchy/scope-hierarchy.js +86 -0
- package/dist/hierarchy/scope-hierarchy.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +895 -0
- package/dist/index.mjs.map +1 -0
- package/dist/storage/memory-storage.d.ts +25 -0
- package/dist/storage/memory-storage.d.ts.map +1 -0
- package/dist/storage/memory-storage.js +176 -0
- package/dist/storage/memory-storage.js.map +1 -0
- package/dist/storage/storage-port.d.ts +93 -0
- package/dist/storage/storage-port.d.ts.map +1 -0
- package/dist/storage/storage-port.js +3 -0
- package/dist/storage/storage-port.js.map +1 -0
- package/dist/typed/registry.d.ts +7 -0
- package/dist/typed/registry.d.ts.map +1 -0
- package/dist/typed/registry.js +3 -0
- package/dist/typed/registry.js.map +1 -0
- package/dist/typed/typed-auditor.d.ts +12 -0
- package/dist/typed/typed-auditor.d.ts.map +1 -0
- package/dist/typed/typed-auditor.js +14 -0
- package/dist/typed/typed-auditor.js.map +1 -0
- package/dist/typed/typed-engine.d.ts +11 -0
- package/dist/typed/typed-engine.d.ts.map +1 -0
- package/dist/typed/typed-engine.js +14 -0
- package/dist/typed/typed-engine.js.map +1 -0
- package/dist/typed/typed-resolver.d.ts +23 -0
- package/dist/typed/typed-resolver.d.ts.map +1 -0
- package/dist/typed/typed-resolver.js +22 -0
- package/dist/typed/typed-resolver.js.map +1 -0
- package/dist/typed/typed-writer.d.ts +32 -0
- package/dist/typed/typed-writer.d.ts.map +1 -0
- package/dist/typed/typed-writer.js +20 -0
- package/dist/typed/typed-writer.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Scope, ScopeHierarchy, Value } from '../core/types';
|
|
2
|
+
import type { StorageReader } from '../storage/storage-port';
|
|
3
|
+
import type { Cache } from '../cache/cache';
|
|
4
|
+
export interface ListAtPage {
|
|
5
|
+
entries: Record<string, Value>;
|
|
6
|
+
nextCursor: string | null;
|
|
7
|
+
}
|
|
8
|
+
export declare class Resolver {
|
|
9
|
+
private readonly storage;
|
|
10
|
+
private readonly hierarchy?;
|
|
11
|
+
private readonly cache?;
|
|
12
|
+
constructor(storage: StorageReader, hierarchy?: ScopeHierarchy | undefined, cache?: Cache | undefined);
|
|
13
|
+
get(key: string, scope: Scope, asOf?: Date): Promise<Value>;
|
|
14
|
+
listAt(scope: Scope, opts?: {
|
|
15
|
+
limit?: number;
|
|
16
|
+
cursor?: string;
|
|
17
|
+
}): Promise<ListAtPage>;
|
|
18
|
+
getMany(keys: string[], scope: Scope, asOf?: Date): Promise<Record<string, Value>>;
|
|
19
|
+
private resolveMissing;
|
|
20
|
+
private getDefs;
|
|
21
|
+
private checkScope;
|
|
22
|
+
private unwrap;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/engine/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,KAAK,EACL,cAAc,EACd,KAAK,EAEL,MAAM,eAAe,CAAC;AAQvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,qBAAa,QAAQ;IAEnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAFN,OAAO,EAAE,aAAa,EACtB,SAAS,CAAC,EAAE,cAAc,YAAA,EAC1B,KAAK,CAAC,EAAE,KAAK,YAAA;IAGzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;IAK3D,MAAM,CACX,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAC5C,OAAO,CAAC,UAAU,CAAC;IAuBhB,OAAO,CACZ,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,IAAI,GACT,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAwGnB,cAAc;YA8Bd,OAAO;IASrB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,MAAM;CAoBd"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Resolver = void 0;
|
|
4
|
+
const types_1 = require("../core/types");
|
|
5
|
+
const errors_1 = require("../core/errors");
|
|
6
|
+
class Resolver {
|
|
7
|
+
storage;
|
|
8
|
+
hierarchy;
|
|
9
|
+
cache;
|
|
10
|
+
constructor(storage, hierarchy, cache) {
|
|
11
|
+
this.storage = storage;
|
|
12
|
+
this.hierarchy = hierarchy;
|
|
13
|
+
this.cache = cache;
|
|
14
|
+
}
|
|
15
|
+
async get(key, scope, asOf) {
|
|
16
|
+
const result = await this.getMany([key], scope, asOf);
|
|
17
|
+
return result[key];
|
|
18
|
+
}
|
|
19
|
+
async listAt(scope, opts = {}) {
|
|
20
|
+
const { values, nextCursor } = await this.storage.listValues({
|
|
21
|
+
scopeKind: scope.kind,
|
|
22
|
+
scopeRefId: scope.refId,
|
|
23
|
+
limit: opts.limit,
|
|
24
|
+
cursor: opts.cursor,
|
|
25
|
+
});
|
|
26
|
+
if (values.length === 0)
|
|
27
|
+
return { entries: {}, nextCursor };
|
|
28
|
+
const defs = await this.storage.findDefsByIds([
|
|
29
|
+
...new Set(values.map((v) => v.definitionId)),
|
|
30
|
+
]);
|
|
31
|
+
const defById = new Map(defs.map((d) => [d.id, d]));
|
|
32
|
+
const entries = {};
|
|
33
|
+
for (const row of values) {
|
|
34
|
+
const def = defById.get(row.definitionId);
|
|
35
|
+
if (!def)
|
|
36
|
+
continue;
|
|
37
|
+
entries[def.key] = this.unwrap(def, row);
|
|
38
|
+
}
|
|
39
|
+
return { entries, nextCursor };
|
|
40
|
+
}
|
|
41
|
+
async getMany(keys, scope, asOf) {
|
|
42
|
+
const uniqueKeys = [...new Set(keys)];
|
|
43
|
+
const result = {};
|
|
44
|
+
const uncached = [];
|
|
45
|
+
if (asOf === undefined) {
|
|
46
|
+
for (const key of uniqueKeys) {
|
|
47
|
+
const cached = this.cache?.get(key, scope);
|
|
48
|
+
if (cached !== undefined)
|
|
49
|
+
result[key] = cached;
|
|
50
|
+
else
|
|
51
|
+
uncached.push(key);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
uncached.push(...uniqueKeys);
|
|
56
|
+
}
|
|
57
|
+
if (uncached.length === 0)
|
|
58
|
+
return result;
|
|
59
|
+
const defByKey = await this.getDefs(uncached);
|
|
60
|
+
for (const key of uncached) {
|
|
61
|
+
this.checkScope(defByKey.get(key), scope);
|
|
62
|
+
}
|
|
63
|
+
const exactDefs = [];
|
|
64
|
+
const chainDefs = [];
|
|
65
|
+
for (const key of uncached) {
|
|
66
|
+
const def = defByKey.get(key);
|
|
67
|
+
const climbsHierarchy = def.inherit !== 'INDEPENDENT' &&
|
|
68
|
+
scope.refId !== null &&
|
|
69
|
+
this.hierarchy;
|
|
70
|
+
(climbsHierarchy ? chainDefs : exactDefs).push(def);
|
|
71
|
+
}
|
|
72
|
+
const chain = chainDefs.length > 0 && scope.refId !== null && this.hierarchy
|
|
73
|
+
? await this.hierarchy.chain(scope.refId)
|
|
74
|
+
: [];
|
|
75
|
+
const [exactRows, chainRows] = await Promise.all([
|
|
76
|
+
exactDefs.length > 0
|
|
77
|
+
? this.storage.findValues({
|
|
78
|
+
definitionIds: exactDefs.map((d) => d.id),
|
|
79
|
+
scopeKind: scope.kind,
|
|
80
|
+
scopeRefId: scope.refId,
|
|
81
|
+
asOf,
|
|
82
|
+
})
|
|
83
|
+
: Promise.resolve([]),
|
|
84
|
+
chainDefs.length > 0 && chain.length > 0
|
|
85
|
+
? this.storage.findChainValues({
|
|
86
|
+
definitionIds: chainDefs.map((d) => d.id),
|
|
87
|
+
chain,
|
|
88
|
+
asOf,
|
|
89
|
+
})
|
|
90
|
+
: Promise.resolve([]),
|
|
91
|
+
]);
|
|
92
|
+
const exactByDef = new Map(exactRows.map((r) => [r.definitionId, r]));
|
|
93
|
+
const chainByDef = new Map();
|
|
94
|
+
for (const row of chainRows) {
|
|
95
|
+
const list = chainByDef.get(row.definitionId) ?? [];
|
|
96
|
+
list.push(row);
|
|
97
|
+
chainByDef.set(row.definitionId, list);
|
|
98
|
+
}
|
|
99
|
+
const chainDefIds = new Set(chainDefs.map((d) => d.id));
|
|
100
|
+
const missing = [];
|
|
101
|
+
for (const key of uncached) {
|
|
102
|
+
const def = defByKey.get(key);
|
|
103
|
+
let row;
|
|
104
|
+
if (chainDefIds.has(def.id)) {
|
|
105
|
+
const byRef = new Map((chainByDef.get(def.id) ?? []).map((v) => [
|
|
106
|
+
v.scopeRefId,
|
|
107
|
+
v,
|
|
108
|
+
]));
|
|
109
|
+
for (const ref of chain) {
|
|
110
|
+
row = byRef.get(ref);
|
|
111
|
+
if (row)
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
row = exactByDef.get(def.id);
|
|
117
|
+
}
|
|
118
|
+
if (row) {
|
|
119
|
+
result[key] = this.unwrap(def, row);
|
|
120
|
+
if (asOf === undefined)
|
|
121
|
+
this.cache?.set(key, scope, result[key]);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
missing.push(def);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (missing.length > 0)
|
|
128
|
+
await this.resolveMissing(missing, scope, uncached, defByKey, result, asOf);
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
async resolveMissing(missing, scope, keysInOrder, defByKey, result, asOf) {
|
|
132
|
+
const defaultRows = await this.storage.findValues({
|
|
133
|
+
definitionIds: missing.map((d) => d.id),
|
|
134
|
+
scopeKind: types_1.DEFAULT_SCOPE.kind,
|
|
135
|
+
scopeRefId: types_1.DEFAULT_SCOPE.refId,
|
|
136
|
+
});
|
|
137
|
+
const defaultByDef = new Map(defaultRows.map((r) => [r.definitionId, r]));
|
|
138
|
+
const missingIds = new Set(missing.map((d) => d.id));
|
|
139
|
+
for (const key of keysInOrder) {
|
|
140
|
+
const def = defByKey.get(key);
|
|
141
|
+
if (!missingIds.has(def.id))
|
|
142
|
+
continue;
|
|
143
|
+
const row = defaultByDef.get(def.id);
|
|
144
|
+
if (!row) {
|
|
145
|
+
throw new errors_1.RequiredError(def.key, scope.kind, scope.refId);
|
|
146
|
+
}
|
|
147
|
+
result[key] = this.unwrap(def, row);
|
|
148
|
+
if (asOf === undefined)
|
|
149
|
+
this.cache?.set(key, scope, result[key]);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async getDefs(keys) {
|
|
153
|
+
const defs = await this.storage.findDefs(keys);
|
|
154
|
+
const byKey = new Map(defs.map((d) => [d.key, d]));
|
|
155
|
+
for (const key of keys) {
|
|
156
|
+
if (!byKey.has(key))
|
|
157
|
+
throw new errors_1.NotFoundError(key);
|
|
158
|
+
}
|
|
159
|
+
return byKey;
|
|
160
|
+
}
|
|
161
|
+
checkScope(def, scope) {
|
|
162
|
+
if (scope.kind === 'default')
|
|
163
|
+
return;
|
|
164
|
+
if (!def.scopes.includes(scope.kind)) {
|
|
165
|
+
throw new errors_1.ScopeError(def.key, scope.kind);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
unwrap(def, row) {
|
|
169
|
+
switch (def.type) {
|
|
170
|
+
case 'BOOLEAN':
|
|
171
|
+
if (row.bool === null)
|
|
172
|
+
throw new errors_1.CorruptError(row.id);
|
|
173
|
+
return row.bool;
|
|
174
|
+
case 'NUMERIC':
|
|
175
|
+
if (row.num === null)
|
|
176
|
+
throw new errors_1.CorruptError(row.id);
|
|
177
|
+
return row.num;
|
|
178
|
+
case 'TEXT':
|
|
179
|
+
case 'ENUM':
|
|
180
|
+
if (row.text === null)
|
|
181
|
+
throw new errors_1.CorruptError(row.id);
|
|
182
|
+
return row.text;
|
|
183
|
+
case 'JSON':
|
|
184
|
+
if (!row.jsonSet)
|
|
185
|
+
throw new errors_1.CorruptError(row.id);
|
|
186
|
+
return row.json;
|
|
187
|
+
case 'DATE':
|
|
188
|
+
if (row.date === null)
|
|
189
|
+
throw new errors_1.CorruptError(row.id);
|
|
190
|
+
return row.date;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.Resolver = Resolver;
|
|
195
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/engine/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Scope, Value, ValueRecord } from '../core/types';
|
|
2
|
+
import type { StorageAdapter } from '../storage/storage-port';
|
|
3
|
+
import type { ChangeBus } from '../cache/change-bus';
|
|
4
|
+
export interface SetParams {
|
|
5
|
+
key: string;
|
|
6
|
+
scope: Scope;
|
|
7
|
+
value: Value;
|
|
8
|
+
expectedVersion?: number;
|
|
9
|
+
authorId: string;
|
|
10
|
+
reason?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface UnsetParams {
|
|
13
|
+
key: string;
|
|
14
|
+
scope: Scope;
|
|
15
|
+
expectedVersion?: number;
|
|
16
|
+
authorId: string;
|
|
17
|
+
reason?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class Writer {
|
|
20
|
+
private readonly storage;
|
|
21
|
+
private readonly bus?;
|
|
22
|
+
constructor(storage: StorageAdapter, bus?: ChangeBus | undefined);
|
|
23
|
+
set(params: SetParams): Promise<ValueRecord>;
|
|
24
|
+
setMany(paramsList: SetParams[]): Promise<ValueRecord[]>;
|
|
25
|
+
private setInTx;
|
|
26
|
+
unset(params: UnsetParams): Promise<void>;
|
|
27
|
+
private unsetInTx;
|
|
28
|
+
private emit;
|
|
29
|
+
private validate;
|
|
30
|
+
private snapshotOf;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/engine/writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO1E,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,MAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBADJ,OAAO,EAAE,cAAc,EACvB,GAAG,CAAC,EAAE,SAAS,YAAA;IAG3B,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ5C,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAchD,OAAO;IA8Df,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAOjC,SAAS;YA8CT,IAAI;IASlB,OAAO,CAAC,QAAQ;IA4DhB,OAAO,CAAC,UAAU;CAoBlB"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Writer = void 0;
|
|
4
|
+
const errors_1 = require("../core/errors");
|
|
5
|
+
const REDACTED = '[redacted]';
|
|
6
|
+
class Writer {
|
|
7
|
+
storage;
|
|
8
|
+
bus;
|
|
9
|
+
constructor(storage, bus) {
|
|
10
|
+
this.storage = storage;
|
|
11
|
+
this.bus = bus;
|
|
12
|
+
}
|
|
13
|
+
async set(params) {
|
|
14
|
+
const created = await this.storage.transact((tx) => this.setInTx(tx, params));
|
|
15
|
+
await this.emit(created, params.key);
|
|
16
|
+
return created;
|
|
17
|
+
}
|
|
18
|
+
async setMany(paramsList) {
|
|
19
|
+
const created = await this.storage.transact(async (tx) => {
|
|
20
|
+
const results = [];
|
|
21
|
+
for (const params of paramsList) {
|
|
22
|
+
results.push(await this.setInTx(tx, params));
|
|
23
|
+
}
|
|
24
|
+
return results;
|
|
25
|
+
});
|
|
26
|
+
await Promise.all(created.map((row, i) => this.emit(row, paramsList[i].key)));
|
|
27
|
+
return created;
|
|
28
|
+
}
|
|
29
|
+
async setInTx(tx, params) {
|
|
30
|
+
const def = await tx.findDef(params.key);
|
|
31
|
+
if (!def)
|
|
32
|
+
throw new errors_1.NotFoundError(params.key);
|
|
33
|
+
if (params.scope.kind !== 'default' &&
|
|
34
|
+
!def.scopes.includes(params.scope.kind)) {
|
|
35
|
+
throw new errors_1.ScopeError(def.key, params.scope.kind);
|
|
36
|
+
}
|
|
37
|
+
this.validate(def, params.value);
|
|
38
|
+
const current = await tx.findValue(def.id, params.scope.kind, params.scope.refId);
|
|
39
|
+
const currentVersion = current?.version ?? 0;
|
|
40
|
+
const expected = params.expectedVersion ?? 0;
|
|
41
|
+
if (currentVersion !== expected) {
|
|
42
|
+
throw new errors_1.ConflictError(def.key, params.scope.kind, params.scope.refId);
|
|
43
|
+
}
|
|
44
|
+
if (current) {
|
|
45
|
+
await tx.closeValue(current.id);
|
|
46
|
+
}
|
|
47
|
+
const created = await tx.createValue({
|
|
48
|
+
definitionId: def.id,
|
|
49
|
+
scopeKind: params.scope.kind,
|
|
50
|
+
scopeRefId: params.scope.refId,
|
|
51
|
+
version: currentVersion + 1,
|
|
52
|
+
authorId: params.authorId,
|
|
53
|
+
reason: params.reason,
|
|
54
|
+
type: def.type,
|
|
55
|
+
value: params.value,
|
|
56
|
+
});
|
|
57
|
+
await tx.createAudit({
|
|
58
|
+
valueId: created.id,
|
|
59
|
+
definitionId: def.id,
|
|
60
|
+
scopeKind: created.scopeKind,
|
|
61
|
+
scopeRefId: created.scopeRefId,
|
|
62
|
+
action: current ? 'superseded' : 'created',
|
|
63
|
+
authorId: params.authorId,
|
|
64
|
+
before: current ? this.snapshotOf(def, current) : undefined,
|
|
65
|
+
after: this.snapshotOf(def, created),
|
|
66
|
+
reason: params.reason,
|
|
67
|
+
});
|
|
68
|
+
return created;
|
|
69
|
+
}
|
|
70
|
+
async unset(params) {
|
|
71
|
+
const closed = await this.storage.transact((tx) => this.unsetInTx(tx, params));
|
|
72
|
+
if (closed)
|
|
73
|
+
await this.emit(closed, params.key);
|
|
74
|
+
}
|
|
75
|
+
async unsetInTx(tx, params) {
|
|
76
|
+
const def = await tx.findDef(params.key);
|
|
77
|
+
if (!def)
|
|
78
|
+
throw new errors_1.NotFoundError(params.key);
|
|
79
|
+
if (params.scope.kind !== 'default' &&
|
|
80
|
+
!def.scopes.includes(params.scope.kind)) {
|
|
81
|
+
throw new errors_1.ScopeError(def.key, params.scope.kind);
|
|
82
|
+
}
|
|
83
|
+
const current = await tx.findValue(def.id, params.scope.kind, params.scope.refId);
|
|
84
|
+
const currentVersion = current?.version ?? 0;
|
|
85
|
+
const expected = params.expectedVersion ?? 0;
|
|
86
|
+
if (currentVersion !== expected) {
|
|
87
|
+
throw new errors_1.ConflictError(def.key, params.scope.kind, params.scope.refId);
|
|
88
|
+
}
|
|
89
|
+
if (!current)
|
|
90
|
+
return null;
|
|
91
|
+
await tx.closeValue(current.id);
|
|
92
|
+
await tx.createAudit({
|
|
93
|
+
valueId: current.id,
|
|
94
|
+
definitionId: def.id,
|
|
95
|
+
scopeKind: current.scopeKind,
|
|
96
|
+
scopeRefId: current.scopeRefId,
|
|
97
|
+
action: 'unset',
|
|
98
|
+
authorId: params.authorId,
|
|
99
|
+
before: this.snapshotOf(def, current),
|
|
100
|
+
reason: params.reason,
|
|
101
|
+
});
|
|
102
|
+
return current;
|
|
103
|
+
}
|
|
104
|
+
async emit(created, key) {
|
|
105
|
+
await this.bus?.publish({
|
|
106
|
+
definitionId: created.definitionId,
|
|
107
|
+
key,
|
|
108
|
+
scopeKind: created.scopeKind,
|
|
109
|
+
scopeRefId: created.scopeRefId,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
validate(def, value) {
|
|
113
|
+
switch (def.type) {
|
|
114
|
+
case 'BOOLEAN':
|
|
115
|
+
if (typeof value !== 'boolean') {
|
|
116
|
+
throw new errors_1.ValueError(`Setting "${def.key}" expects a boolean`);
|
|
117
|
+
}
|
|
118
|
+
break;
|
|
119
|
+
case 'NUMERIC': {
|
|
120
|
+
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
121
|
+
throw new errors_1.ValueError(`Setting "${def.key}" expects a finite number`);
|
|
122
|
+
}
|
|
123
|
+
if (def.min !== null && value < def.min) {
|
|
124
|
+
throw new errors_1.ValueError(`Setting "${def.key}" must be >= ${def.min}, got ${value}`);
|
|
125
|
+
}
|
|
126
|
+
if (def.max !== null && value > def.max) {
|
|
127
|
+
throw new errors_1.ValueError(`Setting "${def.key}" must be <= ${def.max}, got ${value}`);
|
|
128
|
+
}
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
case 'TEXT':
|
|
132
|
+
if (typeof value !== 'string') {
|
|
133
|
+
throw new errors_1.ValueError(`Setting "${def.key}" expects a string`);
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
case 'ENUM':
|
|
137
|
+
if (typeof value !== 'string' || !def.options.includes(value)) {
|
|
138
|
+
throw new errors_1.ValueError(`Setting "${def.key}" must be one of: ${def.options.join(', ')}`);
|
|
139
|
+
}
|
|
140
|
+
break;
|
|
141
|
+
case 'JSON':
|
|
142
|
+
try {
|
|
143
|
+
JSON.stringify(value);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
throw new errors_1.ValueError(`Setting "${def.key}" expects a JSON-serializable value`);
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case 'DATE':
|
|
150
|
+
if (!(value instanceof Date) || Number.isNaN(value.getTime())) {
|
|
151
|
+
throw new errors_1.ValueError(`Setting "${def.key}" expects a valid Date`);
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
snapshotOf(def, row) {
|
|
157
|
+
if (def.secret) {
|
|
158
|
+
return {
|
|
159
|
+
scopeKind: row.scopeKind,
|
|
160
|
+
scopeRefId: row.scopeRefId,
|
|
161
|
+
version: row.version,
|
|
162
|
+
value: REDACTED,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
scopeKind: row.scopeKind,
|
|
167
|
+
scopeRefId: row.scopeRefId,
|
|
168
|
+
version: row.version,
|
|
169
|
+
bool: row.bool,
|
|
170
|
+
num: row.num,
|
|
171
|
+
text: row.text,
|
|
172
|
+
json: row.jsonSet ? row.json : undefined,
|
|
173
|
+
date: row.date,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.Writer = Writer;
|
|
178
|
+
//# sourceMappingURL=writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/engine/writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ScopeHierarchy } from '../core/types';
|
|
2
|
+
export declare class LocalScopeHierarchy implements ScopeHierarchy {
|
|
3
|
+
private readonly parentOf;
|
|
4
|
+
private readonly childrenOf;
|
|
5
|
+
chain(id: string): Promise<string[]>;
|
|
6
|
+
descendants(id: string): Promise<string[]>;
|
|
7
|
+
children(id: string): Promise<string[]>;
|
|
8
|
+
parent(id: string): Promise<string | null>;
|
|
9
|
+
attach(id: string, parentId: string | null): Promise<void>;
|
|
10
|
+
move(id: string, newParentId: string | null): Promise<void>;
|
|
11
|
+
detach(id: string): Promise<void>;
|
|
12
|
+
private addChild;
|
|
13
|
+
private assertNoCycle;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=scope-hierarchy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-hierarchy.d.ts","sourceRoot":"","sources":["../../src/hierarchy/scope-hierarchy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,qBAAa,mBAAoB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAEvD,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAapC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAe1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI1C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvC,OAAO,CAAC,QAAQ;YAMF,aAAa;CAW3B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalScopeHierarchy = void 0;
|
|
4
|
+
const errors_1 = require("../core/errors");
|
|
5
|
+
class LocalScopeHierarchy {
|
|
6
|
+
parentOf = new Map();
|
|
7
|
+
childrenOf = new Map();
|
|
8
|
+
async chain(id) {
|
|
9
|
+
const result = [];
|
|
10
|
+
const seen = new Set();
|
|
11
|
+
let current = id;
|
|
12
|
+
while (current !== null) {
|
|
13
|
+
if (seen.has(current))
|
|
14
|
+
break;
|
|
15
|
+
seen.add(current);
|
|
16
|
+
result.push(current);
|
|
17
|
+
current = this.parentOf.get(current) ?? null;
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
async descendants(id) {
|
|
22
|
+
const result = [];
|
|
23
|
+
const stack = [id];
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
while (stack.length > 0) {
|
|
26
|
+
const current = stack.pop();
|
|
27
|
+
if (seen.has(current))
|
|
28
|
+
continue;
|
|
29
|
+
seen.add(current);
|
|
30
|
+
result.push(current);
|
|
31
|
+
const kids = this.childrenOf.get(current);
|
|
32
|
+
if (kids)
|
|
33
|
+
stack.push(...kids);
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
async children(id) {
|
|
38
|
+
return [...(this.childrenOf.get(id) ?? [])];
|
|
39
|
+
}
|
|
40
|
+
async parent(id) {
|
|
41
|
+
return this.parentOf.get(id) ?? null;
|
|
42
|
+
}
|
|
43
|
+
async attach(id, parentId) {
|
|
44
|
+
if (parentId !== null)
|
|
45
|
+
await this.assertNoCycle(id, parentId);
|
|
46
|
+
this.parentOf.set(id, parentId);
|
|
47
|
+
if (parentId !== null)
|
|
48
|
+
this.addChild(parentId, id);
|
|
49
|
+
if (!this.childrenOf.has(id))
|
|
50
|
+
this.childrenOf.set(id, new Set());
|
|
51
|
+
}
|
|
52
|
+
async move(id, newParentId) {
|
|
53
|
+
if (newParentId !== null)
|
|
54
|
+
await this.assertNoCycle(id, newParentId);
|
|
55
|
+
const oldParent = this.parentOf.get(id) ?? null;
|
|
56
|
+
if (oldParent !== null)
|
|
57
|
+
this.childrenOf.get(oldParent)?.delete(id);
|
|
58
|
+
this.parentOf.set(id, newParentId);
|
|
59
|
+
if (newParentId !== null)
|
|
60
|
+
this.addChild(newParentId, id);
|
|
61
|
+
}
|
|
62
|
+
async detach(id) {
|
|
63
|
+
const parentId = this.parentOf.get(id) ?? null;
|
|
64
|
+
const kids = [...(this.childrenOf.get(id) ?? [])];
|
|
65
|
+
for (const kid of kids) {
|
|
66
|
+
await this.move(kid, parentId);
|
|
67
|
+
}
|
|
68
|
+
if (parentId !== null)
|
|
69
|
+
this.childrenOf.get(parentId)?.delete(id);
|
|
70
|
+
this.parentOf.delete(id);
|
|
71
|
+
this.childrenOf.delete(id);
|
|
72
|
+
}
|
|
73
|
+
addChild(parentId, id) {
|
|
74
|
+
if (!this.childrenOf.has(parentId))
|
|
75
|
+
this.childrenOf.set(parentId, new Set());
|
|
76
|
+
this.childrenOf.get(parentId).add(id);
|
|
77
|
+
}
|
|
78
|
+
async assertNoCycle(id, newParentId) {
|
|
79
|
+
if (id === newParentId ||
|
|
80
|
+
(await this.chain(newParentId)).includes(id)) {
|
|
81
|
+
throw new errors_1.CycleError(id, newParentId);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.LocalScopeHierarchy = LocalScopeHierarchy;
|
|
86
|
+
//# sourceMappingURL=scope-hierarchy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-hierarchy.js","sourceRoot":"","sources":["../../src/hierarchy/scope-hierarchy.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from './core/types';
|
|
2
|
+
export * from './core/errors';
|
|
3
|
+
export * from './cache/change-bus';
|
|
4
|
+
export * from './cache/cache';
|
|
5
|
+
export * from './hierarchy/scope-hierarchy';
|
|
6
|
+
export * from './storage/storage-port';
|
|
7
|
+
export * from './storage/memory-storage';
|
|
8
|
+
export * from './engine/resolver';
|
|
9
|
+
export * from './engine/writer';
|
|
10
|
+
export * from './engine/auditor';
|
|
11
|
+
export * from './engine/hierarchy-cache-sync';
|
|
12
|
+
export * from './engine/engine';
|
|
13
|
+
export * from './typed/registry';
|
|
14
|
+
export * from './typed/typed-resolver';
|
|
15
|
+
export * from './typed/typed-writer';
|
|
16
|
+
export * from './typed/typed-auditor';
|
|
17
|
+
export * from './typed/typed-engine';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./core/types"), exports);
|
|
18
|
+
__exportStar(require("./core/errors"), exports);
|
|
19
|
+
__exportStar(require("./cache/change-bus"), exports);
|
|
20
|
+
__exportStar(require("./cache/cache"), exports);
|
|
21
|
+
__exportStar(require("./hierarchy/scope-hierarchy"), exports);
|
|
22
|
+
__exportStar(require("./storage/storage-port"), exports);
|
|
23
|
+
__exportStar(require("./storage/memory-storage"), exports);
|
|
24
|
+
__exportStar(require("./engine/resolver"), exports);
|
|
25
|
+
__exportStar(require("./engine/writer"), exports);
|
|
26
|
+
__exportStar(require("./engine/auditor"), exports);
|
|
27
|
+
__exportStar(require("./engine/hierarchy-cache-sync"), exports);
|
|
28
|
+
__exportStar(require("./engine/engine"), exports);
|
|
29
|
+
__exportStar(require("./typed/registry"), exports);
|
|
30
|
+
__exportStar(require("./typed/typed-resolver"), exports);
|
|
31
|
+
__exportStar(require("./typed/typed-writer"), exports);
|
|
32
|
+
__exportStar(require("./typed/typed-auditor"), exports);
|
|
33
|
+
__exportStar(require("./typed/typed-engine"), exports);
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,gDAA8B;AAC9B,qDAAmC;AACnC,gDAA8B;AAC9B,8DAA4C;AAC5C,yDAAuC;AACvC,2DAAyC;AACzC,oDAAkC;AAClC,kDAAgC;AAChC,mDAAiC;AACjC,gEAA8C;AAC9C,kDAAgC;AAChC,mDAAiC;AACjC,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,uDAAqC"}
|