@jewel998/config 0.1.0 → 0.1.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.
Files changed (108) hide show
  1. package/dist/client/ConfigClient.d.ts +3 -1
  2. package/dist/client/ConfigClient.d.ts.map +1 -1
  3. package/dist/client/ConfigClient.js +53 -19
  4. package/dist/client/ConfigClient.js.map +1 -1
  5. package/dist/context/autoContext.d.ts +28 -0
  6. package/dist/context/autoContext.d.ts.map +1 -0
  7. package/dist/context/autoContext.js +135 -0
  8. package/dist/context/autoContext.js.map +1 -0
  9. package/dist/createConfig.d.ts.map +1 -1
  10. package/dist/createConfig.js +31 -7
  11. package/dist/createConfig.js.map +1 -1
  12. package/dist/index.d.ts +6 -15
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +8 -9
  15. package/dist/index.js.map +1 -1
  16. package/dist/initConfig.d.ts +66 -0
  17. package/dist/initConfig.d.ts.map +1 -0
  18. package/dist/initConfig.js +128 -0
  19. package/dist/initConfig.js.map +1 -0
  20. package/dist/loading/pessimistic.d.ts.map +1 -1
  21. package/dist/loading/pessimistic.js +12 -5
  22. package/dist/loading/pessimistic.js.map +1 -1
  23. package/dist/plugins/models.d.ts +1 -0
  24. package/dist/plugins/models.d.ts.map +1 -1
  25. package/dist/plugins/prerequisites/prerequisitePlugin.d.ts.map +1 -1
  26. package/dist/plugins/prerequisites/prerequisitePlugin.js +22 -2
  27. package/dist/plugins/prerequisites/prerequisitePlugin.js.map +1 -1
  28. package/dist/transport/HttpTransport.d.ts +4 -0
  29. package/dist/transport/HttpTransport.d.ts.map +1 -1
  30. package/dist/transport/HttpTransport.js +15 -4
  31. package/dist/transport/HttpTransport.js.map +1 -1
  32. package/dist/types.d.ts +24 -37
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/types.js.map +1 -1
  35. package/dist/webhook-formats.d.ts +92 -0
  36. package/dist/webhook-formats.d.ts.map +1 -0
  37. package/dist/webhook-formats.js +141 -0
  38. package/dist/webhook-formats.js.map +1 -0
  39. package/package.json +1 -1
  40. package/dist/cache/storage.d.ts +0 -15
  41. package/dist/cache/storage.d.ts.map +0 -1
  42. package/dist/cache/storage.js +0 -43
  43. package/dist/cache/storage.js.map +0 -1
  44. package/dist/cache/types.d.ts +0 -3
  45. package/dist/cache/types.js +0 -2
  46. package/dist/cache/types.js.map +0 -1
  47. package/dist/client.d.ts +0 -15
  48. package/dist/client.d.ts.map +0 -1
  49. package/dist/client.js +0 -80
  50. package/dist/client.js.map +0 -1
  51. package/dist/core/resolver.d.ts +0 -8
  52. package/dist/core/resolver.d.ts.map +0 -1
  53. package/dist/core/resolver.js +0 -22
  54. package/dist/core/resolver.js.map +0 -1
  55. package/dist/errors/index.d.ts +0 -17
  56. package/dist/errors/index.d.ts.map +0 -1
  57. package/dist/errors/index.js +0 -29
  58. package/dist/errors/index.js.map +0 -1
  59. package/dist/example.d.ts +0 -2
  60. package/dist/example.d.ts.map +0 -1
  61. package/dist/example.js +0 -23
  62. package/dist/example.js.map +0 -1
  63. package/dist/loading/deferred.d.ts +0 -3
  64. package/dist/loading/deferred.js +0 -5
  65. package/dist/loading/deferred.js.map +0 -1
  66. package/dist/loading/optimistic.d.ts +0 -3
  67. package/dist/loading/pessimistic.d.ts +0 -3
  68. package/dist/management/index.d.ts +0 -3
  69. package/dist/management/index.d.ts.map +0 -1
  70. package/dist/management/index.js +0 -2
  71. package/dist/management/index.js.map +0 -1
  72. package/dist/management/manager.d.ts +0 -34
  73. package/dist/management/manager.d.ts.map +0 -1
  74. package/dist/management/manager.js +0 -21
  75. package/dist/management/manager.js.map +0 -1
  76. package/dist/management/memory-backend.d.ts +0 -6
  77. package/dist/management/memory-backend.d.ts.map +0 -1
  78. package/dist/management/memory-backend.js +0 -78
  79. package/dist/management/memory-backend.js.map +0 -1
  80. package/dist/plugins/index.d.ts +0 -5
  81. package/dist/plugins/lifecycle/index.d.ts +0 -4
  82. package/dist/plugins/overrides/index.d.ts +0 -2
  83. package/dist/plugins/prerequisites/index.d.ts +0 -3
  84. package/dist/plugins/rollout/index.d.ts +0 -3
  85. package/dist/plugins/rollout/murmurhash3.d.ts +0 -6
  86. package/dist/plugins/rollout/murmurhash3.d.ts.map +0 -1
  87. package/dist/plugins/rollout/murmurhash3.js +0 -56
  88. package/dist/plugins/rollout/murmurhash3.js.map +0 -1
  89. package/dist/plugins/schedule/index.d.ts +0 -2
  90. package/dist/plugins/targeting/index.d.ts +0 -4
  91. package/dist/plugins/targeting/predicates.d.ts +0 -23
  92. package/dist/plugins/targeting/predicates.js +0 -110
  93. package/dist/plugins/targeting/predicates.js.map +0 -1
  94. package/dist/plugins/types.d.ts +0 -35
  95. package/dist/plugins/types.js +0 -13
  96. package/dist/plugins/types.js.map +0 -1
  97. package/dist/registry.d.ts +0 -9
  98. package/dist/registry.d.ts.map +0 -1
  99. package/dist/registry.js +0 -22
  100. package/dist/registry.js.map +0 -1
  101. package/dist/remote/firebase-adapter.d.ts +0 -6
  102. package/dist/remote/firebase-adapter.d.ts.map +0 -1
  103. package/dist/remote/firebase-adapter.js +0 -12
  104. package/dist/remote/firebase-adapter.js.map +0 -1
  105. package/dist/remote/provider.d.ts +0 -6
  106. package/dist/remote/provider.d.ts.map +0 -1
  107. package/dist/remote/provider.js +0 -5
  108. package/dist/remote/provider.js.map +0 -1
@@ -0,0 +1,141 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // Webhook Format Constants — shared between portal, docs, and functions
3
+ // ═══════════════════════════════════════════════════════════════
4
+ /**
5
+ * Supported webhook format identifiers.
6
+ */
7
+ export const WEBHOOK_FORMATS = [
8
+ "standard",
9
+ "slack",
10
+ "discord",
11
+ "google-chat",
12
+ "ms-teams",
13
+ "custom",
14
+ ];
15
+ /**
16
+ * Human-readable descriptions for each webhook format.
17
+ */
18
+ export const WEBHOOK_FORMAT_INFO = {
19
+ standard: {
20
+ label: "Standard JSON",
21
+ description: "Plain JSON payload with all event details",
22
+ },
23
+ slack: {
24
+ label: "Slack",
25
+ description: "Block Kit formatted message for Slack channels",
26
+ },
27
+ discord: {
28
+ label: "Discord",
29
+ description: "Rich embed message for Discord channels",
30
+ },
31
+ "google-chat": {
32
+ label: "Google Chat",
33
+ description: "Cards v2 formatted message for Google Chat",
34
+ },
35
+ "ms-teams": {
36
+ label: "Microsoft Teams",
37
+ description: "Adaptive Card for Microsoft Teams channels",
38
+ },
39
+ custom: {
40
+ label: "Custom Template",
41
+ description: "User-defined template with {{variable}} interpolation",
42
+ },
43
+ };
44
+ /**
45
+ * Available template variables for the custom format.
46
+ * Used by: portal UI (variable reference), docs page, and the function's template engine.
47
+ */
48
+ export const TEMPLATE_VARIABLES = [
49
+ {
50
+ variable: "{{action}}",
51
+ description: "The action that occurred",
52
+ example: "create, update, delete, state_change",
53
+ },
54
+ {
55
+ variable: "{{resource.category}}",
56
+ description: "Resource category",
57
+ example: "config, segment, api_key, team",
58
+ },
59
+ {
60
+ variable: "{{resource.path}}",
61
+ description: "Full resource path",
62
+ example: "environments/prod/configs/feature.dark_mode",
63
+ },
64
+ {
65
+ variable: "{{resource.name}}",
66
+ description: "Human-readable resource name",
67
+ example: "feature.dark_mode",
68
+ },
69
+ {
70
+ variable: "{{environment}}",
71
+ description: "Environment name (empty if none)",
72
+ example: "production",
73
+ },
74
+ {
75
+ variable: "{{actor.id}}",
76
+ description: "User ID of the person who made the change",
77
+ example: "user_abc123",
78
+ },
79
+ {
80
+ variable: "{{timestamp}}",
81
+ description: "ISO 8601 timestamp of the event",
82
+ example: "2025-01-15T09:30:00.000Z",
83
+ },
84
+ {
85
+ variable: "{{project.id}}",
86
+ description: "Project identifier",
87
+ example: "proj_xyz",
88
+ },
89
+ {
90
+ variable: "{{webhook.id}}",
91
+ description: "Webhook identifier",
92
+ example: "whk_123",
93
+ },
94
+ {
95
+ variable: "{{changes.old}}",
96
+ description: "Previous value as JSON string (empty if create)",
97
+ example: '{"enabled": true}',
98
+ },
99
+ {
100
+ variable: "{{changes.new}}",
101
+ description: "New value as JSON string (empty if delete)",
102
+ example: '{"enabled": false}',
103
+ },
104
+ ];
105
+ /**
106
+ * Event types that can trigger webhooks.
107
+ */
108
+ export const WEBHOOK_EVENT_TYPES = [
109
+ "create",
110
+ "update",
111
+ "delete",
112
+ "state_change",
113
+ ];
114
+ /**
115
+ * Resource categories for webhook filtering.
116
+ */
117
+ export const WEBHOOK_RESOURCE_CATEGORIES = [
118
+ "config",
119
+ "segment",
120
+ "api_key",
121
+ "project",
122
+ "team",
123
+ "environment",
124
+ ];
125
+ /**
126
+ * Sample payload used for preview/testing (shared between portal and docs).
127
+ */
128
+ export const SAMPLE_WEBHOOK_EVENT = {
129
+ action: "update",
130
+ resourceCategory: "config",
131
+ resourcePath: "environments/production/configs/feature.dark_mode",
132
+ resourceName: "feature.dark_mode",
133
+ environment: "production",
134
+ actorId: "user_abc123",
135
+ timestamp: "2025-01-15T09:30:00.000Z",
136
+ oldValue: { value: false },
137
+ newValue: { value: true },
138
+ projectId: "proj_xyz",
139
+ webhookId: "whk_sample",
140
+ };
141
+ //# sourceMappingURL=webhook-formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-formats.js","sourceRoot":"","sources":["../src/webhook-formats.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jewel998/config",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -1,15 +0,0 @@
1
- export interface CacheStorage {
2
- get<T>(key: string): Promise<T | undefined> | T | undefined;
3
- set<T>(key: string, value: T): Promise<void> | void;
4
- delete(key: string): Promise<void> | void;
5
- }
6
- export interface CacheDriver {
7
- name: string;
8
- getItem<T>(key: string): Promise<T | undefined>;
9
- setItem<T>(key: string, value: T): Promise<void>;
10
- removeItem(key: string): Promise<void>;
11
- }
12
- export declare const memoryStorage: () => CacheStorage;
13
- export declare const createDriverStorage: (driver: CacheDriver, storageKey?: string) => CacheStorage;
14
- export declare const browserStorage: (storageKey?: string) => CacheStorage;
15
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/cache/storage.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC5D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAChD,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,aAAa,QAAO,YAYhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,WAAW,EACnB,mBAA+B,KAC9B,YAQD,CAAC;AAEH,eAAO,MAAM,cAAc,GACzB,mBAA+B,KAC9B,YAuBF,CAAC"}
@@ -1,43 +0,0 @@
1
- /// <reference lib="dom" />
2
- export const memoryStorage = () => {
3
- const store = new Map();
4
- return {
5
- get: (key) => store.get(key),
6
- set: (key, value) => {
7
- store.set(key, value);
8
- },
9
- delete: (key) => {
10
- store.delete(key);
11
- },
12
- };
13
- };
14
- export const createDriverStorage = (driver, storageKey = "@jewel998/config") => ({
15
- get: async (key) => driver.getItem(`${storageKey}:${key}`),
16
- set: async (key, value) => {
17
- await driver.setItem(`${storageKey}:${key}`, value);
18
- },
19
- delete: async (key) => {
20
- await driver.removeItem(`${storageKey}:${key}`);
21
- },
22
- });
23
- export const browserStorage = (storageKey = "@jewel998/config") => {
24
- const isBrowser = typeof window !== "undefined" && typeof window.localStorage !== "undefined";
25
- if (!isBrowser) {
26
- return memoryStorage();
27
- }
28
- const driver = {
29
- name: "localStorage",
30
- getItem: async (key) => {
31
- const serialized = window.localStorage.getItem(key);
32
- return serialized ? JSON.parse(serialized) : undefined;
33
- },
34
- setItem: async (key, value) => {
35
- window.localStorage.setItem(key, JSON.stringify(value));
36
- },
37
- removeItem: async (key) => {
38
- window.localStorage.removeItem(key);
39
- },
40
- };
41
- return createDriverStorage(driver, storageKey);
42
- };
43
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/cache/storage.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAe3B,MAAM,CAAC,MAAM,aAAa,GAAG,GAAiB,EAAE;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEzC,OAAO;QACL,GAAG,EAAE,CAAI,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB;QACxD,GAAG,EAAE,CAAI,GAAW,EAAE,KAAQ,EAAE,EAAE;YAChC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE;YACtB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAmB,EACnB,UAAU,GAAG,kBAAkB,EACjB,EAAE,CAAC,CAAC;IAClB,GAAG,EAAE,KAAK,EAAK,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAI,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC;IACxE,GAAG,EAAE,KAAK,EAAK,GAAW,EAAE,KAAQ,EAAE,EAAE;QACtC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAU,GAAG,kBAAkB,EACjB,EAAE;IAChB,MAAM,SAAS,GACb,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,WAAW,CAAC;IAE9E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAgB;QAC1B,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,KAAK,EAAK,GAAW,EAAE,EAAE;YAChC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpD,OAAO,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,KAAK,EAAK,GAAW,EAAE,KAAQ,EAAE,EAAE;YAC1C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;YAChC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;KACF,CAAC;IAEF,OAAO,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export type { CacheEntry, CacheStorage, BrowserStorageOptions } from "../types";
2
- export { DEFAULT_CACHE_TTL } from "../types";
3
- //# sourceMappingURL=types.d.ts.map
@@ -1,2 +0,0 @@
1
- export { DEFAULT_CACHE_TTL } from "../types";
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
package/dist/client.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import type { CacheStorage } from "./cache/storage";
2
- import type { RemoteConfigProvider } from "./remote/provider";
3
- import type { ConfigDefinition, ConfigResolveContext } from "./types";
4
- export interface ConfigClient {
5
- getValue<T>(key: string, context?: ConfigResolveContext): Promise<T | undefined>;
6
- getFlag(key: string, context?: ConfigResolveContext): Promise<boolean>;
7
- refresh(): Promise<void>;
8
- }
9
- export interface ConfigClientOptions {
10
- definitions: ConfigDefinition[];
11
- storage?: CacheStorage;
12
- remoteProvider?: RemoteConfigProvider;
13
- }
14
- export declare const createConfigClient: (options: ConfigClientOptions) => ConfigClient;
15
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EACR,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAiED,eAAO,MAAM,kBAAkB,GAC7B,SAAS,mBAAmB,KAC3B,YA4CF,CAAC"}
package/dist/client.js DELETED
@@ -1,80 +0,0 @@
1
- import { resolveConfigValue } from "./core/resolver";
2
- const buildScopedKey = (key, context) => {
3
- if (!context) {
4
- return key;
5
- }
6
- const parts = [key];
7
- if (context.tenantId) {
8
- parts.push(`tenant:${context.tenantId}`);
9
- }
10
- if (context.projectId) {
11
- parts.push(`project:${context.projectId}`);
12
- }
13
- if (context.environment) {
14
- parts.push(`environment:${context.environment}`);
15
- }
16
- return parts.join(":");
17
- };
18
- const resolveCachedValue = async (storage, key, context) => {
19
- const candidates = [key];
20
- if (context?.projectId) {
21
- candidates.push(`${key}:${context.projectId}`);
22
- candidates.push(`${key}:project:${context.projectId}`);
23
- }
24
- if (context?.tenantId) {
25
- candidates.push(`${key}:${context.tenantId}`);
26
- candidates.push(`${key}:tenant:${context.tenantId}`);
27
- }
28
- if (context?.environment) {
29
- candidates.push(`${key}:${context.environment}`);
30
- candidates.push(`${key}:environment:${context.environment}`);
31
- }
32
- if (context?.tenantId && context?.projectId) {
33
- candidates.push(`${key}:${context.tenantId}:${context.projectId}`);
34
- }
35
- candidates.push(buildScopedKey(key, context));
36
- for (const candidate of candidates) {
37
- const value = await storage.get(candidate);
38
- if (value !== undefined) {
39
- return value;
40
- }
41
- }
42
- return undefined;
43
- };
44
- export const createConfigClient = (options) => {
45
- const { storage, remoteProvider, definitions } = options;
46
- const getValue = async (key, context) => {
47
- if (!storage) {
48
- return undefined;
49
- }
50
- const cachedValue = await resolveCachedValue(storage, key, context);
51
- const remoteValue = remoteProvider
52
- ? await remoteProvider.getValue(key)
53
- : undefined;
54
- return resolveConfigValue(key, {
55
- definitions,
56
- cache: cachedValue !== undefined ? { [key]: cachedValue } : {},
57
- remote: remoteValue !== undefined ? { [key]: remoteValue } : {},
58
- });
59
- };
60
- return {
61
- getValue,
62
- getFlag: async (key, context) => {
63
- const value = await getValue(key, context);
64
- return Boolean(value);
65
- },
66
- refresh: async () => {
67
- if (!storage || !remoteProvider) {
68
- return;
69
- }
70
- const values = definitions.map(async (definition) => {
71
- const remoteValue = await remoteProvider.getValue(definition.key);
72
- if (remoteValue !== undefined) {
73
- await storage.set(definition.key, remoteValue);
74
- }
75
- });
76
- await Promise.all(values);
77
- },
78
- };
79
- };
80
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { ConfigDefinition, ConfigResolveContext } from "../types";
2
- export interface ConfigResolverOptions {
3
- definitions: ConfigDefinition[];
4
- cache?: Record<string, unknown>;
5
- remote?: Record<string, unknown>;
6
- }
7
- export declare const resolveConfigValue: <T>(key: string, options: ConfigResolverOptions, _context?: ConfigResolveContext) => T | undefined;
8
- //# sourceMappingURL=resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEvE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAClC,KAAK,MAAM,EACX,SAAS,qBAAqB,EAC9B,WAAW,oBAAoB,KAC9B,CAAC,GAAG,SA8BN,CAAC"}
@@ -1,22 +0,0 @@
1
- export const resolveConfigValue = (key, options, _context) => {
2
- const definition = options.definitions.find((entry) => entry.key === key);
3
- if (!definition) {
4
- return undefined;
5
- }
6
- const cachedValue = options.cache?.[key];
7
- const remoteValue = options.remote?.[key];
8
- if (definition.sourceMode === "offline") {
9
- return cachedValue ?? definition.defaultValue ?? definition.fallbackValue;
10
- }
11
- if (definition.sourceMode === "remote") {
12
- return (remoteValue ??
13
- cachedValue ??
14
- definition.defaultValue ??
15
- definition.fallbackValue);
16
- }
17
- return (cachedValue ??
18
- remoteValue ??
19
- definition.defaultValue ??
20
- definition.fallbackValue);
21
- };
22
- //# sourceMappingURL=resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAAW,EACX,OAA8B,EAC9B,QAA+B,EAChB,EAAE;IACjB,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CACvC,CAAC;IAElC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAkB,CAAC;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAkB,CAAC;IAE3D,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,WAAW,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,aAAa,CAAC;IAC5E,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,CACL,WAAW;YACX,WAAW;YACX,UAAU,CAAC,YAAY;YACvB,UAAU,CAAC,aAAa,CACzB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,WAAW;QACX,WAAW;QACX,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,aAAa,CACzB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- export type ConfigErrorCode = "MISSING_CLIENT_ID" | "AUTHENTICATION_FAILED" | "INITIALIZATION_FAILED" | "TIMEOUT" | "RATE_LIMITED" | "REVOKED" | "NETWORK_ERROR";
2
- export declare class ConfigError extends Error {
3
- readonly code: ConfigErrorCode;
4
- name: string;
5
- constructor(message: string, code: ConfigErrorCode);
6
- }
7
- export declare class InitializationError extends ConfigError {
8
- readonly cause?: Error | undefined;
9
- constructor(message: string, cause?: Error | undefined);
10
- }
11
- export declare class TimeoutError extends ConfigError {
12
- constructor(timeoutMs: number);
13
- }
14
- export declare class AuthenticationError extends ConfigError {
15
- constructor(message: string);
16
- }
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,uBAAuB,GACvB,SAAS,GACT,cAAc,GACd,SAAS,GACT,eAAe,CAAC;AAEpB,qBAAa,WAAY,SAAQ,KAAK;aAKlB,IAAI,EAAE,eAAe;IAJ9B,IAAI,SAAiB;gBAG5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,eAAe;CAIxC;AAED,qBAAa,mBAAoB,SAAQ,WAAW;aAGhC,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,SAAS,EAAE,MAAM;CAI9B;AAED,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,EAAE,MAAM;CAI5B"}
@@ -1,29 +0,0 @@
1
- export class ConfigError extends Error {
2
- code;
3
- name = "ConfigError";
4
- constructor(message, code) {
5
- super(message);
6
- this.code = code;
7
- }
8
- }
9
- export class InitializationError extends ConfigError {
10
- cause;
11
- constructor(message, cause) {
12
- super(message, "INITIALIZATION_FAILED");
13
- this.cause = cause;
14
- this.name = "InitializationError";
15
- }
16
- }
17
- export class TimeoutError extends ConfigError {
18
- constructor(timeoutMs) {
19
- super(`Config initialization timed out after ${timeoutMs}ms`, "TIMEOUT");
20
- this.name = "TimeoutError";
21
- }
22
- }
23
- export class AuthenticationError extends ConfigError {
24
- constructor(message) {
25
- super(message, "AUTHENTICATION_FAILED");
26
- this.name = "AuthenticationError";
27
- }
28
- }
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,WAAY,SAAQ,KAAK;IAKlB;IAJT,IAAI,GAAG,aAAa,CAAC;IAE9B,YACE,OAAe,EACC,IAAqB;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAiB;IAGvC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAGhC;IAFlB,YACE,OAAe,EACC,KAAa;QAE7B,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAFxB,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,YAAY,SAAiB;QAC3B,KAAK,CAAC,yCAAyC,SAAS,IAAI,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
package/dist/example.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare const createExampleClient: () => import("./client").ConfigClient;
2
- //# sourceMappingURL=example.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,uCAmB5B,CAAC"}
package/dist/example.js DELETED
@@ -1,23 +0,0 @@
1
- import { browserStorage } from "./cache/storage";
2
- import { createConfigClient } from "./client";
3
- import { createFirebaseRemoteConfigProvider } from "./remote/firebase-adapter";
4
- export const createExampleClient = () => createConfigClient({
5
- definitions: [
6
- {
7
- key: "feature.beta",
8
- defaultValue: false,
9
- sourceMode: "remote",
10
- scope: "project",
11
- },
12
- ],
13
- storage: browserStorage(),
14
- remoteProvider: createFirebaseRemoteConfigProvider({
15
- fetcher: async (key) => {
16
- if (key === "feature.beta") {
17
- return true;
18
- }
19
- return undefined;
20
- },
21
- }),
22
- });
23
- //# sourceMappingURL=example.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example.js","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CACtC,kBAAkB,CAAC;IACjB,WAAW,EAAE;QACX;YACE,GAAG,EAAE,cAAc;YACnB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,SAAS;SACjB;KACF;IACD,OAAO,EAAE,cAAc,EAAE;IACzB,cAAc,EAAE,kCAAkC,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;YAC7B,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;CACH,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { LoadingResult } from "../types";
2
- export declare const executeDeferred: () => LoadingResult;
3
- //# sourceMappingURL=deferred.d.ts.map
@@ -1,5 +0,0 @@
1
- export const executeDeferred = () => {
2
- // No network activity at init time
3
- return { initialData: {}, status: "ready" };
4
- };
5
- //# sourceMappingURL=deferred.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deferred.js","sourceRoot":"","sources":["../../src/loading/deferred.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,GAAkB,EAAE;IACjD,mCAAmC;IACnC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC9C,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { LoadingContext, LoadingResult } from "../types";
2
- export declare const executeOptimistic: (ctx: LoadingContext) => LoadingResult;
3
- //# sourceMappingURL=optimistic.d.ts.map
@@ -1,3 +0,0 @@
1
- import type { LoadingContext, LoadingResult } from "../types";
2
- export declare const executePessimistic: (ctx: LoadingContext) => Promise<LoadingResult>;
3
- //# sourceMappingURL=pessimistic.d.ts.map
@@ -1,3 +0,0 @@
1
- export { createConfigManager } from "./manager";
2
- export type { ConfigManager, ConfigManagerOptions } from "./manager";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/management/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,2 +0,0 @@
1
- export { createConfigManager } from "./manager";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/management/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,34 +0,0 @@
1
- import type { ConfigVersionRecord, EnvironmentRecord, ProjectRecord } from "../types";
2
- export interface ConfigManagerBackend {
3
- createProject(name: string, ownerId: string): Promise<ProjectRecord>;
4
- deleteProject(projectId: string): Promise<void>;
5
- listProjects(ownerId: string): Promise<ProjectRecord[]>;
6
- createEnvironment(projectId: string, name: string): Promise<EnvironmentRecord>;
7
- deleteEnvironment(projectId: string, environmentId: string): Promise<void>;
8
- listEnvironments(projectId: string): Promise<EnvironmentRecord[]>;
9
- createVersion(projectId: string, version: string, payload: Record<string, unknown>, environmentId?: string): Promise<ConfigVersionRecord>;
10
- publishVersion(projectId: string, versionId: string): Promise<ConfigVersionRecord>;
11
- listVersions(projectId: string): Promise<ConfigVersionRecord[]>;
12
- }
13
- export interface ConfigManagerOptions {
14
- backend: ConfigManagerBackend;
15
- }
16
- export interface ConfigManager {
17
- projects: {
18
- create(name: string, ownerId: string): Promise<ProjectRecord>;
19
- delete(projectId: string): Promise<void>;
20
- list(ownerId: string): Promise<ProjectRecord[]>;
21
- };
22
- environments: {
23
- create(projectId: string, name: string): Promise<EnvironmentRecord>;
24
- delete(projectId: string, environmentId: string): Promise<void>;
25
- list(projectId: string): Promise<EnvironmentRecord[]>;
26
- };
27
- versions: {
28
- create(projectId: string, version: string, payload: Record<string, unknown>, environmentId?: string): Promise<ConfigVersionRecord>;
29
- publish(projectId: string, versionId: string): Promise<ConfigVersionRecord>;
30
- list(projectId: string): Promise<ConfigVersionRecord[]>;
31
- };
32
- }
33
- export declare const createConfigManager: (options: ConfigManagerOptions) => ConfigManager;
34
- //# sourceMappingURL=manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/management/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAExD,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAElE,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QACR,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;KACjD,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACpE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACvD,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAChC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;KACzD,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,GAC9B,SAAS,oBAAoB,KAC5B,aAuBF,CAAC"}
@@ -1,21 +0,0 @@
1
- export const createConfigManager = (options) => {
2
- const { backend } = options;
3
- return {
4
- projects: {
5
- create: (name, ownerId) => backend.createProject(name, ownerId),
6
- delete: (projectId) => backend.deleteProject(projectId),
7
- list: (ownerId) => backend.listProjects(ownerId),
8
- },
9
- environments: {
10
- create: (projectId, name) => backend.createEnvironment(projectId, name),
11
- delete: (projectId, environmentId) => backend.deleteEnvironment(projectId, environmentId),
12
- list: (projectId) => backend.listEnvironments(projectId),
13
- },
14
- versions: {
15
- create: (projectId, version, payload, environmentId) => backend.createVersion(projectId, version, payload, environmentId),
16
- publish: (projectId, versionId) => backend.publishVersion(projectId, versionId),
17
- list: (projectId) => backend.listVersions(projectId),
18
- },
19
- };
20
- };
21
- //# sourceMappingURL=manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/management/manager.ts"],"names":[],"mappings":"AA0DA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAA6B,EACd,EAAE;IACjB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,OAAO;QACL,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/D,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;YACvD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;SACjD;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC;YACvE,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CACnC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC;YACrD,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC;SACzD;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,CACrD,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;YACnE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAChC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC;YAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;SACrD;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { ConfigManagerBackend } from "./manager";
2
- /**
3
- * In-memory backend for testing and local development.
4
- */
5
- export declare const createMemoryBackend: () => ConfigManagerBackend;
6
- //# sourceMappingURL=memory-backend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-backend.d.ts","sourceRoot":"","sources":["../../src/management/memory-backend.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAO,oBAwFtC,CAAC"}