patchwork-os 0.2.0-beta.6.canary.21 → 0.2.0-beta.6.canary.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/connectorRoutes.js +384 -0
  2. package/dist/connectorRoutes.js.map +1 -1
  3. package/dist/connectors/airtable.d.ts +108 -0
  4. package/dist/connectors/airtable.js +396 -0
  5. package/dist/connectors/airtable.js.map +1 -0
  6. package/dist/connectors/connectorRegistry.js +63 -0
  7. package/dist/connectors/connectorRegistry.js.map +1 -1
  8. package/dist/connectors/elasticsearch.d.ts +141 -0
  9. package/dist/connectors/elasticsearch.js +601 -0
  10. package/dist/connectors/elasticsearch.js.map +1 -0
  11. package/dist/connectors/figma.d.ts +130 -0
  12. package/dist/connectors/figma.js +387 -0
  13. package/dist/connectors/figma.js.map +1 -0
  14. package/dist/connectors/gmail.js +9 -0
  15. package/dist/connectors/gmail.js.map +1 -1
  16. package/dist/connectors/googleDrive.d.ts +12 -0
  17. package/dist/connectors/googleDrive.js +27 -0
  18. package/dist/connectors/googleDrive.js.map +1 -1
  19. package/dist/connectors/mongodb.d.ts +139 -0
  20. package/dist/connectors/mongodb.js +455 -0
  21. package/dist/connectors/mongodb.js.map +1 -0
  22. package/dist/connectors/postgres.d.ts +127 -0
  23. package/dist/connectors/postgres.js +512 -0
  24. package/dist/connectors/postgres.js.map +1 -0
  25. package/dist/connectors/redis.d.ts +140 -0
  26. package/dist/connectors/redis.js +571 -0
  27. package/dist/connectors/redis.js.map +1 -0
  28. package/dist/connectors/sendgrid.d.ts +102 -0
  29. package/dist/connectors/sendgrid.js +423 -0
  30. package/dist/connectors/sendgrid.js.map +1 -0
  31. package/dist/connectors/twilio.d.ts +118 -0
  32. package/dist/connectors/twilio.js +475 -0
  33. package/dist/connectors/twilio.js.map +1 -0
  34. package/dist/connectors/webflow.d.ts +118 -0
  35. package/dist/connectors/webflow.js +393 -0
  36. package/dist/connectors/webflow.js.map +1 -0
  37. package/dist/recipes/tools/gmail.js +27 -5
  38. package/dist/recipes/tools/gmail.js.map +1 -1
  39. package/dist/recipes/tools/googleDrive.js +64 -0
  40. package/dist/recipes/tools/googleDrive.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Airtable connector — record access via the Airtable REST API v0.
3
+ *
4
+ * Auth: Personal Access Token (PAT) — `Authorization: Bearer <pat>`. PATs
5
+ * start with `pat...`.
6
+ * - Env var: AIRTABLE_ACCESS_TOKEN
7
+ * - Stored: getSecretJsonSync("airtable") → AirtableTokens
8
+ *
9
+ * Tools: listBases, getBaseSchema, listRecords, getRecord, createRecord,
10
+ * updateRecord. Write ops (create/update) are intentionally exposed — the
11
+ * point of the integration is round-trip record manipulation.
12
+ *
13
+ * Extends BaseConnector for unified auth, retry, rate-limit, error handling.
14
+ */
15
+ import { type AuthContext, BaseConnector, type ConnectorError, type ConnectorStatus } from "./baseConnector.js";
16
+ export interface AirtableTokens {
17
+ accessToken: string;
18
+ userId?: string;
19
+ email?: string;
20
+ connected_at: string;
21
+ }
22
+ export interface AirtableBase {
23
+ id: string;
24
+ name: string;
25
+ permissionLevel?: string;
26
+ }
27
+ export interface AirtableField {
28
+ id: string;
29
+ name: string;
30
+ type: string;
31
+ description?: string;
32
+ options?: Record<string, unknown>;
33
+ }
34
+ export interface AirtableTable {
35
+ id: string;
36
+ name: string;
37
+ primaryFieldId?: string;
38
+ description?: string;
39
+ fields: AirtableField[];
40
+ }
41
+ export interface AirtableRecord {
42
+ id: string;
43
+ createdTime: string;
44
+ fields: Record<string, unknown>;
45
+ }
46
+ export interface AirtableListBasesResult {
47
+ bases: AirtableBase[];
48
+ offset?: string;
49
+ }
50
+ export interface AirtableSchemaResult {
51
+ tables: AirtableTable[];
52
+ }
53
+ export interface AirtableListRecordsResult {
54
+ records: AirtableRecord[];
55
+ offset?: string;
56
+ }
57
+ export interface AirtableListRecordsParams {
58
+ filterByFormula?: string;
59
+ sort?: Array<{
60
+ field: string;
61
+ direction?: "asc" | "desc";
62
+ }>;
63
+ view?: string;
64
+ fields?: string[];
65
+ maxRecords?: number;
66
+ pageSize?: number;
67
+ }
68
+ export declare class AirtableConnector extends BaseConnector {
69
+ readonly providerName = "airtable";
70
+ private tokens;
71
+ protected getOAuthConfig(): null;
72
+ authenticate(): Promise<AuthContext>;
73
+ healthCheck(): Promise<{
74
+ ok: boolean;
75
+ error?: ConnectorError;
76
+ }>;
77
+ normalizeError(error: unknown): ConnectorError;
78
+ getStatus(): ConnectorStatus;
79
+ listBases(): Promise<AirtableListBasesResult>;
80
+ getBaseSchema(baseId: string): Promise<AirtableSchemaResult>;
81
+ listRecords(baseId: string, tableIdOrName: string, params?: AirtableListRecordsParams): Promise<AirtableListRecordsResult>;
82
+ getRecord(baseId: string, tableIdOrName: string, recordId: string): Promise<AirtableRecord>;
83
+ createRecord(baseId: string, tableIdOrName: string, fields: Record<string, unknown>): Promise<AirtableRecord>;
84
+ updateRecord(baseId: string, tableIdOrName: string, recordId: string, fields: Record<string, unknown>): Promise<AirtableRecord>;
85
+ private buildHeaders;
86
+ }
87
+ export declare function loadTokens(): AirtableTokens | null;
88
+ export declare function saveTokens(tokens: AirtableTokens): void;
89
+ export declare function clearTokens(): void;
90
+ export declare function getAirtableConnector(): AirtableConnector;
91
+ export { getAirtableConnector as airtable };
92
+ export interface ConnectorHandlerResult {
93
+ status: number;
94
+ body: string;
95
+ contentType?: string;
96
+ }
97
+ /**
98
+ * POST /connections/airtable/connect { accessToken }
99
+ */
100
+ export declare function handleAirtableConnect(body: string): Promise<ConnectorHandlerResult>;
101
+ /**
102
+ * POST /connections/airtable/test
103
+ */
104
+ export declare function handleAirtableTest(): Promise<ConnectorHandlerResult>;
105
+ /**
106
+ * DELETE /connections/airtable
107
+ */
108
+ export declare function handleAirtableDisconnect(): ConnectorHandlerResult;
@@ -0,0 +1,396 @@
1
+ /**
2
+ * Airtable connector — record access via the Airtable REST API v0.
3
+ *
4
+ * Auth: Personal Access Token (PAT) — `Authorization: Bearer <pat>`. PATs
5
+ * start with `pat...`.
6
+ * - Env var: AIRTABLE_ACCESS_TOKEN
7
+ * - Stored: getSecretJsonSync("airtable") → AirtableTokens
8
+ *
9
+ * Tools: listBases, getBaseSchema, listRecords, getRecord, createRecord,
10
+ * updateRecord. Write ops (create/update) are intentionally exposed — the
11
+ * point of the integration is round-trip record manipulation.
12
+ *
13
+ * Extends BaseConnector for unified auth, retry, rate-limit, error handling.
14
+ */
15
+ import { BaseConnector, } from "./baseConnector.js";
16
+ import { deleteSecretJsonSync, getSecretJsonSync, storeSecretJsonSync, } from "./tokenStorage.js";
17
+ const BASE_URL = "https://api.airtable.com";
18
+ const MAX_RECORDS_HARD_CAP = 1000;
19
+ export class AirtableConnector extends BaseConnector {
20
+ providerName = "airtable";
21
+ tokens = null;
22
+ getOAuthConfig() {
23
+ return null;
24
+ }
25
+ async authenticate() {
26
+ const tokens = loadTokens();
27
+ if (!tokens) {
28
+ throw new Error("Airtable not connected. Run: patchwork-os connect airtable or set AIRTABLE_ACCESS_TOKEN");
29
+ }
30
+ this.tokens = tokens;
31
+ return {
32
+ token: tokens.accessToken,
33
+ scopes: ["read", "write"],
34
+ };
35
+ }
36
+ async healthCheck() {
37
+ try {
38
+ const result = await this.apiCall(async () => {
39
+ const res = await fetch(`${BASE_URL}/v0/meta/whoami`, {
40
+ headers: this.buildHeaders(),
41
+ });
42
+ if (!res.ok)
43
+ throw res;
44
+ return res.json();
45
+ });
46
+ if ("error" in result)
47
+ return { ok: false, error: result.error };
48
+ return { ok: true };
49
+ }
50
+ catch (err) {
51
+ return { ok: false, error: this.normalizeError(err) };
52
+ }
53
+ }
54
+ normalizeError(error) {
55
+ if (error instanceof Response) {
56
+ const s = error.status;
57
+ if (s === 401)
58
+ return {
59
+ code: "auth_expired",
60
+ message: "Airtable authentication expired — reconnect",
61
+ retryable: false,
62
+ suggestedAction: "patchwork-os connect airtable",
63
+ };
64
+ if (s === 403)
65
+ return {
66
+ code: "permission_denied",
67
+ message: "Insufficient Airtable permissions for this base/table",
68
+ retryable: false,
69
+ };
70
+ if (s === 404)
71
+ return {
72
+ code: "not_found",
73
+ message: "Airtable resource not found",
74
+ retryable: false,
75
+ };
76
+ if (s === 422)
77
+ return {
78
+ code: "provider_error",
79
+ message: "Airtable validation error (invalid fields or formula)",
80
+ retryable: false,
81
+ };
82
+ if (s === 429)
83
+ return {
84
+ code: "rate_limited",
85
+ message: "Airtable API rate limit exceeded",
86
+ retryable: true,
87
+ suggestedAction: "Wait and retry",
88
+ };
89
+ return {
90
+ code: "provider_error",
91
+ message: `Airtable API error: HTTP ${s}`,
92
+ retryable: s >= 500,
93
+ };
94
+ }
95
+ if (error instanceof Error) {
96
+ if (error.message.includes("ENOTFOUND") ||
97
+ error.message.includes("ECONNREFUSED")) {
98
+ return {
99
+ code: "network_error",
100
+ message: `Cannot connect to Airtable: ${error.message}`,
101
+ retryable: true,
102
+ };
103
+ }
104
+ }
105
+ return {
106
+ code: "provider_error",
107
+ message: error instanceof Error ? error.message : String(error),
108
+ retryable: false,
109
+ };
110
+ }
111
+ getStatus() {
112
+ const tokens = loadTokens();
113
+ return {
114
+ id: "airtable",
115
+ status: tokens ? "connected" : "disconnected",
116
+ lastSync: tokens?.connected_at,
117
+ workspace: tokens?.email
118
+ ? `Airtable (${tokens.email})`
119
+ : tokens?.userId
120
+ ? `Airtable user ${tokens.userId}`
121
+ : undefined,
122
+ };
123
+ }
124
+ // ── API Methods ────────────────────────────────────────────────────────────
125
+ async listBases() {
126
+ const result = await this.apiCall(async () => {
127
+ const res = await fetch(`${BASE_URL}/v0/meta/bases`, {
128
+ headers: this.buildHeaders(),
129
+ });
130
+ if (!res.ok)
131
+ throw res;
132
+ return res.json();
133
+ });
134
+ if ("error" in result)
135
+ throw new Error(result.error.message);
136
+ return result.data;
137
+ }
138
+ async getBaseSchema(baseId) {
139
+ const result = await this.apiCall(async () => {
140
+ const res = await fetch(`${BASE_URL}/v0/meta/bases/${encodeURIComponent(baseId)}/tables`, { headers: this.buildHeaders() });
141
+ if (!res.ok)
142
+ throw res;
143
+ return res.json();
144
+ });
145
+ if ("error" in result)
146
+ throw new Error(result.error.message);
147
+ return result.data;
148
+ }
149
+ async listRecords(baseId, tableIdOrName, params = {}) {
150
+ const result = await this.apiCall(async () => {
151
+ const qs = new URLSearchParams();
152
+ if (params.filterByFormula)
153
+ qs.set("filterByFormula", params.filterByFormula);
154
+ if (params.view)
155
+ qs.set("view", params.view);
156
+ if (params.pageSize)
157
+ qs.set("pageSize", String(params.pageSize));
158
+ // Cap maxRecords at Airtable's 1000 hard limit. Default 100.
159
+ const maxRecords = Math.min(params.maxRecords ?? 100, MAX_RECORDS_HARD_CAP);
160
+ qs.set("maxRecords", String(maxRecords));
161
+ if (params.sort) {
162
+ params.sort.forEach((s, i) => {
163
+ qs.set(`sort[${i}][field]`, s.field);
164
+ if (s.direction)
165
+ qs.set(`sort[${i}][direction]`, s.direction);
166
+ });
167
+ }
168
+ if (params.fields) {
169
+ for (const f of params.fields)
170
+ qs.append("fields[]", f);
171
+ }
172
+ const url = `${BASE_URL}/v0/${encodeURIComponent(baseId)}/${encodeURIComponent(tableIdOrName)}?${qs}`;
173
+ const res = await fetch(url, { headers: this.buildHeaders() });
174
+ if (!res.ok)
175
+ throw res;
176
+ return res.json();
177
+ });
178
+ if ("error" in result)
179
+ throw new Error(result.error.message);
180
+ return result.data;
181
+ }
182
+ async getRecord(baseId, tableIdOrName, recordId) {
183
+ const result = await this.apiCall(async () => {
184
+ const url = `${BASE_URL}/v0/${encodeURIComponent(baseId)}/${encodeURIComponent(tableIdOrName)}/${encodeURIComponent(recordId)}`;
185
+ const res = await fetch(url, { headers: this.buildHeaders() });
186
+ if (!res.ok)
187
+ throw res;
188
+ return res.json();
189
+ });
190
+ if ("error" in result)
191
+ throw new Error(result.error.message);
192
+ return result.data;
193
+ }
194
+ async createRecord(baseId, tableIdOrName, fields) {
195
+ const result = await this.apiCall(async () => {
196
+ const url = `${BASE_URL}/v0/${encodeURIComponent(baseId)}/${encodeURIComponent(tableIdOrName)}`;
197
+ const res = await fetch(url, {
198
+ method: "POST",
199
+ headers: {
200
+ ...this.buildHeaders(),
201
+ "Content-Type": "application/json",
202
+ },
203
+ body: JSON.stringify({ records: [{ fields }] }),
204
+ });
205
+ if (!res.ok)
206
+ throw res;
207
+ const json = (await res.json());
208
+ const first = json.records?.[0];
209
+ if (!first)
210
+ throw new Error("Airtable returned no record in response");
211
+ return first;
212
+ });
213
+ if ("error" in result)
214
+ throw new Error(result.error.message);
215
+ return result.data;
216
+ }
217
+ async updateRecord(baseId, tableIdOrName, recordId, fields) {
218
+ const result = await this.apiCall(async () => {
219
+ const url = `${BASE_URL}/v0/${encodeURIComponent(baseId)}/${encodeURIComponent(tableIdOrName)}/${encodeURIComponent(recordId)}`;
220
+ const res = await fetch(url, {
221
+ method: "PATCH",
222
+ headers: {
223
+ ...this.buildHeaders(),
224
+ "Content-Type": "application/json",
225
+ },
226
+ body: JSON.stringify({ fields }),
227
+ });
228
+ if (!res.ok)
229
+ throw res;
230
+ return res.json();
231
+ });
232
+ if ("error" in result)
233
+ throw new Error(result.error.message);
234
+ return result.data;
235
+ }
236
+ // ── Helpers ────────────────────────────────────────────────────────────────
237
+ buildHeaders() {
238
+ const token = this.tokens?.accessToken ?? loadTokens()?.accessToken ?? "";
239
+ return {
240
+ Authorization: `Bearer ${token}`,
241
+ Accept: "application/json",
242
+ };
243
+ }
244
+ }
245
+ // ── Token persistence ────────────────────────────────────────────────────────
246
+ export function loadTokens() {
247
+ const envKey = process.env.AIRTABLE_ACCESS_TOKEN;
248
+ if (envKey) {
249
+ return {
250
+ accessToken: envKey,
251
+ connected_at: new Date().toISOString(),
252
+ };
253
+ }
254
+ return getSecretJsonSync("airtable");
255
+ }
256
+ export function saveTokens(tokens) {
257
+ storeSecretJsonSync("airtable", tokens);
258
+ }
259
+ export function clearTokens() {
260
+ try {
261
+ deleteSecretJsonSync("airtable");
262
+ }
263
+ catch {
264
+ // ignore
265
+ }
266
+ }
267
+ // ── Singleton instance ───────────────────────────────────────────────────────
268
+ let _instance = null;
269
+ function resetAirtableConnector() {
270
+ _instance = null;
271
+ }
272
+ export function getAirtableConnector() {
273
+ if (!_instance) {
274
+ _instance = new AirtableConnector();
275
+ }
276
+ return _instance;
277
+ }
278
+ export { getAirtableConnector as airtable };
279
+ /**
280
+ * POST /connections/airtable/connect { accessToken }
281
+ */
282
+ export async function handleAirtableConnect(body) {
283
+ let accessToken;
284
+ try {
285
+ const parsed = JSON.parse(body);
286
+ if (typeof parsed.accessToken !== "string" || !parsed.accessToken) {
287
+ return {
288
+ status: 400,
289
+ contentType: "application/json",
290
+ body: JSON.stringify({ ok: false, error: "accessToken is required" }),
291
+ };
292
+ }
293
+ accessToken = parsed.accessToken;
294
+ }
295
+ catch {
296
+ return {
297
+ status: 400,
298
+ contentType: "application/json",
299
+ body: JSON.stringify({ ok: false, error: "Invalid JSON body" }),
300
+ };
301
+ }
302
+ try {
303
+ const res = await fetch(`${BASE_URL}/v0/meta/whoami`, {
304
+ headers: {
305
+ Authorization: `Bearer ${accessToken}`,
306
+ Accept: "application/json",
307
+ },
308
+ });
309
+ if (!res.ok) {
310
+ return {
311
+ status: 401,
312
+ contentType: "application/json",
313
+ body: JSON.stringify({
314
+ ok: false,
315
+ error: `Credentials rejected by Airtable (HTTP ${res.status}) — check accessToken`,
316
+ }),
317
+ };
318
+ }
319
+ const who = (await res.json());
320
+ const userId = who.id ?? undefined;
321
+ const email = who.email ?? undefined;
322
+ const tokens = {
323
+ accessToken,
324
+ userId,
325
+ email,
326
+ connected_at: new Date().toISOString(),
327
+ };
328
+ saveTokens(tokens);
329
+ resetAirtableConnector();
330
+ return {
331
+ status: 200,
332
+ contentType: "application/json",
333
+ body: JSON.stringify({
334
+ ok: true,
335
+ userId,
336
+ email,
337
+ connectedAt: tokens.connected_at,
338
+ }),
339
+ };
340
+ }
341
+ catch (err) {
342
+ return {
343
+ status: 500,
344
+ contentType: "application/json",
345
+ body: JSON.stringify({
346
+ ok: false,
347
+ error: err instanceof Error ? err.message : String(err),
348
+ }),
349
+ };
350
+ }
351
+ }
352
+ /**
353
+ * POST /connections/airtable/test
354
+ */
355
+ export async function handleAirtableTest() {
356
+ const tokens = loadTokens();
357
+ if (!tokens) {
358
+ return {
359
+ status: 400,
360
+ contentType: "application/json",
361
+ body: JSON.stringify({ ok: false, error: "Airtable not connected" }),
362
+ };
363
+ }
364
+ try {
365
+ const connector = getAirtableConnector();
366
+ const check = await connector.healthCheck();
367
+ return {
368
+ status: check.ok ? 200 : 401,
369
+ contentType: "application/json",
370
+ body: JSON.stringify(check.ok ? { ok: true } : { ok: false, error: check.error?.message }),
371
+ };
372
+ }
373
+ catch (err) {
374
+ return {
375
+ status: 500,
376
+ contentType: "application/json",
377
+ body: JSON.stringify({
378
+ ok: false,
379
+ error: err instanceof Error ? err.message : String(err),
380
+ }),
381
+ };
382
+ }
383
+ }
384
+ /**
385
+ * DELETE /connections/airtable
386
+ */
387
+ export function handleAirtableDisconnect() {
388
+ clearTokens();
389
+ resetAirtableConnector();
390
+ return {
391
+ status: 200,
392
+ contentType: "application/json",
393
+ body: JSON.stringify({ ok: true }),
394
+ };
395
+ }
396
+ //# sourceMappingURL=airtable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"airtable.js","sourceRoot":"","sources":["../../src/connectors/airtable.ts"],"names":[],"mappings":"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"}
@@ -142,6 +142,69 @@ export const CONNECTORS = [
142
142
  authKind: "pat",
143
143
  supports: { connect: true, test: true, delete: true },
144
144
  },
145
+ // postgres: PAT (connection string / discrete fields). Not in the legacy
146
+ // `auth` allowlist because there is no OAuth redirect to start.
147
+ {
148
+ id: "postgres",
149
+ label: "Postgres",
150
+ authKind: "pat",
151
+ supports: { connect: true, test: true, delete: true },
152
+ },
153
+ // mongodb: PAT (connection URI). Lazy-loads the `mongodb` driver.
154
+ {
155
+ id: "mongodb",
156
+ label: "MongoDB",
157
+ authKind: "pat",
158
+ supports: { connect: true, test: true, delete: true },
159
+ },
160
+ // redis: PAT (connection URL). Lazy-loads the `redis` driver. Read-only
161
+ // command allowlist enforced inside the connector.
162
+ {
163
+ id: "redis",
164
+ label: "Redis",
165
+ authKind: "pat",
166
+ supports: { connect: true, test: true, delete: true },
167
+ },
168
+ // elasticsearch: PAT (node URL + apiKey/basic, or cloudId + apiKey).
169
+ // Lazy-loads the `@elastic/elasticsearch` driver.
170
+ {
171
+ id: "elasticsearch",
172
+ label: "Elasticsearch",
173
+ authKind: "pat",
174
+ supports: { connect: true, test: true, delete: true },
175
+ },
176
+ // Wave 1b — PAT comms connectors.
177
+ {
178
+ id: "sendgrid",
179
+ label: "SendGrid",
180
+ authKind: "pat",
181
+ supports: { connect: true, test: true, delete: true },
182
+ },
183
+ {
184
+ id: "twilio",
185
+ label: "Twilio",
186
+ authKind: "pat",
187
+ supports: { connect: true, test: true, delete: true },
188
+ },
189
+ // Wave 2 — PAT SaaS connectors (skip Wave 3 OAuth-app connectors for now).
190
+ {
191
+ id: "figma",
192
+ label: "Figma",
193
+ authKind: "pat",
194
+ supports: { connect: true, test: true, delete: true },
195
+ },
196
+ {
197
+ id: "airtable",
198
+ label: "Airtable",
199
+ authKind: "pat",
200
+ supports: { connect: true, test: true, delete: true },
201
+ },
202
+ {
203
+ id: "webflow",
204
+ label: "Webflow",
205
+ authKind: "pat",
206
+ supports: { connect: true, test: true, delete: true },
207
+ },
145
208
  // jira: PAT. Concurrent work is wiring the bridge routes. The
146
209
  // `supports` capabilities here are deliberately empty until those
147
210
  // routes exist; flipping them in this file is the one-line change
@@ -1 +1 @@
1
- {"version":3,"file":"connectorRegistry.js","sourceRoot":"","sources":["../../src/connectors/connectorRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectorRegistry.js","sourceRoot":"","sources":["../../src/connectors/connectorRegistry.ts"],"names":[],"mappings":"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"}