@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.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types/Zero.d.ts +0 -17
- package/dist/types/Zero.d.ts.map +1 -1
- package/dist/zero/index.d.ts +2903 -8808
- package/dist/zero/index.d.ts.map +1 -1
- package/dist/zero/index.js +6 -17
- package/dist/zero/{queries/getThreadList.d.ts → mutators.d.ts} +572 -169
- package/dist/zero/{queries/getThreads.d.ts.map → mutators.d.ts.map} +1 -1
- package/dist/zero/mutators.js +659 -0
- package/dist/zero/mutators.test.d.ts +2 -0
- package/dist/zero/mutators.test.d.ts.map +1 -0
- package/dist/zero/mutators.test.js +603 -0
- package/dist/zero/{queries/getThreads.d.ts → queries.d.ts} +481 -196
- package/dist/zero/{queries/getThread.d.ts.map → queries.d.ts.map} +1 -1
- package/dist/zero/queries.js +168 -0
- package/dist/zero/schema.d.ts +138 -133
- package/dist/zero/schema.d.ts.map +1 -1
- package/dist/zero/schema.js +1 -1
- package/package.json +3 -3
- package/dist/zero/mutatorSchemas/account.d.ts +0 -80
- package/dist/zero/mutatorSchemas/account.d.ts.map +0 -1
- package/dist/zero/mutatorSchemas/account.js +0 -66
- package/dist/zero/mutatorSchemas/draft.d.ts +0 -150
- package/dist/zero/mutatorSchemas/draft.d.ts.map +0 -1
- package/dist/zero/mutatorSchemas/draft.js +0 -104
- package/dist/zero/mutatorSchemas/index.d.ts +0 -323
- package/dist/zero/mutatorSchemas/index.d.ts.map +0 -1
- package/dist/zero/mutatorSchemas/index.js +0 -10
- package/dist/zero/mutatorSchemas/thread.d.ts +0 -71
- package/dist/zero/mutatorSchemas/thread.d.ts.map +0 -1
- package/dist/zero/mutatorSchemas/thread.js +0 -47
- package/dist/zero/mutatorSchemas/user.d.ts +0 -26
- package/dist/zero/mutatorSchemas/user.d.ts.map +0 -1
- package/dist/zero/mutatorSchemas/user.js +0 -27
- package/dist/zero/mutators/accountMutators/accountMutators.d.ts +0 -4
- package/dist/zero/mutators/accountMutators/accountMutators.d.ts.map +0 -1
- package/dist/zero/mutators/accountMutators/accountMutators.js +0 -103
- package/dist/zero/mutators/accountMutators/accountMutators.test.d.ts +0 -2
- package/dist/zero/mutators/accountMutators/accountMutators.test.d.ts.map +0 -1
- package/dist/zero/mutators/accountMutators/accountMutators.test.js +0 -372
- package/dist/zero/mutators/accountMutators/index.d.ts +0 -2
- package/dist/zero/mutators/accountMutators/index.d.ts.map +0 -1
- package/dist/zero/mutators/accountMutators/index.js +0 -1
- package/dist/zero/mutators/draftMutators/draftMutators.d.ts +0 -4
- package/dist/zero/mutators/draftMutators/draftMutators.d.ts.map +0 -1
- package/dist/zero/mutators/draftMutators/draftMutators.js +0 -142
- package/dist/zero/mutators/draftMutators/draftMutators.test.d.ts +0 -2
- package/dist/zero/mutators/draftMutators/draftMutators.test.d.ts.map +0 -1
- package/dist/zero/mutators/draftMutators/draftMutators.test.js +0 -416
- package/dist/zero/mutators/draftMutators/index.d.ts +0 -2
- package/dist/zero/mutators/draftMutators/index.d.ts.map +0 -1
- package/dist/zero/mutators/draftMutators/index.js +0 -1
- package/dist/zero/mutators/index.d.ts +0 -3
- package/dist/zero/mutators/index.d.ts.map +0 -1
- package/dist/zero/mutators/index.js +0 -1
- package/dist/zero/mutators/mutators.d.ts +0 -18
- package/dist/zero/mutators/mutators.d.ts.map +0 -1
- package/dist/zero/mutators/mutators.js +0 -39
- package/dist/zero/mutators/threadMutators/index.d.ts +0 -2
- package/dist/zero/mutators/threadMutators/index.d.ts.map +0 -1
- package/dist/zero/mutators/threadMutators/index.js +0 -1
- package/dist/zero/mutators/threadMutators/threadMutators.d.ts +0 -8
- package/dist/zero/mutators/threadMutators/threadMutators.d.ts.map +0 -1
- package/dist/zero/mutators/threadMutators/threadMutators.js +0 -257
- package/dist/zero/mutators/threadMutators/threadMutators.test.d.ts +0 -2
- package/dist/zero/mutators/threadMutators/threadMutators.test.d.ts.map +0 -1
- package/dist/zero/mutators/threadMutators/threadMutators.test.js +0 -755
- package/dist/zero/mutators/userMutators/index.d.ts +0 -2
- package/dist/zero/mutators/userMutators/index.d.ts.map +0 -1
- package/dist/zero/mutators/userMutators/index.js +0 -1
- package/dist/zero/mutators/userMutators/userMutators.d.ts +0 -4
- package/dist/zero/mutators/userMutators/userMutators.d.ts.map +0 -1
- package/dist/zero/mutators/userMutators/userMutators.js +0 -28
- package/dist/zero/mutators/userMutators/userMutators.test.d.ts +0 -2
- package/dist/zero/mutators/userMutators/userMutators.test.d.ts.map +0 -1
- package/dist/zero/mutators/userMutators/userMutators.test.js +0 -84
- package/dist/zero/queries/getAccounts.d.ts +0 -1060
- package/dist/zero/queries/getAccounts.d.ts.map +0 -1
- package/dist/zero/queries/getAccounts.js +0 -3
- package/dist/zero/queries/getContacts.d.ts +0 -1040
- package/dist/zero/queries/getContacts.d.ts.map +0 -1
- package/dist/zero/queries/getContacts.js +0 -37
- package/dist/zero/queries/getDrafts.d.ts +0 -1061
- package/dist/zero/queries/getDrafts.d.ts.map +0 -1
- package/dist/zero/queries/getDrafts.js +0 -24
- package/dist/zero/queries/getThread.d.ts +0 -1072
- package/dist/zero/queries/getThread.js +0 -14
- package/dist/zero/queries/getThreadByMessageId.d.ts +0 -1056
- package/dist/zero/queries/getThreadByMessageId.d.ts.map +0 -1
- package/dist/zero/queries/getThreadByMessageId.js +0 -13
- package/dist/zero/queries/getThreadList.d.ts.map +0 -1
- package/dist/zero/queries/getThreadList.js +0 -57
- package/dist/zero/queries/getThreads.js +0 -59
- package/dist/zero/queries/getUser.d.ts +0 -1074
- package/dist/zero/queries/getUser.d.ts.map +0 -1
- package/dist/zero/queries/getUser.js +0 -7
- package/dist/zero/queries/index.d.ts +0 -1032
- package/dist/zero/queries/index.d.ts.map +0 -1
- package/dist/zero/queries/index.js +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
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
|
+
});
|