@lifestreamdynamics/vault-sdk 1.0.0 → 1.0.1
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 +66 -40
- package/dist/client.d.ts +13 -9
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +12 -11
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Official TypeScript SDK for the Lifestream Vault API. Build powerful integrations with your Lifestream Vault account using a modern, type-safe client library.
|
|
4
4
|
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](https://www.npmjs.com/package/@lifestreamdynamics/vault-sdk)
|
|
7
7
|
|
|
8
8
|
## 📖 Table of Contents
|
|
9
9
|
|
|
@@ -42,19 +42,19 @@ Official TypeScript SDK for the Lifestream Vault API. Build powerful integration
|
|
|
42
42
|
### NPM (Recommended)
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
npm install @
|
|
45
|
+
npm install @lifestreamdynamics/vault-sdk
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
### Yarn
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
yarn add @
|
|
51
|
+
yarn add @lifestreamdynamics/vault-sdk
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
### pnpm
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
pnpm add @
|
|
57
|
+
pnpm add @lifestreamdynamics/vault-sdk
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
### CDN
|
|
@@ -62,24 +62,26 @@ pnpm add @lifestream-vault/sdk
|
|
|
62
62
|
```html
|
|
63
63
|
<!-- ES Module -->
|
|
64
64
|
<script type="module">
|
|
65
|
-
import { LifestreamVaultClient } from 'https://unpkg.com/@
|
|
65
|
+
import { LifestreamVaultClient } from 'https://unpkg.com/@lifestreamdynamics/vault-sdk/dist/index.js';
|
|
66
66
|
</script>
|
|
67
67
|
|
|
68
68
|
<!-- Or via jsDelivr -->
|
|
69
69
|
<script type="module">
|
|
70
|
-
import { LifestreamVaultClient } from 'https://cdn.jsdelivr.net/npm/@
|
|
70
|
+
import { LifestreamVaultClient } from 'https://cdn.jsdelivr.net/npm/@lifestreamdynamics/vault-sdk/+esm';
|
|
71
71
|
</script>
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
## 🚀 Quick Start
|
|
75
75
|
|
|
76
|
+
> **Self-hosting?** Replace `https://vault.lifestreamdynamics.com` with your server's URL, or set the `LSVAULT_API_URL` environment variable.
|
|
77
|
+
|
|
76
78
|
### Basic Usage with API Key
|
|
77
79
|
|
|
78
80
|
```typescript
|
|
79
|
-
import { LifestreamVaultClient } from '@
|
|
81
|
+
import { LifestreamVaultClient } from '@lifestreamdynamics/vault-sdk';
|
|
80
82
|
|
|
81
83
|
const client = new LifestreamVaultClient({
|
|
82
|
-
baseUrl: 'https://vault.
|
|
84
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
83
85
|
apiKey: 'lsv_k_your_api_key_here',
|
|
84
86
|
});
|
|
85
87
|
|
|
@@ -95,10 +97,10 @@ console.log(doc.content);
|
|
|
95
97
|
### Login with Email and Password
|
|
96
98
|
|
|
97
99
|
```typescript
|
|
98
|
-
import { LifestreamVaultClient } from '@
|
|
100
|
+
import { LifestreamVaultClient } from '@lifestreamdynamics/vault-sdk';
|
|
99
101
|
|
|
100
102
|
const { client, tokens } = await LifestreamVaultClient.login(
|
|
101
|
-
'https://vault.
|
|
103
|
+
'https://vault.lifestreamdynamics.com',
|
|
102
104
|
'user@example.com',
|
|
103
105
|
'your-password',
|
|
104
106
|
);
|
|
@@ -111,7 +113,7 @@ const vaults = await client.vaults.list();
|
|
|
111
113
|
|
|
112
114
|
```typescript
|
|
113
115
|
const client = new LifestreamVaultClient({
|
|
114
|
-
baseUrl: 'https://vault.
|
|
116
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
115
117
|
accessToken: 'eyJhbGci...', // Your JWT access token
|
|
116
118
|
refreshToken: 'your_refresh_token', // Optional: enables auto-refresh
|
|
117
119
|
});
|
|
@@ -120,7 +122,7 @@ const client = new LifestreamVaultClient({
|
|
|
120
122
|
### Error Handling
|
|
121
123
|
|
|
122
124
|
```typescript
|
|
123
|
-
import { LifestreamVaultClient, NotFoundError, AuthenticationError } from '@
|
|
125
|
+
import { LifestreamVaultClient, NotFoundError, AuthenticationError } from '@lifestreamdynamics/vault-sdk';
|
|
124
126
|
|
|
125
127
|
try {
|
|
126
128
|
const vault = await client.vaults.get('non-existent-id');
|
|
@@ -145,7 +147,7 @@ Best for server-side integrations, automation scripts, and long-running services
|
|
|
145
147
|
|
|
146
148
|
```typescript
|
|
147
149
|
const client = new LifestreamVaultClient({
|
|
148
|
-
baseUrl: 'https://vault.
|
|
150
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
149
151
|
apiKey: 'lsv_k_your_api_key_here', // Starts with 'lsv_k_'
|
|
150
152
|
});
|
|
151
153
|
```
|
|
@@ -169,7 +171,7 @@ Best for user-facing applications and scenarios requiring user-specific permissi
|
|
|
169
171
|
|
|
170
172
|
```typescript
|
|
171
173
|
const client = new LifestreamVaultClient({
|
|
172
|
-
baseUrl: 'https://vault.
|
|
174
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
173
175
|
accessToken: 'eyJhbGci...', // Your JWT access token
|
|
174
176
|
refreshToken: 'your_refresh_token', // Optional but recommended
|
|
175
177
|
refreshBufferMs: 60000, // Refresh 60s before expiry (default)
|
|
@@ -189,7 +191,7 @@ const client = new LifestreamVaultClient({
|
|
|
189
191
|
**Login Helper:**
|
|
190
192
|
```typescript
|
|
191
193
|
const { client, tokens, refreshToken } = await LifestreamVaultClient.login(
|
|
192
|
-
'https://vault.
|
|
194
|
+
'https://vault.lifestreamdynamics.com',
|
|
193
195
|
'user@example.com',
|
|
194
196
|
'password',
|
|
195
197
|
{
|
|
@@ -560,7 +562,7 @@ console.log(health.status); // 'healthy', 'degraded', or 'down'
|
|
|
560
562
|
|
|
561
563
|
| Option | Type | Default | Description |
|
|
562
564
|
|--------|------|---------|-------------|
|
|
563
|
-
| `baseUrl` | `string` |
|
|
565
|
+
| `baseUrl` | `string` | `https://vault.lifestreamdynamics.com` | Base URL of your Lifestream Vault server (optional, defaults to production) |
|
|
564
566
|
| `apiKey` | `string` | - | API key for authentication (starts with `lsv_k_`) |
|
|
565
567
|
| `accessToken` | `string` | - | JWT access token for user authentication |
|
|
566
568
|
| `refreshToken` | `string` | - | JWT refresh token for automatic renewal |
|
|
@@ -575,7 +577,7 @@ console.log(health.status); // 'healthy', 'degraded', or 'down'
|
|
|
575
577
|
|
|
576
578
|
```typescript
|
|
577
579
|
const client = new LifestreamVaultClient({
|
|
578
|
-
baseUrl: 'https://vault.
|
|
580
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
579
581
|
apiKey: 'lsv_k_your_api_key',
|
|
580
582
|
timeout: 60000, // 60 seconds
|
|
581
583
|
enableRequestSigning: true,
|
|
@@ -588,7 +590,7 @@ const client = new LifestreamVaultClient({
|
|
|
588
590
|
|
|
589
591
|
```typescript
|
|
590
592
|
const client = new LifestreamVaultClient({
|
|
591
|
-
baseUrl: 'https://vault.
|
|
593
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
592
594
|
accessToken: 'eyJhbGci...',
|
|
593
595
|
refreshToken: 'refresh_token_here',
|
|
594
596
|
refreshBufferMs: 120000, // Refresh 2 minutes before expiry
|
|
@@ -605,10 +607,10 @@ const client = new LifestreamVaultClient({
|
|
|
605
607
|
### Create a Vault and Upload Documents
|
|
606
608
|
|
|
607
609
|
```typescript
|
|
608
|
-
import { LifestreamVaultClient } from '@
|
|
610
|
+
import { LifestreamVaultClient } from '@lifestreamdynamics/vault-sdk';
|
|
609
611
|
|
|
610
612
|
const client = new LifestreamVaultClient({
|
|
611
|
-
baseUrl: 'https://vault.
|
|
613
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
612
614
|
apiKey: 'lsv_k_your_api_key',
|
|
613
615
|
});
|
|
614
616
|
|
|
@@ -680,12 +682,12 @@ console.log('AI:', response2.message);
|
|
|
680
682
|
### Automated Backup Script
|
|
681
683
|
|
|
682
684
|
```typescript
|
|
683
|
-
import { LifestreamVaultClient } from '@
|
|
685
|
+
import { LifestreamVaultClient } from '@lifestreamdynamics/vault-sdk';
|
|
684
686
|
import fs from 'fs/promises';
|
|
685
687
|
import path from 'path';
|
|
686
688
|
|
|
687
689
|
const client = new LifestreamVaultClient({
|
|
688
|
-
baseUrl: 'https://vault.
|
|
690
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
689
691
|
apiKey: process.env.LSVAULT_API_KEY!,
|
|
690
692
|
});
|
|
691
693
|
|
|
@@ -769,7 +771,7 @@ import {
|
|
|
769
771
|
ConflictError, // Resource conflict (e.g., duplicate slug)
|
|
770
772
|
RateLimitError, // Rate limit exceeded
|
|
771
773
|
NetworkError, // Network or connection error
|
|
772
|
-
} from '@
|
|
774
|
+
} from '@lifestreamdynamics/vault-sdk';
|
|
773
775
|
```
|
|
774
776
|
|
|
775
777
|
### Handling Specific Errors
|
|
@@ -803,7 +805,7 @@ error.context // Additional error context (resource type, ID, etc.)
|
|
|
803
805
|
### Retry Logic Example
|
|
804
806
|
|
|
805
807
|
```typescript
|
|
806
|
-
import { RateLimitError, NetworkError } from '@
|
|
808
|
+
import { RateLimitError, NetworkError } from '@lifestreamdynamics/vault-sdk';
|
|
807
809
|
|
|
808
810
|
async function fetchWithRetry(operation: () => Promise<any>, maxRetries = 3) {
|
|
809
811
|
for (let i = 0; i < maxRetries; i++) {
|
|
@@ -845,7 +847,7 @@ import {
|
|
|
845
847
|
type Team,
|
|
846
848
|
type ApiKey,
|
|
847
849
|
type Subscription,
|
|
848
|
-
} from '@
|
|
850
|
+
} from '@lifestreamdynamics/vault-sdk';
|
|
849
851
|
```
|
|
850
852
|
|
|
851
853
|
### Type Safety
|
|
@@ -868,7 +870,7 @@ doc.document.sizeBytes; // number
|
|
|
868
870
|
### Generic Error Handling
|
|
869
871
|
|
|
870
872
|
```typescript
|
|
871
|
-
import { SDKError } from '@
|
|
873
|
+
import { SDKError } from '@lifestreamdynamics/vault-sdk';
|
|
872
874
|
|
|
873
875
|
try {
|
|
874
876
|
await client.vaults.get('invalid-id');
|
|
@@ -888,7 +890,7 @@ Automatically enabled for API key authentication. Adds signature headers to muta
|
|
|
888
890
|
|
|
889
891
|
```typescript
|
|
890
892
|
const client = new LifestreamVaultClient({
|
|
891
|
-
baseUrl: 'https://vault.
|
|
893
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
892
894
|
apiKey: 'lsv_k_your_api_key',
|
|
893
895
|
enableRequestSigning: true, // Default: true for API keys
|
|
894
896
|
});
|
|
@@ -897,10 +899,34 @@ const client = new LifestreamVaultClient({
|
|
|
897
899
|
await client.documents.put('vault-id', 'doc.md', 'content');
|
|
898
900
|
```
|
|
899
901
|
|
|
902
|
+
**How Request Signing Works:**
|
|
903
|
+
|
|
904
|
+
The SDK automatically signs write operations (PUT, DELETE on documents) using HMAC-SHA256. The signature is computed from a canonical payload that includes:
|
|
905
|
+
|
|
906
|
+
1. **HTTP Method** (uppercase, e.g., `PUT`)
|
|
907
|
+
2. **Request Path** (full pathname including `/api/v1` prefix, e.g., `/api/v1/vaults/{id}/documents/path.md`)
|
|
908
|
+
3. **ISO Timestamp** (must be within 5 minutes of server time)
|
|
909
|
+
4. **Nonce** (16-byte hex string for replay protection)
|
|
910
|
+
5. **Body Hash** (SHA-256 hash of the request body)
|
|
911
|
+
|
|
912
|
+
The payload format is: `METHOD\nPATH\nTIMESTAMP\nNONCE\nBODY_HASH`
|
|
913
|
+
|
|
914
|
+
The HMAC signature is computed using your full API key as the secret, and three headers are attached to the request:
|
|
915
|
+
|
|
916
|
+
- `X-Signature` - The HMAC-SHA256 signature (hex-encoded)
|
|
917
|
+
- `X-Signature-Timestamp` - ISO-8601 timestamp
|
|
918
|
+
- `X-Signature-Nonce` - 16-byte hex nonce (unique per request)
|
|
919
|
+
|
|
920
|
+
**Security Features:**
|
|
921
|
+
|
|
922
|
+
- **Timestamp validation**: Requests older than 5 minutes are rejected, preventing replay attacks
|
|
923
|
+
- **Nonce tracking**: Each nonce can only be used once within a 10-minute window (enforced via Redis)
|
|
924
|
+
- **Constant-time comparison**: Prevents timing attacks during signature verification
|
|
925
|
+
|
|
900
926
|
**Manual Signing:**
|
|
901
927
|
|
|
902
928
|
```typescript
|
|
903
|
-
import { signRequest } from '@
|
|
929
|
+
import { signRequest } from '@lifestreamdynamics/vault-sdk';
|
|
904
930
|
|
|
905
931
|
const headers = signRequest(
|
|
906
932
|
'lsv_k_your_api_key',
|
|
@@ -909,9 +935,9 @@ const headers = signRequest(
|
|
|
909
935
|
JSON.stringify({ name: 'My Vault' }),
|
|
910
936
|
);
|
|
911
937
|
|
|
912
|
-
console.log(headers['
|
|
913
|
-
console.log(headers['
|
|
914
|
-
console.log(headers['
|
|
938
|
+
console.log(headers['x-signature']); // HMAC signature
|
|
939
|
+
console.log(headers['x-signature-timestamp']); // ISO timestamp
|
|
940
|
+
console.log(headers['x-signature-nonce']); // Random nonce
|
|
915
941
|
```
|
|
916
942
|
|
|
917
943
|
### Audit Logging
|
|
@@ -920,7 +946,7 @@ Enable client-side request logging for compliance and debugging.
|
|
|
920
946
|
|
|
921
947
|
```typescript
|
|
922
948
|
const client = new LifestreamVaultClient({
|
|
923
|
-
baseUrl: 'https://vault.
|
|
949
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
924
950
|
apiKey: 'lsv_k_your_api_key',
|
|
925
951
|
enableAuditLogging: true,
|
|
926
952
|
auditLogPath: '/var/log/lsvault/audit.log',
|
|
@@ -936,7 +962,7 @@ await client.vaults.list();
|
|
|
936
962
|
**Standalone Audit Logger:**
|
|
937
963
|
|
|
938
964
|
```typescript
|
|
939
|
-
import { AuditLogger } from '@
|
|
965
|
+
import { AuditLogger } from '@lifestreamdynamics/vault-sdk';
|
|
940
966
|
|
|
941
967
|
const logger = new AuditLogger({ logPath: './custom-audit.log' });
|
|
942
968
|
|
|
@@ -954,7 +980,7 @@ logger.log({
|
|
|
954
980
|
Encrypt vault content client-side before uploading (requires encryption-enabled vault).
|
|
955
981
|
|
|
956
982
|
```typescript
|
|
957
|
-
import { generateVaultKey, encryptContent, decryptContent } from '@
|
|
983
|
+
import { generateVaultKey, encryptContent, decryptContent } from '@lifestreamdynamics/vault-sdk';
|
|
958
984
|
|
|
959
985
|
// Generate a vault encryption key (save this securely!)
|
|
960
986
|
const vaultKey = generateVaultKey();
|
|
@@ -983,7 +1009,7 @@ console.log(decrypted); // Original plaintext
|
|
|
983
1009
|
### Token Management Utilities
|
|
984
1010
|
|
|
985
1011
|
```typescript
|
|
986
|
-
import { decodeJwtPayload, isTokenExpired } from '@
|
|
1012
|
+
import { decodeJwtPayload, isTokenExpired } from '@lifestreamdynamics/vault-sdk';
|
|
987
1013
|
|
|
988
1014
|
const token = 'eyJhbGci...';
|
|
989
1015
|
|
|
@@ -1003,7 +1029,7 @@ Access the underlying `ky` HTTP client for custom requests:
|
|
|
1003
1029
|
|
|
1004
1030
|
```typescript
|
|
1005
1031
|
const client = new LifestreamVaultClient({
|
|
1006
|
-
baseUrl: 'https://vault.
|
|
1032
|
+
baseUrl: 'https://vault.lifestreamdynamics.com',
|
|
1007
1033
|
apiKey: 'lsv_k_your_api_key',
|
|
1008
1034
|
});
|
|
1009
1035
|
|
|
@@ -1012,7 +1038,7 @@ const response = await client.http.get('custom/endpoint').json();
|
|
|
1012
1038
|
|
|
1013
1039
|
// The client is pre-configured with:
|
|
1014
1040
|
// - Authentication headers
|
|
1015
|
-
// - Base URL (https://vault.
|
|
1041
|
+
// - Base URL (https://vault.lifestreamdynamics.com/api/v1)
|
|
1016
1042
|
// - Timeout settings
|
|
1017
1043
|
// - Request signing (if enabled)
|
|
1018
1044
|
```
|
|
@@ -1032,8 +1058,8 @@ For complete API documentation, guides, and examples, visit:
|
|
|
1032
1058
|
|
|
1033
1059
|
## 🔗 Related Packages
|
|
1034
1060
|
|
|
1035
|
-
- **[@
|
|
1036
|
-
- **[@
|
|
1061
|
+
- **[@lifestreamdynamics/vault-cli](https://www.npmjs.com/package/@lifestreamdynamics/vault-cli)** - Command-line interface for Lifestream Vault
|
|
1062
|
+
- **[@lifestreamdynamics/vault-shared](https://www.npmjs.com/package/@lifestreamdynamics/vault-shared)** - Shared types and schemas
|
|
1037
1063
|
|
|
1038
1064
|
## 🐛 Troubleshooting
|
|
1039
1065
|
|
|
@@ -1105,7 +1131,7 @@ Need help? We're here for you!
|
|
|
1105
1131
|
- **Documentation**: [vault.lifestreamdynamics.com/docs](https://vault.lifestreamdynamics.com/docs)
|
|
1106
1132
|
|
|
1107
1133
|
When reporting issues, please include:
|
|
1108
|
-
- SDK version (`npm list @
|
|
1134
|
+
- SDK version (`npm list @lifestreamdynamics/vault-sdk`)
|
|
1109
1135
|
- Node.js version (`node --version`)
|
|
1110
1136
|
- Error messages and stack traces
|
|
1111
1137
|
- Minimal reproduction code (without sensitive credentials)
|
package/dist/client.d.ts
CHANGED
|
@@ -14,12 +14,14 @@ import { AdminResource } from './resources/admin.js';
|
|
|
14
14
|
import { HooksResource } from './resources/hooks.js';
|
|
15
15
|
import { WebhooksResource } from './resources/webhooks.js';
|
|
16
16
|
import { TokenManager, type AuthTokens, type OnTokenRefresh } from './lib/token-manager.js';
|
|
17
|
+
/** Default API URL used when `baseUrl` is not provided. */
|
|
18
|
+
export declare const DEFAULT_API_URL = "https://vault.lifestreamdynamics.com";
|
|
17
19
|
/**
|
|
18
20
|
* Configuration options for creating a {@link LifestreamVaultClient}.
|
|
19
21
|
*/
|
|
20
22
|
export interface ClientOptions {
|
|
21
|
-
/** Base URL of the Lifestream Vault API server
|
|
22
|
-
baseUrl
|
|
23
|
+
/** Base URL of the Lifestream Vault API server. Defaults to `'https://vault.lifestreamdynamics.com'`. */
|
|
24
|
+
baseUrl?: string;
|
|
23
25
|
/** API key for authentication (prefix `lsv_k_`). Provide either this or `accessToken`. */
|
|
24
26
|
apiKey?: string;
|
|
25
27
|
/** JWT access token for authentication. Provide either this or `apiKey`. */
|
|
@@ -48,12 +50,14 @@ export interface ClientOptions {
|
|
|
48
50
|
* {@link ApiKeysResource | apiKeys}, {@link UserResource | user},
|
|
49
51
|
* {@link SubscriptionResource | subscription}, and {@link TeamsResource | teams}.
|
|
50
52
|
*
|
|
53
|
+
* When `baseUrl` is omitted, it defaults to `'https://vault.lifestreamdynamics.com'`.
|
|
54
|
+
*
|
|
51
55
|
* @example
|
|
52
56
|
* ```typescript
|
|
53
|
-
* import { LifestreamVaultClient } from '@
|
|
57
|
+
* import { LifestreamVaultClient } from '@lifestreamdynamics/vault-sdk';
|
|
54
58
|
*
|
|
59
|
+
* // Uses the default production URL
|
|
55
60
|
* const client = new LifestreamVaultClient({
|
|
56
|
-
* baseUrl: 'https://vault.example.com',
|
|
57
61
|
* apiKey: 'lsv_k_your_api_key',
|
|
58
62
|
* });
|
|
59
63
|
*
|
|
@@ -62,7 +66,7 @@ export interface ClientOptions {
|
|
|
62
66
|
*
|
|
63
67
|
* @example
|
|
64
68
|
* ```typescript
|
|
65
|
-
* // Using a
|
|
69
|
+
* // Using a custom base URL and JWT access token
|
|
66
70
|
* const client = new LifestreamVaultClient({
|
|
67
71
|
* baseUrl: 'https://vault.example.com',
|
|
68
72
|
* accessToken: 'eyJhbGci...',
|
|
@@ -109,11 +113,11 @@ export declare class LifestreamVaultClient {
|
|
|
109
113
|
* Creates a new Lifestream Vault API client.
|
|
110
114
|
*
|
|
111
115
|
* @param options - Client configuration options
|
|
112
|
-
* @param options.baseUrl - Base URL of the API server (trailing slashes are stripped)
|
|
116
|
+
* @param options.baseUrl - Base URL of the API server (trailing slashes are stripped). Defaults to `'https://vault.lifestreamdynamics.com'`.
|
|
113
117
|
* @param options.apiKey - API key for authentication (mutually exclusive with `accessToken`)
|
|
114
118
|
* @param options.accessToken - JWT access token (mutually exclusive with `apiKey`)
|
|
115
119
|
* @param options.timeout - Request timeout in milliseconds (default: 30000)
|
|
116
|
-
* @throws {ValidationError} If
|
|
120
|
+
* @throws {ValidationError} If neither `apiKey` nor `accessToken` is provided
|
|
117
121
|
*
|
|
118
122
|
* @example
|
|
119
123
|
* ```typescript
|
|
@@ -128,13 +132,13 @@ export declare class LifestreamVaultClient {
|
|
|
128
132
|
* Authenticate with email and password to obtain JWT tokens.
|
|
129
133
|
* Returns an authenticated client instance with token management.
|
|
130
134
|
*
|
|
131
|
-
* @param baseUrl - Base URL of the API server
|
|
135
|
+
* @param baseUrl - Base URL of the API server. Defaults to `'https://vault.lifestreamdynamics.com'`.
|
|
132
136
|
* @param email - User email address
|
|
133
137
|
* @param password - User password
|
|
134
138
|
* @param options - Additional client options (timeout, refreshBufferMs, onTokenRefresh, etc.)
|
|
135
139
|
* @returns A new authenticated client with the access/refresh tokens used
|
|
136
140
|
*/
|
|
137
|
-
static login(baseUrl: string, email: string, password: string, options?: Omit<ClientOptions, 'baseUrl' | 'apiKey' | 'accessToken' | 'refreshToken'>): Promise<{
|
|
141
|
+
static login(baseUrl: string | undefined, email: string, password: string, options?: Omit<ClientOptions, 'baseUrl' | 'apiKey' | 'accessToken' | 'refreshToken'>): Promise<{
|
|
138
142
|
client: LifestreamVaultClient;
|
|
139
143
|
tokens: AuthTokens;
|
|
140
144
|
refreshToken: string | null;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAW,EAAE,KAAK,UAAU,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK5F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -19,6 +19,8 @@ import { signRequest } from './lib/signature.js';
|
|
|
19
19
|
import { TokenManager } from './lib/token-manager.js';
|
|
20
20
|
/** Header used to prevent infinite 401 retry loops. */
|
|
21
21
|
const RETRY_HEADER = 'X-Retry-After-Refresh';
|
|
22
|
+
/** Default API URL used when `baseUrl` is not provided. */
|
|
23
|
+
export const DEFAULT_API_URL = 'https://vault.lifestreamdynamics.com';
|
|
22
24
|
/**
|
|
23
25
|
* Main client for the Lifestream Vault API.
|
|
24
26
|
*
|
|
@@ -28,12 +30,14 @@ const RETRY_HEADER = 'X-Retry-After-Refresh';
|
|
|
28
30
|
* {@link ApiKeysResource | apiKeys}, {@link UserResource | user},
|
|
29
31
|
* {@link SubscriptionResource | subscription}, and {@link TeamsResource | teams}.
|
|
30
32
|
*
|
|
33
|
+
* When `baseUrl` is omitted, it defaults to `'https://vault.lifestreamdynamics.com'`.
|
|
34
|
+
*
|
|
31
35
|
* @example
|
|
32
36
|
* ```typescript
|
|
33
|
-
* import { LifestreamVaultClient } from '@
|
|
37
|
+
* import { LifestreamVaultClient } from '@lifestreamdynamics/vault-sdk';
|
|
34
38
|
*
|
|
39
|
+
* // Uses the default production URL
|
|
35
40
|
* const client = new LifestreamVaultClient({
|
|
36
|
-
* baseUrl: 'https://vault.example.com',
|
|
37
41
|
* apiKey: 'lsv_k_your_api_key',
|
|
38
42
|
* });
|
|
39
43
|
*
|
|
@@ -42,7 +46,7 @@ const RETRY_HEADER = 'X-Retry-After-Refresh';
|
|
|
42
46
|
*
|
|
43
47
|
* @example
|
|
44
48
|
* ```typescript
|
|
45
|
-
* // Using a
|
|
49
|
+
* // Using a custom base URL and JWT access token
|
|
46
50
|
* const client = new LifestreamVaultClient({
|
|
47
51
|
* baseUrl: 'https://vault.example.com',
|
|
48
52
|
* accessToken: 'eyJhbGci...',
|
|
@@ -89,11 +93,11 @@ export class LifestreamVaultClient {
|
|
|
89
93
|
* Creates a new Lifestream Vault API client.
|
|
90
94
|
*
|
|
91
95
|
* @param options - Client configuration options
|
|
92
|
-
* @param options.baseUrl - Base URL of the API server (trailing slashes are stripped)
|
|
96
|
+
* @param options.baseUrl - Base URL of the API server (trailing slashes are stripped). Defaults to `'https://vault.lifestreamdynamics.com'`.
|
|
93
97
|
* @param options.apiKey - API key for authentication (mutually exclusive with `accessToken`)
|
|
94
98
|
* @param options.accessToken - JWT access token (mutually exclusive with `apiKey`)
|
|
95
99
|
* @param options.timeout - Request timeout in milliseconds (default: 30000)
|
|
96
|
-
* @throws {ValidationError} If
|
|
100
|
+
* @throws {ValidationError} If neither `apiKey` nor `accessToken` is provided
|
|
97
101
|
*
|
|
98
102
|
* @example
|
|
99
103
|
* ```typescript
|
|
@@ -104,13 +108,10 @@ export class LifestreamVaultClient {
|
|
|
104
108
|
* ```
|
|
105
109
|
*/
|
|
106
110
|
constructor(options) {
|
|
107
|
-
if (!options.baseUrl) {
|
|
108
|
-
throw new ValidationError('baseUrl is required');
|
|
109
|
-
}
|
|
110
111
|
if (!options.apiKey && !options.accessToken) {
|
|
111
112
|
throw new ValidationError('Either apiKey or accessToken is required');
|
|
112
113
|
}
|
|
113
|
-
this.baseUrl = options.baseUrl.replace(/\/$/, '');
|
|
114
|
+
this.baseUrl = (options.baseUrl || DEFAULT_API_URL).replace(/\/$/, '');
|
|
114
115
|
const prefixUrl = `${this.baseUrl}/api/v1`;
|
|
115
116
|
const timeout = options.timeout || 30_000;
|
|
116
117
|
// Determine whether to enable request signing
|
|
@@ -249,14 +250,14 @@ export class LifestreamVaultClient {
|
|
|
249
250
|
* Authenticate with email and password to obtain JWT tokens.
|
|
250
251
|
* Returns an authenticated client instance with token management.
|
|
251
252
|
*
|
|
252
|
-
* @param baseUrl - Base URL of the API server
|
|
253
|
+
* @param baseUrl - Base URL of the API server. Defaults to `'https://vault.lifestreamdynamics.com'`.
|
|
253
254
|
* @param email - User email address
|
|
254
255
|
* @param password - User password
|
|
255
256
|
* @param options - Additional client options (timeout, refreshBufferMs, onTokenRefresh, etc.)
|
|
256
257
|
* @returns A new authenticated client with the access/refresh tokens used
|
|
257
258
|
*/
|
|
258
259
|
static async login(baseUrl, email, password, options = {}) {
|
|
259
|
-
const normalizedUrl = baseUrl.replace(/\/$/, '');
|
|
260
|
+
const normalizedUrl = (baseUrl || DEFAULT_API_URL).replace(/\/$/, '');
|
|
260
261
|
const http = ky.create({
|
|
261
262
|
prefixUrl: `${normalizedUrl}/api/v1`,
|
|
262
263
|
timeout: options.timeout || 30_000,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAwC,MAAM,wBAAwB,CAAC;AAE5F,uDAAuD;AACvD,MAAM,YAAY,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { LifestreamVaultClient, type ClientOptions } from './client.js';
|
|
1
|
+
export { LifestreamVaultClient, DEFAULT_API_URL, type ClientOptions } from './client.js';
|
|
2
2
|
export { VaultsResource } from './resources/vaults.js';
|
|
3
3
|
export { DocumentsResource } from './resources/documents.js';
|
|
4
4
|
export { SearchResource } from './resources/search.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { LifestreamVaultClient } from './client.js';
|
|
1
|
+
export { LifestreamVaultClient, DEFAULT_API_URL } from './client.js';
|
|
2
2
|
export { VaultsResource } from './resources/vaults.js';
|
|
3
3
|
export { DocumentsResource } from './resources/documents.js';
|
|
4
4
|
export { SearchResource } from './resources/search.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAsB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAsB,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAY/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAerD,kBAAkB;AAClB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAA4C,MAAM,uBAAuB,CAAC;AAE9F,aAAa;AACb,OAAO,EACL,gBAAgB,EAChB,OAAO,IAAI,cAAc,EACzB,OAAO,IAAI,cAAc,EACzB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAE7B,mBAAmB;AACnB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,GAKf,MAAM,wBAAwB,CAAC;AAEhC,gBAAgB;AAChB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifestreamdynamics/vault-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Official TypeScript SDK for Lifestream Vault API",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": ">=20"
|
|
7
|
+
},
|
|
5
8
|
"type": "module",
|
|
6
9
|
"main": "dist/index.js",
|
|
7
10
|
"types": "dist/index.d.ts",
|
|
@@ -50,9 +53,9 @@
|
|
|
50
53
|
},
|
|
51
54
|
"devDependencies": {
|
|
52
55
|
"@types/node": "^22.0.0",
|
|
53
|
-
"@vitest/coverage-v8": "^
|
|
54
|
-
"@vitest/ui": "^
|
|
56
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
57
|
+
"@vitest/ui": "^4.0.18",
|
|
55
58
|
"typescript": "^5.7",
|
|
56
|
-
"vitest": "^
|
|
59
|
+
"vitest": "^4.0.18"
|
|
57
60
|
}
|
|
58
61
|
}
|