conftree 0.2.0 → 0.3.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 (44) hide show
  1. package/README.md +42 -3
  2. package/dist/core/errors.d.ts +4 -1
  3. package/dist/core/errors.d.ts.map +1 -1
  4. package/dist/core/errors.js +7 -1
  5. package/dist/core/errors.js.map +1 -1
  6. package/dist/engine/resolver.d.ts +1 -0
  7. package/dist/engine/resolver.d.ts.map +1 -1
  8. package/dist/engine/resolver.js +1 -0
  9. package/dist/engine/resolver.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +93 -18
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/storage/memory-storage.d.ts +3 -1
  17. package/dist/storage/memory-storage.d.ts.map +1 -1
  18. package/dist/storage/memory-storage.js +26 -5
  19. package/dist/storage/memory-storage.js.map +1 -1
  20. package/dist/storage/storage-port.d.ts +3 -1
  21. package/dist/storage/storage-port.d.ts.map +1 -1
  22. package/dist/typed/category-guard.d.ts +9 -0
  23. package/dist/typed/category-guard.d.ts.map +1 -0
  24. package/dist/typed/category-guard.js +23 -0
  25. package/dist/typed/category-guard.js.map +1 -0
  26. package/dist/typed/registry.d.ts +8 -3
  27. package/dist/typed/registry.d.ts.map +1 -1
  28. package/dist/typed/typed-auditor.d.ts +3 -1
  29. package/dist/typed/typed-auditor.d.ts.map +1 -1
  30. package/dist/typed/typed-auditor.js +5 -2
  31. package/dist/typed/typed-auditor.js.map +1 -1
  32. package/dist/typed/typed-engine.d.ts +2 -0
  33. package/dist/typed/typed-engine.d.ts.map +1 -1
  34. package/dist/typed/typed-engine.js +13 -5
  35. package/dist/typed/typed-engine.js.map +1 -1
  36. package/dist/typed/typed-resolver.d.ts +4 -1
  37. package/dist/typed/typed-resolver.d.ts.map +1 -1
  38. package/dist/typed/typed-resolver.js +12 -3
  39. package/dist/typed/typed-resolver.js.map +1 -1
  40. package/dist/typed/typed-writer.d.ts +3 -1
  41. package/dist/typed/typed-writer.d.ts.map +1 -1
  42. package/dist/typed/typed-writer.js +9 -4
  43. package/dist/typed/typed-writer.js.map +1 -1
  44. package/package.json +1 -1
@@ -2,10 +2,12 @@ import type { Engine } from '../engine/engine';
2
2
  import { TypedResolver } from './typed-resolver';
3
3
  import { TypedWriter } from './typed-writer';
4
4
  import { TypedAuditor } from './typed-auditor';
5
+ import type { KeysInCategory } from './registry';
5
6
  export interface TypedEngine<Registry> {
6
7
  resolver: TypedResolver<Registry>;
7
8
  writer: TypedWriter<Registry>;
8
9
  auditor: TypedAuditor<Registry>;
10
+ category<C extends string>(category: C): TypedEngine<KeysInCategory<Registry, C>>;
9
11
  }
10
12
  export declare function createTypedEngine<Registry>(engine: Engine): TypedEngine<Registry>;
11
13
  //# sourceMappingURL=typed-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typed-engine.d.ts","sourceRoot":"","sources":["../../src/typed/typed-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,WAAW,CAAC,QAAQ;IACpC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;CAChC;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EACzC,MAAM,EAAE,MAAM,GACZ,WAAW,CAAC,QAAQ,CAAC,CAMvB"}
1
+ {"version":3,"file":"typed-engine.d.ts","sourceRoot":"","sources":["../../src/typed/typed-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,WAAW,CAAC,QAAQ;IACpC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,QAAQ,CAAC,CAAC,SAAS,MAAM,EACxB,QAAQ,EAAE,CAAC,GACT,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5C;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EACzC,MAAM,EAAE,MAAM,GACZ,WAAW,CAAC,QAAQ,CAAC,CAkBvB"}
@@ -4,11 +4,19 @@ exports.createTypedEngine = createTypedEngine;
4
4
  const typed_resolver_1 = require("./typed-resolver");
5
5
  const typed_writer_1 = require("./typed-writer");
6
6
  const typed_auditor_1 = require("./typed-auditor");
7
+ const category_guard_1 = require("./category-guard");
7
8
  function createTypedEngine(engine) {
8
- return {
9
- resolver: new typed_resolver_1.TypedResolver(engine.resolver),
10
- writer: new typed_writer_1.TypedWriter(engine.writer),
11
- auditor: new typed_auditor_1.TypedAuditor(engine.auditor),
12
- };
9
+ function build(fixedCategory) {
10
+ const guard = fixedCategory
11
+ ? new category_guard_1.CategoryGuard(engine.storage, fixedCategory)
12
+ : undefined;
13
+ return {
14
+ resolver: new typed_resolver_1.TypedResolver(engine.resolver, fixedCategory, guard),
15
+ writer: new typed_writer_1.TypedWriter(engine.writer, guard),
16
+ auditor: new typed_auditor_1.TypedAuditor(engine.auditor, guard),
17
+ category: (category) => build(category),
18
+ };
19
+ }
20
+ return build();
13
21
  }
14
22
  //# sourceMappingURL=typed-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typed-engine.js","sourceRoot":"","sources":["../../src/typed/typed-engine.ts"],"names":[],"mappings":";;AAWA,8CAQC;AAlBD,qDAAiD;AACjD,iDAA6C;AAC7C,mDAA+C;AAQ/C,SAAgB,iBAAiB,CAChC,MAAc;IAEd,OAAO;QACN,QAAQ,EAAE,IAAI,8BAAa,CAAW,MAAM,CAAC,QAAQ,CAAC;QACtD,MAAM,EAAE,IAAI,0BAAW,CAAW,MAAM,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,IAAI,4BAAY,CAAW,MAAM,CAAC,OAAO,CAAC;KACnD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"typed-engine.js","sourceRoot":"","sources":["../../src/typed/typed-engine.ts"],"names":[],"mappings":";;AAgBA,8CAoBC;AAnCD,qDAAiD;AACjD,iDAA6C;AAC7C,mDAA+C;AAC/C,qDAAiD;AAYjD,SAAgB,iBAAiB,CAChC,MAAc;IAEd,SAAS,KAAK,CAAI,aAAsB;QACvC,MAAM,KAAK,GAAG,aAAa;YAC1B,CAAC,CAAC,IAAI,8BAAa,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;YAClD,CAAC,CAAC,SAAS,CAAC;QACb,OAAO;YACN,QAAQ,EAAE,IAAI,8BAAa,CAC1B,MAAM,CAAC,QAAQ,EACf,aAAa,EACb,KAAK,CACL;YACD,MAAM,EAAE,IAAI,0BAAW,CAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;YAChD,OAAO,EAAE,IAAI,4BAAY,CAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;YACnD,QAAQ,EAAE,CAAmB,QAAW,EAAE,EAAE,CAC3C,KAAK,CAAuB,QAAQ,CAAC;SACtC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,EAAY,CAAC;AAC1B,CAAC"}
@@ -1,9 +1,12 @@
1
1
  import type { Scope } from '../core/types';
2
2
  import type { Resolver } from '../engine/resolver';
3
+ import type { CategoryGuard } from './category-guard';
3
4
  import type { SettingScopeKind, SettingValue } from './registry';
4
5
  export declare class TypedResolver<Registry> {
5
6
  private readonly resolver;
6
- constructor(resolver: Resolver);
7
+ private readonly fixedCategory?;
8
+ private readonly guard?;
9
+ constructor(resolver: Resolver, fixedCategory?: string | undefined, guard?: CategoryGuard | undefined);
7
10
  get<K extends keyof Registry & string>(key: K, scope: Scope & {
8
11
  kind: SettingScopeKind<Registry, K>;
9
12
  }, asOf?: Date): Promise<SettingValue<Registry, K>>;
@@ -1 +1 @@
1
- {"version":3,"file":"typed-resolver.d.ts","sourceRoot":"","sources":["../../src/typed/typed-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,qBAAa,aAAa,CAAC,QAAQ;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAE/C,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM,EACpC,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAAE,EACtD,IAAI,CAAC,EAAE,IAAI,GACT,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAM/B,OAAO,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,EAC3D,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,IAAI,GACT,OAAO,CAAC;SAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;KAAE,CAAC;IAKrD,MAAM,CACX,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAC5C,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;aACf,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzD,CAAC,CAAC;QACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CASF"}
1
+ {"version":3,"file":"typed-resolver.d.ts","sourceRoot":"","sources":["../../src/typed/typed-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,qBAAa,aAAa,CAAC,QAAQ;IAEjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAFN,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,MAAM,YAAA,EACtB,KAAK,CAAC,EAAE,aAAa,YAAA;IAGjC,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM,EAC1C,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAAE,EACtD,IAAI,CAAC,EAAE,IAAI,GACT,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAO/B,OAAO,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,EAC3D,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,IAAI,GACT,OAAO,CAAC;SAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;KAAE,CAAC;IAMrD,MAAM,CACX,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAC5C,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;aACf,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzD,CAAC,CAAC;QACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CAYF"}
@@ -3,18 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypedResolver = void 0;
4
4
  class TypedResolver {
5
5
  resolver;
6
- constructor(resolver) {
6
+ fixedCategory;
7
+ guard;
8
+ constructor(resolver, fixedCategory, guard) {
7
9
  this.resolver = resolver;
10
+ this.fixedCategory = fixedCategory;
11
+ this.guard = guard;
8
12
  }
9
- get(key, scope, asOf) {
13
+ async get(key, scope, asOf) {
14
+ await this.guard?.assert(key);
10
15
  return this.resolver.get(key, scope, asOf);
11
16
  }
12
17
  async getMany(keys, scope, asOf) {
18
+ await this.guard?.assertAll(keys);
13
19
  const result = await this.resolver.getMany([...keys], scope, asOf);
14
20
  return result;
15
21
  }
16
22
  async listAt(scope, opts = {}) {
17
- const page = await this.resolver.listAt(scope, opts);
23
+ const page = await this.resolver.listAt(scope, {
24
+ ...opts,
25
+ category: this.fixedCategory,
26
+ });
18
27
  return page;
19
28
  }
20
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typed-resolver.js","sourceRoot":"","sources":["../../src/typed/typed-resolver.ts"],"names":[],"mappings":";;;AAIA,MAAa,aAAa;IACI;IAA7B,YAA6B,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEnD,GAAG,CACF,GAAM,EACN,KAAsD,EACtD,IAAW;QAEX,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAExC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACZ,IAAO,EACP,KAAY,EACZ,IAAW;QAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACnE,OAAO,MAAyD,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CACX,KAAY,EACZ,OAA4C,EAAE;QAO9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrD,OAAO,IAKN,CAAC;IACH,CAAC;CACD;AAvCD,sCAuCC"}
1
+ {"version":3,"file":"typed-resolver.js","sourceRoot":"","sources":["../../src/typed/typed-resolver.ts"],"names":[],"mappings":";;;AAKA,MAAa,aAAa;IAEP;IACA;IACA;IAHlB,YACkB,QAAkB,EAClB,aAAsB,EACtB,KAAqB;QAFrB,aAAQ,GAAR,QAAQ,CAAU;QAClB,kBAAa,GAAb,aAAa,CAAS;QACtB,UAAK,GAAL,KAAK,CAAgB;IACpC,CAAC;IAEJ,KAAK,CAAC,GAAG,CACR,GAAM,EACN,KAAsD,EACtD,IAAW;QAEX,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAExC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACZ,IAAO,EACP,KAAY,EACZ,IAAW;QAEX,MAAM,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACnE,OAAO,MAAyD,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CACX,KAAY,EACZ,OAA4C,EAAE;QAO9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;YAC9C,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,aAAa;SAC5B,CAAC,CAAC;QACH,OAAO,IAKN,CAAC;IACH,CAAC;CACD;AAhDD,sCAgDC"}
@@ -1,5 +1,6 @@
1
1
  import type { Scope, ValueRecord } from '../core/types';
2
2
  import type { Writer } from '../engine/writer';
3
+ import type { CategoryGuard } from './category-guard';
3
4
  import type { SettingScopeKind, SettingValue } from './registry';
4
5
  export interface TypedSetParams<Registry, K extends keyof Registry & string> {
5
6
  key: K;
@@ -22,7 +23,8 @@ export interface TypedUnsetParams<Registry, K extends keyof Registry & string> {
22
23
  }
23
24
  export declare class TypedWriter<Registry> {
24
25
  private readonly writer;
25
- constructor(writer: Writer);
26
+ private readonly guard?;
27
+ constructor(writer: Writer, guard?: CategoryGuard | undefined);
26
28
  set<K extends keyof Registry & string>(params: TypedSetParams<Registry, K>): Promise<ValueRecord>;
27
29
  setMany(paramsList: {
28
30
  [K in keyof Registry & string]: TypedSetParams<Registry, K>;
@@ -1 +1 @@
1
- {"version":3,"file":"typed-writer.d.ts","sourceRoot":"","sources":["../../src/typed/typed-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,cAAc,CAAC,QAAQ,EAAE,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM;IAC1E,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAAE,CAAC;IACvD,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB,CAAC,QAAQ,EAAE,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM;IAC5E,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAAE,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW,CAAC,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM,EACpC,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;IAIvB,OAAO,CACN,UAAU,EAAE;SACV,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,GAC1B,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzB,KAAK,CAAC,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM,EACtC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC;CAGhB"}
1
+ {"version":3,"file":"typed-writer.d.ts","sourceRoot":"","sources":["../../src/typed/typed-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,cAAc,CAAC,QAAQ,EAAE,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM;IAC1E,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAAE,CAAC;IACvD,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB,CAAC,QAAQ,EAAE,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM;IAC5E,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAAE,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW,CAAC,QAAQ;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBADN,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,aAAa,YAAA;IAGjC,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM,EAC1C,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;IAKjB,OAAO,CACZ,UAAU,EAAE;SACV,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,GAC1B,OAAO,CAAC,WAAW,EAAE,CAAC;IAKnB,KAAK,CAAC,CAAC,SAAS,MAAM,QAAQ,GAAG,MAAM,EAC5C,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC;CAIhB"}
@@ -3,16 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypedWriter = void 0;
4
4
  class TypedWriter {
5
5
  writer;
6
- constructor(writer) {
6
+ guard;
7
+ constructor(writer, guard) {
7
8
  this.writer = writer;
9
+ this.guard = guard;
8
10
  }
9
- set(params) {
11
+ async set(params) {
12
+ await this.guard?.assert(params.key);
10
13
  return this.writer.set(params);
11
14
  }
12
- setMany(paramsList) {
15
+ async setMany(paramsList) {
16
+ await this.guard?.assertAll(paramsList.map((p) => p.key));
13
17
  return this.writer.setMany(paramsList);
14
18
  }
15
- unset(params) {
19
+ async unset(params) {
20
+ await this.guard?.assert(params.key);
16
21
  return this.writer.unset(params);
17
22
  }
18
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typed-writer.js","sourceRoot":"","sources":["../../src/typed/typed-writer.ts"],"names":[],"mappings":";;;AAqBA,MAAa,WAAW;IACM;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,GAAG,CACF,MAAmC;QAEnC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAA8B,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CACN,UAE4B;QAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAoC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CACJ,MAAqC;QAErC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACD;AAtBD,kCAsBC"}
1
+ {"version":3,"file":"typed-writer.js","sourceRoot":"","sources":["../../src/typed/typed-writer.ts"],"names":[],"mappings":";;;AAsBA,MAAa,WAAW;IAEL;IACA;IAFlB,YACkB,MAAc,EACd,KAAqB;QADrB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;IACpC,CAAC;IAEJ,KAAK,CAAC,GAAG,CACR,MAAmC;QAEnC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAA8B,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CACZ,UAE4B;QAE5B,MAAM,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAoC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,KAAK,CACV,MAAqC;QAErC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACD;AA5BD,kCA4BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conftree",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Generic hierarchical configuration engine with arbitrary scopes, inheritance, caching, and audit. Zero required dependencies: works standalone or with any storage/pub-sub backend via simple ports.",
5
5
  "repository": {
6
6
  "type": "git",