@aloma.io/integration-sdk 3.8.50 → 3.8.52

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.
@@ -0,0 +1,81 @@
1
+ import {AbstractController} from '@aloma.io/integration-sdk';
2
+
3
+ export default class Controller extends AbstractController {
4
+
5
+ /**
6
+ * List all users
7
+ * Retrieve a paginated list of all users in the system
8
+ *
9
+ * @param args - Request arguments
10
+ * @param args.page - Page number for pagination
11
+ * @param args.limit - Number of users per page
12
+ * @returns Response data
13
+ */
14
+ async listUsers(args: any) {
15
+ // TODO: Implement GET /users
16
+ throw new Error('Method not implemented');
17
+ }
18
+
19
+ /**
20
+ * Create a new user
21
+ * Create a new user account in the system
22
+ *
23
+ * @param args.body - Request body
24
+ * @returns Response data
25
+ */
26
+ async createUser(args: any) {
27
+ // TODO: Implement POST /users
28
+ throw new Error('Method not implemented');
29
+ }
30
+
31
+ /**
32
+ * Get user by ID
33
+ * Retrieve a specific user by their unique identifier
34
+ *
35
+ * @param args - Request arguments
36
+ * @param args.id - Unique identifier of the user
37
+ * @returns Response data
38
+ */
39
+ async getUserById(args: any) {
40
+ // TODO: Implement GET /users/{id}
41
+ throw new Error('Method not implemented');
42
+ }
43
+
44
+ /**
45
+ * Update user
46
+ * Update an existing user's information
47
+ *
48
+ * @param args - Request arguments
49
+ * @param args.id - Unique identifier of the user
50
+ *
51
+ * @param args.body - Request body
52
+ * @returns Response data
53
+ */
54
+ async updateUser(args: any) {
55
+ // TODO: Implement PUT /users/{id}
56
+ throw new Error('Method not implemented');
57
+ }
58
+
59
+ /**
60
+ * Delete user
61
+ * Permanently delete a user from the system
62
+ *
63
+ * @param args - Request arguments
64
+ * @param args.id - Unique identifier of the user
65
+ * @returns Response data
66
+ */
67
+ async deleteUser(args: any) {
68
+ // TODO: Implement DELETE /users/{id}
69
+ throw new Error('Method not implemented');
70
+ }
71
+
72
+ /**
73
+ * Health check
74
+ * Check the health status of the API
75
+ * @returns Response data
76
+ */
77
+ async healthCheck(args: any) {
78
+ // TODO: Implement GET /health
79
+ throw new Error('Method not implemented');
80
+ }
81
+ }
@@ -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.50",
3
+ "version": "3.8.52",
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
  }