@marcoappio/marco-config 2.0.492 → 2.0.494

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 (71) hide show
  1. package/dist/types/Zero.d.ts +8 -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/crud.d.ts +1024 -0
  7. package/dist/zero/crud.d.ts.map +1 -0
  8. package/dist/zero/crud.js +3 -0
  9. package/dist/zero/index.d.ts +1621 -1447
  10. package/dist/zero/index.d.ts.map +1 -1
  11. package/dist/zero/index.js +2 -4
  12. package/dist/zero/mutators/accountMutators/accountMutators.d.ts +127 -3
  13. package/dist/zero/mutators/accountMutators/accountMutators.d.ts.map +1 -1
  14. package/dist/zero/mutators/accountMutators/accountMutators.js +88 -53
  15. package/dist/zero/mutators/draftMutators/draftMutators.d.ts +185 -3
  16. package/dist/zero/mutators/draftMutators/draftMutators.d.ts.map +1 -1
  17. package/dist/zero/mutators/draftMutators/draftMutators.js +124 -51
  18. package/dist/zero/mutators/index.d.ts +1 -1
  19. package/dist/zero/mutators/index.d.ts.map +1 -1
  20. package/dist/zero/mutators/index.js +1 -1
  21. package/dist/zero/mutators/mutators.d.ts +497 -17
  22. package/dist/zero/mutators/mutators.d.ts.map +1 -1
  23. package/dist/zero/mutators/mutators.js +10 -38
  24. package/dist/zero/mutators/threadMutators/threadMutators.d.ts +147 -6
  25. package/dist/zero/mutators/threadMutators/threadMutators.d.ts.map +1 -1
  26. package/dist/zero/mutators/threadMutators/threadMutators.js +79 -59
  27. package/dist/zero/mutators/userMutators/userMutators.d.ts +37 -3
  28. package/dist/zero/mutators/userMutators/userMutators.d.ts.map +1 -1
  29. package/dist/zero/mutators/userMutators/userMutators.js +32 -14
  30. package/dist/zero/queries/getAccounts.d.ts +135 -135
  31. package/dist/zero/queries/getContacts.d.ts +135 -135
  32. package/dist/zero/queries/getDrafts.d.ts +135 -135
  33. package/dist/zero/queries/getThread.d.ts +135 -135
  34. package/dist/zero/queries/getThreadList.d.ts +135 -135
  35. package/dist/zero/queries/getThreads.d.ts +135 -135
  36. package/dist/zero/queries/getUser.d.ts +135 -135
  37. package/dist/zero/queries/index.d.ts +133 -133
  38. package/dist/zero/schema.d.ts +133 -133
  39. package/dist/zero/schema.d.ts.map +1 -1
  40. package/dist/zero/schema.js +0 -1
  41. package/package.json +2 -2
  42. package/dist/types/AuthData.d.ts +0 -4
  43. package/dist/types/AuthData.d.ts.map +0 -1
  44. package/dist/types/AuthData.js +0 -1
  45. package/dist/zero/mutatorSchemas/account.d.ts +0 -80
  46. package/dist/zero/mutatorSchemas/account.d.ts.map +0 -1
  47. package/dist/zero/mutatorSchemas/account.js +0 -66
  48. package/dist/zero/mutatorSchemas/draft.d.ts +0 -150
  49. package/dist/zero/mutatorSchemas/draft.d.ts.map +0 -1
  50. package/dist/zero/mutatorSchemas/draft.js +0 -104
  51. package/dist/zero/mutatorSchemas/index.d.ts +0 -323
  52. package/dist/zero/mutatorSchemas/index.d.ts.map +0 -1
  53. package/dist/zero/mutatorSchemas/index.js +0 -10
  54. package/dist/zero/mutatorSchemas/thread.d.ts +0 -71
  55. package/dist/zero/mutatorSchemas/thread.d.ts.map +0 -1
  56. package/dist/zero/mutatorSchemas/thread.js +0 -47
  57. package/dist/zero/mutatorSchemas/user.d.ts +0 -26
  58. package/dist/zero/mutatorSchemas/user.d.ts.map +0 -1
  59. package/dist/zero/mutatorSchemas/user.js +0 -27
  60. package/dist/zero/mutators/accountMutators/accountMutators.test.d.ts +0 -2
  61. package/dist/zero/mutators/accountMutators/accountMutators.test.d.ts.map +0 -1
  62. package/dist/zero/mutators/accountMutators/accountMutators.test.js +0 -372
  63. package/dist/zero/mutators/draftMutators/draftMutators.test.d.ts +0 -2
  64. package/dist/zero/mutators/draftMutators/draftMutators.test.d.ts.map +0 -1
  65. package/dist/zero/mutators/draftMutators/draftMutators.test.js +0 -416
  66. package/dist/zero/mutators/threadMutators/threadMutators.test.d.ts +0 -2
  67. package/dist/zero/mutators/threadMutators/threadMutators.test.d.ts.map +0 -1
  68. package/dist/zero/mutators/threadMutators/threadMutators.test.js +0 -755
  69. package/dist/zero/mutators/userMutators/userMutators.test.d.ts +0 -2
  70. package/dist/zero/mutators/userMutators/userMutators.test.d.ts.map +0 -1
  71. package/dist/zero/mutators/userMutators/userMutators.test.js +0 -84
@@ -1,7 +1,58 @@
1
- import { MutationError } from '../../../types';
1
+ import { defineMutator } from '@rocicorp/zero';
2
+ import * as v from 'valibot';
3
+ import { marcoSchemas } from '../../../schemas';
4
+ import { DRAFT_ATTACHMENT_UPLOAD_STATUSES, DRAFT_STATUSES, DRAFT_TYPES, MutationError } from '../../../types';
2
5
  import { stringPatch } from '../../../utils';
3
- export const createDraftMutators = (authData) => ({
4
- cancelSend: async (tx, args) => {
6
+ import { zeroCRUD } from '../../../zero/crud';
7
+ const draftStatusSchema = v.picklist(DRAFT_STATUSES);
8
+ const draftTypeSchema = v.picklist(DRAFT_TYPES);
9
+ const draftBodySchema = v.object({
10
+ bcc: v.array(marcoSchemas.string.email()),
11
+ cc: v.array(marcoSchemas.string.email()),
12
+ content: v.pipe(v.string(), v.maxLength(384000)),
13
+ subject: marcoSchemas.string.nullable(),
14
+ to: v.array(marcoSchemas.string.email()),
15
+ });
16
+ const draftAttachmentSchema = v.object({
17
+ fileName: marcoSchemas.string.required(),
18
+ id: marcoSchemas.string.required(),
19
+ mimeType: marcoSchemas.string.required(),
20
+ status: v.picklist(DRAFT_ATTACHMENT_UPLOAD_STATUSES),
21
+ totalSize: marcoSchemas.number.positiveInteger(),
22
+ });
23
+ const draftScheduleSchema = v.union([
24
+ v.object({
25
+ id: marcoSchemas.string.required(),
26
+ kind: v.literal('IMMEDIATE'),
27
+ undoMs: marcoSchemas.number.positiveInteger(),
28
+ updatedAt: marcoSchemas.number.positiveInteger(),
29
+ }),
30
+ v.object({
31
+ id: marcoSchemas.string.required(),
32
+ kind: v.literal('SCHEDULED'),
33
+ scheduledFor: marcoSchemas.number.positiveInteger(),
34
+ updatedAt: marcoSchemas.number.positiveInteger(),
35
+ }),
36
+ ]);
37
+ const draftModelSchema = v.object({
38
+ accountId: marcoSchemas.string.required(),
39
+ attachments: v.array(draftAttachmentSchema),
40
+ body: draftBodySchema,
41
+ error: marcoSchemas.string.nullable(),
42
+ from: marcoSchemas.string.email(),
43
+ fromName: marcoSchemas.string.nullable(),
44
+ id: marcoSchemas.string.required(),
45
+ referencedMessageId: marcoSchemas.string.nullable(),
46
+ scheduledFor: v.nullable(marcoSchemas.number.positiveInteger()),
47
+ status: draftStatusSchema,
48
+ type: draftTypeSchema,
49
+ updatedAt: marcoSchemas.number.positiveInteger(),
50
+ });
51
+ export const draftMutators = {
52
+ cancelSend: defineMutator(v.object({
53
+ id: marcoSchemas.string.required(),
54
+ updatedAt: marcoSchemas.number.positiveInteger(),
55
+ }), async ({ tx, args }) => {
5
56
  const draft = await tx.query.draft.where('id', args.id).one().run();
6
57
  if (!draft) {
7
58
  throw new Error(MutationError.ENTITY_NOT_FOUND);
@@ -9,32 +60,33 @@ export const createDraftMutators = (authData) => ({
9
60
  if (draft.status === 'SEND_CONFIRMED') {
10
61
  throw new Error(MutationError.ALREADY_APPLIED);
11
62
  }
12
- await tx.mutate.draft.update({
63
+ await tx.mutate(zeroCRUD.draft.update({
13
64
  id: args.id,
14
65
  scheduledFor: null,
15
66
  status: 'DRAFT',
16
67
  updatedAt: args.updatedAt,
17
- });
18
- },
19
- createAttachment: async (tx, args) => {
20
- await tx.mutate.draftAttachment.insert({
68
+ }));
69
+ }),
70
+ createAttachment: defineMutator(v.object({
71
+ attachment: draftAttachmentSchema,
72
+ id: marcoSchemas.string.required(),
73
+ updatedAt: marcoSchemas.number.positiveInteger(),
74
+ }), async ({ tx, args }) => {
75
+ await tx.mutate(zeroCRUD.draftAttachment.insert({
21
76
  draftId: args.id,
22
77
  fileName: args.attachment.fileName,
23
78
  id: args.attachment.id,
24
79
  mimeType: args.attachment.mimeType,
25
80
  status: args.attachment.status,
26
81
  totalSize: args.attachment.totalSize,
27
- });
28
- await tx.mutate.draft.update({
82
+ }));
83
+ await tx.mutate(zeroCRUD.draft.update({
29
84
  id: args.id,
30
85
  updatedAt: args.updatedAt,
31
- });
32
- },
33
- createDraft: async (tx, args) => {
34
- if (!authData) {
35
- throw new Error(MutationError.AUTHENTICATION_REQUIRED);
36
- }
37
- await tx.mutate.draft.insert({
86
+ }));
87
+ }),
88
+ createDraft: defineMutator(draftModelSchema, async ({ tx, ctx: { userId }, args }) => {
89
+ await tx.mutate(zeroCRUD.draft.insert({
38
90
  accountId: args.accountId,
39
91
  body: {
40
92
  bcc: args.body.bcc,
@@ -53,71 +105,85 @@ export const createDraftMutators = (authData) => ({
53
105
  subject: args.body.subject,
54
106
  type: args.type,
55
107
  updatedAt: args.updatedAt,
56
- userId: authData.sub,
57
- });
108
+ userId,
109
+ }));
58
110
  for (const attachment of args.attachments) {
59
- await tx.mutate.draftAttachment.insert({
111
+ await tx.mutate(zeroCRUD.draftAttachment.insert({
60
112
  draftId: args.id,
61
113
  fileName: attachment.fileName,
62
114
  id: attachment.id,
63
115
  mimeType: attachment.mimeType,
64
116
  status: attachment.status,
65
117
  totalSize: attachment.totalSize,
66
- });
118
+ }));
67
119
  }
68
- },
69
- deleteAttachment: async (tx, args) => {
70
- await tx.mutate.draftAttachment.delete({
120
+ }),
121
+ deleteAttachment: defineMutator(v.object({
122
+ attachmentId: marcoSchemas.string.required(),
123
+ id: marcoSchemas.string.required(),
124
+ updatedAt: marcoSchemas.number.positiveInteger(),
125
+ }), async ({ tx, args }) => {
126
+ await tx.mutate(zeroCRUD.draftAttachment.delete({
71
127
  id: args.attachmentId,
72
- });
73
- await tx.mutate.draft.update({
128
+ }));
129
+ await tx.mutate(zeroCRUD.draft.update({
74
130
  id: args.id,
75
131
  updatedAt: args.updatedAt,
76
- });
77
- },
78
- deleteDraft: async (tx, args) => {
79
- await tx.mutate.draft.delete({
132
+ }));
133
+ }),
134
+ deleteDraft: defineMutator(v.object({
135
+ id: marcoSchemas.string.required(),
136
+ }), async ({ tx, args }) => {
137
+ await tx.mutate(zeroCRUD.draft.delete({
80
138
  id: args.id,
81
- });
82
- },
83
- scheduleSend: async (tx, args) => {
139
+ }));
140
+ }),
141
+ scheduleSend: defineMutator(draftScheduleSchema, async ({ tx, args }) => {
84
142
  if (args.kind === 'IMMEDIATE') {
85
- await tx.mutate.draft.update({
143
+ await tx.mutate(zeroCRUD.draft.update({
86
144
  id: args.id,
87
145
  scheduledFor: args.updatedAt + args.undoMs,
88
146
  status: 'SEND_REQUESTED',
89
147
  updatedAt: args.updatedAt,
90
- });
148
+ }));
91
149
  }
92
150
  else {
93
- await tx.mutate.draft.update({
151
+ await tx.mutate(zeroCRUD.draft.update({
94
152
  id: args.id,
95
153
  scheduledFor: args.scheduledFor,
96
154
  status: 'SEND_REQUESTED',
97
155
  updatedAt: args.updatedAt,
98
- });
156
+ }));
99
157
  }
100
- },
101
- setContent: async (tx, args) => {
158
+ }),
159
+ setContent: defineMutator(v.object({
160
+ id: marcoSchemas.string.required(),
161
+ patch: marcoSchemas.drafts.contentPatch.patch(),
162
+ updatedAt: marcoSchemas.number.positiveInteger(),
163
+ }), async ({ tx, args }) => {
102
164
  const draft = await tx.query.draft.where('id', args.id).one().run();
103
165
  if (!draft) {
104
166
  throw new Error(MutationError.ENTITY_NOT_FOUND);
105
167
  }
106
- await tx.mutate.draft.update({
168
+ await tx.mutate(zeroCRUD.draft.update({
107
169
  body: {
108
170
  ...draft.body,
109
171
  content: stringPatch.apply(typeof draft.body?.content === 'string' ? draft.body.content : '', args.patch),
110
172
  },
111
173
  id: args.id,
112
174
  updatedAt: args.updatedAt,
113
- });
114
- },
115
- setEnvelope: async (tx, args) => {
175
+ }));
176
+ }),
177
+ setEnvelope: defineMutator(v.object({
178
+ envelope: v.omit(draftBodySchema, ['content']),
179
+ id: marcoSchemas.string.required(),
180
+ updatedAt: marcoSchemas.number.positiveInteger(),
181
+ }), async ({ tx, args }) => {
116
182
  const draft = await tx.query.draft.where('id', args.id).one().run();
117
183
  if (!draft) {
118
184
  throw new Error(MutationError.ENTITY_NOT_FOUND);
119
185
  }
120
- await tx.mutate.draft.update({
186
+ await tx.mutate(zeroCRUD.draft.update({
121
187
  body: {
122
188
  bcc: args.envelope.bcc,
123
189
  cc: args.envelope.cc,
@@ -127,16 +193,23 @@ export const createDraftMutators = (authData) => ({
127
193
  id: args.id,
128
194
  subject: args.envelope.subject,
129
195
  updatedAt: args.updatedAt,
130
- });
131
- },
132
- setFrom: async (tx, args) => {
133
- await tx.mutate.draft.update({
196
+ }));
197
+ }),
198
+ setFrom: defineMutator(v.object({
199
+ accountId: marcoSchemas.string.required(),
200
+ aliasId: marcoSchemas.string.required(),
201
+ from: marcoSchemas.string.email(),
202
+ fromName: marcoSchemas.string.nullable(),
203
+ id: marcoSchemas.string.required(),
204
+ updatedAt: marcoSchemas.number.positiveInteger(),
205
+ }), async ({ tx, args }) => {
206
+ await tx.mutate(zeroCRUD.draft.update({
134
207
  accountId: args.accountId,
135
208
  fromAliasId: args.aliasId,
136
209
  fromEmail: args.from,
137
210
  fromName: args.fromName,
138
211
  id: args.id,
139
212
  updatedAt: args.updatedAt,
140
- });
141
- },
142
- });
213
+ }));
214
+ }),
215
+ };
@@ -1,3 +1,3 @@
1
1
  export type { MarcoZeroMutators } from './mutators';
2
- export { createMutators, ZeroMutatorValidationError } from './mutators';
2
+ export { mutators } from './mutators';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/zero/mutators/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/zero/mutators/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- export { createMutators, ZeroMutatorValidationError } from './mutators';
1
+ export { mutators } from './mutators';