Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 1x 1x 1x | import {
CUSTOMIZATION_URL_PREFIXES_KEY,
customizationUrlDefaults,
DEFAULT_PREFIX,
} from './customizationUrlDefaults';
import type { CustomizationUrlPolicy } from './customizationUrlDefaults';
import { getUrlCustomizationModulePayload } from './getUrlCustomizationModulePayload';
import {
parseCustomizationParams,
validateCustomizationRequests,
normalizeCustomizationValue,
} from './validate';
import type { ValidatedCustomization, ValidationResult } from './validate';
import { resolveCustomizationUrl } from './resolve';
/**
* Builds the `?customization=` policy from the **app config** property
* `customizationUrlPrefixes` (read off `extensionManager.appConfig`). This is
* intentionally not a customization: customizations can be loaded from the URL,
* so letting one define prefixes would let it widen its own allowlist. When the
* property is absent the policy has no prefixes and the feature is off.
*/
export function getCustomizationUrlPolicy(customizationService: any): CustomizationUrlPolicy {
const prefixes =
customizationService?.extensionManager?.appConfig?.[CUSTOMIZATION_URL_PREFIXES_KEY];
if (prefixes && typeof prefixes === 'object') {
return { prefixes };
}
return customizationUrlDefaults;
}
export {
CUSTOMIZATION_URL_PREFIXES_KEY,
customizationUrlDefaults,
DEFAULT_PREFIX,
getUrlCustomizationModulePayload,
parseCustomizationParams,
validateCustomizationRequests,
normalizeCustomizationValue,
resolveCustomizationUrl,
};
export type {
CustomizationUrlPolicy,
ValidatedCustomization,
ValidationResult,
};
export type { CustomizationModule, LoadedCustomization, LoadOptions } from './customizationUrlTypes';
|