@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.
- package/.azure/pipeline.yaml +122 -0
- package/.azure/templates/pnpm-install.yaml +21 -0
- package/.gitleaksignore +3 -0
- package/.husky/pre-commit +6 -2
- package/.husky/pre-push +1 -1
- package/README.md +23 -17
- package/dist/__tests__/client/clients/featureFlags/index.test.js +1 -1
- package/dist/__tests__/client/clients/featureFlags/index.test.js.map +1 -1
- package/dist/__tests__/index.test.d.ts +2 -0
- package/dist/__tests__/index.test.d.ts.map +1 -0
- package/dist/__tests__/index.test.js +182 -0
- package/dist/__tests__/index.test.js.map +1 -0
- package/dist/client/base-client.d.ts +5 -2
- package/dist/client/base-client.d.ts.map +1 -1
- package/dist/client/base-client.js +1 -1
- package/dist/client/base-client.js.map +1 -1
- package/dist/client/clients/featureFlags/index.d.ts +4 -2
- package/dist/client/clients/featureFlags/index.d.ts.map +1 -1
- package/dist/client/clients/featureFlags/index.js +1 -1
- package/dist/client/clients/featureFlags/index.js.map +1 -1
- package/dist/client/clients/journey/index.d.ts +2105 -0
- package/dist/client/clients/journey/index.d.ts.map +1 -0
- package/dist/client/clients/journey/index.js +210 -0
- package/dist/client/clients/journey/index.js.map +1 -0
- package/dist/client/clients/journey/schema.d.ts +2418 -0
- package/dist/client/clients/journey/schema.d.ts.map +1 -0
- package/dist/client/clients/journey/schema.js +2 -0
- package/dist/client/clients/journey/schema.js.map +1 -0
- package/dist/client/clients/payments/index.d.ts +5 -0
- package/dist/client/clients/payments/index.d.ts.map +1 -1
- package/dist/client/clients/payments/schema.d.ts +4 -0
- package/dist/client/clients/payments/schema.d.ts.map +1 -1
- package/dist/clients-configurations/clients-configuration.json +16 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -29
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +69 -47
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +9 -7
- package/dist/types/index.js.map +1 -1
- package/kics-config.json +8 -0
- package/package.json +7 -3
- package/src/__tests__/client/clients/featureFlags/index.test.ts +1 -1
- package/src/__tests__/index.test.ts +222 -0
- package/src/client/base-client.ts +9 -11
- package/src/client/clients/featureFlags/index.ts +8 -2
- package/src/client/clients/journey/index.ts +340 -0
- package/src/client/clients/journey/open-api-definition.json +5756 -0
- package/src/client/clients/journey/schema.ts +2417 -0
- package/src/client/clients/payments/open-api-definition.json +12 -0
- package/src/client/clients/payments/schema.ts +4 -0
- package/src/clients-configurations/clients-configuration.json +16 -0
- package/src/index.ts +44 -32
- package/src/types/index.ts +107 -54
- 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"
|
package/.gitleaksignore
ADDED
package/.husky/pre-commit
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
#
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
165
|
-
|
|
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
|
-
|
|
172
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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;
|
|
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 @@
|
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;CACnB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;CACnB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpD,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;CAClB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CACjB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;CACnB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CACjB,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,iBAAiB,CAAC;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,OAAO;oBACP,iBAAiB,EAAE,YAAY;oBAC/B,cAAc,EAAE,QAAQ;iBACzB;gBACD,YAAY,EAAE,EAAE,OAAO,EAAE;gBACzB,SAAS,EAAE,EAAE,OAAO,EAAE;gBACtB,QAAQ,EAAE,EAAE,OAAO,EAAE;gBACrB,OAAO,EAAE,EAAE,OAAO,EAAE;gBACpB,SAAS,EAAE,EAAE,OAAO,EAAE;gBACtB,MAAM,EAAE,EAAE,OAAO,EAAE;gBACnB,OAAO,EAAE,EAAE,OAAO,EAAE;aACrB;YACD,UAAU;SACX,CAAC;QAEF,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAExC,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;YACrC,OAAO;YACP,iBAAiB,EAAE,YAAY;YAC/B,cAAc,EAAE,QAAQ;YACxB,UAAU;SACX,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC;YACxC,OAAO;YACP,UAAU;SACX,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,OAAO;oBACP,iBAAiB,EAAE,YAAY;oBAC/B,cAAc,EAAE,QAAQ;iBACzB;gBACD,SAAS,EAAE,EAAE,OAAO,EAAE;aACvB;YACD,UAAU;SACX,CAAC;QAEF,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAExC,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;YACrC,OAAO;YACP,iBAAiB,EAAE,YAAY;YAC/B,cAAc,EAAE,QAAQ;YACxB,UAAU;SACX,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAEvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,OAAO;oBACP,iBAAiB,EAAE,YAAY;oBAC/B,cAAc,EAAE,QAAQ;iBACzB;aACF;YACD,UAAU;SACX,CAAC;QAEF,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE5B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;YACrC,OAAO;YACP,iBAAiB,EAAE,YAAY;YAC/B,cAAc,EAAE,QAAQ;YACxB,UAAU;SACX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,EAAE;YACZ,UAAU;SACX,CAAC;QAEF,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAExC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,OAAO,EAAE,MAAM;oBACf,iBAAiB,EAAE,MAAM;oBACzB,cAAc,EAAE,MAAM;iBACvB;gBACD,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;aAC/B;YACD,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO;SACC,CAAC;QAInC,YAAY,EAAU,CAAC,aAAa,EAGhC,CAAC;IAKP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO;SACC,CAAC;QAInC,wEAAwE;QACxE,YAAY,EAAU,CAAC,aAAa,EAAM,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,6EAA6E;QAC7E,MAAM,MAAM,GAA2B;YACrC,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,iDAAiD;oBACjD,OAAO,EAAE,SAAS;oBAClB,iBAAiB,EAAE,MAAM;oBACzB,cAAc,EAAE,MAAM;iBACvB;aACF;YACD,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO;SAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import createClient from "openapi-fetch";
|
|
2
|
-
import type {
|
|
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 }:
|
|
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,
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-client.js","sourceRoot":"","sources":["../../src/client/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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 {
|
|
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 }:
|
|
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,
|
|
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":"
|
|
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"}
|