@ogcio/building-blocks-sdk 0.0.15 → 0.0.18

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.
@@ -7,7 +7,9 @@ export declare class FeatureFlags extends BaseClient<paths> {
7
7
  protected serviceName: "featureFlags";
8
8
  private unleashConnectionOptions;
9
9
  constructor({ baseUrl, getTokenFn }: BaseApiClientParams);
10
- isFlagEnabled(name: string, context?: any): Promise<boolean>;
10
+ private getUnleashItems;
11
+ private initializeConnection;
12
+ isFlagEnabled(name: string, context?: any): Promise<any>;
11
13
  getFeatureFlags(projectId?: string): Promise<{
12
14
  data: components["schemas"]["projectFeatureSchema"][];
13
15
  metadata: any;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/clients/featureFlags/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAErD,qBAAa,YAAa,SAAQ,UAAU,CAAC,KAAK,CAAC;IACzC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,SAAS,CAAC,WAAW,iBAAiB;IAEtC,OAAO,CAAC,wBAAwB,CAG9B;gBAEU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,mBAAmB;IAOlD,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IAwBzC,eAAe,CAAC,SAAS,SAAqB;cAclB,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,EAAE;;;;;;;;;;;;;;;;CAQlF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/clients/featureFlags/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAErD,qBAAa,YAAa,SAAQ,UAAU,CAAC,KAAK,CAAC;IACzC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,SAAS,CAAC,WAAW,iBAAiB;IAEtC,OAAO,CAAC,wBAAwB,CAG9B;gBAEU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,mBAAmB;YAK1C,eAAe;YAcf,oBAAoB;IAS5B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IAezC,eAAe,CAAC,SAAS,SAAqB;cAclB,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,EAAE;;;;;;;;;;;;;;;;CAQlF"}
@@ -6,28 +6,37 @@ export class FeatureFlags extends BaseClient {
6
6
  unleashConnectionOptions;
7
7
  constructor({ baseUrl, getTokenFn }) {
8
8
  super({ baseUrl, getTokenFn });
9
- const token = getTokenFn ? getTokenFn(FEATURE_FLAGS) : "";
10
- this.unleashConnectionOptions = { url: baseUrl, token };
9
+ this.unleashConnectionOptions = { url: baseUrl };
11
10
  }
12
- // biome-ignore lint/suspicious/noExplicitAny: We cannot import the types from the unleash-client package
13
- async isFlagEnabled(name, context) {
11
+ async getUnleashItems() {
14
12
  try {
15
- const { InMemStorageProvider, startUnleash } = await import("unleash-client");
16
- const client = await startUnleash({
17
- appName: this.serviceName,
18
- url: `${this.unleashConnectionOptions.url}/api`,
19
- refreshInterval: 1000,
20
- customHeaders: {
21
- Authorization: this.unleashConnectionOptions.token,
22
- },
23
- storageProvider: new InMemStorageProvider(),
24
- });
25
- return client.isEnabled(name, context, () => false);
13
+ const { startUnleash, InMemStorageProvider } = await import("unleash-client");
14
+ return { startUnleash, InMemStorageProvider };
26
15
  }
27
16
  catch {
28
17
  throw new Error("unleash-client is not installed or not configured correctly");
29
18
  }
30
19
  }
20
+ async initializeConnection() {
21
+ if (this.getTokenFn && !this.unleashConnectionOptions.token) {
22
+ this.unleashConnectionOptions.token = await this.getTokenFn(this.serviceName);
23
+ }
24
+ }
25
+ // biome-ignore lint/suspicious/noExplicitAny: We cannot import the types from the unleash-client package
26
+ async isFlagEnabled(name, context) {
27
+ await this.initializeConnection();
28
+ const unleashItems = await this.getUnleashItems();
29
+ const client = await unleashItems.startUnleash({
30
+ appName: this.serviceName,
31
+ url: `${this.unleashConnectionOptions.url}/api`,
32
+ refreshInterval: 1000,
33
+ customHeaders: {
34
+ Authorization: this.unleashConnectionOptions.token ?? "",
35
+ },
36
+ storageProvider: new unleashItems.InMemStorageProvider(),
37
+ });
38
+ return client.isEnabled(name, context, () => false);
39
+ }
31
40
  async getFeatureFlags(projectId = DEFAULT_PROJECT_ID) {
32
41
  return await this.client
33
42
  .GET("/api/admin/projects/{projectId}/features", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/clients/featureFlags/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,OAAO,YAAa,SAAQ,UAAiB;IAEvC,WAAW,GAAG,aAAa,CAAC;IAE9B,wBAAwB,CAG9B;IAEF,YAAY,EAAE,OAAO,EAAE,UAAU,EAAuB;QACtD,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,UAAU,CAAC,aAAa,CAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,wBAAwB,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1D,CAAC;IAED,yGAAyG;IACzG,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,OAAa;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CACzD,gBAAgB,CACjB,CAAC;YAGF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,OAAO,EAAE,IAAI,CAAC,WAAW;gBACzB,GAAG,EAAE,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,MAAM;gBAC/C,eAAe,EAAE,IAAI;gBACrB,aAAa,EAAE;oBACb,aAAa,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK;iBACnD;gBACD,eAAe,EAAE,IAAI,oBAAoB,EAAE;aAC5C,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,OAAyB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAS,GAAG,kBAAkB;QAClD,OAAO,MAAM,IAAI,CAAC,MAAM;aACrB,GAAG,CAAC,0CAA0C,EAAE;YAC/C,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,SAAS;iBACV;aACF;SACF,CAAC;aACD,IAAI,CACH,CAAC,QAAQ,EAAE,EAAE;YACX,iCAAiC;YACjC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAChE,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,QAA2D;gBACvE,QAAQ;gBACR,KAAK;aACN,CAAC;QACJ,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CACrC,CAAC;IACN,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/clients/featureFlags/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,OAAO,YAAa,SAAQ,UAAiB;IAEvC,WAAW,GAAG,aAAa,CAAC;IAE9B,wBAAwB,CAG9B;IAEF,YAAY,EAAE,OAAO,EAAE,UAAU,EAAuB;QACtD,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,wBAAwB,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CACzD,gBAAgB,CACjB,CAAC;YAEF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;YAC5D,IAAI,CAAC,wBAAwB,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CACzD,IAAI,CAAC,WAAW,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yGAAyG;IACzG,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,OAAa;QAC7C,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,GAAG,EAAE,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,MAAM;YAC/C,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE;gBACb,aAAa,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK,IAAI,EAAE;aACzD;YACD,eAAe,EAAE,IAAI,YAAY,CAAC,oBAAoB,EAAE;SACzD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAS,GAAG,kBAAkB;QAClD,OAAO,MAAM,IAAI,CAAC,MAAM;aACrB,GAAG,CAAC,0CAA0C,EAAE;YAC/C,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,SAAS;iBACV;aACF;SACF,CAAC;aACD,IAAI,CACH,CAAC,QAAQ,EAAE,EAAE;YACX,iCAAiC;YACjC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAChE,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,QAA2D;gBACvE,QAAQ;gBACR,KAAK;aACN,CAAC;QACJ,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CACrC,CAAC;IACN,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ogcio/building-blocks-sdk",
3
- "version": "0.0.15",
3
+ "version": "0.0.18",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -11,33 +11,21 @@ export class FeatureFlags extends BaseClient<paths> {
11
11
 
12
12
  private unleashConnectionOptions: {
13
13
  url: string | undefined;
14
- token: string;
14
+ token?: string;
15
15
  };
16
16
 
17
17
  constructor({ baseUrl, getTokenFn }: BaseApiClientParams) {
18
18
  super({ baseUrl, getTokenFn });
19
- const token = getTokenFn ? (getTokenFn(FEATURE_FLAGS) as string) : "";
20
- this.unleashConnectionOptions = { url: baseUrl, token };
19
+ this.unleashConnectionOptions = { url: baseUrl };
21
20
  }
22
21
 
23
- // biome-ignore lint/suspicious/noExplicitAny: We cannot import the types from the unleash-client package
24
- async isFlagEnabled(name: string, context?: any) {
22
+ private async getUnleashItems() {
25
23
  try {
26
- const { InMemStorageProvider, startUnleash } = await import(
24
+ const { startUnleash, InMemStorageProvider } = await import(
27
25
  "unleash-client"
28
26
  );
29
- type Context = import("unleash-client").Context;
30
27
 
31
- const client = await startUnleash({
32
- appName: this.serviceName,
33
- url: `${this.unleashConnectionOptions.url}/api`,
34
- refreshInterval: 1000,
35
- customHeaders: {
36
- Authorization: this.unleashConnectionOptions.token,
37
- },
38
- storageProvider: new InMemStorageProvider(),
39
- });
40
- return client.isEnabled(name, context satisfies Context, () => false);
28
+ return { startUnleash, InMemStorageProvider };
41
29
  } catch {
42
30
  throw new Error(
43
31
  "unleash-client is not installed or not configured correctly",
@@ -45,6 +33,30 @@ export class FeatureFlags extends BaseClient<paths> {
45
33
  }
46
34
  }
47
35
 
36
+ private async initializeConnection() {
37
+ if (this.getTokenFn && !this.unleashConnectionOptions.token) {
38
+ this.unleashConnectionOptions.token = await this.getTokenFn(
39
+ this.serviceName,
40
+ );
41
+ }
42
+ }
43
+
44
+ // biome-ignore lint/suspicious/noExplicitAny: We cannot import the types from the unleash-client package
45
+ async isFlagEnabled(name: string, context?: any) {
46
+ await this.initializeConnection();
47
+ const unleashItems = await this.getUnleashItems();
48
+ const client = await unleashItems.startUnleash({
49
+ appName: this.serviceName,
50
+ url: `${this.unleashConnectionOptions.url}/api`,
51
+ refreshInterval: 1000,
52
+ customHeaders: {
53
+ Authorization: this.unleashConnectionOptions.token ?? "",
54
+ },
55
+ storageProvider: new unleashItems.InMemStorageProvider(),
56
+ });
57
+ return client.isEnabled(name, context, () => false);
58
+ }
59
+
48
60
  async getFeatureFlags(projectId = DEFAULT_PROJECT_ID) {
49
61
  return await this.client
50
62
  .GET("/api/admin/projects/{projectId}/features", {
@@ -0,0 +1,8 @@
1
+ declare module "unleash-client" {
2
+ export function startUnleash(options: UnleashConfig): Promise<Unleash>;
3
+ export class InMemStorageProvider<T> implements StorageProvider<T> {
4
+ private store;
5
+ set(key: string, data: T): Promise<void>;
6
+ get(key: string): Promise<T | undefined>;
7
+ }
8
+ }