@ogcio/building-blocks-sdk 0.1.1 → 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/.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 +12 -7
- package/dist/__tests__/index.test.js +9 -1
- package/dist/__tests__/index.test.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/client/clients/upload/index.d.ts +1 -1
- package/dist/clients-configurations/clients-configuration.json +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +9 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -1
- package/dist/types/index.js.map +1 -1
- package/kics-config.json +8 -0
- package/package.json +14 -11
- package/src/__tests__/index.test.ts +10 -1
- 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 +2 -0
- package/src/types/index.ts +10 -1
- 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
|
@@ -140,10 +140,15 @@ const sdk = getBuildingBlockSDK({
|
|
|
140
140
|
|
|
141
141
|
## Development
|
|
142
142
|
|
|
143
|
+
### Requirements
|
|
144
|
+
|
|
145
|
+
- [Node.js LTS](https://nodejs.org/en/download/)
|
|
146
|
+
- [pnpm](https://pnpm.io/installation)
|
|
147
|
+
|
|
143
148
|
This project is built with the latest Node LTS, clone this repository and install the dependencies with:
|
|
144
149
|
|
|
145
150
|
```bash
|
|
146
|
-
|
|
151
|
+
pnpm install
|
|
147
152
|
```
|
|
148
153
|
|
|
149
154
|
The clients schemas are auto generated using open `openapi-typescript`.
|
|
@@ -152,7 +157,7 @@ you can update the json configuration clients for each client under: `src/client
|
|
|
152
157
|
then run:
|
|
153
158
|
|
|
154
159
|
```bash
|
|
155
|
-
|
|
160
|
+
pnpm clients:update
|
|
156
161
|
```
|
|
157
162
|
|
|
158
163
|
to update the schemas. At this point you are ready to modify clients files and use the newly generated schemas
|
|
@@ -164,15 +169,15 @@ The code is formatted and linted with [biome](https://biomejs.dev/). If you use
|
|
|
164
169
|
To check the formatting and linting errors run:
|
|
165
170
|
|
|
166
171
|
```bash
|
|
167
|
-
|
|
168
|
-
|
|
172
|
+
pnpm check:formatting
|
|
173
|
+
pnpm check:linting
|
|
169
174
|
```
|
|
170
175
|
|
|
171
176
|
To fix the formatting and linting errors run:
|
|
172
177
|
|
|
173
178
|
```bash
|
|
174
|
-
|
|
175
|
-
|
|
179
|
+
pnpm fix:formatting
|
|
180
|
+
pnpm fix:linting
|
|
176
181
|
```
|
|
177
182
|
|
|
178
183
|
### Testing
|
|
@@ -180,7 +185,7 @@ npm run fix:linting
|
|
|
180
185
|
The project uses `vitest` for testing. To run the tests:
|
|
181
186
|
|
|
182
187
|
```bash
|
|
183
|
-
|
|
188
|
+
pnpm test
|
|
184
189
|
```
|
|
185
190
|
|
|
186
191
|
## Feature Flags
|
|
@@ -6,6 +6,7 @@ import { Payments } from "../client/clients/payments/index.js";
|
|
|
6
6
|
import { Profile } from "../client/clients/profile/index.js";
|
|
7
7
|
import { Scheduler } from "../client/clients/scheduler/index.js";
|
|
8
8
|
import { Upload } from "../client/clients/upload/index.js";
|
|
9
|
+
import { Journey } from "../client/clients/journey/index.js";
|
|
9
10
|
import { getBuildingBlockSDK } from "../index.js";
|
|
10
11
|
vi.mock("@ogcio/analytics-sdk", () => ({
|
|
11
12
|
Analytics: vi.fn(),
|
|
@@ -28,6 +29,9 @@ vi.mock("../client/clients/scheduler/index.js", () => ({
|
|
|
28
29
|
vi.mock("../client/clients/upload/index.js", () => ({
|
|
29
30
|
Upload: vi.fn(),
|
|
30
31
|
}));
|
|
32
|
+
vi.mock("../client/clients/journey/index.js", () => ({
|
|
33
|
+
Journey: vi.fn(),
|
|
34
|
+
}));
|
|
31
35
|
describe("getBuildingBlockSDK", () => {
|
|
32
36
|
const getTokenFn = vi.fn().mockResolvedValue("test-token");
|
|
33
37
|
const baseUrl = "http://test.com";
|
|
@@ -48,6 +52,7 @@ describe("getBuildingBlockSDK", () => {
|
|
|
48
52
|
profile: { baseUrl },
|
|
49
53
|
scheduler: { baseUrl },
|
|
50
54
|
upload: { baseUrl },
|
|
55
|
+
journey: { baseUrl },
|
|
51
56
|
},
|
|
52
57
|
getTokenFn,
|
|
53
58
|
};
|
|
@@ -67,7 +72,8 @@ describe("getBuildingBlockSDK", () => {
|
|
|
67
72
|
expect(Profile).toHaveBeenCalledWith({ baseUrl, getTokenFn });
|
|
68
73
|
expect(Scheduler).toHaveBeenCalledWith({ baseUrl, getTokenFn });
|
|
69
74
|
expect(Upload).toHaveBeenCalledWith({ baseUrl, getTokenFn });
|
|
70
|
-
expect(
|
|
75
|
+
expect(Journey).toHaveBeenCalledWith({ baseUrl, getTokenFn });
|
|
76
|
+
expect(Object.keys(sdk)).toHaveLength(8);
|
|
71
77
|
});
|
|
72
78
|
it("should create SDK with only specified services", () => {
|
|
73
79
|
const params = {
|
|
@@ -94,6 +100,7 @@ describe("getBuildingBlockSDK", () => {
|
|
|
94
100
|
expect(Profile).not.toHaveBeenCalled();
|
|
95
101
|
expect(Scheduler).not.toHaveBeenCalled();
|
|
96
102
|
expect(Upload).not.toHaveBeenCalled();
|
|
103
|
+
expect(Journey).not.toHaveBeenCalled();
|
|
97
104
|
expect(Object.keys(sdk)).toHaveLength(2);
|
|
98
105
|
expect(sdk).toHaveProperty("analytics");
|
|
99
106
|
expect(sdk).toHaveProperty("messaging");
|
|
@@ -131,6 +138,7 @@ describe("getBuildingBlockSDK", () => {
|
|
|
131
138
|
expect(Profile).not.toHaveBeenCalled();
|
|
132
139
|
expect(Scheduler).not.toHaveBeenCalled();
|
|
133
140
|
expect(Upload).not.toHaveBeenCalled();
|
|
141
|
+
expect(Journey).not.toHaveBeenCalled();
|
|
134
142
|
});
|
|
135
143
|
});
|
|
136
144
|
describe("getBuildingBlockSDK type tests", () => {
|
|
@@ -1 +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,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,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;
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
|