@jewel998/config 0.1.0 → 0.1.3
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 +84 -0
- package/README.md +234 -0
- package/dist/client/ConfigClient.d.ts +3 -1
- package/dist/client/ConfigClient.d.ts.map +1 -1
- package/dist/client/ConfigClient.js +53 -19
- package/dist/client/ConfigClient.js.map +1 -1
- package/dist/context/autoContext.d.ts +28 -0
- package/dist/context/autoContext.d.ts.map +1 -0
- package/dist/context/autoContext.js +135 -0
- package/dist/context/autoContext.js.map +1 -0
- package/dist/createConfig.d.ts.map +1 -1
- package/dist/createConfig.js +31 -7
- package/dist/createConfig.js.map +1 -1
- package/dist/index.d.ts +6 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -9
- package/dist/index.js.map +1 -1
- package/dist/initConfig.d.ts +66 -0
- package/dist/initConfig.d.ts.map +1 -0
- package/dist/initConfig.js +128 -0
- package/dist/initConfig.js.map +1 -0
- package/dist/loading/pessimistic.d.ts.map +1 -1
- package/dist/loading/pessimistic.js +12 -5
- package/dist/loading/pessimistic.js.map +1 -1
- package/dist/plugins/models.d.ts +1 -0
- package/dist/plugins/models.d.ts.map +1 -1
- package/dist/plugins/prerequisites/prerequisitePlugin.d.ts.map +1 -1
- package/dist/plugins/prerequisites/prerequisitePlugin.js +22 -2
- package/dist/plugins/prerequisites/prerequisitePlugin.js.map +1 -1
- package/dist/transport/HttpTransport.d.ts +4 -0
- package/dist/transport/HttpTransport.d.ts.map +1 -1
- package/dist/transport/HttpTransport.js +15 -4
- package/dist/transport/HttpTransport.js.map +1 -1
- package/dist/types.d.ts +24 -37
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/webhook-formats.d.ts +92 -0
- package/dist/webhook-formats.d.ts.map +1 -0
- package/dist/webhook-formats.js +141 -0
- package/dist/webhook-formats.js.map +1 -0
- package/package.json +21 -3
- package/dist/cache/storage.d.ts +0 -15
- package/dist/cache/storage.d.ts.map +0 -1
- package/dist/cache/storage.js +0 -43
- package/dist/cache/storage.js.map +0 -1
- package/dist/cache/types.d.ts +0 -3
- package/dist/cache/types.js +0 -2
- package/dist/cache/types.js.map +0 -1
- package/dist/client.d.ts +0 -15
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -80
- package/dist/client.js.map +0 -1
- package/dist/core/resolver.d.ts +0 -8
- package/dist/core/resolver.d.ts.map +0 -1
- package/dist/core/resolver.js +0 -22
- package/dist/core/resolver.js.map +0 -1
- package/dist/errors/index.d.ts +0 -17
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -29
- package/dist/errors/index.js.map +0 -1
- package/dist/example.d.ts +0 -2
- package/dist/example.d.ts.map +0 -1
- package/dist/example.js +0 -23
- package/dist/example.js.map +0 -1
- package/dist/loading/deferred.d.ts +0 -3
- package/dist/loading/deferred.js +0 -5
- package/dist/loading/deferred.js.map +0 -1
- package/dist/loading/optimistic.d.ts +0 -3
- package/dist/loading/pessimistic.d.ts +0 -3
- package/dist/management/index.d.ts +0 -3
- package/dist/management/index.d.ts.map +0 -1
- package/dist/management/index.js +0 -2
- package/dist/management/index.js.map +0 -1
- package/dist/management/manager.d.ts +0 -34
- package/dist/management/manager.d.ts.map +0 -1
- package/dist/management/manager.js +0 -21
- package/dist/management/manager.js.map +0 -1
- package/dist/management/memory-backend.d.ts +0 -6
- package/dist/management/memory-backend.d.ts.map +0 -1
- package/dist/management/memory-backend.js +0 -78
- package/dist/management/memory-backend.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -5
- package/dist/plugins/lifecycle/index.d.ts +0 -4
- package/dist/plugins/overrides/index.d.ts +0 -2
- package/dist/plugins/prerequisites/index.d.ts +0 -3
- package/dist/plugins/rollout/index.d.ts +0 -3
- package/dist/plugins/rollout/murmurhash3.d.ts +0 -6
- package/dist/plugins/rollout/murmurhash3.d.ts.map +0 -1
- package/dist/plugins/rollout/murmurhash3.js +0 -56
- package/dist/plugins/rollout/murmurhash3.js.map +0 -1
- package/dist/plugins/schedule/index.d.ts +0 -2
- package/dist/plugins/targeting/index.d.ts +0 -4
- package/dist/plugins/targeting/predicates.d.ts +0 -23
- package/dist/plugins/targeting/predicates.js +0 -110
- package/dist/plugins/targeting/predicates.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -35
- package/dist/plugins/types.js +0 -13
- package/dist/plugins/types.js.map +0 -1
- package/dist/registry.d.ts +0 -9
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -22
- package/dist/registry.js.map +0 -1
- package/dist/remote/firebase-adapter.d.ts +0 -6
- package/dist/remote/firebase-adapter.d.ts.map +0 -1
- package/dist/remote/firebase-adapter.js +0 -12
- package/dist/remote/firebase-adapter.js.map +0 -1
- package/dist/remote/provider.d.ts +0 -6
- package/dist/remote/provider.d.ts.map +0 -1
- package/dist/remote/provider.js +0 -5
- package/dist/remote/provider.js.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { EvaluationContext, EvaluationPlugin } from "./plugins/types.js";
|
|
2
2
|
/** Loading strategy for SDK initialization */
|
|
3
3
|
export type LoadingStrategy = "optimistic" | "pessimistic" | "deferred";
|
|
4
|
+
/** Evaluation mode for the SDK */
|
|
5
|
+
export type EvaluationMode = "server" | "client";
|
|
4
6
|
/** Fetch granularity for remote config retrieval */
|
|
5
7
|
export type FetchGranularity = "batch" | "projected";
|
|
6
8
|
/** Default cache TTL: 7 days in milliseconds */
|
|
@@ -29,11 +31,19 @@ export interface CreateConfigOptions {
|
|
|
29
31
|
retry?: RetryConfig;
|
|
30
32
|
/** Timeout for pessimistic loading (ms). Default: 10000 */
|
|
31
33
|
timeout?: number;
|
|
32
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Your self-hosted API URL. Points to your Firebase deployment.
|
|
36
|
+
* Default: https://jewel998-config.web.app/api (demo instance)
|
|
37
|
+
*
|
|
38
|
+
* @example "https://your-project.web.app/api"
|
|
39
|
+
*/
|
|
33
40
|
baseUrl?: string;
|
|
34
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Evaluation plugins to register (tree-shakeable pipeline steps).
|
|
43
|
+
* Only used with server keys (svr_). Client keys (cid_) receive pre-resolved values.
|
|
44
|
+
*/
|
|
35
45
|
plugins?: EvaluationPlugin[];
|
|
36
|
-
/** Evaluation context for
|
|
46
|
+
/** Evaluation context for targeting (can be updated post-init via setContext) */
|
|
37
47
|
context?: EvaluationContext;
|
|
38
48
|
/** Enable consent-aware mode (GDPR): if true and context.consentGranted !== true, returns defaults */
|
|
39
49
|
consentAware?: boolean;
|
|
@@ -135,11 +145,22 @@ export interface HttpTransport {
|
|
|
135
145
|
export interface GetConfigRequest {
|
|
136
146
|
clientId: string;
|
|
137
147
|
keys?: string[];
|
|
148
|
+
context?: {
|
|
149
|
+
userId?: string;
|
|
150
|
+
attributes?: Record<string, string | number | boolean | string[]>;
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
export interface EvaluationWarning {
|
|
154
|
+
key: string;
|
|
155
|
+
reason: "evaluation_error" | "segment_not_found" | "prerequisite_failed";
|
|
156
|
+
message: string;
|
|
138
157
|
}
|
|
139
158
|
export interface GetConfigResponse {
|
|
140
159
|
data: Record<string, unknown>;
|
|
160
|
+
segments?: Record<string, unknown>;
|
|
141
161
|
version: string;
|
|
142
162
|
timestamp: string;
|
|
163
|
+
warnings?: EvaluationWarning[];
|
|
143
164
|
}
|
|
144
165
|
export interface EventEmitterInterface {
|
|
145
166
|
on<E extends ConfigEventType>(event: E, callback: ConfigEventCallback<E>): void;
|
|
@@ -147,24 +168,6 @@ export interface EventEmitterInterface {
|
|
|
147
168
|
emit<E extends ConfigEventType>(event: E, payload: ConfigEventPayloads[E]): void;
|
|
148
169
|
removeAllListeners(): void;
|
|
149
170
|
}
|
|
150
|
-
/** @deprecated Use CreateConfigOptions instead */
|
|
151
|
-
export type ConfigScope = "tenant" | "project" | "environment";
|
|
152
|
-
/** @deprecated Use LoadingStrategy instead */
|
|
153
|
-
export type ConfigSourceMode = "offline" | "remote" | "hybrid";
|
|
154
|
-
/** @deprecated Config definitions are no longer needed client-side */
|
|
155
|
-
export interface ConfigDefinition<T = unknown> {
|
|
156
|
-
key: string;
|
|
157
|
-
defaultValue: T;
|
|
158
|
-
sourceMode: ConfigSourceMode;
|
|
159
|
-
scope: ConfigScope;
|
|
160
|
-
fallbackValue?: T;
|
|
161
|
-
}
|
|
162
|
-
/** @deprecated Scoping is handled by clientId */
|
|
163
|
-
export interface ConfigResolveContext {
|
|
164
|
-
tenantId?: string;
|
|
165
|
-
projectId?: string;
|
|
166
|
-
environment?: string;
|
|
167
|
-
}
|
|
168
171
|
export interface ProjectRecord {
|
|
169
172
|
id: string;
|
|
170
173
|
name: string;
|
|
@@ -198,20 +201,4 @@ export interface ConfigRecord {
|
|
|
198
201
|
updatedAt: string;
|
|
199
202
|
updatedBy: string;
|
|
200
203
|
}
|
|
201
|
-
/** @deprecated Use ProjectRecord instead */
|
|
202
|
-
export interface TenantRecord {
|
|
203
|
-
id: string;
|
|
204
|
-
name: string;
|
|
205
|
-
ownerId: string;
|
|
206
|
-
createdAt: string;
|
|
207
|
-
}
|
|
208
|
-
/** @deprecated Use ConfigRecord instead */
|
|
209
|
-
export interface ConfigVersionRecord {
|
|
210
|
-
id: string;
|
|
211
|
-
projectId: string;
|
|
212
|
-
environmentId?: string;
|
|
213
|
-
version: string;
|
|
214
|
-
payload: Record<string, unknown>;
|
|
215
|
-
publishedAt?: string;
|
|
216
|
-
}
|
|
217
204
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,aAAa,GAAG,UAAU,CAAC;AAExE,oDAAoD;AACpD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,CAAC;AAErD,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AAEzD,kDAAkD;AAClD,eAAO,MAAM,eAAe,QAAS,CAAC;AAMtC,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC,sDAAsD;IACtD,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,aAAa,GAAG,UAAU,CAAC;AAExE,kCAAkC;AAClC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,oDAAoD;AACpD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,CAAC;AAErD,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AAEzD,kDAAkD;AAClD,eAAO,MAAM,eAAe,QAAS,CAAC;AAMtC,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC,sDAAsD;IACtD,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE7B,iFAAiF;IACjF,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAE5B,sGAAsG;IACtG,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;IAEvD,2DAA2D;IAC3D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9B,sCAAsC;IACtC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,oEAAoE;IACpE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,mFAAmF;IACnF,UAAU,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEhD,sCAAsC;IACtC,EAAE,CAAC,CAAC,SAAS,eAAe,EAC1B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,IAAI,CAAC;IAER,0CAA0C;IAC1C,GAAG,CAAC,CAAC,SAAS,eAAe,EAC3B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,IAAI,CAAC;CACT;AAMD,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAK/C,CAAC;AAMF,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEnC,wEAAwE;IACxE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElD,wCAAwC;IACxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,+BAA+B;IAC/B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE;QAAE,eAAe,EAAE,eAAe,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAA;KAAE,CAAC;IAC9D,UAAU,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,CAC3D,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC5B,IAAI,CAAC;AAMV,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1E;AAMD,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7C,+BAA+B;IAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7D;AAMD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1E;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;KACnE,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAMD,MAAM,WAAW,qBAAqB;IACpC,EAAE,CAAC,CAAC,SAAS,eAAe,EAC1B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,IAAI,CAAC;IACR,GAAG,CAAC,CAAC,SAAS,eAAe,EAC3B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,IAAI,CAAC;IACR,IAAI,CAAC,CAAC,SAAS,eAAe,EAC5B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,IAAI,CAAC;IACR,kBAAkB,IAAI,IAAI,CAAC;CAC5B;AAMD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,iBAAiB;AACjB,kEAAkE;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,iBAAiB;AACjB,kEAAkE;AAalE,gDAAgD;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,iBAAiB;AAE3E,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AA2GtC,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,MAAM;CACjB,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported webhook format identifiers.
|
|
3
|
+
*/
|
|
4
|
+
export declare const WEBHOOK_FORMATS: readonly ["standard", "slack", "discord", "google-chat", "ms-teams", "custom"];
|
|
5
|
+
export type WebhookFormat = (typeof WEBHOOK_FORMATS)[number];
|
|
6
|
+
/**
|
|
7
|
+
* Human-readable descriptions for each webhook format.
|
|
8
|
+
*/
|
|
9
|
+
export declare const WEBHOOK_FORMAT_INFO: Record<WebhookFormat, {
|
|
10
|
+
label: string;
|
|
11
|
+
description: string;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Available template variables for the custom format.
|
|
15
|
+
* Used by: portal UI (variable reference), docs page, and the function's template engine.
|
|
16
|
+
*/
|
|
17
|
+
export declare const TEMPLATE_VARIABLES: readonly [{
|
|
18
|
+
readonly variable: "{{action}}";
|
|
19
|
+
readonly description: "The action that occurred";
|
|
20
|
+
readonly example: "create, update, delete, state_change";
|
|
21
|
+
}, {
|
|
22
|
+
readonly variable: "{{resource.category}}";
|
|
23
|
+
readonly description: "Resource category";
|
|
24
|
+
readonly example: "config, segment, api_key, team";
|
|
25
|
+
}, {
|
|
26
|
+
readonly variable: "{{resource.path}}";
|
|
27
|
+
readonly description: "Full resource path";
|
|
28
|
+
readonly example: "environments/prod/configs/feature.dark_mode";
|
|
29
|
+
}, {
|
|
30
|
+
readonly variable: "{{resource.name}}";
|
|
31
|
+
readonly description: "Human-readable resource name";
|
|
32
|
+
readonly example: "feature.dark_mode";
|
|
33
|
+
}, {
|
|
34
|
+
readonly variable: "{{environment}}";
|
|
35
|
+
readonly description: "Environment name (empty if none)";
|
|
36
|
+
readonly example: "production";
|
|
37
|
+
}, {
|
|
38
|
+
readonly variable: "{{actor.id}}";
|
|
39
|
+
readonly description: "User ID of the person who made the change";
|
|
40
|
+
readonly example: "user_abc123";
|
|
41
|
+
}, {
|
|
42
|
+
readonly variable: "{{timestamp}}";
|
|
43
|
+
readonly description: "ISO 8601 timestamp of the event";
|
|
44
|
+
readonly example: "2025-01-15T09:30:00.000Z";
|
|
45
|
+
}, {
|
|
46
|
+
readonly variable: "{{project.id}}";
|
|
47
|
+
readonly description: "Project identifier";
|
|
48
|
+
readonly example: "proj_xyz";
|
|
49
|
+
}, {
|
|
50
|
+
readonly variable: "{{webhook.id}}";
|
|
51
|
+
readonly description: "Webhook identifier";
|
|
52
|
+
readonly example: "whk_123";
|
|
53
|
+
}, {
|
|
54
|
+
readonly variable: "{{changes.old}}";
|
|
55
|
+
readonly description: "Previous value as JSON string (empty if create)";
|
|
56
|
+
readonly example: "{\"enabled\": true}";
|
|
57
|
+
}, {
|
|
58
|
+
readonly variable: "{{changes.new}}";
|
|
59
|
+
readonly description: "New value as JSON string (empty if delete)";
|
|
60
|
+
readonly example: "{\"enabled\": false}";
|
|
61
|
+
}];
|
|
62
|
+
/**
|
|
63
|
+
* Event types that can trigger webhooks.
|
|
64
|
+
*/
|
|
65
|
+
export declare const WEBHOOK_EVENT_TYPES: readonly ["create", "update", "delete", "state_change"];
|
|
66
|
+
export type WebhookEventType = (typeof WEBHOOK_EVENT_TYPES)[number];
|
|
67
|
+
/**
|
|
68
|
+
* Resource categories for webhook filtering.
|
|
69
|
+
*/
|
|
70
|
+
export declare const WEBHOOK_RESOURCE_CATEGORIES: readonly ["config", "segment", "api_key", "project", "team", "environment"];
|
|
71
|
+
export type WebhookResourceCategory = (typeof WEBHOOK_RESOURCE_CATEGORIES)[number];
|
|
72
|
+
/**
|
|
73
|
+
* Sample payload used for preview/testing (shared between portal and docs).
|
|
74
|
+
*/
|
|
75
|
+
export declare const SAMPLE_WEBHOOK_EVENT: {
|
|
76
|
+
readonly action: "update";
|
|
77
|
+
readonly resourceCategory: "config";
|
|
78
|
+
readonly resourcePath: "environments/production/configs/feature.dark_mode";
|
|
79
|
+
readonly resourceName: "feature.dark_mode";
|
|
80
|
+
readonly environment: "production";
|
|
81
|
+
readonly actorId: "user_abc123";
|
|
82
|
+
readonly timestamp: "2025-01-15T09:30:00.000Z";
|
|
83
|
+
readonly oldValue: {
|
|
84
|
+
readonly value: false;
|
|
85
|
+
};
|
|
86
|
+
readonly newValue: {
|
|
87
|
+
readonly value: true;
|
|
88
|
+
};
|
|
89
|
+
readonly projectId: "proj_xyz";
|
|
90
|
+
readonly webhookId: "whk_sample";
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=webhook-formats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-formats.d.ts","sourceRoot":"","sources":["../src/webhook-formats.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,eAAO,MAAM,eAAe,gFAOlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,aAAa,EACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CA0BvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,yDAKtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,2BAA2B,6EAO9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;CAYvB,CAAC"}
|
|
@@ -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,16 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jewel998/config",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"description": "Free, self-hosted feature flags and remote configuration SDK",
|
|
8
|
+
"author": "Jyotirmoy Barman",
|
|
9
|
+
"homepage": "https://github.com/jewel998/config#readme",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/jewel998/config/issues"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"feature-flags",
|
|
15
|
+
"remote-config",
|
|
16
|
+
"feature-toggles",
|
|
17
|
+
"self-hosted",
|
|
18
|
+
"firebase",
|
|
19
|
+
"sdk",
|
|
20
|
+
"configuration",
|
|
21
|
+
"targeting",
|
|
22
|
+
"rollout",
|
|
23
|
+
"a-b-testing"
|
|
24
|
+
],
|
|
8
25
|
"repository": {
|
|
9
26
|
"type": "git",
|
|
10
27
|
"url": "git+https://github.com/jewel998/config.git",
|
|
11
28
|
"directory": "packages/config"
|
|
12
29
|
},
|
|
13
|
-
"license": "
|
|
30
|
+
"license": "Elastic-2.0",
|
|
14
31
|
"main": "./dist/index.js",
|
|
15
32
|
"types": "./dist/index.d.ts",
|
|
16
33
|
"exports": {
|
|
@@ -53,7 +70,8 @@
|
|
|
53
70
|
},
|
|
54
71
|
"files": [
|
|
55
72
|
"dist",
|
|
56
|
-
"README.md"
|
|
73
|
+
"README.md",
|
|
74
|
+
"LICENSE"
|
|
57
75
|
],
|
|
58
76
|
"engines": {
|
|
59
77
|
"node": ">=22.0.0"
|
package/dist/cache/storage.d.ts
DELETED
|
@@ -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"}
|
package/dist/cache/storage.js
DELETED
|
@@ -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"}
|
package/dist/cache/types.d.ts
DELETED
package/dist/cache/types.js
DELETED
package/dist/cache/types.js.map
DELETED
|
@@ -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
|
package/dist/client.d.ts.map
DELETED
|
@@ -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
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/core/resolver.d.ts
DELETED
|
@@ -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"}
|
package/dist/core/resolver.js
DELETED
|
@@ -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
|