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 @@
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"}
@@ -0,0 +1,32 @@
1
+ import type { Scope, ValueRecord } from '../core/types';
2
+ import type { Writer } from '../engine/writer';
3
+ import type { SettingScopeKind, SettingValue } from './registry';
4
+ export interface TypedSetParams<Registry, K extends keyof Registry & string> {
5
+ key: K;
6
+ scope: Scope & {
7
+ kind: SettingScopeKind<Registry, K>;
8
+ };
9
+ value: SettingValue<Registry, K>;
10
+ expectedVersion?: number;
11
+ authorId: string;
12
+ reason?: string;
13
+ }
14
+ export interface TypedUnsetParams<Registry, K extends keyof Registry & string> {
15
+ key: K;
16
+ scope: Scope & {
17
+ kind: SettingScopeKind<Registry, K>;
18
+ };
19
+ expectedVersion?: number;
20
+ authorId: string;
21
+ reason?: string;
22
+ }
23
+ export declare class TypedWriter<Registry> {
24
+ private readonly writer;
25
+ constructor(writer: Writer);
26
+ set<K extends keyof Registry & string>(params: TypedSetParams<Registry, K>): Promise<ValueRecord>;
27
+ setMany(paramsList: {
28
+ [K in keyof Registry & string]: TypedSetParams<Registry, K>;
29
+ }[keyof Registry & string][]): Promise<ValueRecord[]>;
30
+ unset<K extends keyof Registry & string>(params: TypedUnsetParams<Registry, K>): Promise<void>;
31
+ }
32
+ //# sourceMappingURL=typed-writer.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypedWriter = void 0;
4
+ class TypedWriter {
5
+ writer;
6
+ constructor(writer) {
7
+ this.writer = writer;
8
+ }
9
+ set(params) {
10
+ return this.writer.set(params);
11
+ }
12
+ setMany(paramsList) {
13
+ return this.writer.setMany(paramsList);
14
+ }
15
+ unset(params) {
16
+ return this.writer.unset(params);
17
+ }
18
+ }
19
+ exports.TypedWriter = TypedWriter;
20
+ //# sourceMappingURL=typed-writer.js.map
@@ -0,0 +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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "conftree",
3
+ "version": "0.1.0",
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
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/nrabehar/conftree.git"
8
+ },
9
+ "main": "dist/index.js",
10
+ "module": "dist/index.mjs",
11
+ "types": "dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.mjs",
16
+ "require": "./dist/index.js"
17
+ },
18
+ "./package.json": "./package.json"
19
+ },
20
+ "sideEffects": false,
21
+ "engines": {
22
+ "node": ">=22"
23
+ },
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsc -p tsconfig.build.json && tsup",
29
+ "test": "jest",
30
+ "test:watch": "jest --watch",
31
+ "lint": "eslint .",
32
+ "bench": "ts-node bench/resolve.bench.ts",
33
+ "format": "prettier --write .",
34
+ "prepare": "npm run build"
35
+ },
36
+ "keywords": [
37
+ "config",
38
+ "settings",
39
+ "feature-flags",
40
+ "hierarchy",
41
+ "multi-tenant"
42
+ ],
43
+ "license": "MIT",
44
+ "overrides": {
45
+ "esbuild": "^0.28.2"
46
+ },
47
+ "devDependencies": {
48
+ "@eslint/js": "^10.0.1",
49
+ "@types/jest": "^30.0.0",
50
+ "@types/node": "^26.4.1",
51
+ "eslint": "^10.9.1",
52
+ "jest": "^30.5.1",
53
+ "prettier": "^3.9.6",
54
+ "tinybench": "^6.1.4",
55
+ "ts-jest": "^29.4.12",
56
+ "ts-node": "^10.9.2",
57
+ "tsup": "^8.5.1",
58
+ "typescript": "^6.0.3",
59
+ "typescript-eslint": "^8.69.0"
60
+ }
61
+ }