"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CLP = void 0; exports.makeSchema = makeSchema; // @Typescript 4.1+ // type CLPPermission = 'requiresAuthentication' | '*' | `user:${string}` | `role:${string}` class CLP { static allow(perms) { const out = {}; for (const [perm, ops] of Object.entries(perms)) { // -disable-next Property `@@iterator` is missing in mixed [1] but exists in `$Iterable` [2]. for (const op of ops) { out[op] = out[op] || {}; out[op][perm] = true; } } return out; } } exports.CLP = CLP; function makeSchema(className, schema) { // This function solve two things: // 1. It provides auto-completion to the users who are implementing schemas // 2. It allows forward-compatible point in order to allow future changes to the internal structure of JSONSchema without affecting all the users schema.className = className; return schema; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDTFAiLCJhbGxvdyIsInBlcm1zIiwib3V0IiwicGVybSIsIm9wcyIsIk9iamVjdCIsImVudHJpZXMiLCJvcCIsImV4cG9ydHMiLCJtYWtlU2NoZW1hIiwiY2xhc3NOYW1lIiwic2NoZW1hIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYU1pZ3JhdGlvbnMvTWlncmF0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYU9wdGlvbnMge1xuICBkZWZpbml0aW9uczogSlNPTlNjaGVtYVtdO1xuICBzdHJpY3Q6ID9ib29sZWFuO1xuICBkZWxldGVFeHRyYUZpZWxkczogP2Jvb2xlYW47XG4gIHJlY3JlYXRlTW9kaWZpZWRGaWVsZHM6ID9ib29sZWFuO1xuICBsb2NrU2NoZW1hczogP2Jvb2xlYW47XG4gIGJlZm9yZU1pZ3JhdGlvbjogPygpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICBhZnRlck1pZ3JhdGlvbjogPygpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlVHlwZSA9XG4gIHwgJ1N0cmluZydcbiAgfCAnQm9vbGVhbidcbiAgfCAnRmlsZSdcbiAgfCAnTnVtYmVyJ1xuICB8ICdSZWxhdGlvbidcbiAgfCAnUG9pbnRlcidcbiAgfCAnRGF0ZSdcbiAgfCAnR2VvUG9pbnQnXG4gIHwgJ1BvbHlnb24nXG4gIHwgJ0FycmF5J1xuICB8ICdPYmplY3QnXG4gIHwgJ0FDTCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlIHtcbiAgdHlwZTogRmllbGRWYWx1ZVR5cGU7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogbWl4ZWQ7XG4gIHRhcmdldENsYXNzPzogc3RyaW5nO1xufVxuXG50eXBlIENsYXNzTmFtZVR5cGUgPSAnX1VzZXInIHwgJ19Sb2xlJyB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBQcm90ZWN0ZWRGaWVsZHNJbnRlcmZhY2Uge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleEludGVyZmFjZSB7XG4gIFtrZXk6IHN0cmluZ106IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleGVzSW50ZXJmYWNlIHtcbiAgW2tleTogc3RyaW5nXTogSW5kZXhJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCB0eXBlIENMUE9wZXJhdGlvbiA9ICdmaW5kJyB8ICdjb3VudCcgfCAnZ2V0JyB8ICd1cGRhdGUnIHwgJ2NyZWF0ZScgfCAnZGVsZXRlJztcbi8vIEBUeXBlc2NyaXB0IDQuMSsgLy8gdHlwZSBDTFBQZXJtaXNzaW9uID0gJ3JlcXVpcmVzQXV0aGVudGljYXRpb24nIHwgJyonIHwgIGB1c2VyOiR7c3RyaW5nfWAgfCBgcm9sZToke3N0cmluZ31gXG5cbnR5cGUgQ0xQVmFsdWUgPSB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbnR5cGUgQ0xQRGF0YSA9IHsgW2tleTogc3RyaW5nXTogQ0xQT3BlcmF0aW9uW10gfTtcbnR5cGUgQ0xQSW50ZXJmYWNlID0geyBba2V5OiBzdHJpbmddOiBDTFBWYWx1ZSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEpTT05TY2hlbWEge1xuICBjbGFzc05hbWU6IENsYXNzTmFtZVR5cGU7XG4gIGZpZWxkcz86IHsgW2tleTogc3RyaW5nXTogRmllbGRUeXBlIH07XG4gIGluZGV4ZXM/OiBJbmRleGVzSW50ZXJmYWNlO1xuICBjbGFzc0xldmVsUGVybWlzc2lvbnM/OiB7XG4gICAgZmluZD86IENMUFZhbHVlLFxuICAgIGNvdW50PzogQ0xQVmFsdWUsXG4gICAgZ2V0PzogQ0xQVmFsdWUsXG4gICAgdXBkYXRlPzogQ0xQVmFsdWUsXG4gICAgY3JlYXRlPzogQ0xQVmFsdWUsXG4gICAgZGVsZXRlPzogQ0xQVmFsdWUsXG4gICAgYWRkRmllbGQ/OiBDTFBWYWx1ZSxcbiAgICBwcm90ZWN0ZWRGaWVsZHM/OiBQcm90ZWN0ZWRGaWVsZHNJbnRlcmZhY2UsXG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDTFAge1xuICBzdGF0aWMgYWxsb3cocGVybXM6IHsgW2tleTogc3RyaW5nXTogQ0xQRGF0YSB9KTogQ0xQSW50ZXJmYWNlIHtcbiAgICBjb25zdCBvdXQgPSB7fTtcblxuICAgIGZvciAoY29uc3QgW3Blcm0sIG9wc10gb2YgT2JqZWN0LmVudHJpZXMocGVybXMpKSB7XG4gICAgICAvLyBAZmxvdy1kaXNhYmxlLW5leHQgUHJvcGVydHkgYEBAaXRlcmF0b3JgIGlzIG1pc3NpbmcgaW4gbWl4ZWQgWzFdIGJ1dCBleGlzdHMgaW4gYCRJdGVyYWJsZWAgWzJdLlxuICAgICAgZm9yIChjb25zdCBvcCBvZiBvcHMpIHtcbiAgICAgICAgb3V0W29wXSA9IG91dFtvcF0gfHwge307XG4gICAgICAgIG91dFtvcF1bcGVybV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvdXQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VTY2hlbWEoY2xhc3NOYW1lOiBDbGFzc05hbWVUeXBlLCBzY2hlbWE6IEpTT05TY2hlbWEpOiBKU09OU2NoZW1hIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBzb2x2ZSB0d28gdGhpbmdzOlxuICAvLyAxLiBJdCBwcm92aWRlcyBhdXRvLWNvbXBsZXRpb24gdG8gdGhlIHVzZXJzIHdobyBhcmUgaW1wbGVtZW50aW5nIHNjaGVtYXNcbiAgLy8gMi4gSXQgYWxsb3dzIGZvcndhcmQtY29tcGF0aWJsZSBwb2ludCBpbiBvcmRlciB0byBhbGxvdyBmdXR1cmUgY2hhbmdlcyB0byB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIG9mIEpTT05TY2hlbWEgd2l0aG91dCBhZmZlY3RpbmcgYWxsIHRoZSB1c2Vyc1xuICBzY2hlbWEuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXG4gIHJldHVybiBzY2hlbWE7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFnREE7QUFzQk8sTUFBTUEsR0FBRyxDQUFDO0VBQ2YsT0FBT0MsS0FBS0EsQ0FBQ0MsS0FBaUMsRUFBZ0I7SUFDNUQsTUFBTUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUVkLEtBQUssTUFBTSxDQUFDQyxJQUFJLEVBQUVDLEdBQUcsQ0FBQyxJQUFJQyxNQUFNLENBQUNDLE9BQU8sQ0FBQ0wsS0FBSyxDQUFDLEVBQUU7TUFDL0M7TUFDQSxLQUFLLE1BQU1NLEVBQUUsSUFBSUgsR0FBRyxFQUFFO1FBQ3BCRixHQUFHLENBQUNLLEVBQUUsQ0FBQyxHQUFHTCxHQUFHLENBQUNLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QkwsR0FBRyxDQUFDSyxFQUFFLENBQUMsQ0FBQ0osSUFBSSxDQUFDLEdBQUcsSUFBSTtNQUN0QjtJQUNGO0lBRUEsT0FBT0QsR0FBRztFQUNaO0FBQ0Y7QUFBQ00sT0FBQSxDQUFBVCxHQUFBLEdBQUFBLEdBQUE7QUFFTSxTQUFTVSxVQUFVQSxDQUFDQyxTQUF3QixFQUFFQyxNQUFrQixFQUFjO0VBQ25GO0VBQ0E7RUFDQTtFQUNBQSxNQUFNLENBQUNELFNBQVMsR0FBR0EsU0FBUztFQUU1QixPQUFPQyxNQUFNO0FBQ2YiLCJpZ25vcmVMaXN0IjpbXX0=