@mintlify/validation
Version:
Validates mint.json files
31 lines (30 loc) • 1.44 kB
JavaScript
import { v4 as uuidv4 } from 'uuid';
import { getObjectById } from './getObjectById.js';
import { mapSecurityRequirement } from './mapSecurityRequirement.js';
export const mapSecurityRequirements = ({ spec, refUuidMap, uuidObjectHashMap, hashedNodeMap, documentId, }) => {
const securityRequirements = spec.security;
if (!securityRequirements)
return;
const document = getObjectById({ uuidObjectHashMap, hashedNodeMap, id: documentId });
if (!document)
return;
// security requirements object = security: [{}, { 'A': [], 'B': [scopes], 'C': [scopes] }]
// refmap = { '#/components/securitySchemes/A': uuid1, '#/components/securitySchemes/B': uuid2, '#/components/securitySchemes/C': uuid3 }
// document.security = [uuid4, uuid5]
// uuidObjectHashMap = { uuid4: hash1, uuid5: hash2 }
// { hash1: {} }
// { hash2: { 'A': { $ref: uuid1, scopes: [] }, 'B': { $ref: uuid2, scopes: [scopes] }, 'C': { $ref: uuid3, scopes: [scopes] } } } }
securityRequirements.forEach((securityRequirement) => {
// create uuid for each global security requirement
const uuid = uuidv4();
mapSecurityRequirement({
security: securityRequirement,
refUuidMap,
uuidObjectHashMap,
hashedNodeMap,
uuid,
});
// associate security requirement object with document
document.security.push(uuid);
});
};