@read-frog/api-contract 0.3.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/dist/index.d.ts +396 -238
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +166 -100
- package/dist/index.js.map +1 -1
- package/package.json +8 -7
- package/src/contracts/beta-access.ts +17 -0
- package/src/contracts/column.ts +62 -0
- package/src/contracts/custom-table.ts +82 -0
- package/src/contracts/row.ts +62 -0
- package/src/contracts/shared.ts +6 -0
- package/src/index.ts +21 -0
- package/src/public-errors.ts +104 -0
- package/src/schemas/beta-access.ts +16 -0
- package/src/schemas/column.ts +74 -0
- package/src/schemas/custom-table.ts +86 -0
- package/src/schemas/row.ts +73 -0
- package/src/schemas/view.ts +61 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/schemas/
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/public-errors.ts","../src/schemas/beta-access.ts","../src/schemas/column.ts","../src/schemas/custom-table.ts","../src/schemas/row.ts","../src/schemas/view.ts","../src/index.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,97 @@
|
|
|
1
1
|
import { oc } from "@orpc/contract";
|
|
2
|
-
import { COLUMN_MAX_WIDTH, COLUMN_MIN_WIDTH, columnConfigSchema } from "@read-frog/definitions";
|
|
2
|
+
import { BETA_FEATURE_KEYS, COLUMN_MAX_WIDTH, COLUMN_MIN_WIDTH, columnConfigSchema } from "@read-frog/definitions";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
|
|
4
|
+
//#region src/schemas/beta-access.ts
|
|
5
|
+
const BetaFeatureKeySchema = z.enum(BETA_FEATURE_KEYS);
|
|
6
|
+
const BetaAccessStatusInputSchema = z.object({ featureKey: BetaFeatureKeySchema }).strict();
|
|
7
|
+
const BetaAccessStatusOutputSchema = z.object({
|
|
8
|
+
featureKey: BetaFeatureKeySchema,
|
|
9
|
+
allowed: z.boolean()
|
|
10
|
+
});
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/contracts/beta-access.ts
|
|
13
|
+
const betaAccessContract = { status: oc.route({
|
|
14
|
+
method: "GET",
|
|
15
|
+
path: "/beta-access/status",
|
|
16
|
+
summary: "Get beta access status for a feature",
|
|
17
|
+
tags: ["Beta Access"]
|
|
18
|
+
}).input(BetaAccessStatusInputSchema).output(BetaAccessStatusOutputSchema) };
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/public-errors.ts
|
|
21
|
+
const CellValidationFailureReasonSchema = z.enum([
|
|
22
|
+
"unknown_column",
|
|
23
|
+
"type_mismatch",
|
|
24
|
+
"invalid_select_option",
|
|
25
|
+
"invalid_date_format"
|
|
26
|
+
]);
|
|
27
|
+
const CellValidationFailureDetailsSchema = z.object({
|
|
28
|
+
expectedFormat: z.string().optional(),
|
|
29
|
+
expectedType: z.string().optional(),
|
|
30
|
+
receivedType: z.string().optional(),
|
|
31
|
+
receivedValue: z.unknown().optional(),
|
|
32
|
+
validOptions: z.array(z.string()).optional()
|
|
33
|
+
}).strict();
|
|
34
|
+
const CellValidationFailedDataSchema = z.object({
|
|
35
|
+
columnId: z.string(),
|
|
36
|
+
details: CellValidationFailureDetailsSchema,
|
|
37
|
+
reason: CellValidationFailureReasonSchema
|
|
38
|
+
}).strict();
|
|
39
|
+
const PUBLIC_APP_ERROR_DEFS = {
|
|
40
|
+
NOTEBASE_BETA_RESTRICTED: {
|
|
41
|
+
message: "Notebase is currently in beta for selected accounts",
|
|
42
|
+
status: 403
|
|
43
|
+
},
|
|
44
|
+
TABLE_NOT_FOUND: {
|
|
45
|
+
message: "Table not found",
|
|
46
|
+
status: 404
|
|
47
|
+
},
|
|
48
|
+
COLUMN_NOT_FOUND: {
|
|
49
|
+
message: "Column not found",
|
|
50
|
+
status: 404
|
|
51
|
+
},
|
|
52
|
+
ROW_NOT_FOUND: {
|
|
53
|
+
message: "Row not found",
|
|
54
|
+
status: 404
|
|
55
|
+
},
|
|
56
|
+
VIEW_NOT_FOUND: {
|
|
57
|
+
message: "View not found",
|
|
58
|
+
status: 404
|
|
59
|
+
},
|
|
60
|
+
CELL_VALIDATION_FAILED: {
|
|
61
|
+
data: CellValidationFailedDataSchema,
|
|
62
|
+
message: "Cell validation failed",
|
|
63
|
+
status: 422
|
|
64
|
+
},
|
|
65
|
+
PRIMARY_COLUMN_DELETE_NOT_ALLOWED: {
|
|
66
|
+
message: "Cannot delete primary column",
|
|
67
|
+
status: 400
|
|
68
|
+
},
|
|
69
|
+
CONCURRENT_POSITION_CONFLICT: {
|
|
70
|
+
message: "Concurrent position conflict, please retry",
|
|
71
|
+
status: 409
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
function isPublicAppErrorCode(code) {
|
|
75
|
+
return code !== void 0 && code in PUBLIC_APP_ERROR_DEFS;
|
|
76
|
+
}
|
|
77
|
+
function getPublicErrorDefinition(code) {
|
|
78
|
+
return PUBLIC_APP_ERROR_DEFS[code];
|
|
79
|
+
}
|
|
80
|
+
function pickPublicErrorMap(...codes) {
|
|
81
|
+
return Object.fromEntries(codes.map((code) => {
|
|
82
|
+
const definition = PUBLIC_APP_ERROR_DEFS[code];
|
|
83
|
+
if ("data" in definition) return [code, {
|
|
84
|
+
data: definition.data,
|
|
85
|
+
message: definition.message,
|
|
86
|
+
status: definition.status
|
|
87
|
+
}];
|
|
88
|
+
return [code, {
|
|
89
|
+
message: definition.message,
|
|
90
|
+
status: definition.status
|
|
91
|
+
}];
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
//#endregion
|
|
5
95
|
//#region src/schemas/column.ts
|
|
6
96
|
const columnWidthSchema = z.number().int().min(COLUMN_MIN_WIDTH).max(COLUMN_MAX_WIDTH);
|
|
7
97
|
const tableColumnSchema = z.object({
|
|
@@ -42,36 +132,37 @@ const ColumnReorderInputSchema = z.object({
|
|
|
42
132
|
ids: z.array(z.uuid())
|
|
43
133
|
});
|
|
44
134
|
const ColumnReorderOutputSchema = z.object({ txid: z.number() });
|
|
45
|
-
|
|
135
|
+
//#endregion
|
|
136
|
+
//#region src/contracts/shared.ts
|
|
137
|
+
const notebaseProcedure = oc.errors(pickPublicErrorMap("NOTEBASE_BETA_RESTRICTED"));
|
|
46
138
|
//#endregion
|
|
47
139
|
//#region src/contracts/column.ts
|
|
48
140
|
const columnContract = {
|
|
49
|
-
create:
|
|
141
|
+
create: notebaseProcedure.errors(pickPublicErrorMap("TABLE_NOT_FOUND", "CONCURRENT_POSITION_CONFLICT")).route({
|
|
50
142
|
method: "POST",
|
|
51
143
|
path: "/columns",
|
|
52
144
|
summary: "Create column",
|
|
53
145
|
tags: ["Columns"]
|
|
54
146
|
}).input(ColumnCreateInputSchema).output(ColumnCreateOutputSchema),
|
|
55
|
-
update:
|
|
147
|
+
update: notebaseProcedure.errors(pickPublicErrorMap("COLUMN_NOT_FOUND")).route({
|
|
56
148
|
method: "PATCH",
|
|
57
149
|
path: "/columns/{columnId}",
|
|
58
150
|
summary: "Update column",
|
|
59
151
|
tags: ["Columns"]
|
|
60
152
|
}).input(ColumnUpdateInputSchema).output(ColumnUpdateOutputSchema),
|
|
61
|
-
delete:
|
|
153
|
+
delete: notebaseProcedure.errors(pickPublicErrorMap("COLUMN_NOT_FOUND", "PRIMARY_COLUMN_DELETE_NOT_ALLOWED", "CONCURRENT_POSITION_CONFLICT")).route({
|
|
62
154
|
method: "DELETE",
|
|
63
155
|
path: "/columns/{columnId}",
|
|
64
156
|
summary: "Delete column",
|
|
65
157
|
tags: ["Columns"]
|
|
66
158
|
}).input(ColumnDeleteInputSchema).output(ColumnDeleteOutputSchema),
|
|
67
|
-
reorder:
|
|
159
|
+
reorder: notebaseProcedure.errors(pickPublicErrorMap("TABLE_NOT_FOUND", "CONCURRENT_POSITION_CONFLICT")).route({
|
|
68
160
|
method: "POST",
|
|
69
161
|
path: "/columns/reorder",
|
|
70
162
|
summary: "Reorder columns in a table",
|
|
71
163
|
tags: ["Columns"]
|
|
72
164
|
}).input(ColumnReorderInputSchema).output(ColumnReorderOutputSchema)
|
|
73
165
|
};
|
|
74
|
-
|
|
75
166
|
//#endregion
|
|
76
167
|
//#region src/schemas/row.ts
|
|
77
168
|
const rowCellsSchema = z.record(z.string(), z.unknown());
|
|
@@ -113,7 +204,6 @@ const RowReorderInputSchema = z.object({
|
|
|
113
204
|
ids: z.array(z.uuid())
|
|
114
205
|
});
|
|
115
206
|
const RowReorderOutputSchema = z.object({ txid: z.number() });
|
|
116
|
-
|
|
117
207
|
//#endregion
|
|
118
208
|
//#region src/schemas/view.ts
|
|
119
209
|
const tableViewTypeSchema = z.enum([
|
|
@@ -164,7 +254,6 @@ const tableViewSchema = z.object({
|
|
|
164
254
|
createdAt: z.coerce.date(),
|
|
165
255
|
updatedAt: z.coerce.date()
|
|
166
256
|
});
|
|
167
|
-
|
|
168
257
|
//#endregion
|
|
169
258
|
//#region src/schemas/custom-table.ts
|
|
170
259
|
const CustomTableListInputSchema = z.object({});
|
|
@@ -202,100 +291,77 @@ const CustomTableGetSchemaOutputSchema = z.object({
|
|
|
202
291
|
updatedAt: z.coerce.date(),
|
|
203
292
|
columns: z.array(tableColumnSchema)
|
|
204
293
|
});
|
|
205
|
-
|
|
206
|
-
//#endregion
|
|
207
|
-
//#region src/contracts/custom-table.ts
|
|
208
|
-
const customTableContract = {
|
|
209
|
-
list: oc.route({
|
|
210
|
-
method: "GET",
|
|
211
|
-
path: "/custom-tables",
|
|
212
|
-
summary: "List custom tables",
|
|
213
|
-
tags: ["Custom Tables"]
|
|
214
|
-
}).input(CustomTableListInputSchema).output(CustomTableListOutputSchema),
|
|
215
|
-
get: oc.route({
|
|
216
|
-
method: "GET",
|
|
217
|
-
path: "/custom-tables/{id}",
|
|
218
|
-
summary: "Get custom table with columns, rows, and views",
|
|
219
|
-
tags: ["Custom Tables"]
|
|
220
|
-
}).input(CustomTableGetInputSchema).output(CustomTableGetOutputSchema),
|
|
221
|
-
getSchema: oc.route({
|
|
222
|
-
method: "GET",
|
|
223
|
-
path: "/custom-tables/{id}/schema",
|
|
224
|
-
summary: "Get custom table schema",
|
|
225
|
-
tags: ["Custom Tables"]
|
|
226
|
-
}).input(CustomTableGetSchemaInputSchema).output(CustomTableGetSchemaOutputSchema),
|
|
227
|
-
create: oc.route({
|
|
228
|
-
method: "POST",
|
|
229
|
-
path: "/custom-tables",
|
|
230
|
-
summary: "Create custom table",
|
|
231
|
-
tags: ["Custom Tables"]
|
|
232
|
-
}).input(CustomTableCreateInputSchema).output(CustomTableCreateOutputSchema),
|
|
233
|
-
update: oc.route({
|
|
234
|
-
method: "PUT",
|
|
235
|
-
path: "/custom-tables/{id}",
|
|
236
|
-
summary: "Update custom table",
|
|
237
|
-
tags: ["Custom Tables"]
|
|
238
|
-
}).input(CustomTableUpdateInputSchema).output(CustomTableUpdateOutputSchema),
|
|
239
|
-
delete: oc.route({
|
|
240
|
-
method: "DELETE",
|
|
241
|
-
path: "/custom-tables/{id}",
|
|
242
|
-
summary: "Delete custom table",
|
|
243
|
-
tags: ["Custom Tables"]
|
|
244
|
-
}).input(CustomTableDeleteInputSchema).output(CustomTableDeleteOutputSchema)
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
//#endregion
|
|
248
|
-
//#region src/schemas/notebase-beta.ts
|
|
249
|
-
const NotebaseBetaStatusInputSchema = z.object({}).strict();
|
|
250
|
-
const NotebaseBetaStatusOutputSchema = z.object({ allowed: z.boolean() });
|
|
251
|
-
|
|
252
|
-
//#endregion
|
|
253
|
-
//#region src/contracts/notebase-beta.ts
|
|
254
|
-
const notebaseBetaContract = { status: oc.route({
|
|
255
|
-
method: "GET",
|
|
256
|
-
path: "/notebase-beta/status",
|
|
257
|
-
summary: "Get Notebase beta access status",
|
|
258
|
-
tags: ["Notebase Beta"]
|
|
259
|
-
}).input(NotebaseBetaStatusInputSchema).output(NotebaseBetaStatusOutputSchema) };
|
|
260
|
-
|
|
261
|
-
//#endregion
|
|
262
|
-
//#region src/contracts/row.ts
|
|
263
|
-
const rowContract = {
|
|
264
|
-
create: oc.route({
|
|
265
|
-
method: "POST",
|
|
266
|
-
path: "/rows",
|
|
267
|
-
summary: "Create row",
|
|
268
|
-
tags: ["Rows"]
|
|
269
|
-
}).input(RowCreateInputSchema).output(RowCreateOutputSchema),
|
|
270
|
-
update: oc.route({
|
|
271
|
-
method: "PATCH",
|
|
272
|
-
path: "/rows/{rowId}",
|
|
273
|
-
summary: "Update row cells",
|
|
274
|
-
tags: ["Rows"]
|
|
275
|
-
}).input(RowUpdateInputSchema).output(RowUpdateOutputSchema),
|
|
276
|
-
delete: oc.route({
|
|
277
|
-
method: "DELETE",
|
|
278
|
-
path: "/rows/{rowId}",
|
|
279
|
-
summary: "Delete row",
|
|
280
|
-
tags: ["Rows"]
|
|
281
|
-
}).input(RowDeleteInputSchema).output(RowDeleteOutputSchema),
|
|
282
|
-
reorder: oc.route({
|
|
283
|
-
method: "POST",
|
|
284
|
-
path: "/rows/reorder",
|
|
285
|
-
summary: "Reorder rows in a table",
|
|
286
|
-
tags: ["Rows"]
|
|
287
|
-
}).input(RowReorderInputSchema).output(RowReorderOutputSchema)
|
|
288
|
-
};
|
|
289
|
-
|
|
290
294
|
//#endregion
|
|
291
295
|
//#region src/index.ts
|
|
292
296
|
const contract = {
|
|
293
|
-
|
|
297
|
+
betaAccess: betaAccessContract,
|
|
298
|
+
customTable: {
|
|
299
|
+
list: notebaseProcedure.route({
|
|
300
|
+
method: "GET",
|
|
301
|
+
path: "/custom-tables",
|
|
302
|
+
summary: "List custom tables",
|
|
303
|
+
tags: ["Custom Tables"]
|
|
304
|
+
}).input(CustomTableListInputSchema).output(CustomTableListOutputSchema),
|
|
305
|
+
get: notebaseProcedure.errors(pickPublicErrorMap("TABLE_NOT_FOUND")).route({
|
|
306
|
+
method: "GET",
|
|
307
|
+
path: "/custom-tables/{id}",
|
|
308
|
+
summary: "Get custom table with columns, rows, and views",
|
|
309
|
+
tags: ["Custom Tables"]
|
|
310
|
+
}).input(CustomTableGetInputSchema).output(CustomTableGetOutputSchema),
|
|
311
|
+
getSchema: notebaseProcedure.errors(pickPublicErrorMap("TABLE_NOT_FOUND")).route({
|
|
312
|
+
method: "GET",
|
|
313
|
+
path: "/custom-tables/{id}/schema",
|
|
314
|
+
summary: "Get custom table schema",
|
|
315
|
+
tags: ["Custom Tables"]
|
|
316
|
+
}).input(CustomTableGetSchemaInputSchema).output(CustomTableGetSchemaOutputSchema),
|
|
317
|
+
create: notebaseProcedure.route({
|
|
318
|
+
method: "POST",
|
|
319
|
+
path: "/custom-tables",
|
|
320
|
+
summary: "Create custom table",
|
|
321
|
+
tags: ["Custom Tables"]
|
|
322
|
+
}).input(CustomTableCreateInputSchema).output(CustomTableCreateOutputSchema),
|
|
323
|
+
update: notebaseProcedure.errors(pickPublicErrorMap("TABLE_NOT_FOUND")).route({
|
|
324
|
+
method: "PUT",
|
|
325
|
+
path: "/custom-tables/{id}",
|
|
326
|
+
summary: "Update custom table",
|
|
327
|
+
tags: ["Custom Tables"]
|
|
328
|
+
}).input(CustomTableUpdateInputSchema).output(CustomTableUpdateOutputSchema),
|
|
329
|
+
delete: notebaseProcedure.errors(pickPublicErrorMap("TABLE_NOT_FOUND")).route({
|
|
330
|
+
method: "DELETE",
|
|
331
|
+
path: "/custom-tables/{id}",
|
|
332
|
+
summary: "Delete custom table",
|
|
333
|
+
tags: ["Custom Tables"]
|
|
334
|
+
}).input(CustomTableDeleteInputSchema).output(CustomTableDeleteOutputSchema)
|
|
335
|
+
},
|
|
294
336
|
column: columnContract,
|
|
295
|
-
row:
|
|
296
|
-
|
|
337
|
+
row: {
|
|
338
|
+
create: notebaseProcedure.errors(pickPublicErrorMap("TABLE_NOT_FOUND", "CELL_VALIDATION_FAILED", "CONCURRENT_POSITION_CONFLICT")).route({
|
|
339
|
+
method: "POST",
|
|
340
|
+
path: "/rows",
|
|
341
|
+
summary: "Create row",
|
|
342
|
+
tags: ["Rows"]
|
|
343
|
+
}).input(RowCreateInputSchema).output(RowCreateOutputSchema),
|
|
344
|
+
update: notebaseProcedure.errors(pickPublicErrorMap("ROW_NOT_FOUND", "CELL_VALIDATION_FAILED")).route({
|
|
345
|
+
method: "PATCH",
|
|
346
|
+
path: "/rows/{rowId}",
|
|
347
|
+
summary: "Update row cells",
|
|
348
|
+
tags: ["Rows"]
|
|
349
|
+
}).input(RowUpdateInputSchema).output(RowUpdateOutputSchema),
|
|
350
|
+
delete: notebaseProcedure.errors(pickPublicErrorMap("ROW_NOT_FOUND", "CONCURRENT_POSITION_CONFLICT")).route({
|
|
351
|
+
method: "DELETE",
|
|
352
|
+
path: "/rows/{rowId}",
|
|
353
|
+
summary: "Delete row",
|
|
354
|
+
tags: ["Rows"]
|
|
355
|
+
}).input(RowDeleteInputSchema).output(RowDeleteOutputSchema),
|
|
356
|
+
reorder: notebaseProcedure.errors(pickPublicErrorMap("TABLE_NOT_FOUND", "CONCURRENT_POSITION_CONFLICT")).route({
|
|
357
|
+
method: "POST",
|
|
358
|
+
path: "/rows/reorder",
|
|
359
|
+
summary: "Reorder rows in a table",
|
|
360
|
+
tags: ["Rows"]
|
|
361
|
+
}).input(RowReorderInputSchema).output(RowReorderOutputSchema)
|
|
362
|
+
}
|
|
297
363
|
};
|
|
298
|
-
|
|
299
364
|
//#endregion
|
|
300
|
-
export { ColumnCreateInputSchema, ColumnCreateOutputSchema, ColumnDeleteInputSchema, ColumnDeleteOutputSchema, ColumnReorderInputSchema, ColumnReorderOutputSchema, ColumnUpdateInputSchema, ColumnUpdateOutputSchema, CustomTableCreateInputSchema, CustomTableCreateOutputSchema, CustomTableDeleteInputSchema, CustomTableDeleteOutputSchema, CustomTableGetInputSchema, CustomTableGetOutputSchema, CustomTableGetSchemaInputSchema, CustomTableGetSchemaOutputSchema, CustomTableListInputSchema, CustomTableListItemSchema, CustomTableListOutputSchema, CustomTableUpdateInputSchema, CustomTableUpdateOutputSchema,
|
|
365
|
+
export { BetaAccessStatusInputSchema, BetaAccessStatusOutputSchema, BetaFeatureKeySchema, CellValidationFailedDataSchema, CellValidationFailureDetailsSchema, CellValidationFailureReasonSchema, ColumnCreateInputSchema, ColumnCreateOutputSchema, ColumnDeleteInputSchema, ColumnDeleteOutputSchema, ColumnReorderInputSchema, ColumnReorderOutputSchema, ColumnUpdateInputSchema, ColumnUpdateOutputSchema, CustomTableCreateInputSchema, CustomTableCreateOutputSchema, CustomTableDeleteInputSchema, CustomTableDeleteOutputSchema, CustomTableGetInputSchema, CustomTableGetOutputSchema, CustomTableGetSchemaInputSchema, CustomTableGetSchemaOutputSchema, CustomTableListInputSchema, CustomTableListItemSchema, CustomTableListOutputSchema, CustomTableUpdateInputSchema, CustomTableUpdateOutputSchema, PUBLIC_APP_ERROR_DEFS, RowCreateInputSchema, RowCreateOutputSchema, RowDeleteInputSchema, RowDeleteOutputSchema, RowReorderInputSchema, RowReorderOutputSchema, RowUpdateInputSchema, RowUpdateOutputSchema, columnCreateDataSchema, columnUpdateDataSchema, columnWidthSchema, contract, customTableCreateDataSchema, customTableUpdateDataSchema, getPublicErrorDefinition, isPublicAppErrorCode, pickPublicErrorMap, rowCellsSchema, rowCreateDataSchema, rowUpdateDataSchema, tableColumnSchema, tableRowSchema, tableViewSchema, tableViewTypeSchema, viewConfigSchema, viewCreateDataSchema, viewFilterSchema, viewFiltersSchema, viewSortSchema, viewSortsSchema, viewUpdateDataSchema };
|
|
366
|
+
|
|
301
367
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/schemas/column.ts","../src/contracts/column.ts","../src/schemas/row.ts","../src/schemas/view.ts","../src/schemas/custom-table.ts","../src/contracts/custom-table.ts","../src/schemas/notebase-beta.ts","../src/contracts/notebase-beta.ts","../src/contracts/row.ts","../src/index.ts"],"sourcesContent":["import { COLUMN_MAX_WIDTH, COLUMN_MIN_WIDTH, columnConfigSchema } from '@read-frog/definitions'\nimport { z } from 'zod'\n\nexport const columnWidthSchema = z.number().int().min(COLUMN_MIN_WIDTH).max(COLUMN_MAX_WIDTH)\n\nexport const tableColumnSchema = z.object({\n id: z.string(),\n tableId: z.string(),\n name: z.string(),\n config: columnConfigSchema,\n position: z.number(),\n isPrimary: z.boolean(),\n width: z.number().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\nexport type TableColumn = z.infer<typeof tableColumnSchema>\n\nexport const columnCreateDataSchema = z.object({\n id: z.uuid().optional(),\n name: z.string().min(1),\n config: columnConfigSchema,\n}).strict()\nexport type ColumnCreateData = z.infer<typeof columnCreateDataSchema>\n\nexport const columnUpdateDataSchema = z.object({\n name: z.string().min(1).optional(),\n config: columnConfigSchema.optional(),\n width: columnWidthSchema.nullable().optional(),\n}).strict()\nexport type ColumnUpdateData = z.infer<typeof columnUpdateDataSchema>\n\nexport const ColumnCreateInputSchema = z.object({\n tableId: z.uuid(),\n data: columnCreateDataSchema,\n})\nexport type ColumnCreateInput = z.infer<typeof ColumnCreateInputSchema>\n\nexport const ColumnCreateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type ColumnCreateOutput = z.infer<typeof ColumnCreateOutputSchema>\n\nexport const ColumnUpdateInputSchema = z.object({\n columnId: z.uuid(),\n data: columnUpdateDataSchema,\n})\nexport type ColumnUpdateInput = z.infer<typeof ColumnUpdateInputSchema>\n\nexport const ColumnUpdateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type ColumnUpdateOutput = z.infer<typeof ColumnUpdateOutputSchema>\n\nexport const ColumnDeleteInputSchema = z.object({\n columnId: z.uuid(),\n})\nexport type ColumnDeleteInput = z.infer<typeof ColumnDeleteInputSchema>\n\nexport const ColumnDeleteOutputSchema = z.object({\n txid: z.number(),\n})\nexport type ColumnDeleteOutput = z.infer<typeof ColumnDeleteOutputSchema>\n\nexport const ColumnReorderInputSchema = z.object({\n tableId: z.uuid(),\n ids: z.array(z.uuid()),\n})\nexport type ColumnReorderInput = z.infer<typeof ColumnReorderInputSchema>\n\nexport const ColumnReorderOutputSchema = z.object({\n txid: z.number(),\n})\nexport type ColumnReorderOutput = z.infer<typeof ColumnReorderOutputSchema>\n","import { oc } from '@orpc/contract'\nimport {\n ColumnCreateInputSchema,\n ColumnCreateOutputSchema,\n ColumnDeleteInputSchema,\n ColumnDeleteOutputSchema,\n ColumnReorderInputSchema,\n ColumnReorderOutputSchema,\n ColumnUpdateInputSchema,\n ColumnUpdateOutputSchema,\n} from '@/schemas/column'\n\nexport const columnContract = {\n create: oc\n .route({\n method: 'POST',\n path: '/columns',\n summary: 'Create column',\n tags: ['Columns'],\n })\n .input(ColumnCreateInputSchema)\n .output(ColumnCreateOutputSchema),\n\n update: oc\n .route({\n method: 'PATCH',\n path: '/columns/{columnId}',\n summary: 'Update column',\n tags: ['Columns'],\n })\n .input(ColumnUpdateInputSchema)\n .output(ColumnUpdateOutputSchema),\n\n delete: oc\n .route({\n method: 'DELETE',\n path: '/columns/{columnId}',\n summary: 'Delete column',\n tags: ['Columns'],\n })\n .input(ColumnDeleteInputSchema)\n .output(ColumnDeleteOutputSchema),\n\n reorder: oc\n .route({\n method: 'POST',\n path: '/columns/reorder',\n summary: 'Reorder columns in a table',\n tags: ['Columns'],\n })\n .input(ColumnReorderInputSchema)\n .output(ColumnReorderOutputSchema),\n}\n","import { z } from 'zod'\n\nexport const rowCellsSchema = z.record(z.string(), z.unknown())\n\nexport const tableRowSchema = z.object({\n id: z.string(),\n tableId: z.string(),\n cells: rowCellsSchema,\n position: z.number(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\nexport type TableRow = z.infer<typeof tableRowSchema>\n\nexport const rowCreateDataSchema = z.object({\n id: z.uuid().optional(),\n cells: rowCellsSchema.optional(),\n}).strict()\nexport type RowCreateData = z.infer<typeof rowCreateDataSchema>\n\nexport const rowUpdateDataSchema = z.object({\n cells: rowCellsSchema.optional(),\n}).strict()\nexport type RowUpdateData = z.infer<typeof rowUpdateDataSchema>\n\nexport const RowCreateInputSchema = z.object({\n tableId: z.uuid(),\n data: rowCreateDataSchema,\n})\nexport type RowCreateInput = z.infer<typeof RowCreateInputSchema>\n\nexport const RowCreateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type RowCreateOutput = z.infer<typeof RowCreateOutputSchema>\n\nexport const RowUpdateInputSchema = z.object({\n rowId: z.uuid(),\n data: rowUpdateDataSchema,\n})\nexport type RowUpdateInput = z.infer<typeof RowUpdateInputSchema>\n\nexport const RowUpdateOutputSchema = z.object({\n id: z.uuid(),\n tableId: z.uuid(),\n cells: rowCellsSchema,\n position: z.number().int(),\n createdAt: z.date(),\n updatedAt: z.date(),\n txid: z.number(),\n})\nexport type RowUpdateOutput = z.infer<typeof RowUpdateOutputSchema>\n\nexport const RowDeleteInputSchema = z.object({\n rowId: z.uuid(),\n})\nexport type RowDeleteInput = z.infer<typeof RowDeleteInputSchema>\n\nexport const RowDeleteOutputSchema = z.object({\n txid: z.number(),\n})\nexport type RowDeleteOutput = z.infer<typeof RowDeleteOutputSchema>\n\nexport const RowReorderInputSchema = z.object({\n tableId: z.uuid(),\n ids: z.array(z.uuid()),\n})\nexport type RowReorderInput = z.infer<typeof RowReorderInputSchema>\n\nexport const RowReorderOutputSchema = z.object({\n txid: z.number(),\n})\nexport type RowReorderOutput = z.infer<typeof RowReorderOutputSchema>\n","import { z } from 'zod'\n\nexport const tableViewTypeSchema = z.enum(['table', 'kanban', 'gallery'])\nexport type TableViewType = z.infer<typeof tableViewTypeSchema>\n\nexport const viewConfigSchema = z.object({\n columnWidths: z.record(z.string(), z.number()).optional(),\n hiddenColumns: z.array(z.string()).optional(),\n groupByColumnId: z.string().optional(),\n}).catchall(z.unknown())\nexport type ViewConfig = z.infer<typeof viewConfigSchema>\n\nexport const viewFilterSchema = z.object({\n columnId: z.string(),\n operator: z.string(),\n value: z.unknown(),\n}).strict()\nexport type ViewFilter = z.infer<typeof viewFilterSchema>\n\nexport const viewFiltersSchema = z.array(viewFilterSchema)\n\nexport const viewSortSchema = z.object({\n columnId: z.string(),\n direction: z.enum(['asc', 'desc']),\n}).strict()\nexport type ViewSort = z.infer<typeof viewSortSchema>\n\nexport const viewSortsSchema = z.array(viewSortSchema)\n\nexport const viewCreateDataSchema = z.object({\n id: z.uuid().optional(),\n name: z.string().min(1),\n type: tableViewTypeSchema,\n config: viewConfigSchema.optional(),\n filters: viewFiltersSchema.optional(),\n sorts: viewSortsSchema.optional(),\n}).strict()\nexport type ViewCreateData = z.infer<typeof viewCreateDataSchema>\n\nexport const viewUpdateDataSchema = z.object({\n name: z.string().min(1).optional(),\n type: tableViewTypeSchema.optional(),\n config: viewConfigSchema.optional(),\n filters: viewFiltersSchema.optional(),\n sorts: viewSortsSchema.optional(),\n}).strict()\nexport type ViewUpdateData = z.infer<typeof viewUpdateDataSchema>\n\nexport const tableViewSchema = z.object({\n id: z.string(),\n tableId: z.string(),\n name: z.string(),\n type: tableViewTypeSchema,\n config: viewConfigSchema.nullable(),\n filters: z.array(z.unknown()).nullable(),\n sorts: z.array(z.unknown()).nullable(),\n position: z.number(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\nexport type TableView = z.infer<typeof tableViewSchema>\n","import { z } from 'zod'\nimport { tableColumnSchema } from './column'\nimport { tableRowSchema } from './row'\nimport { tableViewSchema } from './view'\n\nexport const CustomTableListInputSchema = z.object({})\nexport type CustomTableListInput = z.infer<typeof CustomTableListInputSchema>\n\nexport const CustomTableListItemSchema = z.object({\n id: z.string(),\n name: z.string(),\n})\nexport type CustomTableListItem = z.infer<typeof CustomTableListItemSchema>\n\nexport const CustomTableListOutputSchema = z.array(CustomTableListItemSchema)\nexport type CustomTableListOutput = z.infer<typeof CustomTableListOutputSchema>\n\nexport const customTableCreateDataSchema = z.object({\n id: z.uuid().optional(),\n name: z.string().min(1),\n}).strict()\nexport type CustomTableCreateData = z.infer<typeof customTableCreateDataSchema>\n\nexport const CustomTableCreateInputSchema = customTableCreateDataSchema\nexport type CustomTableCreateInput = z.infer<typeof CustomTableCreateInputSchema>\n\nexport const CustomTableCreateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type CustomTableCreateOutput = z.infer<typeof CustomTableCreateOutputSchema>\n\nexport const customTableUpdateDataSchema = z.object({\n name: z.string().min(1).optional(),\n}).strict()\nexport type CustomTableUpdateData = z.infer<typeof customTableUpdateDataSchema>\n\nexport const CustomTableUpdateInputSchema = customTableUpdateDataSchema.extend({\n id: z.uuid(),\n})\nexport type CustomTableUpdateInput = z.infer<typeof CustomTableUpdateInputSchema>\n\nexport const CustomTableUpdateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type CustomTableUpdateOutput = z.infer<typeof CustomTableUpdateOutputSchema>\n\nexport const CustomTableDeleteInputSchema = z.object({\n id: z.uuid(),\n})\nexport type CustomTableDeleteInput = z.infer<typeof CustomTableDeleteInputSchema>\n\nexport const CustomTableDeleteOutputSchema = z.object({\n txid: z.number(),\n})\nexport type CustomTableDeleteOutput = z.infer<typeof CustomTableDeleteOutputSchema>\n\n// Get endpoint schemas\nexport const CustomTableGetInputSchema = z.object({\n id: z.uuid(),\n})\nexport type CustomTableGetInput = z.infer<typeof CustomTableGetInputSchema>\n\nexport const CustomTableGetSchemaInputSchema = z.object({\n id: z.uuid(),\n})\nexport type CustomTableGetSchemaInput = z.infer<typeof CustomTableGetSchemaInputSchema>\n\nexport const CustomTableGetOutputSchema = z.object({\n id: z.string(),\n userId: z.string(),\n name: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n columns: z.array(tableColumnSchema),\n rows: z.array(tableRowSchema),\n views: z.array(tableViewSchema),\n})\nexport type CustomTableGetOutput = z.infer<typeof CustomTableGetOutputSchema>\n\nexport const CustomTableGetSchemaOutputSchema = z.object({\n id: z.string(),\n name: z.string(),\n updatedAt: z.coerce.date(),\n columns: z.array(tableColumnSchema),\n})\nexport type CustomTableGetSchemaOutput = z.infer<typeof CustomTableGetSchemaOutputSchema>\n","import { oc } from '@orpc/contract'\nimport {\n CustomTableCreateInputSchema,\n CustomTableCreateOutputSchema,\n CustomTableDeleteInputSchema,\n CustomTableDeleteOutputSchema,\n CustomTableGetInputSchema,\n CustomTableGetOutputSchema,\n CustomTableGetSchemaInputSchema,\n CustomTableGetSchemaOutputSchema,\n CustomTableListInputSchema,\n CustomTableListOutputSchema,\n CustomTableUpdateInputSchema,\n CustomTableUpdateOutputSchema,\n} from '@/schemas/custom-table'\n\nexport const customTableContract = {\n list: oc\n .route({\n method: 'GET',\n path: '/custom-tables',\n summary: 'List custom tables',\n tags: ['Custom Tables'],\n })\n .input(CustomTableListInputSchema)\n .output(CustomTableListOutputSchema),\n\n get: oc\n .route({\n method: 'GET',\n path: '/custom-tables/{id}',\n summary: 'Get custom table with columns, rows, and views',\n tags: ['Custom Tables'],\n })\n .input(CustomTableGetInputSchema)\n .output(CustomTableGetOutputSchema),\n\n getSchema: oc\n .route({\n method: 'GET',\n path: '/custom-tables/{id}/schema',\n summary: 'Get custom table schema',\n tags: ['Custom Tables'],\n })\n .input(CustomTableGetSchemaInputSchema)\n .output(CustomTableGetSchemaOutputSchema),\n\n create: oc\n .route({\n method: 'POST',\n path: '/custom-tables',\n summary: 'Create custom table',\n tags: ['Custom Tables'],\n })\n .input(CustomTableCreateInputSchema)\n .output(CustomTableCreateOutputSchema),\n\n update: oc\n .route({\n method: 'PUT',\n path: '/custom-tables/{id}',\n summary: 'Update custom table',\n tags: ['Custom Tables'],\n })\n .input(CustomTableUpdateInputSchema)\n .output(CustomTableUpdateOutputSchema),\n\n delete: oc\n .route({\n method: 'DELETE',\n path: '/custom-tables/{id}',\n summary: 'Delete custom table',\n tags: ['Custom Tables'],\n })\n .input(CustomTableDeleteInputSchema)\n .output(CustomTableDeleteOutputSchema),\n}\n","import { z } from 'zod'\n\nexport const NotebaseBetaStatusInputSchema = z.object({}).strict()\nexport type NotebaseBetaStatusInput = z.infer<typeof NotebaseBetaStatusInputSchema>\n\nexport const NotebaseBetaStatusOutputSchema = z.object({\n allowed: z.boolean(),\n})\nexport type NotebaseBetaStatusOutput = z.infer<typeof NotebaseBetaStatusOutputSchema>\n","import { oc } from '@orpc/contract'\nimport {\n NotebaseBetaStatusInputSchema,\n NotebaseBetaStatusOutputSchema,\n} from '@/schemas/notebase-beta'\n\nexport const notebaseBetaContract = {\n status: oc\n .route({\n method: 'GET',\n path: '/notebase-beta/status',\n summary: 'Get Notebase beta access status',\n tags: ['Notebase Beta'],\n })\n .input(NotebaseBetaStatusInputSchema)\n .output(NotebaseBetaStatusOutputSchema),\n}\n","import { oc } from '@orpc/contract'\nimport {\n RowCreateInputSchema,\n RowCreateOutputSchema,\n RowDeleteInputSchema,\n RowDeleteOutputSchema,\n RowReorderInputSchema,\n RowReorderOutputSchema,\n RowUpdateInputSchema,\n RowUpdateOutputSchema,\n} from '@/schemas/row'\n\nexport const rowContract = {\n create: oc\n .route({\n method: 'POST',\n path: '/rows',\n summary: 'Create row',\n tags: ['Rows'],\n })\n .input(RowCreateInputSchema)\n .output(RowCreateOutputSchema),\n\n update: oc\n .route({\n method: 'PATCH',\n path: '/rows/{rowId}',\n summary: 'Update row cells',\n tags: ['Rows'],\n })\n .input(RowUpdateInputSchema)\n .output(RowUpdateOutputSchema),\n\n delete: oc\n .route({\n method: 'DELETE',\n path: '/rows/{rowId}',\n summary: 'Delete row',\n tags: ['Rows'],\n })\n .input(RowDeleteInputSchema)\n .output(RowDeleteOutputSchema),\n\n reorder: oc\n .route({\n method: 'POST',\n path: '/rows/reorder',\n summary: 'Reorder rows in a table',\n tags: ['Rows'],\n })\n .input(RowReorderInputSchema)\n .output(RowReorderOutputSchema),\n}\n","import type { ContractRouterClient } from '@orpc/contract'\nimport { columnContract } from './contracts/column'\nimport { customTableContract } from './contracts/custom-table'\nimport { notebaseBetaContract } from './contracts/notebase-beta'\nimport { rowContract } from './contracts/row'\n\nexport const contract = {\n customTable: customTableContract,\n column: columnContract,\n row: rowContract,\n notebaseBeta: notebaseBetaContract,\n}\n\nexport type ORPCRouterClient = ContractRouterClient<typeof contract>\n\n// Re-export schemas for convenience\nexport * from './schemas/column'\nexport * from './schemas/custom-table'\nexport * from './schemas/notebase-beta'\nexport * from './schemas/row'\nexport * from './schemas/view'\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/schemas/beta-access.ts","../src/contracts/beta-access.ts","../src/public-errors.ts","../src/schemas/column.ts","../src/contracts/shared.ts","../src/contracts/column.ts","../src/schemas/row.ts","../src/schemas/view.ts","../src/schemas/custom-table.ts","../src/contracts/custom-table.ts","../src/contracts/row.ts","../src/index.ts"],"sourcesContent":["import { BETA_FEATURE_KEYS } from \"@read-frog/definitions\"\nimport { z } from \"zod\"\n\nexport const BetaFeatureKeySchema = z.enum(BETA_FEATURE_KEYS)\nexport type BetaFeatureKey = z.infer<typeof BetaFeatureKeySchema>\n\nexport const BetaAccessStatusInputSchema = z.object({\n featureKey: BetaFeatureKeySchema,\n}).strict()\nexport type BetaAccessStatusInput = z.infer<typeof BetaAccessStatusInputSchema>\n\nexport const BetaAccessStatusOutputSchema = z.object({\n featureKey: BetaFeatureKeySchema,\n allowed: z.boolean(),\n})\nexport type BetaAccessStatusOutput = z.infer<typeof BetaAccessStatusOutputSchema>\n","import { oc } from \"@orpc/contract\"\nimport {\n BetaAccessStatusInputSchema,\n BetaAccessStatusOutputSchema,\n} from \"@/schemas/beta-access\"\n\nexport const betaAccessContract = {\n status: oc\n .route({\n method: \"GET\",\n path: \"/beta-access/status\",\n summary: \"Get beta access status for a feature\",\n tags: [\"Beta Access\"],\n })\n .input(BetaAccessStatusInputSchema)\n .output(BetaAccessStatusOutputSchema),\n}\n","import type { ErrorMap } from \"@orpc/contract\"\nimport { z } from \"zod\"\n\ninterface PublicAppErrorDefinition {\n data?: z.ZodTypeAny\n message: string\n status: number\n}\n\nexport const CellValidationFailureReasonSchema = z.enum([\n \"unknown_column\",\n \"type_mismatch\",\n \"invalid_select_option\",\n \"invalid_date_format\",\n])\nexport type CellValidationFailureReason = z.infer<typeof CellValidationFailureReasonSchema>\n\nexport const CellValidationFailureDetailsSchema = z.object({\n expectedFormat: z.string().optional(),\n expectedType: z.string().optional(),\n receivedType: z.string().optional(),\n receivedValue: z.unknown().optional(),\n validOptions: z.array(z.string()).optional(),\n}).strict()\nexport type CellValidationFailureDetails = z.infer<typeof CellValidationFailureDetailsSchema>\n\nexport const CellValidationFailedDataSchema = z.object({\n columnId: z.string(),\n details: CellValidationFailureDetailsSchema,\n reason: CellValidationFailureReasonSchema,\n}).strict()\nexport type CellValidationFailedData = z.infer<typeof CellValidationFailedDataSchema>\n\nexport const PUBLIC_APP_ERROR_DEFS = {\n NOTEBASE_BETA_RESTRICTED: {\n message: \"Notebase is currently in beta for selected accounts\",\n status: 403,\n },\n TABLE_NOT_FOUND: {\n message: \"Table not found\",\n status: 404,\n },\n COLUMN_NOT_FOUND: {\n message: \"Column not found\",\n status: 404,\n },\n ROW_NOT_FOUND: {\n message: \"Row not found\",\n status: 404,\n },\n VIEW_NOT_FOUND: {\n message: \"View not found\",\n status: 404,\n },\n CELL_VALIDATION_FAILED: {\n data: CellValidationFailedDataSchema,\n message: \"Cell validation failed\",\n status: 422,\n },\n PRIMARY_COLUMN_DELETE_NOT_ALLOWED: {\n message: \"Cannot delete primary column\",\n status: 400,\n },\n CONCURRENT_POSITION_CONFLICT: {\n message: \"Concurrent position conflict, please retry\",\n status: 409,\n },\n} as const satisfies Record<string, PublicAppErrorDefinition>\n\nexport type PublicAppErrorCode = keyof typeof PUBLIC_APP_ERROR_DEFS\n\nexport type PublicAppErrorData<TCode extends PublicAppErrorCode>\n = (typeof PUBLIC_APP_ERROR_DEFS)[TCode] extends { data: infer TSchema extends z.ZodTypeAny }\n ? z.output<TSchema>\n : undefined\n\nexport function isPublicAppErrorCode(code: string | undefined): code is PublicAppErrorCode {\n return code !== undefined && code in PUBLIC_APP_ERROR_DEFS\n}\n\nexport function getPublicErrorDefinition<TCode extends PublicAppErrorCode>(code: TCode) {\n return PUBLIC_APP_ERROR_DEFS[code]\n}\n\nexport function pickPublicErrorMap<const TCodes extends readonly PublicAppErrorCode[]>(\n ...codes: TCodes\n) {\n return Object.fromEntries(codes.map((code) => {\n const definition = PUBLIC_APP_ERROR_DEFS[code]\n\n if (\"data\" in definition) {\n return [code, {\n data: definition.data,\n message: definition.message,\n status: definition.status,\n }]\n }\n\n return [code, {\n message: definition.message,\n status: definition.status,\n }]\n })) as Pick<ErrorMap, TCodes[number]>\n}\n","import { COLUMN_MAX_WIDTH, COLUMN_MIN_WIDTH, columnConfigSchema } from \"@read-frog/definitions\"\nimport { z } from \"zod\"\n\nexport const columnWidthSchema = z.number().int().min(COLUMN_MIN_WIDTH).max(COLUMN_MAX_WIDTH)\n\nexport const tableColumnSchema = z.object({\n id: z.string(),\n tableId: z.string(),\n name: z.string(),\n config: columnConfigSchema,\n position: z.number(),\n isPrimary: z.boolean(),\n width: z.number().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\nexport type TableColumn = z.infer<typeof tableColumnSchema>\n\nexport const columnCreateDataSchema = z.object({\n id: z.uuid().optional(),\n name: z.string().min(1),\n config: columnConfigSchema,\n}).strict()\nexport type ColumnCreateData = z.infer<typeof columnCreateDataSchema>\n\nexport const columnUpdateDataSchema = z.object({\n name: z.string().min(1).optional(),\n config: columnConfigSchema.optional(),\n width: columnWidthSchema.nullable().optional(),\n}).strict()\nexport type ColumnUpdateData = z.infer<typeof columnUpdateDataSchema>\n\nexport const ColumnCreateInputSchema = z.object({\n tableId: z.uuid(),\n data: columnCreateDataSchema,\n})\nexport type ColumnCreateInput = z.infer<typeof ColumnCreateInputSchema>\n\nexport const ColumnCreateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type ColumnCreateOutput = z.infer<typeof ColumnCreateOutputSchema>\n\nexport const ColumnUpdateInputSchema = z.object({\n columnId: z.uuid(),\n data: columnUpdateDataSchema,\n})\nexport type ColumnUpdateInput = z.infer<typeof ColumnUpdateInputSchema>\n\nexport const ColumnUpdateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type ColumnUpdateOutput = z.infer<typeof ColumnUpdateOutputSchema>\n\nexport const ColumnDeleteInputSchema = z.object({\n columnId: z.uuid(),\n})\nexport type ColumnDeleteInput = z.infer<typeof ColumnDeleteInputSchema>\n\nexport const ColumnDeleteOutputSchema = z.object({\n txid: z.number(),\n})\nexport type ColumnDeleteOutput = z.infer<typeof ColumnDeleteOutputSchema>\n\nexport const ColumnReorderInputSchema = z.object({\n tableId: z.uuid(),\n ids: z.array(z.uuid()),\n})\nexport type ColumnReorderInput = z.infer<typeof ColumnReorderInputSchema>\n\nexport const ColumnReorderOutputSchema = z.object({\n txid: z.number(),\n})\nexport type ColumnReorderOutput = z.infer<typeof ColumnReorderOutputSchema>\n","import { oc } from \"@orpc/contract\"\nimport { pickPublicErrorMap } from \"@/public-errors\"\n\nexport const notebaseProcedure = oc.errors(\n pickPublicErrorMap(\"NOTEBASE_BETA_RESTRICTED\"),\n)\n","import { pickPublicErrorMap } from \"@/public-errors\"\nimport {\n ColumnCreateInputSchema,\n ColumnCreateOutputSchema,\n ColumnDeleteInputSchema,\n ColumnDeleteOutputSchema,\n ColumnReorderInputSchema,\n ColumnReorderOutputSchema,\n ColumnUpdateInputSchema,\n ColumnUpdateOutputSchema,\n} from \"@/schemas/column\"\nimport { notebaseProcedure } from \"./shared\"\n\nexport const columnContract = {\n create: notebaseProcedure\n .errors(pickPublicErrorMap(\"TABLE_NOT_FOUND\", \"CONCURRENT_POSITION_CONFLICT\"))\n .route({\n method: \"POST\",\n path: \"/columns\",\n summary: \"Create column\",\n tags: [\"Columns\"],\n })\n .input(ColumnCreateInputSchema)\n .output(ColumnCreateOutputSchema),\n\n update: notebaseProcedure\n .errors(pickPublicErrorMap(\"COLUMN_NOT_FOUND\"))\n .route({\n method: \"PATCH\",\n path: \"/columns/{columnId}\",\n summary: \"Update column\",\n tags: [\"Columns\"],\n })\n .input(ColumnUpdateInputSchema)\n .output(ColumnUpdateOutputSchema),\n\n delete: notebaseProcedure\n .errors(pickPublicErrorMap(\n \"COLUMN_NOT_FOUND\",\n \"PRIMARY_COLUMN_DELETE_NOT_ALLOWED\",\n \"CONCURRENT_POSITION_CONFLICT\",\n ))\n .route({\n method: \"DELETE\",\n path: \"/columns/{columnId}\",\n summary: \"Delete column\",\n tags: [\"Columns\"],\n })\n .input(ColumnDeleteInputSchema)\n .output(ColumnDeleteOutputSchema),\n\n reorder: notebaseProcedure\n .errors(pickPublicErrorMap(\"TABLE_NOT_FOUND\", \"CONCURRENT_POSITION_CONFLICT\"))\n .route({\n method: \"POST\",\n path: \"/columns/reorder\",\n summary: \"Reorder columns in a table\",\n tags: [\"Columns\"],\n })\n .input(ColumnReorderInputSchema)\n .output(ColumnReorderOutputSchema),\n}\n","import { z } from \"zod\"\n\nexport const rowCellsSchema = z.record(z.string(), z.unknown())\n\nexport const tableRowSchema = z.object({\n id: z.string(),\n tableId: z.string(),\n cells: rowCellsSchema,\n position: z.number(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\nexport type TableRow = z.infer<typeof tableRowSchema>\n\nexport const rowCreateDataSchema = z.object({\n id: z.uuid().optional(),\n cells: rowCellsSchema.optional(),\n}).strict()\nexport type RowCreateData = z.infer<typeof rowCreateDataSchema>\n\nexport const rowUpdateDataSchema = z.object({\n cells: rowCellsSchema.optional(),\n}).strict()\nexport type RowUpdateData = z.infer<typeof rowUpdateDataSchema>\n\nexport const RowCreateInputSchema = z.object({\n tableId: z.uuid(),\n data: rowCreateDataSchema,\n})\nexport type RowCreateInput = z.infer<typeof RowCreateInputSchema>\n\nexport const RowCreateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type RowCreateOutput = z.infer<typeof RowCreateOutputSchema>\n\nexport const RowUpdateInputSchema = z.object({\n rowId: z.uuid(),\n data: rowUpdateDataSchema,\n})\nexport type RowUpdateInput = z.infer<typeof RowUpdateInputSchema>\n\nexport const RowUpdateOutputSchema = z.object({\n id: z.uuid(),\n tableId: z.uuid(),\n cells: rowCellsSchema,\n position: z.number().int(),\n createdAt: z.date(),\n updatedAt: z.date(),\n txid: z.number(),\n})\nexport type RowUpdateOutput = z.infer<typeof RowUpdateOutputSchema>\n\nexport const RowDeleteInputSchema = z.object({\n rowId: z.uuid(),\n})\nexport type RowDeleteInput = z.infer<typeof RowDeleteInputSchema>\n\nexport const RowDeleteOutputSchema = z.object({\n txid: z.number(),\n})\nexport type RowDeleteOutput = z.infer<typeof RowDeleteOutputSchema>\n\nexport const RowReorderInputSchema = z.object({\n tableId: z.uuid(),\n ids: z.array(z.uuid()),\n})\nexport type RowReorderInput = z.infer<typeof RowReorderInputSchema>\n\nexport const RowReorderOutputSchema = z.object({\n txid: z.number(),\n})\nexport type RowReorderOutput = z.infer<typeof RowReorderOutputSchema>\n","import { z } from \"zod\"\n\nexport const tableViewTypeSchema = z.enum([\"table\", \"kanban\", \"gallery\"])\nexport type TableViewType = z.infer<typeof tableViewTypeSchema>\n\nexport const viewConfigSchema = z.object({\n columnWidths: z.record(z.string(), z.number()).optional(),\n hiddenColumns: z.array(z.string()).optional(),\n groupByColumnId: z.string().optional(),\n}).catchall(z.unknown())\nexport type ViewConfig = z.infer<typeof viewConfigSchema>\n\nexport const viewFilterSchema = z.object({\n columnId: z.string(),\n operator: z.string(),\n value: z.unknown(),\n}).strict()\nexport type ViewFilter = z.infer<typeof viewFilterSchema>\n\nexport const viewFiltersSchema = z.array(viewFilterSchema)\n\nexport const viewSortSchema = z.object({\n columnId: z.string(),\n direction: z.enum([\"asc\", \"desc\"]),\n}).strict()\nexport type ViewSort = z.infer<typeof viewSortSchema>\n\nexport const viewSortsSchema = z.array(viewSortSchema)\n\nexport const viewCreateDataSchema = z.object({\n id: z.uuid().optional(),\n name: z.string().min(1),\n type: tableViewTypeSchema,\n config: viewConfigSchema.optional(),\n filters: viewFiltersSchema.optional(),\n sorts: viewSortsSchema.optional(),\n}).strict()\nexport type ViewCreateData = z.infer<typeof viewCreateDataSchema>\n\nexport const viewUpdateDataSchema = z.object({\n name: z.string().min(1).optional(),\n type: tableViewTypeSchema.optional(),\n config: viewConfigSchema.optional(),\n filters: viewFiltersSchema.optional(),\n sorts: viewSortsSchema.optional(),\n}).strict()\nexport type ViewUpdateData = z.infer<typeof viewUpdateDataSchema>\n\nexport const tableViewSchema = z.object({\n id: z.string(),\n tableId: z.string(),\n name: z.string(),\n type: tableViewTypeSchema,\n config: viewConfigSchema.nullable(),\n filters: z.array(z.unknown()).nullable(),\n sorts: z.array(z.unknown()).nullable(),\n position: z.number(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\nexport type TableView = z.infer<typeof tableViewSchema>\n","import { z } from \"zod\"\nimport { tableColumnSchema } from \"./column\"\nimport { tableRowSchema } from \"./row\"\nimport { tableViewSchema } from \"./view\"\n\nexport const CustomTableListInputSchema = z.object({})\nexport type CustomTableListInput = z.infer<typeof CustomTableListInputSchema>\n\nexport const CustomTableListItemSchema = z.object({\n id: z.string(),\n name: z.string(),\n})\nexport type CustomTableListItem = z.infer<typeof CustomTableListItemSchema>\n\nexport const CustomTableListOutputSchema = z.array(CustomTableListItemSchema)\nexport type CustomTableListOutput = z.infer<typeof CustomTableListOutputSchema>\n\nexport const customTableCreateDataSchema = z.object({\n id: z.uuid().optional(),\n name: z.string().min(1),\n}).strict()\nexport type CustomTableCreateData = z.infer<typeof customTableCreateDataSchema>\n\nexport const CustomTableCreateInputSchema = customTableCreateDataSchema\nexport type CustomTableCreateInput = z.infer<typeof CustomTableCreateInputSchema>\n\nexport const CustomTableCreateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type CustomTableCreateOutput = z.infer<typeof CustomTableCreateOutputSchema>\n\nexport const customTableUpdateDataSchema = z.object({\n name: z.string().min(1).optional(),\n}).strict()\nexport type CustomTableUpdateData = z.infer<typeof customTableUpdateDataSchema>\n\nexport const CustomTableUpdateInputSchema = customTableUpdateDataSchema.extend({\n id: z.uuid(),\n})\nexport type CustomTableUpdateInput = z.infer<typeof CustomTableUpdateInputSchema>\n\nexport const CustomTableUpdateOutputSchema = z.object({\n txid: z.number(),\n})\nexport type CustomTableUpdateOutput = z.infer<typeof CustomTableUpdateOutputSchema>\n\nexport const CustomTableDeleteInputSchema = z.object({\n id: z.uuid(),\n})\nexport type CustomTableDeleteInput = z.infer<typeof CustomTableDeleteInputSchema>\n\nexport const CustomTableDeleteOutputSchema = z.object({\n txid: z.number(),\n})\nexport type CustomTableDeleteOutput = z.infer<typeof CustomTableDeleteOutputSchema>\n\n// Get endpoint schemas\nexport const CustomTableGetInputSchema = z.object({\n id: z.uuid(),\n})\nexport type CustomTableGetInput = z.infer<typeof CustomTableGetInputSchema>\n\nexport const CustomTableGetSchemaInputSchema = z.object({\n id: z.uuid(),\n})\nexport type CustomTableGetSchemaInput = z.infer<typeof CustomTableGetSchemaInputSchema>\n\nexport const CustomTableGetOutputSchema = z.object({\n id: z.string(),\n userId: z.string(),\n name: z.string(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n columns: z.array(tableColumnSchema),\n rows: z.array(tableRowSchema),\n views: z.array(tableViewSchema),\n})\nexport type CustomTableGetOutput = z.infer<typeof CustomTableGetOutputSchema>\n\nexport const CustomTableGetSchemaOutputSchema = z.object({\n id: z.string(),\n name: z.string(),\n updatedAt: z.coerce.date(),\n columns: z.array(tableColumnSchema),\n})\nexport type CustomTableGetSchemaOutput = z.infer<typeof CustomTableGetSchemaOutputSchema>\n","import { pickPublicErrorMap } from \"@/public-errors\"\nimport {\n CustomTableCreateInputSchema,\n CustomTableCreateOutputSchema,\n CustomTableDeleteInputSchema,\n CustomTableDeleteOutputSchema,\n CustomTableGetInputSchema,\n CustomTableGetOutputSchema,\n CustomTableGetSchemaInputSchema,\n CustomTableGetSchemaOutputSchema,\n CustomTableListInputSchema,\n CustomTableListOutputSchema,\n CustomTableUpdateInputSchema,\n CustomTableUpdateOutputSchema,\n} from \"@/schemas/custom-table\"\nimport { notebaseProcedure } from \"./shared\"\n\nexport const customTableContract = {\n list: notebaseProcedure\n .route({\n method: \"GET\",\n path: \"/custom-tables\",\n summary: \"List custom tables\",\n tags: [\"Custom Tables\"],\n })\n .input(CustomTableListInputSchema)\n .output(CustomTableListOutputSchema),\n\n get: notebaseProcedure\n .errors(pickPublicErrorMap(\"TABLE_NOT_FOUND\"))\n .route({\n method: \"GET\",\n path: \"/custom-tables/{id}\",\n summary: \"Get custom table with columns, rows, and views\",\n tags: [\"Custom Tables\"],\n })\n .input(CustomTableGetInputSchema)\n .output(CustomTableGetOutputSchema),\n\n getSchema: notebaseProcedure\n .errors(pickPublicErrorMap(\"TABLE_NOT_FOUND\"))\n .route({\n method: \"GET\",\n path: \"/custom-tables/{id}/schema\",\n summary: \"Get custom table schema\",\n tags: [\"Custom Tables\"],\n })\n .input(CustomTableGetSchemaInputSchema)\n .output(CustomTableGetSchemaOutputSchema),\n\n create: notebaseProcedure\n .route({\n method: \"POST\",\n path: \"/custom-tables\",\n summary: \"Create custom table\",\n tags: [\"Custom Tables\"],\n })\n .input(CustomTableCreateInputSchema)\n .output(CustomTableCreateOutputSchema),\n\n update: notebaseProcedure\n .errors(pickPublicErrorMap(\"TABLE_NOT_FOUND\"))\n .route({\n method: \"PUT\",\n path: \"/custom-tables/{id}\",\n summary: \"Update custom table\",\n tags: [\"Custom Tables\"],\n })\n .input(CustomTableUpdateInputSchema)\n .output(CustomTableUpdateOutputSchema),\n\n delete: notebaseProcedure\n .errors(pickPublicErrorMap(\"TABLE_NOT_FOUND\"))\n .route({\n method: \"DELETE\",\n path: \"/custom-tables/{id}\",\n summary: \"Delete custom table\",\n tags: [\"Custom Tables\"],\n })\n .input(CustomTableDeleteInputSchema)\n .output(CustomTableDeleteOutputSchema),\n}\n","import { pickPublicErrorMap } from \"@/public-errors\"\nimport {\n RowCreateInputSchema,\n RowCreateOutputSchema,\n RowDeleteInputSchema,\n RowDeleteOutputSchema,\n RowReorderInputSchema,\n RowReorderOutputSchema,\n RowUpdateInputSchema,\n RowUpdateOutputSchema,\n} from \"@/schemas/row\"\nimport { notebaseProcedure } from \"./shared\"\n\nexport const rowContract = {\n create: notebaseProcedure\n .errors(pickPublicErrorMap(\n \"TABLE_NOT_FOUND\",\n \"CELL_VALIDATION_FAILED\",\n \"CONCURRENT_POSITION_CONFLICT\",\n ))\n .route({\n method: \"POST\",\n path: \"/rows\",\n summary: \"Create row\",\n tags: [\"Rows\"],\n })\n .input(RowCreateInputSchema)\n .output(RowCreateOutputSchema),\n\n update: notebaseProcedure\n .errors(pickPublicErrorMap(\"ROW_NOT_FOUND\", \"CELL_VALIDATION_FAILED\"))\n .route({\n method: \"PATCH\",\n path: \"/rows/{rowId}\",\n summary: \"Update row cells\",\n tags: [\"Rows\"],\n })\n .input(RowUpdateInputSchema)\n .output(RowUpdateOutputSchema),\n\n delete: notebaseProcedure\n .errors(pickPublicErrorMap(\"ROW_NOT_FOUND\", \"CONCURRENT_POSITION_CONFLICT\"))\n .route({\n method: \"DELETE\",\n path: \"/rows/{rowId}\",\n summary: \"Delete row\",\n tags: [\"Rows\"],\n })\n .input(RowDeleteInputSchema)\n .output(RowDeleteOutputSchema),\n\n reorder: notebaseProcedure\n .errors(pickPublicErrorMap(\"TABLE_NOT_FOUND\", \"CONCURRENT_POSITION_CONFLICT\"))\n .route({\n method: \"POST\",\n path: \"/rows/reorder\",\n summary: \"Reorder rows in a table\",\n tags: [\"Rows\"],\n })\n .input(RowReorderInputSchema)\n .output(RowReorderOutputSchema),\n}\n","import type { ContractRouterClient } from \"@orpc/contract\"\nimport { betaAccessContract } from \"./contracts/beta-access\"\nimport { columnContract } from \"./contracts/column\"\nimport { customTableContract } from \"./contracts/custom-table\"\nimport { rowContract } from \"./contracts/row\"\n\nexport const contract = {\n betaAccess: betaAccessContract,\n customTable: customTableContract,\n column: columnContract,\n row: rowContract,\n}\n\nexport type ORPCRouterClient = ContractRouterClient<typeof contract>\n\nexport * from \"./public-errors\"\nexport * from \"./schemas/beta-access\"\nexport * from \"./schemas/column\"\nexport * from \"./schemas/custom-table\"\nexport * from \"./schemas/row\"\nexport * from \"./schemas/view\"\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@read-frog/api-contract",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.4.0",
|
|
5
5
|
"private": false,
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -12,17 +12,18 @@
|
|
|
12
12
|
"main": "./dist/index.js",
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
14
14
|
"files": [
|
|
15
|
-
"dist"
|
|
15
|
+
"dist",
|
|
16
|
+
"src"
|
|
16
17
|
],
|
|
17
18
|
"dependencies": {
|
|
18
|
-
"@orpc/contract": "^1.13.
|
|
19
|
+
"@orpc/contract": "^1.13.14",
|
|
19
20
|
"zod": "^4.3.6",
|
|
20
|
-
"@read-frog/definitions": "0.1.
|
|
21
|
+
"@read-frog/definitions": "0.1.3"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
|
-
"@types/node": "^25.
|
|
24
|
-
"tsdown": "^0.
|
|
25
|
-
"@repo/eslint-config": "0.0.
|
|
24
|
+
"@types/node": "^25.6.0",
|
|
25
|
+
"tsdown": "^0.21.8",
|
|
26
|
+
"@repo/eslint-config": "0.0.1",
|
|
26
27
|
"@repo/tsdown-config": "0.0.0",
|
|
27
28
|
"@repo/typescript-config": "0.0.0"
|
|
28
29
|
},
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { oc } from "@orpc/contract"
|
|
2
|
+
import {
|
|
3
|
+
BetaAccessStatusInputSchema,
|
|
4
|
+
BetaAccessStatusOutputSchema,
|
|
5
|
+
} from "@/schemas/beta-access"
|
|
6
|
+
|
|
7
|
+
export const betaAccessContract = {
|
|
8
|
+
status: oc
|
|
9
|
+
.route({
|
|
10
|
+
method: "GET",
|
|
11
|
+
path: "/beta-access/status",
|
|
12
|
+
summary: "Get beta access status for a feature",
|
|
13
|
+
tags: ["Beta Access"],
|
|
14
|
+
})
|
|
15
|
+
.input(BetaAccessStatusInputSchema)
|
|
16
|
+
.output(BetaAccessStatusOutputSchema),
|
|
17
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { pickPublicErrorMap } from "@/public-errors"
|
|
2
|
+
import {
|
|
3
|
+
ColumnCreateInputSchema,
|
|
4
|
+
ColumnCreateOutputSchema,
|
|
5
|
+
ColumnDeleteInputSchema,
|
|
6
|
+
ColumnDeleteOutputSchema,
|
|
7
|
+
ColumnReorderInputSchema,
|
|
8
|
+
ColumnReorderOutputSchema,
|
|
9
|
+
ColumnUpdateInputSchema,
|
|
10
|
+
ColumnUpdateOutputSchema,
|
|
11
|
+
} from "@/schemas/column"
|
|
12
|
+
import { notebaseProcedure } from "./shared"
|
|
13
|
+
|
|
14
|
+
export const columnContract = {
|
|
15
|
+
create: notebaseProcedure
|
|
16
|
+
.errors(pickPublicErrorMap("TABLE_NOT_FOUND", "CONCURRENT_POSITION_CONFLICT"))
|
|
17
|
+
.route({
|
|
18
|
+
method: "POST",
|
|
19
|
+
path: "/columns",
|
|
20
|
+
summary: "Create column",
|
|
21
|
+
tags: ["Columns"],
|
|
22
|
+
})
|
|
23
|
+
.input(ColumnCreateInputSchema)
|
|
24
|
+
.output(ColumnCreateOutputSchema),
|
|
25
|
+
|
|
26
|
+
update: notebaseProcedure
|
|
27
|
+
.errors(pickPublicErrorMap("COLUMN_NOT_FOUND"))
|
|
28
|
+
.route({
|
|
29
|
+
method: "PATCH",
|
|
30
|
+
path: "/columns/{columnId}",
|
|
31
|
+
summary: "Update column",
|
|
32
|
+
tags: ["Columns"],
|
|
33
|
+
})
|
|
34
|
+
.input(ColumnUpdateInputSchema)
|
|
35
|
+
.output(ColumnUpdateOutputSchema),
|
|
36
|
+
|
|
37
|
+
delete: notebaseProcedure
|
|
38
|
+
.errors(pickPublicErrorMap(
|
|
39
|
+
"COLUMN_NOT_FOUND",
|
|
40
|
+
"PRIMARY_COLUMN_DELETE_NOT_ALLOWED",
|
|
41
|
+
"CONCURRENT_POSITION_CONFLICT",
|
|
42
|
+
))
|
|
43
|
+
.route({
|
|
44
|
+
method: "DELETE",
|
|
45
|
+
path: "/columns/{columnId}",
|
|
46
|
+
summary: "Delete column",
|
|
47
|
+
tags: ["Columns"],
|
|
48
|
+
})
|
|
49
|
+
.input(ColumnDeleteInputSchema)
|
|
50
|
+
.output(ColumnDeleteOutputSchema),
|
|
51
|
+
|
|
52
|
+
reorder: notebaseProcedure
|
|
53
|
+
.errors(pickPublicErrorMap("TABLE_NOT_FOUND", "CONCURRENT_POSITION_CONFLICT"))
|
|
54
|
+
.route({
|
|
55
|
+
method: "POST",
|
|
56
|
+
path: "/columns/reorder",
|
|
57
|
+
summary: "Reorder columns in a table",
|
|
58
|
+
tags: ["Columns"],
|
|
59
|
+
})
|
|
60
|
+
.input(ColumnReorderInputSchema)
|
|
61
|
+
.output(ColumnReorderOutputSchema),
|
|
62
|
+
}
|