All files / src source-filename-patterns.ts

100% Statements 44/44
100% Branches 0/0
100% Functions 0/0
100% Lines 44/44

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 461x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x    
/*
 * Keyman is copyright (C) SIL International. MIT License.
 *
 * Keyman Developer source filename regular expressions
 */
 
/**
 * A keyboard package filename SHOULD adhere to this pattern (including file
 * extension), lower case alphanumeric and underscore only allowed (a-z, _ only
 * for first letter).
 */
export const KEYBOARD_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.(kps|kmp)$/;
 
/**
 * A lexical model package filename SHOULD adhere to this pattern (including
 * file extension). There are three components to the filename: author, bcp47,
 * and uniq, separated by period. The filename ends in .model.kps or .model.kmp.
 * Each of the author, bcp47, and uniq sections may contain lowercase
 * alphanumeric, underscore characters, and the bcp47 section additionally may
 * contain hyphen. Digits are not permitted as first letter of each section.
 *
 * Despite including a bcp47 tag as part of the filename, it is informative only,
 * and is not regarded as part of the metadata for the lexical model.
 */
//                                 author           .bcp47             .uniq
export const MODEL_ID_PATTERN_PACKAGE = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.(kps|kmp)$/;
 
// const MODEL_ID_PATTERN_JS      = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.js$/;
// const MODEL_ID_PATTERN_TS      = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.ts$/;
// const MODEL_ID_PATTERN_PROJECT = /^[a-z_][a-z0-9_]*\.[a-z_][a-z0-9_-]*\.[a-z_][a-z0-9_]*\.model\.kpj$/;
 
/**
 * Filenames of files contained in a package MAY adhere to this pattern for
 * optimum cross-platform compatibility. This is the basename portion of the
 * filename, and is case-insensitive.
 */
export const CONTENT_FILE_BASENAME_PATTERN = /^[a-z0-9_+.-]+$/i; // base names can be case insensitive
 
/**
 * Extensions of files contained in a package MAY adhere to this pattern for optimum
 * cross-platform compatibility. This is the extension portion of the filename,
 * and should be lower case, and may be empty.
 */
export const CONTENT_FILE_EXTENSION_PATTERN = /^(\.[a-z0-9_-]+)?$/; // extensions should be lower-case or empty