preql-stdlib
v0.1.0
Published
* Author: [Jonathan M. Wilbur](https://jonathan.wilbur.space) <[[email protected]](mailto:[email protected])> * Copyright Year: 2019 * License: [MIT License](https://mit-license.org/)
Maintainers
Readme
PreQL Standard Library
- Author: Jonathan M. Wilbur <[email protected]>
- Copyright Year: 2019
- License: MIT License
This is currently in development.
To Do
- [ ] Types
- [ ]
id? - [x]
boolean - [x]
sint8 - [x]
sint16 - [x]
sint32 - [x]
sint64 - [x]
uint8 - [x]
uint16 - [x]
uint32 - [x]
uint64 - [x] ~~sreal8~~
- [x]
sreal16 - [x]
sreal32 - [x]
sreal64 - [x] ~~ureal8~~
- [x]
ureal16 - [x]
ureal32 - [x]
ureal64 - [x]
varchar8 - [x]
varchar16 - [x]
varchar32 - [x]
varchar64 - [x]
text8 - [x]
text16 - [x]
text32 - [x]
text64 - [x]
blob8 - [x]
blob16 - [x]
blob32 - [x]
blob64 - [x]
personName - [x]
phone - [x]
email - [x]
fqdn - [x]
dnsLabel - [x]
hostname - [x]
uuid - [x]
oid - [x]
bsonId - [x]
handle(Twitter, Gab, Discord) - [x]
sex - [x]
timeZone - [x]
ean2 - [x]
ean5 - [x]
ean8 - [x]
ean13 - [x]
upca - [x]
upcb - [x]
upcc - [x]
upcd - [x]
upce - [x]
upc2 - [x]
upc5 - [x]
gtin8 - [x]
gtin12 - [x]
gtin13 - [x]
gtin14 - [x]
ssn - [x]
eui48 - [x]
eui60 - [x]
eui64 - [x]
cdi32 - [x]
cdi40 - [x]
oui24 - [x]
oui36 - [x]
ipv4 - [x]
ipv6 - [x]
ip - [x]
money - [x]
iso3166-1-alpha-2 - [x]
iso3166-1-alpha-3 - [x]
iso3166-1-numeric - [x]
iso3166-2 - [x]
iso639-1 - [x]
iso639-2 - [x]
iso639-3 - [x]
iso639-5 - [x]
date - [x]
time - [x]
datetime - [ ]
timestamp? - [x]
year - [x]
month - [x]
day - [x]
hour - [x]
minute - [x]
second - [x]
millisecond - [ ] Spatial types?
- [x]
locale - [x]
mimeType - [x]
uri - [x]
urn - [x]
url - [x] ~~
urlSchema~~ (Same thing as theirlSchema.) - [ ]
urlUsername - [ ]
urlPassword - [ ]
urlPath - [ ]
urlQuery - [ ]
urlFragment - [x]
iri - [ ]
irn - [x]
irl - [x]
irlSchema - [ ]
irlUsername - [ ]
irlPassword - [ ]
irlPath(Check for leading "/"?) - [ ]
irlQuery(Check for leading "?"?) - [ ]
irlFragment(Check for leading "#"?) - [x]
unc - [x]
plusCode - [x]
unixFileName - [x]
unixPath - [x]
windowsFileName - [x]
windowsPath - [x]
sid - [x]
dn - [x]
rdn - [x]
dnsRecordType - [x]
compass4(N, E, S, W) - [x]
compass8(N, NE, E, etc.) - [x]
compass16(N, NNE, ENE, etc.) - [x]
latitude - [x]
longitude - [x]
fahrenheit(Minimum -459.67) - [x]
celcius(Minimum -273.15) - [x] ~~kelvins~~ (This is simply an unsigned floating-point type.)
- [ ] Chemistry
- [x]
element - [ ]
iupacName - [ ]
chemicalFormula - [ ]
casNumber - [ ]
bilsteinReference - [ ]
chebi - [ ]
chembl - [ ]
chemspider - [ ]
echaInfoCard - [ ]
ecNumber - [ ]
gmelinReference - [ ]
kegg - [ ]
mesh - [ ]
pubChemCID - [ ]
unNumber - [ ]
compToxDashboard - [ ]
smiles
- [x]
- [x]
doi - [ ] ISO International Identifiers (Remove dashes and spaces for each)
- [x]
isbn(13-digits) - [x]
issn(8-digits) (^[0-9]{4}-[0-9]{3}[0-9xX]$) - [x]
ismn(13-digits) - [x]
isan(12 bytes) - [x]
iswc("T", then 10 digits) - [ ]
istc(?) - [x]
isrc(CC-999-YY-NNNNN) - [ ]
iswn(?) - [x]
isin(12 alphanums) - [x]
iin(6 digits) - [ ]
bei(?) - [x]
lei(20-character, alpha-numeric code) - [x]
iban(CCKK[0-9A-Z]{1,30}) - [x]
isil([A-Z0-9/\-:]{1,16}) - [x]
isli(ISLI XXXXXX-XXXXX-X) - [x]
isni(16 digits and a check character) - [ ]
isci(?) - [x]
mic - [ ] Maybe add some sort of check-digit functionality?
- [x]
- [ ]
lccn(Library of Congress Control Number?) - [ ]
oclc - [ ]
bici - [ ]
sici - [ ]
asin - [ ]
coden - [ ]
ettn - [ ]
estc - [x]
nsin - [x]
arn - [x]
iqn(iqn.YYYY-MM.wilbur.space(?:targetName)?) - [ ]
ticker - [ ]
airportCode - [ ]
usbNumber(HHHH:HHHH) - [ ]
tlsCipher - [ ] Hashes
- [ ]
md5 - [ ]
sha128 - [ ]
sha256 - [ ]
sha384 - [ ]
sha512
- [ ]
- [x]
html - [x]
xml - [x]
json - [x]
yaml - [x]
toml - [ ]
httpCode - [ ]
ftpCode - [ ]
smtpCode - [x]
pixelColor - [x]
printerColor - [ ]
leftRight - [ ]
upDown - [ ]
frontBack - [ ]
direction4 - [ ]
password - [ ]
key - [x] ~~postalCode~~ (This should just be a VARCHAR(16))
- [x]
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?
- [x]
ioccOlympic Country Codes - [x]
fipsCountryCode
- [ ]
- [ ] Check
regexesgroup names - [ ] Add LDAP matching rules
- [ ] Add
minimumandmaximumto 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
openldaptarget. - [ ] Add .NET Class label.
- [ ] Add
unitslabel - [ ] Add
unitsSymbollabel - [ ] Add
mathematicalSymbollabel - [ ] Add
alertlabel - [ ] Add
operatingSystemlabel - [ ] Add hash security-related label
- [ ] Add
deprecatedlabel - [ ] Add
urnNamespacelabel (https://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml) - [ ] Add
definingOrganizationannotation - [ ] 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
exampleValuefields. - [ ] Add
specificationPublisherannotation - [ ] Do you need to trim
CHARtypes?
