@assemblyline-agents/plaid 4.0.1 → 5.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/events.d.ts.map +1 -1
- package/dist/events.js +19 -12
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,4BAA4B,EAElC,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,WAAW,EAAE,4BAuCzB,CAAC"}
|
package/dist/events.js
CHANGED
|
@@ -2,8 +2,8 @@ import { createHash, createPublicKey, verify } from "node:crypto";
|
|
|
2
2
|
import { ConnectionEventError, headerValue, parseConnectionEventJson, providerJson, requireEnvironmentValue, stringField } from "@assemblyline-agents/core";
|
|
3
3
|
export const plaidEvents = {
|
|
4
4
|
async reconcile(context) {
|
|
5
|
-
const credentials = plaidCredentials(context
|
|
6
|
-
const items = itemTokens(context.resources, context.
|
|
5
|
+
const credentials = await plaidCredentials(context);
|
|
6
|
+
const items = await itemTokens(context.resources, context.credentials);
|
|
7
7
|
if (!items.length)
|
|
8
8
|
return { status: "needs_setup", instructions: "Add Plaid event resources with accessTokenEnv for every Item that should wake the agent." };
|
|
9
9
|
for (const item of items) {
|
|
@@ -12,14 +12,14 @@ export const plaidEvents = {
|
|
|
12
12
|
return { status: "active", state: { itemCount: items.length, callbackUrl: context.callbackUrl }, detail: `${items.length} Plaid Item webhook${items.length === 1 ? " is" : "s are"} active.` };
|
|
13
13
|
},
|
|
14
14
|
async remove(context) {
|
|
15
|
-
const credentials = plaidCredentials(context
|
|
16
|
-
for (const item of itemTokens(context.resources, context.
|
|
15
|
+
const credentials = await plaidCredentials(context);
|
|
16
|
+
for (const item of await itemTokens(context.resources, context.credentials)) {
|
|
17
17
|
await plaid(context.fetch, credentials, "/item/webhook/update", { access_token: item.token, webhook: "" });
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
async check(context) {
|
|
21
|
-
const credentials = plaidCredentials(context
|
|
22
|
-
const items = itemTokens(context.resources, context.
|
|
21
|
+
const credentials = await plaidCredentials(context);
|
|
22
|
+
const items = await itemTokens(context.resources, context.credentials);
|
|
23
23
|
if (!items.length)
|
|
24
24
|
return { status: "needs_setup", detail: "No Plaid Item resources are configured." };
|
|
25
25
|
for (const item of items) {
|
|
@@ -33,7 +33,7 @@ export const plaidEvents = {
|
|
|
33
33
|
return { status: "active", detail: `${items.length} Plaid Item webhook${items.length === 1 ? " is" : "s are"} active.` };
|
|
34
34
|
},
|
|
35
35
|
async ingress(request, context) {
|
|
36
|
-
const credentials = plaidCredentials(context
|
|
36
|
+
const credentials = await plaidCredentials(context);
|
|
37
37
|
await verifyPlaid(request.body, headerValue(request.headers, "plaid-verification"), context.fetch, credentials);
|
|
38
38
|
const payload = parseConnectionEventJson(request.body);
|
|
39
39
|
const type = stringField(payload, "webhook_type")?.toLowerCase();
|
|
@@ -44,16 +44,23 @@ export const plaidEvents = {
|
|
|
44
44
|
return { events: [{ event, eventId, payload: payload }], response: { status: 200, body: { ok: true } }, audit: { event, code: stringField(payload, "webhook_code") ?? "unknown" } };
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
-
function plaidCredentials(
|
|
48
|
-
const name =
|
|
47
|
+
async function plaidCredentials(context) {
|
|
48
|
+
const name = context.config.PLAID_ENV?.trim() || "production";
|
|
49
49
|
const baseUrl = name.startsWith("http") ? name.replace(/\/+$/u, "") : `https://${name}.plaid.com`;
|
|
50
|
-
return {
|
|
50
|
+
return {
|
|
51
|
+
baseUrl,
|
|
52
|
+
clientId: requireEnvironmentValue(context.config, "PLAID_CLIENT_ID"),
|
|
53
|
+
secret: await context.credentials.get("PLAID_SECRET", { purpose: "authenticate Plaid event operation", delivery: "http_header" })
|
|
54
|
+
};
|
|
51
55
|
}
|
|
52
56
|
async function plaid(fetchImpl, credentials, path, body) {
|
|
53
57
|
return providerJson(fetchImpl, `${credentials.baseUrl}${path}`, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ client_id: credentials.clientId, secret: credentials.secret, ...body }) });
|
|
54
58
|
}
|
|
55
|
-
function itemTokens(resources,
|
|
56
|
-
|
|
59
|
+
async function itemTokens(resources, credentials) {
|
|
60
|
+
const names = resources.map((resource) => stringField(resource, "accessTokenEnv")).filter((name) => Boolean(name));
|
|
61
|
+
return Promise.all(names.map(async (name) => ({
|
|
62
|
+
token: await credentials.get(name, { purpose: "manage Plaid Item webhook", delivery: "http_header" })
|
|
63
|
+
})));
|
|
57
64
|
}
|
|
58
65
|
async function verifyPlaid(body, jwt, fetchImpl, credentials) {
|
|
59
66
|
if (!jwt)
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAmB,MAAM,aAAa,CAAC;AACnF,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,wBAAwB,EACxB,YAAY,EACZ,uBAAuB,EACvB,WAAW,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type McpPluginConnectionOptions } from "@assemblyline-agents/core";
|
|
2
2
|
export type PlaidConnectionOptions = McpPluginConnectionOptions;
|
|
3
|
-
export declare function definePlaidConnection(options: PlaidConnectionOptions): import("@assemblyline-agents/core").McpHttpClientConnectionDefinition
|
|
3
|
+
export declare function definePlaidConnection(options: PlaidConnectionOptions): import("@assemblyline-agents/core").ConnectionDefinitionFactory<import("@assemblyline-agents/core").McpHttpClientConnectionDefinition>;
|
|
4
4
|
export declare const assemblyLinePlugin: import("@assemblyline-agents/core").PluginModule;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmG,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAG7K,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAChE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmG,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAG7K,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAChE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,0IAAiN;AACtR,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assemblyline-agents/plaid",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@assemblyline-agents/core": "
|
|
12
|
+
"@assemblyline-agents/core": "5.0.0"
|
|
13
13
|
},
|
|
14
14
|
"description": "Official Assembly Line Plaid connection plugin.",
|
|
15
15
|
"files": [
|