@enfyra/mcp-server 0.1.69 → 0.1.71
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 +1 -1
- package/dist/lib/config-local-adapters.d.ts +18 -0
- package/dist/lib/config-local-adapters.js +271 -0
- package/dist/lib/config-local-adapters.js.map +1 -0
- package/dist/lib/config-local-contracts.d.ts +28 -0
- package/dist/lib/config-local-contracts.js +200 -0
- package/dist/lib/config-local-contracts.js.map +1 -0
- package/dist/lib/config-local-prompts.d.ts +10 -0
- package/dist/lib/config-local-prompts.js +185 -0
- package/dist/lib/config-local-prompts.js.map +1 -0
- package/dist/lib/config-local-types.d.ts +23 -0
- package/dist/lib/config-local-types.js +2 -0
- package/dist/lib/config-local-types.js.map +1 -0
- package/dist/lib/config-local.js +3 -649
- package/dist/lib/config-local.js.map +1 -1
- package/dist/lib/discovery-tools.d.ts +4 -0
- package/dist/lib/discovery-tools.js +546 -0
- package/dist/lib/discovery-tools.js.map +1 -0
- package/dist/lib/dynamic-repository-builder.d.ts +1 -1
- package/dist/lib/dynamic-script-context-contract.d.ts +100 -0
- package/dist/lib/dynamic-script-context-contract.js +163 -0
- package/dist/lib/dynamic-script-context-contract.js.map +1 -0
- package/dist/lib/enfyra-mcp-server.d.ts +3 -0
- package/dist/lib/enfyra-mcp-server.js +79 -0
- package/dist/lib/enfyra-mcp-server.js.map +1 -0
- package/dist/lib/enfyra-tool-logic.d.ts +7 -0
- package/dist/lib/enfyra-tool-logic.js +8 -0
- package/dist/lib/enfyra-tool-logic.js.map +1 -0
- package/dist/lib/enfyra-tool-types.d.ts +27 -0
- package/dist/lib/enfyra-tool-types.js +2 -0
- package/dist/lib/enfyra-tool-types.js.map +1 -0
- package/dist/lib/extension-api-builders.d.ts +17 -0
- package/dist/lib/extension-api-builders.js +235 -0
- package/dist/lib/extension-api-builders.js.map +1 -0
- package/dist/lib/extension-component-builders.d.ts +87 -0
- package/dist/lib/extension-component-builders.js +623 -0
- package/dist/lib/extension-component-builders.js.map +1 -0
- package/dist/lib/extension-contract-review.d.ts +26 -0
- package/dist/lib/extension-contract-review.js +187 -0
- package/dist/lib/extension-contract-review.js.map +1 -0
- package/dist/lib/extension-theme-contract.d.ts +63 -0
- package/dist/lib/extension-theme-contract.js +417 -0
- package/dist/lib/extension-theme-contract.js.map +1 -0
- package/dist/lib/identity-tools.d.ts +4 -0
- package/dist/lib/identity-tools.js +46 -0
- package/dist/lib/identity-tools.js.map +1 -0
- package/dist/lib/log-tools.d.ts +4 -0
- package/dist/lib/log-tools.js +65 -0
- package/dist/lib/log-tools.js.map +1 -0
- package/dist/lib/mcp-example-connect.d.ts +9 -0
- package/dist/lib/mcp-example-connect.js +442 -0
- package/dist/lib/mcp-example-connect.js.map +1 -0
- package/dist/lib/mcp-example-extensions.d.ts +9 -0
- package/dist/lib/mcp-example-extensions.js +729 -0
- package/dist/lib/mcp-example-extensions.js.map +1 -0
- package/dist/lib/mcp-example-files.d.ts +9 -0
- package/dist/lib/mcp-example-files.js +51 -0
- package/dist/lib/mcp-example-files.js.map +1 -0
- package/dist/lib/mcp-example-flows.d.ts +9 -0
- package/dist/lib/mcp-example-flows.js +76 -0
- package/dist/lib/mcp-example-flows.js.map +1 -0
- package/dist/lib/mcp-example-graphql.d.ts +9 -0
- package/dist/lib/mcp-example-graphql.js +57 -0
- package/dist/lib/mcp-example-graphql.js.map +1 -0
- package/dist/lib/mcp-example-handlers-hooks.d.ts +9 -0
- package/dist/lib/mcp-example-handlers-hooks.js +328 -0
- package/dist/lib/mcp-example-handlers-hooks.js.map +1 -0
- package/dist/lib/mcp-example-oauth-setup.d.ts +9 -0
- package/dist/lib/mcp-example-oauth-setup.js +41 -0
- package/dist/lib/mcp-example-oauth-setup.js.map +1 -0
- package/dist/lib/mcp-example-permissions-rls.d.ts +9 -0
- package/dist/lib/mcp-example-permissions-rls.js +210 -0
- package/dist/lib/mcp-example-permissions-rls.js.map +1 -0
- package/dist/lib/mcp-example-queries-deep.d.ts +9 -0
- package/dist/lib/mcp-example-queries-deep.js +220 -0
- package/dist/lib/mcp-example-queries-deep.js.map +1 -0
- package/dist/lib/mcp-example-schema-relations.d.ts +9 -0
- package/dist/lib/mcp-example-schema-relations.js +148 -0
- package/dist/lib/mcp-example-schema-relations.js.map +1 -0
- package/dist/lib/mcp-example-websocket.d.ts +9 -0
- package/dist/lib/mcp-example-websocket.js +103 -0
- package/dist/lib/mcp-example-websocket.js.map +1 -0
- package/dist/lib/mcp-examples.d.ts +5 -5
- package/dist/lib/mcp-examples.js +22 -2394
- package/dist/lib/mcp-examples.js.map +1 -1
- package/dist/lib/method-tools.d.ts +4 -0
- package/dist/lib/method-tools.js +217 -0
- package/dist/lib/method-tools.js.map +1 -0
- package/dist/lib/package-tools.d.ts +4 -0
- package/dist/lib/package-tools.js +98 -0
- package/dist/lib/package-tools.js.map +1 -0
- package/dist/lib/platform-data-operations.d.ts +24 -0
- package/dist/lib/platform-data-operations.js +71 -0
- package/dist/lib/platform-data-operations.js.map +1 -0
- package/dist/lib/platform-endpoint-workflow.d.ts +42 -0
- package/dist/lib/platform-endpoint-workflow.js +382 -0
- package/dist/lib/platform-endpoint-workflow.js.map +1 -0
- package/dist/lib/platform-extension-source.d.ts +487 -0
- package/dist/lib/platform-extension-source.js +524 -0
- package/dist/lib/platform-extension-source.js.map +1 -0
- package/dist/lib/platform-extension-tools.d.ts +1 -0
- package/dist/lib/platform-extension-tools.js +416 -0
- package/dist/lib/platform-extension-tools.js.map +1 -0
- package/dist/lib/platform-extension-ui.d.ts +4 -0
- package/dist/lib/platform-extension-ui.js +5 -0
- package/dist/lib/platform-extension-ui.js.map +1 -0
- package/dist/lib/platform-extension-workflow.d.ts +54 -0
- package/dist/lib/platform-extension-workflow.js +194 -0
- package/dist/lib/platform-extension-workflow.js.map +1 -0
- package/dist/lib/platform-flow-operations.d.ts +554 -0
- package/dist/lib/platform-flow-operations.js +317 -0
- package/dist/lib/platform-flow-operations.js.map +1 -0
- package/dist/lib/platform-flow-tools.d.ts +1 -0
- package/dist/lib/platform-flow-tools.js +248 -0
- package/dist/lib/platform-flow-tools.js.map +1 -0
- package/dist/lib/platform-operation-logic.d.ts +10 -0
- package/dist/lib/platform-operation-logic.js +11 -0
- package/dist/lib/platform-operation-logic.js.map +1 -0
- package/dist/lib/platform-operation-tools.d.ts +1 -324
- package/dist/lib/platform-operation-tools.js +13 -4620
- package/dist/lib/platform-operation-tools.js.map +1 -1
- package/dist/lib/platform-operation-types.d.ts +46 -0
- package/dist/lib/platform-operation-types.js +2 -0
- package/dist/lib/platform-operation-types.js.map +1 -0
- package/dist/lib/platform-policy-tools.d.ts +1 -0
- package/dist/lib/platform-policy-tools.js +248 -0
- package/dist/lib/platform-policy-tools.js.map +1 -0
- package/dist/lib/platform-resource-operations.d.ts +124 -0
- package/dist/lib/platform-resource-operations.js +109 -0
- package/dist/lib/platform-resource-operations.js.map +1 -0
- package/dist/lib/platform-resource-tools.d.ts +1 -0
- package/dist/lib/platform-resource-tools.js +70 -0
- package/dist/lib/platform-resource-tools.js.map +1 -0
- package/dist/lib/platform-route-operations.d.ts +222 -0
- package/dist/lib/platform-route-operations.js +290 -0
- package/dist/lib/platform-route-operations.js.map +1 -0
- package/dist/lib/platform-route-tools.d.ts +1 -0
- package/dist/lib/platform-route-tools.js +307 -0
- package/dist/lib/platform-route-tools.js.map +1 -0
- package/dist/lib/platform-shared-operations.d.ts +7 -0
- package/dist/lib/platform-shared-operations.js +4 -0
- package/dist/lib/platform-shared-operations.js.map +1 -0
- package/dist/lib/platform-websocket-tools.d.ts +1 -0
- package/dist/lib/platform-websocket-tools.js +70 -0
- package/dist/lib/platform-websocket-tools.js.map +1 -0
- package/dist/lib/record-tools.d.ts +4 -0
- package/dist/lib/record-tools.js +418 -0
- package/dist/lib/record-tools.js.map +1 -0
- package/dist/lib/required-knowledge.d.ts +1 -1
- package/dist/lib/required-knowledge.js +3 -2
- package/dist/lib/required-knowledge.js.map +1 -1
- package/dist/lib/route-access-tools.d.ts +4 -0
- package/dist/lib/route-access-tools.js +172 -0
- package/dist/lib/route-access-tools.js.map +1 -0
- package/dist/lib/route-definition-tools.d.ts +4 -0
- package/dist/lib/route-definition-tools.js +285 -0
- package/dist/lib/route-definition-tools.js.map +1 -0
- package/dist/lib/route-inspection-tools.d.ts +4 -0
- package/dist/lib/route-inspection-tools.js +319 -0
- package/dist/lib/route-inspection-tools.js.map +1 -0
- package/dist/lib/route-tools.d.ts +1 -0
- package/dist/lib/route-tools.js +9 -0
- package/dist/lib/route-tools.js.map +1 -0
- package/dist/lib/runtime-zone-registry.d.ts +27 -0
- package/dist/lib/runtime-zone-registry.js +81 -0
- package/dist/lib/runtime-zone-registry.js.map +1 -0
- package/dist/lib/runtime-zone-search.d.ts +303 -0
- package/dist/lib/runtime-zone-search.js +596 -0
- package/dist/lib/runtime-zone-search.js.map +1 -0
- package/dist/lib/runtime-zone-tools.d.ts +2 -307
- package/dist/lib/runtime-zone-tools.js +2 -674
- package/dist/lib/runtime-zone-tools.js.map +1 -1
- package/dist/lib/schema-column-tools.d.ts +3 -0
- package/dist/lib/schema-column-tools.js +80 -0
- package/dist/lib/schema-column-tools.js.map +1 -0
- package/dist/lib/schema-mutation-coordinator.d.ts +28 -0
- package/dist/lib/schema-mutation-coordinator.js +154 -0
- package/dist/lib/schema-mutation-coordinator.js.map +1 -0
- package/dist/lib/schema-relation-contracts.d.ts +39 -0
- package/dist/lib/schema-relation-contracts.js +160 -0
- package/dist/lib/schema-relation-contracts.js.map +1 -0
- package/dist/lib/schema-relation-tools.d.ts +3 -0
- package/dist/lib/schema-relation-tools.js +61 -0
- package/dist/lib/schema-relation-tools.js.map +1 -0
- package/dist/lib/schema-table-contracts.d.ts +28 -0
- package/dist/lib/schema-table-contracts.js +263 -0
- package/dist/lib/schema-table-contracts.js.map +1 -0
- package/dist/lib/schema-table-tools.d.ts +3 -0
- package/dist/lib/schema-table-tools.js +297 -0
- package/dist/lib/schema-table-tools.js.map +1 -0
- package/dist/lib/schema-tool-operations.d.ts +150 -0
- package/dist/lib/schema-tool-operations.js +468 -0
- package/dist/lib/schema-tool-operations.js.map +1 -0
- package/dist/lib/schema-tool-types.d.ts +38 -0
- package/dist/lib/schema-tool-types.js +2 -0
- package/dist/lib/schema-tool-types.js.map +1 -0
- package/dist/lib/schema-verification.d.ts +14 -0
- package/dist/lib/schema-verification.js +105 -0
- package/dist/lib/schema-verification.js.map +1 -0
- package/dist/lib/script-tools.d.ts +4 -0
- package/dist/lib/script-tools.js +127 -0
- package/dist/lib/script-tools.js.map +1 -0
- package/dist/lib/system-tools.d.ts +4 -0
- package/dist/lib/system-tools.js +41 -0
- package/dist/lib/system-tools.js.map +1 -0
- package/dist/lib/table-tool-logic.d.ts +5 -0
- package/dist/lib/table-tool-logic.js +6 -0
- package/dist/lib/table-tool-logic.js.map +1 -0
- package/dist/lib/table-tools.d.ts +1 -84
- package/dist/lib/table-tools.js +7 -1522
- package/dist/lib/table-tools.js.map +1 -1
- package/dist/lib/tool-catalog.d.ts +2 -1
- package/dist/lib/tool-catalog.js +23 -2
- package/dist/lib/tool-catalog.js.map +1 -1
- package/dist/lib/tool-metadata-operations.d.ts +27 -0
- package/dist/lib/tool-metadata-operations.js +93 -0
- package/dist/lib/tool-metadata-operations.js.map +1 -0
- package/dist/lib/tool-permission-profile.d.ts +37 -0
- package/dist/lib/tool-permission-profile.js +106 -0
- package/dist/lib/tool-permission-profile.js.map +1 -0
- package/dist/lib/tool-record-operations.d.ts +102 -0
- package/dist/lib/tool-record-operations.js +260 -0
- package/dist/lib/tool-record-operations.js.map +1 -0
- package/dist/lib/tool-route-inspection.d.ts +47 -0
- package/dist/lib/tool-route-inspection.js +168 -0
- package/dist/lib/tool-route-inspection.js.map +1 -0
- package/dist/lib/tool-routing.d.ts +3 -417
- package/dist/lib/tool-routing.js +3 -1038
- package/dist/lib/tool-routing.js.map +1 -1
- package/dist/lib/tool-runtime-config.d.ts +33 -0
- package/dist/lib/tool-runtime-config.js +237 -0
- package/dist/lib/tool-runtime-config.js.map +1 -0
- package/dist/lib/tool-script-operations.d.ts +34 -0
- package/dist/lib/tool-script-operations.js +153 -0
- package/dist/lib/tool-script-operations.js.map +1 -0
- package/dist/lib/workflow-definitions.d.ts +366 -0
- package/dist/lib/workflow-definitions.js +703 -0
- package/dist/lib/workflow-definitions.js.map +1 -0
- package/dist/lib/workflow-planner.d.ts +45 -0
- package/dist/lib/workflow-planner.js +338 -0
- package/dist/lib/workflow-planner.js.map +1 -0
- package/dist/lib/workflow-types.d.ts +39 -0
- package/dist/lib/workflow-types.js +2 -0
- package/dist/lib/workflow-types.js.map +1 -0
- package/dist/mcp-server-entry.d.ts +0 -3
- package/dist/mcp-server-entry.js +2 -3249
- package/dist/mcp-server-entry.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export declare function buildDynamicScriptContextTypeContract(): {
|
|
2
|
+
authority: string;
|
|
3
|
+
aliases: string[];
|
|
4
|
+
values: {
|
|
5
|
+
'@BODY': {
|
|
6
|
+
type: string;
|
|
7
|
+
guarantee: string;
|
|
8
|
+
};
|
|
9
|
+
'@QUERY': {
|
|
10
|
+
type: string;
|
|
11
|
+
declaration: string;
|
|
12
|
+
guarantee: string;
|
|
13
|
+
};
|
|
14
|
+
'@PARAMS': {
|
|
15
|
+
type: string;
|
|
16
|
+
guarantee: string;
|
|
17
|
+
};
|
|
18
|
+
'@USER': {
|
|
19
|
+
type: string;
|
|
20
|
+
guarantee: string;
|
|
21
|
+
};
|
|
22
|
+
'@DATA': {
|
|
23
|
+
type: string;
|
|
24
|
+
guarantee: string;
|
|
25
|
+
};
|
|
26
|
+
'@STATUS': {
|
|
27
|
+
type: string;
|
|
28
|
+
guarantee: string;
|
|
29
|
+
};
|
|
30
|
+
'@ERROR': {
|
|
31
|
+
type: string;
|
|
32
|
+
declaration: string;
|
|
33
|
+
guarantee: string;
|
|
34
|
+
};
|
|
35
|
+
'@ENV': {
|
|
36
|
+
type: string;
|
|
37
|
+
guarantee: string;
|
|
38
|
+
};
|
|
39
|
+
'@SHARE': {
|
|
40
|
+
type: string;
|
|
41
|
+
guarantee: string;
|
|
42
|
+
};
|
|
43
|
+
'@REQ': {
|
|
44
|
+
type: string;
|
|
45
|
+
declaration: string[];
|
|
46
|
+
guarantee: string;
|
|
47
|
+
};
|
|
48
|
+
'@API': {
|
|
49
|
+
type: string;
|
|
50
|
+
declaration: string;
|
|
51
|
+
guarantee: string;
|
|
52
|
+
};
|
|
53
|
+
'@UPLOADED_FILE': {
|
|
54
|
+
type: string;
|
|
55
|
+
declaration: string;
|
|
56
|
+
guarantee: string;
|
|
57
|
+
};
|
|
58
|
+
'@FLOW': {
|
|
59
|
+
type: string;
|
|
60
|
+
declaration: string;
|
|
61
|
+
guarantee: string;
|
|
62
|
+
};
|
|
63
|
+
'@FLOW_PAYLOAD': {
|
|
64
|
+
type: string;
|
|
65
|
+
guarantee: string;
|
|
66
|
+
};
|
|
67
|
+
'@FLOW_LAST': {
|
|
68
|
+
type: string;
|
|
69
|
+
guarantee: string;
|
|
70
|
+
};
|
|
71
|
+
'@FLOW_META': {
|
|
72
|
+
type: string;
|
|
73
|
+
guarantee: string;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
repositories: {
|
|
77
|
+
declaration: string;
|
|
78
|
+
guarantee: string;
|
|
79
|
+
access: string;
|
|
80
|
+
};
|
|
81
|
+
services: {
|
|
82
|
+
'@HELPERS': string[];
|
|
83
|
+
'@CACHE': string[];
|
|
84
|
+
'@STORAGE': string[];
|
|
85
|
+
'@SOCKET': {
|
|
86
|
+
global: string;
|
|
87
|
+
bound: string;
|
|
88
|
+
};
|
|
89
|
+
'@RES': string;
|
|
90
|
+
'@TRIGGER': string;
|
|
91
|
+
'$ctx.$transaction': string;
|
|
92
|
+
'@LOGS': string;
|
|
93
|
+
'@THROW': string[];
|
|
94
|
+
'@PKGS': string;
|
|
95
|
+
};
|
|
96
|
+
bridge: {
|
|
97
|
+
async: string;
|
|
98
|
+
sync: string;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
export function buildDynamicScriptContextTypeContract() {
|
|
2
|
+
return {
|
|
3
|
+
authority: [
|
|
4
|
+
'These are script-visible types that the ESV and isolated executor runtime guarantee for the listed surface.',
|
|
5
|
+
'Do not add typeof, Array.isArray, existence, or callable guards around a documented container, service, method, or result envelope.',
|
|
6
|
+
'Validate user-controlled field values inside @BODY, @QUERY, and @PARAMS when the business contract requires it. Check documented nullable values such as @USER and @UPLOADED_FILE when the selected route can omit them. @DATA remains unknown for a custom handler result.',
|
|
7
|
+
].join(' '),
|
|
8
|
+
aliases: [
|
|
9
|
+
'type Id = string | number',
|
|
10
|
+
'type RuntimeRecord = Record<string, unknown>',
|
|
11
|
+
'type Filter = Record<string, unknown>',
|
|
12
|
+
'type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue }',
|
|
13
|
+
],
|
|
14
|
+
values: {
|
|
15
|
+
'@BODY': {
|
|
16
|
+
type: 'JsonValue',
|
|
17
|
+
guarantee: 'The surface payload, defaulting to {} when absent. Use the route, flow, or websocket input contract to access known fields directly; validate only business-level field constraints.',
|
|
18
|
+
},
|
|
19
|
+
'@QUERY': {
|
|
20
|
+
type: 'QueryContext',
|
|
21
|
+
declaration: 'type QueryContext = { filter: Filter; _filter: Filter; deep?: RuntimeRecord; _deep?: RuntimeRecord; aggregate?: RuntimeRecord; fields?: string | string[]; sort?: string | string[]; page?: string | number; limit?: string | number; meta?: string | string[]; debugMode?: string | boolean; [key: string]: unknown }',
|
|
22
|
+
guarantee: 'Always an object. For a valid parsed request, filter and _filter are objects and deep/_deep/aggregate are parsed objects. Other REST query values normally arrive as strings. Do not guard the @QUERY container; reject malformed serialized query input instead of silently normalizing its framework shape.',
|
|
23
|
+
},
|
|
24
|
+
'@PARAMS': {
|
|
25
|
+
type: 'Record<string, string>',
|
|
26
|
+
guarantee: 'Always an object, defaulting to {}. Declared route parameters are strings.',
|
|
27
|
+
},
|
|
28
|
+
'@USER': {
|
|
29
|
+
type: 'RuntimeRecord | null',
|
|
30
|
+
guarantee: 'The authenticated Enfyra user record, otherwise null. It is non-null after an authenticated route or websocket boundary; public routes and anonymously triggered flows must handle null when identity is required.',
|
|
31
|
+
},
|
|
32
|
+
'@DATA': {
|
|
33
|
+
type: 'unknown',
|
|
34
|
+
guarantee: 'In a post-hook this is the handler result. Canonical CRUD results use CollectionResult; custom handlers may return any JSON-serializable value.',
|
|
35
|
+
},
|
|
36
|
+
'@STATUS': {
|
|
37
|
+
type: 'number',
|
|
38
|
+
guarantee: 'Available in post-hooks and set to the current HTTP status, including error status on the handler error path.',
|
|
39
|
+
},
|
|
40
|
+
'@ERROR': {
|
|
41
|
+
type: 'DynamicScriptError | undefined',
|
|
42
|
+
declaration: 'type DynamicScriptError = { message: string; name: string; stack: string; statusCode: number; details: unknown; timestamp: string }',
|
|
43
|
+
guarantee: 'Defined in post-hooks only when the handler path failed.',
|
|
44
|
+
},
|
|
45
|
+
'@ENV': {
|
|
46
|
+
type: 'Record<string, string | undefined>',
|
|
47
|
+
guarantee: 'Always an object. ESV removes DB_URI, DB_REPLICA_URIS, REDIS_URI, SECRET_KEY, and ADMIN_PASSWORD.',
|
|
48
|
+
},
|
|
49
|
+
'@SHARE': {
|
|
50
|
+
type: '{ $logs: unknown[] }',
|
|
51
|
+
guarantee: 'Always an object with a $logs array for the current execution batch.',
|
|
52
|
+
},
|
|
53
|
+
'@REQ': {
|
|
54
|
+
type: 'HttpRequestContext | WebsocketRequestContext',
|
|
55
|
+
declaration: [
|
|
56
|
+
'type HttpRequestContext = { method: string; url: string; headers: Record<string, string | string[] | undefined>; query: QueryContext; params: Record<string, string>; ip: string | null; hostname: string; protocol: string; path: string; originalUrl: string; rawBody?: string }',
|
|
57
|
+
"type WebsocketRequestContext = { method: 'WS_CONNECT' | 'WS_EVENT' | 'WS_CONNECT_TEST' | 'WS_EVENT_TEST'; url: string; headers: RuntimeRecord; ip: string | null; user: RuntimeRecord | null }",
|
|
58
|
+
],
|
|
59
|
+
guarantee: 'Present in HTTP and websocket contexts; not part of the flow or OAuth provisioning surface.',
|
|
60
|
+
},
|
|
61
|
+
'@API': {
|
|
62
|
+
type: 'ApiExecutionContext',
|
|
63
|
+
declaration: 'type ApiExecutionContext = { request: { method: string; url: string; timestamp: string; correlationId?: string; userAgent?: string; ip?: string }; response?: { statusCode: number; responseTime: number; timestamp: string }; error?: DynamicScriptError }',
|
|
64
|
+
guarantee: 'Present in HTTP and websocket contexts. response/error are populated for post-hook completion and error handling.',
|
|
65
|
+
},
|
|
66
|
+
'@UPLOADED_FILE': {
|
|
67
|
+
type: 'UploadedFileInfo | undefined',
|
|
68
|
+
declaration: 'type UploadedFileInfo = { originalname: string; mimetype: string; encoding: string; path?: string; size: number; fieldname: string }',
|
|
69
|
+
guarantee: 'Defined only for a multipart request containing a file. It is disk-backed metadata; do not expect a buffer.',
|
|
70
|
+
},
|
|
71
|
+
'@FLOW': {
|
|
72
|
+
type: 'FlowContext',
|
|
73
|
+
declaration: 'type FlowContext = { $payload: JsonValue; $last: unknown; $meta: { flowId: Id; flowName: string; executionId: Id; depth: number; startedAt: string; currentStep?: string }; [stepKey: string]: unknown }',
|
|
74
|
+
guarantee: 'Present in flow steps. Each completed step key is assigned its result and $last is updated to that result.',
|
|
75
|
+
},
|
|
76
|
+
'@FLOW_PAYLOAD': {
|
|
77
|
+
type: 'JsonValue',
|
|
78
|
+
guarantee: 'Alias of @FLOW.$payload.',
|
|
79
|
+
},
|
|
80
|
+
'@FLOW_LAST': {
|
|
81
|
+
type: 'unknown',
|
|
82
|
+
guarantee: 'Alias of @FLOW.$last; null before the first completed step.',
|
|
83
|
+
},
|
|
84
|
+
'@FLOW_META': {
|
|
85
|
+
type: 'FlowContext["$meta"]',
|
|
86
|
+
guarantee: 'Alias of @FLOW.$meta.',
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
repositories: {
|
|
90
|
+
declaration: [
|
|
91
|
+
'type CollectionResult<T = RuntimeRecord> = { data: T[]; meta?: { totalCount?: number; filterCount?: number; aggregate?: unknown; [key: string]: unknown }; count?: number; [key: string]: unknown }',
|
|
92
|
+
'type RepositoryFindOptions = { filter?: Filter; fields?: string | string[]; limit?: number; sort?: string; meta?: string | string[]; aggregate?: RuntimeRecord; deep?: Record<string, RuntimeRecord> }',
|
|
93
|
+
'interface DynamicRepository { find(options?: RepositoryFindOptions): Promise<CollectionResult>; exists(filter?: Filter): Promise<boolean>; create(options: { data: RuntimeRecord | RuntimeRecord[]; fields?: string | string[]; batch?: boolean }): Promise<CollectionResult | { accepted: true; batch: true; count: number }>; update(options: { id: Id; data: RuntimeRecord; fields?: string | string[] }): Promise<CollectionResult>; delete(options: { id: Id }): Promise<{ message: string; statusCode: 200 }> }',
|
|
94
|
+
].join('\n'),
|
|
95
|
+
guarantee: 'find/create/update return CollectionResult in normal non-batch use and data is always an array. Never guard result.data with Array.isArray. Use result.data[0] after a proven match, or result.data?.[0] ?? null when zero rows is valid.',
|
|
96
|
+
access: '@REPOS.main is the secure current-route repository. @REPOS.secure.<table> and #secure.<table> are secure explicit repositories. @REPOS.<table> and #<table> are trusted explicit repositories.',
|
|
97
|
+
},
|
|
98
|
+
services: {
|
|
99
|
+
'@HELPERS': [
|
|
100
|
+
'$jwt(payload: RuntimeRecord, expiresIn: string): Promise<string> — HTTP and GraphQL only',
|
|
101
|
+
'$bcrypt.hash(plain: string): Promise<string>',
|
|
102
|
+
'$bcrypt.compare(plain: string, hash: string): Promise<boolean>',
|
|
103
|
+
'autoSlug(text: string): Promise<string>',
|
|
104
|
+
'$fetch(url: string, options?): Promise<unknown | string | ArrayBuffer>',
|
|
105
|
+
'$sleep(ms: number): Promise<void>',
|
|
106
|
+
'$crypto.randomUUID(): Promise<string>',
|
|
107
|
+
"$crypto.randomBytes(size?: number, encoding?: 'hex' | 'base64' | 'base64url'): Promise<string>",
|
|
108
|
+
"$crypto.sha256(value: string, encoding?: 'hex' | 'base64' | 'base64url'): Promise<string>",
|
|
109
|
+
"$crypto.hmacSha256(value: string, secret: string, encoding?: 'hex' | 'base64' | 'base64url'): Promise<string>",
|
|
110
|
+
'$crypto.generateSshKeyPair(comment?: string): Promise<{ publicKey: string; privateKey: string }>',
|
|
111
|
+
'$rateLimit.check/byIp/byUser/byRoute/byIpGlobal/byUserGlobal/status(...): Promise<{ allowed: boolean; remaining: number; resetAt: number; retryAfter: number; limit: number; window: number }> — HTTP dynamic routes only',
|
|
112
|
+
'$rateLimit.reset(key: string): Promise<void> — HTTP dynamic routes only',
|
|
113
|
+
],
|
|
114
|
+
'@CACHE': [
|
|
115
|
+
'acquire(key: string, value: unknown, ttlMs: number): Promise<boolean>',
|
|
116
|
+
'release(key: string, value: unknown): Promise<boolean>',
|
|
117
|
+
'get(key: string): Promise<unknown>',
|
|
118
|
+
'set(key: string, value: unknown, ttlMs: number): Promise<void>',
|
|
119
|
+
'exists(key: string, value: unknown): Promise<boolean>',
|
|
120
|
+
'deleteKey(key: string): Promise<void>',
|
|
121
|
+
'setNoExpire(key: string, value: unknown): Promise<void>',
|
|
122
|
+
],
|
|
123
|
+
'@STORAGE': [
|
|
124
|
+
'$upload(options: { file?: UploadedFileInfo; originalname?: string; filename?: string; mimetype?: string; buffer?: ArrayBuffer; size?: number; encoding?: string; folder?: Id | { id: Id }; storageConfig?: Id; title?: string; description?: string }): Promise<RuntimeRecord>',
|
|
125
|
+
'$update(fileId: Id, options: RuntimeRecord): Promise<RuntimeRecord>',
|
|
126
|
+
'$delete(fileId: Id): Promise<RuntimeRecord>',
|
|
127
|
+
'$registerFile(options: RuntimeRecord & { mimetype: string; location: string; storageConfig: Id | { id: Id } }): Promise<RuntimeRecord>',
|
|
128
|
+
],
|
|
129
|
+
'@SOCKET': {
|
|
130
|
+
global: 'HTTP/flow global socket: emitToUser(userId, event, data), emitToRoom(path, room, event, data), emitToGateway(path, event, data), broadcast(event, data) return Promise<void>; roomSize(room) returns Promise<number>.',
|
|
131
|
+
bound: 'The bound websocket socket also exposes reply(event, data), join(room), leave(room), emitToCurrentRoom(room, event, data), broadcastToRoom(room, event, data), and disconnect(), all returning Promise<void>.',
|
|
132
|
+
},
|
|
133
|
+
'@RES': 'HTTP handler only: stream(readable, options?): Promise<void>. The response stream starts asynchronously; return after awaiting it.',
|
|
134
|
+
'@TRIGGER': 'trigger(flowIdOrName: Id, payload?: JsonValue): Promise<{ jobId: string; flowId: Id } | { triggered: true; flowId: Id; flowName: string }>.',
|
|
135
|
+
'$ctx.$transaction': 'Raw-only $ctx.$transaction.run<T>(callback: () => Promise<T>): Promise<T>. Only repository operations participate in rollback.',
|
|
136
|
+
'@LOGS': 'Synchronous callable: (...values: unknown[]) => void. Prefer @LOGS(message, details?).',
|
|
137
|
+
'@THROW': [
|
|
138
|
+
'Every method returns never synchronously; do not await throw helpers.',
|
|
139
|
+
'http(statusCode: number, message: string, details?: unknown): never',
|
|
140
|
+
'businessLogic/validation/database/dbQuery/schema/fileUpload(message: string, details?: unknown): never',
|
|
141
|
+
'config(message: string, configKey?: string): never',
|
|
142
|
+
'notFound(resource: string, identifier?: string): never',
|
|
143
|
+
'duplicate(resource: string, field: string, value: string): never',
|
|
144
|
+
'unauthorized/forbidden(message?: string): never',
|
|
145
|
+
'tokenExpired/invalidToken(): never',
|
|
146
|
+
'externalService(service: string, message: string, details?: unknown): never',
|
|
147
|
+
'serviceUnavailable(service: string): never',
|
|
148
|
+
'rateLimit(limit: number, window: string): never',
|
|
149
|
+
'scriptError(message: string, scriptId?: string, details?: unknown): never',
|
|
150
|
+
'scriptTimeout(timeoutMs: number, scriptId?: string): never',
|
|
151
|
+
'fileNotFound(filePath: string): never',
|
|
152
|
+
'fileSizeExceeded(maxSize: string, actualSize: string): never',
|
|
153
|
+
"'400'/'404'/'409'/'422'/'429'/'500'/'503'(message: string, details?: unknown): never; '401'/'403'(message?: string): never",
|
|
154
|
+
],
|
|
155
|
+
'@PKGS': 'Record<string, package module>. Package calls may be async or thenable according to the installed package; await operations that produce values.',
|
|
156
|
+
},
|
|
157
|
+
bridge: {
|
|
158
|
+
async: 'In script code, calls through @REPOS, @HELPERS, @CACHE, @STORAGE, @SOCKET, @RES, and @TRIGGER cross the executor bridge and return promises. Await them.',
|
|
159
|
+
sync: '@LOGS and @THROW execute synchronously. Do not await them.',
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=dynamic-script-context-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-script-context-contract.js","sourceRoot":"","sources":["../../src/lib/dynamic-script-context-contract.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qCAAqC;IACnD,OAAO;QACL,SAAS,EAAE;YACT,6GAA6G;YAC7G,qIAAqI;YACrI,6QAA6Q;SAC9Q,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,OAAO,EAAE;YACP,2BAA2B;YAC3B,8CAA8C;YAC9C,uCAAuC;YACvC,gGAAgG;SACjG;QACD,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,sLAAsL;aAClM;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,wTAAwT;gBACrU,SAAS,EAAE,+SAA+S;aAC3T;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,4EAA4E;aACxF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,sBAAsB;gBAC5B,SAAS,EAAE,oNAAoN;aAChO;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,iJAAiJ;aAC7J;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,+GAA+G;aAC3H;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,gCAAgC;gBACtC,WAAW,EAAE,qIAAqI;gBAClJ,SAAS,EAAE,0DAA0D;aACtE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,oCAAoC;gBAC1C,SAAS,EAAE,mGAAmG;aAC/G;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,sBAAsB;gBAC5B,SAAS,EAAE,sEAAsE;aAClF;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,8CAA8C;gBACpD,WAAW,EAAE;oBACX,oRAAoR;oBACpR,gMAAgM;iBACjM;gBACD,SAAS,EAAE,6FAA6F;aACzG;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,6PAA6P;gBAC1Q,SAAS,EAAE,mHAAmH;aAC/H;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,8BAA8B;gBACpC,WAAW,EAAE,sIAAsI;gBACnJ,SAAS,EAAE,6GAA6G;aACzH;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,0MAA0M;gBACvN,SAAS,EAAE,4GAA4G;aACxH;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,0BAA0B;aACtC;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,6DAA6D;aACzE;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,sBAAsB;gBAC5B,SAAS,EAAE,uBAAuB;aACnC;SACF;QACD,YAAY,EAAE;YACZ,WAAW,EAAE;gBACX,qMAAqM;gBACrM,wMAAwM;gBACxM,ufAAuf;aACxf,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,2OAA2O;YACtP,MAAM,EAAE,gMAAgM;SACzM;QACD,QAAQ,EAAE;YACR,UAAU,EAAE;gBACV,0FAA0F;gBAC1F,8CAA8C;gBAC9C,gEAAgE;gBAChE,yCAAyC;gBACzC,wEAAwE;gBACxE,mCAAmC;gBACnC,uCAAuC;gBACvC,gGAAgG;gBAChG,2FAA2F;gBAC3F,+GAA+G;gBAC/G,kGAAkG;gBAClG,2NAA2N;gBAC3N,yEAAyE;aAC1E;YACD,QAAQ,EAAE;gBACR,uEAAuE;gBACvE,wDAAwD;gBACxD,oCAAoC;gBACpC,gEAAgE;gBAChE,uDAAuD;gBACvD,uCAAuC;gBACvC,yDAAyD;aAC1D;YACD,UAAU,EAAE;gBACV,gRAAgR;gBAChR,qEAAqE;gBACrE,6CAA6C;gBAC7C,wIAAwI;aACzI;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,uNAAuN;gBAC/N,KAAK,EAAE,+MAA+M;aACvN;YACD,MAAM,EAAE,oIAAoI;YAC5I,UAAU,EAAE,6IAA6I;YACzJ,mBAAmB,EAAE,gIAAgI;YACrJ,OAAO,EAAE,wFAAwF;YACjG,QAAQ,EAAE;gBACR,uEAAuE;gBACvE,qEAAqE;gBACrE,wGAAwG;gBACxG,oDAAoD;gBACpD,wDAAwD;gBACxD,kEAAkE;gBAClE,iDAAiD;gBACjD,oCAAoC;gBACpC,6EAA6E;gBAC7E,4CAA4C;gBAC5C,iDAAiD;gBACjD,2EAA2E;gBAC3E,4DAA4D;gBAC5D,uCAAuC;gBACvC,8DAA8D;gBAC9D,4HAA4H;aAC7H;YACD,OAAO,EAAE,kJAAkJ;SAC5J;QACD,MAAM,EAAE;YACN,KAAK,EAAE,0JAA0J;YACjK,IAAI,EAAE,4DAA4D;SACnE;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
+
import { initAuth } from './auth.js';
|
|
4
|
+
import { registerDynamicRepositoryBuilder } from './dynamic-repository-builder.js';
|
|
5
|
+
import { ENFYRA_API_TOKEN, ENFYRA_API_URL, MCP_DYNAMIC_TOOLS, MCP_PROFILE, MCP_TOOLSET, resolveCatalogToolAvailability, } from './enfyra-tool-logic.js';
|
|
6
|
+
import { registerDiscoveryTools } from './discovery-tools.js';
|
|
7
|
+
import { registerIdentityTools } from './identity-tools.js';
|
|
8
|
+
import { registerLogTools } from './log-tools.js';
|
|
9
|
+
import { buildMcpServerInstructions } from './mcp-instructions.js';
|
|
10
|
+
import { startMcpUsageTelemetry } from './mcp-usage-telemetry.js';
|
|
11
|
+
import { registerMethodTools } from './method-tools.js';
|
|
12
|
+
import { registerOAuthProviderTools } from './oauth-tools.js';
|
|
13
|
+
import { registerPackageTools } from './package-tools.js';
|
|
14
|
+
import { registerPlatformOperationTools } from './platform-operation-tools.js';
|
|
15
|
+
import { registerRecordTools } from './record-tools.js';
|
|
16
|
+
import { installColumnarToolFormatter } from './response-format.js';
|
|
17
|
+
import { registerRouteTools } from './route-tools.js';
|
|
18
|
+
import { startRuntimeCacheSocket } from './runtime-cache-socket.js';
|
|
19
|
+
import { registerRuntimeZoneTools } from './runtime-zone-tools.js';
|
|
20
|
+
import { registerScriptTools } from './script-tools.js';
|
|
21
|
+
import { readSourceArtifactResource } from './source-artifacts.js';
|
|
22
|
+
import { registerSystemTools } from './system-tools.js';
|
|
23
|
+
import { registerTableTools } from './table-tools.js';
|
|
24
|
+
import { registerToolCatalogTools } from './tool-catalog.js';
|
|
25
|
+
import { installToolAnnotations } from './tool-contracts.js';
|
|
26
|
+
import { installToolOutputContracts } from './tool-output-contracts.js';
|
|
27
|
+
import { installToolsetFilter, summarizeToolsetForInstructions, } from './toolset-filter.js';
|
|
28
|
+
import { registerWorkflowToolPack } from './workflow-tool-packs.js';
|
|
29
|
+
export function createEnfyraMcpServer() {
|
|
30
|
+
initAuth(ENFYRA_API_URL, ENFYRA_API_TOKEN);
|
|
31
|
+
const server = new McpServer({
|
|
32
|
+
name: 'enfyra-mcp',
|
|
33
|
+
version: '1.0.0',
|
|
34
|
+
}, {
|
|
35
|
+
instructions: buildMcpServerInstructions(ENFYRA_API_URL, {
|
|
36
|
+
toolsetSummary: summarizeToolsetForInstructions(MCP_TOOLSET, MCP_PROFILE, MCP_DYNAMIC_TOOLS),
|
|
37
|
+
}),
|
|
38
|
+
});
|
|
39
|
+
installToolOutputContracts(server);
|
|
40
|
+
installColumnarToolFormatter(server);
|
|
41
|
+
const toolsetState = installToolsetFilter(server, MCP_TOOLSET, MCP_PROFILE, { dynamic: MCP_DYNAMIC_TOOLS });
|
|
42
|
+
installToolAnnotations(server);
|
|
43
|
+
startMcpUsageTelemetry(ENFYRA_API_URL, `${MCP_TOOLSET}:${MCP_PROFILE}`);
|
|
44
|
+
server.registerResource('enfyra-source-artifact', new ResourceTemplate('enfyra-source://artifact/{artifactId}', { list: undefined }), {
|
|
45
|
+
title: 'Enfyra source artifact',
|
|
46
|
+
description: 'Process-scoped source or diff artifact created by an Enfyra MCP inspect or preview tool.',
|
|
47
|
+
mimeType: 'text/plain',
|
|
48
|
+
}, async (uri) => ({ contents: [readSourceArtifactResource(uri.href)] }));
|
|
49
|
+
registerDiscoveryTools(server, ENFYRA_API_URL);
|
|
50
|
+
registerRecordTools(server, ENFYRA_API_URL);
|
|
51
|
+
registerScriptTools(server, ENFYRA_API_URL);
|
|
52
|
+
registerMethodTools(server, ENFYRA_API_URL);
|
|
53
|
+
registerRouteTools(server, ENFYRA_API_URL);
|
|
54
|
+
registerTableTools(server, ENFYRA_API_URL, { toolset: MCP_TOOLSET });
|
|
55
|
+
registerPlatformOperationTools(server, ENFYRA_API_URL);
|
|
56
|
+
registerRuntimeZoneTools(server, ENFYRA_API_URL);
|
|
57
|
+
registerOAuthProviderTools(server, ENFYRA_API_URL);
|
|
58
|
+
registerDynamicRepositoryBuilder(server);
|
|
59
|
+
registerSystemTools(server, ENFYRA_API_URL);
|
|
60
|
+
registerLogTools(server, ENFYRA_API_URL);
|
|
61
|
+
registerIdentityTools(server, ENFYRA_API_URL);
|
|
62
|
+
registerPackageTools(server, ENFYRA_API_URL);
|
|
63
|
+
registerToolCatalogTools(server, toolsetState, {
|
|
64
|
+
resolveAvailability: resolveCatalogToolAvailability,
|
|
65
|
+
});
|
|
66
|
+
registerWorkflowToolPack(server, toolsetState);
|
|
67
|
+
return server;
|
|
68
|
+
}
|
|
69
|
+
export async function runEnfyraMcpServer() {
|
|
70
|
+
console.error('Starting Enfyra MCP Server...');
|
|
71
|
+
console.error(`API URL: ${ENFYRA_API_URL}`);
|
|
72
|
+
console.error(`Auth: ${ENFYRA_API_TOKEN ? 'API token configured' : 'Not configured'}`);
|
|
73
|
+
const server = createEnfyraMcpServer();
|
|
74
|
+
const transport = new StdioServerTransport();
|
|
75
|
+
await server.connect(transport);
|
|
76
|
+
startRuntimeCacheSocket(ENFYRA_API_URL);
|
|
77
|
+
console.error('Enfyra MCP Server running on stdio');
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=enfyra-mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enfyra-mcp-server.js","sourceRoot":"","sources":["../../src/lib/enfyra-mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './tool-runtime-config.js';
|
|
2
|
+
export * from './tool-metadata-operations.js';
|
|
3
|
+
export * from './tool-permission-profile.js';
|
|
4
|
+
export * from './tool-record-operations.js';
|
|
5
|
+
export * from './tool-script-operations.js';
|
|
6
|
+
export * from './tool-route-inspection.js';
|
|
7
|
+
export * from './enfyra-tool-types.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './tool-runtime-config.js';
|
|
2
|
+
export * from './tool-metadata-operations.js';
|
|
3
|
+
export * from './tool-permission-profile.js';
|
|
4
|
+
export * from './tool-record-operations.js';
|
|
5
|
+
export * from './tool-script-operations.js';
|
|
6
|
+
export * from './tool-route-inspection.js';
|
|
7
|
+
export * from './enfyra-tool-types.js';
|
|
8
|
+
//# sourceMappingURL=enfyra-tool-logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enfyra-tool-logic.js","sourceRoot":"","sources":["../../src/lib/enfyra-tool-logic.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type AnyRecord = Record<string, any>;
|
|
2
|
+
export type MethodPatchBody = {
|
|
3
|
+
buttonColor?: string;
|
|
4
|
+
textColor?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
};
|
|
7
|
+
export type RouteCreateBody = {
|
|
8
|
+
path: string;
|
|
9
|
+
isEnabled: boolean;
|
|
10
|
+
description: string;
|
|
11
|
+
availableMethods: any;
|
|
12
|
+
mainTable?: {
|
|
13
|
+
id: any;
|
|
14
|
+
};
|
|
15
|
+
publicMethods?: any;
|
|
16
|
+
};
|
|
17
|
+
export type RouteHandlerBody = {
|
|
18
|
+
route: {
|
|
19
|
+
id: string | number;
|
|
20
|
+
};
|
|
21
|
+
method: {
|
|
22
|
+
id: any;
|
|
23
|
+
};
|
|
24
|
+
sourceCode: string;
|
|
25
|
+
scriptLanguage: 'javascript' | 'typescript';
|
|
26
|
+
timeout?: number;
|
|
27
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enfyra-tool-types.js","sourceRoot":"","sources":["../../src/lib/enfyra-tool-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AnyRecord } from './platform-shared-operations.js';
|
|
2
|
+
export declare function buildExtensionApiUsageSnippet(input?: AnyRecord): {
|
|
3
|
+
action: string;
|
|
4
|
+
operation: string;
|
|
5
|
+
snippet: string;
|
|
6
|
+
contract: string[];
|
|
7
|
+
};
|
|
8
|
+
export declare function buildExtensionNotifySnippet(input?: AnyRecord): {
|
|
9
|
+
action: string;
|
|
10
|
+
snippet: string;
|
|
11
|
+
contract: string[];
|
|
12
|
+
};
|
|
13
|
+
export declare function buildExtensionConfirmSnippet(input?: AnyRecord): {
|
|
14
|
+
action: string;
|
|
15
|
+
snippet: string;
|
|
16
|
+
contract: string[];
|
|
17
|
+
};
|