n8n-nodes-trainar 1.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/LICENSE +21 -0
- package/README.md +87 -0
- package/dist/credentials/TrainarApi.credentials.d.ts +9 -0
- package/dist/credentials/TrainarApi.credentials.js +38 -0
- package/dist/credentials/TrainarApi.credentials.js.map +1 -0
- package/dist/nodes/Trainar/Trainar.node.d.ts +18 -0
- package/dist/nodes/Trainar/Trainar.node.js +373 -0
- package/dist/nodes/Trainar/Trainar.node.js.map +1 -0
- package/dist/nodes/Trainar/trainar.svg +1 -0
- package/dist/nodes/TrainarTrigger/TrainarTrigger.node.d.ts +12 -0
- package/dist/nodes/TrainarTrigger/TrainarTrigger.node.js +142 -0
- package/dist/nodes/TrainarTrigger/TrainarTrigger.node.js.map +1 -0
- package/dist/nodes/TrainarTrigger/trainar.svg +1 -0
- package/dist/package.json +57 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/index.js +3 -0
- package/package.json +57 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TrainAR
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# n8n-nodes-trainar
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/n8n-nodes-trainar)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
6
|
+
n8n community node for [TrainAR](https://trainar.ai) — the AR training platform.
|
|
7
|
+
|
|
8
|
+
Trigger n8n workflows when TrainAR events fire (task created, session completed, skill executed, etc.) and call TrainAR API actions (create tasks, invite users, execute skills) from any n8n workflow.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
### Self-hosted n8n
|
|
13
|
+
|
|
14
|
+
1. In your n8n instance, go to **Settings → Community Nodes → Install**.
|
|
15
|
+
2. Paste `n8n-nodes-trainar` and click **Install**.
|
|
16
|
+
3. Reload n8n.
|
|
17
|
+
|
|
18
|
+
### n8n Cloud
|
|
19
|
+
|
|
20
|
+
Verified community node install is rolling out per workspace by n8n. Once approved, install the package from the **Nodes panel** with one click.
|
|
21
|
+
|
|
22
|
+
## Authenticate
|
|
23
|
+
|
|
24
|
+
1. In TrainAR Dashboard → API, generate a tenant API key (starts with `tak_`). Required scopes depend on what you need:
|
|
25
|
+
- `manage:webhooks` — for the `TrainAR Trigger` node (subscribe/unsubscribe)
|
|
26
|
+
- `read:tasks`, `write:tasks`, `read:users`, `read:skills` — for the various Find/Read operations of the `TrainAR` node
|
|
27
|
+
- `manage:users` — for the `User → Invite` action
|
|
28
|
+
- `write:skills` — for the `Skill → Execute` action
|
|
29
|
+
2. In n8n, create a new credential of type **TrainAR API** and paste the key.
|
|
30
|
+
|
|
31
|
+
## Nodes
|
|
32
|
+
|
|
33
|
+
### TrainAR Trigger (REST hook)
|
|
34
|
+
|
|
35
|
+
One trigger node, six event types:
|
|
36
|
+
|
|
37
|
+
| Event | When it fires |
|
|
38
|
+
|---|---|
|
|
39
|
+
| `task.created` | A new operational task is created in TrainAR |
|
|
40
|
+
| `task.status_changed` | A task changes status (open / in_progress / completed / cancelled) |
|
|
41
|
+
| `task.completed` | A task is completed |
|
|
42
|
+
| `session.started` | A training session starts on an AR device |
|
|
43
|
+
| `session.completed` | A training session ends |
|
|
44
|
+
| `skill.executed` | A TrainAR skill is executed (success or failure) |
|
|
45
|
+
|
|
46
|
+
Select one or more events on the trigger node. The webhook payload is flattened — fields from the event's `data` object are top-level, with `_event` and `_timestamp` carried alongside for routing logic.
|
|
47
|
+
|
|
48
|
+
### TrainAR (actions + searches)
|
|
49
|
+
|
|
50
|
+
Three resources, six operations:
|
|
51
|
+
|
|
52
|
+
| Resource | Operation | What it does |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| Task | Create | Create a new operational task |
|
|
55
|
+
| Task | Update Status | Move a task between open / in_progress / completed / cancelled |
|
|
56
|
+
| Task | Find | List recent tasks (client-side title filter) |
|
|
57
|
+
| User | Invite | Send an invitation email to a new user |
|
|
58
|
+
| User | Find | List users in the tenant |
|
|
59
|
+
| Skill | Execute | Run a TrainAR skill server-to-server (auto-resolves session_context) |
|
|
60
|
+
|
|
61
|
+
## Compatibility
|
|
62
|
+
|
|
63
|
+
- **n8n:** 1.0.0+
|
|
64
|
+
- **Node.js:** 20.x+
|
|
65
|
+
- **n8n-workflow:** 1.0.0+
|
|
66
|
+
|
|
67
|
+
## Endpoints
|
|
68
|
+
|
|
69
|
+
The node calls the TrainAR production API at `https://xddgmkiguaohdewecmju.supabase.co/functions/v1`:
|
|
70
|
+
|
|
71
|
+
- `POST /webhook-subscribe` — REST-hook lifecycle (create)
|
|
72
|
+
- `GET /webhook-subscribe?endpoint_id=…` — REST-hook lifecycle (checkExists)
|
|
73
|
+
- `DELETE /webhook-subscribe?endpoint_id=…&_source=n8n` — REST-hook lifecycle (delete, source-scoped)
|
|
74
|
+
- `POST /api-tenant-tasks` — Create task
|
|
75
|
+
- `PATCH /api-tenant-tasks?task_id=…` — Update task status
|
|
76
|
+
- `GET /api-tenant-tasks` — List tasks
|
|
77
|
+
- `POST /api-tenant-users` — Invite user
|
|
78
|
+
- `GET /api-tenant-users` — List users
|
|
79
|
+
- `POST /api-tenant-skills-execute` — Execute skill
|
|
80
|
+
|
|
81
|
+
## Source
|
|
82
|
+
|
|
83
|
+
[github.com/Train-AR/n8n-nodes-trainar](https://github.com/Train-AR/n8n-nodes-trainar)
|
|
84
|
+
|
|
85
|
+
## License
|
|
86
|
+
|
|
87
|
+
MIT
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class TrainarApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
authenticate: IAuthenticateGeneric;
|
|
8
|
+
test: ICredentialTestRequest;
|
|
9
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TrainarApi = void 0;
|
|
4
|
+
class TrainarApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'trainarApi';
|
|
7
|
+
this.displayName = 'TrainAR API';
|
|
8
|
+
this.documentationUrl = 'https://github.com/train-ar/n8n-nodes-trainar';
|
|
9
|
+
this.properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'API Key',
|
|
12
|
+
name: 'apiKey',
|
|
13
|
+
type: 'string',
|
|
14
|
+
typeOptions: { password: true },
|
|
15
|
+
required: true,
|
|
16
|
+
default: '',
|
|
17
|
+
description: 'Your TrainAR tenant API key (starts with `tak_`). Generate one in Dashboard → API. The key must have `manage:webhooks` for triggers, `manage:users` for the Invite User action, and `write:skills` for the Execute Skill action.',
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
this.authenticate = {
|
|
21
|
+
type: 'generic',
|
|
22
|
+
properties: {
|
|
23
|
+
headers: {
|
|
24
|
+
Authorization: '=Bearer {{$credentials.apiKey}}',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
this.test = {
|
|
29
|
+
request: {
|
|
30
|
+
baseURL: 'https://xddgmkiguaohdewecmju.supabase.co/functions/v1',
|
|
31
|
+
url: '/api-tenant-users',
|
|
32
|
+
qs: { limit: '1' },
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.TrainarApi = TrainarApi;
|
|
38
|
+
//# sourceMappingURL=TrainarApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrainarApi.credentials.js","sourceRoot":"","sources":["../../credentials/TrainarApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,UAAU;IAAvB;QACC,SAAI,GAAG,YAAY,CAAC;QAEpB,gBAAW,GAAG,aAAa,CAAC;QAG5B,qBAAgB,GAAG,+CAA+C,CAAC;QAEnE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EACV,kOAAkO;aACnO;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,iCAAiC;iBAChD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,uDAAuD;gBAChE,GAAG,EAAE,mBAAmB;gBACxB,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;aAClB;SACD,CAAC;IACH,CAAC;CAAA;AArCD,gCAqCC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodePropertyOptions, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class Trainar implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
loadOptions: {
|
|
6
|
+
getUsers(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
|
+
};
|
|
8
|
+
listSearch: {
|
|
9
|
+
getTasks(this: ILoadOptionsFunctions, filter?: string): Promise<{
|
|
10
|
+
results: {
|
|
11
|
+
name: string;
|
|
12
|
+
value: string;
|
|
13
|
+
}[];
|
|
14
|
+
}>;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Trainar = void 0;
|
|
4
|
+
const BASE_URL = 'https://xddgmkiguaohdewecmju.supabase.co/functions/v1';
|
|
5
|
+
class Trainar {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.description = {
|
|
8
|
+
displayName: 'TrainAR',
|
|
9
|
+
name: 'trainar',
|
|
10
|
+
icon: 'file:trainar.svg',
|
|
11
|
+
group: ['transform'],
|
|
12
|
+
version: 1,
|
|
13
|
+
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
|
14
|
+
description: 'Call the TrainAR API — tasks, users, skills',
|
|
15
|
+
defaults: { name: 'TrainAR' },
|
|
16
|
+
inputs: ['main'],
|
|
17
|
+
outputs: ['main'],
|
|
18
|
+
credentials: [{ name: 'trainarApi', required: true }],
|
|
19
|
+
requestDefaults: {
|
|
20
|
+
baseURL: BASE_URL,
|
|
21
|
+
headers: { 'Content-Type': 'application/json' },
|
|
22
|
+
},
|
|
23
|
+
properties: [
|
|
24
|
+
{
|
|
25
|
+
displayName: 'Resource',
|
|
26
|
+
name: 'resource',
|
|
27
|
+
type: 'options',
|
|
28
|
+
noDataExpression: true,
|
|
29
|
+
default: 'task',
|
|
30
|
+
options: [
|
|
31
|
+
{ name: 'Task', value: 'task' },
|
|
32
|
+
{ name: 'User', value: 'user' },
|
|
33
|
+
{ name: 'Skill', value: 'skill' },
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
displayName: 'Operation',
|
|
38
|
+
name: 'operation',
|
|
39
|
+
type: 'options',
|
|
40
|
+
noDataExpression: true,
|
|
41
|
+
displayOptions: { show: { resource: ['task'] } },
|
|
42
|
+
default: 'create',
|
|
43
|
+
options: [
|
|
44
|
+
{
|
|
45
|
+
name: 'Create',
|
|
46
|
+
value: 'create',
|
|
47
|
+
action: 'Create a task',
|
|
48
|
+
description: 'Create a new operational task',
|
|
49
|
+
routing: {
|
|
50
|
+
request: { method: 'POST', url: '/api-tenant-tasks' },
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Update Status',
|
|
55
|
+
value: 'updateStatus',
|
|
56
|
+
action: 'Update task status',
|
|
57
|
+
description: 'Update the status of an existing task',
|
|
58
|
+
routing: {
|
|
59
|
+
request: {
|
|
60
|
+
method: 'PATCH',
|
|
61
|
+
url: '=/api-tenant-tasks?task_id={{$parameter["taskId"]}}',
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'Find',
|
|
67
|
+
value: 'find',
|
|
68
|
+
action: 'Find tasks',
|
|
69
|
+
description: 'List recent tasks; optionally filter client-side by title',
|
|
70
|
+
routing: {
|
|
71
|
+
request: {
|
|
72
|
+
method: 'GET',
|
|
73
|
+
url: '/api-tenant-tasks',
|
|
74
|
+
qs: { limit: '={{$parameter["limit"]}}' },
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
displayName: 'Title',
|
|
82
|
+
name: 'title',
|
|
83
|
+
type: 'string',
|
|
84
|
+
required: true,
|
|
85
|
+
default: '',
|
|
86
|
+
displayOptions: { show: { resource: ['task'], operation: ['create'] } },
|
|
87
|
+
routing: { request: { body: { title: '={{$value}}' } } },
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
displayName: 'Description',
|
|
91
|
+
name: 'description',
|
|
92
|
+
type: 'string',
|
|
93
|
+
default: '',
|
|
94
|
+
displayOptions: { show: { resource: ['task'], operation: ['create'] } },
|
|
95
|
+
routing: { request: { body: { description: '={{$value}}' } } },
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
displayName: 'Priority',
|
|
99
|
+
name: 'priority',
|
|
100
|
+
type: 'options',
|
|
101
|
+
default: 'medium',
|
|
102
|
+
options: [
|
|
103
|
+
{ name: 'Low', value: 'low' },
|
|
104
|
+
{ name: 'Medium', value: 'medium' },
|
|
105
|
+
{ name: 'High', value: 'high' },
|
|
106
|
+
],
|
|
107
|
+
displayOptions: { show: { resource: ['task'], operation: ['create'] } },
|
|
108
|
+
routing: { request: { body: { priority: '={{$value}}' } } },
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
displayName: 'Assigned To Name or ID',
|
|
112
|
+
name: 'assignedTo',
|
|
113
|
+
type: 'options',
|
|
114
|
+
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>',
|
|
115
|
+
typeOptions: { loadOptionsMethod: 'getUsers' },
|
|
116
|
+
default: '',
|
|
117
|
+
displayOptions: { show: { resource: ['task'], operation: ['create'] } },
|
|
118
|
+
routing: { request: { body: { assigned_to: '={{$value}}' } } },
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
displayName: 'External ID',
|
|
122
|
+
name: 'externalId',
|
|
123
|
+
type: 'string',
|
|
124
|
+
default: '',
|
|
125
|
+
displayOptions: { show: { resource: ['task'], operation: ['create'] } },
|
|
126
|
+
routing: { request: { body: { external_id: '={{$value}}' } } },
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
displayName: 'Task ID',
|
|
130
|
+
name: 'taskId',
|
|
131
|
+
type: 'resourceLocator',
|
|
132
|
+
required: true,
|
|
133
|
+
default: { mode: 'list', value: '' },
|
|
134
|
+
displayOptions: { show: { resource: ['task'], operation: ['updateStatus'] } },
|
|
135
|
+
modes: [
|
|
136
|
+
{
|
|
137
|
+
displayName: 'From List',
|
|
138
|
+
name: 'list',
|
|
139
|
+
type: 'list',
|
|
140
|
+
typeOptions: { searchListMethod: 'getTasks' },
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
displayName: 'By ID',
|
|
144
|
+
name: 'id',
|
|
145
|
+
type: 'string',
|
|
146
|
+
placeholder: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
displayName: 'New Status',
|
|
152
|
+
name: 'status',
|
|
153
|
+
type: 'options',
|
|
154
|
+
required: true,
|
|
155
|
+
default: 'in_progress',
|
|
156
|
+
options: [
|
|
157
|
+
{ name: 'Open', value: 'open' },
|
|
158
|
+
{ name: 'In Progress', value: 'in_progress' },
|
|
159
|
+
{ name: 'Completed', value: 'completed' },
|
|
160
|
+
{ name: 'Cancelled', value: 'cancelled' },
|
|
161
|
+
],
|
|
162
|
+
displayOptions: { show: { resource: ['task'], operation: ['updateStatus'] } },
|
|
163
|
+
routing: { request: { body: { status: '={{$value}}' } } },
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
displayName: 'Limit',
|
|
167
|
+
name: 'limit',
|
|
168
|
+
type: 'number',
|
|
169
|
+
typeOptions: {
|
|
170
|
+
minValue: 1,
|
|
171
|
+
},
|
|
172
|
+
description: 'Max number of results to return',
|
|
173
|
+
default: 50,
|
|
174
|
+
displayOptions: { show: { resource: ['task'], operation: ['find'] } },
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
displayName: 'Title Contains',
|
|
178
|
+
name: 'query',
|
|
179
|
+
type: 'string',
|
|
180
|
+
default: '',
|
|
181
|
+
placeholder: 'safety',
|
|
182
|
+
description: 'Client-side filter on title (case-insensitive contains)',
|
|
183
|
+
displayOptions: { show: { resource: ['task'], operation: ['find'] } },
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
displayName: 'Operation',
|
|
187
|
+
name: 'operation',
|
|
188
|
+
type: 'options',
|
|
189
|
+
noDataExpression: true,
|
|
190
|
+
displayOptions: { show: { resource: ['user'] } },
|
|
191
|
+
default: 'invite',
|
|
192
|
+
options: [
|
|
193
|
+
{
|
|
194
|
+
name: 'Invite',
|
|
195
|
+
value: 'invite',
|
|
196
|
+
action: 'Invite a user',
|
|
197
|
+
description: 'Send an invitation email to a new user',
|
|
198
|
+
routing: {
|
|
199
|
+
request: { method: 'POST', url: '/api-tenant-users' },
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
name: 'Find',
|
|
204
|
+
value: 'find',
|
|
205
|
+
action: 'Find users',
|
|
206
|
+
description: 'List users in the tenant',
|
|
207
|
+
routing: {
|
|
208
|
+
request: {
|
|
209
|
+
method: 'GET',
|
|
210
|
+
url: '/api-tenant-users',
|
|
211
|
+
qs: { limit: '={{$parameter["limit"]}}' },
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
displayName: 'Email',
|
|
219
|
+
name: 'email',
|
|
220
|
+
type: 'string',
|
|
221
|
+
required: true,
|
|
222
|
+
default: '',
|
|
223
|
+
placeholder: 'j.smith@example.com',
|
|
224
|
+
displayOptions: { show: { resource: ['user'], operation: ['invite'] } },
|
|
225
|
+
routing: { request: { body: { email: '={{$value}}' } } },
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
displayName: 'Full Name',
|
|
229
|
+
name: 'fullName',
|
|
230
|
+
type: 'string',
|
|
231
|
+
required: true,
|
|
232
|
+
default: '',
|
|
233
|
+
placeholder: 'Jane Smith',
|
|
234
|
+
displayOptions: { show: { resource: ['user'], operation: ['invite'] } },
|
|
235
|
+
routing: { request: { body: { full_name: '={{$value}}' } } },
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
displayName: 'Roles',
|
|
239
|
+
name: 'roles',
|
|
240
|
+
type: 'multiOptions',
|
|
241
|
+
required: true,
|
|
242
|
+
default: ['admin'],
|
|
243
|
+
options: [{ name: 'Admin', value: 'admin' }],
|
|
244
|
+
description: 'Currently the tenant API accepts only ["admin"]. Trainer/trainee assignment lives in the seat-assignment endpoints, not here.',
|
|
245
|
+
displayOptions: { show: { resource: ['user'], operation: ['invite'] } },
|
|
246
|
+
routing: { request: { body: { roles: '={{$value}}' } } },
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
displayName: 'Limit',
|
|
250
|
+
name: 'limit',
|
|
251
|
+
type: 'number',
|
|
252
|
+
typeOptions: {
|
|
253
|
+
minValue: 1,
|
|
254
|
+
},
|
|
255
|
+
description: 'Max number of results to return',
|
|
256
|
+
default: 50,
|
|
257
|
+
displayOptions: { show: { resource: ['user'], operation: ['find'] } },
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
displayName: 'Operation',
|
|
261
|
+
name: 'operation',
|
|
262
|
+
type: 'options',
|
|
263
|
+
noDataExpression: true,
|
|
264
|
+
displayOptions: { show: { resource: ['skill'] } },
|
|
265
|
+
default: 'execute',
|
|
266
|
+
options: [
|
|
267
|
+
{
|
|
268
|
+
name: 'Execute',
|
|
269
|
+
value: 'execute',
|
|
270
|
+
action: 'Execute a skill',
|
|
271
|
+
description: "Run a TrainAR skill server-to-server. session_context is auto-resolved from the tenant's first active assigned seat unless supplied.",
|
|
272
|
+
routing: {
|
|
273
|
+
request: { method: 'POST', url: '/api-tenant-skills-execute' },
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
],
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
displayName: 'Skill ID',
|
|
280
|
+
name: 'skillId',
|
|
281
|
+
type: 'string',
|
|
282
|
+
required: true,
|
|
283
|
+
default: '',
|
|
284
|
+
placeholder: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
|
|
285
|
+
description: 'The UUID of the skill to execute',
|
|
286
|
+
displayOptions: { show: { resource: ['skill'], operation: ['execute'] } },
|
|
287
|
+
routing: { request: { body: { skill_id: '={{$value}}' } } },
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
displayName: 'Arguments',
|
|
291
|
+
name: 'skillArguments',
|
|
292
|
+
type: 'json',
|
|
293
|
+
required: true,
|
|
294
|
+
default: '{}',
|
|
295
|
+
description: 'JSON object of arguments forwarded to the skill webhook',
|
|
296
|
+
displayOptions: { show: { resource: ['skill'], operation: ['execute'] } },
|
|
297
|
+
routing: { request: { body: { arguments: '={{JSON.parse($value)}}' } } },
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
displayName: 'Session Context Override',
|
|
301
|
+
name: 'sessionContextOverride',
|
|
302
|
+
type: 'json',
|
|
303
|
+
default: '{}',
|
|
304
|
+
description: "Optional override. If empty or null, session_context is auto-resolved from the tenant's first active seat (NO_ACTIVE_SEAT 400 if none qualify). For explicit override pass `{ customer_id, seat_id, user_id, role }`.",
|
|
305
|
+
displayOptions: { show: { resource: ['skill'], operation: ['execute'] } },
|
|
306
|
+
routing: {
|
|
307
|
+
request: {
|
|
308
|
+
body: {
|
|
309
|
+
session_context: '={{ JSON.parse($value || "{}") }}',
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
],
|
|
315
|
+
};
|
|
316
|
+
this.methods = {
|
|
317
|
+
loadOptions: {
|
|
318
|
+
async getUsers() {
|
|
319
|
+
var _a;
|
|
320
|
+
const response = await this.helpers.httpRequestWithAuthentication.call(this, 'trainarApi', { method: 'GET', url: `${BASE_URL}/api-tenant-users`, qs: { limit: 50 } });
|
|
321
|
+
const users = Array.isArray(response) ? response : (_a = response.users) !== null && _a !== void 0 ? _a : [];
|
|
322
|
+
return users.map((u) => ({
|
|
323
|
+
name: u.full_name ? `${u.full_name} (${u.email})` : u.email,
|
|
324
|
+
value: u.id,
|
|
325
|
+
}));
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
listSearch: {
|
|
329
|
+
async getTasks(filter) {
|
|
330
|
+
var _a;
|
|
331
|
+
const response = await this.helpers.httpRequestWithAuthentication.call(this, 'trainarApi', { method: 'GET', url: `${BASE_URL}/api-tenant-tasks`, qs: { limit: 100 } });
|
|
332
|
+
const tasks = Array.isArray(response) ? response : (_a = response.tasks) !== null && _a !== void 0 ? _a : [];
|
|
333
|
+
const filtered = filter
|
|
334
|
+
? tasks.filter((t) => { var _a; return ((_a = t.title) !== null && _a !== void 0 ? _a : '').toLowerCase().includes(filter.toLowerCase()); })
|
|
335
|
+
: tasks;
|
|
336
|
+
return {
|
|
337
|
+
results: filtered.map((t) => {
|
|
338
|
+
var _a, _b;
|
|
339
|
+
return ({
|
|
340
|
+
name: (_a = t.title) !== null && _a !== void 0 ? _a : 'Untitled',
|
|
341
|
+
value: ((_b = t.id) !== null && _b !== void 0 ? _b : t.task_id),
|
|
342
|
+
});
|
|
343
|
+
}),
|
|
344
|
+
};
|
|
345
|
+
},
|
|
346
|
+
},
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
async execute() {
|
|
350
|
+
var _a;
|
|
351
|
+
const items = this.getInputData();
|
|
352
|
+
const returnData = [];
|
|
353
|
+
for (let i = 0; i < items.length; i++) {
|
|
354
|
+
const resource = this.getNodeParameter('resource', i);
|
|
355
|
+
const operation = this.getNodeParameter('operation', i);
|
|
356
|
+
if (resource === 'task' && operation === 'find') {
|
|
357
|
+
const limit = this.getNodeParameter('limit', i);
|
|
358
|
+
const query = this.getNodeParameter('query', i, '').toLowerCase();
|
|
359
|
+
const response = await this.helpers.httpRequestWithAuthentication.call(this, 'trainarApi', { method: 'GET', url: `${BASE_URL}/api-tenant-tasks`, qs: { limit } });
|
|
360
|
+
const tasks = Array.isArray(response) ? response : (_a = response.tasks) !== null && _a !== void 0 ? _a : [];
|
|
361
|
+
const filtered = query
|
|
362
|
+
? tasks.filter((t) => { var _a; return ((_a = t.title) !== null && _a !== void 0 ? _a : '').toLowerCase().includes(query); })
|
|
363
|
+
: tasks;
|
|
364
|
+
filtered.forEach((t) => returnData.push({ json: t }));
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
returnData.push(items[i]);
|
|
368
|
+
}
|
|
369
|
+
return [returnData];
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
exports.Trainar = Trainar;
|
|
373
|
+
//# sourceMappingURL=Trainar.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Trainar.node.js","sourceRoot":"","sources":["../../../nodes/Trainar/Trainar.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="none"><rect width="256" height="256" rx="56" fill="#0F172A"/><text x="128" y="158" font-family="-apple-system, system-ui, sans-serif" font-size="96" font-weight="700" text-anchor="middle" fill="#22D3EE">T</text><text x="128" y="200" font-family="-apple-system, system-ui, sans-serif" font-size="28" font-weight="600" text-anchor="middle" fill="#94A3B8">AR</text></svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IHookFunctions, INodeType, INodeTypeDescription, IWebhookFunctions, IWebhookResponseData } from 'n8n-workflow';
|
|
2
|
+
export declare class TrainarTrigger implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
webhookMethods: {
|
|
5
|
+
default: {
|
|
6
|
+
checkExists(this: IHookFunctions): Promise<boolean>;
|
|
7
|
+
create(this: IHookFunctions): Promise<boolean>;
|
|
8
|
+
delete(this: IHookFunctions): Promise<boolean>;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
webhook(this: IWebhookFunctions): Promise<IWebhookResponseData>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TrainarTrigger = void 0;
|
|
4
|
+
const BASE_URL = 'https://xddgmkiguaohdewecmju.supabase.co/functions/v1';
|
|
5
|
+
class TrainarTrigger {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.description = {
|
|
8
|
+
displayName: 'TrainAR Trigger',
|
|
9
|
+
name: 'trainarTrigger',
|
|
10
|
+
icon: 'file:trainar.svg',
|
|
11
|
+
group: ['trigger'],
|
|
12
|
+
version: 1,
|
|
13
|
+
subtitle: '={{$parameter["events"].join(", ")}}',
|
|
14
|
+
description: 'Triggers when a TrainAR event fires',
|
|
15
|
+
defaults: { name: 'TrainAR Trigger' },
|
|
16
|
+
inputs: [],
|
|
17
|
+
outputs: ['main'],
|
|
18
|
+
credentials: [{ name: 'trainarApi', required: true }],
|
|
19
|
+
webhooks: [
|
|
20
|
+
{
|
|
21
|
+
name: 'default',
|
|
22
|
+
httpMethod: 'POST',
|
|
23
|
+
responseMode: 'onReceived',
|
|
24
|
+
path: 'webhook',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
properties: [
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Events',
|
|
30
|
+
name: 'events',
|
|
31
|
+
type: 'multiOptions',
|
|
32
|
+
required: true,
|
|
33
|
+
default: ['task.created'],
|
|
34
|
+
description: 'TrainAR events to subscribe to. The webhook fires on every event you select.',
|
|
35
|
+
options: [
|
|
36
|
+
{
|
|
37
|
+
name: 'Session Completed',
|
|
38
|
+
value: 'session.completed',
|
|
39
|
+
description: 'A training session ended',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Session Started',
|
|
43
|
+
value: 'session.started',
|
|
44
|
+
description: 'A training session started on an AR device',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Skill Executed',
|
|
48
|
+
value: 'skill.executed',
|
|
49
|
+
description: 'A TrainAR skill was executed (success or failure)',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'Task Completed',
|
|
53
|
+
value: 'task.completed',
|
|
54
|
+
description: 'A task was completed',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'Task Created',
|
|
58
|
+
value: 'task.created',
|
|
59
|
+
description: 'A new operational task was created',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'Task Status Changed',
|
|
63
|
+
value: 'task.status_changed',
|
|
64
|
+
description: 'A task changed status (open / in_progress / completed / cancelled)',
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
this.webhookMethods = {
|
|
71
|
+
default: {
|
|
72
|
+
async checkExists() {
|
|
73
|
+
const webhookData = this.getWorkflowStaticData('node');
|
|
74
|
+
const endpointId = webhookData.endpointId;
|
|
75
|
+
if (!endpointId)
|
|
76
|
+
return false;
|
|
77
|
+
try {
|
|
78
|
+
const response = (await this.helpers.httpRequestWithAuthentication.call(this, 'trainarApi', {
|
|
79
|
+
method: 'GET',
|
|
80
|
+
url: `${BASE_URL}/webhook-subscribe`,
|
|
81
|
+
qs: { endpoint_id: endpointId },
|
|
82
|
+
}));
|
|
83
|
+
return response.exists === true;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
async create() {
|
|
90
|
+
const webhookUrl = this.getNodeWebhookUrl('default');
|
|
91
|
+
const events = this.getNodeParameter('events', []);
|
|
92
|
+
const response = (await this.helpers.httpRequestWithAuthentication.call(this, 'trainarApi', {
|
|
93
|
+
method: 'POST',
|
|
94
|
+
url: `${BASE_URL}/webhook-subscribe`,
|
|
95
|
+
body: {
|
|
96
|
+
url: webhookUrl,
|
|
97
|
+
events,
|
|
98
|
+
source: 'n8n',
|
|
99
|
+
},
|
|
100
|
+
}));
|
|
101
|
+
if (!response.id)
|
|
102
|
+
return false;
|
|
103
|
+
const webhookData = this.getWorkflowStaticData('node');
|
|
104
|
+
webhookData.endpointId = response.id;
|
|
105
|
+
return true;
|
|
106
|
+
},
|
|
107
|
+
async delete() {
|
|
108
|
+
const webhookData = this.getWorkflowStaticData('node');
|
|
109
|
+
const endpointId = webhookData.endpointId;
|
|
110
|
+
if (!endpointId)
|
|
111
|
+
return true;
|
|
112
|
+
try {
|
|
113
|
+
await this.helpers.httpRequestWithAuthentication.call(this, 'trainarApi', {
|
|
114
|
+
method: 'DELETE',
|
|
115
|
+
url: `${BASE_URL}/webhook-subscribe`,
|
|
116
|
+
qs: { endpoint_id: endpointId, _source: 'n8n' },
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
}
|
|
121
|
+
delete webhookData.endpointId;
|
|
122
|
+
return true;
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
async webhook() {
|
|
128
|
+
var _a, _b, _c;
|
|
129
|
+
const body = this.getBodyData();
|
|
130
|
+
const data = ((_a = body.data) !== null && _a !== void 0 ? _a : body);
|
|
131
|
+
const flattened = {
|
|
132
|
+
...data,
|
|
133
|
+
_event: (_b = body.event) !== null && _b !== void 0 ? _b : null,
|
|
134
|
+
_timestamp: (_c = body.timestamp) !== null && _c !== void 0 ? _c : null,
|
|
135
|
+
};
|
|
136
|
+
return {
|
|
137
|
+
workflowData: [[{ json: flattened }]],
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
exports.TrainarTrigger = TrainarTrigger;
|
|
142
|
+
//# sourceMappingURL=TrainarTrigger.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrainarTrigger.node.js","sourceRoot":"","sources":["../../../nodes/TrainarTrigger/TrainarTrigger.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="none"><rect width="256" height="256" rx="56" fill="#0F172A"/><text x="128" y="158" font-family="-apple-system, system-ui, sans-serif" font-size="96" font-weight="700" text-anchor="middle" fill="#22D3EE">T</text><text x="128" y="200" font-family="-apple-system, system-ui, sans-serif" font-size="28" font-weight="600" text-anchor="middle" fill="#94A3B8">AR</text></svg>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-trainar",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "n8n community node for TrainAR — augmented reality training platform. Trigger workflows on TrainAR events and call TrainAR API actions from n8n.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package",
|
|
7
|
+
"n8n",
|
|
8
|
+
"trainar",
|
|
9
|
+
"ar-training",
|
|
10
|
+
"training",
|
|
11
|
+
"augmented-reality"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"homepage": "https://github.com/Train-AR/n8n-nodes-trainar",
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "TrainAR",
|
|
17
|
+
"email": "team@trainar.ai"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/Train-AR/n8n-nodes-trainar.git"
|
|
22
|
+
},
|
|
23
|
+
"main": "index.js",
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc && gulp build:icons",
|
|
26
|
+
"dev": "tsc --watch",
|
|
27
|
+
"format": "prettier nodes credentials --write",
|
|
28
|
+
"lint": "eslint nodes credentials package.json",
|
|
29
|
+
"lintfix": "eslint nodes credentials package.json --fix",
|
|
30
|
+
"prepublishOnly": "npm run build && npm run lint -c .eslintrc.prepublish.js nodes credentials package.json"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist"
|
|
34
|
+
],
|
|
35
|
+
"n8n": {
|
|
36
|
+
"n8nNodesApiVersion": 1,
|
|
37
|
+
"credentials": [
|
|
38
|
+
"dist/credentials/TrainarApi.credentials.js"
|
|
39
|
+
],
|
|
40
|
+
"nodes": [
|
|
41
|
+
"dist/nodes/Trainar/Trainar.node.js",
|
|
42
|
+
"dist/nodes/TrainarTrigger/TrainarTrigger.node.js"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@typescript-eslint/parser": "~5.45",
|
|
47
|
+
"eslint": "~8.27.0",
|
|
48
|
+
"eslint-plugin-n8n-nodes-base": "^1.16.1",
|
|
49
|
+
"gulp": "^4.0.2",
|
|
50
|
+
"n8n-workflow": "*",
|
|
51
|
+
"prettier": "^2.7.1",
|
|
52
|
+
"typescript": "~5.6.0"
|
|
53
|
+
},
|
|
54
|
+
"peerDependencies": {
|
|
55
|
+
"n8n-workflow": "*"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/form-data/index.d.ts","../node_modules/n8n-workflow/dist/esm/constants.d.ts","../node_modules/n8n-workflow/dist/esm/data-table.types.d.ts","../node_modules/n8n-workflow/dist/esm/deferred-promise.d.ts","../node_modules/@n8n/errors/dist/types.d.ts","../node_modules/@n8n/errors/dist/application.error.d.ts","../node_modules/@n8n/errors/dist/index.d.ts","../node_modules/n8n-workflow/dist/esm/errors/base/base.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/base/operational.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/base/unexpected.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/base/user.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/expression.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/execution-cancelled.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/node-api.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/node-operation.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/workflow-configuration.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/node-ssl.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/workflow-activation.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/webhook-taken.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/workflow-deactivation.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/workflow-operation.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/subworkflow-operation.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/cli-subworkflow-operation.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/trigger-close.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/expression-extension.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/expression-destructuring.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/expression-computed-destructuring.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/expression-class-extension.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/expression-reserved-variable.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/expression-with-statement.error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/db-connection-timeout-error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/ensure-error.d.ts","../node_modules/n8n-workflow/dist/esm/errors/index.d.ts","../node_modules/zod/dist/types/v4/core/standard-schema.d.ts","../node_modules/zod/dist/types/v4/core/util.d.ts","../node_modules/zod/dist/types/v4/core/versions.d.ts","../node_modules/zod/dist/types/v4/core/schemas.d.ts","../node_modules/zod/dist/types/v4/core/checks.d.ts","../node_modules/zod/dist/types/v4/core/errors.d.ts","../node_modules/zod/dist/types/v4/core/core.d.ts","../node_modules/zod/dist/types/v4/core/parse.d.ts","../node_modules/zod/dist/types/v4/core/regexes.d.ts","../node_modules/zod/dist/types/v4/locales/ar.d.ts","../node_modules/zod/dist/types/v4/locales/az.d.ts","../node_modules/zod/dist/types/v4/locales/be.d.ts","../node_modules/zod/dist/types/v4/locales/ca.d.ts","../node_modules/zod/dist/types/v4/locales/cs.d.ts","../node_modules/zod/dist/types/v4/locales/de.d.ts","../node_modules/zod/dist/types/v4/locales/en.d.ts","../node_modules/zod/dist/types/v4/locales/es.d.ts","../node_modules/zod/dist/types/v4/locales/fa.d.ts","../node_modules/zod/dist/types/v4/locales/fi.d.ts","../node_modules/zod/dist/types/v4/locales/fr.d.ts","../node_modules/zod/dist/types/v4/locales/fr-CA.d.ts","../node_modules/zod/dist/types/v4/locales/he.d.ts","../node_modules/zod/dist/types/v4/locales/hu.d.ts","../node_modules/zod/dist/types/v4/locales/id.d.ts","../node_modules/zod/dist/types/v4/locales/it.d.ts","../node_modules/zod/dist/types/v4/locales/ja.d.ts","../node_modules/zod/dist/types/v4/locales/kh.d.ts","../node_modules/zod/dist/types/v4/locales/ko.d.ts","../node_modules/zod/dist/types/v4/locales/mk.d.ts","../node_modules/zod/dist/types/v4/locales/ms.d.ts","../node_modules/zod/dist/types/v4/locales/nl.d.ts","../node_modules/zod/dist/types/v4/locales/no.d.ts","../node_modules/zod/dist/types/v4/locales/ota.d.ts","../node_modules/zod/dist/types/v4/locales/ps.d.ts","../node_modules/zod/dist/types/v4/locales/pl.d.ts","../node_modules/zod/dist/types/v4/locales/pt.d.ts","../node_modules/zod/dist/types/v4/locales/ru.d.ts","../node_modules/zod/dist/types/v4/locales/sl.d.ts","../node_modules/zod/dist/types/v4/locales/sv.d.ts","../node_modules/zod/dist/types/v4/locales/ta.d.ts","../node_modules/zod/dist/types/v4/locales/th.d.ts","../node_modules/zod/dist/types/v4/locales/tr.d.ts","../node_modules/zod/dist/types/v4/locales/ua.d.ts","../node_modules/zod/dist/types/v4/locales/ur.d.ts","../node_modules/zod/dist/types/v4/locales/vi.d.ts","../node_modules/zod/dist/types/v4/locales/zh-CN.d.ts","../node_modules/zod/dist/types/v4/locales/zh-TW.d.ts","../node_modules/zod/dist/types/v4/locales/index.d.ts","../node_modules/zod/dist/types/v4/core/registries.d.ts","../node_modules/zod/dist/types/v4/core/doc.d.ts","../node_modules/zod/dist/types/v4/core/function.d.ts","../node_modules/zod/dist/types/v4/core/api.d.ts","../node_modules/zod/dist/types/v4/core/json-schema.d.ts","../node_modules/zod/dist/types/v4/core/to-json-schema.d.ts","../node_modules/zod/dist/types/v4/core/index.d.ts","../node_modules/zod/v4/core/index.d.ts","../node_modules/zod/dist/types/v4/classic/errors.d.ts","../node_modules/zod/dist/types/v4/classic/parse.d.ts","../node_modules/zod/dist/types/v4/classic/schemas.d.ts","../node_modules/zod/dist/types/v4/classic/checks.d.ts","../node_modules/zod/dist/types/v4/classic/compat.d.ts","../node_modules/zod/dist/types/v4/classic/iso.d.ts","../node_modules/zod/dist/types/v4/classic/coerce.d.ts","../node_modules/zod/dist/types/v4/classic/external.d.ts","../node_modules/zod/dist/types/v4/classic/index.d.ts","../node_modules/zod/dist/types/v4/index.d.ts","../node_modules/zod/v4/index.d.ts","../node_modules/n8n-workflow/dist/esm/execution-context.d.ts","../node_modules/n8n-workflow/dist/esm/execution-status.d.ts","../node_modules/n8n-workflow/dist/esm/result.d.ts","../node_modules/n8n-workflow/dist/esm/run-execution-data/run-execution-data.v0.d.ts","../node_modules/n8n-workflow/dist/esm/run-execution-data/run-execution-data.v1.d.ts","../node_modules/n8n-workflow/dist/esm/run-execution-data/run-execution-data.d.ts","../node_modules/n8n-workflow/dist/esm/workflow-expression.d.ts","../node_modules/n8n-workflow/dist/esm/workflow.d.ts","../node_modules/n8n-workflow/dist/esm/workflow-data-proxy-env-provider.d.ts","../node_modules/n8n-workflow/dist/esm/interfaces.d.ts","../node_modules/n8n-workflow/dist/esm/logger-proxy.d.ts","../node_modules/n8n-workflow/dist/esm/node-helpers.d.ts","../node_modules/n8n-workflow/dist/esm/observable-object.d.ts","../node_modules/n8n-workflow/dist/esm/telemetry-helpers.d.ts","../node_modules/n8n-workflow/dist/esm/common/get-child-nodes.d.ts","../node_modules/n8n-workflow/dist/esm/common/get-connected-nodes.d.ts","../node_modules/n8n-workflow/dist/esm/common/get-node-by-name.d.ts","../node_modules/n8n-workflow/dist/esm/common/get-parent-nodes.d.ts","../node_modules/n8n-workflow/dist/esm/common/map-connections-by-destination.d.ts","../node_modules/n8n-workflow/dist/esm/common/index.d.ts","../node_modules/n8n-workflow/dist/esm/cron.d.ts","../node_modules/n8n-workflow/dist/esm/execution-context-establishment-hooks.d.ts","../node_modules/n8n-workflow/dist/esm/global-state.d.ts","../node_modules/n8n-workflow/dist/esm/run-execution-data-factory.d.ts","../node_modules/zod/dist/types/v3/helpers/typeAliases.d.ts","../node_modules/zod/dist/types/v3/helpers/util.d.ts","../node_modules/zod/dist/types/v3/ZodError.d.ts","../node_modules/zod/dist/types/v3/locales/en.d.ts","../node_modules/zod/dist/types/v3/errors.d.ts","../node_modules/zod/dist/types/v3/helpers/parseUtil.d.ts","../node_modules/zod/dist/types/v3/helpers/enumUtil.d.ts","../node_modules/zod/dist/types/v3/helpers/errorUtil.d.ts","../node_modules/zod/dist/types/v3/helpers/partialUtil.d.ts","../node_modules/zod/dist/types/v3/standard-schema.d.ts","../node_modules/zod/dist/types/v3/types.d.ts","../node_modules/zod/dist/types/v3/external.d.ts","../node_modules/zod/dist/types/v3/index.d.ts","../node_modules/zod/dist/types/index.d.ts","../node_modules/n8n-workflow/dist/esm/message-event-bus.d.ts","../node_modules/n8n-workflow/dist/esm/expression.d.ts","../node_modules/n8n-workflow/dist/esm/expressions/expression-helpers.d.ts","../node_modules/n8n-workflow/dist/esm/from-ai-parse-utils.d.ts","../node_modules/n8n-workflow/dist/esm/node-validation.d.ts","../node_modules/n8n-workflow/dist/esm/tool-helpers.d.ts","../node_modules/n8n-workflow/dist/esm/node-reference-parser-utils.d.ts","../node_modules/n8n-workflow/dist/esm/metadata-utils.d.ts","../node_modules/n8n-workflow/dist/esm/highlighted-data.d.ts","../node_modules/n8n-workflow/dist/esm/workflow-checksum.d.ts","../node_modules/n8n-workflow/dist/esm/workflow-data-proxy.d.ts","../node_modules/n8n-workflow/dist/esm/workflow-validation.d.ts","../node_modules/n8n-workflow/dist/esm/versioned-node-type.d.ts","../node_modules/n8n-workflow/dist/esm/type-validation.d.ts","../node_modules/n8n-workflow/dist/esm/schemas.d.ts","../node_modules/n8n-workflow/dist/esm/utils.d.ts","../node_modules/n8n-workflow/dist/esm/type-guards.d.ts","../node_modules/n8n-workflow/dist/esm/graph/graph-utils.d.ts","../node_modules/n8n-workflow/dist/esm/extensions/extensions.d.ts","../node_modules/n8n-workflow/dist/esm/extensions/expression-extension.d.ts","../node_modules/n8n-workflow/dist/esm/extensions/index.d.ts","../node_modules/n8n-workflow/dist/esm/extensions/expression-parser.d.ts","../node_modules/n8n-workflow/dist/esm/native-methods/index.d.ts","../node_modules/n8n-workflow/dist/esm/node-parameters/filter-parameter.d.ts","../node_modules/n8n-workflow/dist/esm/node-parameters/parameter-type-validation.d.ts","../node_modules/n8n-workflow/dist/esm/node-parameters/node-parameter-value-type-guard.d.ts","../node_modules/n8n-workflow/dist/esm/node-parameters/path-utils.d.ts","../node_modules/n8n-workflow/dist/esm/evaluation-helpers.d.ts","../node_modules/n8n-workflow/dist/esm/connections-diff.d.ts","../node_modules/n8n-workflow/dist/esm/workflow-diff.d.ts","../node_modules/n8n-workflow/dist/esm/workflow-environments-helper.d.ts","../node_modules/n8n-workflow/dist/esm/index.d.ts","../credentials/TrainarApi.credentials.ts","../nodes/Trainar/Trainar.node.ts","../nodes/TrainarTrigger/TrainarTrigger.node.ts","../package.json","../node_modules/@types/esrecurse/index.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/json-schema/index.d.ts"],"fileIdsList":[[217],[50],[50,51],[157],[162,163,164,165,166],[52,157],[57,157],[52],[53],[69],[57],[58],[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],[52,60,157],[60,61,157],[68],[65],[52,57,157],[62],[147],[204],[204,205],[157,185],[47,48,49,80,148,149,150,153,154,155,156,157,158,159,160,161,167,168,169,170,171,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,206,207,208,209,210,211,212,213,215,216],[46,47,48,49,58,61,62,65,68,80,148,149,150,153,155,156],[153,155,157],[148,152,153,157],[151,152],[151,217],[153,155,156,157],[214,217],[154,157],[184],[172,173,184],[174,175],[172,173,174,176,177,182],[173,174],[182],[183],[174],[172,173,174,177,178,179,180,181],[136],[136,139],[128,136,137,138,139,140,141,142,143],[144],[136,137],[136,138],[82,84,85,86,87],[82,84,86,87],[82,84,86],[82,84,85,87],[82,84,87],[82,83,84,85,86,87,88,89,128,129,130,131,132,133,134],[84,87],[81,82,83,85,86,87],[84,129,133],[84,85,86,87],[145],[86],[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127],[135],[146]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","impliedFormat":1},{"version":"72557ced222a6b2fa124910ce3ed1d6b8caea4cc1892eda2313ed50e0f1d95bf","impliedFormat":1},{"version":"cf05b854a840e9094fd336fcf1f6458e2c1d0f51f3af682aad5acba1fd7ed807","impliedFormat":1},{"version":"a0981ee0c7ac06bdb575558bd09bac190e1c0c7888ddcb63d8bf648f23a30e8c","impliedFormat":1},{"version":"00f11c3ec667314eaa2adfe253b5ebebbbdbb82510e04460c2f09d1c3b521d31","impliedFormat":1},{"version":"5c7a516e25a2fd1dc5e054c6161fe3c8ba46364f3784ef98f3fca48ab685231c","impliedFormat":1},{"version":"3ff739b7f819cfc12b330f9adcc4c3abbbd5e9f9ca68f53243222a049a8361a2","impliedFormat":1},{"version":"d762b92c1af47b7b3c4eef92fe9a3806194d9edc5dae6901342fc87ef21d7f4a","impliedFormat":1},{"version":"41d14b690d8d8c2a9b7395e8c36de6ca981010736723216ab9f35eb598e09ad9","impliedFormat":1},{"version":"3fdcca6b893ffd38b61b792772f649c82ae28077c360802cec25360eabca24c0","impliedFormat":1},{"version":"299924f7545be254b02278e4dcff7038611f2325d30f0e5ae4bcac906847c164","impliedFormat":1},{"version":"be1d650f04c9f472f0ad0ead3e1b7059dd1e0ff918f7bcb707786d27c3bbeadd","impliedFormat":1},{"version":"1e16c1b1c4d8600a146b15a933f9a880cc275c01f39dc436625f22d3cca46272","impliedFormat":1},{"version":"7d5dd008a087b517daee2c66b15e5767389c08f9f8d66c434d26d4f6cb3f55c3","impliedFormat":1},{"version":"bf2aefef15e0b4d6bc8f4e19f967494b59b5f90a834de503c373df042513d924","impliedFormat":1},{"version":"4085248a1c89ee865cf9498402c90611d16920a6c9929f701ddc0b963ddad230","impliedFormat":1},{"version":"1a1acd3311ff1794be8401ee394efc3beeb1746068244eb0ee1d51d08e457401","impliedFormat":1},{"version":"ce0b4440a3dd75e14ca94b6d6b27fa26ca89e776d91b8803b3c86c4e8f06ed1a","impliedFormat":1},{"version":"37020cf15e16fa6e1c6e2485cd51d6cbe74adee3b860ab49fb7528ca7e8e518e","impliedFormat":1},{"version":"b6b1a3ff9ba1ddf1a908cfd1bcd471334ecd218a366460fc64c4561d6d0467a4","impliedFormat":1},{"version":"1950d2a49c05c7aa6decfe409b552c4ea5fb156894cf0541b34999819bd778ea","impliedFormat":1},{"version":"32fe829960ff7120843f6dd20197e863aee3e81ecded415641a7500654d1bda7","impliedFormat":1},{"version":"da73778888d41d0abe7d28a24529ba13ff0a9311d55e1902feee7ab97dc6a67d","impliedFormat":1},{"version":"393b1ed0dca4f0aac333e65f2e40dfedfa8b37ac60571e02b152d32d8c84d340","impliedFormat":1},{"version":"f46d50c283425bcc59d68ccf067b3672fb727f802652dc7d60d2e470fb956370","impliedFormat":1},{"version":"0e10fd1d283b4ba7b94f5abb1bc30a2070ccb16c22f86a2780bea8ddc48f3bf7","impliedFormat":1},{"version":"0b4b6ca509cdb152e18ceeed526d17bb416e7e518508d859a0174977195f9a35","impliedFormat":1},{"version":"6ad6692aba2cad7697d1dbc76c973e7eca5c80aba70396233e4c4ea0e58c536d","impliedFormat":1},{"version":"c265bd0ffe35c74f210f980f49ba8f763c3338987539276a973fad1f52c4e9f2","impliedFormat":1},{"version":"4373179619287c6f48e1d2dc48f445bcb43e34bf13ab7bcc74953f06b0975404","impliedFormat":1},{"version":"5bfb2564cd6a65672b9c9a318d6313b925937b0a37606bf9ca89445b4a8d5a6b","impliedFormat":1},{"version":"066aff28aa26c1deb80e040da88f30f6149e388d556f8390d95edfff3fa99e3c","impliedFormat":1},{"version":"79b9e661f99d6d01ad0031fbffbb20a8570ca526125a1b01ef5643c00348a8c4","impliedFormat":1},{"version":"deb85dff5a350bd77f24fb5665b7a3c95aa0d4556a0d45ab423ebf3ffcbc70ce","impliedFormat":1},{"version":"78128cd7be8cbceaa53c812de6691b2301fe128cbf9b9f6d2778ecc0ad47a794","impliedFormat":1},{"version":"309ebd217636d68cf8784cbc3272c16fb94fb8e969e18b6fe88c35200340aef1","impliedFormat":1},{"version":"6e4fde24e4d82d79eaff2daa7f5dffa79ba53de2a6b8aef76c178a5a370764bb","impliedFormat":1},{"version":"ef9b6279acc69002a779d0172916ef22e8be5de2d2469ff2f4bb019a21e89de2","impliedFormat":1},{"version":"12b8d97a20b0fb267b69c4a6be0dfad7c88851d2dcab6150aa4218f40efa45f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e86102dbab93227b2702cba0ba06cb638961394577dc28cd5b856f0184c3156","impliedFormat":1},{"version":"6c859096094c744d2dd7b733189293a5b2af535e15f7794e69a3b4288b70dcfc","impliedFormat":1},{"version":"915d51e1bcd9b06ab8c922360b3f74ffe70c2ab6264f759f2b3e5f4130df0149","impliedFormat":1},{"version":"716a022c6d311c8367d830d2839fe017699564de2d0f5446b4a6f3f022a5c0c6","impliedFormat":1},{"version":"c939cb12cb000b4ec9c3eca3fe7dee1fe373ccb801237631d9252bad10206d61","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"3b25e966fd93475d8ca2834194ea78321d741a21ca9d1f606b25ec99c1bbc29a","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"3b25e966fd93475d8ca2834194ea78321d741a21ca9d1f606b25ec99c1bbc29a","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"7ceb8bc679a90951354f89379bc37228e7cf87b753069cd7b62310d5cbbe1f11","impliedFormat":1},{"version":"92d777bf731e4062397081e864fbc384054934ab64af7723dfbf1df21824db31","impliedFormat":1},{"version":"ee415a173162328db8ab33496db05790b7d6b4a48272ff4a6c35cf9540ac3a60","impliedFormat":1},{"version":"80e653fbbec818eecfe95d182dc65a1d107b343d970159a71922ac4491caa0af","impliedFormat":1},{"version":"f978b1b63ad690ff2a8f16d6f784acaa0ba0f4bcfc64211d79a2704de34f5913","impliedFormat":1},{"version":"00c7c66bbd6675c5bc24b58bac2f9cbdeb9f619b295813cabf780c08034cfaba","impliedFormat":1},{"version":"9078205849121a5d37a642949d687565498da922508eacb0e5a0c3de427f0ae5","impliedFormat":1},{"version":"0ce71e5ee7c489209494c14028e351ccb1ffe455187d98a889f8e07ae2458ef7","impliedFormat":1},{"version":"f5c8f2ef9603893e25ed86c7112cd2cc60d53e5387b9146c904bce3e707c55de","impliedFormat":1},{"version":"db3ea1212b188ff23aa4f32b63e459c9b55d34b44b57bcbdf401f291352483f0","impliedFormat":99},{"version":"dc01facbb7d88bc5e2eabb7c6eee80a0241538d50a5c3b210fb745683faa1dab","impliedFormat":1},{"version":"5c5197a46686814821229b28e4cfd601ef0a32f2d2d29b9a99050bac0ab03c99","impliedFormat":1},{"version":"2f3a88381874ec5fd76116a07b4ec3ed2eb667d00cff57f4f21e58cc0e970ca8","impliedFormat":1},{"version":"2c6c3af3957e38e6a5190258a666a06893ba5a11e3501585243129afecefd037","impliedFormat":1},{"version":"13e5ea921d6f62171aab19f33a6690e3c6658eecd2e5672425e49ac30d4305e6","impliedFormat":1},{"version":"1e28020a23b28743d5bd708b9e4c7b75fdff606aa080fbaf5b8db3600d5c99cf","impliedFormat":1},{"version":"49e7f03e7e7288397725e823654fdfe61892bb5082f391057e61b9c4f1b54f16","impliedFormat":1},{"version":"7b368e9be7bfea145983add6818f4e9ad5d83e5cabc8f771211d77c0feb8db94","impliedFormat":1},{"version":"d49030b9a324bab9bcf9f663a70298391b0f5a25328409174d86617512bf3037","impliedFormat":1},{"version":"a4b634bb8c97cc700dbf165f3bb0095ec669042da72eaf28a7c5e2ddd98169ce","impliedFormat":1},{"version":"a7578eb8461c2d07440749f89aba22881d5fca09a1d1cd46974628869fbadfa1","impliedFormat":99},{"version":"c09b4100633f99c246fa95b29398804299f17700ad99e93bfa11f61f1e27605b","impliedFormat":1},{"version":"3226c2a2af36d14aa551babd4154ad18042c0deb1509a61058c6b066cfddc30a","impliedFormat":1},{"version":"64c9811ebae7d6bdd3749155911ca473017944d6e9787cec3d11549b05b19de9","impliedFormat":1},{"version":"30694e4f10ef4a9a7d9b2b697e22cfad208f9e4b4b2567c3365bc985afc0cd4b","impliedFormat":1},{"version":"532c0dab4fba184a4dcba3d6861464d99ba64179bec22b8130f33da6b17597a3","impliedFormat":1},{"version":"5a631db32cbe2e5f08fc30bcd7321161565bf227fcea057258f3e3bdedd6f8b7","impliedFormat":1},{"version":"4acb96957efa68a1d84a9018e4ae140f93ff8af6e7eb167813f0f1e7a34c1eea","impliedFormat":1},{"version":"f0a38f89d12f4d6551c92ccbb01c3278b44050e54618cd43d27df4452357d814","impliedFormat":1},{"version":"6481b29f54e19becbeb7236c60043e2daa47b45cb4fd7e88f287df09250f2405","impliedFormat":1},{"version":"8a1d6a57ed52927d8e7c7b617ada95239a411fac205f5040603e8b39c9979803","impliedFormat":1},{"version":"01658146c02cba2e49ee7beaa0b90864e7a17c3d02cc39cd8b643b5be3a1a438","impliedFormat":1},{"version":"148048f6cd77da8982d8d220e24d7bd67861033806e3648f0f4fe709b904f11d","impliedFormat":1},{"version":"db18ec88a0f1512b153a28a0ed1e19f34530885bca1d00e5f17a6e9b3184697f","impliedFormat":1},{"version":"65d581663663be2adeb0a5ac83f9fb077ab1e173d9ba06df33f959aaa1303491","impliedFormat":1},{"version":"36cd04c9f4116122a3545fcc6da5e522861d739718ab3a3cb7ff2268612531aa","impliedFormat":1},{"version":"9ae86dde42766df895cde73c60dc13347cc30829c6696de3cc54036b3120a5ba","impliedFormat":1},{"version":"6823cce79c10482d0860d40ebbfc29f00ddf7f99bca0aa23330599ddd8baead4","impliedFormat":1},{"version":"30ed6587fb249cc1b0585bab7ce2ca81ef193bfe2934241b6f06ffefdaaf4bf9","impliedFormat":1},{"version":"aa18fcf8ad877a9eb0c357c247708f019e25c4d906e3025d73604b66de8d7f11","impliedFormat":1},{"version":"cfc5482e113e44dae9712ae0a4e412788622221ae5eb1327fb69a13a0f5af662","impliedFormat":1},{"version":"5e620d0ed3eeb9a9a767355547123c85aea7e8f26d90e94d0cc3fa457f1c2035","impliedFormat":1},{"version":"164a6d88c10434ed6772b3d8a2a724d619c2271cfeb53c5589389d724eaacc1e","impliedFormat":1},{"version":"304b0d21771513c0a36ed7179a9d1069bfa776e95f50b789ce898f3ef2b71514","impliedFormat":1},{"version":"efa595cccee204a3121a51b16629027c6ca4d96aed87fdd70f8066374f97d34b","impliedFormat":1},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"54f6ec6ea75acea6eb23635617252d249145edbc7bcd9d53f2d70280d2aef953","impliedFormat":1},{"version":"c25ce98cca43a3bfa885862044be0d59557be4ecd06989b2001a83dcf69620fd","impliedFormat":1},{"version":"8e71e53b02c152a38af6aec45e288cc65bede077b92b9b43b3cb54a37978bb33","impliedFormat":1},{"version":"754a9396b14ca3a4241591afb4edc644b293ccc8a3397f49be4dfd520c08acb3","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"de2316e90fc6d379d83002f04ad9698bc1e5285b4d52779778f454dd12ce9f44","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"2da997a01a6aa5c5c09de5d28f0f4407b597c5e1aecfd32f1815809c532650a2","impliedFormat":1},{"version":"5d26d2e47e2352def36f89a3e8bf8581da22b7f857e07ef3114cd52cf4813445","impliedFormat":1},{"version":"3db2efd285e7328d8014b54a7fce3f4861ebcdc655df40517092ed0050983617","impliedFormat":1},{"version":"d5d39a24c759df40480a4bfc0daffd364489702fdbcbdfc1711cde34f8739995","impliedFormat":1},{"version":"0abc6e9b21e8fa7083edab4e5869b05be066f49bac7294c5421fb2de6ad21cbc","impliedFormat":1},{"version":"547f1af9ba7f52097a10e707b70668c7b0af64cfc5d0f011fbf5768c5b7639ee","impliedFormat":1},{"version":"18c078c2b34901a328c1fc3e5a2f5bd51aa0fef06a548418198955e0af5eaf39","impliedFormat":1},{"version":"7353d426ea2acf4820408ef38a3f0db2692c00b6ba49460a87014bd987767dac","impliedFormat":1},{"version":"07f804df70402ba5fb4a7457b3e8029b59ec3facc9694d778d936a11f5127179","impliedFormat":1},{"version":"57800654e0bf0257086325f54ee7cfbbfa89e27c5bac44736f089c11143c936b","impliedFormat":1},{"version":"ce22b96ece23ecc9bc1f2a445afefa0a487f299986a1584887e4e4217e196963","impliedFormat":1},{"version":"d75b74cc8266ead7014d7a8a225bba5507a2706cb7a6b186ac52807a74e4a182","impliedFormat":1},{"version":"a344c8d8591f094f6d67336044485c6f87a5cc5c58c3ca6e4ae1c3248f18255a","impliedFormat":1},{"version":"c56d30cadef4528d6d568207e6ca4dd401d474843aee160e6c3a24d790ede0fd","impliedFormat":1},{"version":"94b065f9004cde283dd5989e9bd604a725c9a3c165b3e1c963a7f2fae2d07a6a","impliedFormat":1},{"version":"33650b1a5cdb1bf423ae5bace3a0447f4673bfc9e1d982bcbafa1b6d9720d747","impliedFormat":1},{"version":"e9634e0306920990ddca8f667e3cb624597ea7a4cd25d557a599c0e175419879","impliedFormat":1},{"version":"dd8f07cc3c31fc292339ffedb6617e7f88f26f94da5b156a2e58779b78cd489b","impliedFormat":1},{"version":"2d347c9473107aa9cb2120f94e39f179aa5b36a62af100f49d90b332c9209d19","impliedFormat":1},{"version":"73d7cfecd1fab6c4fabbb528f2187746994de793798811db491f7e4d8383183f","impliedFormat":1},{"version":"18e9ac0c696390f25c7d51098d7c28e7e67c22b68c27e721588c34038f0c3bad","impliedFormat":1},{"version":"b33057a3c7ea75948a207a5b784726118ec60f882eeb875bd64e932b4cd41041","impliedFormat":1},{"version":"e3059fe953b72c20fec9f74878dd7879b661d81657875907336c41e3b817c84b","impliedFormat":1},{"version":"9e2e0b4711f1efef5c3c488616334ba2e5b911648a8784fd77fc8beb1e5047c9","impliedFormat":1},{"version":"315b8bc4d809525b2f6635eb0237af1fe03501cc57bb0b722c672d0634bb8bb1","impliedFormat":1},{"version":"0494f89b64c5e8906ce5284194e09bad42b56837757d79cb9e62ce16aae88ab4","impliedFormat":1},{"version":"28f1497962f8853339b46d766384abe7a907900998f551cf43cd793cdcb98e3d","impliedFormat":1},{"version":"e4cce0b510957aab4b12a0dc21a3b4857b8f8a85bbded2b8b81f836ca3c83dbc","impliedFormat":1},{"version":"79a0953f85a27dcaab70dd0e3791a3564631dfd5d85c637513027747c6844357","impliedFormat":1},{"version":"2dcf72ec20aa5e3cf9911c4d5ada9393bb8d18f00d3dbdbe07ce618b4e90ab3f","impliedFormat":1},{"version":"678c7436b7aa03dad934a96850ea395c018637013aa0b52a65898f502b4d6e2a","impliedFormat":1},{"version":"1c18a09d1deaf0e9906100ab54592f256f87fc94c67cce61bfc1c2ea44ac3d13","impliedFormat":1},{"version":"481559421f5cd5562e4713c251e77dee07f5145c5f1d710afc445e733236802b","impliedFormat":1},{"version":"e98a715378d27c3eb8da1f1b4d2a0f77388893d953830e1ecdd17c31235890a6","impliedFormat":1},{"version":"483b6ed49396309c0ceb824efa6ddc71d5379cb550f08db41a89a7ca6eb0caec","impliedFormat":1},{"version":"625314d2a8acbd18fdedc8ddebfe8ca8f50967894eaf5432f741bb2132533708","impliedFormat":1},{"version":"c1e3d8191046de4e97af1a2a9b47b843cb72de00605fcf7895dd1711a4283ba4","signature":"ce99db2a3aec82e0642380f09ed2139fe37c6c85402faba136f133f525e5c038"},{"version":"9954b96a1bbb60042e2723336fead23ce4d20011f92ad58216002006c4e3c916","signature":"e98bcf8f124fa3a1f81d0f9fe87310837ffe004b2c4f8150b4e8502c718e7fb6"},{"version":"555ce02ef12e1d1f02fc6c49d57fa99c1652fa54dc512cde8ed125fce52bf7e3","signature":"d90260eb05491cd44281c3c7e8e76bce0f784d197dcb424a6b15658cdf1dbe92"},"11a01e87118c70cc97855625ad3a52dd4e875071169b19fe94a6d9f279293a3f",{"version":"d5799bcf7fe4e6de3063abf4e321c14b051706f03cf5716d8a19f22fe1f69519","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1}],"root":[[218,221]],"options":{"declaration":true,"esModuleInterop":true,"module":1,"noImplicitAny":true,"noImplicitReturns":true,"noUnusedLocals":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"target":6,"useUnknownInCatchVariables":false},"referencedMap":[[218,1],[51,2],[52,3],[162,4],[163,4],[164,4],[165,4],[167,5],[166,4],[214,1],[168,4],[57,6],[60,7],[53,8],[54,9],[55,9],[56,9],[70,10],[78,8],[59,11],[75,12],[74,12],[73,12],[72,12],[76,12],[77,12],[58,11],[80,13],[61,14],[62,15],[64,11],[69,16],[71,6],[66,17],[65,18],[63,19],[67,17],[68,7],[169,20],[148,20],[187,4],[205,21],[206,22],[189,23],[203,4],[217,24],[157,25],[158,4],[186,23],[193,1],[208,21],[159,26],[209,6],[211,4],[210,4],[192,4],[190,4],[160,4],[171,27],[153,28],[151,1],[152,29],[200,23],[161,4],[191,4],[202,4],[199,4],[201,4],[198,4],[195,4],[196,30],[215,31],[154,26],[197,4],[155,32],[185,33],[174,34],[176,35],[183,36],[177,37],[180,38],[184,39],[175,40],[182,41],[140,42],[143,43],[141,43],[137,42],[144,44],[145,45],[142,43],[138,46],[139,47],[132,48],[85,49],[87,50],[86,51],[131,52],[135,53],[88,49],[129,54],[84,55],[134,56],[82,57],[146,58],[90,59],[91,59],[92,59],[93,59],[94,59],[95,59],[96,59],[97,59],[98,59],[99,59],[101,59],[100,59],[102,59],[103,59],[104,59],[128,60],[105,59],[106,59],[107,59],[108,59],[109,59],[110,59],[111,59],[112,59],[113,59],[115,59],[114,59],[116,59],[117,59],[118,59],[119,59],[120,59],[121,59],[122,59],[123,59],[124,59],[125,59],[126,59],[127,59],[136,61],[147,62],[219,1],[220,1]],"version":"5.6.3"}
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-trainar",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "n8n community node for TrainAR — augmented reality training platform. Trigger workflows on TrainAR events and call TrainAR API actions from n8n.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package",
|
|
7
|
+
"n8n",
|
|
8
|
+
"trainar",
|
|
9
|
+
"ar-training",
|
|
10
|
+
"training",
|
|
11
|
+
"augmented-reality"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"homepage": "https://github.com/Train-AR/n8n-nodes-trainar",
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "TrainAR",
|
|
17
|
+
"email": "team@trainar.ai"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/Train-AR/n8n-nodes-trainar.git"
|
|
22
|
+
},
|
|
23
|
+
"main": "index.js",
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc && gulp build:icons",
|
|
26
|
+
"dev": "tsc --watch",
|
|
27
|
+
"format": "prettier nodes credentials --write",
|
|
28
|
+
"lint": "eslint nodes credentials package.json",
|
|
29
|
+
"lintfix": "eslint nodes credentials package.json --fix",
|
|
30
|
+
"prepublishOnly": "npm run build && npm run lint -c .eslintrc.prepublish.js nodes credentials package.json"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist"
|
|
34
|
+
],
|
|
35
|
+
"n8n": {
|
|
36
|
+
"n8nNodesApiVersion": 1,
|
|
37
|
+
"credentials": [
|
|
38
|
+
"dist/credentials/TrainarApi.credentials.js"
|
|
39
|
+
],
|
|
40
|
+
"nodes": [
|
|
41
|
+
"dist/nodes/Trainar/Trainar.node.js",
|
|
42
|
+
"dist/nodes/TrainarTrigger/TrainarTrigger.node.js"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@typescript-eslint/parser": "~5.45",
|
|
47
|
+
"eslint": "~8.27.0",
|
|
48
|
+
"eslint-plugin-n8n-nodes-base": "^1.16.1",
|
|
49
|
+
"gulp": "^4.0.2",
|
|
50
|
+
"n8n-workflow": "*",
|
|
51
|
+
"prettier": "^2.7.1",
|
|
52
|
+
"typescript": "~5.6.0"
|
|
53
|
+
},
|
|
54
|
+
"peerDependencies": {
|
|
55
|
+
"n8n-workflow": "*"
|
|
56
|
+
}
|
|
57
|
+
}
|