@onchaindb/sdk 0.0.6

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 (66) hide show
  1. package/README.md +475 -0
  2. package/dist/batch.d.ts +42 -0
  3. package/dist/batch.d.ts.map +1 -0
  4. package/dist/batch.js +124 -0
  5. package/dist/batch.js.map +1 -0
  6. package/dist/client.d.ts +93 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +679 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/database.d.ts +194 -0
  11. package/dist/database.d.ts.map +1 -0
  12. package/dist/database.js +211 -0
  13. package/dist/database.js.map +1 -0
  14. package/dist/index.d.ts +15 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +37 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/query-sdk/ConditionBuilder.d.ts +23 -0
  19. package/dist/query-sdk/ConditionBuilder.d.ts.map +1 -0
  20. package/dist/query-sdk/ConditionBuilder.js +76 -0
  21. package/dist/query-sdk/ConditionBuilder.js.map +1 -0
  22. package/dist/query-sdk/FieldConditionBuilder.d.ts +2 -0
  23. package/dist/query-sdk/FieldConditionBuilder.d.ts.map +1 -0
  24. package/dist/query-sdk/FieldConditionBuilder.js +6 -0
  25. package/dist/query-sdk/FieldConditionBuilder.js.map +1 -0
  26. package/dist/query-sdk/NestedBuilders.d.ts +44 -0
  27. package/dist/query-sdk/NestedBuilders.d.ts.map +1 -0
  28. package/dist/query-sdk/NestedBuilders.js +131 -0
  29. package/dist/query-sdk/NestedBuilders.js.map +1 -0
  30. package/dist/query-sdk/OnChainDB.d.ts +27 -0
  31. package/dist/query-sdk/OnChainDB.d.ts.map +1 -0
  32. package/dist/query-sdk/OnChainDB.js +191 -0
  33. package/dist/query-sdk/OnChainDB.js.map +1 -0
  34. package/dist/query-sdk/PrismaLikeClient.d.ts +41 -0
  35. package/dist/query-sdk/PrismaLikeClient.d.ts.map +1 -0
  36. package/dist/query-sdk/PrismaLikeClient.js +202 -0
  37. package/dist/query-sdk/PrismaLikeClient.js.map +1 -0
  38. package/dist/query-sdk/QueryBuilder.d.ts +155 -0
  39. package/dist/query-sdk/QueryBuilder.d.ts.map +1 -0
  40. package/dist/query-sdk/QueryBuilder.js +757 -0
  41. package/dist/query-sdk/QueryBuilder.js.map +1 -0
  42. package/dist/query-sdk/QueryResult.d.ts +53 -0
  43. package/dist/query-sdk/QueryResult.d.ts.map +1 -0
  44. package/dist/query-sdk/QueryResult.js +267 -0
  45. package/dist/query-sdk/QueryResult.js.map +1 -0
  46. package/dist/query-sdk/SelectionBuilder.d.ts +21 -0
  47. package/dist/query-sdk/SelectionBuilder.d.ts.map +1 -0
  48. package/dist/query-sdk/SelectionBuilder.js +67 -0
  49. package/dist/query-sdk/SelectionBuilder.js.map +1 -0
  50. package/dist/query-sdk/adapters/HttpClientAdapter.d.ts +28 -0
  51. package/dist/query-sdk/adapters/HttpClientAdapter.d.ts.map +1 -0
  52. package/dist/query-sdk/adapters/HttpClientAdapter.js +206 -0
  53. package/dist/query-sdk/adapters/HttpClientAdapter.js.map +1 -0
  54. package/dist/query-sdk/index.d.ts +38 -0
  55. package/dist/query-sdk/index.d.ts.map +1 -0
  56. package/dist/query-sdk/index.js +28 -0
  57. package/dist/query-sdk/index.js.map +1 -0
  58. package/dist/query-sdk/operators.d.ts +57 -0
  59. package/dist/query-sdk/operators.d.ts.map +1 -0
  60. package/dist/query-sdk/operators.js +275 -0
  61. package/dist/query-sdk/operators.js.map +1 -0
  62. package/dist/types.d.ts +263 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +46 -0
  65. package/dist/types.js.map +1 -0
  66. package/package.json +47 -0
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrismaLikeClient = void 0;
4
+ exports.createPrismaLikeClient = createPrismaLikeClient;
5
+ const QueryBuilder_1 = require("./QueryBuilder");
6
+ class PrismaLikeClient {
7
+ constructor(config) {
8
+ this.httpClient = config.httpClient;
9
+ this.serverUrl = config.serverUrl;
10
+ this.apiKey = config.apiKey;
11
+ this.appId = config.appId;
12
+ }
13
+ async findUnique(collection, where) {
14
+ try {
15
+ let queryBuilder = new QueryBuilder_1.QueryBuilder(this.httpClient, this.serverUrl);
16
+ queryBuilder = queryBuilder.collection(collection);
17
+ for (const [field, value] of Object.entries(where)) {
18
+ queryBuilder = queryBuilder.whereField(field).equals(value);
19
+ }
20
+ const result = await queryBuilder.selectAll().limit(1).execute();
21
+ if (!result.records || result.records.length === 0) {
22
+ return null;
23
+ }
24
+ return result.records[0];
25
+ }
26
+ catch (error) {
27
+ console.error(`PrismaLikeClient findUnique error for ${collection}:`, error);
28
+ return null;
29
+ }
30
+ }
31
+ async findMany(collection, where = {}, options = {}) {
32
+ try {
33
+ let queryBuilder = new QueryBuilder_1.QueryBuilder(this.httpClient, this.serverUrl);
34
+ queryBuilder = queryBuilder.collection(collection);
35
+ for (const [field, value] of Object.entries(where)) {
36
+ queryBuilder = queryBuilder.whereField(field).equals(value);
37
+ }
38
+ if (options.limit) {
39
+ queryBuilder = queryBuilder.limit(options.limit);
40
+ }
41
+ const result = await queryBuilder.selectAll().execute();
42
+ if (!result.records) {
43
+ return [];
44
+ }
45
+ let records = result.records;
46
+ if (options.sort) {
47
+ records = records.sort((a, b) => {
48
+ const aVal = a[options.sort.field];
49
+ const bVal = b[options.sort.field];
50
+ if (options.sort.order === 'asc') {
51
+ return aVal > bVal ? 1 : -1;
52
+ }
53
+ else {
54
+ return aVal < bVal ? 1 : -1;
55
+ }
56
+ });
57
+ }
58
+ return records;
59
+ }
60
+ catch (error) {
61
+ console.error(`PrismaLikeClient findMany error for ${collection}:`, error);
62
+ return [];
63
+ }
64
+ }
65
+ async create(collection, data, paymentProof, idGenerator) {
66
+ const document = {
67
+ id: idGenerator ? idGenerator() : this.generateId(),
68
+ ...data,
69
+ createdAt: new Date().toISOString(),
70
+ updatedAt: new Date().toISOString(),
71
+ };
72
+ const storeRequest = {
73
+ collection,
74
+ data: [document],
75
+ };
76
+ if (paymentProof) {
77
+ storeRequest.payment_tx_hash = paymentProof.payment_tx_hash;
78
+ storeRequest.user_address = paymentProof.user_address;
79
+ storeRequest.broker_address = paymentProof.broker_address;
80
+ storeRequest.amount_utia = paymentProof.amount_utia;
81
+ }
82
+ const headers = { 'Content-Type': 'application/json' };
83
+ if (this.apiKey) {
84
+ headers['X-API-Key'] = this.apiKey;
85
+ }
86
+ await this.httpClient.post(`${this.serverUrl}/api/apps/${this.appId}/store`, storeRequest, headers);
87
+ return document;
88
+ }
89
+ async update(collection, where, data, paymentProof) {
90
+ const current = await this.findUnique(collection, where);
91
+ if (!current) {
92
+ return null;
93
+ }
94
+ const updated = {
95
+ ...current,
96
+ ...data,
97
+ updatedAt: new Date().toISOString(),
98
+ };
99
+ const storeRequest = {
100
+ collection,
101
+ data: [updated],
102
+ };
103
+ if (paymentProof) {
104
+ storeRequest.payment_tx_hash = paymentProof.payment_tx_hash;
105
+ storeRequest.user_address = paymentProof.user_address;
106
+ storeRequest.broker_address = paymentProof.broker_address;
107
+ storeRequest.amount_utia = paymentProof.amount_utia;
108
+ }
109
+ const headers = { 'Content-Type': 'application/json' };
110
+ if (this.apiKey) {
111
+ headers['X-API-Key'] = this.apiKey;
112
+ }
113
+ await this.httpClient.post(`${this.serverUrl}/api/apps/${this.appId}/store`, storeRequest, headers);
114
+ return updated;
115
+ }
116
+ async upsert(collection, where, create, update, paymentProof, idGenerator) {
117
+ const existing = await this.findUnique(collection, where);
118
+ if (existing) {
119
+ return (await this.update(collection, where, update, paymentProof));
120
+ }
121
+ else {
122
+ return await this.create(collection, create, paymentProof, idGenerator);
123
+ }
124
+ }
125
+ async delete(collection, where, paymentProof) {
126
+ const existing = await this.findUnique(collection, where);
127
+ if (!existing) {
128
+ return false;
129
+ }
130
+ const deleted = {
131
+ ...existing,
132
+ deleted: true,
133
+ updatedAt: new Date().toISOString(),
134
+ };
135
+ const storeRequest = {
136
+ collection,
137
+ data: [deleted],
138
+ };
139
+ if (paymentProof) {
140
+ storeRequest.payment_tx_hash = paymentProof.payment_tx_hash;
141
+ storeRequest.user_address = paymentProof.user_address;
142
+ storeRequest.broker_address = paymentProof.broker_address;
143
+ storeRequest.amount_utia = paymentProof.amount_utia;
144
+ }
145
+ const headers = { 'Content-Type': 'application/json' };
146
+ if (this.apiKey) {
147
+ headers['X-API-Key'] = this.apiKey;
148
+ }
149
+ await this.httpClient.post(`${this.serverUrl}/api/apps/${this.appId}/store`, storeRequest, headers);
150
+ return true;
151
+ }
152
+ async count(collection, where = {}) {
153
+ const records = await this.findMany(collection, where);
154
+ return records.length;
155
+ }
156
+ async getWriteQuote(collection, data) {
157
+ const dataString = JSON.stringify(data);
158
+ const sizeKb = Math.ceil(dataString.length / 1024);
159
+ try {
160
+ const headers = { 'Content-Type': 'application/json' };
161
+ if (this.apiKey) {
162
+ headers['X-API-Key'] = this.apiKey;
163
+ }
164
+ const response = await this.httpClient.post(`${this.serverUrl}/api/apps/pricing/quote`, {
165
+ app_id: this.appId,
166
+ operation_type: 'write',
167
+ size_kb: sizeKb,
168
+ monthly_volume_kb: sizeKb,
169
+ collection,
170
+ }, headers);
171
+ return response;
172
+ }
173
+ catch (error) {
174
+ console.error('Error getting write quote:', error);
175
+ throw error;
176
+ }
177
+ }
178
+ generateId() {
179
+ const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
180
+ let id = '';
181
+ for (let i = 0; i < 24; i++) {
182
+ id += chars[Math.floor(Math.random() * chars.length)];
183
+ }
184
+ return id;
185
+ }
186
+ now() {
187
+ return new Date().toISOString();
188
+ }
189
+ getConfig() {
190
+ return {
191
+ httpClient: this.httpClient,
192
+ serverUrl: this.serverUrl,
193
+ apiKey: this.apiKey,
194
+ appId: this.appId,
195
+ };
196
+ }
197
+ }
198
+ exports.PrismaLikeClient = PrismaLikeClient;
199
+ function createPrismaLikeClient(config) {
200
+ return new PrismaLikeClient(config);
201
+ }
202
+ //# sourceMappingURL=PrismaLikeClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrismaLikeClient.js","sourceRoot":"","sources":["../../src/query-sdk/PrismaLikeClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import { QueryRequest, QueryResponse, SelectionMap, Val } from '../index';
2
+ import { LogicalOperator } from './operators';
3
+ import { SelectionBuilder } from './SelectionBuilder';
4
+ import { ConditionBuilder } from './ConditionBuilder';
5
+ import { FieldMap, HttpClient } from "./index";
6
+ export interface ServerJoinConfig {
7
+ alias: string;
8
+ model: string;
9
+ many?: boolean;
10
+ resolve: {
11
+ find?: any;
12
+ select?: SelectionMap;
13
+ };
14
+ }
15
+ export interface JoinConfig {
16
+ parentCollection: string;
17
+ parentField: string;
18
+ childField: string;
19
+ alias: string;
20
+ }
21
+ export declare class QueryBuilder {
22
+ private findConditions?;
23
+ private selections?;
24
+ private fieldMap?;
25
+ private limitValue?;
26
+ private offsetValue?;
27
+ private sortBy?;
28
+ private sortDirection?;
29
+ private includeHistoryValue?;
30
+ private httpClient?;
31
+ private serverUrl?;
32
+ private collectionName;
33
+ private app;
34
+ private serverJoinConfigs;
35
+ private joinConfigs;
36
+ constructor(httpClient?: HttpClient, serverUrl?: string, app?: string);
37
+ static new(httpClient?: HttpClient, serverUrl?: string, app?: string): QueryBuilder;
38
+ withHttpClient(httpClient: HttpClient): QueryBuilder;
39
+ withServerUrl(serverUrl: string): QueryBuilder;
40
+ find(builderFn: (builder: ConditionBuilder) => LogicalOperator): QueryBuilder;
41
+ collection(s: string): QueryBuilder;
42
+ whereField(fieldName: string): WhereClause;
43
+ serverJoin(alias: string, model: string, resolve: {
44
+ find?: any;
45
+ select?: SelectionMap;
46
+ }): QueryBuilder;
47
+ joinWith(alias: string, model: string): JoinBuilder;
48
+ joinOne(alias: string, model: string): JoinBuilder;
49
+ joinMany(alias: string, model: string): JoinBuilder;
50
+ join(parentCollection: string, parentField: string, childField: string, alias: string): QueryBuilder;
51
+ select(builderFn: (builder: SelectionBuilder) => SelectionBuilder): QueryBuilder;
52
+ selectFields(fields: string[]): QueryBuilder;
53
+ selectAll(): QueryBuilder;
54
+ withFieldMap(fieldMap: FieldMap): QueryBuilder;
55
+ limit(limit: number): QueryBuilder;
56
+ offset(offset: number): QueryBuilder;
57
+ orderBy(fields: string): QueryBuilder;
58
+ includeHistory(include?: boolean): QueryBuilder;
59
+ execute<T extends Record<string, any>>(): Promise<QueryResponse<T>>;
60
+ executeUnique<T extends Record<string, any>>(): Promise<T | null>;
61
+ count(): Promise<number>;
62
+ sumBy(field: string): Promise<number>;
63
+ avgBy(field: string): Promise<number>;
64
+ maxBy<T = any>(field: string): Promise<T | null>;
65
+ minBy<T = any>(field: string): Promise<T | null>;
66
+ distinctBy<T = any>(field: string): Promise<T[]>;
67
+ countDistinct(field: string): Promise<number>;
68
+ groupBy(field: string): GroupByQueryBuilder;
69
+ executeWithPayment<T extends Record<string, any>>(quoteId: string, paymentProof: string, network?: string): Promise<QueryResponse<T>>;
70
+ getQueryRequest(): QueryRequest;
71
+ isValid(): boolean;
72
+ buildRawQuery(): QueryRequest;
73
+ clone(): QueryBuilder;
74
+ _addServerJoin(config: ServerJoinConfig): void;
75
+ private executeSimpleQuery;
76
+ private executeWithJoins;
77
+ private buildQueryValue;
78
+ }
79
+ export declare class WhereClause {
80
+ private queryBuilder;
81
+ private fieldName;
82
+ constructor(queryBuilder: QueryBuilder, fieldName: string);
83
+ equals(value: Val): QueryBuilder;
84
+ notEquals(value: Val): QueryBuilder;
85
+ greaterThan(value: Val): QueryBuilder;
86
+ greaterThanOrEqual(value: Val): QueryBuilder;
87
+ lessThan(value: Val): QueryBuilder;
88
+ lessThanOrEqual(value: Val): QueryBuilder;
89
+ contains(value: string): QueryBuilder;
90
+ startsWith(value: string): QueryBuilder;
91
+ endsWith(value: string): QueryBuilder;
92
+ in(values: Val[]): QueryBuilder;
93
+ notIn(values: Val[]): QueryBuilder;
94
+ exists(): QueryBuilder;
95
+ notExists(): QueryBuilder;
96
+ isNull(): QueryBuilder;
97
+ isNotNull(): QueryBuilder;
98
+ regExpMatches(pattern: string): QueryBuilder;
99
+ includesCaseInsensitive(value: string): QueryBuilder;
100
+ startsWithCaseInsensitive(value: string): QueryBuilder;
101
+ endsWithCaseInsensitive(value: string): QueryBuilder;
102
+ isLocalIp(): QueryBuilder;
103
+ isExternalIp(): QueryBuilder;
104
+ b64(value: string): QueryBuilder;
105
+ inDataset(dataset: string): QueryBuilder;
106
+ inCountry(countryCode: string): QueryBuilder;
107
+ cidr(cidr: string): QueryBuilder;
108
+ between(min: any, max: any): QueryBuilder;
109
+ isTrue(): QueryBuilder;
110
+ isFalse(): QueryBuilder;
111
+ }
112
+ export declare class JoinBuilder<TParent extends QueryBuilder | JoinBuilder<any> = QueryBuilder> {
113
+ private alias;
114
+ private model;
115
+ private findConditions;
116
+ private selections?;
117
+ private parentBuilder;
118
+ private many?;
119
+ private nestedJoins;
120
+ constructor(parentBuilder: TParent, alias: string, model: string, many?: boolean);
121
+ on(builderFn: (builder: ConditionBuilder) => LogicalOperator): this;
122
+ onField(fieldName: string): JoinWhereClause<TParent>;
123
+ selecting(builderFn: (builder: SelectionBuilder) => SelectionBuilder): this;
124
+ selectFields(fields: string[]): this;
125
+ selectAll(): this;
126
+ joinOne(alias: string, model: string): JoinBuilder<this>;
127
+ joinMany(alias: string, model: string): JoinBuilder<this>;
128
+ build(): TParent;
129
+ private buildFindWithNestedJoins;
130
+ _setFindConditions(conditions: any): void;
131
+ _addServerJoin(config: ServerJoinConfig): void;
132
+ }
133
+ export declare class JoinWhereClause<TParent extends QueryBuilder | JoinBuilder<any> = QueryBuilder> {
134
+ private joinBuilder;
135
+ private fieldName;
136
+ constructor(joinBuilder: JoinBuilder<TParent>, fieldName: string);
137
+ equals(value: Val): JoinBuilder<TParent>;
138
+ in(values: Val[]): JoinBuilder<TParent>;
139
+ greaterThan(value: Val): JoinBuilder<TParent>;
140
+ lessThan(value: Val): JoinBuilder<TParent>;
141
+ isNull(): JoinBuilder<TParent>;
142
+ isNotNull(): JoinBuilder<TParent>;
143
+ }
144
+ export declare class GroupByQueryBuilder {
145
+ private queryBuilder;
146
+ private groupByField;
147
+ constructor(queryBuilder: QueryBuilder, groupByField: string);
148
+ count(): Promise<Record<string, number>>;
149
+ sumBy(field: string): Promise<Record<string, number>>;
150
+ avgBy(field: string): Promise<Record<string, number>>;
151
+ maxBy<T = any>(field: string): Promise<Record<string, T>>;
152
+ minBy<T = any>(field: string): Promise<Record<string, T>>;
153
+ private getGroupKey;
154
+ }
155
+ //# sourceMappingURL=QueryBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../src/query-sdk/QueryBuilder.ts"],"names":[],"mappings":"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"}