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.
Files changed (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +143 -0
  3. package/dist/cache/cache.d.ts +23 -0
  4. package/dist/cache/cache.d.ts.map +1 -0
  5. package/dist/cache/cache.js +95 -0
  6. package/dist/cache/cache.js.map +1 -0
  7. package/dist/cache/change-bus.d.ts +16 -0
  8. package/dist/cache/change-bus.d.ts.map +1 -0
  9. package/dist/cache/change-bus.js +14 -0
  10. package/dist/cache/change-bus.js.map +1 -0
  11. package/dist/core/errors.d.ts +27 -0
  12. package/dist/core/errors.d.ts.map +1 -0
  13. package/dist/core/errors.js +58 -0
  14. package/dist/core/errors.js.map +1 -0
  15. package/dist/core/types.d.ts +52 -0
  16. package/dist/core/types.d.ts.map +1 -0
  17. package/dist/core/types.js +5 -0
  18. package/dist/core/types.js.map +1 -0
  19. package/dist/engine/auditor.d.ts +8 -0
  20. package/dist/engine/auditor.d.ts.map +1 -0
  21. package/dist/engine/auditor.js +22 -0
  22. package/dist/engine/auditor.js.map +1 -0
  23. package/dist/engine/engine.d.ts +25 -0
  24. package/dist/engine/engine.d.ts.map +1 -0
  25. package/dist/engine/engine.js +24 -0
  26. package/dist/engine/engine.js.map +1 -0
  27. package/dist/engine/hierarchy-cache-sync.d.ts +4 -0
  28. package/dist/engine/hierarchy-cache-sync.d.ts.map +1 -0
  29. package/dist/engine/hierarchy-cache-sync.js +26 -0
  30. package/dist/engine/hierarchy-cache-sync.js.map +1 -0
  31. package/dist/engine/resolver.d.ts +24 -0
  32. package/dist/engine/resolver.d.ts.map +1 -0
  33. package/dist/engine/resolver.js +195 -0
  34. package/dist/engine/resolver.js.map +1 -0
  35. package/dist/engine/writer.d.ts +32 -0
  36. package/dist/engine/writer.d.ts.map +1 -0
  37. package/dist/engine/writer.js +178 -0
  38. package/dist/engine/writer.js.map +1 -0
  39. package/dist/hierarchy/scope-hierarchy.d.ts +15 -0
  40. package/dist/hierarchy/scope-hierarchy.d.ts.map +1 -0
  41. package/dist/hierarchy/scope-hierarchy.js +86 -0
  42. package/dist/hierarchy/scope-hierarchy.js.map +1 -0
  43. package/dist/index.d.ts +18 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +34 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/index.mjs +895 -0
  48. package/dist/index.mjs.map +1 -0
  49. package/dist/storage/memory-storage.d.ts +25 -0
  50. package/dist/storage/memory-storage.d.ts.map +1 -0
  51. package/dist/storage/memory-storage.js +176 -0
  52. package/dist/storage/memory-storage.js.map +1 -0
  53. package/dist/storage/storage-port.d.ts +93 -0
  54. package/dist/storage/storage-port.d.ts.map +1 -0
  55. package/dist/storage/storage-port.js +3 -0
  56. package/dist/storage/storage-port.js.map +1 -0
  57. package/dist/typed/registry.d.ts +7 -0
  58. package/dist/typed/registry.d.ts.map +1 -0
  59. package/dist/typed/registry.js +3 -0
  60. package/dist/typed/registry.js.map +1 -0
  61. package/dist/typed/typed-auditor.d.ts +12 -0
  62. package/dist/typed/typed-auditor.d.ts.map +1 -0
  63. package/dist/typed/typed-auditor.js +14 -0
  64. package/dist/typed/typed-auditor.js.map +1 -0
  65. package/dist/typed/typed-engine.d.ts +11 -0
  66. package/dist/typed/typed-engine.d.ts.map +1 -0
  67. package/dist/typed/typed-engine.js +14 -0
  68. package/dist/typed/typed-engine.js.map +1 -0
  69. package/dist/typed/typed-resolver.d.ts +23 -0
  70. package/dist/typed/typed-resolver.d.ts.map +1 -0
  71. package/dist/typed/typed-resolver.js +22 -0
  72. package/dist/typed/typed-resolver.js.map +1 -0
  73. package/dist/typed/typed-writer.d.ts +32 -0
  74. package/dist/typed/typed-writer.d.ts.map +1 -0
  75. package/dist/typed/typed-writer.js +20 -0
  76. package/dist/typed/typed-writer.js.map +1 -0
  77. 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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"}
@@ -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"}