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.
Files changed (120) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +9 -0
  3. package/dist/credentials/AcademyFiveCredentialsApi.credentials.d.ts +10 -0
  4. package/dist/credentials/AcademyFiveCredentialsApi.credentials.js +53 -0
  5. package/dist/credentials/AcademyFiveCredentialsApi.credentials.js.map +1 -0
  6. package/dist/credentials/simovative.svg +5 -0
  7. package/dist/nodes/AcademyFive/AcademyFive.node.d.ts +10 -0
  8. package/dist/nodes/AcademyFive/AcademyFive.node.js +184 -0
  9. package/dist/nodes/AcademyFive/AcademyFive.node.js.map +1 -0
  10. package/dist/nodes/AcademyFive/AcademyFive.node.json +6 -0
  11. package/dist/nodes/AcademyFive/MapToRequestUtils.d.ts +24 -0
  12. package/dist/nodes/AcademyFive/MapToRequestUtils.js +245 -0
  13. package/dist/nodes/AcademyFive/MapToRequestUtils.js.map +1 -0
  14. package/dist/nodes/AcademyFive/NodeConfigUtils.d.ts +5 -0
  15. package/dist/nodes/AcademyFive/NodeConfigUtils.js +50 -0
  16. package/dist/nodes/AcademyFive/NodeConfigUtils.js.map +1 -0
  17. package/dist/nodes/AcademyFive/SchemaResolver.d.ts +12 -0
  18. package/dist/nodes/AcademyFive/SchemaResolver.js +205 -0
  19. package/dist/nodes/AcademyFive/SchemaResolver.js.map +1 -0
  20. package/dist/nodes/AcademyFive/SpecGeneratorUtils.d.ts +11 -0
  21. package/dist/nodes/AcademyFive/SpecGeneratorUtils.js +106 -0
  22. package/dist/nodes/AcademyFive/SpecGeneratorUtils.js.map +1 -0
  23. package/dist/nodes/AcademyFive/SpecMapper.d.ts +61 -0
  24. package/dist/nodes/AcademyFive/SpecMapper.js +385 -0
  25. package/dist/nodes/AcademyFive/SpecMapper.js.map +1 -0
  26. package/dist/nodes/AcademyFive/simovative.svg +5 -0
  27. package/dist/nodes/AcademyFive/types.d.ts +34 -0
  28. package/dist/nodes/AcademyFive/types.js +19 -0
  29. package/dist/nodes/AcademyFive/types.js.map +1 -0
  30. package/dist/package.json +66 -0
  31. package/dist/specs/ac5.json +1 -0
  32. package/dist/specs/schemas/src/Api/AccessGroups/Schema/AccessGroupsGetPaginatedSchema.json +94 -0
  33. package/dist/specs/schemas/src/Api/AccessGroups/Schema/AccessGroupsGetSchema.json +66 -0
  34. package/dist/specs/schemas/src/Api/Bookings/Handler/BookingsPatchSchema.json +150 -0
  35. package/dist/specs/schemas/src/Api/Bookings/StatisticAustria/Handler/BookingStatisticAustriaPatchSchema.json +111 -0
  36. package/dist/specs/schemas/src/Api/Bookings/StatisticAustria/Handler/BookingStatisticAustriaPostSchema.json +113 -0
  37. package/dist/specs/schemas/src/Api/Cohorts/Schema/CohortsGetPaginatedSchema.json +83 -0
  38. package/dist/specs/schemas/src/Api/Colors/Schema/ColorsListGetSchema.json +50 -0
  39. package/dist/specs/schemas/src/Api/Common/Model/Validation/ValidationErrorSchema.json +29 -0
  40. package/dist/specs/schemas/src/Api/Company/Handler/CompanyPostSchema.json +77 -0
  41. package/dist/specs/schemas/src/Api/Company/Handler/CompanyPutSchema.json +84 -0
  42. package/dist/specs/schemas/src/Api/CourseSeriesLecturer/Handler/CourseSeriesLecturerPostSchema.json +113 -0
  43. package/dist/specs/schemas/src/Api/CourseTicket/Handler/CourseTicketsPostV2Schema.json +162 -0
  44. package/dist/specs/schemas/src/Api/DataSourceAreas/Handler/DataSourceAreasPatchSchema.json +84 -0
  45. package/dist/specs/schemas/src/Api/DataSourceAreas/Handler/DataSourceAreasPostSchema.json +151 -0
  46. package/dist/specs/schemas/src/Api/DataSourceFieldOptionGroupRestrictions/Handler/DataSourceFieldOptionGroupRestrictionsPatchSchema.json +107 -0
  47. package/dist/specs/schemas/src/Api/DataSourceFieldOptionGroupRestrictions/Handler/DataSourceFieldOptionGroupRestrictionsPostSchema.json +107 -0
  48. package/dist/specs/schemas/src/Api/DataSourceFieldOptionGroups/Handler/DataSourceFieldOptionGroupsPatchSchema.json +88 -0
  49. package/dist/specs/schemas/src/Api/DataSourceFieldOptionGroups/Handler/DataSourceFieldOptionGroupsPostSchema.json +89 -0
  50. package/dist/specs/schemas/src/Api/DataSourceFieldOptionValues/Handler/DataSourceFieldOptionValuesPatchSchema.json +54 -0
  51. package/dist/specs/schemas/src/Api/DataSourceFieldOptionValues/Handler/DataSourceFieldOptionValuesPostSchema.json +87 -0
  52. package/dist/specs/schemas/src/Api/DataSourceFields/Handler/DataSourceFieldsPatchSchema.json +242 -0
  53. package/dist/specs/schemas/src/Api/DataSourceFields/Handler/DataSourceFieldsPostSchema.json +357 -0
  54. package/dist/specs/schemas/src/Api/DataSourceRecords/Handler/DataSourceRecordsDeleteSchema.json +16 -0
  55. package/dist/specs/schemas/src/Api/DataSourceRecords/Handler/DataSourceRecordsPutBulkSchema.json +42 -0
  56. package/dist/specs/schemas/src/Api/DataSourceTabs/Handler/DataSourceTabsPostSchema.json +85 -0
  57. package/dist/specs/schemas/src/Api/DataSources/Handler/DataSourcesPostSchema.json +61 -0
  58. package/dist/specs/schemas/src/Api/Documents/Handler/DocumentsPostSchema.json +61 -0
  59. package/dist/specs/schemas/src/Api/EventSeries/Handler/EventDatePatchSchema.json +159 -0
  60. package/dist/specs/schemas/src/Api/EventSeries/Handler/EventDatePostSchema.json +335 -0
  61. package/dist/specs/schemas/src/Api/EventSeries/Handler/EventSeriesCustomPatchSchema.json +837 -0
  62. package/dist/specs/schemas/src/Api/EventSeries/Handler/EventSeriesCustomPostSchema.json +288 -0
  63. package/dist/specs/schemas/src/Api/EventSeries/Handler/EventSeriesPostSchema.json +514 -0
  64. package/dist/specs/schemas/src/Api/GkvPendingMessages/Handler/GkvPendingMessagesPatchBulkSchema.json +64 -0
  65. package/dist/specs/schemas/src/Api/GkvPendingMessages/Handler/GkvPendingMessagesPatchSchema.json +120 -0
  66. package/dist/specs/schemas/src/Api/GkvPendingMessages/Handler/GkvPendingMessagesPostSchema.json +117 -0
  67. package/dist/specs/schemas/src/Api/GkvPendingMessages/Handler/GkvPendingMessagesSelectProfileSchema.json +47 -0
  68. package/dist/specs/schemas/src/Api/GlobalFileSyncs/Handler/GlobalFileSyncsPatchSchema.json +63 -0
  69. package/dist/specs/schemas/src/Api/GradeAnnotation/Handler/GradeAnnotationPostSchema.json +98 -0
  70. package/dist/specs/schemas/src/Api/GradeAnnotation/Handler/GradeAnnotationPutSchema.json +105 -0
  71. package/dist/specs/schemas/src/Api/Grades/GradeAnnotationRelations/Handler/GradeAnnotationRelationsPostSchema.json +102 -0
  72. package/dist/specs/schemas/src/Api/Grades/ModuleGradeRecalculation/Schema/ModuleGradeRecalculationJobsGetSchema.json +89 -0
  73. package/dist/specs/schemas/src/Api/Grades/ModuleGradeRecalculation/Schema/ModuleGradeRecalculationJobsPostSchema.json +54 -0
  74. package/dist/specs/schemas/src/Api/Grades/Schema/GradesAttributeSchema.json +400 -0
  75. package/dist/specs/schemas/src/Api/Grades/Schema/GradesGetSchema.json +108 -0
  76. package/dist/specs/schemas/src/Api/Grades/Schema/GradesPatchSchema.json +112 -0
  77. package/dist/specs/schemas/src/Api/Grades/Schema/GradesPostSchema.json +950 -0
  78. package/dist/specs/schemas/src/Api/Grades/Schema/GradesRelationshipSchema.json +547 -0
  79. package/dist/specs/schemas/src/Api/HealthInsuranceInstitutes/Handler/HealthInsuranceInstitutesPatchSchema.json +71 -0
  80. package/dist/specs/schemas/src/Api/HealthInsuranceInstitutes/Handler/HealthInsuranceInstitutesPostSchema.json +73 -0
  81. package/dist/specs/schemas/src/Api/HealthInsuranceProfile/Handler/HealthInsuranceProfilePatchSchema.json +83 -0
  82. package/dist/specs/schemas/src/Api/HealthInsuranceProfile/Handler/HealthInsuranceProfilePostSchema.json +38 -0
  83. package/dist/specs/schemas/src/Api/HealthInsuranceProfileCommunicationLog/Handler/HealthInsuranceProfileCommunicationLogPatchSchema.json +101 -0
  84. package/dist/specs/schemas/src/Api/HealthInsuranceProfileCommunicationLog/Handler/HealthInsuranceProfileCommunicationLogPostSchema.json +99 -0
  85. package/dist/specs/schemas/src/Api/Icons/Schema/IconsListGetSchema.json +50 -0
  86. package/dist/specs/schemas/src/Api/InvoiceCollections/Handler/InvoiceCollectionsFromInstallmentsPostSchema.json +49 -0
  87. package/dist/specs/schemas/src/Api/InvoiceQueueEntries/Handler/InvoiceQueueEntriesPostSchema.json +49 -0
  88. package/dist/specs/schemas/src/Api/Invoices/Handler/InvoicesPostSchema.json +182 -0
  89. package/dist/specs/schemas/src/Api/Invoices/Handler/InvoicesStatusChangePostSchema.json +55 -0
  90. package/dist/specs/schemas/src/Api/LecturerContractEmploymentAvailabilities/Handler/LecturerContractEmploymentAvailabilitiesPatchSchema.json +87 -0
  91. package/dist/specs/schemas/src/Api/LecturerContractEmploymentAvailabilities/Handler/LecturerContractEmploymentAvailabilitiesPostSchema.json +84 -0
  92. package/dist/specs/schemas/src/Api/LecturerContractEmployments/Handler/LecturerContractEmploymentsPatchSchema.json +103 -0
  93. package/dist/specs/schemas/src/Api/LecturerContractEmployments/Handler/LecturerContractEmploymentsPostSchema.json +153 -0
  94. package/dist/specs/schemas/src/Api/LecturerContracts/Handler/LecturerContractsPatchSchema.json +154 -0
  95. package/dist/specs/schemas/src/Api/LecturerContracts/Handler/LecturerContractsPostSchema.json +215 -0
  96. package/dist/specs/schemas/src/Api/OnlineExamEnrolments/Handler/OnlineExamEnrolmentsPostSchema.json +180 -0
  97. package/dist/specs/schemas/src/Api/Payment/Command/PaymentAddCommandSchema.json +51 -0
  98. package/dist/specs/schemas/src/Api/ProfessionalBackground/Handler/ProfessionalBackgroundPostSchema.json +104 -0
  99. package/dist/specs/schemas/src/Api/ProfessionalBackground/Handler/ProfessionalBackgroundPutSchema.json +113 -0
  100. package/dist/specs/schemas/src/Api/ProfileBankDetails/Handler/ProfileBankDetailsPatchSchema.json +56 -0
  101. package/dist/specs/schemas/src/Api/ProfileBankDetails/Handler/ProfileBankDetailsPostSchema.json +56 -0
  102. package/dist/specs/schemas/src/Api/Profiles/Handler/ProfilesPatchSchema.json +45 -0
  103. package/dist/specs/schemas/src/Api/Profiles/Schema/ProfilesGetSchema.json +0 -0
  104. package/dist/specs/schemas/src/Api/RequestFormProfileComments/Schema/RequestFormProfileCommentsPostSchema.json +98 -0
  105. package/dist/specs/schemas/src/Api/RequestFormProfiles/Schema/RequestFromProfilesPatchSchema.json +45 -0
  106. package/dist/specs/schemas/src/Api/RevenueAccounts/Handler/RevenueAccountsPatchSchema.json +151 -0
  107. package/dist/specs/schemas/src/Api/RevenueAccounts/Handler/RevenueAccountsPostSchema.json +151 -0
  108. package/dist/specs/schemas/src/Api/StatisticAustria/Handler/StatisticAustriaPatchSchema.json +115 -0
  109. package/dist/specs/schemas/src/Api/StatisticAustria/Handler/StatisticAustriaPostSchema.json +115 -0
  110. package/dist/specs/schemas/src/Api/StatisticValidations/Handler/StatisticValidationsPostSchema.json +37 -0
  111. package/dist/specs/schemas/src/Api/Submissions/StatusChange/Handler/SubmissionsStatusChangePostSchema.json +42 -0
  112. package/dist/specs/schemas/src/Api/TaskTypes/Schema/TaskTypesGetSchema.json +213 -0
  113. package/dist/specs/schemas/src/Api/TaskTypes/Schema/TaskTypesPatchSchema.json +195 -0
  114. package/dist/specs/schemas/src/Api/TaskTypes/Schema/TaskTypesPostSchema.json +208 -0
  115. package/dist/specs/schemas/src/Api/TranslationPlaceholders/Schema/TranslationPlaceholdersGetSchema.json +57 -0
  116. package/dist/specs/schemas/src/Api/ZensusSettings/Handler/ZensusSettingsPatchSchema.json +176 -0
  117. package/dist/specs/schemas/src/Api/ZensusSettings/Handler/ZensusSettingsPostSchema.json +170 -0
  118. package/dist/tsconfig.tsbuildinfo +1 -0
  119. package/index.js +0 -0
  120. 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":"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"}
@@ -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
+ }