@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,121 @@
1
+ import type { Client } from '../client.js';
2
+ import type { Result } from '../types.js';
3
+ type Action = 'select' | 'insert' | 'update' | 'upsert' | 'delete';
4
+ /** Count mode for `select(cols, { count })`. */
5
+ export type CountMode = 'exact' | 'planned' | 'estimated';
6
+ /** What `.from(...)` returns — pre-action chain. */
7
+ export declare class SomewhereQueryBuilder {
8
+ private readonly client;
9
+ private readonly table;
10
+ constructor(client: Client, table: string);
11
+ /**
12
+ * Select rows. Pass embeds in the column string for foreign-key joins
13
+ * (`select('*, profile(*)')`), and `{ count, head }` for counts:
14
+ *
15
+ * // total rows matching the filters, alongside the page of data
16
+ * const { data, count } = await sw.from('todos')
17
+ * .select('*', { count: 'exact' }).eq('done', false).limit(20)
18
+ *
19
+ * // just the count, no rows fetched
20
+ * const { count } = await sw.from('todos')
21
+ * .select('*', { count: 'exact', head: true }).eq('done', false)
22
+ */
23
+ select(columns?: string, options?: {
24
+ count?: CountMode;
25
+ head?: boolean;
26
+ }): PostgrestFilterBuilder;
27
+ insert(values: Record<string, unknown> | Record<string, unknown>[]): PostgrestFilterBuilder;
28
+ upsert(values: Record<string, unknown> | Record<string, unknown>[], options?: {
29
+ onConflict?: string;
30
+ }): PostgrestFilterBuilder;
31
+ update(values: Record<string, unknown>): PostgrestFilterBuilder;
32
+ delete(): PostgrestFilterBuilder;
33
+ }
34
+ interface FilterBuilderState {
35
+ columns?: string;
36
+ insertValues?: Record<string, unknown>[];
37
+ updateValues?: Record<string, unknown>;
38
+ conflictKey?: string;
39
+ count?: CountMode;
40
+ head?: boolean;
41
+ }
42
+ /**
43
+ * Fluent filter / modifier / resolver chain. Implements `then` so `await`
44
+ * on a builder executes the query.
45
+ */
46
+ export declare class PostgrestFilterBuilder implements PromiseLike<Result<unknown>> {
47
+ private readonly client;
48
+ private readonly table;
49
+ private readonly action;
50
+ private readonly state;
51
+ private readonly filters;
52
+ private orderClause;
53
+ private limitN;
54
+ private offsetN;
55
+ private resolveType;
56
+ /** When true, this read bypasses the client cache and always hits the network. */
57
+ private freshOnly;
58
+ private readonly countMode;
59
+ private readonly headOnly;
60
+ constructor(client: Client, table: string, action: Action, state: FilterBuilderState);
61
+ eq(column: string, value: unknown): this;
62
+ neq(column: string, value: unknown): this;
63
+ gt(column: string, value: unknown): this;
64
+ gte(column: string, value: unknown): this;
65
+ lt(column: string, value: unknown): this;
66
+ lte(column: string, value: unknown): this;
67
+ /** Case-sensitive pattern match. Use `%` as the wildcard. */
68
+ like(column: string, pattern: string): this;
69
+ /** Case-insensitive pattern match. */
70
+ ilike(column: string, pattern: string): this;
71
+ in(column: string, values: unknown[]): this;
72
+ /** `.is('col', null)` → IS NULL. `.is('col', true/false)` for booleans. */
73
+ is(column: string, value: null | boolean): this;
74
+ /** Negate a filter: `.not('status', 'eq', 'archived')`. */
75
+ not(column: string, op: string, value: unknown): this;
76
+ /** Shorthand for stacking `.eq` filters from an object. */
77
+ match(criteria: Record<string, unknown>): this;
78
+ /**
79
+ * OR a set of conditions (filter syntax). `.or('status.eq.active,age.gt.18')`
80
+ * → `(status = 'active' OR age > 18)`, AND-ed with any other filters.
81
+ * Each term is `column.operator.value`; `in` uses `col.in.(a,b,c)`. Numeric /
82
+ * `true` / `false` / `null` values are coerced to their JSON types.
83
+ */
84
+ or(filters: string): this;
85
+ order(column: string, options?: {
86
+ ascending?: boolean;
87
+ }): this;
88
+ limit(n: number): this;
89
+ /** `[from, to]` inclusive range — equivalent to `LIMIT to-from+1 OFFSET from`. */
90
+ range(from: number, to: number): this;
91
+ /** Require exactly one row; error on 0 or >1. */
92
+ single(): this;
93
+ /** Allow 0 or 1 rows; 0 rows → `data: null`. */
94
+ maybeSingle(): this;
95
+ /**
96
+ * Opt this read out of the client cache: always hit the network, ignoring
97
+ * any cached value (it still refreshes the cache for the next normal read).
98
+ * The per-query escape hatch for the rare always-fresh need;
99
+ * `createClient(url, key, { cache: false })` is the global one.
100
+ */
101
+ fresh(): this;
102
+ /**
103
+ * Thenable so `await builder` executes the query. This is the same
104
+ * thenable pattern — the chain doesn't hit the network until
105
+ * you `await` (or `.then()`) it.
106
+ */
107
+ then<TFulfilled = Result<unknown>, TRejected = never>(onFulfilled?: ((value: Result<unknown>) => TFulfilled | PromiseLike<TFulfilled>) | null, onRejected?: ((reason: unknown) => TRejected | PromiseLike<TRejected>) | null): PromiseLike<TFulfilled | TRejected>;
108
+ private execute;
109
+ /** The actual network round-trip — no cache involvement. */
110
+ private doFetch;
111
+ /**
112
+ * Cache key for this select: every input that changes the result set —
113
+ * project + table + columns + filters + order + limit/offset + resolveType
114
+ * + count/head options, including inputs that change only the result shape.
115
+ */
116
+ private cacheKey;
117
+ private buildBody;
118
+ private shapeRows;
119
+ }
120
+ export {};
121
+ //# sourceMappingURL=postgrest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgrest.d.ts","sourceRoot":"","sources":["../../../src/resources/postgrest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import type { Client } from '../client.js';
2
+ import type { Result } from '../types.js';
3
+ /**
4
+ * Project control-plane operations. Access via `sw.projects`.
5
+ *
6
+ * These are developer operations: create the client with a developer key
7
+ * (`new Somewhere({ key: 'smt_...' })`). Managing a project's cross-origin
8
+ * allowlist is owner-or-platform-admin only and audited server-side.
9
+ */
10
+ export interface ProjectAllowedOrigins {
11
+ project_id?: string;
12
+ /** The exact OTHER origins allowed to make credentialed cross-origin
13
+ * requests. A project's own origins (its `.somewhere.site` URL and verified
14
+ * custom domains) are always trusted and are not listed here. */
15
+ allowed_origins: string[];
16
+ cors_mode?: string;
17
+ cors_grandfathered?: boolean;
18
+ updated?: boolean;
19
+ }
20
+ export type SeoStatus = 'automatic' | 'app-supplied' | 'needs-attention' | 'unknown';
21
+ export interface SeoMetadataItem {
22
+ name: string;
23
+ status: SeoStatus;
24
+ provenance: 'platform-fallback' | 'release-html' | 'release-file' | 'unobserved';
25
+ values: string[];
26
+ value_count: number;
27
+ values_truncated: boolean;
28
+ note: string;
29
+ suggestion: string | null;
30
+ }
31
+ export interface ProjectSeoMetadata {
32
+ project_id: string;
33
+ release_id: string;
34
+ version: number;
35
+ source_manifest_hash: string;
36
+ compiled_artifact_digest: string;
37
+ checked_at: string;
38
+ label: 'Deployed SEO metadata';
39
+ items: SeoMetadataItem[];
40
+ coverage: {
41
+ paths: ['/'];
42
+ mode: 'static-homepage-only';
43
+ client_routes: 'unknown';
44
+ public_response: 'unobserved';
45
+ note: string;
46
+ };
47
+ }
48
+ export interface AnalyticsConsentPolicy {
49
+ mode: 'off' | 'required';
50
+ policy_version: string;
51
+ }
52
+ export interface ProjectUpdateInput {
53
+ analytics_consent: AnalyticsConsentPolicy;
54
+ }
55
+ export interface ProjectUpdateResult {
56
+ updated: true;
57
+ analytics_consent: AnalyticsConsentPolicy | null;
58
+ }
59
+ export declare class ProjectsClient {
60
+ private readonly client;
61
+ constructor(client: Client);
62
+ /** Update the optional analytics consent policy; the platform validates policy and editor access. */
63
+ update(settings: ProjectUpdateInput, projectId?: string): Promise<Result<ProjectUpdateResult>>;
64
+ /** Inspect deployed homepage files and configured SEO defaults; live rendering and indexing remain unverified. */
65
+ seoCheck(projectId?: string): Promise<Result<ProjectSeoMetadata>>;
66
+ /** Read a project's exact cross-origin allowlist (CORS allowed_origins). */
67
+ getAllowedOrigins(projectId?: string): Promise<Result<ProjectAllowedOrigins>>;
68
+ /**
69
+ * Replace a project's cross-origin allowlist with these exact origins.
70
+ * Owner-or-platform-admin only, and audited server-side. Each entry must be
71
+ * an exact origin (scheme + host + optional port, no path or wildcards); the
72
+ * platform validates and normalizes them — no client-side munging. Pass `[]`
73
+ * to clear the allowlist.
74
+ */
75
+ setAllowedOrigins(allowedOrigins: string[], projectId?: string): Promise<Result<ProjectAllowedOrigins>>;
76
+ /** Remove all configured cross-origin origins (owner/admin only). */
77
+ clearAllowedOrigins(projectId?: string): Promise<Result<ProjectAllowedOrigins>>;
78
+ }
79
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/resources/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;sEAEkE;IAClE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,SAAS,CAAC;AACrF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,mBAAmB,GAAG,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC;IACjF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AACD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,uBAAuB,CAAC;IAC/B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,QAAQ,EAAE;QACR,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,EAAE,sBAAsB,CAAC;QAC7B,aAAa,EAAE,SAAS,CAAC;QACzB,eAAe,EAAE,YAAY,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,sBAAsB,CAAC;CAC3C;AACD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,IAAI,CAAC;IACd,iBAAiB,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAClD;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,qGAAqG;IAC/F,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAcpG,kHAAkH;IAC5G,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAcvE,4EAA4E;IACtE,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAcnF;;;;;;OAMG;IACG,iBAAiB,CACrB,cAAc,EAAE,MAAM,EAAE,EACxB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAczC,qEAAqE;IACrE,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;CAGhF"}
@@ -0,0 +1,63 @@
1
+ import type { Client } from '../client.js';
2
+ import type { IntegrityCheckResult, Result, SignedUrlResult, StorageDownloadResult, StorageFileObject, StorageUploadResult } from '../types.js';
3
+ /**
4
+ * Prefix-oriented file API.
5
+ *
6
+ * Routes through `/v1/fs/*` (the platform's structured filesystem).
7
+ * "Buckets" are prefix directories under the project's file namespace:
8
+ * `sw.storage.from('avatars').upload('a.png', ...)` writes to
9
+ * `/v1/fs/{project_id}/avatars/a.png`.
10
+ *
11
+ * For browser uploads with per-user or per-team rules, declare a file
12
+ * collection in db/schema.ts and use the generated `somewhere:files` client
13
+ * instead: docs({ topic: 'declared-files' }).
14
+ */
15
+ export declare class StorageClient {
16
+ private readonly client;
17
+ constructor(client: Client);
18
+ from(bucket: string): StorageFileApi;
19
+ }
20
+ export interface UploadOptions {
21
+ contentType?: string;
22
+ upsert?: boolean;
23
+ }
24
+ export declare class StorageFileApi {
25
+ private readonly client;
26
+ private readonly bucket;
27
+ constructor(client: Client, bucket: string);
28
+ upload(path: string, fileBody: BodyInit, options?: UploadOptions): Promise<Result<StorageUploadResult>>;
29
+ download(path: string): Promise<Result<StorageDownloadResult>>;
30
+ /**
31
+ * List files in this bucket (or a sub-prefix).
32
+ * Routes to `GET /v1/fs/{pid}/{bucket}/{prefix}` which returns
33
+ * a directory listing when the path is a directory.
34
+ */
35
+ list(prefix?: string, _options?: {
36
+ limit?: number;
37
+ cursor?: string;
38
+ }): Promise<Result<StorageFileObject[]>>;
39
+ remove(paths: string[]): Promise<Result<StorageFileObject[]>>;
40
+ getPublicUrl(path: string): {
41
+ data: {
42
+ publicUrl: string;
43
+ };
44
+ };
45
+ signedUrl(path: string, options?: {
46
+ expiresIn?: number;
47
+ }): Promise<Result<SignedUrlResult>>;
48
+ /**
49
+ * Alias of `signedUrl`. `createSignedUrl(path, expiresIn)` resolves to
50
+ * `{ data: { signedUrl, ...meta }, error }`.
51
+ */
52
+ createSignedUrl(path: string, expiresIn: number): Promise<Result<SignedUrlResult & {
53
+ signedUrl: string;
54
+ }>>;
55
+ integrityCheck(options?: {
56
+ autoClean?: boolean;
57
+ limit?: number;
58
+ cursor?: string;
59
+ }): Promise<Result<IntegrityCheckResult>>;
60
+ private fullKey;
61
+ private requireProjectId;
62
+ }
63
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/resources/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EACV,oBAAoB,EACpB,MAAM,EACN,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;CAGrC;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAG3B,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IA2BjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAapE;;;;OAIG;IACG,IAAI,CACR,MAAM,SAAK,EACX,QAAQ,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GACjD,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAmCjC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAkBnE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAOrD,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACnC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAanC;;;OAGG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,eAAe,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAYrD,cAAc,CAClB,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GACrE,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAcxC,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -0,0 +1,87 @@
1
+ import type { Client } from '../client.js';
2
+ import type { Result } from '../types.js';
3
+ /**
4
+ * Per-project ticketing. Lightweight task tracking (think GitHub
5
+ * Issues but inside your project) with optional webhook + email
6
+ * notifications. Free and unlimited.
7
+ *
8
+ * const t = await sw.tasks.create({
9
+ * title: 'Wire up payments',
10
+ * priority: 'high',
11
+ * labels: ['billing'],
12
+ * });
13
+ * await sw.tasks.update(t.data!.id, { status: 'done' });
14
+ */
15
+ export interface Task {
16
+ id: string;
17
+ title: string;
18
+ description?: string;
19
+ status: 'backlog' | 'open' | 'in_progress' | 'blocked' | 'needs_review' | 'done' | 'archived';
20
+ priority: 'low' | 'normal' | 'high' | 'urgent';
21
+ assignee?: string | null;
22
+ reporter?: string | null;
23
+ labels?: string[];
24
+ due_at?: number | null;
25
+ area?: string | null;
26
+ parent_id?: string | null;
27
+ created_at: number;
28
+ updated_at: number;
29
+ completed_at?: number | null;
30
+ }
31
+ export interface TaskListOptions {
32
+ projectId?: string;
33
+ status?: Task['status'] | Task['status'][];
34
+ priority?: Task['priority'] | Task['priority'][];
35
+ assignee?: string;
36
+ area?: string;
37
+ labels?: string[];
38
+ limit?: number;
39
+ cursor?: string;
40
+ }
41
+ export interface CreateTaskInput {
42
+ projectId?: string;
43
+ title: string;
44
+ description?: string;
45
+ status?: Task['status'];
46
+ priority?: Task['priority'];
47
+ assignee?: string;
48
+ labels?: string[];
49
+ due_at?: number | string;
50
+ area?: string;
51
+ parent_id?: string;
52
+ }
53
+ export interface UpdateTaskInput {
54
+ projectId?: string;
55
+ title?: string;
56
+ description?: string;
57
+ status?: Task['status'];
58
+ priority?: Task['priority'];
59
+ assignee?: string | null;
60
+ labels?: string[];
61
+ due_at?: number | string | null;
62
+ area?: string | null;
63
+ parent_id?: string | null;
64
+ resolution_note?: string;
65
+ }
66
+ export declare class TasksClient {
67
+ private readonly client;
68
+ constructor(client: Client);
69
+ create(input: CreateTaskInput): Promise<Result<Task>>;
70
+ list(options?: TaskListOptions): Promise<Result<Task[]>>;
71
+ get(id: string, options?: {
72
+ projectId?: string;
73
+ }): Promise<Result<Task>>;
74
+ update(id: string, input: UpdateTaskInput): Promise<Result<Task>>;
75
+ delete(id: string, options?: {
76
+ projectId?: string;
77
+ }): Promise<Result<{
78
+ deleted: true;
79
+ }>>;
80
+ comment(id: string, body: string, options?: {
81
+ projectId?: string;
82
+ }): Promise<Result<{
83
+ id: string;
84
+ created_at: number;
85
+ }>>;
86
+ }
87
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/resources/tasks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { Client } from '../client.js';
2
+ import type { Result, VideoListResponse, VideoObject, VideoUploadUrlRequest, VideoUploadUrlResponse } from '../types.js';
3
+ /**
4
+ * Video upload + playback. The platform issues a one-time direct upload
5
+ * URL — bytes go straight from the user's browser to the upstream
6
+ * delivery network, never through the platform — then exposes
7
+ * playback URLs (HLS + DASH) and a thumbnail once the video is ready.
8
+ *
9
+ * // 1. Get a one-time upload URL (server side).
10
+ * const { data } = await sw.video.createUploadUrl({ title: 'demo' })
11
+ * // 2. POST the file bytes to data.upload_url from the browser.
12
+ * // 3. Poll for readiness.
13
+ * const v = await sw.video.get(data.video_id)
14
+ * if (v.data?.ready) play(v.data.hls_url)
15
+ */
16
+ export declare class VideoClient {
17
+ private readonly client;
18
+ constructor(client: Client);
19
+ createUploadUrl(input?: VideoUploadUrlRequest): Promise<Result<VideoUploadUrlResponse>>;
20
+ list(opts?: {
21
+ projectId?: string;
22
+ limit?: number;
23
+ }): Promise<Result<VideoListResponse>>;
24
+ get(id: string): Promise<Result<VideoObject>>;
25
+ delete(id: string): Promise<Result<{
26
+ id: string;
27
+ deleted: true;
28
+ }>>;
29
+ }
30
+ //# sourceMappingURL=video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../../src/resources/video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,eAAe,CAAC,KAAK,GAAE,qBAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAa3F,IAAI,CAAC,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAQ3F,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAM7C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CAOzE"}