@efficy/tribecrm-mcp-server 0.2.1 → 0.4.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/README.md +19 -3
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/index.js +173 -131
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,6 +24,12 @@ Model Context Protocol (MCP) server for TribeCRM API integration. This server en
|
|
|
24
24
|
- **Entity Type Definitions**: Access schema and field information for entity types
|
|
25
25
|
- **Dynamic Resources**: Entity data exposed as MCP resources for context
|
|
26
26
|
|
|
27
|
+
### Security Modes
|
|
28
|
+
- **Read-Only Mode** (default): Secure by default - only allows querying and retrieving data
|
|
29
|
+
- **Read-Write Mode**: Full access including create, update, and delete operations
|
|
30
|
+
|
|
31
|
+
> ⚠️ **Breaking Change in v0.4.0**: The server now defaults to read-only mode for security. If you need write access, set `TRIBECRM_MODE=read-write` in your configuration.
|
|
32
|
+
|
|
27
33
|
## 📋 Prerequisites
|
|
28
34
|
|
|
29
35
|
- Node.js 18 or higher
|
|
@@ -63,15 +69,19 @@ Add to your Claude Desktop config file:
|
|
|
63
69
|
"args": ["-y", "@efficy/tribecrm-mcp-server"],
|
|
64
70
|
"env": {
|
|
65
71
|
"TRIBECRM_API_URL": "https://api.tribecrm.nl",
|
|
72
|
+
"TRIBECRM_AUTH_URL": "https://auth.tribecrm.nl",
|
|
66
73
|
"TRIBECRM_CLIENT_ID": "your_client_id",
|
|
67
74
|
"TRIBECRM_CLIENT_SECRET": "your_client_secret",
|
|
68
|
-
"TRIBECRM_ORGANIZATION_ID": "your_org_id"
|
|
75
|
+
"TRIBECRM_ORGANIZATION_ID": "your_org_id",
|
|
76
|
+
"TRIBECRM_MODE": "read-only"
|
|
69
77
|
}
|
|
70
78
|
}
|
|
71
79
|
}
|
|
72
80
|
}
|
|
73
81
|
```
|
|
74
82
|
|
|
83
|
+
**Note**: Set `TRIBECRM_MODE` to `read-write` if you need to create, update, or delete entities.
|
|
84
|
+
|
|
75
85
|
#### Using Local Installation
|
|
76
86
|
|
|
77
87
|
```json
|
|
@@ -82,9 +92,11 @@ Add to your Claude Desktop config file:
|
|
|
82
92
|
"args": ["/absolute/path/to/tribecrm-mcp-server/dist/index.js"],
|
|
83
93
|
"env": {
|
|
84
94
|
"TRIBECRM_API_URL": "https://api.tribecrm.nl",
|
|
95
|
+
"TRIBECRM_AUTH_URL": "https://auth.tribecrm.nl",
|
|
85
96
|
"TRIBECRM_CLIENT_ID": "your_client_id",
|
|
86
97
|
"TRIBECRM_CLIENT_SECRET": "your_client_secret",
|
|
87
|
-
"TRIBECRM_ORGANIZATION_ID": "your_org_id"
|
|
98
|
+
"TRIBECRM_ORGANIZATION_ID": "your_org_id",
|
|
99
|
+
"TRIBECRM_MODE": "read-only"
|
|
88
100
|
}
|
|
89
101
|
}
|
|
90
102
|
}
|
|
@@ -101,10 +113,14 @@ Add to your Claude Desktop config file:
|
|
|
101
113
|
|
|
102
114
|
### Environment Variables
|
|
103
115
|
|
|
104
|
-
- `TRIBECRM_API_URL` (required): Your TribeCRM API URL
|
|
116
|
+
- `TRIBECRM_API_URL` (required): Your TribeCRM API URL (e.g., https://api.tribecrm.nl or https://api-staging.tribecrm.nl)
|
|
117
|
+
- `TRIBECRM_AUTH_URL` (required): Your TribeCRM OAuth2 authentication URL (e.g., https://auth.tribecrm.nl or https://auth-staging.tribecrm.nl)
|
|
105
118
|
- `TRIBECRM_CLIENT_ID` (required): OAuth2 Client ID
|
|
106
119
|
- `TRIBECRM_CLIENT_SECRET` (required): OAuth2 Client Secret
|
|
107
120
|
- `TRIBECRM_ORGANIZATION_ID` (optional): Organization UUID for multi-tenant setups
|
|
121
|
+
- `TRIBECRM_MODE` (optional): Server operation mode - `read-only` (default) or `read-write`
|
|
122
|
+
- `read-only`: Only allows queries and data retrieval (get, query operations). Write tools are hidden.
|
|
123
|
+
- `read-write`: Allows full access including create, update, and delete operations.
|
|
108
124
|
|
|
109
125
|
## 📚 Available Tools
|
|
110
126
|
|
package/dist/client.js
CHANGED
|
@@ -19,7 +19,7 @@ export class TribeCRMClient {
|
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
try {
|
|
22
|
-
const response = await axios.post(
|
|
22
|
+
const response = await axios.post(`${this.config.authUrl}/oauth2/token`, new URLSearchParams({
|
|
23
23
|
grant_type: 'client_credentials',
|
|
24
24
|
client_id: this.config.clientId,
|
|
25
25
|
client_secret: this.config.clientSecret,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAG7C,MAAM,OAAO,cAAc;IACjB,aAAa,CAAgB;IAC7B,MAAM,CAAiB;IACvB,KAAK,GAAqB,IAAI,CAAC;IAC/B,WAAW,GAAW,CAAC,CAAC;IAEhC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,17 +6,26 @@ import dotenv from 'dotenv';
|
|
|
6
6
|
import { TribeCRMClient } from './client.js';
|
|
7
7
|
// Load environment variables
|
|
8
8
|
dotenv.config();
|
|
9
|
+
// Parse and validate mode
|
|
10
|
+
const mode = (process.env.TRIBECRM_MODE || 'read-only');
|
|
11
|
+
if (mode !== 'read-only' && mode !== 'read-write') {
|
|
12
|
+
console.error('Error: TRIBECRM_MODE must be either "read-only" or "read-write"');
|
|
13
|
+
console.error(`Received: ${process.env.TRIBECRM_MODE}`);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
9
16
|
// Validate configuration
|
|
10
17
|
const config = {
|
|
11
|
-
apiUrl: process.env.TRIBECRM_API_URL || '
|
|
18
|
+
apiUrl: process.env.TRIBECRM_API_URL || '',
|
|
19
|
+
authUrl: process.env.TRIBECRM_AUTH_URL || '',
|
|
12
20
|
clientId: process.env.TRIBECRM_CLIENT_ID || '',
|
|
13
21
|
clientSecret: process.env.TRIBECRM_CLIENT_SECRET || '',
|
|
14
22
|
organizationId: process.env.TRIBECRM_ORGANIZATION_ID,
|
|
23
|
+
mode,
|
|
15
24
|
};
|
|
16
|
-
if (!config.clientId || !config.clientSecret) {
|
|
25
|
+
if (!config.apiUrl || !config.authUrl || !config.clientId || !config.clientSecret) {
|
|
17
26
|
console.error('Error: Missing required environment variables');
|
|
18
|
-
console.error('Required: TRIBECRM_CLIENT_ID, TRIBECRM_CLIENT_SECRET');
|
|
19
|
-
console.error('Optional:
|
|
27
|
+
console.error('Required: TRIBECRM_API_URL, TRIBECRM_AUTH_URL, TRIBECRM_CLIENT_ID, TRIBECRM_CLIENT_SECRET');
|
|
28
|
+
console.error('Optional: TRIBECRM_ORGANIZATION_ID, TRIBECRM_MODE');
|
|
20
29
|
process.exit(1);
|
|
21
30
|
}
|
|
22
31
|
// Initialize client
|
|
@@ -24,7 +33,7 @@ const client = new TribeCRMClient(config);
|
|
|
24
33
|
// Initialize MCP server
|
|
25
34
|
const server = new Server({
|
|
26
35
|
name: process.env.MCP_SERVER_NAME || 'tribecrm',
|
|
27
|
-
version: '0.
|
|
36
|
+
version: '0.4.0',
|
|
28
37
|
}, {
|
|
29
38
|
capabilities: {
|
|
30
39
|
tools: {},
|
|
@@ -33,149 +42,153 @@ const server = new Server({
|
|
|
33
42
|
});
|
|
34
43
|
// Register tool handlers
|
|
35
44
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
description: 'Optional $select parameter (e.g., "Name,EmailAddress,PhoneNumber")',
|
|
59
|
-
},
|
|
45
|
+
const allTools = [
|
|
46
|
+
{
|
|
47
|
+
name: 'tribecrm_get_entity',
|
|
48
|
+
description: 'Get a single entity by ID. Common entity types: Relation_Organization, Relation_Person, Activity_Invoice, Product',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
entityType: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'OData entity type (e.g., Relation_Organization, Relation_Person, Activity_Invoice)',
|
|
55
|
+
},
|
|
56
|
+
entityId: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
description: 'Entity UUID',
|
|
59
|
+
},
|
|
60
|
+
expand: {
|
|
61
|
+
type: 'string',
|
|
62
|
+
description: 'Optional $expand parameter (e.g., "Address", "InvoiceAddress($expand=Country)")',
|
|
63
|
+
},
|
|
64
|
+
select: {
|
|
65
|
+
type: 'string',
|
|
66
|
+
description: 'Optional $select parameter (e.g., "Name,EmailAddress,PhoneNumber")',
|
|
60
67
|
},
|
|
61
|
-
required: ['entityType', 'entityId'],
|
|
62
68
|
},
|
|
69
|
+
required: ['entityType', 'entityId'],
|
|
63
70
|
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'tribecrm_query_entities',
|
|
74
|
+
description: 'Query entities with OData filters. Supports $filter, $select, $expand, $orderby, $top, $skip, $count',
|
|
75
|
+
inputSchema: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
properties: {
|
|
78
|
+
entityType: {
|
|
79
|
+
type: 'string',
|
|
80
|
+
description: 'OData entity type to query',
|
|
81
|
+
},
|
|
82
|
+
filter: {
|
|
83
|
+
type: 'string',
|
|
84
|
+
description: 'OData $filter expression (e.g., "Name eq \'John\' or contains(Name,\'tech\')")',
|
|
85
|
+
},
|
|
86
|
+
select: {
|
|
87
|
+
type: 'string',
|
|
88
|
+
description: 'Comma-separated list of fields to return',
|
|
89
|
+
},
|
|
90
|
+
expand: {
|
|
91
|
+
type: 'string',
|
|
92
|
+
description: 'Related entities to expand',
|
|
93
|
+
},
|
|
94
|
+
orderby: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
description: 'Field to sort by with optional desc (e.g., "Name desc")',
|
|
97
|
+
},
|
|
98
|
+
top: {
|
|
99
|
+
type: 'number',
|
|
100
|
+
description: 'Number of records to return (pagination)',
|
|
101
|
+
},
|
|
102
|
+
skip: {
|
|
103
|
+
type: 'number',
|
|
104
|
+
description: 'Number of records to skip (pagination)',
|
|
105
|
+
},
|
|
106
|
+
count: {
|
|
107
|
+
type: 'boolean',
|
|
108
|
+
description: 'Include total count in response',
|
|
102
109
|
},
|
|
103
|
-
required: ['entityType'],
|
|
104
110
|
},
|
|
111
|
+
required: ['entityType'],
|
|
105
112
|
},
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'tribecrm_create_entity',
|
|
116
|
+
description: 'Create a new entity in TribeCRM',
|
|
117
|
+
inputSchema: {
|
|
118
|
+
type: 'object',
|
|
119
|
+
properties: {
|
|
120
|
+
entityType: {
|
|
121
|
+
type: 'string',
|
|
122
|
+
description: 'OData entity type',
|
|
123
|
+
},
|
|
124
|
+
data: {
|
|
125
|
+
type: 'object',
|
|
126
|
+
description: 'Entity data (do not include ID)',
|
|
120
127
|
},
|
|
121
|
-
required: ['entityType', 'data'],
|
|
122
128
|
},
|
|
129
|
+
required: ['entityType', 'data'],
|
|
123
130
|
},
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'tribecrm_update_entity',
|
|
134
|
+
description: 'Update an existing entity in TribeCRM',
|
|
135
|
+
inputSchema: {
|
|
136
|
+
type: 'object',
|
|
137
|
+
properties: {
|
|
138
|
+
entityType: {
|
|
139
|
+
type: 'string',
|
|
140
|
+
description: 'OData entity type',
|
|
141
|
+
},
|
|
142
|
+
entityId: {
|
|
143
|
+
type: 'string',
|
|
144
|
+
description: 'Entity UUID to update',
|
|
145
|
+
},
|
|
146
|
+
data: {
|
|
147
|
+
type: 'object',
|
|
148
|
+
description: 'Updated entity data',
|
|
142
149
|
},
|
|
143
|
-
required: ['entityType', 'entityId', 'data'],
|
|
144
150
|
},
|
|
151
|
+
required: ['entityType', 'entityId', 'data'],
|
|
145
152
|
},
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: 'tribecrm_delete_entity',
|
|
156
|
+
description: 'Delete an entity from TribeCRM',
|
|
157
|
+
inputSchema: {
|
|
158
|
+
type: 'object',
|
|
159
|
+
properties: {
|
|
160
|
+
entityType: {
|
|
161
|
+
type: 'string',
|
|
162
|
+
description: 'OData entity type',
|
|
163
|
+
},
|
|
164
|
+
entityId: {
|
|
165
|
+
type: 'string',
|
|
166
|
+
description: 'Entity UUID to delete',
|
|
160
167
|
},
|
|
161
|
-
required: ['entityType', 'entityId'],
|
|
162
168
|
},
|
|
169
|
+
required: ['entityType', 'entityId'],
|
|
163
170
|
},
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'tribecrm_get_current_employee',
|
|
174
|
+
description: 'Get information about the currently authenticated employee',
|
|
175
|
+
inputSchema: {
|
|
176
|
+
type: 'object',
|
|
177
|
+
properties: {
|
|
178
|
+
expand: {
|
|
179
|
+
type: 'string',
|
|
180
|
+
description: 'Optional $expand parameter (e.g., "Person")',
|
|
174
181
|
},
|
|
175
182
|
},
|
|
176
183
|
},
|
|
177
|
-
|
|
178
|
-
|
|
184
|
+
},
|
|
185
|
+
];
|
|
186
|
+
// Filter tools based on mode
|
|
187
|
+
const writeTools = ['tribecrm_create_entity', 'tribecrm_update_entity', 'tribecrm_delete_entity'];
|
|
188
|
+
const availableTools = config.mode === 'read-only'
|
|
189
|
+
? allTools.filter(tool => !writeTools.includes(tool.name))
|
|
190
|
+
: allTools;
|
|
191
|
+
return { tools: availableTools };
|
|
179
192
|
});
|
|
180
193
|
// Register call tool handler
|
|
181
194
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
@@ -215,6 +228,15 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
215
228
|
};
|
|
216
229
|
}
|
|
217
230
|
case 'tribecrm_create_entity': {
|
|
231
|
+
if (config.mode === 'read-only') {
|
|
232
|
+
return {
|
|
233
|
+
content: [{
|
|
234
|
+
type: 'text',
|
|
235
|
+
text: 'Error: Write operations are disabled. Server is running in read-only mode. Set TRIBECRM_MODE=read-write to enable write operations.',
|
|
236
|
+
}],
|
|
237
|
+
isError: true,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
218
240
|
const { entityType, data } = args;
|
|
219
241
|
const entity = await client.createEntity(entityType, data);
|
|
220
242
|
return {
|
|
@@ -227,6 +249,15 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
227
249
|
};
|
|
228
250
|
}
|
|
229
251
|
case 'tribecrm_update_entity': {
|
|
252
|
+
if (config.mode === 'read-only') {
|
|
253
|
+
return {
|
|
254
|
+
content: [{
|
|
255
|
+
type: 'text',
|
|
256
|
+
text: 'Error: Write operations are disabled. Server is running in read-only mode. Set TRIBECRM_MODE=read-write to enable write operations.',
|
|
257
|
+
}],
|
|
258
|
+
isError: true,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
230
261
|
const { entityType, entityId, data } = args;
|
|
231
262
|
const entity = await client.updateEntity(entityType, entityId, data);
|
|
232
263
|
return {
|
|
@@ -239,6 +270,15 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
239
270
|
};
|
|
240
271
|
}
|
|
241
272
|
case 'tribecrm_delete_entity': {
|
|
273
|
+
if (config.mode === 'read-only') {
|
|
274
|
+
return {
|
|
275
|
+
content: [{
|
|
276
|
+
type: 'text',
|
|
277
|
+
text: 'Error: Write operations are disabled. Server is running in read-only mode. Set TRIBECRM_MODE=read-write to enable write operations.',
|
|
278
|
+
}],
|
|
279
|
+
isError: true,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
242
282
|
const { entityType, entityId } = args;
|
|
243
283
|
await client.deleteEntity(entityType, entityId);
|
|
244
284
|
return {
|
|
@@ -326,8 +366,10 @@ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
|
326
366
|
async function main() {
|
|
327
367
|
const transport = new StdioServerTransport();
|
|
328
368
|
await server.connect(transport);
|
|
329
|
-
console.error('TribeCRM MCP Server v0.
|
|
369
|
+
console.error('TribeCRM MCP Server v0.4.0 running on stdio');
|
|
330
370
|
console.error('Connected to:', config.apiUrl);
|
|
371
|
+
console.error('Auth URL:', config.authUrl);
|
|
372
|
+
console.error('Mode:', config.mode);
|
|
331
373
|
}
|
|
332
374
|
main().catch((error) => {
|
|
333
375
|
console.error('Server error:', error);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,6BAA6B;AAC7B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,yBAAyB;AACzB,MAAM,MAAM,GAAmB;IAC7B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,6BAA6B;AAC7B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,0BAA0B;AAC1B,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,WAAW,CAA+B,CAAC;AACtF,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;IAClD,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACjF,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,yBAAyB;AACzB,MAAM,MAAM,GAAmB;IAC7B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;IAC1C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;IAC5C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;IAC9C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;IACtD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;IACpD,IAAI;CACL,CAAC;AAEF,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAClF,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;IAC3G,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,oBAAoB;AACpB,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AAE1C,wBAAwB;AACxB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,UAAU;IAC/C,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;KACd;CACF,CACF,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,QAAQ,GAAG;QACf;YACE,IAAI,EAAE,qBAAqB;YACzB,WAAW,EAAE,mHAAmH;YAChI,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oFAAoF;qBAClG;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,aAAa;qBAC3B;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iFAAiF;qBAC/F;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oEAAoE;qBAClF;iBACF;gBACD,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;aACrC;SACF;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,sGAAsG;YACnH,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,4BAA4B;qBAC1C;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,gFAAgF;qBAC9F;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,0CAA0C;qBACxD;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,4BAA4B;qBAC1C;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yDAAyD;qBACvE;oBACD,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,0CAA0C;qBACxD;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wCAAwC;qBACtD;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,iCAAiC;qBAC/C;iBACF;gBACD,QAAQ,EAAE,CAAC,YAAY,CAAC;aACzB;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,iCAAiC;YAC9C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,mBAAmB;qBACjC;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iCAAiC;qBAC/C;iBACF;gBACD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;aACjC;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,uCAAuC;YACpD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,mBAAmB;qBACjC;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uBAAuB;qBACrC;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qBAAqB;qBACnC;iBACF;gBACD,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC;aAC7C;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,gCAAgC;YAC7C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,mBAAmB;qBACjC;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uBAAuB;qBACrC;iBACF;gBACD,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;aACrC;SACF;QACD;YACE,IAAI,EAAE,+BAA+B;YACrC,WAAW,EAAE,4DAA4D;YACzE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6CAA6C;qBAC3D;iBACF;aACF;SACF;KACF,CAAC;IAEJ,6BAA6B;IAC7B,MAAM,UAAU,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IAClG,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,KAAK,WAAW;QAChD,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,6BAA6B;AAC7B,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAKhD,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC5E,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBAC/B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IASzE,CAAC;gBACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE;oBACrD,MAAM;oBACN,MAAM;oBACN,MAAM;oBACN,OAAO;oBACP,GAAG;oBACH,IAAI;oBACJ,KAAK;iBACN,CAAC,CAAC;gBACH,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;yBACvC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,qIAAqI;6BAC5I,CAAC;wBACF,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAyD,CAAC;gBACvF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC3D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,kCAAkC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;yBAC1E;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,qIAAqI;6BAC5I,CAAC;wBACF,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAItC,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACrE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,kCAAkC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;yBAC1E;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,qIAAqI;6BAC5I,CAAC;wBACF,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBACD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAgD,CAAC;gBAClF,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAChD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,UAAU,QAAQ,uBAAuB;yBAChD;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,+BAA+B,CAAC,CAAC,CAAC;gBACrC,MAAM,EAAE,MAAM,EAAE,GAAG,IAA2B,CAAC;gBAC/C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACzD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;yBACxC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;iBACxE;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,6BAA6B;AAC7B,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IAC9D,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QACnD,OAAO;YACL,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpC,GAAG,EAAE,2BAA2B,IAAI,CAAC,IAAI,EAAE;gBAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,gBAAgB,IAAI,CAAC,IAAI,EAAE;gBACxC,QAAQ,EAAE,kBAAkB;aAC7B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACpE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/B,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC/C,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;YACnE,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;YACnD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YAEtE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,cAAc,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG;wBACH,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC1C;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
package/package.json
CHANGED