@revisium/client 0.2.0 → 0.4.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.
package/README.md CHANGED
@@ -23,17 +23,18 @@ npm install @revisium/client
23
23
  import { RevisiumClient } from '@revisium/client';
24
24
 
25
25
  const client = new RevisiumClient({ baseUrl: 'http://localhost:8080' });
26
+ await client.login('admin', 'admin');
26
27
 
27
- // Set context resolves revisionId from branch
28
- await client.setContext({
29
- organizationId: 'admin',
30
- projectName: 'my-project',
31
- branchName: 'master', // default: 'master'
32
- revision: 'draft', // default: 'draft'
28
+ // Navigate to a revision scope
29
+ const scope = await client.revision({
30
+ org: 'admin',
31
+ project: 'my-project',
32
+ // branch: 'master', // default
33
+ // revision: 'draft', // default
33
34
  });
34
35
 
35
36
  // Create table with schema
36
- await client.createTable('posts', {
37
+ await scope.createTable('posts', {
37
38
  type: 'object',
38
39
  properties: {
39
40
  title: { type: 'string', default: '' },
@@ -44,32 +45,22 @@ await client.createTable('posts', {
44
45
  });
45
46
 
46
47
  // Create row
47
- await client.createRow('posts', 'post-1', {
48
+ await scope.createRow('posts', 'post-1', {
48
49
  title: 'Hello World',
49
50
  published: true,
50
51
  });
51
52
 
52
53
  // Read data
53
- const rows = await client.getRows('posts', { first: 100 });
54
- const row = await client.getRow('posts', 'post-1');
54
+ const rows = await scope.getRows('posts', { first: 100 });
55
+ const row = await scope.getRow('posts', 'post-1');
55
56
 
56
57
  // Commit changes
57
- await client.commit('Initial content');
58
-
59
- // Read committed data (head revision)
60
- await client.setContext({
61
- organizationId: 'admin',
62
- projectName: 'my-project',
63
- revision: 'head',
64
- });
65
- const tables = await client.getTables();
58
+ await scope.commit('Initial content');
66
59
  ```
67
60
 
68
61
  ## API
69
62
 
70
- ### Authentication (optional)
71
-
72
- Authentication is not required when the server runs in no-auth mode. If auth is enabled:
63
+ ### Authentication
73
64
 
74
65
  ```typescript
75
66
  await client.login('username', 'password');
@@ -77,165 +68,240 @@ await client.login('username', 'password');
77
68
  client.loginWithToken('jwt-token');
78
69
 
79
70
  client.isAuthenticated(); // boolean
71
+ const user = await client.me(); // { id, username, email, hasPassword }
72
+ ```
73
+
74
+ ### Scope Hierarchy
75
+
76
+ The client provides a hierarchical navigation model:
77
+
80
78
  ```
79
+ RevisiumClient
80
+ └── OrgScope — organization-level operations
81
+ └── ProjectScope — project-level operations
82
+ └── BranchScope — branch-level operations, holds head + draft revision IDs
83
+ └── RevisionScope — all data operations (tables, rows, migrations)
84
+ ```
85
+
86
+ Each level is created synchronously except `BranchScope` (fetches head + draft revision IDs) and `RevisionScope` via `branch.revision(id)` (validates the revision exists).
81
87
 
82
- ### Context
88
+ ### Shortcuts
89
+
90
+ For common cases, skip intermediate scopes with shortcuts on `RevisiumClient`:
83
91
 
84
92
  ```typescript
85
- await client.setContext({
86
- organizationId: 'admin',
87
- projectName: 'my-project',
88
- branchName: 'master', // default: 'master'
89
- revision: 'draft', // 'draft' | 'head' | '<revisionId>'
93
+ // Jump directly to a branch
94
+ const branch = await client.branch({
95
+ org: 'admin',
96
+ project: 'my-project',
97
+ branch: 'master', // default
90
98
  });
91
99
 
92
- client.organizationId; // current org
93
- client.projectName; // current project
94
- client.branchName; // current branch
95
- client.revisionId; // resolved revision ID
96
- client.isDraft; // true if revision === 'draft'
100
+ // Jump directly to a revision scope
101
+ const scope = await client.revision({
102
+ org: 'admin',
103
+ project: 'my-project',
104
+ branch: 'master', // default
105
+ revision: 'draft', // 'draft' | 'head' | '<revisionId>', default: 'draft'
106
+ });
97
107
  ```
98
108
 
99
- ### Read Operations (any revision)
109
+ ### Full Hierarchy Navigation
100
110
 
101
111
  ```typescript
102
- await client.getTables({ first: 100, after: 'cursor' });
103
- await client.getTable('posts');
104
- await client.getTableSchema('posts');
105
- await client.getRows('posts', { first: 100 });
106
- await client.getRow('posts', 'post-1');
107
- await client.getChanges();
112
+ const org = client.org('admin');
113
+ const project = org.project('my-project');
114
+ const branch = await project.branch('master');
115
+
116
+ const draft = branch.draft(); // RevisionScope for draft revision
117
+ const head = branch.head(); // RevisionScope for head revision
118
+ const rev = await branch.revision('some-revision-id'); // specific revision
108
119
  ```
109
120
 
110
- ### Write Operations (draft only)
121
+ ### OrgScope
122
+
123
+ ```typescript
124
+ const org = client.org('admin');
111
125
 
112
- Write methods throw if `revision` is not `'draft'`.
126
+ await org.getProjects({ first: 100, after: 'cursor' });
127
+ await org.createProject({ projectName: 'new-project', branchName: 'master' });
128
+ await org.getUsers();
129
+ await org.addUser(userId, 'developer');
130
+ await org.removeUser(userId);
131
+ ```
132
+
133
+ ### ProjectScope
134
+
135
+ ```typescript
136
+ const project = client.org('admin').project('my-project');
137
+
138
+ await project.get();
139
+ await project.update({ isPublic: true });
140
+ await project.delete();
141
+ await project.getBranches();
142
+ await project.getRootBranch();
143
+ await project.createBranch('feature', revisionId);
144
+ await project.getUsers();
145
+ await project.addUser(userId, 'editor');
146
+ await project.removeUser(userId);
147
+ await project.getEndpoints();
148
+ await project.createEndpoint({ type: 'GRAPHQL' });
149
+ await project.deleteEndpoint(endpointId);
150
+ await project.getEndpointRelatives(endpointId);
151
+ ```
152
+
153
+ ### BranchScope
113
154
 
114
155
  ```typescript
156
+ const branch = await client.branch({ org: 'admin', project: 'my-project' });
157
+
158
+ branch.headRevisionId; // string
159
+ branch.draftRevisionId; // string
160
+
161
+ await branch.get();
162
+ await branch.delete();
163
+ await branch.getTouched();
164
+ await branch.getRevisions({ first: 100 });
165
+ await branch.getStartRevision();
166
+ ```
167
+
168
+ ### RevisionScope — Read Operations
169
+
170
+ ```typescript
171
+ const scope = await client.revision({ org: 'admin', project: 'my-project' });
172
+
115
173
  // Tables
116
- await client.createTable('posts', schema);
117
- await client.updateTable('posts', patches);
118
- await client.deleteTable('posts');
119
- await client.renameTable('posts', 'articles');
174
+ await scope.getTables({ first: 100, after: 'cursor' });
175
+ await scope.getTable('posts');
176
+ await scope.getTableSchema('posts');
177
+ await scope.getTableCountRows('posts');
178
+ await scope.getTableForeignKeysBy('posts');
179
+ await scope.getTableForeignKeysTo('posts');
120
180
 
121
181
  // Rows
122
- await client.createRow('posts', 'row-1', data);
123
- await client.createRows('posts', [{ rowId: 'r1', data }, { rowId: 'r2', data }]);
124
- await client.updateRow('posts', 'row-1', data);
125
- await client.updateRows('posts', [{ rowId: 'r1', data }]);
126
- await client.patchRow('posts', 'row-1', [{ op: 'replace', path: 'title', value: 'New' }]);
127
- await client.deleteRow('posts', 'row-1');
128
- await client.deleteRows('posts', ['row-1', 'row-2']);
129
- await client.renameRow('posts', 'row-1', 'post-1');
182
+ await scope.getRows('posts', { first: 100 });
183
+ await scope.getRow('posts', 'post-1');
184
+ await scope.getRowForeignKeysBy('posts', 'post-1', 'comments');
185
+ await scope.getRowForeignKeysTo('posts', 'post-1', 'authors');
186
+
187
+ // Changes
188
+ await scope.getChanges();
189
+ await scope.getTableChanges({ changeTypes: ['ADDED', 'MODIFIED'] });
190
+ await scope.getRowChanges({ tableId: 'posts' });
191
+
192
+ // Migrations
193
+ await scope.getMigrations();
130
194
  ```
131
195
 
132
- ### Version Control (draft only)
196
+ ### RevisionScope Endpoint Operations
197
+
198
+ Endpoint operations work on any revision (draft, head, or explicit).
133
199
 
134
200
  ```typescript
135
- const revision = await client.commit('my changes'); // auto-refreshes draftRevisionId
136
- await client.revertChanges(); // auto-refreshes draftRevisionId
201
+ await scope.getEndpoints();
202
+ await scope.getEndpointRelatives(endpointId);
203
+ await scope.createEndpoint({ type: 'GRAPHQL' });
204
+ await scope.deleteEndpoint(endpointId);
137
205
  ```
138
206
 
139
- ### Isolated Scopes (`withContext`)
207
+ ### RevisionScope Write Operations (draft only)
140
208
 
141
- Use `withContext()` to create isolated scopes that share authentication but have independent context. Useful for multi-context scenarios (e.g., handling parallel requests in a server).
209
+ Write methods throw if the scope is not a draft revision.
142
210
 
143
211
  ```typescript
144
- const client = new RevisiumClient({ baseUrl: 'http://localhost:8080' });
145
- await client.login('admin', 'admin');
212
+ const draft = branch.draft();
146
213
 
147
- // Create isolated scopes — each has its own revisionId
148
- const scopeA = await client.withContext({
149
- organizationId: 'admin',
150
- projectName: 'project-a',
151
- revision: 'draft',
152
- });
214
+ // Tables
215
+ await draft.createTable('posts', schema);
216
+ await draft.updateTable('posts', patches);
217
+ await draft.deleteTable('posts');
218
+ await draft.renameTable('posts', 'articles');
153
219
 
154
- const scopeB = await client.withContext({
155
- organizationId: 'admin',
156
- projectName: 'project-b',
157
- revision: 'draft',
158
- });
220
+ // Rows
221
+ await draft.createRow('posts', 'row-1', data);
222
+ await draft.createRows('posts', [{ rowId: 'r1', data }, { rowId: 'r2', data }]);
223
+ await draft.createRows('posts', rows, { isRestore: true });
224
+ await draft.updateRow('posts', 'row-1', data);
225
+ await draft.updateRows('posts', [{ rowId: 'r1', data }]);
226
+ await draft.patchRow('posts', 'row-1', [{ op: 'replace', path: 'title', value: 'New' }]);
227
+ await draft.patchRows('posts', { rows: [...] });
228
+ await draft.deleteRow('posts', 'row-1');
229
+ await draft.deleteRows('posts', ['row-1', 'row-2']);
230
+ await draft.renameRow('posts', 'row-1', 'post-1');
231
+
232
+ // Migrations
233
+ await draft.applyMigrations([{ changeType: 'init', tableId: 'posts', ... }]);
234
+ const results = await draft.applyMigrationsWithStatus(migrations);
235
+
236
+ // File upload
237
+ await draft.uploadFile('posts', 'post-1', 'avatar', file);
238
+ ```
159
239
 
160
- // Scopes work independently
161
- await scopeA.createRow('posts', 'row-1', { title: 'Hello' });
162
- await scopeB.getTables();
240
+ ### Version Control (draft only)
163
241
 
164
- // Commit in one scope marks sibling scopes (same branch) as stale
165
- const scopeC = await client.withContext({
166
- organizationId: 'admin',
167
- projectName: 'project-a',
168
- revision: 'draft',
169
- });
242
+ ```typescript
243
+ const revision = await draft.commit('my changes');
244
+ await draft.revertChanges();
245
+ ```
246
+
247
+ After `commit`, `revertChanges`, or `applyMigrations`, the scope automatically refreshes its `revisionId` and marks sibling scopes on the same branch as stale.
248
+
249
+ ### Stale Scopes
250
+
251
+ When one scope commits or reverts, all sibling scopes (created from the same `BranchScope`) on the same branch are marked stale.
252
+
253
+ ```typescript
254
+ const branch = await client.branch({ org: 'admin', project: 'my-project' });
255
+ const scopeA = branch.draft();
256
+ const scopeB = branch.draft();
170
257
 
171
258
  await scopeA.commit('changes');
172
- // scopeC.isStale === true — auto-refreshes on next data access
259
+ // scopeB.isStale === true — auto-refreshes revisionId on next data access
173
260
 
174
- // Dispose when done to clean up tracking
175
- scopeA.dispose();
261
+ scopeA.dispose(); // unregister from BranchScope tracking
176
262
  scopeB.dispose();
177
- scopeC.dispose();
178
263
  ```
179
264
 
180
- #### Scope Properties
265
+ - Stale scopes auto-refresh their `revisionId` on the next data method call
266
+ - Scopes with explicit `revisionId` (via `branch.revision(id)`) never go stale
267
+ - Concurrent reads on a stale scope share a single refresh call (promise dedup)
268
+
269
+ ### RevisionScope Properties
181
270
 
182
271
  ```typescript
183
272
  scope.organizationId; // string
184
273
  scope.projectName; // string
185
274
  scope.branchName; // string
186
- scope.revisionId; // string — current cached revisionId
275
+ scope.revisionId; // string
187
276
  scope.isDraft; // boolean
188
- scope.isStale; // boolean — true if sibling committed
277
+ scope.isStale; // boolean
189
278
  scope.isDisposed; // boolean
190
- scope.client; // underlying HTTP client (shared with parent)
191
- ```
192
-
193
- #### Scope Methods
194
-
195
- ```typescript
196
- // Same data methods as RevisiumClient
197
- await scope.getTables();
198
- await scope.createRow('posts', 'row-1', data);
199
- await scope.commit('message');
200
- // ... all other read/write/version-control methods
201
-
202
- // Scope-specific
203
- scope.markStale(); // manually mark as stale
204
- await scope.refresh(); // manually refresh revisionId
205
- scope.dispose(); // unregister from parent tracking
279
+ scope.client; // underlying HTTP client
206
280
  ```
207
281
 
208
- #### Stale Behavior
209
-
210
- - When one scope commits or reverts, all sibling scopes on the same branch are marked stale
211
- - Stale scopes auto-refresh their `revisionId` on the next data method call
212
- - Scopes with explicit `revisionId` (not `'draft'` or `'head'`) never go stale
213
- - Concurrent reads on a stale scope share a single refresh API call (promise dedup)
214
-
215
282
  ## Error Handling
216
283
 
217
- `RevisiumClient` methods throw on errors instead of returning `{ data, error }`:
284
+ Methods throw on errors instead of returning `{ data, error }`:
218
285
 
219
286
  ```typescript
220
- // Context not set
287
+ const branch = await client.branch({ org: 'admin', project: 'my-project' });
288
+
289
+ // Mutations in read-only revision
290
+ const head = branch.head();
221
291
  try {
222
- await client.getRows('posts');
292
+ await head.createRow('posts', 'row-1', { title: 'Hello' });
223
293
  } catch (err) {
224
- console.error(err.message); // "Context not set. Call setContext() first."
294
+ console.error(err.message);
295
+ // "Mutations are only allowed in draft revision."
225
296
  }
226
297
 
227
- // Mutations in read-only revision
228
- await client.setContext({
229
- organizationId: 'admin',
230
- projectName: 'my-project',
231
- revision: 'head', // or explicit revisionId
232
- });
233
-
298
+ // Disposed scope
299
+ const scope = branch.draft();
300
+ scope.dispose();
234
301
  try {
235
- await client.createRow('posts', 'row-1', { title: 'Hello' });
302
+ await scope.getTables();
236
303
  } catch (err) {
237
- console.error(err.message);
238
- // "Mutations are only allowed in draft revision. Use setContext({ revision: "draft" })."
304
+ console.error(err.message); // "Scope has been disposed."
239
305
  }
240
306
  ```
241
307
 
@@ -0,0 +1,37 @@
1
+ import type { Client } from './generated/client/index.js';
2
+ import type { BranchModel, RevisionsConnection, RevisionModel, TouchedModelDto } from './generated/types.gen.js';
3
+ import type { BranchContext } from './data-operations.js';
4
+ import { RevisionScope } from './revision-scope.js';
5
+ import type { ScopeOwner } from './scope-owner.js';
6
+ export declare class BranchScope implements ScopeOwner {
7
+ private readonly _client;
8
+ private readonly _branch;
9
+ private _headRevisionId;
10
+ private _draftRevisionId;
11
+ private readonly _scopes;
12
+ private constructor();
13
+ static create(client: Client, branch: BranchContext): Promise<BranchScope>;
14
+ get organizationId(): string;
15
+ get projectName(): string;
16
+ get branchName(): string;
17
+ get headRevisionId(): string;
18
+ get draftRevisionId(): string;
19
+ get client(): Client;
20
+ draft(): RevisionScope;
21
+ head(): RevisionScope;
22
+ revision(revisionId: string): Promise<RevisionScope>;
23
+ get(): Promise<BranchModel>;
24
+ delete(): Promise<void>;
25
+ getTouched(): Promise<TouchedModelDto>;
26
+ getRevisions(options?: {
27
+ first?: number;
28
+ after?: string;
29
+ before?: string;
30
+ inclusive?: boolean;
31
+ }): Promise<RevisionsConnection>;
32
+ getStartRevision(): Promise<RevisionModel>;
33
+ notifyBranchChanged(branchKey: string, excludeScope?: RevisionScope): void;
34
+ unregisterScope(scope: RevisionScope): void;
35
+ refreshRevisionIds(): Promise<void>;
36
+ }
37
+ //# sourceMappingURL=branch-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-scope.d.ts","sourceRoot":"","sources":["../src/branch-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,qBAAa,WAAY,YAAW,UAAU;IAM1C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,OAAO;WAUM,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,WAAW,CAAC;IAQvB,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,KAAK,IAAI,aAAa;IAatB,IAAI,IAAI,aAAa;IAaf,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBpD,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;IAI3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;IAItC,YAAY,CAAC,OAAO,CAAC,EAAE;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI1B,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAQhD,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,aAAa,GAAG,IAAI;IAY1E,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIrC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ1C"}
@@ -1,8 +1,13 @@
1
1
  import type { Client } from './generated/client/index.js';
2
- import type { CreateRowResponse, CreateRowsResponse, CreateTableResponse, GetTableRowsDto, PatchRow, PatchRowResponse, RenameRowResponse, RenameTableResponse, RevisionChangesResponse, RevisionModel, RowModel, RowsConnection, TableModel, TablesConnection, UpdateRowResponse, UpdateRowsResponse, UpdateTableResponse } from './generated/types.gen.js';
3
- export interface BranchContext {
2
+ import type { ApplyMigrationsResponse, BranchesConnection, BranchModel, CountModelDto, CreateEndpointDto, CreateProjectDto, CreateRowResponse, CreateRowsResponse, CreateTableResponse, EndpointModel, GetEndpointResultDto, GetTableRowsDto, InitMigrationDto, MigrationsResponse, PatchRow, PatchRowResponse, PatchRowsDto, PatchRowsResponse, ProjectModel, ProjectsConnection, RemoveMigrationDto, RenameMigrationDto, RenameRowResponse, RenameTableResponse, RevisionChangesResponse, RevisionModel, RevisionsConnection, RowChangesConnection, RowModel, RowsConnection, TableChangesConnection, TableModel, TablesConnection, TouchedModelDto, UpdateMigrationDto, UpdateProjectDto, UpdateRowResponse, UpdateRowsResponse, UpdateTableResponse, UploadFileResponse, UsersOrganizationConnection, UsersProjectConnection, MeModel } from './generated/types.gen.js';
3
+ export interface OrgContext {
4
+ readonly client: Client;
4
5
  readonly organizationId: string;
6
+ }
7
+ export interface ProjectContext extends OrgContext {
5
8
  readonly projectName: string;
9
+ }
10
+ export interface BranchContext extends ProjectContext {
6
11
  readonly branchName: string;
7
12
  }
8
13
  export interface ScopeContext {
@@ -17,36 +22,129 @@ export declare function unwrap<T>(result: {
17
22
  }): T;
18
23
  export declare function assertDraft(ctx: ScopeContext): void;
19
24
  export declare function assertContext(ctx: ScopeContext): void;
25
+ export declare function me(client: Client): Promise<MeModel>;
26
+ export declare function getProjects(ctx: OrgContext, options?: {
27
+ first?: number;
28
+ after?: string;
29
+ }): Promise<ProjectsConnection>;
30
+ export declare function createProject(ctx: OrgContext, body: CreateProjectDto): Promise<ProjectModel>;
31
+ export declare function getOrgUsers(ctx: OrgContext, options?: {
32
+ first?: number;
33
+ after?: string;
34
+ }): Promise<UsersOrganizationConnection>;
35
+ export declare function addOrgUser(ctx: OrgContext, userId: string, roleId: 'organizationOwner' | 'organizationAdmin' | 'developer' | 'editor' | 'reader'): Promise<void>;
36
+ export declare function removeOrgUser(ctx: OrgContext, userId: string): Promise<void>;
37
+ export declare function getProject(ctx: ProjectContext): Promise<ProjectModel>;
38
+ export declare function updateProject(ctx: ProjectContext, body: UpdateProjectDto): Promise<void>;
39
+ export declare function deleteProject(ctx: ProjectContext): Promise<void>;
40
+ export declare function getBranches(ctx: ProjectContext, options?: {
41
+ first?: number;
42
+ after?: string;
43
+ }): Promise<BranchesConnection>;
44
+ export declare function getRootBranch(ctx: ProjectContext): Promise<BranchModel>;
45
+ export declare function getProjectUsers(ctx: ProjectContext, options?: {
46
+ first?: number;
47
+ after?: string;
48
+ }): Promise<UsersProjectConnection>;
49
+ export declare function addProjectUser(ctx: ProjectContext, userId: string, roleId: 'developer' | 'editor' | 'reader'): Promise<void>;
50
+ export declare function removeProjectUser(ctx: ProjectContext, userId: string): Promise<void>;
51
+ export declare function getBranch(client: Client, branch: BranchContext): Promise<BranchModel>;
52
+ export declare function createBranch(client: Client, revisionId: string, branchName: string): Promise<BranchModel>;
53
+ export declare function deleteBranch(client: Client, branch: BranchContext): Promise<void>;
54
+ export declare function getBranchTouched(client: Client, branch: BranchContext): Promise<TouchedModelDto>;
55
+ export declare function getRevisions(client: Client, branch: BranchContext, options?: {
56
+ first?: number;
57
+ after?: string;
58
+ before?: string;
59
+ inclusive?: boolean;
60
+ }): Promise<RevisionsConnection>;
61
+ export declare function getRevision(client: Client, revisionId: string): Promise<RevisionModel>;
62
+ export declare function getParentRevision(client: Client, revisionId: string): Promise<RevisionModel>;
63
+ export declare function getChildRevision(client: Client, revisionId: string): Promise<RevisionModel>;
64
+ export declare function getStartRevision(client: Client, branch: BranchContext): Promise<RevisionModel>;
65
+ export declare function fetchDraftRevisionId(client: Client, branch: BranchContext): Promise<string>;
66
+ export declare function fetchHeadRevisionId(client: Client, branch: BranchContext): Promise<string>;
67
+ export declare function validateRevisionId(client: Client, revisionId: string): Promise<void>;
68
+ export declare function getMigrations(ctx: ScopeContext): Promise<MigrationsResponse>;
69
+ export declare function applyMigrations(ctx: ScopeContext, migrations: Array<InitMigrationDto | UpdateMigrationDto | RenameMigrationDto | RemoveMigrationDto>): Promise<void>;
70
+ export declare function applyMigrationsWithStatus(ctx: ScopeContext, migrations: Array<InitMigrationDto | UpdateMigrationDto | RenameMigrationDto | RemoveMigrationDto>): Promise<ApplyMigrationsResponse>;
20
71
  export declare function getTables(ctx: ScopeContext, options?: {
21
72
  first?: number;
22
73
  after?: string;
23
74
  }): Promise<TablesConnection>;
24
75
  export declare function getTable(ctx: ScopeContext, tableId: string): Promise<TableModel>;
25
76
  export declare function getTableSchema(ctx: ScopeContext, tableId: string): Promise<object>;
26
- export declare function getRows(ctx: ScopeContext, tableId: string, options?: GetTableRowsDto): Promise<RowsConnection>;
27
- export declare function getRow(ctx: ScopeContext, tableId: string, rowId: string): Promise<RowModel>;
28
- export declare function getChanges(ctx: ScopeContext): Promise<RevisionChangesResponse>;
77
+ export declare function getTableCountRows(ctx: ScopeContext, tableId: string): Promise<CountModelDto>;
78
+ export declare function getTableForeignKeysBy(ctx: ScopeContext, tableId: string, options?: {
79
+ first?: number;
80
+ after?: string;
81
+ }): Promise<TablesConnection>;
82
+ export declare function getTableForeignKeysTo(ctx: ScopeContext, tableId: string, options?: {
83
+ first?: number;
84
+ after?: string;
85
+ }): Promise<TablesConnection>;
86
+ export declare function getTableCountForeignKeysBy(ctx: ScopeContext, tableId: string): Promise<CountModelDto>;
87
+ export declare function getTableCountForeignKeysTo(ctx: ScopeContext, tableId: string): Promise<CountModelDto>;
29
88
  export declare function createTable(ctx: ScopeContext, tableId: string, schema: object): Promise<CreateTableResponse>;
30
89
  export declare function updateTable(ctx: ScopeContext, tableId: string, patches: object[]): Promise<UpdateTableResponse>;
31
90
  export declare function deleteTable(ctx: ScopeContext, tableId: string): Promise<void>;
32
91
  export declare function renameTable(ctx: ScopeContext, tableId: string, nextTableId: string): Promise<RenameTableResponse>;
92
+ export declare function getRows(ctx: ScopeContext, tableId: string, options?: GetTableRowsDto): Promise<RowsConnection>;
93
+ export declare function getRow(ctx: ScopeContext, tableId: string, rowId: string): Promise<RowModel>;
94
+ export declare function getRowForeignKeysBy(ctx: ScopeContext, tableId: string, rowId: string, foreignKeyByTableId: string, options?: {
95
+ first?: number;
96
+ after?: string;
97
+ }): Promise<RowsConnection>;
98
+ export declare function getRowForeignKeysTo(ctx: ScopeContext, tableId: string, rowId: string, foreignKeyToTableId: string, options?: {
99
+ first?: number;
100
+ after?: string;
101
+ }): Promise<RowsConnection>;
102
+ export declare function getRowCountForeignKeysBy(ctx: ScopeContext, tableId: string, rowId: string): Promise<CountModelDto>;
103
+ export declare function getRowCountForeignKeysTo(ctx: ScopeContext, tableId: string, rowId: string): Promise<CountModelDto>;
33
104
  export declare function createRow(ctx: ScopeContext, tableId: string, rowId: string, data: object): Promise<CreateRowResponse>;
34
105
  export declare function createRows(ctx: ScopeContext, tableId: string, rows: Array<{
35
106
  rowId: string;
36
107
  data: object;
37
- }>): Promise<CreateRowsResponse>;
108
+ }>, options?: {
109
+ isRestore?: boolean;
110
+ }): Promise<CreateRowsResponse>;
38
111
  export declare function updateRow(ctx: ScopeContext, tableId: string, rowId: string, data: object): Promise<UpdateRowResponse>;
39
112
  export declare function updateRows(ctx: ScopeContext, tableId: string, rows: Array<{
40
113
  rowId: string;
41
114
  data: object;
42
- }>): Promise<UpdateRowsResponse>;
115
+ }>, options?: {
116
+ isRestore?: boolean;
117
+ }): Promise<UpdateRowsResponse>;
43
118
  export declare function patchRow(ctx: ScopeContext, tableId: string, rowId: string, patches: PatchRow[]): Promise<PatchRowResponse>;
119
+ export declare function patchRows(ctx: ScopeContext, tableId: string, body: PatchRowsDto): Promise<PatchRowsResponse>;
44
120
  export declare function deleteRow(ctx: ScopeContext, tableId: string, rowId: string): Promise<void>;
45
121
  export declare function deleteRows(ctx: ScopeContext, tableId: string, rowIds: string[]): Promise<void>;
46
122
  export declare function renameRow(ctx: ScopeContext, tableId: string, rowId: string, nextRowId: string): Promise<RenameRowResponse>;
123
+ export declare function getChanges(ctx: ScopeContext): Promise<RevisionChangesResponse>;
124
+ export declare function getTableChanges(ctx: ScopeContext, options?: {
125
+ first?: number;
126
+ after?: string;
127
+ compareWithRevisionId?: string;
128
+ changeTypes?: Array<'ADDED' | 'MODIFIED' | 'REMOVED' | 'RENAMED' | 'RENAMED_AND_MODIFIED'>;
129
+ search?: string;
130
+ withSchemaMigrations?: boolean;
131
+ includeSystem?: boolean;
132
+ }): Promise<TableChangesConnection>;
133
+ export declare function getRowChanges(ctx: ScopeContext, options?: {
134
+ first?: number;
135
+ after?: string;
136
+ compareWithRevisionId?: string;
137
+ tableId?: string;
138
+ changeTypes?: Array<'ADDED' | 'MODIFIED' | 'REMOVED' | 'RENAMED' | 'RENAMED_AND_MODIFIED'>;
139
+ search?: string;
140
+ includeSystem?: boolean;
141
+ }): Promise<RowChangesConnection>;
47
142
  export declare function commit(ctx: ScopeContext, comment?: string): Promise<RevisionModel>;
48
143
  export declare function revertChanges(ctx: ScopeContext): Promise<void>;
49
- export declare function fetchDraftRevisionId(client: Client, branch: BranchContext): Promise<string>;
50
- export declare function fetchHeadRevisionId(client: Client, branch: BranchContext): Promise<string>;
51
- export declare function validateRevisionId(client: Client, revisionId: string): Promise<void>;
144
+ export declare function getEndpoints(ctx: ScopeContext): Promise<EndpointModel[]>;
145
+ export declare function createEndpoint(ctx: ScopeContext, body: CreateEndpointDto): Promise<EndpointModel>;
146
+ export declare function deleteEndpoint(client: Client, endpointId: string): Promise<void>;
147
+ export declare function getEndpointRelatives(client: Client, endpointId: string): Promise<GetEndpointResultDto>;
148
+ export declare function uploadFile(ctx: ScopeContext, tableId: string, rowId: string, fileId: string, file: Blob | File): Promise<UploadFileResponse>;
149
+ export type { MeModel } from './generated/types.gen.js';
52
150
  //# sourceMappingURL=data-operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-operations.d.ts","sourceRoot":"","sources":["../src/data-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,CAAC,CAQlE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAOnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAIrD;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,YAAY,EACjB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAED,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,OAAO,CAC3B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CAQzB;AAED,wBAAsB,MAAM,CAC1B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CAY9B;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAS9B;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3C,OAAO,CAAC,kBAAkB,CAAC,CAc7B;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3C,OAAO,CAAC,kBAAkB,CAAC,CAc7B;AAED,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,EAAE,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED,wBAAsB,MAAM,CAC1B,GAAG,EAAE,YAAY,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpE;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAMf"}
1
+ {"version":3,"file":"data-operations.d.ts","sourceRoot":"","sources":["../src/data-operations.ts"],"names":[],"mappings":"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"}