@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.
Files changed (3) hide show
  1. package/README.md +113 -144
  2. package/package.json +1 -1
  3. package/MIGRATION.md +0 -118
package/README.md CHANGED
@@ -1,53 +1,37 @@
1
- # Uloba3 SDK
1
+ # @digiteers/uloba3-sdk
2
2
 
3
- TypeScript SDK for Uloba3 API - Autogenerert fra OpenAPI spesifikasjon.
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 er et separat repository som inneholder TypeScript-klient for Uloba3 API. SDK-et genereres automatisk fra API-ets OpenAPI spesifikasjon og gir type-safe tilgang til alle API endpoints.
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
- ### Hvorfor separat repository?
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
- ## 📦 Arkitektur
11
+ ```bash
12
+ # I uloba3-web eller andre prosjekter
13
+ pnpm add @digiteers/uloba3-sdk@latest
16
14
 
17
- ```
18
- uloba3-sdk/ # Dette repository
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 eller pnpm
38
- - Tilgang til uloba3-backend repository
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
- git clone [repository-url] uloba3-sdk
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. Når API endres (i uloba3-backend)
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 nytt SDK
67
- cd uloba3-sdk
68
- npm run generate # Henter OpenAPI spec og genererer typer
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
- ### 2. For lokal utvikling (med uloba3-web)
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
- # OBS: Ved oppdateringer av SDK:
83
- # 1. Gjør endringer i SDK
84
- # 2. Kjør 'npm run publish:local' i SDK directory
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
- # Når ferdig med utvikling:
89
- pnpm sdk:unlink # Fjerner link
61
+ # 5. Oppdater i uloba3-web
62
+ cd ../uloba3-web
63
+ pnpm add @digiteers/uloba3-sdk@latest
90
64
  ```
91
65
 
92
- **Metode B: .tgz fil (for testing av produksjon)**
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
- ### 3. Typisk utviklingsløype
102
-
103
- ```mermaid
104
- graph LR
105
- A[Backend endring] --> B[API kjører lokalt]
106
- B --> C[Generer SDK]
107
- C --> D[Publiser til yalc]
108
- D --> E[Link i web]
109
- E --> F[Test i web]
110
- F --> G{Fungerer?}
111
- G -->|Nei| A
112
- G -->|Ja| H[Commit SDK]
113
- H --> I[Pack .tgz]
114
- I --> J[Deploy]
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 generate:remote` | Generer fra ekstern API | For produksjon sync |
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 publish:local` | Publiser til yalc | For lokal utvikling |
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/sdk';
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
- # Øk versjon i package.json manuelt eller:
171
- npm version patch # 1.0.0 -> 1.0.1
172
- npm version minor # 1.0.0 -> 1.1.0
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
- ### Feilsøking
176
+ ## 🔧 Feilsøking
177
177
 
178
- **Problem: SDK oppdateres ikke i web etter publish:local**
178
+ **Problem: TypeScript feil etter generering**
179
179
  ```bash
180
- # Dette er normalt - yalc push oppdaterer ikke alltid package.json
181
- # Løsning: Kjør sdk:link på nytt i web prosjektet
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
- **Problem: SDK er utdatert**
190
- ```bash
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: Yalc link fungerer ikke**
189
+ **Problem: Kan ikke publisere til npm**
201
190
  ```bash
202
- # I web prosjektet
203
- yalc remove @uloba3/sdk
204
- rm -rf node_modules/.cache
205
- rm -rf .yalc
206
- yalc add @uloba3/sdk
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: TypeScript feil etter generering**
198
+ **Problem: uloba3-web får ikke oppdatert SDK**
211
199
  ```bash
212
- # Sjekk at API kjører
213
- curl http://localhost:3001/api/docs/json
200
+ # I uloba3-web
201
+ pnpm add @digiteers/uloba3-sdk@latest
214
202
 
215
- # Regenerer med clean build
216
- npm run clean
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 grundig med yalc
217
+ 2. Generer nytt SDK med `npm run generate`
218
+ 3. Test lokalt
251
219
  4. Commit med beskrivende melding
252
- 5. Push til main branch
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 repository - ikke for offentlig distribusjon.
225
+ MIT - Privat npm package under @digiteers scope.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digiteers/uloba3-sdk",
3
- "version": "1.3.8",
3
+ "version": "1.3.9",
4
4
  "description": "SDK for Uloba3 API - TypeScript client library",
5
5
  "private": false,
6
6
  "main": "./dist/index.js",
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)