@driveflux/api-functions 0.0.7-next.9 → 1.0.0
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/auth/confirm.js +24 -29
- package/dist/auth/emails.js +12 -13
- package/dist/auth/formatter.js +5 -5
- package/dist/auth/otp.js +66 -50
- package/dist/auth/register.d.ts +1 -1
- package/dist/auth/register.js +42 -34
- package/dist/auth/tokens.d.ts +3 -3
- package/dist/auth/tokens.js +58 -55
- package/dist/auth/verifications.js +53 -52
- package/dist/constants.js +0 -1
- package/dist/mailjet/calls/manage-contacts-in-list.js +5 -6
- package/dist/mailjet/calls/manage-subscription-status.js +4 -5
- package/dist/mailjet/calls/request-service.d.ts +1 -1
- package/dist/mailjet/calls/request-service.d.ts.map +1 -1
- package/dist/mailjet/calls/request-service.js +7 -6
- package/dist/mailjet/refresh-email-preferences.js +11 -12
- package/dist/mailjet/set-contact.js +11 -12
- package/dist/mailjet/types.js +1 -2
- package/dist/mailjet/utils/convert-to-array.js +8 -6
- package/dist/mailjet/utils/extract-email-preferences.js +14 -15
- package/dist/mailjet/utils/lists.js +7 -8
- package/dist/mailjet/utils/update-email-references.js +16 -15
- package/dist/notion/client.d.ts.map +1 -1
- package/dist/notion/client.js +24 -20
- package/dist/notion/client.js.map +1 -1
- package/dist/notion/helpful.js +6 -9
- package/dist/notion/schemas/block.js +42 -48
- package/dist/notion/schemas/common.js +9 -14
- package/dist/notion/schemas/database.d.ts +1 -1
- package/dist/notion/schemas/database.js +62 -60
- package/dist/notion/schemas/emoji.js +1 -2
- package/dist/notion/schemas/file.js +9 -9
- package/dist/notion/schemas/kb.js +5 -6
- package/dist/notion/schemas/page.d.ts +1 -1
- package/dist/notion/schemas/page.js +72 -61
- package/dist/notion/schemas/parent.js +4 -5
- package/dist/notion/schemas/user.js +18 -19
- package/dist/reservation/agree.js +6 -7
- package/dist/reservation/checks.js +3 -4
- package/dist/reservation/display-vehicle.d.ts +16 -16
- package/dist/reservation/display-vehicle.js +65 -71
- package/dist/reservation/fetch-or-create.d.ts +1 -1
- package/dist/reservation/fetch-or-create.d.ts.map +1 -1
- package/dist/reservation/fetch-or-create.js +50 -62
- package/dist/reservation/fetch-or-create.js.map +1 -1
- package/dist/reservation/invoice.d.ts +2 -1
- package/dist/reservation/invoice.d.ts.map +1 -1
- package/dist/reservation/invoice.js +62 -74
- package/dist/reservation/payer.js +5 -6
- package/dist/reservation/reserve.js +3 -4
- package/dist/reservation/types.d.ts +0 -1
- package/dist/reservation/types.d.ts.map +1 -1
- package/dist/reservation/types.js +1 -2
- package/dist/reservation/vehicle.js +13 -16
- package/dist/slack.d.ts +2 -2
- package/dist/slack.d.ts.map +1 -1
- package/dist/slack.js +24 -29
- package/dist/validation.d.ts +4 -4
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +77 -71
- package/dist/validation.js.map +1 -1
- package/dist/vehicle/vehicle-pricing/constants.js +22 -19
- package/dist/vehicle/vehicle-pricing/index.js +28 -42
- package/dist/vehicle/vehicle-pricing/types.js +1 -2
- package/package.json +28 -28
|
@@ -6,18 +6,18 @@ export const userForEmailPreferencesQuery = {
|
|
|
6
6
|
subscriptions: {
|
|
7
7
|
select: {
|
|
8
8
|
ended: true,
|
|
9
|
-
active: true
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
9
|
+
active: true
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
13
|
};
|
|
14
|
-
export const extractUserEmailPreferences = async (idOrUserForEmailPreferences)
|
|
15
|
-
const user = typeof idOrUserForEmailPreferences === 'string'
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
export const extractUserEmailPreferences = async (idOrUserForEmailPreferences)=>{
|
|
15
|
+
const user = typeof idOrUserForEmailPreferences === 'string' ? await prisma.user.findUnique({
|
|
16
|
+
where: {
|
|
17
|
+
id: idOrUserForEmailPreferences
|
|
18
|
+
},
|
|
19
|
+
...userForEmailPreferencesQuery
|
|
20
|
+
}) : idOrUserForEmailPreferences;
|
|
21
21
|
if (!user?.emailPreferences?.generalMarketing) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
@@ -26,13 +26,13 @@ export const extractUserEmailPreferences = async (idOrUserForEmailPreferences) =
|
|
|
26
26
|
if (subscriptions.length > 0) {
|
|
27
27
|
list = 'noActiveSubs';
|
|
28
28
|
}
|
|
29
|
-
for
|
|
29
|
+
for(let i = 0; i < subscriptions.length; i++){
|
|
30
30
|
if (subscriptions[i].ended) {
|
|
31
31
|
list = 'expiredSub';
|
|
32
32
|
break;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
for
|
|
35
|
+
for(let i = 0; i < subscriptions.length; i++){
|
|
36
36
|
if (subscriptions[i].active && !subscriptions[i].ended) {
|
|
37
37
|
list = 'activeSub';
|
|
38
38
|
break;
|
|
@@ -44,8 +44,7 @@ export const extractUserEmailPreferences = async (idOrUserForEmailPreferences) =
|
|
|
44
44
|
signUpPaymentAdded: false,
|
|
45
45
|
activeSub: false,
|
|
46
46
|
expiredSub: false,
|
|
47
|
-
[list]: true
|
|
47
|
+
[list]: true
|
|
48
48
|
};
|
|
49
49
|
return newList;
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=extract-email-preferences.js.map
|
|
@@ -7,13 +7,13 @@ export const listsNames = [
|
|
|
7
7
|
'activeSub',
|
|
8
8
|
'expiredSub',
|
|
9
9
|
'activeSubBusiness',
|
|
10
|
-
'activeSubPersonal'
|
|
10
|
+
'activeSubPersonal'
|
|
11
11
|
];
|
|
12
|
-
export const getLists = async ()
|
|
12
|
+
export const getLists = async ()=>{
|
|
13
13
|
const listObject = await prisma.platformConfig.findFirst({
|
|
14
14
|
where: {
|
|
15
|
-
key: 'mailjetLists'
|
|
16
|
-
}
|
|
15
|
+
key: 'mailjetLists'
|
|
16
|
+
}
|
|
17
17
|
});
|
|
18
18
|
if (listObject?.value) {
|
|
19
19
|
const lists = JSON.parse(listObject.value);
|
|
@@ -21,14 +21,14 @@ export const getLists = async () => {
|
|
|
21
21
|
}
|
|
22
22
|
return {};
|
|
23
23
|
};
|
|
24
|
-
export const getListByRef = async (ref)
|
|
24
|
+
export const getListByRef = async (ref)=>{
|
|
25
25
|
const lists = await getLists();
|
|
26
26
|
let list;
|
|
27
|
-
for (const [name, id] of Object.entries(lists))
|
|
27
|
+
for (const [name, id] of Object.entries(lists)){
|
|
28
28
|
if (name === ref || id === ref) {
|
|
29
29
|
list = {
|
|
30
30
|
name: name,
|
|
31
|
-
id
|
|
31
|
+
id
|
|
32
32
|
};
|
|
33
33
|
break;
|
|
34
34
|
}
|
|
@@ -38,4 +38,3 @@ export const getListByRef = async (ref) => {
|
|
|
38
38
|
}
|
|
39
39
|
return list;
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=lists.js.map
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { prisma } from '@driveflux/db';
|
|
2
|
-
import { userForEmailPreferencesQuery
|
|
3
|
-
export const updateEmailPreferences = async (idOrUserForEmailPreferences, preferences)
|
|
4
|
-
const user = typeof idOrUserForEmailPreferences === 'string'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
import { userForEmailPreferencesQuery } from './extract-email-preferences.js';
|
|
3
|
+
export const updateEmailPreferences = async (idOrUserForEmailPreferences, preferences)=>{
|
|
4
|
+
const user = typeof idOrUserForEmailPreferences === 'string' ? await prisma.user.findUnique({
|
|
5
|
+
where: {
|
|
6
|
+
id: idOrUserForEmailPreferences
|
|
7
|
+
},
|
|
8
|
+
...userForEmailPreferencesQuery
|
|
9
|
+
}) : idOrUserForEmailPreferences;
|
|
10
10
|
if (!user) {
|
|
11
11
|
return null;
|
|
12
12
|
}
|
|
13
13
|
const merged = {
|
|
14
14
|
...user.emailPreferences,
|
|
15
|
-
...preferences
|
|
15
|
+
...preferences
|
|
16
16
|
};
|
|
17
17
|
const updated = await prisma.user.update({
|
|
18
|
-
where: {
|
|
18
|
+
where: {
|
|
19
|
+
id: user.id
|
|
20
|
+
},
|
|
19
21
|
data: {
|
|
20
22
|
emailPreferences: {
|
|
21
23
|
upsert: {
|
|
22
24
|
set: merged,
|
|
23
|
-
update: merged
|
|
24
|
-
}
|
|
25
|
-
}
|
|
25
|
+
update: merged
|
|
26
|
+
}
|
|
27
|
+
}
|
|
26
28
|
},
|
|
27
|
-
...userForEmailPreferencesQuery
|
|
29
|
+
...userForEmailPreferencesQuery
|
|
28
30
|
});
|
|
29
31
|
return updated;
|
|
30
32
|
};
|
|
31
|
-
//# sourceMappingURL=update-email-references.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAElF,KAAK,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;AAExC,eAAO,MAAM,SAAS,cAQrB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAC1C,UAAU,QAAQ,EAClB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,MAAM,KACxD,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAElF,KAAK,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;AAExC,eAAO,MAAM,SAAS,cAQrB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAC1C,UAAU,QAAQ,EAClB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,MAAM,KACxD,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAiD9C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,QAAQ,kBAAkB,WAOrD,CAAA;AAED,eAAO,MAAM,cAAc,GAC1B,QAAQ,kBAAkB,EAC1B,UAAU,QAAQ,KAChB,MASF,CAAA"}
|
package/dist/notion/client.js
CHANGED
|
@@ -2,20 +2,23 @@ import { slackLater } from '@driveflux/api-functions/slack';
|
|
|
2
2
|
import { config } from '@driveflux/config/backend';
|
|
3
3
|
import { initSingleton } from '@driveflux/singleton';
|
|
4
4
|
import { Client } from '@notionhq/client';
|
|
5
|
-
export const getNotion = ()
|
|
6
|
-
return initSingleton('notionClient', ()
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export const getNotion = ()=>{
|
|
6
|
+
return initSingleton('notionClient', ()=>new Client({
|
|
7
|
+
auth: config.notion.secret
|
|
8
|
+
}));
|
|
9
9
|
};
|
|
10
|
-
export const announceFluxstersAnniversaries = async (property, constructMessage)
|
|
10
|
+
export const announceFluxstersAnniversaries = async (property, constructMessage)=>{
|
|
11
11
|
if (!config.notion.fluxstersDatabaseId) {
|
|
12
|
-
return {
|
|
12
|
+
return {
|
|
13
|
+
counts: -1,
|
|
14
|
+
message: 'No fluxsters database id configured'
|
|
15
|
+
};
|
|
13
16
|
}
|
|
14
17
|
const notion = getNotion();
|
|
15
|
-
const { results } = await notion.
|
|
16
|
-
|
|
18
|
+
const { results } = await notion.dataSources.query({
|
|
19
|
+
data_source_id: config.notion.fluxstersDatabaseId
|
|
17
20
|
});
|
|
18
|
-
const relevantPeople = results.filter((result)
|
|
21
|
+
const relevantPeople = results.filter((result)=>{
|
|
19
22
|
const resultPropperty = result.properties[property];
|
|
20
23
|
if (resultPropperty.type !== 'date' || !resultPropperty.date?.start) {
|
|
21
24
|
return false;
|
|
@@ -25,33 +28,35 @@ export const announceFluxstersAnniversaries = async (property, constructMessage)
|
|
|
25
28
|
}
|
|
26
29
|
const date = new Date(resultPropperty.date.start);
|
|
27
30
|
const todayDate = new Date();
|
|
28
|
-
if (todayDate.getDate() === date.getDate() &&
|
|
29
|
-
todayDate.getMonth() === date.getMonth()) {
|
|
31
|
+
if (todayDate.getDate() === date.getDate() && todayDate.getMonth() === date.getMonth()) {
|
|
30
32
|
return true;
|
|
31
33
|
}
|
|
32
34
|
// leap year
|
|
33
|
-
if (todayDate.getDate() === 28 &&
|
|
34
|
-
date.getDate() === 29 &&
|
|
35
|
-
todayDate.getMonth() === 1 &&
|
|
36
|
-
date.getMonth() === 1) {
|
|
35
|
+
if (todayDate.getDate() === 28 && date.getDate() === 29 && todayDate.getMonth() === 1 && date.getMonth() === 1) {
|
|
37
36
|
return true;
|
|
38
37
|
}
|
|
38
|
+
return false;
|
|
39
39
|
});
|
|
40
40
|
if (relevantPeople.length > 0) {
|
|
41
41
|
const message = constructMessage(relevantPeople);
|
|
42
42
|
slackLater(message, config.slack.mainFluxChannel);
|
|
43
|
-
return {
|
|
43
|
+
return {
|
|
44
|
+
counts: relevantPeople.length,
|
|
45
|
+
message
|
|
46
|
+
};
|
|
44
47
|
}
|
|
45
|
-
return {
|
|
48
|
+
return {
|
|
49
|
+
counts: relevantPeople.length
|
|
50
|
+
};
|
|
46
51
|
};
|
|
47
|
-
export const getNameFrom = (person)
|
|
52
|
+
export const getNameFrom = (person)=>{
|
|
48
53
|
const nameProperty = person.properties.Name;
|
|
49
54
|
if (nameProperty.type !== 'title') {
|
|
50
55
|
return '';
|
|
51
56
|
}
|
|
52
57
|
return nameProperty.title[0].plain_text;
|
|
53
58
|
};
|
|
54
|
-
export const calculateYears = (person, property)
|
|
59
|
+
export const calculateYears = (person, property)=>{
|
|
55
60
|
const joinedDateProperty = person.properties[property];
|
|
56
61
|
if (joinedDateProperty.type !== 'date' || !joinedDateProperty.date?.start) {
|
|
57
62
|
return 0;
|
|
@@ -60,4 +65,3 @@ export const calculateYears = (person, property) => {
|
|
|
60
65
|
const joinedDate = new Date(joinedDateProperty.date?.start);
|
|
61
66
|
return today.getFullYear() - joinedDate.getFullYear();
|
|
62
67
|
};
|
|
63
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAKzC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC7B,OAAO,aAAa,CACnB,cAAc,EACd,GAAG,EAAE,CACJ,IAAI,MAAM,CAAC;QACV,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;KAC1B,CAAC,CACH,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EAClD,QAAkB,EAClB,gBAA0D,EACV,EAAE;IAClD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACxC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAA;IACtE,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":"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"}
|
package/dist/notion/helpful.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { getNotion } from '@driveflux/api-functions/notion';
|
|
2
2
|
import { knowledgeBaseRetrievePageSchema } from './schemas/kb.js';
|
|
3
|
-
export const processHelpful = async (options)
|
|
3
|
+
export const processHelpful = async (options)=>{
|
|
4
4
|
const { pageId, isHelpful, hasSubmittedBefore } = options;
|
|
5
5
|
// get original page
|
|
6
6
|
const notion = getNotion();
|
|
7
7
|
const page = await notion.pages.retrieve({
|
|
8
|
-
page_id: pageId
|
|
8
|
+
page_id: pageId
|
|
9
9
|
});
|
|
10
10
|
// validate page
|
|
11
11
|
const kbPageValidation = knowledgeBaseRetrievePageSchema.safeParse(page);
|
|
@@ -18,15 +18,12 @@ export const processHelpful = async (options) => {
|
|
|
18
18
|
page_id: pageId,
|
|
19
19
|
properties: {
|
|
20
20
|
Helpful: {
|
|
21
|
-
number: (validatedPage.properties.Helpful.number || 0) +
|
|
22
|
-
(hasSubmittedBefore && !isHelpful ? -1 : isHelpful ? 1 : 0),
|
|
21
|
+
number: (validatedPage.properties.Helpful.number || 0) + (hasSubmittedBefore && !isHelpful ? -1 : isHelpful ? 1 : 0)
|
|
23
22
|
},
|
|
24
23
|
Unhelpful: {
|
|
25
|
-
number: (validatedPage.properties.Unhelpful.number || 0) +
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
},
|
|
24
|
+
number: (validatedPage.properties.Unhelpful.number || 0) + (hasSubmittedBefore && isHelpful ? -1 : !isHelpful ? 1 : 0)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
29
27
|
});
|
|
30
28
|
return true;
|
|
31
29
|
};
|
|
32
|
-
//# sourceMappingURL=helpful.js.map
|
|
@@ -2,59 +2,54 @@ import { z } from 'zod';
|
|
|
2
2
|
import { notionDateSchema } from './common.js';
|
|
3
3
|
import { notionPartialUserSchema } from './user.js';
|
|
4
4
|
export const notionRichTextSchema = z.object({
|
|
5
|
-
type: z.enum([
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
type: z.enum([
|
|
6
|
+
'text',
|
|
7
|
+
'mention',
|
|
8
|
+
'equation'
|
|
9
|
+
]),
|
|
10
|
+
equation: z.object({
|
|
11
|
+
expression: z.string()
|
|
12
|
+
}).optional(),
|
|
13
|
+
mention: z.object({
|
|
13
14
|
type: z.enum([
|
|
14
15
|
'database',
|
|
15
16
|
'date',
|
|
16
17
|
'link_preview',
|
|
17
18
|
'page',
|
|
18
19
|
'template_mention',
|
|
19
|
-
'user'
|
|
20
|
+
'user'
|
|
20
21
|
]),
|
|
21
|
-
database: z
|
|
22
|
-
.
|
|
23
|
-
|
|
24
|
-
})
|
|
25
|
-
.optional(),
|
|
22
|
+
database: z.object({
|
|
23
|
+
id: z.string()
|
|
24
|
+
}).optional(),
|
|
26
25
|
date: notionDateSchema.optional(),
|
|
27
|
-
link_preview: z
|
|
28
|
-
.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
.optional()
|
|
47
|
-
|
|
48
|
-
|
|
26
|
+
link_preview: z.object({
|
|
27
|
+
url: z.string().url()
|
|
28
|
+
}).optional(),
|
|
29
|
+
page: z.object({
|
|
30
|
+
id: z.string()
|
|
31
|
+
}).optional(),
|
|
32
|
+
template_mention: z.object({
|
|
33
|
+
type: z.enum([
|
|
34
|
+
'template_mention_date',
|
|
35
|
+
'template_mention_user'
|
|
36
|
+
]),
|
|
37
|
+
template_mention_date: z.enum([
|
|
38
|
+
'today',
|
|
39
|
+
'now'
|
|
40
|
+
]).optional(),
|
|
41
|
+
template_mention_user: z.enum([
|
|
42
|
+
'me'
|
|
43
|
+
]).optional()
|
|
44
|
+
}).optional(),
|
|
45
|
+
user: notionPartialUserSchema.optional()
|
|
46
|
+
}).optional(),
|
|
47
|
+
text: z.object({
|
|
49
48
|
content: z.string(),
|
|
50
|
-
link: z
|
|
51
|
-
.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
.nullable()
|
|
55
|
-
.optional(),
|
|
56
|
-
})
|
|
57
|
-
.optional(),
|
|
49
|
+
link: z.object({
|
|
50
|
+
url: z.string().url()
|
|
51
|
+
}).nullable().optional()
|
|
52
|
+
}).optional(),
|
|
58
53
|
annotations: z.object({
|
|
59
54
|
bold: z.boolean(),
|
|
60
55
|
italic: z.boolean(),
|
|
@@ -80,10 +75,9 @@ export const notionRichTextSchema = z.object({
|
|
|
80
75
|
'red',
|
|
81
76
|
'red_background',
|
|
82
77
|
'yellow',
|
|
83
|
-
'yellow_background'
|
|
84
|
-
])
|
|
78
|
+
'yellow_background'
|
|
79
|
+
])
|
|
85
80
|
}),
|
|
86
81
|
plain_text: z.string(),
|
|
87
|
-
href: z.string().url().nullable().optional()
|
|
82
|
+
href: z.string().url().nullable().optional()
|
|
88
83
|
});
|
|
89
|
-
//# sourceMappingURL=block.js.map
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export const notionDateOrTimeFormat = z
|
|
3
|
-
.string()
|
|
4
|
-
.regex(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|\+\d{2}:\d{2}))?$/);
|
|
2
|
+
export const notionDateOrTimeFormat = z.string().regex(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|\+\d{2}:\d{2}))?$/);
|
|
5
3
|
export const notionDateFormat = z.string().regex(/^\d{4}-\d{2}-\d{2}$/);
|
|
6
|
-
export const notionTimeFormat = z
|
|
7
|
-
.string()
|
|
8
|
-
.regex(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/);
|
|
4
|
+
export const notionTimeFormat = z.string().regex(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/);
|
|
9
5
|
export const notionCommonColorEnum = z.enum([
|
|
10
6
|
'blue',
|
|
11
7
|
'brown',
|
|
@@ -16,16 +12,15 @@ export const notionCommonColorEnum = z.enum([
|
|
|
16
12
|
'pink',
|
|
17
13
|
'purple',
|
|
18
14
|
'red',
|
|
19
|
-
'yellow'
|
|
15
|
+
'yellow'
|
|
20
16
|
]);
|
|
21
17
|
export const notionDateSchema = z.object({
|
|
22
18
|
start: notionDateOrTimeFormat,
|
|
23
19
|
end: notionDateOrTimeFormat.nullable().optional(),
|
|
24
|
-
time_zone: z.string().nullable().optional()
|
|
20
|
+
time_zone: z.string().nullable().optional()
|
|
25
21
|
});
|
|
26
|
-
export const commonPropertyValues = (type)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=common.js.map
|
|
22
|
+
export const commonPropertyValues = (type)=>({
|
|
23
|
+
id: z.string(),
|
|
24
|
+
type: z.literal(type),
|
|
25
|
+
name: z.string().optional()
|
|
26
|
+
});
|
|
@@ -190,8 +190,8 @@ export declare const notionDatabasePropertyRollupSchema: ZodObject<{
|
|
|
190
190
|
type: z.ZodEnum<{
|
|
191
191
|
number: "number";
|
|
192
192
|
date: "date";
|
|
193
|
-
array: "array";
|
|
194
193
|
incomplete: "incomplete";
|
|
194
|
+
array: "array";
|
|
195
195
|
unsupported: "unsupported";
|
|
196
196
|
}>;
|
|
197
197
|
}, z.core.$strip>;
|