@thingd/client 0.77.0 → 0.77.2

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/dist/app.d.ts ADDED
@@ -0,0 +1,59 @@
1
+ import type { AppAuthResponse, AppFunction, AppManifest, AppObject, AppSearchOptions, AppSearchResult, AppUser } from "./types.js";
2
+ export type ThingdAppClientOptions = {
3
+ baseUrl: string;
4
+ publishableKey: string;
5
+ fetch?: typeof globalThis.fetch;
6
+ accessToken?: string;
7
+ onSessionChange?: (session: AppAuthResponse | null) => void;
8
+ };
9
+ export declare class ThingdAppError extends Error {
10
+ readonly status: number;
11
+ readonly code: string;
12
+ readonly requestId?: string;
13
+ constructor(status: number, code: string, message: string, requestId?: string);
14
+ }
15
+ /**
16
+ * Zero-dependency client for a hosted thingd app backend.
17
+ *
18
+ * The publishable key is safe to embed in browser and mobile applications.
19
+ * Project-user access tokens are kept in memory by default; applications can
20
+ * persist them using their platform's secure storage facilities.
21
+ */
22
+ export declare class ThingdAppClient {
23
+ private readonly options;
24
+ private readonly base;
25
+ private readonly fetcher;
26
+ private accessToken;
27
+ constructor(options: ThingdAppClientOptions);
28
+ setAccessToken(token: string | undefined): void;
29
+ getAccessToken(): string | undefined;
30
+ private request;
31
+ manifest(): Promise<AppManifest>;
32
+ readonly auth: {
33
+ signUp: (input: {
34
+ email: string;
35
+ password: string;
36
+ name: string;
37
+ }) => Promise<AppAuthResponse>;
38
+ signIn: (input: {
39
+ email: string;
40
+ password: string;
41
+ }) => Promise<AppAuthResponse>;
42
+ refresh: (refreshToken: string) => Promise<AppAuthResponse>;
43
+ getCurrentUser: () => Promise<AppUser>;
44
+ signOut: () => Promise<void>;
45
+ };
46
+ readonly functions: {
47
+ list: () => Promise<AppFunction[]>;
48
+ get: (name: string) => Promise<AppFunction>;
49
+ invoke: <T = unknown>(name: string, input: unknown, options?: {
50
+ idempotencyKey?: string;
51
+ }) => Promise<T>;
52
+ };
53
+ readonly objects: {
54
+ get: <T extends AppObject = AppObject>(collection: string, id: string) => Promise<T | null>;
55
+ };
56
+ readonly search: (query: string, options?: AppSearchOptions) => Promise<AppSearchResult[]>;
57
+ }
58
+ export declare function createThingdAppClient(options: ThingdAppClientOptions): ThingdAppClient;
59
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,YAAY,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAM5E;CACF;AAyBD;;;;;;GAMG;AACH,qBAAa,eAAe;IAKd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,WAAW,CAAqB;IAExC,YAA6B,OAAO,EAAE,sBAAsB,EAI3D;IAED,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE9C;IAED,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnC;YAEa,OAAO;IAiCf,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAErC;IAED,QAAQ,CAAC,IAAI;QACX,MAAM,UAAgB;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;QAMvE,MAAM,UAAgB;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE;QAMzD,OAAO,iBAAuB,MAAM;QAQpC,cAAc;QACd,OAAO;MAUP;IAEF,QAAQ,CAAC,SAAS;QAChB,IAAI;QACJ,GAAG,SAAS,MAAM;QAElB,MAAM,GAAG,CAAC,GAAG,OAAO,QAAQ,MAAM,SAAS,OAAO,YAAY;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE;MAOzF;IAEF,QAAQ,CAAC,OAAO;QACd,GAAG,GAAG,CAAC,SAAS,SAAS,GAAG,SAAS,cAAc,MAAM,MAAM,MAAM;MAKrE;IAEF,QAAQ,CAAC,MAAM,UAAW,MAAM,YAAY,gBAAgB,gCACoB;CACjF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAEtF"}
package/dist/app.js ADDED
@@ -0,0 +1,120 @@
1
+ export class ThingdAppError extends Error {
2
+ status;
3
+ code;
4
+ requestId;
5
+ constructor(status, code, message, requestId) {
6
+ super(message);
7
+ this.name = "ThingdAppError";
8
+ this.status = status;
9
+ this.code = code;
10
+ this.requestId = requestId;
11
+ }
12
+ }
13
+ function appPath(baseUrl) {
14
+ let normalized = baseUrl;
15
+ while (normalized.endsWith("/")) {
16
+ normalized = normalized.slice(0, -1);
17
+ }
18
+ return normalized.endsWith("/v1") ? normalized : `${normalized}/v1`;
19
+ }
20
+ /**
21
+ * Zero-dependency client for a hosted thingd app backend.
22
+ *
23
+ * The publishable key is safe to embed in browser and mobile applications.
24
+ * Project-user access tokens are kept in memory by default; applications can
25
+ * persist them using their platform's secure storage facilities.
26
+ */
27
+ export class ThingdAppClient {
28
+ options;
29
+ base;
30
+ fetcher;
31
+ accessToken;
32
+ constructor(options) {
33
+ this.options = options;
34
+ this.base = appPath(options.baseUrl);
35
+ this.fetcher = options.fetch ?? globalThis.fetch;
36
+ this.accessToken = options.accessToken;
37
+ }
38
+ setAccessToken(token) {
39
+ this.accessToken = token;
40
+ }
41
+ getAccessToken() {
42
+ return this.accessToken;
43
+ }
44
+ async request(method, path, body, idempotencyKey) {
45
+ const headers = {
46
+ accept: "application/json",
47
+ "x-thingd-publishable-key": this.options.publishableKey,
48
+ };
49
+ if (body !== undefined) {
50
+ headers["content-type"] = "application/json";
51
+ }
52
+ if (this.accessToken) {
53
+ headers.authorization = `Bearer ${this.accessToken}`;
54
+ }
55
+ if (idempotencyKey) {
56
+ headers["idempotency-key"] = idempotencyKey;
57
+ }
58
+ const response = await this.fetcher(`${this.base}${path}`, {
59
+ method,
60
+ headers,
61
+ body: body === undefined ? undefined : JSON.stringify(body),
62
+ });
63
+ const payload = (await response.json());
64
+ if (!response.ok) {
65
+ const error = payload.error;
66
+ throw new ThingdAppError(response.status, error?.code ?? error?.type ?? "app_request_failed", error?.detail ?? error?.message ?? `HTTP ${response.status}`, payload.requestId);
67
+ }
68
+ return payload.data;
69
+ }
70
+ async manifest() {
71
+ return this.request("GET", "/app/manifest");
72
+ }
73
+ auth = {
74
+ signUp: async (input) => {
75
+ const result = await this.request("POST", "/app/auth/signup", input);
76
+ this.setAccessToken(result.accessToken);
77
+ this.options.onSessionChange?.(result);
78
+ return result;
79
+ },
80
+ signIn: async (input) => {
81
+ const result = await this.request("POST", "/app/auth/login", input);
82
+ this.setAccessToken(result.accessToken);
83
+ this.options.onSessionChange?.(result);
84
+ return result;
85
+ },
86
+ refresh: async (refreshToken) => {
87
+ const result = await this.request("POST", "/app/auth/refresh", {
88
+ refreshToken,
89
+ });
90
+ this.setAccessToken(result.accessToken);
91
+ this.options.onSessionChange?.(result);
92
+ return result;
93
+ },
94
+ getCurrentUser: () => this.request("GET", "/app/auth/me"),
95
+ signOut: async () => {
96
+ try {
97
+ if (this.accessToken) {
98
+ await this.request("POST", "/app/auth/logout", {});
99
+ }
100
+ }
101
+ finally {
102
+ this.setAccessToken(undefined);
103
+ this.options.onSessionChange?.(null);
104
+ }
105
+ },
106
+ };
107
+ functions = {
108
+ list: () => this.request("GET", "/app/functions"),
109
+ get: (name) => this.request("GET", `/app/functions/${encodeURIComponent(name)}`),
110
+ invoke: (name, input, options) => this.request("POST", `/app/functions/${encodeURIComponent(name)}`, input, options?.idempotencyKey),
111
+ };
112
+ objects = {
113
+ get: (collection, id) => this.request("GET", `/app/objects/${encodeURIComponent(collection)}/${encodeURIComponent(id)}`),
114
+ };
115
+ search = (query, options) => this.request("POST", "/app/search", { query, ...options });
116
+ }
117
+ export function createThingdAppClient(options) {
118
+ return new ThingdAppClient(options);
119
+ }
120
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import type { AggregateOptions, AggregateResult, CollectionSchema, Link, LinkDirection, LinkQueryOptions, ListEventsOptions, ListObjectsOptions, MemoryEvent, MemoryObject, MemoryQueue, MemorySearchOptions, MemorySearchResult, NlqOptions, NlqResult, QueueClaimOptions, QueueJob, QueueJobOptions, QueueJobPayload, QueueJobResult, QueueNackOptions, SchemaOptions, StoredMemoryEvent, StoredMemoryObject, ThingDeleteResult, TimeSeriesOptions, TimeSeriesResult, VectorSearchHit, VectorSearchOptions } from "./types.js";
2
+ export type ThingdClientOptions = {
3
+ url: string;
4
+ authToken?: string;
5
+ };
6
+ /**
7
+ * Zero-dependency HTTP client for thingd REST API.
8
+ *
9
+ * Works in any runtime with `fetch()` — browsers, Cloudflare Workers,
10
+ * AWS Lambda, Bun, Deno, Node.js 18+.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const client = new ThingdClient({
15
+ * url: "https://api.thingd.cloud",
16
+ * authToken: "sk-...",
17
+ * });
18
+ * await client.put("notes", { id: "1", text: "hello" });
19
+ * ```
20
+ */
21
+ export declare class ThingdClient {
22
+ private readonly options;
23
+ private readonly base;
24
+ constructor(options: ThingdClientOptions);
25
+ private get token();
26
+ private request;
27
+ put(collection: string, object: MemoryObject): Promise<StoredMemoryObject>;
28
+ get<T = StoredMemoryObject>(collection: string, id: string): Promise<T | null>;
29
+ delete(collection: string, id: string): Promise<ThingDeleteResult>;
30
+ listObjects<T = StoredMemoryObject>(collection: string, options?: ListObjectsOptions): Promise<T[]>;
31
+ putBatch(collection: string, objects: MemoryObject[]): Promise<StoredMemoryObject[]>;
32
+ deleteBatch(collection: string, ids: string[]): Promise<number>;
33
+ search(query: string, options?: MemorySearchOptions): Promise<MemorySearchResult[]>;
34
+ /** Search objects by vector similarity (cosine similarity). */
35
+ vectorSearch(collection: string, queryVector: number[], options?: VectorSearchOptions): Promise<VectorSearchHit[]>;
36
+ appendEvent(stream: string, event: MemoryEvent): Promise<StoredMemoryEvent>;
37
+ listEvents<T = StoredMemoryEvent>(stream?: string, options?: ListEventsOptions): Promise<T[]>;
38
+ readonly events: {
39
+ append: (stream: string, event: MemoryEvent) => Promise<StoredMemoryEvent>;
40
+ list: <T = StoredMemoryEvent>(stream?: string, options?: ListEventsOptions) => Promise<T[]>;
41
+ };
42
+ pushJob(queue: string, payload: QueueJobPayload, options?: QueueJobOptions): Promise<QueueJob>;
43
+ claimJob(queue: string, options?: QueueClaimOptions): Promise<QueueJob | null>;
44
+ ackJob(queue: string, jobId: string): Promise<QueueJobResult>;
45
+ nackJob(queue: string, jobId: string, nackOptions?: QueueNackOptions): Promise<QueueJobResult>;
46
+ listJobs(queue: string): Promise<QueueJob[]>;
47
+ listDeadJobs(queue: string): Promise<QueueJob[]>;
48
+ queue(name: string): MemoryQueue;
49
+ createLink(fromRef: string, linkType: string, toRef: string, weight?: number, metadataJson?: string): Promise<Link>;
50
+ deleteLink(id: string): Promise<boolean>;
51
+ getLink(id: string): Promise<Link | null>;
52
+ getNeighbors(reference: string, direction?: LinkDirection, options?: LinkQueryOptions): Promise<Link[]>;
53
+ readonly links: {
54
+ create: (fromRef: string, linkType: string, toRef: string, weight?: number, metadataJson?: string) => Promise<Link>;
55
+ delete: (id: string) => Promise<boolean>;
56
+ get: (id: string) => Promise<Link | null>;
57
+ neighbors: (reference: string, direction?: LinkDirection, options?: LinkQueryOptions) => Promise<Link[]>;
58
+ };
59
+ countObjects(): Promise<number>;
60
+ countEvents(): Promise<number>;
61
+ countActiveJobs(): Promise<number>;
62
+ countDeadJobs(): Promise<number>;
63
+ countLinks(): Promise<number>;
64
+ listCollections(): Promise<string[]>;
65
+ listStreams(): Promise<string[]>;
66
+ listQueues(): Promise<string[]>;
67
+ private sendAggregateRequest;
68
+ readonly aggregate: {
69
+ count: (collection: string, options?: Omit<AggregateOptions, "function">) => Promise<AggregateResult>;
70
+ sum: (collection: string, field: string, options?: Omit<AggregateOptions, "function" | "field">) => Promise<AggregateResult>;
71
+ avg: (collection: string, field: string, options?: Omit<AggregateOptions, "function" | "field">) => Promise<AggregateResult>;
72
+ min: (collection: string, field: string, options?: Omit<AggregateOptions, "function" | "field">) => Promise<AggregateResult>;
73
+ max: (collection: string, field: string, options?: Omit<AggregateOptions, "function" | "field">) => Promise<AggregateResult>;
74
+ };
75
+ timeseries(collection: string, options: TimeSeriesOptions): Promise<TimeSeriesResult>;
76
+ schema(collection?: string, _options?: SchemaOptions): Promise<CollectionSchema[]>;
77
+ /** Parse and validate a schema source without modifying the database. */
78
+ validateSchema(source: string): Promise<{
79
+ schema: unknown;
80
+ hash: string;
81
+ }>;
82
+ /** Read the last applied canonical schema metadata. */
83
+ getSchemaDocument(): Promise<{
84
+ schemaJson: string;
85
+ hash: string;
86
+ updatedAt: string;
87
+ } | null>;
88
+ /** Read durable migration records. */
89
+ listMigrations(): Promise<Array<{
90
+ id: string;
91
+ hash: string;
92
+ appliedAt: string;
93
+ }>>;
94
+ nlqQuery(question: string, options?: NlqOptions): Promise<NlqResult>;
95
+ readonly nlq: {
96
+ query: (question: string, options?: NlqOptions) => Promise<NlqResult>;
97
+ };
98
+ close(): Promise<void>;
99
+ }
100
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,287 @@
1
+ function trimTrailingSlashes(s) {
2
+ let end = s.length;
3
+ while (end > 0 && s.charCodeAt(end - 1) === 47) {
4
+ end--;
5
+ }
6
+ return s.slice(0, end);
7
+ }
8
+ /**
9
+ * Zero-dependency HTTP client for thingd REST API.
10
+ *
11
+ * Works in any runtime with `fetch()` — browsers, Cloudflare Workers,
12
+ * AWS Lambda, Bun, Deno, Node.js 18+.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const client = new ThingdClient({
17
+ * url: "https://api.thingd.cloud",
18
+ * authToken: "sk-...",
19
+ * });
20
+ * await client.put("notes", { id: "1", text: "hello" });
21
+ * ```
22
+ */
23
+ export class ThingdClient {
24
+ options;
25
+ base;
26
+ constructor(options) {
27
+ this.options = options;
28
+ const base = trimTrailingSlashes(options.url);
29
+ this.base = base.endsWith("/v1") ? base : `${base}/v1`;
30
+ }
31
+ get token() {
32
+ return this.options.authToken;
33
+ }
34
+ async request(method, path, body) {
35
+ const headers = {};
36
+ if (body) {
37
+ headers["content-type"] = "application/json";
38
+ }
39
+ if (this.token) {
40
+ headers.authorization = `Bearer ${this.token}`;
41
+ }
42
+ const res = await fetch(`${this.base}${path}`, {
43
+ method,
44
+ headers,
45
+ body: body ? JSON.stringify(body) : undefined,
46
+ });
47
+ const json = await res.json();
48
+ if (!res.ok) {
49
+ const msg = json?.error?.message ?? `HTTP ${res.status}`;
50
+ throw new Error(msg);
51
+ }
52
+ return json.data;
53
+ }
54
+ // ── Objects ──────────────────────────────────────────
55
+ async put(collection, object) {
56
+ return this.request("PUT", `/objects/${encodeURIComponent(collection)}/${encodeURIComponent(object.id)}`, object);
57
+ }
58
+ async get(collection, id) {
59
+ try {
60
+ return await this.request("GET", `/objects/${encodeURIComponent(collection)}/${encodeURIComponent(id)}`);
61
+ }
62
+ catch (err) {
63
+ if (err instanceof Error && err.message.includes("404")) {
64
+ return null;
65
+ }
66
+ throw err;
67
+ }
68
+ }
69
+ async delete(collection, id) {
70
+ return this.request("DELETE", `/objects/${encodeURIComponent(collection)}/${encodeURIComponent(id)}`);
71
+ }
72
+ async listObjects(collection, options) {
73
+ const params = new URLSearchParams({ collection });
74
+ if (options?.limit) {
75
+ params.set("limit", String(options.limit));
76
+ }
77
+ if (options?.offset) {
78
+ params.set("offset", String(options.offset));
79
+ }
80
+ if (options?.filter) {
81
+ for (const [k, v] of Object.entries(options.filter)) {
82
+ params.set(`filter.${k}`, String(v));
83
+ }
84
+ }
85
+ if (options?.sortBy) {
86
+ params.set("sortBy", options.sortBy.field);
87
+ if (options.sortBy.direction) {
88
+ params.set("sortDir", options.sortBy.direction);
89
+ }
90
+ }
91
+ return this.request("GET", `/objects?${params}`);
92
+ }
93
+ async putBatch(collection, objects) {
94
+ return this.request("PUT", `/objects/batch?collection=${encodeURIComponent(collection)}`, objects);
95
+ }
96
+ async deleteBatch(collection, ids) {
97
+ const result = await this.request("DELETE", `/objects/batch?collection=${encodeURIComponent(collection)}`, ids);
98
+ return result.deleted;
99
+ }
100
+ // ── Search ───────────────────────────────────────────
101
+ async search(query, options = {}) {
102
+ return this.request("POST", "/search", { query, ...options });
103
+ }
104
+ /** Search objects by vector similarity (cosine similarity). */
105
+ async vectorSearch(collection, queryVector, options = {}) {
106
+ return this.request("POST", "/search/vector", {
107
+ collection,
108
+ vector: queryVector,
109
+ topK: options.topK,
110
+ filter: options.filter,
111
+ });
112
+ }
113
+ // ── Events ───────────────────────────────────────────
114
+ async appendEvent(stream, event) {
115
+ return this.request("POST", `/events/${encodeURIComponent(stream)}`, event);
116
+ }
117
+ async listEvents(stream, options) {
118
+ const params = new URLSearchParams();
119
+ if (stream) {
120
+ params.set("stream", stream);
121
+ }
122
+ if (options?.fromSequence) {
123
+ params.set("fromSequence", String(options.fromSequence));
124
+ }
125
+ if (options?.limit) {
126
+ params.set("limit", String(options.limit));
127
+ }
128
+ return this.request("GET", `/events?${params}`);
129
+ }
130
+ events = {
131
+ append: (stream, event) => this.appendEvent(stream, event),
132
+ list: (stream, options) => this.listEvents(stream, options),
133
+ };
134
+ // ── Queues ───────────────────────────────────────────
135
+ async pushJob(queue, payload, options = {}) {
136
+ return this.request("POST", `/queues/${encodeURIComponent(queue)}/push`, {
137
+ payload,
138
+ ...options,
139
+ });
140
+ }
141
+ async claimJob(queue, options = {}) {
142
+ return this.request("POST", `/queues/${encodeURIComponent(queue)}/claim`, options);
143
+ }
144
+ async ackJob(queue, jobId) {
145
+ return this.request("POST", `/queues/${encodeURIComponent(queue)}/ack`, {
146
+ jobId,
147
+ });
148
+ }
149
+ async nackJob(queue, jobId, nackOptions = {}) {
150
+ return this.request("POST", `/queues/${encodeURIComponent(queue)}/nack`, {
151
+ jobId,
152
+ ...nackOptions,
153
+ });
154
+ }
155
+ async listJobs(queue) {
156
+ return this.request("GET", `/queues/${encodeURIComponent(queue)}/jobs`);
157
+ }
158
+ async listDeadJobs(queue) {
159
+ return this.request("GET", `/queues/${encodeURIComponent(queue)}/dead`);
160
+ }
161
+ queue(name) {
162
+ return {
163
+ push: (payload, options) => this.pushJob(name, payload, options),
164
+ claim: (options) => this.claimJob(name, options),
165
+ ack: (jobId) => this.ackJob(name, jobId),
166
+ nack: (jobId, opts) => this.nackJob(name, jobId, opts),
167
+ list: () => this.listJobs(name),
168
+ dead: () => this.listDeadJobs(name),
169
+ };
170
+ }
171
+ // ── Links ────────────────────────────────────────────
172
+ async createLink(fromRef, linkType, toRef, weight, metadataJson) {
173
+ return this.request("POST", "/links", {
174
+ fromRef,
175
+ linkType,
176
+ toRef,
177
+ weight,
178
+ metadataJson,
179
+ });
180
+ }
181
+ async deleteLink(id) {
182
+ const result = await this.request("DELETE", `/links/${encodeURIComponent(id)}`);
183
+ return result.deleted;
184
+ }
185
+ async getLink(id) {
186
+ try {
187
+ return await this.request("GET", `/links/${encodeURIComponent(id)}`);
188
+ }
189
+ catch (err) {
190
+ if (err instanceof Error && err.message.includes("404")) {
191
+ return null;
192
+ }
193
+ throw err;
194
+ }
195
+ }
196
+ async getNeighbors(reference, direction = "Both", options = {}) {
197
+ const params = new URLSearchParams({ reference, direction });
198
+ if (options.linkType) {
199
+ params.set("linkType", options.linkType);
200
+ }
201
+ if (options.limit) {
202
+ params.set("limit", String(options.limit));
203
+ }
204
+ return this.request("GET", `/links?${params}`);
205
+ }
206
+ links = {
207
+ create: (fromRef, linkType, toRef, weight, metadataJson) => this.createLink(fromRef, linkType, toRef, weight, metadataJson),
208
+ delete: (id) => this.deleteLink(id),
209
+ get: (id) => this.getLink(id),
210
+ neighbors: (reference, direction, options) => this.getNeighbors(reference, direction, options),
211
+ };
212
+ // ── Counts ───────────────────────────────────────────
213
+ async countObjects() {
214
+ const result = await this.request("GET", "/counts/objects");
215
+ return result.count;
216
+ }
217
+ async countEvents() {
218
+ const result = await this.request("GET", "/counts/events");
219
+ return result.count;
220
+ }
221
+ async countActiveJobs() {
222
+ return 0;
223
+ }
224
+ async countDeadJobs() {
225
+ return 0;
226
+ }
227
+ async countLinks() {
228
+ const result = await this.request("GET", "/counts/links");
229
+ return result.count;
230
+ }
231
+ // ── Discovery ────────────────────────────────────────
232
+ async listCollections() {
233
+ return this.request("GET", "/collections");
234
+ }
235
+ async listStreams() {
236
+ return this.request("GET", "/streams");
237
+ }
238
+ async listQueues() {
239
+ return this.request("GET", "/queues");
240
+ }
241
+ // ── Aggregate ────────────────────────────────────────
242
+ async sendAggregateRequest(collection, options) {
243
+ return this.request("POST", "/aggregate", { collection, ...options });
244
+ }
245
+ aggregate = {
246
+ count: (collection, options = {}) => this.sendAggregateRequest(collection, { ...options, function: "count" }),
247
+ sum: (collection, field, options = {}) => this.sendAggregateRequest(collection, { ...options, function: "sum", field }),
248
+ avg: (collection, field, options = {}) => this.sendAggregateRequest(collection, { ...options, function: "avg", field }),
249
+ min: (collection, field, options = {}) => this.sendAggregateRequest(collection, { ...options, function: "min", field }),
250
+ max: (collection, field, options = {}) => this.sendAggregateRequest(collection, { ...options, function: "max", field }),
251
+ };
252
+ async timeseries(collection, options) {
253
+ return this.request("POST", "/aggregate/timeseries", {
254
+ collection,
255
+ ...options,
256
+ });
257
+ }
258
+ // ── Schema ───────────────────────────────────────────
259
+ async schema(collection, _options) {
260
+ if (collection) {
261
+ return this.request("GET", `/collections/${encodeURIComponent(collection)}/schema`);
262
+ }
263
+ return this.request("GET", "/collections/schema");
264
+ }
265
+ /** Parse and validate a schema source without modifying the database. */
266
+ async validateSchema(source) {
267
+ return this.request("POST", "/schema/validate", { source });
268
+ }
269
+ /** Read the last applied canonical schema metadata. */
270
+ async getSchemaDocument() {
271
+ return this.request("GET", "/schema/current");
272
+ }
273
+ /** Read durable migration records. */
274
+ async listMigrations() {
275
+ return this.request("GET", "/migrations");
276
+ }
277
+ // ── NLQ ──────────────────────────────────────────────
278
+ async nlqQuery(question, options) {
279
+ return this.request("POST", "/nlq", { question, ...options });
280
+ }
281
+ nlq = {
282
+ query: (question, options) => this.nlqQuery(question, options),
283
+ };
284
+ // ── Lifecycle ────────────────────────────────────────
285
+ async close() { }
286
+ }
287
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { createThingdAppClient, ThingdAppClient, type ThingdAppClientOptions, ThingdAppError, } from "./app.js";
2
+ export { ThingdClient, type ThingdClientOptions } from "./client.js";
3
+ export type { AggregateOptions, AggregateResult, AppAuthResponse, AppFunction, AppManifest, AppObject, AppSearchOptions, AppSearchResult, AppUser, CollectionSchema, Link, LinkDirection, LinkQueryOptions, ListEventsOptions, ListObjectsOptions, MemoryEvent, MemoryObject, MemoryQueue, MemorySearchOptions, MemorySearchResult, NlqOptions, NlqResult, QueueClaimOptions, QueueJob, QueueJobOptions, QueueJobPayload, QueueJobResult, QueueJobStatus, QueueNackOptions, SchemaOptions, SortBy, StoredMemoryEvent, StoredMemoryObject, ThingDeleteResult, TimeSeriesOptions, TimeSeriesResult, } from "./types.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,KAAK,sBAAsB,EAC3B,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,IAAI,EACJ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { createThingdAppClient, ThingdAppClient, ThingdAppError, } from "./app.js";
2
+ export { ThingdClient } from "./client.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,eAAe,EAEf,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAA4B,MAAM,aAAa,CAAC"}
@@ -0,0 +1,227 @@
1
+ export type MemoryObject = {
2
+ id: string;
3
+ [key: string]: unknown;
4
+ };
5
+ export type StoredMemoryObject = MemoryObject & {
6
+ collection: string;
7
+ createdAt: string;
8
+ updatedAt: string;
9
+ version: number;
10
+ };
11
+ export type PutOptions = {
12
+ expectedVersion?: number;
13
+ };
14
+ export type ThingDeleteResult = {
15
+ deleted: boolean;
16
+ };
17
+ export type SortBy = {
18
+ field: "id" | "collection" | "created_at" | "updated_at" | "version";
19
+ direction?: "asc" | "desc";
20
+ };
21
+ export type ListObjectsOptions = {
22
+ limit?: number;
23
+ offset?: number;
24
+ filter?: Record<string, string>;
25
+ sortBy?: SortBy;
26
+ };
27
+ export type AppUser = {
28
+ id: string;
29
+ email: string;
30
+ name: string;
31
+ role: string;
32
+ createdAt: string;
33
+ };
34
+ export type AppAuthResponse = {
35
+ user: AppUser;
36
+ accessToken: string;
37
+ refreshToken: string;
38
+ expiresIn: number;
39
+ };
40
+ export type AppFunction = {
41
+ name: string;
42
+ description: string;
43
+ auth: "public" | "user" | "role";
44
+ roles?: string[];
45
+ inputSchema: Record<string, unknown>;
46
+ outputSchema: Record<string, unknown>;
47
+ version: number;
48
+ idempotency: "optional" | "required";
49
+ };
50
+ export type AppManifest = {
51
+ version: string;
52
+ project: {
53
+ id: string;
54
+ slug: string;
55
+ };
56
+ functions: AppFunction[];
57
+ capabilities: {
58
+ reads: boolean;
59
+ namedWrites: boolean;
60
+ };
61
+ };
62
+ export type AppObject = {
63
+ id: string;
64
+ [key: string]: unknown;
65
+ };
66
+ export type AppSearchOptions = {
67
+ collections?: string[];
68
+ limit?: number;
69
+ };
70
+ export type AppSearchResult = {
71
+ id: string;
72
+ collection?: string;
73
+ score: number;
74
+ value: Record<string, unknown>;
75
+ };
76
+ export type MemoryEvent = {
77
+ type: string;
78
+ text?: string;
79
+ [key: string]: unknown;
80
+ };
81
+ export type StoredMemoryEvent = MemoryEvent & {
82
+ id: string;
83
+ stream: string;
84
+ sequence: number;
85
+ createdAt: string;
86
+ };
87
+ export type ListEventsOptions = {
88
+ fromSequence?: number;
89
+ limit?: number;
90
+ since?: string;
91
+ };
92
+ export type QueueJobPayload = Record<string, unknown>;
93
+ export type QueueJobStatus = "ready" | "leased" | "completed" | "dead";
94
+ export type QueueJob = {
95
+ id: string;
96
+ queue: string;
97
+ payload: QueueJobPayload;
98
+ status: QueueJobStatus;
99
+ attempts: number;
100
+ maxAttempts: number;
101
+ createdAt: string;
102
+ availableAt: string;
103
+ leasedAt?: string;
104
+ leaseExpiresAt?: string;
105
+ completedAt?: string;
106
+ deadAt?: string;
107
+ lastError?: string;
108
+ };
109
+ export type QueueJobOptions = {
110
+ idempotencyKey?: string;
111
+ maxAttempts?: number;
112
+ delayMs?: number;
113
+ };
114
+ export type QueueClaimOptions = {
115
+ leaseMs?: number;
116
+ };
117
+ export type QueueNackOptions = {
118
+ delayMs?: number;
119
+ error?: string;
120
+ };
121
+ export type QueueJobResult = {
122
+ ok: true;
123
+ job: QueueJob;
124
+ } | {
125
+ ok: false;
126
+ reason: "not_found" | "not_leased" | "terminal";
127
+ };
128
+ export type MemoryQueue = {
129
+ push(payload: QueueJobPayload, options?: QueueJobOptions): Promise<QueueJob>;
130
+ claim(options?: QueueClaimOptions): Promise<QueueJob | null>;
131
+ ack(jobId: string): Promise<QueueJobResult>;
132
+ nack(jobId: string, options?: QueueNackOptions): Promise<QueueJobResult>;
133
+ list(): Promise<QueueJob[]>;
134
+ dead(): Promise<QueueJob[]>;
135
+ };
136
+ export type MemorySearchOptions = {
137
+ collections?: string[];
138
+ limit?: number;
139
+ filter?: Record<string, string>;
140
+ };
141
+ export type MemorySearchResult = {
142
+ kind: "object" | "event";
143
+ id: string;
144
+ collection?: string;
145
+ stream?: string;
146
+ score: number;
147
+ value: Record<string, unknown>;
148
+ };
149
+ export type VectorSearchOptions = {
150
+ topK?: number;
151
+ filter?: Record<string, unknown>;
152
+ };
153
+ export type VectorSearchHit = {
154
+ id: string;
155
+ score: number;
156
+ value: Record<string, unknown>;
157
+ };
158
+ export type LinkDirection = "Outgoing" | "Incoming" | "Both";
159
+ export type Link = {
160
+ id: string;
161
+ fromRef: string;
162
+ linkType: string;
163
+ toRef: string;
164
+ weight?: number;
165
+ metadataJson: string;
166
+ createdAt: string;
167
+ };
168
+ export type LinkQueryOptions = {
169
+ linkType?: string;
170
+ limit?: number;
171
+ };
172
+ export type AggregateOptions = {
173
+ function: "count" | "sum" | "avg" | "min" | "max";
174
+ field?: string;
175
+ groupBy?: string;
176
+ filter?: Record<string, string>;
177
+ };
178
+ export type AggregateGroupResult = {
179
+ key: string;
180
+ value: number;
181
+ };
182
+ export type AggregateResult = {
183
+ total: number;
184
+ groups: AggregateGroupResult[];
185
+ };
186
+ export type TimeBucket = "hour" | "day" | "week" | "month";
187
+ export type TimeSeriesOptions = {
188
+ function: "count" | "sum" | "avg" | "min" | "max";
189
+ field?: string;
190
+ bucket: TimeBucket;
191
+ from?: string;
192
+ to?: string;
193
+ filter?: Record<string, string>;
194
+ };
195
+ export type TimeSeriesBucket = {
196
+ label: string;
197
+ value: number;
198
+ };
199
+ export type TimeSeriesResult = {
200
+ buckets: TimeSeriesBucket[];
201
+ };
202
+ export type FieldSchema = {
203
+ name: string;
204
+ type: "string" | "number" | "boolean" | "date" | "null" | "unknown";
205
+ nullable: boolean;
206
+ sampleValues: unknown[];
207
+ };
208
+ export type CollectionSchema = {
209
+ name: string;
210
+ objectCount: number;
211
+ fields: FieldSchema[];
212
+ };
213
+ export type SchemaOptions = {
214
+ sampleSize?: number;
215
+ };
216
+ export type NlqOptions = {
217
+ collections?: string[];
218
+ model?: string;
219
+ maxTokens?: number;
220
+ };
221
+ export type NlqResult = {
222
+ answer: string;
223
+ sql?: string;
224
+ data?: Record<string, unknown>[];
225
+ error?: string;
226
+ };
227
+ //# 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/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ // ── Objects ──────────────────────────────────────────
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,wDAAwD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thingd/client",
3
- "version": "0.77.0",
3
+ "version": "0.77.2",
4
4
  "description": "Zero-dependency HTTP client for thingd — works in browsers, edge runtimes, Node.js, Bun, Deno",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",