@digiteers/uloba3-sdk 1.3.7
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/.eslintrc.json +29 -0
- package/.github/workflows/generate-sdk.yml +126 -0
- package/.prettierrc +11 -0
- package/MIGRATION.md +118 -0
- package/README.md +256 -0
- package/dist/api/accounts.d.ts +31 -0
- package/dist/api/accounts.d.ts.map +1 -0
- package/dist/api/accounts.js +71 -0
- package/dist/api/accounts.js.map +1 -0
- package/dist/api/admin/arrangements.d.ts +41 -0
- package/dist/api/admin/arrangements.d.ts.map +1 -0
- package/dist/api/admin/arrangements.js +60 -0
- package/dist/api/admin/arrangements.js.map +1 -0
- package/dist/api/admin/assistance-types.d.ts +41 -0
- package/dist/api/admin/assistance-types.d.ts.map +1 -0
- package/dist/api/admin/assistance-types.js +60 -0
- package/dist/api/admin/assistance-types.js.map +1 -0
- package/dist/api/admin/contract-case-workflow-states.d.ts +69 -0
- package/dist/api/admin/contract-case-workflow-states.d.ts.map +1 -0
- package/dist/api/admin/contract-case-workflow-states.js +59 -0
- package/dist/api/admin/contract-case-workflow-states.js.map +1 -0
- package/dist/api/admin/contract-types.d.ts +41 -0
- package/dist/api/admin/contract-types.d.ts.map +1 -0
- package/dist/api/admin/contract-types.js +60 -0
- package/dist/api/admin/contract-types.js.map +1 -0
- package/dist/api/admin/expectation-templates.d.ts +39 -0
- package/dist/api/admin/expectation-templates.d.ts.map +1 -0
- package/dist/api/admin/expectation-templates.js +66 -0
- package/dist/api/admin/expectation-templates.js.map +1 -0
- package/dist/api/admin/index.d.ts +11 -0
- package/dist/api/admin/index.d.ts.map +1 -0
- package/dist/api/admin/index.js +24 -0
- package/dist/api/admin/index.js.map +1 -0
- package/dist/api/admin/interest-templates.d.ts +39 -0
- package/dist/api/admin/interest-templates.d.ts.map +1 -0
- package/dist/api/admin/interest-templates.js +66 -0
- package/dist/api/admin/interest-templates.js.map +1 -0
- package/dist/api/admin/organization.d.ts +15 -0
- package/dist/api/admin/organization.d.ts.map +1 -0
- package/dist/api/admin/organization.js +25 -0
- package/dist/api/admin/organization.js.map +1 -0
- package/dist/api/admin/responsibility-templates.d.ts +39 -0
- package/dist/api/admin/responsibility-templates.d.ts.map +1 -0
- package/dist/api/admin/responsibility-templates.js +66 -0
- package/dist/api/admin/responsibility-templates.js.map +1 -0
- package/dist/api/admin/salaries.d.ts +48 -0
- package/dist/api/admin/salaries.d.ts.map +1 -0
- package/dist/api/admin/salaries.js +60 -0
- package/dist/api/admin/salaries.js.map +1 -0
- package/dist/api/admin/work-schedules.d.ts +67 -0
- package/dist/api/admin/work-schedules.d.ts.map +1 -0
- package/dist/api/admin/work-schedules.js +59 -0
- package/dist/api/admin/work-schedules.js.map +1 -0
- package/dist/api/analytics.d.ts +37 -0
- package/dist/api/analytics.d.ts.map +1 -0
- package/dist/api/analytics.js +37 -0
- package/dist/api/analytics.js.map +1 -0
- package/dist/api/applications.d.ts +166 -0
- package/dist/api/applications.d.ts.map +1 -0
- package/dist/api/applications.js +156 -0
- package/dist/api/applications.js.map +1 -0
- package/dist/api/assistants.d.ts +413 -0
- package/dist/api/assistants.d.ts.map +1 -0
- package/dist/api/assistants.js +250 -0
- package/dist/api/assistants.js.map +1 -0
- package/dist/api/auth.d.ts +57 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +46 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/billing.d.ts +33 -0
- package/dist/api/billing.d.ts.map +1 -0
- package/dist/api/billing.js +49 -0
- package/dist/api/billing.js.map +1 -0
- package/dist/api/contract-cases.d.ts +38 -0
- package/dist/api/contract-cases.d.ts.map +1 -0
- package/dist/api/contract-cases.js +65 -0
- package/dist/api/contract-cases.js.map +1 -0
- package/dist/api/contracts.d.ts +903 -0
- package/dist/api/contracts.d.ts.map +1 -0
- package/dist/api/contracts.js +300 -0
- package/dist/api/contracts.js.map +1 -0
- package/dist/api/documents.d.ts +20 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +27 -0
- package/dist/api/documents.js.map +1 -0
- package/dist/api/feeds.d.ts +23 -0
- package/dist/api/feeds.d.ts.map +1 -0
- package/dist/api/feeds.js +47 -0
- package/dist/api/feeds.js.map +1 -0
- package/dist/api/gdpr.d.ts +23 -0
- package/dist/api/gdpr.d.ts.map +1 -0
- package/dist/api/gdpr.js +50 -0
- package/dist/api/gdpr.js.map +1 -0
- package/dist/api/inquiries.d.ts +190 -0
- package/dist/api/inquiries.d.ts.map +1 -0
- package/dist/api/inquiries.js +173 -0
- package/dist/api/inquiries.js.map +1 -0
- package/dist/api/jobs.d.ts +169 -0
- package/dist/api/jobs.d.ts.map +1 -0
- package/dist/api/jobs.js +294 -0
- package/dist/api/jobs.js.map +1 -0
- package/dist/api/locations.d.ts +30 -0
- package/dist/api/locations.d.ts.map +1 -0
- package/dist/api/locations.js +25 -0
- package/dist/api/locations.js.map +1 -0
- package/dist/api/meetings.d.ts +109 -0
- package/dist/api/meetings.d.ts.map +1 -0
- package/dist/api/meetings.js +75 -0
- package/dist/api/meetings.js.map +1 -0
- package/dist/api/messaging.d.ts +32 -0
- package/dist/api/messaging.d.ts.map +1 -0
- package/dist/api/messaging.js +114 -0
- package/dist/api/messaging.js.map +1 -0
- package/dist/api/notes.d.ts +21 -0
- package/dist/api/notes.d.ts.map +1 -0
- package/dist/api/notes.js +38 -0
- package/dist/api/notes.js.map +1 -0
- package/dist/api/organization.d.ts +56 -0
- package/dist/api/organization.d.ts.map +1 -0
- package/dist/api/organization.js +39 -0
- package/dist/api/organization.js.map +1 -0
- package/dist/api/salaries.d.ts +24 -0
- package/dist/api/salaries.d.ts.map +1 -0
- package/dist/api/salaries.js +39 -0
- package/dist/api/salaries.js.map +1 -0
- package/dist/api/tasks.d.ts +19 -0
- package/dist/api/tasks.d.ts.map +1 -0
- package/dist/api/tasks.js +35 -0
- package/dist/api/tasks.js.map +1 -0
- package/dist/api/users.d.ts +62 -0
- package/dist/api/users.d.ts.map +1 -0
- package/dist/api/users.js +62 -0
- package/dist/api/users.js.map +1 -0
- package/dist/api-types.d.ts +1242 -0
- package/dist/api-types.d.ts.map +1 -0
- package/dist/api-types.js +5 -0
- package/dist/api-types.js.map +1 -0
- package/dist/client.d.ts +69 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +142 -0
- package/dist/client.js.map +1 -0
- package/dist/components/contracts/forms/DirectContractForm.d.ts +1 -0
- package/dist/components/contracts/forms/DirectContractForm.d.ts.map +1 -0
- package/dist/components/contracts/forms/DirectContractForm.js +2 -0
- package/dist/components/contracts/forms/DirectContractForm.js.map +1 -0
- package/dist/constants.d.ts +133 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +139 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +36489 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/view-types.d.ts +44 -0
- package/dist/view-types.d.ts.map +1 -0
- package/dist/view-types.js +7 -0
- package/dist/view-types.js.map +1 -0
- package/package.json +85 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"parser": "@typescript-eslint/parser",
|
|
3
|
+
"extends": [
|
|
4
|
+
"eslint:recommended",
|
|
5
|
+
"plugin:@typescript-eslint/recommended"
|
|
6
|
+
],
|
|
7
|
+
"parserOptions": {
|
|
8
|
+
"ecmaVersion": 2022,
|
|
9
|
+
"sourceType": "module",
|
|
10
|
+
"project": "./tsconfig.json"
|
|
11
|
+
},
|
|
12
|
+
"env": {
|
|
13
|
+
"node": true,
|
|
14
|
+
"es2022": true
|
|
15
|
+
},
|
|
16
|
+
"rules": {
|
|
17
|
+
"@typescript-eslint/no-explicit-any": "warn",
|
|
18
|
+
"@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }],
|
|
19
|
+
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
20
|
+
"@typescript-eslint/no-non-null-assertion": "warn",
|
|
21
|
+
"no-console": ["warn", { "allow": ["warn", "error", "info"] }]
|
|
22
|
+
},
|
|
23
|
+
"ignorePatterns": [
|
|
24
|
+
"dist/",
|
|
25
|
+
"node_modules/",
|
|
26
|
+
"*.js",
|
|
27
|
+
"src/types.ts"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
name: Generate SDK
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
# Run daily at 2 AM UTC
|
|
6
|
+
- cron: '0 2 * * *'
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
api_url:
|
|
10
|
+
description: 'API URL to generate SDK from'
|
|
11
|
+
required: false
|
|
12
|
+
default: 'https://api.uloba3.no'
|
|
13
|
+
push:
|
|
14
|
+
branches:
|
|
15
|
+
- main
|
|
16
|
+
paths:
|
|
17
|
+
- 'scripts/**'
|
|
18
|
+
- 'src/**'
|
|
19
|
+
- 'package.json'
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
generate:
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- name: Checkout repository
|
|
27
|
+
uses: actions/checkout@v4
|
|
28
|
+
with:
|
|
29
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
30
|
+
|
|
31
|
+
- name: Setup Node.js
|
|
32
|
+
uses: actions/setup-node@v4
|
|
33
|
+
with:
|
|
34
|
+
node-version: '20'
|
|
35
|
+
cache: 'npm'
|
|
36
|
+
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: npm ci
|
|
39
|
+
|
|
40
|
+
- name: Generate SDK from API
|
|
41
|
+
env:
|
|
42
|
+
API_URL: ${{ github.event.inputs.api_url || 'https://api.uloba3.no' }}
|
|
43
|
+
run: |
|
|
44
|
+
echo "Generating SDK from $API_URL"
|
|
45
|
+
npm run generate:remote
|
|
46
|
+
|
|
47
|
+
- name: Check for changes
|
|
48
|
+
id: check_changes
|
|
49
|
+
run: |
|
|
50
|
+
if git diff --quiet src/types.ts; then
|
|
51
|
+
echo "No changes in generated types"
|
|
52
|
+
echo "has_changes=false" >> $GITHUB_OUTPUT
|
|
53
|
+
else
|
|
54
|
+
echo "Changes detected in generated types"
|
|
55
|
+
echo "has_changes=true" >> $GITHUB_OUTPUT
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
- name: Commit and push changes
|
|
59
|
+
if: steps.check_changes.outputs.has_changes == 'true'
|
|
60
|
+
run: |
|
|
61
|
+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
|
62
|
+
git config --local user.name "github-actions[bot]"
|
|
63
|
+
git add src/types.ts
|
|
64
|
+
git commit -m "chore: update generated SDK types [skip ci]"
|
|
65
|
+
git push
|
|
66
|
+
|
|
67
|
+
- name: Build SDK
|
|
68
|
+
run: npm run build
|
|
69
|
+
|
|
70
|
+
- name: Create release package
|
|
71
|
+
if: steps.check_changes.outputs.has_changes == 'true'
|
|
72
|
+
run: |
|
|
73
|
+
npm pack
|
|
74
|
+
echo "PACKAGE_FILE=$(ls *.tgz)" >> $GITHUB_ENV
|
|
75
|
+
|
|
76
|
+
- name: Upload package artifact
|
|
77
|
+
if: steps.check_changes.outputs.has_changes == 'true'
|
|
78
|
+
uses: actions/upload-artifact@v3
|
|
79
|
+
with:
|
|
80
|
+
name: sdk-package
|
|
81
|
+
path: ${{ env.PACKAGE_FILE }}
|
|
82
|
+
|
|
83
|
+
release:
|
|
84
|
+
needs: generate
|
|
85
|
+
runs-on: ubuntu-latest
|
|
86
|
+
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push'
|
|
87
|
+
|
|
88
|
+
steps:
|
|
89
|
+
- name: Checkout repository
|
|
90
|
+
uses: actions/checkout@v4
|
|
91
|
+
|
|
92
|
+
- name: Setup Node.js
|
|
93
|
+
uses: actions/setup-node@v4
|
|
94
|
+
with:
|
|
95
|
+
node-version: '20'
|
|
96
|
+
cache: 'npm'
|
|
97
|
+
|
|
98
|
+
- name: Install dependencies
|
|
99
|
+
run: npm ci
|
|
100
|
+
|
|
101
|
+
- name: Build and package
|
|
102
|
+
run: |
|
|
103
|
+
npm run build
|
|
104
|
+
npm pack
|
|
105
|
+
|
|
106
|
+
- name: Get package version
|
|
107
|
+
id: package_version
|
|
108
|
+
run: |
|
|
109
|
+
echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
|
|
110
|
+
|
|
111
|
+
- name: Create GitHub Release
|
|
112
|
+
if: github.event_name == 'workflow_dispatch'
|
|
113
|
+
uses: softprops/action-gh-release@v1
|
|
114
|
+
with:
|
|
115
|
+
tag_name: v${{ steps.package_version.outputs.version }}
|
|
116
|
+
name: SDK v${{ steps.package_version.outputs.version }}
|
|
117
|
+
files: uloba3-sdk-*.tgz
|
|
118
|
+
body: |
|
|
119
|
+
## SDK Release v${{ steps.package_version.outputs.version }}
|
|
120
|
+
|
|
121
|
+
Generated from API: ${{ github.event.inputs.api_url || 'https://api.uloba3.no' }}
|
|
122
|
+
|
|
123
|
+
### Installation
|
|
124
|
+
```bash
|
|
125
|
+
npm install https://github.com/${{ github.repository }}/releases/download/v${{ steps.package_version.outputs.version }}/uloba3-sdk-${{ steps.package_version.outputs.version }}.tgz
|
|
126
|
+
```
|
package/.prettierrc
ADDED
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
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)
|
package/README.md
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# Uloba3 SDK
|
|
2
|
+
|
|
3
|
+
TypeScript SDK for Uloba3 API - Autogenerert fra OpenAPI spesifikasjon.
|
|
4
|
+
|
|
5
|
+
## 🎯 Formål
|
|
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.
|
|
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
|
|
14
|
+
|
|
15
|
+
## 📦 Arkitektur
|
|
16
|
+
|
|
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
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 🚀 Kom i gang
|
|
34
|
+
|
|
35
|
+
### Forutsetninger
|
|
36
|
+
- Node.js 18+
|
|
37
|
+
- npm eller pnpm
|
|
38
|
+
- Tilgang til uloba3-backend repository
|
|
39
|
+
- yalc installert globalt: `npm install -g yalc`
|
|
40
|
+
|
|
41
|
+
### Oppsett
|
|
42
|
+
```bash
|
|
43
|
+
# Klon repository
|
|
44
|
+
git clone [repository-url] uloba3-sdk
|
|
45
|
+
cd uloba3-sdk
|
|
46
|
+
|
|
47
|
+
# Installer dependencies
|
|
48
|
+
npm install
|
|
49
|
+
|
|
50
|
+
# Generer SDK fra lokal API
|
|
51
|
+
npm run generate
|
|
52
|
+
|
|
53
|
+
# Bygg SDK
|
|
54
|
+
npm run build
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 🔄 Utviklingsworkflow
|
|
58
|
+
|
|
59
|
+
### 1. Når API endres (i uloba3-backend)
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Start API lokalt
|
|
63
|
+
cd uloba3-backend
|
|
64
|
+
pnpm dev:api # Kjører på localhost:3001
|
|
65
|
+
|
|
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
|
+
```
|
|
71
|
+
|
|
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
|
|
81
|
+
|
|
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
|
|
87
|
+
|
|
88
|
+
# Når ferdig med utvikling:
|
|
89
|
+
pnpm sdk:unlink # Fjerner link
|
|
90
|
+
```
|
|
91
|
+
|
|
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
|
|
96
|
+
|
|
97
|
+
# I web prosjektet
|
|
98
|
+
pnpm sdk:prod # Kopierer og installerer .tgz
|
|
99
|
+
```
|
|
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]
|
|
115
|
+
```
|
|
116
|
+
|
|
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
|
+
## 📝 Scripts
|
|
125
|
+
|
|
126
|
+
| Script | Beskrivelse | Når brukes |
|
|
127
|
+
|--------|-------------|------------|
|
|
128
|
+
| `npm run generate` | Generer fra lokal API (localhost:3001) | Etter API endringer |
|
|
129
|
+
| `npm run generate:remote` | Generer fra ekstern API | For produksjon sync |
|
|
130
|
+
| `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 |
|
|
133
|
+
| `npm run clean` | Slett dist og .tgz filer | For opprydding |
|
|
134
|
+
| `npm run typecheck` | Sjekk TypeScript typer | Før commit |
|
|
135
|
+
|
|
136
|
+
## 💻 Bruk i kode
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
// Import SDK
|
|
140
|
+
import { ApiClient } from '@uloba3/sdk';
|
|
141
|
+
|
|
142
|
+
// Initialiser klient
|
|
143
|
+
const client = new ApiClient({
|
|
144
|
+
baseUrl: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001',
|
|
145
|
+
token: 'auth-token-here',
|
|
146
|
+
onTokenRefresh: async () => {
|
|
147
|
+
// Håndter token refresh
|
|
148
|
+
return 'new-token';
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Bruk typed API metoder
|
|
153
|
+
const jobs = await client.jobs.getAll();
|
|
154
|
+
const application = await client.applications.create({
|
|
155
|
+
job_id: 'job-123',
|
|
156
|
+
message: 'Søknadstekst'
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## 🏗️ Vedlikehold
|
|
161
|
+
|
|
162
|
+
### Oppdater dependencies
|
|
163
|
+
```bash
|
|
164
|
+
npm update
|
|
165
|
+
npm audit fix
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Versjonering
|
|
169
|
+
```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
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Feilsøking
|
|
177
|
+
|
|
178
|
+
**Problem: SDK oppdateres ikke i web etter publish:local**
|
|
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
|
+
```
|
|
188
|
+
|
|
189
|
+
**Problem: SDK er utdatert**
|
|
190
|
+
```bash
|
|
191
|
+
cd uloba3-sdk
|
|
192
|
+
npm run generate
|
|
193
|
+
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
|
+
```
|
|
199
|
+
|
|
200
|
+
**Problem: Yalc link fungerer ikke**
|
|
201
|
+
```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
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Problem: TypeScript feil etter generering**
|
|
211
|
+
```bash
|
|
212
|
+
# Sjekk at API kjører
|
|
213
|
+
curl http://localhost:3001/api/docs/json
|
|
214
|
+
|
|
215
|
+
# Regenerer med clean build
|
|
216
|
+
npm run clean
|
|
217
|
+
npm run generate
|
|
218
|
+
npm run build
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## 🔐 Sikkerhet
|
|
222
|
+
|
|
223
|
+
- SDK inneholder INGEN hemmeligheter eller tokens
|
|
224
|
+
- All autentisering håndteres av konsumenten (web-app)
|
|
225
|
+
- Generert kode skal ALDRI committes med sensitive data
|
|
226
|
+
|
|
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
|
+
## 🤝 Bidra
|
|
247
|
+
|
|
248
|
+
1. Gjør endringer i API (uloba3-backend)
|
|
249
|
+
2. Generer nytt SDK
|
|
250
|
+
3. Test grundig med yalc
|
|
251
|
+
4. Commit med beskrivende melding
|
|
252
|
+
5. Push til main branch
|
|
253
|
+
|
|
254
|
+
## 📄 Lisens
|
|
255
|
+
|
|
256
|
+
Privat repository - ikke for offentlig distribusjon.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { Account, AccountWithRole, AccountUpdateInput, AssistanceDecision, RequestOptions } from '../api-types';
|
|
3
|
+
export declare class AccountsApi {
|
|
4
|
+
private axios;
|
|
5
|
+
constructor(axios: AxiosInstance);
|
|
6
|
+
/**
|
|
7
|
+
* Get all accounts for the authenticated user
|
|
8
|
+
*/
|
|
9
|
+
list(options?: RequestOptions): Promise<AccountWithRole[]>;
|
|
10
|
+
/**
|
|
11
|
+
* Get a specific account by ID
|
|
12
|
+
*/
|
|
13
|
+
get(id: string, options?: RequestOptions): Promise<Account>;
|
|
14
|
+
/**
|
|
15
|
+
* Update an account
|
|
16
|
+
*/
|
|
17
|
+
update(id: string, data: AccountUpdateInput, options?: RequestOptions): Promise<Account>;
|
|
18
|
+
/**
|
|
19
|
+
* Soft delete an account
|
|
20
|
+
*/
|
|
21
|
+
delete(id: string, options?: RequestOptions): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Restore a soft deleted account
|
|
24
|
+
*/
|
|
25
|
+
restore(id: string, options?: RequestOptions): Promise<Account>;
|
|
26
|
+
/**
|
|
27
|
+
* Get assistance decisions for an account
|
|
28
|
+
*/
|
|
29
|
+
getAssistanceDecisions(id: string, options?: RequestOptions): Promise<AssistanceDecision[]>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=accounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/api/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACL,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,WAAW;IACV,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,aAAa;IAExC;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAUhE;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjE;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9F;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjE;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrE;;OAEG;IACG,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAUlG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountsApi = void 0;
|
|
4
|
+
class AccountsApi {
|
|
5
|
+
axios;
|
|
6
|
+
constructor(axios) {
|
|
7
|
+
this.axios = axios;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Get all accounts for the authenticated user
|
|
11
|
+
*/
|
|
12
|
+
async list(options) {
|
|
13
|
+
const response = await this.axios.get('/api/accounts', {
|
|
14
|
+
signal: options?.signal,
|
|
15
|
+
headers: options?.headers
|
|
16
|
+
});
|
|
17
|
+
return response.data;
|
|
18
|
+
}
|
|
19
|
+
// Account creation is disabled - accounts must be created through system administration
|
|
20
|
+
/**
|
|
21
|
+
* Get a specific account by ID
|
|
22
|
+
*/
|
|
23
|
+
async get(id, options) {
|
|
24
|
+
const response = await this.axios.get(`/api/accounts/${id}`, {
|
|
25
|
+
signal: options?.signal,
|
|
26
|
+
headers: options?.headers
|
|
27
|
+
});
|
|
28
|
+
return response.data;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Update an account
|
|
32
|
+
*/
|
|
33
|
+
async update(id, data, options) {
|
|
34
|
+
const response = await this.axios.put(`/api/accounts/${id}`, data, {
|
|
35
|
+
signal: options?.signal,
|
|
36
|
+
headers: options?.headers
|
|
37
|
+
});
|
|
38
|
+
return response.data;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Soft delete an account
|
|
42
|
+
*/
|
|
43
|
+
async delete(id, options) {
|
|
44
|
+
await this.axios.delete(`/api/accounts/${id}`, {
|
|
45
|
+
signal: options?.signal,
|
|
46
|
+
headers: options?.headers
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Restore a soft deleted account
|
|
51
|
+
*/
|
|
52
|
+
async restore(id, options) {
|
|
53
|
+
const response = await this.axios.post(`/api/accounts/${id}/restore`, {}, {
|
|
54
|
+
signal: options?.signal,
|
|
55
|
+
headers: options?.headers
|
|
56
|
+
});
|
|
57
|
+
return response.data;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get assistance decisions for an account
|
|
61
|
+
*/
|
|
62
|
+
async getAssistanceDecisions(id, options) {
|
|
63
|
+
const response = await this.axios.get(`/api/accounts/${id}/assistance-decisions`, {
|
|
64
|
+
signal: options?.signal,
|
|
65
|
+
headers: options?.headers
|
|
66
|
+
});
|
|
67
|
+
return response.data;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.AccountsApi = AccountsApi;
|
|
71
|
+
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/api/accounts.ts"],"names":[],"mappings":";;;AASA,MAAa,WAAW;IACF;IAApB,YAAoB,KAAoB;QAApB,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;IAE5C;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAwB;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,eAAe,EAAE;YACxE,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,wFAAwF;IAExF;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,OAAwB;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,iBAAiB,EAAE,EAAE,EAAE;YACpE,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAwB,EAAE,OAAwB;QACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE;YAC1E,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAwB;QAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE;YAC7C,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,OAAwB;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAU,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE;YACjF,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,EAAU,EAAE,OAAwB;QAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACnC,iBAAiB,EAAE,uBAAuB,EAC1C;YACE,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CACF,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF;AAxED,kCAwEC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { Arrangement, CreateArrangementDto, UpdateArrangementDto, ReorderArrangementsDto, ArrangementStats } from '../../api-types';
|
|
3
|
+
export declare class AdminArrangementsApi {
|
|
4
|
+
private axios;
|
|
5
|
+
constructor(axios: AxiosInstance);
|
|
6
|
+
/**
|
|
7
|
+
* List all arrangements
|
|
8
|
+
*/
|
|
9
|
+
list(): Promise<{
|
|
10
|
+
arrangements: Arrangement[];
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Get a single arrangement by ID
|
|
14
|
+
*/
|
|
15
|
+
get(id: string): Promise<Arrangement>;
|
|
16
|
+
/**
|
|
17
|
+
* Create a new arrangement
|
|
18
|
+
*/
|
|
19
|
+
create(data: CreateArrangementDto): Promise<Arrangement>;
|
|
20
|
+
/**
|
|
21
|
+
* Update an arrangement
|
|
22
|
+
*/
|
|
23
|
+
update(id: string, data: UpdateArrangementDto): Promise<Arrangement>;
|
|
24
|
+
/**
|
|
25
|
+
* Delete an arrangement
|
|
26
|
+
*/
|
|
27
|
+
delete(id: string): Promise<{
|
|
28
|
+
success: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Reorder arrangements
|
|
32
|
+
*/
|
|
33
|
+
reorder(data: ReorderArrangementsDto): Promise<{
|
|
34
|
+
arrangements: Arrangement[];
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Get arrangement statistics
|
|
38
|
+
*/
|
|
39
|
+
getStats(id: string): Promise<ArrangementStats>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=arrangements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrangements.d.ts","sourceRoot":"","sources":["../../../src/api/admin/arrangements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,oBAAoB;IACnB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,aAAa;IAExC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAKtD;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK3C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAK9D;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAK1E;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAKvD;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAKrF;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAItD"}
|