@aloma.io/integration-sdk 3.8.49 → 3.8.51
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/OPENAPI_TO_CONNECTOR.md +216 -0
- package/README.md +15 -1
- package/build/cli.mjs +57 -1
- package/build/internal/connector/server/on-connect/decrypt-config.mjs +2 -1
- package/build/internal/fetcher/fetcher.d.mts +1 -0
- package/build/openapi-to-connector.d.mts +35 -0
- package/build/openapi-to-connector.mjs +207 -0
- package/examples/generate-connector.sh +35 -0
- package/examples/generated-controller.mts +81 -0
- package/examples/sample-api.json +325 -0
- package/examples/sample-api.yaml +222 -0
- package/examples/simple-api.json +39 -0
- package/package.json +11 -4
- package/src/builder/index.mts +3 -3
- package/src/builder/runtime-context.mts +2 -2
- package/src/cli.mts +65 -1
- package/src/controller/index.mts +2 -2
- package/src/internal/connector/server/on-connect/decrypt-config.mts +2 -1
- package/src/internal/connector/server/on-connect/index.mts +9 -9
- package/src/internal/fetcher/fetcher.mts +5 -5
- package/src/internal/websocket/transport/index.mjs +4 -5
- package/src/openapi-to-connector.mts +255 -0
- package/test/openapi-to-connector.test.mts +207 -0
- package/build/internal/connector/server/on-connect.d.mts +0 -8
- package/build/internal/connector/server/on-connect.mjs +0 -297
@@ -0,0 +1,325 @@
|
|
1
|
+
{
|
2
|
+
"openapi": "3.0.0",
|
3
|
+
"info": {
|
4
|
+
"title": "Sample API",
|
5
|
+
"version": "1.0.0",
|
6
|
+
"description": "A sample API for testing the OpenAPI to connector generator"
|
7
|
+
},
|
8
|
+
"servers": [
|
9
|
+
{
|
10
|
+
"url": "https://api.example.com/v1",
|
11
|
+
"description": "Production server"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"url": "https://staging-api.example.com/v1",
|
15
|
+
"description": "Staging server"
|
16
|
+
}
|
17
|
+
],
|
18
|
+
"paths": {
|
19
|
+
"/users": {
|
20
|
+
"get": {
|
21
|
+
"operationId": "listUsers",
|
22
|
+
"summary": "List all users",
|
23
|
+
"description": "Retrieve a paginated list of all users in the system",
|
24
|
+
"parameters": [
|
25
|
+
{
|
26
|
+
"name": "page",
|
27
|
+
"in": "query",
|
28
|
+
"description": "Page number for pagination",
|
29
|
+
"required": false,
|
30
|
+
"schema": {
|
31
|
+
"type": "integer",
|
32
|
+
"minimum": 1,
|
33
|
+
"default": 1
|
34
|
+
}
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"name": "limit",
|
38
|
+
"in": "query",
|
39
|
+
"description": "Number of users per page",
|
40
|
+
"required": false,
|
41
|
+
"schema": {
|
42
|
+
"type": "integer",
|
43
|
+
"minimum": 1,
|
44
|
+
"maximum": 100,
|
45
|
+
"default": 20
|
46
|
+
}
|
47
|
+
}
|
48
|
+
],
|
49
|
+
"responses": {
|
50
|
+
"200": {
|
51
|
+
"description": "Successful response",
|
52
|
+
"content": {
|
53
|
+
"application/json": {
|
54
|
+
"schema": {
|
55
|
+
"type": "object",
|
56
|
+
"properties": {
|
57
|
+
"users": {
|
58
|
+
"type": "array",
|
59
|
+
"items": {
|
60
|
+
"$ref": "#/components/schemas/User"
|
61
|
+
}
|
62
|
+
},
|
63
|
+
"pagination": {
|
64
|
+
"$ref": "#/components/schemas/Pagination"
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
},
|
73
|
+
"post": {
|
74
|
+
"operationId": "createUser",
|
75
|
+
"summary": "Create a new user",
|
76
|
+
"description": "Create a new user account in the system",
|
77
|
+
"requestBody": {
|
78
|
+
"required": true,
|
79
|
+
"content": {
|
80
|
+
"application/json": {
|
81
|
+
"schema": {
|
82
|
+
"$ref": "#/components/schemas/CreateUserRequest"
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
},
|
87
|
+
"responses": {
|
88
|
+
"201": {
|
89
|
+
"description": "User created successfully",
|
90
|
+
"content": {
|
91
|
+
"application/json": {
|
92
|
+
"schema": {
|
93
|
+
"$ref": "#/components/schemas/User"
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
},
|
98
|
+
"400": {
|
99
|
+
"description": "Bad request - invalid input data"
|
100
|
+
},
|
101
|
+
"409": {
|
102
|
+
"description": "Conflict - user already exists"
|
103
|
+
}
|
104
|
+
}
|
105
|
+
}
|
106
|
+
},
|
107
|
+
"/users/{id}": {
|
108
|
+
"get": {
|
109
|
+
"operationId": "getUserById",
|
110
|
+
"summary": "Get user by ID",
|
111
|
+
"description": "Retrieve a specific user by their unique identifier",
|
112
|
+
"parameters": [
|
113
|
+
{
|
114
|
+
"name": "id",
|
115
|
+
"in": "path",
|
116
|
+
"required": true,
|
117
|
+
"description": "Unique identifier of the user",
|
118
|
+
"schema": {
|
119
|
+
"type": "string",
|
120
|
+
"format": "uuid"
|
121
|
+
}
|
122
|
+
}
|
123
|
+
],
|
124
|
+
"responses": {
|
125
|
+
"200": {
|
126
|
+
"description": "User found",
|
127
|
+
"content": {
|
128
|
+
"application/json": {
|
129
|
+
"schema": {
|
130
|
+
"$ref": "#/components/schemas/User"
|
131
|
+
}
|
132
|
+
}
|
133
|
+
}
|
134
|
+
},
|
135
|
+
"404": {
|
136
|
+
"description": "User not found"
|
137
|
+
}
|
138
|
+
}
|
139
|
+
},
|
140
|
+
"put": {
|
141
|
+
"operationId": "updateUser",
|
142
|
+
"summary": "Update user",
|
143
|
+
"description": "Update an existing user's information",
|
144
|
+
"parameters": [
|
145
|
+
{
|
146
|
+
"name": "id",
|
147
|
+
"in": "path",
|
148
|
+
"required": true,
|
149
|
+
"description": "Unique identifier of the user",
|
150
|
+
"schema": {
|
151
|
+
"type": "string",
|
152
|
+
"format": "uuid"
|
153
|
+
}
|
154
|
+
}
|
155
|
+
],
|
156
|
+
"requestBody": {
|
157
|
+
"required": true,
|
158
|
+
"content": {
|
159
|
+
"application/json": {
|
160
|
+
"schema": {
|
161
|
+
"$ref": "#/components/schemas/UpdateUserRequest"
|
162
|
+
}
|
163
|
+
}
|
164
|
+
}
|
165
|
+
},
|
166
|
+
"responses": {
|
167
|
+
"200": {
|
168
|
+
"description": "User updated successfully",
|
169
|
+
"content": {
|
170
|
+
"application/json": {
|
171
|
+
"schema": {
|
172
|
+
"$ref": "#/components/schemas/User"
|
173
|
+
}
|
174
|
+
}
|
175
|
+
}
|
176
|
+
},
|
177
|
+
"404": {
|
178
|
+
"description": "User not found"
|
179
|
+
},
|
180
|
+
"400": {
|
181
|
+
"description": "Bad request - invalid input data"
|
182
|
+
}
|
183
|
+
}
|
184
|
+
},
|
185
|
+
"delete": {
|
186
|
+
"operationId": "deleteUser",
|
187
|
+
"summary": "Delete user",
|
188
|
+
"description": "Permanently delete a user from the system",
|
189
|
+
"parameters": [
|
190
|
+
{
|
191
|
+
"name": "id",
|
192
|
+
"in": "path",
|
193
|
+
"required": true,
|
194
|
+
"description": "Unique identifier of the user",
|
195
|
+
"schema": {
|
196
|
+
"type": "string",
|
197
|
+
"format": "uuid"
|
198
|
+
}
|
199
|
+
}
|
200
|
+
],
|
201
|
+
"responses": {
|
202
|
+
"204": {
|
203
|
+
"description": "User deleted successfully"
|
204
|
+
},
|
205
|
+
"404": {
|
206
|
+
"description": "User not found"
|
207
|
+
}
|
208
|
+
}
|
209
|
+
}
|
210
|
+
},
|
211
|
+
"/health": {
|
212
|
+
"get": {
|
213
|
+
"operationId": "healthCheck",
|
214
|
+
"summary": "Health check",
|
215
|
+
"description": "Check the health status of the API",
|
216
|
+
"responses": {
|
217
|
+
"200": {
|
218
|
+
"description": "API is healthy",
|
219
|
+
"content": {
|
220
|
+
"application/json": {
|
221
|
+
"schema": {
|
222
|
+
"type": "object",
|
223
|
+
"properties": {
|
224
|
+
"status": {
|
225
|
+
"type": "string",
|
226
|
+
"enum": ["healthy", "unhealthy"]
|
227
|
+
},
|
228
|
+
"timestamp": {
|
229
|
+
"type": "string",
|
230
|
+
"format": "date-time"
|
231
|
+
}
|
232
|
+
}
|
233
|
+
}
|
234
|
+
}
|
235
|
+
}
|
236
|
+
}
|
237
|
+
}
|
238
|
+
}
|
239
|
+
}
|
240
|
+
},
|
241
|
+
"components": {
|
242
|
+
"schemas": {
|
243
|
+
"User": {
|
244
|
+
"type": "object",
|
245
|
+
"required": ["id", "email", "name"],
|
246
|
+
"properties": {
|
247
|
+
"id": {
|
248
|
+
"type": "string",
|
249
|
+
"format": "uuid",
|
250
|
+
"description": "Unique identifier for the user"
|
251
|
+
},
|
252
|
+
"email": {
|
253
|
+
"type": "string",
|
254
|
+
"format": "email",
|
255
|
+
"description": "User's email address"
|
256
|
+
},
|
257
|
+
"name": {
|
258
|
+
"type": "string",
|
259
|
+
"description": "User's full name"
|
260
|
+
},
|
261
|
+
"createdAt": {
|
262
|
+
"type": "string",
|
263
|
+
"format": "date-time",
|
264
|
+
"description": "When the user was created"
|
265
|
+
},
|
266
|
+
"updatedAt": {
|
267
|
+
"type": "string",
|
268
|
+
"format": "date-time",
|
269
|
+
"description": "When the user was last updated"
|
270
|
+
}
|
271
|
+
}
|
272
|
+
},
|
273
|
+
"CreateUserRequest": {
|
274
|
+
"type": "object",
|
275
|
+
"required": ["email", "name"],
|
276
|
+
"properties": {
|
277
|
+
"email": {
|
278
|
+
"type": "string",
|
279
|
+
"format": "email",
|
280
|
+
"description": "User's email address"
|
281
|
+
},
|
282
|
+
"name": {
|
283
|
+
"type": "string",
|
284
|
+
"description": "User's full name"
|
285
|
+
}
|
286
|
+
}
|
287
|
+
},
|
288
|
+
"UpdateUserRequest": {
|
289
|
+
"type": "object",
|
290
|
+
"properties": {
|
291
|
+
"email": {
|
292
|
+
"type": "string",
|
293
|
+
"format": "email",
|
294
|
+
"description": "User's email address"
|
295
|
+
},
|
296
|
+
"name": {
|
297
|
+
"type": "string",
|
298
|
+
"description": "User's full name"
|
299
|
+
}
|
300
|
+
}
|
301
|
+
},
|
302
|
+
"Pagination": {
|
303
|
+
"type": "object",
|
304
|
+
"properties": {
|
305
|
+
"page": {
|
306
|
+
"type": "integer",
|
307
|
+
"description": "Current page number"
|
308
|
+
},
|
309
|
+
"limit": {
|
310
|
+
"type": "integer",
|
311
|
+
"description": "Number of items per page"
|
312
|
+
},
|
313
|
+
"total": {
|
314
|
+
"type": "integer",
|
315
|
+
"description": "Total number of items"
|
316
|
+
},
|
317
|
+
"pages": {
|
318
|
+
"type": "integer",
|
319
|
+
"description": "Total number of pages"
|
320
|
+
}
|
321
|
+
}
|
322
|
+
}
|
323
|
+
}
|
324
|
+
}
|
325
|
+
}
|
@@ -0,0 +1,222 @@
|
|
1
|
+
openapi: 3.0.0
|
2
|
+
info:
|
3
|
+
title: Sample API
|
4
|
+
version: 1.0.0
|
5
|
+
description: A sample API for testing the OpenAPI to connector generator
|
6
|
+
servers:
|
7
|
+
- url: https://api.example.com/v1
|
8
|
+
description: Production server
|
9
|
+
- url: https://staging-api.example.com/v1
|
10
|
+
description: Staging server
|
11
|
+
paths:
|
12
|
+
/users:
|
13
|
+
get:
|
14
|
+
operationId: listUsers
|
15
|
+
summary: List all users
|
16
|
+
description: Retrieve a paginated list of all users in the system
|
17
|
+
parameters:
|
18
|
+
- name: page
|
19
|
+
in: query
|
20
|
+
description: Page number for pagination
|
21
|
+
required: false
|
22
|
+
schema:
|
23
|
+
type: integer
|
24
|
+
minimum: 1
|
25
|
+
default: 1
|
26
|
+
- name: limit
|
27
|
+
in: query
|
28
|
+
description: Number of users per page
|
29
|
+
required: false
|
30
|
+
schema:
|
31
|
+
type: integer
|
32
|
+
minimum: 1
|
33
|
+
maximum: 100
|
34
|
+
default: 20
|
35
|
+
responses:
|
36
|
+
'200':
|
37
|
+
description: Successful response
|
38
|
+
content:
|
39
|
+
application/json:
|
40
|
+
schema:
|
41
|
+
type: object
|
42
|
+
properties:
|
43
|
+
users:
|
44
|
+
type: array
|
45
|
+
items:
|
46
|
+
$ref: '#/components/schemas/User'
|
47
|
+
pagination:
|
48
|
+
$ref: '#/components/schemas/Pagination'
|
49
|
+
post:
|
50
|
+
operationId: createUser
|
51
|
+
summary: Create a new user
|
52
|
+
description: Create a new user account in the system
|
53
|
+
requestBody:
|
54
|
+
required: true
|
55
|
+
content:
|
56
|
+
application/json:
|
57
|
+
schema:
|
58
|
+
$ref: '#/components/schemas/CreateUserRequest'
|
59
|
+
responses:
|
60
|
+
'201':
|
61
|
+
description: User created successfully
|
62
|
+
content:
|
63
|
+
application/json:
|
64
|
+
schema:
|
65
|
+
$ref: '#/components/schemas/User'
|
66
|
+
'400':
|
67
|
+
description: Bad request - invalid input data
|
68
|
+
'409':
|
69
|
+
description: Conflict - user already exists
|
70
|
+
/users/{id}:
|
71
|
+
get:
|
72
|
+
operationId: getUserById
|
73
|
+
summary: Get user by ID
|
74
|
+
description: Retrieve a specific user by their unique identifier
|
75
|
+
parameters:
|
76
|
+
- name: id
|
77
|
+
in: path
|
78
|
+
required: true
|
79
|
+
description: Unique identifier of the user
|
80
|
+
schema:
|
81
|
+
type: string
|
82
|
+
format: uuid
|
83
|
+
responses:
|
84
|
+
'200':
|
85
|
+
description: User found
|
86
|
+
content:
|
87
|
+
application/json:
|
88
|
+
schema:
|
89
|
+
$ref: '#/components/schemas/User'
|
90
|
+
'404':
|
91
|
+
description: User not found
|
92
|
+
put:
|
93
|
+
operationId: updateUser
|
94
|
+
summary: Update user
|
95
|
+
description: Update an existing user's information
|
96
|
+
parameters:
|
97
|
+
- name: id
|
98
|
+
in: path
|
99
|
+
required: true
|
100
|
+
description: Unique identifier of the user
|
101
|
+
schema:
|
102
|
+
type: string
|
103
|
+
format: uuid
|
104
|
+
requestBody:
|
105
|
+
required: true
|
106
|
+
content:
|
107
|
+
application/json:
|
108
|
+
schema:
|
109
|
+
$ref: '#/components/schemas/UpdateUserRequest'
|
110
|
+
responses:
|
111
|
+
'200':
|
112
|
+
description: User updated successfully
|
113
|
+
content:
|
114
|
+
application/json:
|
115
|
+
schema:
|
116
|
+
$ref: '#/components/schemas/User'
|
117
|
+
'404':
|
118
|
+
description: User not found
|
119
|
+
'400':
|
120
|
+
description: Bad request - invalid input data
|
121
|
+
delete:
|
122
|
+
operationId: deleteUser
|
123
|
+
summary: Delete user
|
124
|
+
description: Permanently delete a user from the system
|
125
|
+
parameters:
|
126
|
+
- name: id
|
127
|
+
in: path
|
128
|
+
required: true
|
129
|
+
description: Unique identifier of the user
|
130
|
+
schema:
|
131
|
+
type: string
|
132
|
+
format: uuid
|
133
|
+
responses:
|
134
|
+
'204':
|
135
|
+
description: User deleted successfully
|
136
|
+
'404':
|
137
|
+
description: User not found
|
138
|
+
/health:
|
139
|
+
get:
|
140
|
+
operationId: healthCheck
|
141
|
+
summary: Health check
|
142
|
+
description: Check the health status of the API
|
143
|
+
responses:
|
144
|
+
'200':
|
145
|
+
description: API is healthy
|
146
|
+
content:
|
147
|
+
application/json:
|
148
|
+
schema:
|
149
|
+
type: object
|
150
|
+
properties:
|
151
|
+
status:
|
152
|
+
type: string
|
153
|
+
enum: [healthy, unhealthy]
|
154
|
+
timestamp:
|
155
|
+
type: string
|
156
|
+
format: date-time
|
157
|
+
components:
|
158
|
+
schemas:
|
159
|
+
User:
|
160
|
+
type: object
|
161
|
+
required:
|
162
|
+
- id
|
163
|
+
- email
|
164
|
+
- name
|
165
|
+
properties:
|
166
|
+
id:
|
167
|
+
type: string
|
168
|
+
format: uuid
|
169
|
+
description: Unique identifier for the user
|
170
|
+
email:
|
171
|
+
type: string
|
172
|
+
format: email
|
173
|
+
description: User's email address
|
174
|
+
name:
|
175
|
+
type: string
|
176
|
+
description: User's full name
|
177
|
+
createdAt:
|
178
|
+
type: string
|
179
|
+
format: date-time
|
180
|
+
description: When the user was created
|
181
|
+
updatedAt:
|
182
|
+
type: string
|
183
|
+
format: date-time
|
184
|
+
description: When the user was last updated
|
185
|
+
CreateUserRequest:
|
186
|
+
type: object
|
187
|
+
required:
|
188
|
+
- email
|
189
|
+
- name
|
190
|
+
properties:
|
191
|
+
email:
|
192
|
+
type: string
|
193
|
+
format: email
|
194
|
+
description: User's email address
|
195
|
+
name:
|
196
|
+
type: string
|
197
|
+
description: User's full name
|
198
|
+
UpdateUserRequest:
|
199
|
+
type: object
|
200
|
+
properties:
|
201
|
+
email:
|
202
|
+
type: string
|
203
|
+
format: email
|
204
|
+
description: User's email address
|
205
|
+
name:
|
206
|
+
type: string
|
207
|
+
description: User's full name
|
208
|
+
Pagination:
|
209
|
+
type: object
|
210
|
+
properties:
|
211
|
+
page:
|
212
|
+
type: integer
|
213
|
+
description: Current page number
|
214
|
+
limit:
|
215
|
+
type: integer
|
216
|
+
description: Number of items per page
|
217
|
+
total:
|
218
|
+
type: integer
|
219
|
+
description: Total number of items
|
220
|
+
pages:
|
221
|
+
type: integer
|
222
|
+
description: Total number of pages
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{
|
2
|
+
"openapi": "3.0.0",
|
3
|
+
"info": {
|
4
|
+
"title": "Simple API",
|
5
|
+
"version": "1.0.0"
|
6
|
+
},
|
7
|
+
"paths": {
|
8
|
+
"/products": {
|
9
|
+
"get": {
|
10
|
+
"operationId": "getProducts",
|
11
|
+
"summary": "Get all products",
|
12
|
+
"responses": {
|
13
|
+
"200": {
|
14
|
+
"description": "Success"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
},
|
18
|
+
"post": {
|
19
|
+
"operationId": "createProduct",
|
20
|
+
"summary": "Create product",
|
21
|
+
"requestBody": {
|
22
|
+
"required": true,
|
23
|
+
"content": {
|
24
|
+
"application/json": {
|
25
|
+
"schema": {
|
26
|
+
"type": "object"
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
},
|
31
|
+
"responses": {
|
32
|
+
"201": {
|
33
|
+
"description": "Created"
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@aloma.io/integration-sdk",
|
3
|
-
"version": "3.8.
|
3
|
+
"version": "3.8.51",
|
4
4
|
"description": "",
|
5
5
|
"author": "aloma.io",
|
6
6
|
"license": "Apache-2.0",
|
@@ -11,8 +11,9 @@
|
|
11
11
|
"scripts": {
|
12
12
|
"dev": "./node_modules/typescript/bin/tsc --watch",
|
13
13
|
"build": "./node_modules/typescript/bin/tsc",
|
14
|
-
"test": "./node_modules/mocha/bin/_mocha --recursive",
|
15
|
-
"format": "yarn prettier --write src/"
|
14
|
+
"test": "./node_modules/mocha/bin/_mocha --recursive test/ --loader ts-node/esm",
|
15
|
+
"format": "yarn prettier --write src/",
|
16
|
+
"openapi-to-connector": "node ./build/openapi-to-connector.mjs"
|
16
17
|
},
|
17
18
|
"main": "./build/index.js",
|
18
19
|
"exports": {
|
@@ -32,6 +33,8 @@
|
|
32
33
|
"dotenv": "^16",
|
33
34
|
"express": "^4",
|
34
35
|
"jose": "^5",
|
36
|
+
"js-yaml": "^4.1.0",
|
37
|
+
"openapi-types": "^12.1.3",
|
35
38
|
"prom-client": "^15",
|
36
39
|
"typescript": "^5",
|
37
40
|
"ws": "^8",
|
@@ -42,7 +45,11 @@
|
|
42
45
|
"utf-8-validate": "^6"
|
43
46
|
},
|
44
47
|
"devDependencies": {
|
48
|
+
"@types/js-yaml": "^4.0.9",
|
49
|
+
"@types/mocha": "^10.0.6",
|
50
|
+
"chai": "^4.3.10",
|
45
51
|
"mocha": "^10",
|
46
|
-
"prettier": "^3"
|
52
|
+
"prettier": "^3",
|
53
|
+
"ts-node": "^10.9.2"
|
47
54
|
}
|
48
55
|
}
|
package/src/builder/index.mts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import 'dotenv/config';
|
2
2
|
import fs from 'node:fs';
|
3
3
|
import path from 'node:path';
|
4
|
-
import {
|
5
|
-
import {
|
4
|
+
import {fileURLToPath} from 'node:url';
|
5
|
+
import {notEmpty} from '../internal/util/index.mjs';
|
6
6
|
import RuntimeContext from './runtime-context.mjs';
|
7
7
|
|
8
8
|
const DIR_OFFSET = '/../../../../../';
|
@@ -33,7 +33,7 @@ export type ConfigField =
|
|
33
33
|
/**
|
34
34
|
* minimum height of the field
|
35
35
|
*/
|
36
|
-
height?: number
|
36
|
+
height?: number;
|
37
37
|
/**
|
38
38
|
* the type of the field
|
39
39
|
*/
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import fs from 'node:fs';
|
2
|
-
import {
|
3
|
-
import {
|
2
|
+
import {AbstractController} from '../controller/index.mjs';
|
3
|
+
import {Connector} from '../internal/index.mjs';
|
4
4
|
|
5
5
|
/**
|
6
6
|
* Runtime context to manage the lifecycle of the connector
|