refactor(server/utils): add constants file
This commit is contained in:
		
							parent
							
								
									dd9fcaf5ae
								
							
						
					
					
						commit
						21360669d8
					
				
							
								
								
									
										126
									
								
								lib/server/constants.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								lib/server/constants.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,126 @@ | |||||||
|  | import turndown from "turndown"; | ||||||
|  | export const ContentFilenameRegex = /\.(doc|docx|md|markdown)$/i; | ||||||
|  | 
 | ||||||
|  | export const emailRegex: RegExp = | ||||||
|  | 	/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; | ||||||
|  | export const usernameRegex: (uname: string) => RegExp = (uname: string) => | ||||||
|  | 	new RegExp("^" + uname.trim().replace(/\*/g, "\\*") + "$", "i"); | ||||||
|  | export const mammothTemplate = (doc, defaults, content) => { | ||||||
|  | 	return content.replace(/\n|\r\n|\r/gm, ""); | ||||||
|  | }; | ||||||
|  | export const sanitizeConf = { | ||||||
|  | 	allowedTags: [ | ||||||
|  | 		"address", | ||||||
|  | 		"article", | ||||||
|  | 		"aside", | ||||||
|  | 		"footer", | ||||||
|  | 		"header", | ||||||
|  | 		"h1", | ||||||
|  | 		"h2", | ||||||
|  | 		"h3", | ||||||
|  | 		"h4", | ||||||
|  | 		"h5", | ||||||
|  | 		"h6", | ||||||
|  | 		"hgroup", | ||||||
|  | 		"main", | ||||||
|  | 		"nav", | ||||||
|  | 		"section", | ||||||
|  | 		"blockquote", | ||||||
|  | 		"dd", | ||||||
|  | 		"div", | ||||||
|  | 		"dl", | ||||||
|  | 		"dt", | ||||||
|  | 		"figcaption", | ||||||
|  | 		"figure", | ||||||
|  | 		"hr", | ||||||
|  | 		"li", | ||||||
|  | 		"main", | ||||||
|  | 		"ol", | ||||||
|  | 		"p", | ||||||
|  | 		"pre", | ||||||
|  | 		"ul", | ||||||
|  | 		"a", | ||||||
|  | 		"abbr", | ||||||
|  | 		"b", | ||||||
|  | 		"bdi", | ||||||
|  | 		"bdo", | ||||||
|  | 		"br", | ||||||
|  | 		"cite", | ||||||
|  | 		"code", | ||||||
|  | 		"data", | ||||||
|  | 		"dfn", | ||||||
|  | 		"em", | ||||||
|  | 		"i", | ||||||
|  | 		"kbd", | ||||||
|  | 		"mark", | ||||||
|  | 		"q", | ||||||
|  | 		"rb", | ||||||
|  | 		"rp", | ||||||
|  | 		"rt", | ||||||
|  | 		"rtc", | ||||||
|  | 		"ruby", | ||||||
|  | 		"s", | ||||||
|  | 		"samp", | ||||||
|  | 		"small", | ||||||
|  | 		"span", | ||||||
|  | 		"strong", | ||||||
|  | 		"sub", | ||||||
|  | 		"sup", | ||||||
|  | 		"time", | ||||||
|  | 		"u", | ||||||
|  | 		"var", | ||||||
|  | 		"wbr", | ||||||
|  | 		"caption", | ||||||
|  | 		"col", | ||||||
|  | 		"colgroup", | ||||||
|  | 		"table", | ||||||
|  | 		"tbody", | ||||||
|  | 		"td", | ||||||
|  | 		"tfoot", | ||||||
|  | 		"th", | ||||||
|  | 		"thead", | ||||||
|  | 		"tr", | ||||||
|  | 	], | ||||||
|  | 	disallowedTagsMode: "discard", | ||||||
|  | 	allowedAttributes: { | ||||||
|  | 		a: ["href", "name", "target"], | ||||||
|  | 		// We don't currently allow img itself by default, but this
 | ||||||
|  | 		// would make sense if we did. You could add srcset here,
 | ||||||
|  | 		// and if you do the URL is checked for safety
 | ||||||
|  | 		img: ["src"], | ||||||
|  | 	}, | ||||||
|  | 	// Lots of these won't come up by default because we don't allow them
 | ||||||
|  | 	selfClosing: [ | ||||||
|  | 		"img", | ||||||
|  | 		"br", | ||||||
|  | 		"hr", | ||||||
|  | 		"area", | ||||||
|  | 		"base", | ||||||
|  | 		"basefont", | ||||||
|  | 		"input", | ||||||
|  | 		"link", | ||||||
|  | 		"meta", | ||||||
|  | 	], | ||||||
|  | 	// URL schemes we permit
 | ||||||
|  | 	allowedSchemes: ["http", "https", "ftp", "mailto", "tel"], | ||||||
|  | 	allowedSchemesAppliedToAttributes: ["href", "src", "cite"], | ||||||
|  | 	allowProtocolRelative: true, | ||||||
|  | 	enforceHtmlBoundary: false, | ||||||
|  | 	allowedSchemesByTag: { | ||||||
|  | 		img: ["data"], | ||||||
|  | 	}, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | export const messages = { | ||||||
|  | 	[403]: "Forbidden", | ||||||
|  | 	[401]: "Authorization required", | ||||||
|  | 	[404]: "Not found", | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | export const apiRoot = "http://127.0.0.1:4567/api"; | ||||||
|  | export const h2m = new turndown({ | ||||||
|  | 	hr: "---", | ||||||
|  | 	codeBlockStyle: "fenced", | ||||||
|  | 	emDelimiter: "*", | ||||||
|  | 	bulletListMarker: "+", | ||||||
|  | }); | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user