n8n-nodes-academyfive-api-beta 0.0.1-beta
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/LICENSE.md +19 -0
- package/README.md +9 -0
- package/dist/credentials/AcademyFiveCredentialsApi.credentials.d.ts +10 -0
- package/dist/credentials/AcademyFiveCredentialsApi.credentials.js +53 -0
- package/dist/credentials/AcademyFiveCredentialsApi.credentials.js.map +1 -0
- package/dist/credentials/simovative.svg +5 -0
- package/dist/nodes/AcademyFive/AcademyFive.node.d.ts +10 -0
- package/dist/nodes/AcademyFive/AcademyFive.node.js +184 -0
- package/dist/nodes/AcademyFive/AcademyFive.node.js.map +1 -0
- package/dist/nodes/AcademyFive/AcademyFive.node.json +6 -0
- package/dist/nodes/AcademyFive/MapToRequestUtils.d.ts +24 -0
- package/dist/nodes/AcademyFive/MapToRequestUtils.js +245 -0
- package/dist/nodes/AcademyFive/MapToRequestUtils.js.map +1 -0
- package/dist/nodes/AcademyFive/NodeConfigUtils.d.ts +5 -0
- package/dist/nodes/AcademyFive/NodeConfigUtils.js +50 -0
- package/dist/nodes/AcademyFive/NodeConfigUtils.js.map +1 -0
- package/dist/nodes/AcademyFive/SchemaResolver.d.ts +12 -0
- package/dist/nodes/AcademyFive/SchemaResolver.js +205 -0
- package/dist/nodes/AcademyFive/SchemaResolver.js.map +1 -0
- package/dist/nodes/AcademyFive/SpecGeneratorUtils.d.ts +11 -0
- package/dist/nodes/AcademyFive/SpecGeneratorUtils.js +106 -0
- package/dist/nodes/AcademyFive/SpecGeneratorUtils.js.map +1 -0
- package/dist/nodes/AcademyFive/SpecMapper.d.ts +61 -0
- package/dist/nodes/AcademyFive/SpecMapper.js +385 -0
- package/dist/nodes/AcademyFive/SpecMapper.js.map +1 -0
- package/dist/nodes/AcademyFive/simovative.svg +5 -0
- package/dist/nodes/AcademyFive/types.d.ts +34 -0
- package/dist/nodes/AcademyFive/types.js +19 -0
- package/dist/nodes/AcademyFive/types.js.map +1 -0
- package/dist/package.json +66 -0
- package/dist/specs/ac5.json +1 -0
- package/dist/specs/schemas/src/Api/AccessGroups/Schema/AccessGroupsGetPaginatedSchema.json +94 -0
- package/dist/specs/schemas/src/Api/AccessGroups/Schema/AccessGroupsGetSchema.json +66 -0
- package/dist/specs/schemas/src/Api/Bookings/Handler/BookingsPatchSchema.json +150 -0
- package/dist/specs/schemas/src/Api/Bookings/StatisticAustria/Handler/BookingStatisticAustriaPatchSchema.json +111 -0
- package/dist/specs/schemas/src/Api/Bookings/StatisticAustria/Handler/BookingStatisticAustriaPostSchema.json +113 -0
- package/dist/specs/schemas/src/Api/Cohorts/Schema/CohortsGetPaginatedSchema.json +83 -0
- package/dist/specs/schemas/src/Api/Colors/Schema/ColorsListGetSchema.json +50 -0
- package/dist/specs/schemas/src/Api/Common/Model/Validation/ValidationErrorSchema.json +29 -0
- package/dist/specs/schemas/src/Api/Company/Handler/CompanyPostSchema.json +77 -0
- package/dist/specs/schemas/src/Api/Company/Handler/CompanyPutSchema.json +84 -0
- package/dist/specs/schemas/src/Api/CourseSeriesLecturer/Handler/CourseSeriesLecturerPostSchema.json +113 -0
- package/dist/specs/schemas/src/Api/CourseTicket/Handler/CourseTicketsPostV2Schema.json +162 -0
- package/dist/specs/schemas/src/Api/DataSourceAreas/Handler/DataSourceAreasPatchSchema.json +84 -0
- package/dist/specs/schemas/src/Api/DataSourceAreas/Handler/DataSourceAreasPostSchema.json +151 -0
- package/dist/specs/schemas/src/Api/DataSourceFieldOptionGroupRestrictions/Handler/DataSourceFieldOptionGroupRestrictionsPatchSchema.json +107 -0
- package/dist/specs/schemas/src/Api/DataSourceFieldOptionGroupRestrictions/Handler/DataSourceFieldOptionGroupRestrictionsPostSchema.json +107 -0
- package/dist/specs/schemas/src/Api/DataSourceFieldOptionGroups/Handler/DataSourceFieldOptionGroupsPatchSchema.json +88 -0
- package/dist/specs/schemas/src/Api/DataSourceFieldOptionGroups/Handler/DataSourceFieldOptionGroupsPostSchema.json +89 -0
- package/dist/specs/schemas/src/Api/DataSourceFieldOptionValues/Handler/DataSourceFieldOptionValuesPatchSchema.json +54 -0
- package/dist/specs/schemas/src/Api/DataSourceFieldOptionValues/Handler/DataSourceFieldOptionValuesPostSchema.json +87 -0
- package/dist/specs/schemas/src/Api/DataSourceFields/Handler/DataSourceFieldsPatchSchema.json +242 -0
- package/dist/specs/schemas/src/Api/DataSourceFields/Handler/DataSourceFieldsPostSchema.json +357 -0
- package/dist/specs/schemas/src/Api/DataSourceRecords/Handler/DataSourceRecordsDeleteSchema.json +16 -0
- package/dist/specs/schemas/src/Api/DataSourceRecords/Handler/DataSourceRecordsPutBulkSchema.json +42 -0
- package/dist/specs/schemas/src/Api/DataSourceTabs/Handler/DataSourceTabsPostSchema.json +85 -0
- package/dist/specs/schemas/src/Api/DataSources/Handler/DataSourcesPostSchema.json +61 -0
- package/dist/specs/schemas/src/Api/Documents/Handler/DocumentsPostSchema.json +61 -0
- package/dist/specs/schemas/src/Api/EventSeries/Handler/EventDatePatchSchema.json +159 -0
- package/dist/specs/schemas/src/Api/EventSeries/Handler/EventDatePostSchema.json +335 -0
- package/dist/specs/schemas/src/Api/EventSeries/Handler/EventSeriesCustomPatchSchema.json +837 -0
- package/dist/specs/schemas/src/Api/EventSeries/Handler/EventSeriesCustomPostSchema.json +288 -0
- package/dist/specs/schemas/src/Api/EventSeries/Handler/EventSeriesPostSchema.json +514 -0
- package/dist/specs/schemas/src/Api/GkvPendingMessages/Handler/GkvPendingMessagesPatchBulkSchema.json +64 -0
- package/dist/specs/schemas/src/Api/GkvPendingMessages/Handler/GkvPendingMessagesPatchSchema.json +120 -0
- package/dist/specs/schemas/src/Api/GkvPendingMessages/Handler/GkvPendingMessagesPostSchema.json +117 -0
- package/dist/specs/schemas/src/Api/GkvPendingMessages/Handler/GkvPendingMessagesSelectProfileSchema.json +47 -0
- package/dist/specs/schemas/src/Api/GlobalFileSyncs/Handler/GlobalFileSyncsPatchSchema.json +63 -0
- package/dist/specs/schemas/src/Api/GradeAnnotation/Handler/GradeAnnotationPostSchema.json +98 -0
- package/dist/specs/schemas/src/Api/GradeAnnotation/Handler/GradeAnnotationPutSchema.json +105 -0
- package/dist/specs/schemas/src/Api/Grades/GradeAnnotationRelations/Handler/GradeAnnotationRelationsPostSchema.json +102 -0
- package/dist/specs/schemas/src/Api/Grades/ModuleGradeRecalculation/Schema/ModuleGradeRecalculationJobsGetSchema.json +89 -0
- package/dist/specs/schemas/src/Api/Grades/ModuleGradeRecalculation/Schema/ModuleGradeRecalculationJobsPostSchema.json +54 -0
- package/dist/specs/schemas/src/Api/Grades/Schema/GradesAttributeSchema.json +400 -0
- package/dist/specs/schemas/src/Api/Grades/Schema/GradesGetSchema.json +108 -0
- package/dist/specs/schemas/src/Api/Grades/Schema/GradesPatchSchema.json +112 -0
- package/dist/specs/schemas/src/Api/Grades/Schema/GradesPostSchema.json +950 -0
- package/dist/specs/schemas/src/Api/Grades/Schema/GradesRelationshipSchema.json +547 -0
- package/dist/specs/schemas/src/Api/HealthInsuranceInstitutes/Handler/HealthInsuranceInstitutesPatchSchema.json +71 -0
- package/dist/specs/schemas/src/Api/HealthInsuranceInstitutes/Handler/HealthInsuranceInstitutesPostSchema.json +73 -0
- package/dist/specs/schemas/src/Api/HealthInsuranceProfile/Handler/HealthInsuranceProfilePatchSchema.json +83 -0
- package/dist/specs/schemas/src/Api/HealthInsuranceProfile/Handler/HealthInsuranceProfilePostSchema.json +38 -0
- package/dist/specs/schemas/src/Api/HealthInsuranceProfileCommunicationLog/Handler/HealthInsuranceProfileCommunicationLogPatchSchema.json +101 -0
- package/dist/specs/schemas/src/Api/HealthInsuranceProfileCommunicationLog/Handler/HealthInsuranceProfileCommunicationLogPostSchema.json +99 -0
- package/dist/specs/schemas/src/Api/Icons/Schema/IconsListGetSchema.json +50 -0
- package/dist/specs/schemas/src/Api/InvoiceCollections/Handler/InvoiceCollectionsFromInstallmentsPostSchema.json +49 -0
- package/dist/specs/schemas/src/Api/InvoiceQueueEntries/Handler/InvoiceQueueEntriesPostSchema.json +49 -0
- package/dist/specs/schemas/src/Api/Invoices/Handler/InvoicesPostSchema.json +182 -0
- package/dist/specs/schemas/src/Api/Invoices/Handler/InvoicesStatusChangePostSchema.json +55 -0
- package/dist/specs/schemas/src/Api/LecturerContractEmploymentAvailabilities/Handler/LecturerContractEmploymentAvailabilitiesPatchSchema.json +87 -0
- package/dist/specs/schemas/src/Api/LecturerContractEmploymentAvailabilities/Handler/LecturerContractEmploymentAvailabilitiesPostSchema.json +84 -0
- package/dist/specs/schemas/src/Api/LecturerContractEmployments/Handler/LecturerContractEmploymentsPatchSchema.json +103 -0
- package/dist/specs/schemas/src/Api/LecturerContractEmployments/Handler/LecturerContractEmploymentsPostSchema.json +153 -0
- package/dist/specs/schemas/src/Api/LecturerContracts/Handler/LecturerContractsPatchSchema.json +154 -0
- package/dist/specs/schemas/src/Api/LecturerContracts/Handler/LecturerContractsPostSchema.json +215 -0
- package/dist/specs/schemas/src/Api/OnlineExamEnrolments/Handler/OnlineExamEnrolmentsPostSchema.json +180 -0
- package/dist/specs/schemas/src/Api/Payment/Command/PaymentAddCommandSchema.json +51 -0
- package/dist/specs/schemas/src/Api/ProfessionalBackground/Handler/ProfessionalBackgroundPostSchema.json +104 -0
- package/dist/specs/schemas/src/Api/ProfessionalBackground/Handler/ProfessionalBackgroundPutSchema.json +113 -0
- package/dist/specs/schemas/src/Api/ProfileBankDetails/Handler/ProfileBankDetailsPatchSchema.json +56 -0
- package/dist/specs/schemas/src/Api/ProfileBankDetails/Handler/ProfileBankDetailsPostSchema.json +56 -0
- package/dist/specs/schemas/src/Api/Profiles/Handler/ProfilesPatchSchema.json +45 -0
- package/dist/specs/schemas/src/Api/Profiles/Schema/ProfilesGetSchema.json +0 -0
- package/dist/specs/schemas/src/Api/RequestFormProfileComments/Schema/RequestFormProfileCommentsPostSchema.json +98 -0
- package/dist/specs/schemas/src/Api/RequestFormProfiles/Schema/RequestFromProfilesPatchSchema.json +45 -0
- package/dist/specs/schemas/src/Api/RevenueAccounts/Handler/RevenueAccountsPatchSchema.json +151 -0
- package/dist/specs/schemas/src/Api/RevenueAccounts/Handler/RevenueAccountsPostSchema.json +151 -0
- package/dist/specs/schemas/src/Api/StatisticAustria/Handler/StatisticAustriaPatchSchema.json +115 -0
- package/dist/specs/schemas/src/Api/StatisticAustria/Handler/StatisticAustriaPostSchema.json +115 -0
- package/dist/specs/schemas/src/Api/StatisticValidations/Handler/StatisticValidationsPostSchema.json +37 -0
- package/dist/specs/schemas/src/Api/Submissions/StatusChange/Handler/SubmissionsStatusChangePostSchema.json +42 -0
- package/dist/specs/schemas/src/Api/TaskTypes/Schema/TaskTypesGetSchema.json +213 -0
- package/dist/specs/schemas/src/Api/TaskTypes/Schema/TaskTypesPatchSchema.json +195 -0
- package/dist/specs/schemas/src/Api/TaskTypes/Schema/TaskTypesPostSchema.json +208 -0
- package/dist/specs/schemas/src/Api/TranslationPlaceholders/Schema/TranslationPlaceholdersGetSchema.json +57 -0
- package/dist/specs/schemas/src/Api/ZensusSettings/Handler/ZensusSettingsPatchSchema.json +176 -0
- package/dist/specs/schemas/src/Api/ZensusSettings/Handler/ZensusSettingsPostSchema.json +170 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/index.js +0 -0
- package/package.json +66 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeConfigUtils = void 0;
|
|
4
|
+
class NodeConfigUtils {
|
|
5
|
+
static getBasicDescription() {
|
|
6
|
+
return {
|
|
7
|
+
displayName: 'academyFIVE API',
|
|
8
|
+
name: 'academyFive',
|
|
9
|
+
icon: { light: 'file:simovative.svg', dark: 'file:simovative.svg' },
|
|
10
|
+
group: ['transform'],
|
|
11
|
+
version: 1,
|
|
12
|
+
subtitle: 'Loading...',
|
|
13
|
+
description: 'Academy Five API Node',
|
|
14
|
+
defaults: {
|
|
15
|
+
name: 'Academy Five',
|
|
16
|
+
},
|
|
17
|
+
inputs: ["main"],
|
|
18
|
+
outputs: ["main"],
|
|
19
|
+
usableAsTool: true,
|
|
20
|
+
credentials: [
|
|
21
|
+
{
|
|
22
|
+
name: 'academyFiveCredentialsApi',
|
|
23
|
+
required: false,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
requestDefaults: {
|
|
27
|
+
baseURL: process.env.ACADEMY_FIVE_BASE_URL || 'http://localhost:8080',
|
|
28
|
+
url: '',
|
|
29
|
+
headers: {
|
|
30
|
+
Accept: 'application/json',
|
|
31
|
+
'Content-Type': 'application/json',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
properties: this.getFallbackProperties(),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
static getFallbackProperties() {
|
|
38
|
+
return [
|
|
39
|
+
{
|
|
40
|
+
displayName: 'Error Loading Spec',
|
|
41
|
+
name: 'error',
|
|
42
|
+
type: 'notice',
|
|
43
|
+
default: '',
|
|
44
|
+
description: 'Could not load OpenAPI specification',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.NodeConfigUtils = NodeConfigUtils;
|
|
50
|
+
//# sourceMappingURL=NodeConfigUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeConfigUtils.js","sourceRoot":"","sources":["../../../nodes/AcademyFive/NodeConfigUtils.ts"],"names":[],"mappings":";;;AAGA,MAAa,eAAe;IAC3B,MAAM,CAAC,mBAAmB;QACzB,OAAO;YACN,WAAW,EAAE,iBAAiB;YAC9B,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACnE,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,YAAY;YACtB,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE;gBACT,IAAI,EAAE,cAAc;aACpB;YACD,MAAM,EAAE,QAAyB;YACjC,OAAO,EAAE,QAAyB;YAClC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,2BAA2B;oBACjC,QAAQ,EAAE,KAAK;iBACf;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,uBAAuB;gBACrE,GAAG,EAAE,EAAE;gBACP,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE;SACxC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,qBAAqB;QAC3B,OAAO;YACN;gBACC,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,sCAAsC;aACnD;SACD,CAAC;IACH,CAAC;CACD;AA7CD,0CA6CC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OpenAPIObject, ReferenceObject, SchemaObject } from 'openapi3-ts/oas30';
|
|
2
|
+
export declare class SchemaResolver {
|
|
3
|
+
static resolveSchema(schema: SchemaObject | ReferenceObject, spec: OpenAPIObject, baseFilePath?: string): SchemaObject;
|
|
4
|
+
private static resolveAllOf;
|
|
5
|
+
private static resolveAnyOf;
|
|
6
|
+
private static stripRequiredDeep;
|
|
7
|
+
private static resolveOneOf;
|
|
8
|
+
private static resolveRef;
|
|
9
|
+
static getExternalSchema(cleanPath: string): SchemaObject;
|
|
10
|
+
static resolveJsonPointer(doc: any, pointer: string): any;
|
|
11
|
+
private static mergeSchemas;
|
|
12
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SchemaResolver = void 0;
|
|
7
|
+
const types_1 = require("./types");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
11
|
+
const SpecMapper_1 = require("./SpecMapper");
|
|
12
|
+
class SchemaResolver {
|
|
13
|
+
static resolveSchema(schema, spec, baseFilePath) {
|
|
14
|
+
if (!schema) {
|
|
15
|
+
return {};
|
|
16
|
+
}
|
|
17
|
+
if ((0, types_1.isReferenceObject)(schema)) {
|
|
18
|
+
const { schema: resolved, baseFilePath: newBase } = this.resolveRef(schema.$ref, spec, baseFilePath);
|
|
19
|
+
return this.resolveSchema(resolved, spec, newBase !== null && newBase !== void 0 ? newBase : baseFilePath);
|
|
20
|
+
}
|
|
21
|
+
let result = { ...schema };
|
|
22
|
+
result = this.resolveAllOf(result, spec, baseFilePath);
|
|
23
|
+
result = this.resolveAnyOf(result, spec, baseFilePath);
|
|
24
|
+
result = this.resolveOneOf(result, spec, baseFilePath);
|
|
25
|
+
if (result.properties) {
|
|
26
|
+
const newProps = {};
|
|
27
|
+
for (const [k, v] of Object.entries(result.properties)) {
|
|
28
|
+
newProps[k] = this.resolveSchema(v, spec, baseFilePath);
|
|
29
|
+
}
|
|
30
|
+
result.properties = newProps;
|
|
31
|
+
}
|
|
32
|
+
if (result.items && typeof result.items === 'object') {
|
|
33
|
+
result.items = this.resolveSchema(result.items, spec, baseFilePath);
|
|
34
|
+
}
|
|
35
|
+
if (!result.type && result.properties) {
|
|
36
|
+
result.type = 'object';
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
static resolveAllOf(result, spec, baseFilePath) {
|
|
41
|
+
const allOf = result.allOf;
|
|
42
|
+
if (!Array.isArray(allOf) || allOf.length === 0) {
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
let merged = {};
|
|
46
|
+
for (const part of allOf) {
|
|
47
|
+
const resolvedPart = this.resolveSchema(part, spec, baseFilePath);
|
|
48
|
+
merged = this.mergeSchemas(merged, resolvedPart);
|
|
49
|
+
}
|
|
50
|
+
const { allOf: _, ...rest } = result;
|
|
51
|
+
merged = this.mergeSchemas(merged, rest);
|
|
52
|
+
return merged;
|
|
53
|
+
}
|
|
54
|
+
static resolveAnyOf(result, spec, baseFilePath) {
|
|
55
|
+
const anyOf = result.anyOf;
|
|
56
|
+
if (!Array.isArray(anyOf) || anyOf.length === 0) {
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
let merged = {};
|
|
60
|
+
for (const part of anyOf) {
|
|
61
|
+
const resolvedPart = this.resolveSchema(part, spec, baseFilePath);
|
|
62
|
+
if (resolvedPart.type !== 'null') {
|
|
63
|
+
const stripped = this.stripRequiredDeep(resolvedPart);
|
|
64
|
+
merged = this.mergeSchemas(merged, stripped);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const { anyOf: _, ...rest } = result;
|
|
68
|
+
merged = this.mergeSchemas(merged, rest);
|
|
69
|
+
return merged;
|
|
70
|
+
}
|
|
71
|
+
static stripRequiredDeep(schema) {
|
|
72
|
+
const out = { ...schema };
|
|
73
|
+
if ('required' in out) {
|
|
74
|
+
delete out.required;
|
|
75
|
+
}
|
|
76
|
+
if (out.properties && typeof out.properties === 'object') {
|
|
77
|
+
const newProps = {};
|
|
78
|
+
for (const [k, v] of Object.entries(out.properties)) {
|
|
79
|
+
newProps[k] = this.stripRequiredDeep(v);
|
|
80
|
+
}
|
|
81
|
+
out.properties = newProps;
|
|
82
|
+
}
|
|
83
|
+
if (out.items && typeof out.items === 'object') {
|
|
84
|
+
out.items = this.stripRequiredDeep(out.items);
|
|
85
|
+
}
|
|
86
|
+
return out;
|
|
87
|
+
}
|
|
88
|
+
static resolveOneOf(result, spec, baseFilePath) {
|
|
89
|
+
const oneOf = result.oneOf;
|
|
90
|
+
if (!Array.isArray(oneOf) || oneOf.length === 0) {
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
let merged = {};
|
|
94
|
+
for (const part of oneOf) {
|
|
95
|
+
const resolvedPart = this.resolveSchema(part, spec, baseFilePath);
|
|
96
|
+
if (resolvedPart.type !== 'null') {
|
|
97
|
+
const stripped = this.stripRequiredDeep(resolvedPart);
|
|
98
|
+
merged = this.mergeSchemas(merged, stripped);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const { oneOf: _, ...rest } = result;
|
|
102
|
+
merged = this.mergeSchemas(merged, rest);
|
|
103
|
+
return merged;
|
|
104
|
+
}
|
|
105
|
+
static resolveRef(ref, spec, baseFilePath) {
|
|
106
|
+
var _a;
|
|
107
|
+
if (ref.startsWith('#/')) {
|
|
108
|
+
if (!baseFilePath) {
|
|
109
|
+
const schema = (_a = SpecMapper_1.SpecMapper.getSchemaFromRef(spec, ref)) !== null && _a !== void 0 ? _a : {};
|
|
110
|
+
return { schema, baseFilePath };
|
|
111
|
+
}
|
|
112
|
+
const cleanBase = baseFilePath.startsWith('/') ? baseFilePath.substring(1) : baseFilePath;
|
|
113
|
+
const doc = this.getExternalSchema(cleanBase);
|
|
114
|
+
const schema = this.resolveJsonPointer(doc, ref);
|
|
115
|
+
return { schema, baseFilePath };
|
|
116
|
+
}
|
|
117
|
+
let filePart = ref;
|
|
118
|
+
let pointer = '';
|
|
119
|
+
const hashIndex = ref.indexOf('#');
|
|
120
|
+
if (hashIndex >= 0) {
|
|
121
|
+
filePart = ref.substring(0, hashIndex);
|
|
122
|
+
pointer = ref.substring(hashIndex);
|
|
123
|
+
}
|
|
124
|
+
const baseDir = baseFilePath ? path_1.default.posix.dirname(baseFilePath) : '';
|
|
125
|
+
const cleanPath = baseDir ? path_1.default.posix.join(baseDir, filePart) : filePart;
|
|
126
|
+
const doc = this.getExternalSchema(cleanPath);
|
|
127
|
+
let resolved = doc;
|
|
128
|
+
if (pointer) {
|
|
129
|
+
resolved = this.resolveJsonPointer(doc, pointer);
|
|
130
|
+
}
|
|
131
|
+
return { schema: resolved, baseFilePath: cleanPath };
|
|
132
|
+
}
|
|
133
|
+
static getExternalSchema(cleanPath) {
|
|
134
|
+
try {
|
|
135
|
+
const schemasBasePath = path_1.default.resolve(__dirname, '../..');
|
|
136
|
+
const schemaPath = path_1.default.join(schemasBasePath, 'specs', 'schemas', cleanPath);
|
|
137
|
+
const schemaContent = fs_1.default.readFileSync(schemaPath, 'utf8');
|
|
138
|
+
const externalSchema = JSON.parse(schemaContent);
|
|
139
|
+
SpecMapper_1.SpecMapper.externalSchemas.set(cleanPath, externalSchema);
|
|
140
|
+
return externalSchema;
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
n8n_workflow_1.LoggerProxy.error(`Error loading external schema: ${error}`);
|
|
144
|
+
return {};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
static resolveJsonPointer(doc, pointer) {
|
|
148
|
+
const path = pointer.startsWith('#/') ? pointer.slice(2) : pointer.replace(/^#/, '');
|
|
149
|
+
const tokens = path.split('/').filter((p) => p.length > 0);
|
|
150
|
+
let current = doc;
|
|
151
|
+
for (const token of tokens) {
|
|
152
|
+
if (current && typeof current === 'object' && token in current) {
|
|
153
|
+
current = current[token];
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return current;
|
|
160
|
+
}
|
|
161
|
+
static mergeSchemas(a = {}, b = {}) {
|
|
162
|
+
var _a, _b, _c, _d, _e;
|
|
163
|
+
const out = { ...a, ...b };
|
|
164
|
+
const reqA = ((_a = a.required) !== null && _a !== void 0 ? _a : []);
|
|
165
|
+
const reqB = ((_b = b.required) !== null && _b !== void 0 ? _b : []);
|
|
166
|
+
if (reqA.length || reqB.length) {
|
|
167
|
+
out.required = Array.from(new Set([...reqA, ...reqB]));
|
|
168
|
+
}
|
|
169
|
+
const typeA = a.type;
|
|
170
|
+
const typeB = b.type;
|
|
171
|
+
if (typeA === 'object' || typeB === 'object') {
|
|
172
|
+
out.type = 'object';
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
out.type = typeB !== null && typeB !== void 0 ? typeB : typeA;
|
|
176
|
+
}
|
|
177
|
+
const propsA = ((_c = a.properties) !== null && _c !== void 0 ? _c : {});
|
|
178
|
+
const propsB = ((_d = b.properties) !== null && _d !== void 0 ? _d : {});
|
|
179
|
+
const allKeys = new Set([...Object.keys(propsA), ...Object.keys(propsB)]);
|
|
180
|
+
const mergedProps = {};
|
|
181
|
+
for (const key of allKeys) {
|
|
182
|
+
if (propsA[key] && propsB[key]) {
|
|
183
|
+
mergedProps[key] = this.mergeSchemas(propsA[key], propsB[key]);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
mergedProps[key] = ((_e = propsB[key]) !== null && _e !== void 0 ? _e : propsA[key]);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (Object.keys(mergedProps).length) {
|
|
190
|
+
out.properties = mergedProps;
|
|
191
|
+
}
|
|
192
|
+
if (a.items && b.items) {
|
|
193
|
+
out.items = this.mergeSchemas(a.items, b.items);
|
|
194
|
+
}
|
|
195
|
+
else if (b.items) {
|
|
196
|
+
out.items = b.items;
|
|
197
|
+
}
|
|
198
|
+
else if (a.items) {
|
|
199
|
+
out.items = a.items;
|
|
200
|
+
}
|
|
201
|
+
return out;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
exports.SchemaResolver = SchemaResolver;
|
|
205
|
+
//# sourceMappingURL=SchemaResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaResolver.js","sourceRoot":"","sources":["../../../nodes/AcademyFive/SchemaResolver.ts"],"names":[],"mappings":";;;;;;AACA,mCAA4C;AAC5C,gDAAwB;AACxB,4CAAoB;AACpB,+CAAqD;AACrD,6CAA0C;AAE1C,MAAa,cAAc;IAC1B,MAAM,CAAC,aAAa,CACnB,MAAsC,EACtC,IAAmB,EACnB,YAAqB;QAErB,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,EAAkB,CAAC;QAC3B,CAAC;QAED,IAAI,IAAA,yBAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAClE,MAAM,CAAC,IAAI,EACX,IAAI,EACJ,YAAY,CACZ,CAAC;YACF,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,YAAY,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,MAAM,GAAiB,EAAE,GAAI,MAAuB,EAAE,CAAC;QAE3D,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAEvD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAiC,EAAE,CAAC;YAClD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAiB,CAAC,EAAE,CAAC;gBAC/D,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAiB,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YACzE,CAAC;YAEA,MAAc,CAAC,UAAU,GAAG,QAAQ,CAAC;QACvC,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAc,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,IAAK,MAAc,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAc,CAAC,IAAI,GAAG,QAAQ,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,YAAY,CAC1B,MAAoB,EACpB,IAAmB,EACnB,YAAqB;QAErB,MAAM,KAAK,GAAmD,MAAM,CAAC,KAAK,CAAC;QAE3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,MAAM,CAAC;QACf,CAAC;QAED,IAAI,MAAM,GAAiB,EAAkB,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAClE,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACrC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,YAAY,CAC1B,MAAoB,EACpB,IAAmB,EACnB,YAAqB;QAErB,MAAM,KAAK,GAAmD,MAAM,CAAC,KAAK,CAAC;QAE3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,MAAM,CAAC;QACf,CAAC;QAED,IAAI,MAAM,GAAiB,EAAkB,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAElE,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBACtD,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACrC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IACf,CAAC;IAKO,MAAM,CAAC,iBAAiB,CAAC,MAAoB;QACpD,MAAM,GAAG,GAAiB,EAAE,GAAI,MAAuB,EAAkB,CAAC;QAG1E,IAAI,UAAU,IAAK,GAAW,EAAE,CAAC;YAChC,OAAQ,GAAW,CAAC,QAAQ,CAAC;QAC9B,CAAC;QAGD,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAiC,EAAE,CAAC;YAClD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAiB,CAAC,EAAE,CAAC;gBAC5D,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAiB,CAAC,CAAC;YACzD,CAAC;YACA,GAAW,CAAC,UAAU,GAAG,QAAQ,CAAC;QACpC,CAAC;QAGD,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/C,GAAW,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAEO,MAAM,CAAC,YAAY,CAC1B,MAAoB,EACpB,IAAmB,EACnB,YAAqB;QAErB,MAAM,KAAK,GAAmD,MAAM,CAAC,KAAK,CAAC;QAE3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,MAAM,CAAC;QACf,CAAC;QAED,IAAI,MAAM,GAAiB,EAAkB,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAElE,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBACtD,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACrC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,UAAU,CACxB,GAAW,EACX,IAAmB,EACnB,YAAqB;;QAErB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,MAAM,MAAM,GACX,MAAC,uBAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAkB,mCAAK,EAAmB,CAAC;gBAClF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YACjC,CAAC;YACD,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAE1F,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAiB,CAAC;YACjE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,QAAQ,GAAG,GAAG,CAAC;QACnB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACpB,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACvC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,cAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE1E,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE9C,IAAI,QAAQ,GAAG,GAAG,CAAC;QACnB,IAAI,OAAO,EAAE,CAAC;YACb,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,QAAwB,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,SAAiB;QACzC,IAAI,CAAC;YACJ,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7E,MAAM,aAAa,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAiB,CAAC;YACjE,uBAAU,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAC1D,OAAO,cAAc,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,0BAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;YACxD,OAAO,EAAkB,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAQ,EAAE,OAAe;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAErF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE3D,IAAI,OAAO,GAAQ,GAAG,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;gBAChE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,IAAkB,EAAE,EAAE,IAAkB,EAAE;;QACrE,MAAM,GAAG,GAAiB,EAAE,GAAI,CAAkB,EAAE,GAAI,CAAkB,EAAkB,CAAC;QAE7F,MAAM,IAAI,GAAa,CAAC,MAAA,CAAC,CAAC,QAAQ,mCAAI,EAAE,CAAa,CAAC;QACtD,MAAM,IAAI,GAAa,CAAC,MAAA,CAAC,CAAC,QAAQ,mCAAI,EAAE,CAAa,CAAC;QAEtD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QACrB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QACrB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,IAAI,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC;QAC3B,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAA,CAAC,CAAC,UAAU,mCAAI,EAAE,CAAiC,CAAC;QACpE,MAAM,MAAM,GAAG,CAAC,MAAA,CAAC,CAAC,UAAU,mCAAI,EAAE,CAAiC,CAAC;QAEpE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAiC,EAAE,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACP,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,GAAG,CAAC,mCAAI,MAAM,CAAC,GAAG,CAAC,CAAiB,CAAC;YACjE,CAAC;QACF,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;YACrC,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAqB,EAAE,CAAC,CAAC,KAAqB,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACrB,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;CACD;AA1QD,wCA0QC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OpenAPIObject } from 'openapi3-ts/oas30';
|
|
2
|
+
import { INodeProperties } from 'n8n-workflow';
|
|
3
|
+
import { NodePropertyValues } from './types';
|
|
4
|
+
export declare class SpecGeneratorUtils {
|
|
5
|
+
static extractResourcesFromSpec(spec: OpenAPIObject, resources: {
|
|
6
|
+
[p: string]: NodePropertyValues[];
|
|
7
|
+
}): void;
|
|
8
|
+
static addRequestBodyProperties(spec: OpenAPIObject, operation: NodePropertyValues, tag: string): INodeProperties[];
|
|
9
|
+
static addPathParametersProperties(operation: NodePropertyValues, properties: INodeProperties[], tag: string): void;
|
|
10
|
+
static addQueryParametersProperties(operation: NodePropertyValues, properties: INodeProperties[], tag: string): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpecGeneratorUtils = void 0;
|
|
4
|
+
const SpecMapper_1 = require("./SpecMapper");
|
|
5
|
+
const SchemaResolver_1 = require("./SchemaResolver");
|
|
6
|
+
class SpecGeneratorUtils {
|
|
7
|
+
static extractResourcesFromSpec(spec, resources) {
|
|
8
|
+
Object.entries(spec.paths).forEach(([path, pathObj]) => {
|
|
9
|
+
Object.entries(pathObj).forEach(([method, operation]) => {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
if (['get', 'post', 'put', 'delete', 'patch'].includes(method.toLowerCase())) {
|
|
12
|
+
const tag = ((_a = operation.tags) === null || _a === void 0 ? void 0 : _a[0]) || 'default';
|
|
13
|
+
if (!resources[tag]) {
|
|
14
|
+
resources[tag] = [];
|
|
15
|
+
}
|
|
16
|
+
const operationId = `${method}_${operation.operationId || path.replace(/[^a-zA-Z0-9]/g, '_')}`;
|
|
17
|
+
resources[tag].push({
|
|
18
|
+
option: {
|
|
19
|
+
name: operation.summary || `${method.toUpperCase()} ${path}`,
|
|
20
|
+
value: operationId,
|
|
21
|
+
action: `${operation.summary || method.toUpperCase()}`,
|
|
22
|
+
description: operation.description ||
|
|
23
|
+
`${operation.summary || method.toUpperCase() + ' request'}`,
|
|
24
|
+
routing: {
|
|
25
|
+
request: {
|
|
26
|
+
method: method.toUpperCase(),
|
|
27
|
+
url: path,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
queryParameters: ((_b = operation.parameters) === null || _b === void 0 ? void 0 : _b.filter((parameter) => parameter.in === 'query')) || [],
|
|
32
|
+
requestBody: operation.requestBody || null,
|
|
33
|
+
pathParameters: ((_c = operation.parameters) === null || _c === void 0 ? void 0 : _c.filter((parameter) => parameter.in === 'path')) || [],
|
|
34
|
+
default: operationId,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
static addRequestBodyProperties(spec, operation, tag) {
|
|
41
|
+
if (operation.requestBody) {
|
|
42
|
+
const requestBodySchemaObject = SpecMapper_1.SpecMapper.mapOpenApiRequestBodyToNodePropertyOption(operation.requestBody);
|
|
43
|
+
if (requestBodySchemaObject) {
|
|
44
|
+
const resolvedSchema = SchemaResolver_1.SchemaResolver.resolveSchema(requestBodySchemaObject, spec);
|
|
45
|
+
return SpecMapper_1.SpecMapper.mapSchemaPropertiesToNodeOptions('schema', resolvedSchema, spec, tag, operation.option.value, false, true, false);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
static addPathParametersProperties(operation, properties, tag) {
|
|
51
|
+
var _a;
|
|
52
|
+
const pathParametersOptions = (_a = operation.pathParameters) === null || _a === void 0 ? void 0 : _a.map((pathParameter) => {
|
|
53
|
+
return SpecMapper_1.SpecMapper.mapOpenApiPathParameterToNodePropertyOption(pathParameter);
|
|
54
|
+
});
|
|
55
|
+
pathParametersOptions.forEach((pathParameterOption) => {
|
|
56
|
+
var _a, _b, _c, _d;
|
|
57
|
+
const operationPath = (_c = (_b = (_a = operation === null || operation === void 0 ? void 0 : operation.option) === null || _a === void 0 ? void 0 : _a.routing) === null || _b === void 0 ? void 0 : _b.request) === null || _c === void 0 ? void 0 : _c.url;
|
|
58
|
+
if (!operationPath) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
let urlWithParameters = operationPath === null || operationPath === void 0 ? void 0 : operationPath.replace(`{${pathParameterOption.name}}`, '{{$value}}');
|
|
62
|
+
(_d = operation.pathParameters) === null || _d === void 0 ? void 0 : _d.forEach((pathParameter) => {
|
|
63
|
+
urlWithParameters = urlWithParameters === null || urlWithParameters === void 0 ? void 0 : urlWithParameters.replace(`{${pathParameter.name}}`, `{{$parameter['${pathParameter.name}']}}`);
|
|
64
|
+
});
|
|
65
|
+
properties.push({
|
|
66
|
+
...pathParameterOption,
|
|
67
|
+
displayOptions: {
|
|
68
|
+
show: {
|
|
69
|
+
resource: [tag],
|
|
70
|
+
operation: [operation.option.value],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
routing: {
|
|
74
|
+
request: {
|
|
75
|
+
url: `=${urlWithParameters}`,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
static addQueryParametersProperties(operation, properties, tag) {
|
|
82
|
+
var _a;
|
|
83
|
+
const queryParametersOptions = (_a = operation.queryParameters) === null || _a === void 0 ? void 0 : _a.map((queryParameter) => {
|
|
84
|
+
return SpecMapper_1.SpecMapper.mapOpenApiQueryParameterToNodePropertyOption(queryParameter);
|
|
85
|
+
});
|
|
86
|
+
if (!queryParametersOptions || (queryParametersOptions === null || queryParametersOptions === void 0 ? void 0 : queryParametersOptions.length) === 0) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
properties.push({
|
|
90
|
+
displayName: 'Additional Fields',
|
|
91
|
+
name: 'additionalFields',
|
|
92
|
+
type: 'collection',
|
|
93
|
+
default: {},
|
|
94
|
+
placeholder: 'Add Field',
|
|
95
|
+
displayOptions: {
|
|
96
|
+
show: {
|
|
97
|
+
resource: [tag],
|
|
98
|
+
operation: [operation.option.value],
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
options: queryParametersOptions,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.SpecGeneratorUtils = SpecGeneratorUtils;
|
|
106
|
+
//# sourceMappingURL=SpecGeneratorUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpecGeneratorUtils.js","sourceRoot":"","sources":["../../../nodes/AcademyFive/SpecGeneratorUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { INodeProperties, NodePropertyTypes } from 'n8n-workflow';
|
|
2
|
+
import { OpenAPIObject, ParameterObject, ReferenceObject, RequestBodyObject, SchemaObject } from 'openapi3-ts/oas30';
|
|
3
|
+
export declare class SpecMapper {
|
|
4
|
+
static externalSchemas: Map<string, SchemaObject>;
|
|
5
|
+
static mapOpenApiQueryParameterToNodePropertyOption(queryParameter: ParameterObject): {
|
|
6
|
+
displayName: string;
|
|
7
|
+
name: string;
|
|
8
|
+
type: NodePropertyTypes;
|
|
9
|
+
placeholder: string;
|
|
10
|
+
noDataExpression: boolean;
|
|
11
|
+
default: {};
|
|
12
|
+
typeOptions: {
|
|
13
|
+
multipleValues: boolean;
|
|
14
|
+
isQueryParam: boolean;
|
|
15
|
+
originalName: string;
|
|
16
|
+
};
|
|
17
|
+
options: {
|
|
18
|
+
name: string;
|
|
19
|
+
displayName: string;
|
|
20
|
+
values: INodeProperties[];
|
|
21
|
+
}[];
|
|
22
|
+
description?: undefined;
|
|
23
|
+
routing?: undefined;
|
|
24
|
+
} | {
|
|
25
|
+
displayName: string;
|
|
26
|
+
name: string;
|
|
27
|
+
type: any;
|
|
28
|
+
description: string;
|
|
29
|
+
default: string;
|
|
30
|
+
typeOptions: {
|
|
31
|
+
originalName: string;
|
|
32
|
+
isQueryParam: boolean;
|
|
33
|
+
multipleValues?: undefined;
|
|
34
|
+
};
|
|
35
|
+
routing: {
|
|
36
|
+
request: {
|
|
37
|
+
qs: {
|
|
38
|
+
[queryParameter.name]: string;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
placeholder?: undefined;
|
|
43
|
+
noDataExpression?: undefined;
|
|
44
|
+
options?: undefined;
|
|
45
|
+
};
|
|
46
|
+
static mapOpenApiRequestBodyToNodePropertyOption(requestBody: RequestBodyObject): SchemaObject | ReferenceObject | undefined;
|
|
47
|
+
static mapOpenApiPathParameterToNodePropertyOption(pathParameter: ParameterObject): {
|
|
48
|
+
displayName: string;
|
|
49
|
+
name: string;
|
|
50
|
+
type: any;
|
|
51
|
+
default: string;
|
|
52
|
+
required: boolean;
|
|
53
|
+
description: string;
|
|
54
|
+
typeOptions: {
|
|
55
|
+
isPathParam: boolean;
|
|
56
|
+
originalName: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
static getSchemaFromRef(spec: OpenAPIObject, ref: string): SchemaObject | undefined;
|
|
60
|
+
static mapSchemaPropertiesToNodeOptions(schemaName: string, schema: SchemaObject | ReferenceObject, spec: OpenAPIObject, tag: string, operationValue: string | number | boolean, generateCollection: boolean, showDisplayOption: boolean, isInsideArray: boolean, isRequired?: boolean | undefined): INodeProperties[];
|
|
61
|
+
}
|