@cero-base/cero 0.5.2 → 0.7.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 +98 -6
- package/package.json +11 -4
- package/src/build/builtins.js +137 -0
- package/src/{builder.js → build/index.js} +40 -34
- package/src/build/schemas.js +162 -0
- package/src/extensions/handle-sync.js +32 -0
- package/src/extensions/index.js +2 -0
- package/src/extensions/profile-sync.js +30 -0
- package/src/handle/index.js +15 -51
- package/src/index.js +31 -10
- package/src/lib/constants.js +20 -0
- package/src/lib/internal.js +3 -0
- package/src/lib/operators.js +41 -2
- package/types/build/builtins.d.ts +88 -0
- package/types/build/schemas.d.ts +153 -0
- package/types/extensions/handle-sync.d.ts +22 -0
- package/types/extensions/index.d.ts +2 -0
- package/types/extensions/profile-sync.d.ts +21 -0
- package/types/handle/index.d.ts +1 -7
- package/types/index.d.ts +6 -1
- package/types/lib/constants.d.ts +14 -0
- package/types/lib/internal.d.ts +3 -0
- package/types/lib/operators.d.ts +13 -1
- package/src/CLAUDE.md +0 -3
- package/src/handle/CLAUDE.md +0 -3
- package/src/lib/CLAUDE.md +0 -3
- package/src/lib/builtins.js +0 -413
- package/types/lib/builtins.d.ts +0 -141
- /package/types/{builder.d.ts → build/index.d.ts} +0 -0
package/types/index.d.ts
CHANGED
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
* @returns {Promise<Handle>}
|
|
26
26
|
*/
|
|
27
27
|
export function cero(dir: string, spec: any, opts?: CeroOpts): Promise<Handle>;
|
|
28
|
+
export namespace cero {
|
|
29
|
+
export { internal as _internal };
|
|
30
|
+
export function use(...exts: any[]): number;
|
|
31
|
+
}
|
|
28
32
|
/**
|
|
29
33
|
* Restore a cero instance from a mnemonic phrase. Closes the running
|
|
30
34
|
* instance, wipes the on-disk `main/` tree and re-opens with `recovery: true`
|
|
@@ -94,9 +98,10 @@ export type CeroOpts = {
|
|
|
94
98
|
recoveryTimeout?: number;
|
|
95
99
|
};
|
|
96
100
|
import { Handle } from './handle/index.js';
|
|
101
|
+
import { internal } from './lib/internal.js';
|
|
97
102
|
import { Ref } from './handle/index.js';
|
|
98
103
|
import { Local } from './local/index.js';
|
|
99
104
|
import { Identity } from '@cero-base/core/identity';
|
|
100
105
|
export { Handle, Ref, Local };
|
|
101
|
-
export { put, set, get, del, count, watch, call, open } from "./lib/operators.js";
|
|
106
|
+
export { put, set, get, del, count, watch, call, open, before, after } from "./lib/operators.js";
|
|
102
107
|
export { t, schema } from "./lib/spec.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const NS: "cero";
|
|
2
|
+
export const COUNTERS: "counters";
|
|
3
|
+
export const TIMEOUT: 30000;
|
|
4
|
+
export const FLUSH: 500;
|
|
5
|
+
export namespace DB_TYPE {
|
|
6
|
+
let string: string;
|
|
7
|
+
let uint: string;
|
|
8
|
+
let int: string;
|
|
9
|
+
let bool: string;
|
|
10
|
+
let bytes: string;
|
|
11
|
+
let json: string;
|
|
12
|
+
let fixed32: string;
|
|
13
|
+
let fixed64: string;
|
|
14
|
+
}
|
package/types/lib/operators.d.ts
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
export function put(ref: Ref, row: Record<string, any>): Promise<SingleResult>;
|
|
2
|
-
export function set(ref: Ref, row: Record<string, any
|
|
2
|
+
export function set(ref: Ref, row: Record<string, any>, opts?: {
|
|
3
|
+
upsert?: boolean;
|
|
4
|
+
}): Promise<SingleResult>;
|
|
3
5
|
export function del(ref: Ref, id?: string): Promise<void>;
|
|
4
6
|
export function count(ref: Ref, q?: Record<string, any>): Promise<{
|
|
5
7
|
data: number;
|
|
6
8
|
}>;
|
|
7
9
|
export function call(ref: Ref, d?: Record<string, any>): Promise<any>;
|
|
10
|
+
export function before(ref: Ref, fn: (ctx: {
|
|
11
|
+
op: string;
|
|
12
|
+
name: string;
|
|
13
|
+
row: any;
|
|
14
|
+
}) => any): () => void;
|
|
15
|
+
export function after(ref: Ref, fn: (ctx: {
|
|
16
|
+
op: string;
|
|
17
|
+
name: string;
|
|
18
|
+
row: any;
|
|
19
|
+
}) => void): () => void;
|
|
8
20
|
export function get(ref: Ref, q?: string | Record<string, any>): Promise<SingleResult | ListResult | GetByIdResult>;
|
|
9
21
|
export function watch(ref: Ref, q?: Record<string, any>): any;
|
|
10
22
|
export function open(ref: Ref, arg?: string | {
|
package/src/CLAUDE.md
DELETED
package/src/handle/CLAUDE.md
DELETED
package/src/lib/CLAUDE.md
DELETED
package/src/lib/builtins.js
DELETED
|
@@ -1,413 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builtin type/collection/dispatch/rpc definitions used by the builder.
|
|
3
|
-
* Every cero schema includes these; user-defined refs are added on top.
|
|
4
|
-
*
|
|
5
|
-
* @typedef {{ name: string, type: string, verb?: string, kind?: string }} BuiltinRef
|
|
6
|
-
* @typedef {{ name: string, type: string, required: boolean }} FieldDesc
|
|
7
|
-
* @typedef {{ name: string, compact: boolean, fields: FieldDesc[] }} TypeDesc
|
|
8
|
-
* @typedef {{ name: string, schema: string, key: string[] }} CollectionDesc
|
|
9
|
-
* @typedef {{ name: string, requestType: string }} DispatchDesc
|
|
10
|
-
* @typedef {{
|
|
11
|
-
* name: string,
|
|
12
|
-
* request: { name: string },
|
|
13
|
-
* response: { name: string, stream?: boolean }
|
|
14
|
-
* }} CommandDesc
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Refs that exist on every main (Handle) schema.
|
|
19
|
-
*
|
|
20
|
-
* @type {BuiltinRef[]}
|
|
21
|
-
*/
|
|
22
|
-
export const BUILTINS = [
|
|
23
|
-
{ name: 'members', type: 'member', verb: 'member' },
|
|
24
|
-
{ name: 'devices', type: 'device', verb: 'device' },
|
|
25
|
-
{ name: 'invites', type: 'invite', verb: 'invite' },
|
|
26
|
-
{ name: 'handles', type: 'handle', verb: 'handle' }
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Refs that exist on every local schema.
|
|
31
|
-
*
|
|
32
|
-
* @type {BuiltinRef[]}
|
|
33
|
-
*/
|
|
34
|
-
export const LOCAL_BUILTINS = [
|
|
35
|
-
{ name: 'master', type: 'master', kind: 'single' },
|
|
36
|
-
{ name: 'keypair', type: 'keypair', kind: 'single' },
|
|
37
|
-
{ name: 'handle-keypairs', type: 'handle-keypair', kind: 'collection' }
|
|
38
|
-
]
|
|
39
|
-
|
|
40
|
-
const HYPERDB_TYPE = {
|
|
41
|
-
string: 'string',
|
|
42
|
-
uint: 'uint',
|
|
43
|
-
int: 'int',
|
|
44
|
-
bool: 'bool',
|
|
45
|
-
bytes: 'buffer',
|
|
46
|
-
json: 'json',
|
|
47
|
-
fixed32: 'fixed32',
|
|
48
|
-
fixed64: 'fixed64'
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Map a schema-DSL primitive name to its HyperDB type name.
|
|
53
|
-
*
|
|
54
|
-
* @param {string} prim
|
|
55
|
-
* @returns {string}
|
|
56
|
-
*/
|
|
57
|
-
export function hyperdbType(prim) {
|
|
58
|
-
return HYPERDB_TYPE[prim] || 'string'
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Type descriptors registered into every main schema.
|
|
63
|
-
*
|
|
64
|
-
* @returns {TypeDesc[]}
|
|
65
|
-
*/
|
|
66
|
-
export function builtinTypes() {
|
|
67
|
-
return [
|
|
68
|
-
{ name: 'del-by-id', compact: false, fields: [{ name: 'id', type: 'string', required: true }] },
|
|
69
|
-
{
|
|
70
|
-
name: 'writer',
|
|
71
|
-
compact: false,
|
|
72
|
-
fields: [
|
|
73
|
-
{ name: 'master', type: 'buffer', required: true },
|
|
74
|
-
{ name: 'writer', type: 'buffer', required: true },
|
|
75
|
-
{ name: 'sig', type: 'buffer', required: true },
|
|
76
|
-
{ name: 'name', type: 'string', required: false },
|
|
77
|
-
{ name: 'isMobile', type: 'bool', required: false },
|
|
78
|
-
{ name: 'isIndexer', type: 'bool', required: false }
|
|
79
|
-
]
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
name: 'counter',
|
|
83
|
-
compact: false,
|
|
84
|
-
fields: [
|
|
85
|
-
{ name: 'name', type: 'string', required: true },
|
|
86
|
-
{ name: 'value', type: 'uint', required: true }
|
|
87
|
-
]
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
name: 'member',
|
|
91
|
-
compact: false,
|
|
92
|
-
fields: [
|
|
93
|
-
{ name: 'id', type: 'string', required: true },
|
|
94
|
-
{ name: 'key', type: 'buffer', required: true },
|
|
95
|
-
{ name: 'role', type: 'string', required: true },
|
|
96
|
-
{ name: 'name', type: 'string', required: false },
|
|
97
|
-
{ name: 'createdAt', type: 'int', required: false },
|
|
98
|
-
{ name: 'updatedAt', type: 'int', required: false },
|
|
99
|
-
{ name: 'sig', type: 'buffer', required: false },
|
|
100
|
-
{ name: 'index', type: 'uint', required: false }
|
|
101
|
-
]
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
name: 'device',
|
|
105
|
-
compact: false,
|
|
106
|
-
fields: [
|
|
107
|
-
{ name: 'id', type: 'string', required: true },
|
|
108
|
-
{ name: 'memberId', type: 'string', required: false },
|
|
109
|
-
{ name: 'name', type: 'string', required: false },
|
|
110
|
-
{ name: 'isMobile', type: 'bool', required: false },
|
|
111
|
-
{ name: 'createdAt', type: 'int', required: false },
|
|
112
|
-
{ name: 'updatedAt', type: 'int', required: false },
|
|
113
|
-
{ name: 'index', type: 'uint', required: false }
|
|
114
|
-
]
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
name: 'invite',
|
|
118
|
-
compact: false,
|
|
119
|
-
fields: [
|
|
120
|
-
{ name: 'id', type: 'string', required: true },
|
|
121
|
-
{ name: 'invite', type: 'buffer', required: true },
|
|
122
|
-
{ name: 'publicKey', type: 'buffer', required: true },
|
|
123
|
-
{ name: 'data', type: 'buffer', required: false },
|
|
124
|
-
{ name: 'sig', type: 'buffer', required: false },
|
|
125
|
-
{ name: 'role', type: 'string', required: true },
|
|
126
|
-
{ name: 'expires', type: 'int', required: false },
|
|
127
|
-
{ name: 'createdAt', type: 'int', required: false },
|
|
128
|
-
{ name: 'index', type: 'uint', required: false }
|
|
129
|
-
]
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
name: 'handle',
|
|
133
|
-
compact: false,
|
|
134
|
-
fields: [
|
|
135
|
-
{ name: 'id', type: 'string', required: true },
|
|
136
|
-
{ name: 'type', type: 'string', required: true },
|
|
137
|
-
{ name: 'key', type: 'buffer', required: true },
|
|
138
|
-
{ name: 'encryptionKey', type: 'buffer', required: false },
|
|
139
|
-
{ name: 'name', type: 'string', required: false },
|
|
140
|
-
{ name: 'createdAt', type: 'int', required: false },
|
|
141
|
-
{ name: 'updatedAt', type: 'int', required: false },
|
|
142
|
-
{ name: 'index', type: 'uint', required: false }
|
|
143
|
-
]
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
name: 'claim',
|
|
147
|
-
compact: false,
|
|
148
|
-
fields: [
|
|
149
|
-
{ name: 'identity', type: 'buffer', required: true },
|
|
150
|
-
{ name: 'writer', type: 'buffer', required: true },
|
|
151
|
-
{ name: 'sig', type: 'buffer', required: true },
|
|
152
|
-
{ name: 'name', type: 'string', required: false },
|
|
153
|
-
{ name: 'isMobile', type: 'bool', required: false }
|
|
154
|
-
]
|
|
155
|
-
}
|
|
156
|
-
]
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/** Collection name for the internal counters table. */
|
|
160
|
-
export const COUNTERS = 'counters'
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Collection descriptors for every main schema, namespaced under `ns`.
|
|
164
|
-
*
|
|
165
|
-
* @param {string} ns
|
|
166
|
-
* @returns {CollectionDesc[]}
|
|
167
|
-
*/
|
|
168
|
-
export function builtinCollections(ns) {
|
|
169
|
-
const out = BUILTINS.map((b) => ({ name: b.name, schema: `@${ns}/${b.type}`, key: ['id'] }))
|
|
170
|
-
out.push({ name: COUNTERS, schema: `@${ns}/counter`, key: ['name'] })
|
|
171
|
-
return out
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Dispatch (mutation) descriptors for every main schema, namespaced under `ns`.
|
|
176
|
-
*
|
|
177
|
-
* @param {string} ns
|
|
178
|
-
* @returns {DispatchDesc[]}
|
|
179
|
-
*/
|
|
180
|
-
export function builtinDispatches(ns) {
|
|
181
|
-
const at = (n) => `@${ns}/${n}`
|
|
182
|
-
const out = [
|
|
183
|
-
{ name: 'add-writer', requestType: at('writer') },
|
|
184
|
-
{ name: 'del-writer', requestType: at('writer') },
|
|
185
|
-
{ name: 'claim-writer', requestType: at('claim') }
|
|
186
|
-
]
|
|
187
|
-
for (const b of BUILTINS) {
|
|
188
|
-
out.push({ name: `add-${b.verb}`, requestType: at(b.type) })
|
|
189
|
-
out.push({ name: `set-${b.verb}`, requestType: at(b.type) })
|
|
190
|
-
out.push({ name: `del-${b.verb}`, requestType: at('del-by-id') })
|
|
191
|
-
}
|
|
192
|
-
return out
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Type descriptors registered into every local schema.
|
|
197
|
-
*
|
|
198
|
-
* @returns {TypeDesc[]}
|
|
199
|
-
*/
|
|
200
|
-
export function localBuiltinTypes() {
|
|
201
|
-
return [
|
|
202
|
-
{ name: 'master', compact: false, fields: [{ name: 'seed', type: 'buffer', required: true }] },
|
|
203
|
-
{
|
|
204
|
-
name: 'keypair',
|
|
205
|
-
compact: false,
|
|
206
|
-
fields: [
|
|
207
|
-
{ name: 'publicKey', type: 'buffer', required: true },
|
|
208
|
-
{ name: 'secretKey', type: 'buffer', required: true }
|
|
209
|
-
]
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
name: 'handle-keypair',
|
|
213
|
-
compact: false,
|
|
214
|
-
fields: [
|
|
215
|
-
{ name: 'id', type: 'string', required: true },
|
|
216
|
-
{ name: 'publicKey', type: 'buffer', required: true },
|
|
217
|
-
{ name: 'secretKey', type: 'buffer', required: true },
|
|
218
|
-
{ name: 'encryptionKey', type: 'buffer', required: false }
|
|
219
|
-
]
|
|
220
|
-
}
|
|
221
|
-
]
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Collection descriptors for every local schema, namespaced under `ns`.
|
|
226
|
-
*
|
|
227
|
-
* @param {string} ns
|
|
228
|
-
* @returns {CollectionDesc[]}
|
|
229
|
-
*/
|
|
230
|
-
export function localBuiltinCollections(ns) {
|
|
231
|
-
return [
|
|
232
|
-
{ name: 'master', schema: `@${ns}/master`, key: [] },
|
|
233
|
-
{ name: 'keypair', schema: `@${ns}/keypair`, key: [] },
|
|
234
|
-
{ name: 'handle-keypairs', schema: `@${ns}/handle-keypair`, key: ['id'] }
|
|
235
|
-
]
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* Request/response type descriptors for the RPC facade.
|
|
240
|
-
*
|
|
241
|
-
* @returns {TypeDesc[]}
|
|
242
|
-
*/
|
|
243
|
-
export function rpcTypes() {
|
|
244
|
-
return [
|
|
245
|
-
{ name: 'req-empty', compact: false, fields: [{ name: 'ok', type: 'bool', required: false }] },
|
|
246
|
-
{
|
|
247
|
-
name: 'req-restore',
|
|
248
|
-
compact: false,
|
|
249
|
-
fields: [{ name: 'phrase', type: 'string', required: true }]
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
name: 'req-row',
|
|
253
|
-
compact: false,
|
|
254
|
-
fields: [
|
|
255
|
-
{ name: 'handle', type: 'string', required: true },
|
|
256
|
-
{ name: 'ref', type: 'string', required: true },
|
|
257
|
-
{ name: 'data', type: 'buffer', required: true },
|
|
258
|
-
{ name: 'local', type: 'bool', required: false }
|
|
259
|
-
]
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
name: 'req-id',
|
|
263
|
-
compact: false,
|
|
264
|
-
fields: [
|
|
265
|
-
{ name: 'handle', type: 'string', required: true },
|
|
266
|
-
{ name: 'ref', type: 'string', required: true },
|
|
267
|
-
{ name: 'id', type: 'string', required: true },
|
|
268
|
-
{ name: 'local', type: 'bool', required: false }
|
|
269
|
-
]
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
name: 'req-query',
|
|
273
|
-
compact: false,
|
|
274
|
-
fields: [
|
|
275
|
-
{ name: 'handle', type: 'string', required: true },
|
|
276
|
-
{ name: 'ref', type: 'string', required: true },
|
|
277
|
-
{ name: 'query', type: 'buffer', required: false },
|
|
278
|
-
{ name: 'local', type: 'bool', required: false }
|
|
279
|
-
]
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
name: 'req-call',
|
|
283
|
-
compact: false,
|
|
284
|
-
fields: [
|
|
285
|
-
{ name: 'handle', type: 'string', required: true },
|
|
286
|
-
{ name: 'op', type: 'string', required: true },
|
|
287
|
-
{ name: 'data', type: 'buffer', required: false }
|
|
288
|
-
]
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
name: 'req-invite',
|
|
292
|
-
compact: false,
|
|
293
|
-
fields: [
|
|
294
|
-
{ name: 'handle', type: 'string', required: true },
|
|
295
|
-
{ name: 'role', type: 'string', required: false }
|
|
296
|
-
]
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
name: 'req-revoke',
|
|
300
|
-
compact: false,
|
|
301
|
-
fields: [
|
|
302
|
-
{ name: 'handle', type: 'string', required: true },
|
|
303
|
-
{ name: 'invite', type: 'string', required: true }
|
|
304
|
-
]
|
|
305
|
-
},
|
|
306
|
-
{
|
|
307
|
-
name: 'req-join',
|
|
308
|
-
compact: false,
|
|
309
|
-
fields: [
|
|
310
|
-
{ name: 'parent', type: 'string', required: true },
|
|
311
|
-
{ name: 'ref', type: 'string', required: true },
|
|
312
|
-
{ name: 'invite', type: 'string', required: true }
|
|
313
|
-
]
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
name: 'req-open',
|
|
317
|
-
compact: false,
|
|
318
|
-
fields: [
|
|
319
|
-
{ name: 'parent', type: 'string', required: true },
|
|
320
|
-
{ name: 'row', type: 'string', required: true }
|
|
321
|
-
]
|
|
322
|
-
},
|
|
323
|
-
{
|
|
324
|
-
name: 'req-handle',
|
|
325
|
-
compact: false,
|
|
326
|
-
fields: [{ name: 'handle', type: 'string', required: true }]
|
|
327
|
-
},
|
|
328
|
-
{
|
|
329
|
-
name: 'res-data',
|
|
330
|
-
compact: false,
|
|
331
|
-
fields: [{ name: 'data', type: 'buffer', required: false }]
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
name: 'res-rows',
|
|
335
|
-
compact: false,
|
|
336
|
-
fields: [
|
|
337
|
-
{ name: 'data', type: 'buffer', required: true },
|
|
338
|
-
{ name: 'total', type: 'int', required: true },
|
|
339
|
-
{ name: 'size', type: 'int', required: true }
|
|
340
|
-
]
|
|
341
|
-
},
|
|
342
|
-
{ name: 'res-count', compact: false, fields: [{ name: 'count', type: 'int', required: true }] },
|
|
343
|
-
{
|
|
344
|
-
name: 'res-invite',
|
|
345
|
-
compact: false,
|
|
346
|
-
fields: [{ name: 'invite', type: 'string', required: true }]
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
name: 'res-handle',
|
|
350
|
-
compact: false,
|
|
351
|
-
fields: [
|
|
352
|
-
{ name: 'id', type: 'string', required: true },
|
|
353
|
-
{ name: 'type', type: 'string', required: true },
|
|
354
|
-
{ name: 'name', type: 'string', required: false }
|
|
355
|
-
]
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
name: 'res-identity',
|
|
359
|
-
compact: false,
|
|
360
|
-
fields: [
|
|
361
|
-
{ name: 'id', type: 'string', required: true },
|
|
362
|
-
{ name: 'deviceId', type: 'string', required: false },
|
|
363
|
-
{ name: 'phrase', type: 'string', required: false }
|
|
364
|
-
]
|
|
365
|
-
},
|
|
366
|
-
{ name: 'res-ok', compact: false, fields: [{ name: 'ok', type: 'bool', required: false }] }
|
|
367
|
-
]
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* RPC command (verb) descriptors for the cero server, namespaced under `ns`.
|
|
372
|
-
*
|
|
373
|
-
* @param {string} ns
|
|
374
|
-
* @returns {CommandDesc[]}
|
|
375
|
-
*/
|
|
376
|
-
export function rpcCommands(ns) {
|
|
377
|
-
const at = (n) => `@${ns}/${n}`
|
|
378
|
-
return [
|
|
379
|
-
{
|
|
380
|
-
name: 'init',
|
|
381
|
-
request: { name: at('req-empty') },
|
|
382
|
-
response: { name: at('res-identity') }
|
|
383
|
-
},
|
|
384
|
-
{
|
|
385
|
-
name: 'restore',
|
|
386
|
-
request: { name: at('req-restore') },
|
|
387
|
-
response: { name: at('res-identity') }
|
|
388
|
-
},
|
|
389
|
-
{ name: 'add-row', request: { name: at('req-row') }, response: { name: at('res-data') } },
|
|
390
|
-
{ name: 'add-handle', request: { name: at('req-row') }, response: { name: at('res-handle') } },
|
|
391
|
-
{ name: 'set', request: { name: at('req-row') }, response: { name: at('res-data') } },
|
|
392
|
-
{ name: 'get', request: { name: at('req-query') }, response: { name: at('res-rows') } },
|
|
393
|
-
{ name: 'get-one', request: { name: at('req-id') }, response: { name: at('res-data') } },
|
|
394
|
-
{ name: 'del', request: { name: at('req-id') }, response: { name: at('res-ok') } },
|
|
395
|
-
{ name: 'count', request: { name: at('req-query') }, response: { name: at('res-count') } },
|
|
396
|
-
{
|
|
397
|
-
name: 'watch',
|
|
398
|
-
request: { name: at('req-query') },
|
|
399
|
-
response: { name: at('res-rows'), stream: true }
|
|
400
|
-
},
|
|
401
|
-
{ name: 'call', request: { name: at('req-call') }, response: { name: at('res-data') } },
|
|
402
|
-
{ name: 'invite', request: { name: at('req-invite') }, response: { name: at('res-invite') } },
|
|
403
|
-
{ name: 'revoke', request: { name: at('req-revoke') }, response: { name: at('res-ok') } },
|
|
404
|
-
{ name: 'join', request: { name: at('req-join') }, response: { name: at('res-handle') } },
|
|
405
|
-
{
|
|
406
|
-
name: 'open-handle',
|
|
407
|
-
request: { name: at('req-open') },
|
|
408
|
-
response: { name: at('res-handle') }
|
|
409
|
-
},
|
|
410
|
-
{ name: 'close-handle', request: { name: at('req-handle') }, response: { name: at('res-ok') } },
|
|
411
|
-
{ name: 'leave', request: { name: at('req-handle') }, response: { name: at('res-ok') } }
|
|
412
|
-
]
|
|
413
|
-
}
|
package/types/lib/builtins.d.ts
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Map a schema-DSL primitive name to its HyperDB type name.
|
|
3
|
-
*
|
|
4
|
-
* @param {string} prim
|
|
5
|
-
* @returns {string}
|
|
6
|
-
*/
|
|
7
|
-
export function hyperdbType(prim: string): string;
|
|
8
|
-
/**
|
|
9
|
-
* Type descriptors registered into every main schema.
|
|
10
|
-
*
|
|
11
|
-
* @returns {TypeDesc[]}
|
|
12
|
-
*/
|
|
13
|
-
export function builtinTypes(): TypeDesc[];
|
|
14
|
-
/**
|
|
15
|
-
* Collection descriptors for every main schema, namespaced under `ns`.
|
|
16
|
-
*
|
|
17
|
-
* @param {string} ns
|
|
18
|
-
* @returns {CollectionDesc[]}
|
|
19
|
-
*/
|
|
20
|
-
export function builtinCollections(ns: string): CollectionDesc[];
|
|
21
|
-
/**
|
|
22
|
-
* Dispatch (mutation) descriptors for every main schema, namespaced under `ns`.
|
|
23
|
-
*
|
|
24
|
-
* @param {string} ns
|
|
25
|
-
* @returns {DispatchDesc[]}
|
|
26
|
-
*/
|
|
27
|
-
export function builtinDispatches(ns: string): DispatchDesc[];
|
|
28
|
-
/**
|
|
29
|
-
* Type descriptors registered into every local schema.
|
|
30
|
-
*
|
|
31
|
-
* @returns {TypeDesc[]}
|
|
32
|
-
*/
|
|
33
|
-
export function localBuiltinTypes(): TypeDesc[];
|
|
34
|
-
/**
|
|
35
|
-
* Collection descriptors for every local schema, namespaced under `ns`.
|
|
36
|
-
*
|
|
37
|
-
* @param {string} ns
|
|
38
|
-
* @returns {CollectionDesc[]}
|
|
39
|
-
*/
|
|
40
|
-
export function localBuiltinCollections(ns: string): CollectionDesc[];
|
|
41
|
-
/**
|
|
42
|
-
* Request/response type descriptors for the RPC facade.
|
|
43
|
-
*
|
|
44
|
-
* @returns {TypeDesc[]}
|
|
45
|
-
*/
|
|
46
|
-
export function rpcTypes(): TypeDesc[];
|
|
47
|
-
/**
|
|
48
|
-
* RPC command (verb) descriptors for the cero server, namespaced under `ns`.
|
|
49
|
-
*
|
|
50
|
-
* @param {string} ns
|
|
51
|
-
* @returns {CommandDesc[]}
|
|
52
|
-
*/
|
|
53
|
-
export function rpcCommands(ns: string): CommandDesc[];
|
|
54
|
-
/**
|
|
55
|
-
* Builtin type/collection/dispatch/rpc definitions used by the builder.
|
|
56
|
-
* Every cero schema includes these; user-defined refs are added on top.
|
|
57
|
-
*
|
|
58
|
-
* @typedef {{ name: string, type: string, verb?: string, kind?: string }} BuiltinRef
|
|
59
|
-
* @typedef {{ name: string, type: string, required: boolean }} FieldDesc
|
|
60
|
-
* @typedef {{ name: string, compact: boolean, fields: FieldDesc[] }} TypeDesc
|
|
61
|
-
* @typedef {{ name: string, schema: string, key: string[] }} CollectionDesc
|
|
62
|
-
* @typedef {{ name: string, requestType: string }} DispatchDesc
|
|
63
|
-
* @typedef {{
|
|
64
|
-
* name: string,
|
|
65
|
-
* request: { name: string },
|
|
66
|
-
* response: { name: string, stream?: boolean }
|
|
67
|
-
* }} CommandDesc
|
|
68
|
-
*/
|
|
69
|
-
/**
|
|
70
|
-
* Refs that exist on every main (Handle) schema.
|
|
71
|
-
*
|
|
72
|
-
* @type {BuiltinRef[]}
|
|
73
|
-
*/
|
|
74
|
-
export const BUILTINS: BuiltinRef[];
|
|
75
|
-
/**
|
|
76
|
-
* Refs that exist on every local schema.
|
|
77
|
-
*
|
|
78
|
-
* @type {BuiltinRef[]}
|
|
79
|
-
*/
|
|
80
|
-
export const LOCAL_BUILTINS: BuiltinRef[];
|
|
81
|
-
/** Collection name for the internal counters table. */
|
|
82
|
-
export const COUNTERS: "counters";
|
|
83
|
-
/**
|
|
84
|
-
* Builtin type/collection/dispatch/rpc definitions used by the builder.
|
|
85
|
-
* Every cero schema includes these; user-defined refs are added on top.
|
|
86
|
-
*/
|
|
87
|
-
export type BuiltinRef = {
|
|
88
|
-
name: string;
|
|
89
|
-
type: string;
|
|
90
|
-
verb?: string;
|
|
91
|
-
kind?: string;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Builtin type/collection/dispatch/rpc definitions used by the builder.
|
|
95
|
-
* Every cero schema includes these; user-defined refs are added on top.
|
|
96
|
-
*/
|
|
97
|
-
export type FieldDesc = {
|
|
98
|
-
name: string;
|
|
99
|
-
type: string;
|
|
100
|
-
required: boolean;
|
|
101
|
-
};
|
|
102
|
-
/**
|
|
103
|
-
* Builtin type/collection/dispatch/rpc definitions used by the builder.
|
|
104
|
-
* Every cero schema includes these; user-defined refs are added on top.
|
|
105
|
-
*/
|
|
106
|
-
export type TypeDesc = {
|
|
107
|
-
name: string;
|
|
108
|
-
compact: boolean;
|
|
109
|
-
fields: FieldDesc[];
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* Builtin type/collection/dispatch/rpc definitions used by the builder.
|
|
113
|
-
* Every cero schema includes these; user-defined refs are added on top.
|
|
114
|
-
*/
|
|
115
|
-
export type CollectionDesc = {
|
|
116
|
-
name: string;
|
|
117
|
-
schema: string;
|
|
118
|
-
key: string[];
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* Builtin type/collection/dispatch/rpc definitions used by the builder.
|
|
122
|
-
* Every cero schema includes these; user-defined refs are added on top.
|
|
123
|
-
*/
|
|
124
|
-
export type DispatchDesc = {
|
|
125
|
-
name: string;
|
|
126
|
-
requestType: string;
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* Builtin type/collection/dispatch/rpc definitions used by the builder.
|
|
130
|
-
* Every cero schema includes these; user-defined refs are added on top.
|
|
131
|
-
*/
|
|
132
|
-
export type CommandDesc = {
|
|
133
|
-
name: string;
|
|
134
|
-
request: {
|
|
135
|
-
name: string;
|
|
136
|
-
};
|
|
137
|
-
response: {
|
|
138
|
-
name: string;
|
|
139
|
-
stream?: boolean;
|
|
140
|
-
};
|
|
141
|
-
};
|
|
File without changes
|