diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..60b2383 --- /dev/null +++ b/.gitignore @@ -0,0 +1,208 @@ +##################### +# User defined +##################### + +##################### +# Standard FHS +##################### +vendor/ +output/ +/releases/ +!/*/releases/ + +##################### +# ZORALab's Monteur +##################### +/.monteurFS/ +/.configs/montuer/secrets/ +.bin/ + +##################### +# AutomataCI +##################### +/SECRETS.toml +/bin +/lib +/tools +/tmp +/log +/build +/pkg +/releases +/resources/changelog/*/.* +/artifact* +/pkgAUTOMATACI +/.internals/docs/*/*.pdf + +##################### +# Angular +##################### +/out-tsc +/bazel-out +cache/ +coverage/ +dist/ +.sass-cache/ +connect.lock +libpeerconnection.log +testem.log +typings + +##################### +# LibreOffice +##################### +.~lock* + +##################### +# Syncthing +##################### +.thumbnails/ + +##################### +# Python +##################### +venv/ +__pycache__ +.coverage + +##################### +# Rust +##################### +target/ +*.profraw + +##################### +# Hugo +##################### +themes/ +public/ +.hugo_build.lock + +##################### +# LetsEncrypt +##################### +certbot.log + +##################### +# Android Studio +##################### +/build + +##################### +# vim +##################### +4913 +*.swp + +##################### +# C Language +##################### +*.d +!*.d/ +*.o +*.a +*.dll +*.exe +*.elf +*.hex +*.bin + +##################### +# Node +##################### +node_modules/ +npm-debug.log +yarn-error.log +coverage/ +dist/ +.nyc_output + +##################### +# Databases +##################### +*.db + +##################### +# SQLite +##################### +*.sqlite3 +*.sqlite +*.sqlite-journal +*.db-journal + +##################### +# GitHub +##################### +gh-pages/ + +##################### +# Logs +##################### +*.log + +##################### +# GNU +##################### +.gsf-save* + +##################### +# MacOS specifics +##################### +.DS_Store +Thumbs.db + +##################### +# AWS CLI credential blobs +##################### +.aws/credentials +aws/credentials +homefolder/aws/credentials + +##################### +# Private RSA SSH keys +##################### +/ssh/id_rsa +/.ssh/personal_rsa +/config/server_rsa +id_rsa +.id_rsa + +##################### +# Private DSA SSH keys +##################### +/ssh/id_dsa +/.ssh/personal_dsa +/config/server_dsa +id_dsa +.id_dsa + +##################### +# Private ed25519 SSH keys +##################### +/ssh/id_ed25519 +/.ssh/personal_ed25519 +/config/server_ed25519 +id_ed25519 +.id_ed25519 + +##################### +# Private ECDSA SSH keys +##################### +/ssh/id_ecdsa +/.ssh/personal_ecdsa +/config/server_ecdsa +id_ecdsa +.id_ecdsa + +##################### +# Any file with .pem or .key extensions +##################### +*.pem +*.key +*.crt + +##################### +# Any file ending with _history or .history extension +##################### +pry.history +bash_history diff --git a/LICENSE.pdf b/LICENSE.pdf new file mode 100644 index 0000000..f969d71 Binary files /dev/null and b/LICENSE.pdf differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..efc4d64 --- /dev/null +++ b/README.md @@ -0,0 +1,127 @@ +# Hestia Libraries - `HestiaTOML` + +[![Hestia Libraries](https://raw.githubusercontent.com/ChewKeanHo/hestiaTOML/main/src/icons/banner_1200x270.svg)](#) + +One Peaceful Frontend+Backend Software Library Suite. + +This repository facilitates +[Tom's Obvious Minimal Language](https://github.com/toml-lang/toml) operation +for all Hestia Libraries user. This library uses the character-based +streaming with low memory and low footprint (e.g. +microcontroller adata processing) considerations. Moreover, it uses the +*"everything is a string"* convention to avoid bloating the library with all +other libraries data sanitization functions. In short, HestiaTOML +**SHALL NOT AND WILL NOT** dictate when, what, and how the value is sanitized +and validated. It only makes sure the TOML syntax are correctly done and parse +from it. + + + + +## Why It Matters + +This project was initiated primarily because of: + +1. **Ensures proper interoperability between programming languages** - + making sure the `hestiaTOML` library talks to each other seamlessly across + programming languages with the same context. +2. **Friendly to low memory and low footprint environment** - using simple + string character streaming algorithm to parse the required data from TOML + syntax. +3. **Consumption freedom** - HestiaTOML makes no decision and no assumption on + how you consume the parsed data: use the corresponding data type sanitization + function to convert from string into your desired data type. +5. **Simple to integrate** - simple enough to use for all supported programming + languages. + + + + +## Design Principles + +The definitions complies to only the following rules: + +1. **STRICTLY**: **Everthing is a `string`**. +2. Primarily uses Unicode for internal operations. +3. Uses syntax behaviorial table algorithm even for restrictive languages like + POSIX Shell (not BASH). + +This library is heavily guarded with unit tests whenever available. + + + + +## Setup + +This library supports multiple programming languages for the same dataset. +Please import based on your programming language(s) using the instructions in +the sub-sections below. + +Please do note that branches like `main`, `next`, and `experimental` are for +maintenance & development uses (as in, the production factory itself). Hence, +please avoid them and only use it at your own risk. + + + +### Javascript|Typescript Ecosystems + +To use `hestiaTOML` library in your Javascript|Typescript project, you may use +the following methods for integrations: + + +#### Git Release Branches (Recommended) + +It's highly recommended to use `git` release branches inside your `package.json` +dependencies list. This is to avoid the registry configurations problem +involving `npm`: + +``` +{ + "dependencies": { + ... + "@chewkeanho/hestiaSTRING": "git+https://github.com/ChewKeanHo/hestiaSTRING.git#[VERSION]_npm", + ... + "@chewkeanho/hestiaTOML": "git+https://github.com/ChewKeanHo/hestiaTOML.git#[VERSION]_npm" + ... + } +} +``` + +For always latest release, please use the `latest` version tag. Example: + +``` +{ + ... + "dependencies": { + ... + "@chewkeanho/hestiaSTRING": "git+https://github.com/ChewKeanHo/hestiaSTRING.git#[VERSION]_npm", + ... + "@chewkeanho/hestiaTOML": "git+https://github.com/ChewKeanHo/hestiaTOML.git#latest_npm" + ... + } + ... +} +``` + + +#### NPM + +> **NOTE** +> +> To be updated. + + + + +## Data Source + +The libraries are based on the following data sources: + +1. Specification - https://github.com/toml-lang/toml + + + + +## License + +This project is licensed under [OSI compliant Apache 2.0 License](LICENSE.txt). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..4d3ab4d --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,14 @@ +# Security Policy - Reporting a Vulnerability +We take security issues seriously AND WITHOUT CAUSING PUBLIC PANICS. Therefore, +if you find any security vulnerability (both suspicious or confirmed), please +feel free to communicate with my team at: + +``` +security@hollowaykeanho.com +``` + +or raise a report under **Report a security vulnerability** title in the +GitHub's Issues section. + + +**REMEMBER**: DO NOT CAUSE PUBLIC PANICS. Please be professional.