PreQL Standard Library
- Author: Jonathan M. Wilbur <jonathan@wilbur.space>
- Copyright Year: 2019
- License: MIT License
This is currently in development.
To Do
- Types
-
id
? -
boolean
-
sint8
-
sint16
-
sint32
-
sint64
-
uint8
-
uint16
-
uint32
-
uint64
-
sreal8 -
sreal16
-
sreal32
-
sreal64
-
ureal8 -
ureal16
-
ureal32
-
ureal64
-
varchar8
-
varchar16
-
varchar32
-
varchar64
-
text8
-
text16
-
text32
-
text64
-
blob8
-
blob16
-
blob32
-
blob64
-
personName
-
phone
-
email
-
fqdn
-
dnsLabel
-
hostname
-
uuid
-
oid
-
bsonId
-
handle
(Twitter, Gab, Discord) -
sex
-
timeZone
-
ean2
-
ean5
-
ean8
-
ean13
-
upca
-
upcb
-
upcc
-
upcd
-
upce
-
upc2
-
upc5
-
gtin8
-
gtin12
-
gtin13
-
gtin14
-
ssn
-
eui48
-
eui60
-
eui64
-
cdi32
-
cdi40
-
oui24
-
oui36
-
ipv4
-
ipv6
-
ip
-
money
-
iso3166-1-alpha-2
-
iso3166-1-alpha-3
-
iso3166-1-numeric
-
iso3166-2
-
iso639-1
-
iso639-2
-
iso639-3
-
iso639-5
-
date
-
time
-
datetime
-
timestamp
? -
year
-
month
-
day
-
hour
-
minute
-
second
-
millisecond
- Spatial types?
-
locale
-
mimeType
-
uri
-
urn
-
url
-
(Same thing as theurlSchema
irlSchema
.) -
urlUsername
-
urlPassword
-
urlPath
-
urlQuery
-
urlFragment
-
iri
-
irn
-
irl
-
irlSchema
-
irlUsername
-
irlPassword
-
irlPath
(Check for leading "/"?) -
irlQuery
(Check for leading "?"?) -
irlFragment
(Check for leading "#"?) -
unc
-
plusCode
-
unixFileName
-
unixPath
-
windowsFileName
-
windowsPath
-
sid
-
dn
-
rdn
-
dnsRecordType
-
compass4
(N, E, S, W) -
compass8
(N, NE, E, etc.) -
compass16
(N, NNE, ENE, etc.) -
latitude
-
longitude
-
fahrenheit
(Minimum -459.67) -
celcius
(Minimum -273.15) -
kelvins(This is simply an unsigned floating-point type.) - Chemistry
-
element
-
iupacName
-
chemicalFormula
-
casNumber
-
bilsteinReference
-
chebi
-
chembl
-
chemspider
-
echaInfoCard
-
ecNumber
-
gmelinReference
-
kegg
-
mesh
-
pubChemCID
-
unNumber
-
compToxDashboard
-
smiles
-
-
doi
- ISO International Identifiers (Remove dashes and spaces for each)
-
isbn
(13-digits) -
issn
(8-digits) (^[0-9]{4}-[0-9]{3}[0-9xX]$
) -
ismn
(13-digits) -
isan
(12 bytes) -
iswc
("T", then 10 digits) -
istc
(?) -
isrc
(CC-999-YY-NNNNN) -
iswn
(?) -
isin
(12 alphanums) -
iin
(6 digits) -
bei
(?) -
lei
(20-character, alpha-numeric code) -
iban
(CCKK[0-9A-Z]{1,30}
) -
isil
([A-Z0-9/\-:]{1,16}
) -
isli
(ISLI XXXXXX-XXXXX-X
) -
isni
(16 digits and a check character) -
isci
(?) -
mic
- Maybe add some sort of check-digit functionality?
-
-
lccn
(Library of Congress Control Number?) -
oclc
-
bici
-
sici
-
asin
-
coden
-
ettn
-
estc
-
nsin
-
arn
-
iqn
(iqn.YYYY-MM.wilbur.space(?:targetName)?
) -
ticker
-
airportCode
-
usbNumber
(HHHH:HHHH) -
tlsCipher
- Hashes
-
md5
-
sha128
-
sha256
-
sha384
-
sha512
-
-
html
-
xml
-
json
-
yaml
-
toml
-
httpCode
-
ftpCode
-
smtpCode
-
pixelColor
-
printerColor
-
leftRight
-
upDown
-
frontBack
-
direction4
-
password
-
key
-
postalCode(This should just be a VARCHAR(16)) -
duns
-
paymentCardNumber
-
imei
-
iccid
-
meid
-
seid
-
grid
(https://en.wikipedia.org/wiki/Global_Release_Identifier) -
duid
? - ISO script codes?
-
cage
(https://en.wikipedia.org/wiki/Commercial_and_Government_Entity_code) -
tpin
(https://en.wikipedia.org/wiki/Trading_Partner_Identification_Number) -
abn
(https://en.wikipedia.org/wiki/Australian_Business_Number) - ISO currency codes?
-
iocc
Olympic Country Codes -
fipsCountryCode
-
- Check
regexes
group names - Add LDAP matching rules
- Add
minimum
andmaximum
to floating point types.- How will the targe libraries ignore storage extrema?
- Add length indicators to the end of LDAP syntaxes
- Add these labels:
- Theoretical minimum storage in bytes
- Theoretical maximum storage in bytes
- Review backslashes use in regex patterns.
- Review use of DirectoryString in
openldap
target. - Add .NET Class label.
- Add
units
label - Add
unitsSymbol
label - Add
mathematicalSymbol
label - Add
alert
label - Add
operatingSystem
label - Add hash security-related label
- Add
deprecated
label - Add
urnNamespace
label (https://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml) - Add
definingOrganization
annotation - Create Secure-Text type
- Filter out SQL injection
- Filter out XSS tags
- Filter out nulls
- Filter out LDAP injection
- Filter out Directory Traversal
- Add the
$
to the end of regexes.- I omitted this originally because I have had problems with MariaDB matching strings when that is included.
- Add multiple
exampleValue
fields. - Add
specificationPublisher
annotation - Do you need to trim
CHAR
types?