@bubblelab/bubble-core 0.1.201 → 0.1.203
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/bubble-bundle.d.ts +171 -150
- package/dist/bubble-factory.d.ts.map +1 -1
- package/dist/bubble-factory.js +4 -0
- package/dist/bubble-factory.js.map +1 -1
- package/dist/bubbles/service-bubble/agi-inc.d.ts +112 -112
- package/dist/bubbles/service-bubble/agi-inc.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/agi-inc.js +4 -6
- package/dist/bubbles/service-bubble/agi-inc.js.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.d.ts +74 -74
- package/dist/bubbles/service-bubble/ai-agent.js +3 -3
- package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
- package/dist/bubbles/service-bubble/airtable.d.ts +158 -158
- package/dist/bubbles/service-bubble/airtable.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/airtable.js +8 -13
- package/dist/bubbles/service-bubble/airtable.js.map +1 -1
- package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +38 -38
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +126 -126
- package/dist/bubbles/service-bubble/apify/apify.d.ts +30 -30
- package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/apify/apify.js +10 -11
- package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +90 -90
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/ashby/ashby.js +8 -10
- package/dist/bubbles/service-bubble/ashby/ashby.js.map +1 -1
- package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
- package/dist/bubbles/service-bubble/attio/attio.d.ts +70 -70
- package/dist/bubbles/service-bubble/attio/attio.js +11 -12
- package/dist/bubbles/service-bubble/attio/attio.js.map +1 -1
- package/dist/bubbles/service-bubble/attio/attio.schema.d.ts +6 -6
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +58 -58
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/browserbase/browserbase.js +3 -8
- package/dist/bubbles/service-bubble/browserbase/browserbase.js.map +1 -1
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
- package/dist/bubbles/service-bubble/confluence/confluence.d.ts +43 -43
- package/dist/bubbles/service-bubble/confluence/confluence.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/confluence/confluence.js +4 -6
- package/dist/bubbles/service-bubble/confluence/confluence.js.map +1 -1
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +94 -94
- package/dist/bubbles/service-bubble/crustdata/crustdata.js +16 -17
- package/dist/bubbles/service-bubble/crustdata/crustdata.js.map +1 -1
- package/dist/bubbles/service-bubble/eleven-labs.d.ts +48 -48
- package/dist/bubbles/service-bubble/eleven-labs.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/eleven-labs.js +12 -14
- package/dist/bubbles/service-bubble/eleven-labs.js.map +1 -1
- package/dist/bubbles/service-bubble/firecrawl.d.ts +304 -304
- package/dist/bubbles/service-bubble/firecrawl.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/firecrawl.js +3 -12
- package/dist/bubbles/service-bubble/firecrawl.js.map +1 -1
- package/dist/bubbles/service-bubble/followupboss.d.ts +260 -260
- package/dist/bubbles/service-bubble/followupboss.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/followupboss.js +12 -13
- package/dist/bubbles/service-bubble/followupboss.js.map +1 -1
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +44 -44
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.js +11 -12
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.js.map +1 -1
- package/dist/bubbles/service-bubble/github.d.ts +102 -102
- package/dist/bubbles/service-bubble/github.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/github.js +14 -17
- package/dist/bubbles/service-bubble/github.js.map +1 -1
- package/dist/bubbles/service-bubble/gmail.d.ts +332 -332
- package/dist/bubbles/service-bubble/gmail.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/gmail.js +10 -12
- package/dist/bubbles/service-bubble/gmail.js.map +1 -1
- package/dist/bubbles/service-bubble/google-calendar.d.ts +136 -136
- package/dist/bubbles/service-bubble/google-calendar.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/google-calendar.js +10 -11
- package/dist/bubbles/service-bubble/google-calendar.js.map +1 -1
- package/dist/bubbles/service-bubble/google-drive.d.ts +116 -110
- package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/google-drive.js +19 -13
- package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +52 -52
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.js +6 -8
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.js.map +1 -1
- package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
- package/dist/bubbles/service-bubble/http.d.ts +12 -12
- package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +20 -20
- package/dist/bubbles/service-bubble/hubspot/hubspot.js +9 -10
- package/dist/bubbles/service-bubble/hubspot/hubspot.js.map +1 -1
- package/dist/bubbles/service-bubble/insforge-db.d.ts +12 -12
- package/dist/bubbles/service-bubble/insforge-db.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/insforge-db.js +24 -26
- package/dist/bubbles/service-bubble/insforge-db.js.map +1 -1
- package/dist/bubbles/service-bubble/jira/jira.d.ts +74 -74
- package/dist/bubbles/service-bubble/jira/jira.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/jira/jira.js +5 -7
- package/dist/bubbles/service-bubble/jira/jira.js.map +1 -1
- package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
- package/dist/bubbles/service-bubble/linear/linear.d.ts +44 -44
- package/dist/bubbles/service-bubble/linear/linear.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/linear/linear.js +5 -7
- package/dist/bubbles/service-bubble/linear/linear.js.map +1 -1
- package/dist/bubbles/service-bubble/notion/notion.d.ts +408 -408
- package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/notion/notion.js +5 -11
- package/dist/bubbles/service-bubble/notion/notion.js.map +1 -1
- package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
- package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
- package/dist/bubbles/service-bubble/posthog/posthog.d.ts +33 -33
- package/dist/bubbles/service-bubble/posthog/posthog.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/posthog/posthog.js +17 -18
- package/dist/bubbles/service-bubble/posthog/posthog.js.map +1 -1
- package/dist/bubbles/service-bubble/posthog/posthog.schema.d.ts +14 -14
- package/dist/bubbles/service-bubble/resend.d.ts +32 -32
- package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/resend.js +8 -13
- package/dist/bubbles/service-bubble/resend.js.map +1 -1
- package/dist/bubbles/service-bubble/s3/index.d.ts +4 -0
- package/dist/bubbles/service-bubble/s3/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/s3/index.js +4 -0
- package/dist/bubbles/service-bubble/s3/index.js.map +1 -0
- package/dist/bubbles/service-bubble/s3/s3.d.ts +306 -0
- package/dist/bubbles/service-bubble/s3/s3.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/s3/s3.js +369 -0
- package/dist/bubbles/service-bubble/s3/s3.js.map +1 -0
- package/dist/bubbles/service-bubble/s3/s3.schema.d.ts +265 -0
- package/dist/bubbles/service-bubble/s3/s3.schema.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/s3/s3.schema.js +213 -0
- package/dist/bubbles/service-bubble/s3/s3.schema.js.map +1 -0
- package/dist/bubbles/service-bubble/s3/s3.utils.d.ts +17 -0
- package/dist/bubbles/service-bubble/s3/s3.utils.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/s3/s3.utils.js +46 -0
- package/dist/bubbles/service-bubble/s3/s3.utils.js.map +1 -0
- package/dist/bubbles/service-bubble/sendsafely/sendsafely.d.ts +18 -18
- package/dist/bubbles/service-bubble/sendsafely/sendsafely.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/sendsafely/sendsafely.js +4 -9
- package/dist/bubbles/service-bubble/sendsafely/sendsafely.js.map +1 -1
- package/dist/bubbles/service-bubble/slack/slack.d.ts +378 -378
- package/dist/bubbles/service-bubble/slack/slack.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/slack/slack.js +4 -3
- package/dist/bubbles/service-bubble/slack/slack.js.map +1 -1
- package/dist/bubbles/service-bubble/storage.d.ts +92 -92
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +123 -123
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/stripe/stripe.js +5 -7
- package/dist/bubbles/service-bubble/stripe/stripe.js.map +1 -1
- package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
- package/dist/bubbles/service-bubble/telegram.d.ts +116 -116
- package/dist/bubbles/service-bubble/telegram.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/telegram.js +3 -3
- package/dist/bubbles/service-bubble/telegram.js.map +1 -1
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +32 -32
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/instagram-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +405 -405
- package/dist/bubbles/tool-bubble/list-airtable-bases-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/list-airtable-tables-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +68 -68
- package/dist/bubbles/tool-bubble/tool-template.d.ts +4 -4
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +142 -142
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +12 -12
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +28 -28
- package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +16 -16
- package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +8 -8
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +66 -66
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +24 -24
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +28 -28
- package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +4 -4
- package/dist/bubbles.json +493 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CredentialType } from '@bubblelab/shared-schemas';
|
|
3
|
+
// Base credentials schema that all operations share
|
|
4
|
+
const BaseCredentialsSchema = z
|
|
5
|
+
.record(z.nativeEnum(CredentialType), z.string())
|
|
6
|
+
.optional()
|
|
7
|
+
.describe('Object mapping credential types to values (injected at runtime)');
|
|
8
|
+
// Define the parameters schema for S3 operations using discriminated union
|
|
9
|
+
export const S3ParamsSchema = z.discriminatedUnion('operation', [
|
|
10
|
+
// Get upload URL operation
|
|
11
|
+
z.object({
|
|
12
|
+
operation: z
|
|
13
|
+
.literal('getUploadUrl')
|
|
14
|
+
.describe('Generate presigned upload URL'),
|
|
15
|
+
bucketName: z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1, 'Bucket name is required')
|
|
18
|
+
.describe('Name of the S3 bucket'),
|
|
19
|
+
fileName: z
|
|
20
|
+
.string()
|
|
21
|
+
.min(1, 'File name is required')
|
|
22
|
+
.describe('Original filename for the upload'),
|
|
23
|
+
region: z
|
|
24
|
+
.string()
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('AWS region override (defaults from credential or us-east-1)'),
|
|
27
|
+
expirationMinutes: z
|
|
28
|
+
.number()
|
|
29
|
+
.optional()
|
|
30
|
+
.default(60)
|
|
31
|
+
.describe('URL expiration time in minutes'),
|
|
32
|
+
contentType: z.string().optional().describe('Content type for uploads'),
|
|
33
|
+
userId: z.string().optional().describe('User ID for secure file isolation'),
|
|
34
|
+
credentials: BaseCredentialsSchema,
|
|
35
|
+
}),
|
|
36
|
+
// Get file operation
|
|
37
|
+
z.object({
|
|
38
|
+
operation: z.literal('getFile').describe('Generate presigned download URL'),
|
|
39
|
+
bucketName: z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1, 'Bucket name is required')
|
|
42
|
+
.describe('Name of the S3 bucket'),
|
|
43
|
+
fileName: z
|
|
44
|
+
.string()
|
|
45
|
+
.min(1, 'File name is required')
|
|
46
|
+
.describe('Name of the file to retrieve'),
|
|
47
|
+
region: z
|
|
48
|
+
.string()
|
|
49
|
+
.optional()
|
|
50
|
+
.describe('AWS region override (defaults from credential or us-east-1)'),
|
|
51
|
+
expirationMinutes: z
|
|
52
|
+
.number()
|
|
53
|
+
.optional()
|
|
54
|
+
.default(60)
|
|
55
|
+
.describe('URL expiration time in minutes'),
|
|
56
|
+
userId: z.string().optional().describe('User ID for secure file isolation'),
|
|
57
|
+
credentials: BaseCredentialsSchema,
|
|
58
|
+
}),
|
|
59
|
+
// Delete file operation
|
|
60
|
+
z.object({
|
|
61
|
+
operation: z.literal('deleteFile').describe('Delete file from bucket'),
|
|
62
|
+
bucketName: z
|
|
63
|
+
.string()
|
|
64
|
+
.min(1, 'Bucket name is required')
|
|
65
|
+
.describe('Name of the S3 bucket'),
|
|
66
|
+
fileName: z
|
|
67
|
+
.string()
|
|
68
|
+
.min(1, 'File name is required')
|
|
69
|
+
.describe('Name of the file to delete'),
|
|
70
|
+
region: z
|
|
71
|
+
.string()
|
|
72
|
+
.optional()
|
|
73
|
+
.describe('AWS region override (defaults from credential or us-east-1)'),
|
|
74
|
+
credentials: BaseCredentialsSchema,
|
|
75
|
+
}),
|
|
76
|
+
// Update file operation
|
|
77
|
+
z.object({
|
|
78
|
+
operation: z.literal('updateFile').describe('Upload or replace file content'),
|
|
79
|
+
bucketName: z
|
|
80
|
+
.string()
|
|
81
|
+
.min(1, 'Bucket name is required')
|
|
82
|
+
.default('bubble-lab-bucket'),
|
|
83
|
+
fileName: z
|
|
84
|
+
.string()
|
|
85
|
+
.min(1, 'File name is required')
|
|
86
|
+
.describe('Name of the file. Pass a secure fileName from a previous operation to overwrite it, or a new name to create a new file'),
|
|
87
|
+
region: z
|
|
88
|
+
.string()
|
|
89
|
+
.optional()
|
|
90
|
+
.describe('AWS region override (defaults from credential or us-east-1)'),
|
|
91
|
+
contentType: z.string().optional().describe('Content type for uploads'),
|
|
92
|
+
fileContent: z
|
|
93
|
+
.string()
|
|
94
|
+
.min(1, 'File content is required for updates')
|
|
95
|
+
.describe('Base64 encoded file content or raw text content'),
|
|
96
|
+
userId: z.string().optional().describe('User ID for secure file isolation'),
|
|
97
|
+
credentials: BaseCredentialsSchema,
|
|
98
|
+
}),
|
|
99
|
+
// Get multiple upload URLs operation
|
|
100
|
+
z.object({
|
|
101
|
+
operation: z
|
|
102
|
+
.literal('getMultipleUploadUrls')
|
|
103
|
+
.describe('Generate multiple presigned upload URLs for PDF + page images'),
|
|
104
|
+
bucketName: z
|
|
105
|
+
.string()
|
|
106
|
+
.min(1, 'Bucket name is required')
|
|
107
|
+
.describe('Name of the S3 bucket'),
|
|
108
|
+
pdfFileName: z
|
|
109
|
+
.string()
|
|
110
|
+
.min(1, 'PDF file name is required')
|
|
111
|
+
.describe('Original filename for the PDF'),
|
|
112
|
+
pageCount: z
|
|
113
|
+
.number()
|
|
114
|
+
.min(1, 'Page count must be at least 1')
|
|
115
|
+
.describe('Number of pages to generate upload URLs for'),
|
|
116
|
+
region: z
|
|
117
|
+
.string()
|
|
118
|
+
.optional()
|
|
119
|
+
.describe('AWS region override (defaults from credential or us-east-1)'),
|
|
120
|
+
expirationMinutes: z
|
|
121
|
+
.number()
|
|
122
|
+
.optional()
|
|
123
|
+
.default(60)
|
|
124
|
+
.describe('URL expiration time in minutes'),
|
|
125
|
+
userId: z.string().optional().describe('User ID for secure file isolation'),
|
|
126
|
+
credentials: BaseCredentialsSchema,
|
|
127
|
+
}),
|
|
128
|
+
]);
|
|
129
|
+
// Define result schemas for different operations using discriminated union
|
|
130
|
+
export const S3ResultSchema = z.discriminatedUnion('operation', [
|
|
131
|
+
// Get upload URL result
|
|
132
|
+
z.object({
|
|
133
|
+
operation: z
|
|
134
|
+
.literal('getUploadUrl')
|
|
135
|
+
.describe('Generate presigned upload URL'),
|
|
136
|
+
success: z.boolean().describe('Whether the operation was successful'),
|
|
137
|
+
uploadUrl: z.string().optional().describe('Presigned upload URL'),
|
|
138
|
+
fileName: z
|
|
139
|
+
.string()
|
|
140
|
+
.optional()
|
|
141
|
+
.describe('Secure filename generated for the upload'),
|
|
142
|
+
contentType: z.string().optional().describe('Content type of the file'),
|
|
143
|
+
error: z.string().describe('Error message if operation failed'),
|
|
144
|
+
}),
|
|
145
|
+
// Get file result
|
|
146
|
+
z.object({
|
|
147
|
+
operation: z.literal('getFile').describe('Generate presigned download URL'),
|
|
148
|
+
success: z.boolean().describe('Whether the operation was successful'),
|
|
149
|
+
downloadUrl: z.string().optional().describe('Presigned download URL'),
|
|
150
|
+
fileUrl: z.string().optional().describe('Direct file access URL'),
|
|
151
|
+
fileName: z.string().optional().describe('Name of the file'),
|
|
152
|
+
fileSize: z.number().optional().describe('File size in bytes'),
|
|
153
|
+
contentType: z.string().optional().describe('Content type of the file'),
|
|
154
|
+
lastModified: z
|
|
155
|
+
.string()
|
|
156
|
+
.optional()
|
|
157
|
+
.describe('Last modified timestamp in ISO format'),
|
|
158
|
+
error: z.string().describe('Error message if operation failed'),
|
|
159
|
+
}),
|
|
160
|
+
// Delete file result
|
|
161
|
+
z.object({
|
|
162
|
+
operation: z.literal('deleteFile').describe('Delete file from bucket'),
|
|
163
|
+
success: z.boolean().describe('Whether the operation was successful'),
|
|
164
|
+
fileName: z.string().optional().describe('Name of the deleted file'),
|
|
165
|
+
deleted: z
|
|
166
|
+
.boolean()
|
|
167
|
+
.optional()
|
|
168
|
+
.describe('Whether the file was successfully deleted'),
|
|
169
|
+
error: z.string().describe('Error message if operation failed'),
|
|
170
|
+
}),
|
|
171
|
+
// Update file result
|
|
172
|
+
z.object({
|
|
173
|
+
operation: z
|
|
174
|
+
.literal('updateFile')
|
|
175
|
+
.describe('Update/replace file content and generate a new secure filename for the file'),
|
|
176
|
+
success: z.boolean().describe('Whether the operation was successful'),
|
|
177
|
+
fileName: z
|
|
178
|
+
.string()
|
|
179
|
+
.optional()
|
|
180
|
+
.describe('Secure filename for the updated file (different from the original filename)'),
|
|
181
|
+
updated: z
|
|
182
|
+
.boolean()
|
|
183
|
+
.optional()
|
|
184
|
+
.describe('Whether the file was successfully updated'),
|
|
185
|
+
contentType: z
|
|
186
|
+
.string()
|
|
187
|
+
.optional()
|
|
188
|
+
.describe('Content type of the updated file'),
|
|
189
|
+
error: z.string().describe('Error message if operation failed'),
|
|
190
|
+
}),
|
|
191
|
+
// Get multiple upload URLs result
|
|
192
|
+
z.object({
|
|
193
|
+
operation: z
|
|
194
|
+
.literal('getMultipleUploadUrls')
|
|
195
|
+
.describe('Generate multiple presigned upload URLs for PDF + page images'),
|
|
196
|
+
success: z.boolean().describe('Whether the operation was successful'),
|
|
197
|
+
pdfUploadUrl: z
|
|
198
|
+
.string()
|
|
199
|
+
.optional()
|
|
200
|
+
.describe('Presigned upload URL for PDF'),
|
|
201
|
+
pdfFileName: z.string().optional().describe('Secure filename for PDF'),
|
|
202
|
+
pageUploadUrls: z
|
|
203
|
+
.array(z.object({
|
|
204
|
+
pageNumber: z.number().describe('Page number (1-indexed)'),
|
|
205
|
+
uploadUrl: z.string().describe('Presigned upload URL for this page'),
|
|
206
|
+
fileName: z.string().describe('Secure filename for this page image'),
|
|
207
|
+
}))
|
|
208
|
+
.optional()
|
|
209
|
+
.describe('Array of upload URLs for page images'),
|
|
210
|
+
error: z.string().describe('Error message if operation failed'),
|
|
211
|
+
}),
|
|
212
|
+
]);
|
|
213
|
+
//# sourceMappingURL=s3.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.schema.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/s3/s3.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface S3Credentials {
|
|
2
|
+
accessKeyId: string;
|
|
3
|
+
secretAccessKey: string;
|
|
4
|
+
endpoint?: string;
|
|
5
|
+
region?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Parse a multi-field credential value into typed S3 fields.
|
|
9
|
+
* Uses the shared decodeCredentialPayload() which handles both
|
|
10
|
+
* base64 (injection path) and raw JSON (validator path).
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseS3Credential(value: string): S3Credentials;
|
|
13
|
+
/**
|
|
14
|
+
* Helper method to detect if a string is base64 encoded
|
|
15
|
+
*/
|
|
16
|
+
export declare function isBase64(str: string): boolean;
|
|
17
|
+
//# sourceMappingURL=s3.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.utils.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/s3/s3.utils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAa9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAuB7C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { decodeCredentialPayload } from '@bubblelab/shared-schemas';
|
|
2
|
+
/**
|
|
3
|
+
* Parse a multi-field credential value into typed S3 fields.
|
|
4
|
+
* Uses the shared decodeCredentialPayload() which handles both
|
|
5
|
+
* base64 (injection path) and raw JSON (validator path).
|
|
6
|
+
*/
|
|
7
|
+
export function parseS3Credential(value) {
|
|
8
|
+
const parsed = decodeCredentialPayload(value);
|
|
9
|
+
if (!parsed.accessKeyId || !parsed.secretAccessKey) {
|
|
10
|
+
throw new Error('S3 credential is missing required fields: accessKeyId, secretAccessKey');
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
accessKeyId: parsed.accessKeyId,
|
|
14
|
+
secretAccessKey: parsed.secretAccessKey,
|
|
15
|
+
endpoint: parsed.endpoint || undefined,
|
|
16
|
+
region: parsed.region || undefined,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Helper method to detect if a string is base64 encoded
|
|
21
|
+
*/
|
|
22
|
+
export function isBase64(str) {
|
|
23
|
+
try {
|
|
24
|
+
// Check if it's a data URL (e.g., "data:image/png;base64,...")
|
|
25
|
+
if (str.startsWith('data:') && str.includes('base64,')) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
// Check if it's pure base64 (valid base64 characters, proper length)
|
|
29
|
+
const base64Regex = /^[A-Za-z0-9+/]*={0,2}$/;
|
|
30
|
+
if (base64Regex.test(str) && str.length > 0) {
|
|
31
|
+
// Try to decode and re-encode to verify it's valid base64
|
|
32
|
+
try {
|
|
33
|
+
const decoded = Buffer.from(str, 'base64').toString('base64');
|
|
34
|
+
return decoded === str;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=s3.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.utils.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/s3/s3.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AASpE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,MAAM,GAAG,uBAAuB,CAAyB,KAAK,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;KACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,+DAA+D;QAC/D,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qEAAqE;QACrE,MAAM,WAAW,GAAG,wBAAwB,CAAC;QAC7C,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,0DAA0D;YAC1D,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC9D,OAAO,OAAO,KAAK,GAAG,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -61,14 +61,14 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
61
61
|
lifeDays: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
62
62
|
credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
|
|
63
63
|
}, "strip", import("zod").ZodTypeAny, {
|
|
64
|
-
message: string;
|
|
65
64
|
operation: "send_message";
|
|
65
|
+
message: string;
|
|
66
66
|
recipientEmail: string | string[];
|
|
67
67
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
68
68
|
lifeDays?: number | undefined;
|
|
69
69
|
}, {
|
|
70
|
-
message: string;
|
|
71
70
|
operation: "send_message";
|
|
71
|
+
message: string;
|
|
72
72
|
recipientEmail: string | string[];
|
|
73
73
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
74
74
|
lifeDays?: number | undefined;
|
|
@@ -92,15 +92,15 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
92
92
|
secureLink: import("zod").ZodOptional<import("zod").ZodString>;
|
|
93
93
|
error: import("zod").ZodString;
|
|
94
94
|
}, "strip", import("zod").ZodTypeAny, {
|
|
95
|
-
error: string;
|
|
96
|
-
success: boolean;
|
|
97
95
|
operation: "send_file";
|
|
96
|
+
success: boolean;
|
|
97
|
+
error: string;
|
|
98
98
|
packageId?: string | undefined;
|
|
99
99
|
secureLink?: string | undefined;
|
|
100
100
|
}, {
|
|
101
|
-
error: string;
|
|
102
|
-
success: boolean;
|
|
103
101
|
operation: "send_file";
|
|
102
|
+
success: boolean;
|
|
103
|
+
error: string;
|
|
104
104
|
packageId?: string | undefined;
|
|
105
105
|
secureLink?: string | undefined;
|
|
106
106
|
}>, import("zod").ZodObject<{
|
|
@@ -110,15 +110,15 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
110
110
|
secureLink: import("zod").ZodOptional<import("zod").ZodString>;
|
|
111
111
|
error: import("zod").ZodString;
|
|
112
112
|
}, "strip", import("zod").ZodTypeAny, {
|
|
113
|
-
error: string;
|
|
114
|
-
success: boolean;
|
|
115
113
|
operation: "send_message";
|
|
114
|
+
success: boolean;
|
|
115
|
+
error: string;
|
|
116
116
|
packageId?: string | undefined;
|
|
117
117
|
secureLink?: string | undefined;
|
|
118
118
|
}, {
|
|
119
|
-
error: string;
|
|
120
|
-
success: boolean;
|
|
121
119
|
operation: "send_message";
|
|
120
|
+
success: boolean;
|
|
121
|
+
error: string;
|
|
122
122
|
packageId?: string | undefined;
|
|
123
123
|
secureLink?: string | undefined;
|
|
124
124
|
}>, import("zod").ZodObject<{
|
|
@@ -162,6 +162,7 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
162
162
|
fileSize?: number | undefined;
|
|
163
163
|
}[] | undefined;
|
|
164
164
|
state?: string | undefined;
|
|
165
|
+
secureLink?: string | undefined;
|
|
165
166
|
packageCode?: string | undefined;
|
|
166
167
|
serverSecret?: string | undefined;
|
|
167
168
|
recipients?: {
|
|
@@ -169,7 +170,6 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
169
170
|
recipientId: string;
|
|
170
171
|
}[] | undefined;
|
|
171
172
|
life?: number | undefined;
|
|
172
|
-
secureLink?: string | undefined;
|
|
173
173
|
}, {
|
|
174
174
|
packageId: string;
|
|
175
175
|
files?: {
|
|
@@ -178,6 +178,7 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
178
178
|
fileSize?: number | undefined;
|
|
179
179
|
}[] | undefined;
|
|
180
180
|
state?: string | undefined;
|
|
181
|
+
secureLink?: string | undefined;
|
|
181
182
|
packageCode?: string | undefined;
|
|
182
183
|
serverSecret?: string | undefined;
|
|
183
184
|
recipients?: {
|
|
@@ -185,13 +186,12 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
185
186
|
recipientId: string;
|
|
186
187
|
}[] | undefined;
|
|
187
188
|
life?: number | undefined;
|
|
188
|
-
secureLink?: string | undefined;
|
|
189
189
|
}>>;
|
|
190
190
|
error: import("zod").ZodString;
|
|
191
191
|
}, "strip", import("zod").ZodTypeAny, {
|
|
192
|
-
error: string;
|
|
193
|
-
success: boolean;
|
|
194
192
|
operation: "get_package";
|
|
193
|
+
success: boolean;
|
|
194
|
+
error: string;
|
|
195
195
|
package?: {
|
|
196
196
|
packageId: string;
|
|
197
197
|
files?: {
|
|
@@ -200,6 +200,7 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
200
200
|
fileSize?: number | undefined;
|
|
201
201
|
}[] | undefined;
|
|
202
202
|
state?: string | undefined;
|
|
203
|
+
secureLink?: string | undefined;
|
|
203
204
|
packageCode?: string | undefined;
|
|
204
205
|
serverSecret?: string | undefined;
|
|
205
206
|
recipients?: {
|
|
@@ -207,12 +208,11 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
207
208
|
recipientId: string;
|
|
208
209
|
}[] | undefined;
|
|
209
210
|
life?: number | undefined;
|
|
210
|
-
secureLink?: string | undefined;
|
|
211
211
|
} | undefined;
|
|
212
212
|
}, {
|
|
213
|
-
error: string;
|
|
214
|
-
success: boolean;
|
|
215
213
|
operation: "get_package";
|
|
214
|
+
success: boolean;
|
|
215
|
+
error: string;
|
|
216
216
|
package?: {
|
|
217
217
|
packageId: string;
|
|
218
218
|
files?: {
|
|
@@ -221,6 +221,7 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
221
221
|
fileSize?: number | undefined;
|
|
222
222
|
}[] | undefined;
|
|
223
223
|
state?: string | undefined;
|
|
224
|
+
secureLink?: string | undefined;
|
|
224
225
|
packageCode?: string | undefined;
|
|
225
226
|
serverSecret?: string | undefined;
|
|
226
227
|
recipients?: {
|
|
@@ -228,7 +229,6 @@ export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafe
|
|
|
228
229
|
recipientId: string;
|
|
229
230
|
}[] | undefined;
|
|
230
231
|
life?: number | undefined;
|
|
231
|
-
secureLink?: string | undefined;
|
|
232
232
|
} | undefined;
|
|
233
233
|
}>]>;
|
|
234
234
|
static readonly shortDescription = "Encrypted file transfer and secure messaging via SendSafely";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendsafely.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/sendsafely/sendsafely.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAehC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACvD,SAAQ,aAAa,CACrB,CAAC,EACD,OAAO,CAAC,gBAAgB,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CACzD;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,gBAAgB;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA0B;IAChD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA0B;IACtD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,iEACgC;IAChE,MAAM,CAAC,QAAQ,CAAC,eAAe,yrBAkB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,wBAAwB;gBAG3C,MAAM,GAAE,CAGF,EACN,OAAO,CAAC,EAAE,aAAa;IAKZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sendsafely.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/sendsafely/sendsafely.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAehC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACvD,SAAQ,aAAa,CACrB,CAAC,EACD,OAAO,CAAC,gBAAgB,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CACzD;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,gBAAgB;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA0B;IAChD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA0B;IACtD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,iEACgC;IAChE,MAAM,CAAC,QAAQ,CAAC,eAAe,yrBAkB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,wBAAwB;gBAG3C,MAAM,GAAE,CAGF,EACN,OAAO,CAAC,EAAE,aAAa;IAKZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;cAY/B,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YAkDtD,QAAQ;YAqER,WAAW;YAwDX,UAAU;IA4CxB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;CAWjD"}
|
|
@@ -62,15 +62,10 @@ export class SendSafelyBubble extends ServiceBubble {
|
|
|
62
62
|
if (!credential) {
|
|
63
63
|
return false;
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
65
|
+
const creds = parseSendSafelyCredential(credential);
|
|
66
|
+
const client = createClient(creds);
|
|
67
|
+
await verifyCredentials(client);
|
|
68
|
+
return true;
|
|
74
69
|
}
|
|
75
70
|
async performAction(context) {
|
|
76
71
|
void context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendsafely.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/sendsafely/sendsafely.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GAIvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,gBAEX,SAAQ,aAGT;IACC,MAAM,CAAU,IAAI,GAAG,SAAkB,CAAC;IAC1C,MAAM,CAAU,OAAO,GAAG,YAAY,CAAC;IACvC,MAAM,CAAU,QAAQ,GAAG,QAAiB,CAAC;IAC7C,MAAM,CAAU,UAAU,GAAG,YAAY,CAAC;IAC1C,MAAM,CAAU,MAAM,GAAG,sBAAsB,CAAC;IAChD,MAAM,CAAU,YAAY,GAAG,sBAAsB,CAAC;IACtD,MAAM,CAAU,gBAAgB,GAC9B,6DAA6D,CAAC;IAChE,MAAM,CAAU,eAAe,GAAG;;;;;;;;;;;;;;;;;;GAkBjC,CAAC;IACF,MAAM,CAAU,KAAK,GAAG,oBAAoB,CAAC;IAE7C,YACE,SAAY;QACV,SAAS,EAAE,aAAa;QACxB,UAAU,EAAE,EAAE;KACV,EACN,OAAuB;QAEvB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"sendsafely.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/sendsafely/sendsafely.ts"],"names":[],"mappings":"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"}
|