@contractspec/integration.providers-impls 1.57.0 → 1.58.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/analytics.d.ts +1 -8
- package/dist/analytics.d.ts.map +1 -1
- package/dist/analytics.js +3 -3
- package/dist/calendar.d.ts +1 -8
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +3 -3
- package/dist/database.d.ts +1 -8
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +3 -3
- package/dist/email.d.ts +1 -8
- package/dist/email.d.ts.map +1 -1
- package/dist/email.js +3 -3
- package/dist/embedding.d.ts +1 -8
- package/dist/embedding.d.ts.map +1 -1
- package/dist/embedding.js +3 -3
- package/dist/impls/elevenlabs-voice.d.ts +14 -18
- package/dist/impls/elevenlabs-voice.d.ts.map +1 -1
- package/dist/impls/elevenlabs-voice.js +98 -88
- package/dist/impls/fal-voice.d.ts +22 -26
- package/dist/impls/fal-voice.d.ts.map +1 -1
- package/dist/impls/fal-voice.js +103 -78
- package/dist/impls/fathom-meeting-recorder.d.ts +35 -39
- package/dist/impls/fathom-meeting-recorder.d.ts.map +1 -1
- package/dist/impls/fathom-meeting-recorder.js +285 -142
- package/dist/impls/fathom-meeting-recorder.mapper.d.ts +4 -8
- package/dist/impls/fathom-meeting-recorder.mapper.d.ts.map +1 -1
- package/dist/impls/fathom-meeting-recorder.mapper.js +102 -38
- package/dist/impls/fathom-meeting-recorder.types.d.ts +16 -20
- package/dist/impls/fathom-meeting-recorder.types.d.ts.map +1 -1
- package/dist/impls/fathom-meeting-recorder.types.js +1 -0
- package/dist/impls/fathom-meeting-recorder.utils.d.ts +10 -14
- package/dist/impls/fathom-meeting-recorder.utils.d.ts.map +1 -1
- package/dist/impls/fathom-meeting-recorder.utils.js +58 -41
- package/dist/impls/fathom-meeting-recorder.webhooks.d.ts +3 -7
- package/dist/impls/fathom-meeting-recorder.webhooks.d.ts.map +1 -1
- package/dist/impls/fathom-meeting-recorder.webhooks.js +25 -20
- package/dist/impls/fireflies-meeting-recorder.d.ts +21 -25
- package/dist/impls/fireflies-meeting-recorder.d.ts.map +1 -1
- package/dist/impls/fireflies-meeting-recorder.js +272 -149
- package/dist/impls/fireflies-meeting-recorder.queries.d.ts +3 -6
- package/dist/impls/fireflies-meeting-recorder.queries.d.ts.map +1 -1
- package/dist/impls/fireflies-meeting-recorder.queries.js +10 -8
- package/dist/impls/fireflies-meeting-recorder.types.d.ts +26 -29
- package/dist/impls/fireflies-meeting-recorder.types.d.ts.map +1 -1
- package/dist/impls/fireflies-meeting-recorder.types.js +1 -0
- package/dist/impls/fireflies-meeting-recorder.utils.d.ts +4 -7
- package/dist/impls/fireflies-meeting-recorder.utils.d.ts.map +1 -1
- package/dist/impls/fireflies-meeting-recorder.utils.js +34 -27
- package/dist/impls/gcs-storage.d.ts +18 -22
- package/dist/impls/gcs-storage.d.ts.map +1 -1
- package/dist/impls/gcs-storage.js +92 -84
- package/dist/impls/gmail-inbound.d.ts +20 -24
- package/dist/impls/gmail-inbound.d.ts.map +1 -1
- package/dist/impls/gmail-inbound.js +212 -185
- package/dist/impls/gmail-outbound.d.ts +12 -16
- package/dist/impls/gmail-outbound.d.ts.map +1 -1
- package/dist/impls/gmail-outbound.js +126 -92
- package/dist/impls/google-calendar.d.ts +17 -21
- package/dist/impls/google-calendar.d.ts.map +1 -1
- package/dist/impls/google-calendar.js +182 -145
- package/dist/impls/gradium-voice.d.ts +20 -22
- package/dist/impls/gradium-voice.d.ts.map +1 -1
- package/dist/impls/gradium-voice.js +85 -74
- package/dist/impls/granola-meeting-recorder.d.ts +31 -24
- package/dist/impls/granola-meeting-recorder.d.ts.map +1 -1
- package/dist/impls/granola-meeting-recorder.js +511 -143
- package/dist/impls/granola-meeting-recorder.mcp.d.ts +25 -0
- package/dist/impls/granola-meeting-recorder.mcp.d.ts.map +1 -0
- package/dist/impls/granola-meeting-recorder.mcp.js +279 -0
- package/dist/impls/granola-meeting-recorder.types.d.ts +60 -49
- package/dist/impls/granola-meeting-recorder.types.d.ts.map +1 -1
- package/dist/impls/granola-meeting-recorder.types.js +1 -0
- package/dist/impls/index.d.ts +28 -28
- package/dist/impls/index.d.ts.map +1 -0
- package/dist/impls/index.js +4659 -29
- package/dist/impls/jira.d.ts +18 -22
- package/dist/impls/jira.d.ts.map +1 -1
- package/dist/impls/jira.js +112 -101
- package/dist/impls/linear.d.ts +17 -21
- package/dist/impls/linear.d.ts.map +1 -1
- package/dist/impls/linear.js +78 -69
- package/dist/impls/mistral-embedding.d.ts +17 -21
- package/dist/impls/mistral-embedding.d.ts.map +1 -1
- package/dist/impls/mistral-embedding.js +41 -39
- package/dist/impls/mistral-llm.d.ts +25 -29
- package/dist/impls/mistral-llm.d.ts.map +1 -1
- package/dist/impls/mistral-llm.js +266 -244
- package/dist/impls/notion.d.ts +20 -24
- package/dist/impls/notion.d.ts.map +1 -1
- package/dist/impls/notion.js +145 -110
- package/dist/impls/posthog-reader.d.ts +18 -22
- package/dist/impls/posthog-reader.d.ts.map +1 -1
- package/dist/impls/posthog-reader.js +148 -129
- package/dist/impls/posthog-utils.d.ts +4 -7
- package/dist/impls/posthog-utils.d.ts.map +1 -1
- package/dist/impls/posthog-utils.js +31 -22
- package/dist/impls/posthog.d.ts +33 -37
- package/dist/impls/posthog.d.ts.map +1 -1
- package/dist/impls/posthog.js +320 -119
- package/dist/impls/postmark-email.d.ts +13 -17
- package/dist/impls/postmark-email.d.ts.map +1 -1
- package/dist/impls/postmark-email.js +55 -50
- package/dist/impls/powens-client.d.ts +111 -114
- package/dist/impls/powens-client.d.ts.map +1 -1
- package/dist/impls/powens-client.js +194 -170
- package/dist/impls/powens-openbanking.d.ts +22 -26
- package/dist/impls/powens-openbanking.d.ts.map +1 -1
- package/dist/impls/powens-openbanking.js +425 -217
- package/dist/impls/provider-factory.d.ts +29 -33
- package/dist/impls/provider-factory.d.ts.map +1 -1
- package/dist/impls/provider-factory.js +4072 -275
- package/dist/impls/qdrant-vector.d.ts +18 -22
- package/dist/impls/qdrant-vector.d.ts.map +1 -1
- package/dist/impls/qdrant-vector.js +76 -69
- package/dist/impls/stripe-payments.d.ts +22 -26
- package/dist/impls/stripe-payments.d.ts.map +1 -1
- package/dist/impls/stripe-payments.js +219 -193
- package/dist/impls/supabase-psql.d.ts +21 -25
- package/dist/impls/supabase-psql.d.ts.map +1 -1
- package/dist/impls/supabase-psql.js +138 -98
- package/dist/impls/supabase-vector.d.ts +29 -33
- package/dist/impls/supabase-vector.d.ts.map +1 -1
- package/dist/impls/supabase-vector.js +278 -103
- package/dist/impls/tldv-meeting-recorder.d.ts +18 -22
- package/dist/impls/tldv-meeting-recorder.d.ts.map +1 -1
- package/dist/impls/tldv-meeting-recorder.js +142 -127
- package/dist/impls/twilio-sms.d.ts +14 -17
- package/dist/impls/twilio-sms.d.ts.map +1 -1
- package/dist/impls/twilio-sms.js +62 -55
- package/dist/index.d.ts +15 -64
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4700 -107
- package/dist/llm.d.ts +1 -8
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +3 -3
- package/dist/meeting-recorder.d.ts +1 -8
- package/dist/meeting-recorder.d.ts.map +1 -1
- package/dist/meeting-recorder.js +3 -3
- package/dist/node/analytics.js +2 -0
- package/dist/node/calendar.js +2 -0
- package/dist/node/database.js +2 -0
- package/dist/node/email.js +2 -0
- package/dist/node/embedding.js +2 -0
- package/dist/node/impls/elevenlabs-voice.js +102 -0
- package/dist/node/impls/fal-voice.js +112 -0
- package/dist/node/impls/fathom-meeting-recorder.js +287 -0
- package/dist/node/impls/fathom-meeting-recorder.mapper.js +105 -0
- package/dist/node/impls/fathom-meeting-recorder.types.js +0 -0
- package/dist/node/impls/fathom-meeting-recorder.utils.js +72 -0
- package/dist/node/impls/fathom-meeting-recorder.webhooks.js +29 -0
- package/dist/node/impls/fireflies-meeting-recorder.js +274 -0
- package/dist/node/impls/fireflies-meeting-recorder.queries.js +85 -0
- package/dist/node/impls/fireflies-meeting-recorder.types.js +0 -0
- package/dist/node/impls/fireflies-meeting-recorder.utils.js +42 -0
- package/dist/node/impls/gcs-storage.js +97 -0
- package/dist/node/impls/gmail-inbound.js +227 -0
- package/dist/node/impls/gmail-outbound.js +139 -0
- package/dist/node/impls/google-calendar.js +191 -0
- package/dist/node/impls/gradium-voice.js +90 -0
- package/dist/node/impls/granola-meeting-recorder.js +512 -0
- package/dist/node/impls/granola-meeting-recorder.mcp.js +278 -0
- package/dist/node/impls/granola-meeting-recorder.types.js +0 -0
- package/dist/node/impls/index.js +4658 -0
- package/dist/node/impls/jira.js +124 -0
- package/dist/node/impls/linear.js +83 -0
- package/dist/node/impls/mistral-embedding.js +43 -0
- package/dist/node/impls/mistral-llm.js +269 -0
- package/dist/node/impls/notion.js +160 -0
- package/dist/node/impls/posthog-reader.js +159 -0
- package/dist/node/impls/posthog-utils.js +38 -0
- package/dist/node/impls/posthog.js +322 -0
- package/dist/node/impls/postmark-email.js +60 -0
- package/dist/node/impls/powens-client.js +195 -0
- package/dist/node/impls/powens-openbanking.js +426 -0
- package/dist/node/impls/provider-factory.js +4080 -0
- package/dist/node/impls/qdrant-vector.js +78 -0
- package/dist/node/impls/stripe-payments.js +228 -0
- package/dist/node/impls/supabase-psql.js +150 -0
- package/dist/node/impls/supabase-vector.js +323 -0
- package/dist/node/impls/tldv-meeting-recorder.js +145 -0
- package/dist/node/impls/twilio-sms.js +65 -0
- package/dist/node/index.js +4699 -0
- package/dist/node/llm.js +2 -0
- package/dist/node/meeting-recorder.js +2 -0
- package/dist/node/openbanking.js +2 -0
- package/dist/node/payments.js +2 -0
- package/dist/node/project-management.js +2 -0
- package/dist/node/runtime.js +0 -0
- package/dist/node/secrets/provider.js +11 -0
- package/dist/node/sms.js +2 -0
- package/dist/node/storage.js +2 -0
- package/dist/node/vector-store.js +2 -0
- package/dist/node/voice.js +2 -0
- package/dist/openbanking.d.ts +1 -8
- package/dist/openbanking.d.ts.map +1 -1
- package/dist/openbanking.js +3 -3
- package/dist/payments.d.ts +1 -8
- package/dist/payments.d.ts.map +1 -1
- package/dist/payments.js +3 -3
- package/dist/project-management.d.ts +1 -8
- package/dist/project-management.d.ts.map +1 -1
- package/dist/project-management.js +3 -3
- package/dist/runtime.d.ts +2 -2
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1 -0
- package/dist/secrets/provider.d.ts +3 -2
- package/dist/secrets/provider.d.ts.map +1 -0
- package/dist/secrets/provider.js +12 -3
- package/dist/sms.d.ts +1 -8
- package/dist/sms.d.ts.map +1 -1
- package/dist/sms.js +3 -3
- package/dist/storage.d.ts +1 -8
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +3 -3
- package/dist/vector-store.d.ts +1 -8
- package/dist/vector-store.d.ts.map +1 -1
- package/dist/vector-store.js +3 -3
- package/dist/voice.d.ts +1 -8
- package/dist/voice.d.ts.map +1 -1
- package/dist/voice.js +3 -3
- package/package.json +405 -114
- package/dist/_virtual/_rolldown/runtime.js +0 -36
- package/dist/impls/elevenlabs-voice.js.map +0 -1
- package/dist/impls/fal-voice.js.map +0 -1
- package/dist/impls/fathom-meeting-recorder.js.map +0 -1
- package/dist/impls/fathom-meeting-recorder.mapper.js.map +0 -1
- package/dist/impls/fathom-meeting-recorder.utils.js.map +0 -1
- package/dist/impls/fathom-meeting-recorder.webhooks.js.map +0 -1
- package/dist/impls/fireflies-meeting-recorder.js.map +0 -1
- package/dist/impls/fireflies-meeting-recorder.queries.js.map +0 -1
- package/dist/impls/fireflies-meeting-recorder.utils.js.map +0 -1
- package/dist/impls/gcs-storage.js.map +0 -1
- package/dist/impls/gmail-inbound.js.map +0 -1
- package/dist/impls/gmail-outbound.js.map +0 -1
- package/dist/impls/google-calendar.js.map +0 -1
- package/dist/impls/gradium-voice.js.map +0 -1
- package/dist/impls/granola-meeting-recorder.js.map +0 -1
- package/dist/impls/jira.js.map +0 -1
- package/dist/impls/linear.js.map +0 -1
- package/dist/impls/mistral-embedding.js.map +0 -1
- package/dist/impls/mistral-llm.js.map +0 -1
- package/dist/impls/notion.js.map +0 -1
- package/dist/impls/posthog-reader.js.map +0 -1
- package/dist/impls/posthog-utils.js.map +0 -1
- package/dist/impls/posthog.js.map +0 -1
- package/dist/impls/postmark-email.js.map +0 -1
- package/dist/impls/powens-client.js.map +0 -1
- package/dist/impls/powens-openbanking.js.map +0 -1
- package/dist/impls/provider-factory.js.map +0 -1
- package/dist/impls/qdrant-vector.js.map +0 -1
- package/dist/impls/stripe-payments.js.map +0 -1
- package/dist/impls/supabase-psql.js.map +0 -1
- package/dist/impls/supabase-vector.js.map +0 -1
- package/dist/impls/tldv-meeting-recorder.js.map +0 -1
- package/dist/impls/twilio-sms.js.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/impls/notion.js
CHANGED
|
@@ -1,126 +1,161 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/impls/notion.ts
|
|
1
3
|
import { Client } from "@notionhq/client";
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
5
|
+
class NotionProjectManagementProvider {
|
|
6
|
+
client;
|
|
7
|
+
defaults;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.client = options.client ?? new Client({ auth: options.apiKey });
|
|
10
|
+
this.defaults = {
|
|
11
|
+
databaseId: options.databaseId,
|
|
12
|
+
summaryParentPageId: options.summaryParentPageId,
|
|
13
|
+
titleProperty: options.titleProperty,
|
|
14
|
+
statusProperty: options.statusProperty,
|
|
15
|
+
priorityProperty: options.priorityProperty,
|
|
16
|
+
tagsProperty: options.tagsProperty,
|
|
17
|
+
dueDateProperty: options.dueDateProperty,
|
|
18
|
+
descriptionProperty: options.descriptionProperty
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async createWorkItem(input) {
|
|
22
|
+
if (input.type === "summary" && this.defaults.summaryParentPageId) {
|
|
23
|
+
return this.createSummaryPage(input);
|
|
24
|
+
}
|
|
25
|
+
const databaseId = this.defaults.databaseId;
|
|
26
|
+
if (!databaseId) {
|
|
27
|
+
throw new Error("Notion databaseId is required to create work items.");
|
|
28
|
+
}
|
|
29
|
+
const titleProperty = this.defaults.titleProperty ?? "Name";
|
|
30
|
+
const properties = {
|
|
31
|
+
[titleProperty]: buildTitleProperty(input.title)
|
|
32
|
+
};
|
|
33
|
+
applySelect(properties, this.defaults.statusProperty, input.status);
|
|
34
|
+
applySelect(properties, this.defaults.priorityProperty, input.priority);
|
|
35
|
+
applyMultiSelect(properties, this.defaults.tagsProperty, input.tags);
|
|
36
|
+
applyDate(properties, this.defaults.dueDateProperty, input.dueDate);
|
|
37
|
+
applyRichText(properties, this.defaults.descriptionProperty, input.description);
|
|
38
|
+
const page = await this.client.pages.create({
|
|
39
|
+
parent: { type: "database_id", database_id: databaseId },
|
|
40
|
+
properties
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
id: page.id,
|
|
44
|
+
title: input.title,
|
|
45
|
+
url: "url" in page ? page.url : undefined,
|
|
46
|
+
status: input.status,
|
|
47
|
+
priority: input.priority,
|
|
48
|
+
tags: input.tags,
|
|
49
|
+
projectId: databaseId,
|
|
50
|
+
externalId: input.externalId,
|
|
51
|
+
metadata: input.metadata
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async createWorkItems(items) {
|
|
55
|
+
const created = [];
|
|
56
|
+
for (const item of items) {
|
|
57
|
+
created.push(await this.createWorkItem(item));
|
|
58
|
+
}
|
|
59
|
+
return created;
|
|
60
|
+
}
|
|
61
|
+
async createSummaryPage(input) {
|
|
62
|
+
const parentId = this.defaults.summaryParentPageId;
|
|
63
|
+
if (!parentId) {
|
|
64
|
+
throw new Error("Notion summaryParentPageId is required for summaries.");
|
|
65
|
+
}
|
|
66
|
+
const summaryProperties = {
|
|
67
|
+
title: buildTitleProperty(input.title)
|
|
68
|
+
};
|
|
69
|
+
const page = await this.client.pages.create({
|
|
70
|
+
parent: { type: "page_id", page_id: parentId },
|
|
71
|
+
properties: summaryProperties
|
|
72
|
+
});
|
|
73
|
+
if (input.description) {
|
|
74
|
+
const children = buildParagraphBlocks(input.description);
|
|
75
|
+
if (children.length > 0) {
|
|
76
|
+
await this.client.blocks.children.append({
|
|
77
|
+
block_id: page.id,
|
|
78
|
+
children
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
id: page.id,
|
|
84
|
+
title: input.title,
|
|
85
|
+
url: "url" in page ? page.url : undefined,
|
|
86
|
+
status: input.status,
|
|
87
|
+
priority: input.priority,
|
|
88
|
+
tags: input.tags,
|
|
89
|
+
projectId: parentId,
|
|
90
|
+
externalId: input.externalId,
|
|
91
|
+
metadata: input.metadata
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
85
95
|
function buildTitleProperty(title) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
96
|
+
return {
|
|
97
|
+
title: [
|
|
98
|
+
{
|
|
99
|
+
type: "text",
|
|
100
|
+
text: { content: title }
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
};
|
|
90
104
|
}
|
|
91
105
|
function buildRichText(text) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
106
|
+
return {
|
|
107
|
+
rich_text: [
|
|
108
|
+
{
|
|
109
|
+
type: "text",
|
|
110
|
+
text: { content: text }
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
};
|
|
96
114
|
}
|
|
97
115
|
function applySelect(properties, property, value) {
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
if (!property || !value)
|
|
117
|
+
return;
|
|
118
|
+
const next = {
|
|
119
|
+
select: { name: value }
|
|
120
|
+
};
|
|
121
|
+
properties[property] = next;
|
|
100
122
|
}
|
|
101
123
|
function applyMultiSelect(properties, property, values) {
|
|
102
|
-
|
|
103
|
-
|
|
124
|
+
if (!property || !values || values.length === 0)
|
|
125
|
+
return;
|
|
126
|
+
const next = {
|
|
127
|
+
multi_select: values.map((value) => ({ name: value }))
|
|
128
|
+
};
|
|
129
|
+
properties[property] = next;
|
|
104
130
|
}
|
|
105
131
|
function applyDate(properties, property, value) {
|
|
106
|
-
|
|
107
|
-
|
|
132
|
+
if (!property || !value)
|
|
133
|
+
return;
|
|
134
|
+
const next = {
|
|
135
|
+
date: { start: value.toISOString() }
|
|
136
|
+
};
|
|
137
|
+
properties[property] = next;
|
|
108
138
|
}
|
|
109
139
|
function applyRichText(properties, property, value) {
|
|
110
|
-
|
|
111
|
-
|
|
140
|
+
if (!property || !value)
|
|
141
|
+
return;
|
|
142
|
+
properties[property] = buildRichText(value);
|
|
112
143
|
}
|
|
113
144
|
function buildParagraphBlocks(text) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
145
|
+
const lines = text.split(/\r?\n/).filter((line) => line.trim());
|
|
146
|
+
return lines.map((line) => ({
|
|
147
|
+
object: "block",
|
|
148
|
+
type: "paragraph",
|
|
149
|
+
paragraph: {
|
|
150
|
+
rich_text: [
|
|
151
|
+
{
|
|
152
|
+
type: "text",
|
|
153
|
+
text: { content: line }
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
}));
|
|
122
158
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
//# sourceMappingURL=notion.js.map
|
|
159
|
+
export {
|
|
160
|
+
NotionProjectManagementProvider
|
|
161
|
+
};
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
interface PosthogReaderClient {
|
|
5
|
-
request<T = unknown>(request: analytics_d_exports.AnalyticsRequest): Promise<analytics_d_exports.AnalyticsResponse<T>>;
|
|
1
|
+
import type { AnalyticsReader, AnalyticsQueryInput, AnalyticsQueryResult, AnalyticsRequest, AnalyticsResponse, AnalyticsEvent, AnalyticsPerson, AnalyticsInsight, AnalyticsCohort, AnalyticsFeatureFlag, AnalyticsAnnotation, GetEventsInput, GetPersonsInput, GetInsightsInput, GetInsightResultInput, GetCohortsInput, GetFeatureFlagsInput, GetAnnotationsInput, PaginatedResponse } from '../analytics';
|
|
2
|
+
export interface PosthogReaderClient {
|
|
3
|
+
request<T = unknown>(request: AnalyticsRequest): Promise<AnalyticsResponse<T>>;
|
|
6
4
|
}
|
|
7
|
-
interface PosthogAnalyticsReaderOptions {
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export interface PosthogAnalyticsReaderOptions {
|
|
6
|
+
projectId?: string | number;
|
|
7
|
+
client: PosthogReaderClient;
|
|
10
8
|
}
|
|
11
|
-
declare class PosthogAnalyticsReader implements
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
export declare class PosthogAnalyticsReader implements AnalyticsReader {
|
|
10
|
+
private readonly projectId?;
|
|
11
|
+
private readonly client;
|
|
12
|
+
constructor(options: PosthogAnalyticsReaderOptions);
|
|
13
|
+
queryHogQL(input: AnalyticsQueryInput): Promise<AnalyticsQueryResult>;
|
|
14
|
+
getEvents(input: GetEventsInput): Promise<PaginatedResponse<AnalyticsEvent>>;
|
|
15
|
+
getPersons(input: GetPersonsInput): Promise<PaginatedResponse<AnalyticsPerson>>;
|
|
16
|
+
getInsights(input: GetInsightsInput): Promise<PaginatedResponse<AnalyticsInsight>>;
|
|
17
|
+
getInsightResult(input: GetInsightResultInput): Promise<AnalyticsInsight>;
|
|
18
|
+
getCohorts(input: GetCohortsInput): Promise<PaginatedResponse<AnalyticsCohort>>;
|
|
19
|
+
getFeatureFlags(input: GetFeatureFlagsInput): Promise<PaginatedResponse<AnalyticsFeatureFlag>>;
|
|
20
|
+
getAnnotations(input: GetAnnotationsInput): Promise<PaginatedResponse<AnalyticsAnnotation>>;
|
|
23
21
|
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { PosthogAnalyticsReader, PosthogAnalyticsReaderOptions, PosthogReaderClient };
|
|
26
22
|
//# sourceMappingURL=posthog-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog-reader.d.ts","
|
|
1
|
+
{"version":3,"file":"posthog-reader.d.ts","sourceRoot":"","sources":["../../src/impls/posthog-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EAEnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,CAAC,GAAG,OAAO,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBAEjC,OAAO,EAAE,6BAA6B;IAK5C,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgBrE,SAAS,CACb,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAuBvC,UAAU,CACd,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAoBxC,WAAW,CACf,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAgBzC,gBAAgB,CACpB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAStB,UAAU,CACd,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAexC,eAAe,CACnB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IAgB7C,cAAc,CAClB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;CAenD"}
|
|
@@ -1,141 +1,160 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
1
|
+
// @bun
|
|
2
|
+
// src/impls/posthog-reader.ts
|
|
3
|
+
class PosthogAnalyticsReader {
|
|
4
|
+
projectId;
|
|
5
|
+
client;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.projectId = options.projectId;
|
|
8
|
+
this.client = options.client;
|
|
9
|
+
}
|
|
10
|
+
async queryHogQL(input) {
|
|
11
|
+
const projectId = resolveProjectId(undefined, this.projectId);
|
|
12
|
+
const response = await this.client.request({
|
|
13
|
+
method: "POST",
|
|
14
|
+
path: `/api/projects/${projectId}/query`,
|
|
15
|
+
body: {
|
|
16
|
+
query: {
|
|
17
|
+
kind: "HogQLQuery",
|
|
18
|
+
query: input.query,
|
|
19
|
+
values: input.values
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return response.data;
|
|
24
|
+
}
|
|
25
|
+
async getEvents(input) {
|
|
26
|
+
const projectId = resolveProjectId(input.projectId, this.projectId);
|
|
27
|
+
const response = await this.client.request({
|
|
28
|
+
method: "GET",
|
|
29
|
+
path: `/api/projects/${projectId}/events/`,
|
|
30
|
+
query: {
|
|
31
|
+
event: input.event ?? resolveSingleEvent(input.events),
|
|
32
|
+
events: resolveEventList(input.events),
|
|
33
|
+
distinct_id: input.distinctId,
|
|
34
|
+
order_by: input.orderBy,
|
|
35
|
+
limit: input.limit,
|
|
36
|
+
offset: input.offset,
|
|
37
|
+
properties: input.properties ? JSON.stringify(input.properties) : undefined,
|
|
38
|
+
...buildEventDateQuery(input.dateRange)
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return response.data;
|
|
42
|
+
}
|
|
43
|
+
async getPersons(input) {
|
|
44
|
+
const projectId = resolveProjectId(input.projectId, this.projectId);
|
|
45
|
+
const response = await this.client.request({
|
|
46
|
+
method: "GET",
|
|
47
|
+
path: `/api/projects/${projectId}/persons/`,
|
|
48
|
+
query: {
|
|
49
|
+
cohort_id: input.cohortId,
|
|
50
|
+
search: input.search,
|
|
51
|
+
limit: input.limit,
|
|
52
|
+
offset: input.offset,
|
|
53
|
+
properties: input.properties ? JSON.stringify(input.properties) : undefined
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return response.data;
|
|
57
|
+
}
|
|
58
|
+
async getInsights(input) {
|
|
59
|
+
const projectId = resolveProjectId(input.projectId, this.projectId);
|
|
60
|
+
const response = await this.client.request({
|
|
61
|
+
method: "GET",
|
|
62
|
+
path: `/api/projects/${projectId}/insights/`,
|
|
63
|
+
query: {
|
|
64
|
+
insight: input.insightType,
|
|
65
|
+
limit: input.limit,
|
|
66
|
+
offset: input.offset
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return response.data;
|
|
70
|
+
}
|
|
71
|
+
async getInsightResult(input) {
|
|
72
|
+
const projectId = resolveProjectId(input.projectId, this.projectId);
|
|
73
|
+
const response = await this.client.request({
|
|
74
|
+
method: "GET",
|
|
75
|
+
path: `/api/projects/${projectId}/insights/${input.insightId}/`
|
|
76
|
+
});
|
|
77
|
+
return response.data;
|
|
78
|
+
}
|
|
79
|
+
async getCohorts(input) {
|
|
80
|
+
const projectId = resolveProjectId(input.projectId, this.projectId);
|
|
81
|
+
const response = await this.client.request({
|
|
82
|
+
method: "GET",
|
|
83
|
+
path: `/api/projects/${projectId}/cohorts/`,
|
|
84
|
+
query: {
|
|
85
|
+
limit: input.limit,
|
|
86
|
+
offset: input.offset
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return response.data;
|
|
90
|
+
}
|
|
91
|
+
async getFeatureFlags(input) {
|
|
92
|
+
const projectId = resolveProjectId(input.projectId, this.projectId);
|
|
93
|
+
const response = await this.client.request({
|
|
94
|
+
method: "GET",
|
|
95
|
+
path: `/api/projects/${projectId}/feature_flags/`,
|
|
96
|
+
query: {
|
|
97
|
+
active: input.active,
|
|
98
|
+
limit: input.limit,
|
|
99
|
+
offset: input.offset
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return response.data;
|
|
103
|
+
}
|
|
104
|
+
async getAnnotations(input) {
|
|
105
|
+
const projectId = resolveProjectId(input.projectId, this.projectId);
|
|
106
|
+
const response = await this.client.request({
|
|
107
|
+
method: "GET",
|
|
108
|
+
path: `/api/projects/${projectId}/annotations/`,
|
|
109
|
+
query: {
|
|
110
|
+
limit: input.limit,
|
|
111
|
+
offset: input.offset,
|
|
112
|
+
...buildAnnotationDateQuery(input.dateRange)
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return response.data;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
107
118
|
function resolveProjectId(inputProjectId, defaultProjectId) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
119
|
+
const projectId = inputProjectId ?? defaultProjectId;
|
|
120
|
+
if (!projectId) {
|
|
121
|
+
throw new Error("PostHog projectId is required for API reads.");
|
|
122
|
+
}
|
|
123
|
+
return projectId;
|
|
111
124
|
}
|
|
112
125
|
function resolveSingleEvent(events) {
|
|
113
|
-
|
|
114
|
-
|
|
126
|
+
if (!events || events.length !== 1)
|
|
127
|
+
return;
|
|
128
|
+
return events[0];
|
|
115
129
|
}
|
|
116
130
|
function resolveEventList(events) {
|
|
117
|
-
|
|
118
|
-
|
|
131
|
+
if (!events || events.length <= 1)
|
|
132
|
+
return;
|
|
133
|
+
return events.join(",");
|
|
119
134
|
}
|
|
120
135
|
function buildEventDateQuery(range) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
136
|
+
const after = formatDate(range?.from);
|
|
137
|
+
const before = formatDate(range?.to);
|
|
138
|
+
return {
|
|
139
|
+
after,
|
|
140
|
+
before,
|
|
141
|
+
timezone: range?.timezone
|
|
142
|
+
};
|
|
126
143
|
}
|
|
127
144
|
function buildAnnotationDateQuery(range) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
145
|
+
const dateFrom = formatDate(range?.from);
|
|
146
|
+
const dateTo = formatDate(range?.to);
|
|
147
|
+
return {
|
|
148
|
+
date_from: dateFrom,
|
|
149
|
+
date_to: dateTo,
|
|
150
|
+
timezone: range?.timezone
|
|
151
|
+
};
|
|
133
152
|
}
|
|
134
153
|
function formatDate(value) {
|
|
135
|
-
|
|
136
|
-
|
|
154
|
+
if (!value)
|
|
155
|
+
return;
|
|
156
|
+
return typeof value === "string" ? value : value.toISOString();
|
|
137
157
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
//# sourceMappingURL=posthog-reader.js.map
|
|
158
|
+
export {
|
|
159
|
+
PosthogAnalyticsReader
|
|
160
|
+
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
declare function
|
|
3
|
-
declare function
|
|
4
|
-
declare function
|
|
5
|
-
declare function parseJson<T>(value: string): T;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { appendQuery, buildUrl, normalizeHost, parseJson };
|
|
1
|
+
export declare function normalizeHost(host: string): string;
|
|
2
|
+
export declare function buildUrl(host: string, path: string, query?: Record<string, string | number | boolean | undefined>): string;
|
|
3
|
+
export declare function appendQuery(url: string, query?: Record<string, string | number | boolean | undefined>): string;
|
|
4
|
+
export declare function parseJson<T>(value: string): T;
|
|
8
5
|
//# sourceMappingURL=posthog-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog-utils.d.ts","
|
|
1
|
+
{"version":3,"file":"posthog-utils.d.ts","sourceRoot":"","sources":["../../src/impls/posthog-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC5D,MAAM,CAMR;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC5D,MAAM,CASR;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAO7C"}
|