allsquare 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -0
  3. package/README.md +234 -0
  4. package/dist/api/client.d.ts +46 -0
  5. package/dist/api/client.d.ts.map +1 -0
  6. package/dist/api/client.js +162 -0
  7. package/dist/api/client.js.map +1 -0
  8. package/dist/api/contract.d.ts +549 -0
  9. package/dist/api/contract.d.ts.map +1 -0
  10. package/dist/api/contract.js +49 -0
  11. package/dist/api/contract.js.map +1 -0
  12. package/dist/api/model.d.ts +627 -0
  13. package/dist/api/model.d.ts.map +1 -0
  14. package/dist/api/model.js +378 -0
  15. package/dist/api/model.js.map +1 -0
  16. package/dist/auth/auth-service.d.ts +34 -0
  17. package/dist/auth/auth-service.d.ts.map +1 -0
  18. package/dist/auth/auth-service.js +221 -0
  19. package/dist/auth/auth-service.js.map +1 -0
  20. package/dist/auth/browser.d.ts +12 -0
  21. package/dist/auth/browser.d.ts.map +1 -0
  22. package/dist/auth/browser.js +50 -0
  23. package/dist/auth/browser.js.map +1 -0
  24. package/dist/auth/credential-store.d.ts +28 -0
  25. package/dist/auth/credential-store.d.ts.map +1 -0
  26. package/dist/auth/credential-store.js +75 -0
  27. package/dist/auth/credential-store.js.map +1 -0
  28. package/dist/auth/installation-store.d.ts +14 -0
  29. package/dist/auth/installation-store.d.ts.map +1 -0
  30. package/dist/auth/installation-store.js +122 -0
  31. package/dist/auth/installation-store.js.map +1 -0
  32. package/dist/auth/model.d.ts +54 -0
  33. package/dist/auth/model.d.ts.map +1 -0
  34. package/dist/auth/model.js +24 -0
  35. package/dist/auth/model.js.map +1 -0
  36. package/dist/auth/oauth-callback.d.ts +17 -0
  37. package/dist/auth/oauth-callback.d.ts.map +1 -0
  38. package/dist/auth/oauth-callback.js +94 -0
  39. package/dist/auth/oauth-callback.js.map +1 -0
  40. package/dist/auth/oauth-client.d.ts +43 -0
  41. package/dist/auth/oauth-client.d.ts.map +1 -0
  42. package/dist/auth/oauth-client.js +191 -0
  43. package/dist/auth/oauth-client.js.map +1 -0
  44. package/dist/auth/pkce.d.ts +9 -0
  45. package/dist/auth/pkce.d.ts.map +1 -0
  46. package/dist/auth/pkce.js +12 -0
  47. package/dist/auth/pkce.js.map +1 -0
  48. package/dist/command.d.ts +3 -0
  49. package/dist/command.d.ts.map +1 -0
  50. package/dist/command.js +24 -0
  51. package/dist/command.js.map +1 -0
  52. package/dist/commands/agent-guide.d.ts +5 -0
  53. package/dist/commands/agent-guide.d.ts.map +1 -0
  54. package/dist/commands/agent-guide.js +226 -0
  55. package/dist/commands/agent-guide.js.map +1 -0
  56. package/dist/commands/auth.d.ts +5 -0
  57. package/dist/commands/auth.d.ts.map +1 -0
  58. package/dist/commands/auth.js +68 -0
  59. package/dist/commands/auth.js.map +1 -0
  60. package/dist/commands/balances.d.ts +5 -0
  61. package/dist/commands/balances.d.ts.map +1 -0
  62. package/dist/commands/balances.js +106 -0
  63. package/dist/commands/balances.js.map +1 -0
  64. package/dist/commands/config.d.ts +4 -0
  65. package/dist/commands/config.d.ts.map +1 -0
  66. package/dist/commands/config.js +16 -0
  67. package/dist/commands/config.js.map +1 -0
  68. package/dist/commands/expense-input.d.ts +17 -0
  69. package/dist/commands/expense-input.d.ts.map +1 -0
  70. package/dist/commands/expense-input.js +78 -0
  71. package/dist/commands/expense-input.js.map +1 -0
  72. package/dist/commands/expenses.d.ts +5 -0
  73. package/dist/commands/expenses.d.ts.map +1 -0
  74. package/dist/commands/expenses.js +419 -0
  75. package/dist/commands/expenses.js.map +1 -0
  76. package/dist/commands/groups.d.ts +5 -0
  77. package/dist/commands/groups.d.ts.map +1 -0
  78. package/dist/commands/groups.js +149 -0
  79. package/dist/commands/groups.js.map +1 -0
  80. package/dist/commands/recurring-expenses.d.ts +5 -0
  81. package/dist/commands/recurring-expenses.d.ts.map +1 -0
  82. package/dist/commands/recurring-expenses.js +416 -0
  83. package/dist/commands/recurring-expenses.js.map +1 -0
  84. package/dist/commands/settlements.d.ts +5 -0
  85. package/dist/commands/settlements.d.ts.map +1 -0
  86. package/dist/commands/settlements.js +225 -0
  87. package/dist/commands/settlements.js.map +1 -0
  88. package/dist/commands/shared.d.ts +6 -0
  89. package/dist/commands/shared.d.ts.map +1 -0
  90. package/dist/commands/shared.js +35 -0
  91. package/dist/commands/shared.js.map +1 -0
  92. package/dist/commands/spend-summary.d.ts +5 -0
  93. package/dist/commands/spend-summary.d.ts.map +1 -0
  94. package/dist/commands/spend-summary.js +107 -0
  95. package/dist/commands/spend-summary.js.map +1 -0
  96. package/dist/commands/update.d.ts +9 -0
  97. package/dist/commands/update.d.ts.map +1 -0
  98. package/dist/commands/update.js +78 -0
  99. package/dist/commands/update.js.map +1 -0
  100. package/dist/config.d.ts +14 -0
  101. package/dist/config.d.ts.map +1 -0
  102. package/dist/config.js +52 -0
  103. package/dist/config.js.map +1 -0
  104. package/dist/errors.d.ts +87 -0
  105. package/dist/errors.d.ts.map +1 -0
  106. package/dist/errors.js +183 -0
  107. package/dist/errors.js.map +1 -0
  108. package/dist/index.d.ts +3 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +43 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/interaction.d.ts +16 -0
  113. package/dist/interaction.d.ts.map +1 -0
  114. package/dist/interaction.js +14 -0
  115. package/dist/interaction.js.map +1 -0
  116. package/dist/layers.d.ts +13 -0
  117. package/dist/layers.d.ts.map +1 -0
  118. package/dist/layers.js +17 -0
  119. package/dist/layers.js.map +1 -0
  120. package/dist/output.d.ts +31 -0
  121. package/dist/output.d.ts.map +1 -0
  122. package/dist/output.js +26 -0
  123. package/dist/output.js.map +1 -0
  124. package/dist/update/update-service.d.ts +41 -0
  125. package/dist/update/update-service.d.ts.map +1 -0
  126. package/dist/update/update-service.js +231 -0
  127. package/dist/update/update-service.js.map +1 -0
  128. package/dist/version.d.ts +3 -0
  129. package/dist/version.d.ts.map +1 -0
  130. package/dist/version.js +3 -0
  131. package/dist/version.js.map +1 -0
  132. package/package.json +41 -0
@@ -0,0 +1,549 @@
1
+ import { Schema } from "effect";
2
+ export declare const cliApiContract: {
3
+ readonly listGroups: {
4
+ readonly response: Schema.Struct<{
5
+ readonly groups: Schema.$Array<Schema.Struct<{
6
+ readonly id: Schema.String;
7
+ readonly name: Schema.String;
8
+ readonly defaultCurrency: Schema.String;
9
+ }>>;
10
+ }>;
11
+ };
12
+ readonly createGroup: {
13
+ readonly request: Schema.Struct<{
14
+ readonly name: Schema.String;
15
+ readonly currency: Schema.Literals<readonly ["USD", "CAD", "EUR", "GBP"]>;
16
+ readonly memberEmails: Schema.optionalKey<Schema.$Array<Schema.String>>;
17
+ }>;
18
+ readonly response: Schema.Struct<{
19
+ readonly group: Schema.Struct<{
20
+ readonly id: Schema.String;
21
+ readonly name: Schema.String;
22
+ readonly defaultCurrency: Schema.String;
23
+ }>;
24
+ readonly membersAdded: Schema.Number;
25
+ readonly membersNotified: Schema.Number;
26
+ readonly invitationsCreated: Schema.Number;
27
+ readonly invitationEmailsSent: Schema.Number;
28
+ }>;
29
+ };
30
+ readonly listGroupMembers: {
31
+ readonly response: Schema.Struct<{
32
+ readonly groupId: Schema.String;
33
+ readonly currentUserId: Schema.String;
34
+ readonly members: Schema.$Array<Schema.Struct<{
35
+ readonly id: Schema.String;
36
+ readonly name: Schema.String;
37
+ readonly email: Schema.NullOr<Schema.String>;
38
+ readonly isCurrentUser: Schema.Boolean;
39
+ readonly venmoUsername: Schema.NullOr<Schema.String>;
40
+ }>>;
41
+ }>;
42
+ };
43
+ readonly addGroupMember: {
44
+ readonly request: Schema.Struct<{
45
+ readonly email: Schema.String;
46
+ }>;
47
+ readonly response: Schema.Union<readonly [Schema.Struct<{
48
+ readonly status: Schema.Literals<readonly ["added", "rejoined"]>;
49
+ readonly groupId: Schema.String;
50
+ readonly email: Schema.String;
51
+ readonly userId: Schema.String;
52
+ readonly emailSent: Schema.Boolean;
53
+ }>, Schema.Struct<{
54
+ readonly status: Schema.Literal<"invited">;
55
+ readonly groupId: Schema.String;
56
+ readonly email: Schema.String;
57
+ readonly expiresAt: Schema.String;
58
+ readonly emailSent: Schema.Boolean;
59
+ }>]>;
60
+ };
61
+ readonly getAllBalances: {
62
+ readonly response: Schema.Struct<{
63
+ readonly currentUserId: Schema.String;
64
+ readonly groups: Schema.$Array<Schema.Struct<{
65
+ readonly groupId: Schema.String;
66
+ readonly groupName: Schema.NullOr<Schema.String>;
67
+ readonly currency: Schema.String;
68
+ readonly youOwe: Schema.$Array<Schema.Struct<{
69
+ readonly userId: Schema.String;
70
+ readonly name: Schema.String;
71
+ readonly amount: Schema.Number;
72
+ }>>;
73
+ readonly youAreOwed: Schema.$Array<Schema.Struct<{
74
+ readonly userId: Schema.String;
75
+ readonly name: Schema.String;
76
+ readonly amount: Schema.Number;
77
+ }>>;
78
+ readonly net: Schema.Number;
79
+ }>>;
80
+ readonly totalsByCurrency: Schema.$Record<Schema.String, Schema.Struct<{
81
+ readonly youOwe: Schema.Number;
82
+ readonly youAreOwed: Schema.Number;
83
+ readonly net: Schema.Number;
84
+ }>>;
85
+ readonly byPerson: Schema.$Array<Schema.Struct<{
86
+ readonly userId: Schema.String;
87
+ readonly name: Schema.String;
88
+ readonly amount: Schema.Number;
89
+ readonly currency: Schema.String;
90
+ readonly direction: Schema.Literals<readonly ["you_owe", "owes_you"]>;
91
+ }>>;
92
+ }>;
93
+ };
94
+ readonly getGroupBalances: {
95
+ readonly response: Schema.Struct<{
96
+ readonly groupId: Schema.String;
97
+ readonly currency: Schema.String;
98
+ readonly totalSpent: Schema.String;
99
+ readonly youOwe: Schema.$Array<Schema.Struct<{
100
+ readonly userId: Schema.String;
101
+ readonly name: Schema.String;
102
+ readonly amount: Schema.String;
103
+ readonly currency: Schema.String;
104
+ }>>;
105
+ readonly youAreOwed: Schema.$Array<Schema.Struct<{
106
+ readonly userId: Schema.String;
107
+ readonly name: Schema.String;
108
+ readonly amount: Schema.String;
109
+ readonly currency: Schema.String;
110
+ }>>;
111
+ }>;
112
+ };
113
+ readonly listExpenses: {
114
+ readonly response: Schema.Struct<{
115
+ readonly currentUserId: Schema.String;
116
+ readonly expenses: Schema.$Array<Schema.Struct<{
117
+ readonly id: Schema.String;
118
+ readonly description: Schema.String;
119
+ readonly amount: Schema.Number;
120
+ readonly currency: Schema.String;
121
+ readonly date: Schema.NullOr<Schema.String>;
122
+ readonly payer: Schema.Struct<{
123
+ readonly id: Schema.NullOr<Schema.String>;
124
+ readonly name: Schema.String;
125
+ }>;
126
+ readonly splits: Schema.$Array<Schema.Struct<{
127
+ readonly userId: Schema.String;
128
+ readonly name: Schema.String;
129
+ readonly amount: Schema.NullOr<Schema.Number>;
130
+ readonly percentage: Schema.NullOr<Schema.Number>;
131
+ readonly splitType: Schema.String;
132
+ }>>;
133
+ readonly isSettled: Schema.Boolean;
134
+ readonly isRecurring: Schema.Boolean;
135
+ readonly groupId: Schema.String;
136
+ readonly groupName: Schema.NullOr<Schema.String>;
137
+ }>>;
138
+ readonly nextCursor: Schema.NullOr<Schema.String>;
139
+ }>;
140
+ };
141
+ readonly createExpense: {
142
+ readonly request: Schema.Struct<{
143
+ readonly description: Schema.String;
144
+ readonly amount: Schema.Number;
145
+ readonly currency: Schema.Literals<readonly ["USD", "CAD", "EUR", "GBP"]>;
146
+ readonly paidById: Schema.optionalKey<Schema.String>;
147
+ readonly splitWith: Schema.$Array<Schema.String>;
148
+ readonly splitType: Schema.Literals<readonly ["amount", "percentage", "exact"]>;
149
+ readonly date: Schema.optionalKey<Schema.String>;
150
+ readonly percentageSplits: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Number>>;
151
+ readonly exactSplits: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Number>>;
152
+ }>;
153
+ readonly response: Schema.Struct<{
154
+ readonly expense: Schema.Struct<{
155
+ readonly id: Schema.String;
156
+ readonly description: Schema.String;
157
+ readonly amount: Schema.Number;
158
+ readonly currency: Schema.String;
159
+ readonly date: Schema.String;
160
+ readonly groupId: Schema.String;
161
+ }>;
162
+ }>;
163
+ };
164
+ readonly getExpense: {
165
+ readonly response: Schema.Struct<{
166
+ readonly currentUserId: Schema.String;
167
+ readonly expense: Schema.Struct<{
168
+ readonly id: Schema.String;
169
+ readonly description: Schema.String;
170
+ readonly amount: Schema.Number;
171
+ readonly currency: Schema.String;
172
+ readonly date: Schema.NullOr<Schema.String>;
173
+ readonly payer: Schema.Struct<{
174
+ readonly id: Schema.NullOr<Schema.String>;
175
+ readonly name: Schema.String;
176
+ }>;
177
+ readonly splits: Schema.$Array<Schema.Struct<{
178
+ readonly userId: Schema.String;
179
+ readonly name: Schema.String;
180
+ readonly amount: Schema.NullOr<Schema.Number>;
181
+ readonly percentage: Schema.NullOr<Schema.Number>;
182
+ readonly splitType: Schema.String;
183
+ }>>;
184
+ readonly isSettled: Schema.Boolean;
185
+ readonly isRecurring: Schema.Boolean;
186
+ readonly groupId: Schema.String;
187
+ readonly groupName: Schema.NullOr<Schema.String>;
188
+ }>;
189
+ }>;
190
+ };
191
+ readonly updateExpense: {
192
+ readonly request: Schema.Struct<{
193
+ readonly description: Schema.optionalKey<Schema.String>;
194
+ readonly amount: Schema.optionalKey<Schema.Number>;
195
+ readonly currency: Schema.optionalKey<Schema.Literals<readonly ["USD", "CAD", "EUR", "GBP"]>>;
196
+ readonly paidById: Schema.optionalKey<Schema.String>;
197
+ readonly splitWith: Schema.optionalKey<Schema.$Array<Schema.String>>;
198
+ readonly splitType: Schema.optionalKey<Schema.Literals<readonly ["amount", "percentage", "exact"]>>;
199
+ readonly date: Schema.optionalKey<Schema.String>;
200
+ readonly percentageSplits: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Number>>;
201
+ readonly exactSplits: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Number>>;
202
+ }>;
203
+ readonly response: Schema.Struct<{
204
+ readonly expense: Schema.Struct<{
205
+ readonly id: Schema.String;
206
+ readonly description: Schema.String;
207
+ readonly amount: Schema.Number;
208
+ readonly currency: Schema.String;
209
+ readonly date: Schema.NullOr<Schema.String>;
210
+ readonly payer: Schema.Struct<{
211
+ readonly id: Schema.NullOr<Schema.String>;
212
+ readonly name: Schema.String;
213
+ }>;
214
+ readonly splits: Schema.$Array<Schema.Struct<{
215
+ readonly userId: Schema.String;
216
+ readonly name: Schema.String;
217
+ readonly amount: Schema.NullOr<Schema.Number>;
218
+ readonly percentage: Schema.NullOr<Schema.Number>;
219
+ readonly splitType: Schema.String;
220
+ }>>;
221
+ readonly isSettled: Schema.Boolean;
222
+ readonly isRecurring: Schema.Boolean;
223
+ readonly groupId: Schema.String;
224
+ readonly groupName: Schema.NullOr<Schema.String>;
225
+ }>;
226
+ }>;
227
+ };
228
+ readonly deleteExpense: {
229
+ readonly request: Schema.Struct<{
230
+ readonly confirmed: Schema.Literal<true>;
231
+ readonly userIntent: Schema.String;
232
+ }>;
233
+ readonly response: Schema.Struct<{
234
+ readonly deleted: Schema.Literal<true>;
235
+ readonly expense: Schema.Struct<{
236
+ readonly id: Schema.String;
237
+ readonly description: Schema.String;
238
+ readonly amount: Schema.Number;
239
+ readonly currency: Schema.String;
240
+ readonly groupId: Schema.String;
241
+ }>;
242
+ }>;
243
+ };
244
+ readonly listRecurringExpenses: {
245
+ readonly response: Schema.Struct<{
246
+ readonly currentUserId: Schema.String;
247
+ readonly recurringExpenses: Schema.$Array<Schema.Struct<{
248
+ readonly id: Schema.String;
249
+ readonly groupId: Schema.String;
250
+ readonly groupName: Schema.NullOr<Schema.String>;
251
+ readonly description: Schema.String;
252
+ readonly amount: Schema.Number;
253
+ readonly currency: Schema.String;
254
+ readonly frequency: Schema.String;
255
+ readonly schedule: Schema.String;
256
+ readonly nextOccurrence: Schema.String;
257
+ readonly lastGeneratedAt: Schema.NullOr<Schema.String>;
258
+ readonly isPaused: Schema.Boolean;
259
+ readonly pausedAt: Schema.NullOr<Schema.String>;
260
+ readonly payer: Schema.Struct<{
261
+ readonly id: Schema.String;
262
+ readonly name: Schema.String;
263
+ }>;
264
+ readonly splitType: Schema.String;
265
+ readonly splits: Schema.$Array<Schema.Struct<{
266
+ readonly userId: Schema.String;
267
+ readonly name: Schema.String;
268
+ readonly amount: Schema.NullOr<Schema.Number>;
269
+ readonly percentage: Schema.NullOr<Schema.Number>;
270
+ }>>;
271
+ readonly createdById: Schema.String;
272
+ readonly canEdit: Schema.Boolean;
273
+ }>>;
274
+ }>;
275
+ };
276
+ readonly createRecurringExpense: {
277
+ readonly request: Schema.Struct<{
278
+ readonly description: Schema.String;
279
+ readonly amount: Schema.Number;
280
+ readonly currency: Schema.Literals<readonly ["USD", "CAD", "EUR", "GBP"]>;
281
+ readonly paidById: Schema.optionalKey<Schema.String>;
282
+ readonly splitWith: Schema.$Array<Schema.String>;
283
+ readonly splitType: Schema.Literals<readonly ["amount", "percentage", "exact"]>;
284
+ readonly frequency: Schema.Literals<readonly ["weekly", "biweekly", "monthly", "yearly"]>;
285
+ readonly startDate: Schema.optionalKey<Schema.String>;
286
+ readonly percentageSplits: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Number>>;
287
+ readonly exactSplits: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Number>>;
288
+ }>;
289
+ readonly response: Schema.Struct<{
290
+ readonly recurringExpense: Schema.Struct<{
291
+ readonly id: Schema.String;
292
+ readonly description: Schema.String;
293
+ readonly amount: Schema.Number;
294
+ readonly currency: Schema.String;
295
+ readonly frequency: Schema.String;
296
+ readonly nextOccurrence: Schema.String;
297
+ readonly groupId: Schema.String;
298
+ readonly immediateExpenseCreated: Schema.Boolean;
299
+ readonly immediateExpenseId: Schema.optionalKey<Schema.NullOr<Schema.String>>;
300
+ }>;
301
+ }>;
302
+ };
303
+ readonly getRecurringExpense: {
304
+ readonly response: Schema.Struct<{
305
+ readonly currentUserId: Schema.String;
306
+ readonly recurringExpense: Schema.Struct<{
307
+ readonly id: Schema.String;
308
+ readonly groupId: Schema.String;
309
+ readonly groupName: Schema.NullOr<Schema.String>;
310
+ readonly description: Schema.String;
311
+ readonly amount: Schema.Number;
312
+ readonly currency: Schema.String;
313
+ readonly frequency: Schema.String;
314
+ readonly schedule: Schema.String;
315
+ readonly nextOccurrence: Schema.String;
316
+ readonly lastGeneratedAt: Schema.NullOr<Schema.String>;
317
+ readonly isPaused: Schema.Boolean;
318
+ readonly pausedAt: Schema.NullOr<Schema.String>;
319
+ readonly payer: Schema.Struct<{
320
+ readonly id: Schema.String;
321
+ readonly name: Schema.String;
322
+ }>;
323
+ readonly splitType: Schema.String;
324
+ readonly splits: Schema.$Array<Schema.Struct<{
325
+ readonly userId: Schema.String;
326
+ readonly name: Schema.String;
327
+ readonly amount: Schema.NullOr<Schema.Number>;
328
+ readonly percentage: Schema.NullOr<Schema.Number>;
329
+ }>>;
330
+ readonly createdById: Schema.String;
331
+ readonly canEdit: Schema.Boolean;
332
+ }>;
333
+ }>;
334
+ };
335
+ readonly updateRecurringExpense: {
336
+ readonly request: Schema.Struct<{
337
+ readonly description: Schema.optionalKey<Schema.String>;
338
+ readonly amount: Schema.optionalKey<Schema.Number>;
339
+ readonly paidById: Schema.optionalKey<Schema.String>;
340
+ readonly splitWith: Schema.optionalKey<Schema.$Array<Schema.String>>;
341
+ readonly splitType: Schema.optionalKey<Schema.Literals<readonly ["amount", "percentage", "exact"]>>;
342
+ readonly frequency: Schema.optionalKey<Schema.Literals<readonly ["weekly", "biweekly", "monthly", "yearly"]>>;
343
+ readonly percentageSplits: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Number>>;
344
+ readonly exactSplits: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Number>>;
345
+ }>;
346
+ readonly response: Schema.Struct<{
347
+ readonly recurringExpense: Schema.Struct<{
348
+ readonly id: Schema.String;
349
+ readonly groupId: Schema.String;
350
+ readonly groupName: Schema.NullOr<Schema.String>;
351
+ readonly description: Schema.String;
352
+ readonly amount: Schema.Number;
353
+ readonly currency: Schema.String;
354
+ readonly frequency: Schema.String;
355
+ readonly schedule: Schema.String;
356
+ readonly nextOccurrence: Schema.String;
357
+ readonly lastGeneratedAt: Schema.NullOr<Schema.String>;
358
+ readonly isPaused: Schema.Boolean;
359
+ readonly pausedAt: Schema.NullOr<Schema.String>;
360
+ readonly payer: Schema.Struct<{
361
+ readonly id: Schema.String;
362
+ readonly name: Schema.String;
363
+ }>;
364
+ readonly splitType: Schema.String;
365
+ readonly splits: Schema.$Array<Schema.Struct<{
366
+ readonly userId: Schema.String;
367
+ readonly name: Schema.String;
368
+ readonly amount: Schema.NullOr<Schema.Number>;
369
+ readonly percentage: Schema.NullOr<Schema.Number>;
370
+ }>>;
371
+ readonly createdById: Schema.String;
372
+ readonly canEdit: Schema.Boolean;
373
+ }>;
374
+ }>;
375
+ };
376
+ readonly deleteRecurringExpense: {
377
+ readonly request: Schema.Struct<{
378
+ readonly confirmed: Schema.Literal<true>;
379
+ readonly userIntent: Schema.String;
380
+ }>;
381
+ readonly response: Schema.Struct<{
382
+ readonly deleted: Schema.Literal<true>;
383
+ readonly recurringExpense: Schema.Struct<{
384
+ readonly id: Schema.String;
385
+ readonly description: Schema.String;
386
+ readonly amount: Schema.Number;
387
+ readonly currency: Schema.String;
388
+ readonly frequency: Schema.String;
389
+ readonly groupId: Schema.String;
390
+ }>;
391
+ }>;
392
+ };
393
+ readonly setRecurringExpensePaused: {
394
+ readonly request: Schema.Struct<{
395
+ readonly paused: Schema.Boolean;
396
+ }>;
397
+ readonly response: Schema.Struct<{
398
+ readonly recurringExpense: Schema.Struct<{
399
+ readonly id: Schema.String;
400
+ readonly groupId: Schema.String;
401
+ readonly groupName: Schema.NullOr<Schema.String>;
402
+ readonly description: Schema.String;
403
+ readonly amount: Schema.Number;
404
+ readonly currency: Schema.String;
405
+ readonly frequency: Schema.String;
406
+ readonly schedule: Schema.String;
407
+ readonly nextOccurrence: Schema.String;
408
+ readonly lastGeneratedAt: Schema.NullOr<Schema.String>;
409
+ readonly isPaused: Schema.Boolean;
410
+ readonly pausedAt: Schema.NullOr<Schema.String>;
411
+ readonly payer: Schema.Struct<{
412
+ readonly id: Schema.String;
413
+ readonly name: Schema.String;
414
+ }>;
415
+ readonly splitType: Schema.String;
416
+ readonly splits: Schema.$Array<Schema.Struct<{
417
+ readonly userId: Schema.String;
418
+ readonly name: Schema.String;
419
+ readonly amount: Schema.NullOr<Schema.Number>;
420
+ readonly percentage: Schema.NullOr<Schema.Number>;
421
+ }>>;
422
+ readonly createdById: Schema.String;
423
+ readonly canEdit: Schema.Boolean;
424
+ }>;
425
+ }>;
426
+ };
427
+ readonly listSettlements: {
428
+ readonly response: Schema.Struct<{
429
+ readonly currentUserId: Schema.String;
430
+ readonly settlements: Schema.$Array<Schema.Struct<{
431
+ readonly id: Schema.String;
432
+ readonly groupId: Schema.String;
433
+ readonly groupName: Schema.NullOr<Schema.String>;
434
+ readonly settledBy: Schema.Struct<{
435
+ readonly id: Schema.String;
436
+ readonly name: Schema.String;
437
+ }>;
438
+ readonly settledAt: Schema.NullOr<Schema.String>;
439
+ readonly expenseCount: Schema.Number;
440
+ readonly totalsByCurrency: Schema.$Record<Schema.String, Schema.Number>;
441
+ readonly expenses: Schema.$Array<Schema.Struct<{
442
+ readonly id: Schema.String;
443
+ readonly description: Schema.String;
444
+ readonly amount: Schema.Number;
445
+ readonly currency: Schema.String;
446
+ readonly date: Schema.NullOr<Schema.String>;
447
+ readonly payerId: Schema.NullOr<Schema.String>;
448
+ }>>;
449
+ }>>;
450
+ }>;
451
+ };
452
+ readonly previewSettlement: {
453
+ readonly request: Schema.Struct<{
454
+ readonly expenseIds: Schema.$Array<Schema.String>;
455
+ readonly currency: Schema.optionalKey<Schema.Literals<readonly ["USD", "CAD", "EUR", "GBP"]>>;
456
+ }>;
457
+ readonly response: Schema.Struct<{
458
+ readonly groupId: Schema.String;
459
+ readonly currency: Schema.String;
460
+ readonly expenseIds: Schema.$Array<Schema.String>;
461
+ readonly payments: Schema.$Array<Schema.Struct<{
462
+ readonly direction: Schema.Literals<readonly ["pay", "request"]>;
463
+ readonly userId: Schema.String;
464
+ readonly name: Schema.String;
465
+ readonly amount: Schema.String;
466
+ readonly currency: Schema.String;
467
+ readonly venmoUsername: Schema.NullOr<Schema.String>;
468
+ readonly venmoWebUrl: Schema.NullOr<Schema.String>;
469
+ readonly venmoProfileUrl: Schema.NullOr<Schema.String>;
470
+ readonly venmoMarkdownLink: Schema.NullOr<Schema.String>;
471
+ readonly displayText: Schema.String;
472
+ readonly note: Schema.String;
473
+ }>>;
474
+ }>;
475
+ };
476
+ readonly settleExpenses: {
477
+ readonly request: Schema.Struct<{
478
+ readonly expenseIds: Schema.$Array<Schema.String>;
479
+ readonly currency: Schema.optionalKey<Schema.Literals<readonly ["USD", "CAD", "EUR", "GBP"]>>;
480
+ readonly confirmed: Schema.Literal<true>;
481
+ readonly userIntent: Schema.String;
482
+ }>;
483
+ readonly response: Schema.Struct<{
484
+ readonly settlement: Schema.Struct<{
485
+ readonly id: Schema.String;
486
+ readonly groupId: Schema.String;
487
+ readonly settledBy: Schema.String;
488
+ readonly settledAt: Schema.NullOr<Schema.String>;
489
+ readonly expenseIds: Schema.$Array<Schema.String>;
490
+ }>;
491
+ readonly payments: Schema.$Array<Schema.Struct<{
492
+ readonly direction: Schema.Literals<readonly ["pay", "request"]>;
493
+ readonly userId: Schema.String;
494
+ readonly name: Schema.String;
495
+ readonly amount: Schema.String;
496
+ readonly currency: Schema.String;
497
+ readonly venmoUsername: Schema.NullOr<Schema.String>;
498
+ readonly venmoWebUrl: Schema.NullOr<Schema.String>;
499
+ readonly venmoProfileUrl: Schema.NullOr<Schema.String>;
500
+ readonly venmoMarkdownLink: Schema.NullOr<Schema.String>;
501
+ readonly displayText: Schema.String;
502
+ readonly note: Schema.String;
503
+ }>>;
504
+ }>;
505
+ };
506
+ readonly getSpendSummary: {
507
+ readonly response: Schema.Struct<{
508
+ readonly currentUserId: Schema.String;
509
+ readonly currency: Schema.String;
510
+ readonly groupId: Schema.NullOr<Schema.String>;
511
+ readonly from: Schema.NullOr<Schema.String>;
512
+ readonly to: Schema.NullOr<Schema.String>;
513
+ readonly query: Schema.NullOr<Schema.String>;
514
+ readonly expenseCount: Schema.Number;
515
+ readonly totalSpent: Schema.Number;
516
+ readonly yourPaid: Schema.Number;
517
+ readonly yourShare: Schema.Number;
518
+ readonly byPerson: Schema.$Array<Schema.Struct<{
519
+ readonly userId: Schema.String;
520
+ readonly name: Schema.String;
521
+ readonly paid: Schema.Number;
522
+ readonly share: Schema.Number;
523
+ }>>;
524
+ readonly byMonth: Schema.$Array<Schema.Struct<{
525
+ readonly month: Schema.String;
526
+ readonly total: Schema.Number;
527
+ readonly count: Schema.Number;
528
+ }>>;
529
+ readonly byDescription: Schema.$Array<Schema.Struct<{
530
+ readonly description: Schema.String;
531
+ readonly total: Schema.Number;
532
+ readonly count: Schema.Number;
533
+ }>>;
534
+ readonly byGroup: Schema.$Array<Schema.Struct<{
535
+ readonly groupId: Schema.String;
536
+ readonly groupName: Schema.NullOr<Schema.String>;
537
+ readonly total: Schema.Number;
538
+ readonly count: Schema.Number;
539
+ }>>;
540
+ }>;
541
+ };
542
+ };
543
+ export declare const cliApiJsonSchemas: () => {
544
+ [k: string]: {
545
+ response: import("effect/JsonSchema").JsonSchema;
546
+ request?: import("effect/JsonSchema").JsonSchema;
547
+ };
548
+ };
549
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/api/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/B,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCjB,CAAA;AAEV,eAAO,MAAM,iBAAiB;;;;;CAU7B,CAAA"}
@@ -0,0 +1,49 @@
1
+ import { Schema } from "effect";
2
+ import * as Model from "./model.js";
3
+ // Keep the CLI standalone at runtime. The repository contract test compares
4
+ // these schemas with the generated v1 OpenAPI document before release.
5
+ export const cliApiContract = {
6
+ listGroups: { response: Model.ListGroupsResponse },
7
+ createGroup: { request: Model.CreateGroupRequest, response: Model.CreateGroupResponse },
8
+ listGroupMembers: { response: Model.ListGroupMembersResponse },
9
+ addGroupMember: { request: Model.AddGroupMemberRequest, response: Model.AddGroupMemberResponse },
10
+ getAllBalances: { response: Model.GetAllBalancesResponse },
11
+ getGroupBalances: { response: Model.GetGroupBalancesResponse },
12
+ listExpenses: { response: Model.ListExpensesResponse },
13
+ createExpense: { request: Model.CreateExpenseRequest, response: Model.CreateExpenseResponse },
14
+ getExpense: { response: Model.GetExpenseResponse },
15
+ updateExpense: { request: Model.UpdateExpenseRequest, response: Model.UpdateExpenseResponse },
16
+ deleteExpense: { request: Model.DeleteExpenseRequest, response: Model.DeleteExpenseResponse },
17
+ listRecurringExpenses: { response: Model.ListRecurringExpensesResponse },
18
+ createRecurringExpense: {
19
+ request: Model.CreateRecurringExpenseRequest,
20
+ response: Model.CreateRecurringExpenseResponse
21
+ },
22
+ getRecurringExpense: { response: Model.GetRecurringExpenseResponse },
23
+ updateRecurringExpense: {
24
+ request: Model.UpdateRecurringExpenseRequest,
25
+ response: Model.RecurringExpenseMutationResponse
26
+ },
27
+ deleteRecurringExpense: {
28
+ request: Model.DeleteRecurringExpenseRequest,
29
+ response: Model.DeleteRecurringExpenseResponse
30
+ },
31
+ setRecurringExpensePaused: {
32
+ request: Model.SetRecurringExpensePausedRequest,
33
+ response: Model.RecurringExpenseMutationResponse
34
+ },
35
+ listSettlements: { response: Model.ListSettlementsResponse },
36
+ previewSettlement: { request: Model.PreviewSettlementRequest, response: Model.PreviewSettlementResponse },
37
+ settleExpenses: { request: Model.SettleExpensesRequest, response: Model.SettleExpensesResponse },
38
+ getSpendSummary: { response: Model.GetSpendSummaryResponse }
39
+ };
40
+ export const cliApiJsonSchemas = () => Object.fromEntries(Object.entries(cliApiContract).map(([operationId, contract]) => [
41
+ operationId,
42
+ {
43
+ ...("request" in contract
44
+ ? { request: Schema.toJsonSchemaDocument(contract.request).schema }
45
+ : {}),
46
+ response: Schema.toJsonSchemaDocument(contract.response).schema
47
+ }
48
+ ]));
49
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/api/contract.ts"],"names":[],"mappings":"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"}