@friggframework/schemas 2.0.0-next.78 → 2.0.0-next.80

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/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @friggframework/schemas - Canonical JSON Schema definitions for Frigg Framework
3
- *
3
+ *
4
4
  * This package provides formal JSON Schema definitions for all core Frigg configuration
5
- * objects, along with runtime validation utilities.
5
+ * objects, along with runtime validation utilities and Express middleware.
6
6
  */
7
7
 
8
8
  const Ajv = require('ajv');
@@ -10,6 +10,9 @@ const addFormats = require('ajv-formats');
10
10
  const fs = require('fs');
11
11
  const path = require('path');
12
12
 
13
+ // Import middleware
14
+ const schemaValidationMiddleware = require('./middleware/schema-validation');
15
+
13
16
  // Initialize AJV with formats
14
17
  const ajv = new Ajv({
15
18
  allErrors: true,
@@ -25,11 +28,15 @@ const schemaDir = path.join(__dirname, 'schemas');
25
28
  // Load schema files
26
29
  const schemaFiles = [
27
30
  'app-definition.schema.json',
28
- 'integration-definition.schema.json',
31
+ 'integration-definition.schema.json',
29
32
  'api-module-definition.schema.json',
30
33
  'serverless-config.schema.json',
31
34
  'environment-config.schema.json',
32
- 'core-models.schema.json'
35
+ 'core-models.schema.json',
36
+ 'api-authorization.schema.json',
37
+ 'api-credentials.schema.json',
38
+ 'api-entities.schema.json',
39
+ 'api-proxy.schema.json'
33
40
  ];
34
41
 
35
42
  schemaFiles.forEach(file => {
@@ -117,6 +124,195 @@ function validateCoreModels(coreModels) {
117
124
  return validate('core-models', coreModels);
118
125
  }
119
126
 
127
+ /**
128
+ * Validate Authorization Requirements
129
+ * @param {object} requirements - Authorization requirements object to validate
130
+ * @returns {object} - Validation result
131
+ */
132
+ function validateAuthorizationRequirements(requirements) {
133
+ return validate('api-authorization#/definitions/authorizationRequirements', requirements);
134
+ }
135
+
136
+ /**
137
+ * Validate Authorization Request
138
+ * @param {object} request - Authorization request object to validate
139
+ * @returns {object} - Validation result
140
+ */
141
+ function validateAuthorizationRequest(request) {
142
+ return validate('api-authorization#/definitions/authorizationRequest', request);
143
+ }
144
+
145
+ /**
146
+ * Validate Authorization Response
147
+ * @param {object} response - Authorization response object to validate
148
+ * @returns {object} - Validation result
149
+ */
150
+ function validateAuthorizationResponse(response) {
151
+ return validate('api-authorization#/definitions/authorizationResponse', response);
152
+ }
153
+
154
+ /**
155
+ * Validate Authorization Session
156
+ * @param {object} session - Authorization session object to validate
157
+ * @returns {object} - Validation result
158
+ */
159
+ function validateAuthorizationSession(session) {
160
+ return validate('api-authorization#/definitions/authorizationSession', session);
161
+ }
162
+
163
+ /**
164
+ * Validate Credential
165
+ * @param {object} credential - Credential object to validate
166
+ * @returns {object} - Validation result
167
+ */
168
+ function validateCredential(credential) {
169
+ return validate('api-credentials#/definitions/credential', credential);
170
+ }
171
+
172
+ /**
173
+ * Validate List Credentials Response
174
+ * @param {object} response - List credentials response object to validate
175
+ * @returns {object} - Validation result
176
+ */
177
+ function validateListCredentialsResponse(response) {
178
+ return validate('api-credentials#/definitions/listCredentialsResponse', response);
179
+ }
180
+
181
+ /**
182
+ * Validate Get Credential Response
183
+ * @param {object} response - Get credential response object to validate
184
+ * @returns {object} - Validation result
185
+ */
186
+ function validateGetCredentialResponse(response) {
187
+ return validate('api-credentials#/definitions/getCredentialResponse', response);
188
+ }
189
+
190
+ /**
191
+ * Validate Delete Credential Response
192
+ * @param {object} response - Delete credential response object to validate
193
+ * @returns {object} - Validation result
194
+ */
195
+ function validateDeleteCredentialResponse(response) {
196
+ return validate('api-credentials#/definitions/deleteCredentialResponse', response);
197
+ }
198
+
199
+ /**
200
+ * Validate Reauthorize Credential Request
201
+ * @param {object} request - Reauthorize credential request object to validate
202
+ * @returns {object} - Validation result
203
+ */
204
+ function validateReauthorizeCredentialRequest(request) {
205
+ return validate('api-credentials#/definitions/reauthorizeCredentialRequest', request);
206
+ }
207
+
208
+ /**
209
+ * Validate Reauthorize Credential Response
210
+ * @param {object} response - Reauthorize credential response object to validate
211
+ * @returns {object} - Validation result
212
+ */
213
+ function validateReauthorizeCredentialResponse(response) {
214
+ return validate('api-credentials#/definitions/reauthorizeCredentialResponse', response);
215
+ }
216
+
217
+ /**
218
+ * Validate Proxy Request
219
+ * @param {object} request - Proxy request object to validate
220
+ * @returns {object} - Validation result
221
+ */
222
+ function validateProxyRequest(request) {
223
+ return validate('api-proxy#/definitions/proxyRequest', request);
224
+ }
225
+
226
+ /**
227
+ * Validate Proxy Response
228
+ * @param {object} response - Proxy response object to validate
229
+ * @returns {object} - Validation result
230
+ */
231
+ function validateProxyResponse(response) {
232
+ return validate('api-proxy#/definitions/proxyResponseUnion', response);
233
+ }
234
+
235
+ /**
236
+ * Validate Entity
237
+ * @param {object} entity - Entity object to validate
238
+ * @returns {object} - Validation result
239
+ */
240
+ function validateEntity(entity) {
241
+ return validate('api-entities#/definitions/entity', entity);
242
+ }
243
+
244
+ /**
245
+ * Validate List Entities Response
246
+ * @param {object} response - List entities response object to validate
247
+ * @returns {object} - Validation result
248
+ */
249
+ function validateListEntitiesResponse(response) {
250
+ return validate('api-entities#/definitions/listEntitiesResponse', response);
251
+ }
252
+
253
+ /**
254
+ * Validate Create Entity Request
255
+ * @param {object} request - Create entity request object to validate
256
+ * @returns {object} - Validation result
257
+ */
258
+ function validateCreateEntityRequest(request) {
259
+ return validate('api-entities#/definitions/createEntityRequest', request);
260
+ }
261
+
262
+ /**
263
+ * Validate Create Entity Response
264
+ * @param {object} response - Create entity response object to validate
265
+ * @returns {object} - Validation result
266
+ */
267
+ function validateCreateEntityResponse(response) {
268
+ return validate('api-entities#/definitions/createEntityResponse', response);
269
+ }
270
+
271
+ /**
272
+ * Validate Entity Type
273
+ * @param {object} entityType - Entity type object to validate
274
+ * @returns {object} - Validation result
275
+ */
276
+ function validateEntityType(entityType) {
277
+ return validate('api-entities#/definitions/entityType', entityType);
278
+ }
279
+
280
+ /**
281
+ * Validate List Entity Types Response
282
+ * @param {object} response - List entity types response object to validate
283
+ * @returns {object} - Validation result
284
+ */
285
+ function validateListEntityTypesResponse(response) {
286
+ return validate('api-entities#/definitions/listEntityTypesResponse', response);
287
+ }
288
+
289
+ /**
290
+ * Validate Get Entity Type Response
291
+ * @param {object} response - Get entity type response object to validate
292
+ * @returns {object} - Validation result
293
+ */
294
+ function validateGetEntityTypeResponse(response) {
295
+ return validate('api-entities#/definitions/getEntityTypeResponse', response);
296
+ }
297
+
298
+ /**
299
+ * Validate Reauthorize Entity Request
300
+ * @param {object} request - Reauthorize entity request object to validate
301
+ * @returns {object} - Validation result
302
+ */
303
+ function validateReauthorizeEntityRequest(request) {
304
+ return validate('api-entities#/definitions/reauthorizeEntityRequest', request);
305
+ }
306
+
307
+ /**
308
+ * Validate Reauthorize Entity Response
309
+ * @param {object} response - Reauthorize entity response object to validate
310
+ * @returns {object} - Validation result
311
+ */
312
+ function validateReauthorizeEntityResponse(response) {
313
+ return validate('api-entities#/definitions/reauthorizeEntityResponse', response);
314
+ }
315
+
120
316
  /**
121
317
  * Get all available schemas
122
318
  * @returns {object} - Object containing all loaded schemas
@@ -158,6 +354,7 @@ function formatErrors(errors) {
158
354
  }
159
355
 
160
356
  module.exports = {
357
+ // Validation functions
161
358
  validate,
162
359
  validateAppDefinition,
163
360
  validateIntegrationDefinition,
@@ -165,9 +362,39 @@ module.exports = {
165
362
  validateServerlessConfig,
166
363
  validateEnvironmentConfig,
167
364
  validateCoreModels,
365
+ validateAuthorizationRequirements,
366
+ validateAuthorizationRequest,
367
+ validateAuthorizationResponse,
368
+ validateAuthorizationSession,
369
+ validateCredential,
370
+ validateListCredentialsResponse,
371
+ validateGetCredentialResponse,
372
+ validateDeleteCredentialResponse,
373
+ validateReauthorizeCredentialRequest,
374
+ validateReauthorizeCredentialResponse,
375
+ validateProxyRequest,
376
+ validateProxyResponse,
377
+ validateEntity,
378
+ validateListEntitiesResponse,
379
+ validateCreateEntityRequest,
380
+ validateCreateEntityResponse,
381
+ validateEntityType,
382
+ validateListEntityTypesResponse,
383
+ validateGetEntityTypeResponse,
384
+ validateReauthorizeEntityRequest,
385
+ validateReauthorizeEntityResponse,
168
386
  getSchemas,
169
387
  getSchema,
170
388
  formatErrors,
171
389
  schemas,
172
- ajv
390
+ ajv,
391
+
392
+ // Middleware exports
393
+ middleware: schemaValidationMiddleware,
394
+ validateBody: schemaValidationMiddleware.validateBody,
395
+ validateQuery: schemaValidationMiddleware.validateQuery,
396
+ validateParams: schemaValidationMiddleware.validateParams,
397
+ validateResponse: schemaValidationMiddleware.validateResponse,
398
+ SchemaRefs: schemaValidationMiddleware.SchemaRefs,
399
+ SchemaValidationError: schemaValidationMiddleware.SchemaValidationError
173
400
  };