@ogcio/building-blocks-sdk 0.0.27 → 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 (56) hide show
  1. package/.azure/pipeline.yaml +122 -0
  2. package/.azure/templates/pnpm-install.yaml +21 -0
  3. package/.gitleaksignore +3 -0
  4. package/.husky/pre-commit +6 -2
  5. package/.husky/pre-push +1 -1
  6. package/README.md +23 -17
  7. package/dist/__tests__/client/clients/featureFlags/index.test.js +1 -1
  8. package/dist/__tests__/client/clients/featureFlags/index.test.js.map +1 -1
  9. package/dist/__tests__/index.test.d.ts +2 -0
  10. package/dist/__tests__/index.test.d.ts.map +1 -0
  11. package/dist/__tests__/index.test.js +182 -0
  12. package/dist/__tests__/index.test.js.map +1 -0
  13. package/dist/client/base-client.d.ts +5 -2
  14. package/dist/client/base-client.d.ts.map +1 -1
  15. package/dist/client/base-client.js +1 -1
  16. package/dist/client/base-client.js.map +1 -1
  17. package/dist/client/clients/featureFlags/index.d.ts +4 -2
  18. package/dist/client/clients/featureFlags/index.d.ts.map +1 -1
  19. package/dist/client/clients/featureFlags/index.js +1 -1
  20. package/dist/client/clients/featureFlags/index.js.map +1 -1
  21. package/dist/client/clients/journey/index.d.ts +2105 -0
  22. package/dist/client/clients/journey/index.d.ts.map +1 -0
  23. package/dist/client/clients/journey/index.js +210 -0
  24. package/dist/client/clients/journey/index.js.map +1 -0
  25. package/dist/client/clients/journey/schema.d.ts +2418 -0
  26. package/dist/client/clients/journey/schema.d.ts.map +1 -0
  27. package/dist/client/clients/journey/schema.js +2 -0
  28. package/dist/client/clients/journey/schema.js.map +1 -0
  29. package/dist/client/clients/payments/index.d.ts +5 -0
  30. package/dist/client/clients/payments/index.d.ts.map +1 -1
  31. package/dist/client/clients/payments/schema.d.ts +4 -0
  32. package/dist/client/clients/payments/schema.d.ts.map +1 -1
  33. package/dist/clients-configurations/clients-configuration.json +16 -0
  34. package/dist/index.d.ts +4 -2
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +17 -29
  37. package/dist/index.js.map +1 -1
  38. package/dist/types/index.d.ts +69 -47
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/dist/types/index.js +9 -7
  41. package/dist/types/index.js.map +1 -1
  42. package/kics-config.json +8 -0
  43. package/package.json +7 -3
  44. package/src/__tests__/client/clients/featureFlags/index.test.ts +1 -1
  45. package/src/__tests__/index.test.ts +222 -0
  46. package/src/client/base-client.ts +9 -11
  47. package/src/client/clients/featureFlags/index.ts +8 -2
  48. package/src/client/clients/journey/index.ts +340 -0
  49. package/src/client/clients/journey/open-api-definition.json +5756 -0
  50. package/src/client/clients/journey/schema.ts +2417 -0
  51. package/src/client/clients/payments/open-api-definition.json +12 -0
  52. package/src/client/clients/payments/schema.ts +4 -0
  53. package/src/clients-configurations/clients-configuration.json +16 -0
  54. package/src/index.ts +44 -32
  55. package/src/types/index.ts +107 -54
  56. package/vitest.config.mts +1 -1
@@ -0,0 +1,122 @@
1
+ trigger:
2
+ batch: true
3
+ branches:
4
+ include:
5
+ - main
6
+
7
+ pr:
8
+ branches:
9
+ include:
10
+ - "*"
11
+ resources:
12
+ repositories:
13
+ - repository: pipeline-templates
14
+ type: github
15
+ name: ogcio/building-blocks-pipelines
16
+ ref: main
17
+ endpoint: ogcio
18
+
19
+ stages:
20
+ - stage: setup
21
+ displayName: Setup Dependencies
22
+ dependsOn: []
23
+ jobs:
24
+ - job: SetupDependencies
25
+ displayName: Setup pnpm and Install Dependencies
26
+ pool:
27
+ vmImage: "ubuntu-latest"
28
+ steps:
29
+ - template: templates/pnpm-install.yaml
30
+
31
+ - stage: securityScan
32
+ displayName: Security Scans
33
+ dependsOn: []
34
+ pool:
35
+ vmImage: "ubuntu-latest"
36
+ jobs:
37
+ - template: security/gitleaks.yml@pipeline-templates
38
+ # TODO: Uncomment when KICS is ready ( Timeout processing the results of the query: openAPI array_without_maximum_number_items error="context deadline exceeded )
39
+ # - job:
40
+ # displayName: Checkmarx KICS
41
+ # pool:
42
+ # vmImage: "ubuntu-latest"
43
+ # container: checkmarx/kics:debian
44
+ # steps:
45
+ # - script: /app/bin/kics scan -p ${PWD} -o ${PWD} --report-formats "json,JUnit" --output-name kics-result --ci --fail-on 'critical,high' --config ./kics-config.json
46
+ # displayName: KICS Scan
47
+ # - script: cat kics-result.json
48
+ # condition: succeededOrFailed()
49
+ # displayName: KICS Results
50
+ # - task: PublishTestResults@2
51
+ # condition: succeededOrFailed()
52
+ # inputs:
53
+ # testResultsFormat: "JUnit"
54
+ # testResultsFiles: "$(System.DefaultWorkingDirectory)/junit-kics-result.xml"
55
+
56
+ - stage: lintingAndFormatting
57
+ displayName: Linting and Formatting Checks
58
+ dependsOn: setup
59
+ jobs:
60
+ - job: LintAndFormat
61
+ displayName: Run Linting and Formatting
62
+ pool:
63
+ vmImage: "ubuntu-latest"
64
+ steps:
65
+ - template: templates/pnpm-install.yaml
66
+ - script: |
67
+ pnpm run check:linting
68
+ pnpm run check:formatting
69
+ displayName: "Run Linting and Formatting"
70
+
71
+ - stage: checksCompleted
72
+ displayName: Checks Completed
73
+ dependsOn:
74
+ - lintingAndFormatting
75
+ - securityScan
76
+ jobs:
77
+ - job: ChecksCompleted
78
+ steps:
79
+ - script: echo "All checks completed"
80
+
81
+ - stage: testBuildingBlocksSdk
82
+ displayName: Testing Building Blocks SDK
83
+ dependsOn: checksCompleted
84
+ jobs:
85
+ - job: RunTests
86
+ displayName: Run Tests
87
+ pool:
88
+ vmImage: "ubuntu-latest"
89
+ steps:
90
+ - template: templates/pnpm-install.yaml
91
+ - script: |
92
+ pnpm run test
93
+ displayName: "Run Building Blocks SDK Tests"
94
+ - task: PublishTestResults@2
95
+ inputs:
96
+ testResultsFiles: "$(System.DefaultWorkingDirectory)/results.xml"
97
+ testRunTitle: "Building Blocks SDK Tests Report"
98
+ mergeTestResults: true
99
+ - task: PublishCodeCoverageResults@2
100
+ inputs:
101
+ summaryFileLocation: "$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml"
102
+
103
+ - stage: buildBuildingBlocksSdk
104
+ displayName: Build Building Blocks SDK
105
+ dependsOn: checksCompleted
106
+ jobs:
107
+ - job: BuildSdk
108
+ steps:
109
+ - template: templates/pnpm-install.yaml
110
+ - script: |
111
+ pnpm run build
112
+ displayName: "Build Building Blocks SDK"
113
+
114
+ - stage: checkTestBuildApprovalGateways
115
+ displayName: Test and Build Approval Gateways
116
+ dependsOn:
117
+ - testBuildingBlocksSdk
118
+ - buildBuildingBlocksSdk
119
+ jobs:
120
+ - job: CheckTestBuildApprovalGateways
121
+ steps:
122
+ - script: echo "All tests and build completed"
@@ -0,0 +1,21 @@
1
+ steps:
2
+ - task: NodeTool@0
3
+ inputs:
4
+ versionSpec: "20.x"
5
+ displayName: "Use Node.js 20"
6
+
7
+ - task: Cache@2
8
+ inputs:
9
+ key: 'pnpm | "$(Agent.OS)" | pnpm-lock.yaml'
10
+ path: $(Pipeline.Workspace)/.pnpm-store
11
+ displayName: Cache pnpm store
12
+
13
+ - script: |
14
+ corepack enable
15
+ corepack prepare pnpm@latest-9 --activate
16
+ pnpm config set store-dir $(Pipeline.Workspace)/.pnpm-store
17
+ displayName: "Setup pnpm"
18
+
19
+ - script: |
20
+ pnpm install --frozen-lockfile
21
+ displayName: "Install Dependencies"
@@ -0,0 +1,3 @@
1
+ # Ignore OpenAPI examples values
2
+ /src/src/client/clients/featureFlags/open-api-definition.json:generic-api-key:9024
3
+ /src/src/client/clients/featureFlags/schema.ts:generic-api-key:9202
package/.husky/pre-commit CHANGED
@@ -1,2 +1,6 @@
1
- npm run check:formatting
2
- npm run check:linting
1
+ pnpm check:formatting
2
+ pnpm check:linting
3
+
4
+ GITLEAKS_CONTAINER="gitleaks-precommit"
5
+ docker rm -f $GITLEAKS_CONTAINER 2>/dev/null || true
6
+ docker run --name $GITLEAKS_CONTAINER -v $(pwd):/src ghcr.io/gitleaks/gitleaks:v8.19.3 protect --source="/src" --verbose --redact --staged
package/.husky/pre-push CHANGED
@@ -1 +1 @@
1
- # npm run build
1
+ # pnpm build
package/README.md CHANGED
@@ -26,7 +26,7 @@ Install the package via:
26
26
  npm install @ogcio/building-blocks-sdk
27
27
  ```
28
28
 
29
- SDK initialization:
29
+ To initialise the SDK, give the desired configuration to `getBuildingBlockSDK`:
30
30
 
31
31
  ```typescript
32
32
  const sdk = getBuildingBlockSDK({
@@ -38,7 +38,7 @@ const sdk = getBuildingBlockSDK({
38
38
  });
39
39
  ```
40
40
 
41
- This snippet creates the SDK with configuration for the upload API building block. The SDK accepts a configuration for each building block API.
41
+ This snippet above creates an SDK for the upload API building block. The SDK accepts a configuration for each building block API.
42
42
 
43
43
  At the present time available building blocks are:
44
44
 
@@ -48,6 +48,9 @@ At the present time available building blocks are:
48
48
  - profile
49
49
  - scheduler
50
50
  - analytics
51
+ - feature-flags
52
+
53
+ Please note that the type of the `sdk` variable only registers the building blocks that are present in the configuration. This is because the SDK does not create an instance for all available building blocks, even the ones not requested in the configuration.
51
54
 
52
55
  ### Authentication
53
56
 
@@ -137,10 +140,15 @@ const sdk = getBuildingBlockSDK({
137
140
 
138
141
  ## Development
139
142
 
143
+ ### Requirements
144
+
145
+ - [Node.js LTS](https://nodejs.org/en/download/)
146
+ - [pnpm](https://pnpm.io/installation)
147
+
140
148
  This project is built with the latest Node LTS, clone this repository and install the dependencies with:
141
149
 
142
150
  ```bash
143
- npm install
151
+ pnpm install
144
152
  ```
145
153
 
146
154
  The clients schemas are auto generated using open `openapi-typescript`.
@@ -149,7 +157,7 @@ you can update the json configuration clients for each client under: `src/client
149
157
  then run:
150
158
 
151
159
  ```bash
152
- npm run clients:update
160
+ pnpm clients:update
153
161
  ```
154
162
 
155
163
  to update the schemas. At this point you are ready to modify clients files and use the newly generated schemas
@@ -161,15 +169,15 @@ The code is formatted and linted with [biome](https://biomejs.dev/). If you use
161
169
  To check the formatting and linting errors run:
162
170
 
163
171
  ```bash
164
- npm run check:formatting
165
- npm run check:linting
172
+ pnpm check:formatting
173
+ pnpm check:linting
166
174
  ```
167
175
 
168
176
  To fix the formatting and linting errors run:
169
177
 
170
178
  ```bash
171
- npm run fix:formatting
172
- npm run fix:linting
179
+ pnpm fix:formatting
180
+ pnpm fix:linting
173
181
  ```
174
182
 
175
183
  ### Testing
@@ -177,7 +185,7 @@ npm run fix:linting
177
185
  The project uses `vitest` for testing. To run the tests:
178
186
 
179
187
  ```bash
180
- npm test
188
+ pnpm test
181
189
  ```
182
190
 
183
191
  ## Feature Flags
@@ -186,7 +194,6 @@ npm test
186
194
 
187
195
  For local development, you should have the Feature Flags service running.
188
196
  Refer to the [unleash](https://github.com/ogcio/unleash) repository for instructions on how to run the service.
189
- You can also find examples on how to run Unleash with different auth strategies in the [unleash-examples](https://github.com/ogcio/unleash-examples/tree/feat/oidc-auth) repository.
190
197
 
191
198
  ### Usage
192
199
 
@@ -205,7 +212,7 @@ const sdk = getBuildingBlockSDK({
205
212
  baseUrl,
206
213
  },
207
214
  },
208
- getTokenFn: () => token,
215
+ getTokenFn: () => Promise.resolve(token),
209
216
  });
210
217
  ```
211
218
 
@@ -224,19 +231,18 @@ const isEnabled = await sdk.featureFlags.isFlagEnabled("feature-name", {
224
231
  });
225
232
  ```
226
233
 
227
- _Note_: The `isFlagEnabled` is asynchronous because if the client is not connected yet,
228
- it will wait for the connection to be established before checking the flag.
229
- Once the client is connected, the flag will be checked synchronously.
234
+ _Note_: The `isFlagEnabled` is asynchronous because if the client is not connected yet, it will wait for the connection to be established before checking the flag. Once the client is connected, the flag will be checked synchronously. Only the first call made with the SDK will initiate a connection, all subsequent calls will use the connection already obtained.
230
235
 
231
236
  ### Next build error resolution
232
237
 
233
238
  When `next build` is run, it performs a static analysis of the code and tries to retrieve the contents of all dependencies, including those imported dynamically.
234
239
 
235
- So, if `unleash-client` is not installed, it causes a build error.
240
+ IF any peer dependencies defined in the package.json (for example `unleash-client`) are not installed the build will fail.
236
241
 
237
- To prevent this you can add this webpack configuration to your next configuration, to mark it as an external package so it won't be included in the bundle.
242
+ To prevent this you can add this webpack configuration to your next configuration, to mark missing peer dependencies as an external package so they won't be included in the bundle.
238
243
 
239
244
  ```
245
+ // Example for unleash-client
240
246
  ...
241
247
  webpack: (config, { isServer }) => {
242
248
  if (isServer) {
@@ -248,4 +254,4 @@ webpack: (config, { isServer }) => {
248
254
  ...
249
255
  ```
250
256
 
251
- Then, once `unleash-client` is needed and installed, we can remove that configuration, and everything start working as expected.
257
+ You can safely remove any external dependency from the weback config once it has been installed.
@@ -21,7 +21,7 @@ global.fetch = async () => ({
21
21
  });
22
22
  describe("FeatureFlags", () => {
23
23
  const baseUrl = "http://fakehost";
24
- const getTokenFn = () => "test-token";
24
+ const getTokenFn = () => Promise.resolve("test-token");
25
25
  let featureFlags;
26
26
  beforeEach(async () => {
27
27
  featureFlags = new FeatureFlags({ baseUrl, getTokenFn });
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/client/clients/featureFlags/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAEhF,MAAM,YAAY,GAAG;IACnB,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;IACnB,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QACnB,SAAS,EAAE,EAAE,CAAC,EAAE,CACd,CACE,IAA+B,EAC/B,QAAiB,EACjB,cAA6B,EAC7B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CACxB;KACF,CAAC;IACF,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;CAC9B,CAAC,CAAC,CAAC;AAEJ,IAAI,aAAa,GAAG,EAAE,CAAC;AAEvB,oBAAoB;AACpB,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CACxB,CAAC;IACC,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa;IAC/B,OAAO,EAAE,IAAI,OAAO,EAAE;CACvB,CAAa,CAAC;AAEjB,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,OAAO,GAAG,iBAAiB,CAAC;IAClC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC;IACtC,IAAI,YAA0B,CAAC;IAE/B,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,aAAa,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../../src/__tests__/client/clients/featureFlags/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAEhF,MAAM,YAAY,GAAG;IACnB,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;IACnB,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QACnB,SAAS,EAAE,EAAE,CAAC,EAAE,CACd,CACE,IAA+B,EAC/B,QAAiB,EACjB,cAA6B,EAC7B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CACxB;KACF,CAAC;IACF,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;CAC9B,CAAC,CAAC,CAAC;AAEJ,IAAI,aAAa,GAAG,EAAE,CAAC;AAEvB,oBAAoB;AACpB,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CACxB,CAAC;IACC,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa;IAC/B,OAAO,EAAE,IAAI,OAAO,EAAE;CACvB,CAAa,CAAC;AAEjB,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,OAAO,GAAG,iBAAiB,CAAC;IAClC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,YAA0B,CAAC;IAE/B,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,aAAa,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,182 @@
1
+ import { Analytics } from "@ogcio/analytics-sdk";
2
+ import { beforeEach, describe, expect, expectTypeOf, it, vi } from "vitest";
3
+ import { FeatureFlags } from "../client/clients/featureFlags/index.js";
4
+ import { Messaging } from "../client/clients/messaging/index.js";
5
+ import { Payments } from "../client/clients/payments/index.js";
6
+ import { Profile } from "../client/clients/profile/index.js";
7
+ import { Scheduler } from "../client/clients/scheduler/index.js";
8
+ import { Upload } from "../client/clients/upload/index.js";
9
+ import { Journey } from "../client/clients/journey/index.js";
10
+ import { getBuildingBlockSDK } from "../index.js";
11
+ vi.mock("@ogcio/analytics-sdk", () => ({
12
+ Analytics: vi.fn(),
13
+ }));
14
+ vi.mock("../client/clients/featureFlags/index.js", () => ({
15
+ FeatureFlags: vi.fn(),
16
+ }));
17
+ vi.mock("../client/clients/messaging/index.js", () => ({
18
+ Messaging: vi.fn(),
19
+ }));
20
+ vi.mock("../client/clients/payments/index.js", () => ({
21
+ Payments: vi.fn(),
22
+ }));
23
+ vi.mock("../client/clients/profile/index.js", () => ({
24
+ Profile: vi.fn(),
25
+ }));
26
+ vi.mock("../client/clients/scheduler/index.js", () => ({
27
+ Scheduler: vi.fn(),
28
+ }));
29
+ vi.mock("../client/clients/upload/index.js", () => ({
30
+ Upload: vi.fn(),
31
+ }));
32
+ vi.mock("../client/clients/journey/index.js", () => ({
33
+ Journey: vi.fn(),
34
+ }));
35
+ describe("getBuildingBlockSDK", () => {
36
+ const getTokenFn = vi.fn().mockResolvedValue("test-token");
37
+ const baseUrl = "http://test.com";
38
+ beforeEach(() => {
39
+ vi.clearAllMocks();
40
+ });
41
+ it("should create SDK with all services when all configs provided", () => {
42
+ const params = {
43
+ services: {
44
+ analytics: {
45
+ baseUrl,
46
+ trackingWebsiteId: "website-id",
47
+ organizationId: "org-id",
48
+ },
49
+ featureFlags: { baseUrl },
50
+ messaging: { baseUrl },
51
+ payments: { baseUrl },
52
+ profile: { baseUrl },
53
+ scheduler: { baseUrl },
54
+ upload: { baseUrl },
55
+ journey: { baseUrl },
56
+ },
57
+ getTokenFn,
58
+ };
59
+ const sdk = getBuildingBlockSDK(params);
60
+ expect(Analytics).toHaveBeenCalledWith({
61
+ baseUrl,
62
+ trackingWebsiteId: "website-id",
63
+ organizationId: "org-id",
64
+ getTokenFn,
65
+ });
66
+ expect(FeatureFlags).toHaveBeenCalledWith({
67
+ baseUrl,
68
+ getTokenFn,
69
+ });
70
+ expect(Messaging).toHaveBeenCalledWith({ baseUrl, getTokenFn });
71
+ expect(Payments).toHaveBeenCalledWith({ baseUrl, getTokenFn });
72
+ expect(Profile).toHaveBeenCalledWith({ baseUrl, getTokenFn });
73
+ expect(Scheduler).toHaveBeenCalledWith({ baseUrl, getTokenFn });
74
+ expect(Upload).toHaveBeenCalledWith({ baseUrl, getTokenFn });
75
+ expect(Journey).toHaveBeenCalledWith({ baseUrl, getTokenFn });
76
+ expect(Object.keys(sdk)).toHaveLength(8);
77
+ });
78
+ it("should create SDK with only specified services", () => {
79
+ const params = {
80
+ services: {
81
+ analytics: {
82
+ baseUrl,
83
+ trackingWebsiteId: "website-id",
84
+ organizationId: "org-id",
85
+ },
86
+ messaging: { baseUrl },
87
+ },
88
+ getTokenFn,
89
+ };
90
+ const sdk = getBuildingBlockSDK(params);
91
+ expect(Analytics).toHaveBeenCalledWith({
92
+ baseUrl,
93
+ trackingWebsiteId: "website-id",
94
+ organizationId: "org-id",
95
+ getTokenFn,
96
+ });
97
+ expect(Messaging).toHaveBeenCalledWith({ baseUrl, getTokenFn });
98
+ expect(FeatureFlags).not.toHaveBeenCalled();
99
+ expect(Payments).not.toHaveBeenCalled();
100
+ expect(Profile).not.toHaveBeenCalled();
101
+ expect(Scheduler).not.toHaveBeenCalled();
102
+ expect(Upload).not.toHaveBeenCalled();
103
+ expect(Journey).not.toHaveBeenCalled();
104
+ expect(Object.keys(sdk)).toHaveLength(2);
105
+ expect(sdk).toHaveProperty("analytics");
106
+ expect(sdk).toHaveProperty("messaging");
107
+ });
108
+ it("should pass additional config parameters to services", () => {
109
+ const params = {
110
+ services: {
111
+ analytics: {
112
+ baseUrl,
113
+ trackingWebsiteId: "website-id",
114
+ organizationId: "org-id",
115
+ },
116
+ },
117
+ getTokenFn,
118
+ };
119
+ getBuildingBlockSDK(params);
120
+ expect(Analytics).toHaveBeenCalledWith({
121
+ baseUrl,
122
+ trackingWebsiteId: "website-id",
123
+ organizationId: "org-id",
124
+ getTokenFn,
125
+ });
126
+ });
127
+ it("should create empty SDK when no services configured", () => {
128
+ const params = {
129
+ services: {},
130
+ getTokenFn,
131
+ };
132
+ const sdk = getBuildingBlockSDK(params);
133
+ expect(Object.keys(sdk)).toHaveLength(0);
134
+ expect(Analytics).not.toHaveBeenCalled();
135
+ expect(FeatureFlags).not.toHaveBeenCalled();
136
+ expect(Messaging).not.toHaveBeenCalled();
137
+ expect(Payments).not.toHaveBeenCalled();
138
+ expect(Profile).not.toHaveBeenCalled();
139
+ expect(Scheduler).not.toHaveBeenCalled();
140
+ expect(Upload).not.toHaveBeenCalled();
141
+ expect(Journey).not.toHaveBeenCalled();
142
+ });
143
+ });
144
+ describe("getBuildingBlockSDK type tests", () => {
145
+ it("should return type with only configured services", () => {
146
+ const params = {
147
+ services: {
148
+ analytics: {
149
+ baseUrl: "test",
150
+ trackingWebsiteId: "test",
151
+ organizationId: "test",
152
+ },
153
+ messaging: { baseUrl: "test" },
154
+ },
155
+ getTokenFn: async () => "token",
156
+ };
157
+ expectTypeOf().toMatchTypeOf();
158
+ });
159
+ it("should return empty object type when no services configured", () => {
160
+ const params = {
161
+ services: {},
162
+ getTokenFn: async () => "token",
163
+ };
164
+ // biome-ignore lint/complexity/noBannedTypes: it's for testing purposes
165
+ expectTypeOf().toMatchTypeOf();
166
+ });
167
+ it("should not allow undefined baseUrl in service config", () => {
168
+ // biome-ignore lint/correctness/noUnusedVariables: it's for testing purposes
169
+ const params = {
170
+ services: {
171
+ analytics: {
172
+ // @ts-expect-error - baseUrl cannot be undefined
173
+ baseUrl: undefined,
174
+ trackingWebsiteId: "test",
175
+ organizationId: "test",
176
+ },
177
+ },
178
+ getTokenFn: async () => "token",
179
+ };
180
+ });
181
+ });
182
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import createClient from "openapi-fetch";
2
- import type { BaseApiClientParams, SERVICE_NAME, TokenFunction } from "../types/index.js";
2
+ import type { SERVICE_NAME, TokenFunction } from "../types/index.js";
3
3
  export declare abstract class BaseClient<T extends {}> {
4
4
  private baseUrl?;
5
5
  private initialized;
@@ -7,7 +7,10 @@ export declare abstract class BaseClient<T extends {}> {
7
7
  protected getTokenFn?: TokenFunction;
8
8
  protected serviceName: SERVICE_NAME | undefined;
9
9
  protected client: ReturnType<typeof createClient<T>>;
10
- constructor({ baseUrl, getTokenFn }: BaseApiClientParams);
10
+ constructor({ baseUrl, getTokenFn, }: {
11
+ baseUrl: string;
12
+ getTokenFn?: TokenFunction;
13
+ });
11
14
  deleteToken(): void;
12
15
  protected getToken(): Promise<string | undefined>;
13
16
  isInitialized(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"base-client.d.ts","sourceRoot":"","sources":["../../src/client/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,YAGN,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACd,MAAM,mBAAmB,CAAC;AAG3B,8BAAsB,UAAU,CAAC,CAAC,SAAS,EAAE;IAC3C,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,WAAW,CAAC;IAEpB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACrC,SAAS,CAAC,WAAW,EAAE,YAAY,GAAG,SAAS,CAAC;IAEhD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,mBAAmB;IA6BjD,WAAW;cAIF,QAAQ;IASjB,aAAa;CAGrB"}
1
+ {"version":3,"file":"base-client.d.ts","sourceRoot":"","sources":["../../src/client/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAiC,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErE,8BAAsB,UAAU,CAAC,CAAC,SAAS,EAAE;IAC3C,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,WAAW,CAAC;IAEpB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACrC,SAAS,CAAC,WAAW,EAAE,YAAY,GAAG,SAAS,CAAC;IAEhD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzC,EACV,OAAO,EACP,UAAU,GACX,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,aAAa,CAAC;KAC5B;IA6BM,WAAW;cAIF,QAAQ;IASjB,aAAa;CAGrB"}
@@ -6,7 +6,7 @@ export class BaseClient {
6
6
  getTokenFn;
7
7
  serviceName;
8
8
  client;
9
- constructor({ baseUrl, getTokenFn }) {
9
+ constructor({ baseUrl, getTokenFn, }) {
10
10
  this.initialized = false;
11
11
  if (baseUrl) {
12
12
  this.baseUrl = baseUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"base-client.js","sourceRoot":"","sources":["../../src/client/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,YAGN,MAAM,eAAe,CAAC;AAQvB,MAAM,OAAgB,UAAU;IACtB,OAAO,CAAU;IACjB,WAAW,CAAC;IAEV,KAAK,CAAU;IACf,UAAU,CAAiB;IAC3B,WAAW,CAA2B;IAEtC,MAAM,CAAqC;IAErD,YAAY,EAAE,OAAO,EAAE,UAAU,EAAuB;QACtD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,MAAM,cAAc,GAAe;YACjC,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAA2B,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAA2B,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"base-client.js","sourceRoot":"","sources":["../../src/client/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAiC,MAAM,eAAe,CAAC;AAG9D,MAAM,OAAgB,UAAU;IACtB,OAAO,CAAU;IACjB,WAAW,CAAC;IAEV,KAAK,CAAU;IACf,UAAU,CAAiB;IAC3B,WAAW,CAA2B;IAEtC,MAAM,CAAqC;IAErD,YAAY,EACV,OAAO,EACP,UAAU,GAIX;QACC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,MAAM,cAAc,GAAe;YACjC,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAA2B,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAA2B,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
@@ -1,12 +1,14 @@
1
1
  import type createClient from "openapi-fetch";
2
- import type { BaseApiClientParams } from "../../../types/index.js";
2
+ import type { FeatureFlagsConfig, TokenFunction } from "../../../types/index.js";
3
3
  import { BaseClient } from "../../base-client.js";
4
4
  import type { components, paths } from "./schema.js";
5
5
  export declare class FeatureFlags extends BaseClient<paths> {
6
6
  client: ReturnType<typeof createClient<paths>>;
7
7
  protected serviceName: "featureFlags";
8
8
  private unleashConnectionOptions;
9
- constructor({ baseUrl, getTokenFn }: BaseApiClientParams);
9
+ constructor({ baseUrl, getTokenFn, }: FeatureFlagsConfig & {
10
+ getTokenFn: TokenFunction;
11
+ });
10
12
  private getUnleashItems;
11
13
  private initializeConnection;
12
14
  isFlagEnabled(name: string, context?: any): Promise<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;AAGlD,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"}
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,EACV,kBAAkB,EAClB,aAAa,EACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,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,EACV,OAAO,EACP,UAAU,GACX,EAAE,kBAAkB,GAAG;QAAE,UAAU,EAAE,aAAa,CAAA;KAAE;YAKvC,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"}
@@ -5,7 +5,7 @@ import { DEFAULT_PROJECT_ID } from "./const.js";
5
5
  export class FeatureFlags extends BaseClient {
6
6
  serviceName = FEATURE_FLAGS;
7
7
  unleashConnectionOptions;
8
- constructor({ baseUrl, getTokenFn }) {
8
+ constructor({ baseUrl, getTokenFn, }) {
9
9
  super({ baseUrl, getTokenFn });
10
10
  this.unleashConnectionOptions = { url: baseUrl };
11
11
  }
@@ -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,WAAW,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC1E,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,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,QAA2D;gBACvE,QAAQ;gBACR,KAAK;aACN,CAAC;QACJ,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAChC,CAAC;IACN,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/clients/featureFlags/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,OAAO,YAAa,SAAQ,UAAiB;IAEvC,WAAW,GAAG,aAAa,CAAC;IAE9B,wBAAwB,CAG9B;IAEF,YAAY,EACV,OAAO,EACP,UAAU,GACyC;QACnD,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,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,QAA2D;gBACvE,QAAQ;gBACR,KAAK;aACN,CAAC;QACJ,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAChC,CAAC;IACN,CAAC;CACF"}