@friggframework/schemas 2.0.0--canary.701.00d6b2c.0 → 2.0.0--canary.689.f2e7e1d.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 CHANGED
@@ -146,9 +146,7 @@ Defines the structure for Frigg API modules.
146
146
  **Key Properties:**
147
147
  - `moduleName` (required): Module identifier
148
148
  - `getName` (required): Function returning module name
149
- - `requiredAuthMethods` (required): Authentication configuration (includes optional `getAuthorizationRequirements` and `setAuthParams` for API-key modules)
150
- - `modelName`: Entity/credential model name used by the Module runtime
151
- - Real Definitions (classes/functions) are accepted by `validateApiModuleDefinition` via a schema view.
149
+ - `requiredAuthMethods` (required): Authentication configuration
152
150
  - `env`: Environment variable configuration
153
151
  - `config`: Module-specific configuration
154
152
 
package/index.js CHANGED
@@ -12,9 +12,6 @@ const path = require('path');
12
12
 
13
13
  // Import middleware
14
14
  const schemaValidationMiddleware = require('./middleware/schema-validation');
15
- const {
16
- toApiModuleDefinitionSchemaView,
17
- } = require('./api-module-definition');
18
15
 
19
16
  // Initialize AJV with formats
20
17
  const ajv = new Ajv({
@@ -92,18 +89,12 @@ function validateIntegrationDefinition(integrationDefinition) {
92
89
  }
93
90
 
94
91
  /**
95
- * Validate API Module Definition.
96
- * Real Definitions carry classes and functions; validate the serialisable
97
- * view and return the original definition.
98
- * @param {object} apiModuleDefinition - API module definition object to validate
92
+ * Validate API Module Definition
93
+ * @param {object} apiModuleDefinition - API module definition object to validate
99
94
  * @returns {object} - Validation result
100
95
  */
101
96
  function validateApiModuleDefinition(apiModuleDefinition) {
102
- const result = validate(
103
- 'api-module-definition',
104
- toApiModuleDefinitionSchemaView(apiModuleDefinition)
105
- );
106
- return { ...result, data: apiModuleDefinition };
97
+ return validate('api-module-definition', apiModuleDefinition);
107
98
  }
108
99
 
109
100
  /**
@@ -366,7 +357,6 @@ module.exports = {
366
357
  // Validation functions
367
358
  validate,
368
359
  validateAppDefinition,
369
- toApiModuleDefinitionSchemaView,
370
360
  validateIntegrationDefinition,
371
361
  validateApiModuleDefinition,
372
362
  validateServerlessConfig,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@friggframework/schemas",
3
- "version": "2.0.0--canary.701.00d6b2c.0",
3
+ "version": "2.0.0--canary.689.f2e7e1d.0",
4
4
  "description": "Canonical JSON Schema definitions for Frigg Framework",
5
5
  "main": "index.js",
6
6
  "author": "",
@@ -39,8 +39,7 @@
39
39
  "validators/",
40
40
  "mocks/",
41
41
  "middleware/",
42
- "api-module-definition.js",
43
42
  "index.js"
44
43
  ],
45
- "gitHead": "00d6b2c41f32118d4dbde57f8dfe3c6416840992"
44
+ "gitHead": "f2e7e1d56cdcc9d6a267ff02714ad8fdad86051f"
46
45
  }
@@ -27,13 +27,6 @@
27
27
  "minLength": 1,
28
28
  "maxLength": 100
29
29
  },
30
- "modelName": {
31
- "type": "string",
32
- "description": "Entity/credential model name used by the Module runtime (e.g. 'Fathom'). Distinct from moduleName, which is the package identifier.",
33
- "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$",
34
- "minLength": 1,
35
- "maxLength": 100
36
- },
37
30
  "requiredAuthMethods": {
38
31
  "type": "object",
39
32
  "description": "Required authentication methods and configuration",
@@ -97,22 +90,6 @@
97
90
  "type": {"type": "string", "enum": ["function"]},
98
91
  "async": {"type": "boolean", "default": true}
99
92
  }
100
- },
101
- "getAuthorizationRequirements": {
102
- "type": "object",
103
- "description": "Method that returns the authorization requirements (type, jsonSchema/uiSchema) for non-OAuth flows such as API key",
104
- "properties": {
105
- "type": {"type": "string", "enum": ["function"]},
106
- "async": {"type": "boolean", "default": true}
107
- }
108
- },
109
- "setAuthParams": {
110
- "type": "object",
111
- "description": "Method that applies authorization parameters (e.g. API key) to the API instance",
112
- "properties": {
113
- "type": {"type": "string", "enum": ["function"]},
114
- "async": {"type": "boolean", "default": true}
115
- }
116
93
  }
117
94
  },
118
95
  "additionalProperties": false
@@ -1,93 +0,0 @@
1
- /**
2
- * API module definition helpers shared by validators and the frigg CLI.
3
- * Real Definitions carry classes and functions that JSON Schema cannot
4
- * describe; validators check the serialisable view produced here.
5
- */
6
-
7
- function isPlainObject(value) {
8
- if (value === null || typeof value !== 'object') return false;
9
- const proto = Object.getPrototypeOf(value);
10
- return proto === Object.prototype || proto === null;
11
- }
12
-
13
- /**
14
- * Schema descriptor for a JavaScript function (see api-module-definition
15
- * schema: `{ type: "function", async?: boolean }`).
16
- *
17
- * @param {Function} fn
18
- * @returns {{ type: 'function', async?: boolean }}
19
- */
20
- function toFunctionDescriptor(fn) {
21
- const descriptor = { type: 'function' };
22
- if (fn && fn.constructor && fn.constructor.name === 'AsyncFunction') {
23
- descriptor.async = true;
24
- }
25
- return descriptor;
26
- }
27
-
28
- /**
29
- * JSON Schema cannot describe a JavaScript class or function. Validators
30
- * therefore check this serialisable view: the API class becomes an empty
31
- * object, functions become `{ type: "function" }` descriptors, and
32
- * `undefined` env values are dropped (unset `process.env.*` entries).
33
- *
34
- * @param {object} definition the `Definition` exported by an API module
35
- * @returns {object} a view suitable for the api-module-definition schema
36
- */
37
- function toApiModuleDefinitionSchemaView(definition) {
38
- if (!isPlainObject(definition)) return definition;
39
-
40
- const view = { ...definition };
41
-
42
- if (typeof view.API === 'function') {
43
- view.API = {};
44
- }
45
-
46
- if (typeof view.getName === 'function') {
47
- view.getName = toFunctionDescriptor(view.getName);
48
- }
49
-
50
- if (isPlainObject(view.requiredAuthMethods)) {
51
- const methods = { ...view.requiredAuthMethods };
52
- for (const [key, value] of Object.entries(methods)) {
53
- if (typeof value === 'function') {
54
- methods[key] = toFunctionDescriptor(value);
55
- }
56
- }
57
- view.requiredAuthMethods = methods;
58
- }
59
-
60
- if (isPlainObject(view.env)) {
61
- const env = {};
62
- for (const [key, value] of Object.entries(view.env)) {
63
- if (value !== undefined) env[key] = value;
64
- }
65
- view.env = env;
66
- }
67
-
68
- if (isPlainObject(view.manager)) {
69
- const manager = { ...view.manager };
70
- for (const key of ['Entity', 'Credential']) {
71
- if (typeof manager[key] === 'function') {
72
- manager[key] = {};
73
- }
74
- }
75
- if (isPlainObject(manager.methods)) {
76
- const methods = { ...manager.methods };
77
- for (const [key, value] of Object.entries(methods)) {
78
- if (typeof value === 'function') {
79
- methods[key] = {};
80
- }
81
- }
82
- manager.methods = methods;
83
- }
84
- view.manager = manager;
85
- }
86
-
87
- return view;
88
- }
89
-
90
- module.exports = {
91
- toApiModuleDefinitionSchemaView,
92
- toFunctionDescriptor,
93
- };