@digiteers/uloba3-sdk 1.3.8 → 1.3.9
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/README.md +113 -144
- package/package.json +1 -1
- package/MIGRATION.md +0 -118
package/README.md
CHANGED
|
@@ -1,53 +1,37 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @digiteers/uloba3-sdk
|
|
2
2
|
|
|
3
|
-
TypeScript SDK for Uloba3 API -
|
|
3
|
+
TypeScript SDK for Uloba3 API - Auto-generert fra OpenAPI spesifikasjon og publisert til npm.
|
|
4
4
|
|
|
5
5
|
## 🎯 Formål
|
|
6
6
|
|
|
7
|
-
Dette SDK-et
|
|
7
|
+
Dette SDK-et gir type-safe tilgang til Uloba3 API. SDK-et genereres automatisk fra API-ets OpenAPI spesifikasjon og publiseres som en privat npm-pakke.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- **Uavhengighet**: SDK kan oppdateres uten å påvirke backend
|
|
11
|
-
- **Enklere versjonering**: SDK har sin egen versjon lifecycle
|
|
12
|
-
- **Renere arkitektur**: Reduserer kompleksitet i både backend og frontend
|
|
13
|
-
- **Fleksibilitet**: Web-prosjektet velger selv når de vil oppdatere SDK
|
|
9
|
+
## 📦 Installasjon
|
|
14
10
|
|
|
15
|
-
|
|
11
|
+
```bash
|
|
12
|
+
# I uloba3-web eller andre prosjekter
|
|
13
|
+
pnpm add @digiteers/uloba3-sdk@latest
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
uloba3-sdk
|
|
19
|
-
├── src/ # Kildekode
|
|
20
|
-
│ ├── api/ # API moduler
|
|
21
|
-
│ ├── types.ts # Genererte typer fra OpenAPI
|
|
22
|
-
│ └── client.ts # API klient
|
|
23
|
-
├── dist/ # Kompilert JavaScript (genereres)
|
|
24
|
-
└── *.tgz # Pakket versjon (genereres)
|
|
25
|
-
|
|
26
|
-
uloba3-backend/ # API som SDK genereres fra
|
|
27
|
-
└── apps/api/ # FastAPI applikasjon
|
|
28
|
-
|
|
29
|
-
uloba3-web/ # Frontend som bruker SDK
|
|
30
|
-
└── packages/sdk/ # .tgz filer for produksjon
|
|
15
|
+
# Eller spesifiser versjon
|
|
16
|
+
pnpm add @digiteers/uloba3-sdk@1.3.8
|
|
31
17
|
```
|
|
32
18
|
|
|
33
19
|
## 🚀 Kom i gang
|
|
34
20
|
|
|
35
21
|
### Forutsetninger
|
|
36
22
|
- Node.js 18+
|
|
37
|
-
- npm
|
|
38
|
-
- Tilgang til uloba3-backend
|
|
39
|
-
- yalc installert globalt: `npm install -g yalc`
|
|
23
|
+
- npm (for publisering)
|
|
24
|
+
- Tilgang til uloba3-backend (for å generere types)
|
|
40
25
|
|
|
41
|
-
### Oppsett
|
|
26
|
+
### Oppsett for utvikling
|
|
42
27
|
```bash
|
|
43
28
|
# Klon repository
|
|
44
|
-
|
|
45
|
-
cd uloba3-sdk
|
|
29
|
+
cd /Users/digiteers/GitHub/uloba3/uloba3-sdk
|
|
46
30
|
|
|
47
31
|
# Installer dependencies
|
|
48
32
|
npm install
|
|
49
33
|
|
|
50
|
-
# Generer SDK fra lokal API
|
|
34
|
+
# Generer SDK fra lokal API (må kjøre på localhost:3001)
|
|
51
35
|
npm run generate
|
|
52
36
|
|
|
53
37
|
# Bygg SDK
|
|
@@ -56,88 +40,68 @@ npm run build
|
|
|
56
40
|
|
|
57
41
|
## 🔄 Utviklingsworkflow
|
|
58
42
|
|
|
59
|
-
### 1.
|
|
43
|
+
### 1. Oppdatere SDK når API endres
|
|
60
44
|
|
|
61
45
|
```bash
|
|
62
|
-
# Start API lokalt
|
|
63
|
-
cd uloba3-backend
|
|
46
|
+
# 1. Start API lokalt
|
|
47
|
+
cd ../uloba3-backend
|
|
64
48
|
pnpm dev:api # Kjører på localhost:3001
|
|
65
49
|
|
|
66
|
-
# Generer
|
|
67
|
-
cd uloba3-sdk
|
|
68
|
-
npm run generate # Henter OpenAPI spec og genererer
|
|
69
|
-
npm run build # Kompilerer TypeScript
|
|
70
|
-
```
|
|
50
|
+
# 2. Generer nye typer fra API
|
|
51
|
+
cd ../uloba3-sdk
|
|
52
|
+
npm run generate # Henter OpenAPI spec og genererer types.ts
|
|
71
53
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
**Metode A: Yalc (anbefalt for utvikling)**
|
|
75
|
-
```bash
|
|
76
|
-
# I SDK directory
|
|
77
|
-
npm run publish:local # Publiserer til yalc
|
|
78
|
-
|
|
79
|
-
# I web prosjektet
|
|
80
|
-
pnpm sdk:link # Linker SDK via yalc
|
|
54
|
+
# 3. Bygg SDK
|
|
55
|
+
npm run build
|
|
81
56
|
|
|
82
|
-
#
|
|
83
|
-
# 1.
|
|
84
|
-
#
|
|
85
|
-
# 3. SDK oppdateres automatisk i web (yalc push)
|
|
86
|
-
# 4. Hvis ikke, kjør 'pnpm sdk:link' på nytt i web
|
|
57
|
+
# 4. Bump versjon og publiser
|
|
58
|
+
npm version patch # 1.3.8 -> 1.3.9 (eller minor/major)
|
|
59
|
+
npm publish # Publiserer til npm (automation token i .npmrc)
|
|
87
60
|
|
|
88
|
-
#
|
|
89
|
-
|
|
61
|
+
# 5. Oppdater i uloba3-web
|
|
62
|
+
cd ../uloba3-web
|
|
63
|
+
pnpm add @digiteers/uloba3-sdk@latest
|
|
90
64
|
```
|
|
91
65
|
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
# I SDK directory
|
|
95
|
-
npm run pack # Lager uloba3-sdk-X.X.X.tgz
|
|
66
|
+
### 2. Workflow-diagram
|
|
96
67
|
|
|
97
|
-
# I web prosjektet
|
|
98
|
-
pnpm sdk:prod # Kopierer og installerer .tgz
|
|
99
68
|
```
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
69
|
+
Backend endring
|
|
70
|
+
↓
|
|
71
|
+
Start lokal API (localhost:3001)
|
|
72
|
+
↓
|
|
73
|
+
npm run generate (i SDK)
|
|
74
|
+
↓
|
|
75
|
+
npm run build
|
|
76
|
+
↓
|
|
77
|
+
npm version patch
|
|
78
|
+
↓
|
|
79
|
+
npm publish
|
|
80
|
+
↓
|
|
81
|
+
pnpm add @digiteers/uloba3-sdk@latest (i web)
|
|
82
|
+
↓
|
|
83
|
+
Test i web
|
|
115
84
|
```
|
|
116
85
|
|
|
117
|
-
### ⚠️ Viktig om Yalc
|
|
118
|
-
|
|
119
|
-
Yalc krever ofte at `pnpm sdk:link` kjøres flere ganger:
|
|
120
|
-
- **Første gang**: Etablerer link mellom SDK og web
|
|
121
|
-
- **Ved oppdateringer**: Selv om `npm run publish:local` pusher endringer, må ofte `pnpm sdk:link` kjøres på nytt i web for å få oppdateringen
|
|
122
|
-
- **Tips**: Hvis du ikke ser endringene dine, kjør `pnpm sdk:link` igjen
|
|
123
|
-
|
|
124
86
|
## 📝 Scripts
|
|
125
87
|
|
|
126
88
|
| Script | Beskrivelse | Når brukes |
|
|
127
89
|
|--------|-------------|------------|
|
|
128
90
|
| `npm run generate` | Generer fra lokal API (localhost:3001) | Etter API endringer |
|
|
129
|
-
| `npm run
|
|
91
|
+
| `npm run sjekk` | Quick test av type generation | For debugging |
|
|
92
|
+
| `npm run generate:remote` | Generer fra remote API | For produksjon sync |
|
|
130
93
|
| `npm run build` | Kompiler TypeScript til JavaScript | Før publisering |
|
|
131
|
-
| `npm run
|
|
132
|
-
| `npm run pack` | Lag .tgz pakke | For produksjon |
|
|
94
|
+
| `npm run pack` | Lag .tgz pakke (for testing) | For lokal testing |
|
|
133
95
|
| `npm run clean` | Slett dist og .tgz filer | For opprydding |
|
|
134
96
|
| `npm run typecheck` | Sjekk TypeScript typer | Før commit |
|
|
97
|
+
| `npm run lint` | Sjekk kode kvalitet | Før commit |
|
|
98
|
+
| `npm run format` | Formater kode | Før commit |
|
|
135
99
|
|
|
136
100
|
## 💻 Bruk i kode
|
|
137
101
|
|
|
138
102
|
```typescript
|
|
139
103
|
// Import SDK
|
|
140
|
-
import { ApiClient } from '@uloba3
|
|
104
|
+
import { ApiClient } from '@digiteers/uloba3-sdk';
|
|
141
105
|
|
|
142
106
|
// Initialiser klient
|
|
143
107
|
const client = new ApiClient({
|
|
@@ -157,6 +121,43 @@ const application = await client.applications.create({
|
|
|
157
121
|
});
|
|
158
122
|
```
|
|
159
123
|
|
|
124
|
+
## 🔐 Publisering til npm
|
|
125
|
+
|
|
126
|
+
SDK bruker **npm automation token** for å publisere uten 2FA ved hver gang.
|
|
127
|
+
|
|
128
|
+
### Oppsett (allerede gjort)
|
|
129
|
+
1. Automation token er konfigurert i `.npmrc`
|
|
130
|
+
2. `.npmrc` er gitignored for sikkerhet
|
|
131
|
+
3. Publisering krever ingen OTP-kode
|
|
132
|
+
|
|
133
|
+
### Publisere ny versjon
|
|
134
|
+
```bash
|
|
135
|
+
npm version patch # eller minor/major
|
|
136
|
+
npm publish # Publiserer automatisk til npm
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## 📚 API Moduler
|
|
140
|
+
|
|
141
|
+
SDK gir typed tilgang til følgende API moduler:
|
|
142
|
+
|
|
143
|
+
| Modul | Beskrivelse |
|
|
144
|
+
|-------|-------------|
|
|
145
|
+
| `accounts` | Kontohåndtering |
|
|
146
|
+
| `auth` | Autentisering |
|
|
147
|
+
| `users` | Brukerhåndtering |
|
|
148
|
+
| `jobs` | Jobbannonser |
|
|
149
|
+
| `assistants` | Assistenthåndtering |
|
|
150
|
+
| `applications` | Jobbsøknader |
|
|
151
|
+
| `inquiries` | Henvendelser |
|
|
152
|
+
| `contracts` | Kontrakter |
|
|
153
|
+
| `contractCases` | Kontraktsaker |
|
|
154
|
+
| `tasks` | Oppgaver |
|
|
155
|
+
| `billing` | Fakturering |
|
|
156
|
+
| `analytics` | Statistikk |
|
|
157
|
+
| `documents` | Dokumenter |
|
|
158
|
+
| `messaging` | Meldinger |
|
|
159
|
+
| `admin` | Admin funksjoner |
|
|
160
|
+
|
|
160
161
|
## 🏗️ Vedlikehold
|
|
161
162
|
|
|
162
163
|
### Oppdater dependencies
|
|
@@ -167,90 +168,58 @@ npm audit fix
|
|
|
167
168
|
|
|
168
169
|
### Versjonering
|
|
169
170
|
```bash
|
|
170
|
-
#
|
|
171
|
-
npm version
|
|
172
|
-
npm version
|
|
173
|
-
npm version major # 1.0.0 -> 2.0.0
|
|
171
|
+
npm version patch # 1.0.0 -> 1.0.1 (bugfixes)
|
|
172
|
+
npm version minor # 1.0.0 -> 1.1.0 (nye features)
|
|
173
|
+
npm version major # 1.0.0 -> 2.0.0 (breaking changes)
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
-
|
|
176
|
+
## 🔧 Feilsøking
|
|
177
177
|
|
|
178
|
-
**Problem:
|
|
178
|
+
**Problem: TypeScript feil etter generering**
|
|
179
179
|
```bash
|
|
180
|
-
#
|
|
181
|
-
|
|
182
|
-
pnpm sdk:link
|
|
183
|
-
|
|
184
|
-
# Alternativt, force update:
|
|
185
|
-
yalc remove @uloba3/sdk
|
|
186
|
-
pnpm sdk:link
|
|
187
|
-
```
|
|
180
|
+
# Sjekk at API kjører
|
|
181
|
+
curl http://localhost:3001/api/docs/json
|
|
188
182
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
cd uloba3-sdk
|
|
183
|
+
# Regenerer med clean build
|
|
184
|
+
npm run clean
|
|
192
185
|
npm run generate
|
|
193
186
|
npm run build
|
|
194
|
-
npm run publish:local
|
|
195
|
-
|
|
196
|
-
# I web prosjektet - VIKTIG:
|
|
197
|
-
pnpm sdk:link # Må ofte kjøres på nytt for å få oppdateringen
|
|
198
187
|
```
|
|
199
188
|
|
|
200
|
-
**Problem:
|
|
189
|
+
**Problem: Kan ikke publisere til npm**
|
|
201
190
|
```bash
|
|
202
|
-
#
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
pnpm install
|
|
191
|
+
# Sjekk at du er logget inn
|
|
192
|
+
npm whoami
|
|
193
|
+
|
|
194
|
+
# Sjekk at .npmrc eksisterer med automation token
|
|
195
|
+
cat .npmrc
|
|
208
196
|
```
|
|
209
197
|
|
|
210
|
-
**Problem:
|
|
198
|
+
**Problem: uloba3-web får ikke oppdatert SDK**
|
|
211
199
|
```bash
|
|
212
|
-
#
|
|
213
|
-
|
|
200
|
+
# I uloba3-web
|
|
201
|
+
pnpm add @digiteers/uloba3-sdk@latest
|
|
214
202
|
|
|
215
|
-
#
|
|
216
|
-
|
|
217
|
-
npm run generate
|
|
218
|
-
npm run build
|
|
203
|
+
# Eller spesifiser eksakt versjon
|
|
204
|
+
pnpm add @digiteers/uloba3-sdk@1.3.9
|
|
219
205
|
```
|
|
220
206
|
|
|
221
207
|
## 🔐 Sikkerhet
|
|
222
208
|
|
|
223
209
|
- SDK inneholder INGEN hemmeligheter eller tokens
|
|
224
210
|
- All autentisering håndteres av konsumenten (web-app)
|
|
211
|
+
- `.npmrc` med automation token er gitignored
|
|
225
212
|
- Generert kode skal ALDRI committes med sensitive data
|
|
226
213
|
|
|
227
|
-
## 📚 API Moduler
|
|
228
|
-
|
|
229
|
-
SDK gir typed tilgang til følgende API moduler:
|
|
230
|
-
|
|
231
|
-
| Modul | Beskrivelse |
|
|
232
|
-
|-------|-------------|
|
|
233
|
-
| `accounts` | Kontohåndtering |
|
|
234
|
-
| `auth` | Autentisering |
|
|
235
|
-
| `users` | Brukerhåndtering |
|
|
236
|
-
| `jobs` | Jobbannonser |
|
|
237
|
-
| `assistants` | Assistenthåndtering |
|
|
238
|
-
| `applications` | Jobbsøknader |
|
|
239
|
-
| `inquiries` | Henvendelser |
|
|
240
|
-
| `contracts` | Kontrakter |
|
|
241
|
-
| `meetings` | Møter |
|
|
242
|
-
| `billing` | Fakturering |
|
|
243
|
-
| `analytics` | Statistikk |
|
|
244
|
-
| `admin` | Admin funksjoner |
|
|
245
|
-
|
|
246
214
|
## 🤝 Bidra
|
|
247
215
|
|
|
248
216
|
1. Gjør endringer i API (uloba3-backend)
|
|
249
|
-
2. Generer nytt SDK
|
|
250
|
-
3. Test
|
|
217
|
+
2. Generer nytt SDK med `npm run generate`
|
|
218
|
+
3. Test lokalt
|
|
251
219
|
4. Commit med beskrivende melding
|
|
252
|
-
5.
|
|
220
|
+
5. Publiser med `npm version patch && npm publish`
|
|
221
|
+
6. Oppdater i uloba3-web med `pnpm add @digiteers/uloba3-sdk@latest`
|
|
253
222
|
|
|
254
223
|
## 📄 Lisens
|
|
255
224
|
|
|
256
|
-
Privat
|
|
225
|
+
MIT - Privat npm package under @digiteers scope.
|
package/package.json
CHANGED
package/MIGRATION.md
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# SDK Migration Documentation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
The SDK has been successfully migrated from `uloba3-backend` monorepo to its own standalone repository `uloba3-sdk`.
|
|
5
|
-
|
|
6
|
-
## Migration Summary
|
|
7
|
-
|
|
8
|
-
### Repository Structure
|
|
9
|
-
- **New Location**: `/Users/digiteers/GitHub/uloba3/uloba3-sdk`
|
|
10
|
-
- **Package Name**: Changed from `@uloba3-backend/sdk` to `@uloba3/sdk`
|
|
11
|
-
- **Version**: 1.3.6
|
|
12
|
-
|
|
13
|
-
### Key Changes
|
|
14
|
-
|
|
15
|
-
#### 1. Package Configuration
|
|
16
|
-
- Standalone package.json with all necessary dependencies
|
|
17
|
-
- Independent TypeScript configuration
|
|
18
|
-
- ESLint and Prettier configurations for code quality
|
|
19
|
-
- Support for both yalc (local dev) and .tgz (production) workflows
|
|
20
|
-
|
|
21
|
-
#### 2. Generation Scripts
|
|
22
|
-
```json
|
|
23
|
-
{
|
|
24
|
-
"generate": "npm run generate:local",
|
|
25
|
-
"generate:local": "openapi-typescript http://localhost:3001/api/docs/json --output ./src/types.ts",
|
|
26
|
-
"generate:remote": "curl -s ${API_URL}/api/docs/json > /tmp/openapi.json && openapi-typescript /tmp/openapi.json --output ./src/types.ts"
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
#### 3. Publishing Workflows
|
|
31
|
-
- **Local Development**: `npm run publish:local` (uses yalc)
|
|
32
|
-
- **Production Build**: `npm run pack` (creates .tgz file)
|
|
33
|
-
|
|
34
|
-
### uloba3-web Updates
|
|
35
|
-
|
|
36
|
-
#### Package.json Changes
|
|
37
|
-
```json
|
|
38
|
-
// Old
|
|
39
|
-
"@uloba3-backend/sdk": "file:../uloba3-backend/packages/sdk"
|
|
40
|
-
|
|
41
|
-
// New
|
|
42
|
-
"@uloba3/sdk": "file:.yalc/@uloba3/sdk" // For local dev with yalc
|
|
43
|
-
// OR
|
|
44
|
-
"@uloba3/sdk": "file:./packages/sdk/uloba3-sdk-1.3.6.tgz" // For production
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
#### Script Updates
|
|
48
|
-
- `sdk:prod`: Now references `../uloba3-sdk` instead of `../uloba3-backend/packages/sdk`
|
|
49
|
-
- `sdk:link`: Now uses `@uloba3/sdk` instead of `@uloba3-backend/sdk`
|
|
50
|
-
|
|
51
|
-
#### Import Updates
|
|
52
|
-
All imports changed from:
|
|
53
|
-
```typescript
|
|
54
|
-
import { SomeType } from '@uloba3-backend/sdk';
|
|
55
|
-
```
|
|
56
|
-
To:
|
|
57
|
-
```typescript
|
|
58
|
-
import { SomeType } from '@uloba3/sdk';
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### GitHub Actions
|
|
62
|
-
Added automated SDK generation workflow that:
|
|
63
|
-
- Runs daily or on manual trigger
|
|
64
|
-
- Fetches latest OpenAPI spec from API
|
|
65
|
-
- Generates TypeScript types
|
|
66
|
-
- Commits changes if any
|
|
67
|
-
- Creates releases with .tgz packages
|
|
68
|
-
|
|
69
|
-
### Benefits of Separation
|
|
70
|
-
|
|
71
|
-
1. **Cleaner Architecture**: SDK is now independent from backend implementation
|
|
72
|
-
2. **Simpler Workflows**: SDK can be updated without touching backend code
|
|
73
|
-
3. **Better Versioning**: SDK has its own version lifecycle
|
|
74
|
-
4. **Reduced Complexity**: Backend monorepo is simpler without SDK
|
|
75
|
-
5. **Flexible Deployment**: Can be published to npm in future if needed
|
|
76
|
-
|
|
77
|
-
## Usage
|
|
78
|
-
|
|
79
|
-
### For SDK Development
|
|
80
|
-
```bash
|
|
81
|
-
cd uloba3-sdk
|
|
82
|
-
npm install
|
|
83
|
-
npm run generate # Generate from local API
|
|
84
|
-
npm run build # Build TypeScript
|
|
85
|
-
npm run publish:local # Publish to yalc
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### For uloba3-web Development
|
|
89
|
-
```bash
|
|
90
|
-
# Link SDK for local development
|
|
91
|
-
pnpm sdk:link
|
|
92
|
-
|
|
93
|
-
# Or use production build
|
|
94
|
-
pnpm sdk:prod
|
|
95
|
-
|
|
96
|
-
# Unlink when done
|
|
97
|
-
pnpm sdk:unlink
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### For Production Deployment
|
|
101
|
-
The `vercel-build` script in uloba3-web will:
|
|
102
|
-
1. Fetch OpenAPI spec from production API
|
|
103
|
-
2. Generate types directly (fallback if SDK not available)
|
|
104
|
-
3. Build the Next.js application
|
|
105
|
-
|
|
106
|
-
## Migration Completed
|
|
107
|
-
- ✅ Created standalone uloba3-sdk repository
|
|
108
|
-
- ✅ Copied all SDK code and configurations
|
|
109
|
-
- ✅ Set up independent build and generation scripts
|
|
110
|
-
- ✅ Added GitHub Actions for automation
|
|
111
|
-
- ✅ Updated uloba3-web to use new SDK
|
|
112
|
-
- ✅ Removed SDK from backend monorepo
|
|
113
|
-
- ✅ Tested yalc and .tgz workflows
|
|
114
|
-
|
|
115
|
-
## Next Steps (Optional)
|
|
116
|
-
1. Push uloba3-sdk to GitHub
|
|
117
|
-
2. Configure GitHub Actions secrets
|
|
118
|
-
3. Consider npm publishing in future (currently using local workflows)
|