@rolealpha/n8n-nodes-rolealpha 0.0.0-stage → 0.5.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/LICENSE +21 -0
- package/README.md +339 -2
- package/dist/credentials/ApprovalSealApi.credentials.d.ts +7 -0
- package/dist/credentials/ApprovalSealApi.credentials.js +29 -0
- package/dist/credentials/ApprovalSealApi.credentials.js.map +1 -0
- package/dist/credentials/RoleAlphaAgentKeysApi.credentials.d.ts +11 -0
- package/dist/credentials/RoleAlphaAgentKeysApi.credentials.js +35 -0
- package/dist/credentials/RoleAlphaAgentKeysApi.credentials.js.map +1 -0
- package/dist/credentials/RoleAlphaWebhookApi.credentials.d.ts +8 -0
- package/dist/credentials/RoleAlphaWebhookApi.credentials.js +23 -0
- package/dist/credentials/RoleAlphaWebhookApi.credentials.js.map +1 -0
- package/dist/lib/agentRun.d.ts +73 -0
- package/dist/lib/agentRun.js +170 -0
- package/dist/lib/agentRun.js.map +1 -0
- package/dist/lib/agents.d.ts +19 -0
- package/dist/lib/agents.js +91 -0
- package/dist/lib/agents.js.map +1 -0
- package/dist/lib/graph.d.ts +155 -0
- package/dist/lib/graph.js +380 -0
- package/dist/lib/graph.js.map +1 -0
- package/dist/lib/keys.d.ts +12 -0
- package/dist/lib/keys.js +53 -0
- package/dist/lib/keys.js.map +1 -0
- package/dist/lib/mcp.d.ts +52 -0
- package/dist/lib/mcp.js +201 -0
- package/dist/lib/mcp.js.map +1 -0
- package/dist/lib/prompt.d.ts +52 -0
- package/dist/lib/prompt.js +180 -0
- package/dist/lib/prompt.js.map +1 -0
- package/dist/lib/schedule.d.ts +37 -0
- package/dist/lib/schedule.js +106 -0
- package/dist/lib/schedule.js.map +1 -0
- package/dist/lib/seal.d.ts +22 -0
- package/dist/lib/seal.js +79 -0
- package/dist/lib/seal.js.map +1 -0
- package/dist/lib/settings.d.ts +55 -0
- package/dist/lib/settings.js +105 -0
- package/dist/lib/settings.js.map +1 -0
- package/dist/lib/share.d.ts +156 -0
- package/dist/lib/share.js +208 -0
- package/dist/lib/share.js.map +1 -0
- package/dist/lib/waits.d.ts +142 -0
- package/dist/lib/waits.js +339 -0
- package/dist/lib/waits.js.map +1 -0
- package/dist/lib/webhook.d.ts +12 -0
- package/dist/lib/webhook.js +50 -0
- package/dist/lib/webhook.js.map +1 -0
- package/dist/nodes/ApprovalSeal/ApprovalSeal.node.d.ts +9 -0
- package/dist/nodes/ApprovalSeal/ApprovalSeal.node.js +141 -0
- package/dist/nodes/ApprovalSeal/ApprovalSeal.node.js.map +1 -0
- package/dist/nodes/ApprovalSeal/approvalSeal.svg +1 -0
- package/dist/nodes/RoleAlpha/RoleAlpha.node.d.ts +5 -0
- package/dist/nodes/RoleAlpha/RoleAlpha.node.js +1099 -0
- package/dist/nodes/RoleAlpha/RoleAlpha.node.js.map +1 -0
- package/dist/nodes/RoleAlpha/roleAlpha.svg +1 -0
- package/dist/nodes/RoleAlphaTrigger/RoleAlphaTrigger.node.d.ts +9 -0
- package/dist/nodes/RoleAlphaTrigger/RoleAlphaTrigger.node.js +61 -0
- package/dist/nodes/RoleAlphaTrigger/RoleAlphaTrigger.node.js.map +1 -0
- package/dist/nodes/RoleAlphaTrigger/roleAlpha.svg +1 -0
- package/package.json +56 -4
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApprovalSeal = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const seal_1 = require("../../lib/seal");
|
|
6
|
+
/**
|
|
7
|
+
* Seals the exact version a person approved and checks it again before anything is sent.
|
|
8
|
+
* The key lives only in the credential; the seal can be stored next to the record.
|
|
9
|
+
*/
|
|
10
|
+
class ApprovalSeal {
|
|
11
|
+
description = {
|
|
12
|
+
displayName: 'Approval Seal',
|
|
13
|
+
name: 'approvalSeal',
|
|
14
|
+
icon: 'file:approvalSeal.svg',
|
|
15
|
+
group: ['transform'],
|
|
16
|
+
version: 1,
|
|
17
|
+
subtitle: '={{ $parameter["operation"] }}',
|
|
18
|
+
description: 'Seal an approved version and verify it before sending',
|
|
19
|
+
defaults: { name: 'Approval Seal' },
|
|
20
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
21
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
22
|
+
credentials: [{ name: 'approvalSealApi', required: true }],
|
|
23
|
+
properties: [
|
|
24
|
+
{
|
|
25
|
+
displayName: 'Operation',
|
|
26
|
+
name: 'operation',
|
|
27
|
+
type: 'options',
|
|
28
|
+
noDataExpression: true,
|
|
29
|
+
options: [
|
|
30
|
+
{ name: 'Sign', value: 'sign', action: 'Seal an approved version' },
|
|
31
|
+
{ name: 'Verify', value: 'verify', action: 'Verify a seal against the current version' },
|
|
32
|
+
],
|
|
33
|
+
default: 'verify',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
displayName: 'Record Type',
|
|
37
|
+
name: 'type',
|
|
38
|
+
type: 'string',
|
|
39
|
+
default: '',
|
|
40
|
+
required: true,
|
|
41
|
+
placeholder: 'post, press_release …',
|
|
42
|
+
description: 'Kind of record; a seal for one type never matches another',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
displayName: 'Sealed Fields',
|
|
46
|
+
name: 'fields',
|
|
47
|
+
type: 'json',
|
|
48
|
+
default: '{}',
|
|
49
|
+
required: true,
|
|
50
|
+
description: 'Exactly the content that was approved (object or array). Any change breaks the seal.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
displayName: 'Approver',
|
|
54
|
+
name: 'approver',
|
|
55
|
+
type: 'string',
|
|
56
|
+
default: '',
|
|
57
|
+
required: true,
|
|
58
|
+
placeholder: 'name@example.com',
|
|
59
|
+
description: 'Address of the person who approved, as checked against the deciding role',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
displayName: 'Seal',
|
|
63
|
+
name: 'seal',
|
|
64
|
+
type: 'string',
|
|
65
|
+
default: '',
|
|
66
|
+
displayOptions: { show: { operation: ['verify'] } },
|
|
67
|
+
description: 'Stored seal (v3:… or legacy v2:…)',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
displayName: 'Options',
|
|
71
|
+
name: 'options',
|
|
72
|
+
type: 'collection',
|
|
73
|
+
placeholder: 'Add Option',
|
|
74
|
+
default: {},
|
|
75
|
+
options: [
|
|
76
|
+
{
|
|
77
|
+
displayName: 'Output Field',
|
|
78
|
+
name: 'outputField',
|
|
79
|
+
type: 'string',
|
|
80
|
+
default: 'approvalSeal',
|
|
81
|
+
description: 'Name of the field that receives the seal or the check result',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
displayName: 'Fail If Invalid',
|
|
85
|
+
name: 'failIfInvalid',
|
|
86
|
+
type: 'boolean',
|
|
87
|
+
default: true,
|
|
88
|
+
description: 'Whether Verify stops the workflow when the seal does not match',
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
};
|
|
94
|
+
async execute() {
|
|
95
|
+
const items = this.getInputData();
|
|
96
|
+
const creds = await this.getCredentials('approvalSealApi');
|
|
97
|
+
const keys = { key: String(creds.key ?? ''), legacyKey: String(creds.legacyKey ?? '') || undefined };
|
|
98
|
+
const out = [];
|
|
99
|
+
for (let i = 0; i < items.length; i++) {
|
|
100
|
+
try {
|
|
101
|
+
const operation = this.getNodeParameter('operation', i);
|
|
102
|
+
const type = this.getNodeParameter('type', i);
|
|
103
|
+
const rawFields = this.getNodeParameter('fields', i);
|
|
104
|
+
let fields = rawFields;
|
|
105
|
+
if (typeof rawFields === 'string') {
|
|
106
|
+
try {
|
|
107
|
+
fields = JSON.parse(rawFields);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Sealed Fields is not valid JSON', { itemIndex: i });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const approver = this.getNodeParameter('approver', i);
|
|
114
|
+
const opts = this.getNodeParameter('options', i, {});
|
|
115
|
+
const field = opts.outputField || 'approvalSeal';
|
|
116
|
+
if (operation === 'sign') {
|
|
117
|
+
const seal = (0, seal_1.signSeal)(keys.key, type, fields, approver);
|
|
118
|
+
out.push({ json: { ...items[i].json, [field]: seal }, pairedItem: { item: i } });
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const check = (0, seal_1.verifySeal)(keys, this.getNodeParameter('seal', i, ''), type, fields, approver);
|
|
122
|
+
if (!check.valid && opts.failIfInvalid !== false) {
|
|
123
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Approval seal invalid: ${check.reason}`, { itemIndex: i });
|
|
124
|
+
}
|
|
125
|
+
out.push({ json: { ...items[i].json, [field]: check }, pairedItem: { item: i } });
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (this.continueOnFail()) {
|
|
129
|
+
out.push({ json: { ...items[i].json, error: error.message }, pairedItem: { item: i } });
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (error instanceof n8n_workflow_1.NodeOperationError)
|
|
133
|
+
throw error;
|
|
134
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex: i });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return [out];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.ApprovalSeal = ApprovalSeal;
|
|
141
|
+
//# sourceMappingURL=ApprovalSeal.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApprovalSeal.node.js","sourceRoot":"","sources":["../../../nodes/ApprovalSeal/ApprovalSeal.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><circle cx="32" cy="28" r="20" fill="#2e7d4f"/><circle cx="32" cy="28" r="14" fill="none" stroke="#fff" stroke-width="2" stroke-dasharray="3 3"/><path d="M24 28l6 6 10-11" fill="none" stroke="#fff" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M22 44l-4 16 8-4 6 6 0-14M42 44l4 16-8-4-6 6" fill="#2e7d4f"/></svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class RoleAlpha implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|