@somewhere-cloud/sdk 0.0.0-stage → 0.13.0

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 (149) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +191 -2
  3. package/dist/cjs/auth/client.js +1059 -0
  4. package/dist/cjs/auth/client.js.map +1 -0
  5. package/dist/cjs/auth/continuation.js +27 -0
  6. package/dist/cjs/auth/continuation.js.map +1 -0
  7. package/dist/cjs/auth/index.js +21 -0
  8. package/dist/cjs/auth/index.js.map +1 -0
  9. package/dist/cjs/auth/react.js +295 -0
  10. package/dist/cjs/auth/react.js.map +1 -0
  11. package/dist/cjs/auth/server.js +368 -0
  12. package/dist/cjs/auth/server.js.map +1 -0
  13. package/dist/cjs/client.js +392 -0
  14. package/dist/cjs/client.js.map +1 -0
  15. package/dist/cjs/errors.js +16 -0
  16. package/dist/cjs/errors.js.map +1 -0
  17. package/dist/cjs/index.cjs +215 -0
  18. package/dist/cjs/index.js.map +1 -0
  19. package/dist/cjs/package.json +1 -0
  20. package/dist/cjs/query-cache.js +91 -0
  21. package/dist/cjs/query-cache.js.map +1 -0
  22. package/dist/cjs/resources/auth.js +875 -0
  23. package/dist/cjs/resources/auth.js.map +1 -0
  24. package/dist/cjs/resources/calls.js +42 -0
  25. package/dist/cjs/resources/calls.js.map +1 -0
  26. package/dist/cjs/resources/chat.js +82 -0
  27. package/dist/cjs/resources/chat.js.map +1 -0
  28. package/dist/cjs/resources/db.js +124 -0
  29. package/dist/cjs/resources/db.js.map +1 -0
  30. package/dist/cjs/resources/emails.js +39 -0
  31. package/dist/cjs/resources/emails.js.map +1 -0
  32. package/dist/cjs/resources/fs.js +141 -0
  33. package/dist/cjs/resources/fs.js.map +1 -0
  34. package/dist/cjs/resources/functions.js +145 -0
  35. package/dist/cjs/resources/functions.js.map +1 -0
  36. package/dist/cjs/resources/inbox.js +76 -0
  37. package/dist/cjs/resources/inbox.js.map +1 -0
  38. package/dist/cjs/resources/payments.js +68 -0
  39. package/dist/cjs/resources/payments.js.map +1 -0
  40. package/dist/cjs/resources/postgrest.js +391 -0
  41. package/dist/cjs/resources/postgrest.js.map +1 -0
  42. package/dist/cjs/resources/projects.js +71 -0
  43. package/dist/cjs/resources/projects.js.map +1 -0
  44. package/dist/cjs/resources/storage.js +191 -0
  45. package/dist/cjs/resources/storage.js.map +1 -0
  46. package/dist/cjs/resources/tasks.js +99 -0
  47. package/dist/cjs/resources/tasks.js.map +1 -0
  48. package/dist/cjs/resources/video.js +50 -0
  49. package/dist/cjs/resources/video.js.map +1 -0
  50. package/dist/cjs/types.js +3 -0
  51. package/dist/cjs/types.js.map +1 -0
  52. package/dist/esm/auth/client.js +1054 -0
  53. package/dist/esm/auth/client.js.map +1 -0
  54. package/dist/esm/auth/continuation.js +22 -0
  55. package/dist/esm/auth/continuation.js.map +1 -0
  56. package/dist/esm/auth/index.js +5 -0
  57. package/dist/esm/auth/index.js.map +1 -0
  58. package/dist/esm/auth/react.js +279 -0
  59. package/dist/esm/auth/react.js.map +1 -0
  60. package/dist/esm/auth/server.js +365 -0
  61. package/dist/esm/auth/server.js.map +1 -0
  62. package/dist/esm/client.js +388 -0
  63. package/dist/esm/client.js.map +1 -0
  64. package/dist/esm/errors.js +12 -0
  65. package/dist/esm/errors.js.map +1 -0
  66. package/dist/esm/index.js +188 -0
  67. package/dist/esm/index.js.map +1 -0
  68. package/dist/esm/package.json +1 -0
  69. package/dist/esm/query-cache.js +87 -0
  70. package/dist/esm/query-cache.js.map +1 -0
  71. package/dist/esm/resources/auth.js +871 -0
  72. package/dist/esm/resources/auth.js.map +1 -0
  73. package/dist/esm/resources/calls.js +38 -0
  74. package/dist/esm/resources/calls.js.map +1 -0
  75. package/dist/esm/resources/chat.js +77 -0
  76. package/dist/esm/resources/chat.js.map +1 -0
  77. package/dist/esm/resources/db.js +120 -0
  78. package/dist/esm/resources/db.js.map +1 -0
  79. package/dist/esm/resources/emails.js +35 -0
  80. package/dist/esm/resources/emails.js.map +1 -0
  81. package/dist/esm/resources/fs.js +137 -0
  82. package/dist/esm/resources/fs.js.map +1 -0
  83. package/dist/esm/resources/functions.js +141 -0
  84. package/dist/esm/resources/functions.js.map +1 -0
  85. package/dist/esm/resources/inbox.js +70 -0
  86. package/dist/esm/resources/inbox.js.map +1 -0
  87. package/dist/esm/resources/payments.js +64 -0
  88. package/dist/esm/resources/payments.js.map +1 -0
  89. package/dist/esm/resources/postgrest.js +386 -0
  90. package/dist/esm/resources/postgrest.js.map +1 -0
  91. package/dist/esm/resources/projects.js +67 -0
  92. package/dist/esm/resources/projects.js.map +1 -0
  93. package/dist/esm/resources/storage.js +186 -0
  94. package/dist/esm/resources/storage.js.map +1 -0
  95. package/dist/esm/resources/tasks.js +95 -0
  96. package/dist/esm/resources/tasks.js.map +1 -0
  97. package/dist/esm/resources/video.js +46 -0
  98. package/dist/esm/resources/video.js.map +1 -0
  99. package/dist/esm/types.js +2 -0
  100. package/dist/esm/types.js.map +1 -0
  101. package/dist/types/auth/client.d.ts +272 -0
  102. package/dist/types/auth/client.d.ts.map +1 -0
  103. package/dist/types/auth/continuation.d.ts +10 -0
  104. package/dist/types/auth/continuation.d.ts.map +1 -0
  105. package/dist/types/auth/index.d.ts +2 -0
  106. package/dist/types/auth/index.d.ts.map +1 -0
  107. package/dist/types/auth/react.d.ts +140 -0
  108. package/dist/types/auth/react.d.ts.map +1 -0
  109. package/dist/types/auth/server.d.ts +124 -0
  110. package/dist/types/auth/server.d.ts.map +1 -0
  111. package/dist/types/client.d.ts +128 -0
  112. package/dist/types/client.d.ts.map +1 -0
  113. package/dist/types/errors.d.ts +17 -0
  114. package/dist/types/errors.d.ts.map +1 -0
  115. package/dist/types/index.d.ts +145 -0
  116. package/dist/types/index.d.ts.map +1 -0
  117. package/dist/types/query-cache.d.ts +59 -0
  118. package/dist/types/query-cache.d.ts.map +1 -0
  119. package/dist/types/resources/auth.d.ts +188 -0
  120. package/dist/types/resources/auth.d.ts.map +1 -0
  121. package/dist/types/resources/calls.d.ts +27 -0
  122. package/dist/types/resources/calls.d.ts.map +1 -0
  123. package/dist/types/resources/chat.d.ts +24 -0
  124. package/dist/types/resources/chat.d.ts.map +1 -0
  125. package/dist/types/resources/db.d.ts +81 -0
  126. package/dist/types/resources/db.d.ts.map +1 -0
  127. package/dist/types/resources/emails.d.ts +20 -0
  128. package/dist/types/resources/emails.d.ts.map +1 -0
  129. package/dist/types/resources/fs.d.ts +68 -0
  130. package/dist/types/resources/fs.d.ts.map +1 -0
  131. package/dist/types/resources/functions.d.ts +30 -0
  132. package/dist/types/resources/functions.d.ts.map +1 -0
  133. package/dist/types/resources/inbox.d.ts +52 -0
  134. package/dist/types/resources/inbox.d.ts.map +1 -0
  135. package/dist/types/resources/payments.d.ts +31 -0
  136. package/dist/types/resources/payments.d.ts.map +1 -0
  137. package/dist/types/resources/postgrest.d.ts +121 -0
  138. package/dist/types/resources/postgrest.d.ts.map +1 -0
  139. package/dist/types/resources/projects.d.ts +79 -0
  140. package/dist/types/resources/projects.d.ts.map +1 -0
  141. package/dist/types/resources/storage.d.ts +63 -0
  142. package/dist/types/resources/storage.d.ts.map +1 -0
  143. package/dist/types/resources/tasks.d.ts +87 -0
  144. package/dist/types/resources/tasks.d.ts.map +1 -0
  145. package/dist/types/resources/video.d.ts +30 -0
  146. package/dist/types/resources/video.d.ts.map +1 -0
  147. package/dist/types/types.d.ts +379 -0
  148. package/dist/types/types.d.ts.map +1 -0
  149. package/package.json +86 -4
@@ -0,0 +1,379 @@
1
+ import type { SomewhereError } from './errors.js';
2
+ import type { CacheOptions } from './query-cache.js';
3
+ export type FetchLike = (input: string, init?: RequestInit) => Promise<Response>;
4
+ /**
5
+ * Client query-cache configuration. `from().select()` is cached by default.
6
+ * - omitted / `true` — on with defaults (~1s staleTime + request dedup).
7
+ * - `false` — off entirely; every read hits the network (pre-v0.5 semantics).
8
+ * - object — on, with the given {@link CacheOptions} (e.g. `{ staleTime }`).
9
+ */
10
+ export type CacheConfig = boolean | CacheOptions;
11
+ export interface SomewhereOptions {
12
+ /** Developer `smt_` API key. Mutually exclusive with `token`; omit for browser cookie auth. */
13
+ key?: string;
14
+ /** App-user JWT for bearer/compatibility mode. Mutually exclusive with `key`; omit for browser cookie auth. */
15
+ token?: string;
16
+ /** Default `project_id` used by every query/storage/auth/emails/chat call. */
17
+ projectId?: string;
18
+ /** Override the REST base URL. Defaults to `https://api.somewhere.cloud/v1`. */
19
+ baseUrl?: string;
20
+ /**
21
+ * The project's own URL (e.g. `https://my-app.somewhere.site`), used as the
22
+ * host for `functions.invoke(name)` → `{functionsUrl}/api/{name}`. Set
23
+ * automatically when you build the client with `createClient(url, key)`.
24
+ * When omitted, `functions.invoke` returns NO_FUNCTION_HOST without a request;
25
+ * it never derives a host from `projectId`.
26
+ */
27
+ functionsUrl?: string;
28
+ /** Inject a custom fetch implementation (tests, polyfills). */
29
+ fetch?: FetchLike;
30
+ /** Extra headers to attach to every request. */
31
+ headers?: Record<string, string>;
32
+ /**
33
+ * Session transport for `auth.*`.
34
+ *
35
+ * - `'cookie'` (the BROWSER default) — sign-in goes through your app's own
36
+ * backend auth routes (same origin, `authPath`), which set the session as
37
+ * httpOnly cookies. No token ever lands in JS or localStorage — XSS can't
38
+ * steal what the page can't read. Requires the standard backend handler
39
+ * (`sw.auth.loginWithCookie` et al) mounted at `authPath`.
40
+ * - `'header'` (the default outside browsers, where httpOnly cookies don't
41
+ * exist) — tokens held in SDK memory, `Authorization: Bearer` transport.
42
+ * This is also the advanced/manual mode for native apps.
43
+ */
44
+ authMode?: 'cookie' | 'header';
45
+ /** Path your backend auth routes are mounted at (cookie mode). Default '/api/auth'. */
46
+ authPath?: string;
47
+ /**
48
+ * Client query cache for `from().select()`. On by default (~1s staleTime +
49
+ * request dedup + invalidate-on-write). Pass `false` to disable. See
50
+ * {@link CacheConfig}.
51
+ */
52
+ cache?: CacheConfig;
53
+ }
54
+ /**
55
+ * Options for the `createClient(url, key, options?)` factory.
56
+ */
57
+ export interface CreateClientOptions {
58
+ /**
59
+ * Explicit project id, slug, or subdomain. Overrides the value derived
60
+ * from the URL's subdomain. **Required when the URL is a custom domain**
61
+ * (e.g. `https://myapp.com`) — we can't infer the project from it.
62
+ */
63
+ projectId?: string;
64
+ /** Override the platform REST base. Defaults to `https://api.somewhere.cloud/v1`. */
65
+ apiUrl?: string;
66
+ /** Override the functions host. Defaults to the URL passed as the first argument. */
67
+ functionsUrl?: string;
68
+ /** Inject a custom fetch implementation (tests, non-browser runtimes). */
69
+ fetch?: FetchLike;
70
+ /** Extra headers attached to every platform request. */
71
+ headers?: Record<string, string>;
72
+ /** Session transport for `auth.*` — see SomewhereOptions.authMode. Default: 'cookie' in browsers, 'header' elsewhere. */
73
+ authMode?: 'cookie' | 'header';
74
+ /** Path your backend auth routes are mounted at (cookie mode). Default '/api/auth'. */
75
+ authPath?: string;
76
+ /**
77
+ * Client query cache for `from().select()`. On by default. Pass `false` to
78
+ * disable, or an object to tune (e.g. `{ staleTime: 2000 }`). See
79
+ * {@link CacheConfig}.
80
+ */
81
+ cache?: CacheConfig;
82
+ }
83
+ /** Options for `functions.invoke(name, options)`. */
84
+ export interface FunctionInvokeOptions {
85
+ /** Request body. Objects/arrays are JSON-encoded; strings/binary pass through. */
86
+ body?: unknown;
87
+ /** Extra request headers. */
88
+ headers?: Record<string, string>;
89
+ /** HTTP method. Defaults to `POST`. */
90
+ method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
91
+ }
92
+ /**
93
+ * Auth state-change events, used by `onAuthStateChange` callbacks.
94
+ */
95
+ export type AuthChangeEvent = 'INITIAL_SESSION' | 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED' | 'USER_UPDATED';
96
+ /** Handle returned by `auth.onAuthStateChange` — call `unsubscribe()` to detach. */
97
+ export interface AuthSubscription {
98
+ data: {
99
+ subscription: {
100
+ unsubscribe: () => void;
101
+ };
102
+ };
103
+ }
104
+ /**
105
+ * Every mutating call (db, storage, auth, emails) returns this shape.
106
+ * `error` is null on success, and
107
+ * `data` is null on error. Callers never throw-catch — they branch on
108
+ * the error field.
109
+ *
110
+ * The one exception is `sw.chat.completions.create(...)` which throws,
111
+ * matching the OpenAI SDK.
112
+ */
113
+ export interface Result<T> {
114
+ data: T | null;
115
+ error: SomewhereError | null;
116
+ count?: number | null;
117
+ status?: number;
118
+ }
119
+ export interface User {
120
+ id: string;
121
+ email: string;
122
+ display_name?: string | null;
123
+ metadata?: Record<string, unknown> | null;
124
+ email_verified?: boolean;
125
+ created_at: string;
126
+ [k: string]: unknown;
127
+ }
128
+ export interface Session {
129
+ /**
130
+ * The user's JWT — present in header mode only. A cookie session
131
+ * (`cookie_session: true`) deliberately has NO readable tokens: they live
132
+ * in httpOnly cookies the browser owns, invisible to JS by design.
133
+ */
134
+ access_token?: string;
135
+ /** Long-lived (30d) opaque refresh token. Use `auth.refreshSession()` to mint a new pair. */
136
+ refresh_token?: string;
137
+ /** Server-side session id; pass to `auth.signOut()` to revoke. */
138
+ session_token?: string;
139
+ /** Seconds until `access_token` expires. */
140
+ expires_in?: number;
141
+ /** True when the session is held as httpOnly cookies (browser default). */
142
+ cookie_session?: boolean;
143
+ user: User;
144
+ }
145
+ export interface AuthResponse {
146
+ user: User | null;
147
+ session: Session | null;
148
+ }
149
+ export interface StorageFileObject {
150
+ name: string;
151
+ id?: string;
152
+ bucket?: string;
153
+ /** Bytes. */
154
+ size: number;
155
+ /** RFC-3339 timestamp. */
156
+ updated_at?: string;
157
+ /** Content type as stored on upload. */
158
+ content_type?: string;
159
+ }
160
+ export interface StorageUploadResult {
161
+ path: string;
162
+ fullPath: string;
163
+ id: string;
164
+ }
165
+ export interface StorageDownloadResult {
166
+ body: ArrayBuffer;
167
+ contentType: string;
168
+ }
169
+ export interface SignedUrlResult {
170
+ url: string;
171
+ token: string;
172
+ path: string;
173
+ expires_at: string;
174
+ expires_in: number;
175
+ }
176
+ export interface IntegrityCheckResult {
177
+ scanned: number;
178
+ orphan_files: Array<{
179
+ id: string;
180
+ path: string;
181
+ r2_key: string;
182
+ }>;
183
+ orphan_versions: Array<{
184
+ id: string;
185
+ file_id: string;
186
+ version: number;
187
+ r2_key: string;
188
+ }>;
189
+ auto_clean: boolean;
190
+ cleaned: {
191
+ files: number;
192
+ versions: number;
193
+ };
194
+ next_cursor: string | null;
195
+ }
196
+ export interface ChatMessage {
197
+ role: 'system' | 'user' | 'assistant';
198
+ content: string;
199
+ }
200
+ export interface ChatCompletionRequest {
201
+ model: string;
202
+ messages: ChatMessage[];
203
+ max_tokens?: number;
204
+ temperature?: number;
205
+ system?: string;
206
+ /** Provider override — defaults to anthropic on the platform. */
207
+ provider?: string;
208
+ }
209
+ export interface ChatCompletion {
210
+ id: string;
211
+ object: 'chat.completion';
212
+ created: number;
213
+ model: string;
214
+ choices: Array<{
215
+ index: number;
216
+ message: ChatMessage;
217
+ finish_reason: 'stop' | 'length' | 'content_filter' | 'tool_calls';
218
+ }>;
219
+ usage: {
220
+ prompt_tokens: number;
221
+ completion_tokens: number;
222
+ total_tokens: number;
223
+ };
224
+ }
225
+ export interface SendEmailRequest {
226
+ from: string;
227
+ to: string | string[];
228
+ subject: string;
229
+ html?: string;
230
+ text?: string;
231
+ reply_to?: string | string[];
232
+ cc?: string | string[];
233
+ bcc?: string | string[];
234
+ }
235
+ export interface SendEmailResponse {
236
+ id: string;
237
+ }
238
+ export interface PaymentsOnboardRequest {
239
+ /** Defaults to the client's default project. */
240
+ projectId?: string;
241
+ /** Where Stripe sends the user after the hosted onboarding completes. */
242
+ return_url?: string;
243
+ /** Where Stripe sends the user if the link expires before completion. */
244
+ refresh_url?: string;
245
+ }
246
+ export interface PaymentsOnboardResponse {
247
+ account_id: string;
248
+ onboarding_url: string;
249
+ /** RFC-3339 timestamp. The hosted link expires after a short window. */
250
+ expires_at: string;
251
+ }
252
+ export interface PaymentsStatusOptions {
253
+ projectId?: string;
254
+ /** When true, re-fetches state from upstream — slower but reconciles after onboarding return. */
255
+ refresh?: boolean;
256
+ }
257
+ export interface PaymentsStatusResponse {
258
+ connected: boolean;
259
+ account_id?: string;
260
+ onboarded: boolean;
261
+ charges_enabled: boolean;
262
+ payouts_enabled: boolean;
263
+ details_submitted?: boolean;
264
+ country?: string | null;
265
+ default_currency?: string | null;
266
+ }
267
+ export interface CheckoutLineItem {
268
+ /** Existing Stripe price id on the connected account. Mutually exclusive with the inline form. */
269
+ price?: string;
270
+ /** Inline amount in the smallest currency unit (cents). Pair with currency + name. */
271
+ amount?: number;
272
+ currency?: string;
273
+ name?: string;
274
+ quantity?: number;
275
+ }
276
+ export interface PaymentsCheckoutRequest {
277
+ projectId?: string;
278
+ line_items: CheckoutLineItem[];
279
+ mode?: 'payment' | 'subscription';
280
+ success_url: string;
281
+ cancel_url: string;
282
+ customer_email?: string;
283
+ metadata?: Record<string, string>;
284
+ }
285
+ export interface PaymentsCheckoutResponse {
286
+ session_id: string;
287
+ url: string;
288
+ amount_total_cents: number;
289
+ platform_fee_cents: number;
290
+ fee_percent: number;
291
+ }
292
+ export interface PaymentsDashboardLinkResponse {
293
+ url: string;
294
+ }
295
+ export interface VideoUploadUrlRequest {
296
+ projectId?: string;
297
+ title?: string;
298
+ /** Caps the longest video the upload URL will accept. Clamped 30–21600s. */
299
+ max_duration_seconds?: number;
300
+ require_signed_urls?: boolean;
301
+ }
302
+ export interface VideoUploadUrlResponse {
303
+ video_id: string;
304
+ upload_url: string;
305
+ max_duration_seconds: number;
306
+ }
307
+ export interface VideoObject {
308
+ id: string;
309
+ project_id: string;
310
+ title: string | null;
311
+ ready: boolean;
312
+ status: string;
313
+ size_bytes: number;
314
+ duration_seconds: number;
315
+ thumbnail: string;
316
+ preview: string;
317
+ hls_url: string;
318
+ dash_url: string;
319
+ /** RFC-3339 timestamp. */
320
+ created_at: string;
321
+ /** RFC-3339 timestamp. */
322
+ modified_at: string;
323
+ }
324
+ export interface VideoListResponse {
325
+ videos: VideoObject[];
326
+ count: number;
327
+ }
328
+ export interface InboxAddressCreateRequest {
329
+ projectId?: string;
330
+ /** Local-part only. The platform adds the inbox.{platform-domain} suffix. */
331
+ local: string;
332
+ label?: string;
333
+ }
334
+ export interface InboxAddress {
335
+ id: string;
336
+ project_id: string;
337
+ address: string;
338
+ label: string | null;
339
+ /** RFC-3339 timestamp. */
340
+ created_at: string;
341
+ }
342
+ export interface InboxAddressListResponse {
343
+ addresses: InboxAddress[];
344
+ }
345
+ export interface InboxMessageSummary {
346
+ id: string;
347
+ address_id: string;
348
+ project_id: string;
349
+ mail_from: string;
350
+ mail_to: string;
351
+ subject: string | null;
352
+ text_preview: string | null;
353
+ size_bytes: number;
354
+ /** RFC-3339 timestamp. */
355
+ received_at: string;
356
+ }
357
+ export interface InboxMessageListResponse {
358
+ messages: InboxMessageSummary[];
359
+ count: number;
360
+ }
361
+ export interface InboxMessageDetail extends InboxMessageSummary {
362
+ r2_key: string;
363
+ /** Sub-path on the API base URL that returns the raw .eml bytes. */
364
+ raw_url: string;
365
+ }
366
+ export interface InboxListOptions {
367
+ projectId?: string;
368
+ addressId?: string;
369
+ limit?: number;
370
+ }
371
+ export interface CallsSessionCreateRequest {
372
+ projectId?: string;
373
+ thirdparty?: boolean;
374
+ }
375
+ export interface CallsSessionCreateResponse {
376
+ session_id: string;
377
+ project_id: string;
378
+ }
379
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,88 @@
1
1
  {
2
2
  "name": "@somewhere-cloud/sdk",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.13.0",
4
+ "description": "Official JavaScript/TypeScript SDK for the somewhere.cloud platform API.",
5
+ "keywords": [
6
+ "somewhere",
7
+ "somewhere.cloud",
8
+ "backend",
9
+ "sdk",
10
+ "database",
11
+ "auth",
12
+ "storage",
13
+ "ai",
14
+ "functions"
15
+ ],
16
+ "homepage": "https://somewhere.cloud",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/Somewhere-Cloud/somewhere-sdk-js.git"
20
+ },
21
+ "license": "MIT",
22
+ "author": {
23
+ "name": "somewhere.cloud",
24
+ "email": "support@somewhere.cloud"
25
+ },
26
+ "type": "module",
27
+ "main": "./dist/cjs/index.cjs",
28
+ "module": "./dist/esm/index.js",
29
+ "types": "./dist/types/index.d.ts",
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/types/index.d.ts",
33
+ "import": "./dist/esm/index.js",
34
+ "require": "./dist/cjs/index.cjs"
35
+ },
36
+ "./auth": {
37
+ "types": "./dist/types/auth/index.d.ts",
38
+ "import": "./dist/esm/auth/index.js",
39
+ "require": "./dist/cjs/auth/index.js"
40
+ },
41
+ "./react": {
42
+ "types": "./dist/types/auth/react.d.ts",
43
+ "import": "./dist/esm/auth/react.js",
44
+ "require": "./dist/cjs/auth/react.js"
45
+ },
46
+ "./server": {
47
+ "types": "./dist/types/auth/server.d.ts",
48
+ "import": "./dist/esm/auth/server.js",
49
+ "require": "./dist/cjs/auth/server.js"
50
+ }
51
+ },
52
+ "files": [
53
+ "dist",
54
+ "README.md",
55
+ "LICENSE"
56
+ ],
57
+ "scripts": {
58
+ "build": "npm run build:esm && npm run build:cjs && npm run build:types",
59
+ "build:esm": "tsc -p tsconfig.esm.json && node -e \"require('fs').writeFileSync('dist/esm/package.json','{\\\"type\\\":\\\"module\\\"}')\"",
60
+ "build:cjs": "tsc -p tsconfig.cjs.json && node -e \"require('fs').writeFileSync('dist/cjs/package.json','{\\\"type\\\":\\\"commonjs\\\"}')\" && node -e \"require('fs').renameSync('dist/cjs/index.js','dist/cjs/index.cjs')\"",
61
+ "build:types": "tsc -p tsconfig.types.json",
62
+ "clean": "rm -rf dist",
63
+ "test": "npm run build && tsc -p tsconfig.test.json && node test/unit-supabase-shape.mjs && node test/unit-query-builder.mjs && node test/unit-cookie-auth.mjs && node test/unit-cookie-default.mjs && node test/unit-auth-adapter-contract.mjs && node test/unit-mfa-continuation.mjs && node test/unit-signin-hardening.mjs && node test/unit-portable-refresh.mjs && node test/unit-refresh-reconcile.mjs && node test/unit-refresh-outcome-unknown.mjs && node test/unit-valid-token-during-refresh.mjs && node test/unit-session-status.mjs && node test/unit-signout-body.mjs && node test/unit-header-logout.mjs && node test/unit-cookie-logout.mjs && node test/unit-email-verification.mjs && node test/unit-oauth-start.mjs && node test/unit-cache.mjs && node test/unit-cache.mjs --built && node test/unit-function-retry.mjs && node test/unit-invalid-response.mjs && node test/unit-cloud-default.mjs && node test/unit-function-host.mjs && node test/unit-explicit-billing.mjs && node test/unit-react-explicit-billing.mjs && node test/unit-db-query.mjs && node test/unit-projects.mjs && node test/unit-project-update.mjs && node --input-type=module -e \"import('./dist/esm/index.js').then(async (m) => { globalThis.__sw = m; await import('./test/run-basic.mjs'); })\"",
64
+ "prepublishOnly": "npm run clean && npm run build",
65
+ "test:browser-signout": "node test/browser-signout-reload.mjs"
66
+ },
67
+ "engines": {
68
+ "node": ">=18"
69
+ },
70
+ "peerDependencies": {
71
+ "react": ">=17"
72
+ },
73
+ "peerDependenciesMeta": {
74
+ "react": {
75
+ "optional": true
76
+ }
77
+ },
78
+ "devDependencies": {
79
+ "@types/node": "^20.0.0",
80
+ "@types/react": "^19.2.16",
81
+ "@types/react-dom": "19.3.0",
82
+ "esbuild": "0.28.2",
83
+ "playwright": "1.58.2",
84
+ "react": "^19.2.0",
85
+ "react-dom": "19.2.8",
86
+ "typescript": "^5.4.0"
87
+ }
88
+ }