@marcoappio/marco-config 2.0.508 → 2.0.509

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 (100) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/types/Zero.d.ts +0 -17
  4. package/dist/types/Zero.d.ts.map +1 -1
  5. package/dist/zero/index.d.ts +2903 -8808
  6. package/dist/zero/index.d.ts.map +1 -1
  7. package/dist/zero/index.js +6 -17
  8. package/dist/zero/{queries/getThreadList.d.ts → mutators.d.ts} +572 -169
  9. package/dist/zero/{queries/getThreads.d.ts.map → mutators.d.ts.map} +1 -1
  10. package/dist/zero/mutators.js +659 -0
  11. package/dist/zero/mutators.test.d.ts +2 -0
  12. package/dist/zero/mutators.test.d.ts.map +1 -0
  13. package/dist/zero/mutators.test.js +603 -0
  14. package/dist/zero/{queries/getThreads.d.ts → queries.d.ts} +481 -196
  15. package/dist/zero/{queries/getThread.d.ts.map → queries.d.ts.map} +1 -1
  16. package/dist/zero/queries.js +168 -0
  17. package/dist/zero/schema.d.ts +138 -133
  18. package/dist/zero/schema.d.ts.map +1 -1
  19. package/dist/zero/schema.js +1 -1
  20. package/package.json +3 -3
  21. package/dist/zero/mutatorSchemas/account.d.ts +0 -80
  22. package/dist/zero/mutatorSchemas/account.d.ts.map +0 -1
  23. package/dist/zero/mutatorSchemas/account.js +0 -66
  24. package/dist/zero/mutatorSchemas/draft.d.ts +0 -150
  25. package/dist/zero/mutatorSchemas/draft.d.ts.map +0 -1
  26. package/dist/zero/mutatorSchemas/draft.js +0 -104
  27. package/dist/zero/mutatorSchemas/index.d.ts +0 -323
  28. package/dist/zero/mutatorSchemas/index.d.ts.map +0 -1
  29. package/dist/zero/mutatorSchemas/index.js +0 -10
  30. package/dist/zero/mutatorSchemas/thread.d.ts +0 -71
  31. package/dist/zero/mutatorSchemas/thread.d.ts.map +0 -1
  32. package/dist/zero/mutatorSchemas/thread.js +0 -47
  33. package/dist/zero/mutatorSchemas/user.d.ts +0 -26
  34. package/dist/zero/mutatorSchemas/user.d.ts.map +0 -1
  35. package/dist/zero/mutatorSchemas/user.js +0 -27
  36. package/dist/zero/mutators/accountMutators/accountMutators.d.ts +0 -4
  37. package/dist/zero/mutators/accountMutators/accountMutators.d.ts.map +0 -1
  38. package/dist/zero/mutators/accountMutators/accountMutators.js +0 -103
  39. package/dist/zero/mutators/accountMutators/accountMutators.test.d.ts +0 -2
  40. package/dist/zero/mutators/accountMutators/accountMutators.test.d.ts.map +0 -1
  41. package/dist/zero/mutators/accountMutators/accountMutators.test.js +0 -372
  42. package/dist/zero/mutators/accountMutators/index.d.ts +0 -2
  43. package/dist/zero/mutators/accountMutators/index.d.ts.map +0 -1
  44. package/dist/zero/mutators/accountMutators/index.js +0 -1
  45. package/dist/zero/mutators/draftMutators/draftMutators.d.ts +0 -4
  46. package/dist/zero/mutators/draftMutators/draftMutators.d.ts.map +0 -1
  47. package/dist/zero/mutators/draftMutators/draftMutators.js +0 -142
  48. package/dist/zero/mutators/draftMutators/draftMutators.test.d.ts +0 -2
  49. package/dist/zero/mutators/draftMutators/draftMutators.test.d.ts.map +0 -1
  50. package/dist/zero/mutators/draftMutators/draftMutators.test.js +0 -416
  51. package/dist/zero/mutators/draftMutators/index.d.ts +0 -2
  52. package/dist/zero/mutators/draftMutators/index.d.ts.map +0 -1
  53. package/dist/zero/mutators/draftMutators/index.js +0 -1
  54. package/dist/zero/mutators/index.d.ts +0 -3
  55. package/dist/zero/mutators/index.d.ts.map +0 -1
  56. package/dist/zero/mutators/index.js +0 -1
  57. package/dist/zero/mutators/mutators.d.ts +0 -18
  58. package/dist/zero/mutators/mutators.d.ts.map +0 -1
  59. package/dist/zero/mutators/mutators.js +0 -39
  60. package/dist/zero/mutators/threadMutators/index.d.ts +0 -2
  61. package/dist/zero/mutators/threadMutators/index.d.ts.map +0 -1
  62. package/dist/zero/mutators/threadMutators/index.js +0 -1
  63. package/dist/zero/mutators/threadMutators/threadMutators.d.ts +0 -8
  64. package/dist/zero/mutators/threadMutators/threadMutators.d.ts.map +0 -1
  65. package/dist/zero/mutators/threadMutators/threadMutators.js +0 -257
  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/index.d.ts +0 -2
  70. package/dist/zero/mutators/userMutators/index.d.ts.map +0 -1
  71. package/dist/zero/mutators/userMutators/index.js +0 -1
  72. package/dist/zero/mutators/userMutators/userMutators.d.ts +0 -4
  73. package/dist/zero/mutators/userMutators/userMutators.d.ts.map +0 -1
  74. package/dist/zero/mutators/userMutators/userMutators.js +0 -28
  75. package/dist/zero/mutators/userMutators/userMutators.test.d.ts +0 -2
  76. package/dist/zero/mutators/userMutators/userMutators.test.d.ts.map +0 -1
  77. package/dist/zero/mutators/userMutators/userMutators.test.js +0 -84
  78. package/dist/zero/queries/getAccounts.d.ts +0 -1060
  79. package/dist/zero/queries/getAccounts.d.ts.map +0 -1
  80. package/dist/zero/queries/getAccounts.js +0 -3
  81. package/dist/zero/queries/getContacts.d.ts +0 -1040
  82. package/dist/zero/queries/getContacts.d.ts.map +0 -1
  83. package/dist/zero/queries/getContacts.js +0 -37
  84. package/dist/zero/queries/getDrafts.d.ts +0 -1061
  85. package/dist/zero/queries/getDrafts.d.ts.map +0 -1
  86. package/dist/zero/queries/getDrafts.js +0 -24
  87. package/dist/zero/queries/getThread.d.ts +0 -1072
  88. package/dist/zero/queries/getThread.js +0 -14
  89. package/dist/zero/queries/getThreadByMessageId.d.ts +0 -1056
  90. package/dist/zero/queries/getThreadByMessageId.d.ts.map +0 -1
  91. package/dist/zero/queries/getThreadByMessageId.js +0 -13
  92. package/dist/zero/queries/getThreadList.d.ts.map +0 -1
  93. package/dist/zero/queries/getThreadList.js +0 -57
  94. package/dist/zero/queries/getThreads.js +0 -59
  95. package/dist/zero/queries/getUser.d.ts +0 -1074
  96. package/dist/zero/queries/getUser.d.ts.map +0 -1
  97. package/dist/zero/queries/getUser.js +0 -7
  98. package/dist/zero/queries/index.d.ts +0 -1032
  99. package/dist/zero/queries/index.d.ts.map +0 -1
  100. package/dist/zero/queries/index.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"getThread.d.ts","sourceRoot":"","sources":["../../../src/zero/queries/getThread.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAGlE,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AASD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAMrB,CAAA"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/zero/queries.ts"],"names":[],"mappings":"AAQA,KAAK,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAQjC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwOlB,CAAA"}
@@ -0,0 +1,168 @@
1
+ import { createBuilder, defineQueries, defineQueryWithType } from '@rocicorp/zero';
2
+ import * as v from 'valibot';
3
+ import { DRAFT_STATUSES } from '../types';
4
+ import { threadsUtils } from '../utils/threads';
5
+ import { schema } from './schema';
6
+ const zql = createBuilder(schema);
7
+ const defineQuery = defineQueryWithType();
8
+ const MAX_LIMIT = 1000;
9
+ const DEFAULT_LIMIT = 50;
10
+ export const queries = defineQueries({
11
+ getAccounts: defineQuery(({ ctx }) => zql.account.where('userId', ctx.userId).related('aliases').related('primaryAlias').related('labels')),
12
+ getContacts: defineQuery(v.object({
13
+ limit: v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(MAX_LIMIT)), DEFAULT_LIMIT),
14
+ search: v.optional(v.string()),
15
+ where: v.optional(v.object({
16
+ emailAddress: v.optional(v.string()),
17
+ ids: v.optional(v.array(v.string())),
18
+ name: v.optional(v.string()),
19
+ })),
20
+ }), ({ ctx, args: { search, limit, where } }) => {
21
+ let query = zql.contact.where('userId', ctx.userId).orderBy('emailAddress', 'asc');
22
+ if (where?.ids && where.ids.length > 0) {
23
+ query = query.where('id', 'IN', where.ids);
24
+ }
25
+ if (where?.emailAddress) {
26
+ query = query.where('emailAddress', 'ILIKE', where.emailAddress);
27
+ }
28
+ if (where?.name) {
29
+ query = query.where('name', 'ILIKE', where.name);
30
+ }
31
+ if (search) {
32
+ const sanitizedTerm = search.trim().toLowerCase();
33
+ const tokens = sanitizedTerm.split(/\s+/).filter(Boolean);
34
+ if (tokens.length > 0) {
35
+ query = query.where(({ and, or, cmp }) => and(...tokens.map(x => or(cmp('name', 'ILIKE', `%${x}%`), cmp('emailAddress', 'ILIKE', `%${x}%`)))));
36
+ }
37
+ }
38
+ return query.limit(limit);
39
+ }),
40
+ getDrafts: defineQuery(v.object({
41
+ accountId: v.optional(v.string()),
42
+ limit: v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(MAX_LIMIT)), DEFAULT_LIMIT),
43
+ status: v.optional(v.picklist(DRAFT_STATUSES)),
44
+ }), ({ ctx, args: { status, accountId, limit } }) => {
45
+ let query = zql.draft.where('userId', ctx.userId).related('attachments').orderBy('updatedAt', 'desc');
46
+ if (status) {
47
+ query = query.where('status', status);
48
+ }
49
+ if (accountId) {
50
+ query = query.where('accountId', accountId);
51
+ }
52
+ return query.limit(limit);
53
+ }),
54
+ getThread: defineQuery(v.object({
55
+ id: v.string(),
56
+ }), ({ ctx, args: { id } }) => zql.thread
57
+ .where('userId', ctx.userId)
58
+ .where('id', id)
59
+ .related('messages', m => m.related('recipients').related('attachments').orderBy('envelopeDate', 'asc'))
60
+ .one()),
61
+ getThreadByMessageId: defineQuery(v.object({
62
+ messageId: v.string(),
63
+ }), ({ ctx, args: { messageId } }) => zql.threadMessage
64
+ .where('id', messageId)
65
+ .related('thread', t => t.where('userId', ctx.userId))
66
+ .one()),
67
+ getThreadList: defineQuery(v.object({
68
+ labelIds: v.pipe(v.array(v.string()), v.minLength(1)),
69
+ limit: v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(MAX_LIMIT)), DEFAULT_LIMIT),
70
+ search: v.optional(v.string()),
71
+ where: v.optional(v.object({
72
+ flagged: v.optional(v.boolean()),
73
+ id: v.optional(v.string()),
74
+ messageIds: v.optional(v.array(v.string())),
75
+ participants: v.optional(v.array(v.string())),
76
+ seen: v.optional(v.boolean()),
77
+ })),
78
+ }), ({ ctx, args: { labelIds, search, limit, where } }) => {
79
+ const query = zql.threadByLabel
80
+ .where('labelId', 'IN', labelIds)
81
+ .orderBy('latestMessageDate', 'desc')
82
+ .limit(limit)
83
+ .related('thread', t => {
84
+ let threadQuery = t.where('userId', ctx.userId);
85
+ if (where?.id) {
86
+ threadQuery = threadQuery.where('id', where.id);
87
+ }
88
+ if (typeof where?.flagged === 'boolean') {
89
+ threadQuery = threadQuery.where('flagged', where.flagged);
90
+ }
91
+ if (typeof where?.seen === 'boolean') {
92
+ threadQuery = threadQuery.where('seen', where.seen);
93
+ }
94
+ if (where?.messageIds && where.messageIds.length > 0) {
95
+ for (const messageId of where.messageIds) {
96
+ threadQuery = threadQuery.whereExists('messages', x => x.where('id', messageId));
97
+ }
98
+ }
99
+ if (where?.participants && where.participants.length > 0) {
100
+ for (const participant of where.participants) {
101
+ threadQuery = threadQuery.whereExists('messages', x => x.whereExists('recipients', y => y.where('emailAddress', participant)));
102
+ }
103
+ }
104
+ if (search) {
105
+ const tokens = threadsUtils.processSearchTerm(search);
106
+ if (tokens.length > 0) {
107
+ threadQuery = threadQuery.where(({ and, cmp }) => and(...tokens.map(x => cmp('words', 'ILIKE', `%${x}%`))));
108
+ }
109
+ }
110
+ return threadQuery;
111
+ });
112
+ return query;
113
+ }),
114
+ getThreads: defineQuery(v.object({
115
+ labelIds: v.pipe(v.array(v.string()), v.minLength(1)),
116
+ limit: v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(MAX_LIMIT)), DEFAULT_LIMIT),
117
+ search: v.optional(v.string()),
118
+ where: v.optional(v.object({
119
+ flagged: v.optional(v.boolean()),
120
+ id: v.optional(v.string()),
121
+ messageIds: v.optional(v.array(v.string())),
122
+ participants: v.optional(v.array(v.string())),
123
+ seen: v.optional(v.boolean()),
124
+ })),
125
+ }), ({ ctx, args: { labelIds, search, limit, where } }) => {
126
+ const query = zql.threadByLabel
127
+ .where('labelId', 'IN', labelIds)
128
+ .orderBy('latestMessageDate', 'desc')
129
+ .limit(limit)
130
+ .related('thread', t => {
131
+ let threadQuery = t
132
+ .where('userId', ctx.userId)
133
+ .related('messages', x => x.related('recipients').related('attachments').orderBy('envelopeDate', 'asc'));
134
+ if (where?.id) {
135
+ threadQuery = threadQuery.where('id', where.id);
136
+ }
137
+ if (typeof where?.flagged === 'boolean') {
138
+ threadQuery = threadQuery.where('flagged', where.flagged);
139
+ }
140
+ if (typeof where?.seen === 'boolean') {
141
+ threadQuery = threadQuery.where('seen', where.seen);
142
+ }
143
+ if (where?.messageIds && where.messageIds.length > 0) {
144
+ for (const messageId of where.messageIds) {
145
+ threadQuery = threadQuery.whereExists('messages', x => x.where('id', messageId));
146
+ }
147
+ }
148
+ if (where?.participants && where.participants.length > 0) {
149
+ for (const participant of where.participants) {
150
+ threadQuery = threadQuery.whereExists('messages', x => x.whereExists('recipients', y => y.where('emailAddress', participant)));
151
+ }
152
+ }
153
+ if (search) {
154
+ const tokens = threadsUtils.processSearchTerm(search);
155
+ if (tokens.length > 0) {
156
+ threadQuery = threadQuery.where(({ and, cmp }) => and(...tokens.map(x => cmp('words', 'ILIKE', `%${x}%`))));
157
+ }
158
+ }
159
+ return threadQuery;
160
+ });
161
+ return query;
162
+ }),
163
+ getUser: defineQuery(({ ctx }) => zql.user
164
+ .where('id', ctx.userId)
165
+ .limit(1)
166
+ .related('accounts', x => x.related('aliases').related('primaryAlias').related('labels'))
167
+ .related('pushNotificationTokens')),
168
+ });