@appsemble/lang-sdk
Version:
Language SDK for Appsemble
56 lines • 2.07 kB
JavaScript
/**
* A pattern for extracting a semver value.
*/
export const partialSemver = /\d+\.\d+\.\d+(-[\d.a-z-]+)?/;
/**
* A pattern for validating a hexadecimal RGB color.
*/
export const hexColor = /^#[\dA-Fa-f]{6}$/;
/**
* A pattern for matching a full semver.
*/
export const semver = new RegExp(`^${partialSemver.source}$`);
/**
* A pattern for extracting a normalized string.
*/
// eslint-disable-next-line unicorn/better-regex
export const partialNormalized = /([0-9a-z](?:(?!.*--)[-0-9a-z]*[0-9a-z])?)/;
/**
* A pattern for exactly matching a lower case hyphen separated string.
*/
export const normalized = new RegExp(`^${partialNormalized.source}$`);
/**
* A pattern for matching the block name pattern of @organization/project.
*/
export const blockNamePattern = new RegExp(`^@${partialNormalized.source}/${partialNormalized.source}$`);
export const domainPattern = new RegExp(`^(${partialNormalized.source}+\\.)+[a-z]{2,}$`);
/**
* A pattern to match a Google Analytics ID or an empty string.
*/
// eslint-disable-next-line unicorn/better-regex
export const googleAnalyticsIDPattern = /^(|UA-[0-9]{4,10}-[0-9]{1,4}|G-[0-9A-Z]{4,})$/;
/**
* A pattern to match a Meta (Facebook) Pixel ID or an empty string.
* Meta Pixel IDs are numeric strings, usually 5–20 digits.
*/
// eslint-disable-next-line unicorn/better-regex
export const metaPixelIDPattern = /^(|[0-9]{5,20})$/;
/**
* A pattern to match a MS Clarity Project ID or an empty string.
* Clarity IDs are alphanumeric strings, typically 8–20 characters long.
*/
// eslint-disable-next-line unicorn/better-regex
export const msClarityIDPattern = /^(|[0-9A-Za-z]{8,20})$/;
/**
* A pattern which matches a UUID 4.
*/
export const uuid4Pattern = /^[\d[a-f]{8}-[\da-f]{4}-4[\da-f]{3}-[\da-f]{4}-[\d[a-f]{12}$/;
/**
* A pattern which matches a JSON web token.
*/
export const jwtPattern = /^[\w-]+(?:\.[\w-]+){2}$/;
/**
* A pattern which matches an ISO 8601 datetime string.
*/
export const ISODateTimePattern = /\d{4}(.\d{2}){2}(\s|T)(\d{2}.){2}\d{2}/;
//# sourceMappingURL=patterns.js.map