@marcoappio/marco-config 2.0.491 → 2.0.493

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 (70) hide show
  1. package/dist/types/Zero.d.ts +0 -14
  2. package/dist/types/Zero.d.ts.map +1 -1
  3. package/dist/types/index.d.ts +0 -1
  4. package/dist/types/index.d.ts.map +1 -1
  5. package/dist/types/index.js +0 -1
  6. package/dist/zero/index.d.ts +1553 -1439
  7. package/dist/zero/index.d.ts.map +1 -1
  8. package/dist/zero/index.js +2 -4
  9. package/dist/zero/mutators/accountMutators/accountMutators.d.ts +108 -6
  10. package/dist/zero/mutators/accountMutators/accountMutators.d.ts.map +1 -1
  11. package/dist/zero/mutators/accountMutators/accountMutators.js +59 -34
  12. package/dist/zero/mutators/defineMutator.d.ts +16 -0
  13. package/dist/zero/mutators/defineMutator.d.ts.map +1 -0
  14. package/dist/zero/mutators/defineMutator.js +7 -0
  15. package/dist/zero/mutators/draftMutators/draftMutators.d.ts +166 -6
  16. package/dist/zero/mutators/draftMutators/draftMutators.d.ts.map +1 -1
  17. package/dist/zero/mutators/draftMutators/draftMutators.js +101 -40
  18. package/dist/zero/mutators/index.d.ts +2 -1
  19. package/dist/zero/mutators/index.d.ts.map +1 -1
  20. package/dist/zero/mutators/index.js +2 -1
  21. package/dist/zero/mutators/mutators.d.ts +438 -28
  22. package/dist/zero/mutators/mutators.d.ts.map +1 -1
  23. package/dist/zero/mutators/mutators.js +11 -38
  24. package/dist/zero/mutators/threadMutators/threadMutators.d.ts +127 -7
  25. package/dist/zero/mutators/threadMutators/threadMutators.d.ts.map +1 -1
  26. package/dist/zero/mutators/threadMutators/threadMutators.js +40 -30
  27. package/dist/zero/mutators/userMutators/userMutators.d.ts +30 -6
  28. package/dist/zero/mutators/userMutators/userMutators.d.ts.map +1 -1
  29. package/dist/zero/mutators/userMutators/userMutators.js +25 -11
  30. package/dist/zero/queries/getAccounts.d.ts +134 -134
  31. package/dist/zero/queries/getContacts.d.ts +134 -134
  32. package/dist/zero/queries/getDrafts.d.ts +134 -134
  33. package/dist/zero/queries/getThread.d.ts +134 -134
  34. package/dist/zero/queries/getThreadList.d.ts +134 -134
  35. package/dist/zero/queries/getThreads.d.ts +134 -134
  36. package/dist/zero/queries/getUser.d.ts +134 -134
  37. package/dist/zero/queries/index.d.ts +132 -132
  38. package/dist/zero/schema.d.ts +132 -132
  39. package/dist/zero/schema.d.ts.map +1 -1
  40. package/package.json +2 -2
  41. package/dist/types/AuthData.d.ts +0 -4
  42. package/dist/types/AuthData.d.ts.map +0 -1
  43. package/dist/types/AuthData.js +0 -1
  44. package/dist/zero/mutatorSchemas/account.d.ts +0 -80
  45. package/dist/zero/mutatorSchemas/account.d.ts.map +0 -1
  46. package/dist/zero/mutatorSchemas/account.js +0 -66
  47. package/dist/zero/mutatorSchemas/draft.d.ts +0 -150
  48. package/dist/zero/mutatorSchemas/draft.d.ts.map +0 -1
  49. package/dist/zero/mutatorSchemas/draft.js +0 -104
  50. package/dist/zero/mutatorSchemas/index.d.ts +0 -323
  51. package/dist/zero/mutatorSchemas/index.d.ts.map +0 -1
  52. package/dist/zero/mutatorSchemas/index.js +0 -10
  53. package/dist/zero/mutatorSchemas/thread.d.ts +0 -71
  54. package/dist/zero/mutatorSchemas/thread.d.ts.map +0 -1
  55. package/dist/zero/mutatorSchemas/thread.js +0 -47
  56. package/dist/zero/mutatorSchemas/user.d.ts +0 -26
  57. package/dist/zero/mutatorSchemas/user.d.ts.map +0 -1
  58. package/dist/zero/mutatorSchemas/user.js +0 -27
  59. package/dist/zero/mutators/accountMutators/accountMutators.test.d.ts +0 -2
  60. package/dist/zero/mutators/accountMutators/accountMutators.test.d.ts.map +0 -1
  61. package/dist/zero/mutators/accountMutators/accountMutators.test.js +0 -390
  62. package/dist/zero/mutators/draftMutators/draftMutators.test.d.ts +0 -2
  63. package/dist/zero/mutators/draftMutators/draftMutators.test.d.ts.map +0 -1
  64. package/dist/zero/mutators/draftMutators/draftMutators.test.js +0 -416
  65. package/dist/zero/mutators/threadMutators/threadMutators.test.d.ts +0 -2
  66. package/dist/zero/mutators/threadMutators/threadMutators.test.d.ts.map +0 -1
  67. package/dist/zero/mutators/threadMutators/threadMutators.test.js +0 -755
  68. package/dist/zero/mutators/userMutators/userMutators.test.d.ts +0 -2
  69. package/dist/zero/mutators/userMutators/userMutators.test.d.ts.map +0 -1
  70. package/dist/zero/mutators/userMutators/userMutators.test.js +0 -84
@@ -1 +1 @@
1
- {"version":3,"file":"mutators.d.ts","sourceRoot":"","sources":["../../../src/zero/mutators/mutators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,KAAK,EAAkD,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrG,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,mCAAmC,CAAA;AAG/F,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,mBAAmB,CAAA;AACvF,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACjF,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAE9E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,uBAAuB,CAAA;IACjC,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B,IAAI,CAAC,EAAE,oBAAoB,CAAA;CAC5B,CAAA;AA8BD,qBAAa,0BAA2B,SAAQ,KAAK;IACvC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;gBAApC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;CAG1D;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;IAClD,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9C,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,cAAc,cAAe,QAAQ,cAAc,gBAAgB,KAAG,iBAKjF,CAAA;AAEF,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,CAAA;AAC5G,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA"}
1
+ {"version":3,"file":"mutators.d.ts","sourceRoot":"","sources":["../../../src/zero/mutators/mutators.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAKnB,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,OAAO,QAAQ,CAAA"}
@@ -1,39 +1,12 @@
1
- import * as v from 'valibot';
2
- import { zeroMutatorSchemas } from '../../zero/mutatorSchemas';
3
- import { createAccountMutators } from './accountMutators';
4
- import { createDraftMutators } from './draftMutators';
5
- import { createThreadMutators } from './threadMutators';
6
- import { createUserMutators } from './userMutators';
7
- const validateArgs = (schema, input) => {
8
- const parsed = v.safeParse(schema, input);
9
- if (!parsed.success) {
10
- throw new ZeroMutatorValidationError(v.flatten(parsed.issues));
11
- }
12
- return parsed.output;
13
- };
14
- const createValidatingMutator = (schema, handler) => {
15
- return async (tx, input) => {
16
- const args = validateArgs(schema, input);
17
- await handler(tx, args);
18
- };
19
- };
20
- const buildMutatorMap = (defs, handlers) => {
21
- const entries = Object.entries(defs).map(([name, definition]) => [
22
- name,
23
- createValidatingMutator(definition.delta, handlers[name]),
24
- ]);
25
- return Object.fromEntries(entries);
26
- };
27
- export class ZeroMutatorValidationError extends Error {
28
- issues;
29
- constructor(issues) {
30
- super('Zero mutator payload failed validation');
31
- this.issues = issues;
32
- }
33
- }
34
- export const createMutators = (authData, callbacks) => ({
35
- account: buildMutatorMap(zeroMutatorSchemas.account, createAccountMutators(authData, callbacks?.account)),
36
- draft: buildMutatorMap(zeroMutatorSchemas.draft, createDraftMutators(authData, callbacks?.draft)),
37
- thread: buildMutatorMap(zeroMutatorSchemas.thread, createThreadMutators(authData, callbacks?.thread)),
38
- user: buildMutatorMap(zeroMutatorSchemas.user, createUserMutators(authData, callbacks?.user)),
1
+ import { defineMutators } from '@rocicorp/zero';
2
+ import { accountMutators } from './accountMutators';
3
+ import { draftMutators } from './draftMutators';
4
+ import { threadMutators } from './threadMutators';
5
+ import { userMutators } from './userMutators';
6
+ export { defineMutator } from './defineMutator';
7
+ export const mutators = defineMutators({
8
+ account: accountMutators,
9
+ draft: draftMutators,
10
+ thread: threadMutators,
11
+ user: userMutators,
39
12
  });
@@ -1,12 +1,132 @@
1
1
  import type { Transaction } from '@rocicorp/zero';
2
- import type * as v from 'valibot';
3
2
  import type { LabelSpecialUse } from '../../../types';
4
- import { type AuthData, type HandlerMap } from '../../../types';
5
- import type { ZeroMutatorSchemas } from '../../../zero/mutatorSchemas';
6
3
  import type { MarcoZeroSchema } from '../../../zero/schema';
7
- export type ThreadMutatorCallbacks = {
8
- [K in keyof ZeroMutatorSchemas['thread']]?: (args: v.InferOutput<ZeroMutatorSchemas['thread'][K]['delta']>) => Promise<void>;
9
- };
10
4
  export declare const setSystemLabel: (tx: Transaction<MarcoZeroSchema>, threadId: string, targetSpecialUse: LabelSpecialUse) => Promise<void>;
11
- export declare const createThreadMutators: (_authData: AuthData | undefined, callbacks?: ThreadMutatorCallbacks) => HandlerMap<ZeroMutatorSchemas["thread"]>;
5
+ export declare const threadMutators: {
6
+ addLabel: import("@rocicorp/zero").MutatorDefinition<{
7
+ accounts: {
8
+ [x: string]: {
9
+ threadIds: string[];
10
+ };
11
+ };
12
+ labelPath: string;
13
+ }, {
14
+ accounts: {
15
+ [x: string]: {
16
+ threadIds: string[];
17
+ };
18
+ };
19
+ labelPath: string;
20
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
21
+ delete: import("@rocicorp/zero").MutatorDefinition<{
22
+ accounts: {
23
+ [x: string]: {
24
+ threadIds: string[];
25
+ };
26
+ };
27
+ }, {
28
+ accounts: {
29
+ [x: string]: {
30
+ threadIds: string[];
31
+ };
32
+ };
33
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
34
+ removeLabel: import("@rocicorp/zero").MutatorDefinition<{
35
+ accounts: {
36
+ [x: string]: {
37
+ threadIds: string[];
38
+ };
39
+ };
40
+ labelPath: string;
41
+ }, {
42
+ accounts: {
43
+ [x: string]: {
44
+ threadIds: string[];
45
+ };
46
+ };
47
+ labelPath: string;
48
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
49
+ setArchive: import("@rocicorp/zero").MutatorDefinition<{
50
+ accounts: {
51
+ [x: string]: {
52
+ threadIds: string[];
53
+ };
54
+ };
55
+ }, {
56
+ accounts: {
57
+ [x: string]: {
58
+ threadIds: string[];
59
+ };
60
+ };
61
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
62
+ setFlagged: import("@rocicorp/zero").MutatorDefinition<{
63
+ accounts: {
64
+ [x: string]: {
65
+ threadIds: string[];
66
+ };
67
+ };
68
+ flagged: boolean;
69
+ }, {
70
+ accounts: {
71
+ [x: string]: {
72
+ threadIds: string[];
73
+ };
74
+ };
75
+ flagged: boolean;
76
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
77
+ setInbox: import("@rocicorp/zero").MutatorDefinition<{
78
+ accounts: {
79
+ [x: string]: {
80
+ threadIds: string[];
81
+ };
82
+ };
83
+ }, {
84
+ accounts: {
85
+ [x: string]: {
86
+ threadIds: string[];
87
+ };
88
+ };
89
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
90
+ setSeen: import("@rocicorp/zero").MutatorDefinition<{
91
+ accounts: {
92
+ [x: string]: {
93
+ threadIds: string[];
94
+ };
95
+ };
96
+ seen: boolean;
97
+ }, {
98
+ accounts: {
99
+ [x: string]: {
100
+ threadIds: string[];
101
+ };
102
+ };
103
+ seen: boolean;
104
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
105
+ setSpam: import("@rocicorp/zero").MutatorDefinition<{
106
+ accounts: {
107
+ [x: string]: {
108
+ threadIds: string[];
109
+ };
110
+ };
111
+ }, {
112
+ accounts: {
113
+ [x: string]: {
114
+ threadIds: string[];
115
+ };
116
+ };
117
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
118
+ setTrash: import("@rocicorp/zero").MutatorDefinition<{
119
+ accounts: {
120
+ [x: string]: {
121
+ threadIds: string[];
122
+ };
123
+ };
124
+ }, {
125
+ accounts: {
126
+ [x: string]: {
127
+ threadIds: string[];
128
+ };
129
+ };
130
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
131
+ };
12
132
  //# sourceMappingURL=threadMutators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"threadMutators.d.ts","sourceRoot":"","sources":["../../../../src/zero/mutators/threadMutators/threadMutators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAA;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAiB,MAAM,qBAAqB,CAAA;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEhE,MAAM,MAAM,sBAAsB,GAAG;KAClC,CAAC,IAAI,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAC1C,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAC1D,OAAO,CAAC,IAAI,CAAC;CACnB,CAAA;AAKD,eAAO,MAAM,cAAc,OACrB,WAAW,CAAC,eAAe,CAAC,YACtB,MAAM,oBACE,eAAe,KAChC,OAAO,CAAC,IAAI,CAyFd,CAAA;AAED,eAAO,MAAM,oBAAoB,cACpB,QAAQ,GAAG,SAAS,cACnB,sBAAsB,KACjC,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CA4PxC,CAAA"}
1
+ {"version":3,"file":"threadMutators.d.ts","sourceRoot":"","sources":["../../../../src/zero/mutators/threadMutators/threadMutators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAIjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAI1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAoBhE,eAAO,MAAM,cAAc,OACrB,WAAW,CAAC,eAAe,CAAC,YACtB,MAAM,oBACE,eAAe,KAChC,OAAO,CAAC,IAAI,CAyFd,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsP1B,CAAA"}
@@ -1,6 +1,19 @@
1
+ import * as v from 'valibot';
2
+ import { marcoSchemas } from '../../../schemas';
1
3
  import { MutationError } from '../../../types';
2
4
  import { threadsUtils } from '../../../utils/threads';
3
- const buildLabelIdList = (labelIds) => labelIds.length === 0 ? '' : ` ${[...new Set(labelIds)].join(' ')} `;
5
+ import { defineMutator } from '../../../zero/mutators/defineMutator';
6
+ const buildLabelIdList = (x) => (x.length === 0 ? '' : ` ${[...new Set(x)].join(' ')} `);
7
+ const accountsSchema = v.record(marcoSchemas.string.required(), v.object({
8
+ threadIds: v.array(marcoSchemas.string.required()),
9
+ }));
10
+ const baseThreadSchema = v.object({
11
+ accounts: accountsSchema,
12
+ });
13
+ const threadChangeLabelSchema = v.object({
14
+ accounts: accountsSchema,
15
+ labelPath: marcoSchemas.string.required(),
16
+ });
4
17
  export const setSystemLabel = async (tx, threadId, targetSpecialUse) => {
5
18
  const thread = await tx.query.thread.where('id', threadId).one().run();
6
19
  if (!thread) {
@@ -70,8 +83,8 @@ export const setSystemLabel = async (tx, threadId, targetSpecialUse) => {
70
83
  labelIdList: buildLabelIdList([targetLabel.id]),
71
84
  });
72
85
  };
73
- export const createThreadMutators = (_authData, callbacks) => ({
74
- addLabel: async (tx, args) => {
86
+ export const threadMutators = {
87
+ addLabel: defineMutator(threadChangeLabelSchema, async ({ tx, args }) => {
75
88
  for (const [accountId, { threadIds }] of Object.entries(args.accounts)) {
76
89
  const label = await tx.query.accountLabel.where('accountId', accountId).where('path', args.labelPath).one().run();
77
90
  if (!label) {
@@ -124,9 +137,8 @@ export const createThreadMutators = (_authData, callbacks) => ({
124
137
  });
125
138
  }
126
139
  }
127
- callbacks?.addLabel?.(args);
128
- },
129
- delete: async (tx, args) => {
140
+ }),
141
+ delete: defineMutator(baseThreadSchema, async ({ tx, args }) => {
130
142
  for (const [, { threadIds }] of Object.entries(args.accounts)) {
131
143
  for (const threadId of threadIds) {
132
144
  const thread = await tx.query.thread.where('id', threadId).one().run();
@@ -147,9 +159,8 @@ export const createThreadMutators = (_authData, callbacks) => ({
147
159
  }
148
160
  }
149
161
  }
150
- callbacks?.delete?.(args);
151
- },
152
- removeLabel: async (tx, args) => {
162
+ }),
163
+ removeLabel: defineMutator(threadChangeLabelSchema, async ({ tx, args }) => {
153
164
  for (const [accountId, { threadIds }] of Object.entries(args.accounts)) {
154
165
  const label = await tx.query.accountLabel.where('accountId', accountId).where('path', args.labelPath).one().run();
155
166
  if (!label) {
@@ -193,34 +204,36 @@ export const createThreadMutators = (_authData, callbacks) => ({
193
204
  ]);
194
205
  }
195
206
  }
196
- callbacks?.removeLabel?.(args);
197
- },
198
- setArchive: async (tx, args) => {
207
+ }),
208
+ setArchive: defineMutator(baseThreadSchema, async ({ tx, args }) => {
199
209
  for (const [, { threadIds }] of Object.entries(args.accounts)) {
200
210
  for (const threadId of threadIds) {
201
211
  await setSystemLabel(tx, threadId, 'ARCHIVE');
202
212
  }
203
213
  }
204
- callbacks?.setArchive?.(args);
205
- },
206
- setFlagged: async (tx, args) => {
214
+ }),
215
+ setFlagged: defineMutator(v.object({
216
+ accounts: accountsSchema,
217
+ flagged: v.nonOptional(v.boolean()),
218
+ }), async ({ tx, args }) => {
207
219
  for (const [, { threadIds }] of Object.entries(args.accounts)) {
208
220
  await Promise.all(threadIds.map(threadId => tx.mutate.thread.update({
209
221
  flagged: args.flagged,
210
222
  id: threadId,
211
223
  })));
212
224
  }
213
- callbacks?.setFlagged?.(args);
214
- },
215
- setInbox: async (tx, args) => {
225
+ }),
226
+ setInbox: defineMutator(baseThreadSchema, async ({ tx, args }) => {
216
227
  for (const [, { threadIds }] of Object.entries(args.accounts)) {
217
228
  for (const threadId of threadIds) {
218
229
  await setSystemLabel(tx, threadId, 'INBOX');
219
230
  }
220
231
  }
221
- callbacks?.setInbox?.(args);
222
- },
223
- setSeen: async (tx, args) => {
232
+ }),
233
+ setSeen: defineMutator(v.object({
234
+ accounts: accountsSchema,
235
+ seen: v.boolean(),
236
+ }), async ({ tx, args }) => {
224
237
  const allThreadIds = Object.values(args.accounts).flatMap(x => x.threadIds);
225
238
  const threads = await tx.query.thread.where('id', 'IN', allThreadIds).run();
226
239
  const labelCounts = new Map();
@@ -245,22 +258,19 @@ export const createThreadMutators = (_authData, callbacks) => ({
245
258
  id: threadId,
246
259
  seen: args.seen,
247
260
  })));
248
- callbacks?.setSeen?.(args);
249
- },
250
- setSpam: async (tx, args) => {
261
+ }),
262
+ setSpam: defineMutator(baseThreadSchema, async ({ tx, args }) => {
251
263
  for (const [, { threadIds }] of Object.entries(args.accounts)) {
252
264
  for (const threadId of threadIds) {
253
265
  await setSystemLabel(tx, threadId, 'SPAM');
254
266
  }
255
267
  }
256
- callbacks?.setSpam?.(args);
257
- },
258
- setTrash: async (tx, args) => {
268
+ }),
269
+ setTrash: defineMutator(baseThreadSchema, async ({ tx, args }) => {
259
270
  for (const [, { threadIds }] of Object.entries(args.accounts)) {
260
271
  for (const threadId of threadIds) {
261
272
  await setSystemLabel(tx, threadId, 'TRASH');
262
273
  }
263
274
  }
264
- callbacks?.setTrash?.(args);
265
- },
266
- });
275
+ }),
276
+ };
@@ -1,8 +1,32 @@
1
- import type * as v from 'valibot';
2
- import type { AuthData, HandlerMap } from '../../../types';
3
- import type { ZeroMutatorSchemas } from '../../../zero/mutatorSchemas';
4
- export type UserMutatorCallbacks = {
5
- [K in keyof ZeroMutatorSchemas['user']]?: (args: v.InferOutput<ZeroMutatorSchemas['user'][K]['delta']>) => Promise<void>;
1
+ export declare const userMutators: {
2
+ deleteSettingsPushNotificationToken: import("@rocicorp/zero").MutatorDefinition<{
3
+ id: string;
4
+ token: string;
5
+ }, {
6
+ id: string;
7
+ token: string;
8
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
9
+ setSettingsName: import("@rocicorp/zero").MutatorDefinition<{
10
+ id: string;
11
+ name: string | null;
12
+ }, {
13
+ id: string;
14
+ name: string | null;
15
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
16
+ setSettingsPushNotificationToken: import("@rocicorp/zero").MutatorDefinition<{
17
+ id: string;
18
+ pushNotificationToken: {
19
+ createdAt: number;
20
+ id: string;
21
+ token: string;
22
+ };
23
+ }, {
24
+ id: string;
25
+ pushNotificationToken: {
26
+ createdAt: number;
27
+ id: string;
28
+ token: string;
29
+ };
30
+ }, import("../../../zero/mutators/defineMutator").MarcoZeroContext>;
6
31
  };
7
- export declare const createUserMutators: (_authData: AuthData | undefined, callbacks?: UserMutatorCallbacks) => HandlerMap<ZeroMutatorSchemas["user"]>;
8
32
  //# sourceMappingURL=userMutators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userMutators.d.ts","sourceRoot":"","sources":["../../../../src/zero/mutators/userMutators/userMutators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAA;AAEjC,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAE3E,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACxC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KACxD,OAAO,CAAC,IAAI,CAAC;CACnB,CAAA;AAED,eAAO,MAAM,kBAAkB,cAClB,QAAQ,GAAG,SAAS,cACnB,oBAAoB,KAC/B,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAkCtC,CAAA"}
1
+ {"version":3,"file":"userMutators.d.ts","sourceRoot":"","sources":["../../../../src/zero/mutators/userMutators/userMutators.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CxB,CAAA"}
@@ -1,18 +1,33 @@
1
- export const createUserMutators = (_authData, callbacks) => ({
2
- deleteSettingsPushNotificationToken: async (tx, args) => {
1
+ import * as v from 'valibot';
2
+ import { marcoSchemas } from '../../../schemas';
3
+ import { defineMutator } from '../../../zero/mutators/defineMutator';
4
+ const userPushNotificationTokenSchema = v.object({
5
+ createdAt: marcoSchemas.number.positiveInteger(),
6
+ id: marcoSchemas.string.required(),
7
+ token: marcoSchemas.string.required(),
8
+ });
9
+ export const userMutators = {
10
+ deleteSettingsPushNotificationToken: defineMutator(v.object({
11
+ id: marcoSchemas.string.required(),
12
+ token: marcoSchemas.string.required(),
13
+ }), async ({ tx, args }) => {
3
14
  await tx.mutate.userPushNotificationToken.delete({
4
15
  id: args.id,
5
16
  });
6
- callbacks?.deleteSettingsPushNotificationToken?.(args);
7
- },
8
- setSettingsName: async (tx, args) => {
17
+ }),
18
+ setSettingsName: defineMutator(v.object({
19
+ id: marcoSchemas.string.required(),
20
+ name: marcoSchemas.string.nullable(),
21
+ }), async ({ tx, args }) => {
9
22
  await tx.mutate.user.update({
10
23
  id: args.id,
11
24
  name: args.name,
12
25
  });
13
- callbacks?.setSettingsName?.(args);
14
- },
15
- setSettingsPushNotificationToken: async (tx, args) => {
26
+ }),
27
+ setSettingsPushNotificationToken: defineMutator(v.object({
28
+ id: marcoSchemas.string.required(),
29
+ pushNotificationToken: userPushNotificationTokenSchema,
30
+ }), async ({ tx, args }) => {
16
31
  const existing = await tx.query.userPushNotificationToken
17
32
  .where('userId', args.id)
18
33
  .where('token', args.pushNotificationToken.token)
@@ -25,7 +40,6 @@ export const createUserMutators = (_authData, callbacks) => ({
25
40
  token: args.pushNotificationToken.token,
26
41
  userId: args.id,
27
42
  });
28
- callbacks?.setSettingsPushNotificationToken?.(args);
29
43
  }
30
- },
31
- });
44
+ }),
45
+ };